diff options
author | Liu Ying <Ying.Liu@freescale.com> | 2011-11-15 16:21:25 +0800 |
---|---|---|
committer | Liu Ying <Ying.Liu@freescale.com> | 2011-11-15 18:14:56 +0800 |
commit | 5544b604a2fae66ff60d4ccc1c861839f0e7105a (patch) | |
tree | 0313bd6e4453f7eed1ade14133f542d2bd0b594f /drivers | |
parent | c91351dd3ab1007852e94c01aee5cc33ed277bf2 (diff) |
ENGR00162195 IPUv3M:Clear IDMAC_LOCK_EN_1 for tough single display
This patch clears IDMAC_LOCK_EN_1 for tough single display(dmfc=3).
For example, 1080P50/1080P60 with 32bpp fb.
Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
(cherry picked from commit 63cdecc21a13956aeb689a3a5799b842a115df24)
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/mxc/ipu3/ipu_common.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/mxc/ipu3/ipu_common.c b/drivers/mxc/ipu3/ipu_common.c index 825cd611acb0..f91505343d51 100644 --- a/drivers/mxc/ipu3/ipu_common.c +++ b/drivers/mxc/ipu3/ipu_common.c @@ -999,7 +999,9 @@ void ipu_uninit_channel(ipu_channel_t channel) __raw_writel(ipu_conf, IPU_CONF); /* Restore IDMAC_LOCK_EN when we don't use dual display */ + /* and the video mode for single display is not tough */ if (!(ipu_di_use_count[0] && ipu_di_use_count[1]) && + dmfc_type_setup != DMFC_HIGH_RESOLUTION_ONLY_DP && _ipu_is_dmfc_chan(in_dma) && g_ipu_hw_rev == 3) __raw_writel(0x003F0000, IDMAC_CH_LOCK_EN_1); @@ -1818,8 +1820,10 @@ int32_t ipu_enable_channel(ipu_channel_t channel) __raw_writel(ipu_conf, IPU_CONF); /* Clear IDMAC_LOCK_EN to workaround black flash for dual display */ + /* and for tough video mode of single display */ if (g_ipu_hw_rev == 3 && _ipu_is_dmfc_chan(in_dma)) { - if (ipu_di_use_count[1] && ipu_di_use_count[0]) + if ((ipu_di_use_count[1] && ipu_di_use_count[0]) || + (dmfc_type_setup == DMFC_HIGH_RESOLUTION_ONLY_DP)) __raw_writel(0x0, IDMAC_CH_LOCK_EN_1); else __raw_writel(0x003F0000, IDMAC_CH_LOCK_EN_1); |