aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/cxgb3/adapter.h
diff options
context:
space:
mode:
authorDivy Le Ray <divy@chelsio.com>2009-03-12 17:14:19 -0400
committerDavid S. Miller <davem@davemloft.net>2009-03-13 14:30:47 -0400
commitbf792094ef830117312b3990b63474320ec864c0 (patch)
treedb47894a787ec8eee78b34c500661fd17231229f /drivers/net/cxgb3/adapter.h
parentcd40658a616050df0a50d0a3ded06e3ebcc0a04a (diff)
cxgb3: detect mac link faults.
The driver currently ignores the local or remote link faults raised at the mac layer. This patch fixes it. Our mac however only advertizes link events, so wait for the phy to stabilize the link, then enable mac link events interrupts. Signed-off-by: Divy Le Ray <divy@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/cxgb3/adapter.h')
-rw-r--r--drivers/net/cxgb3/adapter.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/cxgb3/adapter.h b/drivers/net/cxgb3/adapter.h
index 66ce456614a8..71eaa431371d 100644
--- a/drivers/net/cxgb3/adapter.h
+++ b/drivers/net/cxgb3/adapter.h
@@ -68,6 +68,8 @@ struct port_info {
68 struct net_device_stats netstats; 68 struct net_device_stats netstats;
69 int activity; 69 int activity;
70 __be32 iscsi_ipv4addr; 70 __be32 iscsi_ipv4addr;
71
72 int link_fault; /* link fault was detected */
71}; 73};
72 74
73enum { /* adapter flags */ 75enum { /* adapter flags */
@@ -241,6 +243,7 @@ struct adapter {
241 struct delayed_work adap_check_task; 243 struct delayed_work adap_check_task;
242 struct work_struct ext_intr_handler_task; 244 struct work_struct ext_intr_handler_task;
243 struct work_struct fatal_error_handler_task; 245 struct work_struct fatal_error_handler_task;
246 struct work_struct link_fault_handler_task;
244 247
245 struct dentry *debugfs_root; 248 struct dentry *debugfs_root;
246 249
@@ -283,6 +286,8 @@ void t3_os_ext_intr_handler(struct adapter *adapter);
283void t3_os_link_changed(struct adapter *adapter, int port_id, int link_status, 286void t3_os_link_changed(struct adapter *adapter, int port_id, int link_status,
284 int speed, int duplex, int fc); 287 int speed, int duplex, int fc);
285void t3_os_phymod_changed(struct adapter *adap, int port_id); 288void t3_os_phymod_changed(struct adapter *adap, int port_id);
289void t3_os_link_fault(struct adapter *adapter, int port_id, int state);
290void t3_os_link_fault_handler(struct adapter *adapter, int port_id);
286 291
287void t3_sge_start(struct adapter *adap); 292void t3_sge_start(struct adapter *adap);
288void t3_sge_stop(struct adapter *adap); 293void t3_sge_stop(struct adapter *adap);