memory: tegra: Setup interrupts mask before requesting IRQ
authorDmitry Osipenko <digetx@gmail.com>
Mon, 9 Apr 2018 19:28:28 +0000 (22:28 +0300)
committerThierry Reding <treding@nvidia.com>
Fri, 27 Apr 2018 09:22:19 +0000 (11:22 +0200)
This avoids unwanted interrupt during MC driver probe.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
drivers/memory/tegra/mc.c

index d2005b99582193879c0722a6cd3d47cbc7ed5c53..e55b9733bd839ec7c9331bd8f1ae37741e0338c6 100644 (file)
@@ -407,14 +407,6 @@ static int tegra_mc_probe(struct platform_device *pdev)
                return mc->irq;
        }
 
-       err = devm_request_irq(&pdev->dev, mc->irq, tegra_mc_irq, IRQF_SHARED,
-                              dev_name(&pdev->dev), mc);
-       if (err < 0) {
-               dev_err(&pdev->dev, "failed to request IRQ#%u: %d\n", mc->irq,
-                       err);
-               return err;
-       }
-
        WARN(!mc->soc->client_id_mask, "Missing client ID mask for this SoC\n");
 
        value = MC_INT_DECERR_MTS | MC_INT_SECERR_SEC | MC_INT_DECERR_VPR |
@@ -423,6 +415,14 @@ static int tegra_mc_probe(struct platform_device *pdev)
 
        mc_writel(mc, value, MC_INTMASK);
 
+       err = devm_request_irq(&pdev->dev, mc->irq, tegra_mc_irq, IRQF_SHARED,
+                              dev_name(&pdev->dev), mc);
+       if (err < 0) {
+               dev_err(&pdev->dev, "failed to request IRQ#%u: %d\n", mc->irq,
+                       err);
+               return err;
+       }
+
        return 0;
 }