diff options
Diffstat (limited to 'drivers/mxc/ipu3/ipu_common.c')
-rw-r--r-- | drivers/mxc/ipu3/ipu_common.c | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/drivers/mxc/ipu3/ipu_common.c b/drivers/mxc/ipu3/ipu_common.c index b1b8a8b39ae1..eae3b549d765 100644 --- a/drivers/mxc/ipu3/ipu_common.c +++ b/drivers/mxc/ipu3/ipu_common.c @@ -354,8 +354,8 @@ static int ipu_probe(struct platform_device *pdev) g_di_clk[0] = plat_data->di_clk[0]; g_di_clk[1] = plat_data->di_clk[1]; - g_csi_clk[0] = plat_data->csi_clk[0]; - g_csi_clk[1] = plat_data->csi_clk[1]; + g_csi_clk[0] = clk_get(&pdev->dev, "csi_mclk1"); + g_csi_clk[1] = clk_get(&pdev->dev, "csi_mclk2"); __raw_writel(0x807FFFFF, IPU_MEM_RST); while (__raw_readl(IPU_MEM_RST) & 0x80000000) ; @@ -1883,29 +1883,29 @@ int32_t ipu_disable_channel(ipu_channel_t channel, bool wait_for_stop) if ((channel == MEM_BG_SYNC) || (channel == MEM_FG_SYNC) || (channel == MEM_DC_SYNC)) { - if (channel == MEM_FG_SYNC) - ipu_disp_set_window_pos(channel, 0, 0); + int timeout = 50; + int irq; _ipu_dp_dc_disable(channel, false); /* - * wait for BG channel EOF then disable FG-IDMAC, - * it avoid FG NFB4EOF error. + * wait for display channel EOF then disable IDMAC, + * it avoid NFB4EOF error. */ - if (channel == MEM_FG_SYNC) { - int timeout = 50; - - __raw_writel(IPUIRQ_2_MASK(IPU_IRQ_BG_SYNC_EOF), - IPUIRQ_2_STATREG(IPU_IRQ_BG_SYNC_EOF)); - while ((__raw_readl(IPUIRQ_2_STATREG(IPU_IRQ_BG_SYNC_EOF)) & - IPUIRQ_2_MASK(IPU_IRQ_BG_SYNC_EOF)) == 0) { - msleep(10); - timeout -= 10; - if (timeout <= 0) { - dev_err(g_ipu_dev, "warning: wait for bg sync eof timeout\n"); - break; - } - } + if (channel == MEM_BG_SYNC) + irq = IPU_IRQ_BG_SYNC_EOF; + if (channel == MEM_FG_SYNC) + irq = IPU_IRQ_FG_SYNC_EOF; + else + irq = IPU_IRQ_DC_SYNC_EOF; + __raw_writel(IPUIRQ_2_MASK(irq), + IPUIRQ_2_STATREG(irq)); + while ((__raw_readl(IPUIRQ_2_STATREG(irq)) & + IPUIRQ_2_MASK(irq)) == 0) { + msleep(10); + timeout -= 10; + if (timeout <= 0) + break; } } else if (wait_for_stop) { while (idma_is_set(IDMAC_CHA_BUSY, in_dma) || |