Date: Wed, 4 Nov 2009 18:14:19 +0000 (UTC) From: Pyun YongHyeon <yongari@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org Subject: svn commit: r198915 - stable/7/sys/dev/fxp Message-ID: <200911041814.nA4IEJoY041450@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: yongari Date: Wed Nov 4 18:14:19 2009 New Revision: 198915 URL: http://svn.freebsd.org/changeset/base/198915 Log: MFC r194571: Don't blindly enable Rx lock-up workaround. Newer chips do not need the Rx lock-up workaround. Obtained from: NetBSD Modified: stable/7/sys/dev/fxp/if_fxp.c stable/7/sys/dev/fxp/if_fxpvar.h Directory Properties: stable/7/sys/ (props changed) stable/7/sys/contrib/pf/ (props changed) Modified: stable/7/sys/dev/fxp/if_fxp.c ============================================================================== --- stable/7/sys/dev/fxp/if_fxp.c Wed Nov 4 18:08:53 2009 (r198914) +++ stable/7/sys/dev/fxp/if_fxp.c Wed Nov 4 18:14:19 2009 (r198915) @@ -501,6 +501,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. */ @@ -2015,7 +2022,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. */ Modified: stable/7/sys/dev/fxp/if_fxpvar.h ============================================================================== --- stable/7/sys/dev/fxp/if_fxpvar.h Wed Nov 4 18:08:53 2009 (r198914) +++ stable/7/sys/dev/fxp/if_fxpvar.h Wed Nov 4 18:14:19 2009 (r198915) @@ -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)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200911041814.nA4IEJoY041450>