Bug 1299529 - No touch input on Surface Pro 4
No touch input on Surface Pro 4
Status: NEW
Product: Fedora
Classification: Fedora
Component: kernel (Show other bugs)
rawhide
x86_64 Linux
unspecified Severity medium
: ---
: ---
Assigned To: Kernel Maintainer List
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2016-01-18 10:22 EST by Jerry Amundson
Modified: 2017-04-04 09:31 EDT (History)
9 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed:
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
dmesg (96.46 KB, text/plain)
2016-01-18 15:33 EST, Jerry Amundson
no flags Details
dmesg from Surface Pro 3 (70.54 KB, text/plain)
2016-01-21 15:15 EST, Jerry Amundson
no flags Details

  None (edit)
Description Jerry Amundson 2016-01-18 10:22:22 EST
Description of problem:
No touch input on Surface Pro 4

Version-Release number of selected component (if applicable):
kernel-4.3.3-301.fc23.x86_64

How reproducible:
Always

Steps to Reproduce:
1. Install Fedora 23
2. Install everything from updates-testing
3.

Actual results:
Touch screen does not work

Expected results:
Touch screen works

Additional info:
Comment 1 Josh Boyer 2016-01-18 11:18:16 EST
Has the touchscreen ever worked with a Fedora kernel on this machine?
Comment 2 Jerry Amundson 2016-01-18 14:00:39 EST
Unknown. Never had this machine before now, and Fedora 23 is the only Linux system that's been installed on it.
Comment 3 Josh Boyer 2016-01-18 14:11:12 EST
Please attach the output of dmesg from a fresh boot.
Comment 4 Jerry Amundson 2016-01-18 15:33 EST
Created attachment 1115960 [details]
dmesg
Comment 5 Jerry Amundson 2016-01-18 17:05:22 EST
Possible point of interest - on a Surface Pro 3 running Fedora 23 from live usb, the touch screen works great.
Comment 6 Josh Boyer 2016-01-19 10:24:50 EST
Benjamin, I'm guessing support for the Surface Pro 4 hasn't landed upstream yet.  Is that accurate and do you know of anyone currently working on it?
Comment 7 Benjamin Tissoires 2016-01-19 11:09:38 EST
(In reply to Josh Boyer from comment #6)
> Benjamin, I'm guessing support for the Surface Pro 4 hasn't landed upstream
> yet.  Is that accurate and do you know of anyone currently working on it?

I have seen few reports regarding the Surface Pro 4, but no patch/driver. I am not sure which bus they are using for the touchscreen, if it is SPI or I2C.

It's the type of things where I do not want to get involved too much if I don't have the hardware, and I also don't want to have the hardware given the pile of work I have to do :(
Comment 8 Josh Boyer 2016-01-19 11:14:50 EST
Fair enough :).  I was just curious if you knew about any upstream work, that's all.  Thanks for answering.
Comment 9 Jerry Amundson 2016-01-19 12:17:11 EST
(In reply to Benjamin Tissoires from comment #7)
> (In reply to Josh Boyer from comment #6)
> > Benjamin, I'm guessing support for the Surface Pro 4 hasn't landed upstream
> > yet.  Is that accurate and do you know of anyone currently working on it?
> 
> I have seen few reports regarding the Surface Pro 4, but no patch/driver. I
> am not sure which bus they are using for the touchscreen, if it is SPI or
> I2C.

I'll help where I can. SPI or I2C - how do I determine which is used?

> It's the type of things where I do not want to get involved too much if I
> don't have the hardware, and I also don't want to have the hardware given
> the pile of work I have to do :(

I can relate to piles of work, but I'm just looking for for insight as to the upstream side...
I'm a very interested third-party here, so it's worth repeating - I'd like to help! I'm capable of swimming upstream, if it's toward a high quality pond. [sorry, too much? :]
Comment 10 Benjamin Tissoires 2016-01-21 12:03:39 EST
I'd be happy to guide you, but I am a little bit clueless regarding SPI. I know that there is a spi-ntrig driver around[1], that might give a clue on how to interact with SPI.

For I2C, there should be an entry in the DSDT listing it if it is using HID over I2C. IIRC there is a MSHW0030 device not enumerated according to the dmesg, but that may just be a sensor hub which doesn't show up in the dmesg.

The toughest part is generally to get an answer from the touchscreen, and once you got it, things start getting much easier. But I can not help unfortunately for this part.


[1] https://searchcode.com/codesearch/view/44981950/
Comment 11 Jerry Amundson 2016-01-21 15:15 EST
Created attachment 1117006 [details]
dmesg from Surface Pro 3

dmesg from Surface Pro 3 with working touch, for comparison
Comment 12 Benjamin Tissoires 2016-04-18 03:55:10 EDT
Resurrecting this a bit. I somehow was asked to investigate a little bit more the various Surfaces, and I have little hope for the Pro 4.

There is one project that aims at retro-engineering the touchscreen: https://github.com/jimdigriz/intel-precise-touch
There is a user-space "driver" that currently does not do a lot (some initialization), but doesn't look like it's processing any events.

The problem being that "Intel Precise Touch" is supposed to use the GPU somehow to process the incoming reports, so we might receive from the PCI line the full raw image that we need to analyze after, and this will be costly.
Comment 13 Arda Coskunses 2016-07-25 11:53:14 EDT
Indeed On SP4 touch algorithms runs on GPU so traditional drivers does not work, including SP3.

Here is the github link for kernel driver: 

https://github.com/ipts-linux-org/ipts-linux/wiki

Touch screen, Surface Pro pen should work after this.

IPTS stands for: Intel Precision Touch and Stylus.

In this github repo there is specific kernel with IPTS Touch screen driver.

Sorry for picking up a specific kernel but patches must be applicable to any kernel after 4.4
Comment 14 Laura Abbott 2016-09-23 15:35:17 EDT
*********** MASS BUG UPDATE **************
 
We apologize for the inconvenience.  There is a large number of bugs to go through and several of them have gone stale.  Due to this, we are doing a mass bug update across all of the Fedora 23 kernel bugs.
 
Fedora 23 has now been rebased to 4.7.4-100.fc23.  Please test this kernel update (or newer) and let us know if you issue has been resolved or if it is still present with the newer kernel.
 
If you have moved on to Fedora 24 or 25, and are still experiencing this issue, please change the version to Fedora 24 or 25.
 
If you experience different issues, please open a new bug report for those.
Comment 15 Jerry Amundson 2016-10-03 11:11:20 EDT
Still present.
Comment 16 Benjamin Tissoires 2016-10-07 12:24:25 EDT
(In reply to Jerry Amundson from comment #15)
> Still present.

Well, until this gets merged upstream, I can't see a way for Fedora to have it. Moving the bug to rawhide to limit the mass bug updates :) (I am pretty sure there will be some, still).
Comment 17 Ben M. 2016-12-26 15:27:17 EST
Update for kernel 4.9-

Apparently the GPU code was changed between 4.4 and 4.9, so someone refactored/redid the IPTS (Intel Precision Touch and Stylus) code as well. The new version can be found here:
https://github.com/ipts-linux-org/ipts-linux-new/wiki

Note You need to log in before you can comment on or make changes to this bug.