From: Lee Jones <lee.jones@linaro.org>
To: 冯锐 <rui_feng@realsil.com.cn>
Cc: Hans de Goede <hdegoede@redhat.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: 答复: [PATCH] mfd: Fix RTS5227 (and others) powermanagement
Date: Thu, 7 Dec 2017 09:28:18 +0000 [thread overview]
Message-ID: <20171207092818.yuh2e43vc6ta233o@dell> (raw)
In-Reply-To: <2A308283684ECD4B896628E09AF5361E01A80FAE@RS-MBS01.realsil.com.cn>
On Thu, 07 Dec 2017, 冯锐 wrote:
> > Hi,
> >
> > On 06-12-17 12:21, Hans de Goede wrote:
> > > Commit 8275b77a1513 ("mfd: rts5249: Add support for RTS5250S power
> > > saving") adds powersaving support for device-ids 5249 524a and 525a.
> > >
> > > But as a side effect it breaks ASPM support for all the other
> > > device-ids, causing e.g. the Haswell CPU on a Lenovo T440s to not go
> > > into a higher c-state then PC3, while previously it would go to PC7,
> > > causing the machine to idle at 7.4W instead of 6.6W!
> > >
> > > The problem here is the new option.dev_aspm_mode field, which only
> > > gets explicitly initialized in the new code for the device-ids 5249
> > > 524a and 525a. Leaving the dev_aspm_mode 0 for the other device-ids.
> > >
> > > The default dev_aspm_mode 0 is mapped to DEV_ASPM_DISABLE, but the
> > old
> > > behavior of calling rtsx_pci_enable_aspm() when idle and
> > > rtsx_pci_disable_aspm() when busy happens when dev_aspm_mode ==
> > > DEV_ASPM_DYNAMIC.
> > >
> > > This commit changes the enum so that 0 = DEV_ASPM_DYNAMIC matching
> > the
> > > old default behavior, fixing the pm regression with the other device-ids.
> > >
> > > Cc: Rui Feng <rui_feng@realsil.com.cn>
> > > Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> >
> > p.s.
> >
> > 2 remarks:
> >
> > 1. As this is a regression in 4.15, please queue this up as a fix for 4.15
> > (I prioritized bisecting this, which took me a whole day to get a fix
> > ready in time for 4.15).
> >
> > 2. This bit of the original commit also looks weird, but I don't have the
> > hardware in case, Rui Feng should probably take a look at this:
> >
> > @@ -1063,6 +1185,16 @@ static int rtsx_pci_init_hw(struct rtsx_pcr *pcr)
> > if (err < 0)
> > return err;
> >
> > + switch (PCI_PID(pcr)) {
> > + case PID_5250:
> > + case PID_524A:
> > + case PID_525A:
> > + rtsx_pci_write_register(pcr, PM_CLK_FORCE_CTL, 1, 1);
> > + break;
> > + default:
> > + break;
> > + }
> > +
> > /* Enable clk_request_n to enable clock power management */
> > rtsx_pci_write_config_byte(pcr, pcr->pcie_cap + PCI_EXP_LNKCTL + 1, 1);
> > /* Enter L1 when host tx idle */
> >
> > The PID5250 looks weird here, the rtsx_pci_ids table does not contain it; and
> > neither does the switch (PCI_PID(pcr)) in rtsx_pci_init_chip() at the same time
> > the commit does make changes to the codepaths for the 5249... ?
> >
> Thank you for pointing out the problem. The old driver isn't written
> by me, 5249, 524a and 525a are in the same file,
> I didn't notice that rtsx_pci_ids table does not contain 5250. But
> the power saving function for 5250 and 525a is the same,
> PID_5250 here will not effect the power saving function.
Is that an Ack or a NAck?
--
Lee Jones
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
next prev parent reply other threads:[~2017-12-07 9:28 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-06 11:21 Hans de Goede
2017-12-06 11:31 ` Hans de Goede
2017-12-06 15:42 ` Lee Jones
2017-12-06 15:44 ` Hans de Goede
2017-12-07 2:38 ` 答复: " 冯锐
2017-12-07 9:28 ` Lee Jones [this message]
2017-12-07 9:36 ` 答复: " 冯锐
2017-12-07 9:48 ` Lee Jones
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171207092818.yuh2e43vc6ta233o@dell \
--to=lee.jones@linaro.org \
--cc=hdegoede@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=rui_feng@realsil.com.cn \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®