Red Hat Bugzilla – Bug 1299529
No touch input on Surface Pro 4
Last modified: 2017-04-04 09:31:01 EDT
Description of problem:
No touch input on Surface Pro 4
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Install Fedora 23
2. Install everything from updates-testing
Touch screen does not work
Touch screen works
Has the touchscreen ever worked with a Fedora kernel on this machine?
Unknown. Never had this machine before now, and Fedora 23 is the only Linux system that's been installed on it.
Please attach the output of dmesg from a fresh boot.
Created attachment 1115960 [details]
Possible point of interest - on a Surface Pro 3 running Fedora 23 from live usb, the touch screen works great.
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?
(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 :(
Fair enough :). I was just curious if you knew about any upstream work, that's all. Thanks for answering.
(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
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? :]
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, 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.
Created attachment 1117006 [details]
dmesg from Surface Pro 3
dmesg from Surface Pro 3 with working touch, for comparison
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.
Indeed On SP4 touch algorithms runs on GPU so traditional drivers does not work, including SP3.
Here is the github link for kernel driver:
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
*********** 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.
(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).
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: