You are not logged in.
# FTCS0038 Touchpad - "Touch jump detected and discarded" on Lenovo IdeaPad Slim 5 16AHP9
## Summary
Intermittent "Touch jump detected and discarded" errors from libinput on a Focaltech FTCS0038 touchpad, causing ~1 second freezes during normal use and two-finger scrolling. The issue appears after a few minutes of use and worsens over time.
## System Information
- **Laptop**: Lenovo IdeaPad Slim 5 16AHP9 (83HX)
- **BIOS**: R0CN26WW (latest available)
- **OS**: Arch Linux
- **Kernel**: 6.18.9-arch1-2
- **Display Server**: X11
- **libinput version**: 1.30.1
## Hardware Details
### Touchpad
```
Device: FTCS0038:00 2808:0106 Touchpad
Kernel: /dev/input/eventX
Id: i2c:2808:0106
Size: 114x70mm
Capabilities: pointer gesture
```
- **Vendor**: Focaltech (HIDRAW:0x2808)
- **Firmware version**: 0x9f01
- **No firmware updates available** (verified via fwupd)
- **Bus**: I2C via AMD AMDI0010 controller (Synopsys DesignWare)
- **I2C address**: 0x0038
### dmesg output
```
[ 8.190937] input: FTCS0038:00 2808:0106 Mouse as /devices/platform/AMDI0010:00/i2c-0/i2c-FTCS0038:00/0018:2808:0106.0001/input/input5
[ 8.190971] input: FTCS0038:00 2808:0106 Touchpad as /devices/platform/AMDI0010:00/i2c-0/i2c-FTCS0038:00/0018:2808:0106.0001/input/input6
[ 8.191005] hid-generic 0018:2808:0106.0001: input,hidraw0: I2C HID v1.00 Mouse [FTCS0038:00 2808:0106] on i2c-FTCS0038:00
[ 8.298200] input: FTCS0038:00 2808:0106 Mouse as /devices/platform/AMDI0010:00/i2c-0/i2c-FTCS0038:00/0018:2808:0106.0001/input/input9
[ 8.298271] input: FTCS0038:00 2808:0106 Touchpad as /devices/platform/AMDI0010:00/i2c-0/i2c-FTCS0038:00/0018:2808:0106.0001/input/input10
[ 8.298321] hid-multitouch 0018:2808:0106.0001: input,hidraw0: I2C HID v1.00 Mouse [FTCS0038:00 2808:0106] on i2c-FTCS0038:00
```
### Driver
```
hid-multitouch 0018:2808:0106.0001
```
No module parameters available (`modinfo hid-multitouch | grep parm` returns nothing).
### xinput config:
```
Section "InputClass"
Identifier "touchpad"
MatchIsTouchpad "on"
Driver "libinput"
Option "Tapping" "on"
Option "NaturalScrolling" "true"
Option "ScrollMethod" "twofinger"
Option "ClickMethod" "buttonareas"
Option "DisableWhileTyping" "false"
Option "AccelSpeed" "0.2"
EndSection
```
## Bug Description
### Symptoms
1. After a few minutes of use, the touchpad starts experiencing "Touch jump" events
2. Each jump causes the cursor to freeze for approximately 1 second (but it can be more)
3. The issue occurs during both single-finger movement and two-finger scrolling
4. Frequency increases over time
5. libinput detects and discards the jumps, but the pause is still noticeable
### Error message
```
libinput error: event7 - FTCS0038:00 2808:0106 Touchpad: kernel bug: Touch jump detected and discarded.
```
After several occurrences:
```
libinput error: event7 - FTCS0038:00 2808:0106 Touchpad: WARNING: log rate limit exceeded (5 msgs per 24h). Discarding future messages.
```
This want message can occur in just 10 second of debug-event
### libinput debug-events output during bug
```
event7 POINTER_SCROLL_FINGER 3 +2.241s vert 0.00/0.0* horiz 0.00/0.0* (finger)
libinput error: event7 - FTCS0038:00 2808:0106 Touchpad: kernel bug: Touch jump detected and discarded.
event7 POINTER_MOTION +2.466s 0.00/ 8.09 ( +0.00/+10.00)
event7 POINTER_MOTION 2 +2.473s 0.00/ 8.09 ( +0.00/+10.00)
event7 POINTER_MOTION 3 +2.479s 0.00/ 6.48 ( +0.00/ +8.00)
libinput error: event7 - FTCS0038:00 2808:0106 Touchpad: kernel bug: Touch jump detected and discarded.
event7 POINTER_MOTION 4 +2.723s 0.00/ 0.80 ( +0.00/ +1.00)
libinput error: event7 - FTCS0038:00 2808:0106 Touchpad: kernel bug: Touch jump detected and discarded.
event7 POINTER_MOTION 5 +3.154s 0.00/ 0.77 ( +0.00/ +1.00)
event7 POINTER_MOTION 6 +3.162s -1.67/ 15.04 ( -2.00/+18.00)
event7 POINTER_MOTION 7 +3.168s -0.98/ 15.73 ( -1.00/+16.00)
event7 POINTER_MOTION 8 +3.571s -3.34/ -9.18 ( -4.00/-11.00)
libinput error: event7 - FTCS0038:00 2808:0106 Touchpad: kernel bug: Touch jump detected and discarded.
libinput error: event7 - FTCS0038:00 2808:0106 Touchpad: kernel bug: Touch jump detected and discarded.
```
## ACPI / DSDT Analysis
The DSDT shows the touchpad (TPD1) is configured at **400KHz** on the I2C bus:
```
Scope (_SB.I2CA)
{
Device (TPD1)
{
Name (_HID, "FTCS0038")
Name (_CID, "PNP0C50")
Name (_UID, 0x05)
Method (_CRS, 0, NotSerialized)
{
Name (RBUF, ResourceTemplate ()
{
I2cSerialBusV2 (0x0038, ControllerInitiated, 0x00061A80,
AddressingMode7Bit, "\\_SB.I2CA",
0x00, ResourceConsumer, , Exclusive,
)
...
})
}
}
}
```
`0x00061A80` = 400000 = 400KHz
The I2C controller is:
```
ACPI path: \_SB_.I2CA
HID: AMDI0010
Bus: i2c-0 (Synopsys DesignWare I2C adapter)
```
### Note: Other touchpad devices on same bus
The DSDT defines multiple touchpad devices on the same I2C bus, all at 400KHz:
- **TPD0**: ELAN06FA (0x0015) - 400KHz
- **TPD1**: FTCS0038 (0x0038) - 400KHz ← **active device**
- **TPD2**: SYNA2BA6 (0x002C) - 400KHz
- **TPD3**: GXTP5100 (0x005D) - 400KHz
## Troubleshooting Attempted
### 1. Disable While Typing → No effect
```bash
xinput set-prop 9 "libinput Disable While Typing Enabled" 0
```
Issue persists.
### 2. DSDT override: Force I2C bus to 100KHz → No effect
Modified DSDT to change TPD1 connection speed from `0x00061A80` (400KHz) to `0x000186A0` (100KHz). Successfully loaded via GRUB early_initrd CPIO. Confirmed loaded:
```
ACPI: DSDT ACPI table found in initrd [kernel/firmware/acpi/dsdt.aml][0x19a50]
```
**Result**: Touch jumps still occur. Cursor speed was reduced (expected at lower bus speed), but the fundamental issue remains.
### 3. libinput quirks
```bash
libinput quirks list /dev/input/event6
```
No quirks defined for this device.
### 4. Firmware update check
```bash
fwupdmgr get-updates
```
No firmware updates available for FTCS0038:00 2808:0106 (current firmware: 0x9f01).
### 5. Palm detection
No palm detection parameters exposed via xinput or libinput for this device.
## Related Issues
- **Arch Linux Forums**: [Lenovo Ideapad Slim 3 15IAH8 touchpad feels sluggish](https://bbs.archlinux.org/viewtopic.php?id=297092) - Similar symptoms with ELAN06FA touchpad, resolved by forcing I2C to 100KHz via kernel patch. However, this fix does NOT work for FTCS0038.
- **libinput documentation**: [Touchpad jumping cursor bugs](https://wayland.freedesktop.org/libinpu … rsors.html)
- **Kernel commit**: [bfd74cd1fbc0](https://github.com/torvalds/linux/commi … e199c2bffd) - Added ELAN06FA to force 100KHz list. FTCS0038 is not yet included and adding it does not resolve the issue.
## Expected Behavior
Touchpad should function without intermittent freezes and coordinate jumps, as it does under Windows on the same hardware.
## Additional Notes
- The touchpad works perfectly under Windows with no input lag or jumps
- The issue appears to be firmware-related: the touchpad occasionally sends aberrant coordinate data
- Unlike the ELAN06FA issue (resolved by I2C speed change), this FTCS0038 touchpad has a different root cause that is not related to I2C bus speed
- Please note that this topic is writen by Claude Opus 4.6 after he tried te help me resolve the issue
Offline
In my case, ASUS Vivobook S 16 M5606WA got same problem, recently
I had found a solution.
cat /etc/libinput/local-overrides.quirks
```
# FocalTech ASCF1201 Touchpad (ASUS Vivobook S 16 M5606WA)
#
# Hardware: FocalTech I2C-HID Precision Touchpad
# VID:PID: 0x2808:0x0231
#
# Palm detection tuning: The kernel patch (MT_CLS_WIN_8_NO_CONFIDENCE)
# disables the firmware's unreliable Confidence bit from being used for
# palm detection. This quirk configures libinput's own palm detection
# with thresholds that provide a good balance between rejecting palms
# and not interfering with normal touch operations.
#
# Reference: https://wayland.freedesktop.org/libinpu … uirks.html
[FocalTech ASCF1201 Touchpad]
MatchUdevType=touchpad
MatchBus=i2c
MatchVendor=0x2808
MatchProduct=0x0231
AttrPalmSizeThreshold=1000
```
See also: https://xzos.net/en/blog/focaltech-touchpad-linux-fix/
Last edited by xz-dev (Yesterday 05:04:45)
Offline
Hello @xz-dev,
I have try this on my computer
```text
❯ cat /etc/libinput/local-overrides.quirks
[FocalTech FTCS0038 Touchpad]
MatchUdevType=touchpad
MatchBus=i2c
MatchVendor=0x2808
MatchProduct=0x0106
AttrPalmSizeThreshold=1000
```
But even with that i stall have similar issue, but that is stranger because sometime that still write an "Touch jump", sometime there are just nothing in `libinput debug-events` and other time the 2 finger scrool just moove the cursor the bug occur.
The uptime of my computer is 1h15 and i discover something crazy:
```bash
sudo modprobe -r i2c_hid_acpi && sudo modprobe i2c_hid_acpi
```
Just "reset" the bug for a little moment
Offline