From mboxrd@z Thu Jan 1 00:00:00 1970 From: laurent.pinchart@ideasonboard.com (Laurent Pinchart) Date: Wed, 02 Aug 2017 16:14:34 +0300 Subject: [PATCH v2 3/4] drm/bridge: dw-hdmi: add cec driver In-Reply-To: <56537209-32df-8b4e-13cd-19548ad8d1da@xs4all.nl> References: <20170731142906.GX31807@n2100.armlinux.org.uk> <1884159.hmXKyeR78T@avalon> <56537209-32df-8b4e-13cd-19548ad8d1da@xs4all.nl> Message-ID: <4399618.oOUScL5uAk@avalon> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi Hans, On Wednesday 02 Aug 2017 08:47:23 Hans Verkuil wrote: > On 08/02/2017 12:32 AM, Laurent Pinchart wrote: > >> + > >> + cec_register_cec_notifier(cec->adap, cec->notify); > >> + > >> + return 0; > >> +} > >> + > >> +static int dw_hdmi_cec_remove(struct platform_device *pdev) > >> +{ > >> + struct dw_hdmi_cec *cec = platform_get_drvdata(pdev); > >> + > >> + cec_unregister_adapter(cec->adap); > >> + cec_notifier_put(cec->notify); > >> + > >> + return 0; > >> +} > >> + > >> +static struct platform_driver dw_hdmi_cec_driver = { > >> + .probe = dw_hdmi_cec_probe, > >> + .remove = dw_hdmi_cec_remove, > >> + .driver = { > >> + .name = "dw-hdmi-cec", > >> + }, > >> +}; > >> +module_platform_driver(dw_hdmi_cec_driver); > > > > Is there a particular reason why this has to be a separate module instead > > of simply calling the CEC init/cleanup functions directly from the main > > dw-hdmi driver ? > > Not all SoCs that use dw-hdmi also use the dw-hdmi CEC implementation. Some > use their own implementation (amlogic). Lovely. Of course we need to reinvent the wheel every time, where would the fun be otherwise ? > So by implementing the cec-notifier in the dw-hdmi driver and keeping dw- > hdmi CEC separate you can easily choose whether or not you want to use this > CEC driver or another SoC CEC driver. I'm certainly fine with such a split, but I don't think it requires a separate platform_driver. We could use a similar approach as with the HDMI PHY that can also differ between SoCs. The PHY is identified at runtime when possible, and the SoC-specific glue code can override that with a few data fields and function pointers. > >> +MODULE_AUTHOR("Russell King "); > >> +MODULE_DESCRIPTION("Synopsys Designware HDMI CEC driver for i.MX"); > >> +MODULE_LICENSE("GPL"); > >> +MODULE_ALIAS(PLATFORM_MODULE_PREFIX "dw-hdmi-cec"); -- Regards, Laurent Pinchart From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH v2 3/4] drm/bridge: dw-hdmi: add cec driver Date: Wed, 02 Aug 2017 16:14:34 +0300 Message-ID: <4399618.oOUScL5uAk@avalon> References: <20170731142906.GX31807@n2100.armlinux.org.uk> <1884159.hmXKyeR78T@avalon> <56537209-32df-8b4e-13cd-19548ad8d1da@xs4all.nl> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from galahad.ideasonboard.com (galahad.ideasonboard.com [IPv6:2001:4b98:dc2:45:216:3eff:febb:480d]) by gabe.freedesktop.org (Postfix) with ESMTPS id B0C826E1E3 for ; Wed, 2 Aug 2017 13:14:21 +0000 (UTC) In-Reply-To: <56537209-32df-8b4e-13cd-19548ad8d1da@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: Russell King , linux-arm-kernel@lists.infradead.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org SGkgSGFucywKCk9uIFdlZG5lc2RheSAwMiBBdWcgMjAxNyAwODo0NzoyMyBIYW5zIFZlcmt1aWwg d3JvdGU6Cj4gT24gMDgvMDIvMjAxNyAxMjozMiBBTSwgTGF1cmVudCBQaW5jaGFydCB3cm90ZToK PiA+PiArCj4gPj4gKwljZWNfcmVnaXN0ZXJfY2VjX25vdGlmaWVyKGNlYy0+YWRhcCwgY2VjLT5u b3RpZnkpOwo+ID4+ICsKPiA+PiArCXJldHVybiAwOwo+ID4+ICt9Cj4gPj4gKwo+ID4+ICtzdGF0 aWMgaW50IGR3X2hkbWlfY2VjX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ ID4+ICt7Cj4gPj4gKwlzdHJ1Y3QgZHdfaGRtaV9jZWMgKmNlYyA9IHBsYXRmb3JtX2dldF9kcnZk YXRhKHBkZXYpOwo+ID4+ICsKPiA+PiArCWNlY191bnJlZ2lzdGVyX2FkYXB0ZXIoY2VjLT5hZGFw KTsKPiA+PiArCWNlY19ub3RpZmllcl9wdXQoY2VjLT5ub3RpZnkpOwo+ID4+ICsKPiA+PiArCXJl dHVybiAwOwo+ID4+ICt9Cj4gPj4gKwo+ID4+ICtzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZl ciBkd19oZG1pX2NlY19kcml2ZXIgPSB7Cj4gPj4gKwkucHJvYmUJPSBkd19oZG1pX2NlY19wcm9i ZSwKPiA+PiArCS5yZW1vdmUJPSBkd19oZG1pX2NlY19yZW1vdmUsCj4gPj4gKwkuZHJpdmVyID0g ewo+ID4+ICsJCS5uYW1lID0gImR3LWhkbWktY2VjIiwKPiA+PiArCX0sCj4gPj4gK307Cj4gPj4g K21vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoZHdfaGRtaV9jZWNfZHJpdmVyKTsKPiA+IAo+ID4gSXMg dGhlcmUgYSBwYXJ0aWN1bGFyIHJlYXNvbiB3aHkgdGhpcyBoYXMgdG8gYmUgYSBzZXBhcmF0ZSBt b2R1bGUgaW5zdGVhZAo+ID4gb2Ygc2ltcGx5IGNhbGxpbmcgdGhlIENFQyBpbml0L2NsZWFudXAg ZnVuY3Rpb25zIGRpcmVjdGx5IGZyb20gdGhlIG1haW4KPiA+IGR3LWhkbWkgZHJpdmVyID8KPiAK PiBOb3QgYWxsIFNvQ3MgdGhhdCB1c2UgZHctaGRtaSBhbHNvIHVzZSB0aGUgZHctaGRtaSBDRUMg aW1wbGVtZW50YXRpb24uIFNvbWUKPiB1c2UgdGhlaXIgb3duIGltcGxlbWVudGF0aW9uIChhbWxv Z2ljKS4KCkxvdmVseS4gT2YgY291cnNlIHdlIG5lZWQgdG8gcmVpbnZlbnQgdGhlIHdoZWVsIGV2 ZXJ5IHRpbWUsIHdoZXJlIHdvdWxkIHRoZSAKZnVuIGJlIG90aGVyd2lzZSA/Cgo+IFNvIGJ5IGlt cGxlbWVudGluZyB0aGUgY2VjLW5vdGlmaWVyIGluIHRoZSBkdy1oZG1pIGRyaXZlciBhbmQga2Vl cGluZyBkdy0KPiBoZG1pIENFQyBzZXBhcmF0ZSB5b3UgY2FuIGVhc2lseSBjaG9vc2Ugd2hldGhl ciBvciBub3QgeW91IHdhbnQgdG8gdXNlIHRoaXMKPiBDRUMgZHJpdmVyIG9yIGFub3RoZXIgU29D IENFQyBkcml2ZXIuCgpJJ20gY2VydGFpbmx5IGZpbmUgd2l0aCBzdWNoIGEgc3BsaXQsIGJ1dCBJ IGRvbid0IHRoaW5rIGl0IHJlcXVpcmVzIGEgc2VwYXJhdGUgCnBsYXRmb3JtX2RyaXZlci4gV2Ug Y291bGQgdXNlIGEgc2ltaWxhciBhcHByb2FjaCBhcyB3aXRoIHRoZSBIRE1JIFBIWSB0aGF0IGNh biAKYWxzbyBkaWZmZXIgYmV0d2VlbiBTb0NzLiBUaGUgUEhZIGlzIGlkZW50aWZpZWQgYXQgcnVu dGltZSB3aGVuIHBvc3NpYmxlLCBhbmQgCnRoZSBTb0Mtc3BlY2lmaWMgZ2x1ZSBjb2RlIGNhbiBv dmVycmlkZSB0aGF0IHdpdGggYSBmZXcgZGF0YSBmaWVsZHMgYW5kIApmdW5jdGlvbiBwb2ludGVy cy4KCj4gPj4gK01PRFVMRV9BVVRIT1IoIlJ1c3NlbGwgS2luZyA8cm1rK2tlcm5lbEBhcm1saW51 eC5vcmcudWs+Iik7Cj4gPj4gK01PRFVMRV9ERVNDUklQVElPTigiU3lub3BzeXMgRGVzaWdud2Fy ZSBIRE1JIENFQyBkcml2ZXIgZm9yIGkuTVgiKTsKPiA+PiArTU9EVUxFX0xJQ0VOU0UoIkdQTCIp Owo+ID4+ICtNT0RVTEVfQUxJQVMoUExBVEZPUk1fTU9EVUxFX1BSRUZJWCAiZHctaGRtaS1jZWMi KTsKCi0tIApSZWdhcmRzLAoKTGF1cmVudCBQaW5jaGFydAoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==