diff options
| -rw-r--r-- | arch/arm/plat-omap/include/plat/serial.h | 9 | ||||
| -rw-r--r-- | drivers/tty/serial/8250/8250.c | 9 | ||||
| -rw-r--r-- | drivers/tty/serial/8250/8250.h | 36 | 
3 files changed, 39 insertions, 15 deletions
diff --git a/arch/arm/plat-omap/include/plat/serial.h b/arch/arm/plat-omap/include/plat/serial.h index 65fce44dce3..b780470d03e 100644 --- a/arch/arm/plat-omap/include/plat/serial.h +++ b/arch/arm/plat-omap/include/plat/serial.h @@ -109,15 +109,6 @@  #define OMAP5UART4		OMAP4UART4  #define ZOOM_UART		95		/* Only on zoom2/3 */ -/* This is only used by 8250.c for omap1510 */ -#define is_omap_port(pt)	({int __ret = 0;			\ -			if ((pt)->port.mapbase == OMAP1_UART1_BASE ||	\ -			    (pt)->port.mapbase == OMAP1_UART2_BASE ||	\ -			    (pt)->port.mapbase == OMAP1_UART3_BASE)	\ -				__ret = 1;				\ -			__ret;						\ -			}) -  #ifndef __ASSEMBLER__  struct omap_board_data; diff --git a/drivers/tty/serial/8250/8250.c b/drivers/tty/serial/8250/8250.c index 3ba4234592b..5ccbd90540c 100644 --- a/drivers/tty/serial/8250/8250.c +++ b/drivers/tty/serial/8250/8250.c @@ -2349,16 +2349,14 @@ serial8250_do_set_termios(struct uart_port *port, struct ktermios *termios,  			serial_port_out(port, UART_EFR, efr);  	} -#ifdef CONFIG_ARCH_OMAP1  	/* Workaround to enable 115200 baud on OMAP1510 internal ports */ -	if (cpu_is_omap1510() && is_omap_port(up)) { +	if (is_omap1510_8250(up)) {  		if (baud == 115200) {  			quot = 1;  			serial_port_out(port, UART_OMAP_OSC_12M_SEL, 1);  		} else  			serial_port_out(port, UART_OMAP_OSC_12M_SEL, 0);  	} -#endif  	/*  	 * For NatSemi, switch to bank 2 not bank 1, to avoid resetting EXCR2, @@ -2439,10 +2437,9 @@ static unsigned int serial8250_port_size(struct uart_8250_port *pt)  {  	if (pt->port.iotype == UPIO_AU)  		return 0x1000; -#ifdef CONFIG_ARCH_OMAP1 -	if (is_omap_port(pt)) +	if (is_omap1_8250(pt))  		return 0x16 << pt->port.regshift; -#endif +  	return 8 << pt->port.regshift;  } diff --git a/drivers/tty/serial/8250/8250.h b/drivers/tty/serial/8250/8250.h index 5a76f9c8d36..3b4ea84898c 100644 --- a/drivers/tty/serial/8250/8250.h +++ b/drivers/tty/serial/8250/8250.h @@ -106,3 +106,39 @@ static inline int serial8250_pnp_init(void) { return 0; }  static inline void serial8250_pnp_exit(void) { }  #endif +#ifdef CONFIG_ARCH_OMAP1 +static inline int is_omap1_8250(struct uart_8250_port *pt) +{ +	int res; + +	switch (pt->port.mapbase) { +	case OMAP1_UART1_BASE: +	case OMAP1_UART2_BASE: +	case OMAP1_UART3_BASE: +		res = 1; +		break; +	default: +		res = 0; +		break; +	} + +	return res; +} + +static inline int is_omap1510_8250(struct uart_8250_port *pt) +{ +	if (!cpu_is_omap1510()) +		return 0; + +	return is_omap1_8250(pt); +} +#else +static inline int is_omap1_8250(struct uart_8250_port *pt) +{ +	return 0; +} +static inline int is_omap1510_8250(struct uart_8250_port *pt) +{ +	return 0; +} +#endif  |