Lines Matching defs:rar
1916 /* Make sure we are using a valid rar index range */
1966 /* Make sure we are using a valid rar index range */
2070 uint32_t rar;
2082 rar = hw->addr_ctrl.rar_used_count;
2083 hw->mac.ops.set_rar(hw, rar, addr, vmdq, IXGBE_RAH_AV);
2084 DEBUGOUT1("Added a secondary address to RAR[%d]\n", rar);
3052 * finds the rar that it is already in; adds to the pool list
3058 uint32_t rar;
3071 * Either find the mac_id in rar or find the first empty space.
3073 * rar in order to shorten the search. It grows when we add a new
3074 * rar to the top.
3076 for (rar = 0; rar < hw->mac.rar_highwater; rar++) {
3077 rar_high = IXGBE_READ_REG(hw, IXGBE_RAH(rar));
3081 first_empty_rar = rar;
3083 rar_low = IXGBE_READ_REG(hw, IXGBE_RAL(rar));
3089 if (rar < hw->mac.rar_highwater) {
3091 ixgbe_set_vmdq(hw, rar, vmdq);
3094 rar = first_empty_rar;
3095 ixgbe_set_rar(hw, rar, addr, vmdq, IXGBE_RAH_AV);
3096 } else if (rar == hw->mac.rar_highwater) {
3098 ixgbe_set_rar(hw, rar, addr, vmdq, IXGBE_RAH_AV);
3100 } else if (rar >= hw->mac.num_rar_entries) {
3105 * If we found rar[0], make sure the default pool bit (we use pool 0)
3108 if (rar == 0)
3109 ixgbe_clear_vmdq(hw, rar, 0);
3111 return rar;
3117 * @rar: receive address register index to disassociate
3118 * @vmdq: VMDq pool index to remove from the rar
3120 int32_t ixgbe_clear_vmdq_generic(struct ixgbe_hw *hw, uint32_t rar, uint32_t vmdq)
3127 /* Make sure we are using a valid rar index range */
3128 if (rar >= rar_entries) {
3130 "RAR index %d is out of range.\n", rar);
3134 mpsar_lo = IXGBE_READ_REG(hw, IXGBE_MPSAR_LO(rar));
3135 mpsar_hi = IXGBE_READ_REG(hw, IXGBE_MPSAR_HI(rar));
3145 IXGBE_WRITE_REG(hw, IXGBE_MPSAR_LO(rar), 0);
3149 IXGBE_WRITE_REG(hw, IXGBE_MPSAR_HI(rar), 0);
3154 IXGBE_WRITE_REG(hw, IXGBE_MPSAR_LO(rar), mpsar_lo);
3157 IXGBE_WRITE_REG(hw, IXGBE_MPSAR_HI(rar), mpsar_hi);
3160 /* was that the last pool using this rar? */
3161 if (mpsar_lo == 0 && mpsar_hi == 0 && rar != 0)
3162 hw->mac.ops.clear_rar(hw, rar);
3170 * @rar: receive address register index to associate with a VMDq index
3173 int32_t ixgbe_set_vmdq_generic(struct ixgbe_hw *hw, uint32_t rar, uint32_t vmdq)
3180 /* Make sure we are using a valid rar index range */
3181 if (rar >= rar_entries) {
3183 "RAR index %d is out of range.\n", rar);
3188 mpsar = IXGBE_READ_REG(hw, IXGBE_MPSAR_LO(rar));
3190 IXGBE_WRITE_REG(hw, IXGBE_MPSAR_LO(rar), mpsar);
3192 mpsar = IXGBE_READ_REG(hw, IXGBE_MPSAR_HI(rar));
3194 IXGBE_WRITE_REG(hw, IXGBE_MPSAR_HI(rar), mpsar);
4407 * @rar: receive address register index to associate with VMDq index
4410 int32_t ixgbe_set_vmdq(struct ixgbe_hw *hw, uint32_t rar, uint32_t vmdq)
4413 return hw->mac.ops.set_vmdq(hw, rar, vmdq);
4421 * @rar: receive address register index to disassociate with VMDq index
4424 int32_t ixgbe_clear_vmdq(struct ixgbe_hw *hw, uint32_t rar, uint32_t vmdq)
4427 return hw->mac.ops.clear_vmdq(hw, rar, vmdq);