Commit 6b78bb1d authored by Carolyn Wyborny's avatar Carolyn Wyborny Committed by Jeff Kirsher

igb: Enable PF side of SR-IOV support for i350 devices

This patch adds full support for SR-IOV by enabling the PF side.
VF side has already been committed.
Signed-off-by: default avatarCarolyn Wyborny <carolyn.wyborny@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent 5962bc21
...@@ -238,9 +238,15 @@ static s32 igb_get_invariants_82575(struct e1000_hw *hw) ...@@ -238,9 +238,15 @@ static s32 igb_get_invariants_82575(struct e1000_hw *hw)
size = 14; size = 14;
nvm->word_size = 1 << size; nvm->word_size = 1 << size;
/* if 82576 then initialize mailbox parameters */ /* if part supports SR-IOV then initialize mailbox parameters */
if (mac->type == e1000_82576) switch (mac->type) {
case e1000_82576:
case e1000_i350:
igb_init_mbx_params_pf(hw); igb_init_mbx_params_pf(hw);
break;
default:
break;
}
/* setup PHY parameters */ /* setup PHY parameters */
if (phy->media_type != e1000_media_type_copper) { if (phy->media_type != e1000_media_type_copper) {
......
...@@ -422,26 +422,24 @@ s32 igb_init_mbx_params_pf(struct e1000_hw *hw) ...@@ -422,26 +422,24 @@ s32 igb_init_mbx_params_pf(struct e1000_hw *hw)
{ {
struct e1000_mbx_info *mbx = &hw->mbx; struct e1000_mbx_info *mbx = &hw->mbx;
if (hw->mac.type == e1000_82576) { mbx->timeout = 0;
mbx->timeout = 0; mbx->usec_delay = 0;
mbx->usec_delay = 0;
mbx->size = E1000_VFMAILBOX_SIZE;
mbx->size = E1000_VFMAILBOX_SIZE;
mbx->ops.read = igb_read_mbx_pf;
mbx->ops.read = igb_read_mbx_pf; mbx->ops.write = igb_write_mbx_pf;
mbx->ops.write = igb_write_mbx_pf; mbx->ops.read_posted = igb_read_posted_mbx;
mbx->ops.read_posted = igb_read_posted_mbx; mbx->ops.write_posted = igb_write_posted_mbx;
mbx->ops.write_posted = igb_write_posted_mbx; mbx->ops.check_for_msg = igb_check_for_msg_pf;
mbx->ops.check_for_msg = igb_check_for_msg_pf; mbx->ops.check_for_ack = igb_check_for_ack_pf;
mbx->ops.check_for_ack = igb_check_for_ack_pf; mbx->ops.check_for_rst = igb_check_for_rst_pf;
mbx->ops.check_for_rst = igb_check_for_rst_pf;
mbx->stats.msgs_tx = 0;
mbx->stats.msgs_tx = 0; mbx->stats.msgs_rx = 0;
mbx->stats.msgs_rx = 0; mbx->stats.reqs = 0;
mbx->stats.reqs = 0; mbx->stats.acks = 0;
mbx->stats.acks = 0; mbx->stats.rsts = 0;
mbx->stats.rsts = 0;
}
return 0; return 0;
} }
......
...@@ -2287,9 +2287,14 @@ static int __devinit igb_sw_init(struct igb_adapter *adapter) ...@@ -2287,9 +2287,14 @@ static int __devinit igb_sw_init(struct igb_adapter *adapter)
spin_lock_init(&adapter->stats64_lock); spin_lock_init(&adapter->stats64_lock);
#ifdef CONFIG_PCI_IOV #ifdef CONFIG_PCI_IOV
if (hw->mac.type == e1000_82576) switch (hw->mac.type) {
case e1000_82576:
case e1000_i350:
adapter->vfs_allocated_count = (max_vfs > 7) ? 7 : max_vfs; adapter->vfs_allocated_count = (max_vfs > 7) ? 7 : max_vfs;
break;
default:
break;
}
#endif /* CONFIG_PCI_IOV */ #endif /* CONFIG_PCI_IOV */
adapter->rss_queues = min_t(u32, IGB_MAX_RX_QUEUES, num_online_cpus()); adapter->rss_queues = min_t(u32, IGB_MAX_RX_QUEUES, num_online_cpus());
......
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