e1000e: Additional PHY power saving in S0ix
authorSasha Neftin <sasha.neftin@intel.com>
Thu, 24 Jun 2021 08:19:08 +0000 (11:19 +0300)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Tue, 20 Jul 2021 23:11:36 +0000 (16:11 -0700)
After transferring the MAC-PHY interface to the SMBus set the PHY
to S0ix low power idle mode.

Suggested-by: Dima Ruinskiy <dima.ruinskiy@intel.com>
Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
Tested-by: Dvora Fuxbrumer <dvorax.fuxbrumer@linux.intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
drivers/net/ethernet/intel/e1000e/netdev.c

index 27107a9..79e8791 100644 (file)
@@ -6378,10 +6378,16 @@ static void e1000e_s0ix_entry_flow(struct e1000_adapter *adapter)
                ew32(CTRL_EXT, mac_data);
 
                /* DFT control: PHY bit: page769_20[0] = 1
+                * page769_20[7] - PHY PLL stop
+                * page769_20[8] - PHY go to the electrical idle
+                * page769_20[9] - PHY serdes disable
                 * Gate PPW via EXTCNF_CTRL - set 0x0F00[7] = 1
                 */
                e1e_rphy(hw, I82579_DFT_CTRL, &phy_data);
                phy_data |= BIT(0);
+               phy_data |= BIT(7);
+               phy_data |= BIT(8);
+               phy_data |= BIT(9);
                e1e_wphy(hw, I82579_DFT_CTRL, phy_data);
 
                mac_data = er32(EXTCNF_CTRL);