diff options
Diffstat (limited to 'drivers/net/sky2.c')
-rw-r--r-- | drivers/net/sky2.c | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c index a3d99913f184..3943d89afb2b 100644 --- a/drivers/net/sky2.c +++ b/drivers/net/sky2.c | |||
@@ -374,8 +374,8 @@ static void sky2_phy_init(struct sky2_hw *hw, unsigned port) | |||
374 | ctrl |= PHY_M_PC_MDI_XMODE(PHY_M_PC_ENA_AUTO); | 374 | ctrl |= PHY_M_PC_MDI_XMODE(PHY_M_PC_ENA_AUTO); |
375 | 375 | ||
376 | /* downshift on PHY 88E1112 and 88E1149 is changed */ | 376 | /* downshift on PHY 88E1112 and 88E1149 is changed */ |
377 | if ( (sky2->flags & SKY2_FLAG_AUTO_SPEED) | 377 | if ( (sky2->flags & SKY2_FLAG_AUTO_SPEED) && |
378 | && (hw->flags & SKY2_HW_NEWER_PHY)) { | 378 | (hw->flags & SKY2_HW_NEWER_PHY)) { |
379 | /* set downshift counter to 3x and enable downshift */ | 379 | /* set downshift counter to 3x and enable downshift */ |
380 | ctrl &= ~PHY_M_PC_DSC_MSK; | 380 | ctrl &= ~PHY_M_PC_DSC_MSK; |
381 | ctrl |= PHY_M_PC_DSC(2) | PHY_M_PC_DOWN_S_ENA; | 381 | ctrl |= PHY_M_PC_DSC(2) | PHY_M_PC_DOWN_S_ENA; |
@@ -619,8 +619,8 @@ static void sky2_phy_init(struct sky2_hw *hw, unsigned port) | |||
619 | /* no effect on Yukon-XL */ | 619 | /* no effect on Yukon-XL */ |
620 | gm_phy_write(hw, port, PHY_MARV_LED_CTRL, ledctrl); | 620 | gm_phy_write(hw, port, PHY_MARV_LED_CTRL, ledctrl); |
621 | 621 | ||
622 | if ( !(sky2->flags & SKY2_FLAG_AUTO_SPEED) | 622 | if (!(sky2->flags & SKY2_FLAG_AUTO_SPEED) || |
623 | || sky2->speed == SPEED_100) { | 623 | sky2->speed == SPEED_100) { |
624 | /* turn on 100 Mbps LED (LED_LINK100) */ | 624 | /* turn on 100 Mbps LED (LED_LINK100) */ |
625 | ledover |= PHY_M_LED_MO_100(MO_LED_ON); | 625 | ledover |= PHY_M_LED_MO_100(MO_LED_ON); |
626 | } | 626 | } |
@@ -937,8 +937,8 @@ static void sky2_mac_init(struct sky2_hw *hw, unsigned port) | |||
937 | /* On chips without ram buffer, pause is controled by MAC level */ | 937 | /* On chips without ram buffer, pause is controled by MAC level */ |
938 | if (!(hw->flags & SKY2_HW_RAM_BUFFER)) { | 938 | if (!(hw->flags & SKY2_HW_RAM_BUFFER)) { |
939 | /* Pause threshold is scaled by 8 in bytes */ | 939 | /* Pause threshold is scaled by 8 in bytes */ |
940 | if (hw->chip_id == CHIP_ID_YUKON_FE_P | 940 | if (hw->chip_id == CHIP_ID_YUKON_FE_P && |
941 | && hw->chip_rev == CHIP_REV_YU_FE2_A0) | 941 | hw->chip_rev == CHIP_REV_YU_FE2_A0) |
942 | reg = 1568 / 8; | 942 | reg = 1568 / 8; |
943 | else | 943 | else |
944 | reg = 1024 / 8; | 944 | reg = 1024 / 8; |
@@ -1353,8 +1353,8 @@ static int sky2_rx_start(struct sky2_port *sky2) | |||
1353 | /* These chips have no ram buffer? | 1353 | /* These chips have no ram buffer? |
1354 | * MAC Rx RAM Read is controlled by hardware */ | 1354 | * MAC Rx RAM Read is controlled by hardware */ |
1355 | if (hw->chip_id == CHIP_ID_YUKON_EC_U && | 1355 | if (hw->chip_id == CHIP_ID_YUKON_EC_U && |
1356 | (hw->chip_rev == CHIP_REV_YU_EC_U_A1 | 1356 | (hw->chip_rev == CHIP_REV_YU_EC_U_A1 || |
1357 | || hw->chip_rev == CHIP_REV_YU_EC_U_B0)) | 1357 | hw->chip_rev == CHIP_REV_YU_EC_U_B0)) |
1358 | sky2_write32(hw, Q_ADDR(rxq, Q_TEST), F_M_RX_RAM_DIS); | 1358 | sky2_write32(hw, Q_ADDR(rxq, Q_TEST), F_M_RX_RAM_DIS); |
1359 | 1359 | ||
1360 | sky2_prefetch_init(hw, rxq, sky2->rx_le_map, RX_LE_SIZE - 1); | 1360 | sky2_prefetch_init(hw, rxq, sky2->rx_le_map, RX_LE_SIZE - 1); |
@@ -1560,8 +1560,8 @@ static int sky2_up(struct net_device *dev) | |||
1560 | sky2_write32(hw, Q_ADDR(txqaddr[port], Q_TEST), F_TX_CHK_AUTO_OFF); | 1560 | sky2_write32(hw, Q_ADDR(txqaddr[port], Q_TEST), F_TX_CHK_AUTO_OFF); |
1561 | 1561 | ||
1562 | /* Set almost empty threshold */ | 1562 | /* Set almost empty threshold */ |
1563 | if (hw->chip_id == CHIP_ID_YUKON_EC_U | 1563 | if (hw->chip_id == CHIP_ID_YUKON_EC_U && |
1564 | && hw->chip_rev == CHIP_REV_YU_EC_U_A0) | 1564 | hw->chip_rev == CHIP_REV_YU_EC_U_A0) |
1565 | sky2_write16(hw, Q_ADDR(txqaddr[port], Q_AL), ECU_TXFF_LEV); | 1565 | sky2_write16(hw, Q_ADDR(txqaddr[port], Q_AL), ECU_TXFF_LEV); |
1566 | 1566 | ||
1567 | sky2_prefetch_init(hw, txqaddr[port], sky2->tx_le_map, | 1567 | sky2_prefetch_init(hw, txqaddr[port], sky2->tx_le_map, |
@@ -1907,8 +1907,8 @@ static int sky2_down(struct net_device *dev) | |||
1907 | sky2_write8(hw, SK_REG(port, GPHY_CTRL), GPC_RST_SET); | 1907 | sky2_write8(hw, SK_REG(port, GPHY_CTRL), GPC_RST_SET); |
1908 | 1908 | ||
1909 | /* Workaround shared GMAC reset */ | 1909 | /* Workaround shared GMAC reset */ |
1910 | if (!(hw->chip_id == CHIP_ID_YUKON_XL && hw->chip_rev == 0 | 1910 | if (!(hw->chip_id == CHIP_ID_YUKON_XL && hw->chip_rev == 0 && |
1911 | && port == 0 && hw->dev[1] && netif_running(hw->dev[1]))) | 1911 | port == 0 && hw->dev[1] && netif_running(hw->dev[1]))) |
1912 | sky2_write8(hw, SK_REG(port, GMAC_CTRL), GMC_RST_SET); | 1912 | sky2_write8(hw, SK_REG(port, GMAC_CTRL), GMC_RST_SET); |
1913 | 1913 | ||
1914 | sky2_write8(hw, SK_REG(port, RX_GMF_CTRL_T), GMF_RST_SET); | 1914 | sky2_write8(hw, SK_REG(port, RX_GMF_CTRL_T), GMF_RST_SET); |
@@ -2085,8 +2085,8 @@ static int sky2_autoneg_done(struct sky2_port *sky2, u16 aux) | |||
2085 | sky2->flow_status = FC_TX; | 2085 | sky2->flow_status = FC_TX; |
2086 | } | 2086 | } |
2087 | 2087 | ||
2088 | if (sky2->duplex == DUPLEX_HALF && sky2->speed < SPEED_1000 | 2088 | if (sky2->duplex == DUPLEX_HALF && sky2->speed < SPEED_1000 && |
2089 | && !(hw->chip_id == CHIP_ID_YUKON_EC_U || hw->chip_id == CHIP_ID_YUKON_EX)) | 2089 | !(hw->chip_id == CHIP_ID_YUKON_EC_U || hw->chip_id == CHIP_ID_YUKON_EX)) |
2090 | sky2->flow_status = FC_NONE; | 2090 | sky2->flow_status = FC_NONE; |
2091 | 2091 | ||
2092 | if (sky2->flow_status & FC_TX) | 2092 | if (sky2->flow_status & FC_TX) |
@@ -3244,8 +3244,8 @@ static int sky2_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol) | |||
3244 | struct sky2_port *sky2 = netdev_priv(dev); | 3244 | struct sky2_port *sky2 = netdev_priv(dev); |
3245 | struct sky2_hw *hw = sky2->hw; | 3245 | struct sky2_hw *hw = sky2->hw; |
3246 | 3246 | ||
3247 | if ((wol->wolopts & ~sky2_wol_supported(sky2->hw)) | 3247 | if ((wol->wolopts & ~sky2_wol_supported(sky2->hw)) || |
3248 | || !device_can_wakeup(&hw->pdev->dev)) | 3248 | !device_can_wakeup(&hw->pdev->dev)) |
3249 | return -EOPNOTSUPP; | 3249 | return -EOPNOTSUPP; |
3250 | 3250 | ||
3251 | sky2->wol = wol->wolopts; | 3251 | sky2->wol = wol->wolopts; |