HD audio problēmas AMDGPU draiveros saņem plāksteri, DRM tagad var tikt galā ar karsto pievienošanu

Linux-Unix / HD audio problēmas AMDGPU draiveros saņem plāksteri, DRM tagad var tikt galā ar karsto pievienošanu 2 minūtes lasīts

AMD



Kaut arī Radeon / AMD GPU ir uzlabojis Linux atbalstu ar jaunākiem GPU modeļiem, audio atbalsts līdz šim ir nožēlojami atstāts novārtā. Nesen plāksteri piespieda SUSE Takashi Iwai, kurš arī uztur skaņas apakšsistēmu Linux galvenajā kodolā. Plāksteris risina dažas vispārīgas problēmas ar AMDGPU audio atbalstu.

Pašreizējās AMDGPU audio problēmas risinās ap dažiem GPU, lai HDMI / DP audio atbalsts tiktu aizkavēts, jo AMDGPU displeja kods (DC / DAL) ir jāinstalē kodolā, daži audio formāti netiek atbalstīti un vispārējas kļūdas noteiktās daļas vadītāja kaudze. Tomēr SUSE Takashi Iwai ir izlaidis ielāpu komplektu Radeon / AMDGPU DRM draiveriem.



Šie labojumi nodrošina DRM audio komponentu atbalstu Radeon un AMDGPU Direct Rendering Manager draiveriem - īsumā DRM audio komponentu režīms HDMI un DisplayPort saskarnēm ļaus notikt audio karstās spraudnes un ELD nolasīšanai, bez piekļuves aparatūrai . Tas būtībā nozīmē, ka to var atļaut pareizi apstrādāt ar karstajiem spraudņiem, pat ja sistēma darbojas izpildes laika apturēšanas režīmā. Tomēr AMDGPU DC koda ceļi pašreizējā ielāpa formā nav pareizi salikti.



Tātad, patch - DC atbalsts ir adresēts tikai Radeon un daļai AMDGPU vēl nav iekļauts.



Takaši zemāk padziļināti izskaidroja plāksterus:

AMD / ATI HDMI kodeku draiveriem nebija audio komponentu saistīšanas, piemēram, i915, taču tas darbojās tikai ar tradicionālajiem HD-audio nevēlamajiem notikumiem HDMI karsto spraudņu noteikšanai un ELD nolasīšanai pēc tam. Šī problēma ir bijusi daudzējādā ziņā: pirmkārt, tā notiek ar aparatūras notikumu pāreju (no GPU reģistra rakstīšanas, HD-audio kontroliera aktivizētāja un visbeidzot uz HD-audio nevēlamu notikumu apstrādi), kas bieži ir neuzticama un var palaist garām dažas iespējas. Otrkārt, katrai neizpildītu notikumu apstrādei un ELD nolasīšanai ir nepieciešama skaidra jauda uz augšu / uz leju, kad kodekā ir izpildlaika apturēšana. Visbeidzot, kas ir vissvarīgākais, karstās kontaktdakšas modināšana var tikt izlaista, kad HD-audio kontrolieris ir apturēts izpildlaikā. Īpaši pēdējais punkts ir liela problēma, pateicoties nesenajām izmaiņām, kas saistītas ar vga_switcheroo, kas piespiedu kārtā ļauj izpildlaika PM AMD HDMI kontrolieriem.

Šie jautājumi tiek atrisināti, ieviešot audio komponentu; karstās kontaktdakšas paziņojumu veic ar tiešas funkcijas atzvanīšanu, kas ir precīzāks un uzticamāks, un to var apstrādāt bez faktiskas piekļuves aparatūrai, ti, nav nepieciešams izpildlaika PM sprūda, un HD-audio saņem notikumu pat tad, ja tas ir izpildlaikā apturēt. Tas pats ELD vaicājumam, jo ​​tas tiek lasīts tieši no kešatmiņā saglabātajiem ELD baitiem, kas saglabāti DRM draiverī, tādējādi var izlaist visu piekļuvi aparatūrai.



Tātad, tas ir: šis plāksteris ievieš audio komponentu saistīšanu ar AMD / ATI DRM draiveri. Lielākā atšķirība no i915 ieviešanas ir tā, ka šī saistīšana ir pilnībā izvēles iespēja, un to var asinhroni iespējot lidojuma laikā. Tas nozīmē, ka draiveris pārslēgsies no HD-audio nevēlama notikuma uz paziņojuma atzvanīšanu, kad DRM komponents tiks sasiets. Līdzīgi, kad DRM draiveris tiek izkrauts, HDMI notikumu apstrāde atgriežas arī mantotajā režīmā.

Vēl viena atšķirība no i915 ir tā, ka AMD HDMI reģistrē komponentu kodeku draiverī, savukārt i915 HDMI kodeks pieņem, ka komponentu saistīšana jau ir veikta. Tādējādi AMD kods atceļ komponenta saistīšanu arī kodeka izejā. ”