PATCH: power down acpi and pci devices in suspend/resume
nate at root.org
Wed Nov 24 17:25:06 PST 2004
Kevin Oberman wrote:
>>From: Nate Lawson <nate at root.org>
>>Kevin Oberman wrote:
>>>I have tried the new set of ACPI power patches and they are better. Now
>>>the system almost works after resume. Only the cbb fails:
>>>cbb0: bad Vcc request. ctrl=0xffffff88, status=0xffffffff
>>Apologies, I just found what was causing this. My patch to perform
>>suspending before powering down devices didn't get merged with this tree
>>where I was implementing powerstates. I fixed this and unified pci/acpi
>>power on suspend behavior under the tunable/sysctl "debug.suspend_power".
>>Please test the attached patch. If it works well, I'll commit it as
>>shown to get testing in -current. If it causes trouble, the default for
>>debug.suspend_power can be set to 0.
> The new patch removed the annoying "bad Vcc request" messages, but
> that's all it improved. With the new patch I still lose cbb1 and
> anything connected to it. I see no real difference in the log other than
> the disappearance of the Vcc messages, but that is a good thing.
> If I set debug.suspend_power to '0', everything works as it did
> before. All PCI and CardBus devices seem to work fine after resume.
I have a hypothesis that your PCI-Cardbus bridge is losing its
configuration on being set to D3. Mine happens to retain it, hence it
working fine. The solution is to restore bridge device config registers
(non-type 0) in pci_cfg_save/restore(). I'll check with Warner to see
if he's working on that, if not, I may.
More information about the freebsd-acpi