linux-kernel.vger.kernel.org archive mirror
 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).