Re: [PATCH v2 4/6] drm: convert drivers to use of_graph_get_remote_node

From: Hoegeun Kwon
Date: Sun Feb 12 2017 - 21:01:13 EST



diff --git a/drivers/gpu/drm/exynos/exynos_drm_mic.c b/drivers/gpu/drm/exynos/exynos_drm_mic.c
index a0def0be6d65..93ebb12133e1 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_mic.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_mic.c
@@ -228,29 +228,6 @@ static void mic_set_reg_on(struct exynos_mic *mic, bool enable)
writel(reg, mic->reg + MIC_OP);
}

-static struct device_node *get_remote_node(struct device_node *from, int reg)
-{
- struct device_node *endpoint = NULL, *remote_node = NULL;
-
- endpoint = of_graph_get_endpoint_by_regs(from, reg, -1);
- if (!endpoint) {
- DRM_ERROR("mic: Failed to find remote port from %s",
- from->full_name);
- goto exit;
- }
-
- remote_node = of_graph_get_remote_port_parent(endpoint);
- if (!remote_node) {
- DRM_ERROR("mic: Failed to find remote port parent from %s",
- from->full_name);
- goto exit;
- }
-
-exit:
- of_node_put(endpoint);
- return remote_node;
-}
-
static int parse_dt(struct exynos_mic *mic)
{
int ret = 0, i, j;
@@ -262,7 +239,7 @@ static int parse_dt(struct exynos_mic *mic)
* The first node must be for decon and the second one must be for dsi.
*/
for (i = 0, j = 0; i < NUM_ENDPOINTS; i++) {
- remote_node = get_remote_node(mic->dev->of_node, i);
+ remote_node = of_graph_get_remote_node(mic->dev->of_node, i, 0);
if (!remote_node) {
ret = -EPIPE;
goto exit;
@@ -279,7 +256,7 @@ static int parse_dt(struct exynos_mic *mic)
break;
case ENDPOINT_DSI_NODE:

Dear Rob,

I have tested this patch, rebase these patches on samsung soc tree[1]
and drm exynos tree[2]. But 4/6 patch can not be applied. Because
there is a conflict with the already merged [3] patch.

Best Regards,
Hoegeun

[1] https://git.kernel.org/cgit/linux/kernel/git/krzk/linux.git/ (for-next branch)
[2] https://git.kernel.org/cgit/linux/kernel/git/daeinki/drm-exynos.git/ (exynos_drm_next branch)
[3] drm/exynos: mic: Fix parse_dt function (cc2b0225)

/* panel node */
- remote_node = get_remote_node(remote_node, 1);
+ remote_node = of_graph_get_remote_node(remote_node, 1, 0);
if (!remote_node) {
ret = -EPIPE;
goto exit;
diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c
index ebd5f4fe4c23..18d6570e057d 100644
--- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c
+++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c
@@ -247,34 +247,6 @@ static const struct component_master_ops kirin_drm_ops = {
.unbind = kirin_drm_unbind,
};