From: Swati Sharma <swati2.sharma@intel.com>
To: igt-dev@lists.freedesktop.org
Cc: Swati Sharma <swati2.sharma@intel.com>
Subject: [PATCH i-g-t 2/2] tests/intel: Add mode-rejected-max-dotclock subtest to kms_cdclk
Date: Wed, 19 Aug 2026 13:08:58 +0530 [thread overview]
Message-ID: <20260819073858.185542-2-swati2.sharma@intel.com> (raw)
In-Reply-To: <20260819073858.185542-1-swati2.sharma@intel.com>
Add a subtest that verifies the driver rejects a modeset when the
requested pixel clock exceeds the platform's maximum dotclock
capability. The test reads the max dotclock from debugfs via
igt_get_max_dotclock(), sets the mode clock 50 MHz above, and
asserts the atomic commit fails.
Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
Assisted-by: GitHub Copilot:Claude Opus 4.6
---
tests/intel/kms_cdclk.c | 64 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 64 insertions(+)
diff --git a/tests/intel/kms_cdclk.c b/tests/intel/kms_cdclk.c
index 070fba400..33007f6b3 100644
--- a/tests/intel/kms_cdclk.c
+++ b/tests/intel/kms_cdclk.c
@@ -44,6 +44,10 @@
*
* SUBTEST: plane-scaling
* Description: Plane scaling test to validate cdclk frequency change.
+ *
+ * SUBTEST: mode-rejected-max-dotclock
+ * Description: Verify that a mode exceeding the maximum pixel clock
+ * frequency is rejected by the driver.
*/
IGT_TEST_DESCRIPTION("Test cdclk features : crawling and squashing");
@@ -354,6 +358,62 @@ static void run_cdclk_test(data_t *data, uint32_t flags)
}
}
+static void test_mode_rejected_max_dotclock(data_t *data)
+{
+ igt_display_t *display = &data->display;
+ igt_output_t *output;
+ igt_crtc_t *crtc;
+ int max_dotclock, ret;
+ struct igt_fb fb;
+
+ max_dotclock = igt_get_max_dotclock(data->drm_fd);
+ igt_require_f(max_dotclock > 0,
+ "Could not read max pixel clock\n");
+
+ for_each_crtc_with_valid_output(display, crtc, output) {
+ drmModeModeInfo mode = *igt_output_get_mode(output);
+
+ igt_output_set_crtc(output, crtc);
+ if (!intel_pipe_output_combo_valid(display)) {
+ igt_output_set_crtc(output, NULL);
+ continue;
+ }
+
+ /* Set clock above PHY max */
+ mode.clock = max_dotclock + 50000;
+
+ igt_display_reset(display);
+ igt_output_set_crtc(output, crtc);
+ igt_output_override_mode(output, &mode);
+
+ igt_create_pattern_fb(data->drm_fd,
+ mode.hdisplay, mode.vdisplay,
+ DRM_FORMAT_XRGB8888,
+ DRM_FORMAT_MOD_LINEAR, &fb);
+ igt_plane_set_fb(igt_output_get_plane_type(output,
+ DRM_PLANE_TYPE_PRIMARY), &fb);
+
+ ret = igt_display_try_commit_atomic(display,
+ DRM_MODE_ATOMIC_ALLOW_MODESET,
+ NULL);
+
+ igt_info("Output %s: clock=%dkHz (max=%dkHz) -> %s\n",
+ output->name, mode.clock, max_dotclock,
+ ret ? "rejected" : "accepted");
+
+ igt_assert_f(ret != 0,
+ "Mode with clock=%dkHz exceeding max=%dkHz "
+ "should be rejected on %s\n",
+ mode.clock, max_dotclock, output->name);
+
+ igt_plane_set_fb(igt_output_get_plane_type(output,
+ DRM_PLANE_TYPE_PRIMARY), NULL);
+ igt_output_set_crtc(output, NULL);
+ igt_remove_fb(data->drm_fd, &fb);
+ break;
+ }
+}
+
int igt_main()
{
data_t data = {};
@@ -384,6 +444,10 @@ int igt_main()
igt_subtest("mode-transition-all-outputs")
test_mode_transition_on_all_outputs(&data);
+ igt_describe("Verify that a mode exceeding max pixel clock is rejected.");
+ igt_subtest("mode-rejected-max-dotclock")
+ test_mode_rejected_max_dotclock(&data);
+
igt_fixture() {
igt_display_fini(&data.display);
drm_close_driver(data.drm_fd);
--
2.25.1
next prev parent reply other threads:[~2026-08-19 7:31 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-19 7:38 [PATCH i-g-t 1/2] tests/intel: Add kms_hdmi_audio_bw test Swati Sharma
2026-08-19 7:38 ` Swati Sharma [this message]
2026-08-31 9:32 ` [PATCH i-g-t 2/2] tests/intel: Add mode-rejected-max-dotclock subtest to kms_cdclk Borah, Chaitanya Kumar
2026-08-19 9:45 ` ✓ Xe.CI.BAT: success for series starting with [i-g-t,1/2] tests/intel: Add kms_hdmi_audio_bw test Patchwork
2026-08-19 10:01 ` ✓ i915.CI.BAT: " Patchwork
2026-08-19 12:28 ` ✓ Xe.CI.FULL: " Patchwork
2026-08-19 15:13 ` ✓ i915.CI.Full: " Patchwork
2026-08-31 8:55 ` [PATCH i-g-t 1/2] " Borah, Chaitanya Kumar
2026-09-01 12:03 ` Borah, Chaitanya Kumar
2026-09-08 6:51 ` Sharma, Swati2
-- strict thread matches above, loose matches on Subject: below --
2026-08-14 12:16 [PATCH i-g-t 2/2] tests/intel: Add mode-rejected-max-dotclock subtest to kms_cdclk Swati Sharma
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260819073858.185542-2-swati2.sharma@intel.com \
--to=swati2.sharma@intel.com \
--cc=igt-dev@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.