summaryrefslogtreecommitdiffstats
path: root/sys/pc98
diff options
context:
space:
mode:
authornyan <nyan@FreeBSD.org>2001-10-19 11:48:47 +0000
committernyan <nyan@FreeBSD.org>2001-10-19 11:48:47 +0000
commit83f01c8ad9b6eb813092e6ffe976758f3ae502ae (patch)
tree4bfc8eec530a3024cda297ec02e6a3bdd22fe5df /sys/pc98
parent4f448401bdbca63cd391077b1ae38675d1a1eeda (diff)
downloadFreeBSD-src-83f01c8ad9b6eb813092e6ffe976758f3ae502ae.zip
FreeBSD-src-83f01c8ad9b6eb813092e6ffe976758f3ae502ae.tar.gz
Merged from sys/isa/sio.c revisions from 1.344 to 1.347
Diffstat (limited to 'sys/pc98')
-rw-r--r--sys/pc98/cbus/sio.c13
-rw-r--r--sys/pc98/pc98/sio.c13
2 files changed, 20 insertions, 6 deletions
diff --git a/sys/pc98/cbus/sio.c b/sys/pc98/cbus/sio.c
index 6836b03..07b038c 100644
--- a/sys/pc98/cbus/sio.c
+++ b/sys/pc98/cbus/sio.c
@@ -734,6 +734,7 @@ static struct speedtab comspeedtab[] = {
{ 4800, COMBRD(4800) },
{ 9600, COMBRD(9600) },
{ 19200, COMBRD(19200) },
+ { 28800, COMBRD(28800) },
{ 38400, COMBRD(38400) },
{ 57600, COMBRD(57600) },
{ 115200, COMBRD(115200) },
@@ -999,10 +1000,12 @@ struct pci_ids {
static struct pci_ids pci_ids[] = {
{ 0x100812b9, "3COM PCI FaxModem", 0x10 },
- { 0x048011c1, "Lucent kermit based PCI Modem", 0x14 },
- { 0x0000151f, "SmartLink 5634PCV SurfRider", 0x10 },
+ { 0x2000131f, "CyberSerial (1-port) 16550", 0x10 },
{ 0x01101407, "Koutech IOFLEX-2S PCI Dual Port Serial", 0x10 },
{ 0x01111407, "Koutech IOFLEX-2S PCI Dual Port Serial", 0x10 },
+ { 0x048011c1, "Lucent kermit based PCI Modem", 0x14 },
+ { 0x95211415, "Oxford Semiconductor PCI Dual Port Serial", 0x10 },
+ { 0x0000151f, "SmartLink 5634PCV SurfRider", 0x10 },
/* { 0xXXXXXXXX, "Xircom Cardbus modem", 0x10 }, */
{ 0x00000000, NULL, 0 }
};
@@ -4168,7 +4171,7 @@ static cn_checkc_t siocncheckc;
static cn_getc_t siocngetc;
static cn_putc_t siocnputc;
-#ifdef __i386__
+#ifndef __alpha__
CONS_DRIVER(sio, siocnprobe, siocninit, NULL, siocngetc, siocncheckc,
siocnputc, NULL);
#endif
@@ -4577,10 +4580,14 @@ siocnputc(dev, c)
else
iobase = siocniobase;
s = spltty();
+ if (sio_inited)
+ mtx_lock_spin(&sio_lock);
siocnopen(&sp, iobase, comdefaultrate);
siocntxwait(iobase);
outb(iobase + com_data, c);
siocnclose(&sp, iobase);
+ if (sio_inited)
+ mtx_unlock_spin(&sio_lock);
splx(s);
}
diff --git a/sys/pc98/pc98/sio.c b/sys/pc98/pc98/sio.c
index 6836b03..07b038c 100644
--- a/sys/pc98/pc98/sio.c
+++ b/sys/pc98/pc98/sio.c
@@ -734,6 +734,7 @@ static struct speedtab comspeedtab[] = {
{ 4800, COMBRD(4800) },
{ 9600, COMBRD(9600) },
{ 19200, COMBRD(19200) },
+ { 28800, COMBRD(28800) },
{ 38400, COMBRD(38400) },
{ 57600, COMBRD(57600) },
{ 115200, COMBRD(115200) },
@@ -999,10 +1000,12 @@ struct pci_ids {
static struct pci_ids pci_ids[] = {
{ 0x100812b9, "3COM PCI FaxModem", 0x10 },
- { 0x048011c1, "Lucent kermit based PCI Modem", 0x14 },
- { 0x0000151f, "SmartLink 5634PCV SurfRider", 0x10 },
+ { 0x2000131f, "CyberSerial (1-port) 16550", 0x10 },
{ 0x01101407, "Koutech IOFLEX-2S PCI Dual Port Serial", 0x10 },
{ 0x01111407, "Koutech IOFLEX-2S PCI Dual Port Serial", 0x10 },
+ { 0x048011c1, "Lucent kermit based PCI Modem", 0x14 },
+ { 0x95211415, "Oxford Semiconductor PCI Dual Port Serial", 0x10 },
+ { 0x0000151f, "SmartLink 5634PCV SurfRider", 0x10 },
/* { 0xXXXXXXXX, "Xircom Cardbus modem", 0x10 }, */
{ 0x00000000, NULL, 0 }
};
@@ -4168,7 +4171,7 @@ static cn_checkc_t siocncheckc;
static cn_getc_t siocngetc;
static cn_putc_t siocnputc;
-#ifdef __i386__
+#ifndef __alpha__
CONS_DRIVER(sio, siocnprobe, siocninit, NULL, siocngetc, siocncheckc,
siocnputc, NULL);
#endif
@@ -4577,10 +4580,14 @@ siocnputc(dev, c)
else
iobase = siocniobase;
s = spltty();
+ if (sio_inited)
+ mtx_lock_spin(&sio_lock);
siocnopen(&sp, iobase, comdefaultrate);
siocntxwait(iobase);
outb(iobase + com_data, c);
siocnclose(&sp, iobase);
+ if (sio_inited)
+ mtx_unlock_spin(&sio_lock);
splx(s);
}
OpenPOWER on IntegriCloud