driver: IT66021: Advertise (Ryan's suggested) additional HDMI modes (720p50, 960x720@100Hz) #591
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR expands the supported HDMI input profiles for the HDZero Goggles 2 by updating the synthetic EDID and refining the timing detection logic within the it66021 driver.
This was inspired by Ryan's video on custom resolutions for simming in the goggles. Modern Linux display servers (Wayland) require resolutions to be explicitly advertised in the EDID.
720p50 Support: Improves compatibility with PAL-region broadcast equipment and specialized cameras and runs better than 720p60 in the current firmware.
High Refresh Rate (100Hz): Adds support for 960x720 @ 100 Hz (CVT-RB). This "FPV-friendly" resolution allows Wayland-based compositors and simulators to push higher frame rates with lower pixel-clock overhead in 4:3.
Detection Accuracy: While the hardware could previously sync to these signals, the firmware lacked the specific hact / vact classification to identify 960x720, often resulting in an UNKNOWN status.
Code Stability: Fixes a legacy array-bounds vulnerability in the frequency sorting loop.
it66021.c:EDID Table: Replaced a duplicate Detailed Timing Descriptor (DTD) with 1280x720 @ 50 Hz.
Added a new DTD for 960x720 @ 100 Hz.
Recalculated Base Block (0x7F) and CEA Extension (0xFF) checksums to ensure OS recognition.
Timing Detection (IT66021_Get_VTMG): * Added logic to recognize hact == 960 and vact == 720 as a valid HDMIIN_VTMG_720P100 mode.
Bug Fix: Corrected the Bubble Sort loop indices to prevent r9a[j+1] from accessing memory outside the IT66121_9A_READ_N bounds.