/* ixgbe_shift_in_eeprom_bits - Shift data bits in from the EEPROM @hw: pointer to hardware structure  */
static u16 ixgbe_shift_in_eeprom_bits(struct ixgbe_hw *hw, u16 count)
/* ixgbe_shift_in_eeprom_bits - Shift data bits in from the EEPROM @hw: pointer to hardware structure  */
static u16 ixgbe_shift_in_eeprom_bits(struct ixgbe_hw *hw, u16 count)
{
	u32 eec;
	u32 i;
	u16 data = 0;
	eec = IXGBE_READ_REG(hw, IXGBE_EEC);
	eec &= ~(IXGBE_EEC_DO | IXGBE_EEC_DI);
	for (i = 0; i < count; i++) {
		data = data << 1;
		ixgbe_raise_eeprom_clk(hw, &eec);
		eec = IXGBE_READ_REG(hw, IXGBE_EEC);
		eec &= ~(IXGBE_EEC_DI);
		if (eec & IXGBE_EEC_DO)
			data |= 1;
		ixgbe_lower_eeprom_clk(hw, &eec);
	}
	return data;
}