On Sat, Jun 16, 2018 at 09:25:00PM +0200, Lukas Wunner wrote: > Rework pciehp to use modern, threaded IRQ handling. The slot is powered > on and off synchronously in the IRQ thread, no indirection via a work > queue anymore. > > When the slot is enabled/disabled by the user via sysfs or an Attention > Button press, a request is sent to the IRQ thread. The IRQ thread is > thus the sole entity enabling/disabling the slot. > > The IRQ thread can cope with missed events, e.g. if a card is inserted > and immediately pulled out before the IRQ thread had a chance to react. > It also tolerates an initially unstable link as observed in the wild by > Stefan Roese. > > Finally, runtime PM support is added. This was the original motivation > of the series because runtime suspending hotplug ports is needed to power > down Thunderbolt controllers on idle, which saves ~1.5W per controller. > Runtime resuming ports takes tenths of milliseconds during which events > may be missed, this in turn necessitated the event handling rework. > > I've pushed the series to GitHub to ease reviewing/fetching: > https://github.com/l1k/linux/commits/pciehp_runpm_v2 These patches all showed up in random order in my inbox, I think because they were sent with zero delay between them, which made them a bit of a hassle to read and apply via email. If you repost these (I think I saw something about an issue with patch 3), can you use a second or two of delay between them?