summaryrefslogtreecommitdiff
path: root/drivers/video
diff options
context:
space:
mode:
authorLiu Ying <b17645@freescale.com>2009-09-09 15:43:01 +0800
committerLiu Ying <b17645@freescale.com>2009-09-11 10:34:47 +0800
commitbee0bcfdba611bc2215927d033b89bce36238d66 (patch)
treeb87ed816a539cad5dfd5f5cfc52d04a95f1f7bfe /drivers/video
parentc84f40c5f5fbdd0101e6420d595f48c4b486011a (diff)
ENGR00116351 IPUv3 FB:Support DP local alpha when BG channel connects to DI1
Request IPU_IRQ_BG_ALPHA_SYNC_EOF interrupt when MEM_BG_SYNC channel connects to DI1. Signed-off-by: Liu Ying <b17645@freescale.com>
Diffstat (limited to 'drivers/video')
-rw-r--r--drivers/video/mxc/mxc_ipuv3_fb.c29
1 files changed, 20 insertions, 9 deletions
diff --git a/drivers/video/mxc/mxc_ipuv3_fb.c b/drivers/video/mxc/mxc_ipuv3_fb.c
index 655c00e3e7ec..d16bcdb51b26 100644
--- a/drivers/video/mxc/mxc_ipuv3_fb.c
+++ b/drivers/video/mxc/mxc_ipuv3_fb.c
@@ -1396,18 +1396,29 @@ static int mxcfb_probe(struct platform_device *pdev)
ipu_disp_set_global_alpha(mxcfbi->ipu_ch, true, 0x80);
ipu_disp_set_color_key(mxcfbi->ipu_ch, false, 0);
strcpy(fbi->fix.id, "DISP3 BG");
- g_dp_in_use = true;
- if (ipu_request_irq(IPU_IRQ_BG_ALPHA_SYNC_EOF,
- mxcfb_alpha_irq_handler, 0,
- MXCFB_NAME, fbi) != 0) {
- dev_err(&pdev->dev, "Error registering BG alpha irq "
- "handler.\n");
- ret = -EBUSY;
- goto err1;
- }
+ if (!g_dp_in_use)
+ if (ipu_request_irq(IPU_IRQ_BG_ALPHA_SYNC_EOF,
+ mxcfb_alpha_irq_handler, 0,
+ MXCFB_NAME, fbi) != 0) {
+ dev_err(&pdev->dev, "Error registering BG "
+ "alpha irq handler.\n");
+ ret = -EBUSY;
+ goto err1;
+ }
+ g_dp_in_use = true;
} else if (pdev->id == 1) {
strcpy(fbi->fix.id, "DISP3 BG - DI1");
+
+ if (!g_dp_in_use)
+ if (ipu_request_irq(IPU_IRQ_BG_ALPHA_SYNC_EOF,
+ mxcfb_alpha_irq_handler, 0,
+ MXCFB_NAME, fbi) != 0) {
+ dev_err(&pdev->dev, "Error registering BG "
+ "alpha irq handler.\n");
+ ret = -EBUSY;
+ goto err1;
+ }
g_dp_in_use = true;
} else if (pdev->id == 2) { /* Overlay */
mxcfbi->ipu_ch_irq = IPU_IRQ_FG_SYNC_EOF;