Headcleaner Posted February 20, 2009 Share Posted February 20, 2009 Hey Guys! First i wan't to thank the community, helped me really alot! Now for the topic, just got my internal speakers and phone jack to work correctly in Mac OS X 10.5.5 (iDeneb) on my Toshiba P100-102 PSPA3E. Line out and Mic are not working currently, i may have a look at that. Done with DSDT Patching and Azilia. How i did it: 1. Got the dsdt.dsl file 2. Replaced all occurrences of "_T_0" with "T_0" 3. Replaced all occurrences of ""Name (_HID, "*PNP0C14")" with "Name (_HID, "PNP0C14")" 4. Searched for "Method (BTST, 0, NotSerialized)" and inserted the "else...return" at the end. Looks like that after: Method (BTST, 0, NotSerialized) { If (\_SB.ECOK) { Acquire (\_SB.PCI0.LPCB.EC0.MUT1, 0xFFFF) Store (\_SB.PCI0.LPCB.EC0.KSWH, Local0) XOr (Local0, 0x01, Local0) Store (\_SB.PCI0.LPCB.EC0.BTHE, Local7) Release (\_SB.PCI0.LPCB.EC0.MUT1) If (Local0) { ShiftLeft (Local7, 0x06, Local6) ShiftLeft (Local7, 0x07, Local7) Or (Local7, Local6, Local1) Or (Local0, Local1, Local2) Return (Local2) } Else { Return (Zero) } } Else { Return (Zero) } } 5. Searched for "Method (_INI, 0, NotSerialized)", the second occurrence. Commented out the "If (CondRefOf (_OSI, Local0))" part and inserted "Store (0x07D6, OSYS)" after it. Looks like that now: Method (_INI, 0, NotSerialized) { If (DTSE) { TRAP (0x47) } Store (0x07D0, OSYS) /*If (CondRefOf (_OSI, Local0)) { If (_OSI ("Linux")) { Store (0x03E8, OSYS) } Else { Store (0x07D1, OSYS) If (_OSI ("Windows 2001 SP2")) { Store (0x07D2, OSYS) } If (_OSI ("Windows 2001.1")) { Store (0x07D3, OSYS) } If (_OSI ("Windows 2001.1 SP1")) { Store (0x07D4, OSYS) } If (_OSI ("Windows 2006")) { Store (0x07D6, OSYS) } If (LAnd (MPEN, LEqual (OSYS, 0x07D1))) { TRAP (0x3D) } } }*/ Store (0x07D6, OSYS) } 6. Comiled it, there are still 4 errors in it, ignored them with force compile and booted with the resulting dsdt.aml. Sound works perfect now, lound and clear! Link to comment Share on other sites More sharing options...
BuXb Posted July 2, 2011 Share Posted July 2, 2011 good guide, thx 4 posting! you're still around? Link to comment Share on other sites More sharing options...
Headcleaner Posted July 3, 2011 Author Share Posted July 3, 2011 Hi there! Still somewhere out there, but without my P100. In fact i still have it, but it's broken. The graphics card got to hot cause of a hardware issue and stopped working. Got it working again a few times, but gave up a year ago. Nice to here i could help someone with the short guide! Link to comment Share on other sites More sharing options...
nyu1985 Posted July 4, 2011 Share Posted July 4, 2011 I thank you so much ! It's been more than 2 years that I am searching for a solution for my sound card but I didn't understand everything concerning dsdt ... I found your guide 2 days ago and just works perfectly. Thanks again ! Link to comment Share on other sites More sharing options...
Kucksy Posted May 5, 2012 Share Posted May 5, 2012 Just wanted to say a really big thank you for this - I have a toshiba satellite P100 (PSP6A-01J017) notebook and this worked a treat in getting my non-working sound to work. Absolutely brilliant From Troy For BugsB - Sorry for not putting this in the non-admended post - I am running OS X Snow Leopard 10.6.8 on my Toshiba P100 notebook - PSPA6A-01J017 revision / model. Also have managed to get my wired network working using a modified kext found here on the forum. Awaiting my newly purchased wifi (mini pci-e) broadcom card to come in the post from overseas to have fully working airport compatible Wi-Fi. Kind regards Troy Link to comment Share on other sites More sharing options...
BuXb Posted May 5, 2012 Share Posted May 5, 2012 Great! Snow 10.6.8 or Lion? Link to comment Share on other sites More sharing options...
BuXb Posted May 15, 2012 Share Posted May 15, 2012 (edited) Woooooo! there is a SERIOUS error in above DSDT code: instead { Return (Zero) } } it must read { Return (Zero) } } } that's why you have to force-compile, which is not a good idea at all!! Also, when you edit w. DSDT Editor & Patcher, put both comment tags /* and */ into SEPARATE lines, NOT after If (CondRefOf (_OSI, Local0)) and before } - otherwise DSDT Editor will delete code .. (that's a known bug ..) Here's the complete corrected DSDT edit manual: 0. extract the dsdt.dsl file, best via Clover Bootloader's ACPI dump function (F4 at the Clover bootloader screen dumps native ACPI files to EFI/Clover/ACPI/origi) ; or alternatively via other tools like El Coniglio's DSDT Editor and Patcher for OS X, Windows, Linux. 1. Open dsdt.aml in MaciASL or DSDT Editor and Patcher, or the decompiled dsdt.dsl in a text editor. 2. Replace all occurrences of_T_0 withT_0 3. Replace all occurrences ofName (_HID, "*PNP0C14") withName (_HID, "PNP0C14") 4. Search forMethod (BTST, 0, NotSerialized) and insert a 2nd else...return section at the end. Looks like that afterwards: Method (BTST, 0, NotSerialized) { If (\_SB.ECOK) { Acquire (\_SB.PCI0.LPCB.EC0.MUT1, 0xFFFF) Store (\_SB.PCI0.LPCB.EC0.KSWH, Local0) XOr (Local0, 0x01, Local0) Store (\_SB.PCI0.LPCB.EC0.BTHE, Local7) Release (\_SB.PCI0.LPCB.EC0.MUT1) If (Local0) { ShiftLeft (Local7, 0x06, Local6) ShiftLeft (Local7, 0x07, Local7) Or (Local7, Local6, Local1) Or (Local0, Local1, Local2) Return (Local2) } Else { Return (Zero) } } Else { Return (Zero) } } } 5. Search for Method (_INI, 0, NotSerialized) the SECOND (!) occurrence. Comment out (with /* and */) the entire section after If (CondRefOf (_OSI, Local0)) .... and insert Store (0x07D6, OSYS)" after it. Looks like that then: Method (_INI, 0, NotSerialized) { If (DTSE) { TRAP (0x47) } Store (0x07D0, OSYS) /* If (CondRefOf (_OSI, Local0)) { If (_OSI ("Linux")) { Store (0x03E8, OSYS) } Else { Store (0x07D1, OSYS) If (_OSI ("Windows 2001 SP2")) { Store (0x07D2, OSYS) } If (_OSI ("Windows 2001.1")) { Store (0x07D3, OSYS) } If (_OSI ("Windows 2001.1 SP1")) { Store (0x07D4, OSYS) } If (_OSI ("Windows 2006")) { Store (0x07D6, OSYS) } If (LAnd (MPEN, LEqual (OSYS, 0x07D1))) { TRAP (0x3D) } } } */ Store (0x07D6, OSYS) } 6. Not related to sound, but while you're at it: certain functions of Mac OS X rely on the dtgp method to be present in the DSDT. So let's add it. It can't just be anywhere but needs to be in the main section. A spot proven to be good: after Method (_PIC, 1, NotSerialized) // _PIC: Interrupt Model { Store (Arg0, GPIC) } add: Method (DTGP, 5, NotSerialized) { If (LEqual (Arg0, Buffer (0x10) { /* 0000 */ 0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44, /* 0008 */ 0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B })) { If (LEqual (Arg1, One)) { If (LEqual (Arg2, Zero)) { Store (Buffer (One) { 0x03 }, Arg4) Return (One) } If (LEqual (Arg2, One)) { Return (One) } } } Store (Buffer (One) { 0x00 }, Arg4) Return (Zero) } 7. compile the DSDT e.g. w/ DSDT Editor and Patcher which auto-fixes a remaining length error, ignore warnings. If you compile with MaciASL, you need to manually correct the length error: at the line where the iASL compiler throws an error, change 0x0000000, // Length to0xFEC00000, // Length save and compile. 8. Before you boot, go into your BIOS Advanced Settings and make sure that you DO have enabled the "No Execute Bit"! That is mandatory for sleep to work in Mac OS and always gets disabled after a BIOS update! 9. boot with the resulting dsdt.aml, best via Clover 5108 (or max. Clover 5122), or otherwise Chameleon. Sound should work perfect, loud and clear ! Edited December 16, 2020 by BuXb Link to comment Share on other sites More sharing options...
BuXb Posted May 15, 2012 Share Posted May 15, 2012 and, last but not least: those of you who use sleep mode - do you have sound after wake-up from sleep? I don't ... Link to comment Share on other sites More sharing options...
Recommended Posts