diff mbox series

[v1,1/1] nvmem: qcom-spmi-sdam: Enable multiple devices

Message ID 1594684888-19090-1-git-send-email-gurus@codeaurora.org (mailing list archive)
State Superseded
Headers show
Series [v1,1/1] nvmem: qcom-spmi-sdam: Enable multiple devices | expand

Commit Message

Guru Das Srinagesh July 14, 2020, 12:01 a.m. UTC
Specifying the name of the nvmem device while registering it with the
nvmem framework has the side effect of causing the second instance of a
device using this driver to fail probe with the following error message:

  sysfs: cannot create duplicate filename '/bus/nvmem/devices/spmi_sdam'

Removing the name allows the nvmem framework to assign a monotonically
increasing integer id to each instance of this driver automatically,
like so:

  /sys/bus/nvmem/devices # ls
  nvmem0  nvmem1  nvmem2

Signed-off-by: Guru Das Srinagesh <gurus@codeaurora.org>
---
 drivers/nvmem/qcom-spmi-sdam.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

Comments

Srinivas Kandagatla July 20, 2020, 8:49 a.m. UTC | #1
On 14/07/2020 01:01, Guru Das Srinagesh wrote:
> Specifying the name of the nvmem device while registering it with the
> nvmem framework has the side effect of causing the second instance of a
> device using this driver to fail probe with the following error message:
> 
>    sysfs: cannot create duplicate filename '/bus/nvmem/devices/spmi_sdam'
> 
> Removing the name allows the nvmem framework to assign a monotonically
> increasing integer id to each instance of this driver automatically,
> like so:
> 
>    /sys/bus/nvmem/devices # ls
>    nvmem0  nvmem1  nvmem2
> 
> Signed-off-by: Guru Das Srinagesh <gurus@codeaurora.org>
> ---
>   drivers/nvmem/qcom-spmi-sdam.c | 4 +---
>   1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/drivers/nvmem/qcom-spmi-sdam.c b/drivers/nvmem/qcom-spmi-sdam.c
> index 8682cda..6275f14 100644
> --- a/drivers/nvmem/qcom-spmi-sdam.c
> +++ b/drivers/nvmem/qcom-spmi-sdam.c
> @@ -1,6 +1,6 @@
>   // SPDX-License-Identifier: GPL-2.0-only
>   /*
> - * Copyright (c) 2017 The Linux Foundation. All rights reserved.
> + * Copyright (c) 2017, 2020 The Linux Foundation. All rights reserved.
>    */
>   
>   #include <linux/device.h>
> @@ -140,8 +140,6 @@ static int sdam_probe(struct platform_device *pdev)
>   	sdam->size = val * 32;
>   
>   	sdam->sdam_config.dev = &pdev->dev;
> -	sdam->sdam_config.name = "spmi_sdam";
> -	sdam->sdam_config.id = pdev->id;

Please use new flag NVMEM_DEVID_AUTO introduced in 
https://git.kernel.org/pub/scm/linux/kernel/git/srini/nvmem.git/commit/?h=for-next&id=93ac5fdba1eddc679e9694b64f2fa321317df988 
  instead of pdev->id, which should fix the issue.

--srini

>   	sdam->sdam_config.owner = THIS_MODULE,
>   	sdam->sdam_config.stride = 1;
>   	sdam->sdam_config.word_size = 1;
>
Guru Das Srinagesh July 21, 2020, 7:47 p.m. UTC | #2
On Mon, Jul 20, 2020 at 09:49:22AM +0100, Srinivas Kandagatla wrote:
> 
> 
> On 14/07/2020 01:01, Guru Das Srinagesh wrote:
> >Specifying the name of the nvmem device while registering it with the
> >nvmem framework has the side effect of causing the second instance of a
> >device using this driver to fail probe with the following error message:
> >
> >   sysfs: cannot create duplicate filename '/bus/nvmem/devices/spmi_sdam'
> >
> >Removing the name allows the nvmem framework to assign a monotonically
> >increasing integer id to each instance of this driver automatically,
> >like so:
> >
> >   /sys/bus/nvmem/devices # ls
> >   nvmem0  nvmem1  nvmem2
> >
> >Signed-off-by: Guru Das Srinagesh <gurus@codeaurora.org>
> >---
> >  drivers/nvmem/qcom-spmi-sdam.c | 4 +---
> >  1 file changed, 1 insertion(+), 3 deletions(-)
> >
> >diff --git a/drivers/nvmem/qcom-spmi-sdam.c b/drivers/nvmem/qcom-spmi-sdam.c
> >index 8682cda..6275f14 100644
> >--- a/drivers/nvmem/qcom-spmi-sdam.c
> >+++ b/drivers/nvmem/qcom-spmi-sdam.c
> >@@ -1,6 +1,6 @@
> >  // SPDX-License-Identifier: GPL-2.0-only
> >  /*
> >- * Copyright (c) 2017 The Linux Foundation. All rights reserved.
> >+ * Copyright (c) 2017, 2020 The Linux Foundation. All rights reserved.
> >   */
> >  #include <linux/device.h>
> >@@ -140,8 +140,6 @@ static int sdam_probe(struct platform_device *pdev)
> >  	sdam->size = val * 32;
> >  	sdam->sdam_config.dev = &pdev->dev;
> >-	sdam->sdam_config.name = "spmi_sdam";
> >-	sdam->sdam_config.id = pdev->id;
> 
> Please use new flag NVMEM_DEVID_AUTO introduced in https://git.kernel.org/pub/scm/linux/kernel/git/srini/nvmem.git/commit/?h=for-next&id=93ac5fdba1eddc679e9694b64f2fa321317df988
> instead of pdev->id, which should fix the issue.

Thank you for pointing this out, I've uploaded a v2 using this flag.

Thank you.

Guru Das.
diff mbox series

Patch

diff --git a/drivers/nvmem/qcom-spmi-sdam.c b/drivers/nvmem/qcom-spmi-sdam.c
index 8682cda..6275f14 100644
--- a/drivers/nvmem/qcom-spmi-sdam.c
+++ b/drivers/nvmem/qcom-spmi-sdam.c
@@ -1,6 +1,6 @@ 
 // SPDX-License-Identifier: GPL-2.0-only
 /*
- * Copyright (c) 2017 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2017, 2020 The Linux Foundation. All rights reserved.
  */
 
 #include <linux/device.h>
@@ -140,8 +140,6 @@  static int sdam_probe(struct platform_device *pdev)
 	sdam->size = val * 32;
 
 	sdam->sdam_config.dev = &pdev->dev;
-	sdam->sdam_config.name = "spmi_sdam";
-	sdam->sdam_config.id = pdev->id;
 	sdam->sdam_config.owner = THIS_MODULE,
 	sdam->sdam_config.stride = 1;
 	sdam->sdam_config.word_size = 1;