]> code.ossystems Code Review - meta-freescale.git/blob
27bac664aa183db759cd8e9d4731798062e9813d
[meta-freescale.git] /
1 From f19b8f13079c5593c31a5eb381ba5ac734779f84 Mon Sep 17 00:00:00 2001
2 From: Liu Ying <Ying.Liu@freescale.com>
3 Date: Tue, 15 Nov 2011 16:21:25 +0800
4 Subject: [PATCH] ENGR00162195 IPUv3M:Clear IDMAC_LOCK_EN_1 for tough single display
5
6 This patch clears IDMAC_LOCK_EN_1 for tough single display(dmfc=3).
7 For example, 1080P50/1080P60 with 32bpp fb.
8
9 Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
10 (cherry picked from commit 204a5fb6af1426c499332224dff00f52bdbef39b)
11 ---
12  drivers/mxc/ipu3/ipu_common.c |    6 +++++-
13  1 files changed, 5 insertions(+), 1 deletions(-)
14
15 diff --git a/drivers/mxc/ipu3/ipu_common.c b/drivers/mxc/ipu3/ipu_common.c
16 index baf22dd..18d46b3 100644
17 --- a/drivers/mxc/ipu3/ipu_common.c
18 +++ b/drivers/mxc/ipu3/ipu_common.c
19 @@ -991,7 +991,9 @@ void ipu_uninit_channel(ipu_channel_t channel)
20         __raw_writel(ipu_conf, IPU_CONF);
21  
22         /* Restore IDMAC_LOCK_EN when we don't use dual display */
23 +       /* and the video mode for single display is not tough */
24         if (!(ipu_di_use_count[0] && ipu_di_use_count[1]) &&
25 +           dmfc_type_setup != DMFC_HIGH_RESOLUTION_ONLY_DP &&
26             _ipu_is_dmfc_chan(in_dma) && g_ipu_hw_rev == 3)
27                 __raw_writel(0x003F0000, IDMAC_CH_LOCK_EN_1);
28  
29 @@ -1807,8 +1809,10 @@ int32_t ipu_enable_channel(ipu_channel_t channel)
30         __raw_writel(ipu_conf, IPU_CONF);
31  
32         /* Clear IDMAC_LOCK_EN to workaround black flash for dual display */
33 +       /* and for tough video mode of single display */
34         if (g_ipu_hw_rev == 3 && _ipu_is_dmfc_chan(in_dma)) {
35 -               if (ipu_di_use_count[1] && ipu_di_use_count[0])
36 +               if ((ipu_di_use_count[1] && ipu_di_use_count[0]) ||
37 +                   (dmfc_type_setup == DMFC_HIGH_RESOLUTION_ONLY_DP))
38                         __raw_writel(0x0, IDMAC_CH_LOCK_EN_1);
39                 else
40                         __raw_writel(0x003F0000, IDMAC_CH_LOCK_EN_1);
41 -- 
42 1.5.4.4
43