]> git.karo-electronics.de Git - karo-tx-linux.git/commit
ACPI: Add new IORT functions to support MSI domain handling
authorTomasz Nowicki <tn@semihalf.com>
Mon, 12 Sep 2016 18:32:21 +0000 (20:32 +0200)
committerMarc Zyngier <marc.zyngier@arm.com>
Mon, 12 Sep 2016 19:32:40 +0000 (20:32 +0100)
commit4bf2efd26d7624372fb7adff8745b4c2e8407004
tree5ef3d2923f7f5eced9a004d11876c887b3b67976
parent88ef16d888a094587b2ac77de60927df5da5d56d
ACPI: Add new IORT functions to support MSI domain handling

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:
1. iort_msi_map_rid() to map MSI RID for a device
2. iort_get_device_domain() to find domain token for a device

Signed-off-by: Tomasz Nowicki <tn@semihalf.com>
Acked-by: Rafael J. Wysocki <rjw@rjwysocki.net>
Reviewed-by: Hanjun Guo <hanjun.guo@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
drivers/acpi/arm64/iort.c
include/linux/acpi_iort.h