Re: [PATCH 7/7] iommu/arm-smmu: Allow building as a module

From: Will Deacon
Date: Wed Oct 30 2019 - 11:26:12 EST


Hi Rob,

On Wed, Oct 30, 2019 at 10:22:12AM -0500, Rob Herring wrote:
> On Wed, Oct 30, 2019 at 02:51:12PM +0000, Will Deacon wrote:
> > By conditionally dropping support for the legacy binding and exporting
> > the newly introduced 'arm_smmu_impl_init()' function we can allow the
> > ARM SMMU driver to be built as a module.
> >
> > Signed-off-by: Will Deacon <will@xxxxxxxxxx>
> > ---
> > drivers/iommu/Kconfig | 14 ++++++++-
> > drivers/iommu/arm-smmu-impl.c | 6 ++++
> > drivers/iommu/arm-smmu.c | 54 +++++++++++++++++++++--------------
> > 3 files changed, 51 insertions(+), 23 deletions(-)
> >
> > diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
> > index 7583d47fc4d5..02703f51e533 100644
> > --- a/drivers/iommu/Kconfig
> > +++ b/drivers/iommu/Kconfig
> > @@ -350,7 +350,7 @@ config SPAPR_TCE_IOMMU
> >
> > # ARM IOMMU support
> > config ARM_SMMU
> > - bool "ARM Ltd. System MMU (SMMU) Support"
> > + tristate "ARM Ltd. System MMU (SMMU) Support"
> > depends on (ARM64 || ARM) && MMU
> > select IOMMU_API
> > select IOMMU_IO_PGTABLE_LPAE
> > @@ -362,6 +362,18 @@ config ARM_SMMU
> > Say Y here if your SoC includes an IOMMU device implementing
> > the ARM SMMU architecture.
> >
> > +config ARM_SMMU_LEGACY_DT_BINDINGS
> > + bool "Support the legacy \"mmu-masters\" devicetree bindings"
>
> Can't we just remove this now? The only user is Seattle. Is anyone still
> using Seattle AND DT? There's been no real dts change since Feb '16.
> There's a bit of clean-up needed in the Seattle dts files, so I'd like
> to remove them if there's not users.
>
> If there are users, can't we just make them move to the new binding?
> Yes compatibility, but that really depends on the users caring.
>
> I though Calxeda was using this too, but I guess we didn't get that
> finished. We should probably remove that secure mode flag as well.

There was a recent mail from somebody using TX1 with this binding, although
it didn't actually appear to be working (but I'm not sure how much of that
is the bindings fault):

http://lists.infradead.org/pipermail/linux-arm-kernel/2019-October/683992.html

However, I agree with you, which is why the new Kconfig option actually
disables the legacy bindings by default in the hope that we can remove it
in a few releases time, with an easy "get things sorta working" option in
the meantime.

Will