• Hanjun Guo's avatar
    ACPI: platform: setup MSI domain for ACPI based platform device · d4f54a18
    Hanjun Guo authored
    By allowing platform MSI domain to be created on ACPI platforms,
    a platform device MSI domain can be set-up when it is probed.
    
    In order to do that, the MSI domain the platform device connects
    to should be retrieved, so the iort_get_platform_device_domain() is
    introduced to retrieve the domain from the IORT kernel layer.
    
    With the domain retrieved, we need a proper way to set the
    domain to platform device.
    
    Given that some platform devices (irqchips) require the MSI irqdomain
    to be their interrupt parent domain, the MSI irqdomain should be
    determined before platform device is probed but after the platform
    device is allocated which means that the code setting up the MSI
    irqdomain, ie acpi_configure_pmsi_domain() should be called in
    acpi_platform_notify() (that is triggered after adding a device but
    before the respective driver is probed) for the platform MSI domain
    code set-up path to work properly.
    
    Acked-by: Rafael J. Wysocki <rafael@kernel.org> [for glue.c]
    Signed-off-by: default avatarHanjun Guo <hanjun.guo@linaro.org>
    [lorenzo.pieralisi@arm.com: rewrote commit log]
    Signed-off-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Tested-by: default avatarMing Lei <ming.lei@canonical.com>
    Tested-by: default avatarWei Xu <xuwei5@hisilicon.com>
    Tested-by: default avatarSinan Kaya <okaya@codeaurora.org>
    Cc: Marc Zyngier <marc.zyngier@arm.com>
    Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Cc: Tomasz Nowicki <tn@semihalf.com>
    d4f54a18
iort.c 25.2 KB