summaryrefslogtreecommitdiffstats
path: root/sys/dev
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2002-03-16 04:26:46 +0000
committerimp <imp@FreeBSD.org>2002-03-16 04:26:46 +0000
commitecd8851ade7589f2fe617c84718a700105ab473a (patch)
tree9fa57a32a4345901d69ea83a41f4a8b133a914ce /sys/dev
parenta38b47dc4f52546f83a5bbb50ea0f25c853e0cd5 (diff)
downloadFreeBSD-src-ecd8851ade7589f2fe617c84718a700105ab473a.zip
FreeBSD-src-ecd8851ade7589f2fe617c84718a700105ab473a.tar.gz
Add device ID for Xircom modem. Also add work around from gwk@sgi.com
to put the device into 8 bit mode a second time. This appears to have no ill effects on other devices, and appears to be necessary for the xircom modem. Submitted by: gwk@sgi.com, many others that found his patch in the archives.
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/sio/sio.c11
-rw-r--r--sys/dev/sio/sio_pci.c2
2 files changed, 10 insertions, 3 deletions
diff --git a/sys/dev/sio/sio.c b/sys/dev/sio/sio.c
index 2746d1d..33d02fb 100644
--- a/sys/dev/sio/sio.c
+++ b/sys/dev/sio/sio.c
@@ -671,6 +671,13 @@ sioprobe(dev, xrid, rclk, noprobe)
*/
/* EXTRA DELAY? */
sio_setreg(com, com_mcr, mcr_image);
+
+ /*
+ * It seems my Xircom CBEM56G Cardbus modem wants to be reset
+ * to 8 bits *again*, or else probe test 0 will fail.
+ * gwk@sgi.com, 4/19/2001
+ */
+ sio_setreg(com, com_cfcr, CFCR_8BITS);
/*
* Some pcmcia cards have the "TXRDY bug", so we check everyone
@@ -685,10 +692,10 @@ sioprobe(dev, xrid, rclk, noprobe)
/* Check IIR_TXRDY clear ? */
result = 0;
if (failures[6] & IIR_TXRDY) {
- /* Nop, Double check with clearing IER */
+ /* No, Double check with clearing IER */
sio_setreg(com, com_ier, 0);
if (sio_getreg(com, com_iir) & IIR_NOPEND) {
- /* Ok. we're familia this gang */
+ /* Ok. We discovered TXRDY bug! */
SET_FLAG(dev, COM_C_IIR_TXRDYBUG);
} else {
/* Unknown, Just omit this chip.. XXX */
diff --git a/sys/dev/sio/sio_pci.c b/sys/dev/sio/sio_pci.c
index 13715c6..6ea2930 100644
--- a/sys/dev/sio/sio_pci.c
+++ b/sys/dev/sio/sio_pci.c
@@ -74,7 +74,7 @@ static struct pci_ids pci_ids[] = {
{ 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 }, */
+ { 0x0103115d, "Xircom Cardbus modem", 0x10 },
{ 0x00000000, NULL, 0 }
};
OpenPOWER on IntegriCloud