From mboxrd@z Thu Jan 1 00:00:00 1970 From: Simon Horman Subject: Re: [PATCH] r8169: Reinstate ALDPS and ASPM support Date: Wed, 6 Jun 2018 08:12:02 +0200 Message-ID: <20180606061201.eaz6l4e7cmcshji7@netronome.com> References: <20180605045812.17977-1-kai.heng.feng@canonical.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Kai-Heng Feng , davem@davemloft.net, hayeswang@realtek.com, romieu@fr.zoreil.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Ryankao To: Heiner Kallweit Return-path: Received: from mail-wm0-f67.google.com ([74.125.82.67]:50575 "EHLO mail-wm0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932243AbeFFGMG (ORCPT ); Wed, 6 Jun 2018 02:12:06 -0400 Received: by mail-wm0-f67.google.com with SMTP id e16-v6so9164107wmd.0 for ; Tue, 05 Jun 2018 23:12:05 -0700 (PDT) Content-Disposition: inline In-Reply-To: Sender: netdev-owner@vger.kernel.org List-ID: On Tue, Jun 05, 2018 at 09:13:08PM +0200, Heiner Kallweit wrote: > On 05.06.2018 06:58, Kai-Heng Feng wrote: > > This patch reinstate ALDPS and ASPM support on r8169. > > > > On some Intel platforms, ASPM support on r8169 is the key factor to let > > Package C-State achieve PC8. Without ASPM support, the deepest Package > > C-State can hit is PC3. PC8 can save additional ~3W in comparison with > > PC3. > > > > This patch is from Realtek. > > > > Fixes: e0c075577965 ("r8169: enable ALDPS for power saving") > > Fixes: d64ec841517a ("r8169: enable internal ASPM and clock request settings") > > > > Cc: Ryankao > > Signed-off-by: Kai-Heng Feng > > --- > > drivers/net/ethernet/realtek/r8169.c | 190 +++++++++++++++++++++------ > > 1 file changed, 151 insertions(+), 39 deletions(-) > > > > diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c > > index 75dfac0248f4..a28ef20be221 100644 > > --- a/drivers/net/ethernet/realtek/r8169.c > > +++ b/drivers/net/ethernet/realtek/r8169.c > > @@ -319,6 +319,8 @@ static const struct pci_device_id rtl8169_pci_tbl[] = { > > > > MODULE_DEVICE_TABLE(pci, rtl8169_pci_tbl); > > > > +static int enable_aspm = 1; > > +static int enable_aldps = 1; > > static int use_dac = -1; > > static struct { > > u32 msg_enable; > > @@ -817,6 +819,10 @@ struct rtl8169_private { > > > > MODULE_AUTHOR("Realtek and the Linux r8169 crew "); > > MODULE_DESCRIPTION("RealTek RTL-8169 Gigabit Ethernet driver"); > > +module_param(enable_aspm, int, 0); > > +MODULE_PARM_DESC(enable_aspm, "Enable ASPM"); > > +module_param(enable_aldps, int, 0); > > +MODULE_PARM_DESC(enable_aldps, "Enable ALDPS"); > > module_param(use_dac, int, 0); > > MODULE_PARM_DESC(use_dac, "Enable PCI DAC. Unsafe on 32 bit PCI slot."); > > module_param_named(debug, debug.msg_enable, int, 0); I'm a little surprised to see new module parameters being added.