linux_dsm_epyc7002/drivers/of
Robin Murphy 951d48855d of: Make of_dma_get_range() work on bus nodes
Since the "dma-ranges" property is only valid for a node representing a
bus, of_dma_get_range() currently assumes the node passed in is a leaf
representing a device, and starts the walk from its parent. In cases
like PCI host controllers on typical FDT systems, however, where the PCI
endpoints are probed dynamically the initial leaf node represents the
'bus' itself, and this logic means we fail to consider any "dma-ranges"
describing the host bridge itself. Rework the logic such that
of_dma_get_range() also works correctly starting from a bus node
containing "dma-ranges".

While this does mean "dma-ranges" could incorrectly be in a device leaf
node, there isn't really any way in this function to ensure that a leaf
node is or isn't a bus node.

Signed-off-by: Robin Murphy <robin.murphy@arm.com>
[robh: Allow for the bus child node to still be passed in]
Signed-off-by: Rob Herring <robh@kernel.org>
Reviewed-by: Robin Murphy <robin.murphy@arm.com>
Reviewed-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Tested-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
2019-10-09 12:30:09 -05:00
..
unittest-data of/unittest: Add dma-ranges address translation tests 2019-10-08 13:55:26 -05:00
address.c of: Make of_dma_get_range() work on bus nodes 2019-10-09 12:30:09 -05:00
base.c of: Factor out #{addr,size}-cells parsing 2019-10-08 13:50:22 -05:00
device.c of/device.c: fix the wrong comments 2019-05-01 13:41:07 -05:00
dynamic.c of: Remove struct device_node.type pointer 2019-01-10 16:24:44 -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: don't ignore errors from of_setup_earlycon 2019-10-01 07:12:43 -05:00
irq.c of: irq: fix a trivial typo in a doc comment 2019-08-14 20:12:16 -06:00
Kconfig dma-mapping: improve selection of dma_declare_coherent availability 2019-02-20 07:26:35 -07:00
kobj.c of: overlay: add missing of_node_get() in __of_attach_node_sysfs 2018-11-08 22:10:53 -08:00
Makefile PCI: Move OF-related PCI functions into PCI core 2018-01-17 17:36:39 -06:00
of_mdio.c of: mdio: Fix a signedness bug in of_phy_get_and_connect() 2019-09-27 10:19:09 +02:00
of_net.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 428 2019-06-05 17:37:16 +02:00
of_numa.c of, numa: Validate some distance map rules 2018-11-08 12:44:34 -06:00
of_private.h of: Factor out #{addr,size}-cells parsing 2019-10-08 13:50:22 -05:00
of_reserved_mem.c of: reserved-memory: ignore disabled memory-region nodes 2019-05-24 15:53:23 -05:00
overlay.c of: Remove struct device_node.type pointer 2019-01-10 16:24:44 -06:00
pdt.c of: Remove struct device_node.type pointer 2019-01-10 16:24:44 -06:00
platform.c drivers: Introduce device lookup variants by of_node 2019-07-30 13:07:41 +02:00
property.c of: property: Document that of_graph_get_endpoint_by_regs needs of_node_put 2019-04-10 09:03:03 -05:00
resolver.c of: resolver: Add of_node_put() before return and break 2019-08-12 16:52:24 -06:00
unittest.c of/unittest: Add dma-ranges address translation tests 2019-10-08 13:55:26 -05:00