All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/6] Bindings for Armada display subsystem
@ 2019-01-20 17:25 Lubomir Rintel
  2019-01-20 17:25 ` [PATCH 1/6] dt-bindings: display: armada: Rename the binding doc file Lubomir Rintel
                   ` (5 more replies)
  0 siblings, 6 replies; 23+ messages in thread
From: Lubomir Rintel @ 2019-01-20 17:25 UTC (permalink / raw)
  To: Rob Herring, Mark Rutland
  Cc: Russell King, dri-devel, devicetree, linux-kernel

Hi,

this patch set extends the bindings documentation of Armada LCDC to
cover the rest of the display subsystem.

It is based on what was implemented by Russel's patch set that
implements the dt bindings for armada-drm [1].

[1] https://lists.freedesktop.org/archives/dri-devel/2018-July/182893.html

There are some differencies though:

* Compatible strings for the MMP2 platform were added
* The compatible strings for the display-subsystem node and the
  framebuffer node include "marvell,armada-display-subsystem" and
  "marvell,armada-framebuffer" since they are hardware agnostic and
  supportable with the same driver code.
* The "bus-width property" was added.

More in the individual patches.

Thank you,
Lubo




^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 1/6] dt-bindings: display: armada: Rename the binding doc file
  2019-01-20 17:25 [PATCH 0/6] Bindings for Armada display subsystem Lubomir Rintel
@ 2019-01-20 17:25 ` Lubomir Rintel
  2019-01-20 17:25 ` [PATCH 2/6] dt-bindings: display: armada: Improve the LCDC documentation Lubomir Rintel
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 23+ messages in thread
From: Lubomir Rintel @ 2019-01-20 17:25 UTC (permalink / raw)
  To: Rob Herring, Mark Rutland
  Cc: Russell King, dri-devel, devicetree, linux-kernel, Lubomir Rintel

It's going to document more than just marvell,dove-lcd: more components
of the display subsystems with more compatible strings.

It seems to make sense to organize this the way it is done in
Documentation/devicetree/bindings/display/imx/fsl-imx-drm.txt

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
---
 .../armada/{marvell,dove-lcd.txt => marvell-armada-drm.txt}       | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename Documentation/devicetree/bindings/display/armada/{marvell,dove-lcd.txt => marvell-armada-drm.txt} (100%)

diff --git a/Documentation/devicetree/bindings/display/armada/marvell,dove-lcd.txt b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
similarity index 100%
rename from Documentation/devicetree/bindings/display/armada/marvell,dove-lcd.txt
rename to Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
-- 
2.20.1


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 2/6] dt-bindings: display: armada: Improve the LCDC documentation
  2019-01-20 17:25 [PATCH 0/6] Bindings for Armada display subsystem Lubomir Rintel
  2019-01-20 17:25 ` [PATCH 1/6] dt-bindings: display: armada: Rename the binding doc file Lubomir Rintel
@ 2019-01-20 17:25 ` Lubomir Rintel
  2019-01-20 17:25 ` [PATCH 3/6] dt-bindings: display: armada: Add framebuffer reserved-mem binding Lubomir Rintel
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 23+ messages in thread
From: Lubomir Rintel @ 2019-01-20 17:25 UTC (permalink / raw)
  To: Rob Herring, Mark Rutland
  Cc: Russell King, dri-devel, devicetree, linux-kernel, Lubomir Rintel

The port is a child, not a property. And it deserves an example.

Also, make the title a bit more visually distinguishable -- this will
look better when the documentation of other Adrmada DRM nodes will be
present.

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
---
 .../display/armada/marvell-armada-drm.txt        | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
index 46525ea3e646..2606a8efc956 100644
--- a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
+++ b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
@@ -1,10 +1,11 @@
-Device Tree bindings for Armada DRM CRTC driver
+Marvell Armada LCD controller
+=============================
 
 Required properties:
+
  - compatible: value should be "marvell,dove-lcd".
  - reg: base address and size of the LCD controller
  - interrupts: single interrupt number for the LCD controller
- - port: video output port with endpoints, as described by graph.txt
 
 Optional properties:
 
@@ -19,6 +20,11 @@ Note: all clocks are optional but at least one must be specified.
 Further clocks may be added in the future according to requirements of
 different SoCs.
 
+Required child nodes:
+
+- port: video output port with endpoints, as described by
+  Documentation/devicetree/bindings/graph.txt
+
 Example:
 
 	lcd0: lcd-controller@820000 {
@@ -27,4 +33,10 @@ Example:
 		interrupts = <47>;
 		clocks = <&si5351 0>;
 		clock-names = "ext_ref_clk_1";
+
+		lcd0_port: port {
+			lcd0_rgb_out: endpoint {
+				remote-endpoint = <&encoder_rgb_in>;
+			};
+		};
 	};
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 3/6] dt-bindings: display: armada: Add framebuffer reserved-mem binding
  2019-01-20 17:25 [PATCH 0/6] Bindings for Armada display subsystem Lubomir Rintel
  2019-01-20 17:25 ` [PATCH 1/6] dt-bindings: display: armada: Rename the binding doc file Lubomir Rintel
  2019-01-20 17:25 ` [PATCH 2/6] dt-bindings: display: armada: Improve the LCDC documentation Lubomir Rintel
@ 2019-01-20 17:25 ` Lubomir Rintel
  2019-01-20 17:25 ` [PATCH 4/6] dt-bindings: display: armada: Add display subsystem binding Lubomir Rintel
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 23+ messages in thread
From: Lubomir Rintel @ 2019-01-20 17:25 UTC (permalink / raw)
  To: Rob Herring, Mark Rutland
  Cc: Russell King, dri-devel, devicetree, linux-kernel, Lubomir Rintel

This is the binding for memory that is set aside for allocation of Marvell
Armada framebuffer objects.

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
---
 .../display/armada/marvell-armada-drm.txt     | 25 +++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
index 2606a8efc956..de4cca9432c8 100644
--- a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
+++ b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
@@ -40,3 +40,28 @@ Example:
 			};
 		};
 	};
+
+Marvell Armada framebuffer reserved memory
+==========================================
+
+Memory set aside for allocation of Marvell Armada framebuffer objects.
+
+Required properties:
+
+ - compatible: value should be "marvell,dove-framebuffer",
+   "marvell,armada-framebuffer".
+
+This binding is compatible with the binding, specified in
+Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt..
+
+Example:
+
+	reserved-memory {
+		display_reserved: framebuffer {
+			compatible = "marvell,dove-framebuffer",
+			             "marvell,armada-framebuffer";
+			size = <0x02000000>;
+			alignment = <0x02000000>;
+			no-map;
+		};
+	};
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 4/6] dt-bindings: display: armada: Add display subsystem binding
  2019-01-20 17:25 [PATCH 0/6] Bindings for Armada display subsystem Lubomir Rintel
                   ` (2 preceding siblings ...)
  2019-01-20 17:25 ` [PATCH 3/6] dt-bindings: display: armada: Add framebuffer reserved-mem binding Lubomir Rintel
@ 2019-01-20 17:25 ` Lubomir Rintel
  2019-01-21 15:35   ` Rob Herring
  2019-01-20 17:25 ` [PATCH 5/6] dt-bindings: display: armada: Add mmp2 compatible strings Lubomir Rintel
  2019-01-20 17:25 ` [PATCH 6/6] dt-bindings: display: armada: Document bus-width property Lubomir Rintel
  5 siblings, 1 reply; 23+ messages in thread
From: Lubomir Rintel @ 2019-01-20 17:25 UTC (permalink / raw)
  To: Rob Herring, Mark Rutland
  Cc: Russell King, dri-devel, devicetree, linux-kernel, Lubomir Rintel

The Marvell Armada DRM master device is a virtual device needed to list all
nodes that comprise the graphics subsystem.

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
---
 .../display/armada/marvell-armada-drm.txt     | 24 +++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
index de4cca9432c8..3dbfa8047f0b 100644
--- a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
+++ b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
@@ -1,3 +1,27 @@
+Marvell Armada DRM master device
+================================
+
+The Marvell Armada DRM master device is a virtual device needed to list all
+nodes that comprise the graphics subsystem.
+
+Required properties:
+
+ - compatible: value should be "marvell,dove-display-subsystem",
+   "marvell,armada-display-subsystem"
+ - ports: a list of phandles pointing to display interface ports of CRTC
+   devices
+ - memory-region: phandle to a node describing memory to be used for the
+   framebuffer
+
+Example:
+
+	display-subsystem {
+		compatible = "marvell,dove-display-subsystem",
+		             "marvell,armada-display-subsystem";
+		memory-region = <&display_reserved>;
+		ports = <&lcd0_port>;
+	};
+
 Marvell Armada LCD controller
 =============================
 
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 5/6] dt-bindings: display: armada: Add mmp2 compatible strings
  2019-01-20 17:25 [PATCH 0/6] Bindings for Armada display subsystem Lubomir Rintel
                   ` (3 preceding siblings ...)
  2019-01-20 17:25 ` [PATCH 4/6] dt-bindings: display: armada: Add display subsystem binding Lubomir Rintel
@ 2019-01-20 17:25 ` Lubomir Rintel
  2019-01-20 17:25 ` [PATCH 6/6] dt-bindings: display: armada: Document bus-width property Lubomir Rintel
  5 siblings, 0 replies; 23+ messages in thread
From: Lubomir Rintel @ 2019-01-20 17:25 UTC (permalink / raw)
  To: Rob Herring, Mark Rutland
  Cc: Russell King, dri-devel, devicetree, linux-kernel, Lubomir Rintel

The driver will work on a MMP2 as well.

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
---
 .../bindings/display/armada/marvell-armada-drm.txt   | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
index 3dbfa8047f0b..53524077db25 100644
--- a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
+++ b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
@@ -6,8 +6,9 @@ nodes that comprise the graphics subsystem.
 
 Required properties:
 
- - compatible: value should be "marvell,dove-display-subsystem",
-   "marvell,armada-display-subsystem"
+ - compatible: value should be one of:
+	- "marvell,dove-display-subsystem", "marvell,armada-display-subsystem"
+	- "marvell,mmp2-display-subsystem", "marvell,armada-display-subsystem"
  - ports: a list of phandles pointing to display interface ports of CRTC
    devices
  - memory-region: phandle to a node describing memory to be used for the
@@ -27,7 +28,7 @@ Marvell Armada LCD controller
 
 Required properties:
 
- - compatible: value should be "marvell,dove-lcd".
+ - compatible: value should be "marvell,dove-lcd" or "marvell,mmp2-lcd"
  - reg: base address and size of the LCD controller
  - interrupts: single interrupt number for the LCD controller
 
@@ -72,8 +73,9 @@ Memory set aside for allocation of Marvell Armada framebuffer objects.
 
 Required properties:
 
- - compatible: value should be "marvell,dove-framebuffer",
-   "marvell,armada-framebuffer".
+ - compatible: value should be one of:
+	- "marvell,dove-framebuffer", "marvell,armada-framebuffer"
+	- "marvell,mmp2-framebuffer", "marvell,armada-framebuffer"
 
 This binding is compatible with the binding, specified in
 Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt..
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 6/6] dt-bindings: display: armada: Document bus-width property
  2019-01-20 17:25 [PATCH 0/6] Bindings for Armada display subsystem Lubomir Rintel
                   ` (4 preceding siblings ...)
  2019-01-20 17:25 ` [PATCH 5/6] dt-bindings: display: armada: Add mmp2 compatible strings Lubomir Rintel
@ 2019-01-20 17:25 ` Lubomir Rintel
  5 siblings, 0 replies; 23+ messages in thread
From: Lubomir Rintel @ 2019-01-20 17:25 UTC (permalink / raw)
  To: Rob Herring, Mark Rutland
  Cc: Russell King, dri-devel, devicetree, linux-kernel, Lubomir Rintel

This makes it possible to choose a different pixel format for the
endpoint. Modelled after what other LCD controllers use, including
marvell,pxa2xx-lcdc and atmel,hlcdc-display-controller and perhaps more.

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
---
 .../bindings/display/armada/marvell-armada-drm.txt          | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
index 53524077db25..0a734f6d5a1e 100644
--- a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
+++ b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
@@ -49,6 +49,11 @@ Required child nodes:
 
 - port: video output port with endpoints, as described by
   Documentation/devicetree/bindings/graph.txt
+  The endpoints can optionally specify the following property:
+
+  - bus-width: recognized values are <12>, <16>, <18> and <24>, that
+    select "rgb444", "rgb565", "rgb666" or "rgb888" pixel format
+    respectively. Defaults to <24> if unspecified.
 
 Example:
 
@@ -61,6 +66,7 @@ Example:
 
 		lcd0_port: port {
 			lcd0_rgb_out: endpoint {
+				bus-width = <24>;
 				remote-endpoint = <&encoder_rgb_in>;
 			};
 		};
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* Re: [PATCH 4/6] dt-bindings: display: armada: Add display subsystem binding
  2019-01-20 17:25 ` [PATCH 4/6] dt-bindings: display: armada: Add display subsystem binding Lubomir Rintel
@ 2019-01-21 15:35   ` Rob Herring
  2019-01-21 15:46     ` Lubomir Rintel
  2019-02-13 22:37     ` Lubomir Rintel
  0 siblings, 2 replies; 23+ messages in thread
From: Rob Herring @ 2019-01-21 15:35 UTC (permalink / raw)
  To: Lubomir Rintel
  Cc: Mark Rutland, Russell King, dri-devel, devicetree, linux-kernel

On Sun, Jan 20, 2019 at 11:26 AM Lubomir Rintel <lkundrak@v3.sk> wrote:
>
> The Marvell Armada DRM master device is a virtual device needed to list all
> nodes that comprise the graphics subsystem.
>
> Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
> ---
>  .../display/armada/marvell-armada-drm.txt     | 24 +++++++++++++++++++
>  1 file changed, 24 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> index de4cca9432c8..3dbfa8047f0b 100644
> --- a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> +++ b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> @@ -1,3 +1,27 @@
> +Marvell Armada DRM master device
> +================================
> +
> +The Marvell Armada DRM master device is a virtual device needed to list all
> +nodes that comprise the graphics subsystem.
> +
> +Required properties:
> +
> + - compatible: value should be "marvell,dove-display-subsystem",
> +   "marvell,armada-display-subsystem"
> + - ports: a list of phandles pointing to display interface ports of CRTC
> +   devices
> + - memory-region: phandle to a node describing memory to be used for the
> +   framebuffer
> +
> +Example:
> +
> +       display-subsystem {
> +               compatible = "marvell,dove-display-subsystem",
> +                            "marvell,armada-display-subsystem";
> +               memory-region = <&display_reserved>;
> +               ports = <&lcd0_port>;

If there is only one device, you don't need this virtual node.


> +       };
> +
>  Marvell Armada LCD controller
>  =============================
>
> --
> 2.20.1
>

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 4/6] dt-bindings: display: armada: Add display subsystem binding
  2019-01-21 15:35   ` Rob Herring
@ 2019-01-21 15:46     ` Lubomir Rintel
  2019-01-21 16:07       ` Rob Herring
  2019-02-13 22:37     ` Lubomir Rintel
  1 sibling, 1 reply; 23+ messages in thread
From: Lubomir Rintel @ 2019-01-21 15:46 UTC (permalink / raw)
  To: Rob Herring
  Cc: Mark Rutland, Russell King, dri-devel, devicetree, linux-kernel

On Mon, 2019-01-21 at 09:35 -0600, Rob Herring wrote:
> On Sun, Jan 20, 2019 at 11:26 AM Lubomir Rintel <lkundrak@v3.sk> wrote:
> > The Marvell Armada DRM master device is a virtual device needed to list all
> > nodes that comprise the graphics subsystem.
> > 
> > Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
> > ---
> >  .../display/armada/marvell-armada-drm.txt     | 24 +++++++++++++++++++
> >  1 file changed, 24 insertions(+)
> > 
> > diff --git a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > index de4cca9432c8..3dbfa8047f0b 100644
> > --- a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > +++ b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > @@ -1,3 +1,27 @@
> > +Marvell Armada DRM master device
> > +================================
> > +
> > +The Marvell Armada DRM master device is a virtual device needed to list all
> > +nodes that comprise the graphics subsystem.
> > +
> > +Required properties:
> > +
> > + - compatible: value should be "marvell,dove-display-subsystem",
> > +   "marvell,armada-display-subsystem"
> > + - ports: a list of phandles pointing to display interface ports of CRTC
> > +   devices
> > + - memory-region: phandle to a node describing memory to be used for the
> > +   framebuffer
> > +
> > +Example:
> > +
> > +       display-subsystem {
> > +               compatible = "marvell,dove-display-subsystem",
> > +                            "marvell,armada-display-subsystem";
> > +               memory-region = <&display_reserved>;
> > +               ports = <&lcd0_port>;
> 
> If there is only one device, you don't need this virtual node.

By "one device" you mean one LCD controller (CRTC)?

I suppose in the (single CRTC) example case, the display-subsystem node
used to associate it with the memory region reserved for allocating the
frame buffers from. Could that be done differently?

Also, if the node is indeed made optional, then it's going to
complicate things on the DRM side. Currently the driver that binds to
the node creates the DRM device once it sees all the components
connected to the ports appear. If we loose it, then the LCD controller
driver would somehow need to find out that it's alone and create the
DRM device itself.

Thank you
Lubo

> 
> 
> > +       };
> > +
> >  Marvell Armada LCD controller
> >  =============================
> > 
> > --
> > 2.20.1
> > 


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 4/6] dt-bindings: display: armada: Add display subsystem binding
  2019-01-21 15:46     ` Lubomir Rintel
@ 2019-01-21 16:07       ` Rob Herring
  2019-01-21 17:53         ` Russell King - ARM Linux admin
  0 siblings, 1 reply; 23+ messages in thread
From: Rob Herring @ 2019-01-21 16:07 UTC (permalink / raw)
  To: Lubomir Rintel
  Cc: Mark Rutland, Russell King, dri-devel, devicetree, linux-kernel

On Mon, Jan 21, 2019 at 9:46 AM Lubomir Rintel <lkundrak@v3.sk> wrote:
>
> On Mon, 2019-01-21 at 09:35 -0600, Rob Herring wrote:
> > On Sun, Jan 20, 2019 at 11:26 AM Lubomir Rintel <lkundrak@v3.sk> wrote:
> > > The Marvell Armada DRM master device is a virtual device needed to list all
> > > nodes that comprise the graphics subsystem.
> > >
> > > Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
> > > ---
> > >  .../display/armada/marvell-armada-drm.txt     | 24 +++++++++++++++++++
> > >  1 file changed, 24 insertions(+)
> > >
> > > diff --git a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > index de4cca9432c8..3dbfa8047f0b 100644
> > > --- a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > +++ b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > @@ -1,3 +1,27 @@
> > > +Marvell Armada DRM master device
> > > +================================
> > > +
> > > +The Marvell Armada DRM master device is a virtual device needed to list all
> > > +nodes that comprise the graphics subsystem.
> > > +
> > > +Required properties:
> > > +
> > > + - compatible: value should be "marvell,dove-display-subsystem",
> > > +   "marvell,armada-display-subsystem"
> > > + - ports: a list of phandles pointing to display interface ports of CRTC
> > > +   devices
> > > + - memory-region: phandle to a node describing memory to be used for the
> > > +   framebuffer
> > > +
> > > +Example:
> > > +
> > > +       display-subsystem {
> > > +               compatible = "marvell,dove-display-subsystem",
> > > +                            "marvell,armada-display-subsystem";
> > > +               memory-region = <&display_reserved>;
> > > +               ports = <&lcd0_port>;
> >
> > If there is only one device, you don't need this virtual node.
>
> By "one device" you mean one LCD controller (CRTC)?

Yes.

> I suppose in the (single CRTC) example case, the display-subsystem node
> used to associate it with the memory region reserved for allocating the
> frame buffers from. Could that be done differently?

Move memory-region to the LCD controller node.

> Also, if the node is indeed made optional, then it's going to
> complicate things on the DRM side. Currently the driver that binds to
> the node creates the DRM device once it sees all the components
> connected to the ports appear. If we loose it, then the LCD controller
> driver would somehow need to find out that it's alone and create the
> DRM device itself.

DT is not the only way to create devices. The DRM driver can bind to
the LCDC node and then create a child CRTC device (or even multiple
ones for h/w with multiple pipelines).

You'll also notice that there are only 3 cases of this virtual node in
the tree: STi, i.MX IPU, and Rockchip. That's because we've deprecated
doing these virtual nodes for some time now. IOW, there are several
examples of how to do this without a virtual node.

Rob

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 4/6] dt-bindings: display: armada: Add display subsystem binding
  2019-01-21 16:07       ` Rob Herring
@ 2019-01-21 17:53         ` Russell King - ARM Linux admin
  2019-01-21 20:45           ` Lubomir Rintel
  2019-01-21 23:58           ` Rob Herring
  0 siblings, 2 replies; 23+ messages in thread
From: Russell King - ARM Linux admin @ 2019-01-21 17:53 UTC (permalink / raw)
  To: Rob Herring
  Cc: Lubomir Rintel, Mark Rutland, dri-devel, devicetree, linux-kernel

On Mon, Jan 21, 2019 at 10:07:11AM -0600, Rob Herring wrote:
> On Mon, Jan 21, 2019 at 9:46 AM Lubomir Rintel <lkundrak@v3.sk> wrote:
> >
> > On Mon, 2019-01-21 at 09:35 -0600, Rob Herring wrote:
> > > On Sun, Jan 20, 2019 at 11:26 AM Lubomir Rintel <lkundrak@v3.sk> wrote:
> > > > The Marvell Armada DRM master device is a virtual device needed to list all
> > > > nodes that comprise the graphics subsystem.
> > > >
> > > > Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
> > > > ---
> > > >  .../display/armada/marvell-armada-drm.txt     | 24 +++++++++++++++++++
> > > >  1 file changed, 24 insertions(+)
> > > >
> > > > diff --git a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > > index de4cca9432c8..3dbfa8047f0b 100644
> > > > --- a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > > +++ b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > > @@ -1,3 +1,27 @@
> > > > +Marvell Armada DRM master device
> > > > +================================
> > > > +
> > > > +The Marvell Armada DRM master device is a virtual device needed to list all
> > > > +nodes that comprise the graphics subsystem.
> > > > +
> > > > +Required properties:
> > > > +
> > > > + - compatible: value should be "marvell,dove-display-subsystem",
> > > > +   "marvell,armada-display-subsystem"
> > > > + - ports: a list of phandles pointing to display interface ports of CRTC
> > > > +   devices
> > > > + - memory-region: phandle to a node describing memory to be used for the
> > > > +   framebuffer
> > > > +
> > > > +Example:
> > > > +
> > > > +       display-subsystem {
> > > > +               compatible = "marvell,dove-display-subsystem",
> > > > +                            "marvell,armada-display-subsystem";
> > > > +               memory-region = <&display_reserved>;
> > > > +               ports = <&lcd0_port>;
> > >
> > > If there is only one device, you don't need this virtual node.
> >
> > By "one device" you mean one LCD controller (CRTC)?
> 
> Yes.

How does that work (as far as the Linux implementation) ?  I can't see
a way that could work, while allowing the flexibility that Armada DRM
allows (two completely independent LCD controllers as two separate DRM
devices vs one DRM device containing both LCD controllers.)

> > I suppose in the (single CRTC) example case, the display-subsystem node
> > used to associate it with the memory region reserved for allocating the
> > frame buffers from. Could that be done differently?
> 
> Move memory-region to the LCD controller node.

That doesn't work - it would appear in the wrong part of the driver.

> > Also, if the node is indeed made optional, then it's going to
> > complicate things on the DRM side. Currently the driver that binds to
> > the node creates the DRM device once it sees all the components
> > connected to the ports appear. If we loose it, then the LCD controller
> > driver would somehow need to find out that it's alone and create the
> > DRM device itself.
> 
> DT is not the only way to create devices. The DRM driver can bind to
> the LCDC node and then create a child CRTC device (or even multiple
> ones for h/w with multiple pipelines).

That seems completely upside down and rediculous to me - are you
really suggesting that we should have some kind of virtual device
in DT, and omit the _real_ physical devices for that, having the
driver create the device with all the appropriate SoC resources?

> You'll also notice that there are only 3 cases of this virtual node in
> the tree: STi, i.MX IPU, and Rockchip. That's because we've deprecated
> doing these virtual nodes for some time now. IOW, there are several
> examples of how to do this without a virtual node.

This driver has been in-tree with this setup for some time, although
the documentation has been missing (we actually have a _lot_ of
instances of that.)  However, we have no in-tree DT using it.

I don't really see how to satisfy your comments without totally
restructuring the driver, which is going to be quite a big chunk
of work.  I'm not sure I have the motivation to do that right now.

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up
According to speedtest.net: 11.9Mbps down 500kbps up

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 4/6] dt-bindings: display: armada: Add display subsystem binding
  2019-01-21 17:53         ` Russell King - ARM Linux admin
@ 2019-01-21 20:45           ` Lubomir Rintel
  2019-01-21 23:08               ` Russell King - ARM Linux admin
  2019-01-21 23:58           ` Rob Herring
  1 sibling, 1 reply; 23+ messages in thread
From: Lubomir Rintel @ 2019-01-21 20:45 UTC (permalink / raw)
  To: Russell King - ARM Linux admin, Rob Herring
  Cc: Mark Rutland, dri-devel, devicetree, linux-kernel

On Mon, 2019-01-21 at 17:53 +0000, Russell King - ARM Linux admin
wrote:
> On Mon, Jan 21, 2019 at 10:07:11AM -0600, Rob Herring wrote:
> > On Mon, Jan 21, 2019 at 9:46 AM Lubomir Rintel <lkundrak@v3.sk> wrote:
> > > On Mon, 2019-01-21 at 09:35 -0600, Rob Herring wrote:
> > > > On Sun, Jan 20, 2019 at 11:26 AM Lubomir Rintel <lkundrak@v3.sk> wrote:
> > > > > The Marvell Armada DRM master device is a virtual device needed to list all
> > > > > nodes that comprise the graphics subsystem.
> > > > > 
> > > > > Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
> > > > > ---
> > > > >  .../display/armada/marvell-armada-drm.txt     | 24 +++++++++++++++++++
> > > > >  1 file changed, 24 insertions(+)
> > > > > 
> > > > > diff --git a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > > > index de4cca9432c8..3dbfa8047f0b 100644
> > > > > --- a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > > > +++ b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > > > @@ -1,3 +1,27 @@
> > > > > +Marvell Armada DRM master device
> > > > > +================================
> > > > > +
> > > > > +The Marvell Armada DRM master device is a virtual device needed to list all
> > > > > +nodes that comprise the graphics subsystem.
> > > > > +
> > > > > +Required properties:
> > > > > +
> > > > > + - compatible: value should be "marvell,dove-display-subsystem",
> > > > > +   "marvell,armada-display-subsystem"
> > > > > + - ports: a list of phandles pointing to display interface ports of CRTC
> > > > > +   devices
> > > > > + - memory-region: phandle to a node describing memory to be used for the
> > > > > +   framebuffer
> > > > > +
> > > > > +Example:
> > > > > +
> > > > > +       display-subsystem {
> > > > > +               compatible = "marvell,dove-display-subsystem",
> > > > > +                            "marvell,armada-display-subsystem";
> > > > > +               memory-region = <&display_reserved>;
> > > > > +               ports = <&lcd0_port>;
> > > > 
> > > > If there is only one device, you don't need this virtual node.
> > > 
> > > By "one device" you mean one LCD controller (CRTC)?
> > 
> > Yes.
> 
> How does that work (as far as the Linux implementation) ?  I can't see
> a way that could work, while allowing the flexibility that Armada DRM
> allows (two completely independent LCD controllers as two separate DRM
> devices vs one DRM device containing both LCD controllers.)
> 
> > > I suppose in the (single CRTC) example case, the display-subsystem node
> > > used to associate it with the memory region reserved for allocating the
> > > frame buffers from. Could that be done differently?
> > 
> > Move memory-region to the LCD controller node.
> 
> That doesn't work - it would appear in the wrong part of the driver.
> 
> > > Also, if the node is indeed made optional, then it's going to
> > > complicate things on the DRM side. Currently the driver that binds to
> > > the node creates the DRM device once it sees all the components
> > > connected to the ports appear. If we loose it, then the LCD controller
> > > driver would somehow need to find out that it's alone and create the
> > > DRM device itself.
> > 
> > DT is not the only way to create devices. The DRM driver can bind to
> > the LCDC node and then create a child CRTC device (or even multiple
> > ones for h/w with multiple pipelines).
> 
> That seems completely upside down and rediculous to me - are you
> really suggesting that we should have some kind of virtual device
> in DT, and omit the _real_ physical devices for that, having the
> driver create the device with all the appropriate SoC resources?

Hmm, that's not how I read that. My understanding (putting aside
practicality of the solution) is that Rob was merely suggesting that
for the single LCDC case there would be just a single LCDC node in DT
and the driver that binds to it would create the DRM device & CRTC
device pair.

> > You'll also notice that there are only 3 cases of this virtual node in
> > the tree: STi, i.MX IPU, and Rockchip. That's because we've deprecated
> > doing these virtual nodes for some time now. IOW, there are several
> > examples of how to do this without a virtual node.
> 
> This driver has been in-tree with this setup for some time, although
> the documentation has been missing (we actually have a _lot_ of
> instances of that.)  However, we have no in-tree DT using it.
> 
> I don't really see how to satisfy your comments without totally
> restructuring the driver, which is going to be quite a big chunk
> of work.  I'm not sure I have the motivation to do that right now.

Note that the initial objection was against the display-subsystem node
being mandatory if "there is only one [LCDC] device".

My understanding is that need to include the display-subsystem node for
the multiple LCDC setup (on Dove platform) anyways. Is that correct?

Rob, I'm wondering if there would be a possibility of finding some
middle groud? Perhaps documenting, that the display-subsystem node
would ideally be optional for single LCDC setups, but indicating that
the Armada DRM driver actually requires is?

Note that this is not a new driver -- it has been around since 2013,
though, without useful DT bindings. Maybe it would do just well in
company of the other three drivers you mentioned that use similar
bindings.

(Also, there seem to have substantial discussion regarding the bindings
design back in '13, shedding some light into why the display-subsystem
node was deemed useful: [1])

[1] https://www.mail-archive.com/dri-devel@lists.freedesktop.org/msg40358.html

Thanks,
Lubo


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 4/6] dt-bindings: display: armada: Add display subsystem binding
  2019-01-21 20:45           ` Lubomir Rintel
@ 2019-01-21 23:08               ` Russell King - ARM Linux admin
  0 siblings, 0 replies; 23+ messages in thread
From: Russell King - ARM Linux admin @ 2019-01-21 23:08 UTC (permalink / raw)
  To: Lubomir Rintel
  Cc: Rob Herring, Mark Rutland, dri-devel, devicetree, linux-kernel

On Mon, Jan 21, 2019 at 09:45:22PM +0100, Lubomir Rintel wrote:
> On Mon, 2019-01-21 at 17:53 +0000, Russell King - ARM Linux admin
> wrote:
> > On Mon, Jan 21, 2019 at 10:07:11AM -0600, Rob Herring wrote:
> > > On Mon, Jan 21, 2019 at 9:46 AM Lubomir Rintel <lkundrak@v3.sk> wrote:
> > > > On Mon, 2019-01-21 at 09:35 -0600, Rob Herring wrote:
> > > > > On Sun, Jan 20, 2019 at 11:26 AM Lubomir Rintel <lkundrak@v3.sk> wrote:
> > > > > > The Marvell Armada DRM master device is a virtual device needed to list all
> > > > > > nodes that comprise the graphics subsystem.
> > > > > > 
> > > > > > Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
> > > > > > ---
> > > > > >  .../display/armada/marvell-armada-drm.txt     | 24 +++++++++++++++++++
> > > > > >  1 file changed, 24 insertions(+)
> > > > > > 
> > > > > > diff --git a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > > > > index de4cca9432c8..3dbfa8047f0b 100644
> > > > > > --- a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > > > > +++ b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > > > > @@ -1,3 +1,27 @@
> > > > > > +Marvell Armada DRM master device
> > > > > > +================================
> > > > > > +
> > > > > > +The Marvell Armada DRM master device is a virtual device needed to list all
> > > > > > +nodes that comprise the graphics subsystem.
> > > > > > +
> > > > > > +Required properties:
> > > > > > +
> > > > > > + - compatible: value should be "marvell,dove-display-subsystem",
> > > > > > +   "marvell,armada-display-subsystem"
> > > > > > + - ports: a list of phandles pointing to display interface ports of CRTC
> > > > > > +   devices
> > > > > > + - memory-region: phandle to a node describing memory to be used for the
> > > > > > +   framebuffer
> > > > > > +
> > > > > > +Example:
> > > > > > +
> > > > > > +       display-subsystem {
> > > > > > +               compatible = "marvell,dove-display-subsystem",
> > > > > > +                            "marvell,armada-display-subsystem";
> > > > > > +               memory-region = <&display_reserved>;
> > > > > > +               ports = <&lcd0_port>;
> > > > > 
> > > > > If there is only one device, you don't need this virtual node.
> > > > 
> > > > By "one device" you mean one LCD controller (CRTC)?
> > > 
> > > Yes.
> > 
> > How does that work (as far as the Linux implementation) ?  I can't see
> > a way that could work, while allowing the flexibility that Armada DRM
> > allows (two completely independent LCD controllers as two separate DRM
> > devices vs one DRM device containing both LCD controllers.)
> > 
> > > > I suppose in the (single CRTC) example case, the display-subsystem node
> > > > used to associate it with the memory region reserved for allocating the
> > > > frame buffers from. Could that be done differently?
> > > 
> > > Move memory-region to the LCD controller node.
> > 
> > That doesn't work - it would appear in the wrong part of the driver.
> > 
> > > > Also, if the node is indeed made optional, then it's going to
> > > > complicate things on the DRM side. Currently the driver that binds to
> > > > the node creates the DRM device once it sees all the components
> > > > connected to the ports appear. If we loose it, then the LCD controller
> > > > driver would somehow need to find out that it's alone and create the
> > > > DRM device itself.
> > > 
> > > DT is not the only way to create devices. The DRM driver can bind to
> > > the LCDC node and then create a child CRTC device (or even multiple
> > > ones for h/w with multiple pipelines).
> > 
> > That seems completely upside down and rediculous to me - are you
> > really suggesting that we should have some kind of virtual device
> > in DT, and omit the _real_ physical devices for that, having the
> > driver create the device with all the appropriate SoC resources?
> 
> Hmm, that's not how I read that. My understanding (putting aside
> practicality of the solution) is that Rob was merely suggesting that
> for the single LCDC case there would be just a single LCDC node in DT
> and the driver that binds to it would create the DRM device & CRTC
> device pair.

How would we know that was the case when the driver binds to the CRTC
node?  There is no back-link from the CRTC to the display-subsystem
when there's a display-subsystem node present, so there's no way for
the CRTC driver to know whether it should create the DRM device or
not.

I just can't see how this works at a technical level.

> > > You'll also notice that there are only 3 cases of this virtual node in
> > > the tree: STi, i.MX IPU, and Rockchip. That's because we've deprecated
> > > doing these virtual nodes for some time now. IOW, there are several
> > > examples of how to do this without a virtual node.
> > 
> > This driver has been in-tree with this setup for some time, although
> > the documentation has been missing (we actually have a _lot_ of
> > instances of that.)  However, we have no in-tree DT using it.
> > 
> > I don't really see how to satisfy your comments without totally
> > restructuring the driver, which is going to be quite a big chunk
> > of work.  I'm not sure I have the motivation to do that right now.
> 
> Note that the initial objection was against the display-subsystem node
> being mandatory if "there is only one [LCDC] device".
> 
> My understanding is that need to include the display-subsystem node for
> the multiple LCDC setup (on Dove platform) anyways. Is that correct?
> 
> Rob, I'm wondering if there would be a possibility of finding some
> middle groud? Perhaps documenting, that the display-subsystem node
> would ideally be optional for single LCDC setups, but indicating that
> the Armada DRM driver actually requires is?
> 
> Note that this is not a new driver -- it has been around since 2013,
> though, without useful DT bindings. Maybe it would do just well in
> company of the other three drivers you mentioned that use similar
> bindings.
> 
> (Also, there seem to have substantial discussion regarding the bindings
> design back in '13, shedding some light into why the display-subsystem
> node was deemed useful: [1])
> 
> [1] https://www.mail-archive.com/dri-devel@lists.freedesktop.org/msg40358.html
> 
> Thanks,
> Lubo
> 
> 

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up
According to speedtest.net: 11.9Mbps down 500kbps up

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 4/6] dt-bindings: display: armada: Add display subsystem binding
@ 2019-01-21 23:08               ` Russell King - ARM Linux admin
  0 siblings, 0 replies; 23+ messages in thread
From: Russell King - ARM Linux admin @ 2019-01-21 23:08 UTC (permalink / raw)
  To: Lubomir Rintel
  Cc: Mark Rutland, devicetree, Rob Herring, linux-kernel, dri-devel

On Mon, Jan 21, 2019 at 09:45:22PM +0100, Lubomir Rintel wrote:
> On Mon, 2019-01-21 at 17:53 +0000, Russell King - ARM Linux admin
> wrote:
> > On Mon, Jan 21, 2019 at 10:07:11AM -0600, Rob Herring wrote:
> > > On Mon, Jan 21, 2019 at 9:46 AM Lubomir Rintel <lkundrak@v3.sk> wrote:
> > > > On Mon, 2019-01-21 at 09:35 -0600, Rob Herring wrote:
> > > > > On Sun, Jan 20, 2019 at 11:26 AM Lubomir Rintel <lkundrak@v3.sk> wrote:
> > > > > > The Marvell Armada DRM master device is a virtual device needed to list all
> > > > > > nodes that comprise the graphics subsystem.
> > > > > > 
> > > > > > Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
> > > > > > ---
> > > > > >  .../display/armada/marvell-armada-drm.txt     | 24 +++++++++++++++++++
> > > > > >  1 file changed, 24 insertions(+)
> > > > > > 
> > > > > > diff --git a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > > > > index de4cca9432c8..3dbfa8047f0b 100644
> > > > > > --- a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > > > > +++ b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > > > > @@ -1,3 +1,27 @@
> > > > > > +Marvell Armada DRM master device
> > > > > > +================================
> > > > > > +
> > > > > > +The Marvell Armada DRM master device is a virtual device needed to list all
> > > > > > +nodes that comprise the graphics subsystem.
> > > > > > +
> > > > > > +Required properties:
> > > > > > +
> > > > > > + - compatible: value should be "marvell,dove-display-subsystem",
> > > > > > +   "marvell,armada-display-subsystem"
> > > > > > + - ports: a list of phandles pointing to display interface ports of CRTC
> > > > > > +   devices
> > > > > > + - memory-region: phandle to a node describing memory to be used for the
> > > > > > +   framebuffer
> > > > > > +
> > > > > > +Example:
> > > > > > +
> > > > > > +       display-subsystem {
> > > > > > +               compatible = "marvell,dove-display-subsystem",
> > > > > > +                            "marvell,armada-display-subsystem";
> > > > > > +               memory-region = <&display_reserved>;
> > > > > > +               ports = <&lcd0_port>;
> > > > > 
> > > > > If there is only one device, you don't need this virtual node.
> > > > 
> > > > By "one device" you mean one LCD controller (CRTC)?
> > > 
> > > Yes.
> > 
> > How does that work (as far as the Linux implementation) ?  I can't see
> > a way that could work, while allowing the flexibility that Armada DRM
> > allows (two completely independent LCD controllers as two separate DRM
> > devices vs one DRM device containing both LCD controllers.)
> > 
> > > > I suppose in the (single CRTC) example case, the display-subsystem node
> > > > used to associate it with the memory region reserved for allocating the
> > > > frame buffers from. Could that be done differently?
> > > 
> > > Move memory-region to the LCD controller node.
> > 
> > That doesn't work - it would appear in the wrong part of the driver.
> > 
> > > > Also, if the node is indeed made optional, then it's going to
> > > > complicate things on the DRM side. Currently the driver that binds to
> > > > the node creates the DRM device once it sees all the components
> > > > connected to the ports appear. If we loose it, then the LCD controller
> > > > driver would somehow need to find out that it's alone and create the
> > > > DRM device itself.
> > > 
> > > DT is not the only way to create devices. The DRM driver can bind to
> > > the LCDC node and then create a child CRTC device (or even multiple
> > > ones for h/w with multiple pipelines).
> > 
> > That seems completely upside down and rediculous to me - are you
> > really suggesting that we should have some kind of virtual device
> > in DT, and omit the _real_ physical devices for that, having the
> > driver create the device with all the appropriate SoC resources?
> 
> Hmm, that's not how I read that. My understanding (putting aside
> practicality of the solution) is that Rob was merely suggesting that
> for the single LCDC case there would be just a single LCDC node in DT
> and the driver that binds to it would create the DRM device & CRTC
> device pair.

How would we know that was the case when the driver binds to the CRTC
node?  There is no back-link from the CRTC to the display-subsystem
when there's a display-subsystem node present, so there's no way for
the CRTC driver to know whether it should create the DRM device or
not.

I just can't see how this works at a technical level.

> > > You'll also notice that there are only 3 cases of this virtual node in
> > > the tree: STi, i.MX IPU, and Rockchip. That's because we've deprecated
> > > doing these virtual nodes for some time now. IOW, there are several
> > > examples of how to do this without a virtual node.
> > 
> > This driver has been in-tree with this setup for some time, although
> > the documentation has been missing (we actually have a _lot_ of
> > instances of that.)  However, we have no in-tree DT using it.
> > 
> > I don't really see how to satisfy your comments without totally
> > restructuring the driver, which is going to be quite a big chunk
> > of work.  I'm not sure I have the motivation to do that right now.
> 
> Note that the initial objection was against the display-subsystem node
> being mandatory if "there is only one [LCDC] device".
> 
> My understanding is that need to include the display-subsystem node for
> the multiple LCDC setup (on Dove platform) anyways. Is that correct?
> 
> Rob, I'm wondering if there would be a possibility of finding some
> middle groud? Perhaps documenting, that the display-subsystem node
> would ideally be optional for single LCDC setups, but indicating that
> the Armada DRM driver actually requires is?
> 
> Note that this is not a new driver -- it has been around since 2013,
> though, without useful DT bindings. Maybe it would do just well in
> company of the other three drivers you mentioned that use similar
> bindings.
> 
> (Also, there seem to have substantial discussion regarding the bindings
> design back in '13, shedding some light into why the display-subsystem
> node was deemed useful: [1])
> 
> [1] https://www.mail-archive.com/dri-devel@lists.freedesktop.org/msg40358.html
> 
> Thanks,
> Lubo
> 
> 

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up
According to speedtest.net: 11.9Mbps down 500kbps up
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 4/6] dt-bindings: display: armada: Add display subsystem binding
  2019-01-21 17:53         ` Russell King - ARM Linux admin
  2019-01-21 20:45           ` Lubomir Rintel
@ 2019-01-21 23:58           ` Rob Herring
  2019-01-22 10:58               ` Russell King - ARM Linux admin
  1 sibling, 1 reply; 23+ messages in thread
From: Rob Herring @ 2019-01-21 23:58 UTC (permalink / raw)
  To: Russell King - ARM Linux admin
  Cc: Lubomir Rintel, Mark Rutland, dri-devel, devicetree, linux-kernel

On Mon, Jan 21, 2019 at 11:53 AM Russell King - ARM Linux admin
<linux@armlinux.org.uk> wrote:
>
> On Mon, Jan 21, 2019 at 10:07:11AM -0600, Rob Herring wrote:
> > On Mon, Jan 21, 2019 at 9:46 AM Lubomir Rintel <lkundrak@v3.sk> wrote:
> > >
> > > On Mon, 2019-01-21 at 09:35 -0600, Rob Herring wrote:
> > > > On Sun, Jan 20, 2019 at 11:26 AM Lubomir Rintel <lkundrak@v3.sk> wrote:
> > > > > The Marvell Armada DRM master device is a virtual device needed to list all
> > > > > nodes that comprise the graphics subsystem.
> > > > >
> > > > > Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
> > > > > ---
> > > > >  .../display/armada/marvell-armada-drm.txt     | 24 +++++++++++++++++++
> > > > >  1 file changed, 24 insertions(+)
> > > > >
> > > > > diff --git a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > > > index de4cca9432c8..3dbfa8047f0b 100644
> > > > > --- a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > > > +++ b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > > > @@ -1,3 +1,27 @@
> > > > > +Marvell Armada DRM master device
> > > > > +================================
> > > > > +
> > > > > +The Marvell Armada DRM master device is a virtual device needed to list all
> > > > > +nodes that comprise the graphics subsystem.
> > > > > +
> > > > > +Required properties:
> > > > > +
> > > > > + - compatible: value should be "marvell,dove-display-subsystem",
> > > > > +   "marvell,armada-display-subsystem"
> > > > > + - ports: a list of phandles pointing to display interface ports of CRTC
> > > > > +   devices
> > > > > + - memory-region: phandle to a node describing memory to be used for the
> > > > > +   framebuffer
> > > > > +
> > > > > +Example:
> > > > > +
> > > > > +       display-subsystem {
> > > > > +               compatible = "marvell,dove-display-subsystem",
> > > > > +                            "marvell,armada-display-subsystem";
> > > > > +               memory-region = <&display_reserved>;
> > > > > +               ports = <&lcd0_port>;
> > > >
> > > > If there is only one device, you don't need this virtual node.
> > >
> > > By "one device" you mean one LCD controller (CRTC)?
> >
> > Yes.
>
> How does that work (as far as the Linux implementation) ?  I can't see
> a way that could work, while allowing the flexibility that Armada DRM
> allows (two completely independent LCD controllers as two separate DRM
> devices vs one DRM device containing both LCD controllers.)
>
> > > I suppose in the (single CRTC) example case, the display-subsystem node
> > > used to associate it with the memory region reserved for allocating the
> > > frame buffers from. Could that be done differently?
> >
> > Move memory-region to the LCD controller node.
>
> That doesn't work - it would appear in the wrong part of the driver.

Why? You can fetch properties from other nodes.

If you have 2 CRTCs, do you have 1 or 2 reserved memory regions? I'd
think 2 with each one in the corresponding LCDC that uses them would
be more flexible.

Or just get the data out of the /reserved-memory node directly. Surely
it has a compatible that you can find it with.

> > > Also, if the node is indeed made optional, then it's going to
> > > complicate things on the DRM side. Currently the driver that binds to
> > > the node creates the DRM device once it sees all the components
> > > connected to the ports appear. If we loose it, then the LCD controller
> > > driver would somehow need to find out that it's alone and create the
> > > DRM device itself.
> >
> > DT is not the only way to create devices. The DRM driver can bind to
> > the LCDC node and then create a child CRTC device (or even multiple
> > ones for h/w with multiple pipelines).
>
> That seems completely upside down and rediculous to me - are you
> really suggesting that we should have some kind of virtual device
> in DT, and omit the _real_ physical devices for that, having the
> driver create the device with all the appropriate SoC resources?

We create child platform devices that inherit from the parent in DT
all the time. MFD child drivers are a common case. Sometime the child
devices have DT nodes and sometimes they don't.

Otherwise, do it the other way around. Create a virtual DRM device
conditioned on the SoC:

if (of_machine_is_compatible("foo,bar"))
  platform_device_register_simple(...)

>
> > You'll also notice that there are only 3 cases of this virtual node in
> > the tree: STi, i.MX IPU, and Rockchip. That's because we've deprecated
> > doing these virtual nodes for some time now. IOW, there are several
> > examples of how to do this without a virtual node.
>
> This driver has been in-tree with this setup for some time, although
> the documentation has been missing (we actually have a _lot_ of
> instances of that.)  However, we have no in-tree DT using it.

The current Armada DRM driver has no binding to DT at all, so no, it
is not just missing documentation or a dts file.

> I don't really see how to satisfy your comments without totally
> restructuring the driver, which is going to be quite a big chunk
> of work.  I'm not sure I have the motivation to do that right now.

It's not a big chunk of work. Look at commit 246774d17fc0
("drm/etnaviv: remove the need for a gpu-subsystem DT node") for an
example.

Rob

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 4/6] dt-bindings: display: armada: Add display subsystem binding
  2019-01-21 23:58           ` Rob Herring
@ 2019-01-22 10:58               ` Russell King - ARM Linux admin
  0 siblings, 0 replies; 23+ messages in thread
From: Russell King - ARM Linux admin @ 2019-01-22 10:58 UTC (permalink / raw)
  To: Rob Herring
  Cc: Lubomir Rintel, Mark Rutland, dri-devel, devicetree, linux-kernel

On Mon, Jan 21, 2019 at 05:58:50PM -0600, Rob Herring wrote:
> On Mon, Jan 21, 2019 at 11:53 AM Russell King - ARM Linux admin
> <linux@armlinux.org.uk> wrote:
> >
> > On Mon, Jan 21, 2019 at 10:07:11AM -0600, Rob Herring wrote:
> > > On Mon, Jan 21, 2019 at 9:46 AM Lubomir Rintel <lkundrak@v3.sk> wrote:
> > > >
> > > > On Mon, 2019-01-21 at 09:35 -0600, Rob Herring wrote:
> > > > > On Sun, Jan 20, 2019 at 11:26 AM Lubomir Rintel <lkundrak@v3.sk> wrote:
> > > > > > The Marvell Armada DRM master device is a virtual device needed to list all
> > > > > > nodes that comprise the graphics subsystem.
> > > > > >
> > > > > > Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
> > > > > > ---
> > > > > >  .../display/armada/marvell-armada-drm.txt     | 24 +++++++++++++++++++
> > > > > >  1 file changed, 24 insertions(+)
> > > > > >
> > > > > > diff --git a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > > > > index de4cca9432c8..3dbfa8047f0b 100644
> > > > > > --- a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > > > > +++ b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > > > > @@ -1,3 +1,27 @@
> > > > > > +Marvell Armada DRM master device
> > > > > > +================================
> > > > > > +
> > > > > > +The Marvell Armada DRM master device is a virtual device needed to list all
> > > > > > +nodes that comprise the graphics subsystem.
> > > > > > +
> > > > > > +Required properties:
> > > > > > +
> > > > > > + - compatible: value should be "marvell,dove-display-subsystem",
> > > > > > +   "marvell,armada-display-subsystem"
> > > > > > + - ports: a list of phandles pointing to display interface ports of CRTC
> > > > > > +   devices
> > > > > > + - memory-region: phandle to a node describing memory to be used for the
> > > > > > +   framebuffer
> > > > > > +
> > > > > > +Example:
> > > > > > +
> > > > > > +       display-subsystem {
> > > > > > +               compatible = "marvell,dove-display-subsystem",
> > > > > > +                            "marvell,armada-display-subsystem";
> > > > > > +               memory-region = <&display_reserved>;
> > > > > > +               ports = <&lcd0_port>;
> > > > >
> > > > > If there is only one device, you don't need this virtual node.
> > > >
> > > > By "one device" you mean one LCD controller (CRTC)?
> > >
> > > Yes.
> >
> > How does that work (as far as the Linux implementation) ?  I can't see
> > a way that could work, while allowing the flexibility that Armada DRM
> > allows (two completely independent LCD controllers as two separate DRM
> > devices vs one DRM device containing both LCD controllers.)
> >
> > > > I suppose in the (single CRTC) example case, the display-subsystem node
> > > > used to associate it with the memory region reserved for allocating the
> > > > frame buffers from. Could that be done differently?
> > >
> > > Move memory-region to the LCD controller node.
> >
> > That doesn't work - it would appear in the wrong part of the driver.
> 
> Why? You can fetch properties from other nodes.
> 
> If you have 2 CRTCs, do you have 1 or 2 reserved memory regions? I'd
> think 2 with each one in the corresponding LCDC that uses them would
> be more flexible.

There would still be one reserved memory region, since it is shared
between both LCDCs.

> Or just get the data out of the /reserved-memory node directly. Surely
> it has a compatible that you can find it with.

I see that the DT reserved memory support has progressed since I wrote
the armada code to deal with it, and it's now possible to make use of
reserved memory via of_reserved_mem_lookup() rather than using the
RESERVEDMEM_OF_DECLARE() and so forth.

> > > > Also, if the node is indeed made optional, then it's going to
> > > > complicate things on the DRM side. Currently the driver that binds to
> > > > the node creates the DRM device once it sees all the components
> > > > connected to the ports appear. If we loose it, then the LCD controller
> > > > driver would somehow need to find out that it's alone and create the
> > > > DRM device itself.
> > >
> > > DT is not the only way to create devices. The DRM driver can bind to
> > > the LCDC node and then create a child CRTC device (or even multiple
> > > ones for h/w with multiple pipelines).
> >
> > That seems completely upside down and rediculous to me - are you
> > really suggesting that we should have some kind of virtual device
> > in DT, and omit the _real_ physical devices for that, having the
> > driver create the device with all the appropriate SoC resources?
> 
> We create child platform devices that inherit from the parent in DT
> all the time. MFD child drivers are a common case. Sometime the child
> devices have DT nodes and sometimes they don't.

I still don't think what you're saying is the right way to go about
this.

You _appear_ to be saying to group _both_ LCD controllers into one
DT node, despite the fact that they are two separate devices with
different mmio resources, interrupts etc, and have code in the
kernel to split the DT device up into sub-devices.  IOW:

                        lcd-controllers@810000 {
                                compatible = "marvell,dove-lcd-subsystem";
                                reg = <0x810000 0x1000>, <0x820000 0x1000>;
                                interrupts = <46>, <47>;
                                status = "disabled";
                        };

rather than:

                        lcd1: lcd-controller@810000 {
                                compatible = "marvell,dove-lcd";
                                reg = <0x810000 0x1000>;
                                interrupts = <46>;
                                status = "disabled";
                        };

                        lcd0: lcd-controller@820000 {
                                compatible = "marvell,dove-lcd";
                                reg = <0x820000 0x1000>;
                                interrupts = <47>;
                                status = "disabled";
                        };

Why do we need all that extra complexity, when DT can perfectly well
describe each individual LCD controller as a separate node?

How do we then do stuff such as:

&lcd0 {
        status = "okay";
        clocks = <&si5351 0>;
        clock-names = "ext_ref_clk1";
        lcd0_port: port {
                lcd0_rgb: endpoint {
                        remote-endpoint = <&tda998x_video>;
                };
        };
};

&lcd1 {
        status = "okay";
        clocks = <&divider_clk 3>;
        clock-names = "plldivider";
        lcd1_port: port {
                lcd1_rgb: endpoint {
                        remote-endpoint = <&vga_bridge_in>;
                };
        };
};

in board files - we seem to lose a way to reference each individual
LCD controller using this method.  This is why I say your suggestion
is upside down and rather rediculous - it doesn't really fit the
hardware at all, and to me just seems to be an exercise in making
things unnecessarily difficult.

> Otherwise, do it the other way around. Create a virtual DRM device
> conditioned on the SoC:
> 
> if (of_machine_is_compatible("foo,bar"))
>   platform_device_register_simple(...)

I guess that's possible at the expense of losing the flexibility - my
original idea was to allow a case where you could have two DRM devices,
one per LCD controller if you wanted, rather than having a binding that
forces one DRM device optionally containing both LCD controllers.

This is the flexibility I talk about above, that you seem to have
skipped over in your reply.

> > > You'll also notice that there are only 3 cases of this virtual node in
> > > the tree: STi, i.MX IPU, and Rockchip. That's because we've deprecated
> > > doing these virtual nodes for some time now. IOW, there are several
> > > examples of how to do this without a virtual node.
> >
> > This driver has been in-tree with this setup for some time, although
> > the documentation has been missing (we actually have a _lot_ of
> > instances of that.)  However, we have no in-tree DT using it.
> 
> The current Armada DRM driver has no binding to DT at all, so no, it
> is not just missing documentation or a dts file.
> 
> > I don't really see how to satisfy your comments without totally
> > restructuring the driver, which is going to be quite a big chunk
> > of work.  I'm not sure I have the motivation to do that right now.
> 
> It's not a big chunk of work. Look at commit 246774d17fc0
> ("drm/etnaviv: remove the need for a gpu-subsystem DT node") for an
> example.
> 
> Rob
> 

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up
According to speedtest.net: 11.9Mbps down 500kbps up

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 4/6] dt-bindings: display: armada: Add display subsystem binding
@ 2019-01-22 10:58               ` Russell King - ARM Linux admin
  0 siblings, 0 replies; 23+ messages in thread
From: Russell King - ARM Linux admin @ 2019-01-22 10:58 UTC (permalink / raw)
  To: Rob Herring
  Cc: Mark Rutland, Lubomir Rintel, linux-kernel, dri-devel, devicetree

On Mon, Jan 21, 2019 at 05:58:50PM -0600, Rob Herring wrote:
> On Mon, Jan 21, 2019 at 11:53 AM Russell King - ARM Linux admin
> <linux@armlinux.org.uk> wrote:
> >
> > On Mon, Jan 21, 2019 at 10:07:11AM -0600, Rob Herring wrote:
> > > On Mon, Jan 21, 2019 at 9:46 AM Lubomir Rintel <lkundrak@v3.sk> wrote:
> > > >
> > > > On Mon, 2019-01-21 at 09:35 -0600, Rob Herring wrote:
> > > > > On Sun, Jan 20, 2019 at 11:26 AM Lubomir Rintel <lkundrak@v3.sk> wrote:
> > > > > > The Marvell Armada DRM master device is a virtual device needed to list all
> > > > > > nodes that comprise the graphics subsystem.
> > > > > >
> > > > > > Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
> > > > > > ---
> > > > > >  .../display/armada/marvell-armada-drm.txt     | 24 +++++++++++++++++++
> > > > > >  1 file changed, 24 insertions(+)
> > > > > >
> > > > > > diff --git a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > > > > index de4cca9432c8..3dbfa8047f0b 100644
> > > > > > --- a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > > > > +++ b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > > > > @@ -1,3 +1,27 @@
> > > > > > +Marvell Armada DRM master device
> > > > > > +================================
> > > > > > +
> > > > > > +The Marvell Armada DRM master device is a virtual device needed to list all
> > > > > > +nodes that comprise the graphics subsystem.
> > > > > > +
> > > > > > +Required properties:
> > > > > > +
> > > > > > + - compatible: value should be "marvell,dove-display-subsystem",
> > > > > > +   "marvell,armada-display-subsystem"
> > > > > > + - ports: a list of phandles pointing to display interface ports of CRTC
> > > > > > +   devices
> > > > > > + - memory-region: phandle to a node describing memory to be used for the
> > > > > > +   framebuffer
> > > > > > +
> > > > > > +Example:
> > > > > > +
> > > > > > +       display-subsystem {
> > > > > > +               compatible = "marvell,dove-display-subsystem",
> > > > > > +                            "marvell,armada-display-subsystem";
> > > > > > +               memory-region = <&display_reserved>;
> > > > > > +               ports = <&lcd0_port>;
> > > > >
> > > > > If there is only one device, you don't need this virtual node.
> > > >
> > > > By "one device" you mean one LCD controller (CRTC)?
> > >
> > > Yes.
> >
> > How does that work (as far as the Linux implementation) ?  I can't see
> > a way that could work, while allowing the flexibility that Armada DRM
> > allows (two completely independent LCD controllers as two separate DRM
> > devices vs one DRM device containing both LCD controllers.)
> >
> > > > I suppose in the (single CRTC) example case, the display-subsystem node
> > > > used to associate it with the memory region reserved for allocating the
> > > > frame buffers from. Could that be done differently?
> > >
> > > Move memory-region to the LCD controller node.
> >
> > That doesn't work - it would appear in the wrong part of the driver.
> 
> Why? You can fetch properties from other nodes.
> 
> If you have 2 CRTCs, do you have 1 or 2 reserved memory regions? I'd
> think 2 with each one in the corresponding LCDC that uses them would
> be more flexible.

There would still be one reserved memory region, since it is shared
between both LCDCs.

> Or just get the data out of the /reserved-memory node directly. Surely
> it has a compatible that you can find it with.

I see that the DT reserved memory support has progressed since I wrote
the armada code to deal with it, and it's now possible to make use of
reserved memory via of_reserved_mem_lookup() rather than using the
RESERVEDMEM_OF_DECLARE() and so forth.

> > > > Also, if the node is indeed made optional, then it's going to
> > > > complicate things on the DRM side. Currently the driver that binds to
> > > > the node creates the DRM device once it sees all the components
> > > > connected to the ports appear. If we loose it, then the LCD controller
> > > > driver would somehow need to find out that it's alone and create the
> > > > DRM device itself.
> > >
> > > DT is not the only way to create devices. The DRM driver can bind to
> > > the LCDC node and then create a child CRTC device (or even multiple
> > > ones for h/w with multiple pipelines).
> >
> > That seems completely upside down and rediculous to me - are you
> > really suggesting that we should have some kind of virtual device
> > in DT, and omit the _real_ physical devices for that, having the
> > driver create the device with all the appropriate SoC resources?
> 
> We create child platform devices that inherit from the parent in DT
> all the time. MFD child drivers are a common case. Sometime the child
> devices have DT nodes and sometimes they don't.

I still don't think what you're saying is the right way to go about
this.

You _appear_ to be saying to group _both_ LCD controllers into one
DT node, despite the fact that they are two separate devices with
different mmio resources, interrupts etc, and have code in the
kernel to split the DT device up into sub-devices.  IOW:

                        lcd-controllers@810000 {
                                compatible = "marvell,dove-lcd-subsystem";
                                reg = <0x810000 0x1000>, <0x820000 0x1000>;
                                interrupts = <46>, <47>;
                                status = "disabled";
                        };

rather than:

                        lcd1: lcd-controller@810000 {
                                compatible = "marvell,dove-lcd";
                                reg = <0x810000 0x1000>;
                                interrupts = <46>;
                                status = "disabled";
                        };

                        lcd0: lcd-controller@820000 {
                                compatible = "marvell,dove-lcd";
                                reg = <0x820000 0x1000>;
                                interrupts = <47>;
                                status = "disabled";
                        };

Why do we need all that extra complexity, when DT can perfectly well
describe each individual LCD controller as a separate node?

How do we then do stuff such as:

&lcd0 {
        status = "okay";
        clocks = <&si5351 0>;
        clock-names = "ext_ref_clk1";
        lcd0_port: port {
                lcd0_rgb: endpoint {
                        remote-endpoint = <&tda998x_video>;
                };
        };
};

&lcd1 {
        status = "okay";
        clocks = <&divider_clk 3>;
        clock-names = "plldivider";
        lcd1_port: port {
                lcd1_rgb: endpoint {
                        remote-endpoint = <&vga_bridge_in>;
                };
        };
};

in board files - we seem to lose a way to reference each individual
LCD controller using this method.  This is why I say your suggestion
is upside down and rather rediculous - it doesn't really fit the
hardware at all, and to me just seems to be an exercise in making
things unnecessarily difficult.

> Otherwise, do it the other way around. Create a virtual DRM device
> conditioned on the SoC:
> 
> if (of_machine_is_compatible("foo,bar"))
>   platform_device_register_simple(...)

I guess that's possible at the expense of losing the flexibility - my
original idea was to allow a case where you could have two DRM devices,
one per LCD controller if you wanted, rather than having a binding that
forces one DRM device optionally containing both LCD controllers.

This is the flexibility I talk about above, that you seem to have
skipped over in your reply.

> > > You'll also notice that there are only 3 cases of this virtual node in
> > > the tree: STi, i.MX IPU, and Rockchip. That's because we've deprecated
> > > doing these virtual nodes for some time now. IOW, there are several
> > > examples of how to do this without a virtual node.
> >
> > This driver has been in-tree with this setup for some time, although
> > the documentation has been missing (we actually have a _lot_ of
> > instances of that.)  However, we have no in-tree DT using it.
> 
> The current Armada DRM driver has no binding to DT at all, so no, it
> is not just missing documentation or a dts file.
> 
> > I don't really see how to satisfy your comments without totally
> > restructuring the driver, which is going to be quite a big chunk
> > of work.  I'm not sure I have the motivation to do that right now.
> 
> It's not a big chunk of work. Look at commit 246774d17fc0
> ("drm/etnaviv: remove the need for a gpu-subsystem DT node") for an
> example.
> 
> Rob
> 

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up
According to speedtest.net: 11.9Mbps down 500kbps up
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 4/6] dt-bindings: display: armada: Add display subsystem binding
  2019-01-22 10:58               ` Russell King - ARM Linux admin
  (?)
@ 2019-01-22 16:06               ` Rob Herring
  -1 siblings, 0 replies; 23+ messages in thread
From: Rob Herring @ 2019-01-22 16:06 UTC (permalink / raw)
  To: Russell King - ARM Linux admin
  Cc: Lubomir Rintel, Mark Rutland, dri-devel, devicetree, linux-kernel

On Tue, Jan 22, 2019 at 4:58 AM Russell King - ARM Linux admin
<linux@armlinux.org.uk> wrote:
>
> On Mon, Jan 21, 2019 at 05:58:50PM -0600, Rob Herring wrote:
> > On Mon, Jan 21, 2019 at 11:53 AM Russell King - ARM Linux admin
> > <linux@armlinux.org.uk> wrote:
> > >
> > > On Mon, Jan 21, 2019 at 10:07:11AM -0600, Rob Herring wrote:
> > > > On Mon, Jan 21, 2019 at 9:46 AM Lubomir Rintel <lkundrak@v3.sk> wrote:
> > > > >
> > > > > On Mon, 2019-01-21 at 09:35 -0600, Rob Herring wrote:
> > > > > > On Sun, Jan 20, 2019 at 11:26 AM Lubomir Rintel <lkundrak@v3.sk> wrote:
> > > > > > > The Marvell Armada DRM master device is a virtual device needed to list all
> > > > > > > nodes that comprise the graphics subsystem.
> > > > > > >
> > > > > > > Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
> > > > > > > ---
> > > > > > >  .../display/armada/marvell-armada-drm.txt     | 24 +++++++++++++++++++
> > > > > > >  1 file changed, 24 insertions(+)
> > > > > > >
> > > > > > > diff --git a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > > > > > index de4cca9432c8..3dbfa8047f0b 100644
> > > > > > > --- a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > > > > > +++ b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > > > > > @@ -1,3 +1,27 @@
> > > > > > > +Marvell Armada DRM master device
> > > > > > > +================================
> > > > > > > +
> > > > > > > +The Marvell Armada DRM master device is a virtual device needed to list all
> > > > > > > +nodes that comprise the graphics subsystem.
> > > > > > > +
> > > > > > > +Required properties:
> > > > > > > +
> > > > > > > + - compatible: value should be "marvell,dove-display-subsystem",
> > > > > > > +   "marvell,armada-display-subsystem"
> > > > > > > + - ports: a list of phandles pointing to display interface ports of CRTC
> > > > > > > +   devices
> > > > > > > + - memory-region: phandle to a node describing memory to be used for the
> > > > > > > +   framebuffer
> > > > > > > +
> > > > > > > +Example:
> > > > > > > +
> > > > > > > +       display-subsystem {
> > > > > > > +               compatible = "marvell,dove-display-subsystem",
> > > > > > > +                            "marvell,armada-display-subsystem";
> > > > > > > +               memory-region = <&display_reserved>;
> > > > > > > +               ports = <&lcd0_port>;
> > > > > >
> > > > > > If there is only one device, you don't need this virtual node.
> > > > >
> > > > > By "one device" you mean one LCD controller (CRTC)?
> > > >
> > > > Yes.
> > >
> > > How does that work (as far as the Linux implementation) ?  I can't see
> > > a way that could work, while allowing the flexibility that Armada DRM
> > > allows (two completely independent LCD controllers as two separate DRM
> > > devices vs one DRM device containing both LCD controllers.)
> > >
> > > > > I suppose in the (single CRTC) example case, the display-subsystem node
> > > > > used to associate it with the memory region reserved for allocating the
> > > > > frame buffers from. Could that be done differently?
> > > >
> > > > Move memory-region to the LCD controller node.
> > >
> > > That doesn't work - it would appear in the wrong part of the driver.
> >
> > Why? You can fetch properties from other nodes.
> >
> > If you have 2 CRTCs, do you have 1 or 2 reserved memory regions? I'd
> > think 2 with each one in the corresponding LCDC that uses them would
> > be more flexible.
>
> There would still be one reserved memory region, since it is shared
> between both LCDCs.
>
> > Or just get the data out of the /reserved-memory node directly. Surely
> > it has a compatible that you can find it with.
>
> I see that the DT reserved memory support has progressed since I wrote
> the armada code to deal with it, and it's now possible to make use of
> reserved memory via of_reserved_mem_lookup() rather than using the
> RESERVEDMEM_OF_DECLARE() and so forth.
>
> > > > > Also, if the node is indeed made optional, then it's going to
> > > > > complicate things on the DRM side. Currently the driver that binds to
> > > > > the node creates the DRM device once it sees all the components
> > > > > connected to the ports appear. If we loose it, then the LCD controller
> > > > > driver would somehow need to find out that it's alone and create the
> > > > > DRM device itself.
> > > >
> > > > DT is not the only way to create devices. The DRM driver can bind to
> > > > the LCDC node and then create a child CRTC device (or even multiple
> > > > ones for h/w with multiple pipelines).
> > >
> > > That seems completely upside down and rediculous to me - are you
> > > really suggesting that we should have some kind of virtual device
> > > in DT, and omit the _real_ physical devices for that, having the
> > > driver create the device with all the appropriate SoC resources?
> >
> > We create child platform devices that inherit from the parent in DT
> > all the time. MFD child drivers are a common case. Sometime the child
> > devices have DT nodes and sometimes they don't.
>
> I still don't think what you're saying is the right way to go about
> this.
>
> You _appear_ to be saying to group _both_ LCD controllers into one
> DT node, despite the fact that they are two separate devices with
> different mmio resources, interrupts etc, and have code in the
> kernel to split the DT device up into sub-devices.  IOW:

No, not at all. That was just an example of a h/w device having
virtual child platform devices. If you want to have 1 DRM device with
2 CRTCs, you have to do as described below.

I certainly want this to reflect the h/w. That's why we're having this
discussion.

[...]

> > Otherwise, do it the other way around. Create a virtual DRM device
> > conditioned on the SoC:
> >
> > if (of_machine_is_compatible("foo,bar"))
> >   platform_device_register_simple(...)
>
> I guess that's possible at the expense of losing the flexibility - my
> original idea was to allow a case where you could have two DRM devices,
> one per LCD controller if you wanted, rather than having a binding that
> forces one DRM device optionally containing both LCD controllers.

Sure, but that's an OS decision that has nothing to do with the
hardware and DT. You'll just have to pass some flag to the DRM device
platform driver and decide whether to create 1 device or 2. That
decision could be based on either evolving DRM architecture or on the
platform. That is more flexible than fixing it in DT.

Rob

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 4/6] dt-bindings: display: armada: Add display subsystem binding
  2019-01-21 15:35   ` Rob Herring
  2019-01-21 15:46     ` Lubomir Rintel
@ 2019-02-13 22:37     ` Lubomir Rintel
  2019-02-22 20:23       ` Rob Herring
  1 sibling, 1 reply; 23+ messages in thread
From: Lubomir Rintel @ 2019-02-13 22:37 UTC (permalink / raw)
  To: Rob Herring
  Cc: Mark Rutland, Russell King, dri-devel, devicetree, linux-kernel

On Mon, 2019-01-21 at 09:35 -0600, Rob Herring wrote:
> On Sun, Jan 20, 2019 at 11:26 AM Lubomir Rintel <lkundrak@v3.sk> wrote:
> > The Marvell Armada DRM master device is a virtual device needed to list all
> > nodes that comprise the graphics subsystem.
> > 
> > Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
> > ---
> >  .../display/armada/marvell-armada-drm.txt     | 24 +++++++++++++++++++
> >  1 file changed, 24 insertions(+)
> > 
> > diff --git a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > index de4cca9432c8..3dbfa8047f0b 100644
> > --- a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > +++ b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > @@ -1,3 +1,27 @@
> > +Marvell Armada DRM master device
> > +================================
> > +
> > +The Marvell Armada DRM master device is a virtual device needed to list all
> > +nodes that comprise the graphics subsystem.
> > +
> > +Required properties:
> > +
> > + - compatible: value should be "marvell,dove-display-subsystem",
> > +   "marvell,armada-display-subsystem"
> > + - ports: a list of phandles pointing to display interface ports of CRTC
> > +   devices
> > + - memory-region: phandle to a node describing memory to be used for the
> > +   framebuffer
> > +
> > +Example:
> > +
> > +       display-subsystem {
> > +               compatible = "marvell,dove-display-subsystem",
> > +                            "marvell,armada-display-subsystem";
> > +               memory-region = <&display_reserved>;
> > +               ports = <&lcd0_port>;
> 
> If there is only one device, you don't need this virtual node.

Before I follow up on this and submit a version without the virtual
node, I'm wondering: is it okay that the bindings for the LCDC and the
framebuffer are in the same file, or would it be preferrable if they
were separate? Both styles seem to be used for the display bindings.

> 
> 
> > +       };
> > +
> >  Marvell Armada LCD controller
> >  =============================
> > 
> > --
> > 2.20.1

Lubo


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 4/6] dt-bindings: display: armada: Add display subsystem binding
  2019-02-13 22:37     ` Lubomir Rintel
@ 2019-02-22 20:23       ` Rob Herring
  2019-02-24 16:15         ` Lubomir Rintel
  0 siblings, 1 reply; 23+ messages in thread
From: Rob Herring @ 2019-02-22 20:23 UTC (permalink / raw)
  To: Lubomir Rintel
  Cc: Mark Rutland, Russell King, dri-devel, devicetree, linux-kernel

On Wed, Feb 13, 2019 at 4:37 PM Lubomir Rintel <lkundrak@v3.sk> wrote:
>
> On Mon, 2019-01-21 at 09:35 -0600, Rob Herring wrote:
> > On Sun, Jan 20, 2019 at 11:26 AM Lubomir Rintel <lkundrak@v3.sk> wrote:
> > > The Marvell Armada DRM master device is a virtual device needed to list all
> > > nodes that comprise the graphics subsystem.
> > >
> > > Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
> > > ---
> > >  .../display/armada/marvell-armada-drm.txt     | 24 +++++++++++++++++++
> > >  1 file changed, 24 insertions(+)
> > >
> > > diff --git a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > index de4cca9432c8..3dbfa8047f0b 100644
> > > --- a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > +++ b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > @@ -1,3 +1,27 @@
> > > +Marvell Armada DRM master device
> > > +================================
> > > +
> > > +The Marvell Armada DRM master device is a virtual device needed to list all
> > > +nodes that comprise the graphics subsystem.
> > > +
> > > +Required properties:
> > > +
> > > + - compatible: value should be "marvell,dove-display-subsystem",
> > > +   "marvell,armada-display-subsystem"
> > > + - ports: a list of phandles pointing to display interface ports of CRTC
> > > +   devices
> > > + - memory-region: phandle to a node describing memory to be used for the
> > > +   framebuffer
> > > +
> > > +Example:
> > > +
> > > +       display-subsystem {
> > > +               compatible = "marvell,dove-display-subsystem",
> > > +                            "marvell,armada-display-subsystem";
> > > +               memory-region = <&display_reserved>;
> > > +               ports = <&lcd0_port>;
> >
> > If there is only one device, you don't need this virtual node.
>
> Before I follow up on this and submit a version without the virtual
> node, I'm wondering: is it okay that the bindings for the LCDC and the
> framebuffer are in the same file, or would it be preferrable if they
> were separate? Both styles seem to be used for the display bindings.

framebuffer as in the kernel fbdev? Really, that should be the same
binding. It's the same h/w after all. However, there have been cases
where things deviated. So I don't have a good answer.

Rob

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 4/6] dt-bindings: display: armada: Add display subsystem binding
  2019-02-22 20:23       ` Rob Herring
@ 2019-02-24 16:15         ` Lubomir Rintel
  2019-03-04 17:35             ` Rob Herring
  0 siblings, 1 reply; 23+ messages in thread
From: Lubomir Rintel @ 2019-02-24 16:15 UTC (permalink / raw)
  To: Rob Herring
  Cc: Mark Rutland, Russell King, dri-devel, devicetree, linux-kernel

On Fri, 2019-02-22 at 14:23 -0600, Rob Herring wrote:
> On Wed, Feb 13, 2019 at 4:37 PM Lubomir Rintel <lkundrak@v3.sk> wrote:
> > On Mon, 2019-01-21 at 09:35 -0600, Rob Herring wrote:
> > > On Sun, Jan 20, 2019 at 11:26 AM Lubomir Rintel <lkundrak@v3.sk> wrote:
> > > > The Marvell Armada DRM master device is a virtual device needed to list all
> > > > nodes that comprise the graphics subsystem.
> > > > 
> > > > Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
> > > > ---
> > > >  .../display/armada/marvell-armada-drm.txt     | 24 +++++++++++++++++++
> > > >  1 file changed, 24 insertions(+)
> > > > 
> > > > diff --git a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > > index de4cca9432c8..3dbfa8047f0b 100644
> > > > --- a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > > +++ b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > > @@ -1,3 +1,27 @@
> > > > +Marvell Armada DRM master device
> > > > +================================
> > > > +
> > > > +The Marvell Armada DRM master device is a virtual device needed to list all
> > > > +nodes that comprise the graphics subsystem.
> > > > +
> > > > +Required properties:
> > > > +
> > > > + - compatible: value should be "marvell,dove-display-subsystem",
> > > > +   "marvell,armada-display-subsystem"
> > > > + - ports: a list of phandles pointing to display interface ports of CRTC
> > > > +   devices
> > > > + - memory-region: phandle to a node describing memory to be used for the
> > > > +   framebuffer
> > > > +
> > > > +Example:
> > > > +
> > > > +       display-subsystem {
> > > > +               compatible = "marvell,dove-display-subsystem",
> > > > +                            "marvell,armada-display-subsystem";
> > > > +               memory-region = <&display_reserved>;
> > > > +               ports = <&lcd0_port>;
> > > 
> > > If there is only one device, you don't need this virtual node.
> > 
> > Before I follow up on this and submit a version without the virtual
> > node, I'm wondering: is it okay that the bindings for the LCDC and the
> > framebuffer are in the same file, or would it be preferrable if they
> > were separate? Both styles seem to be used for the display bindings.
> 
> framebuffer as in the kernel fbdev? Really, that should be the same
> binding. It's the same h/w after all. However, there have been cases
> where things deviated. So I don't have a good answer.

No, not the fbdev device, that one is managed by drmfb and is not
expressed in DT. I meant the reserved-memory node that sets aside
memory for the framebuffers.

See patch "[RFC 03/16] dt-bindings: display: armada: Add framebuffer
reserved-mem binding". Perhaps that part should even go to
Documentation/devicetree/bindings/reserved-memory/.

Lubo


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 4/6] dt-bindings: display: armada: Add display subsystem binding
  2019-02-24 16:15         ` Lubomir Rintel
@ 2019-03-04 17:35             ` Rob Herring
  0 siblings, 0 replies; 23+ messages in thread
From: Rob Herring @ 2019-03-04 17:35 UTC (permalink / raw)
  To: Lubomir Rintel
  Cc: Mark Rutland, Russell King, dri-devel, devicetree, linux-kernel

On Sun, Feb 24, 2019 at 10:15 AM Lubomir Rintel <lkundrak@v3.sk> wrote:
>
> On Fri, 2019-02-22 at 14:23 -0600, Rob Herring wrote:
> > On Wed, Feb 13, 2019 at 4:37 PM Lubomir Rintel <lkundrak@v3.sk> wrote:
> > > On Mon, 2019-01-21 at 09:35 -0600, Rob Herring wrote:
> > > > On Sun, Jan 20, 2019 at 11:26 AM Lubomir Rintel <lkundrak@v3.sk> wrote:
> > > > > The Marvell Armada DRM master device is a virtual device needed to list all
> > > > > nodes that comprise the graphics subsystem.
> > > > >
> > > > > Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
> > > > > ---
> > > > >  .../display/armada/marvell-armada-drm.txt     | 24 +++++++++++++++++++
> > > > >  1 file changed, 24 insertions(+)
> > > > >
> > > > > diff --git a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > > > index de4cca9432c8..3dbfa8047f0b 100644
> > > > > --- a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > > > +++ b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > > > @@ -1,3 +1,27 @@
> > > > > +Marvell Armada DRM master device
> > > > > +================================
> > > > > +
> > > > > +The Marvell Armada DRM master device is a virtual device needed to list all
> > > > > +nodes that comprise the graphics subsystem.
> > > > > +
> > > > > +Required properties:
> > > > > +
> > > > > + - compatible: value should be "marvell,dove-display-subsystem",
> > > > > +   "marvell,armada-display-subsystem"
> > > > > + - ports: a list of phandles pointing to display interface ports of CRTC
> > > > > +   devices
> > > > > + - memory-region: phandle to a node describing memory to be used for the
> > > > > +   framebuffer
> > > > > +
> > > > > +Example:
> > > > > +
> > > > > +       display-subsystem {
> > > > > +               compatible = "marvell,dove-display-subsystem",
> > > > > +                            "marvell,armada-display-subsystem";
> > > > > +               memory-region = <&display_reserved>;
> > > > > +               ports = <&lcd0_port>;
> > > >
> > > > If there is only one device, you don't need this virtual node.
> > >
> > > Before I follow up on this and submit a version without the virtual
> > > node, I'm wondering: is it okay that the bindings for the LCDC and the
> > > framebuffer are in the same file, or would it be preferrable if they
> > > were separate? Both styles seem to be used for the display bindings.
> >
> > framebuffer as in the kernel fbdev? Really, that should be the same
> > binding. It's the same h/w after all. However, there have been cases
> > where things deviated. So I don't have a good answer.
>
> No, not the fbdev device, that one is managed by drmfb and is not
> expressed in DT. I meant the reserved-memory node that sets aside
> memory for the framebuffers.
>
> See patch "[RFC 03/16] dt-bindings: display: armada: Add framebuffer
> reserved-mem binding". Perhaps that part should even go to
> Documentation/devicetree/bindings/reserved-memory/.

Okay.

A separate file will be better and probably
Documentation/devicetree/bindings/reserved-memory/ is the best
location.

Rob

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 4/6] dt-bindings: display: armada: Add display subsystem binding
@ 2019-03-04 17:35             ` Rob Herring
  0 siblings, 0 replies; 23+ messages in thread
From: Rob Herring @ 2019-03-04 17:35 UTC (permalink / raw)
  To: Lubomir Rintel
  Cc: Mark Rutland, devicetree, Russell King, dri-devel, linux-kernel

On Sun, Feb 24, 2019 at 10:15 AM Lubomir Rintel <lkundrak@v3.sk> wrote:
>
> On Fri, 2019-02-22 at 14:23 -0600, Rob Herring wrote:
> > On Wed, Feb 13, 2019 at 4:37 PM Lubomir Rintel <lkundrak@v3.sk> wrote:
> > > On Mon, 2019-01-21 at 09:35 -0600, Rob Herring wrote:
> > > > On Sun, Jan 20, 2019 at 11:26 AM Lubomir Rintel <lkundrak@v3.sk> wrote:
> > > > > The Marvell Armada DRM master device is a virtual device needed to list all
> > > > > nodes that comprise the graphics subsystem.
> > > > >
> > > > > Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
> > > > > ---
> > > > >  .../display/armada/marvell-armada-drm.txt     | 24 +++++++++++++++++++
> > > > >  1 file changed, 24 insertions(+)
> > > > >
> > > > > diff --git a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > > > index de4cca9432c8..3dbfa8047f0b 100644
> > > > > --- a/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > > > +++ b/Documentation/devicetree/bindings/display/armada/marvell-armada-drm.txt
> > > > > @@ -1,3 +1,27 @@
> > > > > +Marvell Armada DRM master device
> > > > > +================================
> > > > > +
> > > > > +The Marvell Armada DRM master device is a virtual device needed to list all
> > > > > +nodes that comprise the graphics subsystem.
> > > > > +
> > > > > +Required properties:
> > > > > +
> > > > > + - compatible: value should be "marvell,dove-display-subsystem",
> > > > > +   "marvell,armada-display-subsystem"
> > > > > + - ports: a list of phandles pointing to display interface ports of CRTC
> > > > > +   devices
> > > > > + - memory-region: phandle to a node describing memory to be used for the
> > > > > +   framebuffer
> > > > > +
> > > > > +Example:
> > > > > +
> > > > > +       display-subsystem {
> > > > > +               compatible = "marvell,dove-display-subsystem",
> > > > > +                            "marvell,armada-display-subsystem";
> > > > > +               memory-region = <&display_reserved>;
> > > > > +               ports = <&lcd0_port>;
> > > >
> > > > If there is only one device, you don't need this virtual node.
> > >
> > > Before I follow up on this and submit a version without the virtual
> > > node, I'm wondering: is it okay that the bindings for the LCDC and the
> > > framebuffer are in the same file, or would it be preferrable if they
> > > were separate? Both styles seem to be used for the display bindings.
> >
> > framebuffer as in the kernel fbdev? Really, that should be the same
> > binding. It's the same h/w after all. However, there have been cases
> > where things deviated. So I don't have a good answer.
>
> No, not the fbdev device, that one is managed by drmfb and is not
> expressed in DT. I meant the reserved-memory node that sets aside
> memory for the framebuffers.
>
> See patch "[RFC 03/16] dt-bindings: display: armada: Add framebuffer
> reserved-mem binding". Perhaps that part should even go to
> Documentation/devicetree/bindings/reserved-memory/.

Okay.

A separate file will be better and probably
Documentation/devicetree/bindings/reserved-memory/ is the best
location.

Rob
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2019-03-04 17:35 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-20 17:25 [PATCH 0/6] Bindings for Armada display subsystem Lubomir Rintel
2019-01-20 17:25 ` [PATCH 1/6] dt-bindings: display: armada: Rename the binding doc file Lubomir Rintel
2019-01-20 17:25 ` [PATCH 2/6] dt-bindings: display: armada: Improve the LCDC documentation Lubomir Rintel
2019-01-20 17:25 ` [PATCH 3/6] dt-bindings: display: armada: Add framebuffer reserved-mem binding Lubomir Rintel
2019-01-20 17:25 ` [PATCH 4/6] dt-bindings: display: armada: Add display subsystem binding Lubomir Rintel
2019-01-21 15:35   ` Rob Herring
2019-01-21 15:46     ` Lubomir Rintel
2019-01-21 16:07       ` Rob Herring
2019-01-21 17:53         ` Russell King - ARM Linux admin
2019-01-21 20:45           ` Lubomir Rintel
2019-01-21 23:08             ` Russell King - ARM Linux admin
2019-01-21 23:08               ` Russell King - ARM Linux admin
2019-01-21 23:58           ` Rob Herring
2019-01-22 10:58             ` Russell King - ARM Linux admin
2019-01-22 10:58               ` Russell King - ARM Linux admin
2019-01-22 16:06               ` Rob Herring
2019-02-13 22:37     ` Lubomir Rintel
2019-02-22 20:23       ` Rob Herring
2019-02-24 16:15         ` Lubomir Rintel
2019-03-04 17:35           ` Rob Herring
2019-03-04 17:35             ` Rob Herring
2019-01-20 17:25 ` [PATCH 5/6] dt-bindings: display: armada: Add mmp2 compatible strings Lubomir Rintel
2019-01-20 17:25 ` [PATCH 6/6] dt-bindings: display: armada: Document bus-width property Lubomir Rintel

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.