Touchscreen only works after suspend/resume on Lenovo ideapad P400 Touch

Bug #1180881 reported by Jared Wisham
66
This bug affects 13 people
Affects Status Importance Assigned to Milestone
HWE Next
Fix Released
Undecided
AceLan Kao
Saucy
Fix Released
Undecided
AceLan Kao
Trusty
Fix Released
Undecided
AceLan Kao
linux (Ubuntu)
Fix Released
Undecided
AceLan Kao
Declined for Quantal by Brad Figg
Nominated for Raring by AceLan Kao
xserver-xorg-input-evdev (Ubuntu)
Invalid
Undecided
Unassigned
Declined for Quantal by Brad Figg
Nominated for Raring by AceLan Kao

Bug Description

Touchscreen is unresponsive on fresh 13.04 Ubuntu installation. All other devices work.

Touchscreen shows as working and 'states' are correct for any xinput --list off of a cold boot.

However, if I (at any point) "Suspend" the system, then awaken it, the Touchscreen immediately functions properly.

Revision history for this message
Jared Wisham (djgravity) wrote :

http://askubuntu.com/questions/291571/touchscreen-recognized-but-not-working-in-13-04

Two users with similar 'inconsistent' behavior until we discovered that closing the lid (therefore, for that user, going into 'Suspend' mode) or a manual 'Suspend,' was resolving the issue.

Revision history for this message
Jared Wisham (djgravity) wrote :

It may also be related (of note possibly) that the setting for the touchPAD disabling feature appears to re-enable itself when coming out of suspend/sleep mode also. Not sure if the devices are being reactivated in an awakening method in some way, therefore turning the touchscreen back on.

If you need any additional diagnostics from me, let me know, I'm willing to help out.

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in xserver-xorg-input-evdev (Ubuntu):
status: New → Confirmed
Revision history for this message
Igor Moura (igorlunamoura) wrote :

Same problem with my Lenovo Ideapad P400 Touch. Could this have something to do with KVM? Ubuntu always report a error in KVM when loading.

The "closing the lid"/suspending trick also worked with me.

Since P400 is a version made from Lenovo to BestBuy from Z400, it is probably that users of Ideapad Z400 Touch are also experiencing this bug.

Is anyone else having problema with the touchpad or my fingers are the problem?

Revision history for this message
gravity (gravity) wrote :

[ 25.722697] hid-multitouch 0003:06CB:1D10.0001: usb_submit_urb(ctrl) failed: -1
[ 25.722747] hid-multitouch 0003:06CB:1D10.0001: timeout initializing reports
[ 25.722816] input: SYNAPTICS Synaptics Large Touch Screen as /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/input/input12
[ 25.723198] hid-multitouch 0003:06CB:1D10.0001: input,hiddev0,hidraw1: USB HID v1.11 Mouse [SYNAPTICS Synaptics Large Touch Screen] on usb-0000:00:14.0-2/input0

Revision history for this message
Brian Bradley (brian-t-bradley98) wrote :

Doesn't seem to have anything to do with KVM. After turning on virtualization in BIOS to get kvm working the problem persists. Also updated to the latest kernel 3.9.7 and the problem persists. I don't consistently get functionality after suspending, and sometimes the touchscreen works immediately. Seems completely random.

Revision history for this message
Cody Swanson (codyswanson4) wrote :

Problem noticed in Lenovo Z400 touch. If you need any testing or diagnostic work ask me.

Revision history for this message
unix25 (unix25) wrote :

Same problem on an Asus X202E. When starting up off a cold boot, xinput --list won't show the touchscreen device. However, after getting out of suspend mode, the touchscreen appears according to xinput --list.
When I take a look at the log files, I get pretty much the same lines as gravity.
It is also interesting to notice that without putting the laptop in suspend mode after startup and resuming it, compiz and therefore unity crashes very often. Resuming solves the crashes and then the computer works great again.

Revision history for this message
AceLan Kao (acelankao) wrote :

click top-right systray to open any app's indicator, close lid to enter suspend, re-open it, then the touch screen works.
I use this way to enable the touch screen, but have no clue why it behave like that.

Revision history for this message
Ryan Turner (ryan-e-t) wrote :

New Z400 laptop here with the i5 2.6ghz processor, same issue ubuntu 13.04 clean install.

Revision history for this message
Ryan Turner (ryan-e-t) wrote :

Sep 4 20:18:21 ryan-Lenovo-IdeaPad-Z400-Touch kernel: [ 22.961633] hid-multitouch 0003:06CB:1D10.0001: usb_submit_urb(ctrl) failed: -1
Sep 4 20:18:21 ryan-Lenovo-IdeaPad-Z400-Touch kernel: [ 22.961647] hid-multitouch 0003:06CB:1D10.0001: timeout initializing reports
Sep 4 20:18:21 ryan-Lenovo-IdeaPad-Z400-Touch kernel: [ 22.961724] input: SYNAPTICS Synaptics Large Touch Screen as /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/input/input11
Sep 4 20:18:21 ryan-Lenovo-IdeaPad-Z400-Touch kernel: [ 22.962661] hid-multitouch 0003:06CB:1D10.0001: input,hiddev0,hidraw0: USB HID v1.11 Mouse [SYNAPTICS Synaptics Large Touch Screen] on usb-0000:00:14.0-2/input0

AceLan Kao (acelankao)
tags: added: blocks-hwcert-enablement
Revision history for this message
AceLan Kao (acelankao) wrote :

More finding, if suspend/resume doesn't work for you, try the following steps
   cd /sys/devices/pci0000:00
   find -name control | xargs -I '{}' sudo sh -c "echo on > '{}'"
   sudo pm-suspend
It will turn on the power for all devices, more precisely you can just turn on the usb host chip's power
   cd /sys/devices/pci0000:00/0000:00:14.0
   find -name control | xargs -I '{}' sudo sh -c "echo on > '{}'"
   sudo pm-suspend

It works for me every time, so it's more like a power management issue from Synaptics touchscreen firmware.

Revision history for this message
AceLan Kao (acelankao) wrote :

It's confirmed that it's a Synaptics firmware bug, and the new firmware can fix it.
It works for my device, the usb id is 06CB:0AF8
I'm not sure if it'll work or damage other devices, so use it at your own risk.

Revision history for this message
AceLan Kao (acelankao) wrote :

The above test result is wrong, the touchscreen function is not always working.

Revision history for this message
AceLan Kao (acelankao) wrote :

add the following lines in /etc/rc.local could wake up the touch screen, it works every time after booting up.
Or, you can run it manually to check if the commands work.

sudo rmmod hid_multitouch ; sudo modprobe hid-multitouch ; find /sys/bus/usb/devices/2-3 -name control | xargs -I '{}' sudo sh -c "echo on > '{}'"
sudo rmmod hid_multitouch ; sudo modprobe hid-multitouch ; find /sys/bus/usb/devices/2-3 -name control | xargs -I '{}' sudo sh -c "echo on > '{}'"
sudo rmmod hid_multitouch ; sudo modprobe hid-multitouch ; find /sys/bus/usb/devices/2-3 -name control | xargs -I '{}' sudo sh -c "echo on > '{}'"

My touchscreen is linked to /sys/bus/usb/devices/2-3, check the idProduct and idVendor in that directory to make sure which directory your touchscreen is using.

AceLan Kao (acelankao)
Changed in xserver-xorg-input-evdev (Ubuntu):
status: Confirmed → In Progress
assignee: nobody → AceLan Kao (acelankao)
Revision history for this message
AceLan Kao (acelankao) wrote :

Using wireshark to monitor the usb traffic, we'll find the touchscreen becomes abnormal after systems sends the IDLE command to it.
But the touchscreen could revive after sending some other commands, such as GET_DESCRIPTOR.

I'll build a test driver soon, but I need to build a list for the affected usb id.
On this bug, there are 2 IDs
   06cb:1d10
and mine is
   06cb:0af8

Please reply if your borken touchscreen ID is not listed above.

Revision history for this message
unix25 (unix25) wrote :

My touch screen ID isn't listed above. Here's the line in the kernel log file :

[12420.825654] input: USBest Technology SiS HID Touch Controller as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3/1-1.3:1.0/input/input1150
[12420.825889] hid-multitouch 0003:0457:1013.0474: input,hiddev0,hidraw0: USB HID v1.00 Device [USBest Technology SiS HID Touch Controller] on usb-0000:00:1a.0-1.3/input0
[12420.827890] usb 1-1.3: USB disconnect, device number 27
[12421.155734] usb 1-1.3: new full-speed USB device number 28 using ehci-pci
[12421.332824] usb 1-1.3: not running at top speed; connect to a high speed hub
[12421.749363] usb 1-1.3: New USB device found, idVendor=0457, idProduct=1013
[12421.749375] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[12421.749381] usb 1-1.3: Product: SiS HID Touch Controller
[12421.749386] usb 1-1.3: Manufacturer: USBest Technology
[12431.828467] hid-multitouch 0003:0457:1013.0475: usb_submit_urb(ctrl) failed: -1
[12431.828507] hid-multitouch 0003:0457:1013.0475: timeout initializing reports

Hope this helps

Revision history for this message
AceLan Kao (acelankao) wrote :

Hi unix25, thanks a lot.
But, looks like your touchscreen chip is not Synaptics, I don't know if the solution apply to SiS' chip.

I got a new way to test.
   # cat /etc/modprobe.d/usbhid.conf
   options usbhid quirks=0x06cb:0x0af8:0x20000000
   # sudo update-initramfs -u
   # sudo reboot

Remember to correct the id,
  ex. options usbhid quirks=0x06cb:0x1d10:0x20000000
  or options usbhid quirks=0x0457:0x1013:0x20000000

The quirk means do no send the init commands which may not supported by Synaptics,
#define HID_QUIRK_NO_INIT_REPORTS 0x20000000

I need your ack to include the usb id into the quirk, thanks.

Revision history for this message
unix25 (unix25) wrote :

The fix you provided works perfectly with my touchscreen indeed !

Revision history for this message
AceLan Kao (acelankao) wrote :

unix25,
Good to know that.
I'll build a patch for your device, so that linux kernel can support the SiS touchscreen.

Revision history for this message
AceLan Kao (acelankao) wrote :
Revision history for this message
AceLan Kao (acelankao) wrote :

Those 2 patches had submitted

Changed in xserver-xorg-input-evdev (Ubuntu):
status: In Progress → Fix Committed
Revision history for this message
Ubuntu Foundations Team Bug Bot (crichton) wrote :

The attachment "0001-HID-usbhid-quirk-for-Synaptics-Large-Touchccreen.patch" seems to be a patch. If it isn't, please remove the "patch" flag from the attachment, remove the "patch" tag, and if you are a member of the ~ubuntu-reviewers, unsubscribe the team.

[This is an automated message performed by a Launchpad user owned by ~brian-murray, for any issues please contact him.]

tags: added: patch
Changed in hwe-next:
assignee: nobody → AceLan Kao (acelankao)
Changed in hwe-next:
status: New → Confirmed
Changed in linux (Ubuntu):
status: New → Confirmed
assignee: nobody → AceLan Kao (acelankao)
Changed in xserver-xorg-input-evdev (Ubuntu):
status: Fix Committed → Invalid
assignee: AceLan Kao (acelankao) → nobody
Revision history for this message
Anthony Wong (anthonywong) wrote :
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (3.7 KiB)

This bug was fixed in the package linux - 3.12.0-1.3

---------------
linux (3.12.0-1.3) trusty; urgency=low

  [ Andy Whitcroft ]

  * [Config] arm64 -- add arch to the configuration handlers
  * [Config] arm64 -- add generic flavour
  * [Config] arm64 -- default config
  * [Config] arm64 -- fix up various FTBFS config options
  * SAUCE: arm64: export __copy_in_user to modules
  * [Config] arm64 -- disable ABI/module checks
  * [Config] arm64 -- enforcer -- add arm64 to the enforcer
  * [Config] arm64 -- enable udebs for arm64

  [ Colin Watson ]

  * [Config] Clean up various udeb Provides

  [ Paolo Pisati ]

  * [Config] AHCI_IMX=y
  * [Config] build imx*-wandboard dtbs

  [ Serge Hallyn ]

  * SAUCE: device_cgroup: remove can_attach

  [ Tim Gardner ]

  * rebase to v3.12-rc7
  * SAUCE: KVM: Fix modprobe failure for kvm_intel/kvm_amd
  * Release tracker
    - LP: #1245932

  [ Upstream Kernel Changes ]

  * rebase to v3.12-rc7
    - LP: #1180881
    - LP: #1180881
    - LP: #1217957

linux (3.12.0-0.2) trusty; urgency=low

  [ Andy Whitcroft ]

  * Revert "SAUCE: (no-up) scsi: hyper-v storage -- mark as preferring READ
    CAPACITY (16) at SPC-2"
  * Revert "SAUCE: (no-up) scsi: hyper-v storage -- mark as VPD capable at
    SPC-2"
  * Revert "SAUCE: (no-up) scsi: add scsi device flag to request READ
    CAPACITY (16) be preferred"
  * Revert "SAUCE: (no-up) scsi: add scsi device flag to request VPD pages
    be used at SPC-2"
  * Revert "overlayfs: Update to v19"
  * Revert "ubuntu: overlayfs v18 -- -- overlayfs: implement show_options"
  * Revert "ubuntu: overlayfs v18 -- -- overlayfs: add statfs support"
  * Revert "ubuntu: overlayfs v18 -- -- overlay filesystem"
  * Revert "ubuntu: overlayfs v18 -- -- vfs: introduce
    clone_private_mount()"
  * Revert "ubuntu: overlayfs v18 -- -- vfs: export do_splice_direct() to
    modules"
  * Revert "ubuntu: overlayfs v18 -- -- overlay: overlay filesystem
    documentation"
  * ubuntu: overlayfs v20 -- overlayfs: add statfs support
  * [Config] fix linux-libc-dev generation for arm64
  * [Config] fix linux-libc-dev generation for x32
  * [Config] add linux-libc-dev generation for ppc64el

  [ Erez Zadok ]

  * ubuntu: overlayfs v20 -- overlayfs: implement show_options

  [ Miklos Szeredi ]

  * ubuntu: overlayfs v20 -- vfs: add i_op->dentry_open()
  * ubuntu: overlayfs v20 -- vfs: export do_splice_direct() to modules
  * ubuntu: overlayfs v20 -- vfs: export __inode_permission() to modules
  * ubuntu: overlayfs v20 -- vfs: introduce clone_private_mount()
  * ubuntu: overlayfs v20 -- overlay filesystem
  * ubuntu: overlayfs v20 -- fs: limit filesystem stacking depth

  [ Neil Brown ]

  * ubuntu: overlayfs v20 -- overlay: overlay filesystem documentation

  [ Paolo Pisati ]

  * [Config] arm: VIRTIO_[BLK|NET|MMIO]=y

  [ Seth Forshee ]

  * SAUCE: (no-up) ACPI: Disable Windows 8 compatibility for some Lenovo
    ThinkPads
    - LP: #1183856

  [ Tim Gardner ]

  * [Config] CONFIG_CRYPTO_CRCT10DIF=y, CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m
  * rebase to v3.12-rc2
  * updateconfigs
  * [Config] disable CONFIG_FB_VESA enforcer check
  * [Config] Disable lttng for FTBS
  * rebase to v3.12-rc3
  * rebase to v...

Read more...

Changed in linux (Ubuntu):
status: Confirmed → Fix Released
Revision history for this message
Brad Figg (brad-figg) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-saucy' to 'verification-done-saucy'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-saucy
AceLan Kao (acelankao)
tags: added: verification-done-saucy
removed: verification-needed-saucy
Revision history for this message
Brad Figg (brad-figg) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-precise' to 'verification-done-precise'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-precise
Revision history for this message
Brad Figg (brad-figg) wrote :

The precise patch came in via a stable upstream commit.

tags: added: verification-done-precise
removed: verification-needed-precise
Revision history for this message
Jan Helbling (jan-helbling) wrote :

the same bug if i upgrade/fresh install utopic...

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.