summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBhanuprakash Modem <bhanuprakash.modem@intel.com>2022-07-05 10:12:28 +0530
committerBhanuprakash Modem <bhanuprakash.modem@intel.com>2022-07-06 08:45:21 +0530
commit261740e5fd4990a549f537d3272351ec84458710 (patch)
tree67cfcbffca6a1c8ed5709a70fa7f934aea026cc0
parent1a3ffecd400b8f82c35745fa2e07992f6bdeede2 (diff)
tests/kms_dither: Reset max_bpc before exiting the subtest
Before exiting the subtest, we must reset the connector's "max_bpc" property to it's default value, else it may effect the consequent subtests. V2: * Don't trigger a subtest if requested bpc > connecot's max_bpc. Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> Reviewed-by: Karthik B S <karthik.b.s@intel.com>
-rw-r--r--tests/kms_dither.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/tests/kms_dither.c b/tests/kms_dither.c
index 02896b37..3a44e797 100644
--- a/tests/kms_dither.c
+++ b/tests/kms_dither.c
@@ -128,6 +128,7 @@ static void test_dithering(data_t *data, enum pipe pipe,
igt_display_t *display = &data->display;
dither_status_t status;
int bpc, ret;
+ bool constraint;
igt_info("Dithering test execution on %s PIPE_%s\n",
output->name, kmstest_pipe_name(pipe));
@@ -148,12 +149,12 @@ static void test_dithering(data_t *data, enum pipe pipe,
else
ret = igt_display_try_commit2(display, COMMIT_LEGACY);
- igt_require_f(!ret, "%s don't support %d-bpc\n",
- output->name, output_bpc);
+ if (ret)
+ goto cleanup;
- igt_require_f(i915_clock_constraint(data, pipe, output, output_bpc),
- "No supported mode found to use %d-bpc on %s\n",
- output_bpc, output->name);
+ constraint = i915_clock_constraint(data, pipe, output, output_bpc);
+ if (!constraint)
+ goto cleanup;
/*
* Check the status of Dithering block:
@@ -174,12 +175,17 @@ static void test_dithering(data_t *data, enum pipe pipe,
* Otherwise, previously updated value will stay forever and
* may cause the failures for next/other subtests.
*/
+cleanup:
igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, bpc);
igt_plane_set_fb(data->primary, NULL);
igt_output_set_pipe(output, PIPE_NONE);
igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
igt_remove_fb(data->drm_fd, &data->fb);
+ igt_require_f(!ret, "%s don't support %d-bpc\n", output->name, output_bpc);
+ igt_require_f(constraint, "No supported mode found to use %d-bpc on %s\n",
+ output_bpc, output->name);
+
/* Compute the result. */
if (fb_bpc > output_bpc)
igt_assert_f(status.dither, "(fb_%dbpc > output_%dbpc): Dither should be enabled\n",
@@ -210,6 +216,9 @@ run_dither_test(data_t *data, int fb_bpc, int fb_format, int output_bpc)
if (!is_supported(output))
continue;
+ if (igt_get_output_max_bpc(data->drm_fd, output->name) < output_bpc)
+ continue;
+
for_each_pipe(display, pipe) {
if (igt_pipe_connector_valid(pipe, output)) {
igt_dynamic_f("pipe-%s-%s",