Jump to content
EMlyDinEsH

Display backlight Driver for Asus Notebooks

Recommended Posts

Hello,

This is an ACPI display backlight driver for Asus notebooks which has native support for brightness control in DSDT. Its based on the ideas of WMI kext from the user hotkoffy from insanelymac, Linux Asus WMI and my own.
 
So far its been confirmed to work for the Asus notebooks containing Intel GPU (up to SandyBridge generation) and some models with nvidia GPU. Unsupported notebooks can try the driver ACPIBacklight using needed PNLF patch (google it).

 

Its been tested in the following models:

Asus K53SC/D/V

Asus K53E
Asus N53SV/N73SV
Asus K73SV

Asus G750JS/JX/JH

Asus G50JX
Asus Eee Pc 1201n

 

Following dsdt patch is needed for my driver to work: (If you have applied GFX0->IGPU patch then rename same below)

 

Copy this code to the root of the DSDT (or) use the attached patches in DSDT editor or MaciASL.

 

NOTE: 

Some systems need STBR() method absolute path like \_SB.PCI0.LPCB.EC0.STBR(), so search for the method STBR in DSDT and correct the path from where you found in the below patch. Mostly two things (LPCB -> SBRG in old systems and EC0 -> can be EC or H_EC) will be different, so correct these in your absolute path of STBR method.

Also some systems may need custom patches and it may not work with below patch.
Device (PNLF)
        {
            Name (_HID, EisaId ("APP0002"))
            Name (_CID, "backlight")
            Name (_UID, 0x0E)
            Name (_STA, 0x0B)
            Method (_BCL, 0, NotSerialized)
            {
                Return (\_SB.PCI0.GFX0.LCDD._BCL ())
            }
            Method (_BCM, 1, NotSerialized)
            {
                Store (One, \_SB.PCI0.GFX0.BCMD)
                Store (\_SB.PCI0.GFX0.GCBL (Arg0), Local0)
                Subtract (0x0A, Local0, LBTN)
                STBR () // \_SB.PCI0.LPCB.EC0.STBR()
            }
            Method (_BQC, 0, NotSerialized)
            {
                Return (\_SB.PCI0.GFX0.LCDD._BQC ())
            }
            Method (_DOS, 1, NotSerialized)
            {
                \_SB.PCI0.GFX0._DOS (Arg0)
            }
        }

Brightness value at boot: 
You can set brightness value at boot by editing the entry "BrightnessAtBoot" at "IOKitPersonalities->AsusACPIBacklightPanel" in the info.plist file located at "AsusACPIBacklightPanel.kext/Contents/Info.plist".
  

      -> Values allowed are 0 - 11/16 (Some models support only 11, but some can up to 16 like models with Nvidia)

           Set the value to 0 if you want brightness value to be read form NVRAM.

 

 

Supports Mac OS X 10.7 or later

CHANGE LOG:

Version 1.7

  • Added support for Asus Eee Pc 1201n
  • Updated BrightnessAtBoot plist option supported values (0 - 16)
  • Minor optimizations and bug fixes

Version 1.6

  • Fixed a bug which made one of the brightness level missing
  • Added support for new Asus notebook G750xx and G50x
  • Minor optimizations

Version 1.5.5

  • Fixed a bug with backlight value read at boot
  • Fixed some other minor bugs
  • Minor optimizations

Version 1.5

  • Added NVRAM support to save and load brightness values on reboot.
  • Reworked code to optimize
  • Fixed some bugs.

Version 1.4

  • Updated kext for my Elan/Asus Fn keys brightness control
  • Fixed some bugs
  • Optimized code

Version 1.3

  • Renamed kext to "AsusACPIBacklightPanel" to more sensible name
  • Fixed Apple Bezel animation levels to match Apple 16 levels to asus level 11 levels with my Asus Fn keys and Elan kexts
  • Optimized code by removing unnecessary code
  • Added support for Asus Fn key driver for brightness levels

 

PM me for any support.
 
Hope this helps some. :)

LIKE TO SUPPORT MY WORK ? PLEASE MAKE A DONATION BY CLICKING BELOW PAYPAL DONATE BUTTON 
Paypal:9157339471_69e721d064_o.png

 

CREDITS: hotkoffy (Insanelymac) and Linux Asus WMI

AsusACPIBackLightPanel_v1.5.5_Final.zip

DSDT_Patches.zip

AsusACPIBackLightPanel_v1.7_Final.zip

  • Like 2

Share this post


Link to post
Share on other sites

Hi!!

 

This is not working in my K53SV, I have done the changes in the DSDT and installed the kext to the system, but it's not working at boot, only when I enter to the system preferences I can change the brightness...

I'm working with Mountain Lion 10.8.2 ...

 

Any help would be appreciated.

Thanks!!

Share this post


Link to post
Share on other sites

Hi!!

 

This is not working in my K53SV, I have done the changes in the DSDT and installed the kext to the system, but it's not working at boot, only when I enter to the system preferences I can change the brightness...

I'm working with Mountain Lion 10.8.2 ...

 

Any help would be appreciated.

Thanks!!

 

send me your dsdt and i'll take a look.

Share this post


Link to post
Share on other sites

Semi works on X73SV.

 

 

Here's how my system works with and without your kext:

Without your kext, when my system boots, the display doesn't use it's max brightnes. I can fully use screen controls rights (17 values, where 0 is no brightnes, 1 minimum brightness and 17 max brightness), however max brighntess control isn't max brightness the display can use (does that make sense?). Max display brightness is only corrected when I put display to sleep and then wake it. That trick always fixes max brightness that my display can use for me.

With your kext, when I boot my system, the display still doesn't use it's max brightness. Also brightness controls are kind of broken (not completely). I have 9 brightness values (there is no 0 brightness value and max brightness value still isn't max brightness that the display can can use). Basicaly, out of 17 values i have 9 and when I change brightness up or down some steps are empty values (hope it still does makes sense). Also putting display to sleep doesn't change anything now.

 

Now, I think that it is a desired effect, so I've tried changing plist values of the kext. First I've changed max and min brightness values to the ones I had before installing kext (I checked those with ioregexplorer). However those values did not change after reboot, so I've changed BQC use index to false, but it also has yelded no effects.

 

So my question is, how can I change max and min display brightness and brightness control steps values?

Share this post


Link to post
Share on other sites

Semi works on X73SV.

 

 

Here's how my system works with and without your kext:

Without your kext, when my system boots, the display doesn't use it's max brightnes. I can fully use screen controls rights (17 values, where 0 is no brightnes, 1 minimum brightness and 17 max brightness), however max brighntess control isn't max brightness the display can use (does that make sense?). Max display brightness is only corrected when I put display to sleep and then wake it. That trick always fixes max brightness that my display can use for me.

With your kext, when I boot my system, the display still doesn't use it's max brightness. Also brightness controls are kind of broken (not completely). I have 9 brightness values (there is no 0 brightness value and max brightness value still isn't max brightness that the display can can use). Basicaly, out of 17 values i have 9 and when I change brightness up or down some steps are empty values (hope it still does makes sense). Also putting display to sleep doesn't change anything now.

 

Now, I think that it is a desired effect, so I've tried changing plist values of the kext. First I've changed max and min brightness values to the ones I had before installing kext (I checked those with ioregexplorer). However those values did not change after reboot, so I've changed BQC use index to false, but it also has yelded no effects.

 

So my question is, how can I change max and min display brightness and brightness control steps values?

 

You see my driver makes use of the brightness levels used/set by the Asus which are only 10 in bios. And Apple brightness levels are more becoz they are soft controlled instead of using the bios controlled Asus brightness values so you get 17 values.

 

Also for minimum value, brightness its not completely turned off in asus and you can check this from Windows as well. And I've accommodated those 17 values to 10 in soft way in my driver so you get some steps without changing brightness.

 

And I also think max value given by my driver is max allowed by Asus in their bios.

Share this post


Link to post
Share on other sites

Oh. I get it now. That makes sense. Still shame one can't define those values manualy! :)

 

Did you try "BrightnessAtBoot" value which sets brightness(1-11) at boot?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...