Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c7cb020d authored by Fujinaka, Todd's avatar Fujinaka, Todd Committed by David S. Miller
Browse files

igb: Read flow control for i350 from correct EEPROM section



Flow control is defined in the four EEPROM sections but the driver only reads
from section 0.

Signed-off-by: default avatarTodd Fujinaka <todd.fujinaka@intel.com>
Tested-by: default avatarAaron Brown <aaron.f.brown@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent bb1d18d1
Loading
Loading
Loading
Loading
+9 −1
Original line number Original line Diff line number Diff line
@@ -712,6 +712,7 @@ static s32 igb_set_fc_watermarks(struct e1000_hw *hw)
static s32 igb_set_default_fc(struct e1000_hw *hw)
static s32 igb_set_default_fc(struct e1000_hw *hw)
{
{
	s32 ret_val = 0;
	s32 ret_val = 0;
	u16 lan_offset;
	u16 nvm_data;
	u16 nvm_data;


	/* Read and store word 0x0F of the EEPROM. This word contains bits
	/* Read and store word 0x0F of the EEPROM. This word contains bits
@@ -722,7 +723,14 @@ static s32 igb_set_default_fc(struct e1000_hw *hw)
	 * control setting, then the variable hw->fc will
	 * control setting, then the variable hw->fc will
	 * be initialized based on a value in the EEPROM.
	 * be initialized based on a value in the EEPROM.
	 */
	 */
	ret_val = hw->nvm.ops.read(hw, NVM_INIT_CONTROL2_REG, 1, &nvm_data);
	if (hw->mac.type == e1000_i350) {
		lan_offset = NVM_82580_LAN_FUNC_OFFSET(hw->bus.func);
		ret_val = hw->nvm.ops.read(hw, NVM_INIT_CONTROL2_REG
					   + lan_offset, 1, &nvm_data);
	 } else {
		ret_val = hw->nvm.ops.read(hw, NVM_INIT_CONTROL2_REG,
					   1, &nvm_data);
	 }


	if (ret_val) {
	if (ret_val) {
		hw_dbg("NVM Read Error\n");
		hw_dbg("NVM Read Error\n");