Linux 6.3 deve trazer melhorias de suporte de TV analógica

Linux 6.3 deve trazer melhorias de suporte de TV analógica
Linux 6.3 deve trazer melhorias de suporte de TV analógica

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.