Bug 1260455
Summary: | Dell AIO WMI hotkeys (dell_wmi_aio) driver does not emit input device events on Dell XPS One 2710 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | major <major> | ||||||||
Component: | kernel | Assignee: | Kernel Maintainer List <kernel-maint> | ||||||||
Status: | CLOSED INSUFFICIENT_DATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||||
Severity: | low | Docs Contact: | |||||||||
Priority: | unspecified | ||||||||||
Version: | 22 | CC: | gansalmon, itamar, jonathan, kernel-maint, madhu.chinakonda, mchehab | ||||||||
Target Milestone: | --- | Flags: | jforbes:
needinfo?
|
||||||||
Target Release: | --- | ||||||||||
Hardware: | x86_64 | ||||||||||
OS: | Linux | ||||||||||
Whiteboard: | |||||||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||||||
Doc Text: | Story Points: | --- | |||||||||
Clone Of: | Environment: | ||||||||||
Last Closed: | 2015-11-23 17:18:30 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: |
|
Created attachment 1070785 [details]
Decompiled dsdt.dat (iasl -d dsdt.dat)
Created attachment 1070786 [details]
Recompiled dsdt.dsl (iasl -tc dsdt.dsl)
*********** 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 22 kernel bugs. Fedora 22 has now been rebased to 4.2.3-200.fc22. 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 23, and are still experiencing this issue, please change the version to Fedora 23. If you experience different issues, please open a new bug report for those. *********** MASS BUG UPDATE ************** This bug is being closed with INSUFFICIENT_DATA as there has not been a response in over 4 weeks. If you are still experiencing this issue, please reopen and attach the relevant data from the latest kernel you are running and any data that might have been requested previously. |
Created attachment 1070784 [details] ACPI DSDT table from /sys/firmware/acpi/tables/DSDT My friend's Dell XPS One 2710 (BIOS Revision A12, Bios Build Date 08/27/2013) has lighted control buttons on the lower right of the screen for changing audio volume, screen brightness, video source, and cdrom eject. I verified all tests in single user mode with no other processes grabbing the input device events. I observed problems that are summarized in the following table showing the control, whether or not the control works properly, whether or not the onscreen display works properly, the netlink message, and the input device event: =============================================================================== control | works? | onscreen? | netlink message | event =============================================================================== volume down | no | no | "PNP0C14:00 000000c1 00000000" | (none) volume up | no | no | "PNP0C14:00 000000c0 00000000" | (none) brightness down | yes | yes | (none) | (none) brightness up | yes | yes | (none) | (none) Computer to HDMI | yes | yes | "PNP0C14:00 000000c4 00000000" | (none) HDMI to Computer | yes | yes | "PNP0C14:00 000000c5 00000000" | (none) cdrom eject | no | no | "PNP0C14:00 000000c6 00000000" | (none) =============================================================================== The following key_entry structure array from the driver "linux-4.1.6/drivers/platform/x86/dell-wmi-aio.c" seems to match the volume keys for "c0" and "c1", but they do not work. The other keys do not seem to match. static const struct key_entry dell_wmi_aio_keymap[] = { { KE_KEY, 0xc0, { KEY_VOLUMEUP } }, { KE_KEY, 0xc1, { KEY_VOLUMEDOWN } }, { KE_KEY, 0xe030, { KEY_VOLUMEUP } }, { KE_KEY, 0xe02e, { KEY_VOLUMEDOWN } }, { KE_KEY, 0xe020, { KEY_MUTE } }, { KE_KEY, 0xe027, { KEY_DISPLAYTOGGLE } }, { KE_KEY, 0xe006, { KEY_BRIGHTNESSUP } }, { KE_KEY, 0xe005, { KEY_BRIGHTNESSDOWN } }, { KE_KEY, 0xe00b, { KEY_SWITCHVIDEOMODE } }, { KE_END, 0 } }; The following contains commands and responses for diagnosis. [major@empress ~]$ uname -a Linux empress.localdomain 4.1.6-200.fc22.x86_64 #1 SMP Mon Aug 17 19:54:31 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux [root@empress ~]# cat /etc/modprobe.d/custom-wmi.conf options wmi debug_event=1 debug_dump_wdg=1 [major@empress ~]$ lsmod | grep wmi dell_wmi_aio 16384 0 sparse_keymap 16384 1 dell_wmi_aio wmi 20480 1 dell_wmi_aio The following evtest command does not produce any events. [root@empress ~]# evtest No device specified, trying to scan all of /dev/input/event* Available devices: /dev/input/event0: Power Button /dev/input/event1: Power Button /dev/input/event2: Video Bus /dev/input/event3: Dell Dell KM713 Wireless Keyboard and Mouse /dev/input/event4: Dell Dell KM713 Wireless Keyboard and Mouse /dev/input/event5: Dell Dell KM713 Wireless Keyboard and Mouse /dev/input/event6: Fintek LPC SuperIO Consumer IR Transceiver /dev/input/event7: MCE IR Keyboard/Mouse (fintek-cir) /dev/input/event8: Dell AIO WMI hotkeys /dev/input/event9: HDA Intel PCH Mic /dev/input/event10: HDA Intel PCH Headphone /dev/input/event11: HDA Intel PCH HDMI/DP,pcm=3 /dev/input/event12: Laptop_Integrated_Webcam_FHD Select the device event number [0-12]: 8 Input driver version is 1.0.1 Input device ID: bus 0x19 vendor 0x0 product 0x0 version 0x0 Input device name: "Dell AIO WMI hotkeys" Supported events: Event type 0 (EV_SYN) Event type 1 (EV_KEY) Event code 113 (KEY_MUTE) Event code 114 (KEY_VOLUMEDOWN) Event code 115 (KEY_VOLUMEUP) Event code 224 (KEY_BRIGHTNESSDOWN) Event code 225 (KEY_BRIGHTNESSUP) Event code 227 (KEY_SWITCHVIDEOMODE) Event code 240 (KEY_UNKNOWN) Event code 431 (KEY_DISPLAYTOGGLE) Event type 4 (EV_MSC) Event code 4 (MSC_SCAN) Properties: Testing ... (interrupt to exit) [root@empress ~]# journalctl -b0 | grep -i wmi Sep 06 14:50:23 empress.localdomain kernel: wmi: 02314822-307C-4F66-BF0E-48AEAEB26CC8: Sep 06 14:50:23 empress.localdomain kernel: wmi: notify_id: C0 Sep 06 14:50:23 empress.localdomain kernel: wmi: reserved: 00 Sep 06 14:50:23 empress.localdomain kernel: wmi: instance_count: 1 Sep 06 14:50:23 empress.localdomain kernel: wmi: flags: 0x8 ACPI_WMI_EVENT Sep 06 14:50:23 empress.localdomain kernel: wmi: 02314822-307C-4F66-BF0E-48AEAEB26CC8: Sep 06 14:50:23 empress.localdomain kernel: wmi: notify_id: C1 Sep 06 14:50:23 empress.localdomain kernel: wmi: reserved: 00 Sep 06 14:50:23 empress.localdomain kernel: wmi: instance_count: 1 Sep 06 14:50:23 empress.localdomain kernel: wmi: flags: 0x8 ACPI_WMI_EVENT Sep 06 14:50:23 empress.localdomain kernel: wmi: 02314822-307C-4F66-BF0E-48AEAEB26CC8: Sep 06 14:50:23 empress.localdomain kernel: wmi: notify_id: C4 Sep 06 14:50:23 empress.localdomain kernel: wmi: reserved: 00 Sep 06 14:50:23 empress.localdomain kernel: wmi: instance_count: 1 Sep 06 14:50:23 empress.localdomain kernel: wmi: flags: 0x8 ACPI_WMI_EVENT Sep 06 14:50:23 empress.localdomain kernel: wmi: 02314822-307C-4F66-BF0E-48AEAEB26CC8: Sep 06 14:50:23 empress.localdomain kernel: wmi: notify_id: C5 Sep 06 14:50:23 empress.localdomain kernel: wmi: reserved: 00 Sep 06 14:50:23 empress.localdomain kernel: wmi: instance_count: 1 Sep 06 14:50:23 empress.localdomain kernel: wmi: flags: 0x8 ACPI_WMI_EVENT Sep 06 14:50:23 empress.localdomain kernel: wmi: 02314822-307C-4F66-BF0E-48AEAEB26CC8: Sep 06 14:50:24 empress.localdomain kernel: wmi: notify_id: C6 Sep 06 14:50:24 empress.localdomain kernel: wmi: reserved: 00 Sep 06 14:50:24 empress.localdomain kernel: wmi: instance_count: 1 Sep 06 14:50:24 empress.localdomain kernel: wmi: flags: 0x8 ACPI_WMI_EVENT Sep 06 14:50:24 empress.localdomain kernel: wmi: 96E2988F-E24D-49AF-84E2-7F3BF72602CD: Sep 06 14:50:24 empress.localdomain kernel: wmi: object_id: AA Sep 06 14:50:24 empress.localdomain kernel: wmi: notify_id: 41 Sep 06 14:50:24 empress.localdomain kernel: wmi: reserved: 41 Sep 06 14:50:24 empress.localdomain kernel: wmi: instance_count: 1 Sep 06 14:50:24 empress.localdomain kernel: wmi: flags: 0x0 Sep 06 14:50:24 empress.localdomain kernel: wmi: 2D703EE8-36AC-4F88-BDB5-7556CE6B2946: Sep 06 14:50:24 empress.localdomain kernel: wmi: object_id: BC Sep 06 14:50:24 empress.localdomain kernel: wmi: notify_id: 42 Sep 06 14:50:24 empress.localdomain kernel: wmi: reserved: 43 Sep 06 14:50:24 empress.localdomain kernel: wmi: instance_count: 1 Sep 06 14:50:24 empress.localdomain kernel: wmi: flags: 0x2 ACPI_WMI_METHOD Sep 06 14:50:24 empress.localdomain kernel: wmi: 05901221-D566-11D1-B2F0-00A0C9062910: Sep 06 14:50:24 empress.localdomain kernel: wmi: object_id: MO Sep 06 14:50:24 empress.localdomain kernel: wmi: notify_id: 4D Sep 06 14:50:24 empress.localdomain kernel: wmi: reserved: 4F Sep 06 14:50:24 empress.localdomain kernel: wmi: instance_count: 1 Sep 06 14:50:24 empress.localdomain kernel: wmi: flags: 0x0 Sep 06 14:50:24 empress.localdomain kernel: wmi: Mapper loaded Sep 06 14:50:24 empress.localdomain kernel: input: Dell AIO WMI hotkeys as /devices/virtual/input/input14 Sep 06 14:51:06 empress.localdomain kernel: wmi: DEBUG Event GUID: 02314822-307C-4F66-BF0E-48AEAEB26CC8 Sep 06 14:51:07 empress.localdomain kernel: wmi: DEBUG Event GUID: 02314822-307C-4F66-BF0E-48AEAEB26CC8 Sep 06 14:56:15 empress.localdomain kernel: wmi: DEBUG Event GUID: 02314822-307C-4F66-BF0E-48AEAEB26CC8 Sep 06 14:56:15 empress.localdomain kernel: wmi: DEBUG Event GUID: 02314822-307C-4F66-BF0E-48AEAEB26CC8 Sep 06 14:56:16 empress.localdomain kernel: wmi: DEBUG Event GUID: 02314822-307C-4F66-BF0E-48AEAEB26CC8 The acpi_listen command gives output for volume down, volume up, video source from Computer to HDMI, video source from HDMI to Computer, and cdrom eject (in that order). [root@empress ~]# systemctl start acpid.service [root@empress ~]# acpi_listen PNP0C14:00 000000c1 00000000 PNP0C14:00 000000c0 00000000 PNP0C14:00 000000c4 00000000 PNP0C14:00 000000c5 00000000 PNP0C14:00 000000c6 00000000 I have attached the ACPI DSDT table files that were produced with the following commands. [root@empress ~]# cat /sys/firmware/acpi/tables/DSDT > dsdt.dat [root@empress ~]# iasl -d dsdt.dat # produces dsdt.dsl Intel ACPI Component Architecture ASL+ Optimizing Compiler version 20150515-64 Copyright (c) 2000 - 2015 Intel Corporation Reading ACPI table from file dsdt.dat - Length 00044263 (0x00ACE7) ACPI: DSDT 0x0000000000000000 00ACE7 (v02 DELL AS09 00000000 INTL 20051117) Acpi table [DSDT] successfully installed and loaded Pass 1 parse of [DSDT] Pass 2 parse of [DSDT] Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions) Parsing completed Found 6 external control methods, reparsing with new information Pass 1 parse of [DSDT] Pass 2 parse of [DSDT] Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions) Parsing completed Disassembly completed ASL Output: dsdt.dsl - 401119 bytes iASL Warning: There were 6 external control methods found during disassembly, but additional ACPI tables to resolve these externals were not specified. The resulting disassembler output file may not compile because the disassembler did not know how many arguments to assign to these methods. To specify the tables needed to resolve external control method references, the -e option can be used to specify the filenames. Note: SSDTs can be dynamically loaded at runtime and may or may not be available via the host OS. Example iASL invocations: iasl -e ssdt1.aml ssdt2.aml ssdt3.aml -d dsdt.aml iasl -e dsdt.aml ssdt2.aml -d ssdt1.aml iasl -e ssdt*.aml -d dsdt.aml In addition, the -fe option can be used to specify a file containing control method external declarations with the associated method argument counts. Each line of the file must be of the form: External (<method pathname>, MethodObj, <argument count>) Invocation: iasl -fe refs.txt -d dsdt.aml [root@empress ~]# iasl -tc dsdt.dsl # produces dsdt.hex Intel ACPI Component Architecture ASL+ Optimizing Compiler version 20150515-64 Copyright (c) 2000 - 2015 Intel Corporation dsdt.dsl 2491: CreateDWordField (BUF0, \_SB.PCI0._Y0F._LEN, MSLN) Warning 3128 - ResourceTag larger than Field ^ (Size mismatch, Tag: 64 bits, Field: 32 bits) dsdt.dsl 3660: Acquire (MUT0, 0x0FFF) Warning 3130 - ^ Result is not used, possible operator timeout will be missed dsdt.dsl 3877: CreateByteField (CRS3, \_SB.PCI0.LPCB.SIO1._Y1B._HE, IRQS) Warning 3129 - ResourceTag smaller than Field ^ (Size mismatch, Tag: 1 bit, Field: 8 bits) dsdt.dsl 4180: Name (_FDE, Package (0x05) Error 6105 - Invalid object type for reserved name ^ (_FDE: found Package, Buffer required) dsdt.dsl 5976: Name (_T_0, Zero) Remark 2011 - Use of compiler reserved name ^ (_T_0) dsdt.dsl 6055: Name (_T_0, Zero) Remark 2011 - Use of compiler reserved name ^ (_T_0) dsdt.dsl 6134: Name (_T_0, Zero) Remark 2011 - Use of compiler reserved name ^ (_T_0) dsdt.dsl 6235: Name (_T_0, Zero) Remark 2011 - Use of compiler reserved name ^ (_T_0) dsdt.dsl 6430: Name (_T_0, Zero) Remark 2011 - Use of compiler reserved name ^ (_T_0) dsdt.dsl 6509: Name (_T_0, Zero) Remark 2011 - Use of compiler reserved name ^ (_T_0) dsdt.dsl 7606: Method (UXDV, 1, NotSerialized) Remark 2120 - ^ Control Method should be made Serialized (due to creation of named objects within) dsdt.dsl 7609: Name (_T_0, Zero) Remark 2011 - ^ Use of compiler reserved name (_T_0) dsdt.dsl 7668: Method (RRIO, 4, NotSerialized) Remark 2120 - ^ Control Method should be made Serialized (due to creation of named objects within) dsdt.dsl 7670: Name (_T_0, Zero) Remark 2011 - ^ Use of compiler reserved name (_T_0) dsdt.dsl 8024: Method (_DOD, 0, NotSerialized) Remark 2120 - ^ Control Method should be made Serialized (due to creation of named objects within) dsdt.dsl 8418: Return (Package (0x00) {}) Remark 2095 - Effective AML package length is zero ^ dsdt.dsl 11396: Method (PHWM, 2, NotSerialized) Remark 2120 - ^ Control Method should be made Serialized (due to creation of named objects within) dsdt.dsl 11409: Method (FOWM, 2, NotSerialized) Remark 2120 - ^ Control Method should be made Serialized (due to creation of named objects within) dsdt.dsl 11425: Method (_L12, 0, NotSerialized) Warning 3115 - ^ Not all control paths return a value (_L12) dsdt.dsl 11464: Method (_L16, 0, NotSerialized) Warning 3115 - ^ Not all control paths return a value (_L16) dsdt.dsl 11578: Method (GOBT, 1, NotSerialized) Remark 2120 - ^ Control Method should be made Serialized (due to creation of named objects within) dsdt.dsl 11615: Method (NVOP, 4, NotSerialized) Remark 2120 - ^ Control Method should be made Serialized (due to creation of named objects within) dsdt.dsl 11622: Name (_T_0, Zero) Remark 2011 - ^ Use of compiler reserved name (_T_0) dsdt.dsl 11658: CreateField (Local0, 0x06, One, SHPC) Remark 2089 - Object is not referenced ^ (Name is within method [NVOP]) dsdt.dsl 11659: CreateField (Local0, 0x18, 0x03, DGPC) Remark 2089 - Object is not referenced ^ (Name is within method [NVOP]) dsdt.dsl 11660: CreateField (Local0, 0x1B, 0x02, HDAC) Remark 2089 - Object is not referenced ^ (Name is within method [NVOP]) dsdt.dsl 11708: Method (GPS, 4, NotSerialized) Remark 2120 - ^ Control Method should be made Serialized (due to creation of named objects within) dsdt.dsl 11715: Name (_T_0, Zero) Remark 2011 - ^ Use of compiler reserved name (_T_0) dsdt.dsl 11959: Method (_DSM, 4, NotSerialized) Remark 2120 - ^ Control Method should be made Serialized (due to creation of named objects within) dsdt.dsl 11959: Method (_DSM, 4, NotSerialized) Warning 3115 - ^ Not all control paths return a value (_DSM) dsdt.dsl 11959: Method (_DSM, 4, NotSerialized) Warning 3107 - ^ Reserved method must return a value (Integer/String/Buffer/Package/Reference required for _DSM) ASL Input: dsdt.dsl - 12227 lines, 360541 bytes, 4756 keywords Hex Dump: dsdt.hex - 414155 bytes Compilation complete. 1 Errors, 7 Warnings, 23 Remarks, 112 Optimizations