Jump to content
kilomero

Ajuda com Fix DsDt para ALC887

Recommended Posts

Preciso de ajuda para o Audio ALC887. A aplicar o patch de dsdt co metodo para dtgp:

 

           Device (HDEF)
           {
               Name (_ADR, 0x001B0000)
               Method (_PRW, 0, NotSerialized)
               {
                   Return (Package (0x02)
                   {
                       0x0D, 
                       0x05
                   })
               }

               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x0E)
                       {
                           "AAPL,slot-name", 
                           Buffer (0x09)
                           {
                               "Built in"
                           }, 
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x20, 0x1C, 0x00, 0x00
                           }, 
                           "layout-id", 
                           Buffer (0x04)
                           {
                               0x77, 0x03, 0x00, 0x00
                           }, 
                           "model", 
                           Buffer (0x1C)
                           {
                               "Realtek ALC887 AppleHDA 7.1"
                           }, 
                           "name", 
                           Buffer (0x10)
                           {
                               "AppleHDA ALC887"
                           }, 
                           "device_type", 
                           Buffer (0x11)
                           {
                               "Audio Controller"
                           }, 
                           "PinConfigurations", 
                           Buffer (One)
                           {
                               0x00
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

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)
   }

 

Tenho estes 2 Erros:


/Users/*/*/DSDT/DSDTFiles/dsdt.dsl 10182: If (LAnd (\_SB.PCI0.HDEF.DCKS, One))

Error 4064 - Object does not exist ^ (\_SB.PCI0.HDEF.DCKS)


/Users/*/*/DSDT/DSDTFiles/dsdt.dsl 10184: Store (DSTS, \_SB.PCI0.HDEF.DCKA)

Error 4064 - Object does not exist ^ (\_SB.PCI0.HDEF.DCKA)


O curioso é que me da o Erro em duas linhas nas que pon :

10182: Store (\_SB.PCI0.LPCB.H_EC.LSTE, LIDS)

10184: {




A linha: If (LAnd (\_SB.PCI0.HDEF.DCKS, One)) é a numero 10197

e mais a linha: Store (DSTS, \_SB.PCI0.HDEF.DCKA) é a numero 10199


Nao mais Erros me informa compilador.

Nao atopo por ningún lado informação sobre este erro.


Insiro o bloque completo no que se atopan os erros:


 

Method (_WAK, 1, Serialized)
   {
       P8XH (One, 0xAB)
       WAK (Arg0)
       If (NEXP)
       {
           If (And (OSCC, 0x02))
           {
               \_SB.PCI0.NHPG ()
           }

           If (And (OSCC, 0x04))
           {
               \_SB.PCI0.NPME ()
           }
       }

       If (LEqual (Arg0, 0x03))
       {
           If (LEqual (Zero, ACTT))
           {
               If (LEqual (ECON, One))
               {
                   Store (Zero, \_SB.PCI0.LPCB.H_EC.CFAN)
               }
           }
       }

       If (LOr (LEqual (Arg0, 0x03), LEqual (Arg0, 0x04)))
       {
           If (LAnd (DTSE, LGreater (TCNT, One)))
           {
               TRAP (TRTD, 0x14)
           }

           If (LEqual (OSYS, 0x07D2))
           {
               If (And (CFGD, One))
               {
                   If (LGreater (\_PR.CPU0._PPC, Zero))
                   {
                       Subtract (\_PR.CPU0._PPC, One, \_PR.CPU0._PPC)
                       PNOT ()
                       Add (\_PR.CPU0._PPC, One, \_PR.CPU0._PPC)
                       PNOT ()
                   }
                   Else
                   {
                       Add (\_PR.CPU0._PPC, One, \_PR.CPU0._PPC)
                       PNOT ()
                       Subtract (\_PR.CPU0._PPC, One, \_PR.CPU0._PPC)
                       PNOT ()
                   }
               }
           }

           If (LEqual (ECON, One))
           {
               If (LNotEqual (LIDS, \_SB.PCI0.LPCB.H_EC.LSTE))
               {
                   Store (\_SB.PCI0.LPCB.H_EC.LSTE, LIDS)
                   If (IGDS)
                   {
                       If (\_SB.PCI0.GFX0.GLID (LIDS))
                       {
                           Or (0x80000000, \_SB.PCI0.GFX0.CLID, \_SB.PCI0.GFX0.CLID)
                       }
                   }

                   Notify (\_SB.LID0, 0x80)
               }

               If (LNotEqual (\_SB.PCI0.LPCB.H_EC.DOCK, DSTS))
               {
                   Store (\_SB.PCI0.LPCB.H_EC.DOCK, DSTS)
[color=#FF0000] If (LAnd (\_SB.PCI0.HDEF.DCKS, One))[/color]
                   {
[color=#FF0040]Store (DSTS, \_SB.PCI0.HDEF.DCKA)[/color]
                   }

                   If (LEqual (DSTS, One))
                   {
                       If (LEqual (Arg0, 0x03))
                       {
                           Sleep (0x03E8)
                           Store (PDBR, SSMP)
                           Sleep (0x03E8)
                       }

                       Notify (\_SB.PCI0.DOCK, Zero)
                   }
                   Else
                   {
                       Notify (\_SB.PCI0.DOCK, One)
                   }
               }

               If (LEqual (BNUM, Zero))
               {
                   If (LNotEqual (\_SB.PCI0.LPCB.H_EC.VPWR, PWRS))
                   {
                       Store (\_SB.PCI0.LPCB.H_EC.VPWR, PWRS)
                       PNOT ()
                   }
               }
               Else
               {
                   If (LNotEqual (\_SB.PCI0.LPCB.H_EC.RPWR, PWRS))
                   {
                       Store (\_SB.PCI0.LPCB.H_EC.RPWR, PWRS)
                       PNOT ()
                   }
               }
           }

           If (LEqual (RP1D, Zero))
           {
               Notify (\_SB.PCI0.RP01, Zero)
           }

           If (LEqual (RP2D, Zero))
           {
               Notify (\_SB.PCI0.RP02, Zero)
           }

           If (LEqual (RP3D, Zero))
           {
               Notify (\_SB.PCI0.RP03, Zero)
           }

           If (LEqual (RP4D, Zero))
           {
               Notify (\_SB.PCI0.RP04, Zero)
           }

           If (LEqual (RP5D, Zero))
           {
               Notify (\_SB.PCI0.RP05, Zero)
           }

           If (LEqual (RP6D, Zero))
           {
               Notify (\_SB.PCI0.RP06, Zero)
           }

           If (LEqual (RP7D, Zero))
           {
               If (LEqual (DSTS, Zero))
               {
                   Notify (\_SB.PCI0.RP07, Zero)
               }
           }

           If (LEqual (RP8D, Zero))
           {
               If (LEqual (DSTS, Zero))
               {
                   Notify (\_SB.PCI0.RP08, Zero)
               }
           }
       }

       Return (Package (0x02)
       {
           Zero, 
           Zero
       })
   }

 

Muito Obrigado.

Link to comment
Share on other sites

Ao aplicar os patches você não pode excluir os objetos DCKS e DCKA que existem no HDEF original. Ao invés de substituir o HDEF original pelo novo, copie apenas o method _DSM para o HDEF original.

ASUS N53Jq • CPU: Intel Core i7-740QM 1.73GHz • RAM: 6,0GB • HD: 500GB • GPU: GeForce GT 425M 1GB 1920x1080 • OS: OS X 10.8.4 • Linux Mint 15 • Windows 8

Link to comment
Share on other sites

Muito obrigado.


Solucionei borrando o bloque no que se atopaban os erros method _WAK1. E o audio funciona. Mais so me funciona a saida traseira e os dous mics, nin saida de linha nin saida front panel.


Tentarei de refacelo a partir do DST original so inserindo o method _DSM. Milhor dito voltando o HDEF original ao DST xa editado.


Mais tenho muito trabalho, porque xa editara o DST para activar o HDMI na minha Nvidia GT. E conseguido!! Soamente me falta editar o appleHDA en bin para a saida de audio pelo HDMI. ¿Algunha ajuda?


Obrigado para com todo o mundo.


P.D.- Os 3 kext non me valen pelo motivo de que tamen quero o HDMI, e para activa-lo preciso de no ter mais que appleHDA, sem ALC8XX.kext nim HDAEnabler.kext

Pero de todos modos obrigado pela proposta.

Link to comment
Share on other sites

Ola


dando um up nesse topico, seria possivel colocar essa patch de audio alc887 na pasta dsdt patches/misc?


É um dos poucos patches conhecidos de audio que faltam por lá!


agradeço

ASUS P6X58D-E/12GB/i7-960 8MB 3.20GHz/NVIDIA GTX 650/WINDOWS 10/YOSEMITE

X87-DELL-16GB-DDR3-1600MHZ/XEON E3-1220v3 8MB/NVIDIA GTX1050/WINDOWS 10/XUBUNTU/OSX-SIERRA

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now




×
  • Create New...
The popup will be closed in 15 seconds...