About Dell Inspiron 3442 touchpad

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

I'm trying to make a touchpad from a Dell Inspiron I14-3442 laptop work.

Some details:

- I'm using plain Slackware64 14.1, but raised the kernel to 3.16.3 for
tests

- xinput ignores the touchpad; it shows only a USB mouse/keyboard
adapter and the laptop's keyboard:

root@pace:/sys/bus/hid/devices# xinput
 Virtual core pointer                            id=2    [master pointer
  (3)]
     Virtual core XTEST pointer                      id=4    [slave 
     pointer  (2)]
     Generic USB K/B                                 id=12   [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)]
      Power Button                                    id=9    [slave 
      keyboard (3)]
      Sleep Button                                    id=10   [slave 
      keyboard (3)]
      Integrated_Webcam_HD                            id=13   [slave 
      keyboard (3)]
      AT Translated Set 2 keyboard                    id=14   [slave 
      keyboard (3)]
      Dell WMI hotkeys                                id=15   [slave 
      keyboard (3)]
      Video Bus                                       id=8    [slave 
      keyboard (3)]
      Generic USB K/B                                 id=11   [slave 
      keyboard (3)]

- it seems Ubuntu certified this machine (check
http://www.ubuntu.com/certification/hardware/201402-14674/components/),
but it assumes the touchpad is PS/2. I haven't found it as a PS/2 thing,
even loading psmouse.ko, or doing other tricks

- some articles lists some tips for making it work (like
http://askubuntu.com/questions/134627/how-do-i-get-the-touchpad-settings-working-on-a-dell-xps-13-ultrabook,
or https://bugzilla.redhat.com/show_bug.cgi?id=1048314#c2), but I read
them carefully, made some tests, and they didn't work. One article says
I could blacklist i2c_hid or like in order to make the bring up the
touchpad in PS/2 mode, but I couldn't succeed doing so

- at Dell's site, it is offered a driver for Ubuntu 12.04, but it's
almost obsolete. It seems to be just merged into the kernel

- from Windows 8.1, which runs in the same machine (dual boot), I
concluded the proper way of making it work is to use HID over I2C. It
seems that there are two components loaded; one I2CHID, and a Synaptics
HID. This makes me hint it may be a Synaptics device

- it seems there are two I2C busses in the machine. One is related to
the Intel video graphics subsystem (i801). The other seems to be linked
to the touchpad (i2c_designware_platform). I'm not sure that latest kmod
(i2c_designware_platform) is the right one to be used in this case, but
it appears to be working:

root@pace:/sys/bus/i2c/devices# ls -l /sys/bus/i2c/devices
total 0
lrwxrwxrwx 1 root root 0 Out 18 17:26 i2c-0 ->
../../../devices/pci0000:00/INT33C2:00/i2c-0
lrwxrwxrwx 1 root root 0 Out 18 17:26 i2c-1 ->
../../../devices/pci0000:00/INT33C3:00/i2c-1
lrwxrwxrwx 1 root root 0 Out 18 17:26 i2c-2 ->
../../../devices/pci0000:00/0000:00:02.0/i2c-2
lrwxrwxrwx 1 root root 0 Out 18 17:26 i2c-3 ->
../../../devices/pci0000:00/0000:00:02.0/i2c-3
lrwxrwxrwx 1 root root 0 Out 18 17:26 i2c-4 ->
../../../devices/pci0000:00/0000:00:02.0/i2c-4
lrwxrwxrwx 1 root root 0 Out 18 17:26 i2c-5 ->
../../../devices/pci0000:00/0000:00:02.0/i2c-5
lrwxrwxrwx 1 root root 0 Out 18 17:26 i2c-6 ->
../../../devices/pci0000:00/0000:00:02.0/i2c-6
lrwxrwxrwx 1 root root 0 Out 18 17:26 i2c-7 ->
../../../devices/pci0000:00/0000:00:02.0/i2c-7
lrwxrwxrwx 1 root root 0 Out 18 17:26 i2c-8 ->
../../../devices/pci0000:00/0000:00:02.0/i2c-8
lrwxrwxrwx 1 root root 0 Out 18 17:26 i2c-DLL0652:00 ->
../../../devices/pci0000:00/INT33C3:00/i2c-1/i2c-DLL0652:00

root@pace:/sys/bus/i2c/devices# lsmod | grep i2c
i2c_hid                10682  0 
hid                    94632  3 i2c_hid,hid_generic,usbhid
i2c_dev                 5739  0 
i2c_designware_platform     3189  0 
i2c_i801               13732  0 
i2c_designware_core     6045  1 i2c_designware_platform
i2c_algo_bit            5351  1 i915
i2c_core               35216  11
drm,i915,i2c_i801,i2c_dev,i2c_hid,i2c_designware_platform,drm_kms_helper,i2c_algo_bit,v4l2_common,synaptics_i2c,videodev

- in the HID /sys directory, there are three devices. Two are related to
a keyboard/mouse USB adapter. The third seems to be the linked to the
touchpad:

root@pace:/sys/bus/hid/devices# ls -l /sys/bus/hid/devices
total 0
lrwxrwxrwx 1 root root 0 Out 28 22:40 0003:13BA:0017.004F ->
../../../devices/pci0000:00/0000:00:1d.0/usb3/3-1/3-1.3/3-1.3:1.0/0003:13BA:0017.004F
lrwxrwxrwx 1 root root 0 Out 28 22:40 0003:13BA:0017.0050 ->
../../../devices/pci0000:00/0000:00:1d.0/usb3/3-1/3-1.3/3-1.3:1.1/0003:13BA:0017.0050
lrwxrwxrwx 1 root root 0 Out 28 22:40 0018:06CB:2985.0052 ->
../../../devices/pci0000:00/INT33C3:00/i2c-1/i2c-DLL0652:00/0018:06CB:2985.0052

- when I load the kernel module i2c-hid.ko (with debug=1), I read this
in dmesg:

[146172.568787] i2c_hid i2c-DLL0652:00: Fetching the HID descriptor
[146172.568791] i2c_hid i2c-DLL0652:00: __i2c_hid_command: cmd=20 00
[146172.574806] i2c_hid i2c-DLL0652:00: HID Descriptor: 1e 00 00 01 85
00 21 00 24 00 20 00 25 00 17 00 22 00 23 00 cb 06 85 29 00 00 00 00 00
00
[146172.574845] i2c_hid i2c-DLL0652:00: entering i2c_hid_parse
[146172.574847] i2c_hid i2c-DLL0652:00: i2c_hid_hwreset
[146172.574849] i2c_hid i2c-DLL0652:00: i2c_hid_set_power
[146172.574850] i2c_hid i2c-DLL0652:00: __i2c_hid_command: cmd=22 00 00
08
[146172.575436] i2c_hid i2c-DLL0652:00: resetting...
[146172.575442] i2c_hid i2c-DLL0652:00: __i2c_hid_command: cmd=22 00 00
01
[146172.576113] i2c_hid i2c-DLL0652:00: __i2c_hid_command: waiting...
[146172.577414] i2c_hid i2c-DLL0652:00: __i2c_hid_command: finished.
[146172.577417] i2c_hid i2c-DLL0652:00: asking HID report descriptor
[146172.577419] i2c_hid i2c-DLL0652:00: __i2c_hid_command: cmd=21 00
[146172.581072] i2c_hid i2c-DLL0652:00: Report Descriptor: 05 01 09 02
a1 01 85 01 09 01 a1 00 05 09 19 01 29 02 15 00 25 01 75 01 95 02 81 02
95 06 81 01 05 01 09 30 09 31 15 81 25 7f 75 08 95 02 81 06 c0 c0 06 00
ff 09 01 a1 01 85 09 09 02 15 00 26
[146172.581126] i2c_hid i2c-DLL0652:00: i2c_hid_set_power
[146172.581129] i2c_hid i2c-DLL0652:00: __i2c_hid_command: cmd=22 00 01
08

I am aware this information probably is not sufficient to draw any
conclusions, but I'd appreciate to hear from someone who knows i2c_hid
in detail what steps I should take next. For me the last command timed
out or got stuck, but I haven't checked the code to see if it's the
case. Anyway, if it was a timeout case, it should have something logged
after the time expired.

I have some programming skills, and so if it's the case of applying any
patches, or recompiling the kernel or any subsystem to make tests, I'm
up to.

Many thanks,

Luiz Ramos
lramos dot prof at yahoo dot com dot br
São Paulo - Brazil


--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux