Message ID | 20200218171321.30990-7-robh@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Removing Calxeda platform support | expand |
On Tue, Feb 18, 2020 at 11:13:16AM -0600, Rob Herring wrote: > Cc: Will Deacon <will@kernel.org> > Cc: Robin Murphy <robin.murphy@arm.com> > Cc: Joerg Roedel <joro@8bytes.org> > Cc: iommu@lists.linux-foundation.org > Signed-off-by: Rob Herring <robh@kernel.org> > --- > Do not apply yet. Pleeeeease? ;) > drivers/iommu/arm-smmu-impl.c | 43 ----------------------------------- > 1 file changed, 43 deletions(-) Yes, I'm happy to get rid of this. Sadly, I don't think we can remove anything from 'struct arm_smmu_impl' because most implementations fall just short of perfect. Anyway, let me know when I can push the button and I'll queue this in the arm-smmu tree. Cheers, Will
On 18/02/2020 5:20 pm, Will Deacon wrote: > On Tue, Feb 18, 2020 at 11:13:16AM -0600, Rob Herring wrote: >> Cc: Will Deacon <will@kernel.org> >> Cc: Robin Murphy <robin.murphy@arm.com> >> Cc: Joerg Roedel <joro@8bytes.org> >> Cc: iommu@lists.linux-foundation.org >> Signed-off-by: Rob Herring <robh@kernel.org> >> --- >> Do not apply yet. > > Pleeeeease? ;) > >> drivers/iommu/arm-smmu-impl.c | 43 ----------------------------------- Presumably we also want to remove the definition of the option from binding too. >> 1 file changed, 43 deletions(-) > > Yes, I'm happy to get rid of this. Sadly, I don't think we can remove > anything from 'struct arm_smmu_impl' because most implementations fall > just short of perfect. Right, this served as the prototype for register access hooks, but we have at least one other known user for those. > Anyway, let me know when I can push the button and I'll queue this in > the arm-smmu tree. FWIW the quirk has proven useful in other circumstances too, but I imagine if we ever have to prototype an integration on VExpress-CA9 again, reverting this patch will hardly be the most unpleasant part :) Robin.
On Tue, Feb 18, 2020 at 11:20 AM Will Deacon <will@kernel.org> wrote: > > On Tue, Feb 18, 2020 at 11:13:16AM -0600, Rob Herring wrote: > > Cc: Will Deacon <will@kernel.org> > > Cc: Robin Murphy <robin.murphy@arm.com> > > Cc: Joerg Roedel <joro@8bytes.org> > > Cc: iommu@lists.linux-foundation.org > > Signed-off-by: Rob Herring <robh@kernel.org> > > --- > > Do not apply yet. > > Pleeeeease? ;) > > > drivers/iommu/arm-smmu-impl.c | 43 ----------------------------------- > > 1 file changed, 43 deletions(-) > > Yes, I'm happy to get rid of this. Sadly, I don't think we can remove > anything from 'struct arm_smmu_impl' because most implementations fall > just short of perfect. > > Anyway, let me know when I can push the button and I'll queue this in > the arm-smmu tree. Seems we're leaving the platform support for now, but I think we never actually enabled SMMU support. It's not in the dts either in mainline nor the version I have which should be close to what shipped in firmware. So as long as Andre agrees, this one is good to apply. Rob
diff --git a/drivers/iommu/arm-smmu-impl.c b/drivers/iommu/arm-smmu-impl.c index 74d97a886e93..a3be8712d27f 100644 --- a/drivers/iommu/arm-smmu-impl.c +++ b/drivers/iommu/arm-smmu-impl.c @@ -9,45 +9,6 @@ #include "arm-smmu.h" - -static int arm_smmu_gr0_ns(int offset) -{ - switch(offset) { - case ARM_SMMU_GR0_sCR0: - case ARM_SMMU_GR0_sACR: - case ARM_SMMU_GR0_sGFSR: - case ARM_SMMU_GR0_sGFSYNR0: - case ARM_SMMU_GR0_sGFSYNR1: - case ARM_SMMU_GR0_sGFSYNR2: - return offset + 0x400; - default: - return offset; - } -} - -static u32 arm_smmu_read_ns(struct arm_smmu_device *smmu, int page, - int offset) -{ - if (page == ARM_SMMU_GR0) - offset = arm_smmu_gr0_ns(offset); - return readl_relaxed(arm_smmu_page(smmu, page) + offset); -} - -static void arm_smmu_write_ns(struct arm_smmu_device *smmu, int page, - int offset, u32 val) -{ - if (page == ARM_SMMU_GR0) - offset = arm_smmu_gr0_ns(offset); - writel_relaxed(val, arm_smmu_page(smmu, page) + offset); -} - -/* Since we don't care for sGFAR, we can do without 64-bit accessors */ -static const struct arm_smmu_impl calxeda_impl = { - .read_reg = arm_smmu_read_ns, - .write_reg = arm_smmu_write_ns, -}; - - struct cavium_smmu { struct arm_smmu_device smmu; u32 id_base; @@ -166,10 +127,6 @@ struct arm_smmu_device *arm_smmu_impl_init(struct arm_smmu_device *smmu) break; } - if (of_property_read_bool(smmu->dev->of_node, - "calxeda,smmu-secure-config-access")) - smmu->impl = &calxeda_impl; - if (of_device_is_compatible(smmu->dev->of_node, "qcom,sdm845-smmu-500")) return qcom_smmu_impl_init(smmu);
Cc: Will Deacon <will@kernel.org> Cc: Robin Murphy <robin.murphy@arm.com> Cc: Joerg Roedel <joro@8bytes.org> Cc: iommu@lists.linux-foundation.org Signed-off-by: Rob Herring <robh@kernel.org> --- Do not apply yet. drivers/iommu/arm-smmu-impl.c | 43 ----------------------------------- 1 file changed, 43 deletions(-) -- 2.20.1