Cypress Trackpad wrongly (?) detected as "PS/2 Cypress Trackpad" ("evdev *pointer* catchall") on XPS 12

Bug #1103594 reported by Cédric Dufour on 2013-01-23
42
This bug affects 6 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Medium
Kamal Mostafa
Precise
Undecided
Kamal Mostafa
Quantal
Undecided
Kamal Mostafa
Raring
Medium
Kamal Mostafa

Bug Description

Hello,

Even though I installed Kamal's (Quantal 12.10) kernel from the Sputnik PPA (https://launchpad.net/~canonical-hwe-team/+archive/sputnik-kernel), the Cypress Trackpad on the Dell XPS *12* cannot be configured as a touchpad: no edge scrolling, no two-fingers scrolling, no multitouch.

Xorg reports is as a "PS/2 Cypress Trackpad" (not "CyPS/2 Cypress Trackpad") and evdev catches it as "evdev pointer catchall" (instead of "evdev touchad catchall").

Do you think this can be fixed?

Thanks and best regards,

Cédric

$ modprobe psmouse cy_debug=2

[ 327.986166] send extension cmd 0x00, [0 0 0 0]
[ 327.991386] send command 0xe8 success, resp 0xfa
[ 327.996412] send command 0x00 success, resp 0xfa
[ 328.001077] send command 0xe8 success, resp 0xfa
[ 328.006082] send command 0x00 success, resp 0xfa
[ 328.011154] send command 0xe8 success, resp 0xfa
[ 328.016330] send command 0x00 success, resp 0xfa
[ 328.021007] send command 0xe8 success, resp 0xfa
[ 328.026007] send command 0x00 success, resp 0xfa
[ 328.036131] send command 0xe9 success, resp 0xfa
[ 328.037869] Command 0x00 response data: (0x)
[ 328.037876] 33 cc
[ 328.037882] 8b<3>[ 328.037884]
[ 328.037889] cytp->fw_version = 11
[ 328.037892] cytp->vital_statics_supported = 1
[ 328.037896] send extension cmd 0x01, [0 0 0 1]
[ 328.043379] send command 0xe8 success, resp 0xfa
[ 328.051094] send command 0x01 success, resp 0xfa
[ 328.056114] send command 0xe8 success, resp 0xfa
[ 328.060800] send command 0x00 success, resp 0xfa
[ 328.065873] send command 0xe8 success, resp 0xfa
[ 328.070736] send command 0x00 success, resp 0xfa
[ 328.075747] send command 0xe8 success, resp 0xfa
[ 328.080740] send command 0x00 success, resp 0xfa
[ 328.090933] send command 0xe9 success, resp 0xfa
[ 328.289267] Command 0x01 response data: (0x)
[ 328.289275] 4c 04
[ 328.289282] 6c 00
[ 328.289285] 00 00
[ 328.289289] 00 00
[ 328.289293]
[ 328.289297] Unable to query Trackpad hardware.
[ 328.523730] input: PS/2 Cypress Trackpad as /devices/platform/i8042/serio1/input/input12

Hello,

I confirm this bug on my Dell XPS12 Duo, with same Xorg output as above. I don't know if this is related, but the two-finger gestures are not available on the touchscreen display either.

I'd be most grateful if this could be fixed.

Many thanks and all the best

Carlo

Kyle Fazzari (kyrofa) wrote :

Unfortunately, the Sputnik project relates only to the Dell XPS 13. For support on other models, you may have more luck opening a bug against vanilla Ubuntu.

Launchpad Janitor (janitor) wrote :

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

Reassign "Affects" to "linux-image-generic" base on Kyle's recommendation (https://bugs.launchpad.net/dell-sputnik/+bug/1103594/comments/3)

affects: dell-sputnik → linux-meta (Ubuntu)
Changed in linux-meta (Ubuntu):
status: New → Confirmed
Launchpad Janitor (janitor) wrote :

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

Brad Figg (brad-figg) on 2013-01-28
affects: linux-meta (Ubuntu) → linux (Ubuntu)
Changed in linux (Ubuntu):
status: New → Confirmed
Changed in linux (Ubuntu):
status: New → Confirmed
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 v3.8 kernel[0] (Not a kernel in the daily directory) and install both the linux-image and linux-image-extra .deb packages.

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'.

If you are unable to test the mainline kernel, for example it will not boot, please add the tag: 'kernel-unable-to-test-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/v3.8-rc5-raring/

Changed in linux (Ubuntu):
importance: Undecided → Medium
tags: added: quantal
Changed in linux (Ubuntu):
status: Confirmed → Incomplete

Hello,

After installing request kernel:

# dpkg --get-selections | fgrep 3.8.0
linux-headers-3.8.0-030800rc5 install
linux-headers-3.8.0-030800rc5-generic install
linux-image-3.8.0-030800rc5-generic install
linux-image-extra-3.8.0-030800rc5-generic install

It is impossible to boot, supposedly because of i915/Intel HD4000 issues. "Normal" boot leads to black screen (backlight turns off); "Recovery mode" leads to garbled output.
I tried disabling KMS, RC6, FBC: no change

Should I file a separate bug addressing the this i915/Intel HD4000 with the XPS 12?

tags: added: kernel-unable-to-test-upstream

Hello again,

I eventually have the i915/Intel HD4000 work along the 3.8 kernel: one must pass "i915.invert_brightness=1" kernel parameter

# lspci -vvv -nn -s 00:02.0
00:02.0 VGA compatible controller [0300]: Intel Corporation 3rd Gen Core processor Graphics Controller [8086:0166] (rev 09) (prog-if 00 [VGA controller])
 Subsystem: Dell Device [1028:0589]
 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
 Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
 Latency: 0
 Interrupt: pin A routed to IRQ 44
 Region 0: Memory at c0000000 (64-bit, non-prefetchable) [size=4M]
 Region 2: Memory at b0000000 (64-bit, prefetchable) [size=256M]
 Region 4: I/O ports at 2000 [size=64]
 Expansion ROM at <unassigned> [disabled]
 Capabilities: <access denied>
 Kernel driver in use: i915
 Kernel modules: i915

As for the Cypress Trackpad, it got even worse: it is now recognised a "ImPS/2 Generic Wheel Mouse", which is a regression compared to Quantal 3.5 Kernel:

# xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Atmel Atmel maXTouch Digitizer id=9 [slave pointer (2)]
⎜ ↳ ImPS/2 Generic Wheel Mouse id=12 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
    ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
[...]

tags: added: kernel-bug-exists-upstream
removed: kernel-unable-to-test-upstream

ERRATA: 'i915.invert_brightness=1' is *not* the way to go. Brightness is actually handled correclty... but when booting the XPS 12 with 3.8rc5, brightness is by default set to its minimum value (iow. off). One just needs to increase it with Fn+F5 to have the panel "wake up".

Note that this issue is also solved in the Quantal kernel, which, if I read correctly, incorporates all the quirks - for the brightness, trackpad, etc. - that have been developed as part of the Dell/Ubuntu Sputnik project (for the XPS 13). It appears none of this quirks are mainstream as per 3.8rc5 :-(

Kamal Mostafa (kamalmostafa) wrote :

Thanks for reporting this issue. I will investigate.

FYI, the Cypress PS/2 Trackpad driver is queued up for inclusion in mainline Linux 3.9, but my expectation is that that version will exhibit the same problem as you're seeing in the Ubuntu kernels. (So further testing of mainline kernels isn't necessary at this time).

Changed in linux (Ubuntu):
assignee: nobody → Kamal Mostafa (kamalmostafa)
status: Incomplete → Confirmed
Kamal Mostafa (kamalmostafa) wrote :

@Cédric - Yes, please do file a separate bug for the i915 brightness problem.

Changed in linux (Ubuntu):
status: Confirmed → In Progress
Tim Gardner (timg-tpi) on 2013-02-21
Changed in linux (Ubuntu Raring):
status: In Progress → Fix Committed
Duffie Cooley (opekstac4) wrote :

How do we test this fix?

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package linux - 3.8.0-7.15

---------------
linux (3.8.0-7.15) raring; urgency=low

  [ Kamal Mostafa ]

  * [Config] Add CONFIG_PS2_CYPRESS
  * SAUCE: Input: Cypress PS/2 Trackpad simulated multitouch
  * SAUCE: Input: fix Cypress PS/2 Trackpad in Dell XPS12
    - LP: #1103594

  [ Upstream Kernel Changes ]

  * Input: increase struct ps2dev cmdbuf[] to 8 bytes
  * Input: add support for Cypress PS/2 Trackpads
    - LP: #978807
 -- Tim Gardner <email address hidden> Thu, 21 Feb 2013 11:59:19 -0700

Changed in linux (Ubuntu Raring):
status: Fix Committed → Fix Released
Changed in linux (Ubuntu Precise):
assignee: nobody → Kamal Mostafa (kamalmostafa)
status: New → In Progress
Changed in linux (Ubuntu Quantal):
assignee: nobody → Kamal Mostafa (kamalmostafa)
status: New → In Progress
Kamal Mostafa (kamalmostafa) wrote :

The fix to enable the Cypress PS/2 trackpad in the Dell XPS12 (and possibly other laptops) now appears in the standard Ubuntu Raring kernel (as of 3.8.0-7.15) and is pending inclusion upstream in the mainline Linux 3.9 kernel.

The fix will also be applied to the standard Ubuntu Precise (12.04) and Quantal (12.10) kernels in the near future. In the meantime, the fix for those Ubuntu versions will be available via the Sputnik Project kernel PPA. Sputnik kernel version "kamal14" (available within a few hours) enables the Cypress trackpad on the XPS12:

  https://launchpad.net/~canonical-hwe-team/+archive/sputnik-kernel

My XPS 12 now works beautifully under Xubuntu 12.10 (quantal)
Thank you very very much!

GaryParr (gary-garyparr) wrote :

This resolved my touch pad issues, but it broke a work-around that I had been using to get some multi-touch on the screen. I don't want to hijack this thread, but can anyone point me towards some information on getting the touch screen on the XPS 12 working correctly (two-finger scroll, re-sizing, etc)?

Tim Gardner (timg-tpi) on 2013-04-04
Changed in linux (Ubuntu Precise):
status: In Progress → Fix Committed
Changed in linux (Ubuntu Quantal):
status: In Progress → Fix Committed
Steve Conklin (sconklin) on 2013-04-15
tags: added: verification-needed-precise
tags: added: verification-needed-quantal
Steve Conklin (sconklin) wrote :

This bug is awaiting verification that the 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' to 'verification-done'.

If verification is not done by one week 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!

Kamal Mostafa (kamalmostafa) wrote :

Hi XPS12 users- We'd like to have this fix verified for the standard Ubuntu Precise (12.04) and Quantal (12.10) kernels, as noted by Steve above. Unfortunately, I don't have access to an XPS12, so I need your assistance...

If you're running the Sputnik kernel (for Precise or Quantal), then the latest version can be used to verify the bug fix. Check that the command 'uname -a' output a line which includes "kamal16".

If instead, you're running the standard Ubuntu Precise or Quantal kernel (not the Sputnik kernel), then you can verify the fix by installing the -proposed kernel (See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed).

For either case, verify that the command 'xinput' includes a "CyPS/2" line, and that the touchpad works as expected, then report back your results and the kernel version you tested here.

Thanks in advance for your help!

GaryParr (gary-garyparr) wrote :

I have the Sputnik PPA and last time I checked I had the Kamal kernel. Because of this however, I just discovered I need to pay more attention to my updates. Anyway, I'm showing the CyPS/2 trackpad with the gemeric kernel, so I'm not sure if this confirms or denies anything.

gary@gannett:~$ uname -a
Linux gannett 3.5.0-27-generic #46-Ubuntu SMP Mon Mar 25 19:58:17 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
gary@gannett:~$ xinput | grep CyPS
⎜ ↳ CyPS/2 Cypress Trackpad id=12 [slave pointer (2)]

Brad Figg (brad-figg) wrote :

@GaryParr,

That is not the -proposed kernel which is the one we'd like tested. If you could install that and confirm life is good, that would be most helpful.

amcmorl (amcmorl) wrote :

I can confirm, using the quantal kernel with -proposed. I don't know if there are any new fancy features I should be looking out for with the touchpad, but two-finger vertical scrolling, and three-finger moving of windows both work and I have noticed that there is a Pointing Devices control panel now, with a CyPS/2 set of options for things like palm detection.

I hope that helps.

~$ sudo lshw
hostname
    description: Portable Computer
    product: XPS 12 9Q23 (xxx123x#ABA)
    vendor: Dell Inc.
    version: A05
<snip>

~$ uname -a
Linux ... 3.5.0-28-generic #47+kamal16~DellXPS-Ubuntu SMP Thu Apr 11 20:21:37 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

~$ xinput | grep CyP
⎜ ↳ CyPS/2 Cypress Trackpad id=12 [slave pointer (2)]

Kamal Mostafa (kamalmostafa) wrote :

@GaryParr and @amcmorl, thanks for your help. Amcmorl's verification from the kamal16 kernel (which is based on 3.5.0-28.47 -proposed) is sufficient for Ubuntu Quantal.

(So we're still looking for an XPS12 user running Ubuntu Precise 12.04.)

tags: added: verification-done-quantal
removed: verification-needed-quantal
Brad Figg (brad-figg) wrote :

We've been unable to find anyone running Precise on this particular hardware. However, this patch has been upstream for a while and the testing on Quantal has been good. Also, this is a pretty small patch which has been reviewed by several people so I think we can accept it for Precise.

tags: added: verification-done-precise
removed: verification-needed-precise

The verification of this Stable Release Update has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regresssions.

Launchpad Janitor (janitor) wrote :
Download full text (14.0 KiB)

This bug was fixed in the package linux - 3.2.0-41.66

---------------
linux (3.2.0-41.66) precise-proposed; urgency=low

  [Steve Conklin]

  * Release Tracking Bug
    - LP: #1172464

  [ Steve Conklin ]

  * Revert "drm/i915: GFX_MODE Flush TLB Invalidate Mode must be '1' for
    scanline waits"
    - LP: #1140716

  [ Upstream Kernel Changes ]

  * fbcon: fix locking harder
    - LP: #1168961, #1169380

linux (3.2.0-41.65) precise-proposed; urgency=low

  [Steve Conklin]

  * Release Tracking Bug
    - LP: #1167436

  [ John Johansen ]

  * SAUCE: (no-up) apparmor: Fix quieting of audit messages for network
    mediation
    - LP: #1163259

  [ Steve Conklin ]

  * SAUCE: Update configs for new efivars option
    - LP: #1164646

  [ Upstream Kernel Changes ]

  * Revert "powerpc/eeh: Fix crash when adding a device in a slot with DDW"
    - LP: #1164646
  * Input: cypress_ps2 - fix trackpadi found in Dell XPS12
    - LP: #1103594
  * btrfs: Init io_lock after cloning btrfs device struct
    - LP: #1164646
  * md: protect against crash upon fsync on ro array
    - LP: #1164646
  * NFS: Don't allow NFS silly-renamed files to be deleted, no signal
    - LP: #1164646
  * SUNRPC: Don't start the retransmission timer when out of socket space
    - LP: #1164646
  * storvsc: Initialize the sglist
    - LP: #1164646
  * dc395x: uninitialized variable in device_alloc()
    - LP: #1164646
  * ARM: VFP: fix emulation of second VFP instruction
    - LP: #1164646
  * ARM: fix scheduling while atomic warning in alignment handling code
    - LP: #1164646
  * md: fix two bugs when attempting to resize RAID0 array.
    - LP: #1164646
  * md: raid0: fix error return from create_stripe_zones.
    - LP: #1164646
  * proc connector: reject unprivileged listener bumps
    - LP: #1164646
  * ath9k: fix RSSI dummy marker value
    - LP: #1164646
  * ath9k_htc: fix signal strength handling issues
    - LP: #1164646
  * mwifiex: correct sleep delay counter
    - LP: #1164646
  * cifs: ensure that cifs_get_root() only traverses directories
    - LP: #1164646
  * xen/pci: We don't do multiple MSI's.
    - LP: #1164646
  * dm: fix truncated status strings
    - LP: #1164646
  * dm snapshot: add missing module aliases
    - LP: #1164646
  * drm/i915: Don't clobber crtc->fb when queue_flip fails
    - LP: #1164646
  * ARM: 7663/1: perf: fix ARMv7 EVTYPE_MASK to include NSH bit
    - LP: #1164646
  * hwmon: (pmbus/ltc2978) Fix peak attribute handling
    - LP: #1164646
  * hwmon: (pmbus/ltc2978) Use detected chip ID to select supported
    functionality
    - LP: #1164646
  * hwmon: (sht15) Check return value of regulator_enable()
    - LP: #1164646
  * hw_random: make buffer usable in scatterlist.
    - LP: #1164646
  * ALSA: vmaster: Fix slave change notification
    - LP: #1164646
  * drm/radeon: add primary dac adj quirk for R200 board
    - LP: #1164646
  * dmi_scan: fix missing check for _DMI_ signature in smbios_present()
    - LP: #1164646
  * iwlwifi: always copy first 16 bytes of commands
    - LP: #1164646
  * HID: add support for Sony RF receiver with USB product id 0x0374
    - LP: #1164646
  * HID: clean up quirk for Sony RF receivers
    - LP: #1164646
  * ...

Changed in linux (Ubuntu Precise):
status: Fix Committed → Fix Released
Launchpad Janitor (janitor) wrote :
Download full text (17.6 KiB)

This bug was fixed in the package linux - 3.5.0-28.48

---------------
linux (3.5.0-28.48) quantal-proposed; urgency=low

  [Brad Figg]

  * Release Tracking Bug
    - LP: #1172023

  [ Steve Conklin ]

  * Revert "drm/i915: GFX_MODE Flush TLB Invalidate Mode must be '1' for
    scanline waits"
    - LP: #1140716

  [ Upstream Kernel Changes ]

  * fbcon: fix locking harder
    - LP: #1167114

linux (3.5.0-28.47) quantal-proposed; urgency=low

  [Steve Conklin]

  * Release Tracking Bug
    - LP: #1166876

  [ Adam Lee ]

  * SAUCE: Bluetooth: Add support for 105b:e065
    - LP: #1161261

  [ John Johansen ]

  * SAUCE: (no-up) apparmor: Fix quieting of audit messages for network
    mediation
    - LP: #1163259

  [ Upstream Kernel Changes ]

  * NFSv4: Fix the string length returned by the idmapper
    - LP: #1101292
  * Input: cypress_ps2 - fix trackpadi found in Dell XPS12
    - LP: #1103594
  * omap_vout: find_vma() needs ->mmap_sem held
    - LP: #1164714
  * nfsd: Fix memleak
    - LP: #1164714
  * iommu/amd: Initialize device table after dma_ops
    - LP: #1164714
  * svcrpc: make svc_age_temp_xprts enqueue under sv_lock
    - LP: #1164714
  * target: Add missing mapped_lun bounds checking during make_mappedlun
    setup
    - LP: #1164714
  * xen-blkback: do not leak mode property
    - LP: #1164714
  * btrfs: Init io_lock after cloning btrfs device struct
    - LP: #1164714
  * NFS: Don't allow NFS silly-renamed files to be deleted, no signal
    - LP: #1164714
  * SUNRPC: Don't start the retransmission timer when out of socket space
    - LP: #1164714
  * storvsc: Initialize the sglist
    - LP: #1164714
  * dc395x: uninitialized variable in device_alloc()
    - LP: #1164714
  * ALSA: bt87x: Make load_all parameter working again
    - LP: #1164714
  * ARM: VFP: fix emulation of second VFP instruction
    - LP: #1164714
  * ARM: fix scheduling while atomic warning in alignment handling code
    - LP: #1164714
  * doc, xen: Mention 'earlyprintk=xen' in the documentation.
    - LP: #1164714
  * doc, kernel-parameters: Document 'console=hvc<n>'
    - LP: #1164714
  * sony-laptop: fully enable SNY controlled modems
    - LP: #1164714
  * x86: Make sure we can boot in the case the BDA contains pure garbage
    - LP: #1164714
  * cifs: ensure that cifs_get_root() only traverses directories
    - LP: #1164714
  * iscsi-target: Fix immediate queue starvation regression with DATAIN
    - LP: #1164714
  * ocfs2: fix ocfs2_init_security_and_acl() to initialize acl correctly
    - LP: #1164714
  * ocfs2: ac->ac_allow_chain_relink=0 won't disable group relink
    - LP: #1164714
  * block: fix ext_devt_idr handling
    - LP: #1164714
  * idr: fix a subtle bug in idr_get_next()
    - LP: #1164714
  * block: fix synchronization and limit check in blk_alloc_devt()
    - LP: #1164714
  * firewire: add minor number range check to fw_device_init()
    - LP: #1164714
  * idr: fix top layer handling
    - LP: #1164714
  * sysctl: fix null checking in bin_dn_node_address()
    - LP: #1164714
  * nbd: fsync and kill block device on shutdown
    - LP: #1164714
  * target/pscsi: Fix page increment
    - LP: #1164714
  * xen/pat: Disable PAT using pat_enabled...

Changed in linux (Ubuntu Quantal):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers