Sekcja audio w DSDT
v1.0 - Pierwsza publikacja
SPIS TEMATÓW O MODYFIKACJI DSDT:
[Cześć 1] Wydobycie DSDT z naszego sprzętu
[Cześć 2] Podstawowe modyfikacje DSDT
[Cześć 3] Sekcja audio w DSDT
[Cześć 4] Modyfikacja sekcji USB
[Cześć 5] Dopisywanie grafiki do DSDT
[Cześć 6] Fixy dla notebooków/netbooków oraz PC
[Cześć 7] Kosmeytka DSDT + Uciszanie kompilatora
[Cześć 8] Sprawdzenie działania Power Managmentu (SpeedStep)

Odsyłam do tematu: "[Cześć 1] Wydobycie DSDT z naszego sprzętu" - link powyżej. Opisałem tam metodę uzyskania dumpu lspci w Ubuntu 9.04 oraz w Mac OS X oraz zrobienie CodecDumpa w Ubuntu.
Wynik lspci z Mac OS X (tylko kilka linijek z sekcji Audio) na przykładzie P5Q Pro:
00:1b.0 Audio device [0403]: Intel Corporation 82801JI (ICH10 Family) HD Audio Controller [8086] Subsystem: ASUSTeK Computer Inc. Unknown device [1043] .....Wynik CodecDumpa (tylko kilka linijek) z Ubuntu na przykładzie P5Q Pro:
Codec: Realtek ALC1200 Address: 0 Vendor Id: 0x10ec0888 Subsystem Id: 0x104382fe Revision Id: 0x100101 No Modem Function Group found ...

Najpierw dodajemy poprawkę DTGP z podstawowych poprawek (patrz lspis poprawek do DSDT)
W naszym DSDT audio może widnieć np: w sekcji Device (HDEF), Device (AZAL) lub może go nie być w cale ! W większości przypadków audio kryje się w DSDT pod kodem _ADR 0x001B0000 dlatego wyszukujemy Name (_ADR, 0x001B0000) i zmieniamy nazwę urządzenia z Device (AZAL) (lub innej) na Device (HDEF), a jeżeli sekcji w ogóle nie ma musimy ją dopisać. Wyszukujemy w całym kodzie tekstu "AZAL" i wszystkie te wpisy zmieniamy na "HDEF"
W przypadku gdy sekcja audio występuje dopisujemy poniżej Name (_ADR, 0x001B0000) :
Method (_DSM, 4, NotSerialized) { Store (Package (0x08) { "subsystem-id", Buffer (0x04) { 0xFE, 0x82, 0x00, 0x00 }, "subsystem-vendor-id", Buffer (0x04) { 0x43, 0x10, 0x00, 0x00 }, "layout-id", Buffer (0x04) { 0x0C, 0x00, 0x00, 0x00 }, "PinConfigurations", Buffer (Zero) {} }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) }W przypadku gdy sekcji audio nie ma, dopisujemy całość np przed sekcją USB, w sekcji Device (PCI0)
Device (HDEF) { Name (_ADR, 0x001B0000) Method (_DSM, 4, NotSerialized) { Store (Package (0x08) { "subsystem-id", Buffer (0x04) { 0xFE, 0x82, 0x00, 0x00 }, "subsystem-vendor-id", Buffer (0x04) { 0x43, 0x10, 0x00, 0x00 }, "layout-id", Buffer (0x04) { 0x0C, 0x00, 0x00, 0x00 }, "PinConfigurations", Buffer (Zero) {} }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } }
Następnym krokiem jest zmodyfikowanie subsystem-id oraz subsystem-vendor-id na nasze. W dumpie lspci w sekcji audio widnieje parametr, który nas interesuje [1043]. 1043 to subsystem vendor id, zera początkowe są pomijane a liczby wpisujemy od tyłu, sekcja wygląda następująco:
"subsystem-vendor-id", Buffer (0x04) { 0x43, 0x10, 0x00, 0x00 },82fe to subsystem id, zera początkowe są pomijane a liczby wpisujemy od tyłu, sekcja wygląda następująco:
"subsystem-id", Buffer (0x04) { 0xfe, 0x82, 0x00, 0x00 },
Po skończeniu modyfikacji kompilujemy nasze DSDT i dobieramy Legacy kext do kompletu z internetu. Jeżeli nigdzie go nie możemy znaleźć dla zaawansowanych polecam napisanie go samemu.
Źródła informacji:
http://www.projectosx.com/forum/index.php?showtopic=465&hl=