]> www.infradead.org Git - linux.git/commitdiff
drm/bridge: Fix assignment of the of_node of the parent to aux bridge
authorAbel Vesa <abel.vesa@linaro.org>
Fri, 18 Oct 2024 12:49:34 +0000 (15:49 +0300)
committerNeil Armstrong <neil.armstrong@linaro.org>
Mon, 21 Oct 2024 12:59:48 +0000 (14:59 +0200)
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>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20241018-drm-aux-bridge-mark-of-node-reused-v2-1-aeed1b445c7d@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20241018-drm-aux-bridge-mark-of-node-reused-v2-1-aeed1b445c7d@linaro.org
drivers/gpu/drm/bridge/aux-bridge.c

index b29980f95379ec7af873ed6e0fb79a9abb663c7b..295e9d031e2dc86cbfd2a7350718fca181c99487 100644 (file)
@@ -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);