/* The multicast table address is a register array of 32-bit registers. The hash_value is used to determine what register the bit is in, the current value is read, the new bit is OR'd in and the new value is written back into the register.  */
void igb_mta_set(struct e1000_hw *hw, u32 hash_value)
/* The multicast table address is a register array of 32-bit registers. The hash_value is used to determine what register the bit is in, the current value is read, the new bit is OR'd in and the new value is written back into the register.  */
void igb_mta_set(struct e1000_hw *hw, u32 hash_value)
{
	u32 hash_bit, hash_reg, mta;
	hash_reg = (hash_value >> 5) & (hw->mac.mta_reg_count - 1);
	hash_bit = hash_value & 0x1F;
	mta = array_rd32(E1000_MTA, hash_reg);
	mta |= (1 << hash_bit);
	array_wr32(E1000_MTA, hash_reg, mta);
	wrfl();
}