Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [v3 0/2] drm/i915/audio: Add HDMI TMDS audio bandwidth check
@ 2026-08-12  6:54 Chaitanya Kumar Borah
  2026-08-12  6:54 ` [v3 1/2] drm/i915/hdmi: Move audio compute config after format selection Chaitanya Kumar Borah
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Chaitanya Kumar Borah @ 2026-08-12  6:54 UTC (permalink / raw)
  To: intel-xe, intel-gfx
  Cc: Chaitanya Kumar Borah, Kai Vehmanen, Ankit Nautiyal,
	Ville Syrjälä, Vinod Govindapillai, Mitul Golani

This series adds audio bandwidth validation for HDMI TMDS mode.
When the available hblank period cannot carry the required
audio packets for a given sample rate and channel count, the
corresponding frequencies are pruned from the ELD SADs before they reach
the audio driver.

Sample rates are pruned rather than channel counts because compressed
audio formats like Dolby Digital (AC-3) and DTS require a fixed channel
configuration to decode.

This improves on an earlier attempt which can be seen in [1]

[1] https://lore.kernel.org/intel-gfx/20230615063137.2219870-3-mitulkumar.ajitkumar.golani@intel.com/

v2:
 - Use DIV64_U64_ROUND_UP() instead of DIV_ROUND_UP_ULL() to avoid
   do_div() truncating the 64-bit divisor to 32-bit, which caused
   audio_packets_line to be wildly inflated and all SADs to be pruned.
 - Guard intel_audio_hdmi_eld_compute_config() against HDMI FRL modes.

v3:
 - Rebase

Cc: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Vinod Govindapillai <vinod.govindapillai@intel.com>
Cc: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>

Chaitanya Kumar Borah (2):
  drm/i915/hdmi: Move audio compute config after format selection
  drm/i915/audio: Prune ELD SADs based on HDMI audio bandwidth

 drivers/gpu/drm/i915/display/intel_audio.c | 149 +++++++++++++++++++++
 drivers/gpu/drm/i915/display/intel_hdmi.c  |   8 +-
 2 files changed, 153 insertions(+), 4 deletions(-)

-- 
2.50.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [v3 1/2] drm/i915/hdmi: Move audio compute config after format selection
  2026-08-12  6:54 [v3 0/2] drm/i915/audio: Add HDMI TMDS audio bandwidth check Chaitanya Kumar Borah
@ 2026-08-12  6:54 ` Chaitanya Kumar Borah
  2026-08-12  6:54 ` [v3 2/2] drm/i915/audio: Prune ELD SADs based on HDMI audio bandwidth Chaitanya Kumar Borah
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 7+ messages in thread
From: Chaitanya Kumar Borah @ 2026-08-12  6:54 UTC (permalink / raw)
  To: intel-xe, intel-gfx; +Cc: Chaitanya Kumar Borah

As we plan to add audio BW calculation in i915,
intel_audio_compute_config() would need the final output_format
and pipe_bpp to correctly determine audio bandwidth constraints.

Move the intel_audio_compute_config() call to after
intel_hdmi_compute_formats() returns, ensuring the audio
configuration is computed with the final parameters.

Signed-off-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
---
 drivers/gpu/drm/i915/display/intel_hdmi.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c
index 9b637e38a1a5..b6fa1a1558b8 100644
--- a/drivers/gpu/drm/i915/display/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
@@ -2399,10 +2399,6 @@ int intel_hdmi_compute_config(struct intel_encoder *encoder,
 	if (!intel_link_bw_compute_pipe_bpp(pipe_config))
 		return -EINVAL;
 
-	pipe_config->has_audio =
-		intel_hdmi_has_audio(encoder, pipe_config, conn_state) &&
-		intel_audio_compute_config(encoder, pipe_config, conn_state);
-
 	/*
 	 * Try to respect downstream TMDS clock limits first, if
 	 * that fails assume the user might know something we don't.
@@ -2417,6 +2413,10 @@ int intel_hdmi_compute_config(struct intel_encoder *encoder,
 		return ret;
 	}
 
+	pipe_config->has_audio =
+		intel_hdmi_has_audio(encoder, pipe_config, conn_state) &&
+		intel_audio_compute_config(encoder, pipe_config, conn_state);
+
 	ret = intel_pfit_compute_config(pipe_config, conn_state);
 	if (ret)
 		return ret;
-- 
2.50.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [v3 2/2] drm/i915/audio: Prune ELD SADs based on HDMI audio bandwidth
  2026-08-12  6:54 [v3 0/2] drm/i915/audio: Add HDMI TMDS audio bandwidth check Chaitanya Kumar Borah
  2026-08-12  6:54 ` [v3 1/2] drm/i915/hdmi: Move audio compute config after format selection Chaitanya Kumar Borah
@ 2026-08-12  6:54 ` Chaitanya Kumar Borah
  2026-08-12  8:21   ` Jani Nikula
  2026-08-12  8:07 ` ✓ i915.CI.BAT: success for drm/i915/audio: Add HDMI TMDS audio bandwidth check (rev3) Patchwork
  2026-08-12 10:15 ` ✗ i915.CI.Full: failure " Patchwork
  3 siblings, 1 reply; 7+ messages in thread
From: Chaitanya Kumar Borah @ 2026-08-12  6:54 UTC (permalink / raw)
  To: intel-xe, intel-gfx
  Cc: Chaitanya Kumar Borah, Kai Vehmanen, Ankit Nautiyal,
	Ville Syrjälä, Vinod Govindapillai, Mitul Golani

Add bandwidth check to determine whether a given audio sample rate and
channel count can be carried within the hblank period for HDMI TMDS mode.

Use this check to prune unsupported sample rates from each SAD in the
ELD during intel_audio_compute_config(). SADs with no remaining
supported rates are removed entirely.

Sample rates are pruned rather than channel counts, since compressed
formats (e.g. AC-3) are associated with specific channel counts.

v2:
 - Use DIV64_U64_ROUND_UP() instead of DIV_ROUND_UP_ULL() to avoid
   do_div() truncating the 64-bit divisor to 32-bit, which caused
   audio_packets_line to be wildly inflated and all SADs to be pruned.
 - Guard intel_audio_hdmi_eld_compute_config() against HDMI FRL modes.
   (Remove it when BW calculations for FRL are added.)

v3:
 - Rebase

BSpec: 68944
Cc: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Vinod Govindapillai <vinod.govindapillai@intel.com>
Cc: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
Assisted-by: GitHub-Copilot:claude-opus-4.6
Signed-off-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
---
 drivers/gpu/drm/i915/display/intel_audio.c | 149 +++++++++++++++++++++
 1 file changed, 149 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_audio.c b/drivers/gpu/drm/i915/display/intel_audio.c
index eae76e961105..d59acb390f8a 100644
--- a/drivers/gpu/drm/i915/display/intel_audio.c
+++ b/drivers/gpu/drm/i915/display/intel_audio.c
@@ -39,6 +39,7 @@
 #include "intel_display_types.h"
 #include "intel_display_wa.h"
 #include "intel_dp.h"
+#include "intel_hdmi.h"
 #include "intel_lpe_audio.h"
 
 /**
@@ -697,6 +698,151 @@ static void ibx_audio_codec_enable(struct intel_encoder *encoder,
 	mutex_unlock(&display->audio.mutex);
 }
 
+static bool hdmi_audio_rate_supported(const struct intel_crtc_state *crtc_state,
+				      int available_tmds,
+				      int audio_rate, int channels)
+{
+	const struct drm_display_mode *mode = &crtc_state->hw.adjusted_mode;
+	int pixel_clk_max_hz;
+	int audio_pkt_factor;
+	u64 audio_pkt_rate_x4_x1000;
+	int audio_packets_line;
+	int hblank_overhead;
+	int required_tmds;
+
+	/*
+	 * Part 2: Calculate TMDS clock cycles required for Audio Bandwidth
+	 *
+	 * Step 1: pixelclk_max = nominal_pixel_rate * (1 + 0.5%)
+	 * crtc_clock (kHz) * 1000 * 1.005 = crtc_clock * 1005 (Hz)
+	 */
+	pixel_clk_max_hz = mode->crtc_clock * 1005;
+
+	/*
+	 * Steps 3-4: Audio Packet Rate.
+	 *   R_AP = (audio_rate * AP + 2 * acrrate_max) * (1 + 1000 / 1e6)
+	 *        = (audio_rate * AP + 2*1500) * 1.001
+	 *
+	 * AP = 0.25 (2ch) or 1.0 (3-8ch); acrrate_max = 1500 Hz (max ACR
+	 * packet transmission rate per HDMI spec)
+	 *
+	 * Scale by 4*1000 to stay integer:
+	 *  x4: eliminates AP=0.25 -> audio_pkt_factor=1(2ch) or 4(3-8ch),
+	 *      scaled acrrate_max: 2 * 1500 * 4 = 12000
+	 *  x1000: eliminates 1.001 -> *1000*1.001 = *1001
+	 *
+	 * R_AP * 4 * 1000 = (audio_rate * audio_pkt_factor + 12000) * 1001
+	 */
+	audio_pkt_factor = (channels <= 2) ? 1 : 4;
+	audio_pkt_rate_x4_x1000 = (u64)(audio_rate * audio_pkt_factor + 12000) * 1001;
+
+	/*
+	 * Steps 2+5-6: Audio packets per line.
+	 *   AudioPackets_Line = CEIL[R_AP * htotal / f_pixelclk_max]
+	 *
+	 * With audio_pkt_rate_x4_x1000 = R_AP * 4 * 1000:
+	 *   = CEIL[audio_pkt_rate_x4_x1000 * htotal / (4 * 1000 * pixel_clk_max_hz)]
+	 */
+	audio_packets_line = DIV64_U64_ROUND_UP(audio_pkt_rate_x4_x1000 * mode->htotal,
+						(u64)4 * 1000 * pixel_clk_max_hz);
+
+	/*
+	 * Steps 7-9: Hblank overhead.
+	 * Standard:  2*dip_guardband + 2*control_period + video_guardband
+	 *          = 2*2 + 2*12 + 2 = 30
+	 * HDCP 1.x:  rekey_period + dip_guardband + control_period + video_guardband
+	 *          = 58 + 2 + 12 + 2 = 74
+	 *
+	 * Always use HDCP 1.x worst case (74) since HDCP can be toggled
+	 * via fastset without compute_config.
+	 */
+	hblank_overhead = 74;
+
+	/*
+	 * Step 10: Required TMDS cycles for Audio.
+	 *  32 TMDS clock cycles per audio packet.
+	 *   Hblank_audio_min = 32 * AudioPackets_Line + Hblank_overhead
+	 */
+	required_tmds = 32 * audio_packets_line + hblank_overhead;
+
+	/*
+	 * Part 3: audio supported if Hblank_audio_min <= TB_blank and
+	 * audio packets per line <= Maximum allowed packets per line (18)
+	 */
+
+	return required_tmds <= available_tmds && audio_packets_line <= 18;
+}
+
+static void intel_audio_hdmi_eld_compute_config(struct intel_crtc_state *crtc_state)
+{
+	static const int sad_freqs[] = {
+		32000, 44100, 48000, 88200, 96000, 176400, 192000
+	};
+	const struct drm_display_mode *mode = &crtc_state->hw.adjusted_mode;
+	int hblank = mode->htotal - mode->hdisplay;
+	int bpc = crtc_state->pipe_bpp / 3;
+	int ycbcr_420_divider = (crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR420) ? 2 : 1;
+	int available_tmds;
+	u8 *eld = crtc_state->eld;
+	int mnl = drm_eld_mnl(eld);
+	int sad_count = drm_eld_sad_count(eld);
+	int i = 0;
+
+	/* Only applies to HDMI TMDS, not FRL */
+	if (intel_hdmi_is_frl(crtc_state->port_clock))
+		return;
+	/*
+	 * Part 1: Calculate available TMDS clock cycles (TB_blank).
+	 *
+	 * TB_blank = CEILING[hblank * K_CD / K_420]
+	 *
+	 * K_CD = 1 for YCbCr4:2:2, bpc / 8 otherwise.
+	 * K_420 = 2 for YCbCr4:2:0, 1 otherwise.
+	 * Rearranged: CEILING[hblank * bpc / (8 * K_420)]
+	 *
+	 * TODO: As and when support for YCbCr4:2:2 is added, set bpc = 8
+	 * to achieve K_CD = 1
+	 */
+	available_tmds = DIV_ROUND_UP(hblank * bpc, 8 * ycbcr_420_divider);
+
+	while (i < sad_count) {
+		int sad_offset = DRM_ELD_CEA_SAD(mnl, i);
+		int channels = (eld[sad_offset] & 0x7) + 1;
+		u8 freq_mask = eld[sad_offset + 1];
+		u8 new_freq_mask = 0;
+		int bit;
+
+		for (bit = 0; bit < 7; bit++) {
+			if (!(freq_mask & BIT(bit)))
+				continue;
+			if (hdmi_audio_rate_supported(crtc_state, available_tmds,
+						      sad_freqs[bit], channels))
+				new_freq_mask |= BIT(bit);
+		}
+
+		eld[sad_offset + 1] = new_freq_mask;
+
+		if (!new_freq_mask) {
+			/* Remove this SAD by compacting the rest */
+			memmove(&eld[DRM_ELD_CEA_SAD(mnl, i)],
+				&eld[DRM_ELD_CEA_SAD(mnl, i + 1)],
+				(sad_count - i - 1) * 3);
+			memset(&eld[DRM_ELD_CEA_SAD(mnl, sad_count - 1)], 0, 3);
+			sad_count--;
+			continue;
+		}
+		i++;
+	}
+
+	/* Update SAD count in ELD header */
+	eld[DRM_ELD_SAD_COUNT_CONN_TYPE] &= ~DRM_ELD_SAD_COUNT_MASK;
+	eld[DRM_ELD_SAD_COUNT_CONN_TYPE] |= sad_count << DRM_ELD_SAD_COUNT_SHIFT;
+
+	/* Recalculate baseline ELD length (in dwords) */
+	eld[DRM_ELD_BASELINE_ELD_LEN] =
+		DIV_ROUND_UP(drm_eld_calc_baseline_block_size(eld), 4);
+}
+
 static
 bool intel_audio_needs_cpu_transcoder_id(const struct intel_crtc_state *crtc_state)
 {
@@ -725,6 +871,9 @@ bool intel_audio_compute_config(struct intel_encoder *encoder,
 	BUILD_BUG_ON(sizeof(crtc_state->eld) != sizeof(connector->eld));
 	memcpy(crtc_state->eld, connector->eld, sizeof(crtc_state->eld));
 
+	if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI))
+		intel_audio_hdmi_eld_compute_config(crtc_state);
+
 	crtc_state->eld[6] = drm_av_sync_delay(connector, adjusted_mode) / 2;
 	mutex_unlock(&connector->eld_mutex);
 
-- 
2.50.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* ✓ i915.CI.BAT: success for drm/i915/audio: Add HDMI TMDS audio bandwidth check (rev3)
  2026-08-12  6:54 [v3 0/2] drm/i915/audio: Add HDMI TMDS audio bandwidth check Chaitanya Kumar Borah
  2026-08-12  6:54 ` [v3 1/2] drm/i915/hdmi: Move audio compute config after format selection Chaitanya Kumar Borah
  2026-08-12  6:54 ` [v3 2/2] drm/i915/audio: Prune ELD SADs based on HDMI audio bandwidth Chaitanya Kumar Borah
@ 2026-08-12  8:07 ` Patchwork
  2026-08-12 10:15 ` ✗ i915.CI.Full: failure " Patchwork
  3 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2026-08-12  8:07 UTC (permalink / raw)
  To: Chaitanya Kumar Borah; +Cc: intel-gfx

[-- Attachment #1: Type: text/plain, Size: 2872 bytes --]

== Series Details ==

Series: drm/i915/audio: Add HDMI TMDS audio bandwidth check (rev3)
URL   : https://patchwork.freedesktop.org/series/169700/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_18981 -> Patchwork_169700v3
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/index.html

Participating hosts (37 -> 36)
------------------------------

  Additional (1): fi-glk-j4005 
  Missing    (2): bat-dg2-13 fi-snb-2520m 

Known issues
------------

  Here are the changes found in Patchwork_169700v3 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_huc_copy@huc-copy:
    - fi-glk-j4005:       NOTRUN -> [SKIP][1] ([i915#2190])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/fi-glk-j4005/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_swapping@basic:
    - fi-glk-j4005:       NOTRUN -> [SKIP][2] ([i915#4613]) +3 other tests skip
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/fi-glk-j4005/igt@gem_lmem_swapping@basic.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
    - fi-glk-j4005:       NOTRUN -> [SKIP][3] +11 other tests skip
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/fi-glk-j4005/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html

  
#### Possible fixes ####

  * igt@i915_selftest@live@perf:
    - fi-kbl-7567u:       [DMESG-WARN][4] ([i915#13735]) -> [PASS][5] +13 other tests pass
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/fi-kbl-7567u/igt@i915_selftest@live@perf.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/fi-kbl-7567u/igt@i915_selftest@live@perf.html

  * igt@kms_pm_rpm@basic-rte:
    - bat-rpls-4:         [DMESG-WARN][6] ([i915#13400]) -> [PASS][7]
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/bat-rpls-4/igt@kms_pm_rpm@basic-rte.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/bat-rpls-4/igt@kms_pm_rpm@basic-rte.html

  
  [i915#13400]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13400
  [i915#13735]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13735
  [i915#2190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2190
  [i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613


Build changes
-------------

  * Linux: CI_DRM_18981 -> Patchwork_169700v3

  CI-20190529: 20190529
  CI_DRM_18981: 022f0029796a06c77f3856313a38ea226a652264 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_9052: 9052
  Patchwork_169700v3: 022f0029796a06c77f3856313a38ea226a652264 @ git://anongit.freedesktop.org/gfx-ci/linux

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/index.html

[-- Attachment #2: Type: text/html, Size: 3593 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [v3 2/2] drm/i915/audio: Prune ELD SADs based on HDMI audio bandwidth
  2026-08-12  6:54 ` [v3 2/2] drm/i915/audio: Prune ELD SADs based on HDMI audio bandwidth Chaitanya Kumar Borah
@ 2026-08-12  8:21   ` Jani Nikula
  2026-08-12 12:56     ` Borah, Chaitanya Kumar
  0 siblings, 1 reply; 7+ messages in thread
From: Jani Nikula @ 2026-08-12  8:21 UTC (permalink / raw)
  To: Chaitanya Kumar Borah, intel-xe, intel-gfx
  Cc: Chaitanya Kumar Borah, Kai Vehmanen, Ankit Nautiyal,
	Ville Syrjälä, Vinod Govindapillai, Mitul Golani

On Wed, 12 Aug 2026, Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com> wrote:
> Add bandwidth check to determine whether a given audio sample rate and
> channel count can be carried within the hblank period for HDMI TMDS mode.
>
> Use this check to prune unsupported sample rates from each SAD in the
> ELD during intel_audio_compute_config(). SADs with no remaining
> supported rates are removed entirely.
>
> Sample rates are pruned rather than channel counts, since compressed
> formats (e.g. AC-3) are associated with specific channel counts.
>
> v2:
>  - Use DIV64_U64_ROUND_UP() instead of DIV_ROUND_UP_ULL() to avoid
>    do_div() truncating the 64-bit divisor to 32-bit, which caused
>    audio_packets_line to be wildly inflated and all SADs to be pruned.
>  - Guard intel_audio_hdmi_eld_compute_config() against HDMI FRL modes.
>    (Remove it when BW calculations for FRL are added.)
>
> v3:
>  - Rebase
>
> BSpec: 68944
> Cc: Kai Vehmanen <kai.vehmanen@linux.intel.com>
> Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Cc: Vinod Govindapillai <vinod.govindapillai@intel.com>
> Cc: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
> Assisted-by: GitHub-Copilot:claude-opus-4.6
> Signed-off-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_audio.c | 149 +++++++++++++++++++++
>  1 file changed, 149 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_audio.c b/drivers/gpu/drm/i915/display/intel_audio.c
> index eae76e961105..d59acb390f8a 100644
> --- a/drivers/gpu/drm/i915/display/intel_audio.c
> +++ b/drivers/gpu/drm/i915/display/intel_audio.c
> @@ -39,6 +39,7 @@
>  #include "intel_display_types.h"
>  #include "intel_display_wa.h"
>  #include "intel_dp.h"
> +#include "intel_hdmi.h"
>  #include "intel_lpe_audio.h"
>  
>  /**
> @@ -697,6 +698,151 @@ static void ibx_audio_codec_enable(struct intel_encoder *encoder,
>  	mutex_unlock(&display->audio.mutex);
>  }
>  
> +static bool hdmi_audio_rate_supported(const struct intel_crtc_state *crtc_state,
> +				      int available_tmds,
> +				      int audio_rate, int channels)
> +{
> +	const struct drm_display_mode *mode = &crtc_state->hw.adjusted_mode;
> +	int pixel_clk_max_hz;
> +	int audio_pkt_factor;
> +	u64 audio_pkt_rate_x4_x1000;
> +	int audio_packets_line;
> +	int hblank_overhead;
> +	int required_tmds;
> +
> +	/*
> +	 * Part 2: Calculate TMDS clock cycles required for Audio Bandwidth
> +	 *
> +	 * Step 1: pixelclk_max = nominal_pixel_rate * (1 + 0.5%)
> +	 * crtc_clock (kHz) * 1000 * 1.005 = crtc_clock * 1005 (Hz)
> +	 */
> +	pixel_clk_max_hz = mode->crtc_clock * 1005;
> +
> +	/*
> +	 * Steps 3-4: Audio Packet Rate.
> +	 *   R_AP = (audio_rate * AP + 2 * acrrate_max) * (1 + 1000 / 1e6)
> +	 *        = (audio_rate * AP + 2*1500) * 1.001
> +	 *
> +	 * AP = 0.25 (2ch) or 1.0 (3-8ch); acrrate_max = 1500 Hz (max ACR
> +	 * packet transmission rate per HDMI spec)
> +	 *
> +	 * Scale by 4*1000 to stay integer:
> +	 *  x4: eliminates AP=0.25 -> audio_pkt_factor=1(2ch) or 4(3-8ch),
> +	 *      scaled acrrate_max: 2 * 1500 * 4 = 12000
> +	 *  x1000: eliminates 1.001 -> *1000*1.001 = *1001
> +	 *
> +	 * R_AP * 4 * 1000 = (audio_rate * audio_pkt_factor + 12000) * 1001
> +	 */
> +	audio_pkt_factor = (channels <= 2) ? 1 : 4;
> +	audio_pkt_rate_x4_x1000 = (u64)(audio_rate * audio_pkt_factor + 12000) * 1001;
> +
> +	/*
> +	 * Steps 2+5-6: Audio packets per line.
> +	 *   AudioPackets_Line = CEIL[R_AP * htotal / f_pixelclk_max]
> +	 *
> +	 * With audio_pkt_rate_x4_x1000 = R_AP * 4 * 1000:
> +	 *   = CEIL[audio_pkt_rate_x4_x1000 * htotal / (4 * 1000 * pixel_clk_max_hz)]
> +	 */
> +	audio_packets_line = DIV64_U64_ROUND_UP(audio_pkt_rate_x4_x1000 * mode->htotal,
> +						(u64)4 * 1000 * pixel_clk_max_hz);
> +
> +	/*
> +	 * Steps 7-9: Hblank overhead.
> +	 * Standard:  2*dip_guardband + 2*control_period + video_guardband
> +	 *          = 2*2 + 2*12 + 2 = 30
> +	 * HDCP 1.x:  rekey_period + dip_guardband + control_period + video_guardband
> +	 *          = 58 + 2 + 12 + 2 = 74
> +	 *
> +	 * Always use HDCP 1.x worst case (74) since HDCP can be toggled
> +	 * via fastset without compute_config.
> +	 */
> +	hblank_overhead = 74;
> +
> +	/*
> +	 * Step 10: Required TMDS cycles for Audio.
> +	 *  32 TMDS clock cycles per audio packet.
> +	 *   Hblank_audio_min = 32 * AudioPackets_Line + Hblank_overhead
> +	 */
> +	required_tmds = 32 * audio_packets_line + hblank_overhead;
> +
> +	/*
> +	 * Part 3: audio supported if Hblank_audio_min <= TB_blank and
> +	 * audio packets per line <= Maximum allowed packets per line (18)
> +	 */
> +
> +	return required_tmds <= available_tmds && audio_packets_line <= 18;
> +}
> +
> +static void intel_audio_hdmi_eld_compute_config(struct intel_crtc_state *crtc_state)
> +{
> +	static const int sad_freqs[] = {
> +		32000, 44100, 48000, 88200, 96000, 176400, 192000
> +	};
> +	const struct drm_display_mode *mode = &crtc_state->hw.adjusted_mode;
> +	int hblank = mode->htotal - mode->hdisplay;
> +	int bpc = crtc_state->pipe_bpp / 3;
> +	int ycbcr_420_divider = (crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR420) ? 2 : 1;
> +	int available_tmds;
> +	u8 *eld = crtc_state->eld;
> +	int mnl = drm_eld_mnl(eld);
> +	int sad_count = drm_eld_sad_count(eld);
> +	int i = 0;
> +
> +	/* Only applies to HDMI TMDS, not FRL */
> +	if (intel_hdmi_is_frl(crtc_state->port_clock))
> +		return;
> +	/*
> +	 * Part 1: Calculate available TMDS clock cycles (TB_blank).
> +	 *
> +	 * TB_blank = CEILING[hblank * K_CD / K_420]
> +	 *
> +	 * K_CD = 1 for YCbCr4:2:2, bpc / 8 otherwise.
> +	 * K_420 = 2 for YCbCr4:2:0, 1 otherwise.
> +	 * Rearranged: CEILING[hblank * bpc / (8 * K_420)]
> +	 *
> +	 * TODO: As and when support for YCbCr4:2:2 is added, set bpc = 8
> +	 * to achieve K_CD = 1
> +	 */
> +	available_tmds = DIV_ROUND_UP(hblank * bpc, 8 * ycbcr_420_divider);
> +
> +	while (i < sad_count) {
> +		int sad_offset = DRM_ELD_CEA_SAD(mnl, i);
> +		int channels = (eld[sad_offset] & 0x7) + 1;
> +		u8 freq_mask = eld[sad_offset + 1];
> +		u8 new_freq_mask = 0;
> +		int bit;
> +
> +		for (bit = 0; bit < 7; bit++) {
> +			if (!(freq_mask & BIT(bit)))
> +				continue;
> +			if (hdmi_audio_rate_supported(crtc_state, available_tmds,
> +						      sad_freqs[bit], channels))
> +				new_freq_mask |= BIT(bit);
> +		}
> +
> +		eld[sad_offset + 1] = new_freq_mask;
> +
> +		if (!new_freq_mask) {
> +			/* Remove this SAD by compacting the rest */
> +			memmove(&eld[DRM_ELD_CEA_SAD(mnl, i)],
> +				&eld[DRM_ELD_CEA_SAD(mnl, i + 1)],
> +				(sad_count - i - 1) * 3);

What if there is no SAD i + 1?

> +			memset(&eld[DRM_ELD_CEA_SAD(mnl, sad_count - 1)], 0, 3);
> +			sad_count--;
> +			continue;
> +		}
> +		i++;

I believe it would all be more readable and robust if you used a for
loop to go through all the sads, without modifing the end conditions
while iterating, and used a separate destination index for when you have
to move sads over. And only moved the sads one at a time as you iterate,
not all the time.

Sometimes decrementing the sad_count and sometimes incrementing i makes
this difficult to reason.

> +	}
> +
> +	/* Update SAD count in ELD header */
> +	eld[DRM_ELD_SAD_COUNT_CONN_TYPE] &= ~DRM_ELD_SAD_COUNT_MASK;
> +	eld[DRM_ELD_SAD_COUNT_CONN_TYPE] |= sad_count << DRM_ELD_SAD_COUNT_SHIFT;
> +
> +	/* Recalculate baseline ELD length (in dwords) */
> +	eld[DRM_ELD_BASELINE_ELD_LEN] =
> +		DIV_ROUND_UP(drm_eld_calc_baseline_block_size(eld), 4);
> +}
> +
>  static
>  bool intel_audio_needs_cpu_transcoder_id(const struct intel_crtc_state *crtc_state)
>  {
> @@ -725,6 +871,9 @@ bool intel_audio_compute_config(struct intel_encoder *encoder,
>  	BUILD_BUG_ON(sizeof(crtc_state->eld) != sizeof(connector->eld));
>  	memcpy(crtc_state->eld, connector->eld, sizeof(crtc_state->eld));
>  
> +	if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI))
> +		intel_audio_hdmi_eld_compute_config(crtc_state);
> +
>  	crtc_state->eld[6] = drm_av_sync_delay(connector, adjusted_mode) / 2;
>  	mutex_unlock(&connector->eld_mutex);

-- 
Jani Nikula, Intel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* ✗ i915.CI.Full: failure for drm/i915/audio: Add HDMI TMDS audio bandwidth check (rev3)
  2026-08-12  6:54 [v3 0/2] drm/i915/audio: Add HDMI TMDS audio bandwidth check Chaitanya Kumar Borah
                   ` (2 preceding siblings ...)
  2026-08-12  8:07 ` ✓ i915.CI.BAT: success for drm/i915/audio: Add HDMI TMDS audio bandwidth check (rev3) Patchwork
@ 2026-08-12 10:15 ` Patchwork
  3 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2026-08-12 10:15 UTC (permalink / raw)
  To: Chaitanya Kumar Borah; +Cc: intel-gfx

[-- Attachment #1: Type: text/plain, Size: 91179 bytes --]

== Series Details ==

Series: drm/i915/audio: Add HDMI TMDS audio bandwidth check (rev3)
URL   : https://patchwork.freedesktop.org/series/169700/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_18981_full -> Patchwork_169700v3_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_169700v3_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_169700v3_full, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Participating hosts (10 -> 10)
------------------------------

  No changes in participating hosts

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_169700v3_full:

### IGT changes ###

#### Possible regressions ####

  * igt@kms_flip@2x-plain-flip-ts-check:
    - shard-snb:          [PASS][1] -> [INCOMPLETE][2] +1 other test incomplete
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-snb5/igt@kms_flip@2x-plain-flip-ts-check.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-snb7/igt@kms_flip@2x-plain-flip-ts-check.html

  
Known issues
------------

  Here are the changes found in Patchwork_169700v3_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@device_reset@unbind-cold-reset-rebind:
    - shard-rkl:          NOTRUN -> [SKIP][3] ([i915#11078])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-7/igt@device_reset@unbind-cold-reset-rebind.html

  * igt@gem_basic@multigpu-create-close:
    - shard-tglu-1:       NOTRUN -> [SKIP][4] ([i915#7697])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@gem_basic@multigpu-create-close.html

  * igt@gem_ccs@block-multicopy-compressed:
    - shard-tglu:         NOTRUN -> [SKIP][5] ([i915#9323])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-6/igt@gem_ccs@block-multicopy-compressed.html

  * igt@gem_ccs@suspend-resume:
    - shard-tglu-1:       NOTRUN -> [SKIP][6] ([i915#9323])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@gem_ccs@suspend-resume.html

  * igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-smem-lmem0:
    - shard-dg2:          [PASS][7] -> [INCOMPLETE][8] ([i915#13356] / [i915#16348])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-dg2-1/igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-smem-lmem0.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-dg2-4/igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-smem-lmem0.html

  * igt@gem_create@create-ext-cpu-access-sanity-check:
    - shard-tglu:         NOTRUN -> [SKIP][9] ([i915#6335])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-5/igt@gem_create@create-ext-cpu-access-sanity-check.html

  * igt@gem_ctx_isolation@preservation-s3:
    - shard-rkl:          [PASS][10] -> [INCOMPLETE][11] ([i915#13356]) +1 other test incomplete
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-2/igt@gem_ctx_isolation@preservation-s3.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@gem_ctx_isolation@preservation-s3.html

  * igt@gem_exec_balancer@parallel-contexts:
    - shard-tglu-1:       NOTRUN -> [SKIP][12] ([i915#4525]) +1 other test skip
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@gem_exec_balancer@parallel-contexts.html

  * igt@gem_exec_balancer@parallel-ordering:
    - shard-tglu:         NOTRUN -> [SKIP][13] ([i915#4525])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-6/igt@gem_exec_balancer@parallel-ordering.html

  * igt@gem_exec_capture@capture-invisible:
    - shard-glk10:        NOTRUN -> [SKIP][14] ([i915#6334]) +1 other test skip
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-glk10/igt@gem_exec_capture@capture-invisible.html

  * igt@gem_exec_reloc@basic-wc-noreloc:
    - shard-rkl:          NOTRUN -> [SKIP][15] ([i915#3281])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-7/igt@gem_exec_reloc@basic-wc-noreloc.html

  * igt@gem_huc_copy@huc-copy:
    - shard-tglu-1:       NOTRUN -> [SKIP][16] ([i915#2190])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_swapping@heavy-multi:
    - shard-rkl:          NOTRUN -> [SKIP][17] ([i915#4613])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-7/igt@gem_lmem_swapping@heavy-multi.html

  * igt@gem_lmem_swapping@parallel-random-verify:
    - shard-tglu:         NOTRUN -> [SKIP][18] ([i915#4613])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-5/igt@gem_lmem_swapping@parallel-random-verify.html

  * igt@gem_lmem_swapping@smem-oom:
    - shard-glk:          NOTRUN -> [SKIP][19] ([i915#4613]) +1 other test skip
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-glk2/igt@gem_lmem_swapping@smem-oom.html

  * igt@gem_lmem_swapping@verify-ccs:
    - shard-tglu-1:       NOTRUN -> [SKIP][20] ([i915#4613])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@gem_lmem_swapping@verify-ccs.html

  * igt@gem_partial_pwrite_pread@writes-after-reads-snoop:
    - shard-rkl:          NOTRUN -> [SKIP][21] ([i915#3282]) +1 other test skip
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-7/igt@gem_partial_pwrite_pread@writes-after-reads-snoop.html

  * igt@gem_pwrite@basic-exhaustion:
    - shard-tglu:         NOTRUN -> [WARN][22] ([i915#2658])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-6/igt@gem_pwrite@basic-exhaustion.html

  * igt@gem_pxp@hw-rejects-pxp-buffer:
    - shard-tglu:         NOTRUN -> [SKIP][23] ([i915#13398])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-6/igt@gem_pxp@hw-rejects-pxp-buffer.html

  * igt@gem_userptr_blits@create-destroy-unsync:
    - shard-tglu:         NOTRUN -> [SKIP][24] ([i915#3297]) +1 other test skip
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-5/igt@gem_userptr_blits@create-destroy-unsync.html

  * igt@gem_userptr_blits@unsync-overlap:
    - shard-rkl:          NOTRUN -> [SKIP][25] ([i915#3297])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-7/igt@gem_userptr_blits@unsync-overlap.html

  * igt@gem_workarounds@suspend-resume-context:
    - shard-rkl:          [PASS][26] -> [ABORT][27] ([i915#15131])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-2/igt@gem_workarounds@suspend-resume-context.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-1/igt@gem_workarounds@suspend-resume-context.html
    - shard-glk11:        NOTRUN -> [INCOMPLETE][28] ([i915#13356])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-glk11/igt@gem_workarounds@suspend-resume-context.html

  * igt@gen9_exec_parse@allowed-single:
    - shard-glk11:        NOTRUN -> [ABORT][29] ([i915#5566])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-glk11/igt@gen9_exec_parse@allowed-single.html

  * igt@gen9_exec_parse@bb-chained:
    - shard-rkl:          NOTRUN -> [SKIP][30] ([i915#2527])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-7/igt@gen9_exec_parse@bb-chained.html

  * igt@gen9_exec_parse@cmd-crossing-page:
    - shard-tglu:         NOTRUN -> [SKIP][31] ([i915#2527] / [i915#2856]) +3 other tests skip
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-8/igt@gen9_exec_parse@cmd-crossing-page.html

  * igt@gen9_exec_parse@unaligned-access:
    - shard-tglu-1:       NOTRUN -> [SKIP][32] ([i915#2527] / [i915#2856]) +1 other test skip
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@gen9_exec_parse@unaligned-access.html

  * igt@i915_module_load@fault-injection@intel_connector_register:
    - shard-glk11:        NOTRUN -> [ABORT][33] ([i915#15342]) +1 other test abort
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-glk11/igt@i915_module_load@fault-injection@intel_connector_register.html

  * igt@i915_pm_freq_api@freq-basic-api:
    - shard-tglu-1:       NOTRUN -> [SKIP][34] ([i915#8399]) +1 other test skip
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@i915_pm_freq_api@freq-basic-api.html

  * igt@i915_pm_rc6_residency@rc6-idle:
    - shard-tglu-1:       NOTRUN -> [SKIP][35] ([i915#14498])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@i915_pm_rc6_residency@rc6-idle.html

  * igt@i915_query@hwconfig_table:
    - shard-tglu-1:       NOTRUN -> [SKIP][36] ([i915#6245])
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@i915_query@hwconfig_table.html

  * igt@i915_query@query-topology-unsupported:
    - shard-tglu:         NOTRUN -> [SKIP][37] ([i915#16079])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-8/igt@i915_query@query-topology-unsupported.html

  * igt@kms_addfb_basic@clobberred-modifier:
    - shard-mtlp:         NOTRUN -> [SKIP][38] ([i915#4212])
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-mtlp-2/igt@kms_addfb_basic@clobberred-modifier.html

  * igt@kms_big_fb@4-tiled-addfb:
    - shard-tglu-1:       NOTRUN -> [SKIP][39] ([i915#5286]) +3 other tests skip
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_big_fb@4-tiled-addfb.html

  * igt@kms_big_fb@4-tiled-addfb-size-offset-overflow:
    - shard-tglu:         NOTRUN -> [SKIP][40] ([i915#5286]) +5 other tests skip
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-6/igt@kms_big_fb@4-tiled-addfb-size-offset-overflow.html

  * igt@kms_big_fb@linear-64bpp-rotate-90:
    - shard-rkl:          NOTRUN -> [SKIP][41] ([i915#3638])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-7/igt@kms_big_fb@linear-64bpp-rotate-90.html

  * igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-0-hflip:
    - shard-tglu:         NOTRUN -> [SKIP][42] ([i915#3828])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-6/igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-0-hflip.html

  * igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-0-hflip:
    - shard-tglu-1:       NOTRUN -> [SKIP][43] ([i915#3828])
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-0-hflip.html

  * igt@kms_big_fb@yf-tiled-8bpp-rotate-90:
    - shard-mtlp:         NOTRUN -> [SKIP][44] +1 other test skip
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-mtlp-2/igt@kms_big_fb@yf-tiled-8bpp-rotate-90.html

  * igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs-cc@pipe-a-hdmi-a-4:
    - shard-dg1:          NOTRUN -> [SKIP][45] ([i915#4423] / [i915#6095])
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-dg1-17/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs-cc@pipe-a-hdmi-a-4.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs:
    - shard-rkl:          NOTRUN -> [SKIP][46] ([i915#12313])
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-7/igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs-cc@pipe-b-hdmi-a-4:
    - shard-dg1:          NOTRUN -> [SKIP][47] ([i915#6095]) +182 other tests skip
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-dg1-17/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs-cc@pipe-b-hdmi-a-4.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs:
    - shard-tglu-1:       NOTRUN -> [SKIP][48] ([i915#6095]) +49 other tests skip
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs:
    - shard-tglu:         NOTRUN -> [SKIP][49] ([i915#12313])
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-5/igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs.html

  * igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [SKIP][50] ([i915#10307] / [i915#6095]) +76 other tests skip
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-dg2-8/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-3.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs:
    - shard-tglu-1:       NOTRUN -> [SKIP][51] ([i915#12805]) +1 other test skip
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-1:
    - shard-dg2:          NOTRUN -> [SKIP][52] ([i915#6095]) +3 other tests skip
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-dg2-4/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-1.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs@pipe-b-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][53] ([i915#6095]) +37 other tests skip
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-7/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs@pipe-b-hdmi-a-2.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-1:
    - shard-glk:          NOTRUN -> [SKIP][54] +154 other tests skip
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-glk2/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-1.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs-cc@pipe-d-hdmi-a-1:
    - shard-dg2:          NOTRUN -> [SKIP][55] ([i915#10307] / [i915#10434] / [i915#6095]) +2 other tests skip
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-dg2-4/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs-cc@pipe-d-hdmi-a-1.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs@pipe-d-hdmi-a-1:
    - shard-tglu:         NOTRUN -> [SKIP][56] ([i915#6095]) +59 other tests skip
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-6/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs@pipe-d-hdmi-a-1.html

  * igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs:
    - shard-tglu-1:       NOTRUN -> [SKIP][57] ([i915#12313])
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs.html

  * igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs-cc@pipe-c-hdmi-a-1:
    - shard-rkl:          NOTRUN -> [SKIP][58] ([i915#14098] / [i915#6095]) +19 other tests skip
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-5/igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs-cc@pipe-c-hdmi-a-1.html

  * igt@kms_cdclk@plane-scaling@pipe-c-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [SKIP][59] ([i915#13783]) +3 other tests skip
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-dg2-7/igt@kms_cdclk@plane-scaling@pipe-c-hdmi-a-3.html

  * igt@kms_chamelium_audio@dp-audio-after-suspend:
    - shard-tglu:         NOTRUN -> [SKIP][60] ([i915#11151]) +1 other test skip
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-6/igt@kms_chamelium_audio@dp-audio-after-suspend.html

  * igt@kms_chamelium_color_pipeline@plane-lut1d:
    - shard-tglu-1:       NOTRUN -> [SKIP][61] ([i915#16471])
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_chamelium_color_pipeline@plane-lut1d.html

  * igt@kms_chamelium_color_pipeline@plane-lut1d-post-ctm3x4:
    - shard-tglu:         NOTRUN -> [SKIP][62] ([i915#16471])
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-6/igt@kms_chamelium_color_pipeline@plane-lut1d-post-ctm3x4.html

  * igt@kms_chamelium_frames@hdmi-crc-fast:
    - shard-rkl:          NOTRUN -> [SKIP][63] ([i915#11151] / [i915#7828])
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-7/igt@kms_chamelium_frames@hdmi-crc-fast.html

  * igt@kms_chamelium_hpd@dp-hpd-enable-disable-mode:
    - shard-tglu-1:       NOTRUN -> [SKIP][64] ([i915#11151] / [i915#7828]) +6 other tests skip
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_chamelium_hpd@dp-hpd-enable-disable-mode.html

  * igt@kms_chamelium_hpd@dp-hpd-storm-disable:
    - shard-tglu:         NOTRUN -> [SKIP][65] ([i915#11151] / [i915#7828]) +5 other tests skip
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-6/igt@kms_chamelium_hpd@dp-hpd-storm-disable.html

  * igt@kms_content_protection@atomic-dpms:
    - shard-tglu:         NOTRUN -> [SKIP][66] ([i915#15865]) +1 other test skip
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-5/igt@kms_content_protection@atomic-dpms.html

  * igt@kms_content_protection@dp-mst-lic-type-0:
    - shard-tglu-1:       NOTRUN -> [SKIP][67] ([i915#15330] / [i915#3116] / [i915#3299])
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_content_protection@dp-mst-lic-type-0.html

  * igt@kms_content_protection@dp-mst-type-0-hdcp14:
    - shard-tglu:         NOTRUN -> [SKIP][68] ([i915#15330])
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-6/igt@kms_content_protection@dp-mst-type-0-hdcp14.html

  * igt@kms_content_protection@mei-interface:
    - shard-tglu-1:       NOTRUN -> [SKIP][69] ([i915#15865]) +2 other tests skip
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_content_protection@mei-interface.html

  * igt@kms_cursor_crc@cursor-random-256x85@pipe-a-hdmi-a-1:
    - shard-tglu:         NOTRUN -> [FAIL][70] ([i915#13566]) +1 other test fail
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-5/igt@kms_cursor_crc@cursor-random-256x85@pipe-a-hdmi-a-1.html

  * igt@kms_cursor_crc@cursor-random-256x85@pipe-a-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [FAIL][71] ([i915#13566]) +2 other tests fail
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-4/igt@kms_cursor_crc@cursor-random-256x85@pipe-a-hdmi-a-2.html

  * igt@kms_cursor_crc@cursor-random-512x512:
    - shard-tglu-1:       NOTRUN -> [SKIP][72] ([i915#13049]) +1 other test skip
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_cursor_crc@cursor-random-512x512.html

  * igt@kms_cursor_crc@cursor-random-max-size:
    - shard-tglu:         NOTRUN -> [SKIP][73] ([i915#3555]) +1 other test skip
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-6/igt@kms_cursor_crc@cursor-random-max-size.html

  * igt@kms_cursor_crc@cursor-rapid-movement-32x10:
    - shard-tglu-1:       NOTRUN -> [SKIP][74] ([i915#3555]) +4 other tests skip
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_cursor_crc@cursor-rapid-movement-32x10.html

  * igt@kms_cursor_crc@cursor-rapid-movement-512x170:
    - shard-tglu:         NOTRUN -> [SKIP][75] ([i915#13049])
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-8/igt@kms_cursor_crc@cursor-rapid-movement-512x170.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
    - shard-tglu-1:       NOTRUN -> [SKIP][76] ([i915#4103]) +2 other tests skip
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html

  * igt@kms_cursor_legacy@basic-flip-after-cursor-atomic:
    - shard-dg1:          [PASS][77] -> [DMESG-WARN][78] ([i915#4423]) +2 other tests dmesg-warn
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-dg1-13/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-dg1-18/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html

  * igt@kms_dither@fb-8bpc-vs-panel-6bpc:
    - shard-tglu:         NOTRUN -> [SKIP][79] ([i915#1769] / [i915#3555] / [i915#3804])
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-8/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html

  * igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-1:
    - shard-rkl:          NOTRUN -> [SKIP][80] ([i915#3804])
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-8/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-1.html
    - shard-tglu:         NOTRUN -> [SKIP][81] ([i915#3804])
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-8/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-1.html

  * igt@kms_dp_aux_dev@basic:
    - shard-tglu:         NOTRUN -> [SKIP][82] ([i915#1257])
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-6/igt@kms_dp_aux_dev@basic.html

  * igt@kms_dp_link_training@non-uhbr-mst:
    - shard-tglu-1:       NOTRUN -> [SKIP][83] ([i915#13749])
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_dp_link_training@non-uhbr-mst.html

  * igt@kms_dp_linktrain_fallback@dsc-fallback:
    - shard-tglu-1:       NOTRUN -> [SKIP][84] ([i915#13707])
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_dp_linktrain_fallback@dsc-fallback.html

  * igt@kms_dsc@dsc-basic-bigjoiner:
    - shard-rkl:          NOTRUN -> [SKIP][85] ([i915#16361])
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-7/igt@kms_dsc@dsc-basic-bigjoiner.html

  * igt@kms_dsc@dsc-fractional-bpp:
    - shard-tglu-1:       NOTRUN -> [SKIP][86] ([i915#16361]) +3 other tests skip
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_dsc@dsc-fractional-bpp.html

  * igt@kms_dsc@dsc-with-output-formats:
    - shard-tglu:         NOTRUN -> [SKIP][87] ([i915#16361]) +3 other tests skip
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-6/igt@kms_dsc@dsc-with-output-formats.html

  * igt@kms_fbcon_fbt@psr:
    - shard-tglu:         NOTRUN -> [SKIP][88] ([i915#16680])
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-5/igt@kms_fbcon_fbt@psr.html

  * igt@kms_feature_discovery@chamelium:
    - shard-tglu:         NOTRUN -> [SKIP][89] ([i915#2065])
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-5/igt@kms_feature_discovery@chamelium.html

  * igt@kms_feature_discovery@vrr:
    - shard-tglu-1:       NOTRUN -> [SKIP][90] ([i915#16600])
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_feature_discovery@vrr.html

  * igt@kms_flip@2x-blocking-wf_vblank:
    - shard-tglu-1:       NOTRUN -> [SKIP][91] ([i915#3637] / [i915#9934]) +3 other tests skip
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_flip@2x-blocking-wf_vblank.html

  * igt@kms_flip@2x-plain-flip-fb-recreate-interruptible:
    - shard-tglu:         NOTRUN -> [SKIP][92] ([i915#3637] / [i915#9934]) +4 other tests skip
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-5/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible:
    - shard-rkl:          [PASS][93] -> [FAIL][94] ([i915#13027]) +1 other test fail
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@kms_flip@flip-vs-expired-vblank-interruptible.html

  * igt@kms_flip@flip-vs-suspend:
    - shard-glk:          NOTRUN -> [INCOMPLETE][95] ([i915#12745] / [i915#4839] / [i915#6113])
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-glk1/igt@kms_flip@flip-vs-suspend.html

  * igt@kms_flip@flip-vs-suspend@a-hdmi-a1:
    - shard-glk:          NOTRUN -> [INCOMPLETE][96] ([i915#12745] / [i915#6113])
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-glk1/igt@kms_flip@flip-vs-suspend@a-hdmi-a1.html

  * igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-upscaling:
    - shard-tglu-1:       NOTRUN -> [SKIP][97] ([i915#15643]) +2 other tests skip
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-upscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling:
    - shard-tglu:         NOTRUN -> [SKIP][98] ([i915#15643]) +4 other tests skip
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-6/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling.html

  * igt@kms_frontbuffer_tracking@fbchdr-1p-indfb-fliptrack-mmap-gtt:
    - shard-tglu-1:       NOTRUN -> [SKIP][99] ([i915#15989]) +15 other tests skip
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_frontbuffer_tracking@fbchdr-1p-indfb-fliptrack-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-spr-indfb-draw-render:
    - shard-rkl:          [PASS][100] -> [SKIP][101] ([i915#15989]) +6 other tests skip
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-spr-indfb-draw-render.html
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-spr-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbchdr-1p-shrfb-fliptrack-mmap-gtt:
    - shard-tglu:         NOTRUN -> [SKIP][102] ([i915#15989]) +18 other tests skip
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-6/igt@kms_frontbuffer_tracking@fbchdr-1p-shrfb-fliptrack-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-indfb-msflip-blt:
    - shard-mtlp:         NOTRUN -> [SKIP][103] ([i915#15991]) +1 other test skip
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-mtlp-2/igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-indfb-msflip-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw:
    - shard-rkl:          NOTRUN -> [SKIP][104] ([i915#15102] / [i915#3023]) +5 other tests skip
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-7/igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-mmap-wc:
    - shard-tglu:         NOTRUN -> [SKIP][105] +84 other tests skip
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-fullscreen:
    - shard-mtlp:         NOTRUN -> [SKIP][106] ([i915#15991] / [i915#1825]) +1 other test skip
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-mtlp-2/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-fullscreen.html

  * igt@kms_frontbuffer_tracking@fbcpsr-tiling-4:
    - shard-tglu-1:       NOTRUN -> [SKIP][107] ([i915#5439])
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_frontbuffer_tracking@fbcpsr-tiling-4.html

  * igt@kms_frontbuffer_tracking@fbcpsrhdr-2p-primscrn-cur-indfb-draw-mmap-wc:
    - shard-glk10:        NOTRUN -> [SKIP][108] +228 other tests skip
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-glk10/igt@kms_frontbuffer_tracking@fbcpsrhdr-2p-primscrn-cur-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsrhdr-rgb101010-draw-mmap-cpu:
    - shard-rkl:          NOTRUN -> [SKIP][109] ([i915#15102]) +2 other tests skip
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-7/igt@kms_frontbuffer_tracking@fbcpsrhdr-rgb101010-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@hdr-1p-primscrn-pri-shrfb-draw-mmap-cpu:
    - shard-rkl:          NOTRUN -> [SKIP][110] ([i915#15989]) +4 other tests skip
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-7/igt@kms_frontbuffer_tracking@hdr-1p-primscrn-pri-shrfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@hdr-2p-primscrn-shrfb-msflip-blt:
    - shard-tglu-1:       NOTRUN -> [SKIP][111] +77 other tests skip
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_frontbuffer_tracking@hdr-2p-primscrn-shrfb-msflip-blt.html

  * igt@kms_frontbuffer_tracking@pipe-fbc-rte:
    - shard-tglu-1:       NOTRUN -> [SKIP][112] ([i915#9766])
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_frontbuffer_tracking@pipe-fbc-rte.html

  * igt@kms_frontbuffer_tracking@psr-shrfb-scaledprimary:
    - shard-tglu:         NOTRUN -> [SKIP][113] ([i915#15102]) +39 other tests skip
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-6/igt@kms_frontbuffer_tracking@psr-shrfb-scaledprimary.html

  * igt@kms_frontbuffer_tracking@psrhdr-1p-offscreen-pri-indfb-draw-mmap-cpu:
    - shard-mtlp:         NOTRUN -> [SKIP][114] ([i915#15989]) +2 other tests skip
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-mtlp-2/igt@kms_frontbuffer_tracking@psrhdr-1p-offscreen-pri-indfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@psrhdr-1p-offscreen-pri-indfb-draw-mmap-wc:
    - shard-tglu-1:       NOTRUN -> [SKIP][115] ([i915#15102]) +34 other tests skip
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_frontbuffer_tracking@psrhdr-1p-offscreen-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-shrfb-plflip-blt:
    - shard-rkl:          NOTRUN -> [SKIP][116] +15 other tests skip
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-7/igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-shrfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@psrhdr-rgb565-draw-mmap-gtt:
    - shard-glk11:        NOTRUN -> [SKIP][117] +140 other tests skip
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-glk11/igt@kms_frontbuffer_tracking@psrhdr-rgb565-draw-mmap-gtt.html

  * igt@kms_hdmi_inject@inject-4k:
    - shard-mtlp:         [PASS][118] -> [SKIP][119] ([i915#15725])
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-mtlp-4/igt@kms_hdmi_inject@inject-4k.html
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-mtlp-1/igt@kms_hdmi_inject@inject-4k.html

  * igt@kms_hdr@brightness-with-hdr:
    - shard-tglu-1:       NOTRUN -> [SKIP][120] ([i915#12713])
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_hdr@brightness-with-hdr.html

  * igt@kms_hdr@invalid-metadata-sizes:
    - shard-rkl:          NOTRUN -> [SKIP][121] ([i915#16644] / [i915#3555] / [i915#8228])
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-7/igt@kms_hdr@invalid-metadata-sizes.html

  * igt@kms_hdr@static-swap:
    - shard-tglu:         NOTRUN -> [SKIP][122] ([i915#3555] / [i915#8228]) +1 other test skip
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-8/igt@kms_hdr@static-swap.html

  * igt@kms_hdr@static-toggle-dpms:
    - shard-rkl:          [PASS][123] -> [SKIP][124] ([i915#16644] / [i915#3555] / [i915#8228])
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@kms_hdr@static-toggle-dpms.html
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@kms_hdr@static-toggle-dpms.html

  * igt@kms_joiner@basic-max-non-joiner:
    - shard-tglu-1:       NOTRUN -> [SKIP][125] ([i915#13688])
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_joiner@basic-max-non-joiner.html

  * igt@kms_joiner@invalid-modeset-force-ultra-joiner:
    - shard-rkl:          NOTRUN -> [SKIP][126] ([i915#15458])
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-7/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html

  * igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner:
    - shard-tglu:         NOTRUN -> [SKIP][127] ([i915#15638] / [i915#15722])
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-6/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html

  * igt@kms_pipe_stress@stress-xrgb8888-untiled:
    - shard-glk11:        NOTRUN -> [DMESG-WARN][128] ([i915#118])
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-glk11/igt@kms_pipe_stress@stress-xrgb8888-untiled.html

  * igt@kms_pipe_stress@stress-xrgb8888-xtiled:
    - shard-glk:          NOTRUN -> [DMESG-FAIL][129] ([i915#118])
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-glk2/igt@kms_pipe_stress@stress-xrgb8888-xtiled.html

  * igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier-source-clamping:
    - shard-tglu-1:       NOTRUN -> [SKIP][130] ([i915#15709]) +1 other test skip
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier-source-clamping.html

  * igt@kms_plane@pixel-format-x-tiled-modifier@pipe-b-plane-7:
    - shard-tglu-1:       NOTRUN -> [SKIP][131] ([i915#16386]) +1 other test skip
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_plane@pixel-format-x-tiled-modifier@pipe-b-plane-7.html

  * igt@kms_plane@pixel-format-y-tiled-ccs-modifier-source-clamping:
    - shard-tglu:         NOTRUN -> [SKIP][132] ([i915#15709]) +3 other tests skip
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-6/igt@kms_plane@pixel-format-y-tiled-ccs-modifier-source-clamping.html

  * igt@kms_plane_alpha_blend@alpha-transparent-fb:
    - shard-glk10:        NOTRUN -> [FAIL][133] ([i915#10647] / [i915#12177])
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-glk10/igt@kms_plane_alpha_blend@alpha-transparent-fb.html

  * igt@kms_plane_alpha_blend@alpha-transparent-fb@pipe-a-hdmi-a-1:
    - shard-glk10:        NOTRUN -> [FAIL][134] ([i915#10647]) +3 other tests fail
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-glk10/igt@kms_plane_alpha_blend@alpha-transparent-fb@pipe-a-hdmi-a-1.html

  * igt@kms_plane_alpha_blend@constant-alpha-max:
    - shard-glk10:        NOTRUN -> [FAIL][135] ([i915#10647] / [i915#12169])
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-glk10/igt@kms_plane_alpha_blend@constant-alpha-max.html

  * igt@kms_plane_multiple@2x-tiling-y:
    - shard-tglu-1:       NOTRUN -> [SKIP][136] ([i915#13958])
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_plane_multiple@2x-tiling-y.html

  * igt@kms_plane_multiple@2x-tiling-yf:
    - shard-tglu:         NOTRUN -> [SKIP][137] ([i915#13958])
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-5/igt@kms_plane_multiple@2x-tiling-yf.html

  * igt@kms_plane_multiple@tiling-4:
    - shard-rkl:          NOTRUN -> [SKIP][138] ([i915#14259])
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-7/igt@kms_plane_multiple@tiling-4.html

  * igt@kms_pm_backlight@brightness-with-dpms:
    - shard-tglu:         NOTRUN -> [SKIP][139] ([i915#12343])
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-5/igt@kms_pm_backlight@brightness-with-dpms.html

  * igt@kms_pm_backlight@fade-with-suspend:
    - shard-tglu-1:       NOTRUN -> [SKIP][140] ([i915#12343] / [i915#9812]) +1 other test skip
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_pm_backlight@fade-with-suspend.html

  * igt@kms_pm_lpsp@screens-disabled:
    - shard-tglu-1:       NOTRUN -> [SKIP][141] ([i915#8430])
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_pm_lpsp@screens-disabled.html

  * igt@kms_pm_rpm@modeset-non-lpsp:
    - shard-dg1:          [PASS][142] -> [SKIP][143] ([i915#15073]) +2 other tests skip
   [142]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-dg1-17/igt@kms_pm_rpm@modeset-non-lpsp.html
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-dg1-14/igt@kms_pm_rpm@modeset-non-lpsp.html
    - shard-tglu:         NOTRUN -> [SKIP][144] ([i915#15073]) +1 other test skip
   [144]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-5/igt@kms_pm_rpm@modeset-non-lpsp.html

  * igt@kms_pm_rpm@modeset-non-lpsp-stress:
    - shard-rkl:          [PASS][145] -> [SKIP][146] ([i915#15073])
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-7/igt@kms_pm_rpm@modeset-non-lpsp-stress.html
   [146]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-8/igt@kms_pm_rpm@modeset-non-lpsp-stress.html

  * igt@kms_pm_rpm@system-suspend-modeset:
    - shard-glk:          NOTRUN -> [INCOMPLETE][147] ([i915#10553])
   [147]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-glk4/igt@kms_pm_rpm@system-suspend-modeset.html

  * igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-sf:
    - shard-tglu:         NOTRUN -> [SKIP][148] ([i915#11520]) +7 other tests skip
   [148]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-8/igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-sf.html

  * igt@kms_psr2_sf@fbc-pr-primary-plane-update-sf-dmg-area:
    - shard-mtlp:         NOTRUN -> [SKIP][149] ([i915#12316])
   [149]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-mtlp-2/igt@kms_psr2_sf@fbc-pr-primary-plane-update-sf-dmg-area.html

  * igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf:
    - shard-glk10:        NOTRUN -> [SKIP][150] ([i915#11520]) +4 other tests skip
   [150]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-glk10/igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf.html

  * igt@kms_psr2_sf@pr-overlay-plane-move-continuous-exceed-fully-sf:
    - shard-glk11:        NOTRUN -> [SKIP][151] ([i915#11520]) +3 other tests skip
   [151]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-glk11/igt@kms_psr2_sf@pr-overlay-plane-move-continuous-exceed-fully-sf.html

  * igt@kms_psr2_sf@pr-overlay-plane-update-continuous-sf:
    - shard-rkl:          NOTRUN -> [SKIP][152] ([i915#11520])
   [152]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-7/igt@kms_psr2_sf@pr-overlay-plane-update-continuous-sf.html

  * igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area:
    - shard-glk:          NOTRUN -> [SKIP][153] ([i915#11520]) +2 other tests skip
   [153]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-glk2/igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area.html

  * igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb:
    - shard-tglu-1:       NOTRUN -> [SKIP][154] ([i915#11520]) +4 other tests skip
   [154]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb.html

  * igt@kms_psr2_su@frontbuffer-xrgb8888:
    - shard-tglu:         NOTRUN -> [SKIP][155] ([i915#9683])
   [155]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-8/igt@kms_psr2_su@frontbuffer-xrgb8888.html

  * igt@kms_psr2_su@page_flip-p010:
    - shard-tglu-1:       NOTRUN -> [SKIP][156] ([i915#9683])
   [156]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_psr2_su@page_flip-p010.html

  * igt@kms_psr@fbc-psr2-cursor-blt:
    - shard-tglu-1:       NOTRUN -> [SKIP][157] ([i915#9732]) +13 other tests skip
   [157]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_psr@fbc-psr2-cursor-blt.html

  * igt@kms_psr@psr-sprite-mmap-gtt:
    - shard-rkl:          NOTRUN -> [SKIP][158] ([i915#1072] / [i915#9732]) +2 other tests skip
   [158]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-7/igt@kms_psr@psr-sprite-mmap-gtt.html

  * igt@kms_psr@psr2-sprite-mmap-gtt:
    - shard-tglu:         NOTRUN -> [SKIP][159] ([i915#9732]) +19 other tests skip
   [159]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-5/igt@kms_psr@psr2-sprite-mmap-gtt.html

  * igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
    - shard-tglu:         NOTRUN -> [SKIP][160] ([i915#15949])
   [160]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-8/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0:
    - shard-rkl:          NOTRUN -> [SKIP][161] ([i915#5289])
   [161]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-7/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90:
    - shard-tglu:         NOTRUN -> [SKIP][162] ([i915#5289])
   [162]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-6/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html

  * igt@kms_selftest@drm_framebuffer:
    - shard-mtlp:         NOTRUN -> [ABORT][163] ([i915#13179]) +1 other test abort
   [163]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-mtlp-2/igt@kms_selftest@drm_framebuffer.html
    - shard-glk11:        NOTRUN -> [ABORT][164] ([i915#13179]) +1 other test abort
   [164]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-glk11/igt@kms_selftest@drm_framebuffer.html

  * igt@kms_tiled_display@basic-test-pattern-with-chamelium:
    - shard-tglu:         NOTRUN -> [SKIP][165] ([i915#8623])
   [165]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-5/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html

  * igt@kms_vblank@ts-continuation-dpms-suspend@pipe-a-hdmi-a-1:
    - shard-glk:          NOTRUN -> [INCOMPLETE][166] ([i915#12276]) +1 other test incomplete
   [166]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-glk2/igt@kms_vblank@ts-continuation-dpms-suspend@pipe-a-hdmi-a-1.html

  * igt@kms_vblank@ts-continuation-suspend:
    - shard-rkl:          [PASS][167] -> [INCOMPLETE][168] ([i915#12276])
   [167]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-5/igt@kms_vblank@ts-continuation-suspend.html
   [168]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@kms_vblank@ts-continuation-suspend.html

  * igt@kms_vblank@ts-continuation-suspend@pipe-a-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [INCOMPLETE][169] ([i915#12276])
   [169]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@kms_vblank@ts-continuation-suspend@pipe-a-hdmi-a-2.html

  * igt@kms_vrr@max-min:
    - shard-tglu-1:       NOTRUN -> [SKIP][170] ([i915#9906])
   [170]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@kms_vrr@max-min.html

  * igt@kms_vrr@seamless-rr-switch-virtual:
    - shard-tglu:         NOTRUN -> [SKIP][171] ([i915#9906])
   [171]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-6/igt@kms_vrr@seamless-rr-switch-virtual.html

  * igt@perf_pmu@busy-double-start@vecs1:
    - shard-dg2:          [PASS][172] -> [FAIL][173] ([i915#4349]) +4 other tests fail
   [172]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-dg2-6/igt@perf_pmu@busy-double-start@vecs1.html
   [173]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-dg2-7/igt@perf_pmu@busy-double-start@vecs1.html

  * igt@prime_udl@share-import:
    - shard-tglu:         NOTRUN -> [SKIP][174] ([i915#16420])
   [174]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-6/igt@prime_udl@share-import.html

  * igt@sriov_basic@enable-vfs-autoprobe-off:
    - shard-rkl:          NOTRUN -> [SKIP][175] ([i915#9917])
   [175]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-7/igt@sriov_basic@enable-vfs-autoprobe-off.html

  * igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all:
    - shard-tglu-1:       NOTRUN -> [SKIP][176] ([i915#16066])
   [176]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-1/igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all.html

  
#### Possible fixes ####

  * igt@gem_busy@close-race:
    - shard-tglu:         [ABORT][177] -> [PASS][178]
   [177]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-tglu-3/igt@gem_busy@close-race.html
   [178]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-8/igt@gem_busy@close-race.html

  * igt@kms_atomic_transition@plane-all-modeset-transition-fencing:
    - shard-tglu:         [FAIL][179] ([i915#15662]) -> [PASS][180] +1 other test pass
   [179]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-tglu-9/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html
   [180]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-9/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html

  * igt@kms_cursor_legacy@flip-vs-cursor-crc-atomic:
    - shard-dg1:          [FAIL][181] ([i915#15999]) -> [PASS][182]
   [181]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-dg1-15/igt@kms_cursor_legacy@flip-vs-cursor-crc-atomic.html
   [182]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-dg1-16/igt@kms_cursor_legacy@flip-vs-cursor-crc-atomic.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-rkl:          [INCOMPLETE][183] ([i915#9878]) -> [PASS][184]
   [183]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-3/igt@kms_fbcon_fbt@fbc-suspend.html
   [184]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-7/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible@d-hdmi-a3:
    - shard-dg2:          [FAIL][185] ([i915#13027]) -> [PASS][186] +1 other test pass
   [185]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-dg2-3/igt@kms_flip@flip-vs-expired-vblank-interruptible@d-hdmi-a3.html
   [186]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-dg2-1/igt@kms_flip@flip-vs-expired-vblank-interruptible@d-hdmi-a3.html

  * igt@kms_frontbuffer_tracking@hdr-rgb101010-draw-mmap-wc:
    - shard-rkl:          [SKIP][187] ([i915#15989]) -> [PASS][188] +8 other tests pass
   [187]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-2/igt@kms_frontbuffer_tracking@hdr-rgb101010-draw-mmap-wc.html
   [188]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@kms_frontbuffer_tracking@hdr-rgb101010-draw-mmap-wc.html

  * igt@kms_pm_rpm@dpms-mode-unset-non-lpsp:
    - shard-dg1:          [SKIP][189] ([i915#15073]) -> [PASS][190]
   [189]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-dg1-15/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html
   [190]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-dg1-16/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html

  * igt@kms_pm_rpm@modeset-non-lpsp:
    - shard-rkl:          [SKIP][191] ([i915#15073]) -> [PASS][192]
   [191]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-8/igt@kms_pm_rpm@modeset-non-lpsp.html
   [192]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-4/igt@kms_pm_rpm@modeset-non-lpsp.html

  
#### Warnings ####

  * igt@api_intel_bb@blit-reloc-keep-cache:
    - shard-rkl:          [SKIP][193] ([i915#14544] / [i915#8411]) -> [SKIP][194] ([i915#8411]) +1 other test skip
   [193]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@api_intel_bb@blit-reloc-keep-cache.html
   [194]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@api_intel_bb@blit-reloc-keep-cache.html

  * igt@gem_ccs@ctrl-surf-copy:
    - shard-rkl:          [SKIP][195] ([i915#3555] / [i915#9323]) -> [SKIP][196] ([i915#14544] / [i915#3555] / [i915#9323])
   [195]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-7/igt@gem_ccs@ctrl-surf-copy.html
   [196]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@gem_ccs@ctrl-surf-copy.html

  * igt@gem_close_race@multigpu-basic-threads:
    - shard-rkl:          [SKIP][197] ([i915#7697]) -> [SKIP][198] ([i915#14544] / [i915#7697])
   [197]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-7/igt@gem_close_race@multigpu-basic-threads.html
   [198]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@gem_close_race@multigpu-basic-threads.html

  * igt@gem_create@create-ext-set-pat:
    - shard-rkl:          [SKIP][199] ([i915#14544] / [i915#8562]) -> [SKIP][200] ([i915#8562])
   [199]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@gem_create@create-ext-set-pat.html
   [200]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@gem_create@create-ext-set-pat.html

  * igt@gem_exec_balancer@parallel-keep-in-fence:
    - shard-rkl:          [SKIP][201] ([i915#4525]) -> [SKIP][202] ([i915#14544] / [i915#4525])
   [201]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-7/igt@gem_exec_balancer@parallel-keep-in-fence.html
   [202]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@gem_exec_balancer@parallel-keep-in-fence.html

  * igt@gem_exec_balancer@parallel-out-fence:
    - shard-rkl:          [SKIP][203] ([i915#14544] / [i915#4525]) -> [SKIP][204] ([i915#4525])
   [203]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@gem_exec_balancer@parallel-out-fence.html
   [204]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@gem_exec_balancer@parallel-out-fence.html

  * igt@gem_exec_reloc@basic-gtt-active:
    - shard-rkl:          [SKIP][205] ([i915#3281]) -> [SKIP][206] ([i915#14544] / [i915#3281]) +1 other test skip
   [205]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-7/igt@gem_exec_reloc@basic-gtt-active.html
   [206]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@gem_exec_reloc@basic-gtt-active.html

  * igt@gem_lmem_swapping@heavy-random:
    - shard-rkl:          [SKIP][207] ([i915#4613]) -> [SKIP][208] ([i915#14544] / [i915#4613])
   [207]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-7/igt@gem_lmem_swapping@heavy-random.html
   [208]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@gem_lmem_swapping@heavy-random.html

  * igt@gem_lmem_swapping@heavy-verify-random:
    - shard-rkl:          [SKIP][209] ([i915#14544] / [i915#4613]) -> [SKIP][210] ([i915#4613])
   [209]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@gem_lmem_swapping@heavy-verify-random.html
   [210]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@gem_lmem_swapping@heavy-verify-random.html

  * igt@gem_media_vme:
    - shard-rkl:          [SKIP][211] ([i915#14544] / [i915#284]) -> [SKIP][212] ([i915#284])
   [211]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@gem_media_vme.html
   [212]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@gem_media_vme.html

  * igt@gem_readwrite@write-bad-handle:
    - shard-rkl:          [SKIP][213] ([i915#14544] / [i915#3282]) -> [SKIP][214] ([i915#3282]) +2 other tests skip
   [213]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@gem_readwrite@write-bad-handle.html
   [214]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@gem_readwrite@write-bad-handle.html

  * igt@gem_set_tiling_vs_pwrite:
    - shard-rkl:          [SKIP][215] ([i915#3282]) -> [SKIP][216] ([i915#14544] / [i915#3282]) +2 other tests skip
   [215]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-2/igt@gem_set_tiling_vs_pwrite.html
   [216]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@gem_set_tiling_vs_pwrite.html

  * igt@gem_userptr_blits@forbidden-operations:
    - shard-rkl:          [SKIP][217] ([i915#14544] / [i915#3282] / [i915#3297]) -> [SKIP][218] ([i915#3282] / [i915#3297])
   [217]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@gem_userptr_blits@forbidden-operations.html
   [218]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@gem_userptr_blits@forbidden-operations.html

  * igt@gem_userptr_blits@invalid-mmap-offset-unsync:
    - shard-rkl:          [SKIP][219] ([i915#14544] / [i915#3297]) -> [SKIP][220] ([i915#3297]) +1 other test skip
   [219]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@gem_userptr_blits@invalid-mmap-offset-unsync.html
   [220]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@gem_userptr_blits@invalid-mmap-offset-unsync.html

  * igt@gem_userptr_blits@readonly-unsync:
    - shard-rkl:          [SKIP][221] ([i915#3297]) -> [SKIP][222] ([i915#14544] / [i915#3297])
   [221]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-7/igt@gem_userptr_blits@readonly-unsync.html
   [222]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@gem_userptr_blits@readonly-unsync.html

  * igt@gen9_exec_parse@allowed-all:
    - shard-rkl:          [SKIP][223] ([i915#2527]) -> [SKIP][224] ([i915#14544] / [i915#2527]) +1 other test skip
   [223]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-7/igt@gen9_exec_parse@allowed-all.html
   [224]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@gen9_exec_parse@allowed-all.html

  * igt@i915_module_load@fault-injection@__uc_init:
    - shard-rkl:          [SKIP][225] ([i915#14544] / [i915#15479]) -> [SKIP][226] ([i915#15479]) +4 other tests skip
   [225]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@i915_module_load@fault-injection@__uc_init.html
   [226]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@i915_module_load@fault-injection@__uc_init.html

  * igt@intel_hwmon@hwmon-read:
    - shard-rkl:          [SKIP][227] ([i915#14544] / [i915#7707]) -> [SKIP][228] ([i915#7707])
   [227]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@intel_hwmon@hwmon-read.html
   [228]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@intel_hwmon@hwmon-read.html

  * igt@kms_big_fb@4-tiled-16bpp-rotate-0:
    - shard-rkl:          [SKIP][229] ([i915#5286]) -> [SKIP][230] ([i915#14544] / [i915#5286]) +1 other test skip
   [229]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-7/igt@kms_big_fb@4-tiled-16bpp-rotate-0.html
   [230]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@kms_big_fb@4-tiled-16bpp-rotate-0.html

  * igt@kms_big_fb@4-tiled-8bpp-rotate-180:
    - shard-rkl:          [SKIP][231] ([i915#14544] / [i915#5286]) -> [SKIP][232] ([i915#5286])
   [231]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@kms_big_fb@4-tiled-8bpp-rotate-180.html
   [232]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@kms_big_fb@4-tiled-8bpp-rotate-180.html

  * igt@kms_big_fb@linear-8bpp-rotate-270:
    - shard-rkl:          [SKIP][233] ([i915#14544] / [i915#3638]) -> [SKIP][234] ([i915#3638])
   [233]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@kms_big_fb@linear-8bpp-rotate-270.html
   [234]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@kms_big_fb@linear-8bpp-rotate-270.html

  * igt@kms_big_fb@x-tiled-32bpp-rotate-270:
    - shard-rkl:          [SKIP][235] ([i915#3638]) -> [SKIP][236] ([i915#14544] / [i915#3638]) +2 other tests skip
   [235]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-2/igt@kms_big_fb@x-tiled-32bpp-rotate-270.html
   [236]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@kms_big_fb@x-tiled-32bpp-rotate-270.html

  * igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs-cc:
    - shard-dg1:          [SKIP][237] ([i915#6095]) -> [SKIP][238] ([i915#4423] / [i915#6095])
   [237]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-dg1-14/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs-cc.html
   [238]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-dg1-17/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs-cc.html

  * igt@kms_ccs@bad-aux-stride-y-tiled-ccs@pipe-c-hdmi-a-2:
    - shard-rkl:          [SKIP][239] ([i915#14098] / [i915#6095]) -> [SKIP][240] ([i915#14098] / [i915#14544] / [i915#6095]) +5 other tests skip
   [239]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-7/igt@kms_ccs@bad-aux-stride-y-tiled-ccs@pipe-c-hdmi-a-2.html
   [240]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@kms_ccs@bad-aux-stride-y-tiled-ccs@pipe-c-hdmi-a-2.html

  * igt@kms_ccs@bad-aux-stride-yf-tiled-ccs@pipe-b-hdmi-a-2:
    - shard-rkl:          [SKIP][241] ([i915#14544] / [i915#6095]) -> [SKIP][242] ([i915#6095]) +4 other tests skip
   [241]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@kms_ccs@bad-aux-stride-yf-tiled-ccs@pipe-b-hdmi-a-2.html
   [242]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@kms_ccs@bad-aux-stride-yf-tiled-ccs@pipe-b-hdmi-a-2.html

  * igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-rc-ccs-cc@pipe-a-hdmi-a-2:
    - shard-rkl:          [SKIP][243] ([i915#6095]) -> [SKIP][244] ([i915#14544] / [i915#6095]) +5 other tests skip
   [243]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-7/igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-rc-ccs-cc@pipe-a-hdmi-a-2.html
   [244]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-rc-ccs-cc@pipe-a-hdmi-a-2.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc@pipe-c-hdmi-a-2:
    - shard-rkl:          [SKIP][245] ([i915#14098] / [i915#14544] / [i915#6095]) -> [SKIP][246] ([i915#14098] / [i915#6095]) +5 other tests skip
   [245]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc@pipe-c-hdmi-a-2.html
   [246]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc@pipe-c-hdmi-a-2.html

  * igt@kms_chamelium_color_pipeline@plane-ctm3x4:
    - shard-rkl:          [SKIP][247] ([i915#14544] / [i915#16471]) -> [SKIP][248] ([i915#16471])
   [247]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@kms_chamelium_color_pipeline@plane-ctm3x4.html
   [248]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@kms_chamelium_color_pipeline@plane-ctm3x4.html

  * igt@kms_chamelium_color_pipeline@plane-ctm3x4-lut1d:
    - shard-rkl:          [SKIP][249] ([i915#16471]) -> [SKIP][250] ([i915#14544] / [i915#16471])
   [249]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-2/igt@kms_chamelium_color_pipeline@plane-ctm3x4-lut1d.html
   [250]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@kms_chamelium_color_pipeline@plane-ctm3x4-lut1d.html

  * igt@kms_chamelium_frames@hdmi-frame-dump:
    - shard-rkl:          [SKIP][251] ([i915#11151] / [i915#14544] / [i915#7828]) -> [SKIP][252] ([i915#11151] / [i915#7828]) +2 other tests skip
   [251]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@kms_chamelium_frames@hdmi-frame-dump.html
   [252]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@kms_chamelium_frames@hdmi-frame-dump.html

  * igt@kms_chamelium_hpd@hdmi-hpd-storm-disable:
    - shard-rkl:          [SKIP][253] ([i915#11151] / [i915#7828]) -> [SKIP][254] ([i915#11151] / [i915#14544] / [i915#7828]) +1 other test skip
   [253]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-7/igt@kms_chamelium_hpd@hdmi-hpd-storm-disable.html
   [254]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@kms_chamelium_hpd@hdmi-hpd-storm-disable.html

  * igt@kms_content_protection@dp-mst-lic-type-0-hdcp14:
    - shard-rkl:          [SKIP][255] ([i915#15330]) -> [SKIP][256] ([i915#14544] / [i915#15330])
   [255]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-7/igt@kms_content_protection@dp-mst-lic-type-0-hdcp14.html
   [256]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@kms_content_protection@dp-mst-lic-type-0-hdcp14.html

  * igt@kms_content_protection@legacy:
    - shard-rkl:          [SKIP][257] ([i915#14544] / [i915#15865]) -> [SKIP][258] ([i915#15865])
   [257]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@kms_content_protection@legacy.html
   [258]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@kms_content_protection@legacy.html

  * igt@kms_content_protection@mei-interface:
    - shard-dg1:          [SKIP][259] ([i915#9433]) -> [SKIP][260] ([i915#15865])
   [259]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-dg1-13/igt@kms_content_protection@mei-interface.html
   [260]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-dg1-15/igt@kms_content_protection@mei-interface.html

  * igt@kms_content_protection@type1:
    - shard-rkl:          [SKIP][261] ([i915#15865]) -> [SKIP][262] ([i915#14544] / [i915#15865])
   [261]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-7/igt@kms_content_protection@type1.html
   [262]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@kms_content_protection@type1.html

  * igt@kms_cursor_crc@cursor-onscreen-max-size:
    - shard-rkl:          [SKIP][263] ([i915#3555]) -> [SKIP][264] ([i915#14544] / [i915#3555])
   [263]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-7/igt@kms_cursor_crc@cursor-onscreen-max-size.html
   [264]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@kms_cursor_crc@cursor-onscreen-max-size.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size:
    - shard-rkl:          [SKIP][265] ([i915#4103]) -> [SKIP][266] ([i915#14544] / [i915#4103])
   [265]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-7/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html
   [266]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html

  * igt@kms_dirtyfb@drrs-dirtyfb-ioctl:
    - shard-rkl:          [SKIP][267] ([i915#9723]) -> [SKIP][268] ([i915#14544] / [i915#9723])
   [267]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-7/igt@kms_dirtyfb@drrs-dirtyfb-ioctl.html
   [268]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@kms_dirtyfb@drrs-dirtyfb-ioctl.html

  * igt@kms_dp_link_training@uhbr-sst:
    - shard-dg1:          [SKIP][269] ([i915#13748]) -> [SKIP][270] ([i915#13748] / [i915#4423])
   [269]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-dg1-14/igt@kms_dp_link_training@uhbr-sst.html
   [270]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-dg1-17/igt@kms_dp_link_training@uhbr-sst.html

  * igt@kms_dsc@dsc-with-formats:
    - shard-rkl:          [SKIP][271] ([i915#14544] / [i915#16361]) -> [SKIP][272] ([i915#16361])
   [271]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@kms_dsc@dsc-with-formats.html
   [272]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@kms_dsc@dsc-with-formats.html

  * igt@kms_flip@2x-flip-vs-wf_vblank-interruptible:
    - shard-rkl:          [SKIP][273] ([i915#9934]) -> [SKIP][274] ([i915#14544] / [i915#9934]) +3 other tests skip
   [273]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-7/igt@kms_flip@2x-flip-vs-wf_vblank-interruptible.html
   [274]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@kms_flip@2x-flip-vs-wf_vblank-interruptible.html

  * igt@kms_flip@2x-wf_vblank-ts-check:
    - shard-rkl:          [SKIP][275] ([i915#14544] / [i915#9934]) -> [SKIP][276] ([i915#9934]) +3 other tests skip
   [275]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@kms_flip@2x-wf_vblank-ts-check.html
   [276]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@kms_flip@2x-wf_vblank-ts-check.html

  * igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling:
    - shard-rkl:          [SKIP][277] ([i915#14544] / [i915#15643]) -> [SKIP][278] ([i915#15643]) +1 other test skip
   [277]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html
   [278]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling:
    - shard-rkl:          [SKIP][279] ([i915#15643]) -> [SKIP][280] ([i915#14544] / [i915#15643])
   [279]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-7/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling.html
   [280]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling.html

  * igt@kms_force_connector_basic@force-load-detect:
    - shard-mtlp:         [SKIP][281] -> [SKIP][282] ([i915#15672])
   [281]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-mtlp-4/igt@kms_force_connector_basic@force-load-detect.html
   [282]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-mtlp-1/igt@kms_force_connector_basic@force-load-detect.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-wc:
    - shard-rkl:          [SKIP][283] ([i915#14544] / [i915#1825]) -> [SKIP][284] ([i915#1825]) +1 other test skip
   [283]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-wc.html
   [284]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbchdr-2p-primscrn-shrfb-pgflip-blt:
    - shard-rkl:          [SKIP][285] ([i915#14544]) -> [SKIP][286] +23 other tests skip
   [285]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@kms_frontbuffer_tracking@fbchdr-2p-primscrn-shrfb-pgflip-blt.html
   [286]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@kms_frontbuffer_tracking@fbchdr-2p-primscrn-shrfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-render:
    - shard-rkl:          [SKIP][287] ([i915#15102] / [i915#3023]) -> [SKIP][288] ([i915#14544] / [i915#15102] / [i915#3023]) +3 other tests skip
   [287]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-7/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-render.html
   [288]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-pwrite:
    - shard-dg2:          [SKIP][289] ([i915#10433] / [i915#15102]) -> [SKIP][290] ([i915#15102]) +3 other tests skip
   [289]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-pwrite.html
   [290]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-dg2-8/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-rte:
    - shard-rkl:          [SKIP][291] ([i915#15102]) -> [SKIP][292] ([i915#14544] / [i915#15102]) +8 other tests skip
   [291]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-7/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-rte.html
   [292]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-rte.html

  * igt@kms_frontbuffer_tracking@fbcpsrhdr-2p-primscrn-cur-indfb-draw-mmap-wc:
    - shard-dg1:          [SKIP][293] ([i915#15990]) -> [SKIP][294] ([i915#15990] / [i915#4423])
   [293]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-dg1-13/igt@kms_frontbuffer_tracking@fbcpsrhdr-2p-primscrn-cur-indfb-draw-mmap-wc.html
   [294]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-dg1-18/igt@kms_frontbuffer_tracking@fbcpsrhdr-2p-primscrn-cur-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsrhdr-2p-scndscrn-spr-indfb-onoff:
    - shard-rkl:          [SKIP][295] -> [SKIP][296] ([i915#14544]) +31 other tests skip
   [295]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-7/igt@kms_frontbuffer_tracking@fbcpsrhdr-2p-scndscrn-spr-indfb-onoff.html
   [296]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsrhdr-2p-scndscrn-spr-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-spr-indfb-onoff:
    - shard-dg1:          [SKIP][297] -> [SKIP][298] ([i915#4423]) +2 other tests skip
   [297]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-dg1-13/igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-spr-indfb-onoff.html
   [298]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-dg1-18/igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-spr-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-pgflip-blt:
    - shard-rkl:          [SKIP][299] ([i915#14544] / [i915#15102] / [i915#3023]) -> [SKIP][300] ([i915#15102] / [i915#3023]) +5 other tests skip
   [299]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-pgflip-blt.html
   [300]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-render:
    - shard-dg1:          [SKIP][301] ([i915#4423]) -> [SKIP][302]
   [301]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-dg1-16/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-render.html
   [302]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-dg1-18/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-render.html

  * igt@kms_frontbuffer_tracking@psr-indfb-scaledprimary:
    - shard-dg2:          [SKIP][303] ([i915#15102]) -> [SKIP][304] ([i915#10433] / [i915#15102]) +1 other test skip
   [303]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-dg2-1/igt@kms_frontbuffer_tracking@psr-indfb-scaledprimary.html
   [304]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-dg2-4/igt@kms_frontbuffer_tracking@psr-indfb-scaledprimary.html

  * igt@kms_frontbuffer_tracking@psrhdr-shrfb-scaledprimary:
    - shard-rkl:          [SKIP][305] ([i915#14544] / [i915#15102]) -> [SKIP][306] ([i915#15102]) +5 other tests skip
   [305]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@kms_frontbuffer_tracking@psrhdr-shrfb-scaledprimary.html
   [306]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@kms_frontbuffer_tracking@psrhdr-shrfb-scaledprimary.html

  * igt@kms_hdr@brightness-with-hdr:
    - shard-rkl:          [SKIP][307] ([i915#1187] / [i915#12713] / [i915#16644]) -> [SKIP][308] ([i915#12713] / [i915#16644])
   [307]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-3/igt@kms_hdr@brightness-with-hdr.html
   [308]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-5/igt@kms_hdr@brightness-with-hdr.html

  * igt@kms_panel_fitting@atomic-fastset:
    - shard-rkl:          [SKIP][309] ([i915#6301]) -> [SKIP][310] ([i915#14544] / [i915#6301])
   [309]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-7/igt@kms_panel_fitting@atomic-fastset.html
   [310]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@kms_panel_fitting@atomic-fastset.html

  * igt@kms_panel_fitting@legacy:
    - shard-rkl:          [SKIP][311] ([i915#14544] / [i915#6301]) -> [SKIP][312] ([i915#6301])
   [311]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@kms_panel_fitting@legacy.html
   [312]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@kms_panel_fitting@legacy.html

  * igt@kms_pipe_stress@stress-xrgb8888-4tiled:
    - shard-rkl:          [SKIP][313] ([i915#14544] / [i915#14712]) -> [SKIP][314] ([i915#14712])
   [313]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@kms_pipe_stress@stress-xrgb8888-4tiled.html
   [314]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@kms_pipe_stress@stress-xrgb8888-4tiled.html

  * igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-cc-modifier:
    - shard-rkl:          [SKIP][315] ([i915#14544] / [i915#15709]) -> [SKIP][316] ([i915#15709])
   [315]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-cc-modifier.html
   [316]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-cc-modifier.html

  * igt@kms_plane@pixel-format-y-tiled-gen12-mc-ccs-modifier:
    - shard-rkl:          [SKIP][317] ([i915#15709]) -> [SKIP][318] ([i915#14544] / [i915#15709]) +1 other test skip
   [317]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-7/igt@kms_plane@pixel-format-y-tiled-gen12-mc-ccs-modifier.html
   [318]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@kms_plane@pixel-format-y-tiled-gen12-mc-ccs-modifier.html

  * igt@kms_plane_multiple@2x-tiling-x:
    - shard-rkl:          [SKIP][319] ([i915#13958]) -> [SKIP][320] ([i915#13958] / [i915#14544])
   [319]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-2/igt@kms_plane_multiple@2x-tiling-x.html
   [320]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@kms_plane_multiple@2x-tiling-x.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-b:
    - shard-rkl:          [SKIP][321] ([i915#15329]) -> [SKIP][322] ([i915#14544] / [i915#15329]) +3 other tests skip
   [321]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-7/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-b.html
   [322]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-b.html

  * igt@kms_pm_dc@dc9-dpms:
    - shard-tglu:         [SKIP][323] ([i915#15128]) -> [SKIP][324] ([i915#15739])
   [323]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-tglu-6/igt@kms_pm_dc@dc9-dpms.html
   [324]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-tglu-5/igt@kms_pm_dc@dc9-dpms.html

  * igt@kms_pm_lpsp@kms-lpsp:
    - shard-rkl:          [SKIP][325] ([i915#3828]) -> [SKIP][326] ([i915#9340])
   [325]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-2/igt@kms_pm_lpsp@kms-lpsp.html
   [326]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-1/igt@kms_pm_lpsp@kms-lpsp.html

  * igt@kms_pm_rpm@modeset-lpsp:
    - shard-rkl:          [SKIP][327] ([i915#14544] / [i915#15073]) -> [SKIP][328] ([i915#15073])
   [327]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@kms_pm_rpm@modeset-lpsp.html
   [328]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@kms_pm_rpm@modeset-lpsp.html

  * igt@kms_prime@d3hot:
    - shard-rkl:          [SKIP][329] ([i915#14544] / [i915#6524]) -> [SKIP][330] ([i915#6524])
   [329]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@kms_prime@d3hot.html
   [330]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@kms_prime@d3hot.html

  * igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-exceed-sf:
    - shard-rkl:          [SKIP][331] ([i915#11520]) -> [SKIP][332] ([i915#11520] / [i915#14544]) +2 other tests skip
   [331]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-2/igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-exceed-sf.html
   [332]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-exceed-sf.html

  * igt@kms_psr2_sf@pr-overlay-primary-update-sf-dmg-area:
    - shard-rkl:          [SKIP][333] ([i915#11520] / [i915#14544]) -> [SKIP][334] ([i915#11520])
   [333]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@kms_psr2_sf@pr-overlay-primary-update-sf-dmg-area.html
   [334]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@kms_psr2_sf@pr-overlay-primary-update-sf-dmg-area.html

  * igt@kms_psr2_su@page_flip-xrgb8888:
    - shard-rkl:          [SKIP][335] ([i915#9683]) -> [SKIP][336] ([i915#14544] / [i915#9683])
   [335]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-7/igt@kms_psr2_su@page_flip-xrgb8888.html
   [336]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@kms_psr2_su@page_flip-xrgb8888.html

  * igt@kms_psr@fbc-psr-cursor-mmap-gtt:
    - shard-rkl:          [SKIP][337] ([i915#1072] / [i915#14544] / [i915#9732]) -> [SKIP][338] ([i915#1072] / [i915#9732]) +4 other tests skip
   [337]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-6/igt@kms_psr@fbc-psr-cursor-mmap-gtt.html
   [338]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-3/igt@kms_psr@fbc-psr-cursor-mmap-gtt.html

  * igt@kms_psr@fbc-psr-primary-blt:
    - shard-rkl:          [SKIP][339] ([i915#1072] / [i915#9732]) -> [SKIP][340] ([i915#1072] / [i915#14544] / [i915#9732]) +8 other tests skip
   [339]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-2/igt@kms_psr@fbc-psr-primary-blt.html
   [340]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@kms_psr@fbc-psr-primary-blt.html

  * igt@kms_psr@psr-dpms:
    - shard-dg1:          [SKIP][341] ([i915#1072] / [i915#9732]) -> [SKIP][342] ([i915#1072] / [i915#4423] / [i915#9732])
   [341]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-dg1-15/igt@kms_psr@psr-dpms.html
   [342]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-dg1-13/igt@kms_psr@psr-dpms.html

  * igt@kms_vrr@lobf:
    - shard-rkl:          [SKIP][343] ([i915#11920]) -> [SKIP][344] ([i915#11920] / [i915#14544])
   [343]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-7/igt@kms_vrr@lobf.html
   [344]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@kms_vrr@lobf.html

  * igt@prime_udl@share-import-addfb:
    - shard-rkl:          [SKIP][345] ([i915#16420]) -> [SKIP][346] ([i915#14544] / [i915#16420])
   [345]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-2/igt@prime_udl@share-import-addfb.html
   [346]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@prime_udl@share-import-addfb.html

  * igt@sriov_basic@bind-unbind-vf:
    - shard-rkl:          [SKIP][347] ([i915#9917]) -> [SKIP][348] ([i915#14544] / [i915#9917])
   [347]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18981/shard-rkl-7/igt@sriov_basic@bind-unbind-vf.html
   [348]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/shard-rkl-6/igt@sriov_basic@bind-unbind-vf.html

  
  [i915#10307]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10307
  [i915#10433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10433
  [i915#10434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10434
  [i915#10553]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10553
  [i915#10647]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10647
  [i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
  [i915#11078]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11078
  [i915#11151]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11151
  [i915#11520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11520
  [i915#118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/118
  [i915#1187]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1187
  [i915#11920]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11920
  [i915#12169]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12169
  [i915#12177]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12177
  [i915#12276]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12276
  [i915#12313]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12313
  [i915#12316]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12316
  [i915#12343]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12343
  [i915#1257]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1257
  [i915#12713]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12713
  [i915#12745]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12745
  [i915#12805]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12805
  [i915#13027]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13027
  [i915#13049]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13049
  [i915#13179]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13179
  [i915#13356]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13356
  [i915#13398]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13398
  [i915#13566]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13566
  [i915#13688]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13688
  [i915#13707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13707
  [i915#13748]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13748
  [i915#13749]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13749
  [i915#13783]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13783
  [i915#13958]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13958
  [i915#14098]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14098
  [i915#14259]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14259
  [i915#14498]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14498
  [i915#14544]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14544
  [i915#14712]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14712
  [i915#15073]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15073
  [i915#15102]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15102
  [i915#15128]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15128
  [i915#15131]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15131
  [i915#15329]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15329
  [i915#15330]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15330
  [i915#15342]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15342
  [i915#15458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15458
  [i915#15479]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15479
  [i915#15638]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15638
  [i915#15643]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15643
  [i915#15662]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15662
  [i915#15672]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15672
  [i915#15709]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15709
  [i915#15722]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15722
  [i915#15725]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15725
  [i915#15739]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15739
  [i915#15865]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15865
  [i915#15949]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15949
  [i915#15989]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15989
  [i915#15990]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15990
  [i915#15991]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15991
  [i915#15999]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15999
  [i915#16066]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16066
  [i915#16079]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16079
  [i915#16348]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16348
  [i915#16361]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16361
  [i915#16386]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16386
  [i915#16420]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16420
  [i915#16471]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16471
  [i915#16600]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16600
  [i915#16644]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16644
  [i915#16680]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16680
  [i915#1769]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1769
  [i915#1825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1825
  [i915#2065]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2065
  [i915#2190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2190
  [i915#2527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2527
  [i915#2658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2658
  [i915#284]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/284
  [i915#2856]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2856
  [i915#3023]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3023
  [i915#3116]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3116
  [i915#3281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3282
  [i915#3297]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3297
  [i915#3299]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3299
  [i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
  [i915#3637]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3637
  [i915#3638]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3638
  [i915#3804]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3804
  [i915#3828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3828
  [i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4212
  [i915#4349]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4349
  [i915#4423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4423
  [i915#4525]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4525
  [i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
  [i915#4839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4839
  [i915#5286]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5286
  [i915#5289]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5289
  [i915#5439]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5439
  [i915#5566]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5566
  [i915#6095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095
  [i915#6113]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6113
  [i915#6245]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6245
  [i915#6301]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6301
  [i915#6334]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6334
  [i915#6335]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6335
  [i915#6524]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6524
  [i915#7697]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7697
  [i915#7707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7707
  [i915#7828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7828
  [i915#8228]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8228
  [i915#8399]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8399
  [i915#8411]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8411
  [i915#8430]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8430
  [i915#8562]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8562
  [i915#8623]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8623
  [i915#9323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9323
  [i915#9340]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9340
  [i915#9433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9433
  [i915#9683]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9683
  [i915#9723]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9723
  [i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
  [i915#9766]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9766
  [i915#9812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9812
  [i915#9878]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9878
  [i915#9906]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9906
  [i915#9917]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9917
  [i915#9934]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9934


Build changes
-------------

  * Linux: CI_DRM_18981 -> Patchwork_169700v3

  CI-20190529: 20190529
  CI_DRM_18981: 022f0029796a06c77f3856313a38ea226a652264 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_9052: 9052
  Patchwork_169700v3: 022f0029796a06c77f3856313a38ea226a652264 @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169700v3/index.html

[-- Attachment #2: Type: text/html, Size: 120580 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [v3 2/2] drm/i915/audio: Prune ELD SADs based on HDMI audio bandwidth
  2026-08-12  8:21   ` Jani Nikula
@ 2026-08-12 12:56     ` Borah, Chaitanya Kumar
  0 siblings, 0 replies; 7+ messages in thread
From: Borah, Chaitanya Kumar @ 2026-08-12 12:56 UTC (permalink / raw)
  To: Jani Nikula, intel-xe, intel-gfx
  Cc: Kai Vehmanen, Ankit Nautiyal, Ville Syrjälä,
	Vinod Govindapillai, Mitul Golani



On 8/12/2026 1:51 PM, Jani Nikula wrote:
> On Wed, 12 Aug 2026, Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com> wrote:
>> Add bandwidth check to determine whether a given audio sample rate and
>> channel count can be carried within the hblank period for HDMI TMDS mode.
>>
>> Use this check to prune unsupported sample rates from each SAD in the
>> ELD during intel_audio_compute_config(). SADs with no remaining
>> supported rates are removed entirely.
>>
>> Sample rates are pruned rather than channel counts, since compressed
>> formats (e.g. AC-3) are associated with specific channel counts.
>>
>> v2:
>>   - Use DIV64_U64_ROUND_UP() instead of DIV_ROUND_UP_ULL() to avoid
>>     do_div() truncating the 64-bit divisor to 32-bit, which caused
>>     audio_packets_line to be wildly inflated and all SADs to be pruned.
>>   - Guard intel_audio_hdmi_eld_compute_config() against HDMI FRL modes.
>>     (Remove it when BW calculations for FRL are added.)
>>
>> v3:
>>   - Rebase
>>
>> BSpec: 68944
>> Cc: Kai Vehmanen <kai.vehmanen@linux.intel.com>
>> Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
>> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> Cc: Vinod Govindapillai <vinod.govindapillai@intel.com>
>> Cc: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
>> Assisted-by: GitHub-Copilot:claude-opus-4.6
>> Signed-off-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
>> ---
>>   drivers/gpu/drm/i915/display/intel_audio.c | 149 +++++++++++++++++++++
>>   1 file changed, 149 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/i915/display/intel_audio.c b/drivers/gpu/drm/i915/display/intel_audio.c
>> index eae76e961105..d59acb390f8a 100644
>> --- a/drivers/gpu/drm/i915/display/intel_audio.c
>> +++ b/drivers/gpu/drm/i915/display/intel_audio.c
>> @@ -39,6 +39,7 @@
>>   #include "intel_display_types.h"
>>   #include "intel_display_wa.h"
>>   #include "intel_dp.h"
>> +#include "intel_hdmi.h"
>>   #include "intel_lpe_audio.h"
>>   
>>   /**
>> @@ -697,6 +698,151 @@ static void ibx_audio_codec_enable(struct intel_encoder *encoder,
>>   	mutex_unlock(&display->audio.mutex);
>>   }
>>   
>> +static bool hdmi_audio_rate_supported(const struct intel_crtc_state *crtc_state,
>> +				      int available_tmds,
>> +				      int audio_rate, int channels)
>> +{
>> +	const struct drm_display_mode *mode = &crtc_state->hw.adjusted_mode;
>> +	int pixel_clk_max_hz;
>> +	int audio_pkt_factor;
>> +	u64 audio_pkt_rate_x4_x1000;
>> +	int audio_packets_line;
>> +	int hblank_overhead;
>> +	int required_tmds;
>> +
>> +	/*
>> +	 * Part 2: Calculate TMDS clock cycles required for Audio Bandwidth
>> +	 *
>> +	 * Step 1: pixelclk_max = nominal_pixel_rate * (1 + 0.5%)
>> +	 * crtc_clock (kHz) * 1000 * 1.005 = crtc_clock * 1005 (Hz)
>> +	 */
>> +	pixel_clk_max_hz = mode->crtc_clock * 1005;
>> +
>> +	/*
>> +	 * Steps 3-4: Audio Packet Rate.
>> +	 *   R_AP = (audio_rate * AP + 2 * acrrate_max) * (1 + 1000 / 1e6)
>> +	 *        = (audio_rate * AP + 2*1500) * 1.001
>> +	 *
>> +	 * AP = 0.25 (2ch) or 1.0 (3-8ch); acrrate_max = 1500 Hz (max ACR
>> +	 * packet transmission rate per HDMI spec)
>> +	 *
>> +	 * Scale by 4*1000 to stay integer:
>> +	 *  x4: eliminates AP=0.25 -> audio_pkt_factor=1(2ch) or 4(3-8ch),
>> +	 *      scaled acrrate_max: 2 * 1500 * 4 = 12000
>> +	 *  x1000: eliminates 1.001 -> *1000*1.001 = *1001
>> +	 *
>> +	 * R_AP * 4 * 1000 = (audio_rate * audio_pkt_factor + 12000) * 1001
>> +	 */
>> +	audio_pkt_factor = (channels <= 2) ? 1 : 4;
>> +	audio_pkt_rate_x4_x1000 = (u64)(audio_rate * audio_pkt_factor + 12000) * 1001;
>> +
>> +	/*
>> +	 * Steps 2+5-6: Audio packets per line.
>> +	 *   AudioPackets_Line = CEIL[R_AP * htotal / f_pixelclk_max]
>> +	 *
>> +	 * With audio_pkt_rate_x4_x1000 = R_AP * 4 * 1000:
>> +	 *   = CEIL[audio_pkt_rate_x4_x1000 * htotal / (4 * 1000 * pixel_clk_max_hz)]
>> +	 */
>> +	audio_packets_line = DIV64_U64_ROUND_UP(audio_pkt_rate_x4_x1000 * mode->htotal,
>> +						(u64)4 * 1000 * pixel_clk_max_hz);
>> +
>> +	/*
>> +	 * Steps 7-9: Hblank overhead.
>> +	 * Standard:  2*dip_guardband + 2*control_period + video_guardband
>> +	 *          = 2*2 + 2*12 + 2 = 30
>> +	 * HDCP 1.x:  rekey_period + dip_guardband + control_period + video_guardband
>> +	 *          = 58 + 2 + 12 + 2 = 74
>> +	 *
>> +	 * Always use HDCP 1.x worst case (74) since HDCP can be toggled
>> +	 * via fastset without compute_config.
>> +	 */
>> +	hblank_overhead = 74;
>> +
>> +	/*
>> +	 * Step 10: Required TMDS cycles for Audio.
>> +	 *  32 TMDS clock cycles per audio packet.
>> +	 *   Hblank_audio_min = 32 * AudioPackets_Line + Hblank_overhead
>> +	 */
>> +	required_tmds = 32 * audio_packets_line + hblank_overhead;
>> +
>> +	/*
>> +	 * Part 3: audio supported if Hblank_audio_min <= TB_blank and
>> +	 * audio packets per line <= Maximum allowed packets per line (18)
>> +	 */
>> +
>> +	return required_tmds <= available_tmds && audio_packets_line <= 18;
>> +}
>> +
>> +static void intel_audio_hdmi_eld_compute_config(struct intel_crtc_state *crtc_state)
>> +{
>> +	static const int sad_freqs[] = {
>> +		32000, 44100, 48000, 88200, 96000, 176400, 192000
>> +	};
>> +	const struct drm_display_mode *mode = &crtc_state->hw.adjusted_mode;
>> +	int hblank = mode->htotal - mode->hdisplay;
>> +	int bpc = crtc_state->pipe_bpp / 3;
>> +	int ycbcr_420_divider = (crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR420) ? 2 : 1;
>> +	int available_tmds;
>> +	u8 *eld = crtc_state->eld;
>> +	int mnl = drm_eld_mnl(eld);
>> +	int sad_count = drm_eld_sad_count(eld);
>> +	int i = 0;
>> +
>> +	/* Only applies to HDMI TMDS, not FRL */
>> +	if (intel_hdmi_is_frl(crtc_state->port_clock))
>> +		return;
>> +	/*
>> +	 * Part 1: Calculate available TMDS clock cycles (TB_blank).
>> +	 *
>> +	 * TB_blank = CEILING[hblank * K_CD / K_420]
>> +	 *
>> +	 * K_CD = 1 for YCbCr4:2:2, bpc / 8 otherwise.
>> +	 * K_420 = 2 for YCbCr4:2:0, 1 otherwise.
>> +	 * Rearranged: CEILING[hblank * bpc / (8 * K_420)]
>> +	 *
>> +	 * TODO: As and when support for YCbCr4:2:2 is added, set bpc = 8
>> +	 * to achieve K_CD = 1
>> +	 */
>> +	available_tmds = DIV_ROUND_UP(hblank * bpc, 8 * ycbcr_420_divider);
>> +
>> +	while (i < sad_count) {
>> +		int sad_offset = DRM_ELD_CEA_SAD(mnl, i);
>> +		int channels = (eld[sad_offset] & 0x7) + 1;
>> +		u8 freq_mask = eld[sad_offset + 1];
>> +		u8 new_freq_mask = 0;
>> +		int bit;
>> +
>> +		for (bit = 0; bit < 7; bit++) {
>> +			if (!(freq_mask & BIT(bit)))
>> +				continue;
>> +			if (hdmi_audio_rate_supported(crtc_state, available_tmds,
>> +						      sad_freqs[bit], channels))
>> +				new_freq_mask |= BIT(bit);
>> +		}
>> +
>> +		eld[sad_offset + 1] = new_freq_mask;
>> +
>> +		if (!new_freq_mask) {
>> +			/* Remove this SAD by compacting the rest */
>> +			memmove(&eld[DRM_ELD_CEA_SAD(mnl, i)],
>> +				&eld[DRM_ELD_CEA_SAD(mnl, i + 1)],
>> +				(sad_count - i - 1) * 3);
> 
> What if there is no SAD i + 1?
> 

It should lead to memmove(x, y, 0) and therefore a no-op.

>> +			memset(&eld[DRM_ELD_CEA_SAD(mnl, sad_count - 1)], 0, 3);
>> +			sad_count--;
>> +			continue;
>> +		}
>> +		i++;
> 
> I believe it would all be more readable and robust if you used a for
> loop to go through all the sads, without modifing the end conditions
> while iterating, and used a separate destination index for when you have
> to move sads over. And only moved the sads one at a time as you iterate,
> not all the time.
> 
> Sometimes decrementing the sad_count and sometimes incrementing i makes
> this difficult to reason.
> 

Ack. I will try to simplify the loop in the next version.

==
Chaitanya

>> +	}
>> +
>> +	/* Update SAD count in ELD header */
>> +	eld[DRM_ELD_SAD_COUNT_CONN_TYPE] &= ~DRM_ELD_SAD_COUNT_MASK;
>> +	eld[DRM_ELD_SAD_COUNT_CONN_TYPE] |= sad_count << DRM_ELD_SAD_COUNT_SHIFT;
>> +
>> +	/* Recalculate baseline ELD length (in dwords) */
>> +	eld[DRM_ELD_BASELINE_ELD_LEN] =
>> +		DIV_ROUND_UP(drm_eld_calc_baseline_block_size(eld), 4);
>> +}
>> +
>>   static
>>   bool intel_audio_needs_cpu_transcoder_id(const struct intel_crtc_state *crtc_state)
>>   {
>> @@ -725,6 +871,9 @@ bool intel_audio_compute_config(struct intel_encoder *encoder,
>>   	BUILD_BUG_ON(sizeof(crtc_state->eld) != sizeof(connector->eld));
>>   	memcpy(crtc_state->eld, connector->eld, sizeof(crtc_state->eld));
>>   
>> +	if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI))
>> +		intel_audio_hdmi_eld_compute_config(crtc_state);
>> +
>>   	crtc_state->eld[6] = drm_av_sync_delay(connector, adjusted_mode) / 2;
>>   	mutex_unlock(&connector->eld_mutex);
> 


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2026-08-12 12:56 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-12  6:54 [v3 0/2] drm/i915/audio: Add HDMI TMDS audio bandwidth check Chaitanya Kumar Borah
2026-08-12  6:54 ` [v3 1/2] drm/i915/hdmi: Move audio compute config after format selection Chaitanya Kumar Borah
2026-08-12  6:54 ` [v3 2/2] drm/i915/audio: Prune ELD SADs based on HDMI audio bandwidth Chaitanya Kumar Borah
2026-08-12  8:21   ` Jani Nikula
2026-08-12 12:56     ` Borah, Chaitanya Kumar
2026-08-12  8:07 ` ✓ i915.CI.BAT: success for drm/i915/audio: Add HDMI TMDS audio bandwidth check (rev3) Patchwork
2026-08-12 10:15 ` ✗ i915.CI.Full: failure " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox