From: Stephen Rothwell Date: Fri, 23 Sep 2011 04:34:50 +0000 (+1000) Subject: Merge remote-tracking branch 'tty/tty-next' X-Git-Tag: next-20110923~9 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=2d9728f9befdd4fc9061840f16b7c6c840573f30;p=karo-tx-linux.git Merge remote-tracking branch 'tty/tty-next' Conflicts: arch/powerpc/include/asm/udbg.h arch/powerpc/kernel/udbg.c drivers/tty/serial/8250.c --- 2d9728f9befdd4fc9061840f16b7c6c840573f30 diff --cc arch/arm/Kconfig index 317b55a043c8,325d2f55744d..472a7f8e6c55 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@@ -714,8 -722,10 +714,7 @@@ config ARCH_S3C64X select ARCH_REQUIRE_GPIOLIB select SAMSUNG_CLKSRC select SAMSUNG_IRQ_VIC_TIMER - select SAMSUNG_IRQ_UART select S3C_GPIO_TRACK - select S3C_GPIO_PULL_UPDOWN - select S3C_GPIO_CFG_S3C24XX - select S3C_GPIO_CFG_S3C64XX select S3C_DEV_NAND select USB_ARCH_HAS_OHCI select SAMSUNG_GPIOLIB_4BIT diff --cc arch/powerpc/include/asm/udbg.h index 6587ec7bc6ec,5354ae91bdde..7efc08eccfa1 --- a/arch/powerpc/include/asm/udbg.h +++ b/arch/powerpc/include/asm/udbg.h @@@ -54,9 -54,7 +54,10 @@@ extern void __init udbg_init_40x_realmo extern void __init udbg_init_cpm(void); extern void __init udbg_init_usbgecko(void); extern void __init udbg_init_wsp(void); +extern void __init udbg_init_ps3gelic(void); +extern void __init udbg_init_debug_opal_raw(void); +extern void __init udbg_init_debug_opal_hvsi(void); + extern void __init udbg_init_ehv_bc(void); #endif /* __KERNEL__ */ #endif /* _ASM_POWERPC_UDBG_H */ diff --cc arch/powerpc/kernel/udbg.c index 35f948203ec5,b4607a91d1f4..7de6d3747619 --- a/arch/powerpc/kernel/udbg.c +++ b/arch/powerpc/kernel/udbg.c @@@ -67,12 -67,8 +67,14 @@@ void __init udbg_early_init(void udbg_init_usbgecko(); #elif defined(CONFIG_PPC_EARLY_DEBUG_WSP) udbg_init_wsp(); +#elif defined(CONFIG_PPC_EARLY_DEBUG_PS3GELIC) + udbg_init_ps3gelic(); +#elif defined(CONFIG_PPC_EARLY_DEBUG_OPAL_RAW) + udbg_init_debug_opal_raw(); +#elif defined(CONFIG_PPC_EARLY_DEBUG_OPAL_HVSI) + udbg_init_debug_opal_hvsi(); + #elif defined(CONFIG_PPC_EARLY_DEBUG_EHV_BC) + udbg_init_ehv_bc(); #endif #ifdef CONFIG_PPC_EARLY_DEBUG diff --cc drivers/tty/serial/8250.c index 610b8e63710d,435ce14e676c..a0e502b7f1c9 --- a/drivers/tty/serial/8250.c +++ b/drivers/tty/serial/8250.c @@@ -443,42 -443,24 +443,6 @@@ static void au_serial_out(struct uart_p __raw_writel(value, p->membase + offset); } - /* Save the LCR value so it can be re-written when a Busy Detect IRQ occurs. */ - static inline void dwapb_save_out_value(struct uart_port *p, int offset, - int value) - { - struct uart_8250_port *up = - container_of(p, struct uart_8250_port, port); - - if (offset == UART_LCR) - up->lcr = value; - } - - /* Read the IER to ensure any interrupt is cleared before returning from ISR. */ - static inline void dwapb_check_clear_ier(struct uart_port *p, int offset) - { - if (offset == UART_TX || offset == UART_IER) - p->serial_in(p, UART_IER); - } - - static void dwapb_serial_out(struct uart_port *p, int offset, int value) -static unsigned int tsi_serial_in(struct uart_port *p, int offset) --{ - int save_offset = offset; - offset = map_8250_out_reg(p, offset) << p->regshift; - dwapb_save_out_value(p, save_offset, value); - writeb(value, p->membase + offset); - dwapb_check_clear_ier(p, save_offset); - unsigned int tmp; - offset = map_8250_in_reg(p, offset) << p->regshift; - if (offset == UART_IIR) { - tmp = readl(p->membase + (UART_IIR & ~3)); - return (tmp >> 16) & 0xff; /* UART_IIR % 4 == 2 */ - } else - return readb(p->membase + offset); --} -- - static void dwapb32_serial_out(struct uart_port *p, int offset, int value) -static void tsi_serial_out(struct uart_port *p, int offset, int value) --{ - int save_offset = offset; -- offset = map_8250_out_reg(p, offset) << p->regshift; - dwapb_save_out_value(p, save_offset, value); - writel(value, p->membase + offset); - dwapb_check_clear_ier(p, save_offset); - if (!((offset == UART_IER) && (value & UART_IER_UUE))) - writeb(value, p->membase + offset); --} -- static unsigned int io_serial_in(struct uart_port *p, int offset) { offset = map_8250_in_reg(p, offset) << p->regshift; @@@ -517,16 -501,11 +483,6 @@@ static void set_io_from_upio(struct uar p->serial_out = au_serial_out; break; - case UPIO_DWAPB: - p->serial_in = mem_serial_in; - p->serial_out = dwapb_serial_out; - break; - - case UPIO_DWAPB32: - p->serial_in = mem32_serial_in; - p->serial_out = dwapb32_serial_out; - case UPIO_TSI: - p->serial_in = tsi_serial_in; - p->serial_out = tsi_serial_out; -- break; -- default: p->serial_in = io_serial_in; p->serial_out = io_serial_out;