Don't blindly enable Rx lock-up workaround. Newer chips do not need
the Rx lock-up workaround. Obtained from: NetBSD
This commit is contained in:
parent
0e5575121c
commit
b8c10ee72c
@ -500,6 +500,13 @@ fxp_attach(device_t dev)
|
||||
sc->flags |= FXP_FLAG_WOLCAP;
|
||||
}
|
||||
|
||||
/* Receiver lock-up workaround detection. */
|
||||
fxp_read_eeprom(sc, &data, 3, 1);
|
||||
if ((data & 0x03) != 0x03) {
|
||||
sc->flags |= FXP_FLAG_RXBUG;
|
||||
device_printf(dev, "Enabling Rx lock-up workaround\n");
|
||||
}
|
||||
|
||||
/*
|
||||
* Determine whether we must use the 503 serial interface.
|
||||
*/
|
||||
@ -2021,7 +2028,7 @@ fxp_tick(void *xsc)
|
||||
if (sp->rx_good) {
|
||||
ifp->if_ipackets += le32toh(sp->rx_good);
|
||||
sc->rx_idle_secs = 0;
|
||||
} else {
|
||||
} else if (sc->flags & FXP_FLAG_RXBUG) {
|
||||
/*
|
||||
* Receiver's been idle for another second.
|
||||
*/
|
||||
|
@ -204,6 +204,7 @@ struct fxp_softc {
|
||||
#define FXP_FLAG_82559_RXCSUM 0x1000 /* 82559 compatible RX checksum */
|
||||
#define FXP_FLAG_WOLCAP 0x2000 /* WOL capability */
|
||||
#define FXP_FLAG_WOL 0x4000 /* WOL active */
|
||||
#define FXP_FLAG_RXBUG 0x8000 /* Rx lock-up bug */
|
||||
|
||||
/* Macros to ease CSR access. */
|
||||
#define CSR_READ_1(sc, reg) bus_read_1(sc->fxp_res[0], reg)
|
||||
|
Loading…
Reference in New Issue
Block a user