Contribute
Register

Combining two DSDT's

Status
Not open for further replies.
Joined
May 6, 2010
Messages
191
Motherboard
Z68-XP-UD3
CPU
i7-2600K
Graphics
GTX 660 Ti
Mac
  1. MacBook Air
  2. Mac Pro
Hey guys,

I'll try to make this story short as much as possible. I had a vanilla 10.6.3 Gateway(p171) laptop that I ran into a problem with. When I updated my ram, the original DSDT had memory locked at 1gb a stick. When I rebooted all hell broke loose and I ended up reformatting and reinstalling the OS (didn't know the DSDT was causing it at the time of format).

I pulled a new DSDT and got all my fixes up and running on it (cpumanage, cmos, etc..) however there is one thing I need help with. I have a custom appleHDA made for my original dsdt (see below). I found the HDEF section which you can see is a HUGE difference (1. my old DSDT, 2. Being current DSDT). When I tried to copy the HDEF section to the new one I only got 3 errors but 3 I'm not familiar with. I believe it's saying that the locations in HDEF are calling to other areas in the DSDT and those aren't there. This is where I'm stuck at this point.

My question is, could someone help me transfer the old audio information to my new DSDT to get my audio back? OR could someone take my old DSDT and just add the new memory information in that one so the laptop will load. I think the second idea would be easier actually, my only worry is that when I pulled my original DSDT when all hell was breaking loose, I got 1 error that wouldn't let me load (e/e extension error on fakesmc which don't want to get stuck on that). I'm not advanced at DSDT so trying to track the audio coding into other areas of the DSDT is past my experience level.

1. WORKING original DSDT Audio example
Device (HDEF)
{
Name (_ADR, 0x001B0000)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x06)
{
"codec-id",
Buffer (0x04)
{
0xB0, 0x76, 0x1D, 0x11
},

"layout-id",
Buffer (0x04)
{
0x0C, 0x00, 0x00, 0x00
},

"PinConfigurations",
Buffer (0x50)
{
/* 0000 */ 0x10, 0x10, 0x21, 0x00, 0x20, 0x10, 0xA1, 0x00,
/* 0008 */ 0xF0, 0x00, 0xF0, 0x40, 0x30, 0x00, 0x17, 0x90,
/* 0010 */ 0x40, 0x00, 0xF0, 0x40, 0x50, 0x00, 0xF0, 0x40,
/* 0018 */ 0x70, 0x00, 0xF0, 0x40, 0x80, 0x00, 0xA6, 0x90,
/* 0020 */ 0x90, 0x00, 0xF0, 0x40, 0xA0, 0x10, 0x45, 0x00,
/* 0028 */ 0xB0, 0x00, 0xF0, 0x40, 0x60, 0x10, 0x45, 0x90,
/* 0030 */ 0xC0, 0x00, 0xF0, 0x40
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}


2. CURRENT DSDT lacking audio info = no sound ;)

Device (HDEF)
{
Name (_ADR, 0x001B0000)
OperationRegion (HDCS, PCI_Config, 0x54, 0x04)
Field (HDCS, DWordAcc, NoLock, Preserve)
{
, 15,
PMES, 1
}
}
 

Attachments

  • dsdt.aml
    27.1 KB · Views: 161
  • dsdt.aml
    27.3 KB · Views: 138
haze295,

Please post the errors you are getting...
 
Alright So here's my progress and failure so far... :)
1. I replaced the HDEF section and when compiling I got these errors

/Users/capthook/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl 3173: DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Error 4064 - Object does not exist ^ (DTGP)

/Users/capthook/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl 7118: If (\_SB.PCI0.HDEF.PMES)
Error 4064 - Object does not exist ^ (\_SB.PCI0.HDEF.PMES)

/Users/capthook/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl 7120: Store (One, \_SB.PCI0.HDEF.PMES)
Error 4064 - Object does not exist ^ (\_SB.PCI0.HDEF.PMES)

So.. I literally stumbled upon this section on my old DSDT and added it to my new DSDT. This line was at the very top of my DSDT which I assume is declaring...

External (\_SB_.PCI0.HDEF.PMES, IntObj)

After adding that line I get this error


Intel ACPI Component Architecture
ASL Optimizing Compiler version 20091214 [Dec 16 2009]
Copyright (C) 2000 - 2009 Intel Corporation
Supports ACPI Specification Revision 4.0

/Users/capthook/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl 3173: DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Error 4064 - Object does not exist ^ (DTGP)

ASL Input: /Users/capthook/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl - 7454 lines, 257981 bytes, 2927 keywords
Compilation complete. 1 Errors, 0 Warnings, 0 Remarks, 45 Optimizations

I have no idea what I'm doing so I know that I am probably missing other areas in my DSDT. So I'm "pretending" to know what I'm doing at this point :)
 
This is where this gets strange....

I was on my 5th try when I sent that last post. The error I posted was not the error I had (lol really). The error I had was due to PMES already being defined (or something like that).

The part of the DSDT that I was missing actually got deleted on accident... so I pasted it back in and compiled... zero errors, zero warnings...??? (I was shocked)

I put the DSDT back in my mac... rebooted and HAPPY to announce that my new DSDT now uses the HDA and I have full working sound again :).
 
MacMan said:
You forgot to add "Method (DTGP, 5, NotSerialized)....."

See in DSDTSE -> DSDT Hacks -> 01. Method DTGP.dsl


Can you give me more info on adding a method? I am not sure I understand the included directions.
 
Status
Not open for further replies.
Back
Top