Confira !!
Noralf Trønnes, desenvolvedor de DRM do Linux de longa data, criou um novo driver para o Linux para servir a propósitos genéricos de exibição de USB. Este driver foi escrito seguindo sua idéia de transformar um Raspberry Pi Zero em um adaptador de vídeo USB para HDMI.
O Driver de Vídeo USB Genérico é uma solução genérica para o uso de SBCs do Raspberry Pi na conversão para adaptadores de vídeo USB improvisados por meio de um novo driver de host USB e um driver de dispositivo / dispositivo. Noralf observou: "A razão para chamá-lo de 'Genérico' é que qualquer pessoa pode criar um adaptador / monitor USB nesse driver, basta adicionar um vid: pid USB. Eu esperava ter alguém trabalhando em um monitor USB baseado em microcontrolador até agora, mas infelizmente isso foi adiado. Teria sido bom ter uma implementação de microcontrolador para garantir que eu não tornasse as coisas desnecessárias difíceis de implementar. "O
desempenho é obviamente uma grande preocupação para os monitores baseados em USB, mas mesmo para o hardware Raspberry Pi low-end, ele está obtendo alguns resultados promissores. Um vídeo incorporado abaixo mostra o driver de monitor USB genérico em ação com diferentes hosts / dispositivos.
O patch genérico do driver de vídeo USB explica todos os detalhes técnicos interessantes:
Isso adiciona um driver de vídeo USB genérico com a intenção de poder ser usado com futuros monitores / adaptadores de interface USB futuros. O driver de dispositivo do gadget Linux servirá como implementação de dispositivo canônico.
As seguintes propriedades DRM são suportadas:
- Rotação plana
- Propriedades da TV conectora
Também há suporte para o brilho da luz de fundo exposto como um dispositivo de luz de fundo.
Os modos de exibição podem ser disponibilizados ao driver host como modos de exibição DRM ou através do EDID. Se ambos estiverem presentes, o EDID será repassado ao espaço do usuário.
O desempenho é preferível à profundidade da cor; portanto, se o dispositivo suportar RGB565, DRM_CAP_DUMB_PREFERRED_DEPTH retornará 16.
Se o buffer de transferência do dispositivo não puder caber em uma atualização de buffer de estrutura descompactada, a atualização será dividida em partes que se encaixam.
A experiência ideal do usuário é obtida fornecendo relatórios de danos, definindo FB_DAMAGE_CLIPS nos pageflips ou chamando DRM_IOCTL_MODE_DIRTYFB.
A compactação LZ4 é usada se o dispositivo suportar.
O driver suporta um formato de transferência monocromática de um bit: R1. Isso não é implementado no driver do gadget. É adicionado como preparação para futuros monitores monocromáticos de tinta eletrônica.
O driver é licenciado pelo MIT para facilitar o caminho para qualquer porta BSD do driver.
E então no lado do dispositivo USB:
Isso adiciona o suporte do dispositivo ao monitor USB genérico. Apresenta um dispositivo de exibição DRM como um monitor USB configurado por meio de configfs.
O monitor é implementado como uma interface USB do tipo fornecedor com um ponto final de saída em massa. O protocolo é implementado usando solicitações de controle. Os dados / pixels do buffer de quadros compactados lz4 são enviados pelo ponto final em massa.
A parte DRM do gadget é colocada no subsistema DRM, uma vez que atinge os internos do DRM.
Aqueles que desejam aprender mais podem fazê-lo através desta série de patches .
Nenhum comentário:
Postar um comentário