diff options
author | Liu Ying <b17645@freescale.com> | 2009-09-09 15:43:01 +0800 |
---|---|---|
committer | Liu Ying <b17645@freescale.com> | 2009-09-11 10:34:47 +0800 |
commit | bee0bcfdba611bc2215927d033b89bce36238d66 (patch) | |
tree | b87ed816a539cad5dfd5f5cfc52d04a95f1f7bfe /drivers/video | |
parent | c84f40c5f5fbdd0101e6420d595f48c4b486011a (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.c | 29 |
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; |