[PATCH] skge: speed setting

This is a clone of John Linville's fixed for speed setting on sky2 driver.
The skge driver has the same code (and bug). It would not allow manually forcing
100 and 10 mbit.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>

authored by Stephen Hemminger and committed by Jeff Garzik 564f9abb 7a160c73

+9 -1
+9 -1
drivers/net/skge.c
··· 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); 1699 skge_write32(hw, SK_REG(port, GMAC_CTRL), GMC_PAUSE_ON | GMC_RST_CLR); 1700 if (skge->autoneg == AUTONEG_DISABLE) { 1701 reg = GM_GPCR_AU_ALL_DIS; 1702 gma_write16(hw, port, GM_GP_CTRL, ··· 1705 1706 switch (skge->speed) { 1707 case SPEED_1000: 1708 reg |= GM_GPCR_SPEED_1000; 1709 - /* fallthru */ 1710 case SPEED_100: 1711 reg |= GM_GPCR_SPEED_100; 1712 } 1713 1714 if (skge->duplex == DUPLEX_FULL) 1715 reg |= GM_GPCR_DUP_FULL; 1716 } else 1717 reg = GM_GPCR_SPEED_1000 | GM_GPCR_SPEED_100 | GM_GPCR_DUP_FULL; 1718 switch (skge->flow_control) { 1719 case FLOW_MODE_NONE: 1720 skge_write32(hw, SK_REG(port, GMAC_CTRL), GMC_PAUSE_OFF);
··· 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); 1699 skge_write32(hw, SK_REG(port, GMAC_CTRL), GMC_PAUSE_ON | GMC_RST_CLR); 1700 + 1701 if (skge->autoneg == AUTONEG_DISABLE) { 1702 reg = GM_GPCR_AU_ALL_DIS; 1703 gma_write16(hw, port, GM_GP_CTRL, ··· 1704 1705 switch (skge->speed) { 1706 case SPEED_1000: 1707 + reg &= ~GM_GPCR_SPEED_100; 1708 reg |= GM_GPCR_SPEED_1000; 1709 + break; 1710 case SPEED_100: 1711 + reg &= ~GM_GPCR_SPEED_1000; 1712 reg |= GM_GPCR_SPEED_100; 1713 + break; 1714 + case SPEED_10: 1715 + reg &= ~(GM_GPCR_SPEED_1000 | GM_GPCR_SPEED_100); 1716 + break; 1717 } 1718 1719 if (skge->duplex == DUPLEX_FULL) 1720 reg |= GM_GPCR_DUP_FULL; 1721 } else 1722 reg = GM_GPCR_SPEED_1000 | GM_GPCR_SPEED_100 | GM_GPCR_DUP_FULL; 1723 + 1724 switch (skge->flow_control) { 1725 case FLOW_MODE_NONE: 1726 skge_write32(hw, SK_REG(port, GMAC_CTRL), GMC_PAUSE_OFF);