Missing HDMI pixel clock frequencies on DG2 and MTL for 21:9 widescreen
When using ARC dGPU or Meteor Lake iGPU the max resolution is 1920x1080 on a widescreen HDMI display (max resolution 3440x1440), because some pixel clock frequencies are missing for HDMI in intel_snps_phy.c for those platforms:
The missing modelines > 1920x1080 based on my EDID are:
Modeline "3440x1440_49.99" 265.25 3440 3488 3520 3600 1440 1443 1453 1474 +hsync -vsync (73.7 kHz eP)
Modeline "3440x1440_29.99" 157.75 3440 3488 3520 3600 1440 1443 1453 1461 +hsync -vsync (43.8 kHz e)
Modeline "2560x1080_60.00" 185.58 2560 2624 2688 2784 1080 1083 1093 1111 -hsync -vsync (66.7 kHz e)
i915 with drm.debug=0xe shows all the missing HDMI pixel clock frequencies:
...
[ 3.702935] i915 0000:00:02.0: [drm:intel_hdmi_detect [i915]] [CONNECTOR:246:HDMI-A-2]
...
[ 3.731356] [drm:drm_mode_debug_printmodeline] Modeline "3440x1440": 50 265250 3440 3488 3520 3600 1440 1443 1453 1474 0x48 0x9
[ 3.731374] [drm:drm_mode_prune_invalid] Not using 3440x1440 mode: CLOCK_RANGE
[ 3.731384] [drm:drm_mode_debug_printmodeline] Modeline "3440x1440": 30 157750 3440 3488 3520 3600 1440 1443 1453 1461 0x40 0x9
[ 3.731397] [drm:drm_mode_prune_invalid] Not using 3440x1440 mode: CLOCK_RANGE
[ 3.731406] [drm:drm_mode_debug_printmodeline] Modeline "2560x1080": 60 185580 2560 2624 2688 2784 1080 1083 1093 1111 0x40 0xa
[ 3.731418] [drm:drm_mode_prune_invalid] Not using 2560x1080 mode: CLOCK_RANGE
[ 3.731427] [drm:drm_mode_debug_printmodeline] Modeline "1152x864": 60 81579 1152 1216 1336 1520 864 865 868 895 0x0 0x6
[ 3.731440] [drm:drm_mode_prune_invalid] Not using 1152x864 mode: CLOCK_RANGE
[ 3.731449] [drm:drm_mode_debug_printmodeline] Modeline "640x480": 60 25175 640 656 752 800 480 490 492 525 0x40 0xa
[ 3.731461] [drm:drm_mode_prune_invalid] Not using 640x480 mode: CLOCK_RANGE
[ 3.731470] [drm:drm_mode_debug_printmodeline] Modeline "640x480": 60 25175 640 656 752 800 480 490 492 525 0x40 0xa
[ 3.731481] [drm:drm_mode_prune_invalid] Not using 640x480 mode: CLOCK_RANGE
and those modlines cannot be used with manual setting (xrandr > 2560x1080@60):
[drm:intel_hdmi_compute_config [i915]] unsupported HDMI clock (185580 kHz), rejecting mode
I also tried the timing from #8008 (closed) (2560x1080@60 > 181.250 MHz) but it looks like https://patchwork.freedesktop.org/patch/526479/?series=115036&rev=1 was never merged.
[ 62.008688] i915 0000:00:02.0: [drm:intel_hdmi_compute_config [i915]] unsupported HDMI clock (181250 kHz), rejecting mode
[ 62.009590] i915 0000:00:02.0: [drm:intel_modeset_pipe_config [i915]] [ENCODER:245:DDI B/PHY B] config failure: -22
btw. tested on Linux 6.8.0-31-generic from Ubuntu 24.04 LTS, but I see the same on 6.9 kernel source:
static const struct intel_mpllb_state * const dg2_hdmi_tables[] = {
&dg2_hdmi_25_175,
&dg2_hdmi_27_0,
&dg2_hdmi_74_25,
&dg2_hdmi_148_5,
&dg2_hdmi_297,
&dg2_hdmi_594,
&dg2_hdmi_25200,
&dg2_hdmi_27027,
&dg2_hdmi_28320,
&dg2_hdmi_30240,
&dg2_hdmi_31500,
&dg2_hdmi_36000,
&dg2_hdmi_40000,
&dg2_hdmi_49500,
&dg2_hdmi_50000,
&dg2_hdmi_57284,
&dg2_hdmi_58000,
&dg2_hdmi_65000,
&dg2_hdmi_71000,
&dg2_hdmi_74176,
&dg2_hdmi_75000,
&dg2_hdmi_78750,
&dg2_hdmi_85500,
&dg2_hdmi_88750,
&dg2_hdmi_106500,
&dg2_hdmi_108000,
&dg2_hdmi_115500,
&dg2_hdmi_119000,
&dg2_hdmi_135000,
&dg2_hdmi_138500,
&dg2_hdmi_147160,
&dg2_hdmi_148352,
&dg2_hdmi_154000,
&dg2_hdmi_162000,
&dg2_hdmi_209800,
&dg2_hdmi_241500,
&dg2_hdmi_262750,
&dg2_hdmi_267300,
&dg2_hdmi_268500,
&dg2_hdmi_296703,
&dg2_hdmi_319890,
&dg2_hdmi_497750,
&dg2_hdmi_592000,
&dg2_hdmi_593407,
NULL,
};
please tell me if you need more information