mirror of https://gitee.com/openkylin/linux.git
ixgbe: correct CS4223/7 PHY identification
Previous method was unreliable. Use a different register to differentiate between the SKUs. Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
80666035c7
commit
cc1de78c2a
|
@ -84,8 +84,9 @@
|
|||
#define IXGBE_CS4227_GLOBAL_ID_LSB 0
|
||||
#define IXGBE_CS4227_GLOBAL_ID_MSB 1
|
||||
#define IXGBE_CS4227_SCRATCH 2
|
||||
#define IXGBE_CS4223_PHY_ID 0x7003 /* Quad port */
|
||||
#define IXGBE_CS4227_PHY_ID 0x3003 /* Dual port */
|
||||
#define IXGBE_CS4227_EFUSE_PDF_SKU 0x19F
|
||||
#define IXGBE_CS4223_SKU_ID 0x0010 /* Quad port */
|
||||
#define IXGBE_CS4227_SKU_ID 0x0014 /* Dual port */
|
||||
#define IXGBE_CS4227_RESET_PENDING 0x1357
|
||||
#define IXGBE_CS4227_RESET_COMPLETE 0x5AA5
|
||||
#define IXGBE_CS4227_RETRIES 15
|
||||
|
|
|
@ -1807,16 +1807,16 @@ ixgbe_setup_mac_link_sfp_x550a(struct ixgbe_hw *hw, ixgbe_link_speed speed,
|
|||
if (hw->phy.mdio.prtad == MDIO_PRTAD_NONE)
|
||||
return IXGBE_ERR_PHY_ADDR_INVALID;
|
||||
|
||||
/* Get external PHY device id */
|
||||
ret_val = hw->phy.ops.read_reg(hw, IXGBE_CS4227_GLOBAL_ID_MSB,
|
||||
IXGBE_MDIO_ZERO_DEV_TYPE, ®_phy_ext);
|
||||
/* Get external PHY SKU id */
|
||||
ret_val = hw->phy.ops.read_reg(hw, IXGBE_CS4227_EFUSE_PDF_SKU,
|
||||
IXGBE_MDIO_ZERO_DEV_TYPE, ®_phy_ext);
|
||||
if (ret_val)
|
||||
return ret_val;
|
||||
|
||||
/* When configuring quad port CS4223, the MAC instance is part
|
||||
* of the slice offset.
|
||||
*/
|
||||
if (reg_phy_ext == IXGBE_CS4223_PHY_ID)
|
||||
if (reg_phy_ext == IXGBE_CS4223_SKU_ID)
|
||||
slice_offset = (hw->bus.lan_id +
|
||||
(hw->bus.instance_id << 1)) << 12;
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue