All of lore.kernel.org
 help / color / mirror / Atom feed
From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
To: gregkh@linuxfoundation.org
Cc: linux-kernel@vger.kernel.org,
	Srinivas Kandagatla <srinivas.kandagatla@linaro.org>,
	Shawn Guo <shawn.guo@linaro.org>
Subject: [PATCH 07/14] nvmem: core: add support to auto devid
Date: Wed, 22 Jul 2020 11:06:58 +0100	[thread overview]
Message-ID: <20200722100705.7772-8-srinivas.kandagatla@linaro.org> (raw)
In-Reply-To: <20200722100705.7772-1-srinivas.kandagatla@linaro.org>

For nvmem providers which have multiple instances, it is required
to suffix the provider name with proper id, so that they do not
confict for the same name. Currently the core does not handle
this case properly eventhough core already has logic to generate the id.

This patch add new devid type NVMEM_DEVID_AUTO for providers to be
able to allow core to assign id and append it to provier name.

Reported-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Tested-by: Shawn Guo <shawn.guo@linaro.org>
---
 drivers/nvmem/core.c           | 10 ++++++++--
 include/linux/nvmem-provider.h |  3 +++
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
index d6bacc878500..6cd3edb2eaf6 100644
--- a/drivers/nvmem/core.c
+++ b/drivers/nvmem/core.c
@@ -635,12 +635,18 @@ struct nvmem_device *nvmem_register(const struct nvmem_config *config)
 	if (!config->no_of_node)
 		nvmem->dev.of_node = config->dev->of_node;
 
-	if (config->id == -1 && config->name) {
+	switch (config->id) {
+	case NVMEM_DEVID_NONE:
 		dev_set_name(&nvmem->dev, "%s", config->name);
-	} else {
+		break;
+	case NVMEM_DEVID_AUTO:
+		dev_set_name(&nvmem->dev, "%s%d", config->name, nvmem->id);
+		break;
+	default:
 		dev_set_name(&nvmem->dev, "%s%d",
 			     config->name ? : "nvmem",
 			     config->name ? config->id : nvmem->id);
+		break;
 	}
 
 	nvmem->read_only = device_property_present(config->dev, "read-only") ||
diff --git a/include/linux/nvmem-provider.h b/include/linux/nvmem-provider.h
index 6d6f8e5d24c9..06409a6c40bc 100644
--- a/include/linux/nvmem-provider.h
+++ b/include/linux/nvmem-provider.h
@@ -27,6 +27,9 @@ enum nvmem_type {
 	NVMEM_TYPE_BATTERY_BACKED,
 };
 
+#define NVMEM_DEVID_NONE	(-1)
+#define NVMEM_DEVID_AUTO	(-2)
+
 /**
  * struct nvmem_config - NVMEM device configuration
  *
-- 
2.21.0


  parent reply	other threads:[~2020-07-22 10:08 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-22 10:06 [PATCH 00/14] nvmem: patches (set 1) for 5.9 Srinivas Kandagatla
2020-07-22 10:06 ` [PATCH 01/14] nvmem: sprd: Fix return value of sprd_efuse_probe() Srinivas Kandagatla
2020-07-22 10:06 ` [PATCH 02/14] MAINTAINERS: Add git tree for NVMEM FRAMEWORK Srinivas Kandagatla
2020-07-22 10:06 ` [PATCH 03/14] nvmem: Enforce nvmem stride in the sysfs interface Srinivas Kandagatla
2020-07-22 10:06 ` [PATCH 04/14] nvmem: sc27xx: add sc2730 efuse support Srinivas Kandagatla
2020-07-22 10:06 ` [PATCH 05/14] nvmem: core: Grammar fixes for help text Srinivas Kandagatla
2020-07-22 10:06 ` [PATCH 06/14] nvmem: core: Add nvmem_cell_read_u8() Srinivas Kandagatla
2020-07-22 10:06 ` Srinivas Kandagatla [this message]
2020-07-22 10:06 ` [PATCH 08/14] nvmem: qfprom: use NVMEM_DEVID_AUTO for multiple instances Srinivas Kandagatla
2020-07-22 10:07 ` [PATCH 09/14] dt-bindings: nvmem: qfprom: Convert to yaml Srinivas Kandagatla
2020-07-22 10:07 ` [PATCH 10/14] dt-bindings: nvmem: Add properties needed for blowing fuses Srinivas Kandagatla
2020-07-22 10:07 ` [PATCH 11/14] nvmem: qfprom: Add fuse blowing support Srinivas Kandagatla
2020-07-22 10:07 ` [PATCH 12/14] nvmem: update Kconfig description Srinivas Kandagatla
2020-07-22 10:07 ` [PATCH 13/14] dt-bindings: nvmem: SID: add binding for A100's SID controller Srinivas Kandagatla
2020-07-22 10:07 ` [PATCH 14/14] nvmem: qcom-spmi-sdam: Enable multiple devices Srinivas Kandagatla

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200722100705.7772-8-srinivas.kandagatla@linaro.org \
    --to=srinivas.kandagatla@linaro.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=shawn.guo@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.