Messages in this thread | | | Subject | Re: [PATCH] mfd: core: Fix handle of OF disabled MFD cells | From | Icenowy Zheng <> | Date | Wed, 19 Aug 2020 16:16:01 +0800 |
| |
在 2020-08-19星期三的 09:11 +0100,Lee Jones写道: > 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.
I think it's okay.
I will test it once it's out.
> > > 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; > > }
| |