diff options
author | Divy Le Ray <divy@chelsio.com> | 2009-03-12 21:14:19 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-03-13 11:30:47 -0700 |
commit | bf792094ef830117312b3990b63474320ec864c0 (patch) | |
tree | db47894a787ec8eee78b34c500661fd17231229f /drivers/net/cxgb3/adapter.h | |
parent | cd40658a616050df0a50d0a3ded06e3ebcc0a04a (diff) | |
download | kernel_samsung_smdk4412-bf792094ef830117312b3990b63474320ec864c0.zip kernel_samsung_smdk4412-bf792094ef830117312b3990b63474320ec864c0.tar.gz kernel_samsung_smdk4412-bf792094ef830117312b3990b63474320ec864c0.tar.bz2 |
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.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/cxgb3/adapter.h b/drivers/net/cxgb3/adapter.h index 66ce456..71eaa43 100644 --- a/drivers/net/cxgb3/adapter.h +++ b/drivers/net/cxgb3/adapter.h @@ -68,6 +68,8 @@ struct port_info { struct net_device_stats netstats; int activity; __be32 iscsi_ipv4addr; + + int link_fault; /* link fault was detected */ }; enum { /* adapter flags */ @@ -241,6 +243,7 @@ struct adapter { struct delayed_work adap_check_task; struct work_struct ext_intr_handler_task; struct work_struct fatal_error_handler_task; + struct work_struct link_fault_handler_task; struct dentry *debugfs_root; @@ -283,6 +286,8 @@ void t3_os_ext_intr_handler(struct adapter *adapter); void t3_os_link_changed(struct adapter *adapter, int port_id, int link_status, int speed, int duplex, int fc); void t3_os_phymod_changed(struct adapter *adap, int port_id); +void t3_os_link_fault(struct adapter *adapter, int port_id, int state); +void t3_os_link_fault_handler(struct adapter *adapter, int port_id); void t3_sge_start(struct adapter *adap); void t3_sge_stop(struct adapter *adap); |