- Patch ativa suporte de som para a plataforma Arduino-Imola baseada no SoC Qualcomm Agatti.
- Implementação utiliza o barramento SoundWire para conectar o codec PM4125 ao sistema.
- Desenvolvedores agora podem usar saídas de linha e fones de ouvido nativamente no Linux.
- O subsistema LPASS gerencia o áudio de forma independente, garantindo maior eficiência energética.
- A novidade faz parte do ciclo de desenvolvimento do Kernel Linux 7.0 e chega em breve às distros.
Srinivas Kandagatla, engenheiro da Qualcomm, enviou uma série de patches para o Kernel Linux 7.0 que adiciona suporte oficial de som à plataforma Arduino-Imola. O patchset foca na integração do subsistema de áudio para o SoC Agatti (QRB2210), permitindo que desenvolvedores utilizem recursos de reprodução e captura de áudio em hardware baseado nessa arquitetura.
A atualização introduz drivers essenciais e configurações de árvore de dispositivos (Device Tree) que habilitam o codec de áudio PM4125 e o barramento SoundWire. O ganho imediato para a comunidade é a capacidade de utilizar saídas de linha e fones de ouvido em placas Arduino de alto desempenho que rodam o Kernel Linux 7.0, expandindo as possibilidades de projetos de IoT e robótica que exigem interface sonora.
O que isso significa na prática
Para quem utiliza a placa Arduino-Imola, essa mudança remove uma das principais limitações de hardware no Linux: o silêncio. Anteriormente, embora o processador principal estivesse operacional, o sistema não reconhecia os componentes responsáveis pelo som. Com a implementação, o sistema passa a identificar automaticamente as conexões de fone de ouvido (headset) e as saídas de áudio analógicas (Lineout). Isso permite que aplicações de reconhecimento de voz, alarmes sonoros ou reprodução de mídia funcionem nativamente sem a necessidade de drivers proprietários ou contornar o sistema com hardware USB externo.
Detalhes da implementação
A implementação técnica ocorre principalmente no subsistema ASoC (ALSA SoC) e utiliza o barramento SoundWire, um padrão de interface de áudio moderno que reduz o número de trilhas físicas necessárias no hardware. O patch adiciona suporte aos nós LPASS (Low Power Audio Subsystem), que gerenciam o processamento de áudio de forma independente da CPU principal para economizar energia.
Os componentes principais ativados incluem:
- RX/TX Macro: Gerenciamento de fluxos de dados de entrada e saída.
- PM4125 Codec: O chip físico que converte o sinal digital em analógico.
- SoundWire v1.6.0: O protocolo de comunicação entre o SoC e o codec.
| Recurso | Status Anterior | Novo Status (Kernel 7.0) |
| Áudio via Headset | Inativo | Suporte total (Play/Rec) |
| Saída de Linha (LO) | Inativo | Suporte total |
| Gerenciamento LPASS | Ausente | Ativado via driver Agatti |
| Barramento SoundWire | Não mapeado | Mapeado e funcional |
Essa atualização para a plataforma Arduino-Imola está alinhada com um movimento maior de modernização sonora do núcleo. Como acompanhamos recentemente no SempreUpdate, o Kernel Linux 7.0 introduziu um pacote massivo de drivers ALSA/ASoC, focando justamente em suporte nativo para codecs de próxima geração e na eficiência do barramento SoundWire.
Curiosidades e bastidores da discussão
A discussão na LKML revelou um olhar atento dos mantenedores sobre a organização do código. Konrad Dybcio, um dos revisores ativos do ecossistema Qualcomm no Kernel, questionou a ausência de suporte para alto-falantes (speakers) e a falta de saídas I2S tradicionais, o que é incomum para esse tipo de placa. Ficou esclarecido que a plataforma foca especificamente em fones e saídas de linha.
Outro ponto de debate técnico foi a localização das definições do codec PM4125. Os revisores sugeriram que o código deveria ser movido para arquivos de configuração mais genéricos (pm4125.dtsi) em vez de ficar restrito apenas ao arquivo específico da placa Arduino. Essa prática facilita que outros hardwares que usem o mesmo chip de áudio no futuro possam herdar o código sem duplicação.
Quando isso chega no meu PC?
Considerando o ciclo de desenvolvimento do Kernel Linux 7.0, o suporte deve ser mesclado na janela de manutenção atual. Para usuários finais de distribuições como Fedora, Arch Linux ou Ubuntu (em suas versões de desenvolvimento), a novidade deve estar disponível assim que o kernel estável for lançado e empacotado, o que deve ocorrer nos próximos meses. No caso de dispositivos embarcados que utilizam a linha Arduino-Imola, a atualização dependerá da adoção do novo kernel pelos fabricantes de Board Support Packages (BSPs).
