diff options
author | Steve French <sfrench@us.ibm.com> | 2006-02-18 10:07:18 -0500 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2006-02-18 10:07:18 -0500 |
commit | e601ef22bc5ec9332c8d785533895ee81c834b8a (patch) | |
tree | 4685a666fe2a553dccdfe7b4b3f88816d075b29e /drivers/net/skge.c | |
parent | 27754b34600770beb38e3ae12cb3f345f02e3797 (diff) | |
parent | bd71c2b17468a2531fb4c81ec1d73520845e97e1 (diff) |
Merge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'drivers/net/skge.c')
-rw-r--r-- | drivers/net/skge.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/net/skge.c b/drivers/net/skge.c index bf55a4cfb3d2..67fb19b8fde9 100644 --- a/drivers/net/skge.c +++ b/drivers/net/skge.c | |||
@@ -1697,6 +1697,7 @@ static void yukon_mac_init(struct skge_hw *hw, int port) | |||
1697 | skge_write32(hw, SK_REG(port, GPHY_CTRL), reg | GPC_RST_SET); | 1697 | skge_write32(hw, SK_REG(port, GPHY_CTRL), reg | GPC_RST_SET); |
1698 | skge_write32(hw, SK_REG(port, GPHY_CTRL), reg | GPC_RST_CLR); | 1698 | skge_write32(hw, SK_REG(port, GPHY_CTRL), reg | GPC_RST_CLR); |
1699 | skge_write32(hw, SK_REG(port, GMAC_CTRL), GMC_PAUSE_ON | GMC_RST_CLR); | 1699 | skge_write32(hw, SK_REG(port, GMAC_CTRL), GMC_PAUSE_ON | GMC_RST_CLR); |
1700 | |||
1700 | if (skge->autoneg == AUTONEG_DISABLE) { | 1701 | if (skge->autoneg == AUTONEG_DISABLE) { |
1701 | reg = GM_GPCR_AU_ALL_DIS; | 1702 | reg = GM_GPCR_AU_ALL_DIS; |
1702 | gma_write16(hw, port, GM_GP_CTRL, | 1703 | gma_write16(hw, port, GM_GP_CTRL, |
@@ -1704,16 +1705,23 @@ static void yukon_mac_init(struct skge_hw *hw, int port) | |||
1704 | 1705 | ||
1705 | switch (skge->speed) { | 1706 | switch (skge->speed) { |
1706 | case SPEED_1000: | 1707 | case SPEED_1000: |
1708 | reg &= ~GM_GPCR_SPEED_100; | ||
1707 | reg |= GM_GPCR_SPEED_1000; | 1709 | reg |= GM_GPCR_SPEED_1000; |
1708 | /* fallthru */ | 1710 | break; |
1709 | case SPEED_100: | 1711 | case SPEED_100: |
1712 | reg &= ~GM_GPCR_SPEED_1000; | ||
1710 | reg |= GM_GPCR_SPEED_100; | 1713 | reg |= GM_GPCR_SPEED_100; |
1714 | break; | ||
1715 | case SPEED_10: | ||
1716 | reg &= ~(GM_GPCR_SPEED_1000 | GM_GPCR_SPEED_100); | ||
1717 | break; | ||
1711 | } | 1718 | } |
1712 | 1719 | ||
1713 | if (skge->duplex == DUPLEX_FULL) | 1720 | if (skge->duplex == DUPLEX_FULL) |
1714 | reg |= GM_GPCR_DUP_FULL; | 1721 | reg |= GM_GPCR_DUP_FULL; |
1715 | } else | 1722 | } else |
1716 | reg = GM_GPCR_SPEED_1000 | GM_GPCR_SPEED_100 | GM_GPCR_DUP_FULL; | 1723 | reg = GM_GPCR_SPEED_1000 | GM_GPCR_SPEED_100 | GM_GPCR_DUP_FULL; |
1724 | |||
1717 | switch (skge->flow_control) { | 1725 | switch (skge->flow_control) { |
1718 | case FLOW_MODE_NONE: | 1726 | case FLOW_MODE_NONE: |
1719 | skge_write32(hw, SK_REG(port, GMAC_CTRL), GMC_PAUSE_OFF); | 1727 | skge_write32(hw, SK_REG(port, GMAC_CTRL), GMC_PAUSE_OFF); |