Messages in this thread | | | Subject | Re: [PATCH v2] nvmem: core: don't consider subnodes not matching binding | From | Ahmad Fatoum <> | Date | Mon, 6 Apr 2020 13:29:25 +0200 |
| |
Hello Srinivas,
On 3/23/20 4:28 PM, Ahmad Fatoum wrote: > The nvmem cell binding applies to objects which match "^.*@[0-9a-f]+$", > but so far the driver has matched all objects and failed if they didn't > have the expected properties. > > The driver's behavior in this regard precludes future extension of > EEPROMs by child nodes other than nvmem and clashes with the barebox > bootloader binding that extends the fixed-partitions MTD binding to > EEPROMs as it tries to interpret the "fixed-partitions"-compatible > partitions node as a nvmem cell. > > Solve this issue by skipping all subnodes that don't contain an @. > > This still allows for cell names like `partitions@0,0', but this > is much less likely to cause future collisions. > > Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> > --- > v1 -> v2: > use ->full_name instead of ->name as to not break existing correct > cells (Christian) > --- > drivers/nvmem/core.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c > index ef326f243f36..f051051fb1a8 100644 > --- a/drivers/nvmem/core.c > +++ b/drivers/nvmem/core.c > @@ -278,6 +278,8 @@ static int nvmem_add_cells_from_of(struct nvmem_device *nvmem) > parent = dev->of_node; > > for_each_child_of_node(parent, child) { > + if (!strchr(kbasename(child->full_name), '@')) > + continue; > addr = of_get_property(child, "reg", &len); > if (!addr || (len < 2 * sizeof(u32))) { > dev_err(dev, "nvmem: invalid reg on %pOF\n", child); >
gentle ping. I'd also appreciate pointers if you wish to have this addressed differently.
Cheers Ahmad
-- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
| |