Re: [RFC PATCH 4/4] ACPI: IORT: Add SMMUv3 MSI support

Lorenzo Pieralisi
2017-08-17T12:59:36Z

On Thu, Aug 17, 2017 at 03:49:37PM +0800, Hanjun Guo wrote:

[...]

> > /**
> > * iort_get_platform_device_domain() - Find MSI domain related to a
> > * platform device
> >@@ -1159,6 +1207,8 @@ static int __init iort_add_smmu_platform_device(struct acpi_iort_node *node)
> > /* Configure DMA for the page table walker */
> > acpi_dma_configure(&pdev->dev, attr);
> >+ iort_set_device_domain(&pdev->dev, node);
>
> This is fine to me, but I think we still need to retrieve
> the output ID as the request id for ITS, which means we
> need to do that in iort_pmsi_get_dev_id(), right?

Yes, probably we can add code there like:

ret = iort_get_id_mapping_index(&index);
if (!ret)
iort_node_get_id(node, &id, index);
...

This requires updating iort_node_get_id() to allow single mappings
for SMMU/PMCG as you flagged up before.

I will think a bit more to see if there is a cleaner way to reshuffle
the mapping API.

Thanks,
Lorenzo