Com a janela de mesclagem do Kernel Linux 6.2 atrás de nós, o trabalho de recursos para as alterações do Direct Rendering Manager (DRM) visando agora o kernel do Linux 6.3 começou a fazer fila com o DRM-Next.
Fpo enviado hoje um lote inicial de material drm-misc-next das férias. 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.
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 foi inicialmente introduzido para permitir especificar o modo de TV analógica a ser usado.
No entanto, isso estava causando vários problemas:
* O nome do modo analisado 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:
* Foi introduzida 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 foi adicionada ao 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 foram criados 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 foram convertidos e testados 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;
Como observado inicialmente, o benefício dessas melhorias de suporte de TV analógica é o driver VC4 DRM mais notavelmente usado pelos computadores de placa única Raspberry Pi e, em seguida, o driver Sun4i DRM para os vários Allwinner SoCs usando esse driver de vídeo.
Até a próxima !!
Nenhum comentário:
Postar um comentário