Jump to content

ACPI Backlight Driver


  • Please log in to reply
196 replies to this topic

#41
weizh126

weizh126

    InsanelyMac Protégé

  • Members
  • PipPip
  • 64 posts
Thanks hotKoffy, after modified the _BCL, I fixed the issue I mentioned at post #28

#42
jamezelle

jamezelle

    InsanelyMac Protégé

  • Members
  • Pip
  • 27 posts
Hello, I added the values to my dsdt (GFX0) and your kext loads and I have slider in preference pane and hotkeys work(I see the sun bezel) but the brightness does not change at all.


[codebox]Oct 13 13:44:07 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: Found Backlight Device: LCDD
Oct 13 13:44:07 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: ACPI Method _DOS found. Device path: _SB.PCI0.PEG1.GFX0
Oct 13 13:44:07 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: ACPI Methods _BCL _BCM _BQC found. Device path: _SB.PCI0.PEG1.GFX0.LCDD
Oct 13 13:44:07 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: Version 1.0
[/codebox]

I attached my ioreg dump and dsdt, any help is appreciated.

Thanks.

Attached File  DSDTandIOREG.zip   30.66KB   20 downloads


EDIT:
updated ioreg.txt, the other one did not show everything.

Attached File  ioreg.txt   73.42KB   5 downloads

#43
sw170

sw170

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 212 posts
  • Gender:Male
  • Location:UK

This is a driver for laptops which backlight are controlled by ACPI Methods: if you have _DOS _BCL _BCM _BQC in you DSDT.

This driver provides native backlight management for laptops with backlight managed by ACPI : slider in the display pref pane and sun bezel when you press backlight up/down hotkey (with an other driver than can understand
....


Great work 'hotKoffy', thank you!! Works great on my HP Pavillion and no KPs on resolution change like I had with ivik's kext.

Best wishes
swavek

#44
mathq

mathq

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 208 posts
  • Gender:Male
  • Location:Quebec
I have that in kernel.log
11-10-13 18:25:02,000 kernel: ACPIBacklightPanel: Found Backlight Device: DD02
11-10-13 18:25:02,000 kernel: ACPIBacklightPanel: ACPI Method _DOS found. Device path: _SB.PCI0.GFX0
11-10-13 18:25:02,000 kernel: ACPIBacklightPanel: ACPI Methods _BCL _BCM _BQC found. Device path: _SB.PCI0.GFX0.DD02
11-10-13 18:25:02,000 kernel: ACPIBacklightPanel: Version 1.1
However, when I put the slider on the lowest setting in System Preferences, the brightness of the screen stays on max.

Any ideas?

Here is my DSDT:
Attached File  dsdt.aml.zip   26.43KB   23 downloads

#45
sw170

sw170

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 212 posts
  • Gender:Male
  • Location:UK
'mathq' you forgot about this code in your DSDT:

"AAPL,HasPanel",
						Buffer (0x04)
						{
							0x01, 0x00, 0x00, 0x00
						},

						"AAPL,Haslid",
						Buffer (0x04)
						{
							0x01, 0x00, 0x00, 0x00
						},

						"AAPL,backlight-control",
						Buffer (0x04)
						{
							0x01, 0x00, 0x00, 0x00
						},
												
						"@0,backlight-control",
						Buffer (0x04)
						{
							0x01, 0x00, 0x00, 0x00
						},

 			"@0,AAPL,boot-display",
						Buffer (0x04)
						{
							0x01, 0x00, 0x00, 0x00
						},
						
			"@0,built-in",
						Buffer ()
						{
							One
						},


#46
hotKoffy

hotKoffy

    InsanelyMac Protégé

  • Members
  • PipPip
  • 79 posts

I have that in kernel.log

11-10-13 18:25:02,000 kernel: ACPIBacklightPanel: Found Backlight Device: DD02
  11-10-13 18:25:02,000 kernel: ACPIBacklightPanel: ACPI Method _DOS found. Device path: _SB.PCI0.GFX0
  11-10-13 18:25:02,000 kernel: ACPIBacklightPanel: ACPI Methods _BCL _BCM _BQC found. Device path: _SB.PCI0.GFX0.DD02
  11-10-13 18:25:02,000 kernel: ACPIBacklightPanel: Version 1.1
However, when I put the slider on the lowest setting in System Preferences, the brightness of the screen stays on max.

Any ideas?

Here is my DSDT:
Attached File  dsdt.aml.zip   26.43KB   23 downloads


I've compile a version with verbose log. It will help you understanding.


#47
jamezelle

jamezelle

    InsanelyMac Protégé

  • Members
  • Pip
  • 27 posts

I've compile a version with verbose log. It will help you understanding.



Just loaded this version, However the brightness still does not change. my dsdt and ioreg are a few posts up, any ideas what I might be doing wrong, or are my BCQ and BCM methods not returning proper values?


Verbose Debug Log:
Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel::probe()Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel::findDevices()Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel::hasBacklightMethods()Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel::getGPU()Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel: testing device: CPU0Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel::hasDOSMethod()Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel: testing device: CPU1Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel::hasDOSMethod()Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel: testing device: CPU2Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel::hasDOSMethod()Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel: testing device: CPU3Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel::hasDOSMethod()Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel: testing device: CPU4Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel::hasDOSMethod()Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel: testing device: CPU5Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel::hasDOSMethod()Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel: testing device: CPU6Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel::hasDOSMethod()Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel: testing device: CPU7Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel::hasDOSMethod()Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel: testing device: _SBOct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel::hasDOSMethod()Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel: testing device: PCI0Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel::hasDOSMethod()Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel: testing device: PEG1Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel::hasDOSMethod()Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel: testing device: GFX0Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel::hasDOSMethod()Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel: ACPI device GFX0 has _DOSOct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel::hasBacklightMethods()Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel::getChildWithBacklightMethods()Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel::hasBacklightMethods()Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel: ACPI device LCDD has _BCLOct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel: ACPI device LCDD has _BCMOct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel: ACPI device LCDD has _BQCOct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel: Found Backlight Device: LCDDOct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel: ACPI Method _DOS found. Device path: _SB.PCI0.PEG1.GFX0Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel: ACPI Methods _BCL _BCM _BQC found. Device path: _SB.PCI0.PEG1.GFX0.LCDDOct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel: probe(devices found : true)Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel: LCDD has backlight MethodsOct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel::start()Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel::findDevices()Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel::getDeviceControl()Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel: BIOS control disabled: _DOSOct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel::setupIndexedLevels()Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel::queryACPISupportedBrightnessLevels()Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel: LCDD _BCL 13Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel: getIndexForLevel(36) is 3Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel: getIndexForLevel(72) is 7Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel::queryACPICurentBrightnessLevel()Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel: queryACPICurentBrightnessLevel _BQC = 8Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel: getIndexForLevel(8) not found !Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel: getBatteryDevice() matching not nullOct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel: min = 0, max = 10, value = 3Oct 14 15:41:57 localhost kernel[0]: ACPIBacklightPanel: Version 1.1Oct 14 15:42:14 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::setDisplay()Oct 14 15:42:14 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doUpdate()Oct 14 15:42:14 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: ACPILevel min 0, max 10, value 3Oct 14 15:42:14 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doUpdate()Oct 14 15:42:14 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: ACPILevel min 0, max 10, value 3Oct 14 15:42:14 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doIntegerSet(brightness)Oct 14 15:42:14 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::setACPIBrightnessLevel()Oct 14 15:42:14 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: setACPIBrightnessLevel _BCM(36)Oct 14 15:42:14 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doIntegerSet(brightness)Oct 14 15:42:14 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::setACPIBrightnessLevel()Oct 14 15:42:14 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: setACPIBrightnessLevel _BCM(36)Oct 14 15:42:14 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doUpdate()Oct 14 15:42:14 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: ACPILevel min 0, max 10, value 3Oct 14 15:42:14 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doIntegerSet(brightness)Oct 14 15:42:14 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::setACPIBrightnessLevel()Oct 14 15:42:14 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: setACPIBrightnessLevel _BCM(36)Oct 14 15:42:14 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doIntegerSet(commit)Oct 14 15:42:14 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doIntegerSet(brightness)Oct 14 15:42:14 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::setACPIBrightnessLevel()Oct 14 15:42:14 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: setACPIBrightnessLevel _BCM(36)Oct 14 15:42:42 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doIntegerSet(brightness)Oct 14 15:42:42 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::setACPIBrightnessLevel()


ioreg -l :
Attached File  ioreg.txt   358.83KB   2 downloads

DSDT.dsl
Attached File  DSDT.dsl.zip   46.69KB   18 downloads

#48
mathq

mathq

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 208 posts
  • Gender:Male
  • Location:Quebec
I'm getting that kernel panic with the verbose version.
Posted Image

#49
hotKoffy

hotKoffy

    InsanelyMac Protégé

  • Members
  • PipPip
  • 79 posts

I'm getting that kernel panic with the verbose version.


_BQC is returning an out of range 650 value. (not responsible of KP)

Method (_BQC, 0, NotSerialized)
{
If (IGDS)
{
Return (QBQC ())
}
Else
{
Return (Divide (Multiply (QBQC (), 0xFF), 0x64, ))
}
}

It is possible that IGDS is setup by BIOS. There is a lot of tests about it in the DSDT.

Edit:
Verbose KP corrected:


#50
mathq

mathq

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 208 posts
  • Gender:Male
  • Location:Quebec

_BQC is returning an out of range 650 value. (not responsible of KP)

Method (_BQC, 0, NotSerialized)
{
If (IGDS)
{
Return (QBQC ())
}
Else
{
Return (Divide (Multiply (QBQC (), 0xFF), 0x64, ))
}
}

It is possible that IGDS is setup by BIOS. There is a lot of tests about it in the DSDT.

Edit:
Verbose KP corrected:

I've replaced the Method (_BQC) with what you said and I still can't adjust brightness.

Here is my kernel.log
Log

Thanks,
xmath279

#51
jamezelle

jamezelle

    InsanelyMac Protégé

  • Members
  • Pip
  • 27 posts

_BQC is returning an out of range 650 value. (not responsible of KP)

Method (_BQC, 0, NotSerialized)
{
If (IGDS)
{
Return (QBQC ())
}
Else
{
Return (Divide (Multiply (QBQC (), 0xFF), 0x64, ))
}
}

It is possible that IGDS is setup by BIOS. There is a lot of tests about it in the DSDT.

Edit:
Verbose KP corrected:


Any ideas about my issue posted above?

#52
hotKoffy

hotKoffy

    InsanelyMac Protégé

  • Members
  • PipPip
  • 79 posts

Any ideas about my issue posted above?


Seems that your _BQC is returning an index. This causes initial value problem (defaults to 0) but should not be a problem doing a level change after.

I've replaced the Method (_BQC) with what you said and I still can't adjust brightness.

Here is my kernel.log
Log

Thanks,
xmath279


I have just copy your _BQC without changing it to illustrate my words. It is up to you to analyze how your DSDT works.

#53
hotKoffy

hotKoffy

    InsanelyMac Protégé

  • Members
  • PipPip
  • 79 posts

Any ideas about my issue posted above?


I've an idea:
you have 3 times the methods _DOS _BCL... nested in 3 devices PEG1 PEG3 GFX0
I think all this objects are populated in the device tree even if only one is valid. So the driver takes the first it finds and it is not the good one. So no effect when you move the slider.
Locate in ioreg on which device the graphics drivers is on and then put this on PNLF, changing in my example \_SB.PCI0.IXVE.IGPU.LCDD with the good paths.


Device (PNLF)
{
Name (_HID, EisaId ("APP0002"))
Name (_CID, "backlight")
Name (_UID, 0x0A)
Name (_STA, 0x0B)

Method (_BCL, 0, NotSerialized)
{
return (\_SB.PCI0.IXVE.IGPU.LCDD._BCL())
}

Method (_BCM, 1, NotSerialized)
{
\_SB.PCI0.IXVE.IGPU.LCDD._BCM(Arg0)
}

Method (_BQC, 0, NotSerialized)
{
return (\_SB.PCI0.IXVE.IGPU.LCDD._BQC())
}

Method (_DOS, 1, NotSerialized)
{
\_SB.PCI0.IXVE.IGPU._DOS(Arg0)
}

}

#54
jamezelle

jamezelle

    InsanelyMac Protégé

  • Members
  • Pip
  • 27 posts

I've an idea:
you have 3 times the methods _DOS _BCL... nested in 3 devices PEG1 PEG3 GFX0
I think all this objects are populated in the device tree even if only one is valid. So the driver takes the first it finds and it is not the good one. So no effect when you move the slider.
Locate in ioreg on which device the graphics drivers is on and then put this on PNLF, changing in my example \_SB.PCI0.IXVE.IGPU.LCDD with the good paths.


Device (PNLF)
{
Name (_HID, EisaId ("APP0002"))
Name (_CID, "backlight")
Name (_UID, 0x0A)
Name (_STA, 0x0B)

Method (_BCL, 0, NotSerialized)
{
return (\_SB.PCI0.IXVE.IGPU.LCDD._BCL())
}

Method (_BCM, 1, NotSerialized)
{
\_SB.PCI0.IXVE.IGPU.LCDD._BCM(Arg0)
}

Method (_BQC, 0, NotSerialized)
{
return (\_SB.PCI0.IXVE.IGPU.LCDD._BQC())
}

Method (_DOS, 1, NotSerialized)
{
\_SB.PCI0.IXVE.IGPU._DOS(Arg0)
}

}


Thanks for the idea! The values were pointing to the wrong device(\_SB.PEG1.GFX0.LCDD instead of the correct one which is \_SB.PEG3.GFX0.LCDD), and I just fixed the paths by setting the path to the methods of my LCD in the PNLF Device, but the slider is still not changing the brightness.

I can change the brightness before it enters the system and when i do it reports the value i change it to (max is 0xa, when I turned the brightness down, but not all the way and it reported 0x3) So like you said it sems to be reporting indexes of the brightness levels instead of the actual levels.

Could that be a problem? Is there a way I could try to have _BCM set values of 0x0 through 0xa ? maybe from the terminal?

Attached File  Screen_Shot_2011_10_17_at_5.20.35_PM.png   328.82KB   82 downloads
Attached File  Screen_Shot_2011_10_17_at_5.28.19_PM.png   391.27KB   71 downloads

Kernel Log:
Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel::probe()Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel::findDevices()Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel::hasBacklightMethods()Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel: ACPI device PNLF has _BCLOct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel: ACPI device PNLF has _BCMOct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel: ACPI device PNLF has _BQCOct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel: PNLF has backlight MethodsOct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel: ACPI Methods _DOS _BCL _BCM _BQC found. Device path: _SB.PNLFOct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel: probe(devices found : true)Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel: PNLF has backlight MethodsOct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel::start()Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel::findDevices()Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel::getDeviceControl()Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel: BIOS control disabled: _DOSOct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel::setupIndexedLevels()Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel::queryACPISupportedBrightnessLevels()Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel: PNLF _BCL 13Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel: getIndexForLevel(36) is 3Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel: getIndexForLevel(72) is 7Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel::queryACPICurentBrightnessLevel()Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel: queryACPICurentBrightnessLevel _BQC = 8Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel: getIndexForLevel(8) not found !Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel: getBatteryDevice() matching not nullOct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel: min = 0, max = 10, value = 3Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel: Version 1.1Oct 17 17:13:37 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::setDisplay()Oct 17 17:13:37 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doUpdate()Oct 17 17:13:37 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: ACPILevel min 0, max 10, value 3Oct 17 17:13:37 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doUpdate()Oct 17 17:13:37 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: ACPILevel min 0, max 10, value 3Oct 17 17:13:37 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doIntegerSet(brightness)Oct 17 17:13:37 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::setACPIBrightnessLevel()Oct 17 17:13:37 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: setACPIBrightnessLevel _BCM(36)Oct 17 17:13:37 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doIntegerSet(brightness)Oct 17 17:13:37 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::setACPIBrightnessLevel()Oct 17 17:13:37 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: setACPIBrightnessLevel _BCM(36)Oct 17 17:13:38 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doUpdate()Oct 17 17:13:38 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: ACPILevel min 0, max 10, value 3Oct 17 17:13:38 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doIntegerSet(brightness)Oct 17 17:13:38 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::setACPIBrightnessLevel()Oct 17 17:13:38 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: setACPIBrightnessLevel _BCM(36)

Any more ideas? Thanks for all your help. ;)

#55
hotKoffy

hotKoffy

    InsanelyMac Protégé

  • Members
  • PipPip
  • 79 posts

Thanks for the idea! The values were pointing to the wrong device(\_SB.PEG1.GFX0.LCDD instead of the correct one which is \_SB.PEG3.GFX0.LCDD), and I just fixed the paths by setting the path to the methods of my LCD in the PNLF Device, but the slider is still not changing the brightness.

I can change the brightness before it enters the system and when i do it reports the value i change it to (max is 0xa, when I turned the brightness down, but not all the way and it reported 0x3) So like you said it sems to be reporting indexes of the brightness levels instead of the actual levels.

Could that be a problem? Is there a way I could try to have _BCM set values of 0x0 through 0xa ? maybe from the terminal?

Attached File  Screen_Shot_2011_10_17_at_5.20.35_PM.png   328.82KB   82 downloads
Attached File  Screen_Shot_2011_10_17_at_5.28.19_PM.png   391.27KB   71 downloads

Kernel Log:

Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel::probe()Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel::findDevices()Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel::hasBacklightMethods()Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel: ACPI device PNLF has _BCLOct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel: ACPI device PNLF has _BCMOct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel: ACPI device PNLF has _BQCOct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel: PNLF has backlight MethodsOct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel: ACPI Methods _DOS _BCL _BCM _BQC found. Device path: _SB.PNLFOct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel: probe(devices found : true)Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel: PNLF has backlight MethodsOct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel::start()Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel::findDevices()Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel::getDeviceControl()Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel: BIOS control disabled: _DOSOct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel::setupIndexedLevels()Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel::queryACPISupportedBrightnessLevels()Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel: PNLF _BCL 13Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel: getIndexForLevel(36) is 3Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel: getIndexForLevel(72) is 7Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel::queryACPICurentBrightnessLevel()Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel: queryACPICurentBrightnessLevel _BQC = 8Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel: getIndexForLevel(8) not found !Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel: getBatteryDevice() matching not nullOct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel: min = 0, max = 10, value = 3Oct 17 17:13:12 localhost kernel[0]: ACPIBacklightPanel: Version 1.1Oct 17 17:13:37 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::setDisplay()Oct 17 17:13:37 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doUpdate()Oct 17 17:13:37 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: ACPILevel min 0, max 10, value 3Oct 17 17:13:37 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doUpdate()Oct 17 17:13:37 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: ACPILevel min 0, max 10, value 3Oct 17 17:13:37 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doIntegerSet(brightness)Oct 17 17:13:37 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::setACPIBrightnessLevel()Oct 17 17:13:37 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: setACPIBrightnessLevel _BCM(36)Oct 17 17:13:37 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doIntegerSet(brightness)Oct 17 17:13:37 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::setACPIBrightnessLevel()Oct 17 17:13:37 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: setACPIBrightnessLevel _BCM(36)Oct 17 17:13:38 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doUpdate()Oct 17 17:13:38 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: ACPILevel min 0, max 10, value 3Oct 17 17:13:38 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doIntegerSet(brightness)Oct 17 17:13:38 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::setACPIBrightnessLevel()Oct 17 17:13:38 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: setACPIBrightnessLevel _BCM(36)

Any more ideas? Thanks for all your help. :)


for BQC change
Method (_BQC, 0, NotSerialized)
{
DBGR ("\n_BQC: ")
DBGR (LBTN)
Return (LBTN)
}
to

Method (_BQC, 0, NotSerialized)
{
Store (LBTN, Local0)
Store (BRTI, Local1)
ShiftLeft (Local1, 0x04, Local1)
Add (Local0, Local1, Local1)
Store (DerefOf (Index (PWAC, Local1)), Local0)
Return (Local0)
}

and verify than your embedded controller EC0 has the driver loaded

#56
jamezelle

jamezelle

    InsanelyMac Protégé

  • Members
  • Pip
  • 27 posts

for BQC change
Method (_BQC, 0, NotSerialized)
{
DBGR ("\n_BQC: ")
DBGR (LBTN)
Return (LBTN)
}
to

Method (_BQC, 0, NotSerialized)
{
Store (LBTN, Local0)
Store (BRTI, Local1)
ShiftLeft (Local1, 0x04, Local1)
Add (Local0, Local1, Local1)
Store (DerefOf (Index (PWAC, Local1)), Local0)
Return (Local0)
}

and verify than your embedded controller EC0 has the driver loaded


Ok, getting closer I think. now its reporting the correct brighness in ioreg when I move the slider but the brightness does not actually change on the screen, I suspect its not going to work :blink:. Maybe BCM isnt commiting the values correctly or perhaps the Nvidia driver is blocking it maybe?

EC0 Device is loaded in ioreg
Attached File  Screen_Shot_2011_10_18_at_10.55.22_PM.png   285.12KB   41 downloads
Current DSDT:
Attached File  dsdt.dsl.zip   47.7KB   17 downloads

For quick reference here are my brightness methods:
Method (_BCL, 0, NotSerialized)                        {                            DBGR ("\n_BCL: ")                            Return (PCTG)                            }                        Name (BCBH, Zero)                        Method (_BCM, 1, NotSerialized)                        {                            DBGR ("\n_BCM: ")                            DBGR (Arg0)                            Store (GCBL (Arg0), Local0)                            Subtract (0x0A, Local0, LBTN)                            DBGR ("\n  LBTN = ")                            DBGR (LBTN)                            ^^^^SBRG.EC0.STBR ()                        }                        Method (_BQC, 0, NotSerialized)                        {                            Store (LBTN, Local0)                            Store (BRTI, Local1)                            ShiftLeft (Local1, 0x04, Local1)                            Add (Local0, Local1, Local1)                            Store (DerefOf (Index (^^^^SBRG.EC0.PWAC, Local1)), Local0)                            Return (Local0)                        }
Kernel Log (grep ACPiBack)
Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel::probe()Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel::findDevices()Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel::hasBacklightMethods()Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel: ACPI device PNLF has _BCLOct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel: ACPI device PNLF has _BCMOct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel: ACPI device PNLF has _BQCOct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel: PNLF has backlight MethodsOct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel: ACPI Methods _DOS _BCL _BCM _BQC found. Device path: _SB.PNLFOct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel: probe(devices found : true)Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel: PNLF has backlight MethodsOct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel::start()Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel::findDevices()Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel::getDeviceControl()Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel: BIOS control disabled: _DOSOct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel::setupIndexedLevels()Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel::queryACPISupportedBrightnessLevels()Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel: PNLF _BCL 13Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel: getIndexForLevel(36) is 3Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel: getIndexForLevel(72) is 7Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel::queryACPICurentBrightnessLevel()Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel: queryACPICurentBrightnessLevel _BQC = 167Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel: getIndexForLevel(167) not found !Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel: getBatteryDevice() matching not nullOct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel: min = 0, max = 10, value = 3Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel: Version 1.1Oct 18 23:00:15 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::setDisplay()Oct 18 23:00:15 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doUpdate()Oct 18 23:00:15 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: ACPILevel min 0, max 10, value 3Oct 18 23:00:15 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doUpdate()Oct 18 23:00:15 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: ACPILevel min 0, max 10, value 3Oct 18 23:00:15 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doIntegerSet(brightness)Oct 18 23:00:15 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::setACPIBrightnessLevel()Oct 18 23:00:15 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: setACPIBrightnessLevel _BCM(36)Oct 18 23:00:15 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doIntegerSet(brightness)Oct 18 23:00:15 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::setACPIBrightnessLevel()Oct 18 23:00:15 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: setACPIBrightnessLevel _BCM(36)Oct 18 23:00:16 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doUpdate()Oct 18 23:00:16 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: ACPILevel min 0, max 10, value 3Oct 18 23:00:16 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doIntegerSet(brightness)Oct 18 23:00:16 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::setACPIBrightnessLevel()Oct 18 23:00:16 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: setACPIBrightnessLevel _BCM(36)Oct 18 23:00:16 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doIntegerSet(commit)Oct 18 23:00:17 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doIntegerSet(brightness)Oct 18 23:00:17 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::setACPIBrightnessLevel()Oct 18 23:00:17 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: setACPIBrightnessLevel _BCM(36)


#57
hotKoffy

hotKoffy

    InsanelyMac Protégé

  • Members
  • PipPip
  • 79 posts

Ok, getting closer I think. now its reporting the correct brighness in ioreg when I move the slider but the brightness does not actually change on the screen, I suspect its not going to work :) . Maybe BCM isnt commiting the values correctly or perhaps the Nvidia driver is blocking it maybe?

EC0 Device is loaded in ioreg
Attached File  Screen_Shot_2011_10_18_at_10.55.22_PM.png   285.12KB   41 downloads
Current DSDT:
Attached File  dsdt.dsl.zip   47.7KB   17 downloads
Kernel Log (grep ACPiBack)

Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel::probe()Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel::findDevices()Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel::hasBacklightMethods()Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel: ACPI device PNLF has _BCLOct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel: ACPI device PNLF has _BCMOct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel: ACPI device PNLF has _BQCOct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel: PNLF has backlight MethodsOct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel: ACPI Methods _DOS _BCL _BCM _BQC found. Device path: _SB.PNLFOct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel: probe(devices found : true)Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel: PNLF has backlight MethodsOct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel::start()Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel::findDevices()Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel::getDeviceControl()Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel: BIOS control disabled: _DOSOct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel::setupIndexedLevels()Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel::queryACPISupportedBrightnessLevels()Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel: PNLF _BCL 13Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel: getIndexForLevel(36) is 3Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel: getIndexForLevel(72) is 7Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel::queryACPICurentBrightnessLevel()Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel: queryACPICurentBrightnessLevel _BQC = 167Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel: getIndexForLevel(167) not found !Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel: getBatteryDevice() matching not nullOct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel: min = 0, max = 10, value = 3Oct 18 22:59:47 localhost kernel[0]: ACPIBacklightPanel: Version 1.1Oct 18 23:00:15 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::setDisplay()Oct 18 23:00:15 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doUpdate()Oct 18 23:00:15 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: ACPILevel min 0, max 10, value 3Oct 18 23:00:15 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doUpdate()Oct 18 23:00:15 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: ACPILevel min 0, max 10, value 3Oct 18 23:00:15 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doIntegerSet(brightness)Oct 18 23:00:15 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::setACPIBrightnessLevel()Oct 18 23:00:15 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: setACPIBrightnessLevel _BCM(36)Oct 18 23:00:15 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doIntegerSet(brightness)Oct 18 23:00:15 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::setACPIBrightnessLevel()Oct 18 23:00:15 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: setACPIBrightnessLevel _BCM(36)Oct 18 23:00:16 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doUpdate()Oct 18 23:00:16 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: ACPILevel min 0, max 10, value 3Oct 18 23:00:16 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doIntegerSet(brightness)Oct 18 23:00:16 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::setACPIBrightnessLevel()Oct 18 23:00:16 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: setACPIBrightnessLevel _BCM(36)Oct 18 23:00:16 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doIntegerSet(commit)Oct 18 23:00:17 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::doIntegerSet(brightness)Oct 18 23:00:17 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel::setACPIBrightnessLevel()Oct 18 23:00:17 Jamezelles-Mac-Pro kernel[0]: ACPIBacklightPanel: setACPIBrightnessLevel _BCM(36)


try this
Method (_BCM, 1, NotSerialized)
{
DBGR ("\n_BCM: ")
DBGR (Arg0)
Store (GCBL (Arg0), Local0)
Subtract (0x0A, Local0, LBTN)
DBGR ("\n LBTN = ")
DBGR (LBTN)
//^^^^SBRG.EC0.STBR ()
^^^^SBRG.EC0.ECCB ()
}

#58
jamezelle

jamezelle

    InsanelyMac Protégé

  • Members
  • Pip
  • 27 posts

try this
Method (_BCM, 1, NotSerialized)
{
DBGR ("\n_BCM: ")
DBGR (Arg0)
Store (GCBL (Arg0), Local0)
Subtract (0x0A, Local0, LBTN)
DBGR ("\n LBTN = ")
DBGR (LBTN)
//^^^^SBRG.EC0.STBR ()
^^^^SBRG.EC0.ECCB ()
}


Tried this also, brightness does not actually change on the screen, I think the Nvidia driver is blocking the change for the brightness to the screen.

#59
fc bayern

fc bayern

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 210 posts
  • Gender:Male
  • Location:Macedonia
Thanks hotKoffy
Working perfectly at first on my Acer 5742 g Mac book pro (also the 1.1 and the 1.2 version), everyting as It should be - I was missing this function to have a copmlete hacky.
thanks and keep on good work

#60
hotKoffy

hotKoffy

    InsanelyMac Protégé

  • Members
  • PipPip
  • 79 posts

Tried this also, brightness does not actually change on the screen, I think the Nvidia driver is blocking the change for the brightness to the screen.


No the Nvidia has nothing to do with it.
I think there is something OS specific in your DSDT. You have to understand how the DSDT behave depending on the value returned by _OSI or _OS.

I think the best way is to follow windows 7 specificities
If (_OSI ("Windows 2009"))
{
Store (OSW7, OSFG)
}
using
If (_OSI ("Darwin"))
{
Store (OSW7, OSFG)
}





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy