Re: [PATCH] PCI / PCIe: Clear Root PME Status bits early during system resume

Jesse Barnes
2010-12-23T20:54:39Z

On Sun, 19 Dec 2010 15:57:16 +0100
"Rafael J. Wysocki" <rjw@sisk.pl> wrote:

> From: Rafael J. Wysocki <rjw@sisk.pl>
>
> I noticed that PCI Express PMEs don't work on my Toshiba Portege R500
> after the system has been woken up from a sleep state by a PME
> (through Wake-on-LAN). After some investigation it turned out that
> the BIOS didn't clear the Root PME Status bit in the root port that
> received the wakeup PME and since the Requester ID was also set in
> the port's Root Status register, any subsequent PMEs didn't trigger
> interrupts.
>
> This problem can be avoided by clearing the Root PME Status bits in
> all PCI Express root ports during early resume. For this purpose,
> add an early resume routine to the PCIe port driver and make this
> driver be always registered, even if pci_ports_disable is set (in
> which case the driver's only function is to provide the early
> resume callback).
>
> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
> ---
>

Applied to my linux-next branch, thanks.

--
Jesse Barnes, Intel Open Source Technology Center