Como cozinhar o EDID e encontrar valores para o arquivo .S

2

Ele ficou muito chato e a resolução está ruim, então decidi fazer o meu EDID e passar isso para o Kernel. (Estou criando o EDID para S20A300B e Samsung diz em sua página que o melhor RES para este produto é 1600 * 900)
Eu criei um arquivo 1600 * 900.S e tentei preenchê-lo com as informações que obtive de cvt 1600*900 e também DPI calculator=91.79 .
mas existem alguns valores para os quais não consigo encontrar a resposta.

CLOCK XY_RATIO XY_RATIO_16_9 ESTABLISHED_TIMINGS_BITS 0x00 HSYNC_POL VSYNC_POL CRC

O arquivo 1600x900.S é:

        /*
       1920x1080.S: EDID data set for standard 1920x1080 60 Hz monitor

       Copyright (C) 2012 Carsten Emde <[email protected]>

    */

    /* EDID */
    define VERSION 1
    define REVISION 3

    /* Display */
    /* EDID */
#define VERSION 1
#define REVISION 3

/* Display */
#define CLOCK 60000 /* kHz */
#define XPIX 1600
#define YPIX 900
#define XY_RATIO XY_RATIO_16_9
#define XBLANK 160
#define YBLANK 26
#define XOFFSET 48
#define XPULSE 32
#define YOFFSET (63+3)
#define YPULSE (63+5)
#define DPI 91.79
#define VFREQ 60 /* Hz */
#define TIMING_NAME "Linux FHD"
#define ESTABLISHED_TIMINGS_BITS 0x00 /* none */
#define HSYNC_POL 1
#define VSYNC_POL 1
#define CRC 0x05

#include "edid.S"
    
por r004 17.01.2014 / 00:12

1 resposta

2

Tomando estes de cada vez:

CLOCK é o relógio de pixel. É dado na primeira linha de saída de cvt as pclk . Multiplique esse valor por 1000 para passar de MHz para kHz.

XY_RATIO é a proporção. 1600x900 corresponde a 16: 9, por isso o valor padrão, XY_RATIO_16_9 , está correto. Você pode encontrar os possíveis valores próximos ao início do arquivo edid.S .

ESTABLISHED_TIMING_BITS , acredito, é usado para especificar um dos poucos modos predefinidos. Eu acho que é seguro deixar como 0x00 para todos os casos.

HSYNC_POL e VSYNC_POL são as polaridades de sincronização horizontal e vertical. Eles também fazem parte da saída cvt modeline. O final da segunda linha contém algo como +hsync -vsync , que corresponderia a HSYNC_POL 1 e VSYNC_POL 0 . Alguns monitores podem suportar apenas certas polaridades, então você pode precisar verificar a documentação do seu monitor e usar esses valores em vez de cvt .

CRC é a soma de verificação dos dados do EDID. O valor é melhor encontrado primeiro inserindo um valor fictício e compilando a origem, criando um binário edid. Em seguida, passe esse binário para edid-decode , que próximo do final imprimirá o valor de CRC fictício seguido pelo que deveria ser. Você então substitui o valor fictício no código-fonte pelo valor sugerido por edid-decode e compila novamente.

    
por 17.01.2014 / 04:16