Re: [Intel-wired-lan] [PATCH v4 12/15] ice: wait before enabling TSPLL

2025-05-22 Thread Rinitha, SX
> -Original Message-
> From: Intel-wired-lan  On Behalf Of Jacob 
> Keller
> Sent: 02 May 2025 04:24
> To: Intel Wired LAN ; Nguyen, Anthony L 
> ; netdev 
> Cc: Keller, Jacob E ; Kubiak, Michal 
> ; Loktionov, Aleksandr 
> ; Kolacinski, Karol 
> ; Kitszel, Przemyslaw 
> ; Olech, Milena ; Paul 
> Menzel 
> Subject: [Intel-wired-lan] [PATCH v4 12/15] ice: wait before enabling TSPLL
>
> From: Karol Kolacinski 
>
> 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 
> Signed-off-by: Karol Kolacinski 
> ---
> drivers/net/ethernet/intel/ice/ice_tspll.c | 14 ++
> 1 file changed, 10 insertions(+), 4 deletions(-)
>

Tested-by: Rinitha S  (A Contingent worker at Intel)


[Intel-wired-lan] [PATCH v4 12/15] ice: wait before enabling TSPLL

2025-05-01 Thread Jacob Keller
From: Karol Kolacinski 

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 
Signed-off-by: Karol Kolacinski 
---
 drivers/net/ethernet/intel/ice/ice_tspll.c | 14 ++
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/intel/ice/ice_tspll.c 
b/drivers/net/ethernet/intel/ice/ice_tspll.c
index 
66ad5ee63f3084d1d54c2445f56d7f61d6be344b..a392b39920aeb7c23008a03baf3df9cd14dcbb7e
 100644
--- a/drivers/net/ethernet/intel/ice/ice_tspll.c
+++ b/drivers/net/ethernet/intel/ice/ice_tspll.c
@@ -229,12 +229,15 @@ static int ice_tspll_cfg_e82x(struct ice_hw *hw, enum 
ice_tspll_freq clk_freq,
r24 |= FIELD_PREP(ICE_CGU_R23_R24_TIME_REF_SEL, clk_src);
ICE_WRITE_CGU_REG_OR_DIE(hw, ICE_CGU_R24, r24);
 
+   /* Wait to ensure everything is stable */
+   usleep_range(10, 20);
+
/* Finally, enable the PLL */
r24 |= ICE_CGU_R23_R24_TSPLL_ENABLE;
ICE_WRITE_CGU_REG_OR_DIE(hw, ICE_CGU_R24, r24);
 
-   /* Wait to verify if the PLL locks */
-   usleep_range(1000, 5000);
+   /* Wait at least 1 ms to verify if the PLL locks */
+   usleep_range(USEC_PER_MSEC, 2 * USEC_PER_MSEC);
 
ICE_READ_CGU_REG_OR_DIE(hw, ICE_CGU_RO_BWM_LF, &val);
if (!(val & ICE_CGU_RO_BWM_LF_TRUE_LOCK)) {
@@ -357,12 +360,15 @@ static int ice_tspll_cfg_e825c(struct ice_hw *hw, enum 
ice_tspll_freq clk_freq,
/* Clear the R24 register. */
ICE_WRITE_CGU_REG_OR_DIE(hw, ICE_CGU_R24, 0);
 
+   /* Wait to ensure everything is stable */
+   usleep_range(10, 20);
+
/* Finally, enable the PLL */
r23 |= ICE_CGU_R23_R24_TSPLL_ENABLE;
ICE_WRITE_CGU_REG_OR_DIE(hw, ICE_CGU_R23, r23);
 
-   /* Wait to verify if the PLL locks */
-   usleep_range(1000, 5000);
+   /* Wait at least 1 ms to verify if the PLL locks */
+   usleep_range(USEC_PER_MSEC, 2 * USEC_PER_MSEC);
 
ICE_READ_CGU_REG_OR_DIE(hw, ICE_CGU_RO_LOCK, &val);
if (!(val & ICE_CGU_RO_LOCK_TRUE_LOCK)) {

-- 
2.48.1.397.gec9d649cc640