Skip to content

Commit

Permalink
nvmem: core: add support to auto devid
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Srinivas-Kandagatla authored and intel-lab-lkp committed Jul 22, 2020
1 parent 0f1295d commit 724fd93
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 2 deletions.
10 changes: 8 additions & 2 deletions drivers/nvmem/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -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") ||
Expand Down
3 changes: 3 additions & 0 deletions include/linux/nvmem-provider.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
*
Expand Down

0 comments on commit 724fd93

Please sign in to comment.