Skip to content

Commit 8bc4dc8

Browse files
committed
ice: wait before enabling TSPLL
JIRA: https://issues.redhat.com/browse/RHEL-104246 Upstream commit(s): commit df3f3c5 Author: Karol Kolacinski <karol.kolacinski@intel.com> Date: Mon Jun 23 17:30:01 2025 -0700 ice: wait before enabling TSPLL To ensure proper operation, wait for 10 to 20 microseconds before enabling TSPLL. Adjust wait time after enabling TSPLL from 1-5 ms to 1-2 ms. Those values are empirical and tested on multiple HW configurations. Reviewed-by: Milena Olech <milena.olech@intel.com> Signed-off-by: Karol Kolacinski <karol.kolacinski@intel.com> Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com> Signed-off-by: Petr Oros <poros@redhat.com>
1 parent 5725621 commit 8bc4dc8

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

drivers/net/ethernet/intel/ice/ice_tspll.c

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -261,15 +261,18 @@ static int ice_tspll_cfg_e82x(struct ice_hw *hw, enum ice_tspll_freq clk_freq,
261261
if (err)
262262
return err;
263263

264+
/* Wait to ensure everything is stable */
265+
usleep_range(10, 20);
266+
264267
/* Finally, enable the PLL */
265268
r24 |= ICE_CGU_R23_R24_TSPLL_ENABLE;
266269

267270
err = ice_write_cgu_reg(hw, ICE_CGU_R24, r24);
268271
if (err)
269272
return err;
270273

271-
/* Wait to verify if the PLL locks */
272-
usleep_range(1000, 5000);
274+
/* Wait at least 1 ms to verify if the PLL locks */
275+
usleep_range(USEC_PER_MSEC, 2 * USEC_PER_MSEC);
273276

274277
err = ice_read_cgu_reg(hw, ICE_CGU_RO_BWM_LF, &val);
275278
if (err)
@@ -445,15 +448,18 @@ static int ice_tspll_cfg_e825c(struct ice_hw *hw, enum ice_tspll_freq clk_freq,
445448
if (err)
446449
return err;
447450

451+
/* Wait to ensure everything is stable */
452+
usleep_range(10, 20);
453+
448454
/* Finally, enable the PLL */
449455
r23 |= ICE_CGU_R23_R24_TSPLL_ENABLE;
450456

451457
err = ice_write_cgu_reg(hw, ICE_CGU_R23, r23);
452458
if (err)
453459
return err;
454460

455-
/* Wait to verify if the PLL locks */
456-
usleep_range(1000, 5000);
461+
/* Wait at least 1 ms to verify if the PLL locks */
462+
usleep_range(USEC_PER_MSEC, 2 * USEC_PER_MSEC);
457463

458464
err = ice_read_cgu_reg(hw, ICE_CGU_RO_LOCK, &val);
459465
if (err)

0 commit comments

Comments
 (0)