projects
/
cascardo
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'pm-tools'
[cascardo/linux.git]
/
drivers
/
iommu
/
arm-smmu.c
diff --git
a/drivers/iommu/arm-smmu.c
b/drivers/iommu/arm-smmu.c
index
f417e89
..
181c9ba
100644
(file)
--- a/
drivers/iommu/arm-smmu.c
+++ b/
drivers/iommu/arm-smmu.c
@@
-377,6
+377,7
@@
struct arm_smmu_cfg {
u32 cbar;
pgd_t *pgd;
};
u32 cbar;
pgd_t *pgd;
};
+#define INVALID_IRPTNDX 0xff
#define ARM_SMMU_CB_ASID(cfg) ((cfg)->cbndx)
#define ARM_SMMU_CB_VMID(cfg) ((cfg)->cbndx + 1)
#define ARM_SMMU_CB_ASID(cfg) ((cfg)->cbndx)
#define ARM_SMMU_CB_VMID(cfg) ((cfg)->cbndx + 1)
@@
-840,7
+841,7
@@
static int arm_smmu_init_domain_context(struct iommu_domain *domain,
if (IS_ERR_VALUE(ret)) {
dev_err(smmu->dev, "failed to request context IRQ %d (%u)\n",
root_cfg->irptndx, irq);
if (IS_ERR_VALUE(ret)) {
dev_err(smmu->dev, "failed to request context IRQ %d (%u)\n",
root_cfg->irptndx, irq);
- root_cfg->irptndx =
-1
;
+ root_cfg->irptndx =
INVALID_IRPTNDX
;
goto out_free_context;
}
goto out_free_context;
}
@@
-869,7
+870,7
@@
static void arm_smmu_destroy_domain_context(struct iommu_domain *domain)
writel_relaxed(0, cb_base + ARM_SMMU_CB_SCTLR);
arm_smmu_tlb_inv_context(root_cfg);
writel_relaxed(0, cb_base + ARM_SMMU_CB_SCTLR);
arm_smmu_tlb_inv_context(root_cfg);
- if (root_cfg->irptndx !=
-1
) {
+ if (root_cfg->irptndx !=
INVALID_IRPTNDX
) {
irq = smmu->irqs[smmu->num_global_irqs + root_cfg->irptndx];
free_irq(irq, domain);
}
irq = smmu->irqs[smmu->num_global_irqs + root_cfg->irptndx];
free_irq(irq, domain);
}
@@
-1857,8
+1858,6
@@
static int arm_smmu_device_dt_probe(struct platform_device *pdev)
goto out_put_parent;
}
goto out_put_parent;
}
- arm_smmu_device_reset(smmu);
-
for (i = 0; i < smmu->num_global_irqs; ++i) {
err = request_irq(smmu->irqs[i],
arm_smmu_global_fault,
for (i = 0; i < smmu->num_global_irqs; ++i) {
err = request_irq(smmu->irqs[i],
arm_smmu_global_fault,
@@
-1876,6
+1875,8
@@
static int arm_smmu_device_dt_probe(struct platform_device *pdev)
spin_lock(&arm_smmu_devices_lock);
list_add(&smmu->list, &arm_smmu_devices);
spin_unlock(&arm_smmu_devices_lock);
spin_lock(&arm_smmu_devices_lock);
list_add(&smmu->list, &arm_smmu_devices);
spin_unlock(&arm_smmu_devices_lock);
+
+ arm_smmu_device_reset(smmu);
return 0;
out_free_irqs:
return 0;
out_free_irqs:
@@
-1966,10
+1967,10
@@
static int __init arm_smmu_init(void)
return ret;
/* Oh, for a proper bus abstraction */
return ret;
/* Oh, for a proper bus abstraction */
- if (!iommu_present(&platform_bus_type))
;
+ if (!iommu_present(&platform_bus_type))
bus_set_iommu(&platform_bus_type, &arm_smmu_ops);
bus_set_iommu(&platform_bus_type, &arm_smmu_ops);
- if (!iommu_present(&amba_bustype))
;
+ if (!iommu_present(&amba_bustype))
bus_set_iommu(&amba_bustype, &arm_smmu_ops);
return 0;
bus_set_iommu(&amba_bustype, &arm_smmu_ops);
return 0;