Uma série de trocas de e-mails na LKML (Linux Kernel Mailing List) entre janeiro de 2025 e fevereiro de 2026 detalha a restauração de uma funcionalidade crítica no driver de áudio I2S TDM da Rockchip, utilizado em chips como o RK3308 e em diversas placas de desenvolvimento (como a Radxa Rock Pi S).
O patch, enviado por Detlev Casanova (Collabora), visa corrigir problemas de taxa de amostragem em sistemas de áudio HDMI, mas acabou revelando um bug no caminho de captura de áudio.
O problema: o divisor fixo vs. HDMI
No subsistema de áudio do Linux (ASoC), o mclk (Master Clock) é geralmente calculado multiplicando a taxa de amostragem (ex: 48kHz) por um fator chamado mclk-fs. O padrão para a maioria dos sistemas é 256 (48.000 * 256 = 12,288 MHz).
No entanto, para o áudio via HDMI nos chips Rockchip, esse valor precisa ser 128.
Anteriormente, o kernel havia removido a função de retorno (callback) set_sysclk, acreditando que ela era redundante. Sem ela, o driver forçava o uso do padrão 256, o que quebrava a saída de áudio para dispositivos HDMI que esperavam um relógio diferente.
A solução e a regressão (O “plot twist”)
Detlev Casanova reintroduziu o set_sysclk para permitir que o driver da máquina (como uma placa-mãe ou sistema embarcado) informasse ao driver do chip a frequência correta baseada no Device Tree.
No entanto, em 10 de fevereiro de 2026, Luca Ceresoli (autor de melhorias anteriores no mesmo driver) reportou uma regressão crítica: a captura de áudio (gravação) no RK3308 parou de funcionar, retornando o erro -22 (Invalid Argument).
O diagnóstico de Luca
O problema ocorreu porque, enquanto o áudio HDMI (Playback) agora recebia a frequência correta, o caminho de Captura não estava chamando o set_sysclk. O resultado era que o driver tentava configurar o relógio para 0 Hz, causando a falha do sistema.

Curiosidades e bastidores da discussão
A discussão destaca a importância da colaboração e do teste em hardware real:
- Esquecimento de CC: Luca Ceresoli gentilmente “puxou a orelha” de Detlev por não tê-lo incluído na cópia (Cc) do patch original, já que Luca era o autor da mudança que o patch de Detlev estava alterando. Isso teria evitado que o erro chegasse à árvore principal.
- A ajuda do Robô: O “Kernel Test Robot” já havia alertado sobre problemas de compilação em versões anteriores do patch devido a dependências de ACPI, mostrando que a automação é vital para manter o kernel estável.
- Correção “On-the-fly”: Mark Brown, o mantenedor de som do kernel, já estava preparado para reverter o patch (desfazer a mudança) para não prejudicar os usuários do RK3308. No entanto, Detlev enviou rapidamente uma correção adicional para usar um valor padrão (fallback) caso a frequência não seja definida via set_sysclk.
Status atual
Após a validação de Luca Ceresoli em 18 de fevereiro de 2026, confirmando que a nova lógica de fallback funciona, o patch definitivo foi aprovado por Mark Brown.
A mudança garante que:
- O áudio HDMI funcione com o multiplicador 128.
- A captura de áudio continue funcionando com o multiplicador padrão 256 caso nenhuma configuração especial seja fornecida.