[PATCH v5 05/11] nvmem: Add nvmem_device based consumer apis.
From: Srinivas Kandagatla <hidden>
Date: 2015-06-18 12:58:14
Also in:
linux-api, linux-arm-msm, linux-devicetree, lkml
On 16/06/15 23:49, Stephen Boyd wrote:
On 05/21/2015 09:43 AM, Srinivas Kandagatla wrote:quoted
diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c index 8a4b358..68ee8d1 100644 --- a/drivers/nvmem/core.c +++ b/drivers/nvmem/core.c@@ -436,6 +436,51 @@ static int __nvmem_device_put(struct nvmem_device *nvmem) return 0; } +static int nvmem_match(struct device *dev, const void *data) +{ + return !strcmp(dev_name(dev), (const char *)data);Unnecessary cast.
Sure, will fix it.
quoted
+} + +static struct nvmem_device *nvmem_find(const char *name) +{ + struct device *d; + + d = class_find_device(&nvmem_class, NULL, (void *)name, nvmem_match);Unnecessary cast
Will fix it.
quoted
+ + return d ? to_nvmem_device(d) : NULL; +}[...]quoted
+ +void nvmem_device_put(struct nvmem_device *nvmem) +{ + __nvmem_device_put(nvmem); +} +EXPORT_SYMBOL_GPL(nvmem_device_put); +int nvmem_device_cell_read(struct nvmem_device *nvmem, + struct nvmem_cell_info *info, void *buf) +{ +} +EXPORT_SYMBOL_GPL(nvmem_device_cell_read); + +int nvmem_device_cell_write(struct nvmem_device *nvmem, + struct nvmem_cell_info *info, void *buf) +{ +} +EXPORT_SYMBOL_GPL(nvmem_device_cell_write); + +int nvmem_device_read(struct nvmem_device *nvmem, + unsigned int offset, + size_t bytes, void *buf) +{ +} +EXPORT_SYMBOL_GPL(nvmem_device_read); + +int nvmem_device_write(struct nvmem_device *nvmem, + unsigned int offset, + size_t bytes, void *buf) +{ +} +EXPORT_SYMBOL_GPL(nvmem_device_write);Can you please add kernel-doc on these exported APIs?
Thanks for spotting, I will add them.
quoted
+ static int nvmem_init(void) { return class_register(&nvmem_class);diff --git a/include/linux/nvmem-consumer.h b/include/linux/nvmem-consumer.h index c3fa8c7..66c67ba 100644 --- a/include/linux/nvmem-consumer.h +++ b/include/linux/nvmem-consumer.h@@ -23,6 +32,18 @@ void nvmem_cell_put(struct nvmem_cell *cell); void *nvmem_cell_read(struct nvmem_cell *cell, ssize_t *len); int nvmem_cell_write(struct nvmem_cell *cell, void *buf, ssize_t len); +/* direct nvmem device read/write interface */ +struct nvmem_device *nvmem_device_get(struct device *dev, const char *name); +void nvmem_device_put(struct nvmem_device *nvmem); +int nvmem_device_read(struct nvmem_device *nvmem, unsigned int offset, + size_t bytes, void *buf); +int nvmem_device_write(struct nvmem_device *nvmem, unsigned int offset, + size_t bytes, void *buf); +int nvmem_device_cell_read(struct nvmem_device *nvmem, + struct nvmem_cell_info *info, void *buf); +int nvmem_device_cell_write(struct nvmem_device *nvmem, + struct nvmem_cell_info *info, void *buf); +Can we also have devm_nvmem_*_get() APIs please?
Sure, I will spin it in next version.
quoted
diff --git a/include/linux/nvmem-provider.h b/include/linux/nvmem-provider.h index 4908b37..7a982cd 100644 --- a/include/linux/nvmem-provider.h +++ b/include/linux/nvmem-provider.h@@ -12,15 +12,9 @@ #ifndef _LINUX_NVMEM_PROVIDER_H #define _LINUX_NVMEM_PROVIDER_H -struct nvmem_device; +#include <linux/nvmem-consumer.h> -struct nvmem_cell_info { - const char *name; - int offset; - int bytes; - int bit_offset; - int nbits; -}; +struct nvmem_device;Should this diff be part of an earlier patch?
Possibly, something wrong with this diff, I will fix it.