summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBhanuprakash Modem <bhanuprakash.modem@intel.com>2024-06-18 13:52:46 +0530
committerBhanuprakash Modem <bhanuprakash.modem@intel.com>2024-06-27 17:35:07 +0530
commit2acb8ecac6d7f9f28bc96904bfbbb3843be7412b (patch)
treea068412a36463a158ca13f4e75ff89117c86307d
parent0fb76cf8efc52cba3cd987f6b85762c01d8afc87 (diff)
tests/kms_flip: Force joiner support in bigjoiner checks
As we recently introduced the option (through debugfs) to force the bigjoiner, needs to extend the support in bigjoiner checks to handle the force joiner. V2: - Fix connector name Cc: Kunal Joshi <kunal1.joshi@intel.com> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> Reviewed-by: Jeevan B <jeevan.b@intel.com>
-rwxr-xr-xtests/kms_flip.c23
1 files changed, 19 insertions, 4 deletions
diff --git a/tests/kms_flip.c b/tests/kms_flip.c
index d352ee14c..cbabbe74f 100755
--- a/tests/kms_flip.c
+++ b/tests/kms_flip.c
@@ -1730,22 +1730,37 @@ static void run_test_on_crtc_set(struct test_output *o, int *crtc_idxs,
/*
* Handle BW limitations on intel hardware:
*
- * if mode resolution > 5K (or) mode clock > max_dotclock, then ignore
+ * if force joiner (or) mode resolution > 5K (or) mode clock > max_dotclock, then ignore
* - last crtc in single/multi-connector config
* - consecutive crtcs in multi-connector config
*
* in multi-connector config ignore if
- * - previous crtc (mode resolution > 5K or mode clock > max_dotclock) and
+ * - previous crtc (force joiner or mode resolution > 5K or mode clock > max_dotclock) and
* - current & previous crtcs are consecutive
*/
if (!is_intel_device(drm_fd))
goto test;
for (i = 0; i < crtc_count; i++) {
- if ((igt_bigjoiner_possible(&o->kmode[i], max_dotclock) &&
+ char conn_name[24], prev_conn_name[24];
+
+ snprintf(conn_name, sizeof(conn_name),
+ "%s-%d",
+ kmstest_connector_type_str(o->kconnector[i]->connector_type),
+ o->kconnector[i]->connector_type_id);
+
+ if (i > 0)
+ snprintf(prev_conn_name, sizeof(prev_conn_name),
+ "%s-%d",
+ kmstest_connector_type_str(o->kconnector[i - 1]->connector_type),
+ o->kconnector[i - 1]->connector_type_id);
+
+ if (((igt_check_force_joiner_status(drm_fd, conn_name) ||
+ igt_bigjoiner_possible(&o->kmode[i], max_dotclock)) &&
((crtc_idxs[i] >= (total_crtcs - 1)) ||
((i < (crtc_count - 1)) && (abs(crtc_idxs[i + 1] - crtc_idxs[i]) <= 1)))) ||
- ((i > 0) && igt_bigjoiner_possible(&o->kmode[i - 1], max_dotclock) &&
+ ((i > 0) && (igt_check_force_joiner_status(drm_fd, prev_conn_name) ||
+ igt_bigjoiner_possible(&o->kmode[i - 1], max_dotclock)) &&
(abs(crtc_idxs[i] - crtc_idxs[i - 1]) <= 1))) {
igt_debug("Combo: %s is not possible with selected mode(s).\n", test_name);