[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250930094251.131314-2-damon.ding@rock-chips.com>
Date: Tue, 30 Sep 2025 17:42:48 +0800
From: Damon Ding <damon.ding@...k-chips.com>
To: andrzej.hajda@...el.com,
neil.armstrong@...aro.org,
rfoss@...nel.org
Cc: Laurent.pinchart@...asonboard.com,
jonas@...boo.se,
jernej.skrabec@...il.com,
maarten.lankhorst@...ux.intel.com,
mripard@...nel.org,
tzimmermann@...e.de,
airlied@...il.com,
simona@...ll.ch,
shawnguo@...nel.org,
s.hauer@...gutronix.de,
kernel@...gutronix.de,
festevam@...il.com,
inki.dae@...sung.com,
sw0312.kim@...sung.com,
kyungmin.park@...sung.com,
krzk@...nel.org,
alim.akhtar@...sung.com,
jingoohan1@...il.com,
p.zabel@...gutronix.de,
hjc@...k-chips.com,
heiko@...ech.de,
andy.yan@...k-chips.com,
dmitry.baryshkov@....qualcomm.com,
dianders@...omium.org,
m.szyprowski@...sung.com,
luca.ceresoli@...tlin.com,
jani.nikula@...el.com,
linux-kernel@...r.kernel.org,
dri-devel@...ts.freedesktop.org,
imx@...ts.linux.dev,
linux-arm-kernel@...ts.infradead.org,
linux-samsung-soc@...r.kernel.org,
linux-rockchip@...ts.infradead.org,
Damon Ding <damon.ding@...k-chips.com>
Subject: [PATCH v6 15/18] drm/exynos: exynos_dp: Apply analogix_dp_finish_probe()
Apply analogix_dp_finish_probe() in order to move the panel/bridge
parsing from Exynos side to the Analogix side.
Signed-off-by: Damon Ding <damon.ding@...k-chips.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@....qualcomm.com>
Tested-by: Marek Szyprowski <m.szyprowski@...sung.com>
---
Changes in v4:
- Rename analogix_dp_find_panel_or_bridge() to
analogix_dp_finish_probe().
---
drivers/gpu/drm/exynos/exynos_dp.c | 17 +++++------------
1 file changed, 5 insertions(+), 12 deletions(-)
diff --git a/drivers/gpu/drm/exynos/exynos_dp.c b/drivers/gpu/drm/exynos/exynos_dp.c
index e767ac506515..1c189b5d2b63 100644
--- a/drivers/gpu/drm/exynos/exynos_dp.c
+++ b/drivers/gpu/drm/exynos/exynos_dp.c
@@ -170,9 +170,6 @@ static int exynos_dp_probe(struct platform_device *pdev)
struct device *dev = &pdev->dev;
struct device_node *np;
struct exynos_dp_device *dp;
- struct drm_panel *panel;
- struct drm_bridge *bridge;
- int ret;
dp = devm_kzalloc(&pdev->dev, sizeof(struct exynos_dp_device),
GFP_KERNEL);
@@ -199,26 +196,22 @@ static int exynos_dp_probe(struct platform_device *pdev)
goto out;
}
- ret = drm_of_find_panel_or_bridge(dev->of_node, 0, 0, &panel, &bridge);
- if (ret == -ENODEV)
- ret = exynos_dp_legacy_bridge_init(dp, &bridge);
- if (ret)
- return ret;
-
/* The remote port can be either a panel or a bridge */
- dp->plat_data.panel = panel;
- dp->plat_data.next_bridge = bridge;
dp->plat_data.dev_type = EXYNOS_DP;
dp->plat_data.power_on = exynos_dp_poweron;
dp->plat_data.power_off = exynos_dp_poweroff;
dp->plat_data.attach = exynos_dp_bridge_attach;
+ dp->plat_data.ops = &exynos_dp_ops;
out:
dp->adp = analogix_dp_probe(dev, &dp->plat_data);
if (IS_ERR(dp->adp))
return PTR_ERR(dp->adp);
- return component_add(&pdev->dev, &exynos_dp_ops);
+ if (np || !exynos_dp_legacy_bridge_init(dp, &dp->plat_data.next_bridge))
+ return component_add(&pdev->dev, &exynos_dp_ops);
+ else
+ return analogix_dp_finish_probe(dp->adp);
}
static void exynos_dp_remove(struct platform_device *pdev)
--
2.34.1
Powered by blists - more mailing lists