Commit 2316aa2a authored by Greg Rose's avatar Greg Rose Committed by Jeff Kirsher

ixgbevf: Add X540 VF device support to the ixgbevf driver

The X540 introduces a new Virtual Function device ID so that the X540
VF device can be distinguished from the 82599 VF device.  The X540 VF
device will have additional capability over the 82599 VF device so it
is necessary to be able to discern the difference.
Signed-off-by: default avatarGreg Rose <gregory.v.rose@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent a985b6c3
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
/* Device IDs */ /* Device IDs */
#define IXGBE_DEV_ID_82599_VF 0x10ED #define IXGBE_DEV_ID_82599_VF 0x10ED
#define IXGBE_DEV_ID_X540_VF 0x1515
#define IXGBE_VF_IRQ_CLEAR_MASK 7 #define IXGBE_VF_IRQ_CLEAR_MASK 7
#define IXGBE_VF_MAX_TX_QUEUES 1 #define IXGBE_VF_MAX_TX_QUEUES 1
......
...@@ -275,9 +275,11 @@ enum ixbgevf_state_t { ...@@ -275,9 +275,11 @@ enum ixbgevf_state_t {
enum ixgbevf_boards { enum ixgbevf_boards {
board_82599_vf, board_82599_vf,
board_X540_vf,
}; };
extern struct ixgbevf_info ixgbevf_vf_info; extern struct ixgbevf_info ixgbevf_82599_vf_info;
extern struct ixgbevf_info ixgbevf_X540_vf_info;
extern struct ixgbe_mac_operations ixgbevf_mbx_ops; extern struct ixgbe_mac_operations ixgbevf_mbx_ops;
/* needed by ethtool.c */ /* needed by ethtool.c */
......
...@@ -51,13 +51,14 @@ char ixgbevf_driver_name[] = "ixgbevf"; ...@@ -51,13 +51,14 @@ char ixgbevf_driver_name[] = "ixgbevf";
static const char ixgbevf_driver_string[] = static const char ixgbevf_driver_string[] =
"Intel(R) 82599 Virtual Function"; "Intel(R) 82599 Virtual Function";
#define DRV_VERSION "1.0.12-k0" #define DRV_VERSION "1.0.19-k0"
const char ixgbevf_driver_version[] = DRV_VERSION; const char ixgbevf_driver_version[] = DRV_VERSION;
static char ixgbevf_copyright[] = static char ixgbevf_copyright[] =
"Copyright (c) 2009 - 2010 Intel Corporation."; "Copyright (c) 2009 - 2010 Intel Corporation.";
static const struct ixgbevf_info *ixgbevf_info_tbl[] = { static const struct ixgbevf_info *ixgbevf_info_tbl[] = {
[board_82599_vf] = &ixgbevf_vf_info, [board_82599_vf] = &ixgbevf_82599_vf_info,
[board_X540_vf] = &ixgbevf_X540_vf_info,
}; };
/* ixgbevf_pci_tbl - PCI Device ID Table /* ixgbevf_pci_tbl - PCI Device ID Table
...@@ -71,6 +72,8 @@ static const struct ixgbevf_info *ixgbevf_info_tbl[] = { ...@@ -71,6 +72,8 @@ static const struct ixgbevf_info *ixgbevf_info_tbl[] = {
static struct pci_device_id ixgbevf_pci_tbl[] = { static struct pci_device_id ixgbevf_pci_tbl[] = {
{PCI_VDEVICE(INTEL, IXGBE_DEV_ID_82599_VF), {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_82599_VF),
board_82599_vf}, board_82599_vf},
{PCI_VDEVICE(INTEL, IXGBE_DEV_ID_X540_VF),
board_X540_vf},
/* required last entry */ /* required last entry */
{0, } {0, }
......
...@@ -381,8 +381,12 @@ static struct ixgbe_mac_operations ixgbevf_mac_ops = { ...@@ -381,8 +381,12 @@ static struct ixgbe_mac_operations ixgbevf_mac_ops = {
.set_vfta = ixgbevf_set_vfta_vf, .set_vfta = ixgbevf_set_vfta_vf,
}; };
struct ixgbevf_info ixgbevf_vf_info = { struct ixgbevf_info ixgbevf_82599_vf_info = {
.mac = ixgbe_mac_82599_vf, .mac = ixgbe_mac_82599_vf,
.mac_ops = &ixgbevf_mac_ops, .mac_ops = &ixgbevf_mac_ops,
}; };
struct ixgbevf_info ixgbevf_X540_vf_info = {
.mac = ixgbe_mac_X540_vf,
.mac_ops = &ixgbevf_mac_ops,
};
...@@ -73,6 +73,7 @@ struct ixgbe_mac_operations { ...@@ -73,6 +73,7 @@ struct ixgbe_mac_operations {
enum ixgbe_mac_type { enum ixgbe_mac_type {
ixgbe_mac_unknown = 0, ixgbe_mac_unknown = 0,
ixgbe_mac_82599_vf, ixgbe_mac_82599_vf,
ixgbe_mac_X540_vf,
ixgbe_num_macs ixgbe_num_macs
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment