Problemi sa HD zvukom u AMDGPU upravljačkim programima primaju zakrpe, DRM se sada može nositi s vrućim priključivanjem

Linux-Unix / Problemi sa HD zvukom u AMDGPU upravljačkim programima primaju zakrpe, DRM se sada može nositi s vrućim priključivanjem 2 minute čitanja

AMD



Iako su Radeon / AMD GPU dobivali bolju Linux podršku s novijim GPU modelima, audio podrška je bila do sad zanemarivana. Zakrpu je nedavno gurnuo SUSE-ov Takashi Iwai, koji također održava zvučni podsustav u glavnoj jezgri Linuxa. Flaster rješava neke sveukupne probleme s audio podrškom za AMDGPU.

Trenutni AMDGPU problemi sa zvukom vrte se oko nekih GPU-ova da bi HDMI / DP audio podrška kasnila AMDGPU zaslonskim kodom (DC / DAL) koji treba popraviti u jezgru, nekoliko audio formata nije podržanih i sveukupne pogreške u određenim dijelovima stog vozača. Međutim, SUSE-ov Takashi Iwai objavio je set zakrpa za Radeon / AMDGPU DRM upravljačke programe.



Ono što ove zakrpe čine je pružanje podrške za DRM audio komponente za upravljačke programe Radeon i AMDGPU Direct Rendering Manager - ukratko, način rada DRM audio komponente za HDMI i DisplayPort sučelja omogućit će očitavanje audio vrućih priključaka i ELD, bez hardverskog pristupa . To u osnovi znači da mu se može dopustiti ispravno rukovanje vrućim utikačima, čak i ako je sustav u načinu obustave tijekom izvođenja. Međutim, staze AMDGPU DC koda nisu pravilno sastavljene u trenutnom obliku zakrpe.



Dakle, u osnovi, zakrpa se obraća samo Radeonu i dijelu AMDGPU-a - DC podrška još nije uključeni.



Takashi je dublje objasnio zakrpe:

Upravljački programi AMD / ATI HDMI kodeka nisu imali vezivanje audio komponenata poput i915, ali radio je samo s tradicionalnim HD-audio neželjenim događajem za otkrivanje HDMI priključaka i očitavanje ELD-a nakon toga. To je bio problem na mnogo načina: prije svega, on prolazi kroz hardverski prijelaz događaja (od upisivanja u GPU registar, okidač HD-audio kontrolera i na kraju do upravljanja neželjenim događajima HD-audio), koji je često nepouzdan i može propustiti neke prilike. Drugo, svako rukovanje događajima nerešenog događaja i očitavanje ELD-a trebaju izričito napajanje / smanjivanje kada je kodek u suspenziji izvođenja. I na kraju, što je najvažnije, aktiviranje hotpluga može propustiti kada je HD-audio kontroler u obustavi rada. Pogotovo je posljednja točka veliki problem zbog nedavne promjene relevantne za vga_switcheroo koja prisilno omogućuje runtime PM za AMD HDMI kontrolere.

Ta se pitanja rješavaju uvođenjem audio komponente; obavijest o hotplugu vrši se izravnim povratnim pozivom funkcije, koji je precizniji i pouzdaniji, a može se obraditi bez stvarnog hardverskog pristupa, tj. nije potreban okidač runtime PM, a HD-audio dobiva događaj čak i ako je u runtimeu obustaviti. Isto je i za ELD upit, jer se čita izravno iz predmemoriranih ELD bajtova pohranjenih u DRM upravljačkom programu, stoga se može preskočiti cijeli pristup hardveru.



Dakle, tu je: ova zakrpa implementira povezivanje audio komponenata s AMD / ATI DRM upravljačkim programom. Najveća razlika od implementacije i915 je u tome što je ovo vezanje potpuno neobavezno i ​​može se omogućiti asinkrono u hodu. Odnosno, vozač će se prebaciti s neželjenog događaja HD-audio na obavijest o povratnom pozivu jednom kada se DRM komponenta veže. Slično tome, kada se DRM vozač rastereti, obrada HDMI događaja također se vraća u naslijeđeni način.

Također, druga razlika u odnosu na i915 je ta što AMD HDMI registrira komponentu u upravljačkom programu kodeka, dok i915 HDMI kodek pretpostavlja da je vezivanje komponente već izvršeno. Stoga AMD kôd također odjavljuje vezivanje komponente na izlazu iz kodeka. '