aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGraf Yang <graf.yang@analog.com>2008-10-13 05:33:42 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-10-13 12:51:38 -0400
commitb3ef5aba64aed5be0fccca3ff39c8f2282111ce5 (patch)
tree6ffb27e1badbdc59a9d1564ff65003771ad5e97f
parent5ffdeea2f99ed9d46bf954c9fdc64da7da57e81b (diff)
Blackfin Serial Driver: Fix bug - ircp fails on sir over Blackfin UART
We now use the sir_dev/irtty_sir/uart/bfin_serial drivers framework to monitor the TX status. Signed-off-by: Graf Yang <graf.yang@analog.com> Signed-off-by: Bryan Wu <cooloney@kernel.org> Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--arch/blackfin/mach-bf527/include/mach/bfin_serial_5xx.h3
-rw-r--r--arch/blackfin/mach-bf533/include/mach/bfin_serial_5xx.h2
-rw-r--r--arch/blackfin/mach-bf537/include/mach/bfin_serial_5xx.h3
-rw-r--r--arch/blackfin/mach-bf548/include/mach/bfin_serial_5xx.h3
-rw-r--r--arch/blackfin/mach-bf561/include/mach/bfin_serial_5xx.h2
-rw-r--r--drivers/serial/bfin_5xx.c4
6 files changed, 17 insertions, 0 deletions
diff --git a/arch/blackfin/mach-bf527/include/mach/bfin_serial_5xx.h b/arch/blackfin/mach-bf527/include/mach/bfin_serial_5xx.h
index a23d0475081..75722d6008b 100644
--- a/arch/blackfin/mach-bf527/include/mach/bfin_serial_5xx.h
+++ b/arch/blackfin/mach-bf527/include/mach/bfin_serial_5xx.h
@@ -78,6 +78,9 @@
78# define CONFIG_UART1_RTS_PIN -1 78# define CONFIG_UART1_RTS_PIN -1
79# endif 79# endif
80#endif 80#endif
81
82#define BFIN_UART_TX_FIFO_SIZE 2
83
81/* 84/*
82 * The pin configuration is different from schematic 85 * The pin configuration is different from schematic
83 */ 86 */
diff --git a/arch/blackfin/mach-bf533/include/mach/bfin_serial_5xx.h b/arch/blackfin/mach-bf533/include/mach/bfin_serial_5xx.h
index 20471cd5ebf..815bfe5dd1a 100644
--- a/arch/blackfin/mach-bf533/include/mach/bfin_serial_5xx.h
+++ b/arch/blackfin/mach-bf533/include/mach/bfin_serial_5xx.h
@@ -69,6 +69,8 @@
69# endif 69# endif
70#endif 70#endif
71 71
72#define BFIN_UART_TX_FIFO_SIZE 2
73
72struct bfin_serial_port { 74struct bfin_serial_port {
73 struct uart_port port; 75 struct uart_port port;
74 unsigned int old_status; 76 unsigned int old_status;
diff --git a/arch/blackfin/mach-bf537/include/mach/bfin_serial_5xx.h b/arch/blackfin/mach-bf537/include/mach/bfin_serial_5xx.h
index 08dfe30300b..b3f87e1d16a 100644
--- a/arch/blackfin/mach-bf537/include/mach/bfin_serial_5xx.h
+++ b/arch/blackfin/mach-bf537/include/mach/bfin_serial_5xx.h
@@ -78,6 +78,9 @@
78# define CONFIG_UART1_RTS_PIN -1 78# define CONFIG_UART1_RTS_PIN -1
79# endif 79# endif
80#endif 80#endif
81
82#define BFIN_UART_TX_FIFO_SIZE 2
83
81/* 84/*
82 * The pin configuration is different from schematic 85 * The pin configuration is different from schematic
83 */ 86 */
diff --git a/arch/blackfin/mach-bf548/include/mach/bfin_serial_5xx.h b/arch/blackfin/mach-bf548/include/mach/bfin_serial_5xx.h
index 76976b17b53..e4cf35e7ab9 100644
--- a/arch/blackfin/mach-bf548/include/mach/bfin_serial_5xx.h
+++ b/arch/blackfin/mach-bf548/include/mach/bfin_serial_5xx.h
@@ -82,6 +82,9 @@
82# define CONFIG_UART1_RTS_PIN -1 82# define CONFIG_UART1_RTS_PIN -1
83# endif 83# endif
84#endif 84#endif
85
86#define BFIN_UART_TX_FIFO_SIZE 2
87
85/* 88/*
86 * The pin configuration is different from schematic 89 * The pin configuration is different from schematic
87 */ 90 */
diff --git a/arch/blackfin/mach-bf561/include/mach/bfin_serial_5xx.h b/arch/blackfin/mach-bf561/include/mach/bfin_serial_5xx.h
index 6cddca4aa18..e0ce0c1843d 100644
--- a/arch/blackfin/mach-bf561/include/mach/bfin_serial_5xx.h
+++ b/arch/blackfin/mach-bf561/include/mach/bfin_serial_5xx.h
@@ -69,6 +69,8 @@
69# endif 69# endif
70#endif 70#endif
71 71
72#define BFIN_UART_TX_FIFO_SIZE 2
73
72struct bfin_serial_port { 74struct bfin_serial_port {
73 struct uart_port port; 75 struct uart_port port;
74 unsigned int old_status; 76 unsigned int old_status;
diff --git a/drivers/serial/bfin_5xx.c b/drivers/serial/bfin_5xx.c
index 5e20f50342a..a5cf0e70b3f 100644
--- a/drivers/serial/bfin_5xx.c
+++ b/drivers/serial/bfin_5xx.c
@@ -761,6 +761,9 @@ bfin_serial_set_termios(struct uart_port *port, struct ktermios *termios,
761 val |= UCEN; 761 val |= UCEN;
762 UART_PUT_GCTL(uart, val); 762 UART_PUT_GCTL(uart, val);
763 763
764 /* Port speed changed, update the per-port timeout. */
765 uart_update_timeout(port, termios->c_cflag, baud);
766
764 spin_unlock_irqrestore(&uart->port.lock, flags); 767 spin_unlock_irqrestore(&uart->port.lock, flags);
765} 768}
766 769
@@ -865,6 +868,7 @@ static void __init bfin_serial_init_ports(void)
865 868
866 for (i = 0; i < nr_active_ports; i++) { 869 for (i = 0; i < nr_active_ports; i++) {
867 bfin_serial_ports[i].port.uartclk = get_sclk(); 870 bfin_serial_ports[i].port.uartclk = get_sclk();
871 bfin_serial_ports[i].port.fifosize = BFIN_UART_TX_FIFO_SIZE;
868 bfin_serial_ports[i].port.ops = &bfin_serial_pops; 872 bfin_serial_ports[i].port.ops = &bfin_serial_pops;
869 bfin_serial_ports[i].port.line = i; 873 bfin_serial_ports[i].port.line = i;
870 bfin_serial_ports[i].port.iotype = UPIO_MEM; 874 bfin_serial_ports[i].port.iotype = UPIO_MEM;