aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/netxen/netxen_nic_hw.c
diff options
context:
space:
mode:
authorDhananjay Phadke <dhananjay@netxen.com>2009-04-07 18:50:42 -0400
committerDavid S. Miller <davem@davemloft.net>2009-04-08 18:58:27 -0400
commit3bf26ce3f4cc3c9e0d0478b4016c6113a16faaf1 (patch)
tree8478804493b6e749a6e61870c8c3b5b9549469ad /drivers/net/netxen/netxen_nic_hw.c
parent56a007871a6689db80e19f63fe6dc3692daa2a6f (diff)
netxen: async link event handling
Add support for asynchronous events from firmware, received over one of the rx rings. Add support for event based phy interrupts, enhanced links status reporting from firmware. Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/netxen/netxen_nic_hw.c')
-rw-r--r--drivers/net/netxen/netxen_nic_hw.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/drivers/net/netxen/netxen_nic_hw.c b/drivers/net/netxen/netxen_nic_hw.c
index 8416962cc9ac..33444a20e4f7 100644
--- a/drivers/net/netxen/netxen_nic_hw.c
+++ b/drivers/net/netxen/netxen_nic_hw.c
@@ -731,6 +731,28 @@ int netxen_config_rss(struct netxen_adapter *adapter, int enable)
731 return rv; 731 return rv;
732} 732}
733 733
734int netxen_linkevent_request(struct netxen_adapter *adapter, int enable)
735{
736 nx_nic_req_t req;
737 u64 word;
738 int rv;
739
740 memset(&req, 0, sizeof(nx_nic_req_t));
741 req.qhdr = cpu_to_le64(NX_HOST_REQUEST << 23);
742
743 word = NX_NIC_H2C_OPCODE_GET_LINKEVENT | ((u64)adapter->portnum << 16);
744 req.req_hdr = cpu_to_le64(word);
745 req.words[0] = cpu_to_le64(enable);
746
747 rv = netxen_send_cmd_descs(adapter, (struct cmd_desc_type0 *)&req, 1);
748 if (rv != 0) {
749 printk(KERN_ERR "%s: could not configure link notification\n",
750 adapter->netdev->name);
751 }
752
753 return rv;
754}
755
734/* 756/*
735 * netxen_nic_change_mtu - Change the Maximum Transfer Unit 757 * netxen_nic_change_mtu - Change the Maximum Transfer Unit
736 * @returns 0 on success, negative on failure 758 * @returns 0 on success, negative on failure