[PATCH 1/2] drm/imx: ldb: fix split mode for i.MX53

Philipp Zabel p.zabel at pengutronix.de
Fri Jan 23 09:08:02 PST 2015


On i.MX53, the DI0 clock can only be sourced from ldb_di0, and
the DI1 clock can only be sourced from ldb_di1. i.MX6q does not
have this limitation.
Luckily, in split mode both ldb_di0 and ldb_di1 have to be
synchronous, so we can choose either one of them as source for
the display interface. imx_ldb_set_clock is called for both
ldb_di0 and ldb_di1.
With this patch we only try to set the parent clock during the
combination of DI<n> and ldb_di<n> which works on i.MX53.

Signed-off-by: Philipp Zabel <p.zabel at pengutronix.de>
---
 drivers/gpu/drm/imx/imx-ldb.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/gpu/drm/imx/imx-ldb.c b/drivers/gpu/drm/imx/imx-ldb.c
index 2d6dc94..631909e 100644
--- a/drivers/gpu/drm/imx/imx-ldb.c
+++ b/drivers/gpu/drm/imx/imx-ldb.c
@@ -151,6 +151,13 @@ static void imx_ldb_set_clock(struct imx_ldb *ldb, int mux, int chno,
 	dev_dbg(ldb->dev, "%s after: %ld\n", __func__,
 			clk_get_rate(ldb->clk[chno]));
 
+	/*
+	 * In split mode, do not try to set the di0 parent clock to ldb_di1,
+	 * or the di1 parent clock to ldb_di0, which is not possible on i.MX53.
+	 */
+	if ((ldb->ldb_ctrl & LDB_SPLIT_MODE_EN) && (mux != chno))
+		return;
+
 	/* set display clock mux to LDB input clock */
 	ret = clk_set_parent(ldb->clk_sel[mux], ldb->clk[chno]);
 	if (ret)
-- 
2.1.4



More information about the dri-devel mailing list