Thinkpad USB keyboard mouse scroll not working on Wily (4.x) kernel

Bug #1508178 reported by Robert C Jennings
32
This bug affects 5 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Fix Released
Medium
Joseph Salisbury
Wily
Fix Released
Medium
Joseph Salisbury

Bug Description

When moving to Wily scrolling with the middle mouse button will stop functioning for External ThinkPad USB keyboards (mine is model KU-1255).

This is fixed upstream in drivers/hid/hid-lenovo.c (email https://lkml.org/lkml/2015/8/11/742):
* 7f65068 HID: lenovo: Use constants for axes names
* dbfebb4 HID: lenovo: Add missing return-value check
* 3cb5ff0 HID: lenovo: Hide middle-button press until release

This code is upstream as of v4.3-rc1.

ProblemType: Bug
DistroRelease: Ubuntu 15.10
Package: linux-image-4.2.0-16-generic 4.2.0-16.19
ProcVersionSignature: Ubuntu 4.2.0-16.19-generic 4.2.3
Uname: Linux 4.2.0-16-generic x86_64
ApportVersion: 2.19.1-0ubuntu3
Architecture: amd64
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC2: rcj 4299 F.... pulseaudio
 /dev/snd/controlC1: rcj 4299 F.... pulseaudio
 /dev/snd/controlC0: rcj 4299 F.... pulseaudio
CurrentDesktop: Unity
Date: Tue Oct 20 14:28:20 2015
HibernationDevice: RESUME=UUID=0eecfe9d-024b-4d87-a124-b5d4d0c9fe0d
InstallationDate: Installed on 2013-12-27 (662 days ago)
InstallationMedia: Ubuntu 13.10 "Saucy Salamander" - Release amd64 (20131016.1)
MachineType: LENOVO 2306CTO
ProcFB: 0 inteldrmfb
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.2.0-16-generic.efi.signed root=UUID=8777393a-1966-4ecd-aedc-bef8cef70adb ro quiet splash transparent_hugepage=always vt.handoff=7
RelatedPackageVersions:
 linux-restricted-modules-4.2.0-16-generic N/A
 linux-backports-modules-4.2.0-16-generic N/A
 linux-firmware 1.149
SourcePackage: linux
UpgradeStatus: Upgraded to wily on 2015-10-20 (0 days ago)
dmi.bios.date: 10/25/2013
dmi.bios.vendor: LENOVO
dmi.bios.version: G2ET97WW (2.57 )
dmi.board.asset.tag: Not Available
dmi.board.name: 2306CTO
dmi.board.vendor: LENOVO
dmi.board.version: Not Defined
dmi.chassis.asset.tag: No Asset Information
dmi.chassis.type: 10
dmi.chassis.vendor: LENOVO
dmi.chassis.version: Not Available
dmi.modalias: dmi:bvnLENOVO:bvrG2ET97WW(2.57):bd10/25/2013:svnLENOVO:pn2306CTO:pvrThinkPadX230:rvnLENOVO:rn2306CTO:rvrNotDefined:cvnLENOVO:ct10:cvrNotAvailable:
dmi.product.name: 2306CTO
dmi.product.version: ThinkPad X230
dmi.sys.vendor: LENOVO

Revision history for this message
Robert C Jennings (rcj) wrote :
Revision history for this message
Robert C Jennings (rcj) wrote :

Attaching my output from:
$ xinput list
$ xinput list-props "TPPS/2 IBM TrackPoint"

Revision history for this message
Robert C Jennings (rcj) wrote :
Revision history for this message
Robert C Jennings (rcj) wrote :
Revision history for this message
Robert C Jennings (rcj) wrote :
Revision history for this message
Robert C Jennings (rcj) wrote :

Attached 3 part patch series against Ubuntu-4.2.0-16.19.

Revision history for this message
Robert C Jennings (rcj) wrote :

Here is the original patch set description from Jamie Lentin:
 A collection of unrelated patches to improve support for the Thinkpad
 compact keyboards. The first 2 are just cleanup patches.

 The final patch alters the behaviour of the middle button so userspace
 either gets wheel events or a button click, not both. This stops
 browsers opening a link in a new tab as well as scrolling, for example.

 This means you can no longer long-middle-click, but I don't think this
 is likely to upset users as much as the current behaviour.

Revision history for this message
Brad Figg (brad-figg) wrote : Status changed to Confirmed

This change was made by a bot.

Changed in linux (Ubuntu):
status: New → Confirmed
tags: added: patch
Revision history for this message
Robert C Jennings (rcj) wrote :

I have compiled a kernel with the above 3 patches (per https://help.ubuntu.com/community/Kernel/Compile) and tested locally with success. My keyboard is known as the "ThinkPad Compact USB Keyboard with TrackPoint (cptkbd)" in the driver which is usb id 0x6047.

The patch will also affect the "ThinkPad Compact Bluetooth Keyboard with TrackPoint (cptkbd)" usb id 0x6048.

Changed in linux (Ubuntu):
importance: Undecided → Medium
Changed in linux (Ubuntu Wily):
assignee: nobody → Joseph Salisbury (jsalisbury)
status: Confirmed → In Progress
Robert C Jennings (rcj)
tags: added: patch-accepted-upstream
removed: patch
tags: added: bisect-done
Revision history for this message
Joseph Salisbury (jsalisbury) wrote :

I built a test kernel with the three commits mentioned in the bug description. Can you test this kernel and see if it resolves this bug? The test kernel can be downloaded from:

http://kernel.ubuntu.com/~jsalisbury/lp1508178/

Revision history for this message
Robert C Jennings (rcj) wrote :

Joseph, I installed your test kernel and it works for me.

Brad Figg (brad-figg)
Changed in linux (Ubuntu Wily):
status: In Progress → Fix Committed
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-wily' to 'verification-done-wily'.

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-wily
Revision history for this message
Robert C Jennings (rcj) wrote :

As much as I'd like this to be fixed, it is not. During verification I found that scrolling and middle click worked but after a suspend/resume cycle scrolling stopped. I had to disconnect the USB keyboard and reconnect it to get scrolling working again. Marking as verification failed.

tags: added: verification-failed-wily
removed: verification-needed-wily
Revision history for this message
Robert C Jennings (rcj) wrote :

I marked this bug as verification failed because scrolling, while working after boot, breaks after suspend/resume. Do you want to ship the current fix and address suspend/resume separately? This should alleviate a lot of pain for users (and users of the Bluetooth version won't see the suspend/resume problem because it has to reconnect).

The workaround with the patch applied it to unplug the cable from the keyboard and plug it back in again. Certainly better than no scroll at all for right now.

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

This bug was fixed in the package linux - 4.2.0-17.21

---------------
linux (4.2.0-17.21) wily; urgency=low

  [ Brad Figg ]

  * Release Tracking Bug
    - LP: #1509480

  [ Joseph Salisbury ]

  * SAUCE: storvsc: use small sg_tablesize on x86
    - LP: #1495983

linux (4.2.0-17.20) wily; urgency=low

  [ Brad Figg ]

  * Release Tracking Bug
    - LP: #1508993

  [ Andy Whitcroft ]

  * [Debian] rebuild should only trigger for non-linux packages
    - LP: #1498862
  * [Packaging] Provides: virtualbox-guest-modules when appropriate
    - LP: #1434579, #1507588

  [ Matthew R. Ochs ]

  * SAUCE: (noup) cxlflash: Fix to avoid lock instrumentation rejection
    - LP: #1508541
  * SAUCE: (noup) cxlflash: Fix to avoid bypassing context cleanup
    - LP: #1508541

  [ Upstream Kernel Changes ]

  * HID: lenovo: Use constants for axes names
    - LP: #1508178
  * HID: lenovo: Add missing return-value check
    - LP: #1508178
  * HID: lenovo: Hide middle-button press until release
    - LP: #1508178

 -- Brad Figg <email address hidden> Fri, 23 Oct 2015 11:58:01 -0700

Changed in linux (Ubuntu Wily):
status: Fix Committed → Fix Released
Revision history for this message
Alex N. (a-nox) wrote :

I can confirm this does not work after suspend/resume, only replugin the keyboard fixes it.

Revision history for this message
Robert C Jennings (rcj) wrote :

a-nox, yes this set of patches did not resolve the suspend/resume bit. The upstream developer is working on that part, see https://github.com/lentinj/tp-compact-keyboard/issues/28. I am tracking that and when a fix is available I will ask that it be included.

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

This bug was fixed in the package linux - 4.2.0-17.21

---------------
linux (4.2.0-17.21) wily; urgency=low

  [ Brad Figg ]

  * Release Tracking Bug
    - LP: #1509480

  [ Joseph Salisbury ]

  * SAUCE: storvsc: use small sg_tablesize on x86
    - LP: #1495983

linux (4.2.0-17.20) wily; urgency=low

  [ Brad Figg ]

  * Release Tracking Bug
    - LP: #1508993

  [ Andy Whitcroft ]

  * [Debian] rebuild should only trigger for non-linux packages
    - LP: #1498862
  * [Packaging] Provides: virtualbox-guest-modules when appropriate
    - LP: #1434579, #1507588

  [ Matthew R. Ochs ]

  * SAUCE: (noup) cxlflash: Fix to avoid lock instrumentation rejection
    - LP: #1508541
  * SAUCE: (noup) cxlflash: Fix to avoid bypassing context cleanup
    - LP: #1508541

  [ Upstream Kernel Changes ]

  * HID: lenovo: Use constants for axes names
    - LP: #1508178
  * HID: lenovo: Add missing return-value check
    - LP: #1508178
  * HID: lenovo: Hide middle-button press until release
    - LP: #1508178

 -- Brad Figg <email address hidden> Fri, 23 Oct 2015 11:58:01 -0700

Changed in linux (Ubuntu):
status: Fix Committed → Fix Released
Revision history for this message
Alex N. (a-nox) wrote :

The suspend/resume issue is still present in Ubuntu 16.10 and Kernel 4.8.0. Is this issue tracked somewhere or is there any news about this?

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.