Jump to content

Toshiba P100-102 Sound working


Headcleaner
 Share

8 posts in this topic

Recommended Posts

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

  • 2 years later...

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

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

  • 10 months later...

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

  • 2 weeks later...

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
    with
T_0

 

3. Replace all occurrences of
Name (_HID, "*PNP0C14")
    with
Name (_HID, "PNP0C14")

 

4. Search for
Method (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
to
0xFEC00000,         // 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 by BuXb
Link to comment
Share on other sites

 Share

×
×
  • Create New...