summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorLiu Ying <Ying.Liu@freescale.com>2011-11-15 16:21:25 +0800
committerLiu Ying <Ying.Liu@freescale.com>2011-11-15 18:14:56 +0800
commit5544b604a2fae66ff60d4ccc1c861839f0e7105a (patch)
tree0313bd6e4453f7eed1ade14133f542d2bd0b594f /drivers
parentc91351dd3ab1007852e94c01aee5cc33ed277bf2 (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.c6
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);