All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Mun, Gwan-gyeong" <gwan-gyeong.mun@intel.com>
To: "Shankar, Uma" <uma.shankar@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: Sun, 09 Feb 2020 03:34:56 +0000	[thread overview]
Message-ID: <e22a59534e1bd395c57e6d3eb88eb550312bb81b.camel@intel.com> (raw)
In-Reply-To: <E7C9878FBA1C6D42A1CA3F62AEB6945F823DCF97@BGSMSX104.gar.corp.intel.com>

T24gV2VkLCAyMDIwLTAyLTA1IGF0IDIxOjM5ICswNTMwLCBTaGFua2FyLCBVbWEgd3JvdGU6DQo+
ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBkcmktZGV2ZWwgPGRyaS1k
ZXZlbC1ib3VuY2VzQGxpc3RzLmZyZWVkZXNrdG9wLm9yZz4gT24gQmVoYWxmDQo+ID4gT2YgR3dh
bi0NCj4gPiBneWVvbmcgTXVuDQo+ID4gU2VudDogVHVlc2RheSwgRmVicnVhcnkgNCwgMjAyMCA0
OjUwIEFNDQo+ID4gVG86IGludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcNCj4gPiBDYzog
bGludXgtZmJkZXZAdmdlci5rZXJuZWwub3JnOyBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au
b3JnDQo+ID4gU3ViamVjdDogW1BBVENIIHYzIDA0LzE3XSBkcm0vaTkxNS9kcDogQWRkIHdyaXRp
bmcgb2YgRFAgU0RQcw0KPiA+IChTZWNvbmRhcnkgRGF0YQ0KPiA+IFBhY2tldCkNCj4gDQo+IERy
b3AgdGhpbmdzIGluICgpLCBub3QgbmVlZGVkLg0KPiANCj4gPiBJdCBhZGRzIHJvdXRpbmVzIHRo
YXQgd3JpdGUgRFAgVlNDIFNEUCBhbmQgRFAgSERSIE1ldGFkYXRhDQo+ID4gSW5mb2ZyYW1lIFNE
UC4NCj4gPiBJbiBvcmRlciB0byBwYWNrIERQIFZTQyBTRFAsIGl0IGFkZHMgaW50ZWxfZHBfdnNj
X3NkcF9wYWNrKCkNCj4gPiBmdW5jdGlvbi4NCj4gPiBJdCBmb2xsb3dzIERQIDEuNGEgc3BlYy4g
W1RhYmxlIDItMTE2OiBWU0MgU0RQIEhlYWRlciBCeXRlc10gYW5kDQo+ID4gW1RhYmxlIDItMTE3
OiBWU0MNCj4gPiBTRFAgUGF5bG9hZCBmb3IgREIxNiB0aHJvdWdoIERCMThdDQo+ID4gDQo+ID4g
SW4gb3JkZXIgdG8gcGFjayBEUCBIRFIgTWV0YWRhdGEgSW5mb2ZyYW1lIFNEUCwgaXQgYWRkcw0K
PiA+IGludGVsX2RwX2hkcl9tZXRhZGF0YV9pbmZvZnJhbWVfc2RwX3BhY2soKSBmdW5jdGlvbi4N
Cj4gPiBBbmQgaXQgZm9sbG93cyBEUCAxLjRhIHNwZWMuDQo+ID4gKFtUYWJsZSAyLTEyNTogSU5G
T0ZSQU1FIFNEUCB2MS4yIEhlYWRlciBCeXRlc10gYW5kIFtUYWJsZSAyLTEyNjoNCj4gPiBJTkZP
RlJBTUUNCj4gPiBTRFAgdjEuMiBQYXlsb2FkIERhdGEgQnl0ZXMgLSBEQjAgdGhyb3VnaCBEQjMx
XSkgYW5kIENUQS04NjEtRw0KPiA+IHNwZWMuIFtUYWJsZS00Mg0KPiA+IER5bmFtaWMgUmFuZ2Ug
YW5kIE1hc3RlcmluZyBJbmZvRnJhbWVdLg0KPiA+IA0KPiA+IEEgbWFjaGFuaXNtIGFuZCBhIG5h
bWluZyBydWxlIG9mIGludGVsX2RwX3NldF9pbmZvZnJhbWVzKCkgZnVuY3Rpb24NCj4gPiByZWZl
cmVuY2VzDQo+IA0KPiBUeXBvIGluIG1lY2hhbmlzbS4NCj4gDQo+ID4gaW50ZWxfZW5jb2Rlci0+
c2V0X2luZm9mcmFtZXMoKSBvZiBpbnRlbF9oZG1pLmMgLg0KPiA+IFZTQyBTRFAgaXMgdXNlZCBm
b3IgUFNSIGFuZCBQaXhlbCBFbmNvZGluZyBhbmQgQ29sb3JpbWV0cnkgRm9ybWF0cw0KPiA+IGNh
c2VzLg0KPiA+IEJlY2F1c2UgUFNSIHJvdXRpbmUgaGFzIGl0cyBvd24gcm91dGluZSBvZiB3cml0
aW5nIGEgVlNDIFNEUCwgd2hlbg0KPiA+IHRoZSBQU1IgaXMNCj4gPiBlbmFibGVkLCBpbnRlbF9k
cF9zZXRfaW5mb2ZyYW1lcygpIGRvZXMgbm90IHdyaXRlIGEgVlNDIFNEUC4NCj4gPiANCj4gPiB2
MzoNCj4gPiAgIC0gRXhwbGljaXRseSBkaXNhYmxlIHVudXNlZCBESVBzIChBVkksIEdDUCwgVlMs
IFNQRCwgRFJNLiBUaGV5DQo+ID4gd2lsbCBiZQ0KPiA+ICAgICB1c2VkIGZvciBIRE1JKSwgd2hl
biBpbnRlbF9kcF9zZXRfaW5mb2ZyYW1lcygpIGZ1bmN0aW9uIHdpbGwgYmUNCj4gPiBjYWxsZWQu
DQo+ID4gICAtIFJlcGxhY2UgYSBzdHJ1Y3R1cmUgbmFtZSB0byBkcm1fZHBfdnNjX3NkcCBmcm9t
DQo+ID4gaW50ZWxfZHBfdnNjX3NkcC4NCj4gPiANCj4gPiBTaWduZWQtb2ZmLWJ5OiBHd2FuLWd5
ZW9uZyBNdW4gPGd3YW4tZ3llb25nLm11bkBpbnRlbC5jb20+DQo+ID4gLS0tDQo+ID4gIGRyaXZl
cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYyB8IDE5NA0KPiA+ICsrKysrKysrKysr
KysrKysrKysrKysrKw0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rw
LmggfCAgIDMgKw0KPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDE5NyBpbnNlcnRpb25zKCspDQo+ID4g
DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAu
Yw0KPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jDQo+ID4gaW5k
ZXggYjI2NWI1YzU5OWYyLi5kZDdlNTU4ODAwMWUgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9n
cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJt
L2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jDQo+ID4gQEAgLTQ3MzEsNiArNDczMSwyMDAgQEAgaW50
ZWxfZHBfbmVlZHNfdnNjX3NkcChjb25zdCBzdHJ1Y3QNCj4gPiBpbnRlbF9jcnRjX3N0YXRlDQo+
ID4gKmNydGNfc3RhdGUsDQo+ID4gIAlyZXR1cm4gZmFsc2U7DQo+ID4gIH0NCj4gPiANCj4gPiAr
c3RhdGljIHNzaXplX3QgaW50ZWxfZHBfdnNjX3NkcF9wYWNrKGNvbnN0IHN0cnVjdCBkcm1fZHBf
dnNjX3NkcA0KPiA+ICp2c2MsDQo+ID4gKwkJCQkgICAgIHN0cnVjdCBkcF9zZHAgKnNkcCwgc2l6
ZV90IHNpemUpIHsNCj4gPiArCXNpemVfdCBsZW5ndGggPSBzaXplb2Yoc3RydWN0IGRwX3NkcCk7
DQo+ID4gKw0KPiA+ICsJaWYgKHNpemUgPCBsZW5ndGgpDQo+ID4gKwkJcmV0dXJuIC1FTk9TUEM7
DQo+ID4gKw0KPiA+ICsJbWVtc2V0KHNkcCwgMCwgc2l6ZSk7DQo+ID4gKw0KPiA+ICsJLyoNCj4g
PiArCSAqIFByZXBhcmUgVlNDIEhlYWRlciBmb3IgU1UgYXMgcGVyIERQIDEuNGEgc3BlYywgVGFi
bGUgMi0xMTkNCj4gPiArCSAqIFZTQyBTRFAgSGVhZGVyIEJ5dGVzDQo+ID4gKwkgKi8NCj4gPiAr
CXNkcC0+c2RwX2hlYWRlci5IQjAgPSAwOyAvKiBTZWNvbmRhcnktRGF0YSBQYWNrZXQgSUQgPSAw
ICovDQo+ID4gKwlzZHAtPnNkcF9oZWFkZXIuSEIxID0gdnNjLT5zZHBfdHlwZTsgLyogU2Vjb25k
YXJ5LWRhdGEgUGFja2V0DQo+ID4gVHlwZSAqLw0KPiA+ICsJc2RwLT5zZHBfaGVhZGVyLkhCMiA9
IHZzYy0+cmV2aXNpb247IC8qIFJldmlzaW9uIE51bWJlciAqLw0KPiA+ICsJc2RwLT5zZHBfaGVh
ZGVyLkhCMyA9IHZzYy0+bGVuZ3RoOyAvKiBOdW1iZXIgb2YgVmFsaWQgRGF0YQ0KPiA+IEJ5dGVz
ICovDQo+ID4gKw0KPiA+ICsJLyogVlNDIFNEUCBQYXlsb2FkIGZvciBEQjE2IHRocm91Z2ggREIx
OCAqLw0KPiA+ICsJLyogUGl4ZWwgRW5jb2RpbmcgYW5kIENvbG9yaW1ldHJ5IEZvcm1hdHMgICov
DQo+ID4gKwlzZHAtPmRiWzE2XSA9ICh2c2MtPmNvbG9yc3BhY2UgJiAweGYpIDw8IDQ7IC8qIERC
MTZbNzo0XSAqLw0KPiA+ICsJc2RwLT5kYlsxNl0gfD0gdnNjLT5jb2xvcmltZXRyeSAmIDB4Zjsg
LyogREIxNlszOjBdICovDQo+ID4gKw0KPiA+ICsJc3dpdGNoICh2c2MtPmJwYykgew0KPiA+ICsJ
Y2FzZSA4Og0KPiA+ICsJCXNkcC0+ZGJbMTddID0gMHgxOyAvKiBEQjE3WzM6MF0gKi8NCj4gPiAr
CQlicmVhazsNCj4gPiArCWNhc2UgMTA6DQo+ID4gKwkJc2RwLT5kYlsxN10gPSAweDI7DQo+ID4g
KwkJYnJlYWs7DQo+ID4gKwljYXNlIDEyOg0KPiA+ICsJCXNkcC0+ZGJbMTddID0gMHgzOw0KPiA+
ICsJCWJyZWFrOw0KPiA+ICsJY2FzZSAxNjoNCj4gPiArCQlzZHAtPmRiWzE3XSA9IDB4NDsNCj4g
PiArCQlicmVhazsNCj4gPiArCWRlZmF1bHQ6DQo+ID4gKwkJTUlTU0lOR19DQVNFKHZzYy0+YnBj
KTsNCj4gDQo+IDZicGMgaXMgbm90IGhhbmRsZWQgaGVyZSwgYWRkIHRoYXQgYXMgd2VsbC4NCj4g
DQpZZXMsIEkgbWlzc2VkIDZicGMgY2FzZSwgSSdsbCB1cGRhdGUgaXQuDQo+ID4gKwkJYnJlYWs7
DQo+ID4gKwl9DQo+ID4gKwkvKiBEeW5hbWljIFJhbmdlIGFuZCBDb21wb25lbnQgQml0IERlcHRo
ICovDQo+ID4gKwlpZiAodnNjLT5keW5hbWljX3JhbmdlID09IERQX0RZTkFNSUNfUkFOR0VfQ1RB
KQ0KPiA+ICsJCXNkcC0+ZGJbMTddIHw9IDB4ODA7ICAvKiBEQjE3WzddICovDQo+ID4gKw0KPiA+
ICsJLyogQ29udGVudCBUeXBlICovDQo+ID4gKwlzZHAtPmRiWzE4XSA9IHZzYy0+Y29udGVudF90
eXBlICYgMHg3Ow0KPiA+ICsNCj4gPiArCXJldHVybiBsZW5ndGg7DQo+ID4gK30NCj4gPiArDQo+
ID4gK3N0YXRpYyBzc2l6ZV90DQo+ID4gK2ludGVsX2RwX2hkcl9tZXRhZGF0YV9pbmZvZnJhbWVf
c2RwX3BhY2soY29uc3Qgc3RydWN0DQo+ID4gaGRtaV9kcm1faW5mb2ZyYW1lDQo+ID4gKmRybV9p
bmZvZnJhbWUsDQo+ID4gKwkJCQkJIHN0cnVjdCBkcF9zZHAgKnNkcCwNCj4gPiArCQkJCQkgc2l6
ZV90IHNpemUpDQo+ID4gK3sNCj4gPiArCXNpemVfdCBsZW5ndGggPSBzaXplb2Yoc3RydWN0IGRw
X3NkcCk7DQo+ID4gKwljb25zdCBpbnQgaW5mb2ZyYW1lX3NpemUgPSBIRE1JX0lORk9GUkFNRV9I
RUFERVJfU0laRSArDQo+ID4gSERNSV9EUk1fSU5GT0ZSQU1FX1NJWkU7DQo+ID4gKwl1bnNpZ25l
ZCBjaGFyIGJ1ZltIRE1JX0lORk9GUkFNRV9IRUFERVJfU0laRSArDQo+ID4gSERNSV9EUk1fSU5G
T0ZSQU1FX1NJWkVdOw0KPiA+ICsJc3NpemVfdCBsZW47DQo+ID4gKw0KPiA+ICsJaWYgKHNpemUg
PCBsZW5ndGgpDQo+ID4gKwkJcmV0dXJuIC1FTk9TUEM7DQo+ID4gKw0KPiA+ICsJbWVtc2V0KHNk
cCwgMCwgc2l6ZSk7DQo+ID4gKw0KPiA+ICsJbGVuID0gaGRtaV9kcm1faW5mb2ZyYW1lX3BhY2tf
b25seShkcm1faW5mb2ZyYW1lLCBidWYsDQo+ID4gc2l6ZW9mKGJ1ZikpOw0KPiA+ICsJaWYgKGxl
biA8IDApIHsNCj4gPiArCQlEUk1fREVCVUdfS01TKCJidWZmZXIgc2l6ZSBpcyBzbWFsbGVyIHRo
YW4gaGRyIG1ldGFkYXRhDQo+ID4gaW5mb2ZyYW1lXG4iKTsNCj4gPiArCQlyZXR1cm4gLUVOT1NQ
QzsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwlpZiAobGVuICE9IGluZm9mcmFtZV9zaXplKSB7DQo+
ID4gKwkJRFJNX0RFQlVHX0tNUygid3Jvbmcgc3RhdGljIGhkciBtZXRhZGF0YSBzaXplXG4iKTsN
Cj4gPiArCQlyZXR1cm4gLUVOT1NQQzsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwkvKg0KPiA+ICsJ
ICogU2V0IHVwIHRoZSBpbmZvZnJhbWUgc2RwIHBhY2tldCBmb3IgSERSIHN0YXRpYyBtZXRhZGF0
YS4NCj4gPiArCSAqIFByZXBhcmUgVlNDIEhlYWRlciBmb3IgU1UgYXMgcGVyIERQIDEuNGEgc3Bl
YywNCj4gPiArCSAqIFRhYmxlIDItMTAwIGFuZCBUYWJsZSAyLTEwMQ0KPiA+ICsJICovDQo+ID4g
Kw0KPiA+ICsJLyogU2Vjb25kYXJ5LURhdGEgUGFja2V0IElELCAwMGggZm9yIG5vbi1BdWRpbyBJ
TkZPRlJBTUUgKi8NCj4gPiArCXNkcC0+c2RwX2hlYWRlci5IQjAgPSAwOw0KPiA+ICsJLyoNCj4g
PiArCSAqIFBhY2tldCBUeXBlIDgwaCArIE5vbi1hdWRpbyBJTkZPRlJBTUUgVHlwZSB2YWx1ZQ0K
PiA+ICsJICogSERNSV9JTkZPRlJBTUVfVFlQRV9EUk06IDB4ODcNCj4gPiArCSAqIC0gODBoICsg
Tm9uLWF1ZGlvIElORk9GUkFNRSBUeXBlIHZhbHVlDQo+ID4gKwkgKiAtIEluZm9GcmFtZSBUeXBl
OiAweDA3DQo+ID4gKwkgKiAgICBbQ1RBLTg2MS1HIFRhYmxlLTQyIER5bmFtaWMgUmFuZ2UgYW5k
IE1hc3RlcmluZw0KPiA+IEluZm9GcmFtZV0NCj4gPiArCSAqLw0KPiA+ICsJc2RwLT5zZHBfaGVh
ZGVyLkhCMSA9IGRybV9pbmZvZnJhbWUtPnR5cGU7DQo+ID4gKwkvKg0KPiA+ICsJICogTGVhc3Qg
U2lnbmlmaWNhbnQgRWlnaHQgQml0cyBvZiAoRGF0YSBCeXRlIENvdW50IOKAkyAxKQ0KPiA+ICsJ
ICogaW5mb2ZyYW1lX3NpemUgLSAxDQo+ID4gKwkgKi8NCj4gPiArCXNkcC0+c2RwX2hlYWRlci5I
QjIgPSAweDFEOw0KPiA+ICsJLyogSU5GT0ZSQU1FIFNEUCBWZXJzaW9uIE51bWJlciAqLw0KPiA+
ICsJc2RwLT5zZHBfaGVhZGVyLkhCMyA9ICgweDEzIDw8IDIpOw0KPiA+ICsJLyogQ1RBIEhlYWRl
ciBCeXRlIDIgKElORk9GUkFNRSBWZXJzaW9uIE51bWJlcikgKi8NCj4gPiArCXNkcC0+ZGJbMF0g
PSBkcm1faW5mb2ZyYW1lLT52ZXJzaW9uOw0KPiA+ICsJLyogQ1RBIEhlYWRlciBCeXRlIDMgKExl
bmd0aCBvZiBJTkZPRlJBTUUpOg0KPiA+IEhETUlfRFJNX0lORk9GUkFNRV9TSVpFICovDQo+ID4g
KwlzZHAtPmRiWzFdID0gZHJtX2luZm9mcmFtZS0+bGVuZ3RoOw0KPiA+ICsJLyoNCj4gPiArCSAq
IENvcHkgSERNSV9EUk1fSU5GT0ZSQU1FX1NJWkUgc2l6ZSBmcm9tIGEgYnVmZmVyIGFmdGVyDQo+
IA0KPiBDb21tZW50IExvb2tzIGluY29tcGxldGUuDQo+IA0KSSBtaXNzZWQgc29tZSBjb21tZW50
cywgSSdsbCB1cGRhdGUgaXQuDQo+ID4gKwkgKi8NCj4gPiArCUJVSUxEX0JVR19PTihzaXplb2Yo
c2RwLT5kYikgPCBIRE1JX0RSTV9JTkZPRlJBTUVfU0laRSArIDIpOw0KPiA+ICsJbWVtY3B5KCZz
ZHAtPmRiWzJdLCAmYnVmW0hETUlfSU5GT0ZSQU1FX0hFQURFUl9TSVpFXSwNCj4gPiArCSAgICAg
ICBIRE1JX0RSTV9JTkZPRlJBTUVfU0laRSk7DQo+ID4gKw0KPiA+ICsJLyoNCj4gPiArCSAqIFNp
emUgb2YgRFAgaW5mb2ZyYW1lIHNkcCBwYWNrZXQgZm9yIEhEUiBzdGF0aWMgbWV0YWRhdGEgaXMN
Cj4gPiBjb25zaXN0IG9mDQo+IA0KPiBEcm9wICJpcyINCj4gDQpJbmNsdWRlcyB0aGlzLCBJJ2xs
IHBvbGlzaCBwb2xpc2ggY29tbWl0IG1lc3NhZ2UgYW5kIGNvbW1lbnRzLg0KDQo+ID4gKwkgKiAt
IERQIFNEUCBIZWFkZXIoc3RydWN0IGRwX3NkcF9oZWFkZXIpOiA0IGJ5dGVzDQo+ID4gKwkgKiAt
IFR3byBEYXRhIEJsb2NrczogMiBieXRlcw0KPiA+ICsJICogICAgQ1RBIEhlYWRlciBCeXRlMiAo
SU5GT0ZSQU1FIFZlcnNpb24gTnVtYmVyKQ0KPiA+ICsJICogICAgQ1RBIEhlYWRlciBCeXRlMyAo
TGVuZ3RoIG9mIElORk9GUkFNRSkNCj4gPiArCSAqIC0gSERNSV9EUk1fSU5GT0ZSQU1FX1NJWkU6
IDI2IGJ5dGVzDQo+ID4gKwkgKg0KPiA+ICsJICogUHJpb3IgdG8gR0VOMTEncyBHTVAgcmVnaXN0
ZXIgc2l6ZSBpcyBpZGVudGljYWwgdG8gRFAgSERSDQo+ID4gc3RhdGljIG1ldGFkYXRhDQo+ID4g
KwkgKiBpbmZvZnJhbWUgc2l6ZS4gQnV0IEdFTjExKyBoYXMgbGFyZ2VyIHRoYW4gdGhhdCBzaXpl
LA0KPiA+IHdyaXRlX2luZm9mcmFtZQ0KPiA+ICsJICogd2lsbCBwYWQgcmVzdCBvZiB0aGUgc2l6
ZS4NCj4gPiArCSAqLw0KPiA+ICsJcmV0dXJuIHNpemVvZihzdHJ1Y3QgZHBfc2RwX2hlYWRlcikg
KyAyICsNCj4gPiBIRE1JX0RSTV9JTkZPRlJBTUVfU0laRTsgfQ0KPiA+ICsNCj4gPiArc3RhdGlj
IHZvaWQgaW50ZWxfd3JpdGVfZHBfc2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLA0K
PiA+ICsJCQkgICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUNCj4gPiAqY3J0Y19z
dGF0ZSwNCj4gPiArCQkJICAgICAgIHVuc2lnbmVkIGludCB0eXBlKQ0KPiA+ICt7DQo+ID4gKwlz
dHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9DQo+ID4gZW5jX3RvX2Rp
Z19wb3J0KGVuY29kZXIpOw0KPiA+ICsJc3RydWN0IGRwX3NkcCBzZHAgPSB7fTsNCj4gPiArCXNz
aXplX3QgbGVuOw0KPiA+ICsNCj4gPiArCWlmICgoY3J0Y19zdGF0ZS0+aW5mb2ZyYW1lcy5lbmFi
bGUgJg0KPiA+ICsJICAgICBpbnRlbF9oZG1pX2luZm9mcmFtZV9lbmFibGUodHlwZSkpID09IDAp
DQo+ID4gKwkJcmV0dXJuOw0KPiA+ICsNCj4gPiArCXN3aXRjaCAodHlwZSkgew0KPiA+ICsJY2Fz
ZSBEUF9TRFBfVlNDOg0KPiA+ICsJCWxlbiA9IGludGVsX2RwX3ZzY19zZHBfcGFjaygmY3J0Y19z
dGF0ZS0NCj4gPiA+aW5mb2ZyYW1lcy52c2MsICZzZHAsDQo+ID4gKwkJCQkJICAgIHNpemVvZihz
ZHApKTsNCj4gPiArCQlicmVhazsNCj4gPiArCWNhc2UgSERNSV9QQUNLRVRfVFlQRV9HQU1VVF9N
RVRBREFUQToNCj4gPiArCQlsZW4gPQ0KPiA+IGludGVsX2RwX2hkcl9tZXRhZGF0YV9pbmZvZnJh
bWVfc2RwX3BhY2soJmNydGNfc3RhdGUtDQo+ID4gPiBpbmZvZnJhbWVzLmRybS5kcm0sDQo+ID4g
KwkJCQkJCQkgICAgICAgJnNkcCwNCj4gPiBzaXplb2Yoc2RwKSk7DQo+ID4gKwkJYnJlYWs7DQo+
ID4gKwlkZWZhdWx0Og0KPiA+ICsJCU1JU1NJTkdfQ0FTRSh0eXBlKTsNCj4gPiArCQlicmVhazsN
Cj4gPiArCX0NCj4gPiArDQo+ID4gKwlpZiAoV0FSTl9PTihsZW4gPCAwKSkNCj4gPiArCQlyZXR1
cm47DQo+ID4gKw0KPiA+ICsJaW50ZWxfZGlnX3BvcnQtPndyaXRlX2luZm9mcmFtZShlbmNvZGVy
LCBjcnRjX3N0YXRlLCB0eXBlLA0KPiA+ICZzZHAsIGxlbik7DQo+ID4gK30NCj4gPiArDQo+ID4g
K3ZvaWQgaW50ZWxfZHBfc2V0X2luZm9mcmFtZXMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k
ZXIsDQo+ID4gKwkJCSAgICAgYm9vbCBlbmFibGUsDQo+ID4gKwkJCSAgICAgY29uc3Qgc3RydWN0
IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsDQo+ID4gKwkJCSAgICAgY29uc3Qgc3RydWN0
IGRybV9jb25uZWN0b3Jfc3RhdGUNCj4gPiAqY29ubl9zdGF0ZSkgew0KPiA+ICsJc3RydWN0IGRy
bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7DQo+
ID4gKwlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKGVuY29kZXIp
Ow0KPiA+ICsJaTkxNV9yZWdfdCByZWcgPSBIU1dfVFZJREVPX0RJUF9DVEwoY3J0Y19zdGF0ZS0N
Cj4gPiA+Y3B1X3RyYW5zY29kZXIpOw0KPiA+ICsJdTMyIGRpcF9lbmFibGUgPSBWSURFT19ESVBf
RU5BQkxFX0FWSV9IU1cgfA0KPiA+IFZJREVPX0RJUF9FTkFCTEVfR0NQX0hTVyB8DQo+ID4gKwkJ
CSBWSURFT19ESVBfRU5BQkxFX1ZTX0hTVyB8DQo+ID4gVklERU9fRElQX0VOQUJMRV9HTVBfSFNX
IHwNCj4gPiArCQkJIFZJREVPX0RJUF9FTkFCTEVfU1BEX0hTVyB8DQo+ID4gVklERU9fRElQX0VO
QUJMRV9EUk1fR0xLOw0KPiA+ICsJdTMyIHZhbCA9IEk5MTVfUkVBRChyZWcpOw0KPiA+ICsNCj4g
PiArCS8qIFRPRE86IEFkZCBEU0MgY2FzZSAoRElQX0VOQUJMRV9QUFMpICovDQo+ID4gKwkvKiBX
aGVuIFBTUiBpcyBlbmFibGVkLCB0aGlzIHJvdXRpbmUgZG9lc24ndCBkaXNhYmxlIFZTQyBESVAg
Ki8NCj4gPiArCWlmIChpbnRlbF9wc3JfZW5hYmxlZChpbnRlbF9kcCkpDQo+ID4gKwkJdmFsICY9
IH5kaXBfZW5hYmxlOw0KPiA+ICsJZWxzZQ0KPiA+ICsJCXZhbCAmPSB+KGRpcF9lbmFibGUgfCBW
SURFT19ESVBfRU5BQkxFX1ZTQ19IU1cpOw0KPiANCj4gZGlwX2VuYWJsZSBoYXMgVklERU9fRElQ
X0VOQUJMRV9WU0NfSFNXIGFscmVhZHkgaW4gaXQuIFBsZWFzZSBmaXgNCj4gdGhpcy4NCj4gDQpE
ZWNsYXJpbmcgb2YgZGlwX2VuYWJsZSBkb2VzIG5vdCBpbmNsdWRlIFZJREVPX0RJUF9FTkFCTEVf
VlNDX0hTVy4NCnRoZXJlZm9yZSB3ZSBuZWVkIGl0IGhlcmUgdG8gZGlzYWJsZSBWU0MgU0RQIERJ
UC4NCg0KPiA+ICsNCj4gPiArCWlmICghZW5hYmxlKSB7DQo+ID4gKwkJSTkxNV9XUklURShyZWcs
IHZhbCk7DQo+ID4gKwkJUE9TVElOR19SRUFEKHJlZyk7DQo+ID4gKwkJcmV0dXJuOw0KPiA+ICsJ
fQ0KPiA+ICsNCj4gPiArCUk5MTVfV1JJVEUocmVnLCB2YWwpOw0KPiA+ICsJUE9TVElOR19SRUFE
KHJlZyk7DQo+ID4gKw0KPiA+ICsJLyogV2hlbiBQU1IgaXMgZW5hYmxlZCwgVlNDIFNEUCBpcyBo
YW5kbGVkIGJ5IFBTUiByb3V0aW5lICovDQo+ID4gKwlpZiAoIWludGVsX3Bzcl9lbmFibGVkKGlu
dGVsX2RwKSkNCj4gPiArCQlpbnRlbF93cml0ZV9kcF9zZHAoZW5jb2RlciwgY3J0Y19zdGF0ZSwg
RFBfU0RQX1ZTQyk7DQo+ID4gKw0KPiA+ICsJaW50ZWxfd3JpdGVfZHBfc2RwKGVuY29kZXIsIGNy
dGNfc3RhdGUsDQo+ID4gK0hETUlfUEFDS0VUX1RZUEVfR0FNVVRfTUVUQURBVEEpOyB9DQo+ID4g
Kw0KPiA+ICBzdGF0aWMgdm9pZA0KPiA+ICBpbnRlbF9kcF9zZXR1cF92c2Nfc2RwKHN0cnVjdCBp
bnRlbF9kcCAqaW50ZWxfZHAsDQo+ID4gIAkJICAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj
X3N0YXRlICpjcnRjX3N0YXRlLCBkaWZmDQo+ID4gLS1naXQNCj4gPiBhL2RyaXZlcnMvZ3B1L2Ry
bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuaA0KPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz
cGxheS9pbnRlbF9kcC5oDQo+ID4gaW5kZXggM2RhMTY2MDU0Nzg4Li4wZGMwOWE0NjNlZTEgMTAw
NjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5oDQo+
ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5oDQo+ID4gQEAg
LTExNiw2ICsxMTYsOSBAQCB2b2lkIGludGVsX2RwX3ZzY19lbmFibGUoc3RydWN0IGludGVsX2Rw
DQo+ID4gKmludGVsX2RwLCAgdm9pZA0KPiA+IGludGVsX2RwX2hkcl9tZXRhZGF0YV9lbmFibGUo
c3RydWN0IGludGVsX2RwICppbnRlbF9kcCwNCj4gPiAgCQkJCSAgY29uc3Qgc3RydWN0IGludGVs
X2NydGNfc3RhdGUNCj4gPiAqY3J0Y19zdGF0ZSwNCj4gPiAgCQkJCSAgY29uc3Qgc3RydWN0IGRy
bV9jb25uZWN0b3Jfc3RhdGUNCj4gPiAqY29ubl9zdGF0ZSk7DQo+ID4gK3ZvaWQgaW50ZWxfZHBf
c2V0X2luZm9mcmFtZXMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsIGJvb2wNCj4gPiBl
bmFibGUsDQo+ID4gKwkJCSAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf
c3RhdGUsDQo+ID4gKwkJCSAgICAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUNCj4g
PiAqY29ubl9zdGF0ZSk7DQo+ID4gIGJvb2wgaW50ZWxfZGlnaXRhbF9wb3J0X2Nvbm5lY3RlZChz
dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rlcik7DQo+ID4gDQo+ID4gIHN0YXRpYyBpbmxpbmUg
dW5zaWduZWQgaW50IGludGVsX2RwX3VudXNlZF9sYW5lX21hc2soaW50DQo+ID4gbGFuZV9jb3Vu
dCkNCj4gPiAtLQ0KPiA+IDIuMjQuMQ0KPiA+IA0KPiA+IF9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fDQo+ID4gZHJpLWRldmVsIG1haWxpbmcgbGlzdA0KPiA+
IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcNCj4gPiBodHRwczovL2xpc3RzLmZyZWVk
ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA0K

WARNING: multiple messages have this Message-ID (diff)
From: "Mun, Gwan-gyeong" <gwan-gyeong.mun@intel.com>
To: "Shankar, Uma" <uma.shankar@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: Sun, 9 Feb 2020 03:34:56 +0000	[thread overview]
Message-ID: <e22a59534e1bd395c57e6d3eb88eb550312bb81b.camel@intel.com> (raw)
In-Reply-To: <E7C9878FBA1C6D42A1CA3F62AEB6945F823DCF97@BGSMSX104.gar.corp.intel.com>

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.

> > +
> > +	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: "Mun, Gwan-gyeong" <gwan-gyeong.mun@intel.com>
To: "Shankar, Uma" <uma.shankar@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: Sun, 9 Feb 2020 03:34:56 +0000	[thread overview]
Message-ID: <e22a59534e1bd395c57e6d3eb88eb550312bb81b.camel@intel.com> (raw)
In-Reply-To: <E7C9878FBA1C6D42A1CA3F62AEB6945F823DCF97@BGSMSX104.gar.corp.intel.com>

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.

> > +
> > +	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-09  3:34 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 [this message]
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
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=e22a59534e1bd395c57e6d3eb88eb550312bb81b.camel@intel.com \
    --to=gwan-gyeong.mun@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=uma.shankar@intel.com \
    /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.