summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorasami <asami@FreeBSD.org>1996-12-04 04:36:59 +0000
committerasami <asami@FreeBSD.org>1996-12-04 04:36:59 +0000
commit2ae72b8ddd9e3d81289137f75a03b36b7d18e3f0 (patch)
treea5bcd2843e1134674e1f3cdbeb7c5a0349020239
parent5fdc748d8c34e6924a223a6dd13a1d3c36104b5b (diff)
downloadFreeBSD-src-2ae72b8ddd9e3d81289137f75a03b36b7d18e3f0.zip
FreeBSD-src-2ae72b8ddd9e3d81289137f75a03b36b7d18e3f0.tar.gz
Syncronize.
Submitted by: The FreeBSD(98) Development Team
-rw-r--r--sys/conf/options.pc984
-rw-r--r--sys/pc98/cbus/sio.c118
-rw-r--r--sys/pc98/conf/options.pc984
-rw-r--r--sys/pc98/i386/machdep.c15
-rw-r--r--sys/pc98/pc98/machdep.c15
-rw-r--r--sys/pc98/pc98/sio.c118
6 files changed, 176 insertions, 98 deletions
diff --git a/sys/conf/options.pc98 b/sys/conf/options.pc98
index 27e45f9..7519af9 100644
--- a/sys/conf/options.pc98
+++ b/sys/conf/options.pc98
@@ -1,4 +1,4 @@
-# $Id: options.pc98,v 1.10 1996/11/13 02:00:14 asami Exp $
+# $Id: options.pc98,v 1.11 1996/12/04 04:20:13 asami Exp $
BOUNCEPAGES opt_bounce.h
USER_LDT
MATH_EMULATE opt_math_emulate.h
@@ -30,7 +30,7 @@ XSERVER opt_pcvt.h
AHC_TAGENABLE opt_aic7xxx.h
AHC_SCBPAGING_ENABLE opt_aic7xxx.h
-AHC_FORCE_PIO opt_aic7xxx.h
+AHC_ALLOW_MEMIO opt_aic7xxx.h
AHC_SHARE_SCBS opt_aic7xxx.h
CLK_CALIBRATION_LOOP opt_clock.h
diff --git a/sys/pc98/cbus/sio.c b/sys/pc98/cbus/sio.c
index e84a4cd..65325a5 100644
--- a/sys/pc98/cbus/sio.c
+++ b/sys/pc98/cbus/sio.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* from: @(#)com.c 7.5 (Berkeley) 5/16/91
- * $Id: sio.c,v 1.9 1996/11/02 10:39:44 asami Exp $
+ * $Id: sio.c,v 1.10 1996/12/04 04:21:07 asami Exp $
*/
#include "opt_comconsole.h"
@@ -378,6 +378,7 @@ static int espattach __P((struct isa_device *isdp, struct com_s *com,
Port_t esp_port));
#endif
static int sioattach __P((struct isa_device *dev));
+static timeout_t siobusycheck;
static timeout_t siodtrwakeup;
static void comhardclose __P((struct com_s *com));
static void siointr1 __P((struct com_s *com));
@@ -422,8 +423,7 @@ static struct cdevsw sio_cdevsw = {
};
static int comconsole = -1;
-static speed_t comdefaultrate = TTYDEF_SPEED;
-static speed_t condefaultrate = CONSPEED;
+static speed_t comdefaultrate = CONSPEED;
static u_int com_events; /* input chars + weighted output completions */
static int sio_timeout;
static int sio_timeouts_until_log;
@@ -1131,10 +1131,9 @@ sioattach(isdp)
com->it_in.c_cflag = TTYDEF_CFLAG | CLOCAL;
com->it_in.c_lflag = TTYDEF_LFLAG;
com->lt_out.c_cflag = com->lt_in.c_cflag = CLOCAL;
- com->it_in.c_ispeed = com->it_in.c_ospeed = condefaultrate;
- } else
com->it_in.c_ispeed = com->it_in.c_ospeed = comdefaultrate;
-
+ } else
+ com->it_in.c_ispeed = com->it_in.c_ospeed = TTYDEF_SPEED;
termioschars(&com->it_in);
com->it_out = com->it_in;
@@ -1696,6 +1695,35 @@ siowrite(dev, uio, flag)
}
static void
+siobusycheck(chan)
+ void *chan;
+{
+ struct com_s *com;
+ int s;
+
+ com = (struct com_s *)chan;
+
+ /*
+ * Clear TS_BUSY if low-level output is complete.
+ * spl locking is sufficient because siointr1() does not set CS_BUSY.
+ * If siointr() clears CS_BUSY after we look at it, then we'll get
+ * called again. Reading the line status port outside of siointr1()
+ * is safe because CS_BUSY is clear so there are no output interrupts
+ * to lose.
+ */
+ s = spltty();
+ if (com->state & CS_BUSY)
+ ; /* False alarm. */
+ else if ((inb(com->line_status_port) & (LSR_TSRE | LSR_TXRDY))
+ == (LSR_TSRE | LSR_TXRDY)) {
+ com->tp->t_state &= ~TS_BUSY;
+ ttwwakeup(com->tp);
+ } else
+ timeout(siobusycheck, com, hz / 100);
+ splx(s);
+}
+
+static void
siodtrwakeup(chan)
void *chan;
{
@@ -1796,33 +1824,38 @@ more_intr:
#ifdef PC98
}
#endif
- if (line_status & (LSR_PE|LSR_FE|LSR_BI)) {
-#ifdef DDB
-#ifdef BREAK_TO_DEBUGGER
- if (line_status & LSR_BI
- && com->unit == comconsole) {
- Debugger("serial console break");
- goto cont;
- }
-#endif
-#endif
+ if (line_status & (LSR_BI | LSR_FE | LSR_PE)) {
/*
- Don't store PE if IGNPAR and BI if IGNBRK,
- this hack allows "raw" tty optimization
- works even if IGN* is set.
- */
- if ( com->tp == NULL
- || !(com->tp->t_state & TS_ISOPEN)
- || (line_status & (LSR_PE|LSR_FE))
- && (com->tp->t_iflag & IGNPAR)
- || (line_status & LSR_BI)
- && (com->tp->t_iflag & IGNBRK))
- goto cont;
- if ( (line_status & (LSR_PE|LSR_FE))
- && (com->tp->t_state & TS_CAN_BYPASS_L_RINT)
- && ((line_status & LSR_FE)
- || (line_status & LSR_PE)
- && (com->tp->t_iflag & INPCK)))
+ * Don't store BI if IGNBRK or FE/PE if IGNPAR.
+ * Otherwise, push the work to a higher level
+ * (to handle PARMRK) if we're bypassing.
+ * Otherwise, convert BI/FE and PE+INPCK to 0.
+ *
+ * This makes bypassing work right in the
+ * usual "raw" case (IGNBRK set, and IGNPAR
+ * and INPCK clear).
+ *
+ * Note: BI together with FE/PE means just BI.
+ */
+ if (line_status & LSR_BI) {
+#if defined(DDB) && defined(BREAK_TO_DEBUGGER)
+ if (com->unit == comconsole) {
+ Debugger(
+ "serial console break");
+ goto cont;
+ }
+#endif
+ if (com->tp == NULL
+ || com->tp->t_iflag & IGNBRK)
+ goto cont;
+ } else {
+ if (com->tp == NULL
+ || com->tp->t_iflag & IGNPAR)
+ goto cont;
+ }
+ if (com->tp->t_state & TS_CAN_BYPASS_L_RINT
+ && (line_status & (LSR_BI | LSR_FE)
+ || com->tp->t_iflag & INPCK))
recv_data = 0;
}
@@ -2330,12 +2363,13 @@ repeat:
disable_intr();
com_events -= LOTS_OF_EVENTS;
com->state &= ~CS_ODONE;
- if (!(com->state & CS_BUSY))
- com->tp->t_state &= ~TS_BUSY;
enable_intr();
+ if (!(com->state & CS_BUSY))
+ timeout(siobusycheck, com, hz / 100);
(*linesw[tp->t_line].l_start)(tp);
}
- if (incc <= 0 || !(tp->t_state & TS_ISOPEN))
+ if (incc <= 0 || !(tp->t_state & TS_ISOPEN) ||
+ !(tp->t_cflag & CREAD))
continue;
/*
* Avoid the grotesquely inefficient lineswitch routine
@@ -2770,6 +2804,10 @@ siostop(tp, rw)
return;
disable_intr();
if (rw & FWRITE) {
+ if (com->hasfifo)
+ /* XXX does this flush everything? */
+ outb(com->iobase + com_fifo,
+ FIFO_XMT_RST | com->fifo_image);
com->obufs[0].l_queued = FALSE;
com->obufs[1].l_queued = FALSE;
if (com->state & CS_ODONE)
@@ -2778,13 +2816,15 @@ siostop(tp, rw)
com->tp->t_state &= ~TS_BUSY;
}
if (rw & FREAD) {
+ if (com->hasfifo)
+ /* XXX does this flush everything? */
+ outb(com->iobase + com_fifo,
+ FIFO_RCV_RST | com->fifo_image);
com_events -= (com->iptr - com->ibuf);
com->iptr = com->ibuf;
}
enable_intr();
comstart(tp);
-
- /* XXX should clear h/w fifos too. */
}
static struct tty *
@@ -3062,7 +3102,7 @@ siocnopen(sp)
/*
* Save all the device control registers except the fifo register
- * and set our default ones (cs8 -parenb speed=condefaultrate).
+ * and set our default ones (cs8 -parenb speed=comdefaultrate).
* We can't save the fifo register since it is read-only.
*/
iobase = siocniobase;
@@ -3079,7 +3119,7 @@ siocnopen(sp)
* data input register. This also reduces the effects of the
* UMC8669F bug.
*/
- divisor = ttspeedtab(condefaultrate, comspeedtab);
+ divisor = ttspeedtab(comdefaultrate, comspeedtab);
dlbl = divisor & 0xFF;
if (sp->dlbl != dlbl)
outb(iobase + com_dlbl, dlbl);
diff --git a/sys/pc98/conf/options.pc98 b/sys/pc98/conf/options.pc98
index 27e45f9..7519af9 100644
--- a/sys/pc98/conf/options.pc98
+++ b/sys/pc98/conf/options.pc98
@@ -1,4 +1,4 @@
-# $Id: options.pc98,v 1.10 1996/11/13 02:00:14 asami Exp $
+# $Id: options.pc98,v 1.11 1996/12/04 04:20:13 asami Exp $
BOUNCEPAGES opt_bounce.h
USER_LDT
MATH_EMULATE opt_math_emulate.h
@@ -30,7 +30,7 @@ XSERVER opt_pcvt.h
AHC_TAGENABLE opt_aic7xxx.h
AHC_SCBPAGING_ENABLE opt_aic7xxx.h
-AHC_FORCE_PIO opt_aic7xxx.h
+AHC_ALLOW_MEMIO opt_aic7xxx.h
AHC_SHARE_SCBS opt_aic7xxx.h
CLK_CALIBRATION_LOOP opt_clock.h
diff --git a/sys/pc98/i386/machdep.c b/sys/pc98/i386/machdep.c
index 78bcb06..a2cc1e2 100644
--- a/sys/pc98/i386/machdep.c
+++ b/sys/pc98/i386/machdep.c
@@ -35,7 +35,7 @@
* SUCH DAMAGE.
*
* from: @(#)machdep.c 7.4 (Berkeley) 6/3/91
- * $Id: machdep.c,v 1.14 1996/12/01 16:34:25 bde Exp $
+ * $Id: machdep.c,v 1.15 1996/12/04 04:20:27 asami Exp $
*/
#include "npx.h"
@@ -289,9 +289,9 @@ again:
if (nbuf == 0) {
nbuf = 30;
if( physmem > 1024)
- nbuf += min((physmem - 1024) / 12, 1024);
+ nbuf += min((physmem - 1024) / 6, 2048);
}
- nswbuf = min(nbuf, 128);
+ nswbuf = max(min(nbuf/4, 128), 16);
valloc(swbuf, struct buf, nswbuf);
valloc(buf, struct buf, nbuf);
@@ -329,7 +329,7 @@ again:
#ifdef BOUNCE_BUFFERS
clean_map = kmem_suballoc(kernel_map, &clean_sva, &clean_eva,
- (nbuf*MAXBSIZE) + (nswbuf*MAXPHYS) +
+ (3*nbuf*DFLTBSIZE/2) + (nswbuf*MAXPHYS) +
maxbkva + pager_map_size, TRUE);
io_map = kmem_suballoc(clean_map, &minaddr, &maxaddr, maxbkva, FALSE);
#else
@@ -337,7 +337,7 @@ again:
(nbuf*MAXBSIZE) + (nswbuf*MAXPHYS) + pager_map_size, TRUE);
#endif
buffer_map = kmem_suballoc(clean_map, &buffer_sva, &buffer_eva,
- (nbuf*MAXBSIZE), TRUE);
+ (3*nbuf*DFLTBSIZE/2), TRUE);
pager_map = kmem_suballoc(clean_map, &pager_sva, &pager_eva,
(nswbuf*MAXPHYS) + pager_map_size, TRUE);
exec_map = kmem_suballoc(kernel_map, &minaddr, &maxaddr,
@@ -428,7 +428,6 @@ again:
max_head, max_head + 1,
max_sector, max_sector);
}
- printf(" %d accounted for\n", bootinfo.bi_n_bios_used);
}
}
@@ -665,8 +664,7 @@ sigreturn(p, uap, retval)
p->p_sigacts->ps_sigstk.ss_flags |= SS_ONSTACK;
else
p->p_sigacts->ps_sigstk.ss_flags &= ~SS_ONSTACK;
- p->p_sigmask = scp->sc_mask &~
- (sigmask(SIGKILL)|sigmask(SIGCONT)|sigmask(SIGSTOP));
+ p->p_sigmask = scp->sc_mask & ~sigcantmask;
regs[tEBP] = scp->sc_fp;
regs[tESP] = scp->sc_sp;
regs[tEIP] = scp->sc_pc;
@@ -979,6 +977,7 @@ init386(first)
unsigned biosbasemem, biosextmem;
struct gate_descriptor *gdp;
int gsel_tss;
+ struct isa_device *idp;
/* table descriptors - used to load tables by microp */
struct region_descriptor r_gdt, r_idt;
int pagesinbase, pagesinext;
diff --git a/sys/pc98/pc98/machdep.c b/sys/pc98/pc98/machdep.c
index 78bcb06..a2cc1e2 100644
--- a/sys/pc98/pc98/machdep.c
+++ b/sys/pc98/pc98/machdep.c
@@ -35,7 +35,7 @@
* SUCH DAMAGE.
*
* from: @(#)machdep.c 7.4 (Berkeley) 6/3/91
- * $Id: machdep.c,v 1.14 1996/12/01 16:34:25 bde Exp $
+ * $Id: machdep.c,v 1.15 1996/12/04 04:20:27 asami Exp $
*/
#include "npx.h"
@@ -289,9 +289,9 @@ again:
if (nbuf == 0) {
nbuf = 30;
if( physmem > 1024)
- nbuf += min((physmem - 1024) / 12, 1024);
+ nbuf += min((physmem - 1024) / 6, 2048);
}
- nswbuf = min(nbuf, 128);
+ nswbuf = max(min(nbuf/4, 128), 16);
valloc(swbuf, struct buf, nswbuf);
valloc(buf, struct buf, nbuf);
@@ -329,7 +329,7 @@ again:
#ifdef BOUNCE_BUFFERS
clean_map = kmem_suballoc(kernel_map, &clean_sva, &clean_eva,
- (nbuf*MAXBSIZE) + (nswbuf*MAXPHYS) +
+ (3*nbuf*DFLTBSIZE/2) + (nswbuf*MAXPHYS) +
maxbkva + pager_map_size, TRUE);
io_map = kmem_suballoc(clean_map, &minaddr, &maxaddr, maxbkva, FALSE);
#else
@@ -337,7 +337,7 @@ again:
(nbuf*MAXBSIZE) + (nswbuf*MAXPHYS) + pager_map_size, TRUE);
#endif
buffer_map = kmem_suballoc(clean_map, &buffer_sva, &buffer_eva,
- (nbuf*MAXBSIZE), TRUE);
+ (3*nbuf*DFLTBSIZE/2), TRUE);
pager_map = kmem_suballoc(clean_map, &pager_sva, &pager_eva,
(nswbuf*MAXPHYS) + pager_map_size, TRUE);
exec_map = kmem_suballoc(kernel_map, &minaddr, &maxaddr,
@@ -428,7 +428,6 @@ again:
max_head, max_head + 1,
max_sector, max_sector);
}
- printf(" %d accounted for\n", bootinfo.bi_n_bios_used);
}
}
@@ -665,8 +664,7 @@ sigreturn(p, uap, retval)
p->p_sigacts->ps_sigstk.ss_flags |= SS_ONSTACK;
else
p->p_sigacts->ps_sigstk.ss_flags &= ~SS_ONSTACK;
- p->p_sigmask = scp->sc_mask &~
- (sigmask(SIGKILL)|sigmask(SIGCONT)|sigmask(SIGSTOP));
+ p->p_sigmask = scp->sc_mask & ~sigcantmask;
regs[tEBP] = scp->sc_fp;
regs[tESP] = scp->sc_sp;
regs[tEIP] = scp->sc_pc;
@@ -979,6 +977,7 @@ init386(first)
unsigned biosbasemem, biosextmem;
struct gate_descriptor *gdp;
int gsel_tss;
+ struct isa_device *idp;
/* table descriptors - used to load tables by microp */
struct region_descriptor r_gdt, r_idt;
int pagesinbase, pagesinext;
diff --git a/sys/pc98/pc98/sio.c b/sys/pc98/pc98/sio.c
index e84a4cd..65325a5 100644
--- a/sys/pc98/pc98/sio.c
+++ b/sys/pc98/pc98/sio.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* from: @(#)com.c 7.5 (Berkeley) 5/16/91
- * $Id: sio.c,v 1.9 1996/11/02 10:39:44 asami Exp $
+ * $Id: sio.c,v 1.10 1996/12/04 04:21:07 asami Exp $
*/
#include "opt_comconsole.h"
@@ -378,6 +378,7 @@ static int espattach __P((struct isa_device *isdp, struct com_s *com,
Port_t esp_port));
#endif
static int sioattach __P((struct isa_device *dev));
+static timeout_t siobusycheck;
static timeout_t siodtrwakeup;
static void comhardclose __P((struct com_s *com));
static void siointr1 __P((struct com_s *com));
@@ -422,8 +423,7 @@ static struct cdevsw sio_cdevsw = {
};
static int comconsole = -1;
-static speed_t comdefaultrate = TTYDEF_SPEED;
-static speed_t condefaultrate = CONSPEED;
+static speed_t comdefaultrate = CONSPEED;
static u_int com_events; /* input chars + weighted output completions */
static int sio_timeout;
static int sio_timeouts_until_log;
@@ -1131,10 +1131,9 @@ sioattach(isdp)
com->it_in.c_cflag = TTYDEF_CFLAG | CLOCAL;
com->it_in.c_lflag = TTYDEF_LFLAG;
com->lt_out.c_cflag = com->lt_in.c_cflag = CLOCAL;
- com->it_in.c_ispeed = com->it_in.c_ospeed = condefaultrate;
- } else
com->it_in.c_ispeed = com->it_in.c_ospeed = comdefaultrate;
-
+ } else
+ com->it_in.c_ispeed = com->it_in.c_ospeed = TTYDEF_SPEED;
termioschars(&com->it_in);
com->it_out = com->it_in;
@@ -1696,6 +1695,35 @@ siowrite(dev, uio, flag)
}
static void
+siobusycheck(chan)
+ void *chan;
+{
+ struct com_s *com;
+ int s;
+
+ com = (struct com_s *)chan;
+
+ /*
+ * Clear TS_BUSY if low-level output is complete.
+ * spl locking is sufficient because siointr1() does not set CS_BUSY.
+ * If siointr() clears CS_BUSY after we look at it, then we'll get
+ * called again. Reading the line status port outside of siointr1()
+ * is safe because CS_BUSY is clear so there are no output interrupts
+ * to lose.
+ */
+ s = spltty();
+ if (com->state & CS_BUSY)
+ ; /* False alarm. */
+ else if ((inb(com->line_status_port) & (LSR_TSRE | LSR_TXRDY))
+ == (LSR_TSRE | LSR_TXRDY)) {
+ com->tp->t_state &= ~TS_BUSY;
+ ttwwakeup(com->tp);
+ } else
+ timeout(siobusycheck, com, hz / 100);
+ splx(s);
+}
+
+static void
siodtrwakeup(chan)
void *chan;
{
@@ -1796,33 +1824,38 @@ more_intr:
#ifdef PC98
}
#endif
- if (line_status & (LSR_PE|LSR_FE|LSR_BI)) {
-#ifdef DDB
-#ifdef BREAK_TO_DEBUGGER
- if (line_status & LSR_BI
- && com->unit == comconsole) {
- Debugger("serial console break");
- goto cont;
- }
-#endif
-#endif
+ if (line_status & (LSR_BI | LSR_FE | LSR_PE)) {
/*
- Don't store PE if IGNPAR and BI if IGNBRK,
- this hack allows "raw" tty optimization
- works even if IGN* is set.
- */
- if ( com->tp == NULL
- || !(com->tp->t_state & TS_ISOPEN)
- || (line_status & (LSR_PE|LSR_FE))
- && (com->tp->t_iflag & IGNPAR)
- || (line_status & LSR_BI)
- && (com->tp->t_iflag & IGNBRK))
- goto cont;
- if ( (line_status & (LSR_PE|LSR_FE))
- && (com->tp->t_state & TS_CAN_BYPASS_L_RINT)
- && ((line_status & LSR_FE)
- || (line_status & LSR_PE)
- && (com->tp->t_iflag & INPCK)))
+ * Don't store BI if IGNBRK or FE/PE if IGNPAR.
+ * Otherwise, push the work to a higher level
+ * (to handle PARMRK) if we're bypassing.
+ * Otherwise, convert BI/FE and PE+INPCK to 0.
+ *
+ * This makes bypassing work right in the
+ * usual "raw" case (IGNBRK set, and IGNPAR
+ * and INPCK clear).
+ *
+ * Note: BI together with FE/PE means just BI.
+ */
+ if (line_status & LSR_BI) {
+#if defined(DDB) && defined(BREAK_TO_DEBUGGER)
+ if (com->unit == comconsole) {
+ Debugger(
+ "serial console break");
+ goto cont;
+ }
+#endif
+ if (com->tp == NULL
+ || com->tp->t_iflag & IGNBRK)
+ goto cont;
+ } else {
+ if (com->tp == NULL
+ || com->tp->t_iflag & IGNPAR)
+ goto cont;
+ }
+ if (com->tp->t_state & TS_CAN_BYPASS_L_RINT
+ && (line_status & (LSR_BI | LSR_FE)
+ || com->tp->t_iflag & INPCK))
recv_data = 0;
}
@@ -2330,12 +2363,13 @@ repeat:
disable_intr();
com_events -= LOTS_OF_EVENTS;
com->state &= ~CS_ODONE;
- if (!(com->state & CS_BUSY))
- com->tp->t_state &= ~TS_BUSY;
enable_intr();
+ if (!(com->state & CS_BUSY))
+ timeout(siobusycheck, com, hz / 100);
(*linesw[tp->t_line].l_start)(tp);
}
- if (incc <= 0 || !(tp->t_state & TS_ISOPEN))
+ if (incc <= 0 || !(tp->t_state & TS_ISOPEN) ||
+ !(tp->t_cflag & CREAD))
continue;
/*
* Avoid the grotesquely inefficient lineswitch routine
@@ -2770,6 +2804,10 @@ siostop(tp, rw)
return;
disable_intr();
if (rw & FWRITE) {
+ if (com->hasfifo)
+ /* XXX does this flush everything? */
+ outb(com->iobase + com_fifo,
+ FIFO_XMT_RST | com->fifo_image);
com->obufs[0].l_queued = FALSE;
com->obufs[1].l_queued = FALSE;
if (com->state & CS_ODONE)
@@ -2778,13 +2816,15 @@ siostop(tp, rw)
com->tp->t_state &= ~TS_BUSY;
}
if (rw & FREAD) {
+ if (com->hasfifo)
+ /* XXX does this flush everything? */
+ outb(com->iobase + com_fifo,
+ FIFO_RCV_RST | com->fifo_image);
com_events -= (com->iptr - com->ibuf);
com->iptr = com->ibuf;
}
enable_intr();
comstart(tp);
-
- /* XXX should clear h/w fifos too. */
}
static struct tty *
@@ -3062,7 +3102,7 @@ siocnopen(sp)
/*
* Save all the device control registers except the fifo register
- * and set our default ones (cs8 -parenb speed=condefaultrate).
+ * and set our default ones (cs8 -parenb speed=comdefaultrate).
* We can't save the fifo register since it is read-only.
*/
iobase = siocniobase;
@@ -3079,7 +3119,7 @@ siocnopen(sp)
* data input register. This also reduces the effects of the
* UMC8669F bug.
*/
- divisor = ttspeedtab(condefaultrate, comspeedtab);
+ divisor = ttspeedtab(comdefaultrate, comspeedtab);
dlbl = divisor & 0xFF;
if (sp->dlbl != dlbl)
outb(iobase + com_dlbl, dlbl);
OpenPOWER on IntegriCloud