aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Hemminger <shemminger@linux-foundation.org>2007-09-27 15:32:44 -0400
committerJeff Garzik <jeff@garzik.org>2007-09-27 23:32:28 -0400
commitd6c9bc1ed4301cbc3df4565ff5348b64bf2a767c (patch)
tree02f8bbc5d89149207a9e195d2248bf7723b69ad0
parent3b12e0141f7a97c3b84731b5f935ed738bb6f960 (diff)
sky2: FE+ vlan workaround
The FE+ workaround means the driver can no longer trust the status register to indicate VLAN tagged frames. The fix for this is to just disable VLAN acceleration for that chip version. Tested and works fine. Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
-rw-r--r--drivers/net/sky2.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c
index a3de0b6127eb..3bfc9d3e3c6e 100644
--- a/drivers/net/sky2.c
+++ b/drivers/net/sky2.c
@@ -3970,8 +3970,12 @@ static __devinit struct net_device *sky2_init_netdev(struct sky2_hw *hw,
3970 dev->features |= NETIF_F_HIGHDMA; 3970 dev->features |= NETIF_F_HIGHDMA;
3971 3971
3972#ifdef SKY2_VLAN_TAG_USED 3972#ifdef SKY2_VLAN_TAG_USED
3973 dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; 3973 /* The workaround for FE+ status conflicts with VLAN tag detection. */
3974 dev->vlan_rx_register = sky2_vlan_rx_register; 3974 if (!(sky2->hw->chip_id == CHIP_ID_YUKON_FE_P &&
3975 sky2->hw->chip_rev == CHIP_REV_YU_FE2_A0)) {
3976 dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
3977 dev->vlan_rx_register = sky2_vlan_rx_register;
3978 }
3975#endif 3979#endif
3976 3980
3977 /* read the mac address */ 3981 /* read the mac address */