summaryrefslogtreecommitdiffstats
path: root/drivers/net/sky2.h
diff options
context:
space:
mode:
authorStephen Hemminger <shemminger@linux-foundation.org>2007-09-20 00:36:46 +0200
committerJeff Garzik <jeff@garzik.org>2007-09-20 21:23:00 +0200
commit75e806838a3327d4ca9030e588d34de11b04f341 (patch)
tree11dff9f4326b300ff80cbc4f627f797a06ad8c52 /drivers/net/sky2.h
parentsky2: fe+ chip support (diff)
downloadlinux-75e806838a3327d4ca9030e588d34de11b04f341.tar.xz
linux-75e806838a3327d4ca9030e588d34de11b04f341.zip
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 {
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;