From: Fabrizio Castro <fabrizio.castro@bp.renesas.com> To: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Cc: Rob Herring <robh+dt@kernel.org>, David Airlie <airlied@linux.ie>, Daniel Vetter <daniel@ffwll.ch>, Mark Rutland <mark.rutland@arm.com>, dri-devel <dri-devel@lists.freedesktop.org>, "devicetree@vger.kernel.org" <devicetree@vger.kernel.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, Simon Horman <horms@verge.net.au>, Geert Uytterhoeven <geert+renesas@glider.be>, Chris Paterson <Chris.Paterson2@renesas.com>, Biju Das <biju.das@bp.renesas.com>, "open list:MEDIA DRIVERS FOR RENESAS - FCP" <linux-renesas-soc@vger.kernel.org>, Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>, Jacopo Mondi <jacopo+renesas@jmondi.org>, Sam Ravnborg <sam@ravnborg.org> Subject: RE: [PATCH v3 1/8] dt-bindings: display: Add bindings for LVDS bus-timings Date: Fri, 6 Dec 2019 15:11:44 +0000 [thread overview] Message-ID: <TY1PR01MB177044501C5362662DB2ED2EC05F0@TY1PR01MB1770.jpnprd01.prod.outlook.com> (raw) In-Reply-To: <20191107180043.GA24231@pendragon.ideasonboard.com> Hi Laurent, Thank you for your feedback! > From: devicetree-owner@vger.kernel.org <devicetree-owner@vger.kernel.org> On Behalf Of Laurent Pinchart > Sent: 07 November 2019 18:01 > Subject: Re: [PATCH v3 1/8] dt-bindings: display: Add bindings for LVDS bus-timings > > Hello Fabrizio, > > On Thu, Aug 29, 2019 at 02:38:06PM +0000, Fabrizio Castro wrote: > > On 29 August 2019 15:03 Rob Herring wrote: > > > On Wed, Aug 28, 2019 at 1:36 PM Fabrizio Castro wrote: > > >> > > >> Dual-LVDS connections need markers in the DT, this patch adds > > >> some common documentation to be referenced by both panels and > > >> bridges. > > >> > > >> Signed-off-by: Fabrizio Castro <fabrizio.castro@bp.renesas.com> > > >> > > >> --- > > >> v2->v3: > > >> * new patch > > >> --- > > >> .../bindings/display/bus-timings/lvds.yaml | 38 ++++++++++++++++++++++ > > >> 1 file changed, 38 insertions(+) > > >> create mode 100644 Documentation/devicetree/bindings/display/bus-timings/lvds.yaml > > >> > > >> diff --git a/Documentation/devicetree/bindings/display/bus-timings/lvds.yaml > b/Documentation/devicetree/bindings/display/bus-timings/lvds.yaml > > >> new file mode 100644 > > >> index 0000000..f35b55a > > >> --- /dev/null > > >> +++ b/Documentation/devicetree/bindings/display/bus-timings/lvds.yaml > > >> @@ -0,0 +1,38 @@ > > >> +# SPDX-License-Identifier: GPL-2.0 > > > > > > (GPL-2.0-only OR BSD-2-Clause) is preferred for new bindings. > > > > > >> +%YAML 1.2 > > >> +--- > > >> +$id: http://devicetree.org/schemas/display/bus-timings/lvds.yaml# > > >> +$schema: http://devicetree.org/meta-schemas/core.yaml# > > >> + > > >> +title: Common Properties for bus timings of LVDS interfaces > > >> + > > >> +maintainers: > > >> + - Thierry Reding <thierry.reding@gmail.com> > > >> + - Fabrizio Castro <fabrizio.castro@bp.renesas.com> > > >> + > > >> +description: | > > >> + This document defines device tree properties common to LVDS and dual-LVDS > > >> + interfaces, where a dual-LVDS interface is a dual-link connection with even > > >> + pixels traveling on one connection, and with odd pixels traveling on the other > > >> + connection. > > As you define a dual-LVDS interface as "a dual-link connection", should > this be "even pixels traveling on one link, and with odd pixels > traveling on the other link" ? Will change. Thanks, Fab > > > >> + This document doesn't constitue a device tree binding specification by itself > > > > > > typo: constitute > > > > Well spotted! > > > > >> + but is meant to be referenced by device tree bindings. > > >> + When referenced from panel or bridge device tree bindings, the properties > > >> + defined in this document are defined as follows. The panel and bridge device > > >> + tree bindings are responsible for defining whether each property is required > > >> + or optional. > > >> + > > >> +properties: > > >> + dual-lvds-even-pixels: > > >> + type: boolean > > >> + description: > > >> + This property is specific to an input port of a sink device. When > > > > > > The schema should define what nodes these go in. The description seems > > > to indicate in 'port' nodes (or endpoint?), but your use in the panel > > > binding puts them in the parent. > > > > Did you manage to read this? > > https://patchwork.kernel.org/cover/11119607/ > > > > Could you please advice on how to do this properly? > > > > >> + specified, it marks the port as recipient of even-pixels. > > >> + > > >> + dual-lvds-odd-pixels: > > >> + type: boolean > > >> + description: > > >> + This property is specific to an input port of a sink device. When > > >> + specified, it marks the port as recipient of odd-pixels. > > > > > > However, I don't think you even need these. A panel's port numbers are > > > fixed can imply even or odd. For example port@0 can be even and port@1 > > > can be odd. The port numbering is typically panel specific, but we may > > > be able to define the numbering generically if we don't already have > > > panels with multiple ports. > > > > > > Also, aren't there dual link DSI panels? > > > > This is the result of a discussion on here: > > https://patchwork.kernel.org/patch/11095547/ > > > > Have you come across it? > > Let me repeat my comments from that thread for Rob in order to > centralize the discussion here. > > > Taking one step back to look at the big picture, what we need is for the > > source to know what pixel (odd or even) to send on each LVDS output. For > > that it needs to know what pixel is expected by the sink the the inputs > > connected to the source's outputs. From each source output we can easily > > locate the DT nodes corresponding to the connected sink's input ports, > > but that doesn't give us enough information. From there, we could > > > > - Infer the odd/even pixel expected by the source based on the port > > numbers. This would require common DT bindings for all dual-link LVDS > > sinks that specify the port ordering (for instance the bindings could > > mandate that lowest numbered port correspond to even pixels). > > > > - Read the odd/even pixel expected by the source from an explicit DT > > property, as proposed above. This would also require common DT > > bindings for all dual-link LVDS sinks that define these new > > properties. This would I think be better than implicitly infering it > > from DT port numbers. > > > > - Retrieve the information from the sink drm_bridge at runtime. This > > would require a way to query the bridge for the mapping from port > > number to odd/even pixel. The DRM_LINK_DUAL_LVDS_ODD_EVEN flag could > > be used for that, and would then be defined as "the lowest numbered > > port corresponds to odd pixels and the highest numbered port > > corresponds to even pixels". > > > > The second and third options would both work I think. The third one is > > roughly what you've implemented, except that I think the flag > > description should be clarified. > > Rob, what's your opinion ? We could certainly, in the context of a > panel, decide of a fixed mapping of port numbers to odd/even pixels, but > the issue is that sources need to know which pixels to send on which > link (assuming of course that this can be configured on the source > side). We thus need a way for the source to answer, at runtime, the > question "which of ports A and B of the sink correspond to even and odd > pixels ?". This can't be inferred by the source from the sink port > numbers, as the mapping between port number and odd/even pixels is > specific to each sink. We thus need to either store that property in the > DT node of the sink (option 2) or query it at runtime from the sink > (option 3). > > I like option 2 as it's more explicit, but option 3 minimizes the > required properties in DT, which is always good. Patch 3/8 introduces a > helper that abstracts this from a sink point of view (which I think is a > very good idea), so once we decide which option to use, only 3/8 may > need to be adapted, the other patches should hopefully not require > rework. > > -- > Regards, > > Laurent Pinchart
WARNING: multiple messages have this Message-ID (diff)
From: Fabrizio Castro <fabrizio.castro@bp.renesas.com> To: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Cc: Mark Rutland <mark.rutland@arm.com>, "devicetree@vger.kernel.org" <devicetree@vger.kernel.org>, Chris Paterson <Chris.Paterson2@renesas.com>, Geert Uytterhoeven <geert+renesas@glider.be>, Simon Horman <horms@verge.net.au>, David Airlie <airlied@linux.ie>, Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, dri-devel <dri-devel@lists.freedesktop.org>, Biju Das <biju.das@bp.renesas.com>, "open list:MEDIA DRIVERS FOR RENESAS - FCP" <linux-renesas-soc@vger.kernel.org>, Rob Herring <robh+dt@kernel.org>, Jacopo Mondi <jacopo+renesas@jmondi.org>, Sam Ravnborg <sam@ravnborg.org> Subject: RE: [PATCH v3 1/8] dt-bindings: display: Add bindings for LVDS bus-timings Date: Fri, 6 Dec 2019 15:11:44 +0000 [thread overview] Message-ID: <TY1PR01MB177044501C5362662DB2ED2EC05F0@TY1PR01MB1770.jpnprd01.prod.outlook.com> (raw) In-Reply-To: <20191107180043.GA24231@pendragon.ideasonboard.com> Hi Laurent, Thank you for your feedback! > From: devicetree-owner@vger.kernel.org <devicetree-owner@vger.kernel.org> On Behalf Of Laurent Pinchart > Sent: 07 November 2019 18:01 > Subject: Re: [PATCH v3 1/8] dt-bindings: display: Add bindings for LVDS bus-timings > > Hello Fabrizio, > > On Thu, Aug 29, 2019 at 02:38:06PM +0000, Fabrizio Castro wrote: > > On 29 August 2019 15:03 Rob Herring wrote: > > > On Wed, Aug 28, 2019 at 1:36 PM Fabrizio Castro wrote: > > >> > > >> Dual-LVDS connections need markers in the DT, this patch adds > > >> some common documentation to be referenced by both panels and > > >> bridges. > > >> > > >> Signed-off-by: Fabrizio Castro <fabrizio.castro@bp.renesas.com> > > >> > > >> --- > > >> v2->v3: > > >> * new patch > > >> --- > > >> .../bindings/display/bus-timings/lvds.yaml | 38 ++++++++++++++++++++++ > > >> 1 file changed, 38 insertions(+) > > >> create mode 100644 Documentation/devicetree/bindings/display/bus-timings/lvds.yaml > > >> > > >> diff --git a/Documentation/devicetree/bindings/display/bus-timings/lvds.yaml > b/Documentation/devicetree/bindings/display/bus-timings/lvds.yaml > > >> new file mode 100644 > > >> index 0000000..f35b55a > > >> --- /dev/null > > >> +++ b/Documentation/devicetree/bindings/display/bus-timings/lvds.yaml > > >> @@ -0,0 +1,38 @@ > > >> +# SPDX-License-Identifier: GPL-2.0 > > > > > > (GPL-2.0-only OR BSD-2-Clause) is preferred for new bindings. > > > > > >> +%YAML 1.2 > > >> +--- > > >> +$id: http://devicetree.org/schemas/display/bus-timings/lvds.yaml# > > >> +$schema: http://devicetree.org/meta-schemas/core.yaml# > > >> + > > >> +title: Common Properties for bus timings of LVDS interfaces > > >> + > > >> +maintainers: > > >> + - Thierry Reding <thierry.reding@gmail.com> > > >> + - Fabrizio Castro <fabrizio.castro@bp.renesas.com> > > >> + > > >> +description: | > > >> + This document defines device tree properties common to LVDS and dual-LVDS > > >> + interfaces, where a dual-LVDS interface is a dual-link connection with even > > >> + pixels traveling on one connection, and with odd pixels traveling on the other > > >> + connection. > > As you define a dual-LVDS interface as "a dual-link connection", should > this be "even pixels traveling on one link, and with odd pixels > traveling on the other link" ? Will change. Thanks, Fab > > > >> + This document doesn't constitue a device tree binding specification by itself > > > > > > typo: constitute > > > > Well spotted! > > > > >> + but is meant to be referenced by device tree bindings. > > >> + When referenced from panel or bridge device tree bindings, the properties > > >> + defined in this document are defined as follows. The panel and bridge device > > >> + tree bindings are responsible for defining whether each property is required > > >> + or optional. > > >> + > > >> +properties: > > >> + dual-lvds-even-pixels: > > >> + type: boolean > > >> + description: > > >> + This property is specific to an input port of a sink device. When > > > > > > The schema should define what nodes these go in. The description seems > > > to indicate in 'port' nodes (or endpoint?), but your use in the panel > > > binding puts them in the parent. > > > > Did you manage to read this? > > https://patchwork.kernel.org/cover/11119607/ > > > > Could you please advice on how to do this properly? > > > > >> + specified, it marks the port as recipient of even-pixels. > > >> + > > >> + dual-lvds-odd-pixels: > > >> + type: boolean > > >> + description: > > >> + This property is specific to an input port of a sink device. When > > >> + specified, it marks the port as recipient of odd-pixels. > > > > > > However, I don't think you even need these. A panel's port numbers are > > > fixed can imply even or odd. For example port@0 can be even and port@1 > > > can be odd. The port numbering is typically panel specific, but we may > > > be able to define the numbering generically if we don't already have > > > panels with multiple ports. > > > > > > Also, aren't there dual link DSI panels? > > > > This is the result of a discussion on here: > > https://patchwork.kernel.org/patch/11095547/ > > > > Have you come across it? > > Let me repeat my comments from that thread for Rob in order to > centralize the discussion here. > > > Taking one step back to look at the big picture, what we need is for the > > source to know what pixel (odd or even) to send on each LVDS output. For > > that it needs to know what pixel is expected by the sink the the inputs > > connected to the source's outputs. From each source output we can easily > > locate the DT nodes corresponding to the connected sink's input ports, > > but that doesn't give us enough information. From there, we could > > > > - Infer the odd/even pixel expected by the source based on the port > > numbers. This would require common DT bindings for all dual-link LVDS > > sinks that specify the port ordering (for instance the bindings could > > mandate that lowest numbered port correspond to even pixels). > > > > - Read the odd/even pixel expected by the source from an explicit DT > > property, as proposed above. This would also require common DT > > bindings for all dual-link LVDS sinks that define these new > > properties. This would I think be better than implicitly infering it > > from DT port numbers. > > > > - Retrieve the information from the sink drm_bridge at runtime. This > > would require a way to query the bridge for the mapping from port > > number to odd/even pixel. The DRM_LINK_DUAL_LVDS_ODD_EVEN flag could > > be used for that, and would then be defined as "the lowest numbered > > port corresponds to odd pixels and the highest numbered port > > corresponds to even pixels". > > > > The second and third options would both work I think. The third one is > > roughly what you've implemented, except that I think the flag > > description should be clarified. > > Rob, what's your opinion ? We could certainly, in the context of a > panel, decide of a fixed mapping of port numbers to odd/even pixels, but > the issue is that sources need to know which pixels to send on which > link (assuming of course that this can be configured on the source > side). We thus need a way for the source to answer, at runtime, the > question "which of ports A and B of the sink correspond to even and odd > pixels ?". This can't be inferred by the source from the sink port > numbers, as the mapping between port number and odd/even pixels is > specific to each sink. We thus need to either store that property in the > DT node of the sink (option 2) or query it at runtime from the sink > (option 3). > > I like option 2 as it's more explicit, but option 3 minimizes the > required properties in DT, which is always good. Patch 3/8 introduces a > helper that abstracts this from a sink point of view (which I think is a > very good idea), so once we decide which option to use, only 3/8 may > need to be adapted, the other patches should hopefully not require > rework. > > -- > Regards, > > Laurent Pinchart _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2019-12-06 15:11 UTC|newest] Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-08-28 18:36 [PATCH v3 0/8] Add dual-LVDS panel support to EK874 Fabrizio Castro 2019-08-28 18:36 ` [PATCH v3 1/8] dt-bindings: display: Add bindings for LVDS bus-timings Fabrizio Castro 2019-08-29 7:57 ` Geert Uytterhoeven 2019-08-29 7:57 ` Geert Uytterhoeven 2019-08-29 9:14 ` Fabrizio Castro 2019-08-29 9:14 ` Fabrizio Castro 2019-08-29 14:03 ` Rob Herring 2019-08-29 14:03 ` Rob Herring 2019-08-29 14:38 ` Fabrizio Castro 2019-08-29 14:38 ` Fabrizio Castro 2019-11-07 18:00 ` Laurent Pinchart 2019-11-07 18:00 ` Laurent Pinchart 2019-11-07 18:00 ` Laurent Pinchart 2019-12-06 15:11 ` Fabrizio Castro [this message] 2019-12-06 15:11 ` Fabrizio Castro 2019-12-06 15:10 ` Fabrizio Castro 2019-12-06 15:10 ` Fabrizio Castro 2019-08-28 18:36 ` [PATCH v3 2/8] dt-bindings: display: Add idk-2121wr binding Fabrizio Castro 2019-11-07 18:12 ` Laurent Pinchart 2019-11-07 18:12 ` Laurent Pinchart 2019-12-06 15:17 ` Fabrizio Castro 2019-12-06 15:17 ` Fabrizio Castro 2019-08-28 18:36 ` [PATCH v3 3/8] drm: Add bus timings helper Fabrizio Castro 2019-11-07 19:26 ` Laurent Pinchart 2019-11-07 19:26 ` Laurent Pinchart 2019-11-07 19:30 ` Daniel Vetter 2019-11-07 19:30 ` Daniel Vetter 2019-12-06 15:25 ` Fabrizio Castro 2019-12-06 15:25 ` Fabrizio Castro 2019-12-06 15:24 ` Fabrizio Castro 2019-12-06 15:24 ` Fabrizio Castro 2019-08-28 18:36 ` [PATCH v3 4/8] drm: rcar-du: lvds: Add dual-LVDS panels support Fabrizio Castro 2019-11-07 19:50 ` Laurent Pinchart 2019-11-07 19:50 ` Laurent Pinchart 2019-12-06 15:35 ` Fabrizio Castro 2019-12-06 15:35 ` Fabrizio Castro 2019-08-28 18:36 ` [PATCH v3 5/8] drm: bridge: thc63: Do not report input bus mode through bridge timings Fabrizio Castro 2019-11-07 19:52 ` Laurent Pinchart 2019-11-07 19:52 ` Laurent Pinchart 2019-12-06 15:38 ` Fabrizio Castro 2019-12-06 15:38 ` Fabrizio Castro 2019-08-28 18:36 ` [PATCH v3 6/8] arm64: dts: renesas: Add EK874 board with idk-2121wr display support Fabrizio Castro 2019-11-07 19:55 ` Laurent Pinchart 2019-08-28 18:36 ` [PATCH v3 7/8] [HACK] arm64: dts: renesas: draak: Enable LVDS Fabrizio Castro 2019-11-07 19:57 ` Laurent Pinchart 2019-12-06 15:40 ` Fabrizio Castro 2019-08-28 18:36 ` [PATCH v3 8/8] [HACK] arm64: dts: renesas: draak: Enable LVDS dual-link operation Fabrizio Castro 2019-08-29 15:26 ` [PATCH v3 0/8] Add dual-LVDS panel support to EK874 Rob Herring 2019-08-29 15:26 ` Rob Herring 2019-09-02 10:01 ` Fabrizio Castro 2019-09-02 10:01 ` Fabrizio Castro 2019-10-22 16:30 ` Fabrizio Castro 2019-10-22 16:30 ` Fabrizio Castro
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=TY1PR01MB177044501C5362662DB2ED2EC05F0@TY1PR01MB1770.jpnprd01.prod.outlook.com \ --to=fabrizio.castro@bp.renesas.com \ --cc=Chris.Paterson2@renesas.com \ --cc=airlied@linux.ie \ --cc=biju.das@bp.renesas.com \ --cc=daniel@ffwll.ch \ --cc=devicetree@vger.kernel.org \ --cc=dri-devel@lists.freedesktop.org \ --cc=geert+renesas@glider.be \ --cc=horms@verge.net.au \ --cc=jacopo+renesas@jmondi.org \ --cc=kieran.bingham+renesas@ideasonboard.com \ --cc=laurent.pinchart@ideasonboard.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-renesas-soc@vger.kernel.org \ --cc=mark.rutland@arm.com \ --cc=robh+dt@kernel.org \ --cc=sam@ravnborg.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.