1/* $OpenBSD: if_nfe.c,v 1.54 2006/04/07 12:38:12 jsg Exp $ */ 2 3/*- 4 * Copyright (c) 2006 Shigeaki Tagashira <shigeaki@se.hiroshima-u.ac.jp> 5 * Copyright (c) 2006 Damien Bergamini <damien.bergamini@free.fr> 6 * Copyright (c) 2005, 2006 Jonathan Gray <jsg@openbsd.org> 7 * 8 * Permission to use, copy, modify, and distribute this software for any --- 7 unchanged lines hidden (view full) --- 16 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 17 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 18 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 19 */ 20 21/* Driver for NVIDIA nForce MCP Fast Ethernet and Gigabit Ethernet */ 22 23#include <sys/cdefs.h> |
24__FBSDID("$FreeBSD: head/sys/dev/nfe/if_nfe.c 215297 2010-11-14 13:26:10Z marius $"); |
25 26#ifdef HAVE_KERNEL_OPTION_HEADERS 27#include "opt_device_polling.h" 28#endif 29 30#include <sys/param.h> 31#include <sys/endian.h> 32#include <sys/systm.h> --- 567 unchanged lines hidden (view full) --- 600 ifp->if_data.ifi_hdrlen = sizeof(struct ether_vlan_header); 601 602#ifdef DEVICE_POLLING 603 ifp->if_capabilities |= IFCAP_POLLING; 604#endif 605 606 /* Do MII setup */ 607 error = mii_attach(dev, &sc->nfe_miibus, ifp, nfe_ifmedia_upd, |
608 nfe_ifmedia_sts, BMSR_DEFCAPMASK, MII_PHY_ANY, MII_OFFSET_ANY, 609 MIIF_DOPAUSE); |
610 if (error != 0) { 611 device_printf(dev, "attaching PHYs failed\n"); 612 goto fail; 613 } 614 ether_ifattach(ifp, sc->eaddr); 615 616 TASK_INIT(&sc->nfe_int_task, 0, nfe_int_task, sc); 617 sc->nfe_tq = taskqueue_create_fast("nfe_taskq", M_WAITOK, --- 284 unchanged lines hidden (view full) --- 902 903 NFE_WRITE(sc, NFE_PHY_IFACE, phy); 904 NFE_WRITE(sc, NFE_MISC1, misc); 905 NFE_WRITE(sc, NFE_LINKSPEED, link); 906 907 if ((IFM_OPTIONS(mii->mii_media_active) & IFM_FDX) != 0) { 908 /* It seems all hardwares supports Rx pause frames. */ 909 val = NFE_READ(sc, NFE_RXFILTER); |
910 if ((IFM_OPTIONS(mii->mii_media_active) & 911 IFM_ETH_RXPAUSE) != 0) |
912 val |= NFE_PFF_RX_PAUSE; 913 else 914 val &= ~NFE_PFF_RX_PAUSE; 915 NFE_WRITE(sc, NFE_RXFILTER, val); 916 if ((sc->nfe_flags & NFE_TX_FLOW_CTRL) != 0) { 917 val = NFE_READ(sc, NFE_MISC1); 918 if ((IFM_OPTIONS(mii->mii_media_active) & |
919 IFM_ETH_TXPAUSE) != 0) { |
920 NFE_WRITE(sc, NFE_TX_PAUSE_FRAME, 921 NFE_TX_PAUSE_FRAME_ENABLE); 922 val |= NFE_MISC1_TX_PAUSE; 923 } else { 924 val &= ~NFE_MISC1_TX_PAUSE; 925 NFE_WRITE(sc, NFE_TX_PAUSE_FRAME, 926 NFE_TX_PAUSE_FRAME_DISABLE); 927 } --- 2404 unchanged lines hidden --- |