From 9a545499fedfc3e1f83037cdc5741b41a1c739de Mon Sep 17 00:00:00 2001 From: Yoshihiro Takahashi Date: Mon, 25 Mar 2002 13:41:06 +0000 Subject: [PATCH] Merged from sys/dev/sio/sio.c revisions 1.366 and 1.369. --- sys/pc98/cbus/sio.c | 12 ++++++++++-- sys/pc98/pc98/sio.c | 12 ++++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/sys/pc98/cbus/sio.c b/sys/pc98/cbus/sio.c index 11fe280d60eb..65cf66284040 100644 --- a/sys/pc98/cbus/sio.c +++ b/sys/pc98/cbus/sio.c @@ -136,6 +136,7 @@ #include +#include #include #include @@ -1177,6 +1178,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 @@ -1191,10 +1199,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/pc98/pc98/sio.c b/sys/pc98/pc98/sio.c index 11fe280d60eb..65cf66284040 100644 --- a/sys/pc98/pc98/sio.c +++ b/sys/pc98/pc98/sio.c @@ -136,6 +136,7 @@ #include +#include #include #include @@ -1177,6 +1178,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 @@ -1191,10 +1199,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 */