/* Sets the receive address array register at index to the address passed in by addr.  */
void igb_rar_set(struct e1000_hw *hw, u8 *addr, u32 index)
/* Sets the receive address array register at index to the address passed in by addr.  */
void igb_rar_set(struct e1000_hw *hw, u8 *addr, u32 index)
{
	u32 rar_low, rar_high;
	rar_low = ((u32) addr[0] |
		   ((u32) addr[1] << 8) |
		    ((u32) addr[2] << 16) | ((u32) addr[3] << 24));
	rar_high = ((u32) addr[4] | ((u32) addr[5] << 8));
	if (rar_low || rar_high)
		rar_high |= E1000_RAH_AV;
	wr32(E1000_RAL(index), rar_low);
	wrfl();
	wr32(E1000_RAH(index), rar_high);
	wrfl();
}