Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 14 Jan 2011 18:26:32 +0300
From:      Alexandr Matveev <timon@timon.net.nz>
To:        freebsd-acpi@freebsd.org
Subject:   Thinkpad suspend/resume problem
Message-ID:  <4D306B28.1030001@timon.net.nz>

next in thread | raw e-mail | index | archive | help
  Hello

   I have IBM/Lenovo T61p laptop. Everything works fine except one thing -
suspend/resume. I know that at present moment there a lots of work that need
to be done before it will be reliable, but I want to help to improve it.

   My system:
OS: FreeBSD-CURRENT ( cvsup at 14 Jan 2011 )
Usual dmesg output ( with all drivers loaded ):
   http://timon.net.nz/freebsd/acpi/dmesg.txt
dmesg output after "boot -v" ( with all drivers loaded ):
   http://timon.net.nz/freebsd/acpi/dmesg.verbose.txt
dmesg output after "boot -v" on generic kernel ( no additional drivers
loaded ): http://timon.net.nz/freebsd/acpi/dmesg.verbose.generic.txt
'sysctl hw.acpi' output: http://timon.net.nz/freebsd/acpi/hw.acpi.txt
ASL: http://timon.net.nz/freebsd/acpi/lenovo-t61p.asl.txt

   Main problem:
Suspend seems to work fine ( after 'acpiconf -s 3' sleep indicator start 
flashing
for a second, then everything power off and indicator stand on ), but system
doesn't resume after suspend: after pressing power button hard drive 
spin-up and
DVD-drive powered up, Num Lock and Caps Lock indicator light up for a 
moment, hard
drive led light up for a 2 seconds, then led turns off and nothing 
happens next.
Sleep indicator stays turned on all this time.

   What I already tried and discover:
0) Suspend and resume don't work both on i386 and amd64 kernels;
1) Simple test
   sysctl debug.bootverbose=1
   sysctl debug.acpi.suspend_bounce=1
   acpiconf -s 3
works fine: system successfuly emulates switching to S3 and back to S0 
modes;
2) Mini-kernel ( config http://timon.net.nz/freebsd/acpi/mini.txt )
don't resume after sleep too. Even if APIC is disabled.
3) I can't test that system wake up ( and so go sleep ) correctly by setting
sysctl debug.acpi.resume_beep=1 because my laptop don't have separate
speaker on main board and speaker output connected to Intel HDA mixer,
therefore, speaker don't work immedeatly after system startup;
4) Replace resume_beep in wakeup code with code that light on Num Lock and
Caps Lock keyboard indicators don't have effect;
5) BIOS have switch "Power Control Beep" turned on. Description of this
switch says: "Enable this option to have a beep sound when: the system
enters suspend mode; the system resumes from suspend mode; the system enters
hibernation mode; the system resumes from hibernation mode: the AC adapter
is connected or disconnected". Laptop produce a sound when I disconnect and
connect AC adapter, but don't produce any sound on suspend and resume;

   My conclusions:
Because system don't flash on lights (4) and don't produce any sound on
resume (5) I think that system don't propertly go to sleep.

   What I want to try next:
0) Try to output something to COM-port on wakeup code;
1) Try to get POST-code from laptop when it resume from sleep;
2) Try to use null-modem cable to record all possible debug information from
console when laptop goes to suspend mode.

   Questions to community:
0) In what direction to look for a bug?
1) How can I test that system suspend itself correctly?

-- 
Alexandr Matveev




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4D306B28.1030001>