[igt-dev] [i-g-t V2 01/52] lib/igt_kms: Add a helper for igt test constraint
Bhanuprakash Modem
bhanuprakash.modem at intel.com
Tue Sep 6 09:49:39 UTC 2022
Add an IGT helper to check the test constraints to decide whether to run/skip
the subtest.
Example:
* Pipe-D can't support mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.
* MSO is supported only on PIPE_A/PIPE_B.
This helper is supposed to be a superset of all test constraints. But as of
now, only Intel specific hardware/configuration-related limitations like
Bigjoiner/MSO can go through this helper.
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem at intel.com>
---
lib/igt_kms.c | 39 +++++++++++++++++++++++++++++++++++++++
lib/igt_kms.h | 1 +
2 files changed, 40 insertions(+)
diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 7d4916a7..3a1bc391 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -5824,3 +5824,42 @@ bool igt_parse_mode_string(const char *mode_string, drmModeModeInfo *mode)
return true;
}
+
+/*
+ * igt_test_constraint:
+ * @display: a pointer to an #igt_display_t structure
+ *
+ * Every individual test must use igt_output_set_pipe() before calling this
+ * helper, so that this function will get all active pipes from connected
+ * outputs (i.e. pending_pipe != PIPE_NONE) and check the selected combo is
+ * valid or not.
+ *
+ * This helper is supposed to be a superset of all test constraints.
+ *
+ * Example:
+ * * Pipe-D can't support mode > 5K
+ * * To use 8K mode on a pipe then consecutive pipe must be free.
+ * * MSO is supported only on PIPE_A/PIPE_B.
+ *
+ * Returns: true if a valid crtc/connector mode combo found, else false
+ */
+bool igt_test_constraint(igt_display_t *display)
+{
+ bool result = true;
+
+ /*
+ * TODO: Add all possible test constraints here.
+ *
+ * Intention of this helper is that all kms tests should use this
+ * helper to decide whether to run/skip the subtest.
+ *
+ * As of now, only Intel specific hardware/configuration-related
+ * limitations like Bigjoiner/MSO are going through this helper.
+ *
+ * Please update this helper as per the requirement.
+ */
+ if (is_i915_device(display->drm_fd))
+ result &= igt_check_bigjoiner_support(display);
+
+ return result;
+}
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index a2cf0937..82186cfe 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -975,5 +975,6 @@ bool igt_max_bpc_constraint(igt_display_t *display, enum pipe pipe,
igt_output_t *output, int bpc);
bool igt_check_bigjoiner_support(igt_display_t *display);
bool igt_parse_mode_string(const char *mode_string, drmModeModeInfo *mode);
+bool igt_test_constraint(igt_display_t *display);
#endif /* __IGT_KMS_H__ */
--
2.35.1
More information about the igt-dev
mailing list