Deleted Added
full compact
if_nfe.c (215194) if_nfe.c (215297)
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>
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 215194 2010-11-12 19:33:13Z yongari $");
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,
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, 0);
608 nfe_ifmedia_sts, BMSR_DEFCAPMASK, MII_PHY_ANY, MII_OFFSET_ANY,
609 MIIF_DOPAUSE);
609 if (error != 0) {
610 device_printf(dev, "attaching PHYs failed\n");
611 goto fail;
612 }
613 ether_ifattach(ifp, sc->eaddr);
614
615 TASK_INIT(&sc->nfe_int_task, 0, nfe_int_task, sc);
616 sc->nfe_tq = taskqueue_create_fast("nfe_taskq", M_WAITOK,

--- 284 unchanged lines hidden (view full) ---

901
902 NFE_WRITE(sc, NFE_PHY_IFACE, phy);
903 NFE_WRITE(sc, NFE_MISC1, misc);
904 NFE_WRITE(sc, NFE_LINKSPEED, link);
905
906 if ((IFM_OPTIONS(mii->mii_media_active) & IFM_FDX) != 0) {
907 /* It seems all hardwares supports Rx pause frames. */
908 val = NFE_READ(sc, NFE_RXFILTER);
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);
909 if ((IFM_OPTIONS(mii->mii_media_active) & IFM_FLAG0) != 0)
910 if ((IFM_OPTIONS(mii->mii_media_active) &
911 IFM_ETH_RXPAUSE) != 0)
910 val |= NFE_PFF_RX_PAUSE;
911 else
912 val &= ~NFE_PFF_RX_PAUSE;
913 NFE_WRITE(sc, NFE_RXFILTER, val);
914 if ((sc->nfe_flags & NFE_TX_FLOW_CTRL) != 0) {
915 val = NFE_READ(sc, NFE_MISC1);
916 if ((IFM_OPTIONS(mii->mii_media_active) &
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) &
917 IFM_FLAG1) != 0) {
919 IFM_ETH_TXPAUSE) != 0) {
918 NFE_WRITE(sc, NFE_TX_PAUSE_FRAME,
919 NFE_TX_PAUSE_FRAME_ENABLE);
920 val |= NFE_MISC1_TX_PAUSE;
921 } else {
922 val &= ~NFE_MISC1_TX_PAUSE;
923 NFE_WRITE(sc, NFE_TX_PAUSE_FRAME,
924 NFE_TX_PAUSE_FRAME_DISABLE);
925 }

--- 2404 unchanged lines hidden ---
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 ---