...and of course I had to forget someone's cc - sorry Jordan! :(

Robin.

On 09/08/2019 18:07, Robin Murphy wrote:
Hi all,

This is a big refactoring of arm-smmu in order to help cope with the
various divergent implementation details currently flying around. So
far we've been accruing various quirks and errata workarounds within
the main flow of the driver, but given that it's written to an
architecture rather than any particular hardware implementation, after
a point these start to become increasingly invasive and potentially
conflict with each other.

These patches clean up the existing quirks handled by the driver to
lay a foundation on which we can continue to add more in a maintainable
fashion. The idea is that major vendor customisations can then be kept
in arm-smmu-<vendor>.c implementation files out of each others' way.

A branch is available at:

   git://linux-arm.org/linux-rm  iommu/smmu-impl

which I'll probably keep tweaking until I'm happy with the names of
things; I just didn't want to delay this initial posting any lomnger.

Robin.


Robin Murphy (15):
   iommu/arm-smmu: Convert GR0 registers to bitfields
   iommu/arm-smmu: Convert GR1 registers to bitfields
   iommu/arm-smmu: Convert context bank registers to bitfields
   iommu/arm-smmu: Rework cb_base handling
   iommu/arm-smmu: Split arm_smmu_tlb_inv_range_nosync()
   iommu/arm-smmu: Get rid of weird "atomic" write
   iommu/arm-smmu: Abstract GR1 accesses
   iommu/arm-smmu: Abstract context bank accesses
   iommu/arm-smmu: Abstract GR0 accesses
   iommu/arm-smmu: Rename arm-smmu-regs.h
   iommu/arm-smmu: Add implementation infrastructure
   iommu/arm-smmu: Move Secure access quirk to implementation
   iommu/arm-smmu: Add configuration implementation hook
   iommu/arm-smmu: Add reset implementation hook
   iommu/arm-smmu: Add context init implementation hook

  MAINTAINERS                   |   3 +-
  drivers/iommu/Makefile        |   2 +-
  drivers/iommu/arm-smmu-impl.c | 165 ++++++++++
  drivers/iommu/arm-smmu-regs.h | 210 -------------
  drivers/iommu/arm-smmu.c      | 570 +++++++++++-----------------------
  drivers/iommu/arm-smmu.h      | 386 +++++++++++++++++++++++
  drivers/iommu/qcom_iommu.c    |  15 +-
  7 files changed, 743 insertions(+), 608 deletions(-)
  create mode 100644 drivers/iommu/arm-smmu-impl.c
  delete mode 100644 drivers/iommu/arm-smmu-regs.h
  create mode 100644 drivers/iommu/arm-smmu.h

_______________________________________________
iommu mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to