Hi everyone,
Bezel Buttons/DSDT Adentures Continued
A while ago I took a look at my DSDT. This was in response to a TX2500 user who said after he decompiled his DSDT and optimized it and recompiled it, it fixed his fan noise. Just like 67GTA told Red_Lion. I think that was on the TX2500 thread. So I decompiled my DSDT and recompiled it and got two warnings.
/home/username/dsdt.dsl 2902: And (CTRL, 0x1E)
Warning 1104 - Result is not used, operator has no effect ^
/home/username/dsdt.dsl 4260: Method (_Q16, 0, NotSerialized)
Warning 1086 - Not all control paths return a value ^ (_Q16)
ASL Input: /home/username/dsdt.dsl - 8501 lines, 294472 bytes, 4487 keywords
AML Output: dsdt.aml - 33822 bytes 856 named objects 3631 executable opcodes
Compilation complete. 0 Errors, 2 Warnings, 0 Remarks, 1248 Optimizations
For the line # 4260 warning the fix was easy to locate. Several of the links 67GTA has to DSDT common errors and fixes sites show you how.
You just need to add to the end:
Making it look like:
Code:
Method (_Q16, 0, NotSerialized)
{
Store (QBBB, Local0)
If (LEqual (Local0, 0x03))
{
Notify (\_SB.MUBN, 0x02)
Return (0x00)
}
If (LEqual (Local0, 0x06))
{
Notify (\_SB.PIBN, 0x02)
Return (0x00)
}
If (LEqual (Local0, 0x12))
{
Notify (\_SB.LVBN, 0x02)
Return (0x00)
}
Store (0x04, \_SB.WMID.Z01C)
Store (0x00, \_SB.WMID.Z01D)
Notify (\_SB.WMID, 0x80)
Return (0x00) <--- added that line
}
The line #2902 was more obscure. I found the fix on a Chinese site. So I'm not totally confident of it but it seemed to work. You just change 'And (CTRL, 0x1E)' to 'And (CTRL, 0x1E, CTRL)'. Now when I recompiled it I got:
ASL Input: /home/username/dsdt.dsl - 8502 lines, 294512 bytes, 4488 keywords
AML Output: dsdt.aml - 33827 bytes 856 named objects 3632 executable opcodes
Compilation complete. 0 Errors, 0 Warnings, 0 Remarks, 1249 Optimizations
Which seemed pretty sweet. But since things seemed OK I didn't actually take the next step and install the "optimized" DSDT. I couldn't see that it related to my thermals. And a little nervous about "bricking" my tablet I guess.
Remembering that Red_Lion said "bezel buttons parsing via PNP0C09 method _Q16" I took another look at my DSDT. Sure enough there it was, "_Q16", and lo and behold it was under PNP0C09, the Microsoft acpi-compatible embedded controller section. One of the very sections whose warning I had fixed.
Could this be the problem causing the disappearance of the two bezel buttons? I checked Red_Lion's DSDT and sure enough his TX2500 DSDT had the same error my TX2000 had, missing a line saying "Return (0x00)". And I'll bet the TX2z DSDT has the same error. Wow I thought, a possible eureka moment.
So I sucked it up and completed 67GTA's HOW TO and actually installed it and....
Nothing! The two bezel buttons still don't work. Can't detect anything. I guess I got carried away otherwise the TX2500 user would have mentioned the bezel buttons appearing. And I'm sure others have optimized their DSDT's also.
But maybe there is now a signal somewhere we could use? I could easily be looking at the wrong place or doing it wrong. So suggestions appreciated. As an aside "var/log/messages" says:
input: HP WMI hotkeys as /devices/virtual/input/input10
Bookmarks