As discussed in [1], adding a helper function to configure the STU of an
ATS capability. Function pci_ats_stu_configure() can be called to program
the STU while enumerating the PF, to support scenarios like PF is not
enabled with ATS, whereas VFs can enable it.
In SMMU-V3 driver, calling pci_ats_stu_configure() to confgiure the STU
while enumerating a PF in passthrough mode.
[1] https://lore.kernel.org/linux-arm-kernel/20230221154624.GA3701506@bhelgaas/T/
v2:
- Added dummy definition for pci_ats_stu_configure.
- Changed STU configure to read modify write.
Ganapatrao Kulkarni (2):
PCI/ATS: Add a helper function to configure ATS STU of a PF.
iommu/arm-smmu-v3: Configure STU of a PF if ATS is not enabled.
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 25 +++++++++++++++-
drivers/pci/ats.c | 33 +++++++++++++++++++--
include/linux/pci-ats.h | 3 ++
3 files changed, 58 insertions(+), 3 deletions(-)
--
2.38.1
On 2/27/23 8:21 PM, Ganapatrao Kulkarni wrote:
> As discussed in [1], adding a helper function to configure the STU of an
> ATS capability. Function pci_ats_stu_configure() can be called to program
> the STU while enumerating the PF, to support scenarios like PF is not
> enabled with ATS, whereas VFs can enable it.
>
> In SMMU-V3 driver, calling pci_ats_stu_configure() to confgiure the STU
> while enumerating a PF in passthrough mode.
It looks like you are fixing this issue only for your platform. Is there any
way to generically program PF STU? May be from pci_ats_init()?
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer