On 07.09.2016 13:58, Tomasz Nowicki wrote:
For ITS, MSI functionality consists on building domain stack and during that process we need to reference to domain stack components e.g. before we create new DOMAIN_BUS_PCI_MSI domain we need to specify its DOMAIN_BUS_NEXUS parent domain. In order to manage that process properly, maintain list which elements contain domain token (unique for MSI domain stack) and ITS ID: iort_register_domain_token() and iort_deregister_domain_token(). Then retrieve domain token any time later with ITS ID being key off: iort_find_domain_token(). With domain token and domain type we are able to find corresponding IRQ domain.
Since IORT is prepared to describe MSI domain on a per-device basis, use existing IORT helpers and implement two calls:
- iort_msi_map_rid() to map MSI RID for a device
- iort_get_device_domain() to find domain token for a device
Signed-off-by: Tomasz Nowicki tn@semihalf.com Reviewed-by: Hanjun Guo hanjun.guo@linaro.org
Conflicts: drivers/acpi/arm64/iort.c
Rebase leftover ^^^, sorry.
Tomasz