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

tty: serial: msm: Remove 115.2 Kbps maximum baud rate limitation

UART controller is capable to perform transfers up to 4 Mbps.
Remove artificial 115.2 Kbps limitation.

Signed-off-by: Ivan T. Ivanov <ivan.ivanov@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Ivan T. Ivanov and committed by
Greg Kroah-Hartman
850b37a7 99693945

+17 -3
+17 -3
drivers/tty/serial/msm_serial.c
··· 882 882 { 3, 0xdd, 8 }, 883 883 { 2, 0xee, 16 }, 884 884 { 1, 0xff, 31 }, 885 + { 0, 0xff, 31 }, 885 886 }; 886 887 887 888 divisor = uart_get_divisor(port, baud); ··· 894 893 return entry; /* Default to smallest divider */ 895 894 } 896 895 897 - static int msm_set_baud_rate(struct uart_port *port, unsigned int baud) 896 + static int msm_set_baud_rate(struct uart_port *port, unsigned int baud, 897 + unsigned long *saved_flags) 898 898 { 899 899 unsigned int rxstale, watermark, mask; 900 900 struct msm_port *msm_port = UART_TO_MSM(port); 901 901 const struct msm_baud_map *entry; 902 + unsigned long flags; 902 903 903 904 entry = msm_find_best_baud(port, baud); 904 905 905 906 msm_write(port, entry->code, UART_CSR); 907 + 908 + if (baud > 460800) 909 + port->uartclk = baud * 16; 910 + 911 + flags = *saved_flags; 912 + spin_unlock_irqrestore(&port->lock, flags); 913 + 914 + clk_set_rate(msm_port->clk, port->uartclk); 915 + 916 + spin_lock_irqsave(&port->lock, flags); 917 + *saved_flags = flags; 906 918 907 919 /* RX stale watermark */ 908 920 rxstale = entry->rxstale; ··· 1040 1026 msm_stop_dma(port, dma); 1041 1027 1042 1028 /* calculate and set baud rate */ 1043 - baud = uart_get_baud_rate(port, termios, old, 300, 115200); 1044 - baud = msm_set_baud_rate(port, baud); 1029 + baud = uart_get_baud_rate(port, termios, old, 300, 4000000); 1030 + baud = msm_set_baud_rate(port, baud, &flags); 1045 1031 if (tty_termios_baud_rate(termios)) 1046 1032 tty_termios_encode_baud_rate(termios, baud, baud); 1047 1033