summaryrefslogtreecommitdiff
path: root/drivers/video/ipu_disp.c
diff options
context:
space:
mode:
authorLiu Ying <Ying.Liu@freescale.com>2015-04-27 18:07:47 +0800
committerYe Li <ye.li@nxp.com>2017-04-05 14:04:27 +0800
commit036b71e1cd77ddb1827fd85eb7035fb7eccb7b12 (patch)
tree55dbd04d95f275a369d0ad7727ae47e53c3bcebd /drivers/video/ipu_disp.c
parenta59c901317e70da111b426db1be77f289eccbcbc (diff)
downloadu-boot-imx-036b71e1cd77ddb1827fd85eb7035fb7eccb7b12.zip
u-boot-imx-036b71e1cd77ddb1827fd85eb7035fb7eccb7b12.tar.gz
u-boot-imx-036b71e1cd77ddb1827fd85eb7035fb7eccb7b12.tar.bz2
MLK-10747-2 video: ipu: Enable/disable LDB_DI clock when necessary
This patch adds enable/disable hooks support for ldb_di[0/1] clocks and enables/disables them when necessary. Signed-off-by: Liu Ying <Ying.Liu@freescale.com> (cherry picked from commit 615d4c51679a6c2ee0ed4c5e3922eec76646eef1) (cherry picked from commit 152192507c3bbaba093783d7da32b88327705c63)
Diffstat (limited to 'drivers/video/ipu_disp.c')
-rw-r--r--drivers/video/ipu_disp.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/video/ipu_disp.c b/drivers/video/ipu_disp.c
index fdd8024..8b3b82d 100644
--- a/drivers/video/ipu_disp.c
+++ b/drivers/video/ipu_disp.c
@@ -49,7 +49,7 @@ int g_di1_tvout;
extern struct clk *g_ipu_clk;
#if defined(CONFIG_MX6) || defined(CONFIG_MX53)
-extern struct clk *g_ldb_clk;
+extern struct clk *g_ldb_clk[2];
#endif
extern struct clk *g_di_clk[2];
extern struct clk *g_pixel_clk[2];
@@ -645,6 +645,9 @@ void ipu_dp_dc_enable(ipu_channel_t channel)
__raw_writel(reg, DC_WR_CH_CONF(dc_chan));
clk_enable(g_pixel_clk[di]);
+#if defined(CONFIG_MX6) || defined(CONFIG_MX53)
+ clk_enable(g_ldb_clk[di]);
+#endif
}
static unsigned char dc_swap;
@@ -735,6 +738,9 @@ void ipu_dp_dc_disable(ipu_channel_t channel, unsigned char swap)
/* Clock is already off because it must be done quickly, but
we need to fix the ref count */
clk_disable(g_pixel_clk[g_dc_di_assignment[dc_chan]]);
+#if defined(CONFIG_MX6) || defined(CONFIG_MX53)
+ clk_disable(g_ldb_clk[g_dc_di_assignment[dc_chan]]);
+#endif
}
}
@@ -886,7 +892,7 @@ int32_t ipu_init_sync_panel(int disp, uint32_t pixel_clk,
}
}
#if defined(CONFIG_MX6) || defined(CONFIG_MX53)
- clk_set_parent(g_pixel_clk[disp], g_ldb_clk);
+ clk_set_parent(g_pixel_clk[disp], g_ldb_clk[disp]);
#endif
} else {
if (clk_get_usecount(g_pixel_clk[disp]) != 0)