Re: [PATCH] PCI / ACPI: Always resume devices on ACPI wakeup notifications

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Rafael J. Wysocki wrote:
> On Thursday, March 28, 2013 10:46:10 AM Bjorn Helgaas wrote:
>> On Thu, Mar 28, 2013 at 10:41 AM, Rafael J. Wysocki <rjw@xxxxxxx> wrote:
>>> On Thursday, March 28, 2013 10:21:30 AM Bjorn Helgaas wrote:
>>>> On Thu, Mar 28, 2013 at 6:57 AM, Rafael J. Wysocki <rjw@xxxxxxx> wrote:
>>>>> Hi Bjorn,
>>>>>
>>>>> I wonder what you think about the patch below?
>>>>
>>>> Seems fine to me (I'm trusting your and Matthew's judgment here since
>>>> I don't know much about it).  Why don't you resend it with Matthew's
>>>> ack and the appropriate stable tags, and I'll put it in.
>>>
>>> I will, thanks!
>>>
>>>> If you have
>>>> a URL for a bugzilla or mailing list report of the original problem,
>>>> that would be good, too.  It'd be nice if users and distros could
>>>> match problem reports with this solution, but I can't tell what the
>>>> user-visible issue was.  I assume that Sarah tested this (or somebody
>>>> else reproduced the problem and tested the fix)?
>>>
>>> Sarah reported it to me privately and I'm afraid I don't have any pointers
>>> to publicly available mailing list archives etc.
>>
>> Do you at least have a description of how a user could determine
>> whether he is seeing the problem fixed by this patch?
> 
> Yeah.  For example, when the problem is visible on a USB controller and that
> controller is runtime-suspended, then plugging a new USB device into one
> of the controller's ports won't wake the controller up without the patch.

Hi,
 I am wondering for a week or two why nobody answered any of my bug reports,
not even Sarah who asked for more details. I am think the fix is about my report
under thread "Re: 3.8.2: xhci port is dead until pcieport PME# goes to disabled"
and I really wonder why I wasn't Cc:ed and listed as a reporter provided it is
about my report. But I should better wait what Sarah says. ;-)

  I would have actually same comment for the proposed patches in:
Yinghai Lu  "Re: [PATCH] PCI: Remove not needed check in disable aspm link"
Who tested the bug, if anybody? What change(the fix) in lspci output should one
observe?

Thank you,
Martin


> 
> I will put that information into the changelog.
> 
> Thanks,
> Rafael
> 
> 
>>>>> On Saturday, March 23, 2013 03:33:03 PM Rafael J. Wysocki wrote:
>>>>>> From: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
>>>>>>
>>>>>> It turns out that _Lxx control methods provided by some BIOSes clear
>>>>>> the PME Status bit of PCI devices they handle, which means that
>>>>>> pci_acpi_wake_dev() cannot really use that bit to check whether or
>>>>>> not the device has signalled wakeup.
>>>>>>
>>>>>> For this reason, make pci_acpi_wake_dev() always attempt to resume
>>>>>> the device it is called for regardless of the device's PME Status bit
>>>>>> value (that bit still has to be cleared if set at this point,
>>>>>> though).
>>>>>>
>>>>>> Reported-by: Sarah Sharp <sarah.a.sharp@xxxxxxxxxxxxxxx>
>>>>>> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
>>>>>> ---
>>>>>>  drivers/pci/pci-acpi.c |   15 ++++++++-------
>>>>>>  1 file changed, 8 insertions(+), 7 deletions(-)
>>>>>>
>>>>>> Index: linux-pm/drivers/pci/pci-acpi.c
>>>>>> ===================================================================
>>>>>> --- linux-pm.orig/drivers/pci/pci-acpi.c
>>>>>> +++ linux-pm/drivers/pci/pci-acpi.c
>>>>>> @@ -53,14 +53,15 @@ static void pci_acpi_wake_dev(acpi_handl
>>>>>>               return;
>>>>>>       }
>>>>>>
>>>>>> -     if (!pci_dev->pm_cap || !pci_dev->pme_support
>>>>>> -          || pci_check_pme_status(pci_dev)) {
>>>>>> -             if (pci_dev->pme_poll)
>>>>>> -                     pci_dev->pme_poll = false;
>>>>>> +     /* Clear PME Status if set. */
>>>>>> +     if (pci_dev->pme_support)
>>>>>> +             pci_check_pme_status(pci_dev);
>>>>>>
>>>>>> -             pci_wakeup_event(pci_dev);
>>>>>> -             pm_runtime_resume(&pci_dev->dev);
>>>>>> -     }
>>>>>> +     if (pci_dev->pme_poll)
>>>>>> +             pci_dev->pme_poll = false;
>>>>>> +
>>>>>> +     pci_wakeup_event(pci_dev);
>>>>>> +     pm_runtime_resume(&pci_dev->dev);
>>>>>>
>>>>>>       if (pci_dev->subordinate)
>>>>>>               pci_pme_wakeup_bus(pci_dev->subordinate);
>>>>>>
>>>>>> --
>>>>>> To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
>>>>>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>>>>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>>>> --
>>>>> I speak only for myself.
>>>>> Rafael J. Wysocki, Intel Open Source Technology Center.
>>> --
>>> I speak only for myself.
>>> Rafael J. Wysocki, Intel Open Source Technology Center.
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux