From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755698AbcBHQ4a (ORCPT ); Mon, 8 Feb 2016 11:56:30 -0500 Received: from mail1.windriver.com ([147.11.146.13]:38569 "EHLO mail1.windriver.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752939AbcBHQ42 (ORCPT ); Mon, 8 Feb 2016 11:56:28 -0500 Date: Mon, 8 Feb 2016 11:55:35 -0500 From: Paul Gortmaker To: Arnd Bergmann CC: Greg Kroah-Hartman , , Eddie Huang , Matthias Brugger , Sascha Hauer , Matt Redfearn , Paul Burton , Jiri Slaby , , , Subject: Re: [PATCH 1/2] serial: 8250: fix building mediatek with SERIAL_8250=m Message-ID: <20160208165535.GZ23093@windriver.com> References: <1454935947-2743255-1-git-send-email-arnd@arndb.de> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <1454935947-2743255-1-git-send-email-arnd@arndb.de> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org [[PATCH 1/2] serial: 8250: fix building mediatek with SERIAL_8250=m] On 08/02/2016 (Mon 13:51) Arnd Bergmann wrote: > The Mediatek 8250 driver has a 'bool' Kconfig symbol, but that > breaks when SERIAL_8250 is a loadable module: > > drivers/tty/built-in.o: In function `mtk8250_set_termios': > 8250_ingenic.c:(.text+0x1bee8): undefined reference to `serial8250_do_set_termios' > 8250_ingenic.c:(.text+0x1bf10): undefined reference to `uart_get_baud_rate' > 8250_ingenic.c:(.text+0x1c09c): undefined reference to `uart_get_divisor' > drivers/tty/built-in.o: In function `mtk8250_do_pm': > 8250_ingenic.c:(.text+0x1c0d0): undefined reference to `serial8250_do_pm' > drivers/tty/built-in.o: In function `mtk8250_probe': > 8250_ingenic.c:(.text+0x1c2e4): undefined reference to `serial8250_register_8250_port' > serial/8250/8250_mtk.c:287:242: error: data definition has no type or storage class [-Werror] > serial/8250/8250_mtk.c:287:122: error: 'mtk8250_platform_driver_init' defined but not used [-Werror=unused-function] Probably should drop the ingenic lines above ; assuming they are make -j N related and that mtk doesn't depend on or build ingenic. > > This changes the symbol to a 'tristate', so the dependency on > SERIAL_8250 also works when that is set to 'm'. > To actually build the driver, we also need to include . > > Note that the driver uses builtin_platform_driver() and implements > no .remove() callback, so unloading the module is not possible. But this is due to d72d391c126e0ffd3047c06c4bef4d795853d5d5. So again, I'm not sure what this achives vs. just making it depend on having SERIAL_8250=y as a trivial fix for the one build issue. If you really see a use case for tristate, then the above should be reverted before adding your conversion to tristate I think. Paul. -- > > Signed-off-by: Arnd Bergmann > --- > drivers/tty/serial/8250/8250_mtk.c | 1 + > drivers/tty/serial/8250/Kconfig | 2 +- > 2 files changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/tty/serial/8250/8250_mtk.c b/drivers/tty/serial/8250/8250_mtk.c > index 9038843cadc7..7e9242a5ddfe 100644 > --- a/drivers/tty/serial/8250/8250_mtk.c > +++ b/drivers/tty/serial/8250/8250_mtk.c > @@ -19,6 +19,7 @@ > #include > #include > #include > +#include > #include > #include > #include > diff --git a/drivers/tty/serial/8250/Kconfig b/drivers/tty/serial/8250/Kconfig > index 67ad6b0d595b..6ae0fae4f796 100644 > --- a/drivers/tty/serial/8250/Kconfig > +++ b/drivers/tty/serial/8250/Kconfig > @@ -370,7 +370,7 @@ config SERIAL_8250_LPC18XX > serial port, say Y to this option. If unsure, say Y. > > config SERIAL_8250_MT6577 > - bool "Mediatek serial port support" > + tristate "Mediatek serial port support" > depends on SERIAL_8250 && ARCH_MEDIATEK > help > If you have a Mediatek based board and want to use the > -- > 2.7.0 >