[PATCH 2/3] iommu/of: Support ats-supported device-tree property
Liviu Dudau
liviu.dudau at arm.com
Tue Apr 30 03:23:29 PDT 2024
On Mon, Apr 29, 2024 at 12:39:38PM +0100, Jean-Philippe Brucker wrote:
> Device-tree declares whether a PCI root-complex supports ATS by setting
> the "ats-supported" property. Copy this flag into device fwspec to let
> IOMMU drivers quickly check if they can enable ATS for a device.
>
> Signed-off-by: Jean-Philippe Brucker <jean-philippe at linaro.org>
> Tested-by: Ketan Patil <ketanp at nvidia.com>
Reviewed-by: Liviu Dudau <liviu.dudau at arm.com>
> ---
> drivers/iommu/of_iommu.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
> index 3afe0b48a48db..082b94c2b3291 100644
> --- a/drivers/iommu/of_iommu.c
> +++ b/drivers/iommu/of_iommu.c
> @@ -105,6 +105,14 @@ static int of_iommu_configure_device(struct device_node *master_np,
> of_iommu_configure_dev(master_np, dev);
> }
>
> +static void of_pci_check_device_ats(struct device *dev, struct device_node *np)
> +{
> + struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev);
> +
> + if (fwspec && of_property_read_bool(np, "ats-supported"))
> + fwspec->flags |= IOMMU_FWSPEC_PCI_RC_ATS;
> +}
> +
> /*
> * Returns:
> * 0 on success, an iommu was configured
> @@ -147,6 +155,7 @@ int of_iommu_configure(struct device *dev, struct device_node *master_np,
> pci_request_acs();
> err = pci_for_each_dma_alias(to_pci_dev(dev),
> of_pci_iommu_init, &info);
> + of_pci_check_device_ats(dev, master_np);
> } else {
> err = of_iommu_configure_device(master_np, dev, id);
> }
> --
> 2.44.0
>
--
====================
| I would like to |
| fix the world, |
| but they're not |
| giving me the |
\ source code! /
---------------
¯\_(ツ)_/¯
More information about the linux-arm-kernel
mailing list