dma: mmp_pdma: add IRQF_SHARED when request irq
authorChao Xie <chao.xie@marvell.com>
Mon, 27 Jan 2014 01:44:07 +0000 (09:44 +0800)
committerVinod Koul <vinod.koul@intel.com>
Thu, 6 Mar 2014 09:17:47 +0000 (14:47 +0530)
For some SOCes use mmp_pdma, they have several dma controllers
sharing same irq.
So add IRQF_SHARED to flag when request irq. It can make multiple
controllers share the same irq.

Signed-off-by: Chao Xie <chao.xie@marvell.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
drivers/dma/mmp_pdma.c

index b439679..bf02e7b 100644 (file)
@@ -867,8 +867,8 @@ static int mmp_pdma_chan_init(struct mmp_pdma_device *pdev, int idx, int irq)
        phy->base = pdev->base;
 
        if (irq) {
-               ret = devm_request_irq(pdev->dev, irq, mmp_pdma_chan_handler, 0,
-                                      "pdma", phy);
+               ret = devm_request_irq(pdev->dev, irq, mmp_pdma_chan_handler,
+                                      IRQF_SHARED, "pdma", phy);
                if (ret) {
                        dev_err(pdev->dev, "channel request irq fail!\n");
                        return ret;
@@ -957,8 +957,8 @@ static int mmp_pdma_probe(struct platform_device *op)
        if (irq_num != dma_channels) {
                /* all chan share one irq, demux inside */
                irq = platform_get_irq(op, 0);
-               ret = devm_request_irq(pdev->dev, irq, mmp_pdma_int_handler, 0,
-                                      "pdma", pdev);
+               ret = devm_request_irq(pdev->dev, irq, mmp_pdma_int_handler,
+                                      IRQF_SHARED, "pdma", pdev);
                if (ret)
                        return ret;
        }