HD garso problemos, susijusios su AMDGPU tvarkyklėmis, gauna pataisą, DRM dabar gali tvarkyti karšto prijungimo darbus

„Linux-Unix“ / HD garso problemos, susijusios su AMDGPU tvarkyklėmis, gauna pataisą, DRM dabar gali tvarkyti karšto prijungimo darbus 2 minutes perskaityta

AMD



Nors „Radeon / AMD GPU“ vis geriau palaiko „Linux“ su naujesniais GPU modeliais, garso palaikymas iki šiol buvo apgailėtinai apleistas. Pataisą visai neseniai pastūmėjo SUSE Takashi Iwai, kuris taip pat palaiko garso posistemį pagrindiniame „Linux“ branduolyje. Pleistras sprendžia kai kurias bendras AMDGPU garso palaikymo problemas.

Dabartinės AMDGPU garso problemos siejasi su kai kuriais GPU, kad HDMI / DP garso palaikymas būtų atidėtas dėl AMDGPU rodymo kodo (DC / DAL), kurį reikia pataisyti branduolyje, nepalaikant kelių garso formatų ir apskritai kai kuriose klaidose. vairuotojo kaminas. Tačiau SUSE Takashi Iwai išleido pataisų rinkinį, skirtą Radeon / AMDGPU DRM tvarkyklėms.



Tai, ką daro šie pataisymai, yra DRM garso komponentų palaikymas „Radeon“ ir „AMDGPU Direct Rendering Manager“ tvarkyklėms - trumpai tariant, DRM garso komponento režimas HDMI ir „DisplayPort“ sąsajoms leis atlikti karštųjų garso įrašų prijungimą ir ELD skaitymus, be techninės prieigos . Tai iš esmės reiškia, kad gali būti leidžiama tinkamai valdyti karštųjų kištukų funkciją, net jei sistema veikia laikino sustabdymo režimu. Tačiau AMDGPU DC kodo keliai nėra tinkamai sujungti dabartinėje pataisos formoje.



Taigi iš esmės pleistras „DC“ palaiko tik „Radeon“ ir dalį AMDGPU dar nėra įskaitant.



Toliau Takashi išsamiai paaiškino pleistrus:

„AMD / ATI HDMI“ kodekų tvarkyklės neturėjo garso komponentų įrišimo, pvz., „I915“, tačiau jis veikė tik su tradiciniu HD-audio nepageidaujamu įvykiu, skirtu HDMI karštojo kištuko aptikimui ir ELD skaitymui vėliau. Tai buvo problema daugeliu atžvilgių: visų pirma, ji pereina aparatūros įvykių perėjimą (nuo GPU registravimo rašymo, HD-audio valdiklio paleidimo ir galiausiai iki HD-audio nepageidaujamų įvykių tvarkymo), kuris dažnai yra nepatikimas ir gali praleisti kai kurios galimybės. Antra, kiekvienam nepatvirtintų įvykių tvarkymui ir ELD nuskaitymui reikalingas aiškus įjungimas / išjungimas, kai kodekas sustabdomas vykdymo metu. Paskutinis, bet ne mažiau svarbus dalykas, kuris yra pats svarbiausias, „karštojo kištuko“ pažadinimas gali būti praleistas, kai HD garso valdiklis sustabdomas vykdymo metu. Ypač paskutinis punktas yra didelė problema dėl neseniai įvykusio „vga_switcheroo“ pakeitimo, kuris priverstinai įgalina AMD HDMI valdiklių vykdymo laiką.

Šie klausimai išsprendžiami pristatant garso komponentą; „hotplug“ pranešimą atlieka tiesioginis funkcijų atgalinis skambutis, kuris yra tikslesnis ir patikimesnis, ir jį galima apdoroti be faktinės prieigos prie aparatūros, t. y. nereikia vykdymo laiko PM trigerio, o HD garso įrašas įvykį gauna net ir vykdymo metu sustabdyti. Tas pats ir su ELD užklausa, nes ji skaitoma tiesiai iš talpykloje saugomų ELD baitų, saugomų DRM tvarkyklėje, todėl galima praleisti visą aparatūros prieigą.



Štai čia: šis pleistras įgyvendina garso komponentų susiejimą su AMD / ATI DRM tvarkykle. Didžiausias skirtumas nuo „i915“ diegimo yra tai, kad šis susiejimas yra visiškai neprivalomas ir jį galima įjungti asinchroniškai skriejant. Tai reiškia, kad tvarkyklė persijungs iš HD garso nepageidaujamo įvykio į pranešimo atgalinį skambutį, kai DRM komponentas bus susietas. Panašiai, kai iškraunama DRM tvarkyklė, HDMI įvykių tvarkymas taip pat grįžta į senąjį režimą.

Be to, dar vienas skirtumas nuo „i915“ yra tas, kad „AMD HDMI“ registruoja komponentą kodeko tvarkyklėje, o „i915 HDMI“ kodekas daro prielaidą, kad komponentas jau buvo susietas. Taigi AMD kodas taip pat išregistruoja komponento įrišimą prie kodeko išėjimo “.