Re: [RFC PATCH] PCIe: Add PCIe runtime D3cold support

Yan, Zheng
2012-04-16T07:49:20Z

On 04/14/2012 03:41 AM, Rafael J. Wysocki wrote:
>> > @@ -296,7 +296,8 @@ static void acpi_pci_propagate_run_wake(struct pci_bus *bus, bool enable)
>> >
>> > static int acpi_pci_run_wake(struct pci_dev *dev, bool enable)
>> > {
>> > - if (dev->pme_interrupt)
>> > + /* PME interrupt isn't available in the D3cold case */
>> > + if (dev->pme_interrupt && !dev->runtime_d3cold)
>
> This whole thing is wrong. First off, I don't think that the runtime_d3cold
> flag makes any sense. We already cover that in dev->pme_support.
>
> Second, pme_interrupt means that the _root_ _port_, not the device itself will
> trigger an interrupt whenever the device sends the PME message to it (which
> very well may happen for a device in D3_cold woken up by an external signal).
>

I rechecked this. The port does trigger PME interrupt, but after the WAKE# signal
restores device power. So my comments "PME interrupt isn't available in the D3cold
case" is wrong, but setup ACPI wakeup is still required.

Regards
Yan, Zheng