Comment 43 for bug 1348890

(I have copied my post from https://bugzilla.redhat.com/show_bug.cgi?id=1144866, this seems to be a related bug, let me know if this isn't customary)

Hello,
I currently own an Asus Q302la, which seems to have an identical setup to the other Asus laptops that I have seen reported on various redhat,kernel,and freedesktop bugzilla bugs. its Fn+F5 and Fn+F6 keys are not registering events when viewed through input-tools or evemu-record despite various other asus-wmi key-keycombos showing up and do not seem to be affected by any permutation of the boot options: video.use_native_backlight=1, acpi_backlight=vendor, acpi_osi="!Windows 2012", and acpi_osi="!Windows 2009". no scan codes come up with "echo 1> /sys/modules/i8042/parameters/debug" either.

other bugs on this laptop that make me feel as though this is the same hardware configuration are that it has the Focaltech touchpad (FLT0102) that is still being worked on for multitouch support and is stubbornly registering in PS/2 emulation mode, its intel 7270 wireless ac card was on an unkown pci id (recently patched in linux-stable), its "G-sensor" isn't registering, and the ambient light sensor isn't being detected (though its showing up as an ASL device with an HID of ACPI0008, which doesn't seem to be recognized by the kernel yet), which seems to match up with most of the other recent asus laptop bugs.

I've taken it upon myself to use this laptop as an opportunity to break further into kernel development and troubleshooting and have been reading through the source, tinkering around with kprobes, ftrace+friends, and dyndebug.

I am using the mainline linux-stable kernel 3.17.2 compiled from the git v3.17.2 tag on a Ubuntu 14.10 installation.

Ive made some progress on the Fn+F5 and Fn+F6 backlight keys:
it turns out that the ACPI Embedded Controller code is seeing the backlight key combos, but it doesn't seem like its being passed on further in the kernel. I'm still learning about how the ACPI subsystem works, and I feel like later on I'll be better equipped to say definitively where exactly these events are being discarded. I enabled dynamic debug on the embedded controller with:
echo "file drivers/acpi/ec.c +p" > /sys/kernel/debug/dynamic_debug/control

I notice that for Fn+F5 (decrease brightness), this prints out on dmesg:
kern :debug : [ +0.233305] ACPI : EC: ===== IRQ =====
kern :debug : [ +0.000006] ACPI : EC: EC_SC(R) = 0x28 SCI_EVT=1 BURST=0 CMD=1 IBF=0 OBF=0
kern :debug : [ +0.000004] ACPI : EC: EC_SC(R) = 0x28 SCI_EVT=1 BURST=0 CMD=1 IBF=0 OBF=0
kern :debug : [ +0.000001] ACPI : EC: push gpe query to the queue
kern :debug : [ +0.000039] ACPI : EC: ===== TASK =====
kern :debug : [ +0.000003] ACPI : EC: EC_SC(R) = 0x28 SCI_EVT=1 BURST=0 CMD=1 IBF=0 OBF=0
kern :debug : [ +0.000007] ACPI : EC: EC_SC(W) = 0x84
kern :debug : [ +0.000787] ACPI : EC: ===== TASK =====
kern :debug : [ +0.000005] ACPI : EC: EC_SC(R) = 0x28 SCI_EVT=1 BURST=0 CMD=1 IBF=0 OBF=0
kern :debug : [ +0.000075] ACPI : EC: ===== IRQ =====
kern :debug : [ +0.000005] ACPI : EC: EC_SC(R) = 0x09 SCI_EVT=0 BURST=0 CMD=1 IBF=0 OBF=1
kern :debug : [ +0.000004] ACPI : EC: EC_DATA(R) = 0x0e
kern :debug : [ +0.000000] ACPI : EC: hardware QR_EC completion
kern :debug : [ +0.000005] ACPI : EC: EC_SC(R) = 0x08 SCI_EVT=0 BURST=0 CMD=1 IBF=0 OBF=0
kern :debug : [ +0.000009] ACPI : EC: push query execution (0x e) on queue
kern :debug : [ +0.000002] ACPI : EC: start query execution
kern :debug : [ +0.000199] ACPI : EC: stop query execution

and for Fn+F6 (increase brightness), this prints out on dmesg:
===== IRQ =====
kern :debug : [ +0.000012] ACPI : EC: EC_SC(R) = 0x28 SCI_EVT=1 BURST=0 CMD=1 IBF=0 OBF=0
kern :debug : [ +0.000007] ACPI : EC: EC_SC(R) = 0x28 SCI_EVT=1 BURST=0 CMD=1 IBF=0 OBF=0
kern :debug : [ +0.000002] ACPI : EC: push gpe query to the queue
kern :debug : [ +0.000058] ACPI : EC: ===== TASK =====
kern :debug : [ +0.000017] ACPI : EC: EC_SC(R) = 0x28 SCI_EVT=1 BURST=0 CMD=1 IBF=0 OBF=0
kern :debug : [ +0.000005] ACPI : EC: EC_SC(W) = 0x84
kern :debug : [ +0.000853] ACPI : EC: ===== IRQ =====
kern :debug : [ +0.000012] ACPI : EC: EC_SC(R) = 0x09 SCI_EVT=0 BURST=0 CMD=1 IBF=0 OBF=1
kern :debug : [ +0.000006] ACPI : EC: EC_DATA(R) = 0x0f
kern :debug : [ +0.000002] ACPI : EC: hardware QR_EC completion
kern :debug : [ +0.000013] ACPI : EC: EC_SC(R) = 0x08 SCI_EVT=0 BURST=0 CMD=1 IBF=0 OBF=0
kern :debug : [ +0.000024] ACPI : EC: push query execution (0x f) on queue
kern :debug : [ +0.000008] ACPI : EC: start query execution
kern :debug : [ +0.000502] ACPI : EC: stop query execution

From what I gather from this, it looks like Fn+F5 is registering as EC_DATA = 0x0e and Fn+F6 is registering as EC_DATA = 0x0f.

I hope this helps out, I'm still learning all of this stuff, and feel like _something_ being detected in response to these keys being pressed would be useful data. Let me know if there is anything else I can try out, as I said, I'm trying to learn more about kernel development and would be open to do any kind of sophisticated task to help out.