On Wed, 2004-07-28 at 19:53 +0200, Stefan D=C3=B6singer wrote:
> The problem is that directly after S3 resume, any attempt to write to pci=
> configuration registers of three of my devices(00:1d.7, 00:1f.5, 00:1f.6)=
> locks up my system. After some testing, I found out that pci_restore_stat=
> works nice if I place it into a function which is scheduled with=20
> schedule_delayed_work. I use my dummydriver module for testing.
Ooh, neat. This might explain the problems I have with yenta resuming on
my Thinkpad 240X. pci_restore_state is called from drivers/pci/pci-
driver.c (see pci_default_resume), and from some specific drivers (it
can probably be removed from them now though, really). That gets called
from the chain of things called in device_resume in
drivers/base/power/resume.c - it steps through each registered driver
and calls the associated resume method. For PCI stuff, that will either
be pci_default_resume or a driver-specific resume method. device_resume
is called from suspend_finish in kernel/power/main.c.
Matthew Garrett | mjg59@...