- Joined
- Oct 10, 2013
- Messages
- 20
- Mac
- Classic Mac
- Mobile Phone
Regarding brightness off display:
Just found and tested a method and now I'm able to reduce screen brightness to a minimum level, just like in windows.
The display is still visible even you switched to the lowest illumination step.
Just follow de following guide and you will se it working. The guide provides all the necessary informations to patch DSDT for an PROBOOK 4540s laptop. I cannot guarantee about it working on some other models.
Step1:
Find out our graphics BAR0 register (sometimes known as BAR1 register because some people count from 1...)
Mine is at 0xC0000004 so you will notice all my "magic numbers" starting with 0xC....
To find your BAR0/BAR1 address, you will have to look at your integrated graphics PCI configuration space.
It will usually be the second device on PCI bus 0 (device 00:02:00)
You can use the 64bit lspci driver from these forums and do it on your Mac.
Step 2: --- ACTUAL PATCHES---
Open your DSDT.aml in a DSDT Editor (see other threads for how to use this. MODIFYING DSDT MAY SCREW UP YOUR COMPUTER SO BE SURE YOU KNOW WHAT YOU'RE DOING.)
The following needs to be placed just before the beginning of " Scope (_SB)" ( before the first occurence of this string in your DSDT). Make sure you change the magic numbers to comply with your BAR0.
2. Now, the following assumes your graphics module is called GFX0 and that the LCD is listed as the second sub-device of GFX0. To find your graphics module, you can try and look for the line "Name (_ADR, 0x00020000)". The LCD should be the second sub device, mine is called DD02. You can use IOREG to confirm the name of your graphics (eg. GFX0). You can use the following method to identify the LCD sub-device: simply, go to your GFX0 (or equivalent), and
then under that device, identify the sub-device that has those methods (_BCM, _BCQ, _BCL).
YOU NEED TO REMEMBER TO NAME THIS SUB- DEVICE by adding the following line:
3. Then, you will need to add a new device PNLF. Usually you will have to add this before the beginning of Scope _PR, or after all other devices. IF YOU ALREADY HAVE ANOTHER PNLF DEVICE, you will need to replace any other PNLF you may already have (delete it and then use my code instead).
Provided, the KEXTs were installed, this will enable your brightness slider, and it should work without problems incrementing/decrementing brightness in 17 discrete brightness steps (16 + zero state), and this is the number of steps needed to enable the brightness keys, so they will work now!
The final step is to enable Backlight after wake-up. The 1st gen HD graphics uses two special registers to achieve this, and the following will fix it for you:
The original credits for this guide come to mnorthern
The original guide can be found here: http://www.insanelymac.com/forum/to...ss-for-intel-80860046-1st-gen-hd-gma-5700mhd/
After you're done with editing just install this kernel extension
View attachment ACPIBacklight.kext.zip
Just found and tested a method and now I'm able to reduce screen brightness to a minimum level, just like in windows.
The display is still visible even you switched to the lowest illumination step.
Just follow de following guide and you will se it working. The guide provides all the necessary informations to patch DSDT for an PROBOOK 4540s laptop. I cannot guarantee about it working on some other models.
Step1:
Find out our graphics BAR0 register (sometimes known as BAR1 register because some people count from 1...)
Mine is at 0xC0000004 so you will notice all my "magic numbers" starting with 0xC....
To find your BAR0/BAR1 address, you will have to look at your integrated graphics PCI configuration space.
It will usually be the second device on PCI bus 0 (device 00:02:00)
You can use the 64bit lspci driver from these forums and do it on your Mac.
Step 2: --- ACTUAL PATCHES---
Open your DSDT.aml in a DSDT Editor (see other threads for how to use this. MODIFYING DSDT MAY SCREW UP YOUR COMPUTER SO BE SURE YOU KNOW WHAT YOU'RE DOING.)
The following needs to be placed just before the beginning of " Scope (_SB)" ( before the first occurence of this string in your DSDT). Make sure you change the magic numbers to comply with your BAR0.
Code:
OperationRegion (BRIT, SystemMemory, 0xC0048254, 0x04)
Field (BRIT, AnyAcc, Lock, Preserve)
{
LEVL, 32
}
OperationRegion (BRI2, SystemMemory, 0xC0048250, 0x04)
Field (BRI2, AnyAcc, Lock, Preserve)
{
LEV2, 32
}
OperationRegion (BRI3, SystemMemory, 0xC00C8250, 0x04)
Field (BRI3, AnyAcc, Lock, Preserve)
{
LEVW, 32
}
OperationRegion (BRI4, SystemMemory, 0xC00C8254, 0x04)
Field (BRI4, AnyAcc, Lock, Preserve)
{
LEVX, 32
}
2. Now, the following assumes your graphics module is called GFX0 and that the LCD is listed as the second sub-device of GFX0. To find your graphics module, you can try and look for the line "Name (_ADR, 0x00020000)". The LCD should be the second sub device, mine is called DD02. You can use IOREG to confirm the name of your graphics (eg. GFX0). You can use the following method to identify the LCD sub-device: simply, go to your GFX0 (or equivalent), and
then under that device, identify the sub-device that has those methods (_BCM, _BCQ, _BCL).
YOU NEED TO REMEMBER TO NAME THIS SUB- DEVICE by adding the following line:
Code:
Device (DD02)
{
Name (_HID, EisaId ("LCD1234"))
3. Then, you will need to add a new device PNLF. Usually you will have to add this before the beginning of Scope _PR, or after all other devices. IF YOU ALREADY HAVE ANOTHER PNLF DEVICE, you will need to replace any other PNLF you may already have (delete it and then use my code instead).
Code:
Device (PNLF)
{
Name (_HID, EisaId ("APP0002"))
Name (_CID, "backlight")
Name (_UID, 0x0A)
Name (_STA, 0x0B)
Method (_BCL, 0, NotSerialized)
{
Return (Package (0x13)
{
0x64,
0x32,
Zero,
0x06,
0x0C,
0x12,
0x18,
0x1E,
0x24,
0x2A,
0x30,
0x36,
0x3C,
0x42,
0x48,
0x4E,
0x54,
0x5A,
0x64
})
}
Method (_BCM, 1, NotSerialized)
{
Store (0x80000000, LEV2)
If (LGreaterEqual (Arg0, 0x64))
{
Store (0x12FF, LEVL)
}
Else
{
If (LGreaterEqual (Arg0, 0x5A))
{
Store (0x11FF, LEVL)
}
Else
{
If (LGreaterEqual (Arg0, 0x54))
{
Store (0x103A, LEVL)
}
Else
{
If (LGreaterEqual (Arg0, 0x4E))
{
Store (0x0EBB, LEVL)
}
Else
{
If (LGreaterEqual (Arg0, 0x48))
{
Store (0x0B24, LEVL)
}
Else
{
If (LGreaterEqual (Arg0, 0x42))
{
Store (0x0873, LEVL)
}
Else
{
If (LGreaterEqual (Arg0, 0x3C))
{
Store (0x065B, LEVL)
}
Else
{
If (LGreaterEqual (Arg0, 0x36))
{
Store (0x04C8, LEVL)
}
Else
{
If (LGreaterEqual (Arg0, 0x30))
{
Store (0x0396, LEVL)
}
Else
{
If (LGreaterEqual (Arg0, 0x2A))
{
Store (0x02B0, LEVL)
}
Else
{
If (LGreaterEqual (Arg0, 0x24))
{
Store (0x0266, LEVL)
}
Else
{
If (LGreaterEqual (Arg0, 0x1E))
{
Store (0x0218, LEVL)
}
Else
{
If (LGreaterEqual (Arg0, 0x18))
{
Store (0x01D1, LEVL)
}
Else
{
If (LGreaterEqual (Arg0, 0x12))
{
Store (0x0191, LEVL)
}
Else
{
If (LGreaterEqual (Arg0, 0x0C))
{
Store (0x0161, LEVL)
}
Else
{
If (LGreaterEqual (Arg0, 0x06))
{
Store (0x0132, LEVL)
}
Else
{
If (LGreaterEqual (Arg0, Zero))
{
Store (0x82, LEVL)
}
Else
{
Store (0x11FF, LEVL)
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
Method (_BQC, 0, NotSerialized)
{
Return (^^PCI0.IGPU.DD02._BQC ())
}
Method (_DOS, 1, NotSerialized)
{
^^PCI0.IGPU._DOS (Arg0)
}
}
Provided, the KEXTs were installed, this will enable your brightness slider, and it should work without problems incrementing/decrementing brightness in 17 discrete brightness steps (16 + zero state), and this is the number of steps needed to enable the brightness keys, so they will work now!
The final step is to enable Backlight after wake-up. The 1st gen HD graphics uses two special registers to achieve this, and the following will fix it for you:
- Search your DSDT for the method _WAK
- Add two lines to the beginning, so that it looks like this:
Code:
Method (_WAK, 1, Serialized)
{
Store (0x80000000, LEVW)
Store (0x13121312, LEVX)
The original credits for this guide come to mnorthern
The original guide can be found here: http://www.insanelymac.com/forum/to...ss-for-intel-80860046-1st-gen-hd-gma-5700mhd/
After you're done with editing just install this kernel extension
View attachment ACPIBacklight.kext.zip