Težave z zvokom HD v gonilnikih AMDGPU prejmejo popravek, DRM lahko zdaj upravlja vroče priključevanje

Linux-Unix / Težave z zvokom HD v gonilnikih AMDGPU prejmejo popravek, DRM lahko zdaj upravlja vroče priključevanje 2 minuti branja

AMD



Medtem ko Radeon / AMD GPU z novimi modeli GPU dobiva boljšo podporo za Linux, je bila zvočna podpora do zdaj zanemarjena. Popravek je pred kratkim potisnil SUSE-ov Takashi Iwai, ki vzdržuje tudi zvočni podsistem v glavnem jedru Linuxa. Obliž obravnava nekatere splošne težave z zvočno podporo AMDGPU.

Trenutne težave z zvokom AMDGPU se vrtijo okoli nekaterih grafičnih procesorjev, tako da zvočna podpora HDMI / DP zamuja s kodo zaslona AMDGPU (DC / DAL), ki jo je treba popraviti v jedru, nekaj zvočnih formatov pa ne podpira in splošne napake v nekaterih delih kup voznika. Vendar pa je Takashi Iwai iz podjetja SUSE izdal nabor popravkov za gonilnike za Radeon / AMDGPU DRM.



Te popravke zagotavljajo podporo za zvočne komponente DRM za gonilnike Radeon in AMDGPU Direct Rendering Manager - na kratko bo način avdio komponent DRM za vmesnike HDMI in DisplayPort omogočil odčitavanje zvočnih vtičnikov in ELD, brez dostopa do strojne opreme . To v bistvu pomeni, da je lahko dovoljeno pravilno ravnanje z vročimi vtiči, tudi če je sistem v načinu začasne zaustavitve med izvajanjem. Vendar pa kodne poti AMDGPU DC niso pravilno sestavljene v trenutni obliki popravka.



Torej v bistvu je le Radeon in del AMDGPU naslovljen s popravkom - podpora DC še ni vključena.



Takashi je v nadaljevanju podrobno pojasnil popravke:

Gonilniki za kodek AMD / ATI HDMI niso imeli vezave zvočnih komponent, kot je i915, vendar je deloval le s tradicionalnim neželenim dogodkom HD-audio za zaznavanje vročih vtičev HDMI in nadaljnje branje ELD. To je v mnogih pogledih povzročalo težave: najprej gre skozi strojni prehod dogodkov (od zapisa GPU-ja, sprožilca HD-avdio krmilnika in na koncu do obdelave nezaželenih dogodkov HD-audio), ki je pogosto nezanesljiv in lahko zamudi nekaj priložnosti. Drugič, vsako obdelavo neželenih dogodkov in branje ELD potrebuje izrecno vklop / izklop, kadar je kodek v začasni zaustavitvi. Nenazadnje, kar je najpomembneje, lahko vklop vročega vtiča zamudite, ko je krmilnik HD-zvoka v začasnem mirovanju. Zlasti zadnja točka je velik problem zaradi nedavne spremembe, povezane z vga_switcheroo, ki prisilno omogoča izvajalni PM za krmilnike AMD HDMI.

Ta vprašanja se rešijo z uvedbo zvočne komponente; obvestilo vročega vtiča se izvede z neposrednim povratnim klicem funkcije, ki je natančnejše in zanesljivejše in ga je mogoče obdelati brez dejanskega dostopa do strojne opreme, tj. ni potreben sprožilni PM sprožilec, HD-audio pa dogodek dobi, tudi če je v času izvajanja začasno ustavi. Enako za poizvedbo ELD, saj se bere neposredno iz predpomnjenih bajtov ELD, shranjenih v gonilniku DRM, zato je mogoče preskočiti celoten dostop do strojne opreme.



Torej, tukaj je: ta obliž izvaja vezavo zvočnih komponent z gonilnikom AMD / ATI DRM. Največja razlika od izvedbe i915 je, da je ta vezava popolnoma neobvezna in jo je mogoče sproti omogočiti asinhrono. To pomeni, da bo voznik enkrat preklopil z neželenega dogodka HD-audio na povratni klic, ko bo komponenta DRM vezana. Podobno, ko se gonilnik DRM razbremeni, se tudi obdelava dogodkov HDMI vrne v starejši način.

Druga razlika od i915 je ta, da AMD HDMI registrira komponento v gonilniku kodeka, medtem ko i915 HDMI predpostavlja, da je bila vezava komponente že opravljena. Zato koda AMD tudi na izhodu kodeka odjavi registracijo vezave komponente. '