return err;
        }
 
-       err = tegra_mc_reset_setup(mc);
-       if (err < 0) {
-               dev_err(&pdev->dev, "failed to register reset controller: %d\n",
-                       err);
-               return err;
-       }
-
        mc->irq = platform_get_irq(pdev, 0);
        if (mc->irq < 0) {
                dev_err(&pdev->dev, "interrupt not specified\n");
                return err;
        }
 
+       err = tegra_mc_reset_setup(mc);
+       if (err < 0)
+               dev_err(&pdev->dev, "failed to register reset controller: %d\n",
+                       err);
+
        if (IS_ENABLED(CONFIG_TEGRA_IOMMU_SMMU)) {
                mc->smmu = tegra_smmu_probe(&pdev->dev, mc->soc->smmu, mc);
-               if (IS_ERR(mc->smmu)) {
+               if (IS_ERR(mc->smmu))
                        dev_err(&pdev->dev, "failed to probe SMMU: %ld\n",
                                PTR_ERR(mc->smmu));
-                       return PTR_ERR(mc->smmu);
-               }
        }
 
        return 0;