On Tue, May 07, 2024 at 10:56:50PM -0700, Nicolin Chen wrote: > The driver calls in different places the arm_smmu_get_cmdq() helper, and > it's fine to do so since the helper always returns the single SMMU CMDQ. > However, with NVIDIA CMDQV extension or SMMU ECMDQ, there can be multiple > cmdqs in the system to select one from. And either case requires a batch > of commands to be issued to the same cmdq. Thus, a cmdq has to be decided > in the higher-level callers. > > Add a cmdq pointer in arm_smmu_cmdq_batch structure, and decide the cmdq > when initializing the batch. Pass it down to the bottom function. Update > __arm_smmu_cmdq_issue_cmd() accordingly for single command issuers. > > Suggested-by: Jason Gunthorpe <jgg@xxxxxxxxxx> > Signed-off-by: Nicolin Chen <nicolinc@xxxxxxxxxx> > --- > drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 44 +++++++++++++-------- > drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 1 + > 2 files changed, 29 insertions(+), 16 deletions(-) Reviewed-by: Jason Gunthorpe <jgg@xxxxxxxxxx> Jason