* [PATCH v2] drm/bridge: Fix assignment of the of_node of the parent to aux bridge
@ 2024-10-18 12:49 Abel Vesa
2024-10-18 15:43 ` Dmitry Baryshkov
` (3 more replies)
0 siblings, 4 replies; 26+ messages in thread
From: Abel Vesa @ 2024-10-18 12:49 UTC (permalink / raw)
To: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter
Cc: Johan Hovold, Dmitry Baryshkov, dri-devel, linux-kernel, stable,
Abel Vesa
The assignment of the of_node to the aux bridge needs to mark the
of_node as reused as well, otherwise resource providers like pinctrl will
report a gpio as already requested by a different device when both pinconf
and gpios property are present.
Fix that by using the device_set_of_node_from_dev() helper instead.
Fixes: 6914968a0b52 ("drm/bridge: properly refcount DT nodes in aux bridge drivers")
Cc: stable@vger.kernel.org # 6.8
Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
---
Changes in v2:
- Re-worded commit to be more explicit of what it fixes, as Johan suggested
- Used device_set_of_node_from_dev() helper, as per Johan's suggestion
- Added Fixes tag and cc'ed stable
- Link to v1: https://lore.kernel.org/r/20241017-drm-aux-bridge-mark-of-node-reused-v1-1-7cd5702bb4f2@linaro.org
---
drivers/gpu/drm/bridge/aux-bridge.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/bridge/aux-bridge.c b/drivers/gpu/drm/bridge/aux-bridge.c
index b29980f95379ec7af873ed6e0fb79a9abb663c7b..295e9d031e2dc86cbfd2a7350718fca181c99487 100644
--- a/drivers/gpu/drm/bridge/aux-bridge.c
+++ b/drivers/gpu/drm/bridge/aux-bridge.c
@@ -58,9 +58,10 @@ int drm_aux_bridge_register(struct device *parent)
adev->id = ret;
adev->name = "aux_bridge";
adev->dev.parent = parent;
- adev->dev.of_node = of_node_get(parent->of_node);
adev->dev.release = drm_aux_bridge_release;
+ device_set_of_node_from_dev(&adev->dev, parent);
+
ret = auxiliary_device_init(adev);
if (ret) {
ida_free(&drm_aux_bridge_ida, adev->id);
---
base-commit: d61a00525464bfc5fe92c6ad713350988e492b88
change-id: 20241017-drm-aux-bridge-mark-of-node-reused-5c2ee740ff19
Best regards,
--
Abel Vesa <abel.vesa@linaro.org>
^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: [PATCH v2] drm/bridge: Fix assignment of the of_node of the parent to aux bridge
2024-10-18 12:49 [PATCH v2] drm/bridge: Fix assignment of the of_node of the parent to aux bridge Abel Vesa
@ 2024-10-18 15:43 ` Dmitry Baryshkov
2024-10-30 16:45 ` Sui Jingfeng
2024-10-21 7:12 ` Neil Armstrong
` (2 subsequent siblings)
3 siblings, 1 reply; 26+ messages in thread
From: Dmitry Baryshkov @ 2024-10-18 15:43 UTC (permalink / raw)
To: Abel Vesa
Cc: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Johan Hovold,
dri-devel, linux-kernel, stable
On Fri, Oct 18, 2024 at 03:49:34PM +0300, Abel Vesa wrote:
> The assignment of the of_node to the aux bridge needs to mark the
> of_node as reused as well, otherwise resource providers like pinctrl will
> report a gpio as already requested by a different device when both pinconf
> and gpios property are present.
> Fix that by using the device_set_of_node_from_dev() helper instead.
>
> Fixes: 6914968a0b52 ("drm/bridge: properly refcount DT nodes in aux bridge drivers")
> Cc: stable@vger.kernel.org # 6.8
> Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
> ---
> Changes in v2:
> - Re-worded commit to be more explicit of what it fixes, as Johan suggested
> - Used device_set_of_node_from_dev() helper, as per Johan's suggestion
> - Added Fixes tag and cc'ed stable
> - Link to v1: https://lore.kernel.org/r/20241017-drm-aux-bridge-mark-of-node-reused-v1-1-7cd5702bb4f2@linaro.org
> ---
> drivers/gpu/drm/bridge/aux-bridge.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2] drm/bridge: Fix assignment of the of_node of the parent to aux bridge
2024-10-18 12:49 [PATCH v2] drm/bridge: Fix assignment of the of_node of the parent to aux bridge Abel Vesa
2024-10-18 15:43 ` Dmitry Baryshkov
@ 2024-10-21 7:12 ` Neil Armstrong
2024-10-21 7:23 ` Johan Hovold
2024-10-21 13:08 ` Neil Armstrong
3 siblings, 0 replies; 26+ messages in thread
From: Neil Armstrong @ 2024-10-21 7:12 UTC (permalink / raw)
To: Abel Vesa, Andrzej Hajda, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter
Cc: Johan Hovold, Dmitry Baryshkov, dri-devel, linux-kernel, stable
On 18/10/2024 14:49, Abel Vesa wrote:
> The assignment of the of_node to the aux bridge needs to mark the
> of_node as reused as well, otherwise resource providers like pinctrl will
> report a gpio as already requested by a different device when both pinconf
> and gpios property are present.
> Fix that by using the device_set_of_node_from_dev() helper instead.
>
> Fixes: 6914968a0b52 ("drm/bridge: properly refcount DT nodes in aux bridge drivers")
> Cc: stable@vger.kernel.org # 6.8
> Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
> ---
> Changes in v2:
> - Re-worded commit to be more explicit of what it fixes, as Johan suggested
> - Used device_set_of_node_from_dev() helper, as per Johan's suggestion
> - Added Fixes tag and cc'ed stable
> - Link to v1: https://lore.kernel.org/r/20241017-drm-aux-bridge-mark-of-node-reused-v1-1-7cd5702bb4f2@linaro.org
> ---
> drivers/gpu/drm/bridge/aux-bridge.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/bridge/aux-bridge.c b/drivers/gpu/drm/bridge/aux-bridge.c
> index b29980f95379ec7af873ed6e0fb79a9abb663c7b..295e9d031e2dc86cbfd2a7350718fca181c99487 100644
> --- a/drivers/gpu/drm/bridge/aux-bridge.c
> +++ b/drivers/gpu/drm/bridge/aux-bridge.c
> @@ -58,9 +58,10 @@ int drm_aux_bridge_register(struct device *parent)
> adev->id = ret;
> adev->name = "aux_bridge";
> adev->dev.parent = parent;
> - adev->dev.of_node = of_node_get(parent->of_node);
> adev->dev.release = drm_aux_bridge_release;
>
> + device_set_of_node_from_dev(&adev->dev, parent);
> +
> ret = auxiliary_device_init(adev);
> if (ret) {
> ida_free(&drm_aux_bridge_ida, adev->id);
>
> ---
> base-commit: d61a00525464bfc5fe92c6ad713350988e492b88
> change-id: 20241017-drm-aux-bridge-mark-of-node-reused-5c2ee740ff19
>
> Best regards,
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2] drm/bridge: Fix assignment of the of_node of the parent to aux bridge
2024-10-18 12:49 [PATCH v2] drm/bridge: Fix assignment of the of_node of the parent to aux bridge Abel Vesa
2024-10-18 15:43 ` Dmitry Baryshkov
2024-10-21 7:12 ` Neil Armstrong
@ 2024-10-21 7:23 ` Johan Hovold
2024-10-31 14:05 ` Johan Hovold
2024-10-31 15:48 ` Dmitry Baryshkov
2024-10-21 13:08 ` Neil Armstrong
3 siblings, 2 replies; 26+ messages in thread
From: Johan Hovold @ 2024-10-21 7:23 UTC (permalink / raw)
To: Abel Vesa
Cc: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Dmitry Baryshkov,
dri-devel, linux-kernel, stable
On Fri, Oct 18, 2024 at 03:49:34PM +0300, Abel Vesa wrote:
> The assignment of the of_node to the aux bridge needs to mark the
> of_node as reused as well, otherwise resource providers like pinctrl will
> report a gpio as already requested by a different device when both pinconf
> and gpios property are present.
I don't think you need a gpio property for that to happen, right? And
this causes probe to fail IIRC?
> Fix that by using the device_set_of_node_from_dev() helper instead.
>
> Fixes: 6914968a0b52 ("drm/bridge: properly refcount DT nodes in aux bridge drivers")
This is not the commit that introduced the issue.
> Cc: stable@vger.kernel.org # 6.8
I assume there are no existing devicetrees that need this since then we
would have heard about it sooner. Do we still need to backport it?
When exactly are you hitting this?
> Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
> ---
> Changes in v2:
> - Re-worded commit to be more explicit of what it fixes, as Johan suggested
> - Used device_set_of_node_from_dev() helper, as per Johan's suggestion
> - Added Fixes tag and cc'ed stable
> - Link to v1: https://lore.kernel.org/r/20241017-drm-aux-bridge-mark-of-node-reused-v1-1-7cd5702bb4f2@linaro.org
Patch itself looks good now.
Johan
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2] drm/bridge: Fix assignment of the of_node of the parent to aux bridge
2024-10-18 12:49 [PATCH v2] drm/bridge: Fix assignment of the of_node of the parent to aux bridge Abel Vesa
` (2 preceding siblings ...)
2024-10-21 7:23 ` Johan Hovold
@ 2024-10-21 13:08 ` Neil Armstrong
2024-10-30 14:49 ` Sui Jingfeng
3 siblings, 1 reply; 26+ messages in thread
From: Neil Armstrong @ 2024-10-21 13:08 UTC (permalink / raw)
To: Andrzej Hajda, Robert Foss, Laurent Pinchart, Jonas Karlman,
Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Abel Vesa
Cc: Johan Hovold, Dmitry Baryshkov, dri-devel, linux-kernel, stable
Hi,
On Fri, 18 Oct 2024 15:49:34 +0300, Abel Vesa wrote:
> The assignment of the of_node to the aux bridge needs to mark the
> of_node as reused as well, otherwise resource providers like pinctrl will
> report a gpio as already requested by a different device when both pinconf
> and gpios property are present.
> Fix that by using the device_set_of_node_from_dev() helper instead.
>
>
> [...]
Thanks, Applied to https://gitlab.freedesktop.org/drm/misc/kernel.git (drm-misc-fixes)
[1/1] drm/bridge: Fix assignment of the of_node of the parent to aux bridge
https://gitlab.freedesktop.org/drm/misc/kernel/-/commit/85e444a68126a631221ae32c63fce882bb18a262
--
Neil
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2] drm/bridge: Fix assignment of the of_node of the parent to aux bridge
2024-10-21 13:08 ` Neil Armstrong
@ 2024-10-30 14:49 ` Sui Jingfeng
2024-10-31 12:31 ` Neil Armstrong
0 siblings, 1 reply; 26+ messages in thread
From: Sui Jingfeng @ 2024-10-30 14:49 UTC (permalink / raw)
To: Neil Armstrong, Andrzej Hajda, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Abel Vesa
Cc: Johan Hovold, Dmitry Baryshkov, dri-devel, linux-kernel, stable
Hi,
On 2024/10/21 21:08, Neil Armstrong wrote:
> Hi,
>
> On Fri, 18 Oct 2024 15:49:34 +0300, Abel Vesa wrote:
>> The assignment of the of_node to the aux bridge needs to mark the
>> of_node as reused as well, otherwise resource providers like pinctrl will
>> report a gpio as already requested by a different device when both pinconf
>> and gpios property are present.
>> Fix that by using the device_set_of_node_from_dev() helper instead.
>>
>>
>> [...]
> Thanks, Applied to https://gitlab.freedesktop.org/drm/misc/kernel.git (drm-misc-fixes)
It's quite impolite to force push patches that still under reviewing,
this prevent us to know what exactly its solves.
This also prevent us from finding a better solution.
> [1/1] drm/bridge: Fix assignment of the of_node of the parent to aux bridge
> https://gitlab.freedesktop.org/drm/misc/kernel/-/commit/85e444a68126a631221ae32c63fce882bb18a262
>
--
Best regards,
Sui
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2] drm/bridge: Fix assignment of the of_node of the parent to aux bridge
2024-10-18 15:43 ` Dmitry Baryshkov
@ 2024-10-30 16:45 ` Sui Jingfeng
2024-10-30 19:39 ` Laurent Pinchart
2024-10-31 12:29 ` Neil Armstrong
0 siblings, 2 replies; 26+ messages in thread
From: Sui Jingfeng @ 2024-10-30 16:45 UTC (permalink / raw)
To: Dmitry Baryshkov, Abel Vesa
Cc: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Johan Hovold,
dri-devel, linux-kernel, stable
Hi,
On 2024/10/18 23:43, Dmitry Baryshkov wrote:
> On Fri, Oct 18, 2024 at 03:49:34PM +0300, Abel Vesa wrote:
>> The assignment of the of_node to the aux bridge needs to mark the
>> of_node as reused as well, otherwise resource providers like pinctrl will
>> report a gpio as already requested by a different device when both pinconf
>> and gpios property are present.
>> Fix that by using the device_set_of_node_from_dev() helper instead.
>>
>> Fixes: 6914968a0b52 ("drm/bridge: properly refcount DT nodes in aux bridge drivers")
>> Cc: stable@vger.kernel.org # 6.8
>> Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
>> Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
>> ---
>> Changes in v2:
>> - Re-worded commit to be more explicit of what it fixes, as Johan suggested
>> - Used device_set_of_node_from_dev() helper, as per Johan's suggestion
>> - Added Fixes tag and cc'ed stable
>> - Link to v1: https://lore.kernel.org/r/20241017-drm-aux-bridge-mark-of-node-reused-v1-1-7cd5702bb4f2@linaro.org
>> ---
>> drivers/gpu/drm/bridge/aux-bridge.c | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Technically speaking, your driver just move the burden to its caller.
Because this driver requires its user call drm_aux_bridge_register()
to create an AUX child device manually, you need it call ida_alloc()
to generate a unique id.
Functions symbols still have to leak to other subsystems, which is
not really preserve coding sharing.
What's worse, the action that allocating unique device id traditionally
is the duty of driver core. Why breaks (so called) perfect device driver
model by moving that out of core. Especially in the DT world that the
core knows very well how to populate device instance and manage the
reference counter.
HPD handling is traditionally belongs to connector, create standalone
driver like this one *abuse* to both Maxime's simple bridge driver and
Laurent's display-connector bridge driver or drm_bridge_connector or
whatever. Why those work can't satisfy you? At least, their drivers
are able to passing the mode setting states to the next bridge.
Basically those AUX drivers implementation abusing the definition of
bridge, abusing the definition of connector and abusing the DT.
Its just manually populate instances across drivers.
--
Best regards,
Sui
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2] drm/bridge: Fix assignment of the of_node of the parent to aux bridge
2024-10-30 16:45 ` Sui Jingfeng
@ 2024-10-30 19:39 ` Laurent Pinchart
2024-10-31 12:29 ` Neil Armstrong
1 sibling, 0 replies; 26+ messages in thread
From: Laurent Pinchart @ 2024-10-30 19:39 UTC (permalink / raw)
To: Sui Jingfeng
Cc: Dmitry Baryshkov, Abel Vesa, Andrzej Hajda, Neil Armstrong,
Robert Foss, Jonas Karlman, Jernej Skrabec, Maarten Lankhorst,
Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter,
Johan Hovold, dri-devel, linux-kernel, stable
On Thu, Oct 31, 2024 at 12:45:24AM +0800, Sui Jingfeng wrote:
> Hi,
>
> On 2024/10/18 23:43, Dmitry Baryshkov wrote:
> > On Fri, Oct 18, 2024 at 03:49:34PM +0300, Abel Vesa wrote:
> >> The assignment of the of_node to the aux bridge needs to mark the
> >> of_node as reused as well, otherwise resource providers like pinctrl will
> >> report a gpio as already requested by a different device when both pinconf
> >> and gpios property are present.
> >> Fix that by using the device_set_of_node_from_dev() helper instead.
> >>
> >> Fixes: 6914968a0b52 ("drm/bridge: properly refcount DT nodes in aux bridge drivers")
> >> Cc: stable@vger.kernel.org # 6.8
> >> Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> >> Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
> >> ---
> >> Changes in v2:
> >> - Re-worded commit to be more explicit of what it fixes, as Johan suggested
> >> - Used device_set_of_node_from_dev() helper, as per Johan's suggestion
> >> - Added Fixes tag and cc'ed stable
> >> - Link to v1: https://lore.kernel.org/r/20241017-drm-aux-bridge-mark-of-node-reused-v1-1-7cd5702bb4f2@linaro.org
> >> ---
> >> drivers/gpu/drm/bridge/aux-bridge.c | 3 ++-
> >> 1 file changed, 2 insertions(+), 1 deletion(-)
> >>
> > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
>
> Technically speaking, your driver just move the burden to its caller.
> Because this driver requires its user call drm_aux_bridge_register()
> to create an AUX child device manually, you need it call ida_alloc()
> to generate a unique id.
There's a relevant discussion for a ti-sn65dsi86 patch, see
https://lore.kernel.org/r/20241030102846.GB14276@pendragon.ideasonboard.com
I agree it shouldn't be the responsibility of each caller to generate
unique IDs.
> Functions symbols still have to leak to other subsystems, which is
> not really preserve coding sharing.
>
> What's worse, the action that allocating unique device id traditionally
> is the duty of driver core. Why breaks (so called) perfect device driver
> model by moving that out of core. Especially in the DT world that the
> core knows very well how to populate device instance and manage the
> reference counter.
>
> HPD handling is traditionally belongs to connector, create standalone
> driver like this one *abuse* to both Maxime's simple bridge driver and
> Laurent's display-connector bridge driver or drm_bridge_connector or
> whatever. Why those work can't satisfy you? At least, their drivers
> are able to passing the mode setting states to the next bridge.
>
> Basically those AUX drivers implementation abusing the definition of
> bridge, abusing the definition of connector and abusing the DT.
> Its just manually populate instances across drivers.
--
Regards,
Laurent Pinchart
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2] drm/bridge: Fix assignment of the of_node of the parent to aux bridge
2024-10-30 16:45 ` Sui Jingfeng
2024-10-30 19:39 ` Laurent Pinchart
@ 2024-10-31 12:29 ` Neil Armstrong
1 sibling, 0 replies; 26+ messages in thread
From: Neil Armstrong @ 2024-10-31 12:29 UTC (permalink / raw)
To: Sui Jingfeng, Dmitry Baryshkov, Abel Vesa
Cc: Andrzej Hajda, Robert Foss, Laurent Pinchart, Jonas Karlman,
Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Johan Hovold,
dri-devel, linux-kernel, stable
On 30/10/2024 17:45, Sui Jingfeng wrote:
> Hi,
>
> On 2024/10/18 23:43, Dmitry Baryshkov wrote:
>> On Fri, Oct 18, 2024 at 03:49:34PM +0300, Abel Vesa wrote:
>>> The assignment of the of_node to the aux bridge needs to mark the
>>> of_node as reused as well, otherwise resource providers like pinctrl will
>>> report a gpio as already requested by a different device when both pinconf
>>> and gpios property are present.
>>> Fix that by using the device_set_of_node_from_dev() helper instead.
>>>
>>> Fixes: 6914968a0b52 ("drm/bridge: properly refcount DT nodes in aux bridge drivers")
>>> Cc: stable@vger.kernel.org # 6.8
>>> Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
>>> Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
>>> ---
>>> Changes in v2:
>>> - Re-worded commit to be more explicit of what it fixes, as Johan suggested
>>> - Used device_set_of_node_from_dev() helper, as per Johan's suggestion
>>> - Added Fixes tag and cc'ed stable
>>> - Link to v1: https://lore.kernel.org/r/20241017-drm-aux-bridge-mark-of-node-reused-v1-1-7cd5702bb4f2@linaro.org
>>> ---
>>> drivers/gpu/drm/bridge/aux-bridge.c | 3 ++-
>>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
>
>
> Technically speaking, your driver just move the burden to its caller.
> Because this driver requires its user call drm_aux_bridge_register()
> to create an AUX child device manually, you need it call ida_alloc()
> to generate a unique id.
>
> Functions symbols still have to leak to other subsystems, which is
> not really preserve coding sharing.
???
>
> What's worse, the action that allocating unique device id traditionally
> is the duty of driver core. Why breaks (so called) perfect device driver
> model by moving that out of core. Especially in the DT world that the
> core knows very well how to populate device instance and manage the
> reference counter.
This has nothing to do with DT, auxiliary device is a nice way to actually
use the driver model to handle devices sub-functions without overloading
drivers. It's still young and we need to collectively solve some issues,
but it's now agreed auxiliary device helps designing multi-functions drivers.
>
> HPD handling is traditionally belongs to connector, create standalone
> driver like this one *abuse* to both Maxime's simple bridge driver and
> Laurent's display-connector bridge driver or drm_bridge_connector or
> whatever. Why those work can't satisfy you? At least, their drivers
> are able to passing the mode setting states to the next bridge.
HPD handling is now shared along all the bridges, because it corresponds
to a reality.
It simply takes in account complex uses-cases like Type-C Altmode where
we need to describe the connection between the DP controller and the
Type-C retimers/muxes and properly propagate HPD events to synchronize
all the chain.
>
> Basically those AUX drivers implementation abusing the definition of
> bridge, abusing the definition of connector and abusing the DT.
> Its just manually populate instances across drivers.
It abuses nothing, the DT representation of the full signal path
in the Type-C complex was required by DT bindings maintainers.
The fact we can describe an element of the Type-C Altmode DP
path is very handy, and we have the full control of the data
path unlike x86 platforms where all this handling is hidden in
closed firmwares.
If you have an issue with the aux-bridge design please open a separate
thread, because the actual patch has nothing to do with aux devices or DRM
bridge implementation.
Please do not respond to this thread except concerning this fix.
Neil
>
>
>
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2] drm/bridge: Fix assignment of the of_node of the parent to aux bridge
2024-10-30 14:49 ` Sui Jingfeng
@ 2024-10-31 12:31 ` Neil Armstrong
2024-10-31 14:02 ` Johan Hovold
` (2 more replies)
0 siblings, 3 replies; 26+ messages in thread
From: Neil Armstrong @ 2024-10-31 12:31 UTC (permalink / raw)
To: Sui Jingfeng, Andrzej Hajda, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Abel Vesa
Cc: Johan Hovold, Dmitry Baryshkov, dri-devel, linux-kernel, stable
On 30/10/2024 15:49, Sui Jingfeng wrote:
> Hi,
>
> On 2024/10/21 21:08, Neil Armstrong wrote:
>> Hi,
>>
>> On Fri, 18 Oct 2024 15:49:34 +0300, Abel Vesa wrote:
>>> The assignment of the of_node to the aux bridge needs to mark the
>>> of_node as reused as well, otherwise resource providers like pinctrl will
>>> report a gpio as already requested by a different device when both pinconf
>>> and gpios property are present.
>>> Fix that by using the device_set_of_node_from_dev() helper instead.
>>>
>>>
>>> [...]
>> Thanks, Applied to https://gitlab.freedesktop.org/drm/misc/kernel.git (drm-misc-fixes)
>
>
> It's quite impolite to force push patches that still under reviewing,
> this prevent us to know what exactly its solves.
It's quite explicit.
>
> This also prevent us from finding a better solution.
Better solution of ? This needed to be fixed and backported to stable,
if there's desire to redesign the driver, then it should be discussed in a separate thread.
>
>> [1/1] drm/bridge: Fix assignment of the of_node of the parent to aux bridge
>> https://gitlab.freedesktop.org/drm/misc/kernel/-/commit/85e444a68126a631221ae32c63fce882bb18a262
>>
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2] drm/bridge: Fix assignment of the of_node of the parent to aux bridge
2024-10-31 12:31 ` Neil Armstrong
@ 2024-10-31 14:02 ` Johan Hovold
2024-10-31 15:31 ` Sui Jingfeng
2024-10-31 15:06 ` Sui Jingfeng
2024-11-01 6:15 ` Sui Jingfeng
2 siblings, 1 reply; 26+ messages in thread
From: Johan Hovold @ 2024-10-31 14:02 UTC (permalink / raw)
To: Neil Armstrong
Cc: Sui Jingfeng, Andrzej Hajda, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Abel Vesa,
Dmitry Baryshkov, dri-devel, linux-kernel, stable
On Thu, Oct 31, 2024 at 01:31:47PM +0100, Neil Armstrong wrote:
> On 30/10/2024 15:49, Sui Jingfeng wrote:
> > On 2024/10/21 21:08, Neil Armstrong wrote:
> >> On Fri, 18 Oct 2024 15:49:34 +0300, Abel Vesa wrote:
> >>> The assignment of the of_node to the aux bridge needs to mark the
> >>> of_node as reused as well, otherwise resource providers like pinctrl will
> >>> report a gpio as already requested by a different device when both pinconf
> >>> and gpios property are present.
> >>> Fix that by using the device_set_of_node_from_dev() helper instead.
> >>>
> >>>
> >>> [...]
> >> Thanks, Applied to https://gitlab.freedesktop.org/drm/misc/kernel.git (drm-misc-fixes)
> >
> >
> > It's quite impolite to force push patches that still under reviewing,
> > this prevent us to know what exactly its solves.
>
> It's quite explicit.
It's still disrespectful and prevents reviewers' work from being
acknowledged as I told you off-list when you picked up the patch.
You said it would not happen again, and I had better things to do so I
let this one pass, but now it seems you insist that you did nothing
wrong here.
We do development in public and we should have had that discussion in
public, if only so that no one thinks I'm ok with this.
Johan
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2] drm/bridge: Fix assignment of the of_node of the parent to aux bridge
2024-10-21 7:23 ` Johan Hovold
@ 2024-10-31 14:05 ` Johan Hovold
2024-10-31 16:13 ` Abel Vesa
2024-10-31 15:48 ` Dmitry Baryshkov
1 sibling, 1 reply; 26+ messages in thread
From: Johan Hovold @ 2024-10-31 14:05 UTC (permalink / raw)
To: Abel Vesa
Cc: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Dmitry Baryshkov,
dri-devel, linux-kernel, stable
On Mon, Oct 21, 2024 at 09:23:24AM +0200, Johan Hovold wrote:
> On Fri, Oct 18, 2024 at 03:49:34PM +0300, Abel Vesa wrote:
> > The assignment of the of_node to the aux bridge needs to mark the
> > of_node as reused as well, otherwise resource providers like pinctrl will
> > report a gpio as already requested by a different device when both pinconf
> > and gpios property are present.
>
> I don't think you need a gpio property for that to happen, right? And
> this causes probe to fail IIRC?
>
> > Fix that by using the device_set_of_node_from_dev() helper instead.
> >
> > Fixes: 6914968a0b52 ("drm/bridge: properly refcount DT nodes in aux bridge drivers")
>
> This is not the commit that introduced the issue.
>
> > Cc: stable@vger.kernel.org # 6.8
>
> I assume there are no existing devicetrees that need this since then we
> would have heard about it sooner. Do we still need to backport it?
>
> When exactly are you hitting this?
Abel, even if Neil decided to give me the finger here, please answer the
above so that it's recorded in the archives at least.
Johan
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2] drm/bridge: Fix assignment of the of_node of the parent to aux bridge
2024-10-31 12:31 ` Neil Armstrong
2024-10-31 14:02 ` Johan Hovold
@ 2024-10-31 15:06 ` Sui Jingfeng
2024-10-31 16:23 ` Johan Hovold
2024-11-01 6:15 ` Sui Jingfeng
2 siblings, 1 reply; 26+ messages in thread
From: Sui Jingfeng @ 2024-10-31 15:06 UTC (permalink / raw)
To: neil.armstrong, Andrzej Hajda, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Abel Vesa
Cc: Johan Hovold, Dmitry Baryshkov, dri-devel, linux-kernel, stable
Hi, Dears maintainers
On 2024/10/31 20:31, Neil Armstrong wrote:
> On 30/10/2024 15:49, Sui Jingfeng wrote:
>> Hi,
>>
>> On 2024/10/21 21:08, Neil Armstrong wrote:
>>> Hi,
>>>
>>> On Fri, 18 Oct 2024 15:49:34 +0300, Abel Vesa wrote:
>>>> The assignment of the of_node to the aux bridge needs to mark the
>>>> of_node as reused as well, otherwise resource providers like
>>>> pinctrl will
>>>> report a gpio as already requested by a different device when both
>>>> pinconf
>>>> and gpios property are present.
>>>> Fix that by using the device_set_of_node_from_dev() helper instead.
>>>>
>>>>
>>>> [...]
>>> Thanks, Applied to
>>> https://gitlab.freedesktop.org/drm/misc/kernel.git (drm-misc-fixes)
>>
>>
>> It's quite impolite to force push patches that still under reviewing,
>> this prevent us to know what exactly its solves.
>
> It's quite explicit.
>
>>
>> This also prevent us from finding a better solution.
>
> Better solution of ? This needed to be fixed and backported to stable,
We were thinking about
1) if possible to add a proper DT binding for those drives.
Or alternatively, as Laurent pointed out that
2) Invent some extra techniques to move the idr allocation
procedure back to the AUX bus core. Make the core maintained
device ID happens can help to reduce some boilerplate.
And those really deserve yet an another deeper thinking? no?
> if there's desire to redesign the driver, then it should be discussed
> in a separate thread.
>
No, please don't misunderstanding. We are admire your work
and we both admit that this patch is a valid fix.
But I think Johan do need more times to understand what exactly
the real problem is. We do need times to investigate new method.
This bug can be a good chance to verify/test new ideas,
at the least, allow us to talk and to discussion.
>>
>>> [1/1] drm/bridge: Fix assignment of the of_node of the parent to aux
>>> bridge
>>> https://gitlab.freedesktop.org/drm/misc/kernel/-/commit/85e444a68126a631221ae32c63fce882bb18a262
>>>
>
--
Best regards,
Sui
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2] drm/bridge: Fix assignment of the of_node of the parent to aux bridge
2024-10-31 14:02 ` Johan Hovold
@ 2024-10-31 15:31 ` Sui Jingfeng
0 siblings, 0 replies; 26+ messages in thread
From: Sui Jingfeng @ 2024-10-31 15:31 UTC (permalink / raw)
To: Johan Hovold, Neil Armstrong
Cc: Andrzej Hajda, Robert Foss, Laurent Pinchart, Jonas Karlman,
Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Abel Vesa,
Dmitry Baryshkov, dri-devel, linux-kernel, stable
Hi,
On 2024/10/31 22:02, Johan Hovold wrote:
> On Thu, Oct 31, 2024 at 01:31:47PM +0100, Neil Armstrong wrote:
>> On 30/10/2024 15:49, Sui Jingfeng wrote:
>>> On 2024/10/21 21:08, Neil Armstrong wrote:
>>>> On Fri, 18 Oct 2024 15:49:34 +0300, Abel Vesa wrote:
>>>>> The assignment of the of_node to the aux bridge needs to mark the
>>>>> of_node as reused as well, otherwise resource providers like pinctrl will
>>>>> report a gpio as already requested by a different device when both pinconf
>>>>> and gpios property are present.
>>>>> Fix that by using the device_set_of_node_from_dev() helper instead.
>>>>>
>>>>>
>>>>> [...]
>>>> Thanks, Applied to https://gitlab.freedesktop.org/drm/misc/kernel.git (drm-misc-fixes)
>>>
>>> It's quite impolite to force push patches that still under reviewing,
>>> this prevent us to know what exactly its solves.
>> It's quite explicit.
> It's still disrespectful and prevents reviewers' work from being
> acknowledged as I told you off-list when you picked up the patch.
>
> You said it would not happen again, and I had better things to do so I
> let this one pass, but now it seems you insist that you did nothing
> wrong here.
>
> We do development in public and we should have had that discussion in
> public, if only so that no one thinks I'm ok with this.
Yeah, extremely correct, Johan!
While I am really don't know why a child device have to
share the referencing of the OF device node with its parent device?
Is possible to pass a child device node via the platform data to reference?
I means that, in DT systems, the child device can easily
have(find) its own device node to attached.
I'm imagining that it probably should be belong to the USB
connector device node or something like that.
Sorry, I'm confused. I understand that you also might be busy.
I think I probably should go back alone to think for a while.
> Johan
--
Best regards,
Sui
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2] drm/bridge: Fix assignment of the of_node of the parent to aux bridge
2024-10-21 7:23 ` Johan Hovold
2024-10-31 14:05 ` Johan Hovold
@ 2024-10-31 15:48 ` Dmitry Baryshkov
2024-10-31 16:26 ` Johan Hovold
1 sibling, 1 reply; 26+ messages in thread
From: Dmitry Baryshkov @ 2024-10-31 15:48 UTC (permalink / raw)
To: Johan Hovold
Cc: Abel Vesa, Andrzej Hajda, Neil Armstrong, Robert Foss,
Laurent Pinchart, Jonas Karlman, Jernej Skrabec,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, dri-devel, linux-kernel, stable
On Mon, 21 Oct 2024 at 10:23, Johan Hovold <johan@kernel.org> wrote:
>
> On Fri, Oct 18, 2024 at 03:49:34PM +0300, Abel Vesa wrote:
> > The assignment of the of_node to the aux bridge needs to mark the
> > of_node as reused as well, otherwise resource providers like pinctrl will
> > report a gpio as already requested by a different device when both pinconf
> > and gpios property are present.
>
> I don't think you need a gpio property for that to happen, right? And
> this causes probe to fail IIRC?
No, just having a pinctrl property in the bridge device is enough.
Without this fix when the aux subdevice is being bound to the driver,
the pinctrl_bind_pins() will attempt to bind pins, which are already
in use by the actual bridge device.
>
> > Fix that by using the device_set_of_node_from_dev() helper instead.
> >
> > Fixes: 6914968a0b52 ("drm/bridge: properly refcount DT nodes in aux bridge drivers")
>
> This is not the commit that introduced the issue.
>
> > Cc: stable@vger.kernel.org # 6.8
>
> I assume there are no existing devicetrees that need this since then we
> would have heard about it sooner. Do we still need to backport it?
>
> When exactly are you hitting this?
>
> > Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> > Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
> > ---
> > Changes in v2:
> > - Re-worded commit to be more explicit of what it fixes, as Johan suggested
> > - Used device_set_of_node_from_dev() helper, as per Johan's suggestion
> > - Added Fixes tag and cc'ed stable
> > - Link to v1: https://lore.kernel.org/r/20241017-drm-aux-bridge-mark-of-node-reused-v1-1-7cd5702bb4f2@linaro.org
>
> Patch itself looks good now.
>
> Johan
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2] drm/bridge: Fix assignment of the of_node of the parent to aux bridge
2024-10-31 14:05 ` Johan Hovold
@ 2024-10-31 16:13 ` Abel Vesa
2024-10-31 16:33 ` Johan Hovold
0 siblings, 1 reply; 26+ messages in thread
From: Abel Vesa @ 2024-10-31 16:13 UTC (permalink / raw)
To: Johan Hovold
Cc: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Dmitry Baryshkov,
dri-devel, linux-kernel, stable
On 24-10-31 15:05:52, Johan Hovold wrote:
> On Mon, Oct 21, 2024 at 09:23:24AM +0200, Johan Hovold wrote:
> > On Fri, Oct 18, 2024 at 03:49:34PM +0300, Abel Vesa wrote:
> > > The assignment of the of_node to the aux bridge needs to mark the
> > > of_node as reused as well, otherwise resource providers like pinctrl will
> > > report a gpio as already requested by a different device when both pinconf
> > > and gpios property are present.
> >
> > I don't think you need a gpio property for that to happen, right? And
> > this causes probe to fail IIRC?
Yes, I think this is actually because of the pinctrl property in the node,
so no gpio needed.
Yes, probe fails.
> >
> > > Fix that by using the device_set_of_node_from_dev() helper instead.
> > >
> > > Fixes: 6914968a0b52 ("drm/bridge: properly refcount DT nodes in aux bridge drivers")
> >
> > This is not the commit that introduced the issue.
The proper fixes tag here is actually:
Fixes: 2a04739139b2 ("drm/bridge: add transparent bridge helper")
> >
> > > Cc: stable@vger.kernel.org # 6.8
> >
> > I assume there are no existing devicetrees that need this since then we
> > would have heard about it sooner. Do we still need to backport it?
None of the DTs I managed to scan seem to have this problem.
Maybe backporting it is not worth it then.
> >
> > When exactly are you hitting this?
Here is one of the examples.
[ 5.768283] x1e80100-tlmm f100000.pinctrl: error -EINVAL: pin-185 (aux_bridge.aux_bridge.3)
[ 5.768289] x1e80100-tlmm f100000.pinctrl: error -EINVAL: could not request pin 185 (GPIO_185) from group gpio185 on device f100000.pinctrl
[ 5.768293] aux_bridge.aux_bridge aux_bridge.aux_bridge.3: Error applying setting, reverse things back
>
> Abel, even if Neil decided to give me the finger here, please answer the
> above so that it's recorded in the archives at least.
>
> Johan
>
Sorry for not replying in time before the patch was merge.
Abel.
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2] drm/bridge: Fix assignment of the of_node of the parent to aux bridge
2024-10-31 15:06 ` Sui Jingfeng
@ 2024-10-31 16:23 ` Johan Hovold
2024-11-01 3:49 ` Sui Jingfeng
0 siblings, 1 reply; 26+ messages in thread
From: Johan Hovold @ 2024-10-31 16:23 UTC (permalink / raw)
To: Sui Jingfeng
Cc: neil.armstrong, Andrzej Hajda, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Abel Vesa,
Dmitry Baryshkov, dri-devel, linux-kernel, stable
On Thu, Oct 31, 2024 at 11:06:38PM +0800, Sui Jingfeng wrote:
> But I think Johan do need more times to understand what exactly
> the real problem is. We do need times to investigate new method.
No, I know perfectly well what the (immediate) problem is here (I was
the one adding support for the of_node_reused flag some years back).
I just wanted to make sure that the commit message was correct and
complete before merging (and also to figure out whether this particular
patch needed to be backported).
Johan
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2] drm/bridge: Fix assignment of the of_node of the parent to aux bridge
2024-10-31 15:48 ` Dmitry Baryshkov
@ 2024-10-31 16:26 ` Johan Hovold
0 siblings, 0 replies; 26+ messages in thread
From: Johan Hovold @ 2024-10-31 16:26 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Abel Vesa, Andrzej Hajda, Neil Armstrong, Robert Foss,
Laurent Pinchart, Jonas Karlman, Jernej Skrabec,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, dri-devel, linux-kernel, stable
On Thu, Oct 31, 2024 at 05:48:24PM +0200, Dmitry Baryshkov wrote:
> On Mon, 21 Oct 2024 at 10:23, Johan Hovold <johan@kernel.org> wrote:
> >
> > On Fri, Oct 18, 2024 at 03:49:34PM +0300, Abel Vesa wrote:
> > > The assignment of the of_node to the aux bridge needs to mark the
> > > of_node as reused as well, otherwise resource providers like pinctrl will
> > > report a gpio as already requested by a different device when both pinconf
> > > and gpios property are present.
> >
> > I don't think you need a gpio property for that to happen, right? And
> > this causes probe to fail IIRC?
>
> No, just having a pinctrl property in the bridge device is enough.
> Without this fix when the aux subdevice is being bound to the driver,
> the pinctrl_bind_pins() will attempt to bind pins, which are already
> in use by the actual bridge device.
Right, and IIRC it then fails to probe as well. This is information that
should have been in the commit message.
Johan
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2] drm/bridge: Fix assignment of the of_node of the parent to aux bridge
2024-10-31 16:13 ` Abel Vesa
@ 2024-10-31 16:33 ` Johan Hovold
2024-11-01 9:49 ` Abel Vesa
0 siblings, 1 reply; 26+ messages in thread
From: Johan Hovold @ 2024-10-31 16:33 UTC (permalink / raw)
To: Abel Vesa
Cc: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Dmitry Baryshkov,
dri-devel, linux-kernel, stable
On Thu, Oct 31, 2024 at 06:13:45PM +0200, Abel Vesa wrote:
> On 24-10-31 15:05:52, Johan Hovold wrote:
> > On Mon, Oct 21, 2024 at 09:23:24AM +0200, Johan Hovold wrote:
> > > On Fri, Oct 18, 2024 at 03:49:34PM +0300, Abel Vesa wrote:
> > > > Cc: stable@vger.kernel.org # 6.8
>
> > > I assume there are no existing devicetrees that need this since then we
> > > would have heard about it sooner. Do we still need to backport it?
>
> None of the DTs I managed to scan seem to have this problem.
>
> Maybe backporting it is not worth it then.
Thanks for confirming. Which (new) driver and DT are you seeing this
with?
> > > When exactly are you hitting this?
>
> Here is one of the examples.
>
> [ 5.768283] x1e80100-tlmm f100000.pinctrl: error -EINVAL: pin-185 (aux_bridge.aux_bridge.3)
> [ 5.768289] x1e80100-tlmm f100000.pinctrl: error -EINVAL: could not request pin 185 (GPIO_185) from group gpio185 on device f100000.pinctrl
> [ 5.768293] aux_bridge.aux_bridge aux_bridge.aux_bridge.3: Error applying setting, reverse things back
I meant with which driver and DT you hit this with.
> > Abel, even if Neil decided to give me the finger here, please answer the
> > above so that it's recorded in the archives at least.
> Sorry for not replying in time before the patch was merge.
That's not your fault.
Johan
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2] drm/bridge: Fix assignment of the of_node of the parent to aux bridge
2024-10-31 16:23 ` Johan Hovold
@ 2024-11-01 3:49 ` Sui Jingfeng
2024-11-01 7:27 ` Johan Hovold
2024-11-01 9:20 ` Laurent Pinchart
0 siblings, 2 replies; 26+ messages in thread
From: Sui Jingfeng @ 2024-11-01 3:49 UTC (permalink / raw)
To: Johan Hovold
Cc: neil.armstrong, Andrzej Hajda, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Abel Vesa,
Dmitry Baryshkov, dri-devel, linux-kernel, stable
On 2024/11/1 00:23, Johan Hovold wrote:
> On Thu, Oct 31, 2024 at 11:06:38PM +0800, Sui Jingfeng wrote:
>
>> But I think Johan do need more times to understand what exactly
>> the real problem is. We do need times to investigate new method.
> No, I know perfectly well what the (immediate) problem is here (I was
> the one adding support for the of_node_reused flag some years back).
>
> I just wanted to make sure that the commit message was correct and
> complete before merging (and also to figure out whether this particular
> patch needed to be backported).
Well under such a design, having the child device sharing the 'OF' device
node with it parent device means that one parent device can *only*
create one AUX bridge child device.
Since If you create two or more child AUX bridge, *all* of them will
call devm_drm_of_get_bridge(&auxdev->dev, auxdev->dev.of_node, 0, 0),
then we will *contend* the same next bridge resource.
Because of the 'auxdev->dev.of_node' is same for all its instance.
While other display bridges seems don't has such limitations.
> Johan
--
Best regards,
Sui
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2] drm/bridge: Fix assignment of the of_node of the parent to aux bridge
2024-10-31 12:31 ` Neil Armstrong
2024-10-31 14:02 ` Johan Hovold
2024-10-31 15:06 ` Sui Jingfeng
@ 2024-11-01 6:15 ` Sui Jingfeng
2 siblings, 0 replies; 26+ messages in thread
From: Sui Jingfeng @ 2024-11-01 6:15 UTC (permalink / raw)
To: neil.armstrong, Andrzej Hajda, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Abel Vesa
Cc: Johan Hovold, Dmitry Baryshkov, dri-devel, linux-kernel, stable
On 2024/10/31 20:31, Neil Armstrong wrote:
> On 30/10/2024 15:49, Sui Jingfeng wrote:
>> Hi,
>>
>> On 2024/10/21 21:08, Neil Armstrong wrote:
>>> Hi,
>>>
>>> On Fri, 18 Oct 2024 15:49:34 +0300, Abel Vesa wrote:
>>>> The assignment of the of_node to the aux bridge needs to mark the
>>>> of_node as reused as well, otherwise resource providers like
>>>> pinctrl will
>>>> report a gpio as already requested by a different device when both
>>>> pinconf
>>>> and gpios property are present.
>>>> Fix that by using the device_set_of_node_from_dev() helper instead.
>>>>
>>>>
>>>> [...]
>>> Thanks, Applied to
>>> https://gitlab.freedesktop.org/drm/misc/kernel.git (drm-misc-fixes)
>>
>>
>> It's quite impolite to force push patches that still under reviewing,
>> this prevent us to know what exactly its solves.
>
> It's quite explicit.
>
Auxiliary bus emphasis on *compartmentalize*, layer, and distribute
domain-specific concerns via *Linux device-driver model*.
Reusing(or sharing) of_node by multiple devices proved that the two
subsystems are still tangled together somehow. Which is fundamentally
violate the philosophy of compartmentalization.
The way that driver operated is not via Linux device-driver model either,
lots of those kind things happens quite implicitly.
But I think beautiful things associated behind this might also be voided,
that's it.
>>
>> This also prevent us from finding a better solution.
>
> Better solution of ? This needed to be fixed and backported to stable,
> if there's desire to redesign the driver, then it should be discussed
> in a separate thread.
>
>>
>>> [1/1] drm/bridge: Fix assignment of the of_node of the parent to aux
>>> bridge
>>> https://gitlab.freedesktop.org/drm/misc/kernel/-/commit/85e444a68126a631221ae32c63fce882bb18a262
>>>
>
--
Best regards,
Sui
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2] drm/bridge: Fix assignment of the of_node of the parent to aux bridge
2024-11-01 3:49 ` Sui Jingfeng
@ 2024-11-01 7:27 ` Johan Hovold
2024-11-01 9:20 ` Laurent Pinchart
1 sibling, 0 replies; 26+ messages in thread
From: Johan Hovold @ 2024-11-01 7:27 UTC (permalink / raw)
To: Sui Jingfeng
Cc: neil.armstrong, Andrzej Hajda, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Abel Vesa,
Dmitry Baryshkov, dri-devel, linux-kernel, stable
On Fri, Nov 01, 2024 at 11:49:07AM +0800, Sui Jingfeng wrote:
> On 2024/11/1 00:23, Johan Hovold wrote:
> > On Thu, Oct 31, 2024 at 11:06:38PM +0800, Sui Jingfeng wrote:
> >
> >> But I think Johan do need more times to understand what exactly
> >> the real problem is. We do need times to investigate new method.
> > No, I know perfectly well what the (immediate) problem is here (I was
> > the one adding support for the of_node_reused flag some years back).
> >
> > I just wanted to make sure that the commit message was correct and
> > complete before merging (and also to figure out whether this particular
> > patch needed to be backported).
>
> Well under such a design, having the child device sharing the 'OF' device
> node with it parent device means that one parent device can *only*
> create one AUX bridge child device.
>
> Since If you create two or more child AUX bridge, *all* of them will
> call devm_drm_of_get_bridge(&auxdev->dev, auxdev->dev.of_node, 0, 0),
> then we will *contend* the same next bridge resource.
>
> Because of the 'auxdev->dev.of_node' is same for all its instance.
> While other display bridges seems don't has such limitations.
Oh, I'm not saying that there cannot be further issues with the design
or implementation here. And perhaps fixing those would make the
immediate issue Abel was trying to address go away.
Johan
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2] drm/bridge: Fix assignment of the of_node of the parent to aux bridge
2024-11-01 3:49 ` Sui Jingfeng
2024-11-01 7:27 ` Johan Hovold
@ 2024-11-01 9:20 ` Laurent Pinchart
2024-11-01 10:27 ` Dmitry Baryshkov
1 sibling, 1 reply; 26+ messages in thread
From: Laurent Pinchart @ 2024-11-01 9:20 UTC (permalink / raw)
To: Sui Jingfeng
Cc: Johan Hovold, neil.armstrong, Andrzej Hajda, Robert Foss,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Abel Vesa,
Dmitry Baryshkov, dri-devel, linux-kernel, stable
On Fri, Nov 01, 2024 at 11:49:07AM +0800, Sui Jingfeng wrote:
>
> On 2024/11/1 00:23, Johan Hovold wrote:
> > On Thu, Oct 31, 2024 at 11:06:38PM +0800, Sui Jingfeng wrote:
> >
> >> But I think Johan do need more times to understand what exactly
> >> the real problem is. We do need times to investigate new method.
> > No, I know perfectly well what the (immediate) problem is here (I was
> > the one adding support for the of_node_reused flag some years back).
> >
> > I just wanted to make sure that the commit message was correct and
> > complete before merging (and also to figure out whether this particular
> > patch needed to be backported).
>
> Well under such a design, having the child device sharing the 'OF' device
> node with it parent device means that one parent device can *only*
> create one AUX bridge child device.
>
> Since If you create two or more child AUX bridge, *all* of them will
> call devm_drm_of_get_bridge(&auxdev->dev, auxdev->dev.of_node, 0, 0),
> then we will *contend* the same next bridge resource.
>
> Because of the 'auxdev->dev.of_node' is same for all its instance.
> While other display bridges seems don't has such limitations.
Brainstorming a bit, I wonder if we could create a swnode for the
auxiliary device, instead of reusing the parent's OF node. This would
require switching the DRM OF-based APIs to fwnode, but that's easy and
mostly a mechanical change.
--
Regards,
Laurent Pinchart
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2] drm/bridge: Fix assignment of the of_node of the parent to aux bridge
2024-10-31 16:33 ` Johan Hovold
@ 2024-11-01 9:49 ` Abel Vesa
0 siblings, 0 replies; 26+ messages in thread
From: Abel Vesa @ 2024-11-01 9:49 UTC (permalink / raw)
To: Johan Hovold
Cc: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Dmitry Baryshkov,
dri-devel, linux-kernel, stable
On 24-10-31 17:33:35, Johan Hovold wrote:
> On Thu, Oct 31, 2024 at 06:13:45PM +0200, Abel Vesa wrote:
> > On 24-10-31 15:05:52, Johan Hovold wrote:
> > > On Mon, Oct 21, 2024 at 09:23:24AM +0200, Johan Hovold wrote:
> > > > On Fri, Oct 18, 2024 at 03:49:34PM +0300, Abel Vesa wrote:
>
> > > > > Cc: stable@vger.kernel.org # 6.8
> >
> > > > I assume there are no existing devicetrees that need this since then we
> > > > would have heard about it sooner. Do we still need to backport it?
> >
> > None of the DTs I managed to scan seem to have this problem.
> >
> > Maybe backporting it is not worth it then.
>
> Thanks for confirming. Which (new) driver and DT are you seeing this
> with?
The Parade PS8830 retimer and its DT node. The v3 of that patchset
will not trigger it unless the pinctrl properties are being added to the
retimer node.
>
> > > > When exactly are you hitting this?
> >
> > Here is one of the examples.
> >
> > [ 5.768283] x1e80100-tlmm f100000.pinctrl: error -EINVAL: pin-185 (aux_bridge.aux_bridge.3)
> > [ 5.768289] x1e80100-tlmm f100000.pinctrl: error -EINVAL: could not request pin 185 (GPIO_185) from group gpio185 on device f100000.pinctrl
> > [ 5.768293] aux_bridge.aux_bridge aux_bridge.aux_bridge.3: Error applying setting, reverse things back
>
> I meant with which driver and DT you hit this with.
>
> > > Abel, even if Neil decided to give me the finger here, please answer the
> > > above so that it's recorded in the archives at least.
>
> > Sorry for not replying in time before the patch was merge.
>
> That's not your fault.
>
> Johan
>
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2] drm/bridge: Fix assignment of the of_node of the parent to aux bridge
2024-11-01 9:20 ` Laurent Pinchart
@ 2024-11-01 10:27 ` Dmitry Baryshkov
2024-11-01 14:43 ` Laurent Pinchart
0 siblings, 1 reply; 26+ messages in thread
From: Dmitry Baryshkov @ 2024-11-01 10:27 UTC (permalink / raw)
To: Laurent Pinchart
Cc: Sui Jingfeng, Johan Hovold, neil.armstrong, Andrzej Hajda,
Robert Foss, Jonas Karlman, Jernej Skrabec, Maarten Lankhorst,
Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter,
Abel Vesa, dri-devel, linux-kernel, stable
On Fri, 1 Nov 2024 at 11:20, Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
>
> On Fri, Nov 01, 2024 at 11:49:07AM +0800, Sui Jingfeng wrote:
> >
> > On 2024/11/1 00:23, Johan Hovold wrote:
> > > On Thu, Oct 31, 2024 at 11:06:38PM +0800, Sui Jingfeng wrote:
> > >
> > >> But I think Johan do need more times to understand what exactly
> > >> the real problem is. We do need times to investigate new method.
> > > No, I know perfectly well what the (immediate) problem is here (I was
> > > the one adding support for the of_node_reused flag some years back).
> > >
> > > I just wanted to make sure that the commit message was correct and
> > > complete before merging (and also to figure out whether this particular
> > > patch needed to be backported).
> >
> > Well under such a design, having the child device sharing the 'OF' device
> > node with it parent device means that one parent device can *only*
> > create one AUX bridge child device.
> >
> > Since If you create two or more child AUX bridge, *all* of them will
> > call devm_drm_of_get_bridge(&auxdev->dev, auxdev->dev.of_node, 0, 0),
> > then we will *contend* the same next bridge resource.
> >
> > Because of the 'auxdev->dev.of_node' is same for all its instance.
> > While other display bridges seems don't has such limitations.
>
> Brainstorming a bit, I wonder if we could create a swnode for the
> auxiliary device, instead of reusing the parent's OF node.
This will break bridge lookup which is performed by following the OF
graph links. So the aux bridges should use corresponding of_node or
fwnode.
> This would
> require switching the DRM OF-based APIs to fwnode, but that's easy and
> mostly a mechanical change.
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2] drm/bridge: Fix assignment of the of_node of the parent to aux bridge
2024-11-01 10:27 ` Dmitry Baryshkov
@ 2024-11-01 14:43 ` Laurent Pinchart
0 siblings, 0 replies; 26+ messages in thread
From: Laurent Pinchart @ 2024-11-01 14:43 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Sui Jingfeng, Johan Hovold, neil.armstrong, Andrzej Hajda,
Robert Foss, Jonas Karlman, Jernej Skrabec, Maarten Lankhorst,
Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter,
Abel Vesa, dri-devel, linux-kernel, stable
On Fri, Nov 01, 2024 at 12:27:15PM +0200, Dmitry Baryshkov wrote:
> On Fri, 1 Nov 2024 at 11:20, Laurent Pinchart wrote:
> > On Fri, Nov 01, 2024 at 11:49:07AM +0800, Sui Jingfeng wrote:
> > > On 2024/11/1 00:23, Johan Hovold wrote:
> > > > On Thu, Oct 31, 2024 at 11:06:38PM +0800, Sui Jingfeng wrote:
> > > >
> > > >> But I think Johan do need more times to understand what exactly
> > > >> the real problem is. We do need times to investigate new method.
> > > > No, I know perfectly well what the (immediate) problem is here (I was
> > > > the one adding support for the of_node_reused flag some years back).
> > > >
> > > > I just wanted to make sure that the commit message was correct and
> > > > complete before merging (and also to figure out whether this particular
> > > > patch needed to be backported).
> > >
> > > Well under such a design, having the child device sharing the 'OF' device
> > > node with it parent device means that one parent device can *only*
> > > create one AUX bridge child device.
> > >
> > > Since If you create two or more child AUX bridge, *all* of them will
> > > call devm_drm_of_get_bridge(&auxdev->dev, auxdev->dev.of_node, 0, 0),
> > > then we will *contend* the same next bridge resource.
> > >
> > > Because of the 'auxdev->dev.of_node' is same for all its instance.
> > > While other display bridges seems don't has such limitations.
> >
> > Brainstorming a bit, I wonder if we could create a swnode for the
> > auxiliary device, instead of reusing the parent's OF node.
>
> This will break bridge lookup which is performed by following the OF
> graph links. So the aux bridges should use corresponding of_node or
> fwnode.
We can also expand the lookup infrastructure and handle more platform
integration and driver architecture options. I'm not sure how it would
look like, but all these are in-kernel APIs, so they can be extended and
modified if needed.
> > This would
> > require switching the DRM OF-based APIs to fwnode, but that's easy and
> > mostly a mechanical change.
--
Regards,
Laurent Pinchart
^ permalink raw reply [flat|nested] 26+ messages in thread
end of thread, other threads:[~2024-11-01 14:43 UTC | newest]
Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-18 12:49 [PATCH v2] drm/bridge: Fix assignment of the of_node of the parent to aux bridge Abel Vesa
2024-10-18 15:43 ` Dmitry Baryshkov
2024-10-30 16:45 ` Sui Jingfeng
2024-10-30 19:39 ` Laurent Pinchart
2024-10-31 12:29 ` Neil Armstrong
2024-10-21 7:12 ` Neil Armstrong
2024-10-21 7:23 ` Johan Hovold
2024-10-31 14:05 ` Johan Hovold
2024-10-31 16:13 ` Abel Vesa
2024-10-31 16:33 ` Johan Hovold
2024-11-01 9:49 ` Abel Vesa
2024-10-31 15:48 ` Dmitry Baryshkov
2024-10-31 16:26 ` Johan Hovold
2024-10-21 13:08 ` Neil Armstrong
2024-10-30 14:49 ` Sui Jingfeng
2024-10-31 12:31 ` Neil Armstrong
2024-10-31 14:02 ` Johan Hovold
2024-10-31 15:31 ` Sui Jingfeng
2024-10-31 15:06 ` Sui Jingfeng
2024-10-31 16:23 ` Johan Hovold
2024-11-01 3:49 ` Sui Jingfeng
2024-11-01 7:27 ` Johan Hovold
2024-11-01 9:20 ` Laurent Pinchart
2024-11-01 10:27 ` Dmitry Baryshkov
2024-11-01 14:43 ` Laurent Pinchart
2024-11-01 6:15 ` Sui Jingfeng
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox