Bug 1299529

Summary: No touch input on Surface Pro 4
Product: [Fedora] Fedora Reporter: Jerry Amundson <jamundso>
Component: kernelAssignee: Kernel Maintainer List <kernel-maint>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: rawhideCC: acoskunses, ben.mueller1998, btissoir, customercare, gansalmon, itamar, jonathan, kernel-maint, madhu.chinakonda, mchehab, yuzvir
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-07-13 23:57:48 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
dmesg
none
dmesg from Surface Pro 3 none

Description Jerry Amundson 2016-01-18 15:22:22 UTC
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 16:18:16 UTC
Has the touchscreen ever worked with a Fedora kernel on this machine?

Comment 2 Jerry Amundson 2016-01-18 19:00:39 UTC
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 19:11:12 UTC
Please attach the output of dmesg from a fresh boot.

Comment 4 Jerry Amundson 2016-01-18 20:33:47 UTC
Created attachment 1115960 [details]
dmesg

Comment 5 Jerry Amundson 2016-01-18 22:05:22 UTC
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 15:24:50 UTC
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 16:09:38 UTC
(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 16:14:50 UTC
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 17:17:11 UTC
(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 17:03:39 UTC
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 20:15:22 UTC
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 07:55:10 UTC
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 15:53:14 UTC
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 19:35:17 UTC
*********** 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 15:11:20 UTC
Still present.

Comment 16 Benjamin Tissoires 2016-10-07 16:24:25 UTC
(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 20:27:17 UTC
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

Comment 18 Andrey U. 2018-09-04 18:19:04 UTC
The issue is still present in the latest fedora 28 kernel (4.17.19).  
Kernel patches for IPTS support could be found here -
 https://github.com/jakeday/linux-surface

Comment 19 customercare 2020-09-21 15:01:03 UTC
check out https://github.com/linux-surface/kernel for working and touchaware kernels.

Comment 20 customercare 2022-07-13 16:38:40 UTC
as this will never be addressed in Fedora Linux, pls close this bug as "won't fix"