Linux Developer Systems

Last reply by 12-05-2016 Unsolved
Start a Discussion
2 Bronze
2 Bronze
66696

xps9350: touchscreen stops working after sleep

Running a 4.3 kernel: touchscreen works great on boot, but fails after sleep/resume. I've tried the following to no avail:

 * rmmod hid_multitouch  && sleep 5 && modprobe hid_multitouch

This does reveal in /var/log/syslog:

Nov 9 22:44:16 morel kernel: [32441.878773] input: ELAN Touchscreen as /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/0003:04F3:20D0.0001/input/input34
Nov 9 22:44:16 morel kernel: [32441.932623] hid-multitouch 0003:04F3:20D0.0001: input,hiddev0,hidraw0: USB HID v1.10 Device [ELAN Touchscreen] on usb-0000:00:14.0-4/input0

-- no errors visible, but the touchscreen simply doesn't work.

Thoughts on how I can debug or report further?

Replies (20)
2 Bronze
2 Bronze
3042

Same problem for me - on 16.04.

2 Bronze
2 Bronze
3042

Apparently (I haven't tested), your fix works with kernel 4.6.  See bbs.archlinux.org/viewtopic.php

2 Bronze
2 Bronze
3042

After some experiments, this did work for me:

$ sudo inputattach --daemon -w8001 /dev/ttyS4

...what I don't understand, because my ELAN Touchscreen is definitely not on serial port so there should not be reason to use inputattach at all.

The problem with this is that inputattach process gets D status (uninterruptible sleep) so it makes the suspend/resume to take about 20 seconds (which is some timeout) and sometimes it does not work at all. Since you cannot kill this proccess, it is quite sad and it might imply any other issues eventually.

So this is not solution but might be some indice to find out what the real problem is. I also see this:

$ dmesg | grep -ie elan
[ 7.637031] usb 1-4: Manufacturer: ELAN
[ 10.101754] input: ELAN Touchscreen as /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/0003:04F3:20D0.0001/input/input12
[ 10.101852] hid-multitouch 0003:04F3:20D0.0001: input,hiddev0,hidraw0: USB HID v1.10 Device [ELAN Touchscreen] on usb-0000:00:14.0-4/input0
[ 698.403796] input: ELAN Touchscreen as /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/0003:04F3:20D0.0001/input/input18
[ 698.404299] hid-multitouch 0003:04F3:20D0.0001: input,hiddev0,hidraw0: USB HID v1.10 Device [ELAN Touchscreen] on usb-0000:00:14.0-4/input0

...I wonder why it is input18 instead of input12 after first resume (might change after another suspend/resume?!). So maybe, there is something waiting for input12 but it has changed to input18 while something expects it on 12? I don't know.

That's just my two cents, and I am hefeby joining the question how to fix this completely and properly :)

Not applicable
3042

same problem here  with xps 13 DE 9350 running ubuntu 16.04 kernel 4.4 (or latest kernel 4.7).

I have found a weird workaround:

close the lid just to enter suspend state, but then reopen it quickly, so that it stays in suspend state even when the lid is open. Then press power button to wake it up. Then the touchscreen works again ! 

2 Bronze
2 Bronze
3042

Yes, I confirm that works for me too.  With the 4.4 kernel, 16.04.

2 Bronze
2 Bronze
3042

Awesome find :-)  Works well.

2 Bronze
2 Bronze
3042

Wonderful! I did it very quickly so that I didn't have to press the power button and it just locked screen and started to work again. Given this, we may be able to do some kernel debugging now...

2 Bronze
2 Bronze
3042

Yeah, the quick lid close works for me as well. Weird.

Any luck debugging this further?

2 Bronze
2 Bronze
3042

Can also confirm same workaround works. Don't even have to close the lid fully, just move it down a bit then up - the display doesn't even go dark - and touch is working again.

Latest Solutions
Top Contributor