Com a janela de mesclagem do Linux 6.2, o trabalho de recursos para as alterações do Direct Rendering Manager (DRM) visam agora o kernel do Linux 6.3 começou a fazer fila com o DRM-Next. Assim, o Linux 6.3 deve trazer melhorias de suporte de TV analógica.
Acaba de sair um lote inicial de material drm-misc-next. Não há muito entre as mudanças principais e pequenas do driver DRM neste pull, considerando que muitos desenvolvedores tiraram folga durante o Natal e o Ano Novo.
Destacando-se, porém, o código DRM com algumas melhorias de suporte de TV analógica para 2023. O desenvolvedor de código aberto de longa data, Maxime Ripard, trabalhou para adicionar uma propriedade de modo “TV analógica” à API de espaço do usuário do conector DRM e fazer outras melhorias centrais de DRM em torno suporte para TV analógica.
Linux 6.3 deve trazer melhorias de suporte de TV analógica
A partir desta grande série de patches que está em desenvolvimento há vários meses, Maxime Ripard explica:
Aqui está uma série com o objetivo de melhorar o suporte a modos nomeados de linha de comando e, mais importante, como lidamos com todas as variantes de TV analógica.
O suporte a modos nomeados surgiu inicialmente para permitir especificar o modo de TV analógica a ser usado.
No entanto, isso estava causando vários problemas:
- O nome do modo em análise na linha de comando foi passado diretamente para o driver, que teve que descobrir qual modo deveria corresponder;
- Descobrir isso não foi muito fácil, já que o argumento video= ou what the userspace pode nem ter um nome em primeiro lugar, mas pode ter passado por um modo com os mesmos tempos;
- O fallback para combinar os tempos estava funcionando principalmente desde que estivéssemos suportando 525 linhas (provavelmente NSTC) e 625 linhas (PAL), mas não conseguimos diferenciar entre dois modos com os mesmos tempos (NTSC vs PAL- M vs NSTC-J, por exemplo);
- Também houve alguma sobreposição com a propriedade do modo tv registrada por drm_mode_create_tv_properties(), mas os modos nomeados não estavam interagindo com essa propriedade.
- Embora essa propriedade fosse genérica, seus possíveis valores eram específicos para cada driver, o que dificultava alguns suportes genéricos.
Assim, optei por abordar em várias etapas:
- Introduziram uma nova propriedade de norma de TV, com valores genéricos, cada driver informando por meio de uma bitmask qual padrão ele suporta para o espaço do usuário;
- Esta opção está no código de análise da linha de comando para poder especificá-lo na linha de comando do kernel. E novos auxiliares atomic_check e reset surgiram para integrar-se adequadamente no KMS atômico;
- O código de análise do modo nomeado agora está criando um modo de exibição adequado para o modo nomeado fornecido. E o padrão de TV fará parte do estado do conector;
- Dois drivers tiveram conversão e testes por enquanto (vc4 e sun4i). Com algum código de compatibilidade com versões anteriores para traduzir o antigo modo de TV para o novo modo de TV;
O benefício dessas melhorias de suporte de TV analógica é o driver VC4 DRM. Ele é mais notavelmente faz parte dos computadores de placa única Raspberry Pi. Do mesmo modo, o driver Sun4i DRM para os vários Allwinner SoCs usando esse driver de vídeo.
Esse trabalho de TV analógica é a mudança mais interessante entre o drm-misc-next pull de hoje. Espere alterações de driver DRM mais interessantes nas próximas semanas, antes da janela de mesclagem do Linux 6.3 que sairá no final de fevereiro.