Patchwork of_mtd: Add no-op stubs to support CONFIG_OF=n

login
register
mail settings
Submitter Ezequiel Garcia
Date Sept. 3, 2013, 2:37 a.m.
Message ID <1378175873-2763-1-git-send-email-ezequiel.garcia@free-electrons.com>
Download mbox | patch
Permalink /patch/272101/
State New
Headers show

Comments

Ezequiel Garcia - Sept. 3, 2013, 2:37 a.m.
Just like the rest of the subsystems, let's add the required no-op
functions to implement stubs when CONFIG_OF=n.

This prevents MTD drivers from having ugly ifdefs in their code,
and instead hide the ifdef monster in the header closet (far away
from people's sight).

Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
---
 include/linux/of_mtd.h | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
Brian Norris - Sept. 3, 2013, 5:36 a.m.
On Mon, Sep 02, 2013 at 11:37:53PM -0300, Ezequiel Garcia wrote:
> Just like the rest of the subsystems, let's add the required no-op
> functions to implement stubs when CONFIG_OF=n.
> 
> This prevents MTD drivers from having ugly ifdefs in their code,
> and instead hide the ifdef monster in the header closet (far away
> from people's sight).
> 
> Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
> ---
>  include/linux/of_mtd.h | 15 +++++++++++++++
>  1 file changed, 15 insertions(+)
> 
> diff --git a/include/linux/of_mtd.h b/include/linux/of_mtd.h
> index ed7f267..66f173e 100644
> --- a/include/linux/of_mtd.h
> +++ b/include/linux/of_mtd.h
> @@ -14,6 +14,21 @@
>  int of_get_nand_ecc_mode(struct device_node *np);
>  int of_get_nand_bus_width(struct device_node *np);
>  bool of_get_nand_on_flash_bbt(struct device_node *np);
> +#else

I would include an extra line on either side of #else.

> +static inline int of_get_nand_ecc_mode(struct device_node *np)
> +{
> +	return -ENOSYS;
> +}
> +
> +static inline int of_get_nand_bus_width(struct device_node *np)
> +{
> +	return -ENOSYS;
> +}
> +
> +static inline bool of_get_nand_on_flash_bbt(struct device_node *np)
> +{
> +	return false;
> +}
>  #endif

Although we are "hiding" the #ifdef's here in the header, we can still
help to make them extra clear; I think the typical style is to include
/* CONFIG_OF_MTD */ markers to show which #ifdef/#else/#endif block it
belongs to.

>  
>  #endif /* __LINUX_OF_MTD_H */

With this trivial changes, I amended your patch and pushed to
l2-mtd.git. Thanks! I look forward to the following patches to remove
some of the driver #ifdef's.

Thanks,
Brian
Ezequiel Garcia - Sept. 3, 2013, 10:53 a.m.
On Mon, Sep 02, 2013 at 10:36:58PM -0700, Brian Norris wrote:
> On Mon, Sep 02, 2013 at 11:37:53PM -0300, Ezequiel Garcia wrote:
> > Just like the rest of the subsystems, let's add the required no-op
> > functions to implement stubs when CONFIG_OF=n.
> > 
> > This prevents MTD drivers from having ugly ifdefs in their code,
> > and instead hide the ifdef monster in the header closet (far away
> > from people's sight).
> > 
> > Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
> > ---
> >  include/linux/of_mtd.h | 15 +++++++++++++++
> >  1 file changed, 15 insertions(+)
> > 
> > diff --git a/include/linux/of_mtd.h b/include/linux/of_mtd.h
> > index ed7f267..66f173e 100644
> > --- a/include/linux/of_mtd.h
> > +++ b/include/linux/of_mtd.h
> > @@ -14,6 +14,21 @@
> >  int of_get_nand_ecc_mode(struct device_node *np);
> >  int of_get_nand_bus_width(struct device_node *np);
> >  bool of_get_nand_on_flash_bbt(struct device_node *np);
> > +#else
> 
> I would include an extra line on either side of #else.
> 
> > +static inline int of_get_nand_ecc_mode(struct device_node *np)
> > +{
> > +	return -ENOSYS;
> > +}
> > +
> > +static inline int of_get_nand_bus_width(struct device_node *np)
> > +{
> > +	return -ENOSYS;
> > +}
> > +
> > +static inline bool of_get_nand_on_flash_bbt(struct device_node *np)
> > +{
> > +	return false;
> > +}
> >  #endif
> 
> Although we are "hiding" the #ifdef's here in the header, we can still
> help to make them extra clear; I think the typical style is to include
> /* CONFIG_OF_MTD */ markers to show which #ifdef/#else/#endif block it
> belongs to.
> 

Right, forgot about those markers!

> >  
> >  #endif /* __LINUX_OF_MTD_H */
> 
> With this trivial changes, I amended your patch and pushed to
> l2-mtd.git. Thanks! I look forward to the following patches to remove
> some of the driver #ifdef's.
> 

Great, thanks for fixing it!

Patch

diff --git a/include/linux/of_mtd.h b/include/linux/of_mtd.h
index ed7f267..66f173e 100644
--- a/include/linux/of_mtd.h
+++ b/include/linux/of_mtd.h
@@ -14,6 +14,21 @@ 
 int of_get_nand_ecc_mode(struct device_node *np);
 int of_get_nand_bus_width(struct device_node *np);
 bool of_get_nand_on_flash_bbt(struct device_node *np);
+#else
+static inline int of_get_nand_ecc_mode(struct device_node *np)
+{
+	return -ENOSYS;
+}
+
+static inline int of_get_nand_bus_width(struct device_node *np)
+{
+	return -ENOSYS;
+}
+
+static inline bool of_get_nand_on_flash_bbt(struct device_node *np)
+{
+	return false;
+}
 #endif
 
 #endif /* __LINUX_OF_MTD_H */