Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 19358
b: refs/heads/master
c: bb3c190
h: refs/heads/master
v: v3
  • Loading branch information
V. Ananda Krishnan authored and Linus Torvalds committed Feb 1, 2006
1 parent 7488fd9 commit 1af7c8e
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 48 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: bfaa1deeb982c985d8e0435e835baeaae63b57fd
refs/heads/master: bb3c190e8d43fcbf1210effb05dc660cb3ccf817
85 changes: 38 additions & 47 deletions trunk/drivers/serial/jsm/jsm_neo.c
Original file line number Diff line number Diff line change
Expand Up @@ -965,56 +965,47 @@ static void neo_param(struct jsm_channel *ch)
baud = ch->ch_custom_speed;
if (ch->ch_flags & CH_BAUD0)
ch->ch_flags &= ~(CH_BAUD0);
} else {
int iindex = 0;
int jindex = 0;

const u64 bauds[4][16] = {
{
0, 50, 75, 110,
134, 150, 200, 300,
600, 1200, 1800, 2400,
4800, 9600, 19200, 38400 },
{
0, 57600, 115200, 230400,
460800, 150, 200, 921600,
600, 1200, 1800, 2400,
4800, 9600, 19200, 38400 },
{
0, 57600, 76800, 115200,
131657, 153600, 230400, 460800,
921600, 1200, 1800, 2400,
4800, 9600, 19200, 38400 },
{
0, 57600, 115200, 230400,
460800, 150, 200, 921600,
600, 1200, 1800, 2400,
4800, 9600, 19200, 38400 }
};

baud = C_BAUD(ch->uart_port.info->tty) & 0xff;

if (ch->ch_c_cflag & CBAUDEX)
iindex = 1;

jindex = baud;

if ((iindex >= 0) && (iindex < 4) && (jindex >= 0) && (jindex < 16))
baud = bauds[iindex][jindex];
else {
jsm_printk(IOCTL, DEBUG, &ch->ch_bd->pci_dev,
"baud indices were out of range (%d)(%d)",
iindex, jindex);
baud = 0;
} else {
int i;
unsigned int cflag;
static struct {
unsigned int rate;
unsigned int cflag;
} baud_rates[] = {
{ 921600, B921600 },
{ 460800, B460800 },
{ 230400, B230400 },
{ 115200, B115200 },
{ 57600, B57600 },
{ 38400, B38400 },
{ 19200, B19200 },
{ 9600, B9600 },
{ 4800, B4800 },
{ 2400, B2400 },
{ 1200, B1200 },
{ 600, B600 },
{ 300, B300 },
{ 200, B200 },
{ 150, B150 },
{ 134, B134 },
{ 110, B110 },
{ 75, B75 },
{ 50, B50 },
};

cflag = C_BAUD(ch->uart_port.info->tty);
baud = 9600;
for (i = 0; i < ARRAY_SIZE(baud_rates); i++) {
if (baud_rates[i].cflag == cflag) {
baud = baud_rates[i].rate;
break;
}

if (baud == 0)
baud = 9600;

if (ch->ch_flags & CH_BAUD0)
ch->ch_flags &= ~(CH_BAUD0);
}

if (ch->ch_flags & CH_BAUD0)
ch->ch_flags &= ~(CH_BAUD0);
}

if (ch->ch_c_cflag & PARENB)
lcr |= UART_LCR_PARITY;

Expand Down

0 comments on commit 1af7c8e

Please sign in to comment.