Bug 100341
Summary: | Surface Pro 3 Type Cover doesn't work (product id == 0x07e2 instead of 0x07dc) | ||
---|---|---|---|
Product: | Drivers | Reporter: | Patrick R. Michaud (pmichaud) |
Component: | Input Devices | Assignee: | drivers_input-devices |
Status: | NEW --- | ||
Severity: | normal | CC: | code, itsme_410, k4nh, ronny.standtke, shvr |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 3.19 and later | Subsystem: | |
Regression: | No | Bisected commit-id: |
Description
Patrick R. Michaud
2015-06-22 20:59:26 UTC
Correction: the part number on my keyboard is RD2-00080 (typo in original post, sorry about that). Does this work with the 4.0 kernels? These are provided in Fedora 22. I've not tried the 4.0 kernels as yet... but having looked through the kernel sources for 4.0.6 and 4.1 I don't see the 0x07e2 ID listed in hid-ids.h . I'll be glad to try loading Fedora 22 if that would be useful. Pm I just ran the Fedora 22 Live Image on my Surface Pro 3, and with the 4.0.4 kernel (the one used in the Live Image) the Type Cover Keyboard does not work. In Kubuntu 15.04, the relevant output I get from dmesg is: [ 1.866285] usb 1-3: new full-speed USB device number 2 using xhci_hcd [ 1.994694] usb 1-3: No LPM exit latency info found, disabling LPM. [ 1.996342] usb 1-3: New USB device found, idVendor=045e, idProduct=07e2 [ 1.996346] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 1.996349] usb 1-3: Product: Surface Type Cover [ 1.996351] usb 1-3: Manufacturer: Microsoft Pm Thanks! What is the kernel that you have in Kubuntu 15.04? I don't see why this would be different, but did you try the KDE spin of Fedora? https://spins.fedoraproject.org/en/kde/ Do you get the dmesg after you change the definition of USB_DEVICE_ID_MS_TYPE_COVER_3 in drivers/hid/hid-ids.h to the 0x07e2 value? Is this a bug in the kernel that needs to be fixed? Many thanks! Using the KDE spin of Fedora 22, I get: [liveuser@localhost ~]$ uname -a Linux strawberry 4.0.4-301.fc22.x86_64 #1 SMP Thu May 21 13:10:33 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux and the relevant section of dmesg: [ 2.141873] usb 1-3: new full-speed USB device number 3 using xhci_hcd [ 2.306789] usb 1-3: No LPM exit latency info found, disabling LPM. [ 2.307765] usb 1-3: New USB device found, idVendor=045e, idProduct=07e2 [ 2.307768] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 2.307771] usb 1-3: Product: Surface Type Cover [ 2.307773] usb 1-3: Manufacturer: Microsoft With Fedora 22 Workstation, I get: [liveuser@localhost ~]$ uname -a Linux strawberry 4.0.4-301.fc22.x86_64 #1 SMP Thu May 21 13:10:33 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux [ 2.123072] usb 1-3: new full-speed USB device number 3 using xhci_hcd [ 2.287958] usb 1-3: No LPM exit latency info found, disabling LPM. [ 2.288940] usb 1-3: New USB device found, idVendor=045e, idProduct=07e2 [ 2.288941] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 2.288943] usb 1-3: Product: Surface Type Cover [ 2.288944] usb 1-3: Manufacturer: Microsoft With Ubuntu 15.04, I'm getting: ubuntu@ubuntu:~$ uname -a Linux ubuntu 3.19.0-15-generic #15-Ubuntu SMP Thu Apr 16 23:32:37 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux dmesg: [ 7.555495] usb 1-3: new full-speed USB device number 3 using xhci_hcd [ 7.684466] usb 1-3: No LPM exit latency info found, disabling LPM. [ 7.685652] usb 1-3: New USB device found, idVendor=045e, idProduct=07e2 [ 7.685654] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 7.685655] usb 1-3: Product: Surface Type Cover The Type Cover keyboard doesn't work with any of these "stock" kernels... the only time it has worked is when I've recompiled the kernel (3.19) to have USB_DEVICE_ID_MS_TYPE_COVER_3 as 0x07e2 instead of 0x07dc. I haven't tried building a 4.x kernel yet but given the Fedora 22 results above (and having checked the 4.x sources) I'm fairly certain I'll have the same issue. So yes, I consider this a bug in the kernel that needs fixing... more precisely, the kernel needs to be updated to accept both 0x07dc and 0x07e2 as valid USB ids for the Type Cover keyboard. Pm Another 0x07e2 Type Cover owner here. I can confirm that the keyboard does not work under kernel 4.1.1 (Arch), unless USB_DEVICE_ID_MS_TYPE_COVER_3 is changed to 0x07e2. A patch like this one to add more recognised USB IDs would probably do the trick - https://github.com/badmadrad/surface-pro-3/blob/master/typecover.patch I've written a patch and submitted it to the linux-input mailing list. See: http://news.gmane.org/gmane.linux.kernel.input For reference, the patch was written against 4.3-rc1. (In reply to Donavan Lance from comment #8) > I've written a patch and submitted it to the linux-input mailing list. See: > http://news.gmane.org/gmane.linux.kernel.input It was a little bit difficult finding your message on LKML with the link above. Here is a more direct link: http://thread.gmane.org/gmane.linux.kernel.input/45707 Looks like we are getting this fixed in 4.4, great! I install the 4.4.1 Kernel and the type cover 3 works but not type cover 4 on my Surface Pro 3 i3 uname -a Linux k4nh-Surface-Pro-3 4.4.1-040401-generic #201601311534 SMP Sun Jan 31 20:36:43 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux lsusb // working type 3 Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 004: ID 045e:07bf Microsoft Corp. Bus 001 Device 003: ID 045e:07be Microsoft Corp. Bus 001 Device 005: ID 1286:204b Marvell Semiconductor, Inc. Bus 001 Device 006: ID 045e:07dc Microsoft Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub //not working type 4 Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 004: ID 045e:07bf Microsoft Corp. Bus 001 Device 003: ID 045e:07be Microsoft Corp. Bus 001 Device 005: ID 1286:204b Marvell Semiconductor, Inc. Bus 001 Device 007: ID 045e:07e8 Microsoft Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub |