linux/drivers/of
Herve Codina c349e45fbe of: property: Allow fw_devlink device-tree on x86
PCI drivers can use a device-tree overlay to describe the hardware
available on the PCI board. This is the case, for instance, of the
LAN966x PCI device driver.

Adding some more nodes in the device-tree overlay adds some more
consumer/supplier relationship between devices instantiated from this
overlay.

Those fw_node consumer/supplier relationships are handled by fw_devlink
and are created based on the device-tree parsing done by the
of_fwnode_add_links() function.

Those consumer/supplier links are needed in order to ensure a correct PM
runtime management and a correct removal order between devices.

For instance, without those links a supplier can be removed before its
consumers is removed leading to all kind of issue if this consumer still
want the use the already removed supplier.

The support for the usage of an overlay from a PCI driver has been added
on x86 systems in commit 1f34072441 ("PCI: of: Create device tree PCI
host bridge node").

In the past, support for fw_devlink on x86 had been tried but this
support has been removed in commit 4a48b66b3f ("of: property: Disable
fw_devlink DT support for X86"). Indeed, this support was breaking some
x86 systems such as OLPC system and the regression was reported in [0].

Instead of disabling this support for all x86 system, use a finer grain
and disable this support only for the possible problematic subset of x86
systems (at least OLPC and CE4100).

Those systems use a device-tree to describe their hardware. Identify
those systems using key properties in the device-tree.

Signed-off-by: Herve Codina <herve.codina@bootlin.com>
Link: https://lore.kernel.org/lkml/3c1f2473-92ad-bfc4-258e-a5a08ad73dd0@web.de/ [0]
Link: https://patch.msgid.link/20260325143555.451852-18-herve.codina@bootlin.com
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
2026-04-07 13:09:29 -05:00
..
unittest-data of: unittest: Add a test case for for_each_of_imap_item iterator 2026-01-15 12:03:27 +01:00
.kunitconfig of: Allow overlay kunit tests to run CONFIG_OF_OVERLAY=n 2024-11-15 14:03:28 -06:00
address.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
base.c of: Convert to of_machine_get_match() 2026-03-13 17:00:04 -05:00
cpu.c of: Constify struct device_node function arguments 2024-10-15 08:58:36 -05:00
device.c of: Clarify OF device context in of_match_device() comment 2025-07-30 17:49:06 -05:00
dynamic.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
empty_root.dts of: Add #address-cells/#size-cells in the device-tree root empty node 2024-12-02 09:26:33 -06:00
fdt_address.c of: Remove a duplicated code block 2025-01-13 08:39:28 -06:00
fdt.c of: reserved_mem: clarify fdt_scan_reserved_mem*() functions 2026-03-26 14:12:02 -05:00
irq.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
Kconfig Kbuild updates for v6.13 2024-11-30 13:41:50 -08:00
kexec.c of/kexec: refactor ima_get_kexec_buffer() to use ima_validate_range() 2026-01-26 19:07:11 -08:00
kobj.c sysfs: treewide: switch back to bin_attribute::read()/write() 2025-06-17 10:44:13 +02:00
kunit_overlay_test.dtso of: Add a KUnit test for overlays and test managed APIs 2024-07-29 15:33:12 -07:00
Makefile of: Add a KUnit test for overlays and test managed APIs 2024-07-29 15:33:12 -07:00
module.c of: module: remove strlen() call in of_modalias() 2024-10-16 12:00:10 -05:00
of_kunit_helpers.c of: Skip devicetree kunit tests when RISCV+ACPI doesn't populate root node 2025-11-26 19:46:23 -06:00
of_numa.c of_numa: fix uninitialized memory nodes causing kernel panic 2025-08-27 22:45:41 -07:00
of_private.h of: reserved_mem: clarify fdt_scan_reserved_mem*() functions 2026-03-26 14:12:02 -05:00
of_reserved_mem.c of: reserved_mem: rework fdt_init_reserved_mem_node() 2026-03-26 14:12:02 -05:00
of_test.c of: address: Add kunit test for __of_address_resource_bounds() 2025-02-02 20:59:04 -06:00
overlay_test.c of: Allow overlay kunit tests to run CONFIG_OF_OVERLAY=n 2024-11-15 14:03:28 -06:00
overlay.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
pdt.c of: Do not expose of_alias_scan() and correct its comments 2025-01-17 08:52:57 -06:00
platform.c of: fix incorrect device creation for reserved memory nodes 2026-02-27 17:49:31 -06:00
property.c of: property: Allow fw_devlink device-tree on x86 2026-04-07 13:09:29 -05:00
resolver.c of: Introduce and apply private is_pseudo_property() 2025-02-25 08:43:00 -06:00
unittest.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00