|
@@ -1161,17 +1161,6 @@ static int rk_iommu_probe(struct platform_device *pdev)
|
|
|
if (iommu->num_mmu == 0)
|
|
|
return PTR_ERR(iommu->bases[0]);
|
|
|
|
|
|
- i = 0;
|
|
|
- while ((irq = platform_get_irq(pdev, i++)) != -ENXIO) {
|
|
|
- if (irq < 0)
|
|
|
- return irq;
|
|
|
-
|
|
|
- err = devm_request_irq(iommu->dev, irq, rk_iommu_irq,
|
|
|
- IRQF_SHARED, dev_name(dev), iommu);
|
|
|
- if (err)
|
|
|
- return err;
|
|
|
- }
|
|
|
-
|
|
|
iommu->reset_disabled = device_property_read_bool(dev,
|
|
|
"rockchip,disable-mmu-reset");
|
|
|
|
|
@@ -1228,6 +1217,19 @@ static int rk_iommu_probe(struct platform_device *pdev)
|
|
|
|
|
|
pm_runtime_enable(dev);
|
|
|
|
|
|
+ i = 0;
|
|
|
+ while ((irq = platform_get_irq(pdev, i++)) != -ENXIO) {
|
|
|
+ if (irq < 0)
|
|
|
+ return irq;
|
|
|
+
|
|
|
+ err = devm_request_irq(iommu->dev, irq, rk_iommu_irq,
|
|
|
+ IRQF_SHARED, dev_name(dev), iommu);
|
|
|
+ if (err) {
|
|
|
+ pm_runtime_disable(dev);
|
|
|
+ goto err_remove_sysfs;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
return 0;
|
|
|
err_remove_sysfs:
|
|
|
iommu_device_sysfs_remove(&iommu->iommu);
|