]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit
UBUNTU: SAUCE: ACPI / scan: do not enumerate Indirect IO host children
authorJohn Garry <john.garry@huawei.com>
Mon, 19 Feb 2018 17:48:38 +0000 (01:48 +0800)
committerSeth Forshee <seth.forshee@canonical.com>
Fri, 23 Feb 2018 14:29:24 +0000 (08:29 -0600)
commit008cf8ab391e66c87cd6d1676404a5e5601979f9
tree0b94e5dde687cf4fb82da632dc2a3a06acbe4c86
parent254d9c980c4922c61a229d0d06b12742a5dbfb64
UBUNTU: SAUCE: ACPI / scan: do not enumerate Indirect IO host children

BugLink: https://bugs.launchpad.net/bugs/1677319
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 it's 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, we check 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.

To flag a device to not be enumerated, we reuse the existing
serial bus slave flag.

Signed-off-by: John Garry <john.garry@huawei.com>
[ v14 submittal ]
Signed-off-by: dann frazier <dann.frazier@canonical.com>
Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
drivers/acpi/scan.c