From: "V. Ananda Krishnan" <mansarov@us.ibm.com>
To: linux-kernel@vger.kernel.org
Cc: Andrew Morton <akpm@osdl.org>,
Alan Cox <alan@lxorguk.ukuu.org.uk>, Adrian Bunk <bunk@stusta.de>,
Greg KH <gregkh@suse.de>,
Scott_Kilau@digi.com
Subject: [RFC: linux-2.6.16-rc1 patch] jsm: fix for high baud rates problem
Date: Mon, 30 Jan 2006 09:29:53 -0600 [thread overview]
Message-ID: <43DE30F1.6040107@us.ibm.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 306 bytes --]
Digi serial port console doesn't work when baud rates are set higher
than 38400. So the lookup table and code in jsm_neo.c has been modified
and tested. Please let me have the feed-back.
Thanks,
V. Ananda Krishnan
Authors: Scott Kilau and V. Ananda Krishnan
Signed-off-by: V.Ananda Krishnan
...
[-- Attachment #2: neo_patch --]
[-- Type: text/plain, Size: 2238 bytes --]
diff -Naur linux-2.6.16-rc1/drivers/serial/jsm/jsm_neo.c linux-2.6.16-rc1-mod/drivers/serial/jsm/jsm_neo.c
--- linux-2.6.16-rc1/drivers/serial/jsm/jsm_neo.c 2006-01-27 21:19:45.000000000 -0600
+++ linux-2.6.16-rc1-mod/drivers/serial/jsm/jsm_neo.c 2006-01-27 21:43:28.000000000 -0600
@@ -966,47 +966,41 @@
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 }
+ int i= 0;
+ struct baud_rates {
+ unsigned int rate;
+ unsigned int cflag;
+ };
+ static struct baud_rates 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 },
+ { 0, B600 }
};
- baud = C_BAUD(ch->uart_port.info->tty) & 0xff;
-
- if (ch->ch_c_cflag & CBAUDEX)
- iindex = 1;
-
- jindex = baud;
+ baud = C_BAUD(ch->uart_port.info->tty);
- 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;
+ for (i = 0; baud_rates[i].rate; i++) {
+ if (baud_rates[i].cflag == baud)
+ break;
}
+ baud = baud_rates[i].rate;
if (baud == 0)
baud = 9600;
next reply other threads:[~2006-01-30 15:29 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-01-30 15:29 V. Ananda Krishnan [this message]
2006-01-30 18:58 ` [RFC: linux-2.6.16-rc1 patch] jsm: fix for high baud rates problem Greg KH
2006-01-30 23:17 ` V. Ananda Krishnan
2006-02-01 0:01 ` Andrew Morton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=43DE30F1.6040107@us.ibm.com \
--to=mansarov@us.ibm.com \
--cc=Scott_Kilau@digi.com \
--cc=akpm@osdl.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=bunk@stusta.de \
--cc=gregkh@suse.de \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.