[RFC PATCH v2 1/3] PCI: rockchip: Add support for pcie wake irq
From: briannorris@chromium.org (Brian Norris)
Date: 2017-12-22 23:20:52
Also in:
linux-pci, linux-rockchip, lkml
+ Rafael to this thread On Wed, Dec 20, 2017 at 11:19:12AM -0800, Tony Lindgren wrote:
* Brian Norris [off-list ref] [171219 00:50]:quoted
On Wed, Aug 23, 2017 at 09:32:39AM +0800, Jeffy Chen wrote: Did this problem ever get resolved? To be clear, I believe the problem at hand is: (a) in suspend/resume (not runtime PM; we may not even have runtime PM support for most PCI devices)It seems it should be enough to implement runtime PM in the PCI controller. Isn't each PCI WAKE# line is wired from each PCI device to the PCI controller?
No, not really. As discussed in later versions of this thread already, the WAKE# hierarchy is orthogonal to the PCI hierarchy, and I think we settled that it's reasonable to just consider this as a 1-per-device thing, with each device "directly" attached to the PM controller. While sharing could happen, that's something we decided to punt on...didn't we?
Then the PCI controller can figure out from which PCI device the WAKE# came from.
I'm not completely sure of the details, but I believe this *can* be determined by PME. But I'm not sure it's guaranteed to be supported, especially in cases where we already have 1:1 WAKE#. So we should be *trying* to report this wakeirq info from the device, if possible.
quoted
Options I can think of: (1) implement runtime PM callbacks for all PCI devices, where we clear any PME status and ensure WAKE# stops asserting [1]I don't think this is needed, it should be enough to have just the PCI controller implement runtime PM :)
Brian