]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit
UBUNTU: SAUCE: OF: Add missing I/O range exception for indirect-IO devices
authorZhichang Yuan <yuanzhichang@hisilicon.com>
Mon, 19 Feb 2018 17:48:36 +0000 (01:48 +0800)
committerSeth Forshee <seth.forshee@canonical.com>
Fri, 23 Feb 2018 14:29:19 +0000 (08:29 -0600)
commite11d4d628aa63649948aac1487e49e6fc3b43c1e
treec22532a7c7bf00db18a6f323ce5667a75bdb58cf
parentd7662431c0c6259fe3d4d66b025fc2c1cff25c5e
UBUNTU: SAUCE: OF: Add missing I/O range exception for indirect-IO devices

BugLink: https://bugs.launchpad.net/bugs/1677319
There are some special ISA/LPC devices that work on a specific I/O range
where it is not correct to specify a 'ranges' property in DTS parent node
as cpu addresses translated from DTS node are only for memory space on
some architectures, such as Arm64. Without the parent 'ranges' property,
current of_translate_address() return an error.
Here we add special handlings for this case.
During the OF address translation, some checkings will be perfromed to
identify whether the device node is registered as indirect-IO. If yes,
the I/O translation will be done in a different way from that one of PCI
MMIO. In this way, the I/O 'reg' property of the special ISA/LPC devices
will be parsed correctly.

Signed-off-by: Zhichang Yuan <yuanzhichang@hisilicon.com>
Signed-off-by: Gabriele Paoloni <gabriele.paoloni@huawei.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de> #earlier draft
Acked-by: Rob Herring <robh@kernel.org>
[ v14 submittal ]
Signed-off-by: dann frazier <dann.frazier@canonical.com>
Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
drivers/of/address.c