Provide a module_nvmem_layout_driver() macro at the end of the
nvmem-provider.h header to reduce the boilerplate when registering nvmem
layout drivers.
Suggested-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
---
include/linux/nvmem-provider.h | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/include/linux/nvmem-provider.h b/include/linux/nvmem-provider.h
index 0cf9f9490514..a1c668018894 100644
--- a/include/linux/nvmem-provider.h
+++ b/include/linux/nvmem-provider.h
@@ -240,4 +240,9 @@ nvmem_layout_get_match_data(struct nvmem_device *nvmem,
}
#endif /* CONFIG_NVMEM */
+
+#define module_nvmem_layout_driver(__layout_driver) \
+ module_driver(__layout_driver, nvmem_layout_register, \
+ nvmem_layout_unregister)
+
#endif /* ifndef _LINUX_NVMEM_PROVIDER_H */
--
2.34.1
On 2023-03-15 11:00, Miquel Raynal wrote:
> Provide a module_nvmem_layout_driver() macro at the end of the
> nvmem-provider.h header to reduce the boilerplate when registering
> nvmem
> layout drivers.
I think you should take care of including <linux/device/driver.h>
instead of depending on module_nvmem_layout_driver() *callers* to do
that.
That would help avoiding errors like:
In file included from drivers/nvmem/layouts/fixed.c:5:
./include/linux/nvmem-provider.h:252:2: warning: data definition has no
type or storage class
252 | module_driver(__layout_driver, nvmem_layout_register, \
| ^~~~~~~~~~~~~
./include/linux/nvmem-provider.h:252:2: error: type defaults to 'int' in
declaration of 'module_driver' [-Werror=implicit-int]
252 | module_driver(__layout_driver, nvmem_layout_register, \
| ^~~~~~~~~~~~~
> Suggested-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
> ---
> include/linux/nvmem-provider.h | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/include/linux/nvmem-provider.h
> b/include/linux/nvmem-provider.h
> index 0cf9f9490514..a1c668018894 100644
> --- a/include/linux/nvmem-provider.h
> +++ b/include/linux/nvmem-provider.h
> @@ -240,4 +240,9 @@ nvmem_layout_get_match_data(struct nvmem_device
> *nvmem,
> }
>
> #endif /* CONFIG_NVMEM */
> +
> +#define module_nvmem_layout_driver(__layout_driver) \
> + module_driver(__layout_driver, nvmem_layout_register, \
> + nvmem_layout_unregister)
> +
> #endif /* ifndef _LINUX_NVMEM_PROVIDER_H */
Hi Rafał, rafal@milecki.pl wrote on Thu, 16 Mar 2023 17:28:04 +0100: > On 2023-03-15 11:00, Miquel Raynal wrote: > > Provide a module_nvmem_layout_driver() macro at the end of the > > nvmem-provider.h header to reduce the boilerplate when registering > nvmem > > layout drivers. > > I think you should take care of including <linux/device/driver.h> > instead of depending on module_nvmem_layout_driver() *callers* to do > that. Right, I'll do that. > > That would help avoiding errors like: > > In file included from drivers/nvmem/layouts/fixed.c:5: > ./include/linux/nvmem-provider.h:252:2: warning: data definition has no type or storage class > 252 | module_driver(__layout_driver, nvmem_layout_register, \ > | ^~~~~~~~~~~~~ > ./include/linux/nvmem-provider.h:252:2: error: type defaults to 'int' in declaration of 'module_driver' [-Werror=implicit-int] > 252 | module_driver(__layout_driver, nvmem_layout_register, \ > | ^~~~~~~~~~~~~ > > > > Suggested-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> > > Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> > > --- > > include/linux/nvmem-provider.h | 5 +++++ > > 1 file changed, 5 insertions(+) > > > > diff --git a/include/linux/nvmem-provider.h > b/include/linux/nvmem-provider.h > > index 0cf9f9490514..a1c668018894 100644 > > --- a/include/linux/nvmem-provider.h > > +++ b/include/linux/nvmem-provider.h > > @@ -240,4 +240,9 @@ nvmem_layout_get_match_data(struct nvmem_device > *nvmem, > > } > > > > #endif /* CONFIG_NVMEM */ > > + > > +#define module_nvmem_layout_driver(__layout_driver) \ > > + module_driver(__layout_driver, nvmem_layout_register, \ > > + nvmem_layout_unregister) > > + > > #endif /* ifndef _LINUX_NVMEM_PROVIDER_H */ Thanks, Miquèl
© 2016 - 2026 Red Hat, Inc.