mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-30 22:26:55 +00:00
serial: 8250_pci: more BayTrail error-free bauds
Support the following additional baud rates with 0% error: 500000, 1500000, 2500000, 3500000 Signed-off-by: Aaron Sierra <asierra@xes-inc.com> Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
013daec9c1
commit
50825c57ab
1 changed files with 29 additions and 8 deletions
|
@ -1366,22 +1366,43 @@ byt_set_termios(struct uart_port *p, struct ktermios *termios,
|
||||||
struct ktermios *old)
|
struct ktermios *old)
|
||||||
{
|
{
|
||||||
unsigned int baud = tty_termios_baud_rate(termios);
|
unsigned int baud = tty_termios_baud_rate(termios);
|
||||||
unsigned int m = 6912;
|
unsigned int m, n;
|
||||||
unsigned int n = 15625;
|
|
||||||
u32 reg;
|
u32 reg;
|
||||||
|
|
||||||
/* For baud rates 1M, 2M, 3M and 4M the dividers must be adjusted. */
|
/*
|
||||||
if (baud == 1000000 || baud == 2000000 || baud == 4000000) {
|
* For baud rates 0.5M, 1M, 1.5M, 2M, 2.5M, 3M, 3.5M and 4M the
|
||||||
|
* dividers must be adjusted.
|
||||||
|
*
|
||||||
|
* uartclk = (m / n) * 100 MHz, where m <= n
|
||||||
|
*/
|
||||||
|
switch (baud) {
|
||||||
|
case 500000:
|
||||||
|
case 1000000:
|
||||||
|
case 2000000:
|
||||||
|
case 4000000:
|
||||||
m = 64;
|
m = 64;
|
||||||
n = 100;
|
n = 100;
|
||||||
|
|
||||||
p->uartclk = 64000000;
|
p->uartclk = 64000000;
|
||||||
} else if (baud == 3000000) {
|
break;
|
||||||
|
case 3500000:
|
||||||
|
m = 56;
|
||||||
|
n = 100;
|
||||||
|
p->uartclk = 56000000;
|
||||||
|
break;
|
||||||
|
case 1500000:
|
||||||
|
case 3000000:
|
||||||
m = 48;
|
m = 48;
|
||||||
n = 100;
|
n = 100;
|
||||||
|
|
||||||
p->uartclk = 48000000;
|
p->uartclk = 48000000;
|
||||||
} else {
|
break;
|
||||||
|
case 2500000:
|
||||||
|
m = 40;
|
||||||
|
n = 100;
|
||||||
|
p->uartclk = 40000000;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
m = 6912;
|
||||||
|
n = 15625;
|
||||||
p->uartclk = 44236800;
|
p->uartclk = 44236800;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue