Merged from sys/dev/sio/sio.c revisions 1.366 and 1.369.
This commit is contained in:
parent
fd9fe3e748
commit
9a545499fe
@ -136,6 +136,7 @@
|
|||||||
|
|
||||||
#include <isa/isavar.h>
|
#include <isa/isavar.h>
|
||||||
|
|
||||||
|
#include <machine/limits.h>
|
||||||
#include <machine/resource.h>
|
#include <machine/resource.h>
|
||||||
|
|
||||||
#include <dev/sio/sioreg.h>
|
#include <dev/sio/sioreg.h>
|
||||||
@ -1177,6 +1178,13 @@ sioprobe(dev, xrid, rclk, noprobe)
|
|||||||
*/
|
*/
|
||||||
/* EXTRA DELAY? */
|
/* EXTRA DELAY? */
|
||||||
sio_setreg(com, com_mcr, mcr_image);
|
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
|
* Some pcmcia cards have the "TXRDY bug", so we check everyone
|
||||||
@ -1191,10 +1199,10 @@ sioprobe(dev, xrid, rclk, noprobe)
|
|||||||
/* Check IIR_TXRDY clear ? */
|
/* Check IIR_TXRDY clear ? */
|
||||||
result = 0;
|
result = 0;
|
||||||
if (failures[6] & IIR_TXRDY) {
|
if (failures[6] & IIR_TXRDY) {
|
||||||
/* Nop, Double check with clearing IER */
|
/* No, Double check with clearing IER */
|
||||||
sio_setreg(com, com_ier, 0);
|
sio_setreg(com, com_ier, 0);
|
||||||
if (sio_getreg(com, com_iir) & IIR_NOPEND) {
|
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);
|
SET_FLAG(dev, COM_C_IIR_TXRDYBUG);
|
||||||
} else {
|
} else {
|
||||||
/* Unknown, Just omit this chip.. XXX */
|
/* Unknown, Just omit this chip.. XXX */
|
||||||
|
@ -136,6 +136,7 @@
|
|||||||
|
|
||||||
#include <isa/isavar.h>
|
#include <isa/isavar.h>
|
||||||
|
|
||||||
|
#include <machine/limits.h>
|
||||||
#include <machine/resource.h>
|
#include <machine/resource.h>
|
||||||
|
|
||||||
#include <dev/sio/sioreg.h>
|
#include <dev/sio/sioreg.h>
|
||||||
@ -1177,6 +1178,13 @@ sioprobe(dev, xrid, rclk, noprobe)
|
|||||||
*/
|
*/
|
||||||
/* EXTRA DELAY? */
|
/* EXTRA DELAY? */
|
||||||
sio_setreg(com, com_mcr, mcr_image);
|
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
|
* Some pcmcia cards have the "TXRDY bug", so we check everyone
|
||||||
@ -1191,10 +1199,10 @@ sioprobe(dev, xrid, rclk, noprobe)
|
|||||||
/* Check IIR_TXRDY clear ? */
|
/* Check IIR_TXRDY clear ? */
|
||||||
result = 0;
|
result = 0;
|
||||||
if (failures[6] & IIR_TXRDY) {
|
if (failures[6] & IIR_TXRDY) {
|
||||||
/* Nop, Double check with clearing IER */
|
/* No, Double check with clearing IER */
|
||||||
sio_setreg(com, com_ier, 0);
|
sio_setreg(com, com_ier, 0);
|
||||||
if (sio_getreg(com, com_iir) & IIR_NOPEND) {
|
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);
|
SET_FLAG(dev, COM_C_IIR_TXRDYBUG);
|
||||||
} else {
|
} else {
|
||||||
/* Unknown, Just omit this chip.. XXX */
|
/* Unknown, Just omit this chip.. XXX */
|
||||||
|
Loading…
Reference in New Issue
Block a user