From: Greg Kroah-Hartman Date: Sun, 27 Nov 2011 04:07:25 +0000 (-0800) Subject: Merge 3.2-rc3 into tty-next to handle merge conflict in tty_ldisc.c X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=dd7c7c3f69291baa488b8a50db683d5fbf44166a;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git Merge 3.2-rc3 into tty-next to handle merge conflict in tty_ldisc.c Signed-off-by: Greg Kroah-Hartman --- dd7c7c3f69291baa488b8a50db683d5fbf44166a diff --cc drivers/tty/serial/Kconfig index 45c5758f7690,925a1e547a83..705d2dc39c9a --- a/drivers/tty/serial/Kconfig +++ b/drivers/tty/serial/Kconfig @@@ -1589,22 -1568,13 +1589,22 @@@ config SERIAL_PCH_UAR which is an IOH(Input/Output Hub) for x86 embedded processor. Enabling PCH_DMA, this PCH UART works as DMA mode. - This driver also can be used for OKI SEMICONDUCTOR IOH(Input/ - Output Hub), ML7213 and ML7223. - ML7213 IOH is for IVI(In-Vehicle Infotainment) use and ML7223 IOH is - for MP(Media Phone) use. - ML7213/ML7223 is companion chip for Intel Atom E6xx series. - ML7213/ML7223 is completely compatible for Intel EG20T PCH. + This driver also can be used for LAPIS Semiconductor IOH(Input/ + Output Hub), ML7213, ML7223 and ML7831. + ML7213 IOH is for IVI(In-Vehicle Infotainment) use, ML7223 IOH is + for MP(Media Phone) use and ML7831 IOH is for general purpose use. + ML7213/ML7223/ML7831 is companion chip for Intel Atom E6xx series. + ML7213/ML7223/ML7831 is completely compatible for Intel EG20T PCH. +config SERIAL_PCH_UART_CONSOLE + bool "Support for console on Intel EG20T PCH UART/OKI SEMICONDUCTOR ML7213 IOH" + depends on SERIAL_PCH_UART=y + select SERIAL_CORE_CONSOLE + help + Say Y here if you wish to use the PCH UART as the system console + (the system console is the device which receives all kernel messages and + warnings and which allows logins in single user mode). + config SERIAL_MSM_SMD bool "Enable tty device interface for some SMD ports" default n diff --cc drivers/tty/serial/pch_uart.c index b950d059a781,d6aba8c087e4..de0f613ed6f5 --- a/drivers/tty/serial/pch_uart.c +++ b/drivers/tty/serial/pch_uart.c @@@ -277,11 -272,10 +279,13 @@@ static struct pch_uart_driver_data drv_ [pch_ml7213_uart2] = {PCH_UART_2LINE, 2}, [pch_ml7223_uart0] = {PCH_UART_8LINE, 0}, [pch_ml7223_uart1] = {PCH_UART_2LINE, 1}, + [pch_ml7831_uart0] = {PCH_UART_8LINE, 0}, + [pch_ml7831_uart1] = {PCH_UART_2LINE, 1}, }; +#ifdef CONFIG_SERIAL_PCH_UART_CONSOLE +static struct eg20t_port *pch_uart_ports[PCH_UART_NR]; +#endif static unsigned int default_baud = 9600; static const int trigger_level_256[4] = { 1, 64, 128, 224 }; static const int trigger_level_64[4] = { 1, 16, 32, 56 }; diff --cc drivers/tty/tty_ldisc.c index 174db3b0c09e,8e0924f55446..24b95db75d84 --- a/drivers/tty/tty_ldisc.c +++ b/drivers/tty/tty_ldisc.c @@@ -16,8 -24,19 +16,9 @@@ #include #include #include -#include #include - #include -#include - -#include -#include -#include - -#include -#include + #include /* * This guards the refcounted line discipline lists. The lock @@@ -533,11 -553,13 +535,11 @@@ static void tty_ldisc_flush_works(struc * Wait for the line discipline to become idle. The discipline must * have been halted for this to guarantee it remains idle. */ - static int tty_ldisc_wait_idle(struct tty_struct *tty) + static int tty_ldisc_wait_idle(struct tty_struct *tty, long timeout) { - int ret; + long ret; ret = wait_event_timeout(tty_ldisc_idle, - atomic_read(&tty->ldisc->users) == 1, 5 * HZ); + atomic_read(&tty->ldisc->users) == 1, timeout); - if (ret < 0) - return ret; return ret > 0 ? 0 : -EBUSY; }