[PATCH 11/16] of: property: Allow fw_devlink device-tree support for x86

Herve Codina herve.codina at bootlin.com
Tue Apr 8 06:49:25 PDT 2025


Hi Andy,

On Mon, 7 Apr 2025 18:36:28 +0300
Andy Shevchenko <andriy.shevchenko at linux.intel.com> wrote:

> On Mon, Apr 07, 2025 at 04:55:40PM +0200, Herve Codina wrote:
> > 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 1f340724419ed ("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 4a48b66b3f52 ("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  
> 
> > system mixing ACPI and device-tree at boot time (i.e. OLPC and CE4100).  
> 
> This is incorrect, they never had ACPI to begin with. Also there is third
> platform that are using DT on x86 core — SpreadTrum based phones.

I will rework the commit log to avoid 'mixing ACPI and device-tree'

For "SpreadTrum based phones", do you have an idea about the Kconfig symbol
I could use to filter our this x86 systems?

Anything I find upstream related to SpreadTrum seems base on ARM cpus.
I probably miss something.

> 
> And not sure about AMD stuff (Geode?).

Same here, if some AMD devices need to be filtered out, is there a specific
Kconfig symbol I can use ?

> 
> > [0] https://lore.kernel.org/lkml/3c1f2473-92ad-bfc4-258e-a5a08ad73dd0@web.de/  
> 
> Can you make this to be a Link tag?
> 
> Link: https://lore.kernel.org/lkml/3c1f2473-92ad-bfc4-258e-a5a08ad73dd0@web.de/ [0]
> 

Yes, of course, I will do that in the next iteration.

Best regards,
Hervé




-- 
Hervé Codina, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com



More information about the linux-arm-kernel mailing list