From: Nicolin Chen <nicoleotsuka@xxxxxxxxx> The SMMUv3 devices implemented in the Grace SoC support NVIDIA's custom CMDQ-Virtualization (CMDQV) hardware. Like the new ECMDQ feature first introduced in the ARM SMMUv3.3 specification, CMDQV adds multiple VCMDQ interfaces to supplement the single architected SMMU_CMDQ in an effort to reduce contention. This patch series adds CMDQV support to the arm-smmu-v3 driver by first borrowing the implementation infrastructure from the arm-smmu driver. The NVIDIA implementation is then introduced along with hooks allowing implmentations to specify custom issue_cmdlist methods. Additionally, the original issue_cmdlist and supporting methods in the arm-smmu-v3 driver are reworked to support alternative CMDQs. [ nicolinc: this v1 is more of base changes for CMDQV driver; while I am still integrating incremental features based on VFIO mdev, I sent these two out in order to collect comments and suggestions to see if the overall structure is promising. I will add more changes in v2 or later versions for more detailed implementations. Thank you! ] Nate Watterson (2): iommu/arm-smmu-v3: Add implementation infrastructure iommu/arm-smmu-v3: Add support for NVIDIA CMDQ-Virtualization hw MAINTAINERS | 2 + drivers/iommu/arm/arm-smmu-v3/Makefile | 2 +- .../iommu/arm/arm-smmu-v3/arm-smmu-v3-impl.c | 15 + drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 71 +-- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 15 + .../iommu/arm/arm-smmu-v3/nvidia-smmu-v3.c | 425 ++++++++++++++++++ 6 files changed, 503 insertions(+), 27 deletions(-) create mode 100644 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-impl.c create mode 100644 drivers/iommu/arm/arm-smmu-v3/nvidia-smmu-v3.c -- 2.17.1