Touchpad not working (4.3 -> 4.4 regression)

Bug #1540511 reported by David Henningsson
18
This bug affects 2 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Fix Released
Medium
Unassigned
Xenial
Fix Released
Medium
Unassigned

Bug Description

When booting the latest xenial kernel (4.4.0-2.16), my touchpad is not working. When booting 4.3 kernels, the touchpad is works.

Expected: When I move a finger touching the touchpad, an arrow should move accordingly on the screen.
What happens instead: nothing.

I've tried an upstream 4.4 kernel; problem is present there as well.

I've booted with pci=noaer due to another bug that would otherwise spam dmesg. Removing it does not fix the problem.

ProblemType: Bug
DistroRelease: Ubuntu 16.04
Package: linux-image-4.4.0-2-generic 4.4.0-2.16
ProcVersionSignature: Ubuntu 4.4.0-2.16-generic 4.4.0
Uname: Linux 4.4.0-2-generic x86_64
ApportVersion: 2.19.4-0ubuntu1
Architecture: amd64
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC0: david 1759 F.... pulseaudio
CurrentDesktop: Unity
Date: Mon Feb 1 18:49:25 2016
EcryptfsInUse: Yes
HibernationDevice: RESUME=UUID=fe528b90-b4eb-4a20-82bd-6a03b79cfb14
InstallationDate: Installed on 2015-11-28 (65 days ago)
InstallationMedia: Ubuntu 16.04 LTS "Xenial Xerus" - Alpha amd64 (20151127)
MachineType: Dell Inc. Inspiron 13-7359
ProcFB: 0 inteldrmfb
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.4.0-2-generic.efi.signed root=UUID=94d54f88-5d18-4e2b-960a-8717d6e618bb ro noprompt persistent pci=noaer quiet splash vt.handoff=7
RelatedPackageVersions:
 linux-restricted-modules-4.4.0-2-generic N/A
 linux-backports-modules-4.4.0-2-generic N/A
 linux-firmware 1.155
SourcePackage: linux
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 09/08/2015
dmi.bios.vendor: Dell Inc.
dmi.bios.version: 01.02.00
dmi.board.name: 0NT3WX
dmi.board.vendor: Dell Inc.
dmi.board.version: A00
dmi.chassis.type: 9
dmi.chassis.vendor: Dell Inc.
dmi.modalias: dmi:bvnDellInc.:bvr01.02.00:bd09/08/2015:svnDellInc.:pnInspiron13-7359:pvr:rvnDellInc.:rn0NT3WX:rvrA00:cvnDellInc.:ct9:cvr:
dmi.product.name: Inspiron 13-7359
dmi.sys.vendor: Dell Inc.

Revision history for this message
David Henningsson (diwic) wrote :
description: updated
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
Revision history for this message
Joseph Salisbury (jsalisbury) wrote :

Would it be possible for you to test the latest upstream kernel? Refer to https://wiki.ubuntu.com/KernelMainlineBuilds . Please test the latest v4.5 kernel[0].

If this bug is fixed in the mainline kernel, please add the following tag 'kernel-fixed-upstream'.

If the mainline kernel does not fix this bug, please add the tag: 'kernel-bug-exists-upstream'.

Once testing of the upstream kernel is complete, please mark this bug as "Confirmed".

Thanks in advance.

[0] http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.5-rc2-wily/

Changed in linux (Ubuntu):
importance: Undecided → Medium
tags: added: kernel-da-key
penalvch (penalvch)
tags: added: regression-release
Changed in linux (Ubuntu):
status: Confirmed → Incomplete
Revision history for this message
David Henningsson (diwic) wrote :

Tested kernels so far:

4.3.0-7 ubuntu - good (touchpad working)
4.5.0-040500rc3 - good (touchpad working)
4.4.0-4 ubuntu - bad (touchpad not working)
4.4.1-040401 - bad (touchpad not working)
4.5.0-040500rc1 - good (touchpad working)

Looks like a temporary regression in 4.4 - maybe we can bisect between 4.4 and 4.5rc1 to see if it's something we can backport?

tags: added: kernel-fixed-upstream
Changed in linux (Ubuntu):
status: Incomplete → Confirmed
Revision history for this message
David Henningsson (diwic) wrote :

I'm working on it, here's the result so far:

$ git bisect log
git bisect start
# new: [92e963f50fc74041b5e9e744c330dca48e04f08d] Linux 4.5-rc1
git bisect new 92e963f50fc74041b5e9e744c330dca48e04f08d
# old: [afd2ff9b7e1b367172f18ba7f693dfb62bdcb2dc] Linux 4.4
git bisect old afd2ff9b7e1b367172f18ba7f693dfb62bdcb2dc
# old: [1289ace5b4f70f1e68ce785735b82c7e483de863] Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
git bisect old 1289ace5b4f70f1e68ce785735b82c7e483de863
# new: [984065055e6e39f8dd812529e11922374bd39352] Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux
git bisect new 984065055e6e39f8dd812529e11922374bd39352

Revision history for this message
penalvch (penalvch) wrote :

David Henningsson, when the reverse bisect commit fix is identified, please mark this Confirmed.

tags: added: needs-reverse-bisect
Changed in linux (Ubuntu):
status: Confirmed → Incomplete
Revision history for this message
David Henningsson (diwic) wrote :

A few more commits...

# new: [92e963f50fc74041b5e9e744c330dca48e04f08d] Linux 4.5-rc1
git bisect new 92e963f50fc74041b5e9e744c330dca48e04f08d
# old: [afd2ff9b7e1b367172f18ba7f693dfb62bdcb2dc] Linux 4.4
git bisect old afd2ff9b7e1b367172f18ba7f693dfb62bdcb2dc
# old: [1289ace5b4f70f1e68ce785735b82c7e483de863] Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
git bisect old 1289ace5b4f70f1e68ce785735b82c7e483de863
# new: [984065055e6e39f8dd812529e11922374bd39352] Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux
git bisect new 984065055e6e39f8dd812529e11922374bd39352
# new: [a016af2e70bfca23f2f5de7d8708157b86ea374d] Merge tag 'sound-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
git bisect new a016af2e70bfca23f2f5de7d8708157b86ea374d
# new: [d45187aaf0e256d23da2f7694a7826524499aa31] Merge branch 'dmi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging
git bisect new d45187aaf0e256d23da2f7694a7826524499aa31
# new: [c2848f2eef4dd08b0fd2a8eba1694fd8e77ddb67] Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
git bisect new c2848f2eef4dd08b0fd2a8eba1694fd8e77ddb67
# old: [5339f9d4c2ceccab00b28d65bd5c2b2cd6a3de05] Merge tag 'devicetree-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
git bisect old 5339f9d4c2ceccab00b28d65bd5c2b2cd6a3de05

Revision history for this message
David Henningsson (diwic) wrote :

it bisect start
# new: [92e963f50fc74041b5e9e744c330dca48e04f08d] Linux 4.5-rc1
git bisect new 92e963f50fc74041b5e9e744c330dca48e04f08d
# old: [afd2ff9b7e1b367172f18ba7f693dfb62bdcb2dc] Linux 4.4
git bisect old afd2ff9b7e1b367172f18ba7f693dfb62bdcb2dc
# old: [1289ace5b4f70f1e68ce785735b82c7e483de863] Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
git bisect old 1289ace5b4f70f1e68ce785735b82c7e483de863
# new: [984065055e6e39f8dd812529e11922374bd39352] Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux
git bisect new 984065055e6e39f8dd812529e11922374bd39352
# new: [a016af2e70bfca23f2f5de7d8708157b86ea374d] Merge tag 'sound-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
git bisect new a016af2e70bfca23f2f5de7d8708157b86ea374d
# new: [d45187aaf0e256d23da2f7694a7826524499aa31] Merge branch 'dmi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging
git bisect new d45187aaf0e256d23da2f7694a7826524499aa31
# new: [c2848f2eef4dd08b0fd2a8eba1694fd8e77ddb67] Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
git bisect new c2848f2eef4dd08b0fd2a8eba1694fd8e77ddb67
# old: [5339f9d4c2ceccab00b28d65bd5c2b2cd6a3de05] Merge tag 'devicetree-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
git bisect old 5339f9d4c2ceccab00b28d65bd5c2b2cd6a3de05
# old: [63f729cb4aa9a224cfd6bb35eab6b4556c29115d] Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
git bisect old 63f729cb4aa9a224cfd6bb35eab6b4556c29115d
# old: [210c7c1750fdf769647d1d526c9ea34c412c9eee] NFS: Use wait_on_atomic_t() for unlock after readahead
git bisect old 210c7c1750fdf769647d1d526c9ea34c412c9eee

Looked through remaining commits, I'm going to try this one next, looks promising:

commit 73e7d63efb4d774883a338997943bfa59e127085
Author: Benjamin Tissoires <email address hidden>
Date: Tue Dec 1 12:41:38 2015 +0100

    HID: multitouch: fix input mode switching on some Elan panels

Revision history for this message
David Henningsson (diwic) wrote :

Ok, I've now built and tested a kernel with 4.4 + the below commit and can confirm that this commit fixes the touchpad issue for me.

commit 8a7fa6187191f005d4b6d29913de6e128cc778e2
Author: Benjamin Tissoires <email address hidden>
Date: Tue Dec 1 12:41:38 2015 +0100

    HID: multitouch: fix input mode switching on some Elan panels

Revision history for this message
David Henningsson (diwic) wrote :
Changed in linux (Ubuntu):
status: Incomplete → Confirmed
Revision history for this message
Joseph Salisbury (jsalisbury) wrote :

That commit was added in 4.5-rc1 and it was not cc'd to stable. We should request this commit in Xenial on the kernel team mailing list. Do you want to do that David, or do you want me to?

penalvch (penalvch)
tags: added: cherry-pick reverse-bisect-done
removed: needs-reverse-bisect
Revision history for this message
David Henningsson (diwic) wrote : [PATCH] [xenial] (upstream) HID: multitouch: fix input mode switching on some Elan panels
Download full text (4.5 KiB)

From: Benjamin Tissoires <email address hidden>

as reported by https://bugzilla.kernel.org/show_bug.cgi?id=108481

This bug reports mentions 6d4f5440 ("HID: multitouch: Fetch feature
reports on demand for Win8 devices") as the origin of the problem but this
commit actually masked 2 firmware bugs that are annihilating each other:

The report descriptor declares two features in reports 3 and 5:

0x05, 0x0d, // Usage Page (Digitizers) 318
0x09, 0x0e, // Usage (Device Configuration) 320
0xa1, 0x01, // Collection (Application) 322
0x85, 0x03, // Report ID (3) 324
0x09, 0x22, // Usage (Finger) 326
0xa1, 0x00, // Collection (Physical) 328
0x09, 0x52, // Usage (Inputmode) 330
0x15, 0x00, // Logical Minimum (0) 332
0x25, 0x0a, // Logical Maximum (10) 334
0x75, 0x08, // Report Size (8) 336
0x95, 0x02, // Report Count (2) 338
0xb1, 0x02, // Feature (Data,Var,Abs) 340
0xc0, // End Collection 342
0x09, 0x22, // Usage (Finger) 343
0xa1, 0x00, // Collection (Physical) 345
0x85, 0x05, // Report ID (5) 347
0x09, 0x57, // Usage (Surface Switch) 349
0x09, 0x58, // Usage (Button Switch) 351
0x15, 0x00, // Logical Minimum (0) 353
0x75, 0x01, // Report Size (1) 355
0x95, 0x02, // Report Count (2) 357
0x25, 0x03, // Logical Maximum (3) 359
0xb1, 0x02, // Feature (Data,Var,Abs) 361
0x95, 0x0e, // Report Count (14) 363
0xb1, 0x03, // Feature (Cnst,Var,Abs) 365
0xc0, // End Collection 367

The report ID 3 presents 2 input mode features, while only the first one
is handled by the device. Given that we did not checked if one was
previously assigned, we were dealing with the ignored featured and we
should never have been able to switch this panel into the multitouch mode.

However, the firmware presents an other bugs which allowed 6d4f5440
to counteract the faulty report descriptor. When we request the values
of the feature 5, the firmware answers "03 03 00". The fields are correct
but the report id is wrong. Before 6d4f5440, we retrieved all the features
and injected them in the system. So when we called report 5, we injected
in the system the report 3 with the values "03 00".
Setting the second input mode to 03 in this report changed it to "03 03"
and the touchpad switched to the mt mode. We could have set anything
in the second field because...

Read more...

Revision history for this message
Tim Gardner (timg-tpi) wrote :

Fix released in linux stable v4.4.2

Changed in linux (Ubuntu Xenial):
status: Confirmed → Fix Released
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.