From: Sui Jingfeng <sui.jingfeng@linux.dev>
To: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Cc: Liu Ying <victor.liu@nxp.com>,
dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org,
imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-phy@lists.infradead.org,
p.zabel@pengutronix.de, airlied@gmail.com, daniel@ffwll.ch,
maarten.lankhorst@linux.intel.com, mripard@kernel.org,
tzimmermann@suse.de, robh@kernel.org, krzk+dt@kernel.org,
conor+dt@kernel.org, shawnguo@kernel.org, s.hauer@pengutronix.de,
kernel@pengutronix.de, festevam@gmail.com, tglx@linutronix.de,
vkoul@kernel.org, kishon@kernel.org, aisheng.dong@nxp.com,
agx@sigxcpu.org, francesco@dolcini.it, frank.li@nxp.com
Subject: Re: [PATCH v3 00/19] Add Freescale i.MX8qxp Display Controller support
Date: Sun, 28 Jul 2024 05:38:37 +0800 [thread overview]
Message-ID: <8014238b-2668-4602-add1-64a0c6e480ad@linux.dev> (raw)
In-Reply-To: <zr2t6deyvwacawj7s36gols2vxu24fah25x6ofy7xpqyvc4s2d@luavybrlxpaf>
Hi,
On 7/28/24 04:28, Dmitry Baryshkov wrote:
> On Sun, Jul 28, 2024 at 03:10:21AM GMT, Sui Jingfeng wrote:
>> Hi,
>>
>> On 7/28/24 00:39, Dmitry Baryshkov wrote:
>>>> Hi,
>>>>
>>>> This patch series aims to add Freescale i.MX8qxp Display Controller support.
>>>>
>>>> The controller is comprised of three main components that include a blit
>>>> engine for 2D graphics accelerations, display controller for display output
>>>> processing, as well as a command sequencer.
>>>>
>>>> Previous patch series attempts to do that can be found at:
>>>> https://patchwork.freedesktop.org/series/84524/
>>>>
>>>> This series addresses Maxime's comments on the previous one:
>>>> a. Split the display controller into multiple internal devices.
>>>> 1) List display engine, pixel engine, interrupt controller and more as the
>>>> controller's child devices.
>>>> 2) List display engine and pixel engine's processing units as their child
>>>> devices.
>>>>
>>>> b. Add minimal feature support.
>>>> Only support two display pipelines with primary planes with XR24 fb,
>>>> backed by two fetchunits. No fetchunit dynamic allocation logic(to be done
>>>> when necessary).
>>>>
>>>> c. Use drm_dev_{enter, exit}().
>>>>
>>>> Since this series changes a lot comparing to the previous one, I choose to
>>>> send it with a new patch series, not a new version.
>>> I'm sorry, I have started reviewing v2 without noticing that there is a
>>> v3 already.
>>>
>>> Let me summarize my comments:
>>>
>>> - You are using OF aliases. Are they documented and acked by DT
>>> maintainers?
>>>
>>> - I generally feel that the use of so many small devices to declare
>>> functional blocks is an abuse of the DT. Please consider creating
>>> _small_ units from the driver code directly rather than going throught
>>> the components.
>>
>> Well, I really don't think so. I don't agree.
>>
>> I have checked the DTSpec[1] before type, the spec isn't define how
>> many is considered to be "many", and the spec isn't define to what
>> extent is think to be "small" as well.
>
> Yeah. However _usually_ we are not defining DT devices for sub-device
> components.
I guess, this depended on their hardware (i.MX8qxp) layout, reflecting
exactly what their hardware's layout is perfectly valid. It also depend
on if specific part of those sub-device will be re-visioned or not. If
only a small part of the whole is re-versioned in the future, we can
still re-using this same driver with slightly modify(update) the DTS.
The point is to controll the granularity and forward compatibility.
> So at least such decisions ought to be described and
> explained in the cover letter.
Agree, but I see 08/19 patch has a beautiful schematic. I have learned
a lot when reading it. I can't see any abuse of the DT through this
bulk series anyway.
Comments below are not revelant to Ying's patch series itself.
/*----------------------------------------------------------------*/
By the way, the last time that I have ever seen and feel abuse of the
DT is the aux-bridge.c[1] and aux-hpd-bridge.c[2]. I strongly feel that
those two *small* programs are abuses to the DT and possibily abuse to
the auxiliary bus framework.
1) It's so *small* that it don't even have a hardware entity (physical
device) to corresponding with. As far as I can see, all hardware
units in this patch series are bigger than yours. Because your HPD
bridge is basically a "virtual wire".
An non-physical-exist wire hold reference to several device node,
this is the most awful abuse to the DT I have ever seen. In other
words, despite you want to solve some software problems, but then,
you could put a device not in the DTS, and let the 'OF' system
create a device for you. Just like what this series do.
2) I feel your HPD fake bridge driver abuse to the philosophy of
auxiliary bus [3]. The document of auxiliary bus tell us that
"These individual devices split from the core cannot live on
the platform bus as they are not physical devices that are
controlled by DT/ACPI"
Which is nearly equivalent to say that devices that are controlled
by DT/ACPI have better ways to enforce the control. When using
auxiliary bus, we *generally* should not messed with DT. See
golden examples[4][5]. At least, their code are able to run on
X86, while the code you write just can't.
[0] https://patchwork.freedesktop.org/patch/605555/?series=135786&rev=3
[1]
https://elixir.bootlin.com/linux/v6.10.2/source/drivers/gpu/drm/bridge/aux-bridge.c
[2]
https://elixir.bootlin.com/linux/v6.10.2/source/drivers/gpu/drm/bridge/aux-hpd-bridge.c
[3] https://www.kernel.org/doc/html/latest/driver-api/auxiliary_bus.html
[4] https://patchwork.freedesktop.org/series/136431/
[5] https://patchwork.freedesktop.org/series/134837/
Best regards
Sui
>>
>> [1]
>> https://github.com/devicetree-org/devicetree-specification/releases/tag/v0.4
>
--
Best regards
Sui
next prev parent reply other threads:[~2024-07-27 21:38 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-24 9:29 [PATCH v3 00/19] Add Freescale i.MX8qxp Display Controller support Liu Ying
2024-07-24 9:29 ` [PATCH v3 01/19] dt-bindings: display: imx: Add i.MX8qxp Display Controller processing units Liu Ying
2024-08-16 22:43 ` Rob Herring
2024-07-24 9:29 ` [PATCH v3 02/19] dt-bindings: display: imx: Add i.MX8qxp Display Controller blit engine Liu Ying
2024-08-16 22:45 ` Rob Herring
2024-07-24 9:29 ` [PATCH v3 03/19] dt-bindings: display: imx: Add i.MX8qxp Display Controller display engine Liu Ying
2024-08-16 22:40 ` Rob Herring
2024-07-24 9:29 ` [PATCH v3 04/19] dt-bindings: display: imx: Add i.MX8qxp Display Controller pixel engine Liu Ying
2024-08-16 22:39 ` Rob Herring
2024-07-24 9:29 ` [PATCH v3 05/19] dt-bindings: display: imx: Add i.MX8qxp Display Controller AXI performance counter Liu Ying
2024-08-16 22:38 ` Rob Herring
2024-07-24 9:29 ` [PATCH v3 06/19] dt-bindings: display: imx: Add i.MX8qxp Display Controller command sequencer Liu Ying
2024-08-16 22:37 ` Rob Herring
2024-08-19 7:37 ` Liu Ying
2024-07-24 9:29 ` [PATCH v3 07/19] dt-bindings: interrupt-controller: Add i.MX8qxp Display Controller interrupt controller Liu Ying
2024-07-24 9:29 ` [PATCH v3 08/19] dt-bindings: display: imx: Add i.MX8qxp Display Controller Liu Ying
2024-08-18 14:24 ` Rob Herring (Arm)
2024-07-24 9:29 ` [PATCH v3 09/19] drm/imx: Add i.MX8qxp Display Controller display engine Liu Ying
2024-07-24 9:29 ` [PATCH v3 10/19] drm/imx: Add i.MX8qxp Display Controller pixel engine Liu Ying
2024-07-24 9:29 ` [PATCH v3 11/19] drm/imx: Add i.MX8qxp Display Controller interrupt controller Liu Ying
2024-07-24 9:29 ` [PATCH v3 12/19] drm/imx: Add i.MX8qxp Display Controller KMS Liu Ying
2024-07-24 9:29 ` [PATCH v3 13/19] MAINTAINERS: Add maintainer for i.MX8qxp Display Controller Liu Ying
2024-07-24 9:29 ` [DO NOT MERGE PATCH v3 14/19] dt-bindings: phy: mixel,mipi-dsi-phy: Allow assigned-clock* properties Liu Ying
2024-07-24 9:29 ` [DO NOT MERGE PATCH v3 15/19] dt-bindings: firmware: imx: Add SCU controlled display pixel link nodes Liu Ying
2024-07-24 9:29 ` [DO NOT MERGE PATCH v3 16/19] arm64: dts: imx8qxp: Add display controller subsystem Liu Ying
2024-07-24 9:29 ` [DO NOT MERGE PATCH v3 17/19] arm64: dts: imx8qxp: Add MIPI-LVDS combo subsystems Liu Ying
2024-07-24 9:29 ` [DO NOT MERGE PATCH v3 18/19] arm64: dts: imx8qxp-mek: Enable display controller Liu Ying
2024-07-24 9:29 ` [DO NOT MERGE PATCH v3 19/19] arm64: dts: imx8qxp-mek: Add MX8-DLVDS-LCD1 display module support Liu Ying
2024-07-27 16:39 ` [PATCH v3 00/19] Add Freescale i.MX8qxp Display Controller support Dmitry Baryshkov
2024-07-27 19:10 ` Sui Jingfeng
2024-07-27 20:28 ` Dmitry Baryshkov
2024-07-27 21:38 ` Sui Jingfeng [this message]
2024-07-27 22:08 ` Dmitry Baryshkov
2024-07-30 8:42 ` 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=8014238b-2668-4602-add1-64a0c6e480ad@linux.dev \
--to=sui.jingfeng@linux.dev \
--cc=agx@sigxcpu.org \
--cc=airlied@gmail.com \
--cc=aisheng.dong@nxp.com \
--cc=conor+dt@kernel.org \
--cc=daniel@ffwll.ch \
--cc=devicetree@vger.kernel.org \
--cc=dmitry.baryshkov@linaro.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=festevam@gmail.com \
--cc=francesco@dolcini.it \
--cc=frank.li@nxp.com \
--cc=imx@lists.linux.dev \
--cc=kernel@pengutronix.de \
--cc=kishon@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-phy@lists.infradead.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 \
--cc=victor.liu@nxp.com \
--cc=vkoul@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: 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;
as well as URLs for NNTP newsgroup(s).