Linux kernel and device drivers for NXP i.MX platforms
 help / color / mirror / Atom feed
From: Liu Ying <victor.liu@nxp.com>
To: Rob Herring <robh@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>,
	dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org,
	imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, p.zabel@pengutronix.de,
	airlied@gmail.com, daniel@ffwll.ch,
	maarten.lankhorst@linux.intel.com, mripard@kernel.org,
	tzimmermann@suse.de, krzk+dt@kernel.org, conor+dt@kernel.org,
	shawnguo@kernel.org, s.hauer@pengutronix.de,
	kernel@pengutronix.de, festevam@gmail.com, tglx@linutronix.de
Subject: Re: [PATCH 01/10] dt-bindings: display: imx: Add some i.MX8qxp Display Controller processing units
Date: Tue, 9 Jul 2024 15:36:04 +0800	[thread overview]
Message-ID: <0eacd62e-40ff-476d-9f6b-d0db2aca4108@nxp.com> (raw)
In-Reply-To: <20240708200431.GA3492466-robh@kernel.org>

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@nxp.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


  reply	other threads:[~2024-07-09  7:35 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-05  9:09 [PATCH 00/10] Add Freescale i.MX8qxp Display Controller support Liu Ying
2024-07-05  9:09 ` [PATCH 01/10] dt-bindings: display: imx: Add some i.MX8qxp Display Controller processing units Liu Ying
2024-07-07 13:58   ` Krzysztof Kozlowski
2024-07-08  6:30     ` Liu Ying
2024-07-08 20:04       ` Rob Herring
2024-07-09  7:36         ` Liu Ying [this message]
2024-07-05  9:09 ` [PATCH 02/10] dt-bindings: display: imx: Add i.MX8qxp Display Controller display engine Liu Ying
2024-07-07 13:59   ` Krzysztof Kozlowski
2024-07-08  6:40     ` Liu Ying
2024-07-08 14:04       ` Krzysztof Kozlowski
2024-07-08 14:52         ` Maxime Ripard
2024-07-09  6:50           ` Krzysztof Kozlowski
2024-07-18 15:53             ` Maxime Ripard
2024-07-05  9:09 ` [PATCH 03/10] dt-bindings: display: imx: Add i.MX8qxp Display Controller pixel engine Liu Ying
2024-07-07 14:02   ` Krzysztof Kozlowski
2024-07-08  6:47     ` Liu Ying
2024-07-08 14:05       ` Krzysztof Kozlowski
2024-07-09  6:50         ` Liu Ying
2024-07-05  9:09 ` [PATCH 04/10] dt-bindings: interrupt-controller: Add i.MX8qxp Display Controller interrupt controller Liu Ying
2024-07-07 14:01   ` Krzysztof Kozlowski
2024-07-08  6:51     ` Liu Ying
2024-07-08 14:09       ` Krzysztof Kozlowski
2024-07-09  7:05         ` Liu Ying
2024-07-05  9:09 ` [PATCH 05/10] dt-bindings: display: imx: Add i.MX8qxp Display Controller Liu Ying
2024-07-07 14:03   ` Krzysztof Kozlowski
2024-07-08  7:01     ` Liu Ying
2024-07-05  9:09 ` [PATCH 06/10] drm/imx: Add i.MX8qxp Display Controller display engine Liu Ying
2024-07-05  9:09 ` [PATCH 07/10] drm/imx: Add i.MX8qxp Display Controller pixel engine Liu Ying
2024-07-05  9:09 ` [PATCH 08/10] drm/imx: Add i.MX8qxp Display Controller interrupt controller Liu Ying
2024-07-05  9:09 ` [PATCH 09/10] drm/imx: Add i.MX8qxp Display Controller KMS Liu Ying
2024-07-07 19:16   ` Markus Elfring
2024-07-08  6:21     ` Liu Ying
2024-07-08  7:09       ` [09/10] " Markus Elfring
2024-07-08  7:33         ` Krzysztof Kozlowski
2024-07-05  9:09 ` [PATCH 10/10] MAINTAINERS: Add maintainer for i.MX8qxp Display Controller Liu Ying
2024-07-05 19:02   ` Frank Li
2024-07-08  6:14     ` Liu Ying
2024-07-05 12:57 ` [PATCH 00/10] Add Freescale i.MX8qxp Display Controller support Francesco Dolcini
2024-07-08  7:03   ` Liu Ying

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0eacd62e-40ff-476d-9f6b-d0db2aca4108@nxp.com \
    --to=victor.liu@nxp.com \
    --cc=airlied@gmail.com \
    --cc=conor+dt@kernel.org \
    --cc=daniel@ffwll.ch \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=festevam@gmail.com \
    --cc=imx@lists.linux.dev \
    --cc=kernel@pengutronix.de \
    --cc=krzk+dt@kernel.org \
    --cc=krzk@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=mripard@kernel.org \
    --cc=p.zabel@pengutronix.de \
    --cc=robh@kernel.org \
    --cc=s.hauer@pengutronix.de \
    --cc=shawnguo@kernel.org \
    --cc=tglx@linutronix.de \
    --cc=tzimmermann@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox