Thread (39 messages) 39 messages, 7 authors, 2024-07-18

Re: [PATCH 01/10] dt-bindings: display: imx: Add some i.MX8qxp Display Controller processing units

From: Liu Ying <victor.liu@nxp.com>
Date: 2024-07-09 07:35:44
Also in: dri-devel, imx, linux-devicetree, lkml

On 07/09/2024, Rob Herring wrote:
On Mon, Jul 08, 2024 at 02:30:37PM +0800, Liu Ying wrote:
quoted
On 07/07/2024, Krzysztof Kozlowski wrote:
quoted
On 05/07/2024 11:09, Liu Ying wrote:
quoted
Freescale i.MX8qxp Display Controller is implemented as construction set of
building blocks with unified concept and standardized interfaces.

Document some processing units to support two display outputs.
quoted
+maintainers:
+  - Liu Ying [off-list ref]
+
+properties:
+  compatible:
+    const: fsl,imx8qxp-dc-tcon
+
+  reg:
+    maxItems: 1
+
+  fsl,dc-tc-id:
+    description: Timing Controller unit instance number
No instance numbering. This applies to your entire patchset.
Then, I'll call of_alias_get_id() from the drivers to get
instance number instead.
Ideally, no.
quoted
As i.MX8qm SoC embeds two Display Controllers, the alias
stem would contain the Display Controller instance
number, like "dc0-tcon" and "dc1-tcon".  Is this ok?
The format of aliases is fooN, so no. Aliases should also be generic 
rather than vendor specific.

If you need to describe the connection of components in the display 
pipeline, then use the graph binding.
I mentioned OF graph in the previous patch set discussion.

"
There are 50+ individual DPU internal units and 20+ unit types.
Do you really mean that each unit should be a separate device in
device tree and each unit type should have it's own compatible
string ? 


Almost all units have input/output ports to connect with each other.
Some units have multiple input/output options.
Should we use OF graph ports to tell the connections ?
"

https://lists.infradead.org/pipermail/linux-arm-kernel/2023-August/861811.html

I hope we don't end up using the graph binding, as there are too
many input/output options between processing units in the pixel engine,
e.g.,

"
Selection of the source for the sec input of the layerblend0 module
000000b - Unit layerblend0 input port sec is disabled
010100b - Unit layerblend0 input port sec is connected to output of unit fetchwarp2
010110b - Unit layerblend0 input port sec is connected to output of unit fetchdecode0
011000b - Unit layerblend0 input port sec is connected to output of unit fetchdecode1
011010b - Unit layerblend0 input port sec is connected to output of unit fetchlayer0
011011b - Unit layerblend0 input port sec is connected to output of unit matrix4
011100b - Unit layerblend0 input port sec is connected to output of unit hscaler4
011101b - Unit layerblend0 input port sec is connected to output of unit vscaler4
011110b - Unit layerblend0 input port sec is connected to output of unit matrix5
011111b - Unit layerblend0 input port sec is connected to output of unit hscaler5
100000b - Unit layerblend0 input port sec is connected to output of unit vscaler5

Selection of the source for the prim input of the layerblend0 module
000000b - Unit layerblend0 input port prim is disabled
000000b - Unit layerblend0 input port prim is connected to output of unit constframe1
001010b - Unit layerblend0 input port prim is connected to output of unit blitblend9
001100b - Unit layerblend0 input port prim is connected to output of unit constframe0
001110b - Unit layerblend0 input port prim is connected to output of unit constframe4
010010b - Unit layerblend0 input port prim is connected to output of unit constframe5
011011b - Unit layerblend0 input port prim is connected to output of unit matrix4
011100b - Unit layerblend0 input port prim is connected to output of unit hscaler4
011101b - Unit layerblend0 input port prim is connected to output of unit vscaler4
011110b - Unit layerblend0 input port prim is connected to output of unit matrix5
011111b - Unit layerblend0 input port prim is connected to output of unit hscaler5
100000b - Unit layerblend0 input port prim is connected to output of unit vscaler5
"

Also, Matrix, GammarCor and Dither in the display engine can be bypassed.
Matrix can be put at optional position(1 or 2).  Signature can be tapped
after FrameGen, GammaCor, Matrix or Dither.

FrameGen -> Matrix(1) -> GammaCor -> Maxtrix(2) -> Dither -> TCon

Aside from the alias approach, another idea is to specify the instance
number in compatible string, like "fsl,imx8qxp-dc-constframe5", no?
Rob
-- 
Regards,
Liu Ying

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help