[Studio XPS 16] touchpad doesn't return from resume

Bug #317270 reported by Mario Limonciello
10
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Fix Released
Medium
Andy Whitcroft

Bug Description

The recently released Studio XPS 16 has a problem where it's touchpad does not return after suspend-to-ram. This has been identified to be a problem in how the the vista driver handles reseting the touchpad and keyboard versus how Ubuntu handles it. The Studio XPS 13 had a similar problem, but legacy code was added to the BIOS to adjust the behavior of suspend-to-ram when operating on Ubuntu that would still be compatible with vista instead.

Likely ODMs and OEMs will be more commonly using this method for suspending. Here's some notes from the ODM:
---------
Psudo code as below
Vista driver :
Reset kbc :
Wirte FFh command to 60h port //reset command (keyboard)
EC return : FAh, AAh
Reset touchpad :
Wirte FFh command to 60h port //Reset command (PS2 Mouse / touchpad)
Wirte D4h command to 64h port //Write to Auxiliary Device
EC return : FAh, AAh, 00h

Ubuntu driver :
Reset kbc :
Wirte FFh command to 60h port //reset command (keyboard)
EC return : FAh, AAh
Reset touchpad :
Wirte D4h command to 64h port //Write to Auxiliary Device
EC return : FAh, AAh, 00h
(Ubuntu resets kbc and touchpad at the same time so that only commands EC FFh to 60h port once, but EC do the kbc reset and ps2 reset individually)

---------

Ideally the behavior should be modified to match the Vista behavior and increase compatibility with machines that normally solely ship with Vista.

Related branches

Changed in linux:
assignee: nobody → colin-king
Andy Whitcroft (apw)
Changed in linux:
importance: Undecided → Medium
Andy Whitcroft (apw)
Changed in linux:
assignee: colin-king → apw
status: New → In Progress
Revision history for this message
Andy Whitcroft (apw) wrote :

@Mario -- could you get the output of the following for me:

    cat /sys/devices/platform/i8042/serio0/uevent
    cat /sys/devices/platform/i8042/serio1/uevent
    cat /sys/devices/platform/i8042/serio1/protocol

Then could you slurp down this kernel and give it a shot for me, specifically could you do the failed suspend/resume cycle and then get the output of:

    dmesg

Kernels are here:

    http://people.ubuntu.com/~apw/lp317270-jaunty/

Revision history for this message
Jerone Young (jerone) wrote :

@Andy
      I placed everything your requested in a zip file.

Revision history for this message
Andy Whitcroft (apw) wrote :

@Jerone -- thanks for that info. I have tailored some more debug for this. Could you try the kernel at the URL below (lp31270apw2) and get the me dmesg output. There is also a possibility the changes made might make the pad work after reset so could you confirm that it does fail to come back on your default Jaunty kernel and whether it is any different on this one. Thanks:

    http://people.ubuntu.com/~apw/lp317270-jaunty/

Revision history for this message
Jerone Young (jerone) wrote :

@Andy
       With with the kernel you posted the track pad does now work after suspend. I have attached the dmesg output.

Revision history for this message
Jerone Young (jerone) wrote :

@Andy
          To follow up more. With the default jaunty kernel the trackpad still does not work after suspend. But with the kernel you just posted does.

Revision history for this message
Andy Whitcroft (apw) wrote :

Here is the relevant snippets from the logs:

[ 9.843475] APW: psmouse_reset() called
[ 108.611573] APW: synaptics_reset() called
[ 108.646034] APW: psmouse_reset() called
[ 114.498997] APW: synaptics_reconnect() called
[ 115.496017] APW: synaptics_reconnect() not synaptics ... IGNORED
[ 115.496126] APW: synaptics_reconnect() attempting reset
[ 115.496229] APW: psmouse_reset() called
[ 115.891602] APW: synaptics_reconnect() now synaptics ... GOOD
[ 115.891605] APW: psmouse_reset() called

From this debug we can see that this device is not detected as a synaptics unless we first reset the channel. If we do that then a second detection will succeed.

Revision history for this message
Jerone Young (jerone) wrote :
Revision history for this message
Jerone Young (jerone) wrote :
Revision history for this message
Andy Whitcroft (apw) wrote :

@Jerone -- I have uploaded a 'fix' and debug kernel which should work out of the box on the machine. Could you test that both as it is and with a module option:

   option psmouse synaptics_resume_reset=N

For each could you tell me if the touchpad works and also include the dmesg output.

Revision history for this message
Jerone Young (jerone) wrote :

@Andy
        So the fixed kernel works. But when you turn on synaptics_resume_reset=N , the touchpad does not even work on bootup.
          Will attach dmesg logs

Revision history for this message
Jerone Young (jerone) wrote :
Revision history for this message
Jerone Young (jerone) wrote :
Changed in dell:
status: New → Confirmed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package linux - 2.6.28-8.22

---------------
linux (2.6.28-8.22) jaunty; urgency=low

  [ Amit Kucheria ]

  * Remove perm-blacklist

  [ Andy Whitcroft ]

  * SAUCE: psmouse/synaptics: ensure we reset the device on resume
    - LP: #317270

  [ Tim Gardner ]

  * Add lpia to getabi script
  * SAUCE: tracer for sreadahead

 -- Amit Kucheria <email address hidden> Fri, 13 Feb 2009 15:23:21 +0200

Changed in linux:
status: In Progress → Fix Released
Revision history for this message
beudbeud (beudbeud) wrote :

I have a problem with my touchpad

i have a Dell Vostro 1510

uname -r
2.6.28-8-generic

dmesg | grep synaptics
[ 12.770680] WARNING: synaptics was reset on resume, see synaptics_resume_reset if you have trouble on resume

Revision history for this message
Mario Limonciello (superm1) wrote : Re: [Bug 317270] Re: [Studio XPS 16] touchpad doesn't return from resume

beudbeud:

What's exactly wrong with your touchpad, and is it *only* after resume? Is
it not working in X? Is xserver-xorg-input-synaptics installed? It's
important to determine if this regression only happened with that new
kernel, or if the X pieces are broken.

On Thu, Feb 19, 2009 at 05:10, beudbeud <email address hidden> wrote:

> I have a problem with my touchpad
>
> i have a Dell Vostro 1510
>
> uname -r
> 2.6.28-8-generic
>
> dmesg | grep synaptics
> [ 12.770680] WARNING: synaptics was reset on resume, see
> synaptics_resume_reset if you have trouble on resume
>
> --
> [Studio XPS 16] touchpad doesn't return from resume
> https://bugs.launchpad.net/bugs/317270
> You received this bug notification because you are a member of The Dell
> Team, which is subscribed to Dell Ubuntu Project.
>

--
Mario Limonciello
<email address hidden>
Sent from: Austin Texas United States.

Revision history for this message
beudbeud (beudbeud) wrote :

Yes the xserver-xorg-input-synaptics is installed.
What is that synaptics_resume_reset?

thank you

Changed in dell:
status: Confirmed → Fix Released
Revision history for this message
Jeremy Wilkins (wjeremy) wrote :

There seem to be no more comments related to this bug, but I have a Gateway MX6433 with a synaptics driver installed and the same behaviour occurs to me. When I resume I get this message in dmesg:
[ 18.355674] WARNING: synaptics was reset on resume, see synaptics_resume_reset if you have trouble on resume
but my touchpad doesn't work. This only happens on resume from suspend and I'm using kernel 2.6.28-8.26
I am very happy though that it can resume from suspend at all. No prior kernel even resumed at all until now.

Revision history for this message
Jeremy Wilkins (wjeremy) wrote :

Oh, and I have an external usb mouse that works fine after resume, so I can still function, If I can solve this I'll have a perfect setup

Revision history for this message
Andy Whitcroft (apw) wrote :

@Jeremy -- could you try adding the line below to your /etc/modprobe.d/options and reboot, then retest and report back here:

       option psmouse synaptics_resume_reset=N

Revision history for this message
Jeremy Wilkins (wjeremy) wrote :

@Andy -- tried it. Didn't make any difference. It still does not work on resume. It also still gives the reset message as if nothing changed.

Revision history for this message
Mario Limonciello (superm1) wrote : Re: [Bug 317270] Re: [Studio XPS 16] touchpad doesn't return from resume

You might have to update the initramfs if psmouse is built into the
kernel (not sure if it is these days) and try to reboot:

sudo update-initramfs -u

Revision history for this message
Jeremy Wilkins (wjeremy) wrote :
Download full text (14.4 KiB)

Tried it, but it still failed to resume the touchpad. I wish they had the foreknowledge to put these internal pads on the usb bus instead. Now PS/2 is almost dead as it should be, but it leaves us with lingering shortcomings. Here is the dmesg output from my resume:
[ 1228.388476] MMC: killing requests for dead queue
[ 1229.016119] sd 0:0:0:0: [sda] Synchronizing SCSI cache
[ 1229.016345] sd 0:0:0:0: [sda] Stopping disk
[ 1231.069928] ACPI handle has no context!
[ 1231.070033] ACPI handle has no context!
[ 1231.070043] sdhci-pci 0000:05:09.4: PCI INT A disabled
[ 1231.070051] ACPI handle has no context!
[ 1231.084104] ACPI handle has no context!
[ 1231.084110] tifm_7xx1 0000:05:09.3: PCI INT A disabled
[ 1231.084117] ACPI handle has no context!
[ 1231.100047] ieee1394: hpsb_bus_reset called while bus reset already in progress
[ 1231.100126] ACPI handle has no context!
[ 1231.116199] ACPI handle has no context!
[ 1231.132051] sky2 eth0: disabling interface
[ 1231.148235] ATI IXP MC97 controller 0000:00:14.6: PCI INT B disabled
[ 1231.148505] ATI IXP AC97 controller 0000:00:14.5: PCI INT B disabled
[ 1231.148557] ATI IXP AC97 controller 0000:00:14.5: power state changed by ACPI to D0
[ 1231.148732] pata_atiixp 0000:00:14.1: PCI INT A disabled
[ 1231.148828] ehci_hcd 0000:00:13.2: PCI INT A disabled
[ 1231.148883] ohci_hcd 0000:00:13.1: PCI INT A disabled
[ 1231.148938] ohci_hcd 0000:00:13.0: PCI INT A disabled
[ 1231.149015] PM: suspend devices took 2.764 seconds
[ 1231.149398] ACPI: Preparing to enter system sleep state S3
[ 1231.914115] Disabling non-boot CPUs ...
[ 1231.914115] Back to C!
[ 1231.918412] ACPI: Waking up from system sleep state S3
[ 1231.958925] ACPI: EC: non-query interrupt received, switching to interrupt mode
[ 1231.960118] pci 0000:00:00.0: restoring config space at offset 0x...

Revision history for this message
Jeremy Wilkins (wjeremy) wrote :

Well, more on this bug. I had an error in my options file since I copied the line above without proofreading it first. It should start with the word options emphasis on plurality. I should have noticed this when looking in the file earlier, but I didn't. Still however after changing that option it doesn't seem to make any difference. My touchpad still fails to resume, only now there is no reset warning on start.

Revision history for this message
Jeremy Wilkins (wjeremy) wrote :

Attached is the full log from dmesg.

Changed in somerville:
status: New → Fix Released
no longer affects: dell
Revision history for this message
Timothy R. Chavez (timrchavez) wrote :

The bug task for the somerville project has been removed by an automated script. This bug has been cloned on that project and is available here: https://bugs.launchpad.net/bugs/1305690

no longer affects: somerville
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.