Hi Kayle, 於 二,2012-02-14 於 11:47 -0500,Kyle Evans 提到: > Hello, I have an HP tx2500 with some bezel buttons that are not > working. HP tabletPC's are notorious for this. I have discovered why > they are not working (hp-wmi is not getting the notification to query > them) and I have managed to insert some code into the DSDT that will > cause hp-wmi to successfully read these keys when the lid is closed. I > have inserted this same code into every _Q?? method from 01-8F, > including those previously undefined, but no dice. I have also > extracted the DSDT from Windows Vista, decompiled it, compared it to > the one I extracted from Linux (several small differences), recompiled > it and ran it. That didn't get it done either. > You might need check those buttons emit Q event or WMI event. watch -n 1 cat /sys/firmware/acpi/interrupts/gpe_all watch -n 1 cat /sys/firmware/acpi/interrupts/gpe[0123][0123456789ABCDEF] The value should increased when you press hotkey. Then reference Corentin's article: http://lwn.net/Articles/391230/ Use wmidump to parse out wmi, find out the wmi event we might want to listen, the flags should has ACPI_WMI_EVENT. Then, the hard thing is we need try to poke and try to reverse engineer to GUESS the input/output format from event. Sorry for I didn't have good experience on reverse engineer. If the EC emit Q event when press hotkey, you can enable acpi debug log: acpi.debug_level=0x0000000F acpi.debug_layer=0xffffffff log_buf_len=5M To monitor which method does it run when you press hotkey. And, it's also possibility for EC direct emit scancode, you can use: showkey command to grub it or look at dmesg should has some messages. > So basically, this is a BIOS problem that Windows works around. I do > not know enough about the hardware/BIOS to determine whether or not > this is something that can still be fixed in the DSDT, or something > that would have to be fixed in the kernel. For a BIOS fix, I suspect > the Embedded Controller needs to be programmed in some way, along with > a modified dsdt. For a kernel fix, I suspect Windows either polls the > WMI query, programs the EC every boot, or gets the signal some other > way (e.g. PNP0C09). > > A brief description of how these hotkeys operate: > The EmbeddedController, PNP0C09, houses the internal button register, > QBBB, that stores the internal key code. When hp-wmi, PNP0C14, > performs the query, QBBB is tested for the button pressed and the > appropriate scancode is wrote to the memory location that is > subsequently read. > > I have what I believe to be an accurate MB schematic, which indicates > that the embedded controller is from ENE, chip KB3926, and I have > found data sheets for similar EC's. This is something that I work on > in my spare time, so I would be grateful if someone could share some > knowledge on the subject, or kindly point me to someone who might be > able to help. > > Thanks, > Kyle Thanks a lot! Joey Lee -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html