summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/realtek
diff options
context:
space:
mode:
authorKai-Heng Feng2018-09-12 08:58:21 +0200
committerDavid S. Miller2018-09-18 03:45:55 +0200
commit0866cd15029baa3331ba347794053472306e8eb3 (patch)
tree8deb0f9a2f84ee20fe83a32a19457dd1c060ad3d /drivers/net/ethernet/realtek
parentr8169: Align ASPM/CLKREQ setting function with vendor driver (diff)
downloadkernel-qcow2-linux-0866cd15029baa3331ba347794053472306e8eb3.tar.gz
kernel-qcow2-linux-0866cd15029baa3331ba347794053472306e8eb3.tar.xz
kernel-qcow2-linux-0866cd15029baa3331ba347794053472306e8eb3.zip
r8169: enable ASPM on RTL8106E
The Intel SoC was prevented from entering lower idle state because of RTL8106E's ASPM was not enabled. So enable ASPM on RTL8106E (chip version 39). Now the Intel SoC can enter lower idle state, power consumption and temperature are much lower. Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/realtek')
-rw-r--r--drivers/net/ethernet/realtek/r8169.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
index 8195b1f5036d..b0a803e96634 100644
--- a/drivers/net/ethernet/realtek/r8169.c
+++ b/drivers/net/ethernet/realtek/r8169.c
@@ -5627,6 +5627,8 @@ static void rtl_hw_start_8402(struct rtl8169_private *tp)
static void rtl_hw_start_8106(struct rtl8169_private *tp)
{
+ rtl_hw_aspm_clkreq_enable(tp, false);
+
/* Force LAN exit from ASPM if Rx/Tx are not idle */
RTL_W32(tp, FuncEvent, RTL_R32(tp, FuncEvent) | 0x002800);
@@ -5635,6 +5637,7 @@ static void rtl_hw_start_8106(struct rtl8169_private *tp)
RTL_W8(tp, DLLPR, RTL_R8(tp, DLLPR) & ~PFM_EN);
rtl_pcie_state_l2l3_enable(tp, false);
+ rtl_hw_aspm_clkreq_enable(tp, true);
}
static void rtl_hw_start_8101(struct rtl8169_private *tp)