Az AMDGPU illesztőprogramok HD audiokérdései javítást kapnak, a DRM mostantól képes kezelni a csatlakozást

Linux-Unix / Az AMDGPU illesztőprogramok HD audiokérdései javítást kapnak, a DRM mostantól képes kezelni a csatlakozást 2 perc olvasás

AMD



Míg a Radeon / AMD GPU-k egyre jobb Linux-támogatást kapnak az újabb GPU-modellekkel, az audio-támogatást sajnos elhanyagolták - eddig. A SUSE Takashi Iwai nemrégiben patch-ot nyomott, aki a Linux alrendszer kernjében is fenntartja a hangalrendszert. A tapasz foglalkozik az AMDGPU audiotámogatásával kapcsolatos általános problémákkal.

Az aktuális AMDGPU audio problémák egyes GPU-k körül forognak, hogy a HDMI / DP audiotámogatást késleltesse az AMDGPU Display Code (DC / DAL) késleltetése, amelyet be kell foltozni a kernelbe, néhány audioformátumot nem támogatnak, és az összes hiba hibát okoz driver verem. Azonban a SUSE Takashi Iwai kiadott egy javítócsomagot a Radeon / AMDGPU DRM meghajtókhoz.



Ezek a javítások DRM audiokomponens-támogatást nyújtanak a Radeon és az AMDGPU Direct Rendering Manager illesztőprogramok számára - dióhéjban a DRM audiokomponens mód a HDMI és a DisplayPort interfészek számára lehetővé teszi az audio hot-plug és ELD kiolvasásokat, hardveres hozzáférés nélkül . Ez alapvetően azt jelenti, hogy engedélyezhető a hot-plug helyes kezelése, még akkor is, ha a rendszer futásidejű felfüggesztési módban van. Az AMDGPU DC kód elérési útjai azonban nincsenek megfelelően összeállítva a jelenlegi patch formában.



Tehát alapvetően csak a Radeon és az AMDGPU egy része foglalkozik a patch - DC támogatással még nem beleértve.



Takashi az alábbiakban részletesen elmagyarázta a javításokat:

Az AMD / ATI HDMI kodek-illesztőprogramok nem rendelkeztek audio komponens-kötéssel, mint az i915, de csak a hagyományos HD-audio kéretlen eseményekkel működtek együtt a HDMI hotplug észlelésére és az ezt követő ELD-leolvasásra. Ez sok szempontból problémát jelent: először is a hardveres események átmenetén megy keresztül (a GPU regisztráció írásától, a HD-audio vezérlő triggerjétől, végül a HD-audio kéretlen eseménykezelésen át), ami gyakran megbízhatatlan, és elmaradhat néhány lehetőség. Másodszor, minden nem megoldott eseménykezelésnek és az ELD-leolvasásnak kifejezetten fel / le kell kapcsolnia, amikor a kodek futás közben felfüggesztésre kerül. Végül, de nem utolsósorban, ami a legfontosabb, a hotplug ébresztése elmaradhat, ha a HD-audio vezérlő futásidejű felfüggesztés alatt áll. Különösen az utolsó pont okoz nagy problémát a vga_switcheroo nemrégiben végrehajtott változása miatt, amely erőszakkal engedélyezi a futási PM-t az AMD HDMI-vezérlők számára.

Ezeket a kérdéseket az audiokomponens bevezetésével oldják meg; a hotplug értesítést közvetlen funkció visszahívással hajtják végre, amely pontosabb és megbízhatóbb, és a tényleges hardveres hozzáférés nélkül is feldolgozható, azaz nincs szükség futásidejű PM-triggerre, és a HD-audio akkor is megkapja az eseményt, ha futás közben van függessze fel. Ugyanez vonatkozik az ELD lekérdezésre is, mivel közvetlenül a DRM illesztőprogramban tárolt gyorsítótárazott ELD bájtokból olvasható, így a teljes hardveres hozzáférés átugorható.



Tehát itt van: ez a javítás végrehajtja az audiokomponens-kötést az AMD / ATI DRM illesztőprogrammal. A legnagyobb különbség az i915 megvalósításától az, hogy ez a kötés teljesen opcionális, és menet közben aszinkron módon engedélyezhető. Vagyis az illesztőprogram a HD-audio kéretlen eseményről az értesítési visszahívásra vált, amikor a DRM komponens megkötődik. Hasonlóképpen, amikor a DRM illesztőprogram lemerül, a HDMI eseménykezelés is visszatér a régi módba.

Egy másik különbség az i915-hez képest az, hogy az AMD HDMI regisztrálja az alkatrészt a kodek illesztőprogramban, míg az i915 HDMI kodek feltételezi, hogy az összetevő kötése már megtörtént. Ezért az AMD kód törli a komponenskötés törlését a kodek kilépésekor is. '