FERRAMENTAS LINUX: Os drivers Radeon / AMDGPU DRM recebem suporte para componentes de áudio HD

segunda-feira, 23 de julho de 2018

Os drivers Radeon / AMDGPU DRM recebem suporte para componentes de áudio HD



Confira!



Se há uma parte da pilha de drivers gráficos de código aberto Radeon / AMDGPU que parece ter sido negligenciada ao longo do tempo, foi o suporte de áudio HDMI / DP. Felizmente, outra melhoria está a caminho para melhorá-lo.

Os problemas de áudio do AMDGPU variaram de ter que esperar muito tempo em algumas GPUs por terem suporte de áudio HDMI / DP que funciona devido ao atraso do AMDGPU Display Code (DC / anterior DAL) para ser mesclado no kernel, vários tipos de áudio formatos não sendo suportados e bugs parecendo mais prevalentes do que outras áreas da pilha de drivers. Felizmente, Takashi Iwai, da SUSE, que também é o mantenedor do subsistema de som no kernel da linha principal, lançou um conjunto de novas correções DRM Radeon / AMDGPU hoje.

Esses patches fornecem suporte ao componente de áudio DRM com os drivers Radeon e AMDGPU Direct Rendering Manager. O modo de componente de áudio DRM para interfaces HDMI e DisplayPort permite que a hot-plug de áudio e a leitura ELD ocorram sem o acesso ao hardware. Em particular, isso pode permitir o manuseio de hot-plug adequado mesmo quando o sistema está em um modo de suspensão em tempo de execução. Mas no atual patch, os caminhos do código AMDGPU DC ainda não estão conectados.

Takashi postou as correções hoje para revisão. Ele explicou ainda nas manchas:
Os drivers de codec HDMI / ATI HDMI não tinham a ligação do componente de áudio como i915, mas funcionou apenas com o tradicional evento de áudio HD não solicitado para a detecção de hotplug HDMI e a leitura ELD depois disso. Isso tem sido um problema de várias maneiras: em primeiro lugar, passa pela transição de evento de hardware (de gravação de registro de GPU, disparador de controlador de áudio HD e finalmente para manipulação de eventos não solicitados de áudio HD), que geralmente não é confiável e pode algumas oportunidades. Em segundo lugar, cada manipulação de evento e leitura de ELD precisa da força explícita para cima / para baixo quando o codec está suspenso no tempo de execução. Por último, mas não menos importante, qual é o mais importante, a ativação do hotplug pode ser perdida quando o controlador de áudio HD estiver em suspensão suspensa.

Esses problemas são resolvidos com a introdução do componente de áudio; a notificação de hotplug é feita por um retorno de chamada de função direta, que é mais preciso e confiável, e pode ser processado sem o acesso ao hardware, ou seja, nenhum disparo de PM de tempo de execução é necessário e o áudio HD obtém o evento mesmo em tempo de execução suspender. O mesmo para a consulta ELD, como é lido diretamente dos bytes ELD em cache armazenados no driver DRM, portanto, todo o acesso ao hardware pode ser ignorado.

Então, aqui está: este patch implementa a ligação do componente de áudio com o driver AMD / ATI DRM. A maior diferença da implementação do i915 é que essa ligação é totalmente opcional e pode ser ativada de forma assíncrona na hora. Ou seja, o driver mudará do evento não solicitado de áudio HD para o retorno de chamada de notificação quando o componente DRM for ligado. Da mesma forma, quando o driver DRM é descarregado, a manipulação de eventos HDMI também retorna ao modo legado.

Além disso, outra diferença do i915 é que o AMD HDMI registra o componente no driver do codec, enquanto o codec HDMI i915 assume que a ligação do componente já foi feita. Portanto, o código da AMD também cancela o registro da ligação do componente na saída do codec.

Como estamos no corte do novo material de recurso a ser fundido no DRM-Next, esse suporte a componentes de áudio para Radeon / AMDGPU provavelmente não se materializará até o ciclo do kernel Linux 5.0.

Fonte

Até a próxima!!

Nenhum comentário:

Postar um comentário