ice: Fix E825 initialization
[ Upstream commit d79c304c76e9b30ff5527afc176b5c4f9f0374b6 ]
Current implementation checks revision of all PHYs on all PFs, which is
incorrect and may result in initialization failure. Check only the
revision of the current PHY.
Fixes: 7cab44f1c3 ("ice: Introduce ETH56G PHY model for E825C products")
Reviewed-by: Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
Signed-off-by: Karol Kolacinski <karol.kolacinski@intel.com>
Signed-off-by: Grzegorz Nitka <grzegorz.nitka@intel.com>
Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
1a9b65c672
commit
605c7381b5
@@ -2664,14 +2664,15 @@ static bool ice_is_muxed_topo(struct ice_hw *hw)
|
||||
}
|
||||
|
||||
/**
|
||||
* ice_ptp_init_phy_e825c - initialize PHY parameters
|
||||
* ice_ptp_init_phy_e825 - initialize PHY parameters
|
||||
* @hw: pointer to the HW struct
|
||||
*/
|
||||
static void ice_ptp_init_phy_e825c(struct ice_hw *hw)
|
||||
static void ice_ptp_init_phy_e825(struct ice_hw *hw)
|
||||
{
|
||||
struct ice_ptp_hw *ptp = &hw->ptp;
|
||||
struct ice_eth56g_params *params;
|
||||
u8 phy;
|
||||
u32 phy_rev;
|
||||
int err;
|
||||
|
||||
ptp->phy_model = ICE_PHY_ETH56G;
|
||||
params = &ptp->phy.eth56g;
|
||||
@@ -2685,15 +2686,10 @@ static void ice_ptp_init_phy_e825c(struct ice_hw *hw)
|
||||
ptp->num_lports = params->num_phys * ptp->ports_per_phy;
|
||||
|
||||
ice_sb_access_ena_eth56g(hw, true);
|
||||
for (phy = 0; phy < params->num_phys; phy++) {
|
||||
u32 phy_rev;
|
||||
int err;
|
||||
|
||||
err = ice_read_phy_eth56g(hw, phy, PHY_REG_REVISION, &phy_rev);
|
||||
if (err || phy_rev != PHY_REVISION_ETH56G) {
|
||||
ptp->phy_model = ICE_PHY_UNSUP;
|
||||
return;
|
||||
}
|
||||
err = ice_read_phy_eth56g(hw, hw->pf_id, PHY_REG_REVISION, &phy_rev);
|
||||
if (err || phy_rev != PHY_REVISION_ETH56G) {
|
||||
ptp->phy_model = ICE_PHY_UNSUP;
|
||||
return;
|
||||
}
|
||||
|
||||
ptp->is_2x50g_muxed_topo = ice_is_muxed_topo(hw);
|
||||
@@ -5395,7 +5391,7 @@ void ice_ptp_init_hw(struct ice_hw *hw)
|
||||
else if (ice_is_e810(hw))
|
||||
ice_ptp_init_phy_e810(ptp);
|
||||
else if (ice_is_e825c(hw))
|
||||
ice_ptp_init_phy_e825c(hw);
|
||||
ice_ptp_init_phy_e825(hw);
|
||||
else
|
||||
ptp->phy_model = ICE_PHY_UNSUP;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user