Bug 7977

Summary: touchpad (and keyboard) stops working after suspend
Product: ACPI Reporter: Martin Tuma (tumam3)
Component: ECAssignee: Alexey Starikovskiy (astarikovskiy)
Status: CLOSED PATCH_ALREADY_AVAILABLE    
Severity: normal CC: astarikovskiy, axelgenus, kernel-bugs, lenb, nt, plastikman, tarmo, wagenaar
Priority: P2    
Hardware: i386   
OS: Linux   
Kernel Version: 2.6.20 Subsystem:
Regression: --- Bisected commit-id:
Bug Depends on:    
Bug Blocks: 7216    
Attachments: Leave AT keyboard enabled when suspending
Properly reset psmouse at suspend
Let serio bus handle suspending/resuming of i8042 ports
Let serio bus handle suspending/resuming of i8042 ports
Kernel log - Suspending to RAM
The keyboard was working in 2.6.19 after STR
The keyboard/touchpad doesn't work after STR in 2.6.20
The dmesg output from the 2.6.20 kernel with i8042.debug enabled
Results of bisecting
here is the dmesg pre suspend
here is the dmesg post suspend
Enable runtime GPEs before calling _WAK method
Don't enable EC GPE for every transaction.

Description Martin Tuma 2007-02-09 11:26:09 UTC
Most recent kernel where this bug did *NOT* occur:
Distribution: Arch linux
Hardware Environment: HP nx6310
Software Environment:

Problem Description:
After suspend to RAM, the (Synaptics) touchpad stops working. If
the module is not unloaded befor suspend, the keyboard also stops
working. But unloading the module befor suspend doesn't help - if
you try to load it after waking up, it ends with the same behaviour
as if it wouldn't be unloaded befor suspend - the module is loaded
successfully, but the touchpad doesn't work and the keyboard as well.

There are no error messages in the kernel logs and the problem
doesn't depend on if the X-server is running or not. It is 100% not
a HW problem - the touchpad works fine after suspend to RAM on
Windows.

The problem is not new to 2.6.20 - the same error occured in the
2.6.19.x kernels (didn't try it on olders).


Steps to reproduce:
Simply suspend to RAM (echo mem > /sys/power/state)
Comment 1 Dmitry Torokhov 2007-02-09 11:59:39 UTC
Could you please try the last 2 patches from bug 7689? Thanks!
Comment 2 Martin Tuma 2007-02-09 17:53:13 UTC
I have tryed the last 2 patches (2007-02-09 09:01, 2007-02-09 09:02) from bug 7689 and they don't solve the problem.
Comment 3 Dmitry Torokhov 2007-02-12 09:32:27 UTC
Ok, some more ideas:

1. Try booting with i8042_nopnp
2. Try compiling atkbd as a module and unload it before suspending and reload 
after resuming
3. Try unbinding i8042 driver from its device before suspending and rebind 
after resuming (via sysfs)
4. Compile i8042 as a module and unload it before suspending and reload it 
after resuming.

Note: to compile i8042 and atkbd as modules you will need to enable 
CONFIG_EMBEDDED.

P.S. Alessandro, I added you to CC of this bug, I hope you don't mind...
Comment 4 Calorì Alessandro 2007-02-12 09:35:42 UTC
Actually Bugzilla gave me a "Mid-air collition error" since I was adding my e-
mail to CC when you was... LOL!
Comment 5 Martin Tuma 2007-02-13 17:42:37 UTC
1) and 2) had no effect, but 4) worked :-)
If i compile the kernel with i8042 as a module
and use a suspend script like this:

-----------------------------------
#!/bin/sh

grep -q open /proc/acpi/button/lid/C238/state && exit

# suspend
modprobe -r psmouse
modprobe -r i8042
echo mem > /sys/power/state

# resume
sleep 1
modprobe i8042
modprobe psmouse
-----------------------------------

then the touchpad works after resume as well
as the keyboard.
Comment 6 Calorì Alessandro 2007-02-14 00:16:54 UTC
Dmitry I guess it should be solved using the same method you used in bug #7689.

With those patches you provided the mouse still worked for me after resume but 
keyboard didn't (I tried with the first two... I'm going to try with my actual 
kernel where I applied the first patch and the fourth patch, as you suggested 
in the other bug).

Maybe our laptops need the PS/2 bus to be fully cleaned up either for mouse or 
for keyboard before shutdown/reboot/suspend.

NOTE: I've tried to plug in an USB keyboard after resume and it worked.
Comment 7 Dmitry Torokhov 2007-02-14 06:50:52 UTC
Martin,

Since 4) worked for you I am really interested in comparioson with 3). This 
will let me know if it is just the difference between i8042_suspend() and 
i8042_remove() or if I will have to fiddle with PNP layer as well. To unbind 
i8042 via sysfs you will have to do sometyhing like this:

    echo -n "i8042" > /sys/bus/platform/drivers/i8042/unbind

and to rebind you would need to do

    echo -n "i8042" > /sys/bus/platform/drivers/i8042/bind

Please take the sysfs paths with a grain of salt since I am away from a Linux 
box at the moment.
Comment 8 Dmitry Torokhov 2007-02-14 07:20:17 UTC
Created attachment 10418 [details]
Leave AT keyboard enabled when suspending

OK guys, coudl you please try this patch? It attempts to leave the keyboard
enabled when suspending/shutting down, like we do for mouse in the other bug.
The patch should be applied with 2 other patches from 7689 (for psmouse and
i8042) taht I am going to attach in a moment.
Comment 9 Dmitry Torokhov 2007-02-14 07:21:03 UTC
Created attachment 10419 [details]
Properly reset psmouse at suspend
Comment 10 Dmitry Torokhov 2007-02-14 07:21:29 UTC
Created attachment 10420 [details]
Let serio bus handle suspending/resuming of i8042 ports
Comment 11 Martin Tuma 2007-02-14 19:16:06 UTC
Good news! Unbinding and rebinding of the i8042 via sysfs also "fixes" the 
problem, so there is no need compiling i8042 as a module.
Comment 12 Martin Tuma 2007-02-14 19:45:17 UTC
Dmitry,
what behaviour exactly do you want to test with those new patches?
Should they work without the need to bind/unbind the i8042 driver, or
even unload/load the psmouse module? And the second question - should
the sources be also patched with the patches you mentioned in your
first comment here (2007-02-09 09:01, 2007-02-09 09:02 from bug 7689)?

I also don't understand, why to patch the at keyboard driver - the bug
seems to be in the i8042 driver.

M.
Comment 13 Dmitry Torokhov 2007-02-14 19:53:02 UTC
Martin,

I want you to apply only 3 patches from this bug (I "moved" 2 of these from the 
other issue so they all can be seen in context of this problem) and tell me if 
your box has functioning keyboard/touchpad without any additional effort such 
as unbinding i8042 or reloading any modules.

As to why I am patching keyboard driver - it may very well be that the origin 
of problem is there (aside of the fact that BIOS on HP boxes seems to be brain 
damaged). When you unbind i8042 you are in fact destroying all serio ports 
registered by it and this causes atkbd (and psmouse) to run their disconnect 
routines which restore hardware state to the BIOS liking. The patches try to do 
the same cleanup at suspend state without destroying serio ports.

Thanks!
Comment 14 Martin Tuma 2007-02-15 18:29:57 UTC
I get errors trying to apply the the patches
from id=10419 and id=10420. The first patch
(id=10420) works fine. The kernel is a "clean"
2.6.20. Any seggestions?

--------------------------------------

[tumic@HP linux-2.6.20]$ patch -p1 < p10420.patch 
patching file drivers/input/serio/i8042.c
Hunk #1 succeeded at 788 (offset -3 lines).
Hunk #2 succeeded at 836 (offset -1 lines).
Hunk #3 succeeded at 856 (offset -3 lines).
Hunk #4 succeeded at 876 (offset -1 lines).
Hunk #5 succeeded at 907 (offset -3 lines).
patching file drivers/input/serio/serio.c
Hunk #2 succeeded at 921 (offset -2 lines).
patching file include/linux/serio.h
Reversed (or previously applied) patch detected!  Assume -R? [n] n
Apply anyway? [n] n
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file include/linux/serio.h.rej

...

[tumic@HP linux-2.6.20]$ patch -p1 < p10419.patch 
patching file drivers/input/mouse/psmouse-base.c
Hunk #1 FAILED at 987.
1 out of 1 hunk FAILED -- saving rejects to file 
drivers/input/mouse/psmouse-base.c.rej
patching file drivers/input/mouse/psmouse.h
Reversed (or previously applied) patch detected!  Assume -R? [n] n
Apply anyway? [n] n
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file 
drivers/input/mouse/psmouse.h.rej
patching file drivers/input/mouse/synaptics.c
Reversed (or previously applied) patch detected!  Assume -R? [n] n
Apply anyway? [n] n
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file 
drivers/input/mouse/synaptics.c.rej
Comment 15 Dmitry Torokhov 2007-02-15 20:01:53 UTC
Seems to be working fine here. Please check your tree and make sure you apply 
patches in order:

[dtor@anvil kernel]$ mkdir 2.6.20
[dtor@anvil kernel]$ cd 2.6.20/
[dtor@anvil 2.6.20]$ GIT_DIR=../work-new/.git git checkout -q -f v2.6.20
[dtor@anvil 2.6.20]$ 
curl -# "http://bugzilla.kernel.org/attachment.cgi?id=10418&action=view" | 
patch -p1

patching file drivers/input/keyboard/atkbd.c
[dtor@anvil 2.6.20]$ 
curl -# "http://bugzilla.kernel.org/attachment.cgi?id=10419&action=view" | 
patch -p1
##
patching file drivers/input/mouse/psmouse-base.c
patching file drivers/input/mouse/psmouse.h
patching file drivers/input/mouse/synaptics.c
[dtor@anvil 2.6.20]$ 
curl -# "http://bugzilla.kernel.org/attachment.cgi?id=10420&action=view" | 
patch -p1
####
patching file drivers/input/serio/i8042.c
Hunk #1 succeeded at 788 (offset -3 lines).
Hunk #2 succeeded at 836 (offset -1 lines).
Hunk #3 succeeded at 856 (offset -3 lines).
Hunk #4 succeeded at 876 (offset -1 lines).
Hunk #5 succeeded at 907 (offset -3 lines).
patching file drivers/input/serio/serio.c
Hunk #2 succeeded at 921 (offset -2 lines).
patching file include/linux/serio.h
Hunk #1 succeeded at 103 (offset -5 lines).
Comment 16 Martin Tuma 2007-02-16 13:49:53 UTC
I have succesfully applyed the patches (the sources weren't so "clean" as I 
thought...) but if I don't unload/unbind the modules befor suspend, then the 
touchped as well as the keyboard stops working after resume. That means, the 
problem hasn't been fixed by the patches :-(
Comment 17 Dmitry Torokhov 2007-02-17 23:07:33 UTC
Created attachment 10445 [details]
Let serio bus handle suspending/resuming of i8042 ports

Heh, I completely screwed up suspend-to-ram with the last patch. Please revert
it (patch 10420) and apply this one. Thanks!
Comment 18 Calorì Alessandro 2007-02-18 04:37:04 UTC
Created attachment 10449 [details]
Kernel log - Suspending to RAM

I applied all the three patches and I recompiled my kernel without SMP support
to make "Suspend states" available. I booted into the new kernel and tried to
suspend to RAM.

Suspending works but when I wake up my laptop the screen remains black. The
system seems to work but I have to push the power button to shut down it (I was
in the terminal before suspending so I tried to write "reboot" and press enter
but it didn't execute the command).

I've tried to suspend with hibernate script and from KLaptop (KDE) but both
failed to wake up the system.
Comment 19 Dmitry Torokhov 2007-02-18 09:11:38 UTC
OK, I see that your box resumed just fine except that you can't see it ;) I
guess intelfb can't handle resume quite right yet. I'd recommend trying s2ram
utility (http://suspend.sourceforge.net/) and also maybe disable your
framebuffer (graphic) console and use text one while testing suspend-to-ram.

Thanks! 
Comment 20 Dmitry Torokhov 2007-02-18 09:54:40 UTC
*** Bug 7367 has been marked as a duplicate of this bug. ***
Comment 21 Dmitry Torokhov 2007-02-18 09:57:55 UTC
*** Bug 7277 has been marked as a duplicate of this bug. ***
Comment 22 Calorì Alessandro 2007-02-18 11:50:41 UTC
I tried to remove the framebuffer support from my kernel but there is no 
difference.

I found these errors in my kernel log (the one I attached here) before suspend:
"ACPI Error (utglobal-0125): Unknown exception code: 0xFFFFFFF0 [20060707]"
"synaptics reset failed" (many times)

and this one when waking up:
"psmouse.c: Failed to enable mouse on isa0060/serio4"

Can you please explain them?
Comment 23 Martin Tuma 2007-02-18 11:55:58 UTC
I have just tryed the new patch(patches), but they don't work.
I think, it didn't work by Alessandro neither. I have the same problem with
resuming from the console (the display won't get "on"), but it works if
suspended from X. If only the display wouldn't work, you should be able to
execute the reboot command even if you did not see the output. The fact, that
this didn't worked means IMHO that the keyboard was out of order. 
Comment 24 Dmitry Torokhov 2007-02-18 21:44:01 UTC
Hm, I missed the part with psmouse not activating properly... Can I get a dmesg
of s2ram with i8042 debug enabled? (use echo 1 >
/sys/module/i8042/parameters/debug before suspending). Thanks!
Comment 25 Calorì Alessandro 2007-02-18 23:54:29 UTC
I have to search s2ram as an ebuild before installing it because gentoo's 
portage hasn't it (ay least I didn't find it).

However, I'll try A.S.A.P.
Comment 26 Almonas Petrasevicius 2007-02-19 12:28:50 UTC
Created attachment 10462 [details]
The keyboard was working in 2.6.19 after STR

HP CPQ nc6320 (T2400, i945GM, latest bios).

The keyboard was working properly after suspend to ram in v2.6.19 (and 2.6.18 i
think). There is a syslog with enabled debugging of i8042.
Comment 27 Almonas Petrasevicius 2007-02-19 12:36:22 UTC
Created attachment 10463 [details]
The keyboard/touchpad doesn't work after STR in 2.6.20

With 2.6.20 it stopped working after resume from STR.

I've also noticed that there no i8042 interrupts (irq1) generated anymore.
Removing i8042 module and reloading it again helps.

Both 2.6.19 and 2.6.20 syslogs are with i8042 debug enabled. In both cases I've
tried to suspend and resume once. In case of 2.6.20 I've reloaded the i8042
module again.\

Other than dead keyboard/touchpad the laptop after resume appears to work ok.
Comment 28 Dmitry Torokhov 2007-02-19 14:03:23 UTC
Almonas,

Could you please also provide me with dmesg of the boot process with 2.6.20 
(with i8042.debug=1)?

Thanks!
Comment 29 Almonas Petrasevicius 2007-02-20 11:48:12 UTC
Created attachment 10473 [details]
The dmesg output from the 2.6.20 kernel with i8042.debug enabled

As requested.
Comment 30 Zak Peirce 2007-02-25 14:03:11 UTC
I have applied all 3 patches to the 2.6.20 kernel as well as making i8042,
psmouse, atkbd, and evdev modules and unloading before a suspend but the
touchpad still does not wake up after a suspend.  What information can i provide
to you to assist?
Comment 31 Martin Tuma 2007-02-25 15:42:41 UTC
Zak,
Try this suspend script, it should work, even if you don't have
i8042 and atkbd as modules. But it is not a real solution - it's
more a "workaround" becouse it solves the consequence, not the
reason.

---------- begin script ----------
#!/bin/sh

# if LID pressed (Display closed) suspend, else exit
grep -q open /proc/acpi/button/lid/C238/state && exit

# suspend
modprobe -r psmouse
echo -n "i8042" > /sys/bus/platform/drivers/i8042/unbind
echo mem > /sys/power/state

# resume
sleep 1
echo -n "i8042" > /sys/bus/platform/drivers/i8042/bind
modprobe psmouse
---------- end script ----------

Note: you have to modify the lid identifier (C238) to fit
your system
Comment 32 Zak Peirce 2007-02-25 16:15:55 UTC
I used that suspend script that you provided, the laptop suspends then resumes
but neither the touchpad or the USB mouse work.  Normally i am using the
suspend2 patches with the hibernate scripts.  With Suspend2 the laptop suspends
and resumes except for the touchpad not comming back but an external USB mouse
works after resume.

again any info that i can provide let me know
Comment 33 Almonas Petrasevicius 2007-03-03 14:00:50 UTC
Created attachment 10610 [details]
Results of bisecting

Just wanted to say, that I did some bisecting, but I am not sure what to make
of all of this since the results don't make any sense to me. It points to the
ibm_acpi stuff which:

1. looks harmless
2. is not used, since it is an hp machine and I have an CONFIG_IBM_ACPI as "not
set".

Or I am doing something absolutely wrong.
Comment 34 Almonas Petrasevicius 2007-03-08 13:25:14 UTC
Hello,

I did some more tests and finally found the offending commit which caused the
problems on my laptop. git bisect was close but no cookie.

It was an 5d57a6a55ec0bdcb952dbcd3f8ffcde8a3ee9413

=============================================
Author: Alexey Starikovskiy <alexey.y.starikovskiy@intel.com>
Date:   12/07/2006 04:42:16 PM

   ACPI: ec: Enable EC GPE at beginning of transaction
   
   Temporary measure until resume sequence is right.
   
   Signed-off-by: Len Brown <len.brown@intel.com>
=============================================

So, it looks like the ACPI related problem, at least in my case.
I've commented that line out and everything is working fine again. As a side
efect the resume is taking noticeably more time as before.
Comment 35 Dmitry Torokhov 2007-03-09 08:48:08 UTC
Ok, I'll add Len and Alexey to CC of the bug so they can take a closer look at 
EC change.

Everyone else with s2ram not working, please try 2.6.21-rc3 and give me dmesgs 
with "i8042.debug log_buf_len=131072" on the kernel command line. I am 
interested in initial boot, suspend, resume and then rebinding i8042 via sysfs. 
You can send logs directly to me if you don;t want to clutter bugzilla. Thanks!
Comment 36 Dmitry Torokhov 2007-04-26 09:04:36 UTC
Ok, 2.6.21 has just been released. Please verify that touchpad/and keyboard 
still broken abfter suspend and send me the logs I requested in previous 
comment. Thanks! 
Comment 37 Zak Peirce 2007-04-29 19:54:58 UTC
I am unable to give you the i8024 debug log when i boot the 2.6.21 kernel i see
this message...

Kernel command line: root=/dev/sda7 video=vesafb:ywrap,pmipal,1024x768-16@75
resume2=swap:/dev/sda2 i8042.debug=1 log_buf_len=131072
Unknown boot option `i8042.debug=1': ignoring
log_buf_len: 131072
Comment 38 Dmitry Torokhov 2007-04-29 20:01:49 UTC
Do you have i8042 as a module? Then you need to ad "options i8042 debug=1" to 
your modprobe.conf
Comment 39 Zak Peirce 2007-04-29 20:25:39 UTC
Created attachment 11334 [details]
here is the dmesg pre suspend
Comment 40 Zak Peirce 2007-04-29 20:26:20 UTC
Created attachment 11335 [details]
here is the dmesg post suspend
Comment 41 Alexey Starikovskiy 2007-04-30 05:37:06 UTC
Created attachment 11338 [details]
Enable runtime GPEs before calling _WAK method

Dmitry,
The patch you mention is indeed a temporary solution needed until order of 
pm_finish/device_resume is done right, what already happened.

I think the attached patch is last peace of the puzzle, and that temporary
patch could be dropped after that.
Comment 42 Alexey Starikovskiy 2007-04-30 05:40:10 UTC
Almonas,

Could you please check that with commented out enable_gpe in ec.c and the patch
I just attached, speed of resume becomes normal again?
Comment 43 Almonas Petrasevicius 2007-05-14 11:47:30 UTC
Just tried v2.6.21 without any modification. It suspends and resumes fine,
keyboard and touchpad are working fine. Very strange indeed.

Retested with 2.6.20 (the one which came with Ubuntu 7.04). The problem is still
there, no keyboard/touchpad after resume.

The resume times are somehow strange, both with 2.6.20 and .21. First resume
from STR is about 19 secons.  Second one - 10s.

Looking at logs I see a message wich I think was not present before v2.6.21:

...<skip>..
May 14 20:15:36 notebook kernel: [   87.372000] Back to C!
May 14 20:15:36 notebook kernel: [   87.372000] Enabling non-boot CPUs ...
May 14 20:15:36 notebook kernel: [   87.384000] SMP alternatives: switching to
SMP code
May 14 20:15:36 notebook kernel: [   87.384000] Booting processor 1/1 eip 3000
May 14 20:15:36 notebook kernel: [   87.392000] Initializing CPU#1
....<skip>........
May 14 20:15:36 notebook kernel: [   87.472000] CPU1: Intel Genuine Intel(R) CPU
          T2400  @ 1.83GHz stepping 08
May 14 20:15:36 notebook kernel: [   87.472000] kvm: enabling virtualization on CPU1
May 14 20:15:36 notebook kernel: [   87.472000] CPU1 is up

>>This was not here: >>>>>>>>>>>>>>>>>> 

May 14 20:15:36 notebook kernel: [   87.500000] Clocksource tsc unstable (delta
= 4090230334259 ns)

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

May 14 20:15:36 notebook kernel: [   87.536000] APIC error on CPU0: 00(40)
May 14 20:15:36 notebook kernel: [   87.536000] APIC error on CPU1: 00(40)
...<skip>....

An APIC error was always there, but the message about unstable TSC is a new one.
Don't know though if it has anything to do with a (now vanished) problem.

Should I still try the said patch?

The laptop is HP Compaq nc6320, T2400 + 945GM, latest BIOS.
Comment 44 Alexey Starikovskiy 2007-05-14 11:52:22 UTC
If vanilla 2.6.21 works for you, there is no need to apply any patches.
Comment 45 Zak Peirce 2007-06-26 09:07:09 UTC
Does this fix work for every one that was having the issue?  I am still having the issue.  
Comment 46 Tarmo T 2007-06-26 09:13:50 UTC
I'm also having the issue.
Comment 47 Alexey Starikovskiy 2007-06-26 09:45:51 UTC
Zak, could you be more specific?
What kernel do you use? Do you apply any patches?
Comment 48 Zak Peirce 2007-06-26 18:28:56 UTC
Hello,

I am running 2.6.21.3 (vanilla kernel) with no patches applied.  When i STR (echo "mem" > /sys.power/state) the laptop goes to sleep then when i wake it back up the touchpad is dead.  I am however able to use all other features of the laptop including an external USB mouse.  

Here are the modules that i have loaded

slacktop ~ # lsmod
Module                  Size  Used by
fglrx                 642272  15 
fuse                   33556  2 
mmc_block               5960  0 
tun                     7168  0 
psmouse                31240  0 
atkbd                  13456  0 
libps2                  4608  2 psmouse,atkbd
i8042                  15332  0 
ieee80211_crypt_tkip     9472  3 
ieee80211_crypt_ccmp     5824  0 
ieee80211_crypt_wep     3776  0 
ipw2200               125236  0 
ieee80211              25608  1 ipw2200
ieee80211_crypt         3904  4 ieee80211_crypt_tkip,ieee80211_crypt_ccmp,ieee80211_crypt_wep,ieee80211
firmware_class          6592  1 ipw2200
sdhci                  12940  0 
sr_mod                 11108  0 
cdrom                  29856  1 sr_mod
sg                     17880  0 
evdev                   6848  4 
slacktop ~ # 

here is the hardware that i have 

slacktop ~ # lspci
00:00.0 Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (rev 03)
00:01.0 PCI bridge: Intel Corporation Mobile 915GM/PM Express PCI Express Root Port (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 03)
00:1d.1 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 03)
00:1d.2 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 03)
00:1d.3 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (rev 03)
00:1d.7 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev d3)
00:1e.2 Multimedia audio controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (rev 03)
00:1f.0 ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge (rev 03)
00:1f.1 IDE interface: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (rev 03)
00:1f.3 SMBus: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (rev 03)
01:00.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility X700 (PCIE)
06:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5705_2 Gigabit Ethernet (rev 03)
06:04.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)
06:09.0 CardBus bridge: Texas Instruments PCIxx21/x515 Cardbus Controller
06:09.2 FireWire (IEEE 1394): Texas Instruments OHCI Compliant IEEE 1394 Host Controller
06:09.3 Mass storage controller: Texas Instruments PCIxx21 Integrated FlashMedia Controller
06:09.4 Class 0805: Texas Instruments PCI6411/6421/6611/6621/7411/7421/7611/7621 Secure Digital Controller
slacktop ~ # 


slacktop ~ # uname -a
Linux slacktop 2.6.21.3 #1 Tue Jun 26 18:04:57 PDT 2007 i686 Intel(R) Pentium(R) M processor 1.73GHz GenuineIntel GNU/Linux
slacktop ~ # 


Let me know what info i can provide to assist in troubleshooting....
Comment 49 Zak Peirce 2007-07-08 10:12:25 UTC
I know that this is not the only bug that you are working on but have you had a chance to investigate the problem any more?
Comment 50 Alexey Starikovskiy 2007-07-08 23:55:54 UTC
Could you please check if unloading of psmouse before STR and loading it back after changes the situation?
Comment 51 Zak Peirce 2007-07-09 07:16:28 UTC
Alexey,

Thank you for the quick reply i have tested before removing the psmouse modules and reloading and i still have the problem, but for good measure i tried to remove and reload again and i am still having the same issue.  Please let me know if there is anything else that i can provide to you.  
Comment 52 Alexey Starikovskiy 2007-07-09 22:42:56 UTC
Created attachment 11985 [details]
Don't enable EC GPE for every transaction.

It was mentioned earlier that commenting out this line helps. Please try.
Comment 53 Zak Peirce 2007-07-10 18:29:10 UTC
So i tried to apply the patch that you sent first and it errors out (see below)

So i tested applying the first patch (Enable runtime GPEs before calling _WAK method) like this


cd /usr/src/linux
wget 'http://bugzilla.kernel.org/attachment.cgi?id=11338&action=view' -O GPE1.patch

patch -p1 < GPE1.patch

then 

make && make modules modules_install install

Then reboot 

then exho 'mem' > /sys/power/state

Then wake up the laptop and everything but the touchpad works.  

I then tried to apply the patch that you recomended and i receive the following message

slacktop linux # patch -p1 < GPE.patch 
patching file drivers/acpi/ec.c
Hunk #1 FAILED at 240.
1 out of 1 hunk FAILED -- saving rejects to file drivers/acpi/ec.c.rej


Here is the content of the .rej file

***************
*** 240,248 ****
                }
        }

        /* Make sure GPE is enabled before doing transaction */
        acpi_enable_gpe(NULL, ec->gpe, ACPI_NOT_ISR);
- 
        status = acpi_ec_wait(ec, ACPI_EC_EVENT_IBF_0, 0, 0);
        if (status) {
                printk(KERN_DEBUG PREFIX
--- 240,249 ----
                }
        }

+ #if 0
        /* Make sure GPE is enabled before doing transaction */
        acpi_enable_gpe(NULL, ec->gpe, ACPI_NOT_ISR);
+ #endif
        status = acpi_ec_wait(ec, ACPI_EC_EVENT_IBF_0, 0, 0);
        if (status) {
                printk(KERN_DEBUG PREFIX
~                                                                               

Am I doing somthing wroing with the patch?
Comment 54 Zak Peirce 2007-08-05 09:12:00 UTC
Alexey,

Any more info that you need from me?  i would really love to have STR working on my laptop.
Comment 55 Len Brown 2007-10-30 11:39:16 UTC
1c55053c21706ccf1fdb26b4bb6d05c4a2782ffe
(ACPI: EC: Don't re-enable GPE for each transaction.)
shipped in Linux-2.6.24-rc1-git6
Please re-open if still an issue in that release or later.
Comment 56 Alexander Jenisch 2008-10-05 05:15:30 UTC
is this supposed to be working with pm-utils? if i suspend-to-ram and come back my synaptics touchpad isn't working any more.

nt@defiler $ uname -a
Linux defiler 2.6.26-ARCH #1 SMP PREEMPT Tue Sep 9 10:15:21 UTC 2008 i686 AMD Turion(tm) 64 Mobile Technology MT-30 AuthenticAMD GNU/Linux