एएमडीजीपीयू ड्राइवर्स रिसीव्ड पैच में एचडी ऑडियो इश्यू, डीआरएम अब हॉट-प्लगिंग संभाल सकते हैं

लिनक्स यूनिक्स / एएमडीजीपीयू ड्राइवर्स रिसीव्ड पैच में एचडी ऑडियो इश्यू, डीआरएम अब हॉट-प्लगिंग संभाल सकते हैं 2 मिनट पढ़ा

एएमडी



जबकि Radeon / AMD GPU को नए GPU मॉडल के साथ बेहतर लिनक्स सपोर्ट मिल रहा है, अब तक ऑडियो सपोर्ट की बुरी तरह से उपेक्षा की गई है। हाल ही में SUSE की तकाशी इवाई द्वारा एक पैच को धक्का दिया गया था, जो लिनक्स की मेनलाइन कर्नेल में ध्वनि उपतंत्र को भी बनाए रखता है। पैच AMDGPU के ऑडियो समर्थन के साथ कुछ समग्र मुद्दों को संबोधित करता है।

वर्तमान AMDGPU ऑडियो मुद्दे कुछ GPU के चारों ओर घूमते हैं, जिनके लिए HDMI / DP ऑडियो समर्थन में देरी हो रही है AMDGPU डिस्प्ले कोड (DC / DAL) कर्नेल में पैच होने की आवश्यकता है, कुछ ऑडियो प्रारूप असमर्थित हैं, और कुछ हिस्सों में समग्र बग ड्राइवर का ढेर। हालाँकि, SUSE की ताकाशी इवाई ने Radeon / AMDGPU DRM ड्राइवरों के लिए पैच का एक सेट जारी किया है।



ये पैच क्या करते हैं, Radeon और AMDGPU डायरेक्ट रेंडरिंग मैनेजर ड्राइवरों के लिए DRM ऑडियो कंपोनेंट सपोर्ट प्रदान करते हैं - संक्षेप में, hdmi और डिस्प्लेपोर्ट इंटरफेस के लिए DRM ऑडियो कंपोनेंट मोड ऑडियो हॉट-प्लग और ELD रीड-आउट होने की अनुमति देगा, बिना हार्डवेयर एक्सेस के । मूल रूप से इसका मतलब है कि इसे सही हॉट-प्लग हैंडलिंग के लिए अनुमति दी जा सकती है, भले ही सिस्टम रन-टाइम सस्पेंड मोड में हो। हालाँकि, AMDGPU DC कोड पथ को वर्तमान पैच रूप में ठीक से नहीं रखा गया है।



तो मूल रूप से, केवल Radeon और AMDGPU का एक हिस्सा पैच - डीसी समर्थन द्वारा संबोधित किया जाता है अभी तक नहीं है शामिल थे।



तकाशी ने नीचे दिए गए पैच को गहराई से समझाया:

AMD / ATI HDMI कोडेक ड्राइवरों में i915 की तरह ऑडियो कंपोनेंट बाइंडिंग नहीं है, लेकिन यह केवल एचडीएमआई हॉटप्लग डिटेक्शन और उसके बाद ELD रीड-अप के लिए पारंपरिक HD- ऑडियो अनचाही घटना के साथ काम करता है। यह कई मायनों में एक समस्या रही है: सबसे पहले, यह हार्डवेयर ईवेंट संक्रमण (जीपीओ रजिस्टर राइट, एचडी-ऑडियो कंट्रोलर ट्रिगर, और अंत में एचडी-ऑडियो अनचाही इवेंट हैंडलिंग) से गुजरता है, जो अक्सर अविश्वसनीय होता है और याद आ सकता है कुछ अवसर। दूसरा, प्रत्येक अनसॉल ईवेंट हैंडलिंग और ईएलडी रीड-अप को स्पष्ट पावर अप / डाउन की आवश्यकता होती है जब कोडेक रनटाइम सस्पेंड में होता है। अंतिम लेकिन कम से कम, जो कि सबसे महत्वपूर्ण है, हॉटप्लग वेकअप तब छूट सकता है जब एचडी-ऑडियो नियंत्रक रनटाइम सस्पेंड में हो। विशेष रूप से पिछले बिंदु vga_switcheroo के साथ प्रासंगिक हालिया परिवर्तन के कारण एक बड़ी समस्या है जो AMD HDMI नियंत्रकों के लिए रनटाइम PM को जबरन सक्षम बनाता है।

इन मुद्दों को ऑडियो घटक को पेश करके हल किया जाता है; हॉटप्लग अधिसूचना एक सीधा फ़ंक्शन कॉलबैक द्वारा किया जाता है, जो अधिक सटीक और विश्वसनीय है, और इसे वास्तविक हार्डवेयर एक्सेस के बिना संसाधित किया जा सकता है, अर्थात कोई रनटाइम पीएम ट्रिगर की आवश्यकता नहीं है, और एचडी-ऑडियो को भले ही यह रनटाइम में हो। रोक देते हैं। ELD क्वेरी के लिए वही है, जैसा कि यह DRM ड्राइवर में संग्रहीत कैश किए गए ELD बाइट्स से सीधे पढ़ा जाता है, इसलिए पूरे हार्डवेयर एक्सेस को छोड़ दिया जा सकता है।



तो यहाँ यह है: यह पैच AMD / ATI DRM ड्राइवर के साथ ऑडियो कंपोनेंट बाइंडिंग को लागू करता है। I915 कार्यान्वयन से सबसे बड़ा अंतर यह है कि यह बाध्यकारी पूरी तरह से वैकल्पिक है और इसे मक्खी पर अतुल्यकालिक रूप से सक्षम किया जा सकता है। यही है, जब DRM घटक बाध्य हो जाता है, तो ड्राइवर HD-ऑडियो अनचाही घटना से एक बार कॉलबैक को सूचित करेगा। इसी तरह, जब डीआरएम ड्राइवर अनलोड हो जाता है, तो एचडीएमआई इवेंट, विरासत मोड में वापस आ जाता है।

इसके अलावा, i915 से एक और अंतर यह है कि एएमडी एचडीएमआई कोडक चालक में घटक को पंजीकृत करता है, जबकि i915 एचडीएमआई कोडक मानता है कि घटक बंधन पहले से ही किया गया था। इसलिए AMD कोड, कंपोटर से बाहर निकलने पर भी घटक को डी-रजिस्टर करता है। '