mfd: core: Preserve OF node when ACPI handle is present
Subsystems (2)
PATCH v4 1/1 mfd: core: Preserve OF node when ACPI handle is present
Switch device_set_node to set_primary_fwnode, so that the ACPI 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.
---
v4: Switched to use ?: operator.
v3: Changed FIXME to NOTE, as this will not be addressed in the near future.
v2: Use open-coded logic for clarity and add FIXME.
drivers/mfd/mfd-core.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-)
drivers/mfd/mfd-core.c +11 -1
@@ -88,7 +88,17 @@ static void mfd_acpi_add_device(const struct mfd_cell *cell, } } -device_set_node (&pdev->dev,acpi_fwnode_handle (adev ?: parent)); +/* +* NOTE: The fwnode design doesn't allow proper stacking/sharing. This +* should eventually turn into a device fwnode API call that will allow +* prepending to a list of fwnodes (with ACPI taking precedence). +* +* set_primary_fwnode() is used here, instead of device_set_node(), as +* device_set_node() will overwrite the existing fwnode, which may be an +* OF node that was populated earlier. To support a use case where ACPI +* and OF is used in conjunction, we call set_primary_fwnode() instead. +*/ +set_primary_fwnode (&pdev->dev,acpi_fwnode_handle (adev ?: parent)); }#else static inline void mfd_acpi_add_device(const struct mfd_cell *cell,
base-commit: d2a43e7f89da55d6f0f96aaadaa243f35557291e
Signature · 1 line
2.25.1
Re: (subset) [PATCH v4] mfd: core: Preserve OF node when ACPI handle is present
Quoted 8 lines · Brian Mak
Switch
device_set_nodetoset_primary_fwnode, so that the ACPI fwnode does not overwrite theof_nodewith NULL.This allows MFD children with both OF nodes and ACPI handles to have OF nodes again.
[...]
Applied, thanks!
[1/1] mfd: core: Preserve OF node when ACPI handle is present
commit: caa5a5d44d8ae4fd13b744857d66c9313b712d1f
--
Lee Jones [李琼斯]