/* e1000_shift_in_ee_bits - Shift data bits in from the EEPROM @hw: Struct containing variables accessed by shared code @count: number of bits to shift in  */
static u16 e1000_shift_in_ee_bits(struct e1000_hw *hw, u16 count)
/* e1000_shift_in_ee_bits - Shift data bits in from the EEPROM @hw: Struct containing variables accessed by shared code @count: number of bits to shift in  */
static u16 e1000_shift_in_ee_bits(struct e1000_hw *hw, u16 count)
{
	u32 eecd;
	u32 i;
	u16 data;
	eecd = er32(EECD);
	eecd &= ~(E1000_EECD_DO | E1000_EECD_DI);
	data = 0;
	for (i = 0; i < count; i++) {
		data = data << 1;
		e1000_raise_ee_clk(hw, &eecd);
		eecd = er32(EECD);
		eecd &= ~(E1000_EECD_DI);
		if (eecd & E1000_EECD_DO)
			data |= 1;
		e1000_lower_ee_clk(hw, &eecd);
	}
	return data;
}