From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from relay2-d.mail.gandi.net ([217.70.183.194]:48084 "EHLO relay2-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751200AbeCJSAk (ORCPT ); Sat, 10 Mar 2018 13:00:40 -0500 Date: Sat, 10 Mar 2018 19:00:31 +0100 From: jacopo mondi To: Archit Taneja Cc: Jacopo Mondi , a.hajda@samsung.com, Laurent.pinchart@ideasonboard.com, airlied@linux.ie, horms@verge.net.au, magnus.damm@gmail.com, geert@linux-m68k.org, niklas.soderlund@ragnatech.se, sergei.shtylyov@cogentembedded.com, robh+dt@kernel.org, mark.rutland@arm.com, dri-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 0/3] drm: Add LVDS decoder bridge Message-ID: <20180310180031.GJ4023@w540> References: <1520603500-15218-1-git-send-email-jacopo+renesas@jmondi.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: Sender: linux-renesas-soc-owner@vger.kernel.org List-ID: Hello Archit, On Sat, Mar 10, 2018 at 11:23:19AM +0530, Archit Taneja wrote: > Hi, > > On Friday 09 March 2018 07:21 PM, Jacopo Mondi wrote: > >Hello, > > after some discussion on the proposed bindings for generic lvds decoder and > >Thine THC63LVD1024, I decided to drop the THC63 specific part and just live with > >a transparent decoder that does not support any configuration from DT. > > > >Dropping THC63 support to avoid discussion on how to better implement support > >for a DRM bridge with 2 input ports and focus on LVDS mode propagation through > >bridges as explained in v1 cover letter (for DRM people: please see [1] as why > >I find difficult to implement support for bridges with multiple input endpoints) > > > >Same base branch as v1, with same patches for V3M Eagle applied on top. > >git://jmondi.org/linux v3m/v4.16-rc3/base > > > >Thanks > > j > > > >v1 -> v2: > >- Drop support for THC63LVD1024 > > > >[1] I had a quick at how to model a DRM bridge with multiple input > >ports, and I see a blocker in how DRM identifies and matches bridges using > >the devices node in place of the endpoint nodes. > > > >As THC63LVD1024 supports up to 2 LVDS inputs and 2 LVDS outputs, I see only > >a few ways to support that: > > 1) register 2 drm bridges from the same driver (one for each input/output pair) > > but they would both be matches on the same device node when the preceding > > bridge calls "of_drm_find_bridge()". > > I think this is the way to go. DRM doesn't say anywhere that we can't have 2 > drm_bridge-s contained in a single device. About the issue with > of_drm_find_bridge(), if you set the 2 bridge's 'of_node' field to > the bridge1 and bridge2 nodes as shown below, wouldn't that suffice. From > what I know, we don't necessarily need to set the bridge's of_node > to the device (i.e, thschip) itself. That's fine, but this implies that the preceding bridge (or encoder) in the DRM pipeline has then to collect the "port" node and match on it specifically when it attaches this driver. This introduces an ad-hoc policy that prevents this driver from being easily integrated in existing pipelines (where bridges are matched on the device node). Also, I don't know much about the DRM framework, but it seems to me that the helper function designed to find the next component to attach to in the DRM pipeline is: drm_of_find_panel_or_bridge(): remote = of_graph_get_remote_node(); ep = of_graph_get_endpoint_by_regs(); return of_graph_get_remote_port_parent(); <-- This returns the device node of_drm_find_panel(remote); of_drm_find_bridge(remote); I so dare to say matching on device node is kind of the intended way to do things in DRM, and this driver with two endpoints that wants to be matched on port nodes would be kind of special one that does not work as other driver expects to. Is my understanding correct, or have I misinterpreted something? Thanks j > > thschip { > ... > ports { > bridge1: port@0 { > ... > }; > > bridge2: port@1 { > ... > }; > }; > }; > > > Thanks, > Archit > > > 2) register a single bridge with multiple "next bridges", but when the bridge > > gets attached I don't see a way on how to identify on which next bridge > > "drm_bridge_attach()" on, as it depends on the endpoint the current bridge > > has been attached on first, and we don't have that information. > > 3) Register more instances of the same chip in DTS, one for each input/output > > pair. They gonna share supplies and gpios, and I don't like that. > > > >I had a quick look at the currently in mainline bridges and none of them has > >multiple input endpoints, except for HDMI audio endpoint, which I haven't found > >in use in any DTS. I guess the problem has been already debated and maybe solved > >in the past, so feel free to point me to other sources. > > > >Jacopo Mondi (3): > > dt-bindings: display: bridge: Document LVDS to parallel decoder > > drm: bridge: Add LVDS decoder driver > > arm64: dts: renesas: Add LVDS decoder to R-Car V3M Eagle > > > > .../bindings/display/bridge/lvds-decoder.txt | 42 ++++++ > > arch/arm64/boot/dts/renesas/r8a77970-eagle.dts | 31 +++- > > drivers/gpu/drm/bridge/Kconfig | 8 ++ > > drivers/gpu/drm/bridge/Makefile | 1 + > > drivers/gpu/drm/bridge/lvds-decoder.c | 157 +++++++++++++++++++++ > > 5 files changed, 237 insertions(+), 2 deletions(-) > > create mode 100644 Documentation/devicetree/bindings/display/bridge/lvds-decoder.txt > > create mode 100644 drivers/gpu/drm/bridge/lvds-decoder.c > > > >-- > >2.7.4 > > From mboxrd@z Thu Jan 1 00:00:00 1970 From: jacopo mondi Subject: Re: [PATCH v2 0/3] drm: Add LVDS decoder bridge Date: Sat, 10 Mar 2018 19:00:31 +0100 Message-ID: <20180310180031.GJ4023@w540> References: <1520603500-15218-1-git-send-email-jacopo+renesas@jmondi.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: 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: Archit Taneja Cc: mark.rutland@arm.com, devicetree@vger.kernel.org, sergei.shtylyov@cogentembedded.com, airlied@linux.ie, dri-devel@lists.freedesktop.org, magnus.damm@gmail.com, linux-kernel@vger.kernel.org, robh+dt@kernel.org, linux-renesas-soc@vger.kernel.org, horms@verge.net.au, Jacopo Mondi , Laurent.pinchart@ideasonboard.com, niklas.soderlund@ragnatech.se, geert@linux-m68k.org List-Id: devicetree@vger.kernel.org SGVsbG8gQXJjaGl0LAoKT24gU2F0LCBNYXIgMTAsIDIwMTggYXQgMTE6MjM6MTlBTSArMDUzMCwg QXJjaGl0IFRhbmVqYSB3cm90ZToKPiBIaSwKPgo+IE9uIEZyaWRheSAwOSBNYXJjaCAyMDE4IDA3 OjIxIFBNLCBKYWNvcG8gTW9uZGkgd3JvdGU6Cj4gPkhlbGxvLAo+ID4gICAgYWZ0ZXIgc29tZSBk aXNjdXNzaW9uIG9uIHRoZSBwcm9wb3NlZCBiaW5kaW5ncyBmb3IgZ2VuZXJpYyBsdmRzIGRlY29k ZXIgYW5kCj4gPlRoaW5lIFRIQzYzTFZEMTAyNCwgSSBkZWNpZGVkIHRvIGRyb3AgdGhlIFRIQzYz IHNwZWNpZmljIHBhcnQgYW5kIGp1c3QgbGl2ZSB3aXRoCj4gPmEgdHJhbnNwYXJlbnQgZGVjb2Rl ciB0aGF0IGRvZXMgbm90IHN1cHBvcnQgYW55IGNvbmZpZ3VyYXRpb24gZnJvbSBEVC4KPiA+Cj4g PkRyb3BwaW5nIFRIQzYzIHN1cHBvcnQgdG8gYXZvaWQgZGlzY3Vzc2lvbiBvbiBob3cgdG8gYmV0 dGVyIGltcGxlbWVudCBzdXBwb3J0Cj4gPmZvciBhIERSTSBicmlkZ2Ugd2l0aCAyIGlucHV0IHBv cnRzIGFuZCBmb2N1cyBvbiBMVkRTIG1vZGUgcHJvcGFnYXRpb24gdGhyb3VnaAo+ID5icmlkZ2Vz IGFzIGV4cGxhaW5lZCBpbiB2MSBjb3ZlciBsZXR0ZXIgKGZvciBEUk0gcGVvcGxlOiBwbGVhc2Ug c2VlIFsxXSBhcyB3aHkKPiA+SSBmaW5kIGRpZmZpY3VsdCB0byBpbXBsZW1lbnQgc3VwcG9ydCBm b3IgYnJpZGdlcyB3aXRoIG11bHRpcGxlIGlucHV0IGVuZHBvaW50cykKPiA+Cj4gPlNhbWUgYmFz ZSBicmFuY2ggYXMgdjEsIHdpdGggc2FtZSBwYXRjaGVzIGZvciBWM00gRWFnbGUgYXBwbGllZCBv biB0b3AuCj4gPmdpdDovL2ptb25kaS5vcmcvbGludXggdjNtL3Y0LjE2LXJjMy9iYXNlCj4gPgo+ ID5UaGFua3MKPiA+ICAgIGoKPiA+Cj4gPnYxIC0+IHYyOgo+ID4tIERyb3Agc3VwcG9ydCBmb3Ig VEhDNjNMVkQxMDI0Cj4gPgo+ID5bMV0gSSBoYWQgYSBxdWljayBhdCBob3cgdG8gbW9kZWwgYSBE Uk0gYnJpZGdlIHdpdGggbXVsdGlwbGUgaW5wdXQKPiA+cG9ydHMsIGFuZCBJIHNlZSBhIGJsb2Nr ZXIgaW4gaG93IERSTSBpZGVudGlmaWVzIGFuZCBtYXRjaGVzIGJyaWRnZXMgdXNpbmcKPiA+dGhl IGRldmljZXMgbm9kZSBpbiBwbGFjZSBvZiB0aGUgZW5kcG9pbnQgbm9kZXMuCj4gPgo+ID5BcyBU SEM2M0xWRDEwMjQgc3VwcG9ydHMgdXAgdG8gMiBMVkRTIGlucHV0cyBhbmQgMiBMVkRTIG91dHB1 dHMsIEkgc2VlIG9ubHkKPiA+YSBmZXcgd2F5cyB0byBzdXBwb3J0IHRoYXQ6Cj4gPiAgMSkgcmVn aXN0ZXIgMiBkcm0gYnJpZGdlcyBmcm9tIHRoZSBzYW1lIGRyaXZlciAob25lIGZvciBlYWNoIGlu cHV0L291dHB1dCBwYWlyKQo+ID4gICAgIGJ1dCB0aGV5IHdvdWxkIGJvdGggYmUgbWF0Y2hlcyBv biB0aGUgc2FtZSBkZXZpY2Ugbm9kZSB3aGVuIHRoZSBwcmVjZWRpbmcKPiA+ICAgICBicmlkZ2Ug Y2FsbHMgIm9mX2RybV9maW5kX2JyaWRnZSgpIi4KPgo+IEkgdGhpbmsgdGhpcyBpcyB0aGUgd2F5 IHRvIGdvLiBEUk0gZG9lc24ndCBzYXkgYW55d2hlcmUgdGhhdCB3ZSBjYW4ndCBoYXZlIDIKPiBk cm1fYnJpZGdlLXMgY29udGFpbmVkIGluIGEgc2luZ2xlIGRldmljZS4gQWJvdXQgdGhlIGlzc3Vl IHdpdGgKPiBvZl9kcm1fZmluZF9icmlkZ2UoKSwgaWYgeW91IHNldCB0aGUgMiBicmlkZ2UncyAn b2Zfbm9kZScgZmllbGQgdG8KPiB0aGUgYnJpZGdlMSBhbmQgYnJpZGdlMiBub2RlcyBhcyBzaG93 biBiZWxvdywgd291bGRuJ3QgdGhhdCBzdWZmaWNlLiBGcm9tCj4gd2hhdCBJIGtub3csIHdlIGRv bid0IG5lY2Vzc2FyaWx5IG5lZWQgdG8gc2V0IHRoZSBicmlkZ2UncyBvZl9ub2RlCj4gdG8gdGhl IGRldmljZSAoaS5lLCB0aHNjaGlwKSBpdHNlbGYuCgpUaGF0J3MgZmluZSwgYnV0IHRoaXMgaW1w bGllcyB0aGF0IHRoZSBwcmVjZWRpbmcgYnJpZGdlIChvciBlbmNvZGVyKSBpbiB0aGUKRFJNIHBp cGVsaW5lIGhhcyB0aGVuIHRvIGNvbGxlY3QgdGhlICJwb3J0IiBub2RlIGFuZCBtYXRjaCBvbiBp dApzcGVjaWZpY2FsbHkgd2hlbiBpdCBhdHRhY2hlcyB0aGlzIGRyaXZlci4gVGhpcyBpbnRyb2R1 Y2VzIGFuIGFkLWhvYwpwb2xpY3kgdGhhdCBwcmV2ZW50cyB0aGlzIGRyaXZlciBmcm9tIGJlaW5n IGVhc2lseSBpbnRlZ3JhdGVkIGluCmV4aXN0aW5nIHBpcGVsaW5lcyAod2hlcmUgYnJpZGdlcyBh cmUgbWF0Y2hlZCBvbiB0aGUgZGV2aWNlIG5vZGUpLgoKQWxzbywgSSBkb24ndCBrbm93IG11Y2gg YWJvdXQgdGhlIERSTSBmcmFtZXdvcmssIGJ1dCBpdCBzZWVtcyB0byBtZQp0aGF0IHRoZSBoZWxw ZXIgZnVuY3Rpb24gZGVzaWduZWQgdG8gZmluZCB0aGUgbmV4dCBjb21wb25lbnQgdG8gYXR0YWNo CnRvIGluIHRoZSBEUk0gcGlwZWxpbmUgaXM6Cgpkcm1fb2ZfZmluZF9wYW5lbF9vcl9icmlkZ2Uo KToKICAgICAgICByZW1vdGUgPSBvZl9ncmFwaF9nZXRfcmVtb3RlX25vZGUoKTsKICAgICAgICAg ICAgICAgIGVwID0gb2ZfZ3JhcGhfZ2V0X2VuZHBvaW50X2J5X3JlZ3MoKTsKICAgICAgICAgICAg ICAgIHJldHVybiBvZl9ncmFwaF9nZXRfcmVtb3RlX3BvcnRfcGFyZW50KCk7ICA8LS0gVGhpcyBy ZXR1cm5zIHRoZSBkZXZpY2Ugbm9kZQogICAgICAgIG9mX2RybV9maW5kX3BhbmVsKHJlbW90ZSk7 CiAgICAgICAgb2ZfZHJtX2ZpbmRfYnJpZGdlKHJlbW90ZSk7CgpJIHNvIGRhcmUgdG8gc2F5IG1h dGNoaW5nIG9uIGRldmljZSBub2RlIGlzIGtpbmQgb2YgdGhlIGludGVuZGVkIHdheQp0byBkbyB0 aGluZ3MgaW4gRFJNLCBhbmQgdGhpcyBkcml2ZXIgd2l0aCB0d28gZW5kcG9pbnRzIHRoYXQgd2Fu dHMgdG8KYmUgbWF0Y2hlZCBvbiBwb3J0IG5vZGVzIHdvdWxkIGJlIGtpbmQgb2Ygc3BlY2lhbCBv bmUgdGhhdCBkb2VzIG5vdAp3b3JrIGFzIG90aGVyIGRyaXZlciBleHBlY3RzIHRvLgoKSXMgbXkg dW5kZXJzdGFuZGluZyBjb3JyZWN0LCBvciBoYXZlIEkgbWlzaW50ZXJwcmV0ZWQgc29tZXRoaW5n PwoKVGhhbmtzCiAgIGoKCj4KPiB0aHNjaGlwIHsKPiAJLi4uCj4gCXBvcnRzIHsKPiAJCWJyaWRn ZTE6IHBvcnRAMCB7Cj4gCQkJLi4uCj4gCQl9Owo+Cj4gCQlicmlkZ2UyOiBwb3J0QDEgewo+IAkJ CS4uLgo+IAkJfTsKPiAJfTsKPiB9Owo+Cj4KPiBUaGFua3MsCj4gQXJjaGl0Cj4KPiA+ICAyKSBy ZWdpc3RlciBhIHNpbmdsZSBicmlkZ2Ugd2l0aCBtdWx0aXBsZSAibmV4dCBicmlkZ2VzIiwgYnV0 IHdoZW4gdGhlIGJyaWRnZQo+ID4gICAgIGdldHMgYXR0YWNoZWQgSSBkb24ndCBzZWUgYSB3YXkg b24gaG93IHRvIGlkZW50aWZ5IG9uIHdoaWNoIG5leHQgYnJpZGdlCj4gPiAgICAgImRybV9icmlk Z2VfYXR0YWNoKCkiIG9uLCBhcyBpdCBkZXBlbmRzIG9uIHRoZSBlbmRwb2ludCB0aGUgY3VycmVu dCBicmlkZ2UKPiA+ICAgICBoYXMgYmVlbiBhdHRhY2hlZCBvbiBmaXJzdCwgYW5kIHdlIGRvbid0 IGhhdmUgdGhhdCBpbmZvcm1hdGlvbi4KPiA+ICAzKSBSZWdpc3RlciBtb3JlIGluc3RhbmNlcyBv ZiB0aGUgc2FtZSBjaGlwIGluIERUUywgb25lIGZvciBlYWNoIGlucHV0L291dHB1dAo+ID4gICAg IHBhaXIuIFRoZXkgZ29ubmEgc2hhcmUgc3VwcGxpZXMgYW5kIGdwaW9zLCBhbmQgSSBkb24ndCBs aWtlIHRoYXQuCj4gPgo+ID5JIGhhZCBhIHF1aWNrIGxvb2sgYXQgdGhlIGN1cnJlbnRseSBpbiBt YWlubGluZSBicmlkZ2VzIGFuZCBub25lIG9mIHRoZW0gaGFzCj4gPm11bHRpcGxlIGlucHV0IGVu ZHBvaW50cywgZXhjZXB0IGZvciBIRE1JIGF1ZGlvIGVuZHBvaW50LCB3aGljaCBJIGhhdmVuJ3Qg Zm91bmQKPiA+aW4gdXNlIGluIGFueSBEVFMuIEkgZ3Vlc3MgdGhlIHByb2JsZW0gaGFzIGJlZW4g YWxyZWFkeSBkZWJhdGVkIGFuZCBtYXliZSBzb2x2ZWQKPiA+aW4gdGhlIHBhc3QsIHNvIGZlZWwg ZnJlZSB0byBwb2ludCBtZSB0byBvdGhlciBzb3VyY2VzLgo+ID4KPiA+SmFjb3BvIE1vbmRpICgz KToKPiA+ICAgZHQtYmluZGluZ3M6IGRpc3BsYXk6IGJyaWRnZTogRG9jdW1lbnQgTFZEUyB0byBw YXJhbGxlbCBkZWNvZGVyCj4gPiAgIGRybTogYnJpZGdlOiBBZGQgTFZEUyBkZWNvZGVyIGRyaXZl cgo+ID4gICBhcm02NDogZHRzOiByZW5lc2FzOiBBZGQgTFZEUyBkZWNvZGVyIHRvIFItQ2FyIFYz TSBFYWdsZQo+ID4KPiA+ICAuLi4vYmluZGluZ3MvZGlzcGxheS9icmlkZ2UvbHZkcy1kZWNvZGVy LnR4dCAgICAgICB8ICA0MiArKysrKysKPiA+ICBhcmNoL2FybTY0L2Jvb3QvZHRzL3JlbmVzYXMv cjhhNzc5NzAtZWFnbGUuZHRzICAgICB8ICAzMSArKystCj4gPiAgZHJpdmVycy9ncHUvZHJtL2Jy aWRnZS9LY29uZmlnICAgICAgICAgICAgICAgICAgICAgfCAgIDggKysKPiA+ICBkcml2ZXJzL2dw dS9kcm0vYnJpZGdlL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICB8ICAgMSArCj4gPiAgZHJp dmVycy9ncHUvZHJtL2JyaWRnZS9sdmRzLWRlY29kZXIuYyAgICAgICAgICAgICAgfCAxNTcgKysr KysrKysrKysrKysrKysrKysrCj4gPiAgNSBmaWxlcyBjaGFuZ2VkLCAyMzcgaW5zZXJ0aW9ucygr KSwgMiBkZWxldGlvbnMoLSkKPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi9k ZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvYnJpZGdlL2x2ZHMtZGVjb2Rlci50eHQKPiA+ICBj cmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9sdmRzLWRlY29kZXIuYwo+ ID4KPiA+LS0KPiA+Mi43LjQKPiA+Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2RyaS1kZXZlbAo=