[PATCH 1/4] nvmem: Add macro to register nvmem layout drivers

Miquel Raynal posted 4 patches 2 years, 11 months ago
There is a newer version of this series
[PATCH 1/4] nvmem: Add macro to register nvmem layout drivers
Posted by Miquel Raynal 2 years, 11 months ago
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
Re: [PATCH 1/4] nvmem: Add macro to register nvmem layout drivers
Posted by Rafał Miłecki 2 years, 11 months ago
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 */
Re: [PATCH 1/4] nvmem: Add macro to register nvmem layout drivers
Posted by Miquel Raynal 2 years, 11 months ago
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