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