مشاكل الصوت عالي الدقة في برامج تشغيل AMDGPU تتلقى تصحيحًا ، يمكن لـ DRM الآن التعامل مع التوصيل السريع

لينكس يونكس / مشاكل الصوت عالي الدقة في برامج تشغيل AMDGPU تتلقى تصحيحًا ، يمكن لـ DRM الآن التعامل مع التوصيل السريع 2 دقيقة للقراءة

AMD



في حين أن Radeon / AMD GPU تحصل على دعم أفضل لنظام Linux مع طرز GPU الأحدث ، فقد تم إهمال دعم الصوت بشكل مؤسف - حتى الآن. تم دفع التصحيح مؤخرًا بواسطة Takashi Iwai من SUSE ، والذي يحافظ أيضًا على النظام الفرعي للصوت في نواة Linux الرئيسية. التصحيح يعالج بعض المشكلات العامة المتعلقة بدعم صوت AMDGPU.

تدور مشكلات صوت AMDGPU الحالية حول بعض وحدات معالجة الرسومات للحصول على دعم صوت HDMI / DP الذي يتأخر بسبب رمز عرض AMDGPU (DC / DAL) الذي يحتاج إلى تصحيح في النواة ، وبعض تنسيقات الصوت غير مدعومة ، والأخطاء الشاملة في أجزاء معينة من كومة سائق. ومع ذلك ، أصدر Takashi Iwai من SUSE مجموعة من التصحيحات لمحركات Radeon / AMDGPU DRM.



ما تفعله هذه التصحيحات هو توفير دعم مكون صوت DRM لسائقي Radeon و AMDGPU Direct Rendering Manager - باختصار ، سيسمح وضع مكون الصوت DRM لواجهات HDMI و DisplayPort بتوصيل الصوت الساخن وقراءات ELD ، بدون الوصول إلى الأجهزة . هذا يعني بشكل أساسي أنه يمكن السماح له بالتعامل الصحيح مع المكونات الساخنة ، حتى إذا كان النظام في وضع التوقف المؤقت لوقت التشغيل. ومع ذلك ، لا يتم تجميع مسارات رمز AMDGPU DC معًا بشكل صحيح في نموذج التصحيح الحالي.



لذلك بشكل أساسي ، يتم معالجة Radeon وجزء من AMDGPU فقط بواسطة التصحيح - دعم DC ليس بعد متضمن.



شرح تاكاشي البقع بالتفصيل أدناه:

لا تحتوي برامج تشغيل الترميز AMD / ATI HDMI على ربط مكون الصوت مثل i915 ، ولكنها عملت فقط مع حدث HD-audio التقليدي غير المرغوب فيه لاكتشاف HDMI hotplug وقراءة ELD بعد ذلك. لقد كانت هذه مشكلة من نواحٍ عديدة: أولاً وقبل كل شيء ، يمر بمرحلة انتقال حدث الجهاز (من كتابة سجل GPU ، ومشغل وحدة التحكم في الصوت عالي الدقة ، وأخيراً إلى معالجة الأحداث غير المرغوب فيها بصوت عالي الدقة) ، والتي غالبًا ما تكون غير موثوقة وقد تفوت بعض الفرص. ثانيًا ، يحتاج كل من معالجة حدث unsol وقراءة ELD إلى الطاقة الصريحة لأعلى / لأسفل عندما يكون برنامج الترميز في وقت التوقف المرحلي. أخيرًا وليس آخرًا ، وهو الأهم ، قد يتم تفويت تنبيه hotplug عندما تكون وحدة التحكم في الصوت عالي الدقة في وضع إيقاف التشغيل. لا سيما النقطة الأخيرة هي مشكلة كبيرة بسبب التغيير الأخير المرتبط بـ vga_switcheroo الذي يمكّن قسراً وقت التشغيل PM لوحدات تحكم AMD HDMI.

يتم حل هذه المشكلات عن طريق إدخال مكون الصوت ؛ يتم تنفيذ إشعار hotplug عن طريق رد اتصال مباشر للوظيفة ، وهو أكثر دقة وموثوقية ، ويمكن معالجته بدون الوصول الفعلي إلى الأجهزة ، أي لا يلزم تشغيل مشغل PM ، ويحصل الصوت عالي الدقة على الحدث حتى لو كان في وقت التشغيل تعليق. الشيء نفسه بالنسبة لاستعلام ELD ، حيث يتم قراءته مباشرة من وحدات بايت ELD المخزنة مؤقتًا والمخزنة في برنامج تشغيل DRM ، وبالتالي يمكن تخطي الوصول إلى الأجهزة بالكامل.



إذن ها هو: هذا التصحيح ينفذ ربط مكون الصوت ببرنامج تشغيل AMD / ATI DRM. يتمثل الاختلاف الأكبر عن تطبيق i915 في أن هذا الربط اختياري تمامًا ويمكن تمكينه بشكل غير متزامن أثناء التنقل. وهذا يعني أن برنامج التشغيل سينتقل من حدث HD-audio غير المرغوب فيه إلى رد الاتصال الإخطار بمجرد ربط مكون DRM. وبالمثل ، عندما يتم إلغاء تحميل برنامج تشغيل DRM ، تعود معالجة حدث HDMI إلى الوضع القديم أيضًا.

أيضًا ، هناك اختلاف آخر عن i915 وهو أن AMD HDMI تسجل المكون في برنامج تشغيل الترميز ، بينما يفترض برنامج ترميز i915 HDMI أن ربط المكون قد تم بالفعل. ومن ثم فإن كود AMD يلغي تسجيل ارتباط المكون عند خروج برنامج الترميز أيضًا. '