summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorLiu Ying <Ying.Liu@freescale.com>2012-03-28 18:40:21 +0800
committerLiu Ying <Ying.Liu@freescale.com>2012-03-28 18:49:31 +0800
commite56b1ca9a0ec1d90ddfd0591f5a925360cafa677 (patch)
tree775053729a498b04d08e660bcc4ef25446d11b1c /drivers
parent34621b4c0014e7b44c57f56f825ce5fe450e8d70 (diff)
ENGR00178302 IPUv3:Enable error interrupts defaultly
This patch enables IPUv3 error interrupts defaultly. Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/mxc/ipu3/ipu_common.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/mxc/ipu3/ipu_common.c b/drivers/mxc/ipu3/ipu_common.c
index 8a0efa444440..a97166a21a58 100644
--- a/drivers/mxc/ipu3/ipu_common.c
+++ b/drivers/mxc/ipu3/ipu_common.c
@@ -485,6 +485,12 @@ static int __devinit ipu_probe(struct platform_device *pdev)
ipu_reset(ipu);
+ /* Enable error interrupts by default */
+ ipu_cm_write(ipu, 0xFFFFFFFF, IPU_INT_CTRL(5));
+ ipu_cm_write(ipu, 0xFFFFFFFF, IPU_INT_CTRL(6));
+ ipu_cm_write(ipu, 0xFFFFFFFF, IPU_INT_CTRL(9));
+ ipu_cm_write(ipu, 0xFFFFFFFF, IPU_INT_CTRL(10));
+
ipu_disp_init(ipu);
/* Set sync refresh channels and CSI->mem channel as high priority */
@@ -630,6 +636,12 @@ int32_t ipu_init_channel(struct ipu_soc *ipu, ipu_channel_t channel, ipu_channel
_ipu_lock(ipu);
+ /* Re-enable error interrupts every time a channel is initialized */
+ ipu_cm_write(ipu, 0xFFFFFFFF, IPU_INT_CTRL(5));
+ ipu_cm_write(ipu, 0xFFFFFFFF, IPU_INT_CTRL(6));
+ ipu_cm_write(ipu, 0xFFFFFFFF, IPU_INT_CTRL(9));
+ ipu_cm_write(ipu, 0xFFFFFFFF, IPU_INT_CTRL(10));
+
if (ipu->channel_init_mask & (1L << IPU_CHAN_ID(channel))) {
dev_warn(ipu->dev, "Warning: channel already initialized %d\n",
IPU_CHAN_ID(channel));