[ELAN 3320KD-3100] Asus T300 CHI bluetooth Touchpad is recognized incorrectly

Bug #1480673 reported by Wolf Stadler
44
This bug affects 8 people
Affects Status Importance Assigned to Milestone
Linux
Unknown
Unknown
libinput
Won't Fix
Medium
xinput (Ubuntu)
Triaged
Medium
Unassigned

Bug Description

Moved the touchscreen issues to bug #1574341 "[Asus T300 CHI] Synaptics Touch Digitizer V04 - no multitouch".

The Asus T300 CHI has a touchscreen and a (bluetooth) keyboard/touchpad combo.
Both (touchscreen, touchpad) only work like a mouse (moving pointer, left and right click), scrolling, zooming, etc. is not working.
the keyboard works fine.

relevant content of /proc/bus/input/devices:

[...]
I: Bus=0003 Vendor=06cb Product=11f0 Version=0111
N: Name="SYNAPTICS Synaptics Touch Digitizer V04"
P: Phys=usb-0000:00:14.0-7/input0
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/0003:06CB:11F0.0004/input/input9
U: Uniq=
H: Handlers=mouse1 event9
B: PROP=2
B: EV=b
B: KEY=400 0 0 0 0 0
B: ABS=260800000000003

I: Bus=0003 Vendor=06cb Product=11f0 Version=0111
N: Name="SYNAPTICS Synaptics Touch Digitizer V04 Pen"
P: Phys=usb-0000:00:14.0-7/input0
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/0003:06CB:11F0.0004/input/input10
U: Uniq=
H: Handlers=mouse2 event10
B: PROP=0
B: EV=1b
B: KEY=c03 1 0 0 0 0
B: ABS=1000003
B: MSC=10

[...]

I: Bus=0005 Vendor=0b05 Product=8502 Version=0001
N: Name="ASUS T300CHI DOCKING"
P: Phys=34:02:86:7b:3b:9d
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/bluetooth/hci0/hci0:256/0005:0B05:8502.0006/input/input18
U: Uniq=1c:b7:2c:15:94:8b
H: Handlers=sysrq kbd mouse3 event17
B: PROP=0
B: EV=12001f
B: KEY=20 0 0 2000 40000000000000 30000 1000002000007 ff9f387ad9405fff febeffdfffefffff fffffffffffffffe
B: REL=303
B: ABS=70000000000
B: MSC=10
B: LED=1f

output of xinput --list:

⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ B16_b_02 USB-PS/2 Optical Mouse id=9 [slave pointer (2)]
⎜ ↳ HID 0566:3108 id=11 [slave pointer (2)]
⎜ ↳ SYNAPTICS Synaptics Touch Digitizer V04 Pen id=14 [slave pointer (2)]
⎜ ↳ SYNAPTICS Synaptics Touch Digitizer V04 id=15 [slave pointer (2)]
⎜ ↳ ASUS T300CHI DOCKING id=18 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
    ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
    ↳ Power Button id=6 [slave keyboard (3)]
    ↳ Video Bus id=7 [slave keyboard (3)]
    ↳ Sleep Button id=8 [slave keyboard (3)]
    ↳ HID 0566:3108 id=10 [slave keyboard (3)]
    ↳ C-Media Electronics Inc. USB Multimedia Audio Device id=12 [slave keyboard (3)]
    ↳ USB2.0 HD UVC WebCam id=13 [slave keyboard (3)]
    ↳ Asus WMI hotkeys id=16 [slave keyboard (3)]
    ↳ AT Translated Set 2 keyboard id=17 [slave keyboard (3)]

output of synclient is:
Couldn't find synaptics properties. No synaptics driver loaded?

but I'm unsure if the synaptics driver is the right place to look since basic functionality is working and the "ASUS T300CHI DOCKING" is recognized as "pointer"

it seems that the device is recognized by the kernel but only used as a pointing device.
I've also attached the xorg.log

output of uname -a:
Linux xxxxxxx 3.19.0-25-generic #26-Ubuntu SMP Fri Jul 24 21:17:31 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

it's a completely fresh install of xubuntu 15.04 with software-updater run once (so no strange hacks or drivers installed)
output of lsb_release -rd:
Description: Ubuntu 15.04
Release: 15.04

output of apt-cache policy xinput
xinput:
  Installed: 1.6.1-1
  Candidate: 1.6.1-1
  Version table:
 *** 1.6.1-1 0
        500 http://de.archive.ubuntu.com/ubuntu/ vivid/main amd64 Packages
        100 /var/lib/dpkg/status

expected results:
- scrolling on touchpad and touchscreen should work with a two-finger gesture
- zooming on touchpad and touchscreen should work with a two-finger gesture

actual results:
two fingers are not recognized on touchscreen or touchpad

Any help would be appreciated, if you need more console output or logs, please let me know.

ProblemType: Bug
DistroRelease: Ubuntu 15.04
Package: xinput 1.6.1-1
ProcVersionSignature: Ubuntu 3.19.0-25.26-generic 3.19.8-ckt2
Uname: Linux 3.19.0-25-generic x86_64
ApportVersion: 2.17.2-0ubuntu1.1
Architecture: amd64
CurrentDesktop: XFCE
Date: Sun Aug 2 16:14:24 2015
EcryptfsInUse: Yes
InstallationDate: Installed on 2015-08-02 (0 days ago)
InstallationMedia: Xubuntu 15.04 "Vivid Vervet" - Release amd64 (20150422.1)
SourcePackage: xinput
UpgradeStatus: No upgrade log present (probably fresh install)

Revision history for this message
Wolf Stadler (wolf-mi-wgnetz) wrote :
Revision history for this message
Wolf Stadler (wolf-mi-wgnetz) wrote :

forgot to mention: same behaviour on ubuntu with unity desktop.

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

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

Changed in xinput (Ubuntu):
status: New → Confirmed
Changed in xinput (Ubuntu):
importance: Undecided → Medium
Revision history for this message
TJ (tj) wrote :

Confirmed here too... although with 16.04 / Unity there was touchscreen input during live session but after booting the installed system I just realised there is no touchscreen input device.

Revision history for this message
TJ (tj) wrote :

My loss of the touchscreen seems to be due to my doing a lot of experimenting with evtest and udev's hwdb. After an S3 resume this morning the touchscreen Synaptic devices re-appeared. Thinking about it, it may also be due to some ACPI DSDT experimentation I was doing to try to get the Fn+F5-F7 backlight brightness control to operate.

Revision history for this message
TJ (tj) wrote :

It seems the kernel's hid-touchscreen module has bound to the device:

$ ll /sys/bus/hid/drivers/hid-multitouch/
total 0
drwxr-xr-x 2 root root 0 Apr 23 12:59 ./
drwxr-xr-x 4 root root 0 Apr 23 12:59 ../
lrwxrwxrwx 1 root root 0 Apr 23 12:59 0003:06CB:11EF.0004 -> ../../../../devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/0003:06CB:11EF.0004/
--w------- 1 root root 4096 Apr 23 12:59 bind
lrwxrwxrwx 1 root root 0 Apr 23 12:59 module -> ../../../../module/hid_multitouch/
--w------- 1 root root 4096 Apr 23 12:59 new_id
--w------- 1 root root 4096 Apr 23 12:59 uevent
--w------- 1 root root 4096 Apr 23 12:59 unbind
tj@T300CHI:~$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 008: ID 06cb:11ef Synaptics, Inc.
Bus 001 Device 005: ID 04f2:b3d5 Chicony Electronics Co., Ltd
Bus 001 Device 003: ID 8087:0a2a Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

tj@T300CHI:~$ cat /sys/bus/hid/drivers/hid-multitouch/0003\:06CB\:11EF.0004/modalias
hid:b0003g0004v000006CBp000011EF

TJ (tj)
description: updated
TJ (tj)
Changed in xinput (Ubuntu):
status: Confirmed → Triaged
Revision history for this message
TJ (tj) wrote :

I opened up the keyboard dock today to identify the touchpad chip. It is an ELAN 3320KD-3100 in a 64 pin QFN package. It links over Bluetooth using the Broadcom BCM20730 A1KFBG.

The device presents over Bluetooth with an ASUS ID: 0B05:8502.

ELAN call the touchpad the "Smart Pad": http://www.emc.com.tw/eng/tpn_sp_tech.asp

TJ (tj)
summary: - Asus T300 CHI bluetooth Touchpad is recognized incorrectly
+ [ELAN 3320KD-3100] Asus T300 CHI bluetooth Touchpad is recognized
+ incorrectly
TJ (tj)
no longer affects: xinput-calibrator
TJ (tj)
affects: xinput-calibrator → libinput
Revision history for this message
er453r (er453r) wrote :

I can confirm this too, on 16.10 and 4.8 kernel. The touchpad gets detected as a mouse by udevd and libinput configures it as a mouse. Any workarounds for this? To trick udev, that it is a trackpad? I'm afraid this is a kernel issue, not Ubuntu/xorg :/

Revision history for this message
er453r (er453r) wrote :

Did some more digging.

- Kernel 4.10-rc1 - the same
- /dev/input/eventX - does not even fire multitouch events, so no luck here
- Tried sniffing bluetooth data with hcidump - and, oddly, this does not fire multitouch events also!

So probably, the driver has to request multitouch support from the device explicitly, which does not happen, Can't find any technical documentation for the touchpad microcontroller so I think we are out of luck

Changed in libinput:
importance: Unknown → Medium
status: Unknown → Confirmed
Revision history for this message
woodo (woodo100) wrote :

Is this bug considered fixed as per the link following: https://bugzilla.kernel.org/show_bug.cgi?id=81331

My t300 touchpad is still unsatisfactory though using 16.04.3 and 4.10.0.32 kernel

Revision history for this message
er453r (er453r) wrote :

I did some more digging, and it seems that the Asus driver sends additional commands to the device to enable the multitouch capabilities. This thread confirms it: https://bugs.freedesktop.org/show_bug.cgi?id=98770

I've also did a packet dump on widnows of the device communications with the OS (without ASUS driver, with ASUS driver, and then testing gesture and mouse commands).

I can confirm that the driver indeed sends additional commands. I've tried sending them by hand to the device descriptor but it did not trigger the mutlitouch events :/

Attaching the bluetooth dump, maybe this will help someone.

Revision history for this message
Cyrus Lien (cyruslien) wrote :
Download full text (3.2 KiB)

Touchpad multitouch works on 4.15-rc8 kernel but need blacklist hid-generic.

$xinput list

⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=14 [slave pointer (2)]
⎜ ↳ Logitech USB Receiver id=12 [slave pointer (2)]
⎜ ↳ Asus TouchPad id=18 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
    ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
    ↳ Power Button id=6 [slave keyboard (3)]
    ↳ Video Bus id=7 [slave keyboard (3)]
    ↳ Video Bus id=8 [slave keyboard (3)]
    ↳ Power Button id=9 [slave keyboard (3)]
    ↳ Sleep Button id=10 [slave keyboard (3)]
    ↳ AT Translated Set 2 keyboard id=13 [slave keyboard (3)]
    ↳ Logitech USB Receiver id=11 [slave keyboard (3)]
    ↳ ASUS T300CHI DOCKING id=15 [slave keyboard (3)]
    ↳ ASUS T300CHI DOCKING id=16 [slave keyboard (3)]
    ↳ ASUS T300CHI DOCKING id=17 [slave keyboard (3)]

$xinput list-props 18:

Device 'Asus TouchPad':
 Device Enabled (143): 1
 Coordinate Transformation Matrix (145): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
 Device Accel Profile (274): 1
 Device Accel Constant Deceleration (275): 2.500000
 Device Accel Adaptive Deceleration (276): 1.000000
 Device Accel Velocity Scaling (277): 12.500000
 Synaptics Edges (298): 105, 2535, 71, 1249
 Synaptics Finger (299): 25, 30, 0
 Synaptics Tap Time (300): 180
 Synaptics Tap Move (301): 129
 Synaptics Tap Durations (302): 180, 100, 100
 Synaptics ClickPad (303): 1
 Synaptics Middle Button Timeout (304): 0
 Synaptics Two-Finger Pressure (305): 282
 Synaptics Two-Finger Width (306): 7
 Synaptics Scrolling Distance (307): 59, 59
 Synaptics Edge Scrolling (308): 0, 0, 0
 Synaptics Two-Finger Scrolling (309): 1, 1
 Synaptics Move Speed (310): 1.000000, 1.750000, 0.067774, 0.000000
 Synaptics Off (311): 0
 Synaptics Locked Drags (312): 0
 Synaptics Locked Drags Timeout (313): 5000
 Synaptics Tap Action (314): 2, 3, 0, 0, 3, 1, 0
 Synaptics Click Action (315): 1, 3, 0
 Synaptics Circular Scrolling (316): 0
 Synaptics Circular Scrolling Distance (317): 0.100000
 Synaptics Circular Scrolling Trigger (318): 0
 Synaptics Circular Pad (319): 0
 Synaptics Palm Detection (320): 0
 Synaptics Palm Dimensions (321): 10, 200
 Synaptics Coasting Speed (322): 20.000000, 50.000000
 Synaptics Pressure Motion (323): 30, 160
 Synaptics Pressure Motion Factor (324): 1.000000, 1.000000
 Synaptics Resolution Detect (325): 1
 Synaptics Grab Event Device (326): 0
 Synaptics Gestures (327): 1
 Synaptics Capabilities (328): 1, 0, 0, 1, 1, 0, 0
 Synaptics Pad Resolution (329): 29, 31
 Synaptics Area (330): 0, 0, 0, 0
 Synaptics Soft Button Areas (618): 1320, 0, 1082, 0, 0, 0, 0, 0
 Synaptics Noise Cancellation (331)...

Read more...

Revision history for this message
Cyrus Lien (cyruslien) wrote :

Below commits should be related.

commit 73c75d395857960ea135913da7bb9537248a11e6
Author: Hans de Goede <email address hidden>
Date: Fri Aug 4 15:31:04 2017 +0200

    HID: asus: Add T100CHI bluetooth keyboard dock touchpad support

    Put the touchpad in native (absolute coordinate mode) and export it to
    userspace as a touchpad rather then as a mouse.

    Note this requires HID_QUIRK_MULTI_INPUT as the T100CHI keyboard dock
    has all functionality on a single HID interface and userspace expects
    touchpads to be on a separate input_dev. Without MULTI_INPUT userspace
    will ignore the keyboard part of the keyboard/touchpad combo.

    Signed-off-by: Hans de Goede <email address hidden>
    Signed-off-by: Jiri Kosina <email address hidden>

commit 5703e52cc711bc01e72cf12b86a126909c79d213
Author: Hans de Goede <email address hidden>
Date: Sun Jul 2 16:34:15 2017 +0200

    HID: asus: Add T100CHI bluetooth keyboard dock special keys mapping

    The Asus Transformer T100CHI comes with a Bluetooth keyboard dock which
    uses the same 0xff31 Asus vendor HUT page as other Asus keyboards.

    This commit adds its device-id to hid-asus and fixes an issue in the
    descriptor of the 0xff31 Usage, which together fixes the special keys
    on this keyboard not working.

    Signed-off-by: Hans de Goede <email address hidden>
    Signed-off-by: Jiri Kosina <email address hidden>

Revision history for this message
er453r (er453r) wrote :

I can confirm that the touchpad multitouch works since the 4.15 kernel (installed from here http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.15/)! No blacklisting nesesery.

For more advanced gestures you can additionally use this https://github.com/bulletmark/libinput-gestures (also tested, works)

Sadly, no fluid pinch-to-zoom gesture (only works as a button press simulation, but I don't think any linux touchpad has this)

Changed in libinput:
status: Confirmed → Incomplete
Revision history for this message
Luca (zapduke) wrote :

I've tried it in ubuntu 18.04 now that they have the 4.15 kernel and the touchpad stopped working completely.

uname -a
Linux berith 4.15.0-10-generic #11-Ubuntu SMP Tue Feb 13 18:23:35 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

dmesg
[ 781.000782] Bluetooth: hci0: last event is not cmd complete (0x0f)

and xinput list shows the following devices (sorry can't copy it without the touchpad):

Virtual core pointer
- Virtual core XTEST pointer
- SYNAPTICS Synaptics touch digitizer V04
Virtual core keyboard
-Virtual core XTEST keyboard
-Power Button
- Asus Wireless Radio Control
- Video. Bus
- Sleep Button
- Webcam
- Synaptics Touch Digitizer V04 Pen
- Asus WMI Hotkeys
- At Translated Set 2 Keyboard

Revision history for this message
Luca (zapduke) wrote :

With this kernel from here the touchpad works with multitouch as confirmed by er453r http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.15/
With kernel 4.15.0-10 of ubuntu 18.04 the touchpad doesn't work.

Changed in libinput:
status: Incomplete → Won't Fix
Revision history for this message
Luca (zapduke) wrote :

The problem persists with 4.15.0-12, touchpad doesn't work altogether, it works perfectly with 4.15.0-041500 from the kernel-ppa.

Revision history for this message
Luca (zapduke) wrote :

The problem persists with 4.15.0-13 in 18.04. Keyboard doesn't work, touchpad doesn't work.

Revision history for this message
Luca (zapduke) wrote :

4.15.0-20 from 18.04, still keyboard/touchpad not working.

Apr 27 16:51:43 kernel: Bluetooth: hci0: last event is not cmd complete (0x0f)
Apr 27 16:51:58 bluetoothd[871]: Can't get HIDP connection info

Anyone else can confirm that it doesn't work in 4.15 from Ubuntu repository but works with the kernel PPA?

Revision history for this message
Luca (zapduke) wrote :

Sorry I found the problem, I had installed this dkms module in the past https://github.com/vlasenko/hid-asus-dkms because I wanted to attempt at enabling the multitouch by myself modifying the driver but apparently it remained silent as dkms module. I removed dkms and reinstalled it and also removed every trace of the module from /var/lib/dkms/asus/1.0/4.10.0-28-generic/x86_64/. Now it works perfectly and the laptop works in general very well with Linux!

As 18.04 the touchpad is recognized perfectly so I think this bug report can be closed.

Revision history for this message
er453r (er453r) wrote :

I can also confirm that all works well with vanilla 18.04. Multitouch, gestures, etc. :)

Typing from it now :)

Revision history for this message
Wolf Stadler (wolf-mi-wgnetz) wrote :

Confirmed as well. Works perfectly.

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.