[PATCH] drm: EDID quirk improvements

Paul Menzel paulepanter at users.sourceforge.net
Sat Aug 11 12:37:02 PDT 2012


Dear Ian,


Am Freitag, den 10.08.2012, 13:44 -0500 schrieb Ian Pilcher:

[…]

> diff --git a/Documentation/EDID/edid_quirks.txt b/Documentation/EDID/edid_quirks.txt
> new file mode 100644
> index 0000000..256ded0
> --- /dev/null
> +++ b/Documentation/EDID/edid_quirks.txt

[…]

> +Overview
> +========
> +
> +EDID quirks provide a mechanism for working around display hardware with buggy
> +EDID data.
> +
> +An individual EDID quirk maps a display type (identified by its EDID
> +manufacturer ID and product code[1]) to a set of flags. For example, the current
> +list of quirks built into the kernel is:
> +
> +    ACR:0xad46:0x00000001
> +    API:0x7602:0x00000001
> +    ACR:0x0977:0x00000020
> +    MAX:0x05ec:0x00000001
> +    MAX:0x077e:0x00000001
> +    EPI:0xe780:0x00000002
> +    EPI:0x2028:0x00000001
> +    FCM:0x3520:0x0000000c
> +    LPL:0x0000:0x00000010
> +    LPL:0x2a00:0x00000010
> +    PHL:0xe014:0x00000020
> +    PTS:0x02fd:0x00000020
> +    SAM:0x021d:0x00000040
> +    SAM:0x0254:0x00000001
> +    SAM:0x027e:0x00000001
> +    VSC:0x139c:0x00000080
> +    GSM:0x563f:0x00000300

reading the document again, I guess keeping this list up to date will be
forgotten and duplicating this information is not necessary. Maybe just
add one or two example quirks.

I cannot think of a `grep` command to run to list all quirks, so maybe
just mention that all the quirks are stored in `edid_quirk_list[]` in
`drivers/gpu/drm/drm_edid.c` [1].

> +
> +The first field of each quirk is the manufacturer ID, the second field is the
> +product code, and the third field is the quirk flags.
> +
> +NOTE: All of the manufacturer IDs above are displayed as 3-character strings,
> +    because they are conformant IDs that have been properly encoded:
> +
> +    - The most-significant bit of the encoded ID is 0
> +    - They only contain ASCII characters in the range A-Z
> +
> +    IDs that do not conform to these rules are displayed as "raw" hexadecimal
> +    values.
> +
> +The current quirk flags are:
> +
> +    /* First detailed mode wrong, use largest 60Hz mode */
> +    #define EDID_QUIRK_PREFER_LARGE_60                  0x00000001
> +
> +    /* Reported 135MHz pixel clock is too high, needs adjustment */
> +    #define EDID_QUIRK_135_CLOCK_TOO_HIGH               0x00000002
> +
> +    /* Prefer the largest mode at 75 Hz */
> +    #define EDID_QUIRK_PREFER_LARGE_75                  0x00000004
> +
> +    /* Detail timing is in cm not mm */
> +    #define EDID_QUIRK_DETAILED_IN_CM                   0x00000008
> +
> +    /* Detailed timing descriptors have bogus size values, so just take the
> +     * maximum size and use that.
> +     */
> +    #define EDID_QUIRK_DETAILED_USE_MAXIMUM_SIZE        0x00000010
> +
> +    /* Monitor forgot to set the first detailed is preferred bit. */
> +    #define EDID_QUIRK_FIRST_DETAILED_PREFERRED         0x00000020
> +
> +    /* use +hsync +vsync for detailed mode */
> +    #define EDID_QUIRK_DETAILED_SYNC_PP                 0x00000040
> +
> +    /* Force reduced-blanking timings for detailed modes */
> +    #define EDID_QUIRK_FORCE_REDUCED_BLANKING           0x00000080
> +
> +    /* Display is confused by InfoFrames; don't sent any */
> +    #define EDID_QUIRK_DISABLE_INFOFRAMES               0x00000100
> +
> +    /* Display doesn't have any audio output */
> +    #define EDID_QUIRK_NO_AUDIO                         0x00000200

That might be also hard to keep up to date. Maybe also just note that
these quirks are defined in the beginning of
`drivers/gpu/drm/drm_edid.c` [1] and that these are bit shifts(?) [2].

[1] http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob;f=drivers/gpu/drm/drm_edid.c;h=a8743c399e83234c976ebdb4b471542a0645c42d;hb=HEAD
[2] https://en.wikipedia.org/wiki/Bitwise_operation#Shifts_in_C.2C_C.2B.2B.2C_C.23


[…]


Thanks,

Paul
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20120811/0f054575/attachment.pgp>


More information about the dri-devel mailing list