aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/igb/e1000_hw.h
diff options
context:
space:
mode:
authorAlexander Duyck <alexander.h.duyck@intel.com>2009-02-19 23:40:07 -0500
committerDavid S. Miller <davem@davemloft.net>2009-02-20 03:22:54 -0500
commit4ae196dfd61d06b061c069edcdd7c73121e60a21 (patch)
tree68111629e73751b6200cc9bdd8b769246fe0d540 /drivers/net/igb/e1000_hw.h
parente173952257d7a3d3c64de3039d9fc02d1fbf49c3 (diff)
igb: Add support for enabling VFs to PF driver.
This patch adds the support to handle requests from the VF to perform operations such as completing resets, setting/reading mac address, adding vlans, adding multicast addresses, setting rlpml, and general communications between the PF and all VFs. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/igb/e1000_hw.h')
-rw-r--r--drivers/net/igb/e1000_hw.h31
1 files changed, 30 insertions, 1 deletions
diff --git a/drivers/net/igb/e1000_hw.h b/drivers/net/igb/e1000_hw.h
index 10b872d3c9f4..d793dca1eef6 100644
--- a/drivers/net/igb/e1000_hw.h
+++ b/drivers/net/igb/e1000_hw.h
@@ -32,7 +32,6 @@
32#include <linux/delay.h> 32#include <linux/delay.h>
33#include <linux/io.h> 33#include <linux/io.h>
34 34
35#include "e1000_mac.h"
36#include "e1000_regs.h" 35#include "e1000_regs.h"
37#include "e1000_defines.h" 36#include "e1000_defines.h"
38 37
@@ -272,6 +271,7 @@ struct e1000_host_mng_command_info {
272#include "e1000_mac.h" 271#include "e1000_mac.h"
273#include "e1000_phy.h" 272#include "e1000_phy.h"
274#include "e1000_nvm.h" 273#include "e1000_nvm.h"
274#include "e1000_mbx.h"
275 275
276struct e1000_mac_operations { 276struct e1000_mac_operations {
277 s32 (*check_for_link)(struct e1000_hw *); 277 s32 (*check_for_link)(struct e1000_hw *);
@@ -427,6 +427,34 @@ struct e1000_fc_info {
427 enum e1000_fc_type original_type; 427 enum e1000_fc_type original_type;
428}; 428};
429 429
430struct e1000_mbx_operations {
431 s32 (*init_params)(struct e1000_hw *hw);
432 s32 (*read)(struct e1000_hw *, u32 *, u16, u16);
433 s32 (*write)(struct e1000_hw *, u32 *, u16, u16);
434 s32 (*read_posted)(struct e1000_hw *, u32 *, u16, u16);
435 s32 (*write_posted)(struct e1000_hw *, u32 *, u16, u16);
436 s32 (*check_for_msg)(struct e1000_hw *, u16);
437 s32 (*check_for_ack)(struct e1000_hw *, u16);
438 s32 (*check_for_rst)(struct e1000_hw *, u16);
439};
440
441struct e1000_mbx_stats {
442 u32 msgs_tx;
443 u32 msgs_rx;
444
445 u32 acks;
446 u32 reqs;
447 u32 rsts;
448};
449
450struct e1000_mbx_info {
451 struct e1000_mbx_operations ops;
452 struct e1000_mbx_stats stats;
453 u32 timeout;
454 u32 usec_delay;
455 u16 size;
456};
457
430struct e1000_dev_spec_82575 { 458struct e1000_dev_spec_82575 {
431 bool sgmii_active; 459 bool sgmii_active;
432}; 460};
@@ -443,6 +471,7 @@ struct e1000_hw {
443 struct e1000_phy_info phy; 471 struct e1000_phy_info phy;
444 struct e1000_nvm_info nvm; 472 struct e1000_nvm_info nvm;
445 struct e1000_bus_info bus; 473 struct e1000_bus_info bus;
474 struct e1000_mbx_info mbx;
446 struct e1000_host_mng_dhcp_cookie mng_cookie; 475 struct e1000_host_mng_dhcp_cookie mng_cookie;
447 476
448 union { 477 union {