diff options
author | Stephen Hemminger <shemminger@linux-foundation.org> | 2007-09-19 15:36:46 -0700 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-09-20 15:23:00 -0400 |
commit | 75e806838a3327d4ca9030e588d34de11b04f341 (patch) | |
tree | 11dff9f4326b300ff80cbc4f627f797a06ad8c52 /drivers/net/sky2.h | |
parent | 05745c4ab1c58fbb6ab8e8d3a40e0e395d7e2b0e (diff) | |
download | kernel_goldelico_gta04-75e806838a3327d4ca9030e588d34de11b04f341.zip kernel_goldelico_gta04-75e806838a3327d4ca9030e588d34de11b04f341.tar.gz kernel_goldelico_gta04-75e806838a3327d4ca9030e588d34de11b04f341.tar.bz2 |
sky2: receive FIFO checking
A driver writer from another operating system hinted that
the versions of Yukon 2 chip with rambuffer (EC and XL) have
a hardware bug that if the FIFO ever gets completely full it
will hang. Sounds like a classic ring full vs ring empty wrap around
bug.
As a workaround, use the existing watchdog timer to check for
ring full lockup.
Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/sky2.h')
-rw-r--r-- | drivers/net/sky2.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/net/sky2.h b/drivers/net/sky2.h index a05b30b..69cd984 100644 --- a/drivers/net/sky2.h +++ b/drivers/net/sky2.h @@ -2027,6 +2027,14 @@ struct sky2_port { u16 rx_tag; struct vlan_group *vlgrp; #endif + struct { + unsigned long last; + u32 mac_rp; + u8 mac_lev; + u8 fifo_rp; + u8 fifo_lev; + } check; + dma_addr_t rx_le_map; dma_addr_t tx_le_map; @@ -2064,7 +2072,6 @@ struct sky2_hw { u8 chip_rev; u8 pmd_type; u8 ports; - u8 active; struct sky2_status_le *st_le; u32 st_idx; |