diff options
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); |