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

Commit c898fe28 authored by Mark Rustad's avatar Mark Rustad Committed by Jeff Kirsher
Browse files

ixgbe: Read and set instance id



Read the instance number from EEPROM and save it for later use.

Signed-off-by: default avatarMark Rustad <mark.d.rustad@intel.com>
Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent d31afc8f
Loading
Loading
Loading
Loading
+8 −0
Original line number Original line Diff line number Diff line
@@ -682,6 +682,7 @@ s32 ixgbe_get_bus_info_generic(struct ixgbe_hw *hw)
void ixgbe_set_lan_id_multi_port_pcie(struct ixgbe_hw *hw)
void ixgbe_set_lan_id_multi_port_pcie(struct ixgbe_hw *hw)
{
{
	struct ixgbe_bus_info *bus = &hw->bus;
	struct ixgbe_bus_info *bus = &hw->bus;
	u16 ee_ctrl_4;
	u32 reg;
	u32 reg;


	reg = IXGBE_READ_REG(hw, IXGBE_STATUS);
	reg = IXGBE_READ_REG(hw, IXGBE_STATUS);
@@ -692,6 +693,13 @@ void ixgbe_set_lan_id_multi_port_pcie(struct ixgbe_hw *hw)
	reg = IXGBE_READ_REG(hw, IXGBE_FACTPS(hw));
	reg = IXGBE_READ_REG(hw, IXGBE_FACTPS(hw));
	if (reg & IXGBE_FACTPS_LFS)
	if (reg & IXGBE_FACTPS_LFS)
		bus->func ^= 0x1;
		bus->func ^= 0x1;

	/* Get MAC instance from EEPROM for configuring CS4227 */
	if (hw->device_id == IXGBE_DEV_ID_X550EM_A_SFP) {
		hw->eeprom.ops.read(hw, IXGBE_EEPROM_CTRL_4, &ee_ctrl_4);
		bus->instance_id = (ee_ctrl_4 & IXGBE_EE_CTRL_4_INST_ID) >>
				   IXGBE_EE_CTRL_4_INST_ID_SHIFT;
	}
}
}


/**
/**
+5 −0
Original line number Original line Diff line number Diff line
@@ -82,6 +82,7 @@
#define IXGBE_DEV_ID_X550EM_X_10G_T	0x15AD
#define IXGBE_DEV_ID_X550EM_X_10G_T	0x15AD
#define IXGBE_DEV_ID_X550EM_X_1G_T	0x15AE
#define IXGBE_DEV_ID_X550EM_X_1G_T	0x15AE
#define IXGBE_DEV_ID_X550EM_A_SFP_N	0x15C4
#define IXGBE_DEV_ID_X550EM_A_SFP_N	0x15C4
#define IXGBE_DEV_ID_X550EM_A_SFP	0x15CE


/* VF Device IDs */
/* VF Device IDs */
#define IXGBE_DEV_ID_X550_VF_HV	0x1564
#define IXGBE_DEV_ID_X550_VF_HV	0x1564
@@ -2000,6 +2001,9 @@ enum {
#define IXGBE_PBANUM_PTR_GUARD		0xFAFA
#define IXGBE_PBANUM_PTR_GUARD		0xFAFA
#define IXGBE_EEPROM_CHECKSUM		0x3F
#define IXGBE_EEPROM_CHECKSUM		0x3F
#define IXGBE_EEPROM_SUM		0xBABA
#define IXGBE_EEPROM_SUM		0xBABA
#define IXGBE_EEPROM_CTRL_4		0x45
#define IXGBE_EE_CTRL_4_INST_ID		0x10
#define IXGBE_EE_CTRL_4_INST_ID_SHIFT	4
#define IXGBE_PCIE_ANALOG_PTR		0x03
#define IXGBE_PCIE_ANALOG_PTR		0x03
#define IXGBE_ATLAS0_CONFIG_PTR		0x04
#define IXGBE_ATLAS0_CONFIG_PTR		0x04
#define IXGBE_PHY_PTR			0x04
#define IXGBE_PHY_PTR			0x04
@@ -3175,6 +3179,7 @@ struct ixgbe_bus_info {


	u8 func;
	u8 func;
	u8 lan_id;
	u8 lan_id;
	u8 instance_id;
};
};


/* Flow control parameters */
/* Flow control parameters */