Faulty Elantech Trackpoint firmware unusable as it causes sudden cursor jump to an edge/corner on Lenovo Thinkpad X13, T14s, A475 --> Apply kernel patch to mitigate the FW bug

Bug #1936295 reported by GT
32
This bug affects 5 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Fix Released
Undecided
AaronMa
Impish
Fix Released
Medium
Unassigned
linux-oem-5.13 (Ubuntu)
Invalid
Undecided
Unassigned
Focal
Fix Released
Undecided
Unassigned
linux-oem-5.14 (Ubuntu)
Invalid
Undecided
Unassigned
Focal
Fix Released
Undecided
Unassigned

Bug Description

*Problem description:*
On Lenovo Thinkpad T14s, X13, A475 (and probably more models) the Elantech Trackpoint firmware is defective. The trackpoint cursor often suddenly jumps to an edge/corner, because the hardware/firmware sometimes reports wrong coordinates / loses sync. Currently, the Trackpoint is barely usable and it's impossible to productively work using it.

For a long while, Elantech has not yet put forward (nor confirmed) a firmware update. However, there is a Linux kernel patch mitigating the firmware bug. The kernel bugfix discards the wrongly reported packages by the Elantech hardware. This solves the problem for the user.

*Solution:* Please apply existing kernel patch here.
https://bugzilla.kernel.org/show_bug.cgi?id=209167 Bug entry in the Linux Kernel.org Bugzilla
https://bugzilla.kernel.org/attachment.cgi?id=295733&action=diff Diff of bugfix

*T14s and X13 are Ubuntu certified:*
The Lenovo Thinkpad T14s and X13 are Ubuntu certified, but apparently this hardware issue has slipped the Ubuntu certification process! https://ubuntu.com/certified/202006-27978 and https://ubuntu.com/certified/202006-27979

*Further information:*
https://forums.lenovo.com/t5/Fedora/T14s-AMD-Trackpoint-almost-unusable/m-p/5064952?page=1 Discussion on the bug in the Lenovo forum. E.g. see comment 18 by Lenovo employee MarkRHPearson

*My System:*
Lenovo Thinkpad T14s (AMD) 20ujs00k00
Ubuntu 21.04 and 20.04
see entries in kernel.org bugzilla for logs.

SRU justification:
==============
[Impact]
The trackpoint cursor often suddenly jumps to an edge/corner, because
the hardware/firmware sometimes reports wrong coordinates / loses sync.

[Fix]
Ignore the buggy data reported by Elan TP firmware, make the TP usable.

[Test]
Tested on ThinkPad AMD X13 and users confirm on other platforms.

[Where problems could occur]
It's limited to specific Elan device, it may break the Elan Trackpoint.

Jammy already got this commit in Ubuntu-5.15.0-12.12

Phoenix Huang (1):
  Input: elantench - fix misreporting trackpoint coordinates

 drivers/input/mouse/elantech.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

CVE References

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

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

Changed in linux (Ubuntu):
status: New → Confirmed
Revision history for this message
GT (gleppert) wrote :

There is a new comment in the Kernel bugtracking system that Elantech is going to upload the patch to the Linux kernel. Can anyone verify when this happens and pull the patch / backport it to the Ubuntu kernel?

https://bugzilla.kernel.org/show_bug.cgi?id=209167#c16

Revision history for this message
Alex Hung (alexhung) wrote :

Thanks for reporting this. The patch does not yet land in mainline kernel (5.14rc3), and the patch was submitted for review on July 29 (https://patchwork.kernel<email address hidden>/)

Once the patch lands in mainline it can be backport to Ubuntu kernels.

Revision history for this message
GT (gleppert) wrote :

Until now, unfortunately, there seems to be no progress with integrating the patch: https://patchwork.kernel.org/project/linux-input/list/?series=523049

However, the siduction kernel 5.14-rc7 (5.14~rc7-1~exp2) already has integrated the patch. Could Ubuntu do the same?

Is here anyone who could help accelerating the approval of the patch so that it could still make it into the 5.14 kernel. Thanks in advance!

Revision history for this message
Alex Hung (alexhung) wrote :

Linux kernel 5.14 was released and 5.15 merge window should be open soon followed by rc1. If we don't see the patch lands in mainline we can consider alternatives such as submit the SRU as a sauce patch instead.

Revision history for this message
Alex Hung (alexhung) wrote :

It seems the maintainer has concerns on the patch, and there is no reply from the developer at the moment: https://patchwork.kernel<email address hidden>/

Revision history for this message
Alberto Garcia (berto) wrote :

Hello the patch was merged in the kernel maintainer's branch yesterday:

https://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git/commit/?id=be896bd3b72b44126c55768f14c22a8729b0992e

I confirm that it works in Linux 5.14 and 5.15

Revision history for this message
GT (g.t.) wrote :

Is it possible to backport the patch to the Ubuntu 21.10 kernel (Linux 5.13)?

This would be great, since the sudden cursor jumps are just super annoying. Thanks.

Revision history for this message
Eduardo Rojas Rodríguez (edurojas) wrote :

I hope this gets backported to Ubuntu 21.10 if possible!
This has been a really annoying bug :(

Thanks!

Revision history for this message
Alberto Garcia (berto) wrote :

This fix has been included in several stable and longterm kernel releases, here's the list for reference:

- Linux 5.15.3, see here: https://cdn.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.15.3
- Linux 5.14.19, see here: https://cdn.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.14.19
- Linux 5.10.80, see here: https://cdn.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.10.80
- Linux 5.4.160, see here: https://cdn.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.4.160

It will also be available in Linux 5.16 when it's out (it's already included in 5.16-rc1).

Revision history for this message
Eduardo Rojas Rodríguez (edurojas) wrote :

that's good to read, I hope this attract the attention of the kernel team so they can backport to ubuntu, this is a really annoying bug.

Changed in linux (Ubuntu):
assignee: nobody → AaronMa (mapengyu)
Revision history for this message
AaronMa (mapengyu) wrote :

The fix is alreay in Jammy 5.15 kernel Ubuntu-5.15.0-12.12 via bug #1951822.

SRU for 5.13 impish and oem-focal kernel.

no longer affects: linux (Ubuntu Trusty)
no longer affects: linux (Ubuntu Focal)
no longer affects: linux (Ubuntu Jammy)
no longer affects: linux-oem-5.13 (Ubuntu Impish)
no longer affects: linux-oem-5.13 (Ubuntu Jammy)
no longer affects: linux-oem-5.14 (Ubuntu Impish)
no longer affects: linux-oem-5.14 (Ubuntu Jammy)
AaronMa (mapengyu)
description: updated
Revision history for this message
Launchpad Janitor (janitor) wrote :

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

Changed in linux (Ubuntu Impish):
status: New → Confirmed
Changed in linux-oem-5.13 (Ubuntu Focal):
status: New → Confirmed
Changed in linux-oem-5.13 (Ubuntu):
status: New → Confirmed
Changed in linux-oem-5.14 (Ubuntu Focal):
status: New → Confirmed
Changed in linux-oem-5.14 (Ubuntu):
status: New → Confirmed
Stefan Bader (smb)
Changed in linux (Ubuntu Impish):
importance: Undecided → Medium
Timo Aaltonen (tjaalton)
Changed in linux-oem-5.13 (Ubuntu Focal):
status: Confirmed → Fix Committed
Changed in linux-oem-5.14 (Ubuntu Focal):
status: Confirmed → Fix Committed
Changed in linux-oem-5.13 (Ubuntu):
status: Confirmed → Invalid
Changed in linux-oem-5.14 (Ubuntu):
status: Confirmed → Invalid
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote :

This bug is awaiting verification that the linux-oem-5.14/5.14.0-1009.9 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-focal' to 'verification-done-focal'. If the problem still exists, change the tag 'verification-needed-focal' to 'verification-failed-focal'.

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-focal
MP (meowmeowmeowmeow)
Changed in linux-oem-5.13 (Ubuntu Focal):
status: Fix Committed → In Progress
status: In Progress → Fix Committed
Revision history for this message
AaronMa (mapengyu) wrote :

Verified on Ubuntu-oem-5.14-5.14.0-1009.9.

tags: added: verification-done-focal
removed: verification-needed-focal
Revision history for this message
GT (g.t.) wrote :

Is this patch already included in the Ubuntu 21.10 (Impish Indri) kernel (in proposed packages) for testing?

I installed the proposed kernel (5.13.0-23-generic) in Impish yesterday and the bug still exists. I still get sudden cursor jumps.

If the patch is not yet in the Impish proposed kernel, when do you expect to have an Impish kernel update for testing? Thanks.

Revision history for this message
AaronMa (mapengyu) wrote :

@GT,
Not yet for impish, SRU is just sent, oem focal kernel just lucky for a respin;
Next release for impish proposed kernel is 10-Jan.

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

This bug was fixed in the package linux-oem-5.14 - 5.14.0-1010.10

---------------
linux-oem-5.14 (5.14.0-1010.10) focal; urgency=medium

  * focal/linux-oem-5.14: 5.14.0-1010.10 -proposed tracker (LP: #1953346)

  * alsa/sdw: add sdw audio machine driver for several ADL machines
    (LP: #1951563)
    - ASoC: Intel: sof_sdw: Add support for SKU 0AF3 product
    - ASoC: Intel: soc-acpi: add SKU 0AF3 SoundWire configuration
    - ASoC: Intel: sof_sdw: Add support for SKU 0B00 and 0B01 products
    - ASoC: Intel: sof_sdw: Add support for SKU 0B11 product
    - ASoC: Intel: sof_sdw: Add support for SKU 0B13 product
    - ASoC: Intel: soc-acpi: add SKU 0B13 SoundWire configuration
    - ASoC: Intel: sof_sdw: Add support for SKU 0B29 product
    - ASoC: Intel: soc-acpi: add SKU 0B29 SoundWire configuration
    - ASoC: Intel: sof_sdw: Add support for SKU 0B12 product
    - ASoC: intel: sof_sdw: return the original error number
    - ASoC: intel: sof_sdw: rename be_index/link_id to link_index
    - ASoC: intel: sof_sdw: Use a fixed DAI link id for AMP
    - ASoC: intel: sof_sdw: move DMIC link id overwrite to create_sdw_dailink
    - ASoC: intel: sof_sdw: remove SOF_RT715_DAI_ID_FIX quirk
    - ASoC: intel: sof_sdw: remove get_next_be_id
    - ASoC: intel: sof_sdw: add link adr order check
    - soundwire: bus: update Slave status in sdw_clear_slave_status

 -- Chia-Lin Kao (AceLan) <email address hidden> Mon, 06 Dec 2021 22:12:32 +0800

Changed in linux-oem-5.14 (Ubuntu Focal):
status: Fix Committed → Fix Released
Stefan Bader (smb)
Changed in linux (Ubuntu Impish):
status: Confirmed → Fix Committed
AaronMa (mapengyu)
Changed in linux (Ubuntu):
status: Confirmed → Fix Released
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote :

This bug is awaiting verification that the linux/5.13.0-24.24 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-impish' to 'verification-done-impish'. If the problem still exists, change the tag 'verification-needed-impish' to 'verification-failed-impish'.

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-impish
AaronMa (mapengyu)
tags: added: verification-done-impish
removed: verification-needed-impish
Revision history for this message
GT (gleppert) wrote :

I installed the new proposed kernel and tested the trackpoint for some hours. I confirm that the new kernel fixes the bug on Lenovo Thinkpad T14s Gen1 (AMD).

Can someone verify and change the tag 'verification-needed-impish' to 'verification-done-impish'? I don't see where I could change tags in Launchpad.

Thank you very much!

System:
Linux version 5.13.0-24-generic (buildd@lcy02-amd64-019)
Ubuntu 21.10 »Impish Indri«

Revision history for this message
AaronMa (mapengyu) wrote :

@GT, 'verification-done-impish' is done.

Edit tags will do that.

Thanks for your test.

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

This bug was fixed in the package linux-oem-5.13 - 5.13.0-1026.32

---------------
linux-oem-5.13 (5.13.0-1026.32) focal; urgency=medium

  [ Ubuntu: 5.13.0-25.26 ]

  * amdgpu hangs for 90 seconds at a time in 5.13.0-23, but 5.13.0-22 works
    (LP: #1956401)
    - drm/amdkfd: fix boot failure when iommu is disabled in Picasso.
  * OOB write on BPF_RINGBUF (LP: #1956585)
    - SAUCE: bpf: prevent helper argument PTR_TO_ALLOC_MEM to have offset other
      than 0

 -- Thadeu Lima de Souza Cascardo <email address hidden> Fri, 07 Jan 2022 14:03:28 -0300

Changed in linux-oem-5.13 (Ubuntu Focal):
status: Fix Committed → Fix Released
Revision history for this message
Eduardo Rojas Rodríguez (edurojas) wrote :

Just installed (regular update) Linux 5.13.0-25-generic #26-Ubuntu SMP in Ubuntu 21.10 and the problem persist, I don't know if this update contain the fix or not for Impish Idri :(

Revision history for this message
Eduardo Rojas Rodríguez (edurojas) wrote (last edit ):

Hi!

Is this bug still active? I have update the kernel to 5.13.0-25.26 And the problem persist.
:(

Revision history for this message
AaronMa (mapengyu) wrote :

@edurojas,

The patch is delayed to be merged in impish due to some kernel regression, it's was supposed to be included in 5.13.0-26.27.

Revision history for this message
Eduardo Rojas Rodríguez (edurojas) wrote (last edit ):

Thnaks @AaronMa I understand

I didn't know that! its look like we have to wait :)

Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (74.6 KiB)

This bug was fixed in the package linux - 5.13.0-28.31

---------------
linux (5.13.0-28.31) impish; urgency=medium

  * amd_sfh: Null pointer dereference on early device init causes early panic
    and fails to boot (LP: #1956519)
    - HID: amd_sfh: Fix potential NULL pointer dereference

  * impish: ddebs build take too long and times out (LP: #1957810)
    - [Packaging] enforce xz compression for ddebs

  * audio mute/ mic mute are not working on a HP machine (LP: #1955691)
    - ALSA: hda/realtek: fix mute/micmute LEDs for a HP ProBook

  * rtw88_8821ce causes freeze (LP: #1927808)
    - rtw88: Disable PCIe ASPM while doing NAPI poll on 8821CE

  * alsa/sdw: fix the audio sdw codec parsing logic in the acpi table
    (LP: #1955686)
    - ALSA: hda: intel-sdw-acpi: harden detection of controller
    - ALSA: hda: intel-sdw-acpi: go through HDAS ACPI at max depth of 2

  * icmp_redirect from selftests fails on F/kvm (unary operator expected)
    (LP: #1938964)
    - selftests: icmp_redirect: pass xfail=0 to log_test()

  * Impish update: upstream stable patchset 2021-12-17 (LP: #1955180)
    - arm64: zynqmp: Do not duplicate flash partition label property
    - arm64: zynqmp: Fix serial compatible string
    - ARM: dts: sunxi: Fix OPPs node name
    - arm64: dts: allwinner: h5: Fix GPU thermal zone node name
    - arm64: dts: allwinner: a100: Fix thermal zone node name
    - staging: wfx: ensure IRQ is ready before enabling it
    - ARM: dts: NSP: Fix mpcore, mmc node names
    - scsi: lpfc: Fix list_add() corruption in lpfc_drain_txq()
    - arm64: dts: rockchip: Disable CDN DP on Pinebook Pro
    - arm64: dts: hisilicon: fix arm,sp805 compatible string
    - RDMA/bnxt_re: Check if the vlan is valid before reporting
    - bus: ti-sysc: Add quirk handling for reinit on context lost
    - bus: ti-sysc: Use context lost quirk for otg
    - usb: musb: tusb6010: check return value after calling
      platform_get_resource()
    - usb: typec: tipd: Remove WARN_ON in tps6598x_block_read
    - ARM: dts: ux500: Skomer regulator fixes
    - staging: rtl8723bs: remove possible deadlock when disconnect (v2)
    - ARM: BCM53016: Specify switch ports for Meraki MR32
    - arm64: dts: qcom: msm8998: Fix CPU/L2 idle state latency and residency
    - arm64: dts: qcom: ipq6018: Fix qcom,controlled-remotely property
    - arm64: dts: freescale: fix arm,sp805 compatible string
    - ASoC: SOF: Intel: hda-dai: fix potential locking issue
    - clk: imx: imx6ul: Move csi_sel mux to correct base register
    - ASoC: nau8824: Add DMI quirk mechanism for active-high jack-detect
    - scsi: advansys: Fix kernel pointer leak
    - ALSA: intel-dsp-config: add quirk for APL/GLK/TGL devices based on ES8336
      codec
    - firmware_loader: fix pre-allocated buf built-in firmware use
    - ARM: dts: omap: fix gpmc,mux-add-data type
    - usb: host: ohci-tmio: check return value after calling
      platform_get_resource()
    - ARM: dts: ls1021a: move thermal-zones node out of soc/
    - ARM: dts: ls1021a-tsn: use generic "jedec,spi-nor" compatible for flash
    - ALSA: ISA: not for M68K
    - tty: tty_buffer: Fix the softlockup issue in flush_to_ldisc
    - MIPS: sni:...

Changed in linux (Ubuntu Impish):
status: Fix Committed → 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.