From: Li, S. <sha...@in...> - 2004-07-29 07:38:58
|
How about add one line in pci_default_resume just like this: static void pci_default_resume(struct pci_dev *pci_dev) { + pci_set_power_state(pci_dev, 0); /* restore the PCI config space */ pci_restore_state(pci_dev, pci_dev->saved_config_space); /* if the device was enabled before suspend, reenable */ Thanks, Shaohua >-----Original Message----- >From: acp...@li... [mailto:acpi-devel- >ad...@li...] On Behalf Of ste...@gm... >Sent: Thursday, July 29, 2004 1:54 AM >To: acp...@li... >Subject: [ACPI] pci device resume too early? > >Hello, >I have problems with a few pci devices after resume. Hardware environment >is a >acer Travelmate 803(lspci attached), I use an unpatched linux-2.6.8-rc2 >kernel. > >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_state >works nice if I place it into a function which is scheduled with >schedule_delayed_work. I use my dummydriver module for testing. > >Using mdelay(something) instead of scheduling a work doesn't help, so it's >not >the hardware which needs some time. >Is it possible that the driver's resume functions are called too early? Can >you point me to the place in the acpi code which calls the resume methods >that I can do further testing? I couldn't find it. > >Thanks in advance, >Stefan |