From: Jarkko Nikula <jarkko.nikula-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
To: Jean Delvare <jdelvare-l3A5Bk7waGM@public.gmane.org>
Cc: linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Wolfram Sang <wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org>
Subject: Re: [PATCHv2 4/5] i2c: i801: Remove pci_enable_device() call from i801_resume()
Date: Fri, 13 Feb 2015 13:13:18 +0200 [thread overview]
Message-ID: <54DDDC4E.5010602@linux.intel.com> (raw)
In-Reply-To: <20150213113302.0e20b8da-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org>
Hi
On 02/13/2015 12:33 PM, Jean Delvare wrote:
> Hi Jarkko,
>
> On Wed, 11 Feb 2015 14:32:07 +0200, Jarkko Nikula wrote:
>> Since pci_disable_device() is not called from i801_suspend() and power
>> state is set already it means that subsequent pci_enable_device() calls do
>> practically nothing but monotonically increase struct pci_dev enable_cnt.
>>
>> Signed-off-by: Jarkko Nikula <jarkko.nikula-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
>> ---
>> drivers/i2c/busses/i2c-i801.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c
>> index b1d725d758bb..5fb35464f693 100644
>> --- a/drivers/i2c/busses/i2c-i801.c
>> +++ b/drivers/i2c/busses/i2c-i801.c
>> @@ -1324,7 +1324,7 @@ static int i801_resume(struct pci_dev *dev)
>> {
>> pci_set_power_state(dev, PCI_D0);
>> pci_restore_state(dev);
>> - return pci_enable_device(dev);
>> + return 0;
>> }
>> #else
>> #define i801_suspend NULL
>
> This looks reasonable but have you tested this change on a range of
> actual laptops to make sure it has no unexpected side effect?
>
Unfortunately I have only limited amount of test hw which are working
fine even if PCI device is disabled so I cannot hit those issues that
were seen in the past.
I suppose this patch unlikely cause regression since if you look at the
call chain pci_enable_device() -> pci_enable_device_flags() it doesn't
go beyond taking the current power state since enable_cnt is always
greater than 1.
drivers/pci/pci.c: pci_enable_device_flags():
if (dev->pm_cap) {
u16 pmcsr;
pci_read_config_word(dev, dev->pm_cap + PCI_PM_CTRL, &pmcsr);
dev->current_state = (pmcsr & PCI_PM_CTRL_STATE_MASK);
}
if (atomic_inc_return(&dev->enable_cnt) > 1)
return 0; /* already enabled */
To me it seems current power state taking is practically no-op when
device is enabled since pci_set_power_state() calls in i801_suspend()
and i801_resume() have already cached it.
--
Jarkko
next prev parent reply other threads:[~2015-02-13 11:13 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-11 12:32 [PATCHv2 0/5] i2c: i801: Few cleanups Jarkko Nikula
[not found] ` <1423657928-25534-1-git-send-email-jarkko.nikula-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-02-11 12:32 ` [PATCHv2 1/5] i2c: i801: Don't break user-visible strings Jarkko Nikula
[not found] ` <1423657928-25534-2-git-send-email-jarkko.nikula-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-02-13 10:00 ` Jean Delvare
2015-02-11 12:32 ` [PATCHv2 2/5] i2c: i801: Remove i801_driver forward declaration Jarkko Nikula
2015-02-11 12:32 ` [PATCHv2 3/5] i2c: i801: Use managed devm_* memory and irq allocation Jarkko Nikula
[not found] ` <1423657928-25534-4-git-send-email-jarkko.nikula-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-02-13 10:30 ` Jean Delvare
2015-02-11 12:32 ` [PATCHv2 4/5] i2c: i801: Remove pci_enable_device() call from i801_resume() Jarkko Nikula
[not found] ` <1423657928-25534-5-git-send-email-jarkko.nikula-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-02-13 10:33 ` Jean Delvare
[not found] ` <20150213113302.0e20b8da-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org>
2015-02-13 11:13 ` Jarkko Nikula [this message]
[not found] ` <54DDDC4E.5010602-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-02-16 7:41 ` Jean Delvare
2015-02-11 12:32 ` [PATCHv2 5/5] i2c: i801: Use managed pcim_* PCI device initialization and reservation Jarkko Nikula
[not found] ` <1423657928-25534-6-git-send-email-jarkko.nikula-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-02-13 10:47 ` Jean Delvare
[not found] ` <20150213114756.2f0b0df9-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org>
2015-02-13 11:47 ` Jarkko Nikula
[not found] ` <54DDE43B.70902-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-02-13 15:20 ` Jean Delvare
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=54DDDC4E.5010602@linux.intel.com \
--to=jarkko.nikula-vuqaysv1563yd54fqh9/ca@public.gmane.org \
--cc=jdelvare-l3A5Bk7waGM@public.gmane.org \
--cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org \
/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;
as well as URLs for NNTP newsgroup(s).