PATCH: power down acpi and pci devices in suspend/resume

Kevin Oberman oberman at es.net
Sun Nov 21 15:32:04 PST 2004


> Date: Fri, 19 Nov 2004 23:52:13 -0800
> From: Nate Lawson <nate at root.org>
> Sender: owner-freebsd-acpi at freebsd.org
> 
> This is a multi-part message in MIME format.
> --------------000406040402060700060908
> Content-Type: text/plain; charset=us-ascii; format=flowed
> Content-Transfer-Encoding: 7bit
> 
> The attached patch implements setting power states for ACPI (i.e. ISA) 
> and PCI devices in the suspend/resume path.  This may help with some 
> problems; it's quite likely it may introduce problems.  That's why I'd 
> like it tested.  If you have a system that suspends/resumes ok or that 
> fails, please try it.  The likely failure case is a hang in suspend or 
> resume or a device that doesn't work afterwords.  It's pretty 
> heavy-handed, only avoiding changing power for serial ports since those 
> are known to cause a hang (which can possibly be fixed by making 
> sio/uart more aware of power states.)  I suspect devices like PCI 
> bridges may have problems with power changes.
> 
> If you have problems, please let me know the info it prints before the 
> hang so I can figure out what the problem device is.
> 
> -Nate
> 

Nate,

I tried the patches on my T30 ThinkPad and had little luck. Without the
DPMS patch, the display did not turn off, but the big problem was that
the mini-PCI Prism 2.5 card was dead after the resume. I don't have a
PCMCIA card in my system at the moment. so I don't know if it would have
recovered. Other than the lack of the wireless card, the resume was
fine, but my audio was still messed up after the resume. (Running at the
raw rate.)

I will append my log of the suspends and resumes. The first was before
the DPMS patch and the second is after. Let me know if I can supply any
other information. I will try suspending with a pcmcia card plugged in a
little later.
-- 
R. Kevin Oberman, Network Engineer
Energy Sciences Network (ESnet)
Ernest O. Lawrence Berkeley National Laboratory (Berkeley Lab)
E-mail: oberman at es.net			Phone: +1 510 486-8634

Nov 21 12:12:26 puppeteer sudo:  oberman : TTY=ttyp1 ; PWD=/usr/home/oberman ; USER=root ; COMMAND=/usr/sbin/zzz
Nov 21 12:12:27 puppeteer acpi: suspend at 20041121 12:12:27
Nov 21 12:12:29 puppeteer kernel: acpi: _SxD is D3
Nov 21 12:12:29 puppeteer kernel: acpi: _SxD is D2
Nov 21 12:12:29 puppeteer last message repeated 3 times
Nov 21 12:12:29 puppeteer kernel: acpi: _SxD is D3
Nov 21 12:12:29 puppeteer last message repeated 5 times
Nov 21 12:12:29 puppeteer kernel: cbb0: bad Vcc request. ctrl=0xffffff88, status=0xffffffff
Nov 21 12:12:29 puppeteer kernel: cbb_power: 0V
Nov 21 12:12:29 puppeteer kernel: cbb1: bad Vcc request. ctrl=0xffffff88, status=0xffffffff
Nov 21 12:12:29 puppeteer kernel: cbb_power: 0V
Nov 21 12:12:29 puppeteer kernel: wi0: timeout in wi_seek to 149/0
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.EC__ into D3 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.MEM_ into D3 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.SIO_ into D3 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_PR_.CPU_ into D3 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_TZ_.THM0 into D3 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.LID_ into D3 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.SLPB into D3 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi: _SxD is D2
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.PCI0 into D2 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi0: failed to set ACPI power state D2 on \_SB_.PCI0: AE_BAD_PARAMETER
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.PIC_ into D3 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.TIMR into D3 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.DMAC into D3 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.FPU_ into D3 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.RTC_ into D3 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.KBD_ into D3 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.MOU_ into D3 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.FDC_ into D3 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi succeeded putting \_SB_.PCI0.LPC_.FDC_ into D3
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.EC__.BAT0 into D3 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.EC__.BAT1 into D3 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.EC__.AC__ into D3 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.EC__ into D0 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi succeeded putting \_SB_.PCI0.LPC_.EC__ into D0
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.MEM_ into D0 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi succeeded putting \_SB_.MEM_ into D0
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.SIO_ into D0 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi succeeded putting \_SB_.PCI0.LPC_.SIO_ into D0
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_PR_.CPU_ into D0 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi succeeded putting \_PR_.CPU_ into D0
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_TZ_.THM0 into D0 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi succeeded putting \_TZ_.THM0 into D0
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.LID_ into D0 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi succeeded putting \_SB_.LID_ into D0
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.SLPB into D0 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi succeeded putting \_SB_.SLPB into D0
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.PCI0 into D0 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi succeeded putting \_SB_.PCI0 into D0
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.PIC_ into D0 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi succeeded putting \_SB_.PCI0.LPC_.PIC_ into D0
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.TIMR into D0 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi succeeded putting \_SB_.PCI0.LPC_.TIMR into D0
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.DMAC into D0 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi succeeded putting \_SB_.PCI0.LPC_.DMAC into D0
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.FPU_ into D0 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi succeeded putting \_SB_.PCI0.LPC_.FPU_ into D0
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.RTC_ into D0 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi succeeded putting \_SB_.PCI0.LPC_.RTC_ into D0
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.KBD_ into D0 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi succeeded putting \_SB_.PCI0.LPC_.KBD_ into D0
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.MOU_ into D0 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi succeeded putting \_SB_.PCI0.LPC_.MOU_ into D0
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.FDC_ into D0 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi succeeded putting \_SB_.PCI0.LPC_.FDC_ into D0
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.UART into D0 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi succeeded putting \_SB_.PCI0.LPC_.UART into D0
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.EC__.BAT0 into D0 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi succeeded putting \_SB_.PCI0.LPC_.EC__.BAT0 into D0
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.EC__.BAT1 into D0 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi succeeded putting \_SB_.PCI0.LPC_.EC__.BAT1 into D0
Nov 21 12:12:48 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.EC__.AC__ into D0 (if supported)
Nov 21 12:12:48 puppeteer kernel: acpi succeeded putting \_SB_.PCI0.LPC_.EC__.AC__ into D0
Nov 21 12:12:48 puppeteer kernel: wakeup from sleeping state (slept 00:00:18)
Nov 21 12:12:49 puppeteer acpi: resumed at 20041121 12:12:49
Nov 21 12:12:56 puppeteer su: oberman to root on /dev/ttyp1
Nov 21 12:14:58 puppeteer su: oberman to root on /dev/ttyp1
Nov 21 12:15:11 puppeteer kernel: acpi_video0: detached
Nov 21 12:15:34 puppeteer kernel: acpi_video0: <ACPI video extension> port 0x3000-0x30ff mem 0xd0100000-0xd010ffff,0xe8000000-0xefffffff irq 11 at device 0.0 on pci1
Nov 21 12:15:43 puppeteer sudo:  oberman : TTY=ttyp1 ; PWD=/usr/home/oberman ; USER=root ; COMMAND=/usr/sbin/zzz
Nov 21 12:15:44 puppeteer acpi: suspend at 20041121 12:15:44
Nov 21 12:15:46 puppeteer kernel: acpi: _SxD is D3
Nov 21 12:15:46 puppeteer kernel: acpi: _SxD is D2
Nov 21 12:15:46 puppeteer last message repeated 3 times
Nov 21 12:15:46 puppeteer kernel: acpi: _SxD is D3
Nov 21 12:15:46 puppeteer last message repeated 5 times
Nov 21 12:15:46 puppeteer kernel: cbb0: bad Vcc request. ctrl=0xffffff88, status=0xffffffff
Nov 21 12:15:46 puppeteer kernel: cbb_power: 0V
Nov 21 12:15:46 puppeteer kernel: cbb1: bad Vcc request. ctrl=0xffffff88, status=0xffffffff
Nov 21 12:15:46 puppeteer kernel: cbb_power: 0V
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.EC__ into D3 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.MEM_ into D3 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.SIO_ into D3 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_PR_.CPU_ into D3 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_TZ_.THM0 into D3 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.LID_ into D3 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.SLPB into D3 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi: _SxD is D2
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.PCI0 into D2 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi0: failed to set ACPI power state D2 on \_SB_.PCI0: AE_BAD_PARAMETER
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.PIC_ into D3 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.TIMR into D3 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.DMAC into D3 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.FPU_ into D3 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.RTC_ into D3 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.KBD_ into D3 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.MOU_ into D3 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.FDC_ into D3 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi succeeded putting \_SB_.PCI0.LPC_.FDC_ into D3
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.EC__.BAT0 into D3 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.EC__.BAT1 into D3 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.EC__.AC__ into D3 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.EC__ into D0 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi succeeded putting \_SB_.PCI0.LPC_.EC__ into D0
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.MEM_ into D0 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi succeeded putting \_SB_.MEM_ into D0
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.SIO_ into D0 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi succeeded putting \_SB_.PCI0.LPC_.SIO_ into D0
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_PR_.CPU_ into D0 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi succeeded putting \_PR_.CPU_ into D0
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_TZ_.THM0 into D0 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi succeeded putting \_TZ_.THM0 into D0
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.LID_ into D0 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi succeeded putting \_SB_.LID_ into D0
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.SLPB into D0 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi succeeded putting \_SB_.SLPB into D0
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.PCI0 into D0 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi succeeded putting \_SB_.PCI0 into D0
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.PIC_ into D0 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi succeeded putting \_SB_.PCI0.LPC_.PIC_ into D0
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.TIMR into D0 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi succeeded putting \_SB_.PCI0.LPC_.TIMR into D0
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.DMAC into D0 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi succeeded putting \_SB_.PCI0.LPC_.DMAC into D0
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.FPU_ into D0 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi succeeded putting \_SB_.PCI0.LPC_.FPU_ into D0
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.RTC_ into D0 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi succeeded putting \_SB_.PCI0.LPC_.RTC_ into D0
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.KBD_ into D0 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi succeeded putting \_SB_.PCI0.LPC_.KBD_ into D0
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.MOU_ into D0 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi succeeded putting \_SB_.PCI0.LPC_.MOU_ into D0
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.FDC_ into D0 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi succeeded putting \_SB_.PCI0.LPC_.FDC_ into D0
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.UART into D0 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi succeeded putting \_SB_.PCI0.LPC_.UART into D0
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.EC__.BAT0 into D0 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi succeeded putting \_SB_.PCI0.LPC_.EC__.BAT0 into D0
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.EC__.BAT1 into D0 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi succeeded putting \_SB_.PCI0.LPC_.EC__.BAT1 into D0
Nov 21 12:16:07 puppeteer kernel: acpi attempting to switch \_SB_.PCI0.LPC_.EC__.AC__ into D0 (if supported)
Nov 21 12:16:07 puppeteer kernel: acpi succeeded putting \_SB_.PCI0.LPC_.EC__.AC__ into D0
Nov 21 12:16:07 puppeteer kernel: wakeup from sleeping state (slept 00:00:20)
Nov 21 12:16:08 puppeteer acpi: resumed at 20041121 12:16:08


More information about the freebsd-acpi mailing list