Message ID | 20210226140305.26356-11-nsaenzjulienne@suse.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Generic way of dealing with broken 64-bit buses | expand |
On 2021-02-26 14:03, Nicolas Saenz Julienne wrote: > arm-smmu can now deal with integrations on buses that don't support > 64bit MMIO accesses. No need to create a special case for that on > Marvell's integration. This breaks compatibility with existing DTs. Robin. > Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> > --- > drivers/iommu/arm/arm-smmu/arm-smmu-impl.c | 21 --------------------- > 1 file changed, 21 deletions(-) > > diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu-impl.c b/drivers/iommu/arm/arm-smmu/arm-smmu-impl.c > index 136872e77195..55d40e37e144 100644 > --- a/drivers/iommu/arm/arm-smmu/arm-smmu-impl.c > +++ b/drivers/iommu/arm/arm-smmu/arm-smmu-impl.c > @@ -145,25 +145,6 @@ static const struct arm_smmu_impl arm_mmu500_impl = { > .reset = arm_mmu500_reset, > }; > > -static u64 mrvl_mmu500_readq(struct arm_smmu_device *smmu, int page, int off) > -{ > - /* > - * Marvell Armada-AP806 erratum #582743. > - * Split all the readq to double readl > - */ > - return hi_lo_readq_relaxed(arm_smmu_page(smmu, page) + off); > -} > - > -static void mrvl_mmu500_writeq(struct arm_smmu_device *smmu, int page, int off, > - u64 val) > -{ > - /* > - * Marvell Armada-AP806 erratum #582743. > - * Split all the writeq to double writel > - */ > - hi_lo_writeq_relaxed(val, arm_smmu_page(smmu, page) + off); > -} > - > static int mrvl_mmu500_cfg_probe(struct arm_smmu_device *smmu) > { > > @@ -181,8 +162,6 @@ static int mrvl_mmu500_cfg_probe(struct arm_smmu_device *smmu) > } > > static const struct arm_smmu_impl mrvl_mmu500_impl = { > - .read_reg64 = mrvl_mmu500_readq, > - .write_reg64 = mrvl_mmu500_writeq, > .cfg_probe = mrvl_mmu500_cfg_probe, > .reset = arm_mmu500_reset, > }; >
On Tue, 2021-03-02 at 11:40 +0000, Robin Murphy wrote: > On 2021-02-26 14:03, Nicolas Saenz Julienne wrote: > > arm-smmu can now deal with integrations on buses that don't support > > 64bit MMIO accesses. No need to create a special case for that on > > Marvell's integration. > > This breaks compatibility with existing DTs. Yes. On top of that, I had a brief word with robh on the topic of DT properties. I'm going to explore alternatives that don't depend on it. Regards, Nicolas
diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu-impl.c b/drivers/iommu/arm/arm-smmu/arm-smmu-impl.c index 136872e77195..55d40e37e144 100644 --- a/drivers/iommu/arm/arm-smmu/arm-smmu-impl.c +++ b/drivers/iommu/arm/arm-smmu/arm-smmu-impl.c @@ -145,25 +145,6 @@ static const struct arm_smmu_impl arm_mmu500_impl = { .reset = arm_mmu500_reset, }; -static u64 mrvl_mmu500_readq(struct arm_smmu_device *smmu, int page, int off) -{ - /* - * Marvell Armada-AP806 erratum #582743. - * Split all the readq to double readl - */ - return hi_lo_readq_relaxed(arm_smmu_page(smmu, page) + off); -} - -static void mrvl_mmu500_writeq(struct arm_smmu_device *smmu, int page, int off, - u64 val) -{ - /* - * Marvell Armada-AP806 erratum #582743. - * Split all the writeq to double writel - */ - hi_lo_writeq_relaxed(val, arm_smmu_page(smmu, page) + off); -} - static int mrvl_mmu500_cfg_probe(struct arm_smmu_device *smmu) { @@ -181,8 +162,6 @@ static int mrvl_mmu500_cfg_probe(struct arm_smmu_device *smmu) } static const struct arm_smmu_impl mrvl_mmu500_impl = { - .read_reg64 = mrvl_mmu500_readq, - .write_reg64 = mrvl_mmu500_writeq, .cfg_probe = mrvl_mmu500_cfg_probe, .reset = arm_mmu500_reset, };
arm-smmu can now deal with integrations on buses that don't support 64bit MMIO accesses. No need to create a special case for that on Marvell's integration. Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> --- drivers/iommu/arm/arm-smmu/arm-smmu-impl.c | 21 --------------------- 1 file changed, 21 deletions(-)