[igt-dev] [PATCH i-g-t v3 1/2] tests/kms_dp_dsc: Force a full modeset when we force dsc enable
Manasi Navare
manasi.d.navare at intel.com
Tue Apr 9 01:46:18 UTC 2019
DSC enable gets configured during compute_config and needs
a full modeset to force DSC.
Sometimes in between the tests, if the initial output is same as the
mode being set for DSC then it will not do a full modeset.
So we disable the output before forcing a mode with DSC enable.
Fixes: db19bccc1c22 ("test/kms_dp_dsc: Basic KMS test to validate VESA DSC on DP/eDP")
Cc: Petri Latvala <petri.latvala at intel.com>
Cc: Anusha Srivatsa <anusha.srivatsa at intel.com>
Cc: Imre Deak <imre.deak at intel.com>
Signed-off-by: Manasi Navare <manasi.d.navare at intel.com>
---
tests/kms_dp_dsc.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/tests/kms_dp_dsc.c b/tests/kms_dp_dsc.c
index da93cd74..7ba7c4ef 100644
--- a/tests/kms_dp_dsc.c
+++ b/tests/kms_dp_dsc.c
@@ -161,12 +161,17 @@ static void update_display(data_t *data, enum dsc_test_type test_type)
return;
}
+ /* Disable the output first */
+ igt_output_set_pipe(data->output, PIPE_NONE);
+ igt_display_commit(&data->display);
+
if (test_type == test_basic_dsc_enable) {
bool enabled;
igt_debug("DSC is supported on %s\n", data->conn_name);
force_dp_dsc_enable(data);
+ igt_output_set_pipe(data->output, data->pipe);
igt_create_pattern_fb(data->drm_fd, data->mode->hdisplay,
data->mode->vdisplay,
DRM_FORMAT_XRGB8888,
@@ -174,6 +179,8 @@ static void update_display(data_t *data, enum dsc_test_type test_type)
&data->fb_test_pattern);
primary = igt_output_get_plane_type(data->output,
DRM_PLANE_TYPE_PRIMARY);
+
+ /* Now set the output to the desired mode */
igt_plane_set_fb(primary, &data->fb_test_pattern);
igt_display_commit(&data->display);
@@ -187,7 +194,7 @@ static void update_display(data_t *data, enum dsc_test_type test_type)
clear_dp_dsc_enable(data);
igt_assert_f(enabled,
- "Default DSC enable failed on Connector: %s Pipe: %s",
+ "Default DSC enable failed on Connector: %s Pipe: %s\n",
data->conn_name,
kmstest_pipe_name(data->pipe));
} else {
@@ -203,7 +210,6 @@ static void run_test(data_t *data, igt_output_t *output,
for_each_pipe(&data->display, pipe) {
if (igt_pipe_connector_valid(pipe, output)) {
- igt_output_set_pipe(output, pipe);
data->pipe = pipe;
data->output = output;
update_display(data, test_type);
--
2.19.1
More information about the igt-dev
mailing list