summaryrefslogtreecommitdiffstats
path: root/drivers/net/sky2.c
diff options
context:
space:
mode:
authorStephen Hemminger <shemminger@linux-foundation.org>2007-11-27 20:02:07 +0100
committerJeff Garzik <jeff@garzik.org>2007-12-01 22:32:31 +0100
commite970d1f8106514ea619d7a9005b1dc92c6049b32 (patch)
tree4f9f71d4237ba6678774c3495c8f9c3bf87099ce /drivers/net/sky2.c
parentsky2: don't use AER routines (diff)
downloadlinux-e970d1f8106514ea619d7a9005b1dc92c6049b32.tar.xz
linux-e970d1f8106514ea619d7a9005b1dc92c6049b32.zip
sky2: turn of dynamic Tx watermark workaround (FE+ only)
Add workaround for issues FE+ (A0) transmit watermark. This is copied verbatim from vendor driver sk98lin (10.22.4.3). Don't have that chip version and no more information seems to be available. Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/sky2.c')
-rw-r--r--drivers/net/sky2.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c
index a42f1c7ac18f..3d1dfc948405 100644
--- a/drivers/net/sky2.c
+++ b/drivers/net/sky2.c
@@ -845,6 +845,13 @@ static void sky2_mac_init(struct sky2_hw *hw, unsigned port)
sky2_set_tx_stfwd(hw, port);
}
+ if (hw->chip_id == CHIP_ID_YUKON_FE_P &&
+ hw->chip_rev == CHIP_REV_YU_FE2_A0) {
+ /* disable dynamic watermark */
+ reg = sky2_read16(hw, SK_REG(port, TX_GMF_EA));
+ reg &= ~TX_DYN_WM_ENA;
+ sky2_write16(hw, SK_REG(port, TX_GMF_EA), reg);
+ }
}
/* Assign Ram Buffer allocation to queue */