Deleted Added
full compact
if_bce.c (213894) if_bce.c (215297)
1/*-
2 * Copyright (c) 2006-2010 Broadcom Corporation
3 * David Christensen <davidch@broadcom.com>. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *

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

24 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
28 * THE POSSIBILITY OF SUCH DAMAGE.
29 */
30
31#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 2006-2010 Broadcom Corporation
3 * David Christensen <davidch@broadcom.com>. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *

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

24 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
28 * THE POSSIBILITY OF SUCH DAMAGE.
29 */
30
31#include <sys/cdefs.h>
32__FBSDID("$FreeBSD: head/sys/dev/bce/if_bce.c 213894 2010-10-15 15:00:30Z marius $");
32__FBSDID("$FreeBSD: head/sys/dev/bce/if_bce.c 215297 2010-11-14 13:26:10Z marius $");
33
34/*
35 * The following controllers are supported by this driver:
36 * BCM5706C A2, A3
37 * BCM5706S A2, A3
38 * BCM5708C B1, B2
39 * BCM5708S B1, B2
40 * BCM5709C A1, C0

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

1138 ifp->if_baudrate = IF_Mbps(1000);
1139
1140 /* Handle any special PHY initialization for SerDes PHYs. */
1141 bce_init_media(sc);
1142
1143 /* MII child bus by attaching the PHY. */
1144 rc = mii_attach(dev, &sc->bce_miibus, ifp, bce_ifmedia_upd,
1145 bce_ifmedia_sts, BMSR_DEFCAPMASK, sc->bce_phy_addr,
33
34/*
35 * The following controllers are supported by this driver:
36 * BCM5706C A2, A3
37 * BCM5706S A2, A3
38 * BCM5708C B1, B2
39 * BCM5708S B1, B2
40 * BCM5709C A1, C0

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

1138 ifp->if_baudrate = IF_Mbps(1000);
1139
1140 /* Handle any special PHY initialization for SerDes PHYs. */
1141 bce_init_media(sc);
1142
1143 /* MII child bus by attaching the PHY. */
1144 rc = mii_attach(dev, &sc->bce_miibus, ifp, bce_ifmedia_upd,
1145 bce_ifmedia_sts, BMSR_DEFCAPMASK, sc->bce_phy_addr,
1146 MII_OFFSET_ANY, 0);
1146 MII_OFFSET_ANY, MIIF_DOPAUSE);
1147 if (rc != 0) {
1148 BCE_PRINTF("%s(%d): attaching PHYs failed\n", __FILE__,
1149 __LINE__);
1150 goto bce_attach_fail;
1151 }
1152
1153 /* Attach to the Ethernet interface list. */
1154 ether_ifattach(ifp, sc->eaddr);

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

1764 "Setting Half-Duplex interface.\n");
1765 val |= BCE_EMAC_MODE_HALF_DUPLEX;
1766 } else
1767 DBPRINT(sc, BCE_INFO_PHY,
1768 "Setting Full-Duplex interface.\n");
1769
1770 REG_WR(sc, BCE_EMAC_MODE, val);
1771
1147 if (rc != 0) {
1148 BCE_PRINTF("%s(%d): attaching PHYs failed\n", __FILE__,
1149 __LINE__);
1150 goto bce_attach_fail;
1151 }
1152
1153 /* Attach to the Ethernet interface list. */
1154 ether_ifattach(ifp, sc->eaddr);

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

1764 "Setting Half-Duplex interface.\n");
1765 val |= BCE_EMAC_MODE_HALF_DUPLEX;
1766 } else
1767 DBPRINT(sc, BCE_INFO_PHY,
1768 "Setting Full-Duplex interface.\n");
1769
1770 REG_WR(sc, BCE_EMAC_MODE, val);
1771
1772 /* FLAG0 is set if RX is enabled and FLAG1 if TX is enabled */
1773 if (mii->mii_media_active & IFM_FLAG0) {
1772 if ((mii->mii_media_active & IFM_ETH_RXPAUSE) != 0) {
1774 DBPRINT(sc, BCE_INFO_PHY,
1775 "%s(): Enabling RX flow control.\n", __FUNCTION__);
1776 BCE_SETBIT(sc, BCE_EMAC_RX_MODE, BCE_EMAC_RX_MODE_FLOW_EN);
1777 } else {
1778 DBPRINT(sc, BCE_INFO_PHY,
1779 "%s(): Disabling RX flow control.\n", __FUNCTION__);
1780 BCE_CLRBIT(sc, BCE_EMAC_RX_MODE, BCE_EMAC_RX_MODE_FLOW_EN);
1781 }
1782
1773 DBPRINT(sc, BCE_INFO_PHY,
1774 "%s(): Enabling RX flow control.\n", __FUNCTION__);
1775 BCE_SETBIT(sc, BCE_EMAC_RX_MODE, BCE_EMAC_RX_MODE_FLOW_EN);
1776 } else {
1777 DBPRINT(sc, BCE_INFO_PHY,
1778 "%s(): Disabling RX flow control.\n", __FUNCTION__);
1779 BCE_CLRBIT(sc, BCE_EMAC_RX_MODE, BCE_EMAC_RX_MODE_FLOW_EN);
1780 }
1781
1783 if (mii->mii_media_active & IFM_FLAG1) {
1782 if ((mii->mii_media_active & IFM_ETH_TXPAUSE) != 0) {
1784 DBPRINT(sc, BCE_INFO_PHY,
1785 "%s(): Enabling TX flow control.\n", __FUNCTION__);
1786 BCE_SETBIT(sc, BCE_EMAC_TX_MODE, BCE_EMAC_TX_MODE_FLOW_EN);
1787 sc->bce_flags |= BCE_USING_TX_FLOW_CONTROL;
1788 } else {
1789 DBPRINT(sc, BCE_INFO_PHY,
1790 "%s(): Disabling TX flow control.\n", __FUNCTION__);
1791 BCE_CLRBIT(sc, BCE_EMAC_TX_MODE, BCE_EMAC_TX_MODE_FLOW_EN);

--- 9119 unchanged lines hidden ---
1783 DBPRINT(sc, BCE_INFO_PHY,
1784 "%s(): Enabling TX flow control.\n", __FUNCTION__);
1785 BCE_SETBIT(sc, BCE_EMAC_TX_MODE, BCE_EMAC_TX_MODE_FLOW_EN);
1786 sc->bce_flags |= BCE_USING_TX_FLOW_CONTROL;
1787 } else {
1788 DBPRINT(sc, BCE_INFO_PHY,
1789 "%s(): Disabling TX flow control.\n", __FUNCTION__);
1790 BCE_CLRBIT(sc, BCE_EMAC_TX_MODE, BCE_EMAC_TX_MODE_FLOW_EN);

--- 9119 unchanged lines hidden ---