From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH 3/3] drm/bridge/adv7511: enable CEC connector info Date: Mon, 26 Aug 2019 13:13:06 +0300 Message-ID: <20190826101306.GA5031@pendragon.ideasonboard.com> References: <20190823112427.42394-1-hverkuil-cisco@xs4all.nl> <20190823112427.42394-4-hverkuil-cisco@xs4all.nl> <20190823185847.GC4791@pendragon.ideasonboard.com> <20190823190140.GD4791@pendragon.ideasonboard.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by gabe.freedesktop.org (Postfix) with ESMTPS id 45EC66E08A for ; Mon, 26 Aug 2019 10:13:15 +0000 (UTC) Content-Disposition: inline In-Reply-To: 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: Archit Taneja , Maxime Ripard , Neil Armstrong , Boris Brezillon , Maling list - DRI developers , Dariusz Marcinkiewicz , linux-media@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org SGkgSGFucywKCk9uIE1vbiwgQXVnIDI2LCAyMDE5IGF0IDExOjAxOjQwQU0gKzAyMDAsIEhhbnMg VmVya3VpbCB3cm90ZToKPiBPbiA4LzIzLzE5IDk6MDEgUE0sIExhdXJlbnQgUGluY2hhcnQgd3Jv dGU6Cj4gPiAoQW5kIENDJ2luZyBBbmRyemVqIEhhamRhIGFuZCBOZWlsIEFybXN0cm9uZyBhcyB0 aGUgbmV3IERSTSBicmlkZ2UKPiA+IG1haW50YWluZXJzLCBhcyB3ZWxsIGFzIEJvcmlzIEJyZXpp bGxvbiwgdG8gbWFrZSBzdXJlIHRoZXkncmUgYXdhcmUgb2YKPiA+IHRoZSBwcm9ibGVtKQo+ID4g Cj4gPiBJIHdvdWxkIHJlYWxseSBhcHByZWNpYXRlIGlmIHdlIGNvdWxkIGRlbGF5IG1lcmdpbmcg dGhpcyBzZXJpZXMgYW5kCj4gPiBvdGhlciBzaW1pbGFyIGNoYW5nZXMgdW50aWwgd2UgZmluZCBh IHByb3BlciBzb2x1dGlvbi4KPiA+IAo+ID4gT24gRnJpLCBBdWcgMjMsIDIwMTkgYXQgMDk6NTg6 NDdQTSArMDMwMCwgTGF1cmVudCBQaW5jaGFydCB3cm90ZToKPiA+PiBPbiBGcmksIEF1ZyAyMywg MjAxOSBhdCAwMToyNDoyN1BNICswMjAwLCBIYW5zIFZlcmt1aWwgd3JvdGU6Cj4gPj4+IFNldCB0 aGUgY29ubmVjdG9yIGluZm8gdG8gaGVscCB1c2Vyc3BhY2UgYXNzb2NpYXRlIHRoZSBDRUMgYWRh cHRlcgo+ID4+PiB3aXRoIHRoZSBIRE1JIGNvbm5lY3Rvci4KPiA+Pj4KPiA+Pj4gVGhpcyByZXF1 aXJlZCB0aGF0IHRoZSBjZWMgaW5pdGlhbGl6YXRpb24gYW5kIHVucmVnaXN0ZXJpbmcgdGhlCj4g Pj4+IENFQyBhZGFwdGVyIHRha2VzIHBsYWNlIGluIHRoZSBicmlkZ2UgYXR0YWNoIGFuZCBkZXRh Y2ggb3BzLgo+ID4+Pgo+ID4+PiBUZXN0ZWQgb24gYW4gUi1DYXIgS29lbHNjaCBib2FyZC4KPiA+ Pj4KPiA+Pj4gU2lnbmVkLW9mZi1ieTogSGFucyBWZXJrdWlsIDxodmVya3VpbC1jaXNjb0B4czRh bGwubmw+Cj4gPj4+IFRlc3RlZC1ieTogSGFucyBWZXJrdWlsIDxodmVya3VpbC1jaXNjb0B4czRh bGwubmw+Cj4gPj4+IC0tLQo+ID4+PiAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hZHY3NTExL2Fk djc1MTFfY2VjLmMgfCAgNyArKysrKystCj4gPj4+ICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2Fk djc1MTEvYWR2NzUxMV9kcnYuYyB8IDIyICsrKysrKysrKystLS0tLS0tLS0tCj4gPj4+ICAyIGZp bGVzIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQo+ID4+Pgo+ID4+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hZHY3NTExL2Fkdjc1MTFfY2Vj LmMgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2Fkdjc1MTEvYWR2NzUxMV9jZWMuYwo+ID4+PiBp bmRleCBhMjBhNDVjMGIzNTMuLmFjY2Y1ZTIzMjM5NiAxMDA2NDQKPiA+Pj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2JyaWRnZS9hZHY3NTExL2Fkdjc1MTFfY2VjLmMKPiA+Pj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2JyaWRnZS9hZHY3NTExL2Fkdjc1MTFfY2VjLmMKPiA+Pj4gQEAgLTMwMiw2ICsz MDIsNyBAQCBzdGF0aWMgaW50IGFkdjc1MTFfY2VjX3BhcnNlX2R0KHN0cnVjdCBkZXZpY2UgKmRl diwgc3RydWN0IGFkdjc1MTEgKmFkdjc1MTEpCj4gPj4+ICAKPiA+Pj4gIGludCBhZHY3NTExX2Nl Y19pbml0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGFkdjc1MTEgKmFkdjc1MTEpCj4gPj4+ ICB7Cj4gPj4+ICsJc3RydWN0IGNlY19jb25uZWN0b3JfaW5mbyBjb25uX2luZm87Cj4gPj4+ICAJ dW5zaWduZWQgaW50IG9mZnNldCA9IGFkdjc1MTEtPnR5cGUgPT0gQURWNzUzMyA/Cj4gPj4+ICAJ CQkJCQlBRFY3NTMzX1JFR19DRUNfT0ZGU0VUIDogMDsKPiA+Pj4gIAlpbnQgcmV0ID0gYWR2NzUx MV9jZWNfcGFyc2VfZHQoZGV2LCBhZHY3NTExKTsKPiA+Pj4gQEAgLTMxMCw3ICszMTEsOCBAQCBp bnQgYWR2NzUxMV9jZWNfaW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBhZHY3NTExICph ZHY3NTExKQo+ID4+PiAgCQlnb3RvIGVycl9jZWNfcGFyc2VfZHQ7Cj4gPj4+ICAKPiA+Pj4gIAlh ZHY3NTExLT5jZWNfYWRhcCA9IGNlY19hbGxvY2F0ZV9hZGFwdGVyKCZhZHY3NTExX2NlY19hZGFw X29wcywKPiA+Pj4gLQkJYWR2NzUxMSwgZGV2X25hbWUoZGV2KSwgQ0VDX0NBUF9ERUZBVUxUUywg QURWNzUxMV9NQVhfQUREUlMpOwo+ID4+PiArCQlhZHY3NTExLCBkZXZfbmFtZShkZXYpLAo+ID4+ PiArCQlDRUNfQ0FQX0RFRkFVTFRTIHwgQ0VDX0NBUF9DT05ORUNUT1JfSU5GTywgQURWNzUxMV9N QVhfQUREUlMpOwo+ID4+PiAgCWlmIChJU19FUlIoYWR2NzUxMS0+Y2VjX2FkYXApKSB7Cj4gPj4+ ICAJCXJldCA9IFBUUl9FUlIoYWR2NzUxMS0+Y2VjX2FkYXApOwo+ID4+PiAgCQlnb3RvIGVycl9j ZWNfYWxsb2M7Cj4gPj4+IEBAIC0zMzEsNiArMzMzLDkgQEAgaW50IGFkdjc1MTFfY2VjX2luaXQo c3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgYWR2NzUxMSAqYWR2NzUxMSkKPiA+Pj4gIAkJICAg ICBBRFY3NTExX1JFR19DRUNfQ0xLX0RJViArIG9mZnNldCwKPiA+Pj4gIAkJICAgICAoKGFkdjc1 MTEtPmNlY19jbGtfZnJlcSAvIDc1MDAwMCkgLSAxKSA8PCAyKTsKPiA+Pj4gIAo+ID4+PiArCWNl Y19maWxsX2Nvbm5faW5mb19mcm9tX2RybSgmY29ubl9pbmZvLCAmYWR2NzUxMS0+Y29ubmVjdG9y KTsKPiA+Pj4gKwljZWNfc19jb25uX2luZm8oYWR2NzUxMS0+Y2VjX2FkYXAsICZjb25uX2luZm8p Owo+ID4+Cj4gPj4gSSdtIHBhaW5mdWxseSB0cnlpbmcgdG8gZGVjb3VwbGUgYnJpZGdlcyBhbmQg Y29ubmVjdG9ycywgaWYgd2Uga2VlcAo+ID4+IG1lcmdpbmcgcGF0Y2hlcyB0aGF0IGdvIGluIHRo ZSBvcHBvc2l0ZSBkaXJlY3Rpb24sIEknbGwgbmV2ZXIgbWFuYWdlIHRvCj4gPj4gY29tcGxldGUg dGhpcyA6LSgKPiA+Pgo+ID4+IEJyaWRnZXMgYXJlIG1vdmluZyB0byBhIG1vZGVsIHdoZXJlIHRo ZXkgd29uJ3QgY3JlYXRlIGNvbm5lY3RvcnMKPiA+PiB0aGVtc2VsdmVzLCBzbyBhbnkgbmV3IGFj Y2VzcyB0byBkcm1fY29ubmVjdG9yIGNvbnRhaW5lZCBpbiBhIGJyaWRnZQo+ID4+IHN0cnVjdHVy ZSBpcyBhIG5vLWdvIEknbSBhZnJhaWQgKEknbSByZXBseWluZyB0byB0aGlzIHBhdGNoIGFzIEkg a25vdwo+ID4+IHRoaXMgZHJpdmVyIGJlc3QsIGJ1dCB0aGlzIGNvbW1lbnQgYXBwbGllcyB0byB0 aGUgb3RoZXIgdHdvIHBhdGNoZXMgaW4KPiA+PiB0aGUgc2VyaWVzIGFzIHdlbGwpLgo+ID4+Cj4g Pj4gSGVyZSdzIHdoYXQgSSB3cm90ZSBpbiBhIHByaXZhdGUgZS1tYWlsLCByZWdhcmRpbmcgc2lt aWxhciBjaGFuZ2VzIGZvcgo+ID4+IHRoZSBvbWFwZHJtIGRyaXZlci4KPiA+Pgo+ID4+IC0tLS0t LS0tCj4gPj4gUGxlYXNlIGhhdmUgYSBsb29rIGF0ICJbUEFUQ0ggMDAvNjBdIGRybS9vbWFwOiBS ZXBsYWNlIGN1c3RvbSBkaXNwbGF5Cj4gPj4gZHJpdmVycyB3aXRoIGRybV9icmlkZ2UgYW5kIGRy bV9wYW5lbCIsIGF2YWlsYWJsZSBpbiBhIG5ldyB2ZXJzaW9uIGF0Cj4gPj4KPiA+PiAJZ2l0Oi8v bGludXh0di5vcmcvcGluY2hhcnRsL21lZGlhLmdpdCBvbWFwZHJtL2JyaWRnZS9kZXZlbAo+ID4+ Cj4gPj4gKEkgd2lsbCBwb3N0IHYyIHNvb24pCj4gPj4KPiA+PiBUaGUgcGF0Y2hlcyBzaG93IHRo ZSBkaXJlY3Rpb24gdGhlIG9tYXBkcm0gZHJpdmVyIGlzIHRha2luZy4gVGhlIGdvYWwgaXMKPiA+ PiB0byBkZWNvdXBsZSBjb25uZWN0b3JzIGZyb20gYnJpZGdlcywgd2hpY2ggSSdtIGFmcmFpZCB3 aWxsIGhhdmUgYW4KPiA+PiBpbXBhY3Qgb24gYXNzb2NpYXRpbmcgZHJtX2Nvbm5lY3RvciB3aXRo IGEgQ0VDIGFkYXB0ZXIuIFRoaXMgc2hvdWxkIGJlCj4gPj4gaW1wbGVtZW50ZWQgdGhyb3VnaCBu ZXcgZHJtX2JyaWRnZSBvcGVyYXRpb25zLCBhcyBicmlkZ2VzLCB3aGVuIGNyZWF0ZWQsCj4gPj4g d2lsbCBub3QgY3JlYXRlIGRybV9jb25uZWN0b3IgYW55bW9yZS4KPiA+Pgo+ID4+IEkndmUgc29s dmVkIGEgc2ltaWxhciBwcm9ibGVtIHJlbGF0ZWQgdG8gYXNzb2NpYXRpbmcgRFJNIGNvbm5lY3Rv cnMgd2l0aAo+ID4+IGFuIEkyQyBhZGFwdGVyIGZvciBEREMuIFBsZWFzZSBzZWUgdGhlIGRybV9i cmlkZ2VfY29ubmVjdG9yX2luaXQoKQo+ID4+IGZ1bmN0aW9uIGFuZCBob3cgdGhlIEREQyBhZGFw dGVyIGlzIGhhbmRsZWQuIFNvbWV0aGluZyBzaW1pbGFyIGNvdWxkIGJlCj4gPj4gZG9uZSBmb3Ig Q0VDLgo+ID4+IC0tLS0tLS0tCj4gPj4KPiA+PiBTaW5jZSB0aGVuIHYyIGhhcyBiZWVuIHBvc3Rl ZCAoIltQQVRDSCB2MiAwMC81MF0gZHJtL29tYXA6IFJlcGxhY2UKPiA+PiBjdXN0b20gZGlzcGxh eSBkcml2ZXJzIHdpdGggZHJtX2JyaWRnZSBhbmQgZHJtX3BhbmVsIikgYW5kIHYzIGlzIGluCj4g Pj4gcHJlcGFyYXRpb24uCj4gPj4KPiA+PiBTbywgcGxlYXNlLCBsZXQncyBib3RoIGdvIGluIHRo ZSByaWdodCBkaXJlY3Rpb24gYW5kIHNvbHZlIHRoZSBwcm9ibGVtCj4gPj4gcHJvcGVybHkgZm9y IENFQy4KPiAKPiBJIGRvbid0IG1pbmQgd2FpdGluZyBvbmUga2VybmVsIGN5Y2xlLCBidXQgbm90 IGxvbmdlci4gVGhpcyBDRUMgZmVhdHVyZSBpcwo+IHJlYWR5IHRvIGJlIHJvbGxlZCBvdXQsIHNv IEkgYW0gbm90IHdpbGxpbmcgdG8gd2FpdCBhIGxvbmcgdGltZSBmb3IgYWxsCj4gb2YgdGhpcyB0 byBsYW5kLiBJIGNhbiBoZWxwIHRlc3QgQ0VDIG9uY2UgeW91IGFyZSBnb2luZyB0byByb2xsIHRo aXMgb3V0Cj4gZm9yIGFsbCBkcm0gZHJpdmVycyAoZXhjZXB0IGZvciB0aGUgc3RpIFNvQywgc2lu Y2UgSSBkb24ndCBoYXZlIGFueSBIVykuCj4gCj4gU28gZG8geW91IHRoaW5rIHRoaXMgd2lsbCBs YW5kIGZvciA1LjU/IElmIHllcywgdGhlbiBJJ2xsIHdhaXQuCgpJIHJlYWxseSBob3BlIHNvICEK CldvdWxkIHlvdSBiZSBhYmxlIHRvIHRyeSB0byBpbXBsZW1lbnQgdGhpcyBmZWF0dXJlIGZvciB0 aGUgT01BUDQgYmFzZWQKb24gbXkgb21hcGRybS9icmlkZ2UvZGV2ZWwgYnJhbmNoID8gVGhlIG90 aGVyIGRyaXZlcnMgc2hvdWxkIGZvbGxvdyB0aGUKc2FtZSBwYXRoLCBzbyB0aGF0IHdvdWxkIGJl IGEgZ29vZCBleGVyY2lzZS4KCj4gPj4+ICsKPiA+Pj4gIAlyZXQgPSBjZWNfcmVnaXN0ZXJfYWRh cHRlcihhZHY3NTExLT5jZWNfYWRhcCwgZGV2KTsKPiA+Pj4gIAlpZiAocmV0KQo+ID4+PiAgCQln b3RvIGVycl9jZWNfcmVnaXN0ZXI7Cj4gPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v YnJpZGdlL2Fkdjc1MTEvYWR2NzUxMV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYWR2 NzUxMS9hZHY3NTExX2Rydi5jCj4gPj4+IGluZGV4IGY2ZDI2ODFmNjkyNy4uYmJjYjk5NmM0ZDRm IDEwMDY0NAo+ID4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2Fkdjc1MTEvYWR2NzUx MV9kcnYuYwo+ID4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2Fkdjc1MTEvYWR2NzUx MV9kcnYuYwo+ID4+PiBAQCAtODgxLDE0ICs4ODEsMjQgQEAgc3RhdGljIGludCBhZHY3NTExX2Jy aWRnZV9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiA+Pj4gIAkJcmVnbWFwX3dy aXRlKGFkdi0+cmVnbWFwLCBBRFY3NTExX1JFR19JTlRfRU5BQkxFKDApLAo+ID4+PiAgCQkJICAg ICBBRFY3NTExX0lOVDBfSFBEKTsKPiA+Pj4gIAo+ID4+PiArCWlmICghcmV0KQo+ID4+PiArCQly ZXQgPSBhZHY3NTExX2NlY19pbml0KCZhZHYtPmkyY19tYWluLT5kZXYsIGFkdik7Cj4gPj4+ICAJ cmV0dXJuIHJldDsKPiA+Pj4gIH0KPiA+Pj4gIAo+ID4+PiArc3RhdGljIHZvaWQgYWR2NzUxMV9i cmlkZ2VfZGV0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gPj4+ICt7Cj4gPj4+ICsJ c3RydWN0IGFkdjc1MTEgKmFkdiA9IGJyaWRnZV90b19hZHY3NTExKGJyaWRnZSk7Cj4gPj4+ICsK PiA+Pj4gKwljZWNfdW5yZWdpc3Rlcl9hZGFwdGVyKGFkdi0+Y2VjX2FkYXApOwo+ID4+PiArfQo+ ID4+PiArCj4gPj4+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9icmlkZ2VfZnVuY3MgYWR2NzUx MV9icmlkZ2VfZnVuY3MgPSB7Cj4gPj4+ICAJLmVuYWJsZSA9IGFkdjc1MTFfYnJpZGdlX2VuYWJs ZSwKPiA+Pj4gIAkuZGlzYWJsZSA9IGFkdjc1MTFfYnJpZGdlX2Rpc2FibGUsCj4gPj4+ICAJLm1v ZGVfc2V0ID0gYWR2NzUxMV9icmlkZ2VfbW9kZV9zZXQsCj4gPj4+ICAJLmF0dGFjaCA9IGFkdjc1 MTFfYnJpZGdlX2F0dGFjaCwKPiA+Pj4gKwkuZGV0YWNoID0gYWR2NzUxMV9icmlkZ2VfZGV0YWNo LAo+ID4+PiAgfTsKPiA+Pj4gIAo+ID4+PiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+Pj4g QEAgLTEyMDIsNyArMTIxMiw3IEBAIHN0YXRpYyBpbnQgYWR2NzUxMV9wcm9iZShzdHJ1Y3QgaTJj X2NsaWVudCAqaTJjLCBjb25zdCBzdHJ1Y3QgaTJjX2RldmljZV9pZCAqaWQpCj4gPj4+ICAJCQkJ CQlJUlFGX09ORVNIT1QsIGRldl9uYW1lKGRldiksCj4gPj4+ICAJCQkJCQlhZHY3NTExKTsKPiA+ Pj4gIAkJaWYgKHJldCkKPiA+Pj4gLQkJCWdvdG8gZXJyX3VucmVnaXN0ZXJfY2VjOwo+ID4+PiAr CQkJZ290byBlcnJfaTJjX3VucmVnaXN0ZXJfcGFja2V0Owo+ID4+PiAgCX0KPiA+Pj4gIAo+ID4+ PiAgCWFkdjc1MTFfcG93ZXJfb2ZmKGFkdjc1MTEpOwo+ID4+PiBAQCAtMTIxMiwxMCArMTIyMiw2 IEBAIHN0YXRpYyBpbnQgYWR2NzUxMV9wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqaTJjLCBjb25z dCBzdHJ1Y3QgaTJjX2RldmljZV9pZCAqaWQpCj4gPj4+ICAJaWYgKGFkdjc1MTEtPnR5cGUgPT0g QURWNzUxMSkKPiA+Pj4gIAkJYWR2NzUxMV9zZXRfbGlua19jb25maWcoYWR2NzUxMSwgJmxpbmtf Y29uZmlnKTsKPiA+Pj4gIAo+ID4+PiAtCXJldCA9IGFkdjc1MTFfY2VjX2luaXQoZGV2LCBhZHY3 NTExKTsKPiA+Pj4gLQlpZiAocmV0KQo+ID4+PiAtCQlnb3RvIGVycl91bnJlZ2lzdGVyX2NlYzsK PiA+Pj4gLQo+ID4+PiAgCWFkdjc1MTEtPmJyaWRnZS5mdW5jcyA9ICZhZHY3NTExX2JyaWRnZV9m dW5jczsKPiA+Pj4gIAlhZHY3NTExLT5icmlkZ2Uub2Zfbm9kZSA9IGRldi0+b2Zfbm9kZTsKPiA+ Pj4gIAo+ID4+PiBAQCAtMTIyNCwxMCArMTIzMCw2IEBAIHN0YXRpYyBpbnQgYWR2NzUxMV9wcm9i ZShzdHJ1Y3QgaTJjX2NsaWVudCAqaTJjLCBjb25zdCBzdHJ1Y3QgaTJjX2RldmljZV9pZCAqaWQp Cj4gPj4+ICAJYWR2NzUxMV9hdWRpb19pbml0KGRldiwgYWR2NzUxMSk7Cj4gPj4+ICAJcmV0dXJu IDA7Cj4gPj4+ICAKPiA+Pj4gLWVycl91bnJlZ2lzdGVyX2NlYzoKPiA+Pj4gLQlpMmNfdW5yZWdp c3Rlcl9kZXZpY2UoYWR2NzUxMS0+aTJjX2NlYyk7Cj4gPj4+IC0JaWYgKGFkdjc1MTEtPmNlY19j bGspCj4gPj4+IC0JCWNsa19kaXNhYmxlX3VucHJlcGFyZShhZHY3NTExLT5jZWNfY2xrKTsKPiA+ Pj4gIGVycl9pMmNfdW5yZWdpc3Rlcl9wYWNrZXQ6Cj4gPj4+ICAJaTJjX3VucmVnaXN0ZXJfZGV2 aWNlKGFkdjc1MTEtPmkyY19wYWNrZXQpOwo+ID4+PiAgZXJyX2kyY191bnJlZ2lzdGVyX2VkaWQ6 Cj4gPj4+IEBAIC0xMjU0LDggKzEyNTYsNiBAQCBzdGF0aWMgaW50IGFkdjc1MTFfcmVtb3ZlKHN0 cnVjdCBpMmNfY2xpZW50ICppMmMpCj4gPj4+ICAKPiA+Pj4gIAlhZHY3NTExX2F1ZGlvX2V4aXQo YWR2NzUxMSk7Cj4gPj4+ICAKPiA+Pj4gLQljZWNfdW5yZWdpc3Rlcl9hZGFwdGVyKGFkdjc1MTEt PmNlY19hZGFwKTsKPiA+Pj4gLQo+ID4+PiAgCWkyY191bnJlZ2lzdGVyX2RldmljZShhZHY3NTEx LT5pMmNfcGFja2V0KTsKPiA+Pj4gIAlpMmNfdW5yZWdpc3Rlcl9kZXZpY2UoYWR2NzUxMS0+aTJj X2VkaWQpOwo+ID4+PiAgCgotLSAKUmVnYXJkcywKCkxhdXJlbnQgUGluY2hhcnQKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcg bGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.3 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C6284C3A59F for ; Mon, 26 Aug 2019 10:13:16 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 8FD622187F for ; Mon, 26 Aug 2019 10:13:16 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="YdPkQ+/C" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730415AbfHZKNQ (ORCPT ); Mon, 26 Aug 2019 06:13:16 -0400 Received: from perceval.ideasonboard.com ([213.167.242.64]:45868 "EHLO perceval.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729519AbfHZKNP (ORCPT ); Mon, 26 Aug 2019 06:13:15 -0400 Received: from pendragon.ideasonboard.com (dfj612yhrgyx302h3jwwy-3.rev.dnainternet.fi [IPv6:2001:14ba:21f5:5b00:ce28:277f:58d7:3ca4]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id BBBFC31B; Mon, 26 Aug 2019 12:13:12 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1566814392; bh=jNex4vFYH4ofjNfNbhw6UpRuul3WRpU01tPuuRZQDQE=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=YdPkQ+/CG6asZ+VViBXxDyxMiUC7hmtUl+I7F3GKnYfIp4KeDB6ok95a8QLIGJs8E hYDKKE5vr5mLTgxQuuTpexzrNykimyYWgSU5MsdutaBTEqnoaCXCmUJud9aB8jtGpV P7uwrmnofGwzvBpuO4Hzch3WlIlwuAeGQit4bpGE= Date: Mon, 26 Aug 2019 13:13:06 +0300 From: Laurent Pinchart To: Hans Verkuil Cc: linux-media@vger.kernel.org, Maling list - DRI developers , Dariusz Marcinkiewicz , Archit Taneja , Eric Anholt , Maxime Ripard , Andrzej Hajda , Neil Armstrong , Boris Brezillon Subject: Re: [PATCH 3/3] drm/bridge/adv7511: enable CEC connector info Message-ID: <20190826101306.GA5031@pendragon.ideasonboard.com> References: <20190823112427.42394-1-hverkuil-cisco@xs4all.nl> <20190823112427.42394-4-hverkuil-cisco@xs4all.nl> <20190823185847.GC4791@pendragon.ideasonboard.com> <20190823190140.GD4791@pendragon.ideasonboard.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org Hi Hans, On Mon, Aug 26, 2019 at 11:01:40AM +0200, Hans Verkuil wrote: > On 8/23/19 9:01 PM, Laurent Pinchart wrote: > > (And CC'ing Andrzej Hajda and Neil Armstrong as the new DRM bridge > > maintainers, as well as Boris Brezillon, to make sure they're aware of > > the problem) > > > > I would really appreciate if we could delay merging this series and > > other similar changes until we find a proper solution. > > > > On Fri, Aug 23, 2019 at 09:58:47PM +0300, Laurent Pinchart wrote: > >> On Fri, Aug 23, 2019 at 01:24:27PM +0200, Hans Verkuil wrote: > >>> Set the connector info to help userspace associate the CEC adapter > >>> with the HDMI connector. > >>> > >>> This required that the cec initialization and unregistering the > >>> CEC adapter takes place in the bridge attach and detach ops. > >>> > >>> Tested on an R-Car Koelsch board. > >>> > >>> Signed-off-by: Hans Verkuil > >>> Tested-by: Hans Verkuil > >>> --- > >>> drivers/gpu/drm/bridge/adv7511/adv7511_cec.c | 7 ++++++- > >>> drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 22 ++++++++++---------- > >>> 2 files changed, 17 insertions(+), 12 deletions(-) > >>> > >>> diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511_cec.c b/drivers/gpu/drm/bridge/adv7511/adv7511_cec.c > >>> index a20a45c0b353..accf5e232396 100644 > >>> --- a/drivers/gpu/drm/bridge/adv7511/adv7511_cec.c > >>> +++ b/drivers/gpu/drm/bridge/adv7511/adv7511_cec.c > >>> @@ -302,6 +302,7 @@ static int adv7511_cec_parse_dt(struct device *dev, struct adv7511 *adv7511) > >>> > >>> int adv7511_cec_init(struct device *dev, struct adv7511 *adv7511) > >>> { > >>> + struct cec_connector_info conn_info; > >>> unsigned int offset = adv7511->type == ADV7533 ? > >>> ADV7533_REG_CEC_OFFSET : 0; > >>> int ret = adv7511_cec_parse_dt(dev, adv7511); > >>> @@ -310,7 +311,8 @@ int adv7511_cec_init(struct device *dev, struct adv7511 *adv7511) > >>> goto err_cec_parse_dt; > >>> > >>> adv7511->cec_adap = cec_allocate_adapter(&adv7511_cec_adap_ops, > >>> - adv7511, dev_name(dev), CEC_CAP_DEFAULTS, ADV7511_MAX_ADDRS); > >>> + adv7511, dev_name(dev), > >>> + CEC_CAP_DEFAULTS | CEC_CAP_CONNECTOR_INFO, ADV7511_MAX_ADDRS); > >>> if (IS_ERR(adv7511->cec_adap)) { > >>> ret = PTR_ERR(adv7511->cec_adap); > >>> goto err_cec_alloc; > >>> @@ -331,6 +333,9 @@ int adv7511_cec_init(struct device *dev, struct adv7511 *adv7511) > >>> ADV7511_REG_CEC_CLK_DIV + offset, > >>> ((adv7511->cec_clk_freq / 750000) - 1) << 2); > >>> > >>> + cec_fill_conn_info_from_drm(&conn_info, &adv7511->connector); > >>> + cec_s_conn_info(adv7511->cec_adap, &conn_info); > >> > >> I'm painfully trying to decouple bridges and connectors, if we keep > >> merging patches that go in the opposite direction, I'll never manage to > >> complete this :-( > >> > >> Bridges are moving to a model where they won't create connectors > >> themselves, so any new access to drm_connector contained in a bridge > >> structure is a no-go I'm afraid (I'm replying to this patch as I know > >> this driver best, but this comment applies to the other two patches in > >> the series as well). > >> > >> Here's what I wrote in a private e-mail, regarding similar changes for > >> the omapdrm driver. > >> > >> -------- > >> Please have a look at "[PATCH 00/60] drm/omap: Replace custom display > >> drivers with drm_bridge and drm_panel", available in a new version at > >> > >> git://linuxtv.org/pinchartl/media.git omapdrm/bridge/devel > >> > >> (I will post v2 soon) > >> > >> The patches show the direction the omapdrm driver is taking. The goal is > >> to decouple connectors from bridges, which I'm afraid will have an > >> impact on associating drm_connector with a CEC adapter. This should be > >> implemented through new drm_bridge operations, as bridges, when created, > >> will not create drm_connector anymore. > >> > >> I've solved a similar problem related to associating DRM connectors with > >> an I2C adapter for DDC. Please see the drm_bridge_connector_init() > >> function and how the DDC adapter is handled. Something similar could be > >> done for CEC. > >> -------- > >> > >> Since then v2 has been posted ("[PATCH v2 00/50] drm/omap: Replace > >> custom display drivers with drm_bridge and drm_panel") and v3 is in > >> preparation. > >> > >> So, please, let's both go in the right direction and solve the problem > >> properly for CEC. > > I don't mind waiting one kernel cycle, but not longer. This CEC feature is > ready to be rolled out, so I am not willing to wait a long time for all > of this to land. I can help test CEC once you are going to roll this out > for all drm drivers (except for the sti SoC, since I don't have any HW). > > So do you think this will land for 5.5? If yes, then I'll wait. I really hope so ! Would you be able to try to implement this feature for the OMAP4 based on my omapdrm/bridge/devel branch ? The other drivers should follow the same path, so that would be a good exercise. > >>> + > >>> ret = cec_register_adapter(adv7511->cec_adap, dev); > >>> if (ret) > >>> goto err_cec_register; > >>> diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c > >>> index f6d2681f6927..bbcb996c4d4f 100644 > >>> --- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c > >>> +++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c > >>> @@ -881,14 +881,24 @@ static int adv7511_bridge_attach(struct drm_bridge *bridge) > >>> regmap_write(adv->regmap, ADV7511_REG_INT_ENABLE(0), > >>> ADV7511_INT0_HPD); > >>> > >>> + if (!ret) > >>> + ret = adv7511_cec_init(&adv->i2c_main->dev, adv); > >>> return ret; > >>> } > >>> > >>> +static void adv7511_bridge_detach(struct drm_bridge *bridge) > >>> +{ > >>> + struct adv7511 *adv = bridge_to_adv7511(bridge); > >>> + > >>> + cec_unregister_adapter(adv->cec_adap); > >>> +} > >>> + > >>> static const struct drm_bridge_funcs adv7511_bridge_funcs = { > >>> .enable = adv7511_bridge_enable, > >>> .disable = adv7511_bridge_disable, > >>> .mode_set = adv7511_bridge_mode_set, > >>> .attach = adv7511_bridge_attach, > >>> + .detach = adv7511_bridge_detach, > >>> }; > >>> > >>> /* ----------------------------------------------------------------------------- > >>> @@ -1202,7 +1212,7 @@ static int adv7511_probe(struct i2c_client *i2c, const struct i2c_device_id *id) > >>> IRQF_ONESHOT, dev_name(dev), > >>> adv7511); > >>> if (ret) > >>> - goto err_unregister_cec; > >>> + goto err_i2c_unregister_packet; > >>> } > >>> > >>> adv7511_power_off(adv7511); > >>> @@ -1212,10 +1222,6 @@ static int adv7511_probe(struct i2c_client *i2c, const struct i2c_device_id *id) > >>> if (adv7511->type == ADV7511) > >>> adv7511_set_link_config(adv7511, &link_config); > >>> > >>> - ret = adv7511_cec_init(dev, adv7511); > >>> - if (ret) > >>> - goto err_unregister_cec; > >>> - > >>> adv7511->bridge.funcs = &adv7511_bridge_funcs; > >>> adv7511->bridge.of_node = dev->of_node; > >>> > >>> @@ -1224,10 +1230,6 @@ static int adv7511_probe(struct i2c_client *i2c, const struct i2c_device_id *id) > >>> adv7511_audio_init(dev, adv7511); > >>> return 0; > >>> > >>> -err_unregister_cec: > >>> - i2c_unregister_device(adv7511->i2c_cec); > >>> - if (adv7511->cec_clk) > >>> - clk_disable_unprepare(adv7511->cec_clk); > >>> err_i2c_unregister_packet: > >>> i2c_unregister_device(adv7511->i2c_packet); > >>> err_i2c_unregister_edid: > >>> @@ -1254,8 +1256,6 @@ static int adv7511_remove(struct i2c_client *i2c) > >>> > >>> adv7511_audio_exit(adv7511); > >>> > >>> - cec_unregister_adapter(adv7511->cec_adap); > >>> - > >>> i2c_unregister_device(adv7511->i2c_packet); > >>> i2c_unregister_device(adv7511->i2c_edid); > >>> -- Regards, Laurent Pinchart