|
@@ -2847,6 +2847,31 @@ s32 ixgbe_set_vmdq_generic(struct ixgbe_hw *hw, u32 rar, u32 vmdq)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * This function should only be involved in the IOV mode.
|
|
|
+ * In IOV mode, Default pool is next pool after the number of
|
|
|
+ * VFs advertized and not 0.
|
|
|
+ * MPSAR table needs to be updated for SAN_MAC RAR [hw->mac.san_mac_rar_index]
|
|
|
+ *
|
|
|
+ * ixgbe_set_vmdq_san_mac - Associate default VMDq pool index with a rx address
|
|
|
+ * @hw: pointer to hardware struct
|
|
|
+ * @vmdq: VMDq pool index
|
|
|
+ **/
|
|
|
+s32 ixgbe_set_vmdq_san_mac_generic(struct ixgbe_hw *hw, u32 vmdq)
|
|
|
+{
|
|
|
+ u32 rar = hw->mac.san_mac_rar_index;
|
|
|
+
|
|
|
+ if (vmdq < 32) {
|
|
|
+ IXGBE_WRITE_REG(hw, IXGBE_MPSAR_LO(rar), 1 << vmdq);
|
|
|
+ IXGBE_WRITE_REG(hw, IXGBE_MPSAR_HI(rar), 0);
|
|
|
+ } else {
|
|
|
+ IXGBE_WRITE_REG(hw, IXGBE_MPSAR_LO(rar), 0);
|
|
|
+ IXGBE_WRITE_REG(hw, IXGBE_MPSAR_HI(rar), 1 << (vmdq - 32));
|
|
|
+ }
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* ixgbe_init_uta_tables_generic - Initialize the Unicast Table Array
|
|
|
* @hw: pointer to hardware structure
|