2015-05-05 12:55:29

by Richard Fitzgerald

[permalink] [raw]
Subject: [PATCH] mfd: arizona: Fix incorrect Makefile conditionals

The use of ifneq against 'n' to conditionally compile codec-specific
parts is wrong and was resulting in all the codec tables being built
even for deselected codecs.

For the WM5102 there is an extra dependency on wm5102_patch() so
it is given an alternative empty version when deselected to avoid
having to sprinkle #ifdefs around the code.

Signed-off-by: Richard Fitzgerald <[email protected]>
---
drivers/mfd/Makefile | 6 +++---
include/linux/mfd/arizona/core.h | 8 ++++++++
2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
index ca6d184..63743a7 100644
--- a/drivers/mfd/Makefile
+++ b/drivers/mfd/Makefile
@@ -41,13 +41,13 @@ obj-$(CONFIG_MFD_ARIZONA) += arizona-core.o
obj-$(CONFIG_MFD_ARIZONA) += arizona-irq.o
obj-$(CONFIG_MFD_ARIZONA_I2C) += arizona-i2c.o
obj-$(CONFIG_MFD_ARIZONA_SPI) += arizona-spi.o
-ifneq ($(CONFIG_MFD_WM5102),n)
+ifeq ($(CONFIG_MFD_WM5102),y)
obj-$(CONFIG_MFD_ARIZONA) += wm5102-tables.o
endif
-ifneq ($(CONFIG_MFD_WM5110),n)
+ifeq ($(CONFIG_MFD_WM5110),y)
obj-$(CONFIG_MFD_ARIZONA) += wm5110-tables.o
endif
-ifneq ($(CONFIG_MFD_WM8997),n)
+ifeq ($(CONFIG_MFD_WM8997),y)
obj-$(CONFIG_MFD_ARIZONA) += wm8997-tables.o
endif
obj-$(CONFIG_MFD_WM8400) += wm8400-core.o
diff --git a/include/linux/mfd/arizona/core.h b/include/linux/mfd/arizona/core.h
index 16a498f..7597164 100644
--- a/include/linux/mfd/arizona/core.h
+++ b/include/linux/mfd/arizona/core.h
@@ -153,7 +153,15 @@ int arizona_request_irq(struct arizona *arizona, int irq, char *name,
void arizona_free_irq(struct arizona *arizona, int irq, void *data);
int arizona_set_irq_wake(struct arizona *arizona, int irq, int on);

+#ifdef CONFIG_MFD_WM5102
int wm5102_patch(struct arizona *arizona);
+#else
+static inline int wm5102_patch(struct arizona *arizona)
+{
+ return 0;
+}
+#endif
+
int wm5110_patch(struct arizona *arizona);
int wm8997_patch(struct arizona *arizona);

--
1.7.2.5


2015-05-13 14:15:23

by Lee Jones

[permalink] [raw]
Subject: Re: [PATCH] mfd: arizona: Fix incorrect Makefile conditionals

On Tue, 05 May 2015, Richard Fitzgerald wrote:

> The use of ifneq against 'n' to conditionally compile codec-specific
> parts is wrong and was resulting in all the codec tables being built
> even for deselected codecs.
>
> For the WM5102 there is an extra dependency on wm5102_patch() so
> it is given an alternative empty version when deselected to avoid
> having to sprinkle #ifdefs around the code.
>
> Signed-off-by: Richard Fitzgerald <[email protected]>
> ---
> drivers/mfd/Makefile | 6 +++---
> include/linux/mfd/arizona/core.h | 8 ++++++++
> 2 files changed, 11 insertions(+), 3 deletions(-)

I think this patch should be split into 2.

You can add my:

Acked-by: Lee Jones <[email protected]>

... to both of them when you re-submit.

> diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
> index ca6d184..63743a7 100644
> --- a/drivers/mfd/Makefile
> +++ b/drivers/mfd/Makefile
> @@ -41,13 +41,13 @@ obj-$(CONFIG_MFD_ARIZONA) += arizona-core.o
> obj-$(CONFIG_MFD_ARIZONA) += arizona-irq.o
> obj-$(CONFIG_MFD_ARIZONA_I2C) += arizona-i2c.o
> obj-$(CONFIG_MFD_ARIZONA_SPI) += arizona-spi.o
> -ifneq ($(CONFIG_MFD_WM5102),n)
> +ifeq ($(CONFIG_MFD_WM5102),y)
> obj-$(CONFIG_MFD_ARIZONA) += wm5102-tables.o
> endif
> -ifneq ($(CONFIG_MFD_WM5110),n)
> +ifeq ($(CONFIG_MFD_WM5110),y)
> obj-$(CONFIG_MFD_ARIZONA) += wm5110-tables.o
> endif
> -ifneq ($(CONFIG_MFD_WM8997),n)
> +ifeq ($(CONFIG_MFD_WM8997),y)
> obj-$(CONFIG_MFD_ARIZONA) += wm8997-tables.o
> endif
> obj-$(CONFIG_MFD_WM8400) += wm8400-core.o
> diff --git a/include/linux/mfd/arizona/core.h b/include/linux/mfd/arizona/core.h
> index 16a498f..7597164 100644
> --- a/include/linux/mfd/arizona/core.h
> +++ b/include/linux/mfd/arizona/core.h
> @@ -153,7 +153,15 @@ int arizona_request_irq(struct arizona *arizona, int irq, char *name,
> void arizona_free_irq(struct arizona *arizona, int irq, void *data);
> int arizona_set_irq_wake(struct arizona *arizona, int irq, int on);
>
> +#ifdef CONFIG_MFD_WM5102
> int wm5102_patch(struct arizona *arizona);
> +#else
> +static inline int wm5102_patch(struct arizona *arizona)
> +{
> + return 0;
> +}
> +#endif
> +
> int wm5110_patch(struct arizona *arizona);
> int wm8997_patch(struct arizona *arizona);
>

--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog