Subject: Re: [PATCH] tty: serial: serial_mctrl_gpio: Fix build error for !GPIOLIB

From: Greg Kroah-Hartman <[email-masked]>
Date: Wed, 10 Sep 2014 06:57:16 -0700

On Wed, Sep 10, 2014 at 10:06:58AM +0200, Tobias Klauser wrote:
> If SERIAL_MCTRL_GPIO is selected but GPIOLIB is not, the noop functions
> from serial_mctrl_gpio.h are pulled in. However, serial_mctrl_gpio.c is
> still compiled, leading to function redefinition build errors. Since all
> drivers that include serial_mctrl_gpio.h also depend on
> SERIAL_MCTRL_GPIO, let it depend on GPIOLIB as well remove the noop
> functions alltogether.
> 
> Reported-by: Jim Davis <[email-masked]>
> Signed-off-by: Tobias Klauser <[email-masked]>
> ---
>  drivers/tty/serial/Kconfig             |  1 +
>  drivers/tty/serial/serial_mctrl_gpio.h | 35 ----------------------------------
>  2 files changed, 1 insertion(+), 35 deletions(-)

I fixed this yesterday with commit below from Alexander, which does
things a bit differently than you.  Any objections to it?

thanks,

greg k-h
>>From efb089517d2f34a58aceb600ab58b0ca3db1fa07 Mon Sep 17 00:00:00 2001
From: Alexander Shiyan <[email-masked]>
Date: Tue, 9 Sep 2014 08:14:36 +0400
Subject: serial: clps711x: Fix COMPILE_TEST build for target without GPIOLIB
 support

The patch fixes the following build error of CLPS711X serial driver for
targets without GPIOLIB support:

>> drivers/tty/serial/serial_mctrl_gpio.c:44:6: error: redefinition of 'mctrl_gpio_set'
  void mctrl_gpio_set(struct mctrl_gpios *gpios, unsigned int mctrl)
      ^
  In file included from drivers/tty/serial/serial_mctrl_gpio.c:23:0:
  drivers/tty/serial/serial_mctrl_gpio.h:80:6: note: previous definition of 'mctrl_gpio_set' was here
  void mctrl_gpio_set(struct mctrl_gpios *gpios, unsigned int mctrl)
      ^

Reported-by: kbuild test robot <[email-masked]>
Signed-off-by: Alexander Shiyan <[email-masked]>
Signed-off-by: Greg Kroah-Hartman <[email-masked]>
---
 drivers/tty/serial/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
index 8079f5225575..81f6ee7d4223 100644
--- a/drivers/tty/serial/Kconfig
+++ b/drivers/tty/serial/Kconfig
@@ -222,7 +222,7 @@ config SERIAL_CLPS711X
 	tristate "CLPS711X serial port support"
 	depends on ARCH_CLPS711X || COMPILE_TEST
 	select SERIAL_CORE
-	select SERIAL_MCTRL_GPIO
+	select SERIAL_MCTRL_GPIO if GPIOLIB
 	help
 	  This enables the driver for the on-chip UARTs of the Cirrus
 	  Logic EP711x/EP721x/EP731x processors.
-- 
2.1.0