Bug#391382: sky2 stops working 2.6.17 or ethernet driver crashes 2.6.18
Does this help.. it is going in next patchset.
--------------------------------------------------------
Subject: sky2: fix hangs on some chips
The driver inherited some bad setup code from sk98lin (vendor) driver that
causes receive FIFO probelms. Just remove it.
Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
--- sky2.orig/drivers/net/sky2.c 2006-10-06 15:53:52.000000000 -0700
+++ sky2/drivers/net/sky2.c 2006-10-06 15:57:47.000000000 -0700
@@ -689,15 +689,10 @@
sky2_write8(hw, SK_REG(port, TX_GMF_CTRL_T), GMF_RST_CLR);
sky2_write16(hw, SK_REG(port, TX_GMF_CTRL_T), GMF_OPER_ON);
- if (hw->chip_id == CHIP_ID_YUKON_EC_U) {
- sky2_write8(hw, SK_REG(port, RX_GMF_LP_THR), 768/8);
- sky2_write8(hw, SK_REG(port, RX_GMF_UP_THR), 1024/8);
- if (hw->dev[port]->mtu > ETH_DATA_LEN) {
- /* set Tx GMAC FIFO Almost Empty Threshold */
- sky2_write32(hw, SK_REG(port, TX_GMF_AE_THR), 0x180);
- /* Disable Store & Forward mode for TX */
- sky2_write32(hw, SK_REG(port, TX_GMF_CTRL_T), TX_STFW_DIS);
- }
+ if (hw->chip_id == CHIP_ID_YUKON_EC_U
+ && hw->dev[port]->mtu > ETH_DATA_LEN) {
+ /* Disable Store & Forward mode for TX */
+ sky2_write32(hw, SK_REG(port, TX_GMF_CTRL_T), TX_STFW_DIS);
}
}
Reply to: