[PATCH] wifi: rt2x00: use non of nvmem_cell_get

Rosen Penev posted 1 patch 1 month, 1 week ago
drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
[PATCH] wifi: rt2x00: use non of nvmem_cell_get
Posted by Rosen Penev 1 month, 1 week ago
The library doesn't necessarily depend on OF. This codepath is used by
both soc (OF only) and pci (no such requirement). After this, the only
of specific function is of_get_mac_address, which is needed for nvmem.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
 drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
index 65d0f805459c..93e4ce604171 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -10965,13 +10965,13 @@ EXPORT_SYMBOL_GPL(rt2800_read_eeprom_efuse);
 
 int rt2800_read_eeprom_nvmem(struct rt2x00_dev *rt2x00dev)
 {
-	struct device_node *np = rt2x00dev->dev->of_node;
+	struct device *dev = rt2x00dev->dev;
 	unsigned int len = rt2x00dev->ops->eeprom_size;
 	struct nvmem_cell *cell;
 	const void *data;
 	size_t retlen;
 
-	cell = of_nvmem_cell_get(np, "eeprom");
+	cell = nvmem_cell_get(dev, "eeprom");
 	if (IS_ERR(cell))
 		return PTR_ERR(cell);
 
-- 
2.53.0
Re: [PATCH] wifi: rt2x00: use non of nvmem_cell_get
Posted by Johannes Berg 1 month, 1 week ago
On Thu, 2026-02-19 at 18:09 -0800, Rosen Penev wrote:
> The library doesn't necessarily depend on OF. This codepath is used by
> both soc (OF only) and pci (no such requirement). After this, the only
> of specific function is of_get_mac_address, which is needed for nvmem.

That makes sense, but at least to me the subject doesn't - can you
please rewrite it?

johannes
Re: [PATCH] wifi: rt2x00: use non of nvmem_cell_get
Posted by Stanislaw Gruszka 1 month, 1 week ago
On Thu, Feb 19, 2026 at 06:09:08PM -0800, Rosen Penev wrote:
> The library doesn't necessarily depend on OF. This codepath is used by
> both soc (OF only) and pci (no such requirement). After this, the only
> of specific function is of_get_mac_address, which is needed for nvmem.
> 
> Signed-off-by: Rosen Penev <rosenp@gmail.com>
Acked-by: Stanislaw Gruszka <stf_xl@wp.pl>

> ---
>  drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
> index 65d0f805459c..93e4ce604171 100644
> --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
> +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
> @@ -10965,13 +10965,13 @@ EXPORT_SYMBOL_GPL(rt2800_read_eeprom_efuse);
>  
>  int rt2800_read_eeprom_nvmem(struct rt2x00_dev *rt2x00dev)
>  {
> -	struct device_node *np = rt2x00dev->dev->of_node;
> +	struct device *dev = rt2x00dev->dev;
>  	unsigned int len = rt2x00dev->ops->eeprom_size;
>  	struct nvmem_cell *cell;
>  	const void *data;
>  	size_t retlen;
>  
> -	cell = of_nvmem_cell_get(np, "eeprom");
> +	cell = nvmem_cell_get(dev, "eeprom");
>  	if (IS_ERR(cell))
>  		return PTR_ERR(cell);
>  
> -- 
> 2.53.0
>
Re: [PATCH] wifi: rt2x00: use non of nvmem_cell_get
Posted by Rosen Penev 1 month, 1 week ago
On Fri, Feb 20, 2026 at 2:37 AM Stanislaw Gruszka <stf_xl@wp.pl> wrote:
>
> On Thu, Feb 19, 2026 at 06:09:08PM -0800, Rosen Penev wrote:
> > The library doesn't necessarily depend on OF. This codepath is used by
> > both soc (OF only) and pci (no such requirement). After this, the only
> > of specific function is of_get_mac_address, which is needed for nvmem.
> >
> > Signed-off-by: Rosen Penev <rosenp@gmail.com>
> Acked-by: Stanislaw Gruszka <stf_xl@wp.pl>
>
> > ---
> >  drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
> > index 65d0f805459c..93e4ce604171 100644
> > --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
> > +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
> > @@ -10965,13 +10965,13 @@ EXPORT_SYMBOL_GPL(rt2800_read_eeprom_efuse);
> >
> >  int rt2800_read_eeprom_nvmem(struct rt2x00_dev *rt2x00dev)
> >  {
> > -     struct device_node *np = rt2x00dev->dev->of_node;
> > +     struct device *dev = rt2x00dev->dev;
> >       unsigned int len = rt2x00dev->ops->eeprom_size;
> >       struct nvmem_cell *cell;
> >       const void *data;
> >       size_t retlen;
> >
> > -     cell = of_nvmem_cell_get(np, "eeprom");
> > +     cell = nvmem_cell_get(dev, "eeprom");
most usages of nvmem_cell_get in wireless use devm instead. Seems
pointless to extend the lifetime of cell until removal but what do I
know...
> >       if (IS_ERR(cell))
> >               return PTR_ERR(cell);
> >
> > --
> > 2.53.0
> >
Re: [PATCH] wifi: rt2x00: use non of nvmem_cell_get
Posted by Stanislaw Gruszka 1 month, 1 week ago
On Fri, Feb 20, 2026 at 01:32:55PM -0800, Rosen Penev wrote:
> On Fri, Feb 20, 2026 at 2:37 AM Stanislaw Gruszka <stf_xl@wp.pl> wrote:
> >
> > On Thu, Feb 19, 2026 at 06:09:08PM -0800, Rosen Penev wrote:
> > > The library doesn't necessarily depend on OF. This codepath is used by
> > > both soc (OF only) and pci (no such requirement). After this, the only
> > > of specific function is of_get_mac_address, which is needed for nvmem.
> > >
> > > Signed-off-by: Rosen Penev <rosenp@gmail.com>
> > Acked-by: Stanislaw Gruszka <stf_xl@wp.pl>
> >
> > > ---
> > >  drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 4 ++--
> > >  1 file changed, 2 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
> > > index 65d0f805459c..93e4ce604171 100644
> > > --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
> > > +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
> > > @@ -10965,13 +10965,13 @@ EXPORT_SYMBOL_GPL(rt2800_read_eeprom_efuse);
> > >
> > >  int rt2800_read_eeprom_nvmem(struct rt2x00_dev *rt2x00dev)
> > >  {
> > > -     struct device_node *np = rt2x00dev->dev->of_node;
> > > +     struct device *dev = rt2x00dev->dev;
> > >       unsigned int len = rt2x00dev->ops->eeprom_size;
> > >       struct nvmem_cell *cell;
> > >       const void *data;
> > >       size_t retlen;
> > >
> > > -     cell = of_nvmem_cell_get(np, "eeprom");
> > > +     cell = nvmem_cell_get(dev, "eeprom");
> most usages of nvmem_cell_get in wireless use devm instead. Seems
> pointless to extend the lifetime of cell until removal but what do I
> know...

No need for devm_ here, we release resources locally. 

You can change other  drivers, to avoid keeping nvem cell reference
needlessly, if you think that's beneficial.

Regards
Stanislaw