Jump to content
Taki Boumerah

Probleme with Brightness control with DSDT ( Yosemite 10.10 )

Recommended Posts

Hello Hello !


I come to you today seeking some help from you
So my probleme is with the brightness control on my laptop which is a Toshiba L755-127 with those specifications :

  • 2nd generation Intel® Core™ i3-2310M Processor
  • 4,096 (1x) MB, DDR3 RAM (1,333 MHz)
  • NVIDIA® GeForce® GT 525M with CUDA™ Technology

Even if i tried to modifie my DSDT that i found using MaciASL by putting some more code under PEG0 (i didn't touch anything else)
I also tried using ACPIBacklight.kext but nothing  

 

( i used MultiB*ast to add a user DSDT and i can find the file in Extra on my OS disk )

 

You can find under here in the spoiler the peace of code that i added to my Dsdt 

 

 

Scope (_SB.PCI0)

{
Device (PEG0)
{
Name (_ADR, 0x00010000) // _ADR: Address
Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
{
0x09,
0x05
})
Device (HDAU)
{
Name (_ADR, One) // _ADR: Address
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
Store (Package (0x02)
{
"hda-gfx",
Buffer (0x0A)
{
"onboard-1"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}

Name (PR0A, Package (0x04)
{
Package (0x04)
{
0xFFFF,
Zero,
LNKA,
Zero
},

Package (0x04)
{
0xFFFF,
One,
LNKB,
Zero
},

Package (0x04)
{
0xFFFF,
0x02,
LNKC,
Zero
},

Package (0x04)
{
0xFFFF,
0x03,
LNKD,
Zero
}
})
Name (AR0A, Package (0x04)
{
Package (0x04)
{
0xFFFF,
Zero,
Zero,
0x10
},

Package (0x04)
{
0xFFFF,
One,
Zero,
0x11
},

Package (0x04)
{
0xFFFF,
0x02,
Zero,
0x12
},

Package (0x04)
{
0xFFFF,
0x03,
Zero,
0x13
}
})
Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
{
If (PICM)
{
Return (AR0A)
}

Return (PR0A)
}

Device (PEGP)
{
Name (_ADR, 0xFFFF) // _ADR: Address
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
Store (Package (0x3E)
{
"AAPL,backlight-control",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},

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

"AAPL,aux-power-connected",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},

"@0,AAPL,boot-display",
Buffer (One)
{
0x01
},

"@0,display-cfg",
Buffer (0x04)
{
0xFF, 0xFF, 0x36, 0x00
},

"@1,display-cfg",
Buffer (0x04)
{
0x01, 0x3E, 0xFF, 0x00
},

"@0,built-in",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x01
},

"@0,use-backlight-blanking",
Buffer (0x04) {},
"AAPL,gray-page",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},

"AAPL00,inverter",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
},

"AAPL,slot-name",
Buffer (0x07)
{
"Slot-1"
},

"@1,can-hot-plug",
Buffer (0x04) {},
"AAPL00,blackscreen.preferences",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x08
},

"AAPL01,blackscreen.preferences",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x08
},

"@0,pwm-info",
Buffer (0x18)
{
/* 0000 */ 0x02, 0x18, 0x00, 0x64, 0x90, 0x59, 0x02, 0x00,
/* 0008 */ 0x08, 0x52, 0x00, 0x00, 0xA5, 0x1C, 0x00, 0x00,
/* 0010 */ 0x00, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
},

"NVPM",
Buffer (0x1C)
{
/* 0000 */ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0018 */ 0x00, 0x00, 0x00, 0x00
},

"@0,EDID",
Buffer (0x80)
{
/* 0000 */ 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
/* 0008 */ 0x4C, 0xA3, 0x45, 0x32, 0x00, 0x00, 0x00, 0x00,
/* 0010 */ 0x00, 0x12, 0x01, 0x00, 0x80, 0x22, 0x13, 0x78,
/* 0018 */ 0x0A, 0x87, 0xF5, 0x94, 0x57, 0x4F, 0x8C, 0x27,
/* 0020 */ 0x27, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
/* 0028 */ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
/* 0030 */ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x41, 0x1C,
/* 0038 */ 0x56, 0xA0, 0x50, 0x00, 0x16, 0x30, 0x30, 0x20,
/* 0040 */ 0x25, 0x00, 0x58, 0xC2, 0x10, 0x00, 0x00, 0x19,
/* 0048 */ 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00,
/* 0050 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x87, 0x02,
/* 0058 */ 0x64, 0x01, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x53,
/* 0060 */ 0x41, 0x4D, 0x53, 0x55, 0x4E, 0x47, 0x0A, 0x20,
/* 0068 */ 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
/* 0070 */ 0x00, 0x4C, 0x54, 0x4E, 0x31, 0x35, 0x36, 0x41,
/* 0078 */ 0x54, 0x30, 0x32, 0x30, 0x30, 0x30, 0x00, 0x7C
},

"@0,compatible",
Buffer (0x0B)
{
"NVDA,NVMac"
},

"@0,connector-type",
Buffer (0x04)
{
0x00, 0x08, 0x00, 0x00
},

"@0,device_type",
Buffer (0x08)
{
"display"
},

"@0,name",
Buffer (0x0F)
{
"NVDA,Display-A"
},

"@1,compatible",
Buffer (0x0B)
{
"NVDA,NVMac"
},

"@1,connector-type",
Buffer (0x04)
{
0x00, 0x08, 0x00, 0x00
},

"@1,device_type",
Buffer (0x08)
{
"display"
},

"@1,name",
Buffer (0x0F)
{
"NVDA,Display-B"
},

"NVCAP",
Buffer (0x18)
{
/* 0000 */ 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
/* 0008 */ 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A,
/* 0010 */ 0x00, 0x00, 0x00, 0x00
},

"VRAM,totalsize",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x40
},

"device_type",
Buffer (0x0C)
{
"NVDA,Parent"
},

"model",
Buffer (0x10)
{
"GeForce GT 525M"
},

"rom-revision",
Buffer (0x0F)
{
"70.08.54.00.0B"
},

"hda-gfx",
Buffer (0x0A)
{
"onboard-1"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}

Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
{
0x09,
0x04
})
}

Device (VGA)
{
Name (_ADR, Zero) // _ADR: Address
Name (NBL1, Package (0x10)
{
0x25,
0x1B,
0xA2,
0x44,
0x17,
0x62,
0x17,
0x46,
0xBF,
0xB7,
0x41,
0x51,
0x4C,
0xEA,
0xC2,
0x41
})
Method (NV3D, 4, Serialized)
{
Name (T_0, Zero)
If (LNotEqual (Arg1, 0x0102))
{
Return (0x80000002)
}

While (One)
{
Store (ToInteger (Arg2), T_0)
If (LEqual (T_0, Zero))
{
Return (0x00100001)
}
Else
{
If (LEqual (T_0, 0x16))
{
CreateWordField (Arg3, Zero, USRG)
If (LEqual (ToInteger (USRG), 0x02))
{
Return (NBL1)
}
}
Else
{
If (LEqual (T_0, 0x14))
{
Return (Package (0x0C)
{
0x00010110,
0x0100,
Zero,
Zero,
Zero,
One,
0xD2,
Zero,
0x03E8,
Zero,
Zero,
Zero
})
}
}
}

Break
}

Return (0x80000002)
}

Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
If (LEqual (Arg0, Buffer (0x10)
{
/* 0000 */ 0x75, 0x0B, 0xA5, 0xD4, 0xC7, 0x65, 0xF7, 0x46,
/* 0008 */ 0xBF, 0xB7, 0x41, 0x51, 0x4C, 0xEA, 0x02, 0x44
}))
{
Return (NV3D (Arg0, Arg1, Arg2, Arg3))
}

Return (0x80000001)
}

OperationRegion (GPPB, PCI_Config, 0xB4, 0x14)
Field (GPPB, ByteAcc, NoLock, Preserve)
{
PBCI, 8,
PBNP, 8,
PBLS, 8,
PBCC, 8,
PBCR, 32,
PBDI, 32,
PBDO, 32,
PBMR, 32
}

Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (0x0F)
}

Name (_PSC, Zero) // _PSC: Power State Current
Method (_PS0, 0, NotSerialized) // _PS0: Power State 0
{
Store (Zero, _PSC)
}

Method (_PS1, 0, NotSerialized) // _PS1: Power State 1
{
Store (One, _PSC)
}

Method (_PS2, 0, NotSerialized) // _PS2: Power State 2
{
Store (0x02, _PSC)
}

Method (_PS3, 0, NotSerialized) // _PS3: Power State 3
{
Store (0x03, _PSC)
}

Name (NDSP, Zero)
Name (TGLT, Package (0x06)
{
Package (0x0A)
{
One,
One,
One,
One,
One,
One,
One,
One,
One,
One
},

Package (0x0A)
{
One,
0x02,
0x03,
One,
One,
One,
One,
One,
One,
One
},

Package (0x0A)
{
One,
0x05,
One,
One,
One,
One,
One,
One,
One,
One
},

Package (0x0A)
{
One,
0x02,
0x03,
0x05,
One,
One,
One,
One,
One,
One
},

Package (0x0A)
{
One,
0x08,
One,
One,
One,
One,
One,
One,
0x09,
One
},

Package (0x0A)
{
One,
0x02,
0x03,
0x09,
One,
One,
One,
One,
One,
One
}
})
Name (TGLP, Zero)
Device (LCD)
{
Name (_ADR, 0x0110) // _ADR: Address
Name (_PSC, Zero) // _PSC: Power State Current
Name (_S3D, 0x03) // _S3D: S3 Device State
Method (_PS0, 0, NotSerialized) // _PS0: Power State 0
{
Store (Zero, _PSC)
}

Method (_PS1, 0, NotSerialized) // _PS1: Power State 1
{
Store (One, _PSC)
}

Method (_PS3, 0, NotSerialized) // _PS3: Power State 3
{
Store (0x03, _PSC)
}

Name (_DCS, 0x1B) // _DCS: Display Current Status
Name (_DGS, Zero) // _DGS: Display Graphics State
Method (_DSS, 1, NotSerialized) // _DSS: Device Set State
{
Store (Arg0, Local0)
If (And (Local0, One))
{
Or (NDSP, One, NDSP)
}
Else
{
And (NDSP, 0xFE, NDSP)
}

And (Local0, 0x80000000, Local0)
If (LNotEqual (Local0, Zero))
{
Or (And (_DCS, 0xFD), ShiftLeft (And (NDSP, One),
One), _DCS)
Or (And (^^CRT._DCS, 0xFD), And (NDSP, 0x02), ^^CRT._DCS)
Or (And (^^TV._DCS, 0xFD), ShiftRight (And (NDSP, 0x04),
One), ^^TV._DCS)
UDGS ()
}
}

Name (LCD0, Zero)
Method (NINT, 1, NotSerialized)
{
Name (CNT, Zero)
Name (TMP1, Zero)
Name (TMP2, Zero)
If (LEqual (PBCC, One))
{
If (LEqual (PBMR, Zero))
{
Store (0x02, PBMR)
If (LEqual (PBMR, 0x02))
{
While (LAnd (LAnd (PBCC, 0xFF), LLess (CNT, 0x0A)))
{
Increment (CNT)
Sleep (One)
}

If (LEqual (And (PBCR, 0x02), Zero))
{
Multiply (Arg0, 0x0A, TMP1)
ShiftLeft (TMP1, 0x08, TMP2)
Or (TMP2, LCD0, TMP1)
Store (TMP1, PBDI)
Store (0x86100000, PBCR)
}

Store (Zero, PBMR)
Return (One)
}
}
}

Return (Zero)
}

Name (BRLV, Package (0x0A)
{
0x64,
0x28,
0x0A,
0x14,
0x1E,
0x28,
0x37,
0x46,
0x55,
0x64
})
Method (_BCL, 0, NotSerialized) // _BCL: Brightness Control Levels
{
Return (BRLV)
}

Method (_BCM, 1, Serialized) // _BCM: Brightness Control Method
{
Name (T_0, Zero)
Store (SizeOf (BRLV), Local0)
While (Local0)
{
Decrement (Local0)
Store (DerefOf (Index (BRLV, Local0)), Local1)
If (LEqual (Arg0, Local1))
{
Break
}
}

Subtract (Local0, 0x02, Local0)
While (One)
{
Store (ToInteger (Local0), T_0)
If (LEqual (T_0, Zero))
{
Store (PL00, NVLV)
}
Else
{
If (LEqual (T_0, One))
{
Store (PL01, NVLV)
}
Else
{
If (LEqual (T_0, 0x02))
{
Store (PL02, NVLV)
}
Else
{
If (LEqual (T_0, 0x03))
{
Store (PL03, NVLV)
}
Else
{
If (LEqual (T_0, 0x04))
{
Store (PL04, NVLV)
}
Else
{
If (LEqual (T_0, 0x05))
{
Store (PL05, NVLV)
}
Else
{
If (LEqual (T_0, 0x06))
{
Store (PL06, NVLV)
}
Else
{
If (LEqual (T_0, 0x07))
{
Store (PL07, NVLV)
}
}
}
}
}
}
}
}

Break
}

Store (Divide (Multiply (NVLV, 0x64), 0xFF, ), NVLV)
Store (Local0, ^^^^LPCB.EC0.BLVL)
Store (Arg0, BRTL)
NINT (NVLV)
}

Method (_BQC, 0, NotSerialized) // _BQC: Brightness Query Current
{
Return (BRTL)
}
}

Device (CRT)
{
Name (_ADR, 0x0100) // _ADR: Address
Name (_PSC, Zero) // _PSC: Power State Current
Method (_PS0, 0, NotSerialized) // _PS0: Power State 0
{
Store (Zero, _PSC)
FSMI (0xAB, Zero)
}

Method (_PS1, 0, NotSerialized) // _PS1: Power State 1
{
Store (One, _PSC)
}

Method (_PS3, 0, NotSerialized) // _PS3: Power State 3
{
Store (0x03, _PSC)
FSMI (0xAC, Zero)
}

Name (_DCS, 0x1B) // _DCS: Display Current Status
Name (_DGS, Zero) // _DGS: Display Graphics State
Method (_DSS, 1, NotSerialized) // _DSS: Device Set State
{
Store (Arg0, Local0)
If (And (Local0, One))
{
Or (NDSP, 0x02, NDSP)
}
Else
{
And (NDSP, 0xFD, NDSP)
}

And (Local0, 0x80000000, Local0)
If (LNotEqual (Local0, Zero))
{
Or (And (^^LCD._DCS, 0xFD), ShiftLeft (And (NDSP, One),
One), ^^LCD._DCS)
Or (And (_DCS, 0xFD), And (NDSP, 0x02), _DCS)
Or (And (^^TV._DCS, 0xFD), ShiftRight (And (NDSP, 0x04),
One), ^^TV._DCS)
UDGS ()
}
}
}

Device (TV)
{
Name (_ADR, 0x0200) // _ADR: Address
Name (_PSC, Zero) // _PSC: Power State Current
Method (_PS0, 0, NotSerialized) // _PS0: Power State 0
{
Store (Zero, _PSC)
FSMI (0xAB, Zero)
}

Method (_PS1, 0, NotSerialized) // _PS1: Power State 1
{
Store (One, _PSC)
}

Method (_PS3, 0, NotSerialized) // _PS3: Power State 3
{
Store (0x03, _PSC)
FSMI (0xAC, Zero)
}

Name (_DCS, 0x1B) // _DCS: Display Current Status
Name (_DGS, Zero) // _DGS: Display Graphics State
Method (_DSS, 1, NotSerialized) // _DSS: Device Set State
{
Store (Arg0, Local0)
If (And (Local0, One))
{
Or (NDSP, 0x04, NDSP)
}
Else
{
And (NDSP, 0xFB, NDSP)
}

And (Local0, 0x80000000, Local0)
If (LNotEqual (Local0, Zero))
{
Or (And (^^LCD._DCS, 0xFD), ShiftLeft (And (NDSP, One),
One), ^^LCD._DCS)
Or (And (^^CRT._DCS, 0xFD), And (NDSP, 0x02), ^^CRT._DCS)
Or (And (_DCS, 0xFD), ShiftRight (And (NDSP, 0x04),
One), _DCS)
UDGS ()
}
}
}

Device (DFP)
{
Name (_ADR, 0x80007330) // _ADR: Address
Name (_PSC, Zero) // _PSC: Power State Current
Method (_PS0, 0, NotSerialized) // _PS0: Power State 0
{
Store (Zero, _PSC)
FSMI (0xAB, Zero)
}

Method (_PS1, 0, NotSerialized) // _PS1: Power State 1
{
Store (One, _PSC)
}

Method (_PS3, 0, NotSerialized) // _PS3: Power State 3
{
Store (0x03, _PSC)
FSMI (0xAC, Zero)
}

Name (_DCS, 0x1B) // _DCS: Display Current Status
Name (_DGS, Zero) // _DGS: Display Graphics State
Method (_DSS, 1, NotSerialized) // _DSS: Device Set State
{
Store (Arg0, Local0)
If (And (Local0, One))
{
Or (NDSP, 0x08, NDSP)
}
Else
{
And (NDSP, 0xF7, NDSP)
}

And (Local0, 0x80000000, Local0)
If (LNotEqual (Local0, Zero))
{
Or (And (^^LCD._DCS, 0xFD), ShiftLeft (And (NDSP, One),
One), ^^LCD._DCS)
Or (And (^^CRT._DCS, 0xFD), And (NDSP, 0x02), ^^CRT._DCS)
Or (And (^^TV._DCS, 0xFD), ShiftRight (And (NDSP, 0x04),
One), ^^TV._DCS)
Or (And (_DCS, 0xFD), ShiftRight (And (NDSP, 0x08),
0x02), _DCS)
UDGS ()
}
}
}

Method (_DOD, 0, NotSerialized) // _DOD: Display Output Devices
{
Return (Package (0x04)
{
0x00010100,
0x00010110,
0x00010200,
0x80007330
})
}

Method (DRUL, 0, NotSerialized)
{
USTA ()
UDGS ()
Store (^LCD._DCS, Local1)
Or (Or (ShiftLeft (And (OG21, One), 0x04), ShiftLeft (
And (OG22, One), One)), And (Local1, 0x0D),
^LCD._DCS)
Store (^CRT._DCS, Local1)
Or (Or (ShiftLeft (And (OG21, 0x02), 0x03), And (
OG22, 0x02)), And (Local1, 0x0D), ^CRT._DCS)
Store (^DFP._DCS, Local1)
Or (Or (ShiftLeft (And (OG21, 0x08), One), ShiftRight (
And (OG22, 0x08), 0x02)), And (Local1, 0x0D),
^DFP._DCS)
If (LOr (LAnd (^CRT._DGS, LNot (And (^CRT._DCS, 0x10))), LAnd (
^DFP._DGS, LNot (And (^DFP._DCS, 0x10)))))
{
UDGS ()
}
Else
{
Notify (VGA, 0x80)
}
}

Method (USTA, 0, Serialized)
{
Name (T_0, Zero)
FSMI (0xAA, Zero)
Store (OG21, Local1)
While (One)
{
Store (Local1, T_0)
If (LEqual (T_0, 0x03))
{
Store (One, TGLP)
}
Else
{
If (LEqual (T_0, 0x09))
{
Store (0x04, TGLP)
}
Else
{
If (LEqual (T_0, 0x0B))
{
Store (0x05, TGLP)
}
Else
{
Store (Zero, TGLP)
}
}
}

Break
}
}

Method (UDGS, 0, NotSerialized)
{
Store (ShiftRight (And (^LCD._DCS, 0x02), One), ^LCD._DGS)
Store (ShiftRight (And (^CRT._DCS, 0x02), One), ^CRT._DGS)
Store (ShiftRight (And (^TV._DCS, 0x02), One), ^TV._DGS)
Store (ShiftRight (And (^DFP._DCS, 0x02), One), ^DFP._DGS)
And (^LCD._DGS, One, Local0)
Or (Local0, ShiftLeft (And (^CRT._DGS, One), One), Local0)
Or (Local0, ShiftLeft (And (^TV._DGS, One), 0x02), Local0)
Or (Local0, ShiftLeft (And (^DFP._DGS, One), 0x03), Local0)
Store (DerefOf (Index (DerefOf (Index (TGLT, TGLP)), Local0)),
Local1)
Store (And (Local1, One), ^LCD._DGS)
Store (And (ShiftRight (Local1, One), One), ^CRT._DGS)
Store (And (ShiftRight (Local1, 0x02), One), ^TV._DGS)
Store (And (ShiftRight (Local1, 0x03), One), ^DFP._DGS)
}
}
}

 

 

thank you for the help and sorry for the bad english ^^

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


Hackintosh News Feed

News relevant to Hackintosh

×
×
  • Create New...