LatinMcGyver75, on May 7 2010, 06:54 PM, said:
The Key part to not getting black screen or blue or gray is
Method (_DOD, 0, NotSerialized)
{
Return (Package (0x02)
{
0x00010400, < LCD AKA PNLF FIRST
0x00010100 <VGA CRT SECOND
})
}
Im on stock original 10.5.8 with no framebuf changes at all. Vanilla 27A2 27A6
hi McGyver;
Thanks for sharing your solution. I just tryed to adapt it to my situation, I have a VID device with adress 0x00020000 that contains LCD (adr 0400), DVI (0x0300), CRT (0x0100) and TV (0x200). Another device named VID2 exist but it contains no other devices and its adress is 0x00020001 with an empty DOD method (I guess it points on CRT ???).
I have renamed VID to GFX0, LCD to PNLF and modified the DOD method within GFX0 to :
Method (_DOD, 0, NotSerialized)
{
Return (Package (0x04)
{
0x00010400,
0x00010100,
0x00010200,
0x00010300
})
}
It is not working so far but I wonder wether I should change it to
Method (_DOD, 0, NotSerialized)
{
Return (Package (0x04)
{
0x000[b]0[/b]0400,
0x000[b]0[/b]0100,
0x000[b]0[/b]0200,
0x000[b]0[/b]0300
})
}
in order that it returns correct adresses i.e in the GFX0 device!
I will test it and report on :-) (I just notice this!)
Here is my current DSDT
Device (GFX0)
{
Name (_ADR, 0x00020000)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x04)
{
"AAPL,HasPanel",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},
"model",
Buffer (0x07)
{
"GMA950"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
Method (_DOS, 1, NotSerialized)
{
Store (Arg0, MIS4)
SMI (0x9E, MIS4)
}
Method (_DOD, 0, NotSerialized)
{
Return (Package (0x04)
{
0x00010400,
0x00010100,
0x00010200,
0x00010300
})
}
Device (TV)
{
Method (_ADR, 0, NotSerialized)
{
Return (0x0200)
}
Method (_DCS, 0, NotSerialized)
{
Store (SMI (0x8E, 0x04), Local0)
Return (Local0)
}
Method (_DGS, 0, NotSerialized)
{
Store (SMI (0x99, 0x04), Local0)
Return (Local0)
}
Method (_DSS, 1, NotSerialized)
{
DSS (0x04, Arg0)
}
}
Device (CRT)
{
Method (_ADR, 0, NotSerialized)
{
Return (0x0100)
}
Method (_DCS, 0, NotSerialized)
{
Store (SMI (0x8E, 0x02), Local0)
Return (Local0)
}
Method (_DGS, 0, NotSerialized)
{
Store (SMI (0x99, 0x02), Local0)
Return (Local0)
}
Method (_DSS, 1, NotSerialized)
{
DSS (0x02, Arg0)
}
}
Device (PNLF)
{
Method (_ADR, 0, NotSerialized)
{
Return (0x0400)
}
Method (_DCS, 0, NotSerialized)
{
Store (SMI (0x8E, One), Local0)
Return (Local0)
}
Method (_DGS, 0, NotSerialized)
{
Store (SMI (0x99, One), Local0)
Return (Local0)
}
Method (_DSS, 1, NotSerialized)
{
DSS (One, Arg0)
}
Name (BTVL, 0x64)
Name (DBCL, Package (0x0A) {})
Method (_BCL, 0, NotSerialized)
{
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)
{
SX10 ()
SX30 (0x19)
SX30 (One)
SX30 (Arg0)
Store (Arg0, BTVL)
SX11 ()
SX12 ()
}
Method (_BQC, 0, NotSerialized)
{
SX10 ()
SX30 (0x19)
SX30 (0x02)
SX11 ()
Store (SX40 (), Local0)
Store (Local0, BTVL)
SX12 ()
Return (Local0)
}
}
Device (DVI)
{
Method (_ADR, 0, NotSerialized)
{
Return (0x0300)
}
Method (_DCS, 0, NotSerialized)
{
Store (SMI (0x8E, 0x08), Local0)
Return (Local0)
}
Method (_DGS, 0, NotSerialized)
{
Store (SMI (0x99, 0x08), Local0)
Return (Local0)
}
Method (_DSS, 1, NotSerialized)
{
DSS (0x08, Arg0)
}
}
}
Device (VID2)
{
Name (_ADR, 0x00020001)
Method (_DOS, 1, NotSerialized)
{
}
Method (_DOD, 0, NotSerialized)
{
Return (Package (0x00) {})
}
}
Cius