Mac OS X on x86 Hardware 2008–2024 Technical Archive
InfiniteMac OSx86 › OSx86 Core & 10.X › Brightness Problem - Implementing _bcm _bcl And _bcq
3,243 reads · 2010-08-11
Note 10.X Core DSDT

Brightness Problem - Implementing _bcm _bcl And _bcq

I'm desperately trying to fix an annoying problem I am facing with my Samsung N130 (with a GMA950), where every time I boot OSX the brightness level gets reset to the maximum. I can see the brightness being boosted to the max at the very…

Primary Author
@mtest Published 2010-08-11
Collection
OSx86 Core & 10.X
Archival Footprint
3,243 historical reads · 0 curated field notes (from 1 dispatches) · 2010-08-11
Credited Voices (1)
@mtest

I'm desperately trying to fix an annoying problem I am facing with my Samsung N130 (with a GMA950), where every time I boot OSX the brightness level gets reset to the maximum.

I can see the brightness being boosted to the max at the very last moment of the boot, just before the mouse cursor gets displayed.

I came to think that it could be related to some ACPI controls... At some point maybe the system cannot get the current state of the backlight level and then decides to set it to the max (that's my own interpretation after reading similar reports here and there).

I want to mention that I can change the brightness level normally through the control panel and it works just fine (except the at the minimum level the screen gets blank).

If I understand well, _BCQ ("Backlight C... Query" ?) should return the current level of the backlight. I've read here and there there that:

1. _BCQ might sometimes return weird values
2. If _BCQ returns something weird of if there is no _BCQ available then the system will set it back to the max, which could explain my problem.

So here are my question:

- I've noticed that in my DSDT.aml I do not have those methods declared, similar to:

				Device (LCD)
				{
					Method (_ADR, 0, NotSerialized)
					{
						Return (0x0400)
					}

					Method (_DCS, 0, NotSerialized) //return status of output
					{
						Store (SMI (0x8E, One), Local0)
						Return (Local0)
					}

					Method (_DGS, 0, NotSerialized) // active or inactive
					{
						Store (SMI (0x99, One), Local0)
						Return (Local0)
					}

					Method (_DSS, 1, NotSerialized) //device set state
					{
						DSS (One, Arg0)
					}

					Name (BTVL, 0x64)
					Name (DBCL, Package (0x0A) {})
					Method (_BCL, 0, NotSerialized) //list of supported brightness
					{
						SX10 ()
						SX30 (0x19)
						SX30 (Zero)
						SX11 ()
						Store (SX40 (), Index (DBCL, Zero))
						Store (SX40 (), Index (DBCL, One))
						Store (SX40 (), Index (DBCL, 0x02))
						Store (SX40 (), Index (DBCL, 0x03))
						Store (SX40 (), Index (DBCL, 0x04))
						Store (SX40 (), Index (DBCL, 0x05))
						Store (SX40 (), Index (DBCL, 0x06))
						Store (SX40 (), Index (DBCL, 0x07))
						Store (SX40 (), Index (DBCL, 0x08))
						Store (SX40 (), Index (DBCL, 0x09))
						SX12 ()
						Return (DBCL)
					}

					Method (_BCM, 1, NotSerialized) //set brightness
					{
						SX10 ()
						SX30 (0x19)
						SX30 (One)
						SX30 (Arg0)
						Store (Arg0, BTVL)
						SX11 ()
						SX12 ()
					}

					Method (_BQC, 0, NotSerialized) //brightness level
					{
						SX10 ()
						SX30 (0x19)
						SX30 (0x02)
						SX11 ()
						Store (SX40 (), Local0)
						Store (Local0, BTVL)
						SX12 ()
						Return (Local0)
					}
				}

Any idea ?

Can I add an LCD device to my DSDT just like that ?

Please find attached my current DSDT

Thank you for your help.

Sources & Contributor Provenance (1 credited usernames · Thread #6463)
UsernameDossier ContributionDispatchesActive Window
@mtestPrimary Author12010-08-11