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