[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240219120414.32395299@xps-13>
Date: Mon, 19 Feb 2024 12:04:14 +0100
From: Miquel Raynal <miquel.raynal@...tlin.com>
To: Marco Felsch <m.felsch@...gutronix.de>
Cc: Michael Walle <michael@...le.cc>, srinivas.kandagatla@...aro.org,
gregkh@...uxfoundation.org, rafal@...ecki.pl, linux-kernel@...r.kernel.org,
kernel@...gutronix.de
Subject: Re: [RFC PATCH] nvmem: core: add sysfs cell write support
Hi Marco,
m.felsch@...gutronix.de wrote on Fri, 16 Feb 2024 11:07:50 +0100:
> Hi Michael,
>
> On 24-02-16, Michael Walle wrote:
> > Hi,
> >
> > On Thu Feb 15, 2024 at 10:14 PM CET, Marco Felsch wrote:
> > > @@ -432,6 +466,7 @@ static int nvmem_populate_sysfs_cells(struct nvmem_device *nvmem)
> > > struct bin_attribute **cells_attrs, *attrs;
> > > struct nvmem_cell_entry *entry;
> > > unsigned int ncells = 0, i = 0;
> > > + umode_t mode;
> > > int ret = 0;
> > >
> > > mutex_lock(&nvmem_mutex);
> > > @@ -456,15 +491,18 @@ static int nvmem_populate_sysfs_cells(struct nvmem_device *nvmem)
> > > goto unlock_mutex;
> > > }
> > >
> > > + mode = nvmem_bin_attr_get_umode(nvmem);
> > > +
> > > /* Initialize each attribute to take the name and size of the cell */
> > > list_for_each_entry(entry, &nvmem->cells, node) {
> > > sysfs_bin_attr_init(&attrs[i]);
> > > attrs[i].attr.name = devm_kasprintf(&nvmem->dev, GFP_KERNEL,
> > > "%s@%x", entry->name,
> > > entry->offset);
> > > - attrs[i].attr.mode = 0444;
> >
> > cells are not writable if there is a read post process hook, see
> > __nvmem_cell_entry_write().
> >
> > if (entry->read_post_processing)
> > mode &= ~0222;
>
> good point, thanks for the hint :) I will add this and send a non-rfc
> version if write-support is something you would like to have.
I like the idea but, what about mtd devices (and soon maybe UBI
devices)? This may only work on EEPROM-like devices I guess, where each
area is fully independent and where no erasure is actually expected.
Thanks,
Miquèl
Powered by blists - more mailing lists