aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/sky2.h
diff options
context:
space:
mode:
authorStephen Hemminger <shemminger@linux-foundation.org>2007-09-19 18:36:46 -0400
committerJeff Garzik <jeff@garzik.org>2007-09-20 15:23:00 -0400
commit75e806838a3327d4ca9030e588d34de11b04f341 (patch)
tree11dff9f4326b300ff80cbc4f627f797a06ad8c52 /drivers/net/sky2.h
parent05745c4ab1c58fbb6ab8e8d3a40e0e395d7e2b0e (diff)
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.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/net/sky2.h b/drivers/net/sky2.h
index a05b30b68fa1..69cd98400fe6 100644
--- a/drivers/net/sky2.h
+++ b/drivers/net/sky2.h
@@ -2027,6 +2027,14 @@ struct sky2_port {
2027 u16 rx_tag; 2027 u16 rx_tag;
2028 struct vlan_group *vlgrp; 2028 struct vlan_group *vlgrp;
2029#endif 2029#endif
2030 struct {
2031 unsigned long last;
2032 u32 mac_rp;
2033 u8 mac_lev;
2034 u8 fifo_rp;
2035 u8 fifo_lev;
2036 } check;
2037
2030 2038
2031 dma_addr_t rx_le_map; 2039 dma_addr_t rx_le_map;
2032 dma_addr_t tx_le_map; 2040 dma_addr_t tx_le_map;
@@ -2064,7 +2072,6 @@ struct sky2_hw {
2064 u8 chip_rev; 2072 u8 chip_rev;
2065 u8 pmd_type; 2073 u8 pmd_type;
2066 u8 ports; 2074 u8 ports;
2067 u8 active;
2068 2075
2069 struct sky2_status_le *st_le; 2076 struct sky2_status_le *st_le;
2070 u32 st_idx; 2077 u32 st_idx;