Bug 1143812 - i2c-hid touchpad doesn't work after sleep
Summary: i2c-hid touchpad doesn't work after sleep
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: kernel
Version: 20
Hardware: x86_64
OS: Linux
unspecified
unspecified
Target Milestone: ---
Assignee: Kernel Maintainer List
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-09-18 04:24 UTC by Adam Drew
Modified: 2014-10-11 06:51 UTC (History)
7 users (show)

Fixed In Version: kernel-3.16.4-200.fc20
Clone Of:
Environment:
Last Closed: 2014-10-11 06:51:45 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
Patch backport to resolve i2c-hid sleep issue (1.48 KB, text/plain)
2014-09-18 04:24 UTC, Adam Drew
no flags Details
dmesg from Acer Aspire E5-571-563B (69.75 KB, text/plain)
2014-09-18 15:29 UTC, Adam Drew
no flags Details

Description Adam Drew 2014-09-18 04:24:17 UTC
Created attachment 938740 [details]
Patch backport to resolve i2c-hid sleep issue

Description of problem:
On wake from sleep touchpad doesn't work. Driver is i2c-hid. Found upsteam patch:

http://www.spinics.net/lists/kernel/msg1783862.html

Backported to  3.16.2-200.fc20. Confirmed touchpad works after resume frpm sleep with backported patch. Patch and test kernel RPM attached to BZ.


Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

Comment 1 Adam Drew 2014-09-18 04:29:40 UTC
Link to test kernel with backported patch:
http://1drv.ms/1mgKEoY

I'm running this kernel and it resolves the wake from sleep issue.

Comment 2 Josh Boyer 2014-09-18 11:37:05 UTC
Benjamin, this is upstream commit 109571cf3ec78a39477eedd6b11927f52cbcb1e8.  Should that be CC'd to stable?

Comment 3 Benjamin Tissoires 2014-09-18 14:27:00 UTC
Josh, I am rather conservative regarding the backports to stable, and so is Jiri (I think he is even more conservative than I am). IMO, this patch is only valuable for the 3.16 series:
- there are *very* few i2c-hid devices around
- most of them are touchscreens, and do not need this callbacks to be implemented (win 8 devices are working without the need to set a specific mode)
- the only driver which requires it and which devices are available is hid-rmi, which starts appearing upstream in 3.16.

Given that there are not so many distributions on 3.16, I wonder if we really need to backport it to stable (that patch will be in 3.17). If you really think we should backport it, I'll send it to stable requesting it for 3.16.

Comment 4 Josh Boyer 2014-09-18 14:32:42 UTC
If you don't find it worthwhile to do upstream, then that's fine.  Unless you have objections, I can carry it as a patch in Fedora 3.16 kernels.  I might get questions on why it isn't in stable if I do that, which is why I asked.  Your reasoning seems fine with me.

Comment 5 Adam Drew 2014-09-18 14:35:48 UTC
For context: I bought a new Acer laptop that has a fancy multitouch trackpad on it. It works great in F20, but there was the whole wake from sleep thing. I found the patch, patched the latest F20 kernel, and it fixed the problem. 

It probably wont bite too many people. If F21 is going to be >= 3.17 then you might not need to backport. Just wanted to make y'all aware, and make sure that if anyone else ran into this they could find a fix.

Thanks!

Comment 6 Benjamin Tissoires 2014-09-18 15:07:32 UTC
(In reply to Josh Boyer from comment #4)
> If you don't find it worthwhile to do upstream, then that's fine.  Unless
> you have objections, I can carry it as a patch in Fedora 3.16 kernels.  I
> might get questions on why it isn't in stable if I do that, which is why I
> asked.  Your reasoning seems fine with me.

Carrying it as a 3.16 fedora patch is definitively fine with me.
As for the questions, you can still refer to this bug, or just ask me to push it to stable later on. But yeah, 3.17 is 3 weeks from now, and backporting it to 3.16 will take about the same time...


(In reply to Adam Drew from comment #5)
> For context: I bought a new Acer laptop that has a fancy multitouch trackpad
> on it. It works great in F20, but there was the whole wake from sleep thing.
> I found the patch, patched the latest F20 kernel, and it fixed the problem. 
>

Can you put the model of the laptop somewhere in the bug so that people with the same line can find this bug easier?
Also, can you attach a dmesg of it, just so that we know what is in the beast?

> It probably wont bite too many people. If F21 is going to be >= 3.17 then
> you might not need to backport. Just wanted to make y'all aware, and make
> sure that if anyone else ran into this they could find a fix.
> 

And that is definitively appreciated, especially when you come with the commit to backport in the hand!
Thanks!

Comment 7 Adam Drew 2014-09-18 15:29:29 UTC
Created attachment 938951 [details]
dmesg from Acer Aspire E5-571-563B

The laptop is an Acer Aspire E15 series E5-571-563B. I think the trackpad is by Syanptics.

From xinput:
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ SYN1B7E:01 06CB:2970 UNKNOWN            	id=11	[slave  pointer  (2)]
⎜   ↳ USB Optical Mouse                       	id=14	[slave  pointer  (2)]

And synclient reports params for it:
[adam@saturn tmp]$ synclient 
Parameter settings:
    LeftEdge                = 49
    RightEdge               = 1187
    TopEdge                 = 48
    BottomEdge              = 850
    FingerLow               = 25
    FingerHigh              = 30
    MaxTapTime              = 180
...

I'm not quite sure why i2c-hid is the driver for this, but there's something weird about it. It doesn't hang off the USB bus:

[adam@saturn tmp]$ lsusb
Bus 001 Device 002: ID 8087:8000 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 003: ID 04f2:b469 Chicony Electronics Co., Ltd 
Bus 002 Device 004: ID 04ca:300b Lite-On Technology Corp. 
Bus 002 Device 006: ID 0461:4d0f Primax Electronics, Ltd HP Optical Mouse
Bus 002 Device 005: ID 0a4d:129d Evolution Electronics, Ltd 
Bus 002 Device 007: ID 0763:2012 Midiman M-Audio Fast Track Pro
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Because it doesn't hang off the USB bus I only found it due to this:
Sep 16 19:41:02 saturn kernel: [   10.250721] input: SYN1B7E:01 06CB:2970 UNKNOWN as /devices/pci0000:00/INT33C3:00/i2c-8/i2c-SYN1B7E:01/0018:06CB:2970.0001/input/input8

It sorta seems like it acts like a touchscreen rather than a trackpad. Pretty weird.

Hope this helps in some way!

Comment 8 Benjamin Tissoires 2014-09-18 15:55:24 UTC
(In reply to Adam Drew from comment #7)
> Created attachment 938951 [details]
> dmesg from Acer Aspire E5-571-563B

Thanks

> 
> The laptop is an Acer Aspire E15 series E5-571-563B. I think the trackpad is
> by Syanptics.

SYNXXXX is the ACPI Vendor ID from Synaptics, yes.

> I'm not quite sure why i2c-hid is the driver for this, but there's something
> weird about it. It doesn't hang off the USB bus:
> 
> [adam@saturn tmp]$ lsusb
> Bus 001 Device 002: ID 8087:8000 Intel Corp. 
> Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
> Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
> Bus 002 Device 003: ID 04f2:b469 Chicony Electronics Co., Ltd 
> Bus 002 Device 004: ID 04ca:300b Lite-On Technology Corp. 
> Bus 002 Device 006: ID 0461:4d0f Primax Electronics, Ltd HP Optical Mouse
> Bus 002 Device 005: ID 0a4d:129d Evolution Electronics, Ltd 
> Bus 002 Device 007: ID 0763:2012 Midiman M-Audio Fast Track Pro
> Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Yep, your touchpad is connected through the I2C bus, not USB, so lsusb will not show it. And because there is no enumeration capabilities on i2c, there is no lsi2c command.

> 
> Because it doesn't hang off the USB bus I only found it due to this:
> Sep 16 19:41:02 saturn kernel: [   10.250721] input: SYN1B7E:01 06CB:2970
> UNKNOWN as
> /devices/pci0000:00/INT33C3:00/i2c-8/i2c-SYN1B7E:01/0018:06CB:2970.0001/
> input/input8
> 
> It sorta seems like it acts like a touchscreen rather than a trackpad.
> Pretty weird.

Actually no. Your touchpad is following the Microsoft Precision Touchpad specification. This spec finally says that touchpads can forward raw touch events if they say that they are touchpads (we had this in Linux since the support of Win 7 touchscreens). So the handling is the same than touchscreens, but in the driver, we put a flag saying that this is a touchpad, and then in xf86-input-synaptics handles it.

> 
> Hope this helps in some way!

Thanks for the logs, it helps!

Comment 9 Josh Boyer 2014-09-22 12:58:16 UTC
I've added the patch to F20 and F21.  It will be in the next build of each.  Thanks again everyone.

Comment 10 Fedora Update System 2014-10-07 02:50:08 UTC
kernel-3.16.4-200.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/kernel-3.16.4-200.fc20

Comment 11 Fedora Update System 2014-10-08 19:04:35 UTC
Package kernel-3.16.4-200.fc20:
* should fix your issue,
* was pushed to the Fedora 20 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing kernel-3.16.4-200.fc20'
as soon as you are able to, then reboot.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2014-12366/kernel-3.16.4-200.fc20
then log in and leave karma (feedback).

Comment 12 Fedora Update System 2014-10-11 06:51:45 UTC
kernel-3.16.4-200.fc20 has been pushed to the Fedora 20 stable repository.  If problems still persist, please make note of it in this bug report.


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