Contribute
Register

[Guide] Patching DSDT/SSDT for LAPTOP backlight control

By changing ig-platform-id to 0xa260006 now the brightness adjust bar appear.
Thanks.
 
@RehabMan - I've recently upgraded my T440s to Sierra and I have it mostly working. I was able to apply this new brightness patch to get brightness working.

However, my key mappings (which I found from a guide on this site) are no longer correct. I was able to follow the ACPI-Keyboard guide to figure out which keys are mapping to which method in my EC device using the intercept method:
Mute: _Q43
Microphone Mute: _Q6A
Brightness Down: _Q15
Brightness Up: _Q14
Projector?: _Q16
Wifi Switch: _Q64
Settings: _Q66
Search: _Q67
View Programs: _Q68
View ALL Programs: _Q69

But where I'm confused is learning how to know what to put in these methods. Am I supposed to keep the RMKB device in my DSDT and then play around with the values in the ACPIKeyboard.cpp to invoke brightness? The older patches I found from Yosemite (https://www.tonymacx86.com/threads/lenovo-t440s-working-fn-keys.158288/) are calling the KBD device directly.

Some guidance would be helpful!
 
@RehabMan - I've recently upgraded my T440s to Sierra and I have it mostly working. I was able to apply this new brightness patch to get brightness working.

However, my key mappings (which I found from a guide on this site) are no longer correct. I was able to follow the ACPI-Keyboard guide to figure out which keys are mapping to which method in my EC device using the intercept method:
Mute: _Q43
Microphone Mute: _Q6A
Brightness Down: _Q15
Brightness Up: _Q14
Projector?: _Q16
Wifi Switch: _Q64
Settings: _Q66
Search: _Q67
View Programs: _Q68
View ALL Programs: _Q69

But where I'm confused is learning how to know what to put in these methods. Am I supposed to keep the RMKB device in my DSDT and then play around with the values in the ACPIKeyboard.cpp to invoke brightness? The older patches I found from Yosemite (https://www.tonymacx86.com/threads/lenovo-t440s-working-fn-keys.158288/) are calling the KBD device directly.

Some guidance would be helpful!

For your brightness keys, patch _Q15 and _Q14 as described in post #1.
 
For your brightness keys, patch _Q15 and _Q14 as described in post #1.
Wow, that worked.

But how does one determine the hex values to send to the keyboard device? I'd like to map all of the other buttons too, if possible.
 
Wow, that worked.

But how does one determine the hex values to send to the keyboard device? I'd like to map all of the other buttons too, if possible.

If you're using my PS2 kext, the values represent PS2 codes.
It is essentially a mechanism to generate PS2 codes from ACPI.
 
If you're using my PS2 kext, the values represent PS2 codes.
It is essentially a mechanism to generate PS2 codes from ACPI.
Yes, I am. So is there a table or anything that has these codes?
 
Last edited:
Oh I see, so I need to mimic the keys of the real Macbook?

Macs do not have PS2 keyboards.

EDIT: Actually that wouldn't make sense based on looking at that and what we used for brightness on Page 1. How does the brightness value (0x0405 and 0x0406) match up with the table?

Brightness keys are not standardized. Various manufacturers use different PS2 codes for them.
Many Dell laptops use 'e0 05' (brightness down) and 'e0 06' (brightness up).

0x04xx represents 'extended' (e0) PS2 codes (make/break).
So, 0x0405 is Dell PS2 for brightness down, and 0x0406 is Dell PS2 for brightness up.

You can see the default mapping of PS2 codes to ADB codes in ApplePS2ToADBMap.h in the VoodooPS2Controller source.

But note that brightness ADB codes don't work any more, so we use F14/F15. You will also see that in ApplePS2ToADBMap.h. Those two Dell codes 'e0 05'/'e0 06' map to F14/F15 ADB codes. F14 and F15, by default, are mapped to brightness adjustment, which is why we use them, and why all this works.
 
Macs do not have PS2 keyboards.



Brightness keys are not standardized. Various manufacturers use different PS2 codes for them.
Many Dell laptops use 'e0 05' (brightness down) and 'e0 06' (brightness up).

0x04xx represents 'extended' (e0) PS2 codes (make/break).
So, 0x0405 is Dell PS2 for brightness down, and 0x0406 is Dell PS2 for brightness up.

You can see the default mapping of PS2 codes to ADB codes in ApplePS2ToADBMap.h in the VoodooPS2Controller source.

But note that brightness ADB codes don't work any more, so we use F14/F15. You will also see that in ApplePS2ToADBMap.h. Those two Dell codes 'e0 05'/'e0 06' map to F14/F15 ADB codes. F14 and F15, by default, are mapped to brightness adjustment, which is why we use them, and why all this works.
Interesting. Thanks for the explanation.

Are there any other keys in that file that are already defaulted to an F-key that would be useful for the others keys on my laptop that don't do anything? I see in the first post there's one for mirror mode, should that also work out of the box with your kext?
 
Back
Top