Messages in this thread | | | Date | Fri, 5 Dec 2008 17:55:16 -0800 (PST) | From | Linus Torvalds <> | Subject | Re: Regression from 2.6.26: Hibernation (possibly suspend) broken on Toshiba R500 (bisected) |
| |
On Sat, 6 Dec 2008, Rafael J. Wysocki wrote: > > It only affects the legacy handling, but the non-legacy handling was left > untouched. IOW, the old "default" functions are still there and are being > called by the "non-legacy" code (it's only used by USB at the moment, AFAICS).
Ok.
> Anyway, I did the test doing it only to the devices which don't have any > non-default suspend-resume handling at all and _that_ apparently fixed the > problem on my box. :-)
Which makes sense, btw. Because if you do the pci_save_state() on a device that _does_ have a suspend function, you'll be saving the post-suspend state - ie the device turned off.
So yeah, we really can only do the default suspend if the device has no pre-existing suspend function - or we'd need to make sure that all PCI drivers that do have suspend functions would only do the higher-level functionality.
Anyway, what I'm most interested in hearing is whether this actually improves your situation. I can _easily_ see that your resume problem could be due to interrupt timing. That's especially true if there are shared interrupts, but even in the absense of that, I'm not at all sure that the e1000e resume code is interrupt-safe, for example.
Linus
| |