@@ -400,16 +400,6 @@ static void stmmac_enable_hw_lpi_timer(struct stmmac_priv *priv)
400
400
stmmac_set_eee_lpi_timer (priv , priv -> hw , priv -> tx_lpi_timer );
401
401
}
402
402
403
- static void stmmac_lpi_entry_timer_config (struct stmmac_priv * priv , bool en )
404
- {
405
- /* Clear/set the SW EEE timer flag based on LPI ET enablement */
406
- priv -> eee_sw_timer_en = en ? 0 : 1 ;
407
- if (en )
408
- stmmac_enable_hw_lpi_timer (priv );
409
- else
410
- stmmac_disable_hw_lpi_timer (priv );
411
- }
412
-
413
403
/**
414
404
* stmmac_enable_eee_mode - check and enter in LPI mode
415
405
* @priv: driver private structure
@@ -489,7 +479,8 @@ static void stmmac_eee_init(struct stmmac_priv *priv, bool active)
489
479
if (!priv -> eee_active ) {
490
480
if (priv -> eee_enabled ) {
491
481
netdev_dbg (priv -> dev , "disable EEE\n" );
492
- stmmac_lpi_entry_timer_config (priv , 0 );
482
+ priv -> eee_sw_timer_en = true;
483
+ stmmac_disable_hw_lpi_timer (priv );
493
484
del_timer_sync (& priv -> eee_ctrl_timer );
494
485
stmmac_set_eee_timer (priv , priv -> hw , 0 ,
495
486
STMMAC_DEFAULT_TWT_LS );
@@ -513,11 +504,15 @@ static void stmmac_eee_init(struct stmmac_priv *priv, bool active)
513
504
}
514
505
515
506
if (priv -> plat -> has_gmac4 && priv -> tx_lpi_timer <= STMMAC_ET_MAX ) {
507
+ /* Use hardware LPI mode */
516
508
del_timer_sync (& priv -> eee_ctrl_timer );
517
509
priv -> tx_path_in_lpi_mode = false;
518
- stmmac_lpi_entry_timer_config (priv , 1 );
510
+ priv -> eee_sw_timer_en = false;
511
+ stmmac_enable_hw_lpi_timer (priv );
519
512
} else {
520
- stmmac_lpi_entry_timer_config (priv , 0 );
513
+ /* Use software LPI mode */
514
+ priv -> eee_sw_timer_en = true;
515
+ stmmac_disable_hw_lpi_timer (priv );
521
516
mod_timer (& priv -> eee_ctrl_timer ,
522
517
STMMAC_LPI_T (priv -> tx_lpi_timer ));
523
518
}
0 commit comments