- Suporte para avell b.on: o kernel linux 7.0 traz correções específicas para garantir que o áudio e o microfone funcionem perfeitamente nos laptops da marca avell e seus equivalentes intel nuc.
- Qualcomm v2.2.0: o subsistema foi atualizado para suportar a nova versão do protocolo de áudio da qualcomm, preparando o terreno para a próxima geração de processadores snapdragon.
- Limpeza de api: uma refatoração no código removeu o retorno de valores em funções de remoção de drivers, alinhando o soundwire às práticas modernas e seguras do kernel.
- Wake-on-voice: o codec cs42l45 agora é capaz de acordar o sistema do modo de suspensão, permitindo o uso de comandos de voz com baixo consumo de energia.
- Código mais seguro: a adoção de macros de travamento automático (guard mutex) no driver da qualcomm reduz a complexidade do código e previne erros de travamento do sistema.
Linus Torvalds realizou a integração das atualizações do subsistema SoundWire para o kernel linux 7.0-rc1, enviadas pelo mantenedor Vinod Koul. Este ciclo traz uma refatoração significativa na API interna de drivers, modernizando como o kernel lida com a remoção de dispositivos de áudio, além de adicionar suporte para novas controladoras Qualcomm e laptops Avell.
O SoundWire é um padrão de interface de áudio cada vez mais comum em laptops modernos e dispositivos móveis, substituindo conexões legadas para permitir áudio de alta fidelidade com menor consumo de energia.
O impacto real no uso diário
Para usuários de notebooks modernos, especialmente modelos Avell e aqueles com chips Qualcomm de última geração, essa atualização garante que o som funcione corretamente, sem falhas de detecção ou microfones mudos. A limpeza do código, embora invisível para o usuário final, torna o sistema mais estável e fácil de manter para os desenvolvedores.
Mudanças na API e refatoração para desenvolvedores
A mudança mais extensa neste ciclo é estrutural. O subsistema SoundWire abandonou o retorno de valores inteiros nas funções de remoção dos drivers, adotando o retorno void.
O motivo dessa alteração é que, no modelo de drivers do Linux, falhar em uma função de remover raramente faz sentido, pois o dispositivo está sendo desconectado ou o driver descarregado de qualquer maneira. O kernel está migrando subsistemas para void para refletir que a remoção não deve falhar. Isso exigiu a atualização de dezenas de drivers de codecs, incluindo Realtek, Cirrus Logic e Maxim, para remover o retorno zero e ajustar a assinatura da função.
Além disso, o código agora utiliza métodos de barramento diretos para funções de sondagem, remoção e desligamento, simplificando o registro de drivers.
Novos suportes de hardware
Suporte para Qualcomm SoundWire v2.2.0: o suporte para a versão mais recente do IP de SoundWire da Qualcomm foi adicionado. Isso prepara o terreno para a próxima geração de SoCs Snapdragon que utilizam essa revisão do controlador de áudio.
Suporte para Avell B.ON: foi adicionado um ajuste específico para o laptop Avell B.ON. Identificado como uma remarcação do Intel NUC 15 “Bishop County”, este ajuste garante que o mapeamento dos pinos de áudio funcione corretamente, resolvendo problemas de som mudo ou microfone não detectado neste modelo específico.
Wake-on-Voice para CS42L45: o codec Cirrus Logic CS42L45 foi adicionado à lista de dispositivos capazes de acordar o sistema. Isso é essencial para funcionalidades de detecção de voz de baixo consumo em estado de suspensão.
Modernização de código e limpeza
Uma mudança interessante para entusiastas de programação C no kernel é o uso da macro guard no driver da Qualcomm. Isso reduz o risco de deadlocks e simplifica a leitura do código, evitando a mistura de lógica de limpeza com instruções goto, adotando um estilo de travamento automático similar ao RAII.
