All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/2] eeprom: use devres for nvmem providers
@ 2018-09-12  8:04 Bartosz Golaszewski
  2018-09-12  8:04 ` [PATCH v2 1/2] eeprom: eeprom_93xx46: use resource management Bartosz Golaszewski
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Bartosz Golaszewski @ 2018-09-12  8:04 UTC (permalink / raw)
  To: Arnd Bergmann, Greg Kroah-Hartman, Rob Herring,
	Gustavo A . R . Silva, Devang Panchal, Geert Uytterhoeven,
	Srinivas Kandagatla, Boris Brezillon
  Cc: linux-kernel, Bartosz Golaszewski

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

While working on the nvmem framework recently I noticed that there are
many providers that don't use the devm variant of nvmem_register().
This series contains relevant updates for eeprom drivers.

Note that these patches are independent from my other nvmem series[1].

[1] https://lkml.org/lkml/2018/9/12/265

v1 -> v2:
- fix an invalid devm_ free in patch 1

Bartosz Golaszewski (2):
  eeprom: eeprom_93xx46: use resource management
  eeprom: at25: use devm_nvmem_register()

 drivers/misc/eeprom/at25.c          |  3 +--
 drivers/misc/eeprom/eeprom_93xx46.c | 19 +++++--------------
 2 files changed, 6 insertions(+), 16 deletions(-)

-- 
2.18.0


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v2 1/2] eeprom: eeprom_93xx46: use resource management
  2018-09-12  8:04 [PATCH v2 0/2] eeprom: use devres for nvmem providers Bartosz Golaszewski
@ 2018-09-12  8:04 ` Bartosz Golaszewski
  2018-09-12  8:04 ` [PATCH v2 2/2] eeprom: at25: use devm_nvmem_register() Bartosz Golaszewski
  2018-09-20 13:06 ` [PATCH v2 0/2] eeprom: use devres for nvmem providers Bartosz Golaszewski
  2 siblings, 0 replies; 4+ messages in thread
From: Bartosz Golaszewski @ 2018-09-12  8:04 UTC (permalink / raw)
  To: Arnd Bergmann, Greg Kroah-Hartman, Rob Herring,
	Gustavo A . R . Silva, Devang Panchal, Geert Uytterhoeven,
	Srinivas Kandagatla, Boris Brezillon
  Cc: linux-kernel, Bartosz Golaszewski

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

Use resource managed variants of nvmem_register() and kzalloc().

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
---
 drivers/misc/eeprom/eeprom_93xx46.c | 19 +++++--------------
 1 file changed, 5 insertions(+), 14 deletions(-)

diff --git a/drivers/misc/eeprom/eeprom_93xx46.c b/drivers/misc/eeprom/eeprom_93xx46.c
index 38766968bfa2..c6dd9ad9bf7b 100644
--- a/drivers/misc/eeprom/eeprom_93xx46.c
+++ b/drivers/misc/eeprom/eeprom_93xx46.c
@@ -439,7 +439,7 @@ static int eeprom_93xx46_probe(struct spi_device *spi)
 		return -ENODEV;
 	}
 
-	edev = kzalloc(sizeof(*edev), GFP_KERNEL);
+	edev = devm_kzalloc(&spi->dev, sizeof(*edev), GFP_KERNEL);
 	if (!edev)
 		return -ENOMEM;
 
@@ -449,8 +449,7 @@ static int eeprom_93xx46_probe(struct spi_device *spi)
 		edev->addrlen = 6;
 	else {
 		dev_err(&spi->dev, "unspecified address type\n");
-		err = -EINVAL;
-		goto fail;
+		return -EINVAL;
 	}
 
 	mutex_init(&edev->lock);
@@ -473,11 +472,9 @@ static int eeprom_93xx46_probe(struct spi_device *spi)
 	edev->nvmem_config.word_size = 1;
 	edev->nvmem_config.size = edev->size;
 
-	edev->nvmem = nvmem_register(&edev->nvmem_config);
-	if (IS_ERR(edev->nvmem)) {
-		err = PTR_ERR(edev->nvmem);
-		goto fail;
-	}
+	edev->nvmem = devm_nvmem_register(&spi->dev, &edev->nvmem_config);
+	if (IS_ERR(edev->nvmem))
+		return PTR_ERR(edev->nvmem);
 
 	dev_info(&spi->dev, "%d-bit eeprom %s\n",
 		(pd->flags & EE_ADDR8) ? 8 : 16,
@@ -490,21 +487,15 @@ static int eeprom_93xx46_probe(struct spi_device *spi)
 
 	spi_set_drvdata(spi, edev);
 	return 0;
-fail:
-	kfree(edev);
-	return err;
 }
 
 static int eeprom_93xx46_remove(struct spi_device *spi)
 {
 	struct eeprom_93xx46_dev *edev = spi_get_drvdata(spi);
 
-	nvmem_unregister(edev->nvmem);
-
 	if (!(edev->pdata->flags & EE_READONLY))
 		device_remove_file(&spi->dev, &dev_attr_erase);
 
-	kfree(edev);
 	return 0;
 }
 
-- 
2.18.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH v2 2/2] eeprom: at25: use devm_nvmem_register()
  2018-09-12  8:04 [PATCH v2 0/2] eeprom: use devres for nvmem providers Bartosz Golaszewski
  2018-09-12  8:04 ` [PATCH v2 1/2] eeprom: eeprom_93xx46: use resource management Bartosz Golaszewski
@ 2018-09-12  8:04 ` Bartosz Golaszewski
  2018-09-20 13:06 ` [PATCH v2 0/2] eeprom: use devres for nvmem providers Bartosz Golaszewski
  2 siblings, 0 replies; 4+ messages in thread
From: Bartosz Golaszewski @ 2018-09-12  8:04 UTC (permalink / raw)
  To: Arnd Bergmann, Greg Kroah-Hartman, Rob Herring,
	Gustavo A . R . Silva, Devang Panchal, Geert Uytterhoeven,
	Srinivas Kandagatla, Boris Brezillon
  Cc: linux-kernel, Bartosz Golaszewski

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

Use the resource managed variant of nvmem_register().

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
---
 drivers/misc/eeprom/at25.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/misc/eeprom/at25.c b/drivers/misc/eeprom/at25.c
index 840afb398f9e..d874df72853f 100644
--- a/drivers/misc/eeprom/at25.c
+++ b/drivers/misc/eeprom/at25.c
@@ -366,7 +366,7 @@ static int at25_probe(struct spi_device *spi)
 	at25->nvmem_config.word_size = 1;
 	at25->nvmem_config.size = chip.byte_len;
 
-	at25->nvmem = nvmem_register(&at25->nvmem_config);
+	at25->nvmem = devm_nvmem_register(&spi->dev, &at25->nvmem_config);
 	if (IS_ERR(at25->nvmem))
 		return PTR_ERR(at25->nvmem);
 
@@ -384,7 +384,6 @@ static int at25_remove(struct spi_device *spi)
 	struct at25_data	*at25;
 
 	at25 = spi_get_drvdata(spi);
-	nvmem_unregister(at25->nvmem);
 
 	return 0;
 }
-- 
2.18.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v2 0/2] eeprom: use devres for nvmem providers
  2018-09-12  8:04 [PATCH v2 0/2] eeprom: use devres for nvmem providers Bartosz Golaszewski
  2018-09-12  8:04 ` [PATCH v2 1/2] eeprom: eeprom_93xx46: use resource management Bartosz Golaszewski
  2018-09-12  8:04 ` [PATCH v2 2/2] eeprom: at25: use devm_nvmem_register() Bartosz Golaszewski
@ 2018-09-20 13:06 ` Bartosz Golaszewski
  2 siblings, 0 replies; 4+ messages in thread
From: Bartosz Golaszewski @ 2018-09-20 13:06 UTC (permalink / raw)
  To: Srinivas Kandagatla
  Cc: Linux Kernel Mailing List, Bartosz Golaszewski,
	Greg Kroah-Hartman, Devang Panchal, Gustavo A . R . Silva,
	Geert Uytterhoeven, Boris Brezillon, Rob Herring, Arnd Bergmann

2018-09-12 10:04 GMT+02:00 Bartosz Golaszewski <brgl@bgdev.pl>:
> From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
>
> While working on the nvmem framework recently I noticed that there are
> many providers that don't use the devm variant of nvmem_register().
> This series contains relevant updates for eeprom drivers.
>
> Note that these patches are independent from my other nvmem series[1].
>
> [1] https://lkml.org/lkml/2018/9/12/265
>
> v1 -> v2:
> - fix an invalid devm_ free in patch 1
>
> Bartosz Golaszewski (2):
>   eeprom: eeprom_93xx46: use resource management
>   eeprom: at25: use devm_nvmem_register()
>
>  drivers/misc/eeprom/at25.c          |  3 +--
>  drivers/misc/eeprom/eeprom_93xx46.c | 19 +++++--------------
>  2 files changed, 6 insertions(+), 16 deletions(-)
>
> --
> 2.18.0
>

Srinivas,

Greg will probably be busy this cycle, so in case he misses those -
can you send them together with your nvmem pull request? They don't
depend on my other series in any way.

Bart

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-09-20 13:06 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-09-12  8:04 [PATCH v2 0/2] eeprom: use devres for nvmem providers Bartosz Golaszewski
2018-09-12  8:04 ` [PATCH v2 1/2] eeprom: eeprom_93xx46: use resource management Bartosz Golaszewski
2018-09-12  8:04 ` [PATCH v2 2/2] eeprom: at25: use devm_nvmem_register() Bartosz Golaszewski
2018-09-20 13:06 ` [PATCH v2 0/2] eeprom: use devres for nvmem providers Bartosz Golaszewski

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.