From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCHv4 3/3] drm/i915: add DisplayPort CEC-Tunneling-over-AUX support Date: Mon, 18 Sep 2017 17:36:46 +0300 Message-ID: <20170918143646.GB4914@intel.com> References: <20170916141726.4921-1-hverkuil@xs4all.nl> <20170916141726.4921-4-hverkuil@xs4all.nl> <20170918130531.GW4914@intel.com> <24562161-6303-501b-fb28-25ee741e4bf5@xs4all.nl> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5E5916E284 for ; Mon, 18 Sep 2017 14:36:50 +0000 (UTC) Content-Disposition: inline In-Reply-To: <24562161-6303-501b-fb28-25ee741e4bf5@xs4all.nl> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Hans Verkuil Cc: Daniel Vetter , Hans Verkuil , dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBTZXAgMTgsIDIwMTcgYXQgMDQ6MDc6NDFQTSArMDIwMCwgSGFucyBWZXJrdWlsIHdy b3RlOgo+IEhpIFZpbGxlLAo+IAo+IE9uIDA5LzE4LzIwMTcgMDM6MDUgUE0sIFZpbGxlIFN5cmrD pGzDpCB3cm90ZToKPiA+IE9uIFNhdCwgU2VwIDE2LCAyMDE3IGF0IDA0OjE3OjI2UE0gKzAyMDAs IEhhbnMgVmVya3VpbCB3cm90ZToKPiA+PiBGcm9tOiBIYW5zIFZlcmt1aWwgPGhhbnMudmVya3Vp bEBjaXNjby5jb20+Cj4gPj4KPiA+PiBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgdGhpcyBEaXNwbGF5 UG9ydCBmZWF0dXJlLgo+ID4+Cj4gPj4gVGhlIGNlYyBkZXZpY2UgaXMgY3JlYXRlZCB3aGVuZXZl ciBpdCBkZXRlY3RzIGFuIGFkYXB0ZXIgdGhhdAo+ID4+IGhhcyB0aGlzIGZlYXR1cmUuIEl0IGlz IG9ubHkgcmVtb3ZlZCB3aGVuIGEgbmV3IGFkYXB0ZXIgaXMgY29ubmVjdGVkCj4gPj4gdGhhdCBk b2VzIG5vdCBzdXBwb3J0IHRoaXMuIElmIGEgbmV3IGFkYXB0ZXIgaXMgY29ubmVjdGVkIHRoYXQg aGFzCj4gPj4gZGlmZmVyZW50IHByb3BlcnRpZXMgdGhhbiB0aGUgcHJldmlvdXMgb25lLCB0aGVu IHRoZSBvbGQgY2VjIGRldmljZSBpcwo+ID4+IHVucmVnaXN0ZXJlZCBhbmQgYSBuZXcgb25lIGlz IHJlZ2lzdGVyZWQgdG8gcmVwbGFjZSB0aGUgb2xkIG9uZS4KPiA+Pgo+ID4+IFNpZ25lZC1vZmYt Ynk6IEhhbnMgVmVya3VpbCA8aGFucy52ZXJrdWlsQGNpc2NvLmNvbT4KPiA+PiBUZXN0ZWQtYnk6 IENhcmxvcyBTYW50YSA8Y2FybG9zLnNhbnRhQGludGVsLmNvbT4KPiA+PiAtLS0KPiA+PiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyB8IDE4ICsrKysrKysrKysrKysrLS0tLQo+ID4+ ICAxIGZpbGUgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKPiA+Pgo+ ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4+IGluZGV4IDY0ZmE3NzRjODU1Yi4uZmRiODUz ZDJjNDU4IDEwMDY0NAo+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMK PiA+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPj4gQEAgLTMyLDYg KzMyLDcgQEAKPiA+PiAgI2luY2x1ZGUgPGxpbnV4L25vdGlmaWVyLmg+Cj4gPj4gICNpbmNsdWRl IDxsaW51eC9yZWJvb3QuaD4KPiA+PiAgI2luY2x1ZGUgPGFzbS9ieXRlb3JkZXIuaD4KPiA+PiAr I2luY2x1ZGUgPG1lZGlhL2NlYy5oPgo+ID4+ICAjaW5jbHVkZSA8ZHJtL2RybVAuaD4KPiA+PiAg I2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgo+ID4+ICAjaW5jbHVkZSA8ZHJtL2Ry bV9jcnRjLmg+Cj4gPj4gQEAgLTE0NDksNiArMTQ1MCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2F1 eF9yZWdfaW5pdChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4+ICBzdGF0aWMgdm9pZAo+ ID4+ICBpbnRlbF9kcF9hdXhfZmluaShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4+ICB7 Cj4gPj4gKwljZWNfdW5yZWdpc3Rlcl9hZGFwdGVyKGludGVsX2RwLT5hdXguY2VjX2FkYXApOwo+ ID4+ICAJa2ZyZWUoaW50ZWxfZHAtPmF1eC5uYW1lKTsKPiA+PiAgfQo+ID4+ICAKPiA+PiBAQCAt NDU4Nyw2ICs0NTg5LDcgQEAgaW50ZWxfZHBfc2V0X2VkaWQoc3RydWN0IGludGVsX2RwICppbnRl bF9kcCkKPiA+PiAgCWludGVsX2Nvbm5lY3Rvci0+ZGV0ZWN0X2VkaWQgPSBlZGlkOwo+ID4+ICAK PiA+PiAgCWludGVsX2RwLT5oYXNfYXVkaW8gPSBkcm1fZGV0ZWN0X21vbml0b3JfYXVkaW8oZWRp ZCk7Cj4gPj4gKwljZWNfc19waHlzX2FkZHJfZnJvbV9lZGlkKGludGVsX2RwLT5hdXguY2VjX2Fk YXAsIGVkaWQpOwo+ID4+ICB9Cj4gPj4gIAo+ID4+ICBzdGF0aWMgdm9pZAo+ID4+IEBAIC00NTk2 LDYgKzQ1OTksNyBAQCBpbnRlbF9kcF91bnNldF9lZGlkKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHApCj4gPj4gIAo+ID4+ICAJa2ZyZWUoaW50ZWxfY29ubmVjdG9yLT5kZXRlY3RfZWRpZCk7Cj4g Pj4gIAlpbnRlbF9jb25uZWN0b3ItPmRldGVjdF9lZGlkID0gTlVMTDsKPiA+PiArCWNlY19waHlz X2FkZHJfaW52YWxpZGF0ZShpbnRlbF9kcC0+YXV4LmNlY19hZGFwKTsKPiA+PiAgCj4gPj4gIAlp bnRlbF9kcC0+aGFzX2F1ZGlvID0gZmFsc2U7Cj4gPj4gIH0KPiA+PiBAQCAtNDYxNiwxMyArNDYy MCwxNyBAQCBpbnRlbF9kcF9sb25nX3B1bHNlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVs X2Nvbm5lY3RvcikKPiA+PiAgCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KHRvX2k5MTUoZGV2KSwg aW50ZWxfZHAtPmF1eF9wb3dlcl9kb21haW4pOwo+ID4+ICAKPiA+PiAgCS8qIENhbid0IGRpc2Nv bm5lY3QgZURQLCBidXQgeW91IGNhbiBjbG9zZSB0aGUgbGlkLi4uICovCj4gPj4gLQlpZiAoaXNf ZWRwKGludGVsX2RwKSkKPiA+PiArCWlmIChpc19lZHAoaW50ZWxfZHApKSB7Cj4gPj4gIAkJc3Rh dHVzID0gZWRwX2RldGVjdChpbnRlbF9kcCk7Cj4gPj4gLQllbHNlIGlmIChpbnRlbF9kaWdpdGFs X3BvcnRfY29ubmVjdGVkKHRvX2k5MTUoZGV2KSwKPiA+PiAtCQkJCQkgICAgICBkcF90b19kaWdf cG9ydChpbnRlbF9kcCkpKQo+ID4+ICsJfSBlbHNlIGlmIChpbnRlbF9kaWdpdGFsX3BvcnRfY29u bmVjdGVkKHRvX2k5MTUoZGV2KSwKPiA+PiArCQkJCQkJZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHAp KSkgewo+ID4+ICAJCXN0YXR1cyA9IGludGVsX2RwX2RldGVjdF9kcGNkKGludGVsX2RwKTsKPiA+ PiAtCWVsc2UKPiA+PiArCQlpZiAoc3RhdHVzID09IGNvbm5lY3Rvcl9zdGF0dXNfY29ubmVjdGVk KQo+ID4+ICsJCQlkcm1fZHBfY2VjX2NvbmZpZ3VyZV9hZGFwdGVyKCZpbnRlbF9kcC0+YXV4LAo+ ID4+ICsJCQkJICAgICBpbnRlbF9kcC0+YXV4Lm5hbWUsIGRldi0+ZGV2KTsKPiA+IAo+ID4gVGhp cyBpcyBjbHV0dGVyaW5nIHVwIHRoZSBjb2RlIGEgYml0LiBNYXliZSBkbyB0aGlzIGNhbGwgc29t ZXdoZXJlCj4gPiBhcm91bmQgdGhlIGludGVsX2RwX2NvbmZpZ3VyZV9tc3QoKSBjYWxsIGluc3Rl YWQgc2luY2UgdGhhdCBzZWVtcyB0byBiZQo+ID4gdGhlIHBsYWNlIHdoZXJlIHdlIHN0YXJ0IHRv IGRvIGNoYW5nZXMgdG8gZXh0ZXJuYWxseSB2aXNpYmxlIHN0YXRlLgo+ID4gCj4gPiBBY3R1YWxs eSwgZG8gd2Ugd2FudCB0byByZWdpc3RlciBjZWMgYWRhcHRlcnMgZm9yIE1TVCBkZXZpY2VzPwo+ ID4gCj4gPiBBbmQgc2hvdWxkbid0IHdlIGNhbGwgdGhpcyByZWdhcmRsZXNzIG9mIHRoZSBjb25u ZWN0b3Igc3RhdGUgc28gdGhhdAo+ID4gdGhlIGNlYyBhZGFwdGVyIGdldHMgdW5yZWdpc3RlcmVk IHdoZW4gdGhlIGRldmljZSBpcyBkaXNjb25uZWN0ZWQ/Cj4gCj4gVGhpcyBoYXNuJ3QgKEFGQUlL KSBhbnl0aGluZyB0byBkbyB3aXRoIE1TVC4gVGhpcyBpcyBpbiBhIGJyYW5jaCBkZXZpY2UgKGku ZS4KPiBhIERQIHRvIEhETUkgYWRhcHRlcikuCgpZb3UgYXJlIG5vdyBwb3RlbnRpYWxsIHJlZ2lz dGVyaW5nIHRoZSBDRUMgYWRhcHRlciB0byB0aGUgaW1tZWRpYXRlbHkKdXBzdHJlYW0gTVNUIGRl dmljZSAoaWUuIHRoZSBvbmUgdGhhdCB3ZSB0YWxrIHRvIG92ZXIgdGhlIG5vcm1hbCBBVVggc3R1 ZmYpLApidXQga21zIHdpbGwgY29uc2lkZXIgdGhhdCBwYXRpY3VsYXIgY29ubmVjdG9yIGFzIGRp c2Nvbm5lY3RlZCwgYW5kCmluc3RlYWQgb25seSBzaW5rcyBkb3duc3RyZWFtIG9mIHRoYXQgZGV2 aWNlIG1heSBoYXZlIGNvbm5lY3RlZCBjb25uZWN0b3JzCmFzc29jaWF0ZWQgd2l0aCB0aGVtLiBQ cmVzdW1hYmx5IHRoZSBDRUMgdG93YXJkcyB0aGF0IGRldmljZSBnb2VzCm5vd2hlcmUsIGFuZCBp bnN0ZWFkIHdlJ2QgaGF2ZSB0byB0YWxrIHRvIHRoZSByZW1vdGUgYnJhbmNoIGRldmljZXMKc29t ZXdoZXJlIGRvd25zdHJlYW0uCgpUaHVzIG15IHF1ZXN0aW9uIHdoZXRoZXIgd2Ugd2FudCB0byBw b3RlbnRpYWxseSByZWdpc3RlciB0aGUgQ0VDIGFkYXB0ZXIKdG8gdGhlIGltbWVkaWF0ZWx5IHVw c3RyZWFtIE1TVCBkZXZpY2Ugb3Igbm90LiBJIHdvdWxkIGltYWdpbmUgbm90LCBhbmQKdGh1cyB0 aGUgY2FsbCBzaG91bGQgcGVyaGFwcyBiZSBtb3ZlZCBwYXN0IHRoZSAnaXNfbXN0PyAtPiBkaXNj b25uZWN0ZWQnCmNoZWNrcy4KCj4gCj4gVGhlIENFQyBhZGFwdGVyIHNob3VsZCBpZGVhbGx5IGJl IGFzc29jaWF0ZWQgd2l0aCB0aGUgYnJhbmNoIGRldmljZSAoc2luY2UgdGhhdAo+IGlzIHdoYXQg aW1wbGVtZW50cyB0aGUgQ0VDIHR1bm5lbGluZyk6IGkuZS4gd2hlbiB5b3UgY29ubmVjdCB0aGUg YWRhcHRlciwgdGhlbgo+IHRoZSBDRUMgZGV2aWNlIGlzIGNyZWF0ZWQsIHdoZW4geW91IGRpc2Nv bm5lY3QgdGhlIGFkYXB0ZXIsIHRoZW4gdGhlIENFQyBkZXZpY2UKPiBzaG91bGQgYmUgdW5yZWdp c3RlcmVkLiBUaGlzIGlzIG5vdCB0aGUgc2FtZSBhcyBjb25uZWN0aW5nL2Rpc2Nvbm5lY3Rpbmcg dGhlCj4gSERNSSBjYWJsZSB0by9mcm9tIHRoZSBhZGFwdGVyOiB0aGF0IGp1c3Qgc2V0cyBvciBp bnZhbGlkYXRlcyB0aGUgQ0VDIHBoeXNpY2FsCj4gYWRkcmVzcyAod2hpY2ggaXMgcmVhZCBmcm9t IHRoZSBFRElEKS4KPiAKPiBIb3dldmVyLCBJIGhhdmUgbm90IHNlZW4gYW55IGNvZGUgdGhhdCB0 ZWxscyBtZSB3aGVuIHRoZSBhZGFwdGVyIGlzIHBsdWdnZWQgaW4KPiBvciBpcyB1bnBsdWdnZWQu IFNvIGFsbCBJIGhhdmUgdG8gZ28gb24gaXMgd2hlbiB0aGUgSERNSSBjYWJsZSBpcyBjb25uZWN0 ZWQuCj4gCj4gTm90ZSB0aGF0IHRoZSAnbGF0ZV9yZWdpc3RlcicgeW91IG1lbnRpb25lZCBpbiB5 b3VyIDEvMyByZXZpZXcgaXNuJ3QgY2FsbGVkIHdoZW4KPiBjb25uZWN0aW5nIHRoZSBhZGFwdGVy LiBTbyB0aGF0IHRvbyBjYW5ub3QgYmUgdXNlZCBhcyBhIHRyaWdnZXIgdG8gZGV0ZWN0IGlmCj4g dGhpcyBwcm90b2NvbCBpcyBzdXBwb3J0ZWQuCgpMaWtlIEkgc2FpZCwgeW91IHNob3VsZCBkbyB0 aGUgcmVnaXN0cmF0aW9uIGRpcmVjdGx5IGlmIHRoZSBjb25uZWN0b3IKaGFzIGFscmVhZHkgYmVl biByZWdpc3RlcmVkLCBvdGhlcndpc2UgZGVmZXIgdG8gLmxhdGVfcmVnaXN0ZXIoKS4KCj4gCj4g SSBrbm93IGRvaW5nIHRoaXMgaGVyZSBpcyBub3QgaWRlYWwsIGJ1dCBJIGhhdmUgbm90IGZvdW5k IGFub3RoZXIgd2F5IGFuZCBJIGFtCj4gbm90IGV2ZW4gY2VydGFpbiBpZiBpdCBpcyBwb3NzaWJs ZSBhdCBhbGwsIGl0IG1pZ2h0IGJlIGludHJpbnNpYyB0byBob3cgRFAgd29ya3MuCj4gSSBkbyBu b3QgY29uc2lkZXIgbXlzZWxmIGEgRFAgZXhwZXJ0LCB0aG91Z2guCj4gCj4gU28gdGhpcyBpcyBo b3cgaXQgd29ya3Mgbm93LCBlLmcuIG9uIG15IEludGVsIE5VQyBhbmQgYSBVU0ItQyB0byBIRE1J IGFkYXB0ZXI6Cj4gCj4gMSkgSSBjb25uZWN0IHRoZSBhZGFwdGVyIChubyBIRE1JIGNvbm5lY3Rl ZCB5ZXQpOiBub3RoaW5nIGhhcHBlbnMuCj4gMikgSSBjb25uZWN0IHRoZSBIRE1JIGNhYmxlIHRv IHRoZSBhZGFwdGVyOiBkcm1fZHBfY2VjX2NvbmZpZ3VyZV9hZGFwdGVyIGlzIGNhbGxlZCBhbmQK PiAgICBpdCBkZXRlY3RzIHRoZSBDRUMgY2FwYWJpbGl0eSBpbiB0aGUgRFBDRC4gSXQgbm93IGNy ZWF0ZXMgdGhlIENFQyBkZXZpY2UuCj4gMykgSSBkaXNjb25uZWN0IHRoZSBIRE1JIGNhYmxlOiB0 aGUgcGh5c2ljYWwgYWRkcmVzcyBvZiB0aGUgQ0VDIGRldmljZSBpcyBpbnZhbGlkYXRlZCwKPiAg ICBidXQgdGhlIENFQyBkZXZpY2UgaXMgbm90IHJlbW92ZWQuCj4gNCkgSSBkaXNjb25uZWN0IHRo ZSBhZGFwdGVyOiBub3RoaW5nIGhhcHBlbnMuCj4gNSkgSSByZWNvbm5lY3QgdGhlIGFkYXB0ZXI6 IG5vdGhpbmcgaGFwcGVucy4KPiA2KSBJIHJlY29ubmVjdCB0aGUgSERNSSBjYWJsZTogZHJtX2Rw X2NlY19jb25maWd1cmVfYWRhcHRlciBpcyBjYWxsZWQgYW5kIGl0IGNoZWNrcyB0aGUKPiAgICBE UENELiBJZiB0aGUgY2FwYWJpbGl0aWVzIGFyZSB1bmNoYW5nZWQsIHRoZW4gaXQgd2lsbCBjb250 aW51ZSB0byB1c2UgdGhlIHJlZ2lzdGVyZWQKPiAgICBDRUMgZGV2aWNlLiBJZiB0aGUgY2FwYWJp bGl0aWVzIGhhdmUgY2hhbmdlZCAoaS5lLiB0aGUgYWRhcHRlciBpcyBhcHBhcmVudGx5IGEKPiAg ICBkaWZmZXJlbnQgb25lKSwgdGhlbiB0aGUgQ0VDIGRldmljZSBpcyB1bnJlZ2lzdGVyZWQgYW5k IGEgbmV3IG9uZSBpcyBjcmVhdGVkLCBwcm92aWRlZAo+ICAgIHRoYXQgdGhlIG5ldyBhZGFwdGVy IHN1cHBvcnRzIENFQywgb2YgY291cnNlLgo+IAo+IFRoZSBib3R0b20tbGluZSBpcyB0aGF0IEkg Y2Fubm90IHRlbGwgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBkaXNjb25uZWN0aW5nIHRoZSBhZGFw dGVyCj4gYW5kIGRpc2Nvbm5lY3RpbmcgdGhlIEhETUkgY2FibGUgdG8gdGhlIGFkYXB0ZXIuCj4g Cj4gQW5vdGhlciBjb25zaWRlcmF0aW9uIGlzIHRoYXQgQ0VDIGFwcGxpY2F0aW9ucyAoaS5lLiBI VFBDcykgZG8gbm90IGV4cGVjdCB0aGUgQ0VDIGRldmljZQo+IHRvIGRpc2FwcGVhciB3aGVuIHlv dSBkaXNjb25uZWN0IGVpdGhlciB0aGUgSERNSSBjYWJsZSBvciB0aGUgYWRhcHRlci4gRXZlbiB0 aG91Z2ggdGhlCj4gQ0VDIGRldmljZSBpcyBzdHJpY3RseSBzcGVha2luZyBhc3NvY2lhdGVkIHdp dGggdGhlIGFkYXB0ZXIsIGZyb20gdGhlIHBvaW50IG9mIHZpZXcgb2YKPiB0aGUgdXNlciB0aGVy ZSBpcyBubyBkaWZmZXJlbmNlIGJldHdlZW4gZGlzY29ubmVjdGluZyBhbiBIRE1JIGNhYmxlIGZy b20gYW4gYWRhcHRlciwgb3IKPiBkaXNjb25uZWN0aW5nIHRoZSBhZGFwdGVyIGl0c2VsZi4gU28g dGhlcmUgaXMgYSBnb29kIGFyZ3VtZW50IHRvIGJlIG1hZGUgdG8gb25seSB1bnJlZ2lzdGVyCj4g dGhlIENFQyBkZXZpY2Ugd2hlbiBhIGRpZmZlcmVudCAob3Igbm8pIGFkYXB0ZXIgaXMgZGV0ZWN0 ZWQgdGhlIG5leHQgdGltZSB0aGUgSFBEIGdvZXMgaGlnaC4KClNob3VsZCB3ZSBqdXN0IHJlZ2lz dGVyIGEgQ0VDIGFkYXB0ZXIgYWx3YXlzIHRoZW4/IFNlZW1zIHJhdGhlcgppbmNvbnNpc3RlbnQg dG8gZG8gaXQgb25seSB3aGVuIGEgQ0VDIGNhcGFibGUgZGV2aWNlIGdldHMgcGx1Z2dlZCBpbiBi dXQKdGhlbiBsZWF2ZSBpdCBsaW5nZXJpbmcgYXJvdW5kIHdoZW4gdGhlIGRldmljZSBnZXRzIGRp c2Nvbm5lY3RlZC4KCj4gCj4gUmVnYXJkcywKPiAKPiAJSGFucwo+IAo+ID4gCj4gPj4gKwl9IGVs c2Ugewo+ID4+ICAJCXN0YXR1cyA9IGNvbm5lY3Rvcl9zdGF0dXNfZGlzY29ubmVjdGVkOwo+ID4+ ICsJfQo+ID4+ICAKPiA+PiAgCWlmIChzdGF0dXMgPT0gY29ubmVjdG9yX3N0YXR1c19kaXNjb25u ZWN0ZWQpIHsKPiA+PiAgCQltZW1zZXQoJmludGVsX2RwLT5jb21wbGlhbmNlLCAwLCBzaXplb2Yo aW50ZWxfZHAtPmNvbXBsaWFuY2UpKTsKPiA+PiBAQCAtNTAxMSw2ICs1MDE5LDggQEAgaW50ZWxf ZHBfaHBkX3B1bHNlKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LCBi b29sIGxvbmdfaHBkKQo+ID4+ICAKPiA+PiAgCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9w cml2LCBpbnRlbF9kcC0+YXV4X3Bvd2VyX2RvbWFpbik7Cj4gPj4gIAo+ID4+ICsJZHJtX2RwX2Nl Y19pcnEoJmludGVsX2RwLT5hdXgpOwo+ID4+ICsKPiA+PiAgCWlmIChpbnRlbF9kcC0+aXNfbXN0 KSB7Cj4gPj4gIAkJaWYgKGludGVsX2RwX2NoZWNrX21zdF9zdGF0dXMoaW50ZWxfZHApID09IC1F SU5WQUwpIHsKPiA+PiAgCQkJLyoKPiA+PiAtLSAKPiA+PiAyLjE0LjEKPiA+IAoKLS0gClZpbGxl IFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mga11.intel.com ([192.55.52.93]:32425 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754470AbdIROgu (ORCPT ); Mon, 18 Sep 2017 10:36:50 -0400 Date: Mon, 18 Sep 2017 17:36:46 +0300 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= To: Hans Verkuil Cc: linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, Daniel Vetter , Sean Paul , Hans Verkuil Subject: Re: [PATCHv4 3/3] drm/i915: add DisplayPort CEC-Tunneling-over-AUX support Message-ID: <20170918143646.GB4914@intel.com> References: <20170916141726.4921-1-hverkuil@xs4all.nl> <20170916141726.4921-4-hverkuil@xs4all.nl> <20170918130531.GW4914@intel.com> <24562161-6303-501b-fb28-25ee741e4bf5@xs4all.nl> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <24562161-6303-501b-fb28-25ee741e4bf5@xs4all.nl> Sender: linux-media-owner@vger.kernel.org List-ID: On Mon, Sep 18, 2017 at 04:07:41PM +0200, Hans Verkuil wrote: > Hi Ville, > > On 09/18/2017 03:05 PM, Ville Syrjälä wrote: > > On Sat, Sep 16, 2017 at 04:17:26PM +0200, Hans Verkuil wrote: > >> From: Hans Verkuil > >> > >> Implement support for this DisplayPort feature. > >> > >> The cec device is created whenever it detects an adapter that > >> has this feature. It is only removed when a new adapter is connected > >> that does not support this. If a new adapter is connected that has > >> different properties than the previous one, then the old cec device is > >> unregistered and a new one is registered to replace the old one. > >> > >> Signed-off-by: Hans Verkuil > >> Tested-by: Carlos Santa > >> --- > >> drivers/gpu/drm/i915/intel_dp.c | 18 ++++++++++++++---- > >> 1 file changed, 14 insertions(+), 4 deletions(-) > >> > >> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c > >> index 64fa774c855b..fdb853d2c458 100644 > >> --- a/drivers/gpu/drm/i915/intel_dp.c > >> +++ b/drivers/gpu/drm/i915/intel_dp.c > >> @@ -32,6 +32,7 @@ > >> #include > >> #include > >> #include > >> +#include > >> #include > >> #include > >> #include > >> @@ -1449,6 +1450,7 @@ static void intel_aux_reg_init(struct intel_dp *intel_dp) > >> static void > >> intel_dp_aux_fini(struct intel_dp *intel_dp) > >> { > >> + cec_unregister_adapter(intel_dp->aux.cec_adap); > >> kfree(intel_dp->aux.name); > >> } > >> > >> @@ -4587,6 +4589,7 @@ intel_dp_set_edid(struct intel_dp *intel_dp) > >> intel_connector->detect_edid = edid; > >> > >> intel_dp->has_audio = drm_detect_monitor_audio(edid); > >> + cec_s_phys_addr_from_edid(intel_dp->aux.cec_adap, edid); > >> } > >> > >> static void > >> @@ -4596,6 +4599,7 @@ intel_dp_unset_edid(struct intel_dp *intel_dp) > >> > >> kfree(intel_connector->detect_edid); > >> intel_connector->detect_edid = NULL; > >> + cec_phys_addr_invalidate(intel_dp->aux.cec_adap); > >> > >> intel_dp->has_audio = false; > >> } > >> @@ -4616,13 +4620,17 @@ intel_dp_long_pulse(struct intel_connector *intel_connector) > >> intel_display_power_get(to_i915(dev), intel_dp->aux_power_domain); > >> > >> /* Can't disconnect eDP, but you can close the lid... */ > >> - if (is_edp(intel_dp)) > >> + if (is_edp(intel_dp)) { > >> status = edp_detect(intel_dp); > >> - else if (intel_digital_port_connected(to_i915(dev), > >> - dp_to_dig_port(intel_dp))) > >> + } else if (intel_digital_port_connected(to_i915(dev), > >> + dp_to_dig_port(intel_dp))) { > >> status = intel_dp_detect_dpcd(intel_dp); > >> - else > >> + if (status == connector_status_connected) > >> + drm_dp_cec_configure_adapter(&intel_dp->aux, > >> + intel_dp->aux.name, dev->dev); > > > > This is cluttering up the code a bit. Maybe do this call somewhere > > around the intel_dp_configure_mst() call instead since that seems to be > > the place where we start to do changes to externally visible state. > > > > Actually, do we want to register cec adapters for MST devices? > > > > And shouldn't we call this regardless of the connector state so that > > the cec adapter gets unregistered when the device is disconnected? > > This hasn't (AFAIK) anything to do with MST. This is in a branch device (i.e. > a DP to HDMI adapter). You are now potentiall registering the CEC adapter to the immediately upstream MST device (ie. the one that we talk to over the normal AUX stuff), but kms will consider that paticular connector as disconnected, and instead only sinks downstream of that device may have connected connectors associated with them. Presumably the CEC towards that device goes nowhere, and instead we'd have to talk to the remote branch devices somewhere downstream. Thus my question whether we want to potentially register the CEC adapter to the immediately upstream MST device or not. I would imagine not, and thus the call should perhaps be moved past the 'is_mst? -> disconnected' checks. > > The CEC adapter should ideally be associated with the branch device (since that > is what implements the CEC tunneling): i.e. when you connect the adapter, then > the CEC device is created, when you disconnect the adapter, then the CEC device > should be unregistered. This is not the same as connecting/disconnecting the > HDMI cable to/from the adapter: that just sets or invalidates the CEC physical > address (which is read from the EDID). > > However, I have not seen any code that tells me when the adapter is plugged in > or is unplugged. So all I have to go on is when the HDMI cable is connected. > > Note that the 'late_register' you mentioned in your 1/3 review isn't called when > connecting the adapter. So that too cannot be used as a trigger to detect if > this protocol is supported. Like I said, you should do the registration directly if the connector has already been registered, otherwise defer to .late_register(). > > I know doing this here is not ideal, but I have not found another way and I am > not even certain if it is possible at all, it might be intrinsic to how DP works. > I do not consider myself a DP expert, though. > > So this is how it works now, e.g. on my Intel NUC and a USB-C to HDMI adapter: > > 1) I connect the adapter (no HDMI connected yet): nothing happens. > 2) I connect the HDMI cable to the adapter: drm_dp_cec_configure_adapter is called and > it detects the CEC capability in the DPCD. It now creates the CEC device. > 3) I disconnect the HDMI cable: the physical address of the CEC device is invalidated, > but the CEC device is not removed. > 4) I disconnect the adapter: nothing happens. > 5) I reconnect the adapter: nothing happens. > 6) I reconnect the HDMI cable: drm_dp_cec_configure_adapter is called and it checks the > DPCD. If the capabilities are unchanged, then it will continue to use the registered > CEC device. If the capabilities have changed (i.e. the adapter is apparently a > different one), then the CEC device is unregistered and a new one is created, provided > that the new adapter supports CEC, of course. > > The bottom-line is that I cannot tell the difference between disconnecting the adapter > and disconnecting the HDMI cable to the adapter. > > Another consideration is that CEC applications (i.e. HTPCs) do not expect the CEC device > to disappear when you disconnect either the HDMI cable or the adapter. Even though the > CEC device is strictly speaking associated with the adapter, from the point of view of > the user there is no difference between disconnecting an HDMI cable from an adapter, or > disconnecting the adapter itself. So there is a good argument to be made to only unregister > the CEC device when a different (or no) adapter is detected the next time the HPD goes high. Should we just register a CEC adapter always then? Seems rather inconsistent to do it only when a CEC capable device gets plugged in but then leave it lingering around when the device gets disconnected. > > Regards, > > Hans > > > > >> + } else { > >> status = connector_status_disconnected; > >> + } > >> > >> if (status == connector_status_disconnected) { > >> memset(&intel_dp->compliance, 0, sizeof(intel_dp->compliance)); > >> @@ -5011,6 +5019,8 @@ intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port, bool long_hpd) > >> > >> intel_display_power_get(dev_priv, intel_dp->aux_power_domain); > >> > >> + drm_dp_cec_irq(&intel_dp->aux); > >> + > >> if (intel_dp->is_mst) { > >> if (intel_dp_check_mst_status(intel_dp) == -EINVAL) { > >> /* > >> -- > >> 2.14.1 > > -- Ville Syrjälä Intel OTC