Skip to content

Commit f2921d8

Browse files
Hoegeun Kwondaeinki
authored andcommitted
drm/exynos: dsi: Fix the parse_dt function
The dsi + panel is a parental relationship, so OF grpah is not needed. Therefore, the current dsi_parse_dt function will throw an error, because there is no linked OF graph for the case fimd + dsi + panel. Parse the Pll burst and esc clock frequency properties in dsi_parse_dt() and create a bridge_node only if there is an OF graph associated with dsi. Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Andi Shyti <andi.shyti@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
1 parent 4013ef4 commit f2921d8

File tree

1 file changed

+5
-17
lines changed

1 file changed

+5
-17
lines changed

drivers/gpu/drm/exynos/exynos_drm_dsi.c

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1633,40 +1633,28 @@ static int exynos_dsi_parse_dt(struct exynos_dsi *dsi)
16331633
{
16341634
struct device *dev = dsi->dev;
16351635
struct device_node *node = dev->of_node;
1636-
struct device_node *ep;
16371636
int ret;
16381637

16391638
ret = exynos_dsi_of_read_u32(node, "samsung,pll-clock-frequency",
16401639
&dsi->pll_clk_rate);
16411640
if (ret < 0)
16421641
return ret;
16431642

1644-
ep = of_graph_get_endpoint_by_regs(node, DSI_PORT_OUT, 0);
1645-
if (!ep) {
1646-
dev_err(dev, "no output port with endpoint specified\n");
1647-
return -EINVAL;
1648-
}
1649-
1650-
ret = exynos_dsi_of_read_u32(ep, "samsung,burst-clock-frequency",
1643+
ret = exynos_dsi_of_read_u32(node, "samsung,burst-clock-frequency",
16511644
&dsi->burst_clk_rate);
16521645
if (ret < 0)
1653-
goto end;
1646+
return ret;
16541647

1655-
ret = exynos_dsi_of_read_u32(ep, "samsung,esc-clock-frequency",
1648+
ret = exynos_dsi_of_read_u32(node, "samsung,esc-clock-frequency",
16561649
&dsi->esc_clk_rate);
16571650
if (ret < 0)
1658-
goto end;
1659-
1660-
of_node_put(ep);
1651+
return ret;
16611652

16621653
dsi->bridge_node = of_graph_get_remote_node(node, DSI_PORT_OUT, 0);
16631654
if (!dsi->bridge_node)
16641655
return -EINVAL;
16651656

1666-
end:
1667-
of_node_put(ep);
1668-
1669-
return ret;
1657+
return 0;
16701658
}
16711659

16721660
static int exynos_dsi_bind(struct device *dev, struct device *master,

0 commit comments

Comments
 (0)