edid-decode bugs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I think I’ve found 2 or 3 bugs in edid-decode. I've attached the fixes and some example EDIDs. I've also made some other changes. I've never made a linux patch before so please let me know how to proceed.

Bug Fixes:

- Corrected horizontal range in "Monitor Ranges" - was using incorrect bits for 255 offsets.
- Fixed DisplayID type 1 timing calculations which were missing the +1 increment for pix_clock,ha,hbl,hso,hspw,va,vbl,vso,vspw.
- Made refresh rate floating point instead of integer in detailed timings in descriptors.

Additions:

- Added DisplayID GP ASCII String (used by EDIDs modified by SwitchResX)
- "YCbCr 4:2:0 Capability Map Data Block " now outputs the modes that support YCbCr 4:2:0 instead of just indexes of the modes. Indexes start from one and refer to timings in "Video Data Block". The code assumes that "Video Data Block" appears before "YCbCr 4:2:0 Capability Map Data Block".
- Unknown CTA blocks are dumped as hex.
- Decode "Display Parameters block".
- Decode "Display Interface Features Data Block".
- Decode "ContainerID Data Block".
- Unknown DisplayID blocks are dumped as hex.

Changes:

- Change all horizontal frequencies to be displayed in kHz (Hz=vertical, kHz=horizontal, MHz=pixelclock) like they are in "Monitor Ranges".
- For timings, added front porch, pulse width, and back porch numbers in parenthesis (smaller integers are easier to comprehend, useful when comparing or editing timings in SwitchResX or other editors, negative values will be more appearant).
- Added missing VertFreq and HorFreq values to DisplayID type 1 timings.
- Added product type to DisplayID.
- Added DisplayID tag hex byte to make it possible to distinguish between DisplayID 1.3 and 2.0 spec blocks of the same name.
- Remove double space when "(native)" is not output.

Minor changes:

- Use %hhx or %hhu for unsigned char parameters in printf. Use %x or %d for int parameters. Eliminates printf warnings.
- Moved inner loop of cta_svd into a new function cta_svd_one so that it can be reused by cta_y420cmdb.
- Added hex_block for blocks of data with that are not decoded.
- Added feature_support_flags, print_flag_lines, parse_displayid_parameters.
- Renamed conformant_extension to nonconformant_extension in parse_extension because boolean value of 1 = nonconformant according to return result of parse_cta and parse_displayid; matches interpretation in edid_from_file.

<<attachment: edid-decode_patch_joevt4.zip>>


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux