MLK-15995 imx: mlb: only use irq_ahb1 for imx6
authorGao Pan <pandy.gao@nxp.com>
Mon, 17 Jul 2017 08:57:48 +0000 (16:57 +0800)
committerNitin Garg <nitin.garg@nxp.com>
Mon, 19 Mar 2018 20:33:39 +0000 (15:33 -0500)
Due to IP integration difference, there are 2 ahb irqs
for imx6 and only 1 ahb irq for imx8. This patch makes
mlb driver compatible with irq difference.

Signed-off-by: Gao Pan <pandy.gao@nxp.com>
drivers/mxc/mlb/mxc_mlb.c

index b4f8ecb..9f12a70 100755 (executable)
@@ -1564,12 +1564,14 @@ static void mxc_mlb150_irq_enable(struct mlb_data *drvdata, u8 enable)
 {
        if (enable) {
                enable_irq(drvdata->irq_ahb0);
-               enable_irq(drvdata->irq_ahb1);
                enable_irq(drvdata->irq_mlb);
+               if (drvdata->irq_ahb1 > 0)
+                       enable_irq(drvdata->irq_ahb1);
        } else {
                disable_irq(drvdata->irq_ahb0);
-               disable_irq(drvdata->irq_ahb1);
                disable_irq(drvdata->irq_mlb);
+               if (drvdata->irq_ahb1 > 0)
+                       disable_irq(drvdata->irq_ahb1);
        }
 }
 
@@ -2621,15 +2623,13 @@ static int mxc_mlb150_probe(struct platform_device *pdev)
 
        /* ahb1 irq */
        drvdata->irq_ahb1 = platform_get_irq(pdev,  2);
-       if (drvdata->irq_ahb1 < 0) {
-               dev_err(&pdev->dev, "No ahb1 irq line provided\n");
-               goto err_dev;
-       }
        dev_dbg(&pdev->dev, "ahb1_irq: %d\n", drvdata->irq_ahb1);
-       if (devm_request_irq(&pdev->dev, drvdata->irq_ahb1, mlb_ahb_isr,
+       if (drvdata->irq_ahb1 > 0) {
+               if (devm_request_irq(&pdev->dev, drvdata->irq_ahb1, mlb_ahb_isr,
                                0, "mlb_ahb1", NULL)) {
-               dev_err(&pdev->dev, "can't claim irq %d\n", drvdata->irq_ahb1);
-               goto err_dev;
+                       dev_err(&pdev->dev, "can't claim irq %d\n", drvdata->irq_ahb1);
+                       goto err_dev;
+               }
        }
 
        /* mlb irq */