Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

tty: serial/samsung: fix modular build

There are a few bugs in the samsung serial driver when built as a
loadable module, which makes the console code unavailable, as well as
giving no access to the 'printascii' early debug function. This adds
the appropriate compile time conditionals.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Arnd Bergmann and committed by
Greg Kroah-Hartman
84f57d9e 9ee51f01

+5 -3
+2 -2
drivers/tty/serial/samsung.c
··· 898 898 #define S3C24XX_SERIAL_CONSOLE NULL 899 899 #endif 900 900 901 - #ifdef CONFIG_CONSOLE_POLL 901 + #if defined(CONFIG_SERIAL_SAMSUNG_CONSOLE) && defined(CONFIG_CONSOLE_POLL) 902 902 static int s3c24xx_serial_get_poll_char(struct uart_port *port); 903 903 static void s3c24xx_serial_put_poll_char(struct uart_port *port, 904 904 unsigned char c); ··· 922 922 .request_port = s3c24xx_serial_request_port, 923 923 .config_port = s3c24xx_serial_config_port, 924 924 .verify_port = s3c24xx_serial_verify_port, 925 - #ifdef CONFIG_CONSOLE_POLL 925 + #if defined(CONFIG_SERIAL_SAMSUNG_CONSOLE) && defined(CONFIG_CONSOLE_POLL) 926 926 .poll_get_char = s3c24xx_serial_get_poll_char, 927 927 .poll_put_char = s3c24xx_serial_put_poll_char, 928 928 #endif
+3 -1
drivers/tty/serial/samsung.h
··· 76 76 #define wr_regb(port, reg, val) __raw_writeb(val, portaddr(port, reg)) 77 77 #define wr_regl(port, reg, val) __raw_writel(val, portaddr(port, reg)) 78 78 79 - #ifdef CONFIG_SERIAL_SAMSUNG_DEBUG 79 + #if defined(CONFIG_SERIAL_SAMSUNG_DEBUG) && \ 80 + defined(CONFIG_DEBUG_LL) && \ 81 + !defined(MODULE) 80 82 81 83 extern void printascii(const char *); 82 84