Messages in this thread | | | Date | Wed, 19 Aug 2020 09:11:22 +0100 | From | Lee Jones <> | Subject | Re: [PATCH] mfd: core: Fix handle of OF disabled MFD cells |
| |
On Sat, 01 Aug 2020, Icenowy Zheng wrote:
> When rewriting the OF match code of MFD core, addition of cells disabled > in OF will result in a failure with error -ENODEV. This is an unexpected > behavior, as the previous behavior is silently ignore the cell. On > SBCs with AXP20x PMICs, this leads to boot failure if AXP20x PMIC > support is built-in and some cells (especially power supply ones) are > disabled.
Thanks for reporting this.
Do you mind if I fix this another way? I plan to reinstate the old code that was removed as part of the offending patch. I will of course add your Reported-by tag.
> Silently ignore the cell when -ENODEV occurs. > > Fixes: e49aa9a9bd22 ("mfd: core: Make a best effort attempt to match devices with the correct of_nodes") > Signed-off-by: Icenowy Zheng <icenowy@aosc.io> > --- > drivers/mfd/mfd-core.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/mfd/mfd-core.c b/drivers/mfd/mfd-core.c > index c3ef58a802bee..31b363c64f4b4 100644 > --- a/drivers/mfd/mfd-core.c > +++ b/drivers/mfd/mfd-core.c > @@ -215,8 +215,13 @@ static int mfd_add_device(struct device *parent, int id, > ret = mfd_match_of_node_to_dev(pdev, np, cell); > if (ret == -EAGAIN) > continue; > - if (ret) > + if (ret) { > + if (ret == -ENODEV) { > + /* Ignore disabled devices error free */ > + ret = 0; > + } > goto fail_alias; > + } > > break; > }
-- Lee Jones [李琼斯] Senior Technical Lead - Developer Services Linaro.org │ Open source software for Arm SoCs Follow Linaro: Facebook | Twitter | Blog
| |