Jump to content

DSDT/Bios Modder needed: force VGA display out


  • Please log in to reply
11 replies to this topic

#1
Dyckyj

Dyckyj

    InsanelyMac Protégé

  • Members
  • PipPip
  • 66 posts
Thanks to member 0xdeadbeef I have almost been able to get my laptop (with mobile 2400xt) fully working. The only problem is that I need to be able to force vga output on boot so that when the os loads my internal display doesn't go to sleep. The option to select a display doesn't exist in my bios.
The bios is available here: http://support.acer-...ok/tm_7720.html
I attached my dsdt

Attached Files



#2
Dyckyj

Dyckyj

    InsanelyMac Protégé

  • Members
  • PipPip
  • 66 posts

Thanks to member 0xdeadbeef I have almost been able to get my laptop (with mobile 2400xt) fully working. The only problem is that I need to be able to force vga output on boot so that when the os loads my internal display doesn't go to sleep. The option to select a display doesn't exist in my bios.
The bios is available here: http://support.acer-...ok/tm_7720.html
I attached my dsdt

Anyone? As long as I get the display to somehow not go to sleep I should be good

#3
LatinMcG

LatinMcG

    Insanely digesting DSDT

  • Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 2,508 posts
  • Gender:Male
  • Location:Tampa, Florida
its the _DOD
[codebox] Device (PEGP)
{
Name (_ADR, 0x00010000)
Method (_STA, 0, NotSerialized)
{
If (IGDS)
{
Return (0x00)
}
Else
{
Return (0x0F)
}
}

Device (VGA)
{
Name (_ADR, 0x00)
Method (_DOS, 1, NotSerialized)
{
Store (And (Arg0, 0x03), DSEN)
}

Method (_DOD, 0, NotSerialized)
{
If (LEqual (PEGT, 0x03))
{
Return (Package (0x04)
{
0x00010100,
0x00010200,
0x00010118,
0x00010120
})
}
Else
{
Return (Package (0x04)
{
0x00010100,
0x00010200,
0x00010110,
0x00010210
})
}
}

Device (CRT)
{
Name (_ADR, 0x0100)
Method (_DCS, 0, NotSerialized)
{
PHSR (0x25, 0x00)
If (And (CSTE, 0x0101))
{
Return (0x1F)
}

Return (0x1D)
}

Method (_DGS, 0, NotSerialized)
{
If (And (NSTE, 0x0101))
{
Return (0x01)
}

Return (0x00)
}

Method (_DSS, 1, NotSerialized)
{
If (LEqual (And (Arg0, 0xC0000000), 0xC0000000))
{
Store (NSTE, CSTE)
}
}
}

Device (LCD)
{
Method (_ADR, 0, NotSerialized)
{
If (LEqual (PEGT, 0x03))
{
Return (0x0118)
}
Else
{
Return (0x0110)
}
}

Method (_DCS, 0, NotSerialized)
{
PHSR (0x25, 0x00)
If (And (CSTE, 0x0808))
{
Return (0x1F)
}

Return (0x1D)
}

Method (_DGS, 0, NotSerialized)
{
If (And (NSTE, 0x0808))
{
Return (0x01)
}

Return (0x00)
}

Method (_DSS, 1, NotSerialized)
{
If (LEqual (And (Arg0, 0xC0000000), 0xC0000000))
{
Store (NSTE, CSTE)
}
}

Method (_DDC, 1, NotSerialized)
{
If (LEqual (Arg0, 0x01))
{
Return (\_SB.PCI0.PEGP.VGA.DDC4)
}

If (LEqual (Arg0, 0x02))
{
Concatenate (\_SB.PCI0.PEGP.VGA.DDC4, \_SB.PCI0.PEGP.VGA.DDC0, Local0)
Return (Local0)
}

Return (0x00)
}[/codebox]
if still no go IGDS line in PEGP must return 0x0f to turn on pegp

#4
Dyckyj

Dyckyj

    InsanelyMac Protégé

  • Members
  • PipPip
  • 66 posts

its the _DOD

if still no go IGDS line in PEGP must return 0x0f to turn on pegp

Thanks for helping, unfortunately it isn't working for me... I might to a clean install of Leopard sometime this week and see if it helps
2 Questions:
Should I be trying this with external vga/dummy plugged in or out?
and when you say that the IGDS line in PEGP must return 0x0f to turn on pegp what exactly are you referring to
Device (PEGP)            {                Name (_ADR, 0x00010000)                Method (_STA, 0, NotSerialized)                {                    If (IGDS)                    {                        Return (0x00) ---> do I change it to: Return (0x0f)                    }                    Else                    {                        Return (0x0F)                    }
EDIT: tried it and it didn't work
Another Question: I've taken out my no-hotplug-support, no-hotplug-interrupt, and @0,display-link-component-bits flags out of my efi string (for more info see the other thread) would any of those be needed?

#5
LatinMcG

LatinMcG

    Insanely digesting DSDT

  • Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 2,508 posts
  • Gender:Male
  • Location:Tampa, Florida
im not an ATi specialist. but i do recognize _DOD is your issue. the CRT 200 and the LCD have address 118 or 110
furthermore i dont know if enable IGDS integrated graphics or PEGP is the way to fix. ill see what enables IGDS or PEGP .and we try both.. 1 at a time.

0x0f means enabled

try removing the CRT entry and the addr corresponding in _DOD


was your dsdt changed in any way ? or original ? i see gfx0 with a very complex ndid . and in pegp i see VGA which has _DOD with CRT .

i had issues in my inspiron 1520 win nvidia and crt aka VGA blue port wanting to be primary display.

so i switched order of _DOD tobe LCD first.
but in your case i think PEGT is the way to enable PEGP :D so many acronyms.. its cause hdmi and ati multiple gpu congif. confusing ..
try this.. i removed (CRT)
and fixed PEGP
[codebox] Device (PEGP)
{
Name (_ADR, 0x00010000)
Method (_STA, 0, NotSerialized)
{
Return (0x0F)
}
[/codebox]

#6
Dyckyj

Dyckyj

    InsanelyMac Protégé

  • Members
  • PipPip
  • 66 posts
Once again thanks for helping, but its still no go. When your screen went black did your computer go to sleep (cpu fan die down)? I'm not sure that my problem is completely due to the internal screen...
EDIT: the dsdt was from Ubuntu

#7
LatinMcG

LatinMcG

    Insanely digesting DSDT

  • Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 2,508 posts
  • Gender:Male
  • Location:Tampa, Florida
sorry i know im near. but i think what enables PEGP isnt enabling it .. instead it enables GFX0 aka IGDS ? not sure but it does look somewhat familiar with my dsdt.. but more complex.

#8
morkb

morkb

    InsanelyMac Protégé

  • Members
  • Pip
  • 45 posts

sorry i know im near. but i think what enables PEGP isnt enabling it .. instead it enables GFX0 aka IGDS ? not sure but it does look somewhat familiar with my dsdt.. but more complex.



hi LatinMcGyver75,

I see you are very expert in dsdt and graphics card...could you kindly help us on this as I think the problem it's quite similar the one you had

http://www.insanelym...howtopic=223754

it's about i3/i5 integrated graphic card gma5700 id 0046 or 0042 for desktop
As you can see we got partial qe/ci but as soon as we load AppleIntelHDGraphicsFB.kext and AppleIntelHDGraphicsGA.plugin we just got a black screen...the lcd is working as I can see light from it and when macosx load it's just turn off then go white and suddely black in just few millisec and it remains black

vnc connection is working and with that we can get full graphic acceleration...but internal lcd won't show up anything but black

I tried _dod method and others but i'm not expert in dsdt patching so I think I didn't do the right steps

here attached my dsdt that maldon kindly made me...if you can find a solution I 'll be very gratefull...by the way I have intel hd 5700 and ati 5470M..I can load all kexts but screen just stays black

thank you very much
Marco

Attached Files



#9
LatinMcG

LatinMcG

    Insanely digesting DSDT

  • Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 2,508 posts
  • Gender:Male
  • Location:Tampa, Florida
ill give it a shot .. but im not totaly sure of all aspects of fixing the issue.

to me it sounds like its not supported by the framebuffer.
anyways i changed
Method (_DOD, 0, NotSerialized)                    {                        Return (Package (0x03)                        {                            0x00010110,                             0x00010100,                             0x00010210                        })                    }
if problems then remove
Device (CRT)                    {                        Name (_ADR, 0x0100)                        Method (_DCS, 0, NotSerialized)                        {                            If (CRTA)                            {                                Return (0x1F)                            }                            Else                            {                                Return (0x1D)                            }                        }                        Method (_DGS, 0, NotSerialized)                        {                            If (CRTA)                            {                                Return (One)                            }                            Else                            {                                Return (Zero)                            }                        }                        Method (_DSS, 1, NotSerialized)                        {                        }                    }
and
0x00010100,
which belongs to _ADR, 0x0100 of the CRT

further inspecting i find GFX0 _DOD had a external call to enable it
External (IDAB, MethodObj) // 0 Arguments

which is in an SSDT-

Attached Files



#10
morkb

morkb

    InsanelyMac Protégé

  • Members
  • Pip
  • 45 posts
hi LatinMcGyver75,

thank you very much..I will try this evening!

by teh way what about this I have to do something?

further inspecting i find GFX0 _DOD had a external call to enable it
External (IDAB, MethodObj) // 0 Arguments

which is in an SSDT-


thank you very much..really appreciate!

#11
LatinMcG

LatinMcG

    Insanely digesting DSDT

  • Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 2,508 posts
  • Gender:Male
  • Location:Tampa, Florida
means it has something controlling it not in dsdt but in ssdt . might be ok if we find the proper sequence of enabling or skipping checks for the devices.
i might need an ioregdump since u have access in vnc. or i can help in vnc.

#12
morkb

morkb

    InsanelyMac Protégé

  • Members
  • Pip
  • 45 posts
Hi LatinMcGyver75,

thank you very much for your help and sorry for reply so late but snow leoprad doesn't give black screen again..I should have changed some kexts...I have to take a back up from time machine...so I wasn't able to test your dsdt yet

Anyway...I will fix the issue and I will come back to you soon....No problem for me to let you connect through vnc but I think we have a time zone problem...you are from usa...I'm from Italy!

I think maybe a ioregdump is easier...what kind of dump do you need..if you have a special terminal command to use please let me know...otherwise I could also use the runme script that maldon sent me..it will give you full ioreg and other stuffs

what do you think?

thank you very much
Marco

...Fixed I had to load a gfx string in boot plist before..i forgot it





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy