All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Shankar, Uma" <uma.shankar@intel.com>
To: "Mun, Gwan-gyeong" <gwan-gyeong.mun@intel.com>,
	"intel-gfx@lists.freedesktop.org"
	<intel-gfx@lists.freedesktop.org>
Cc: "linux-fbdev@vger.kernel.org" <linux-fbdev@vger.kernel.org>,
	"dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>
Subject: RE: [PATCH v3 04/17] drm/i915/dp: Add writing of DP SDPs (Secondary Data Packet)
Date: Mon, 10 Feb 2020 08:16:15 +0000	[thread overview]
Message-ID: <E7C9878FBA1C6D42A1CA3F62AEB6945F823E2E20@BGSMSX104.gar.corp.intel.com> (raw)
In-Reply-To: <e22a59534e1bd395c57e6d3eb88eb550312bb81b.camel@intel.com>

DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTXVuLCBHd2FuLWd5ZW9u
ZyA8Z3dhbi1neWVvbmcubXVuQGludGVsLmNvbT4NCj4gU2VudDogU3VuZGF5LCBGZWJydWFyeSA5
LCAyMDIwIDk6MDUgQU0NCj4gVG86IFNoYW5rYXIsIFVtYSA8dW1hLnNoYW5rYXJAaW50ZWwuY29t
PjsgaW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0KPiBDYzogZHJpLWRldmVsQGxpc3Rz
LmZyZWVkZXNrdG9wLm9yZzsgbGludXgtZmJkZXZAdmdlci5rZXJuZWwub3JnDQo+IFN1YmplY3Q6
IFJlOiBbUEFUQ0ggdjMgMDQvMTddIGRybS9pOTE1L2RwOiBBZGQgd3JpdGluZyBvZiBEUCBTRFBz
IChTZWNvbmRhcnkgRGF0YQ0KPiBQYWNrZXQpDQo+IA0KPiBPbiBXZWQsIDIwMjAtMDItMDUgYXQg
MjE6MzkgKzA1MzAsIFNoYW5rYXIsIFVtYSB3cm90ZToNCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVz
c2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBkcmktZGV2ZWwgPGRyaS1kZXZlbC1ib3VuY2VzQGxpc3Rz
LmZyZWVkZXNrdG9wLm9yZz4gT24gQmVoYWxmDQo+ID4gPiBPZiBHd2FuLSBneWVvbmcgTXVuDQo+
ID4gPiBTZW50OiBUdWVzZGF5LCBGZWJydWFyeSA0LCAyMDIwIDQ6NTAgQU0NCj4gPiA+IFRvOiBp
bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnDQo+ID4gPiBDYzogbGludXgtZmJkZXZAdmdl
ci5rZXJuZWwub3JnOyBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnDQo+ID4gPiBTdWJq
ZWN0OiBbUEFUQ0ggdjMgMDQvMTddIGRybS9pOTE1L2RwOiBBZGQgd3JpdGluZyBvZiBEUCBTRFBz
DQo+ID4gPiAoU2Vjb25kYXJ5IERhdGENCj4gPiA+IFBhY2tldCkNCj4gPg0KPiA+IERyb3AgdGhp
bmdzIGluICgpLCBub3QgbmVlZGVkLg0KPiA+DQo+ID4gPiBJdCBhZGRzIHJvdXRpbmVzIHRoYXQg
d3JpdGUgRFAgVlNDIFNEUCBhbmQgRFAgSERSIE1ldGFkYXRhIEluZm9mcmFtZQ0KPiA+ID4gU0RQ
Lg0KPiA+ID4gSW4gb3JkZXIgdG8gcGFjayBEUCBWU0MgU0RQLCBpdCBhZGRzIGludGVsX2RwX3Zz
Y19zZHBfcGFjaygpDQo+ID4gPiBmdW5jdGlvbi4NCj4gPiA+IEl0IGZvbGxvd3MgRFAgMS40YSBz
cGVjLiBbVGFibGUgMi0xMTY6IFZTQyBTRFAgSGVhZGVyIEJ5dGVzXSBhbmQNCj4gPiA+IFtUYWJs
ZSAyLTExNzogVlNDIFNEUCBQYXlsb2FkIGZvciBEQjE2IHRocm91Z2ggREIxOF0NCj4gPiA+DQo+
ID4gPiBJbiBvcmRlciB0byBwYWNrIERQIEhEUiBNZXRhZGF0YSBJbmZvZnJhbWUgU0RQLCBpdCBh
ZGRzDQo+ID4gPiBpbnRlbF9kcF9oZHJfbWV0YWRhdGFfaW5mb2ZyYW1lX3NkcF9wYWNrKCkgZnVu
Y3Rpb24uDQo+ID4gPiBBbmQgaXQgZm9sbG93cyBEUCAxLjRhIHNwZWMuDQo+ID4gPiAoW1RhYmxl
IDItMTI1OiBJTkZPRlJBTUUgU0RQIHYxLjIgSGVhZGVyIEJ5dGVzXSBhbmQgW1RhYmxlIDItMTI2
Og0KPiA+ID4gSU5GT0ZSQU1FDQo+ID4gPiBTRFAgdjEuMiBQYXlsb2FkIERhdGEgQnl0ZXMgLSBE
QjAgdGhyb3VnaCBEQjMxXSkgYW5kIENUQS04NjEtRyBzcGVjLg0KPiA+ID4gW1RhYmxlLTQyIER5
bmFtaWMgUmFuZ2UgYW5kIE1hc3RlcmluZyBJbmZvRnJhbWVdLg0KPiA+ID4NCj4gPiA+IEEgbWFj
aGFuaXNtIGFuZCBhIG5hbWluZyBydWxlIG9mIGludGVsX2RwX3NldF9pbmZvZnJhbWVzKCkgZnVu
Y3Rpb24NCj4gPiA+IHJlZmVyZW5jZXMNCj4gPg0KPiA+IFR5cG8gaW4gbWVjaGFuaXNtLg0KPiA+
DQo+ID4gPiBpbnRlbF9lbmNvZGVyLT5zZXRfaW5mb2ZyYW1lcygpIG9mIGludGVsX2hkbWkuYyAu
DQo+ID4gPiBWU0MgU0RQIGlzIHVzZWQgZm9yIFBTUiBhbmQgUGl4ZWwgRW5jb2RpbmcgYW5kIENv
bG9yaW1ldHJ5IEZvcm1hdHMNCj4gPiA+IGNhc2VzLg0KPiA+ID4gQmVjYXVzZSBQU1Igcm91dGlu
ZSBoYXMgaXRzIG93biByb3V0aW5lIG9mIHdyaXRpbmcgYSBWU0MgU0RQLCB3aGVuDQo+ID4gPiB0
aGUgUFNSIGlzIGVuYWJsZWQsIGludGVsX2RwX3NldF9pbmZvZnJhbWVzKCkgZG9lcyBub3Qgd3Jp
dGUgYSBWU0MNCj4gPiA+IFNEUC4NCj4gPiA+DQo+ID4gPiB2MzoNCj4gPiA+ICAgLSBFeHBsaWNp
dGx5IGRpc2FibGUgdW51c2VkIERJUHMgKEFWSSwgR0NQLCBWUywgU1BELCBEUk0uIFRoZXkNCj4g
PiA+IHdpbGwgYmUNCj4gPiA+ICAgICB1c2VkIGZvciBIRE1JKSwgd2hlbiBpbnRlbF9kcF9zZXRf
aW5mb2ZyYW1lcygpIGZ1bmN0aW9uIHdpbGwgYmUNCj4gPiA+IGNhbGxlZC4NCj4gPiA+ICAgLSBS
ZXBsYWNlIGEgc3RydWN0dXJlIG5hbWUgdG8gZHJtX2RwX3ZzY19zZHAgZnJvbQ0KPiA+ID4gaW50
ZWxfZHBfdnNjX3NkcC4NCj4gPiA+DQo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBHd2FuLWd5ZW9uZyBN
dW4gPGd3YW4tZ3llb25nLm11bkBpbnRlbC5jb20+DQo+ID4gPiAtLS0NCj4gPiA+ICBkcml2ZXJz
L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMgfCAxOTQNCj4gPiA+ICsrKysrKysrKysr
KysrKysrKysrKysrKw0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf
ZHAuaCB8ICAgMyArDQo+ID4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAxOTcgaW5zZXJ0aW9ucygrKQ0K
PiA+ID4NCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu
dGVsX2RwLmMNCj4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5j
DQo+ID4gPiBpbmRleCBiMjY1YjVjNTk5ZjIuLmRkN2U1NTg4MDAxZSAxMDA2NDQNCj4gPiA+IC0t
LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYw0KPiA+ID4gKysrIGIv
ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jDQo+ID4gPiBAQCAtNDczMSw2
ICs0NzMxLDIwMCBAQCBpbnRlbF9kcF9uZWVkc192c2Nfc2RwKGNvbnN0IHN0cnVjdA0KPiA+ID4g
aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwNCj4gPiA+ICAJcmV0dXJuIGZhbHNlOw0KPiA+
ID4gIH0NCj4gPiA+DQo+ID4gPiArc3RhdGljIHNzaXplX3QgaW50ZWxfZHBfdnNjX3NkcF9wYWNr
KGNvbnN0IHN0cnVjdCBkcm1fZHBfdnNjX3NkcA0KPiA+ID4gKnZzYywNCj4gPiA+ICsJCQkJICAg
ICBzdHJ1Y3QgZHBfc2RwICpzZHAsIHNpemVfdCBzaXplKSB7DQo+ID4gPiArCXNpemVfdCBsZW5n
dGggPSBzaXplb2Yoc3RydWN0IGRwX3NkcCk7DQo+ID4gPiArDQo+ID4gPiArCWlmIChzaXplIDwg
bGVuZ3RoKQ0KPiA+ID4gKwkJcmV0dXJuIC1FTk9TUEM7DQo+ID4gPiArDQo+ID4gPiArCW1lbXNl
dChzZHAsIDAsIHNpemUpOw0KPiA+ID4gKw0KPiA+ID4gKwkvKg0KPiA+ID4gKwkgKiBQcmVwYXJl
IFZTQyBIZWFkZXIgZm9yIFNVIGFzIHBlciBEUCAxLjRhIHNwZWMsIFRhYmxlIDItMTE5DQo+ID4g
PiArCSAqIFZTQyBTRFAgSGVhZGVyIEJ5dGVzDQo+ID4gPiArCSAqLw0KPiA+ID4gKwlzZHAtPnNk
cF9oZWFkZXIuSEIwID0gMDsgLyogU2Vjb25kYXJ5LURhdGEgUGFja2V0IElEID0gMCAqLw0KPiA+
ID4gKwlzZHAtPnNkcF9oZWFkZXIuSEIxID0gdnNjLT5zZHBfdHlwZTsgLyogU2Vjb25kYXJ5LWRh
dGEgUGFja2V0DQo+ID4gPiBUeXBlICovDQo+ID4gPiArCXNkcC0+c2RwX2hlYWRlci5IQjIgPSB2
c2MtPnJldmlzaW9uOyAvKiBSZXZpc2lvbiBOdW1iZXIgKi8NCj4gPiA+ICsJc2RwLT5zZHBfaGVh
ZGVyLkhCMyA9IHZzYy0+bGVuZ3RoOyAvKiBOdW1iZXIgb2YgVmFsaWQgRGF0YQ0KPiA+ID4gQnl0
ZXMgKi8NCj4gPiA+ICsNCj4gPiA+ICsJLyogVlNDIFNEUCBQYXlsb2FkIGZvciBEQjE2IHRocm91
Z2ggREIxOCAqLw0KPiA+ID4gKwkvKiBQaXhlbCBFbmNvZGluZyBhbmQgQ29sb3JpbWV0cnkgRm9y
bWF0cyAgKi8NCj4gPiA+ICsJc2RwLT5kYlsxNl0gPSAodnNjLT5jb2xvcnNwYWNlICYgMHhmKSA8
PCA0OyAvKiBEQjE2Wzc6NF0gKi8NCj4gPiA+ICsJc2RwLT5kYlsxNl0gfD0gdnNjLT5jb2xvcmlt
ZXRyeSAmIDB4ZjsgLyogREIxNlszOjBdICovDQo+ID4gPiArDQo+ID4gPiArCXN3aXRjaCAodnNj
LT5icGMpIHsNCj4gPiA+ICsJY2FzZSA4Og0KPiA+ID4gKwkJc2RwLT5kYlsxN10gPSAweDE7IC8q
IERCMTdbMzowXSAqLw0KPiA+ID4gKwkJYnJlYWs7DQo+ID4gPiArCWNhc2UgMTA6DQo+ID4gPiAr
CQlzZHAtPmRiWzE3XSA9IDB4MjsNCj4gPiA+ICsJCWJyZWFrOw0KPiA+ID4gKwljYXNlIDEyOg0K
PiA+ID4gKwkJc2RwLT5kYlsxN10gPSAweDM7DQo+ID4gPiArCQlicmVhazsNCj4gPiA+ICsJY2Fz
ZSAxNjoNCj4gPiA+ICsJCXNkcC0+ZGJbMTddID0gMHg0Ow0KPiA+ID4gKwkJYnJlYWs7DQo+ID4g
PiArCWRlZmF1bHQ6DQo+ID4gPiArCQlNSVNTSU5HX0NBU0UodnNjLT5icGMpOw0KPiA+DQo+ID4g
NmJwYyBpcyBub3QgaGFuZGxlZCBoZXJlLCBhZGQgdGhhdCBhcyB3ZWxsLg0KPiA+DQo+IFllcywg
SSBtaXNzZWQgNmJwYyBjYXNlLCBJJ2xsIHVwZGF0ZSBpdC4NCj4gPiA+ICsJCWJyZWFrOw0KPiA+
ID4gKwl9DQo+ID4gPiArCS8qIER5bmFtaWMgUmFuZ2UgYW5kIENvbXBvbmVudCBCaXQgRGVwdGgg
Ki8NCj4gPiA+ICsJaWYgKHZzYy0+ZHluYW1pY19yYW5nZSA9PSBEUF9EWU5BTUlDX1JBTkdFX0NU
QSkNCj4gPiA+ICsJCXNkcC0+ZGJbMTddIHw9IDB4ODA7ICAvKiBEQjE3WzddICovDQo+ID4gPiAr
DQo+ID4gPiArCS8qIENvbnRlbnQgVHlwZSAqLw0KPiA+ID4gKwlzZHAtPmRiWzE4XSA9IHZzYy0+
Y29udGVudF90eXBlICYgMHg3Ow0KPiA+ID4gKw0KPiA+ID4gKwlyZXR1cm4gbGVuZ3RoOw0KPiA+
ID4gK30NCj4gPiA+ICsNCj4gPiA+ICtzdGF0aWMgc3NpemVfdA0KPiA+ID4gK2ludGVsX2RwX2hk
cl9tZXRhZGF0YV9pbmZvZnJhbWVfc2RwX3BhY2soY29uc3Qgc3RydWN0DQo+ID4gPiBoZG1pX2Ry
bV9pbmZvZnJhbWUNCj4gPiA+ICpkcm1faW5mb2ZyYW1lLA0KPiA+ID4gKwkJCQkJIHN0cnVjdCBk
cF9zZHAgKnNkcCwNCj4gPiA+ICsJCQkJCSBzaXplX3Qgc2l6ZSkNCj4gPiA+ICt7DQo+ID4gPiAr
CXNpemVfdCBsZW5ndGggPSBzaXplb2Yoc3RydWN0IGRwX3NkcCk7DQo+ID4gPiArCWNvbnN0IGlu
dCBpbmZvZnJhbWVfc2l6ZSA9IEhETUlfSU5GT0ZSQU1FX0hFQURFUl9TSVpFICsNCj4gPiA+IEhE
TUlfRFJNX0lORk9GUkFNRV9TSVpFOw0KPiA+ID4gKwl1bnNpZ25lZCBjaGFyIGJ1ZltIRE1JX0lO
Rk9GUkFNRV9IRUFERVJfU0laRSArDQo+ID4gPiBIRE1JX0RSTV9JTkZPRlJBTUVfU0laRV07DQo+
ID4gPiArCXNzaXplX3QgbGVuOw0KPiA+ID4gKw0KPiA+ID4gKwlpZiAoc2l6ZSA8IGxlbmd0aCkN
Cj4gPiA+ICsJCXJldHVybiAtRU5PU1BDOw0KPiA+ID4gKw0KPiA+ID4gKwltZW1zZXQoc2RwLCAw
LCBzaXplKTsNCj4gPiA+ICsNCj4gPiA+ICsJbGVuID0gaGRtaV9kcm1faW5mb2ZyYW1lX3BhY2tf
b25seShkcm1faW5mb2ZyYW1lLCBidWYsDQo+ID4gPiBzaXplb2YoYnVmKSk7DQo+ID4gPiArCWlm
IChsZW4gPCAwKSB7DQo+ID4gPiArCQlEUk1fREVCVUdfS01TKCJidWZmZXIgc2l6ZSBpcyBzbWFs
bGVyIHRoYW4gaGRyIG1ldGFkYXRhDQo+ID4gPiBpbmZvZnJhbWVcbiIpOw0KPiA+ID4gKwkJcmV0
dXJuIC1FTk9TUEM7DQo+ID4gPiArCX0NCj4gPiA+ICsNCj4gPiA+ICsJaWYgKGxlbiAhPSBpbmZv
ZnJhbWVfc2l6ZSkgew0KPiA+ID4gKwkJRFJNX0RFQlVHX0tNUygid3Jvbmcgc3RhdGljIGhkciBt
ZXRhZGF0YSBzaXplXG4iKTsNCj4gPiA+ICsJCXJldHVybiAtRU5PU1BDOw0KPiA+ID4gKwl9DQo+
ID4gPiArDQo+ID4gPiArCS8qDQo+ID4gPiArCSAqIFNldCB1cCB0aGUgaW5mb2ZyYW1lIHNkcCBw
YWNrZXQgZm9yIEhEUiBzdGF0aWMgbWV0YWRhdGEuDQo+ID4gPiArCSAqIFByZXBhcmUgVlNDIEhl
YWRlciBmb3IgU1UgYXMgcGVyIERQIDEuNGEgc3BlYywNCj4gPiA+ICsJICogVGFibGUgMi0xMDAg
YW5kIFRhYmxlIDItMTAxDQo+ID4gPiArCSAqLw0KPiA+ID4gKw0KPiA+ID4gKwkvKiBTZWNvbmRh
cnktRGF0YSBQYWNrZXQgSUQsIDAwaCBmb3Igbm9uLUF1ZGlvIElORk9GUkFNRSAqLw0KPiA+ID4g
KwlzZHAtPnNkcF9oZWFkZXIuSEIwID0gMDsNCj4gPiA+ICsJLyoNCj4gPiA+ICsJICogUGFja2V0
IFR5cGUgODBoICsgTm9uLWF1ZGlvIElORk9GUkFNRSBUeXBlIHZhbHVlDQo+ID4gPiArCSAqIEhE
TUlfSU5GT0ZSQU1FX1RZUEVfRFJNOiAweDg3DQo+ID4gPiArCSAqIC0gODBoICsgTm9uLWF1ZGlv
IElORk9GUkFNRSBUeXBlIHZhbHVlDQo+ID4gPiArCSAqIC0gSW5mb0ZyYW1lIFR5cGU6IDB4MDcN
Cj4gPiA+ICsJICogICAgW0NUQS04NjEtRyBUYWJsZS00MiBEeW5hbWljIFJhbmdlIGFuZCBNYXN0
ZXJpbmcNCj4gPiA+IEluZm9GcmFtZV0NCj4gPiA+ICsJICovDQo+ID4gPiArCXNkcC0+c2RwX2hl
YWRlci5IQjEgPSBkcm1faW5mb2ZyYW1lLT50eXBlOw0KPiA+ID4gKwkvKg0KPiA+ID4gKwkgKiBM
ZWFzdCBTaWduaWZpY2FudCBFaWdodCBCaXRzIG9mIChEYXRhIEJ5dGUgQ291bnQg4oCTIDEpDQo+
ID4gPiArCSAqIGluZm9mcmFtZV9zaXplIC0gMQ0KPiA+ID4gKwkgKi8NCj4gPiA+ICsJc2RwLT5z
ZHBfaGVhZGVyLkhCMiA9IDB4MUQ7DQo+ID4gPiArCS8qIElORk9GUkFNRSBTRFAgVmVyc2lvbiBO
dW1iZXIgKi8NCj4gPiA+ICsJc2RwLT5zZHBfaGVhZGVyLkhCMyA9ICgweDEzIDw8IDIpOw0KPiA+
ID4gKwkvKiBDVEEgSGVhZGVyIEJ5dGUgMiAoSU5GT0ZSQU1FIFZlcnNpb24gTnVtYmVyKSAqLw0K
PiA+ID4gKwlzZHAtPmRiWzBdID0gZHJtX2luZm9mcmFtZS0+dmVyc2lvbjsNCj4gPiA+ICsJLyog
Q1RBIEhlYWRlciBCeXRlIDMgKExlbmd0aCBvZiBJTkZPRlJBTUUpOg0KPiA+ID4gSERNSV9EUk1f
SU5GT0ZSQU1FX1NJWkUgKi8NCj4gPiA+ICsJc2RwLT5kYlsxXSA9IGRybV9pbmZvZnJhbWUtPmxl
bmd0aDsNCj4gPiA+ICsJLyoNCj4gPiA+ICsJICogQ29weSBIRE1JX0RSTV9JTkZPRlJBTUVfU0la
RSBzaXplIGZyb20gYSBidWZmZXIgYWZ0ZXINCj4gPg0KPiA+IENvbW1lbnQgTG9va3MgaW5jb21w
bGV0ZS4NCj4gPg0KPiBJIG1pc3NlZCBzb21lIGNvbW1lbnRzLCBJJ2xsIHVwZGF0ZSBpdC4NCj4g
PiA+ICsJICovDQo+ID4gPiArCUJVSUxEX0JVR19PTihzaXplb2Yoc2RwLT5kYikgPCBIRE1JX0RS
TV9JTkZPRlJBTUVfU0laRSArIDIpOw0KPiA+ID4gKwltZW1jcHkoJnNkcC0+ZGJbMl0sICZidWZb
SERNSV9JTkZPRlJBTUVfSEVBREVSX1NJWkVdLA0KPiA+ID4gKwkgICAgICAgSERNSV9EUk1fSU5G
T0ZSQU1FX1NJWkUpOw0KPiA+ID4gKw0KPiA+ID4gKwkvKg0KPiA+ID4gKwkgKiBTaXplIG9mIERQ
IGluZm9mcmFtZSBzZHAgcGFja2V0IGZvciBIRFIgc3RhdGljIG1ldGFkYXRhIGlzDQo+ID4gPiBj
b25zaXN0IG9mDQo+ID4NCj4gPiBEcm9wICJpcyINCj4gPg0KPiBJbmNsdWRlcyB0aGlzLCBJJ2xs
IHBvbGlzaCBwb2xpc2ggY29tbWl0IG1lc3NhZ2UgYW5kIGNvbW1lbnRzLg0KPiANCj4gPiA+ICsJ
ICogLSBEUCBTRFAgSGVhZGVyKHN0cnVjdCBkcF9zZHBfaGVhZGVyKTogNCBieXRlcw0KPiA+ID4g
KwkgKiAtIFR3byBEYXRhIEJsb2NrczogMiBieXRlcw0KPiA+ID4gKwkgKiAgICBDVEEgSGVhZGVy
IEJ5dGUyIChJTkZPRlJBTUUgVmVyc2lvbiBOdW1iZXIpDQo+ID4gPiArCSAqICAgIENUQSBIZWFk
ZXIgQnl0ZTMgKExlbmd0aCBvZiBJTkZPRlJBTUUpDQo+ID4gPiArCSAqIC0gSERNSV9EUk1fSU5G
T0ZSQU1FX1NJWkU6IDI2IGJ5dGVzDQo+ID4gPiArCSAqDQo+ID4gPiArCSAqIFByaW9yIHRvIEdF
TjExJ3MgR01QIHJlZ2lzdGVyIHNpemUgaXMgaWRlbnRpY2FsIHRvIERQIEhEUg0KPiA+ID4gc3Rh
dGljIG1ldGFkYXRhDQo+ID4gPiArCSAqIGluZm9mcmFtZSBzaXplLiBCdXQgR0VOMTErIGhhcyBs
YXJnZXIgdGhhbiB0aGF0IHNpemUsDQo+ID4gPiB3cml0ZV9pbmZvZnJhbWUNCj4gPiA+ICsJICog
d2lsbCBwYWQgcmVzdCBvZiB0aGUgc2l6ZS4NCj4gPiA+ICsJICovDQo+ID4gPiArCXJldHVybiBz
aXplb2Yoc3RydWN0IGRwX3NkcF9oZWFkZXIpICsgMiArDQo+ID4gPiBIRE1JX0RSTV9JTkZPRlJB
TUVfU0laRTsgfQ0KPiA+ID4gKw0KPiA+ID4gK3N0YXRpYyB2b2lkIGludGVsX3dyaXRlX2RwX3Nk
cChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwNCj4gPiA+ICsJCQkgICAgICAgY29uc3Qg
c3RydWN0IGludGVsX2NydGNfc3RhdGUNCj4gPiA+ICpjcnRjX3N0YXRlLA0KPiA+ID4gKwkJCSAg
ICAgICB1bnNpZ25lZCBpbnQgdHlwZSkNCj4gPiA+ICt7DQo+ID4gPiArCXN0cnVjdCBpbnRlbF9k
aWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0NCj4gPiA+IGVuY190b19kaWdfcG9ydChlbmNv
ZGVyKTsNCj4gPiA+ICsJc3RydWN0IGRwX3NkcCBzZHAgPSB7fTsNCj4gPiA+ICsJc3NpemVfdCBs
ZW47DQo+ID4gPiArDQo+ID4gPiArCWlmICgoY3J0Y19zdGF0ZS0+aW5mb2ZyYW1lcy5lbmFibGUg
Jg0KPiA+ID4gKwkgICAgIGludGVsX2hkbWlfaW5mb2ZyYW1lX2VuYWJsZSh0eXBlKSkgPT0gMCkN
Cj4gPiA+ICsJCXJldHVybjsNCj4gPiA+ICsNCj4gPiA+ICsJc3dpdGNoICh0eXBlKSB7DQo+ID4g
PiArCWNhc2UgRFBfU0RQX1ZTQzoNCj4gPiA+ICsJCWxlbiA9IGludGVsX2RwX3ZzY19zZHBfcGFj
aygmY3J0Y19zdGF0ZS0NCj4gPiA+ID5pbmZvZnJhbWVzLnZzYywgJnNkcCwNCj4gPiA+ICsJCQkJ
CSAgICBzaXplb2Yoc2RwKSk7DQo+ID4gPiArCQlicmVhazsNCj4gPiA+ICsJY2FzZSBIRE1JX1BB
Q0tFVF9UWVBFX0dBTVVUX01FVEFEQVRBOg0KPiA+ID4gKwkJbGVuID0NCj4gPiA+IGludGVsX2Rw
X2hkcl9tZXRhZGF0YV9pbmZvZnJhbWVfc2RwX3BhY2soJmNydGNfc3RhdGUtDQo+ID4gPiA+IGlu
Zm9mcmFtZXMuZHJtLmRybSwNCj4gPiA+ICsJCQkJCQkJICAgICAgICZzZHAsDQo+ID4gPiBzaXpl
b2Yoc2RwKSk7DQo+ID4gPiArCQlicmVhazsNCj4gPiA+ICsJZGVmYXVsdDoNCj4gPiA+ICsJCU1J
U1NJTkdfQ0FTRSh0eXBlKTsNCj4gPiA+ICsJCWJyZWFrOw0KPiA+ID4gKwl9DQo+ID4gPiArDQo+
ID4gPiArCWlmIChXQVJOX09OKGxlbiA8IDApKQ0KPiA+ID4gKwkJcmV0dXJuOw0KPiA+ID4gKw0K
PiA+ID4gKwlpbnRlbF9kaWdfcG9ydC0+d3JpdGVfaW5mb2ZyYW1lKGVuY29kZXIsIGNydGNfc3Rh
dGUsIHR5cGUsDQo+ID4gPiAmc2RwLCBsZW4pOw0KPiA+ID4gK30NCj4gPiA+ICsNCj4gPiA+ICt2
b2lkIGludGVsX2RwX3NldF9pbmZvZnJhbWVzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy
LA0KPiA+ID4gKwkJCSAgICAgYm9vbCBlbmFibGUsDQo+ID4gPiArCQkJICAgICBjb25zdCBzdHJ1
Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwNCj4gPiA+ICsJCQkgICAgIGNvbnN0IHN0
cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlDQo+ID4gPiAqY29ubl9zdGF0ZSkgew0KPiA+ID4gKwlz
dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2Uu
ZGV2KTsNCj4gPiA+ICsJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9k
cChlbmNvZGVyKTsNCj4gPiA+ICsJaTkxNV9yZWdfdCByZWcgPSBIU1dfVFZJREVPX0RJUF9DVEwo
Y3J0Y19zdGF0ZS0NCj4gPiA+ID5jcHVfdHJhbnNjb2Rlcik7DQo+ID4gPiArCXUzMiBkaXBfZW5h
YmxlID0gVklERU9fRElQX0VOQUJMRV9BVklfSFNXIHwNCj4gPiA+IFZJREVPX0RJUF9FTkFCTEVf
R0NQX0hTVyB8DQo+ID4gPiArCQkJIFZJREVPX0RJUF9FTkFCTEVfVlNfSFNXIHwNCj4gPiA+IFZJ
REVPX0RJUF9FTkFCTEVfR01QX0hTVyB8DQo+ID4gPiArCQkJIFZJREVPX0RJUF9FTkFCTEVfU1BE
X0hTVyB8DQo+ID4gPiBWSURFT19ESVBfRU5BQkxFX0RSTV9HTEs7DQo+ID4gPiArCXUzMiB2YWwg
PSBJOTE1X1JFQUQocmVnKTsNCj4gPiA+ICsNCj4gPiA+ICsJLyogVE9ETzogQWRkIERTQyBjYXNl
IChESVBfRU5BQkxFX1BQUykgKi8NCj4gPiA+ICsJLyogV2hlbiBQU1IgaXMgZW5hYmxlZCwgdGhp
cyByb3V0aW5lIGRvZXNuJ3QgZGlzYWJsZSBWU0MgRElQICovDQo+ID4gPiArCWlmIChpbnRlbF9w
c3JfZW5hYmxlZChpbnRlbF9kcCkpDQo+ID4gPiArCQl2YWwgJj0gfmRpcF9lbmFibGU7DQo+ID4g
PiArCWVsc2UNCj4gPiA+ICsJCXZhbCAmPSB+KGRpcF9lbmFibGUgfCBWSURFT19ESVBfRU5BQkxF
X1ZTQ19IU1cpOw0KPiA+DQo+ID4gZGlwX2VuYWJsZSBoYXMgVklERU9fRElQX0VOQUJMRV9WU0Nf
SFNXIGFscmVhZHkgaW4gaXQuIFBsZWFzZSBmaXgNCj4gPiB0aGlzLg0KPiA+DQo+IERlY2xhcmlu
ZyBvZiBkaXBfZW5hYmxlIGRvZXMgbm90IGluY2x1ZGUgVklERU9fRElQX0VOQUJMRV9WU0NfSFNX
Lg0KPiB0aGVyZWZvcmUgd2UgbmVlZCBpdCBoZXJlIHRvIGRpc2FibGUgVlNDIFNEUCBESVAuDQoN
Ck9oIG9rLCBUb29rIFZTIGZvciBWU0MuIFNjcmF0Y2ggbXkgZWFybGllciBjb21tZW50LCBjaGFu
Z2UgaXMgY29ycmVjdC4NCg0KPiA+ID4gKw0KPiA+ID4gKwlpZiAoIWVuYWJsZSkgew0KPiA+ID4g
KwkJSTkxNV9XUklURShyZWcsIHZhbCk7DQo+ID4gPiArCQlQT1NUSU5HX1JFQUQocmVnKTsNCj4g
PiA+ICsJCXJldHVybjsNCj4gPiA+ICsJfQ0KPiA+ID4gKw0KPiA+ID4gKwlJOTE1X1dSSVRFKHJl
ZywgdmFsKTsNCj4gPiA+ICsJUE9TVElOR19SRUFEKHJlZyk7DQo+ID4gPiArDQo+ID4gPiArCS8q
IFdoZW4gUFNSIGlzIGVuYWJsZWQsIFZTQyBTRFAgaXMgaGFuZGxlZCBieSBQU1Igcm91dGluZSAq
Lw0KPiA+ID4gKwlpZiAoIWludGVsX3Bzcl9lbmFibGVkKGludGVsX2RwKSkNCj4gPiA+ICsJCWlu
dGVsX3dyaXRlX2RwX3NkcChlbmNvZGVyLCBjcnRjX3N0YXRlLCBEUF9TRFBfVlNDKTsNCj4gPiA+
ICsNCj4gPiA+ICsJaW50ZWxfd3JpdGVfZHBfc2RwKGVuY29kZXIsIGNydGNfc3RhdGUsDQo+ID4g
PiArSERNSV9QQUNLRVRfVFlQRV9HQU1VVF9NRVRBREFUQSk7IH0NCj4gPiA+ICsNCj4gPiA+ICBz
dGF0aWMgdm9pZA0KPiA+ID4gIGludGVsX2RwX3NldHVwX3ZzY19zZHAoc3RydWN0IGludGVsX2Rw
ICppbnRlbF9kcCwNCj4gPiA+ICAJCSAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0
ZSAqY3J0Y19zdGF0ZSwgZGlmZiAtLWdpdA0KPiA+ID4gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k
aXNwbGF5L2ludGVsX2RwLmgNCj4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p
bnRlbF9kcC5oDQo+ID4gPiBpbmRleCAzZGExNjYwNTQ3ODguLjBkYzA5YTQ2M2VlMSAxMDA2NDQN
Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuaA0KPiA+
ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5oDQo+ID4gPiBA
QCAtMTE2LDYgKzExNiw5IEBAIHZvaWQgaW50ZWxfZHBfdnNjX2VuYWJsZShzdHJ1Y3QgaW50ZWxf
ZHANCj4gPiA+ICppbnRlbF9kcCwgIHZvaWQgaW50ZWxfZHBfaGRyX21ldGFkYXRhX2VuYWJsZShz
dHJ1Y3QgaW50ZWxfZHANCj4gPiA+ICppbnRlbF9kcCwNCj4gPiA+ICAJCQkJICBjb25zdCBzdHJ1
Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwNCj4gPiA+ICAJCQkJICBjb25zdCBzdHJ1
Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSk7DQo+ID4gPiArdm9pZCBpbnRlbF9k
cF9zZXRfaW5mb2ZyYW1lcyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwgYm9vbA0KPiA+
ID4gZW5hYmxlLA0KPiA+ID4gKwkJCSAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg
KmNydGNfc3RhdGUsDQo+ID4gPiArCQkJICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9z
dGF0ZQ0KPiA+ID4gKmNvbm5fc3RhdGUpOw0KPiA+ID4gIGJvb2wgaW50ZWxfZGlnaXRhbF9wb3J0
X2Nvbm5lY3RlZChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rlcik7DQo+ID4gPg0KPiA+ID4g
IHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGludGVsX2RwX3VudXNlZF9sYW5lX21hc2soaW50
DQo+ID4gPiBsYW5lX2NvdW50KQ0KPiA+ID4gLS0NCj4gPiA+IDIuMjQuMQ0KPiA+ID4NCj4gPiA+
IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+ID4gPiBk
cmktZGV2ZWwgbWFpbGluZyBsaXN0DQo+ID4gPiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au
b3JnDQo+ID4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv
L2RyaS1kZXZlbA0K

WARNING: multiple messages have this Message-ID (diff)
From: "Shankar, Uma" <uma.shankar@intel.com>
To: "Mun, Gwan-gyeong" <gwan-gyeong.mun@intel.com>,
	"intel-gfx@lists.freedesktop.org"
	<intel-gfx@lists.freedesktop.org>
Cc: "linux-fbdev@vger.kernel.org" <linux-fbdev@vger.kernel.org>,
	"dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>
Subject: RE: [PATCH v3 04/17] drm/i915/dp: Add writing of DP SDPs (Secondary Data Packet)
Date: Mon, 10 Feb 2020 08:16:15 +0000	[thread overview]
Message-ID: <E7C9878FBA1C6D42A1CA3F62AEB6945F823E2E20@BGSMSX104.gar.corp.intel.com> (raw)
In-Reply-To: <e22a59534e1bd395c57e6d3eb88eb550312bb81b.camel@intel.com>



> -----Original Message-----
> From: Mun, Gwan-gyeong <gwan-gyeong.mun@intel.com>
> Sent: Sunday, February 9, 2020 9:05 AM
> To: Shankar, Uma <uma.shankar@intel.com>; intel-gfx@lists.freedesktop.org
> Cc: dri-devel@lists.freedesktop.org; linux-fbdev@vger.kernel.org
> Subject: Re: [PATCH v3 04/17] drm/i915/dp: Add writing of DP SDPs (Secondary Data
> Packet)
> 
> On Wed, 2020-02-05 at 21:39 +0530, Shankar, Uma wrote:
> > > -----Original Message-----
> > > From: dri-devel <dri-devel-bounces@lists.freedesktop.org> On Behalf
> > > Of Gwan- gyeong Mun
> > > Sent: Tuesday, February 4, 2020 4:50 AM
> > > To: intel-gfx@lists.freedesktop.org
> > > Cc: linux-fbdev@vger.kernel.org; dri-devel@lists.freedesktop.org
> > > Subject: [PATCH v3 04/17] drm/i915/dp: Add writing of DP SDPs
> > > (Secondary Data
> > > Packet)
> >
> > Drop things in (), not needed.
> >
> > > It adds routines that write DP VSC SDP and DP HDR Metadata Infoframe
> > > SDP.
> > > In order to pack DP VSC SDP, it adds intel_dp_vsc_sdp_pack()
> > > function.
> > > It follows DP 1.4a spec. [Table 2-116: VSC SDP Header Bytes] and
> > > [Table 2-117: VSC SDP Payload for DB16 through DB18]
> > >
> > > In order to pack DP HDR Metadata Infoframe SDP, it adds
> > > intel_dp_hdr_metadata_infoframe_sdp_pack() function.
> > > And it follows DP 1.4a spec.
> > > ([Table 2-125: INFOFRAME SDP v1.2 Header Bytes] and [Table 2-126:
> > > INFOFRAME
> > > SDP v1.2 Payload Data Bytes - DB0 through DB31]) and CTA-861-G spec.
> > > [Table-42 Dynamic Range and Mastering InfoFrame].
> > >
> > > A machanism and a naming rule of intel_dp_set_infoframes() function
> > > references
> >
> > Typo in mechanism.
> >
> > > intel_encoder->set_infoframes() of intel_hdmi.c .
> > > VSC SDP is used for PSR and Pixel Encoding and Colorimetry Formats
> > > cases.
> > > Because PSR routine has its own routine of writing a VSC SDP, when
> > > the PSR is enabled, intel_dp_set_infoframes() does not write a VSC
> > > SDP.
> > >
> > > v3:
> > >   - Explicitly disable unused DIPs (AVI, GCP, VS, SPD, DRM. They
> > > will be
> > >     used for HDMI), when intel_dp_set_infoframes() function will be
> > > called.
> > >   - Replace a structure name to drm_dp_vsc_sdp from
> > > intel_dp_vsc_sdp.
> > >
> > > Signed-off-by: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com>
> > > ---
> > >  drivers/gpu/drm/i915/display/intel_dp.c | 194
> > > ++++++++++++++++++++++++
> > >  drivers/gpu/drm/i915/display/intel_dp.h |   3 +
> > >  2 files changed, 197 insertions(+)
> > >
> > > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c
> > > b/drivers/gpu/drm/i915/display/intel_dp.c
> > > index b265b5c599f2..dd7e5588001e 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_dp.c
> > > +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> > > @@ -4731,6 +4731,200 @@ intel_dp_needs_vsc_sdp(const struct
> > > intel_crtc_state *crtc_state,
> > >  	return false;
> > >  }
> > >
> > > +static ssize_t intel_dp_vsc_sdp_pack(const struct drm_dp_vsc_sdp
> > > *vsc,
> > > +				     struct dp_sdp *sdp, size_t size) {
> > > +	size_t length = sizeof(struct dp_sdp);
> > > +
> > > +	if (size < length)
> > > +		return -ENOSPC;
> > > +
> > > +	memset(sdp, 0, size);
> > > +
> > > +	/*
> > > +	 * Prepare VSC Header for SU as per DP 1.4a spec, Table 2-119
> > > +	 * VSC SDP Header Bytes
> > > +	 */
> > > +	sdp->sdp_header.HB0 = 0; /* Secondary-Data Packet ID = 0 */
> > > +	sdp->sdp_header.HB1 = vsc->sdp_type; /* Secondary-data Packet
> > > Type */
> > > +	sdp->sdp_header.HB2 = vsc->revision; /* Revision Number */
> > > +	sdp->sdp_header.HB3 = vsc->length; /* Number of Valid Data
> > > Bytes */
> > > +
> > > +	/* VSC SDP Payload for DB16 through DB18 */
> > > +	/* Pixel Encoding and Colorimetry Formats  */
> > > +	sdp->db[16] = (vsc->colorspace & 0xf) << 4; /* DB16[7:4] */
> > > +	sdp->db[16] |= vsc->colorimetry & 0xf; /* DB16[3:0] */
> > > +
> > > +	switch (vsc->bpc) {
> > > +	case 8:
> > > +		sdp->db[17] = 0x1; /* DB17[3:0] */
> > > +		break;
> > > +	case 10:
> > > +		sdp->db[17] = 0x2;
> > > +		break;
> > > +	case 12:
> > > +		sdp->db[17] = 0x3;
> > > +		break;
> > > +	case 16:
> > > +		sdp->db[17] = 0x4;
> > > +		break;
> > > +	default:
> > > +		MISSING_CASE(vsc->bpc);
> >
> > 6bpc is not handled here, add that as well.
> >
> Yes, I missed 6bpc case, I'll update it.
> > > +		break;
> > > +	}
> > > +	/* Dynamic Range and Component Bit Depth */
> > > +	if (vsc->dynamic_range == DP_DYNAMIC_RANGE_CTA)
> > > +		sdp->db[17] |= 0x80;  /* DB17[7] */
> > > +
> > > +	/* Content Type */
> > > +	sdp->db[18] = vsc->content_type & 0x7;
> > > +
> > > +	return length;
> > > +}
> > > +
> > > +static ssize_t
> > > +intel_dp_hdr_metadata_infoframe_sdp_pack(const struct
> > > hdmi_drm_infoframe
> > > *drm_infoframe,
> > > +					 struct dp_sdp *sdp,
> > > +					 size_t size)
> > > +{
> > > +	size_t length = sizeof(struct dp_sdp);
> > > +	const int infoframe_size = HDMI_INFOFRAME_HEADER_SIZE +
> > > HDMI_DRM_INFOFRAME_SIZE;
> > > +	unsigned char buf[HDMI_INFOFRAME_HEADER_SIZE +
> > > HDMI_DRM_INFOFRAME_SIZE];
> > > +	ssize_t len;
> > > +
> > > +	if (size < length)
> > > +		return -ENOSPC;
> > > +
> > > +	memset(sdp, 0, size);
> > > +
> > > +	len = hdmi_drm_infoframe_pack_only(drm_infoframe, buf,
> > > sizeof(buf));
> > > +	if (len < 0) {
> > > +		DRM_DEBUG_KMS("buffer size is smaller than hdr metadata
> > > infoframe\n");
> > > +		return -ENOSPC;
> > > +	}
> > > +
> > > +	if (len != infoframe_size) {
> > > +		DRM_DEBUG_KMS("wrong static hdr metadata size\n");
> > > +		return -ENOSPC;
> > > +	}
> > > +
> > > +	/*
> > > +	 * Set up the infoframe sdp packet for HDR static metadata.
> > > +	 * Prepare VSC Header for SU as per DP 1.4a spec,
> > > +	 * Table 2-100 and Table 2-101
> > > +	 */
> > > +
> > > +	/* Secondary-Data Packet ID, 00h for non-Audio INFOFRAME */
> > > +	sdp->sdp_header.HB0 = 0;
> > > +	/*
> > > +	 * Packet Type 80h + Non-audio INFOFRAME Type value
> > > +	 * HDMI_INFOFRAME_TYPE_DRM: 0x87
> > > +	 * - 80h + Non-audio INFOFRAME Type value
> > > +	 * - InfoFrame Type: 0x07
> > > +	 *    [CTA-861-G Table-42 Dynamic Range and Mastering
> > > InfoFrame]
> > > +	 */
> > > +	sdp->sdp_header.HB1 = drm_infoframe->type;
> > > +	/*
> > > +	 * Least Significant Eight Bits of (Data Byte Count – 1)
> > > +	 * infoframe_size - 1
> > > +	 */
> > > +	sdp->sdp_header.HB2 = 0x1D;
> > > +	/* INFOFRAME SDP Version Number */
> > > +	sdp->sdp_header.HB3 = (0x13 << 2);
> > > +	/* CTA Header Byte 2 (INFOFRAME Version Number) */
> > > +	sdp->db[0] = drm_infoframe->version;
> > > +	/* CTA Header Byte 3 (Length of INFOFRAME):
> > > HDMI_DRM_INFOFRAME_SIZE */
> > > +	sdp->db[1] = drm_infoframe->length;
> > > +	/*
> > > +	 * Copy HDMI_DRM_INFOFRAME_SIZE size from a buffer after
> >
> > Comment Looks incomplete.
> >
> I missed some comments, I'll update it.
> > > +	 */
> > > +	BUILD_BUG_ON(sizeof(sdp->db) < HDMI_DRM_INFOFRAME_SIZE + 2);
> > > +	memcpy(&sdp->db[2], &buf[HDMI_INFOFRAME_HEADER_SIZE],
> > > +	       HDMI_DRM_INFOFRAME_SIZE);
> > > +
> > > +	/*
> > > +	 * Size of DP infoframe sdp packet for HDR static metadata is
> > > consist of
> >
> > Drop "is"
> >
> Includes this, I'll polish polish commit message and comments.
> 
> > > +	 * - DP SDP Header(struct dp_sdp_header): 4 bytes
> > > +	 * - Two Data Blocks: 2 bytes
> > > +	 *    CTA Header Byte2 (INFOFRAME Version Number)
> > > +	 *    CTA Header Byte3 (Length of INFOFRAME)
> > > +	 * - HDMI_DRM_INFOFRAME_SIZE: 26 bytes
> > > +	 *
> > > +	 * Prior to GEN11's GMP register size is identical to DP HDR
> > > static metadata
> > > +	 * infoframe size. But GEN11+ has larger than that size,
> > > write_infoframe
> > > +	 * will pad rest of the size.
> > > +	 */
> > > +	return sizeof(struct dp_sdp_header) + 2 +
> > > HDMI_DRM_INFOFRAME_SIZE; }
> > > +
> > > +static void intel_write_dp_sdp(struct intel_encoder *encoder,
> > > +			       const struct intel_crtc_state
> > > *crtc_state,
> > > +			       unsigned int type)
> > > +{
> > > +	struct intel_digital_port *intel_dig_port =
> > > enc_to_dig_port(encoder);
> > > +	struct dp_sdp sdp = {};
> > > +	ssize_t len;
> > > +
> > > +	if ((crtc_state->infoframes.enable &
> > > +	     intel_hdmi_infoframe_enable(type)) == 0)
> > > +		return;
> > > +
> > > +	switch (type) {
> > > +	case DP_SDP_VSC:
> > > +		len = intel_dp_vsc_sdp_pack(&crtc_state-
> > > >infoframes.vsc, &sdp,
> > > +					    sizeof(sdp));
> > > +		break;
> > > +	case HDMI_PACKET_TYPE_GAMUT_METADATA:
> > > +		len =
> > > intel_dp_hdr_metadata_infoframe_sdp_pack(&crtc_state-
> > > > infoframes.drm.drm,
> > > +							       &sdp,
> > > sizeof(sdp));
> > > +		break;
> > > +	default:
> > > +		MISSING_CASE(type);
> > > +		break;
> > > +	}
> > > +
> > > +	if (WARN_ON(len < 0))
> > > +		return;
> > > +
> > > +	intel_dig_port->write_infoframe(encoder, crtc_state, type,
> > > &sdp, len);
> > > +}
> > > +
> > > +void intel_dp_set_infoframes(struct intel_encoder *encoder,
> > > +			     bool enable,
> > > +			     const struct intel_crtc_state *crtc_state,
> > > +			     const struct drm_connector_state
> > > *conn_state) {
> > > +	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> > > +	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
> > > +	i915_reg_t reg = HSW_TVIDEO_DIP_CTL(crtc_state-
> > > >cpu_transcoder);
> > > +	u32 dip_enable = VIDEO_DIP_ENABLE_AVI_HSW |
> > > VIDEO_DIP_ENABLE_GCP_HSW |
> > > +			 VIDEO_DIP_ENABLE_VS_HSW |
> > > VIDEO_DIP_ENABLE_GMP_HSW |
> > > +			 VIDEO_DIP_ENABLE_SPD_HSW |
> > > VIDEO_DIP_ENABLE_DRM_GLK;
> > > +	u32 val = I915_READ(reg);
> > > +
> > > +	/* TODO: Add DSC case (DIP_ENABLE_PPS) */
> > > +	/* When PSR is enabled, this routine doesn't disable VSC DIP */
> > > +	if (intel_psr_enabled(intel_dp))
> > > +		val &= ~dip_enable;
> > > +	else
> > > +		val &= ~(dip_enable | VIDEO_DIP_ENABLE_VSC_HSW);
> >
> > dip_enable has VIDEO_DIP_ENABLE_VSC_HSW already in it. Please fix
> > this.
> >
> Declaring of dip_enable does not include VIDEO_DIP_ENABLE_VSC_HSW.
> therefore we need it here to disable VSC SDP DIP.

Oh ok, Took VS for VSC. Scratch my earlier comment, change is correct.

> > > +
> > > +	if (!enable) {
> > > +		I915_WRITE(reg, val);
> > > +		POSTING_READ(reg);
> > > +		return;
> > > +	}
> > > +
> > > +	I915_WRITE(reg, val);
> > > +	POSTING_READ(reg);
> > > +
> > > +	/* When PSR is enabled, VSC SDP is handled by PSR routine */
> > > +	if (!intel_psr_enabled(intel_dp))
> > > +		intel_write_dp_sdp(encoder, crtc_state, DP_SDP_VSC);
> > > +
> > > +	intel_write_dp_sdp(encoder, crtc_state,
> > > +HDMI_PACKET_TYPE_GAMUT_METADATA); }
> > > +
> > >  static void
> > >  intel_dp_setup_vsc_sdp(struct intel_dp *intel_dp,
> > >  		       const struct intel_crtc_state *crtc_state, diff --git
> > > a/drivers/gpu/drm/i915/display/intel_dp.h
> > > b/drivers/gpu/drm/i915/display/intel_dp.h
> > > index 3da166054788..0dc09a463ee1 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_dp.h
> > > +++ b/drivers/gpu/drm/i915/display/intel_dp.h
> > > @@ -116,6 +116,9 @@ void intel_dp_vsc_enable(struct intel_dp
> > > *intel_dp,  void intel_dp_hdr_metadata_enable(struct intel_dp
> > > *intel_dp,
> > >  				  const struct intel_crtc_state *crtc_state,
> > >  				  const struct drm_connector_state *conn_state);
> > > +void intel_dp_set_infoframes(struct intel_encoder *encoder, bool
> > > enable,
> > > +			     const struct intel_crtc_state *crtc_state,
> > > +			     const struct drm_connector_state
> > > *conn_state);
> > >  bool intel_digital_port_connected(struct intel_encoder *encoder);
> > >
> > >  static inline unsigned int intel_dp_unused_lane_mask(int
> > > lane_count)
> > > --
> > > 2.24.1
> > >
> > > _______________________________________________
> > > dri-devel mailing list
> > > dri-devel@lists.freedesktop.org
> > > https://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

WARNING: multiple messages have this Message-ID (diff)
From: "Shankar, Uma" <uma.shankar@intel.com>
To: "Mun, Gwan-gyeong" <gwan-gyeong.mun@intel.com>,
	"intel-gfx@lists.freedesktop.org"
	<intel-gfx@lists.freedesktop.org>
Cc: "linux-fbdev@vger.kernel.org" <linux-fbdev@vger.kernel.org>,
	"dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>
Subject: Re: [Intel-gfx] [PATCH v3 04/17] drm/i915/dp: Add writing of DP SDPs (Secondary Data Packet)
Date: Mon, 10 Feb 2020 08:16:15 +0000	[thread overview]
Message-ID: <E7C9878FBA1C6D42A1CA3F62AEB6945F823E2E20@BGSMSX104.gar.corp.intel.com> (raw)
In-Reply-To: <e22a59534e1bd395c57e6d3eb88eb550312bb81b.camel@intel.com>



> -----Original Message-----
> From: Mun, Gwan-gyeong <gwan-gyeong.mun@intel.com>
> Sent: Sunday, February 9, 2020 9:05 AM
> To: Shankar, Uma <uma.shankar@intel.com>; intel-gfx@lists.freedesktop.org
> Cc: dri-devel@lists.freedesktop.org; linux-fbdev@vger.kernel.org
> Subject: Re: [PATCH v3 04/17] drm/i915/dp: Add writing of DP SDPs (Secondary Data
> Packet)
> 
> On Wed, 2020-02-05 at 21:39 +0530, Shankar, Uma wrote:
> > > -----Original Message-----
> > > From: dri-devel <dri-devel-bounces@lists.freedesktop.org> On Behalf
> > > Of Gwan- gyeong Mun
> > > Sent: Tuesday, February 4, 2020 4:50 AM
> > > To: intel-gfx@lists.freedesktop.org
> > > Cc: linux-fbdev@vger.kernel.org; dri-devel@lists.freedesktop.org
> > > Subject: [PATCH v3 04/17] drm/i915/dp: Add writing of DP SDPs
> > > (Secondary Data
> > > Packet)
> >
> > Drop things in (), not needed.
> >
> > > It adds routines that write DP VSC SDP and DP HDR Metadata Infoframe
> > > SDP.
> > > In order to pack DP VSC SDP, it adds intel_dp_vsc_sdp_pack()
> > > function.
> > > It follows DP 1.4a spec. [Table 2-116: VSC SDP Header Bytes] and
> > > [Table 2-117: VSC SDP Payload for DB16 through DB18]
> > >
> > > In order to pack DP HDR Metadata Infoframe SDP, it adds
> > > intel_dp_hdr_metadata_infoframe_sdp_pack() function.
> > > And it follows DP 1.4a spec.
> > > ([Table 2-125: INFOFRAME SDP v1.2 Header Bytes] and [Table 2-126:
> > > INFOFRAME
> > > SDP v1.2 Payload Data Bytes - DB0 through DB31]) and CTA-861-G spec.
> > > [Table-42 Dynamic Range and Mastering InfoFrame].
> > >
> > > A machanism and a naming rule of intel_dp_set_infoframes() function
> > > references
> >
> > Typo in mechanism.
> >
> > > intel_encoder->set_infoframes() of intel_hdmi.c .
> > > VSC SDP is used for PSR and Pixel Encoding and Colorimetry Formats
> > > cases.
> > > Because PSR routine has its own routine of writing a VSC SDP, when
> > > the PSR is enabled, intel_dp_set_infoframes() does not write a VSC
> > > SDP.
> > >
> > > v3:
> > >   - Explicitly disable unused DIPs (AVI, GCP, VS, SPD, DRM. They
> > > will be
> > >     used for HDMI), when intel_dp_set_infoframes() function will be
> > > called.
> > >   - Replace a structure name to drm_dp_vsc_sdp from
> > > intel_dp_vsc_sdp.
> > >
> > > Signed-off-by: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com>
> > > ---
> > >  drivers/gpu/drm/i915/display/intel_dp.c | 194
> > > ++++++++++++++++++++++++
> > >  drivers/gpu/drm/i915/display/intel_dp.h |   3 +
> > >  2 files changed, 197 insertions(+)
> > >
> > > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c
> > > b/drivers/gpu/drm/i915/display/intel_dp.c
> > > index b265b5c599f2..dd7e5588001e 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_dp.c
> > > +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> > > @@ -4731,6 +4731,200 @@ intel_dp_needs_vsc_sdp(const struct
> > > intel_crtc_state *crtc_state,
> > >  	return false;
> > >  }
> > >
> > > +static ssize_t intel_dp_vsc_sdp_pack(const struct drm_dp_vsc_sdp
> > > *vsc,
> > > +				     struct dp_sdp *sdp, size_t size) {
> > > +	size_t length = sizeof(struct dp_sdp);
> > > +
> > > +	if (size < length)
> > > +		return -ENOSPC;
> > > +
> > > +	memset(sdp, 0, size);
> > > +
> > > +	/*
> > > +	 * Prepare VSC Header for SU as per DP 1.4a spec, Table 2-119
> > > +	 * VSC SDP Header Bytes
> > > +	 */
> > > +	sdp->sdp_header.HB0 = 0; /* Secondary-Data Packet ID = 0 */
> > > +	sdp->sdp_header.HB1 = vsc->sdp_type; /* Secondary-data Packet
> > > Type */
> > > +	sdp->sdp_header.HB2 = vsc->revision; /* Revision Number */
> > > +	sdp->sdp_header.HB3 = vsc->length; /* Number of Valid Data
> > > Bytes */
> > > +
> > > +	/* VSC SDP Payload for DB16 through DB18 */
> > > +	/* Pixel Encoding and Colorimetry Formats  */
> > > +	sdp->db[16] = (vsc->colorspace & 0xf) << 4; /* DB16[7:4] */
> > > +	sdp->db[16] |= vsc->colorimetry & 0xf; /* DB16[3:0] */
> > > +
> > > +	switch (vsc->bpc) {
> > > +	case 8:
> > > +		sdp->db[17] = 0x1; /* DB17[3:0] */
> > > +		break;
> > > +	case 10:
> > > +		sdp->db[17] = 0x2;
> > > +		break;
> > > +	case 12:
> > > +		sdp->db[17] = 0x3;
> > > +		break;
> > > +	case 16:
> > > +		sdp->db[17] = 0x4;
> > > +		break;
> > > +	default:
> > > +		MISSING_CASE(vsc->bpc);
> >
> > 6bpc is not handled here, add that as well.
> >
> Yes, I missed 6bpc case, I'll update it.
> > > +		break;
> > > +	}
> > > +	/* Dynamic Range and Component Bit Depth */
> > > +	if (vsc->dynamic_range == DP_DYNAMIC_RANGE_CTA)
> > > +		sdp->db[17] |= 0x80;  /* DB17[7] */
> > > +
> > > +	/* Content Type */
> > > +	sdp->db[18] = vsc->content_type & 0x7;
> > > +
> > > +	return length;
> > > +}
> > > +
> > > +static ssize_t
> > > +intel_dp_hdr_metadata_infoframe_sdp_pack(const struct
> > > hdmi_drm_infoframe
> > > *drm_infoframe,
> > > +					 struct dp_sdp *sdp,
> > > +					 size_t size)
> > > +{
> > > +	size_t length = sizeof(struct dp_sdp);
> > > +	const int infoframe_size = HDMI_INFOFRAME_HEADER_SIZE +
> > > HDMI_DRM_INFOFRAME_SIZE;
> > > +	unsigned char buf[HDMI_INFOFRAME_HEADER_SIZE +
> > > HDMI_DRM_INFOFRAME_SIZE];
> > > +	ssize_t len;
> > > +
> > > +	if (size < length)
> > > +		return -ENOSPC;
> > > +
> > > +	memset(sdp, 0, size);
> > > +
> > > +	len = hdmi_drm_infoframe_pack_only(drm_infoframe, buf,
> > > sizeof(buf));
> > > +	if (len < 0) {
> > > +		DRM_DEBUG_KMS("buffer size is smaller than hdr metadata
> > > infoframe\n");
> > > +		return -ENOSPC;
> > > +	}
> > > +
> > > +	if (len != infoframe_size) {
> > > +		DRM_DEBUG_KMS("wrong static hdr metadata size\n");
> > > +		return -ENOSPC;
> > > +	}
> > > +
> > > +	/*
> > > +	 * Set up the infoframe sdp packet for HDR static metadata.
> > > +	 * Prepare VSC Header for SU as per DP 1.4a spec,
> > > +	 * Table 2-100 and Table 2-101
> > > +	 */
> > > +
> > > +	/* Secondary-Data Packet ID, 00h for non-Audio INFOFRAME */
> > > +	sdp->sdp_header.HB0 = 0;
> > > +	/*
> > > +	 * Packet Type 80h + Non-audio INFOFRAME Type value
> > > +	 * HDMI_INFOFRAME_TYPE_DRM: 0x87
> > > +	 * - 80h + Non-audio INFOFRAME Type value
> > > +	 * - InfoFrame Type: 0x07
> > > +	 *    [CTA-861-G Table-42 Dynamic Range and Mastering
> > > InfoFrame]
> > > +	 */
> > > +	sdp->sdp_header.HB1 = drm_infoframe->type;
> > > +	/*
> > > +	 * Least Significant Eight Bits of (Data Byte Count – 1)
> > > +	 * infoframe_size - 1
> > > +	 */
> > > +	sdp->sdp_header.HB2 = 0x1D;
> > > +	/* INFOFRAME SDP Version Number */
> > > +	sdp->sdp_header.HB3 = (0x13 << 2);
> > > +	/* CTA Header Byte 2 (INFOFRAME Version Number) */
> > > +	sdp->db[0] = drm_infoframe->version;
> > > +	/* CTA Header Byte 3 (Length of INFOFRAME):
> > > HDMI_DRM_INFOFRAME_SIZE */
> > > +	sdp->db[1] = drm_infoframe->length;
> > > +	/*
> > > +	 * Copy HDMI_DRM_INFOFRAME_SIZE size from a buffer after
> >
> > Comment Looks incomplete.
> >
> I missed some comments, I'll update it.
> > > +	 */
> > > +	BUILD_BUG_ON(sizeof(sdp->db) < HDMI_DRM_INFOFRAME_SIZE + 2);
> > > +	memcpy(&sdp->db[2], &buf[HDMI_INFOFRAME_HEADER_SIZE],
> > > +	       HDMI_DRM_INFOFRAME_SIZE);
> > > +
> > > +	/*
> > > +	 * Size of DP infoframe sdp packet for HDR static metadata is
> > > consist of
> >
> > Drop "is"
> >
> Includes this, I'll polish polish commit message and comments.
> 
> > > +	 * - DP SDP Header(struct dp_sdp_header): 4 bytes
> > > +	 * - Two Data Blocks: 2 bytes
> > > +	 *    CTA Header Byte2 (INFOFRAME Version Number)
> > > +	 *    CTA Header Byte3 (Length of INFOFRAME)
> > > +	 * - HDMI_DRM_INFOFRAME_SIZE: 26 bytes
> > > +	 *
> > > +	 * Prior to GEN11's GMP register size is identical to DP HDR
> > > static metadata
> > > +	 * infoframe size. But GEN11+ has larger than that size,
> > > write_infoframe
> > > +	 * will pad rest of the size.
> > > +	 */
> > > +	return sizeof(struct dp_sdp_header) + 2 +
> > > HDMI_DRM_INFOFRAME_SIZE; }
> > > +
> > > +static void intel_write_dp_sdp(struct intel_encoder *encoder,
> > > +			       const struct intel_crtc_state
> > > *crtc_state,
> > > +			       unsigned int type)
> > > +{
> > > +	struct intel_digital_port *intel_dig_port =
> > > enc_to_dig_port(encoder);
> > > +	struct dp_sdp sdp = {};
> > > +	ssize_t len;
> > > +
> > > +	if ((crtc_state->infoframes.enable &
> > > +	     intel_hdmi_infoframe_enable(type)) == 0)
> > > +		return;
> > > +
> > > +	switch (type) {
> > > +	case DP_SDP_VSC:
> > > +		len = intel_dp_vsc_sdp_pack(&crtc_state-
> > > >infoframes.vsc, &sdp,
> > > +					    sizeof(sdp));
> > > +		break;
> > > +	case HDMI_PACKET_TYPE_GAMUT_METADATA:
> > > +		len =
> > > intel_dp_hdr_metadata_infoframe_sdp_pack(&crtc_state-
> > > > infoframes.drm.drm,
> > > +							       &sdp,
> > > sizeof(sdp));
> > > +		break;
> > > +	default:
> > > +		MISSING_CASE(type);
> > > +		break;
> > > +	}
> > > +
> > > +	if (WARN_ON(len < 0))
> > > +		return;
> > > +
> > > +	intel_dig_port->write_infoframe(encoder, crtc_state, type,
> > > &sdp, len);
> > > +}
> > > +
> > > +void intel_dp_set_infoframes(struct intel_encoder *encoder,
> > > +			     bool enable,
> > > +			     const struct intel_crtc_state *crtc_state,
> > > +			     const struct drm_connector_state
> > > *conn_state) {
> > > +	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> > > +	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
> > > +	i915_reg_t reg = HSW_TVIDEO_DIP_CTL(crtc_state-
> > > >cpu_transcoder);
> > > +	u32 dip_enable = VIDEO_DIP_ENABLE_AVI_HSW |
> > > VIDEO_DIP_ENABLE_GCP_HSW |
> > > +			 VIDEO_DIP_ENABLE_VS_HSW |
> > > VIDEO_DIP_ENABLE_GMP_HSW |
> > > +			 VIDEO_DIP_ENABLE_SPD_HSW |
> > > VIDEO_DIP_ENABLE_DRM_GLK;
> > > +	u32 val = I915_READ(reg);
> > > +
> > > +	/* TODO: Add DSC case (DIP_ENABLE_PPS) */
> > > +	/* When PSR is enabled, this routine doesn't disable VSC DIP */
> > > +	if (intel_psr_enabled(intel_dp))
> > > +		val &= ~dip_enable;
> > > +	else
> > > +		val &= ~(dip_enable | VIDEO_DIP_ENABLE_VSC_HSW);
> >
> > dip_enable has VIDEO_DIP_ENABLE_VSC_HSW already in it. Please fix
> > this.
> >
> Declaring of dip_enable does not include VIDEO_DIP_ENABLE_VSC_HSW.
> therefore we need it here to disable VSC SDP DIP.

Oh ok, Took VS for VSC. Scratch my earlier comment, change is correct.

> > > +
> > > +	if (!enable) {
> > > +		I915_WRITE(reg, val);
> > > +		POSTING_READ(reg);
> > > +		return;
> > > +	}
> > > +
> > > +	I915_WRITE(reg, val);
> > > +	POSTING_READ(reg);
> > > +
> > > +	/* When PSR is enabled, VSC SDP is handled by PSR routine */
> > > +	if (!intel_psr_enabled(intel_dp))
> > > +		intel_write_dp_sdp(encoder, crtc_state, DP_SDP_VSC);
> > > +
> > > +	intel_write_dp_sdp(encoder, crtc_state,
> > > +HDMI_PACKET_TYPE_GAMUT_METADATA); }
> > > +
> > >  static void
> > >  intel_dp_setup_vsc_sdp(struct intel_dp *intel_dp,
> > >  		       const struct intel_crtc_state *crtc_state, diff --git
> > > a/drivers/gpu/drm/i915/display/intel_dp.h
> > > b/drivers/gpu/drm/i915/display/intel_dp.h
> > > index 3da166054788..0dc09a463ee1 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_dp.h
> > > +++ b/drivers/gpu/drm/i915/display/intel_dp.h
> > > @@ -116,6 +116,9 @@ void intel_dp_vsc_enable(struct intel_dp
> > > *intel_dp,  void intel_dp_hdr_metadata_enable(struct intel_dp
> > > *intel_dp,
> > >  				  const struct intel_crtc_state *crtc_state,
> > >  				  const struct drm_connector_state *conn_state);
> > > +void intel_dp_set_infoframes(struct intel_encoder *encoder, bool
> > > enable,
> > > +			     const struct intel_crtc_state *crtc_state,
> > > +			     const struct drm_connector_state
> > > *conn_state);
> > >  bool intel_digital_port_connected(struct intel_encoder *encoder);
> > >
> > >  static inline unsigned int intel_dp_unused_lane_mask(int
> > > lane_count)
> > > --
> > > 2.24.1
> > >
> > > _______________________________________________
> > > dri-devel mailing list
> > > dri-devel@lists.freedesktop.org
> > > https://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2020-02-10  8:16 UTC|newest]

Thread overview: 121+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-03 23:19 [PATCH v3 00/17] In order to readout DP SDPs, refactors the handling of DP SDPs Gwan-gyeong Mun
2020-02-03 23:19 ` [Intel-gfx] " Gwan-gyeong Mun
2020-02-03 23:19 ` Gwan-gyeong Mun
2020-02-03 23:19 ` [PATCH v3 01/17] drm: add DP 1.4 VSC SDP Payload related enums and a structure Gwan-gyeong Mun
2020-02-03 23:19   ` [Intel-gfx] " Gwan-gyeong Mun
2020-02-03 23:19   ` Gwan-gyeong Mun
2020-02-05 14:42   ` Shankar, Uma
2020-02-05 14:42     ` [Intel-gfx] " Shankar, Uma
2020-02-05 14:42     ` Shankar, Uma
2020-02-09  3:26     ` Mun, Gwan-gyeong
2020-02-09  3:26       ` [Intel-gfx] " Mun, Gwan-gyeong
2020-02-09  3:26       ` Mun, Gwan-gyeong
2020-02-03 23:19 ` [PATCH v3 02/17] drm/i915/dp: Add compute routine for DP VSC SDP Gwan-gyeong Mun
2020-02-03 23:19   ` [Intel-gfx] " Gwan-gyeong Mun
2020-02-03 23:19   ` Gwan-gyeong Mun
2020-02-05 14:51   ` Shankar, Uma
2020-02-05 14:51     ` [Intel-gfx] " Shankar, Uma
2020-02-05 14:51     ` Shankar, Uma
2020-02-03 23:20 ` [PATCH v3 03/17] drm/i915/dp: Add compute routine for DP HDR Metadata Infoframe SDP Gwan-gyeong Mun
2020-02-03 23:20   ` [Intel-gfx] " Gwan-gyeong Mun
2020-02-03 23:20   ` Gwan-gyeong Mun
2020-02-05 15:06   ` Shankar, Uma
2020-02-05 15:06     ` [Intel-gfx] " Shankar, Uma
2020-02-05 15:06     ` Shankar, Uma
2020-02-03 23:20 ` [PATCH v3 04/17] drm/i915/dp: Add writing of DP SDPs (Secondary Data Packet) Gwan-gyeong Mun
2020-02-03 23:20   ` [Intel-gfx] " Gwan-gyeong Mun
2020-02-03 23:20   ` Gwan-gyeong Mun
2020-02-05 16:09   ` Shankar, Uma
2020-02-05 16:09     ` [Intel-gfx] " Shankar, Uma
2020-02-05 16:09     ` Shankar, Uma
2020-02-09  3:34     ` Mun, Gwan-gyeong
2020-02-09  3:34       ` [Intel-gfx] " Mun, Gwan-gyeong
2020-02-09  3:34       ` Mun, Gwan-gyeong
2020-02-10  8:16       ` Shankar, Uma [this message]
2020-02-10  8:16         ` [Intel-gfx] " Shankar, Uma
2020-02-10  8:16         ` Shankar, Uma
2020-02-03 23:20 ` [PATCH v3 05/17] video/hdmi: Add Unpack only function for DRM infoframe Gwan-gyeong Mun
2020-02-03 23:20   ` [Intel-gfx] " Gwan-gyeong Mun
2020-02-03 23:20   ` Gwan-gyeong Mun
2020-02-05 16:15   ` [Intel-gfx] " Shankar, Uma
2020-02-05 16:15     ` Shankar, Uma
2020-02-05 16:15     ` Shankar, Uma
2020-02-03 23:20 ` [PATCH v3 06/17] drm/i915/dp: Read out DP SDPs (Secondary Data Packet) Gwan-gyeong Mun
2020-02-03 23:20   ` [Intel-gfx] " Gwan-gyeong Mun
2020-02-03 23:20   ` Gwan-gyeong Mun
2020-02-05 16:29   ` Shankar, Uma
2020-02-05 16:29     ` [Intel-gfx] " Shankar, Uma
2020-02-05 16:29     ` Shankar, Uma
2020-02-09  3:38     ` Mun, Gwan-gyeong
2020-02-09  3:38       ` [Intel-gfx] " Mun, Gwan-gyeong
2020-02-09  3:38       ` Mun, Gwan-gyeong
2020-02-03 23:20 ` [PATCH v3 07/17] drm: Add logging function for DP VSC SDP Gwan-gyeong Mun
2020-02-03 23:20   ` [Intel-gfx] " Gwan-gyeong Mun
2020-02-03 23:20   ` Gwan-gyeong Mun
2020-02-05 16:38   ` [Intel-gfx] " Shankar, Uma
2020-02-05 16:38     ` Shankar, Uma
2020-02-05 16:38     ` Shankar, Uma
2020-02-03 23:20 ` [PATCH v3 08/17] drm/i915: Include HDMI DRM infoframe in the crtc state dump Gwan-gyeong Mun
2020-02-03 23:20   ` [Intel-gfx] " Gwan-gyeong Mun
2020-02-03 23:20   ` Gwan-gyeong Mun
2020-02-05 16:42   ` Shankar, Uma
2020-02-05 16:42     ` [Intel-gfx] " Shankar, Uma
2020-02-05 16:42     ` Shankar, Uma
2020-02-03 23:20 ` [PATCH v3 09/17] drm/i915: Include DP HDR Metadata Infoframe SDP " Gwan-gyeong Mun
2020-02-03 23:20   ` [Intel-gfx] " Gwan-gyeong Mun
2020-02-03 23:20   ` Gwan-gyeong Mun
2020-02-05 16:44   ` Shankar, Uma
2020-02-05 16:44     ` [Intel-gfx] " Shankar, Uma
2020-02-05 16:44     ` Shankar, Uma
2020-02-03 23:20 ` [PATCH v3 10/17] drm/i915: Include DP VSC " Gwan-gyeong Mun
2020-02-03 23:20   ` [Intel-gfx] " Gwan-gyeong Mun
2020-02-03 23:20   ` Gwan-gyeong Mun
2020-02-05 16:46   ` Shankar, Uma
2020-02-05 16:46     ` [Intel-gfx] " Shankar, Uma
2020-02-05 16:46     ` Shankar, Uma
2020-02-03 23:20 ` [PATCH v3 11/17] drm/i915: Program DP SDPs with computed configs Gwan-gyeong Mun
2020-02-03 23:20   ` [Intel-gfx] " Gwan-gyeong Mun
2020-02-03 23:20   ` Gwan-gyeong Mun
2020-02-05 16:51   ` [Intel-gfx] " Shankar, Uma
2020-02-05 16:51     ` Shankar, Uma
2020-02-05 16:51     ` Shankar, Uma
2020-02-09  3:40     ` Mun, Gwan-gyeong
2020-02-09  3:40       ` Mun, Gwan-gyeong
2020-02-09  3:40       ` Mun, Gwan-gyeong
2020-02-03 23:20 ` [PATCH v3 12/17] drm/i915: Add state readout for DP HDR Metadata Infoframe SDP Gwan-gyeong Mun
2020-02-03 23:20   ` [Intel-gfx] " Gwan-gyeong Mun
2020-02-03 23:20   ` Gwan-gyeong Mun
2020-02-05 16:54   ` [Intel-gfx] " Shankar, Uma
2020-02-05 16:54     ` Shankar, Uma
2020-02-05 16:54     ` Shankar, Uma
2020-02-03 23:20 ` [PATCH v3 13/17] drm/i915: Add state readout for DP VSC SDP Gwan-gyeong Mun
2020-02-03 23:20   ` [Intel-gfx] " Gwan-gyeong Mun
2020-02-03 23:20   ` Gwan-gyeong Mun
2020-02-05 17:00   ` Shankar, Uma
2020-02-05 17:00     ` [Intel-gfx] " Shankar, Uma
2020-02-05 17:00     ` Shankar, Uma
2020-02-03 23:20 ` [PATCH v3 14/17] drm/i915: Program DP SDPs on pipe updates Gwan-gyeong Mun
2020-02-03 23:20   ` [Intel-gfx] " Gwan-gyeong Mun
2020-02-03 23:20   ` Gwan-gyeong Mun
2020-02-05 17:02   ` Shankar, Uma
2020-02-05 17:02     ` [Intel-gfx] " Shankar, Uma
2020-02-05 17:02     ` Shankar, Uma
2020-02-03 23:20 ` [PATCH v3 15/17] drm/i915: Stop sending DP SDPs on intel_ddi_post_disable_dp() Gwan-gyeong Mun
2020-02-03 23:20   ` [Intel-gfx] " Gwan-gyeong Mun
2020-02-03 23:20   ` Gwan-gyeong Mun
2020-02-05 17:05   ` Shankar, Uma
2020-02-05 17:05     ` [Intel-gfx] " Shankar, Uma
2020-02-05 17:05     ` Shankar, Uma
2020-02-03 23:20 ` [PATCH v3 16/17] drm/i915/dp: Add compute routine for DP PSR VSC SDP Gwan-gyeong Mun
2020-02-03 23:20   ` [Intel-gfx] " Gwan-gyeong Mun
2020-02-03 23:20   ` Gwan-gyeong Mun
2020-02-05 17:12   ` Shankar, Uma
2020-02-05 17:12     ` [Intel-gfx] " Shankar, Uma
2020-02-05 17:12     ` Shankar, Uma
2020-02-03 23:20 ` [PATCH v3 17/17] drm/i915/psr: Use new DP VSC SDP compute routine on PSR Gwan-gyeong Mun
2020-02-03 23:20   ` [Intel-gfx] " Gwan-gyeong Mun
2020-02-03 23:20   ` Gwan-gyeong Mun
2020-02-05 17:15   ` [Intel-gfx] " Shankar, Uma
2020-02-05 17:15     ` Shankar, Uma
2020-02-05 17:15     ` Shankar, Uma
2020-02-04 20:32 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for In order to readout DP SDPs, refactors the handling of DP SDPs (rev3) Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=E7C9878FBA1C6D42A1CA3F62AEB6945F823E2E20@BGSMSX104.gar.corp.intel.com \
    --to=uma.shankar@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=gwan-gyeong.mun@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=linux-fbdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.