Skip to content

Conversation

@Strykar
Copy link

@Strykar Strykar commented Jan 25, 2026

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.

…720p50, 960x720@100Hz)

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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant