• 0

Probleme with Brightness control with DSDT ( Yosemite 10.10 )
1 1

Question

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

0 answers to this question

There have been no answers to this question yet

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
1 1