|
@@ -1633,7 +1633,6 @@ static int exynos_dsi_parse_dt(struct exynos_dsi *dsi)
|
|
|
{
|
|
|
struct device *dev = dsi->dev;
|
|
|
struct device_node *node = dev->of_node;
|
|
|
- struct device_node *ep;
|
|
|
int ret;
|
|
|
|
|
|
ret = exynos_dsi_of_read_u32(node, "samsung,pll-clock-frequency",
|
|
@@ -1641,32 +1640,21 @@ static int exynos_dsi_parse_dt(struct exynos_dsi *dsi)
|
|
|
if (ret < 0)
|
|
|
return ret;
|
|
|
|
|
|
- ep = of_graph_get_endpoint_by_regs(node, DSI_PORT_OUT, 0);
|
|
|
- if (!ep) {
|
|
|
- dev_err(dev, "no output port with endpoint specified\n");
|
|
|
- return -EINVAL;
|
|
|
- }
|
|
|
-
|
|
|
- ret = exynos_dsi_of_read_u32(ep, "samsung,burst-clock-frequency",
|
|
|
+ ret = exynos_dsi_of_read_u32(node, "samsung,burst-clock-frequency",
|
|
|
&dsi->burst_clk_rate);
|
|
|
if (ret < 0)
|
|
|
- goto end;
|
|
|
+ return ret;
|
|
|
|
|
|
- ret = exynos_dsi_of_read_u32(ep, "samsung,esc-clock-frequency",
|
|
|
+ ret = exynos_dsi_of_read_u32(node, "samsung,esc-clock-frequency",
|
|
|
&dsi->esc_clk_rate);
|
|
|
if (ret < 0)
|
|
|
- goto end;
|
|
|
-
|
|
|
- of_node_put(ep);
|
|
|
+ return ret;
|
|
|
|
|
|
dsi->bridge_node = of_graph_get_remote_node(node, DSI_PORT_OUT, 0);
|
|
|
if (!dsi->bridge_node)
|
|
|
return -EINVAL;
|
|
|
|
|
|
-end:
|
|
|
- of_node_put(ep);
|
|
|
-
|
|
|
- return ret;
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
static int exynos_dsi_bind(struct device *dev, struct device *master,
|
|
@@ -1817,6 +1805,10 @@ static int exynos_dsi_probe(struct platform_device *pdev)
|
|
|
|
|
|
static int exynos_dsi_remove(struct platform_device *pdev)
|
|
|
{
|
|
|
+ struct exynos_dsi *dsi = platform_get_drvdata(pdev);
|
|
|
+
|
|
|
+ of_node_put(dsi->bridge_node);
|
|
|
+
|
|
|
pm_runtime_disable(&pdev->dev);
|
|
|
|
|
|
component_del(&pdev->dev, &exynos_dsi_component_ops);
|