[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <0eacd62e-40ff-476d-9f6b-d0db2aca4108@nxp.com>
Date: Tue, 9 Jul 2024 15:36:04 +0800
From: Liu Ying <victor.liu@....com>
To: Rob Herring <robh@...nel.org>
Cc: Krzysztof Kozlowski <krzk@...nel.org>, dri-devel@...ts.freedesktop.org,
devicetree@...r.kernel.org, imx@...ts.linux.dev,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
p.zabel@...gutronix.de, airlied@...il.com, daniel@...ll.ch,
maarten.lankhorst@...ux.intel.com, mripard@...nel.org, tzimmermann@...e.de,
krzk+dt@...nel.org, conor+dt@...nel.org, shawnguo@...nel.org,
s.hauer@...gutronix.de, kernel@...gutronix.de, festevam@...il.com,
tglx@...utronix.de
Subject: Re: [PATCH 01/10] dt-bindings: display: imx: Add some i.MX8qxp
Display Controller processing units
On 07/09/2024, Rob Herring wrote:
> On Mon, Jul 08, 2024 at 02:30:37PM +0800, Liu Ying wrote:
>> On 07/07/2024, Krzysztof Kozlowski wrote:
>>> On 05/07/2024 11:09, Liu Ying wrote:
>>>> 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.
>>>
>>>
>>>> +maintainers:
>>>> + - Liu Ying <victor.liu@....com>
>>>> +
>>>> +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.
>
>> 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
Powered by blists - more mailing lists