aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel
diff options
context:
space:
mode:
authorDon Skidmore <donald.c.skidmore@intel.com>2014-11-04 23:52:09 -0500
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2014-11-11 09:18:49 -0500
commit8d697e7e54eed5528c3cd720607af6c1d6032d42 (patch)
tree4c9fdcbcdb696e791790ce69640ad0616ba7f69a /drivers/net/ethernet/intel
parent2b509c0cd2923f2ca6e7b13517e54b6a60e56e18 (diff)
ixgbe: cleanup move setting PFQDE.HIDE_VLAN to support function.
Move setting of drop enable to support function. This not only makes the code more readable but is also prep for following patches that add additional MAC support. Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ethernet/intel')
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c31
1 files changed, 22 insertions, 9 deletions
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
index 07d1c047d1c6..0c25df506247 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
@@ -618,6 +618,27 @@ int ixgbe_vf_configuration(struct pci_dev *pdev, unsigned int event_mask)
618 return 0; 618 return 0;
619} 619}
620 620
621static inline void ixgbe_write_qde(struct ixgbe_adapter *adapter, u32 vf,
622 u32 qde)
623{
624 struct ixgbe_hw *hw = &adapter->hw;
625 struct ixgbe_ring_feature *vmdq = &adapter->ring_feature[RING_F_VMDQ];
626 u32 q_per_pool = __ALIGN_MASK(1, ~vmdq->mask);
627 int i;
628
629 for (i = vf * q_per_pool; i < ((vf + 1) * q_per_pool); i++) {
630 u32 reg;
631
632 /* flush previous write */
633 IXGBE_WRITE_FLUSH(hw);
634
635 /* indicate to hardware that we want to set drop enable */
636 reg = IXGBE_QDE_WRITE | IXGBE_QDE_ENABLE;
637 reg |= i << IXGBE_QDE_IDX_SHIFT;
638 IXGBE_WRITE_REG(hw, IXGBE_QDE, reg);
639 }
640}
641
621static int ixgbe_vf_reset_msg(struct ixgbe_adapter *adapter, u32 vf) 642static int ixgbe_vf_reset_msg(struct ixgbe_adapter *adapter, u32 vf)
622{ 643{
623 struct ixgbe_ring_feature *vmdq = &adapter->ring_feature[RING_F_VMDQ]; 644 struct ixgbe_ring_feature *vmdq = &adapter->ring_feature[RING_F_VMDQ];
@@ -647,15 +668,7 @@ static int ixgbe_vf_reset_msg(struct ixgbe_adapter *adapter, u32 vf)
647 IXGBE_WRITE_REG(hw, IXGBE_VFTE(reg_offset), reg); 668 IXGBE_WRITE_REG(hw, IXGBE_VFTE(reg_offset), reg);
648 669
649 /* force drop enable for all VF Rx queues */ 670 /* force drop enable for all VF Rx queues */
650 for (i = vf * q_per_pool; i < ((vf + 1) * q_per_pool); i++) { 671 ixgbe_write_qde(adapter, vf, IXGBE_QDE_ENABLE);
651 /* flush previous write */
652 IXGBE_WRITE_FLUSH(hw);
653
654 /* indicate to hardware that we want to set drop enable */
655 reg = IXGBE_QDE_WRITE | IXGBE_QDE_ENABLE;
656 reg |= i << IXGBE_QDE_IDX_SHIFT;
657 IXGBE_WRITE_REG(hw, IXGBE_QDE, reg);
658 }
659 672
660 /* enable receive for vf */ 673 /* enable receive for vf */
661 reg = IXGBE_READ_REG(hw, IXGBE_VFRE(reg_offset)); 674 reg = IXGBE_READ_REG(hw, IXGBE_VFRE(reg_offset));