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: Fri, 23 Aug 2019 22:01:40 +0300 Message-ID: <20190823190140.GD4791@pendragon.ideasonboard.com> References: <20190823112427.42394-1-hverkuil-cisco@xs4all.nl> <20190823112427.42394-4-hverkuil-cisco@xs4all.nl> <20190823185847.GC4791@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 [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by gabe.freedesktop.org (Postfix) with ESMTPS id CC5DD6ED20 for ; Fri, 23 Aug 2019 19:01:56 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190823185847.GC4791@pendragon.ideasonboard.com> 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 KEFuZCBDQydpbmcgQW5kcnplaiBIYWpkYSBhbmQgTmVpbCBBcm1zdHJvbmcgYXMgdGhlIG5ldyBE Uk0gYnJpZGdlCm1haW50YWluZXJzLCBhcyB3ZWxsIGFzIEJvcmlzIEJyZXppbGxvbiwgdG8gbWFr ZSBzdXJlIHRoZXkncmUgYXdhcmUgb2YKdGhlIHByb2JsZW0pCgpJIHdvdWxkIHJlYWxseSBhcHBy ZWNpYXRlIGlmIHdlIGNvdWxkIGRlbGF5IG1lcmdpbmcgdGhpcyBzZXJpZXMgYW5kCm90aGVyIHNp bWlsYXIgY2hhbmdlcyB1bnRpbCB3ZSBmaW5kIGEgcHJvcGVyIHNvbHV0aW9uLgoKT24gRnJpLCBB dWcgMjMsIDIwMTkgYXQgMDk6NTg6NDdQTSArMDMwMCwgTGF1cmVudCBQaW5jaGFydCB3cm90ZToK PiBIaSBIYW5zLAo+IAo+IFRoYW5rIHlvdSBmb3IgdGhlIHBhdGNoLgo+IAo+IE9uIEZyaSwgQXVn IDIzLCAyMDE5IGF0IDAxOjI0OjI3UE0gKzAyMDAsIEhhbnMgVmVya3VpbCB3cm90ZToKPiA+IFNl dCB0aGUgY29ubmVjdG9yIGluZm8gdG8gaGVscCB1c2Vyc3BhY2UgYXNzb2NpYXRlIHRoZSBDRUMg YWRhcHRlcgo+ID4gd2l0aCB0aGUgSERNSSBjb25uZWN0b3IuCj4gPiAKPiA+IFRoaXMgcmVxdWly ZWQgdGhhdCB0aGUgY2VjIGluaXRpYWxpemF0aW9uIGFuZCB1bnJlZ2lzdGVyaW5nIHRoZQo+ID4g Q0VDIGFkYXB0ZXIgdGFrZXMgcGxhY2UgaW4gdGhlIGJyaWRnZSBhdHRhY2ggYW5kIGRldGFjaCBv cHMuCj4gPiAKPiA+IFRlc3RlZCBvbiBhbiBSLUNhciBLb2Vsc2NoIGJvYXJkLgo+ID4gCj4gPiBT aWduZWQtb2ZmLWJ5OiBIYW5zIFZlcmt1aWwgPGh2ZXJrdWlsLWNpc2NvQHhzNGFsbC5ubD4KPiA+ IFRlc3RlZC1ieTogSGFucyBWZXJrdWlsIDxodmVya3VpbC1jaXNjb0B4czRhbGwubmw+Cj4gPiAt LS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2Fkdjc1MTEvYWR2NzUxMV9jZWMuYyB8ICA3 ICsrKysrKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2Fkdjc1MTEvYWR2NzUxMV9kcnYu YyB8IDIyICsrKysrKysrKystLS0tLS0tLS0tCj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAxNyBpbnNl cnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9icmlkZ2UvYWR2NzUxMS9hZHY3NTExX2NlYy5jIGIvZHJpdmVycy9ncHUvZHJtL2Jy aWRnZS9hZHY3NTExL2Fkdjc1MTFfY2VjLmMKPiA+IGluZGV4IGEyMGE0NWMwYjM1My4uYWNjZjVl MjMyMzk2IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hZHY3NTExL2Fk djc1MTFfY2VjLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYWR2NzUxMS9hZHY3 NTExX2NlYy5jCj4gPiBAQCAtMzAyLDYgKzMwMiw3IEBAIHN0YXRpYyBpbnQgYWR2NzUxMV9jZWNf cGFyc2VfZHQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgYWR2NzUxMSAqYWR2NzUxMSkKPiA+ ICAKPiA+ICBpbnQgYWR2NzUxMV9jZWNfaW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBh ZHY3NTExICphZHY3NTExKQo+ID4gIHsKPiA+ICsJc3RydWN0IGNlY19jb25uZWN0b3JfaW5mbyBj b25uX2luZm87Cj4gPiAgCXVuc2lnbmVkIGludCBvZmZzZXQgPSBhZHY3NTExLT50eXBlID09IEFE Vjc1MzMgPwo+ID4gIAkJCQkJCUFEVjc1MzNfUkVHX0NFQ19PRkZTRVQgOiAwOwo+ID4gIAlpbnQg cmV0ID0gYWR2NzUxMV9jZWNfcGFyc2VfZHQoZGV2LCBhZHY3NTExKTsKPiA+IEBAIC0zMTAsNyAr MzExLDggQEAgaW50IGFkdjc1MTFfY2VjX2luaXQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qg YWR2NzUxMSAqYWR2NzUxMSkKPiA+ICAJCWdvdG8gZXJyX2NlY19wYXJzZV9kdDsKPiA+ICAKPiA+ ICAJYWR2NzUxMS0+Y2VjX2FkYXAgPSBjZWNfYWxsb2NhdGVfYWRhcHRlcigmYWR2NzUxMV9jZWNf YWRhcF9vcHMsCj4gPiAtCQlhZHY3NTExLCBkZXZfbmFtZShkZXYpLCBDRUNfQ0FQX0RFRkFVTFRT LCBBRFY3NTExX01BWF9BRERSUyk7Cj4gPiArCQlhZHY3NTExLCBkZXZfbmFtZShkZXYpLAo+ID4g KwkJQ0VDX0NBUF9ERUZBVUxUUyB8IENFQ19DQVBfQ09OTkVDVE9SX0lORk8sIEFEVjc1MTFfTUFY X0FERFJTKTsKPiA+ICAJaWYgKElTX0VSUihhZHY3NTExLT5jZWNfYWRhcCkpIHsKPiA+ICAJCXJl dCA9IFBUUl9FUlIoYWR2NzUxMS0+Y2VjX2FkYXApOwo+ID4gIAkJZ290byBlcnJfY2VjX2FsbG9j Owo+ID4gQEAgLTMzMSw2ICszMzMsOSBAQCBpbnQgYWR2NzUxMV9jZWNfaW5pdChzdHJ1Y3QgZGV2 aWNlICpkZXYsIHN0cnVjdCBhZHY3NTExICphZHY3NTExKQo+ID4gIAkJICAgICBBRFY3NTExX1JF R19DRUNfQ0xLX0RJViArIG9mZnNldCwKPiA+ICAJCSAgICAgKChhZHY3NTExLT5jZWNfY2xrX2Zy ZXEgLyA3NTAwMDApIC0gMSkgPDwgMik7Cj4gPiAgCj4gPiArCWNlY19maWxsX2Nvbm5faW5mb19m cm9tX2RybSgmY29ubl9pbmZvLCAmYWR2NzUxMS0+Y29ubmVjdG9yKTsKPiA+ICsJY2VjX3NfY29u bl9pbmZvKGFkdjc1MTEtPmNlY19hZGFwLCAmY29ubl9pbmZvKTsKPiAKPiBJJ20gcGFpbmZ1bGx5 IHRyeWluZyB0byBkZWNvdXBsZSBicmlkZ2VzIGFuZCBjb25uZWN0b3JzLCBpZiB3ZSBrZWVwCj4g bWVyZ2luZyBwYXRjaGVzIHRoYXQgZ28gaW4gdGhlIG9wcG9zaXRlIGRpcmVjdGlvbiwgSSdsbCBu ZXZlciBtYW5hZ2UgdG8KPiBjb21wbGV0ZSB0aGlzIDotKAo+IAo+IEJyaWRnZXMgYXJlIG1vdmlu ZyB0byBhIG1vZGVsIHdoZXJlIHRoZXkgd29uJ3QgY3JlYXRlIGNvbm5lY3RvcnMKPiB0aGVtc2Vs dmVzLCBzbyBhbnkgbmV3IGFjY2VzcyB0byBkcm1fY29ubmVjdG9yIGNvbnRhaW5lZCBpbiBhIGJy aWRnZQo+IHN0cnVjdHVyZSBpcyBhIG5vLWdvIEknbSBhZnJhaWQgKEknbSByZXBseWluZyB0byB0 aGlzIHBhdGNoIGFzIEkga25vdwo+IHRoaXMgZHJpdmVyIGJlc3QsIGJ1dCB0aGlzIGNvbW1lbnQg YXBwbGllcyB0byB0aGUgb3RoZXIgdHdvIHBhdGNoZXMgaW4KPiB0aGUgc2VyaWVzIGFzIHdlbGwp Lgo+IAo+IEhlcmUncyB3aGF0IEkgd3JvdGUgaW4gYSBwcml2YXRlIGUtbWFpbCwgcmVnYXJkaW5n IHNpbWlsYXIgY2hhbmdlcyBmb3IKPiB0aGUgb21hcGRybSBkcml2ZXIuCj4gCj4gLS0tLS0tLS0K PiBQbGVhc2UgaGF2ZSBhIGxvb2sgYXQgIltQQVRDSCAwMC82MF0gZHJtL29tYXA6IFJlcGxhY2Ug Y3VzdG9tIGRpc3BsYXkKPiBkcml2ZXJzIHdpdGggZHJtX2JyaWRnZSBhbmQgZHJtX3BhbmVsIiwg YXZhaWxhYmxlIGluIGEgbmV3IHZlcnNpb24gYXQKPiAKPiAJZ2l0Oi8vbGludXh0di5vcmcvcGlu Y2hhcnRsL21lZGlhLmdpdCBvbWFwZHJtL2JyaWRnZS9kZXZlbAo+IAo+IChJIHdpbGwgcG9zdCB2 MiBzb29uKQo+IAo+IFRoZSBwYXRjaGVzIHNob3cgdGhlIGRpcmVjdGlvbiB0aGUgb21hcGRybSBk cml2ZXIgaXMgdGFraW5nLiBUaGUgZ29hbCBpcwo+IHRvIGRlY291cGxlIGNvbm5lY3RvcnMgZnJv bSBicmlkZ2VzLCB3aGljaCBJJ20gYWZyYWlkIHdpbGwgaGF2ZSBhbgo+IGltcGFjdCBvbiBhc3Nv Y2lhdGluZyBkcm1fY29ubmVjdG9yIHdpdGggYSBDRUMgYWRhcHRlci4gVGhpcyBzaG91bGQgYmUK PiBpbXBsZW1lbnRlZCB0aHJvdWdoIG5ldyBkcm1fYnJpZGdlIG9wZXJhdGlvbnMsIGFzIGJyaWRn ZXMsIHdoZW4gY3JlYXRlZCwKPiB3aWxsIG5vdCBjcmVhdGUgZHJtX2Nvbm5lY3RvciBhbnltb3Jl Lgo+IAo+IEkndmUgc29sdmVkIGEgc2ltaWxhciBwcm9ibGVtIHJlbGF0ZWQgdG8gYXNzb2NpYXRp bmcgRFJNIGNvbm5lY3RvcnMgd2l0aAo+IGFuIEkyQyBhZGFwdGVyIGZvciBEREMuIFBsZWFzZSBz ZWUgdGhlIGRybV9icmlkZ2VfY29ubmVjdG9yX2luaXQoKQo+IGZ1bmN0aW9uIGFuZCBob3cgdGhl IEREQyBhZGFwdGVyIGlzIGhhbmRsZWQuIFNvbWV0aGluZyBzaW1pbGFyIGNvdWxkIGJlCj4gZG9u ZSBmb3IgQ0VDLgo+IC0tLS0tLS0tCj4gCj4gU2luY2UgdGhlbiB2MiBoYXMgYmVlbiBwb3N0ZWQg KCJbUEFUQ0ggdjIgMDAvNTBdIGRybS9vbWFwOiBSZXBsYWNlCj4gY3VzdG9tIGRpc3BsYXkgZHJp dmVycyB3aXRoIGRybV9icmlkZ2UgYW5kIGRybV9wYW5lbCIpIGFuZCB2MyBpcyBpbgo+IHByZXBh cmF0aW9uLgo+IAo+IFNvLCBwbGVhc2UsIGxldCdzIGJvdGggZ28gaW4gdGhlIHJpZ2h0IGRpcmVj dGlvbiBhbmQgc29sdmUgdGhlIHByb2JsZW0KPiBwcm9wZXJseSBmb3IgQ0VDLgo+IAo+ID4gKwo+ ID4gIAlyZXQgPSBjZWNfcmVnaXN0ZXJfYWRhcHRlcihhZHY3NTExLT5jZWNfYWRhcCwgZGV2KTsK PiA+ICAJaWYgKHJldCkKPiA+ICAJCWdvdG8gZXJyX2NlY19yZWdpc3RlcjsKPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2Fkdjc1MTEvYWR2NzUxMV9kcnYuYyBiL2RyaXZl cnMvZ3B1L2RybS9icmlkZ2UvYWR2NzUxMS9hZHY3NTExX2Rydi5jCj4gPiBpbmRleCBmNmQyNjgx ZjY5MjcuLmJiY2I5OTZjNGQ0ZiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlk Z2UvYWR2NzUxMS9hZHY3NTExX2Rydi5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdl L2Fkdjc1MTEvYWR2NzUxMV9kcnYuYwo+ID4gQEAgLTg4MSwxNCArODgxLDI0IEBAIHN0YXRpYyBp bnQgYWR2NzUxMV9icmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gPiAg CQlyZWdtYXBfd3JpdGUoYWR2LT5yZWdtYXAsIEFEVjc1MTFfUkVHX0lOVF9FTkFCTEUoMCksCj4g PiAgCQkJICAgICBBRFY3NTExX0lOVDBfSFBEKTsKPiA+ICAKPiA+ICsJaWYgKCFyZXQpCj4gPiAr CQlyZXQgPSBhZHY3NTExX2NlY19pbml0KCZhZHYtPmkyY19tYWluLT5kZXYsIGFkdik7Cj4gPiAg CXJldHVybiByZXQ7Cj4gPiAgfQo+ID4gIAo+ID4gK3N0YXRpYyB2b2lkIGFkdjc1MTFfYnJpZGdl X2RldGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ID4gK3sKPiA+ICsJc3RydWN0IGFk djc1MTEgKmFkdiA9IGJyaWRnZV90b19hZHY3NTExKGJyaWRnZSk7Cj4gPiArCj4gPiArCWNlY191 bnJlZ2lzdGVyX2FkYXB0ZXIoYWR2LT5jZWNfYWRhcCk7Cj4gPiArfQo+ID4gKwo+ID4gIHN0YXRp YyBjb25zdCBzdHJ1Y3QgZHJtX2JyaWRnZV9mdW5jcyBhZHY3NTExX2JyaWRnZV9mdW5jcyA9IHsK PiA+ICAJLmVuYWJsZSA9IGFkdjc1MTFfYnJpZGdlX2VuYWJsZSwKPiA+ICAJLmRpc2FibGUgPSBh ZHY3NTExX2JyaWRnZV9kaXNhYmxlLAo+ID4gIAkubW9kZV9zZXQgPSBhZHY3NTExX2JyaWRnZV9t b2RlX3NldCwKPiA+ICAJLmF0dGFjaCA9IGFkdjc1MTFfYnJpZGdlX2F0dGFjaCwKPiA+ICsJLmRl dGFjaCA9IGFkdjc1MTFfYnJpZGdlX2RldGFjaCwKPiA+ICB9Owo+ID4gIAo+ID4gIC8qIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCj4gPiBAQCAtMTIwMiw3ICsxMjEyLDcgQEAgc3RhdGljIGludCBhZHY3 NTExX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICppMmMsIGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNl X2lkICppZCkKPiA+ICAJCQkJCQlJUlFGX09ORVNIT1QsIGRldl9uYW1lKGRldiksCj4gPiAgCQkJ CQkJYWR2NzUxMSk7Cj4gPiAgCQlpZiAocmV0KQo+ID4gLQkJCWdvdG8gZXJyX3VucmVnaXN0ZXJf Y2VjOwo+ID4gKwkJCWdvdG8gZXJyX2kyY191bnJlZ2lzdGVyX3BhY2tldDsKPiA+ICAJfQo+ID4g IAo+ID4gIAlhZHY3NTExX3Bvd2VyX29mZihhZHY3NTExKTsKPiA+IEBAIC0xMjEyLDEwICsxMjIy LDYgQEAgc3RhdGljIGludCBhZHY3NTExX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICppMmMsIGNv bnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkICppZCkKPiA+ICAJaWYgKGFkdjc1MTEtPnR5cGUgPT0g QURWNzUxMSkKPiA+ICAJCWFkdjc1MTFfc2V0X2xpbmtfY29uZmlnKGFkdjc1MTEsICZsaW5rX2Nv bmZpZyk7Cj4gPiAgCj4gPiAtCXJldCA9IGFkdjc1MTFfY2VjX2luaXQoZGV2LCBhZHY3NTExKTsK PiA+IC0JaWYgKHJldCkKPiA+IC0JCWdvdG8gZXJyX3VucmVnaXN0ZXJfY2VjOwo+ID4gLQo+ID4g IAlhZHY3NTExLT5icmlkZ2UuZnVuY3MgPSAmYWR2NzUxMV9icmlkZ2VfZnVuY3M7Cj4gPiAgCWFk djc1MTEtPmJyaWRnZS5vZl9ub2RlID0gZGV2LT5vZl9ub2RlOwo+ID4gIAo+ID4gQEAgLTEyMjQs MTAgKzEyMzAsNiBAQCBzdGF0aWMgaW50IGFkdjc1MTFfcHJvYmUoc3RydWN0IGkyY19jbGllbnQg KmkyYywgY29uc3Qgc3RydWN0IGkyY19kZXZpY2VfaWQgKmlkKQo+ID4gIAlhZHY3NTExX2F1ZGlv X2luaXQoZGV2LCBhZHY3NTExKTsKPiA+ICAJcmV0dXJuIDA7Cj4gPiAgCj4gPiAtZXJyX3VucmVn aXN0ZXJfY2VjOgo+ID4gLQlpMmNfdW5yZWdpc3Rlcl9kZXZpY2UoYWR2NzUxMS0+aTJjX2NlYyk7 Cj4gPiAtCWlmIChhZHY3NTExLT5jZWNfY2xrKQo+ID4gLQkJY2xrX2Rpc2FibGVfdW5wcmVwYXJl KGFkdjc1MTEtPmNlY19jbGspOwo+ID4gIGVycl9pMmNfdW5yZWdpc3Rlcl9wYWNrZXQ6Cj4gPiAg CWkyY191bnJlZ2lzdGVyX2RldmljZShhZHY3NTExLT5pMmNfcGFja2V0KTsKPiA+ICBlcnJfaTJj X3VucmVnaXN0ZXJfZWRpZDoKPiA+IEBAIC0xMjU0LDggKzEyNTYsNiBAQCBzdGF0aWMgaW50IGFk djc1MTFfcmVtb3ZlKHN0cnVjdCBpMmNfY2xpZW50ICppMmMpCj4gPiAgCj4gPiAgCWFkdjc1MTFf YXVkaW9fZXhpdChhZHY3NTExKTsKPiA+ICAKPiA+IC0JY2VjX3VucmVnaXN0ZXJfYWRhcHRlcihh ZHY3NTExLT5jZWNfYWRhcCk7Cj4gPiAtCj4gPiAgCWkyY191bnJlZ2lzdGVyX2RldmljZShhZHY3 NTExLT5pMmNfcGFja2V0KTsKPiA+ICAJaTJjX3VucmVnaXN0ZXJfZGV2aWNlKGFkdjc1MTEtPmky Y19lZGlkKTsKPiA+ICAKPiAKPiAtLSAKPiBSZWdhcmRzLAo+IAo+IExhdXJlbnQgUGluY2hhcnQK Ci0tIApSZWdhcmRzLAoKTGF1cmVudCBQaW5jaGFydApfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWw= 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 028EAC3A5A2 for ; Fri, 23 Aug 2019 19:01:58 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id BEF2C21848 for ; Fri, 23 Aug 2019 19:01:57 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="QGi+GIBj" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390947AbfHWTB5 (ORCPT ); Fri, 23 Aug 2019 15:01:57 -0400 Received: from perceval.ideasonboard.com ([213.167.242.64]:36970 "EHLO perceval.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1733137AbfHWTB5 (ORCPT ); Fri, 23 Aug 2019 15:01:57 -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 F0B5780F; Fri, 23 Aug 2019 21:01:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1566586915; bh=QNtjdlgNWmQ4SefepoDp3lhUh7I7L2EImWrzqQdFfCs=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=QGi+GIBjaTUEbxAKhHKRff31AD5wfvDhGnnsY7WOewzahIleDFweUFVAfVo5oRG3w PYbrwgmGkWFgdegbqRkBHrHMUz9R2sX0TbgvVCWrAnyDgmDMty8FPGfk7i/q1Ymigz 6p+tiY6pGySZ3faomuSDPtWfzKxCWrac+GD1dNpo= Date: Fri, 23 Aug 2019 22:01:40 +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: <20190823190140.GD4791@pendragon.ideasonboard.com> References: <20190823112427.42394-1-hverkuil-cisco@xs4all.nl> <20190823112427.42394-4-hverkuil-cisco@xs4all.nl> <20190823185847.GC4791@pendragon.ideasonboard.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20190823185847.GC4791@pendragon.ideasonboard.com> 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 (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: > Hi Hans, > > Thank you for the patch. > > 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. > > > + > > 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 -- Regards, Laurent Pinchart