Original name, 'nvmemN', doesn't really give any hint about which physical HW it may represent, so change the code to either pick up an DT alias or use the name passed via 'struct nvmem_config'. Cc: Vivien Didelot <vivien.didelot@xxxxxxxxxxxxxxxxxxxx> Tested-by: Vivien Didelot <vivien.didelot@xxxxxxxxxxxxxxxxxxxx> Signed-off-by: Andrey Smirnov <andrew.smirnov@xxxxxxxxx> --- drivers/nvmem/core.c | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c index 172fa8b72..53b934bb3 100644 --- a/drivers/nvmem/core.c +++ b/drivers/nvmem/core.c @@ -88,26 +88,14 @@ static struct cdev_operations nvmem_chrdev_ops = { .lseek = dev_lseek_default, }; -static int nvmem_register_cdev(struct nvmem_device *nvmem) +static int nvmem_register_cdev(struct nvmem_device *nvmem, const char *name) { struct device_d *dev = &nvmem->dev; const char *alias; - char *devname; - int err; alias = of_alias_get(dev->device_node); - if (alias) { - devname = xstrdup(alias); - } else { - err = cdev_find_free_index("nvmem"); - if (err < 0) { - dev_err(dev, "no index found to name device\n"); - return err; - } - devname = xasprintf("nvmem%d", err); - } - nvmem->cdev.name = devname; + nvmem->cdev.name = xstrdup(alias ?: name); nvmem->cdev.flags = DEVFS_IS_CHARACTER_DEV; nvmem->cdev.ops = &nvmem_chrdev_ops; nvmem->cdev.dev = &nvmem->dev; @@ -222,7 +210,7 @@ struct nvmem_device *nvmem_register(const struct nvmem_config *config) return ERR_PTR(rval); } - rval = nvmem_register_cdev(nvmem); + rval = nvmem_register_cdev(nvmem, config->name); if (rval) { kfree(nvmem); return ERR_PTR(rval); -- 2.17.0 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox