• John Garry's avatar
    ACPI / scan: Do not enumerate Indirect IO host children · dfda4492
    John Garry authored
    Through the logical PIO framework, systems which otherwise have no IO space
    access to legacy ISA/LPC devices may access these devices through so-called
    "indirect IO" method.  In this, IO space accesses for non-PCI hosts are
    redirected to a host LLDD to manually generate the IO space (bus) accesses.
    Hosts are able to register a region in logical PIO space to map to its bus
    address range.
    
    Indirect IO child devices have an associated host-specific bus address.
    Special translation is required to map between a logical PIO address for a
    device and its host bus address.
    
    Since in the ACPI tables the child device IO resources would be the
    host-specific values, it is required the ACPI scan code should not
    enumerate these devices, and that this should be the responsibility of the
    host driver so that it can "fixup" the resources so that they map to the
    appropriate logical PIO addresses.
    
    To avoid enumerating these child devices, add a check from
    acpi_device_enumeration_by_parent() as to whether the parent for a device
    is a member of a known list of "indirect IO" hosts.  For now, the HiSilicon
    LPC host controller ID is added.
    Tested-by: default avatardann frazier <dann.frazier@canonical.com>
    Signed-off-by: default avatarJohn Garry <john.garry@huawei.com>
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    Reviewed-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
    Acked-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    dfda4492
scan.c 57.3 KB