Jump to content



Member Since 16 Feb 2011
Offline Last Active Apr 15 2012 05:59 PM

Posts I've Made

In Topic: ACPI Backlight Driver

15 April 2012 - 06:01 PM

Hi all!

Could anybody explain how AppleBacklight.kext, ACPIBacklight.kext and FrameBuffer kext (for me it's ATINDRV) interact?
Now I don't have ACPIBacklight.kext in my system, AppleBacklight.kext is loaded and slider in display preferences is visible.
But any value below max turns backlight off.
When I inject backlight-PWM-freq value backlight is almost working (after reboot I have to decrease


If I install

ACPIBacklight.kext, is there a probability of the conflict?

AppleBacklight.kext and ACPIBacklight.kext are both attaching to PNLF ACPI device, so only one can be running. My kext will win if it finds the good ACPI methods in the DSDT (_DOS, _BCL....) so no conflicts could occure. If you can use AppleBacklight.kext, my driver is not for you

Hi HotKoffy,

I changed my DSDT and test your 1.2 ACPIBacklight kext on my HP probook 5330m but it partialy works. I have acces to brightness control Fn Key and slider in prefpane but the brigthness doesn't change.

I also have an error in the kernel.log (with the additionnal ACPIBacklightDisplay kext) :
Probe (display0)
Probe KO: Wrong cast type for boot display OSBoolean

Do you have any idea about this error ?

You skrew up injecting this property:


Buffer (0x04)


0x01, 0x00, 0x00, 0x00


It is supposed to be an array not a boolean.

but ACPIBacklightDisplay.kext shall no longer be used !!

Hi HotKoffy, First thank you for your efforts. I have been messing with my DSDT since i found your topic. My display injection is on PEGP, here's my log : 12-03-14 13:52:24,000 kernel: ACPIBacklightPanel: Found Backlight Device: LCDD 12-03-14 13:52:24,000 kernel: ACPIBacklightPanel: ACPI Method _DOS found. Device path: _SB.PCI0.PEGP.GFX0 12-03-14 13:52:24,000 kernel: ACPIBacklightPanel: ACPI Methods _BCL _BCM _BQC found. Device path: _SB.PCI0.PEGP.GFX0.LCDD 12-03-14 13:52:24,000 kernel: ACPIBacklightPanel: Version 1.2 12-03-14 13:52:39,000 kernel: ACPIBacklightDisplay: probe(display0) 12-03-14 13:52:39,000 kernel: ACPIBacklightDisplay: displayType 2 I modified my OS from the DSDT to always return Windows 7 as operation system ( i guess thats the one which enables all the functions). But still, i had already your kext loading without any modification to the dsdt ( except no brightness change, but i can see the sun bezel and the brightness bar ), and to make sure i added the backlight control lines to the graphics injection, but still no change. Attached my DSDT and Ioreg, can you give me any clue ? P.S: already tested jamazelle's solutions cuz he has the same laptop, but no result. Thank you in advance.

I think you have an ATI graphics with a personnality showing your internal display as VGA instead of LVDS. The solution is to patch ATI personnality following: Editing custom personalities for ATI Radeon HD[45]xxx

In Topic: ACPI Backlight Driver

05 December 2011 - 08:38 PM

try without this test in _BCM
If (LGreaterEqual (OSFG, OSVT))

I think its a windows version test

In Topic: ACPI Backlight Driver

01 November 2011 - 11:10 AM

Hi 'hotKoffy'
Thanks for reply, and as I realised by reading topic more carefully, that now I have to say sorry for repetitive questions !

I had two BCL sections in my DSDT, not sure what PTPE stands for but I replaced this:

and now I have nice - smoothly working brightness control, with desired level on start-up. Thanks to you!

I use 'gsly' battery driver on my system and I suspect that start-up message (unable to get "ExternalConnected" property) may be connected to "BatteryPollingPeriodOverride" which is 30sec. now, but Im not that bothered about that anymore as after changing BCL code I'm happy with brightness levels on start-up

Problem with the driver not working after wake-up is so random that is hard to recall what previous action may caused it. It happened again today and I think (and vaguely remember from last times) that this was triggered on AC connect - disconnect while PC was asleep,but not sure..

Thanks again!

You should check your dsdt battery _STA
Attached File  _STA.png   151.75KB   123 downloads
And ask 'gsly' for the sources.
On the original driver _STA is used for battery state.

I've no problem with sleep so I can only help with ideas.
I've notice in some dsdt that there are two registers for setting the brightness in EC: one for AC and one for DC.
I'm also surprise that the driver can be unloaded. once AppleBacklightDisplay find it, it retains it (because it use it) which prevents unloaded (which is painful for testing !). The only moment when the AppleBacklightDisplay is unloaded is when I plug an external display but a new instance is created immediately. It would be interesting to test the wake / sleep behavior with ioregisteryexplorer (with option to show terminated objects) open to see what's happening.

In Topic: ACPI Backlight Driver

27 October 2011 - 05:14 PM

Is it suppose to restore brightness value after restart/reboot ?
or is this still 'work in progress' ?

No, the drivers can't save anything. The sortage of the current value is made by DSDT in the PC CMOS NVRAM and so shall work in a multiboot environment.

On my dv9000 it seems to read correct (previous) values on start up:

25/10/2011 00:20:16	kernel	ACPIBacklightPanel: getIndexForLevel(43) is 5
	 25/10/2011 00:20:16	kernel	ACPIBacklightPanel::queryACPICurentBrightnessLevel()
	 25/10/2011 00:20:16	kernel	ACPIBacklightPanel: queryACPICurentBrightnessLevel _BQC = 69
	 25/10/2011 00:20:16	kernel	ACPIBacklightPanel: getIndexForLevel(69) is 8
but then in next lines:
25/10/2011 00:20:38	kernel	ACPIBacklightPanel::setDisplay()
	 25/10/2011 00:20:38	kernel	ACPIBacklightPanel::doUpdate()
	 25/10/2011 00:20:38	kernel	ACPIBacklightPanel: ACPILevel min 0, max 10, value 10
	 25/10/2011 00:20:38	kernel	ACPIBacklightPanel::doUpdate()
	 25/10/2011 00:20:38	kernel	ACPIBacklightPanel: ACPILevel min 0, max 10, value 10
	 25/10/2011 00:20:38	kernel	ACPIBacklightPanel::doIntegerSet(brightness)
	 25/10/2011 00:20:38	kernel	ACPIBacklightPanel::setACPIBrightnessLevel()
	 25/10/2011 00:20:38	kernel	ACPIBacklightPanel: setACPIBrightnessLevel _BCM(95)
	 25/10/2011 00:20:38	kernel	ACPIBacklightPanel::doIntegerSet(brightness)
	 25/10/2011 00:20:38	kernel	ACPIBacklightPanel::setACPIBrightnessLevel()
	 25/10/2011 00:20:38	kernel	ACPIBacklightPanel: setACPIBrightnessLevel _BCM(95)
and system boots on max brightness,

I think the first 2 entries in BCL shall be corrected. You can find explaination in the topic.

there was also something like that:

24/10/2011 23:46:54	kernel	ACPIBacklightPanel: queryACPICurentBrightnessLevel _BQC = 31
	 24/10/2011 23:46:54	kernel	ACPIBacklightPanel: getIndexForLevel(31) not found in _BCL table !

Do you have made modifications on your DSDT related to backlight levels ? The level returned by BQC must exist in BCL.

'look at power supply status at start up' most of the time gives correct values, but I had also this:

ACPIBacklightPanel: getACStatus() unable to get "ExternalConnected" property

The drivers seek the battery driver to see if the AC plug is connected. On all IOreg I've read, this property exists. Which driver do you use for your battery ?

One more thing: sometimes after 5-7 sleep/wake-up cycles driver stops working, then it starts again either after another sleep/wake-up cycle or I have to restart system.
any ideas, clues ?

I will test it.

Tell me is it possible to change the default brightness value when the system starts. For instance, here on mine lappy is 70 % , but I want to be on 50%(just the matter of taste). I manually set it on 50% after every restart or new boot (in System preferences >Display>Brightnes slider), but I would be so much happier if it is to stay by default on 50%.Also the keyboard shortcuts with the Fn button works fine - i also used them , but default would be nicer.

look at post 36

In Topic: Netbook hot key driver Asus Dell HP

24 October 2011 - 09:31 PM

I know right? But like I said here, if I change that to uppercase it doesn't work anymore. Oh well go figure :P

Maybe it because EisaId is missing.

Nevertheless, the driver can't works. There is a new driver in linux 3.0.4 "asus-nb-wmi.c" matching your hardware. I will try to integrate it later.
© 2017 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy