Name (STPS, 0x04) // STPS: number of steps in between for one level
Name (CBAR, Package () // Cold Boot BIOS Backlight Levels
{
0x06, 0x06, 0x0C, 0x12, 0x18, 0x1E, 0x24, 0x2A, 0x30,
0x36, 0x3C, 0x42, 0x48, 0x4E, 0x54, 0x5A, 0x64
})
Name (ECAR, Package () // EC Backlight Levels
{
0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
})
Name (_BCL, Package (0x43) // _BCL: Brightness Control Levels
{
1807, 479, //ac + dc level group
0, 25, 53, 81, 109, //0x00 level group
137, 165, 193, 221, //0x01 level group
249, 277, 305, 333, //0x02 level group
361, 389, 417, 445, //0x03 level group
473, 501, 529, 557, //0x04 level group
585, 613, 641, 669, //0x05 level group
697, 725, 753, 781, //0x06 level group
809, 837, 865, 893, //0x07 level group
921, 949, 977, 1005, //0x08 level group
1033, 1061, 1089, 1117, //0x09 level group
1145, 1173, 1201, 1229, //0x0a level group
1257, 1285, 1313, 1341, //0x0b level group
1369, 1397, 1425, 1453, //0x0c level group
1481, 1509, 1537, 1565, //0x0d level group
1593, 1621, 1649, 1677, //0x0e level group
1705, 1733, 1761, 1808 //0x0f level group
})
// preserve brightness level for BIOS
Method (SAVE, 1, NotSerialized)
{
// get level position in _BCL array
Store (Match (_BCL, MGE, Arg0, MTR, Zero, 0x02), Local0)
If (LEqual (Local0,Ones))
{
Subtract (SizeOf (_BCL), One, Local0)
}
// divide index by the number of steps for one level
// determine reg values for cold boot level consistency
Divide (Local0, STPS,, Local0)
Store (DerefOf (Index (ECAR, Local0)), Local1)
Store (DerefOf (Index (CBAR, Local0)), Local2)
Xor (Local2, 0x80000000, Local2)
// write register values
Store (Local2, \_SB.PCI0.IGPU.CBLV)
// determine power source used, different regs for ac/dc power
If (PWRS)
{
Store (Local1,BRGA)
}
Else
{
Store (Local1,BRGD)
}
}