linux/drivers/of
Zhichang Yuan 65af618d2c of: Add missing I/O range exception for indirect-IO devices
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 the 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,
of_translate_address() returns an error.

Here we add special handling for this case.

During the OF address translation, some checking will be performed to
identify whether the device node is registered as indirect-IO.  If it is,
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.

Tested-by: dann frazier <dann.frazier@canonical.com>
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
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Acked-by: Rob Herring <robh@kernel.org>
2018-04-04 08:42:47 -05:00
..
unittest-data of: unittest: refactor Makefile 2018-01-08 22:08:46 -06:00
address.c of: Add missing I/O range exception for indirect-IO devices 2018-04-04 08:42:47 -05:00
base.c DeviceTree updates for 4.16: 2018-02-01 10:57:45 -08:00
device.c of: Use SPDX license tag for DT files 2018-01-08 08:22:45 -06:00
dynamic.c of: Use SPDX license tag for DT files 2018-01-08 08:22:45 -06:00
fdt_address.c of: Use SPDX license tag for DT files 2018-01-08 08:22:45 -06:00
fdt.c of/fdt: use memblock_virt_alloc for early alloc 2018-01-08 08:24:34 -06:00
irq.c of: Use SPDX license tag for DT files 2018-01-08 08:22:45 -06:00
Kconfig pci-v4.16-changes 2018-02-06 09:59:40 -08:00
kobj.c of: Use SPDX license tag for DT files 2018-01-08 08:22:45 -06:00
Makefile PCI: Move OF-related PCI functions into PCI core 2018-01-17 17:36:39 -06:00
of_mdio.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-01-11 22:13:42 -05:00
of_net.c of_net: factor out repetitive code from of_get_mac_address() 2015-03-29 08:56:17 +01:00
of_numa.c of: Use SPDX license tag for DT files 2018-01-08 08:22:45 -06:00
of_private.h of: Use SPDX license tag for DT files 2018-01-08 08:22:45 -06:00
of_reserved_mem.c of: Use SPDX license tag for DT files 2018-01-08 08:22:45 -06:00
overlay.c of: Use SPDX license tag for DT files 2018-01-08 08:22:45 -06:00
pdt.c of: Use SPDX license tag for DT files 2018-01-08 08:22:45 -06:00
platform.c ARM: SoC driver updates for 4.16 2018-02-01 16:35:31 -08:00
property.c DeviceTree updates for 4.16: 2018-02-01 10:57:45 -08:00
resolver.c of: Use SPDX license tag for DT files 2018-01-08 08:22:45 -06:00
unittest.c of/fdt: use memblock_virt_alloc for early alloc 2018-01-08 08:24:34 -06:00