summaryrefslogtreecommitdiffstats
path: root/sys/pc98
diff options
context:
space:
mode:
authornyan <nyan@FreeBSD.org>2001-02-25 08:55:07 +0000
committernyan <nyan@FreeBSD.org>2001-02-25 08:55:07 +0000
commit34a8061ba3463880570cc365b57a6df68b247c06 (patch)
treea8ecff3a046c4388d164bd17af00b0fb04fc65f6 /sys/pc98
parent03881b0e6167de36767b5b06a3655b9f0e6fbd8e (diff)
downloadFreeBSD-src-34a8061ba3463880570cc365b57a6df68b247c06.zip
FreeBSD-src-34a8061ba3463880570cc365b57a6df68b247c06.tar.gz
Supported pcmcia modem card.
Submitted by: MURAMATSU Atsushi <amura@ma3.seikyou.ne.jp>
Diffstat (limited to 'sys/pc98')
-rw-r--r--sys/pc98/cbus/sio.c14
-rw-r--r--sys/pc98/pc98/sio.c14
2 files changed, 20 insertions, 8 deletions
diff --git a/sys/pc98/cbus/sio.c b/sys/pc98/cbus/sio.c
index 87f00dd..3ccfdf3 100644
--- a/sys/pc98/cbus/sio.c
+++ b/sys/pc98/cbus/sio.c
@@ -132,7 +132,7 @@
#define COM_IF_MCRS98 0x14 /* same as COM_IF_MC16550II */
#define COM_IF_RSB3000 0x15
#define COM_IF_RSB384 0x16
-#define COM_IF_MODEM_CARD 0x17 /* same as COM_IF_NS16550 */
+#define COM_IF_MODEM_CARD 0x17
#define COM_IF_RSA98III 0x18
#define COM_IF_ESP98 0x19
#define COM_IF_END2 COM_IF_ESP98
@@ -929,7 +929,11 @@ sio_pccard_probe(dev)
{
/* Do not probe IRQ - pccard doesn't turn on the interrupt line */
/* until bus_setup_intr */
+#ifdef PC98
+ SET_FLAG(dev, COM_C_NOPROBE | SET_IFTYPE(COM_IF_MODEM_CARD));
+#else
SET_FLAG(dev, COM_C_NOPROBE);
+#endif
return (sioprobe(dev, 0));
}
@@ -1147,7 +1151,7 @@ sio_isa_probe(dev)
#ifdef PC98
logical_id = isa_get_logicalid(dev);
if (logical_id == 0x0100e4a5) /* RSA-98III */
- device_set_flags(dev, SET_IFTYPE(COM_IF_RSA98III));
+ SET_FLAG(dev, SET_IFTYPE(COM_IF_RSA98III));
#endif
return (sioprobe(dev, 0));
}
@@ -1191,7 +1195,8 @@ sioprobe(dev, xrid)
if (IS_8251(iod.if_type)) {
port = bus_alloc_resource(dev, SYS_RES_IOPORT, &rid,
0, ~0, 1, RF_ACTIVE);
- } else if (iod.if_type == COM_IF_RSA98III ||
+ } else if (iod.if_type == COM_IF_MODEM_CARD ||
+ iod.if_type == COM_IF_RSA98III ||
isa_get_vendorid(dev)) {
port = bus_alloc_resource(dev, SYS_RES_IOPORT, &rid, 0, ~0,
if_16550a_type[iod.if_type & 0x0f].iatsz, RF_ACTIVE);
@@ -1729,7 +1734,8 @@ sioattach(dev, xrid)
if (IS_8251(if_type)) {
port = bus_alloc_resource(dev, SYS_RES_IOPORT, &rid,
0, ~0, 1, RF_ACTIVE);
- } else if (if_type == COM_IF_RSA98III ||
+ } else if (if_type == COM_IF_MODEM_CARD ||
+ if_type == COM_IF_RSA98III ||
isa_get_vendorid(dev)) {
port = bus_alloc_resource(dev, SYS_RES_IOPORT, &rid, 0, ~0,
if_16550a_type[if_type & 0x0f].iatsz, RF_ACTIVE);
diff --git a/sys/pc98/pc98/sio.c b/sys/pc98/pc98/sio.c
index 87f00dd..3ccfdf3 100644
--- a/sys/pc98/pc98/sio.c
+++ b/sys/pc98/pc98/sio.c
@@ -132,7 +132,7 @@
#define COM_IF_MCRS98 0x14 /* same as COM_IF_MC16550II */
#define COM_IF_RSB3000 0x15
#define COM_IF_RSB384 0x16
-#define COM_IF_MODEM_CARD 0x17 /* same as COM_IF_NS16550 */
+#define COM_IF_MODEM_CARD 0x17
#define COM_IF_RSA98III 0x18
#define COM_IF_ESP98 0x19
#define COM_IF_END2 COM_IF_ESP98
@@ -929,7 +929,11 @@ sio_pccard_probe(dev)
{
/* Do not probe IRQ - pccard doesn't turn on the interrupt line */
/* until bus_setup_intr */
+#ifdef PC98
+ SET_FLAG(dev, COM_C_NOPROBE | SET_IFTYPE(COM_IF_MODEM_CARD));
+#else
SET_FLAG(dev, COM_C_NOPROBE);
+#endif
return (sioprobe(dev, 0));
}
@@ -1147,7 +1151,7 @@ sio_isa_probe(dev)
#ifdef PC98
logical_id = isa_get_logicalid(dev);
if (logical_id == 0x0100e4a5) /* RSA-98III */
- device_set_flags(dev, SET_IFTYPE(COM_IF_RSA98III));
+ SET_FLAG(dev, SET_IFTYPE(COM_IF_RSA98III));
#endif
return (sioprobe(dev, 0));
}
@@ -1191,7 +1195,8 @@ sioprobe(dev, xrid)
if (IS_8251(iod.if_type)) {
port = bus_alloc_resource(dev, SYS_RES_IOPORT, &rid,
0, ~0, 1, RF_ACTIVE);
- } else if (iod.if_type == COM_IF_RSA98III ||
+ } else if (iod.if_type == COM_IF_MODEM_CARD ||
+ iod.if_type == COM_IF_RSA98III ||
isa_get_vendorid(dev)) {
port = bus_alloc_resource(dev, SYS_RES_IOPORT, &rid, 0, ~0,
if_16550a_type[iod.if_type & 0x0f].iatsz, RF_ACTIVE);
@@ -1729,7 +1734,8 @@ sioattach(dev, xrid)
if (IS_8251(if_type)) {
port = bus_alloc_resource(dev, SYS_RES_IOPORT, &rid,
0, ~0, 1, RF_ACTIVE);
- } else if (if_type == COM_IF_RSA98III ||
+ } else if (if_type == COM_IF_MODEM_CARD ||
+ if_type == COM_IF_RSA98III ||
isa_get_vendorid(dev)) {
port = bus_alloc_resource(dev, SYS_RES_IOPORT, &rid, 0, ~0,
if_16550a_type[if_type & 0x0f].iatsz, RF_ACTIVE);
OpenPOWER on IntegriCloud