HD-heliprobleemid AMDGPU-draiverites saavad plaastrit, DRM saab nüüd hakkama pistikühendustega

Linux-Unix / HD-heliprobleemid AMDGPU-draiverites saavad plaastrit, DRM saab nüüd hakkama pistikühendustega 2 minutit loetud

AMD



Kui Radeon / AMD GPU-d on saanud uuemate GPU-mudelitega paremat Linuxi tuge, on heli tugi seni unarusse jäetud. Hiljuti lükkas plaastri SUSE Takashi Iwai, kes hoiab heli alamsüsteemi ka Linuxi pealiini kernelis. Plaaster käsitleb mõningaid AMDGPU helitoega seotud üldisi probleeme.

Praegused AMDGPU heliprobleemid keerlevad mõnede graafikaprotsessorite ümber, et HDMI / DP helituge viivitaks AMDGPU kuvakood (DC / DAL), mis tuleb kernelisse lappida, mõned helivormingud pole toetatud ja üldised vead juhikuhi. Kuid SUSE Takashi Iwai on välja andnud Radeoni / AMDGPU DRM-i draiverite jaoks mõeldud plaastrite komplekti.



Need plaastrid pakuvad DRM-helikomponentide tuge Radeoni ja AMDGPU Direct Rendering Manageri draiveritele - lühidalt öeldes võimaldab DRM-i helikomponentide režiim HDMI- ja DisplayPort-liideste jaoks heli kiirpistikute ja ELD-de välja lugemiseks, ilma riistvara juurdepääsuta . Põhimõtteliselt tähendab see, et seda saab lubada korrektse kuumade pistikute käitlemiseks, isegi kui süsteem on tööaja peatamise režiimis. Kuid AMDGPU DC-koodirajad pole praeguses plaastervormis korralikult kokku pandud.



Põhimõtteliselt on patch - DC tugi suunatud ainult Radeonile ja osale AMDGPU-st pole veel kaasa arvatud.



Takashi selgitas plaastreid põhjalikult allpool:

AMD / ATI HDMI-koodekidraiveritel ei olnud helikomponendi sidumist nagu i915, kuid see toimis ainult tavapärase HD-heli soovimatu sündmusega HDMI-kuumploki tuvastamiseks ja ELD-i lugemiseks pärast seda. See on olnud probleem mitmel viisil: esiteks läbib see riistvarasündmuste ülemineku (alates GPU registrikirjutamisest, HD-heli kontrolleri päästikust ja lõpuks HD-heli soovimatute sündmuste käitlemisest), mis on sageli ebausaldusväärne ja võib vahele jätta mõned võimalused. Teiseks vajavad kõik lahendamata sündmuste käitlemised ja ELD-i lugemine selget toide üles / alla, kui koodek on käituse peatuses. Viimane, kuid mitte vähem oluline, mis on kõige olulisem, võib kiirküünla ärkamine vahele jääda, kui HD-heli kontroller on käituse peatuses. Eriti viimane punkt on suur probleem tänu hiljutisele vga_switcheroo muudatusele, mis võimaldab AMD HDMI-kontrollerite käitamise PM-i sunniviisiliselt.

Need probleemid lahendatakse helikomponendi tutvustamisega; kuumplugist teavitamine toimub otsese funktsiooni tagasihelistamise abil, mis on täpsem ja usaldusväärsem ning seda saab töödelda ilma tegeliku riistvaralise juurdepääsuta, st pole vaja käitusaja PM-i päästikut ja HD-heli saab sündmuse ka siis, kui see on tööajal riputama. Sama ELD päringu puhul, kuna seda loetakse otse vahemällu salvestatud ELD-baitidest, mis on salvestatud DRM-draiverisse, seega saab kogu riistvarale juurdepääsu vahele jätta.



Nii see on: see plaaster rakendab helikomponendi sidumist AMD / ATI DRM-draiveriga. Suurim erinevus i915 juurutamisest on see, et see sidumine on täiesti vabatahtlik ja seda saab asünkroonselt lennult lubada. See tähendab, et draiver lülitub HD-heli soovimatult sündmuselt tagasi tagasihelistamise peale, kui DRM-komponent seondub. Samamoodi naaseb DRM-draiveri laadimisel ka HDMI-sündmuste käitlus pärandrežiimi.

Veel üks erinevus i915-st on see, et AMD HDMI registreerib komponendi koodekidraiveris, samas kui i915 HDMI-koodek eeldab, et komponentide sidumine on juba tehtud. Seega registreerib AMD kood komponentide sidumise ka kodeki väljumisel. '