All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.