Re: [PATCH] mfd: core: Preserve OF node when ACPI handle is present
From: Andy Shevchenko
Date: Thu Feb 26 2026 - 02:28:04 EST
On Wed, Feb 25, 2026 at 03:21:05PM -0800, Brian Mak wrote:
> Switch device_set_node back to ACPI_COMPANION_SET, so that the ACPI
device_set_node()
ACPI_COMPANION_SET() // but see below.
> fwnode does not overwrite the of_node with NULL.
> This allows MFD children with both OF nodes and ACPI handles to have OF
> nodes again.
Do you have a real use case? Can you elaborate more (platform, drivers
being involved, et cetera)?
...
> - device_set_node(&pdev->dev, acpi_fwnode_handle(adev ?: parent));
> + ACPI_COMPANION_SET(&pdev->dev, adev ?: parent);
As a quick fix this may be fine, but it needs a big FIXME explaining that this
is actually a design limitation of fwnode that doesn't allow proper sharing
and stacking.
Bouncing back to ACPI_COMPANION_SET() also doesn't feel right as it hides
the real thing here, and real thing is the primary/secondary fwnode types
that we need to care of. Just call set_primary_fwnode() directly. It helps
also to get rid of ACPI_COMPANION_SET() calls where it may be replaced with
simple device_set_node().
--
With Best Regards,
Andy Shevchenko