diff options
Diffstat (limited to 'drivers/video/ipu_common.c')
| -rw-r--r-- | drivers/video/ipu_common.c | 10 | 
1 files changed, 8 insertions, 2 deletions
| diff --git a/drivers/video/ipu_common.c b/drivers/video/ipu_common.c index 2020da98d..cc8f881a2 100644 --- a/drivers/video/ipu_common.c +++ b/drivers/video/ipu_common.c @@ -163,13 +163,13 @@ int clk_set_parent(struct clk *clk, struct clk *parent)  static int clk_ipu_enable(struct clk *clk)  { -#if defined(CONFIG_MX51) || defined(CONFIG_MX53)  	u32 reg;  	reg = __raw_readl(clk->enable_reg);  	reg |= MXC_CCM_CCGR_CG_MASK << clk->enable_shift;  	__raw_writel(reg, clk->enable_reg); +#if defined(CONFIG_MX51) || defined(CONFIG_MX53)  	/* Handshake with IPU when certain clock rates are changed. */  	reg = __raw_readl(&mxc_ccm->ccdr);  	reg &= ~MXC_CCM_CCDR_IPU_HS_MASK; @@ -185,13 +185,13 @@ static int clk_ipu_enable(struct clk *clk)  static void clk_ipu_disable(struct clk *clk)  { -#if defined(CONFIG_MX51) || defined(CONFIG_MX53)  	u32 reg;  	reg = __raw_readl(clk->enable_reg);  	reg &= ~(MXC_CCM_CCGR_CG_MASK << clk->enable_shift);  	__raw_writel(reg, clk->enable_reg); +#if defined(CONFIG_MX51) || defined(CONFIG_MX53)  	/*  	 * No handshake with IPU whe dividers are changed  	 * as its not enabled. @@ -211,9 +211,15 @@ static void clk_ipu_disable(struct clk *clk)  static struct clk ipu_clk = {  	.name = "ipu_clk",  	.rate = CONFIG_IPUV3_CLK, +#if defined(CONFIG_MX51) || defined(CONFIG_MX53)  	.enable_reg = (u32 *)(CCM_BASE_ADDR +  		offsetof(struct mxc_ccm_reg, CCGR5)),  	.enable_shift = MXC_CCM_CCGR5_CG5_OFFSET, +#else +	.enable_reg = (u32 *)(CCM_BASE_ADDR + +		offsetof(struct mxc_ccm_reg, CCGR3)), +	.enable_shift = MXC_CCM_CCGR3_IPU1_IPU_DI0_OFFSET, +#endif  	.enable = clk_ipu_enable,  	.disable = clk_ipu_disable,  	.usecount = 0, |