aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/qlcnic/qlcnic.h
diff options
context:
space:
mode:
authorAmit Kumar Salecha <amit.salecha@qlogic.com>2010-02-01 05:24:59 +0000
committerDavid S. Miller <davem@davemloft.net>2010-02-02 15:55:46 -0800
commit7eb9855d68faabe0004ed18c2af1f0974d3c2c63 (patch)
tree750382ba8db5b390847ce05fc4f216d1d7d7d533 /drivers/net/qlcnic/qlcnic.h
parentqlcnic: support LED blink for device identification (diff)
downloadlinux-dev-7eb9855d68faabe0004ed18c2af1f0974d3c2c63.tar.xz
linux-dev-7eb9855d68faabe0004ed18c2af1f0974d3c2c63.zip
qlcnic: add interrupt diagnostic test
Interrupt test (offline) added in ethtool self test. Register a temporary interrupt handler and then send command to fw to raise an interrupt. Signed-off-by: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com> Signed-off-by: Amit Kumar Salecha <amit.salecha@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/qlcnic/qlcnic.h')
-rw-r--r--drivers/net/qlcnic/qlcnic.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/drivers/net/qlcnic/qlcnic.h b/drivers/net/qlcnic/qlcnic.h
index 514e805f3ab3..a5a67e9b5e10 100644
--- a/drivers/net/qlcnic/qlcnic.h
+++ b/drivers/net/qlcnic/qlcnic.h
@@ -560,6 +560,8 @@ struct qlcnic_recv_context {
/*
* Context state
*/
+#define QLCHAL_VERSION 1
+
#define QLCNIC_HOST_CTX_STATE_ACTIVE 2
/*
@@ -894,6 +896,8 @@ struct qlcnic_mac_req {
#define __QLCNIC_RESETTING 2
#define __QLCNIC_START_FW 4
+#define QLCNIC_INTERRUPT_TEST 1
+
struct qlcnic_adapter {
struct qlcnic_hardware_context ahw;
@@ -946,9 +950,10 @@ struct qlcnic_adapter {
u32 heartbit;
u8 dev_state;
+ u8 diag_test;
+ u8 diag_cnt;
u8 rsrd1;
- u32 rsrd2;
-
+ u16 rsrd2;
u8 mac_addr[ETH_ALEN];
@@ -1064,6 +1069,10 @@ int qlcnic_get_mac_addr(struct qlcnic_adapter *adapter, u64 *mac);
/* Functions from qlcnic_main.c */
int qlcnic_reset_context(struct qlcnic_adapter *);
+u32 qlcnic_issue_cmd(struct qlcnic_adapter *adapter,
+ u32 pci_fn, u32 version, u32 arg1, u32 arg2, u32 arg3, u32 cmd);
+void qlcnic_diag_free_res(struct net_device *netdev, int max_sds_rings);
+int qlcnic_diag_alloc_res(struct net_device *netdev, int test);
/*
* QLOGIC Board information