[PATCH i-g-t 2/2] tests/intel/kms_psr2_sf: extend tests for panel replay sf

Joshi, Kunal1 kunal1.joshi at intel.com
Mon Feb 19 05:25:13 UTC 2024


Hello Jouni,

On 2/16/2024 1:55 PM, Hogander, Jouni wrote:
> On Thu, 2024-02-08 at 20:24 +0530, Kunal Joshi wrote:
>> Extend the tests to cover panel replay selective fetch feature.
>>
>>  From kms_psr2_sf test point of view we have
>> check_pr_psr2_sel_fetch_support
>> function to check if PR/PSR2 selective fetch is supported for an
>> output
>> if output supports selective fetch then we check we enter DEEP_SLEEP
>> mode
>> in run function
>>
>> v2: fixed dynamic test name
>> v3: use check_psr2_support (Jouni)
>> v4: correct order of checks in check_pr_psr2_sel_fetch_support
>> (Jouni)
>>      use appropriate psr mode in psr_wait_entry (Jouni)
>>
>> Cc: Jouni Högander<jouni.hogander at intel.com>
>> Cc: Animesh Manna<animesh.manna at intel.com>
>> Cc: Arun R Murthy<arun.r.murthy at intel.com>
>> Signed-off-by: Kunal Joshi<kunal1.joshi at intel.com>
>> ---
>>   tests/intel/kms_psr2_sf.c | 147 +++++++++++++++++++++++++++++++-----
>> --
>>   1 file changed, 120 insertions(+), 27 deletions(-)
>>
>> diff --git a/tests/intel/kms_psr2_sf.c b/tests/intel/kms_psr2_sf.c
>> index 8e6a9e02c..0595c1f11 100644
>> --- a/tests/intel/kms_psr2_sf.c
>> +++ b/tests/intel/kms_psr2_sf.c
>> @@ -172,6 +172,7 @@ typedef struct {
>>          uint32_t screen_changes;
>>          int cur_x, cur_y;
>>          enum pipe pipe;
>> +       enum psr_mode psr_mode;
>>          enum {
>>                  FEATURE_NONE  = 0,
>>                  FEATURE_DSC   = 1,
>> @@ -179,6 +180,34 @@ typedef struct {
>>          } coexist_feature;
>>   } data_t;
>>   
>> +static enum psr_mode get_sel_fetch_mode_for_output(data_t *data,
>> igt_output_t *output)
>> +{
>> +       enum psr_mode mode = PSR_DISABLED;
>> +
>> +       if (psr_sink_support(data->drm_fd, data->debugfs_fd,
>> +                                                PR_MODE_SEL_FETCH,
>> output))
>> +               mode = PR_MODE_SEL_FETCH;
>> +       else if (psr_sink_support(data->drm_fd, data->debugfs_fd,
>> +                                                         PSR_MODE_2,
>> output))
>> +               mode = PSR_MODE_2;
>> +       else
>> +               igt_info("selective fetch not supported on output
>> %s\n", output->name);
>> +
>> +       return mode;
>> +}
>> +
>> +static const char *get_psr_mode_str_for_output(data_t *data,
>> igt_output_t *output)
>> +{
>> +       const char *psr_mode = NULL;
> If you are doing it this way this variable should be static. I'm not
> sure if renaming these testcases to pr-* and psr2-* gives any benefit.
> I'll guess it is ok, if you want to do that change.

Have addressed your comment in the next revision, kept the naming just 
to know
test executed on PR or PSR panel.

>
>> +
>> +       if (get_sel_fetch_mode_for_output(data, output) ==
>> PR_MODE_SEL_FETCH)
>> +               psr_mode = "pr-";
>> +       else if (get_sel_fetch_mode_for_output(data, output) ==
>> PSR_MODE_2)
>> +               psr_mode = "psr2-";
>> +       igt_assert_f(psr_mode, "Invalid psr mode\n");
>> +       return psr_mode;
>> +}
>> +
>>   static const char *op_str(enum operations op)
>>   {
>>          static const char * const name[] = {
>> @@ -688,7 +717,7 @@ static void damaged_plane_move(data_t *data)
>>   
>>          igt_display_commit2(&data->display, COMMIT_ATOMIC);
>>   
>> -       igt_assert(psr_wait_entry(data->debugfs_fd, PSR_MODE_2,
>> NULL));
>> +       igt_assert(psr_wait_entry(data->debugfs_fd, data->psr_mode,
>> data->output));
> Not really matter of this patch. I think at some point you need one
> more patch to differentiate in psr_wait_entry (psr_active_check) based
> on output type eDP vs. DP. See Bspec 68920 "Additional programming
> considerations (registers common between eDP and DP)".
>
Sure will send this changes as separate later.
>
> BR,
>
> Jouni Högander
>
>>   
>>          expected_output(data);
>>   }
>> @@ -788,7 +817,7 @@ static void plane_move_continuous(data_t *data)
>>   {
>>          int target_x, target_y;
>>   
>> -       igt_assert(psr_wait_entry(data->debugfs_fd, PSR_MODE_2,
>> NULL));
>> +       igt_assert(psr_wait_entry(data->debugfs_fd, data->psr_mode,
>> data->output));
>>   
>>          get_target_coords(data, &target_x, &target_y);
>>   
>> @@ -865,7 +894,7 @@ static void damaged_plane_update(data_t *data)
>>          igt_plane_set_position(data->test_plane, 0, 0);
>>          igt_display_commit2(&data->display, COMMIT_ATOMIC);
>>   
>> -       igt_assert(psr_wait_entry(data->debugfs_fd, PSR_MODE_2,
>> NULL));
>> +       igt_assert(psr_wait_entry(data->debugfs_fd, data->psr_mode,
>> data->output));
>>   
>>          expected_output(data);
>>   }
>> @@ -874,7 +903,7 @@ static void run(data_t *data)
>>   {
>>          int i;
>>   
>> -       igt_assert(psr_wait_entry(data->debugfs_fd, PSR_MODE_2,
>> NULL));
>> +       igt_assert(psr_wait_entry(data->debugfs_fd, data->psr_mode,
>> data->output));
>>   
>>          if (data->fbc_flag == true && data->op_fbc_mode ==
>> FBC_ENABLED)
>>                  igt_assert_f(intel_fbc_wait_until_enabled(data-
>>> drm_fd,
>> @@ -952,14 +981,24 @@ static void cleanup(data_t *data)
>>          igt_remove_fb(data->drm_fd, &data->fb_test);
>>   }
>>   
>> -static int check_psr2_support(data_t *data)
>> +static bool check_pr_psr2_sel_fetch_support(data_t *data)
>>   {
>> -       int status;
>> +       bool status = false;
>> +       enum psr_mode psr_mode;
>> +
>> +       /* Check sink supports PR/PSR2 selective fetch */
>> +       psr_mode = get_sel_fetch_mode_for_output(data, data->output);
>> +       if (psr_mode == PSR_DISABLED)
>> +               return false;
>> +
>> +       /* Check if selective fetch can be enabled */
>> +       if (!selective_fetch_check(data->debugfs_fd, data->output))
>> +               igt_assert("Selective fetch is not enabled even
>> though panel should support it\n");
>>   
>>          prepare(data);
>> -       status = psr_wait_entry(data->debugfs_fd, PSR_MODE_2, NULL);
>> +       /* We enter into DEEP_SLEEP for both PSR2 and PR sel fetch */
>> +       status = psr_wait_entry(data->debugfs_fd, psr_mode, data-
>>> output);
>>          cleanup(data);
>> -
>>          return status;
>>   }
>>   
>> @@ -981,6 +1020,8 @@ pipe_output_combo_valid(igt_display_t *display,
>>   
>>   igt_main
>>   {
>> +       bool output_supports_pr_psr2_sel_fetch = false;
>> +       bool pr_psr2_sel_fetch_supported = false;
>>          data_t data = {};
>>          igt_output_t *outputs[IGT_MAX_PIPES * IGT_MAX_PIPES];
>>          int i, j, k, y;
>> @@ -1000,11 +1041,6 @@ igt_main
>>                  data.debugfs_fd = igt_debugfs_dir(data.drm_fd);
>>                  kmstest_set_vt_graphics_mode();
>>   
>> -               igt_require_f(psr_sink_support(data.drm_fd,
>> -                                              data.debugfs_fd,
>> PSR_MODE_2,
>> -                                              NULL),
>> -                             "Sink does not support PSR2\n");
>> -
>>                  display_init(&data);
>>   
>>                  if
>> ((intel_display_ver(intel_get_drm_devid(data.drm_fd)) >= 20) &&
>> @@ -1023,7 +1059,8 @@ igt_main
>>   
>>                  for_each_pipe_with_valid_output(&data.display,
>> data.pipe, data.output) {
>>                          coexist_features[n_pipes] = 0;
>> -                       if (check_psr2_support(&data)) {
>> +                       output_supports_pr_psr2_sel_fetch =
>> check_pr_psr2_sel_fetch_support(&data);
>> +                       if (output_supports_pr_psr2_sel_fetch) {
>>                                  pipes[n_pipes] = data.pipe;
>>                                  outputs[n_pipes] = data.output;
>>   
>> @@ -1032,7 +1069,10 @@ igt_main
>>   
>>                                  n_pipes++;
>>                          }
>> +                       pr_psr2_sel_fetch_supported |=
>> output_supports_pr_psr2_sel_fetch;
>>                  }
>> +               igt_require_f(pr_psr2_sel_fetch_supported,
>> +                                         "No output supports
>> selective fetch\n");
>>          }
>>   
>>          for (y = 0; y < ARRAY_SIZE(fbc_status); y++) {
>> @@ -1053,13 +1093,17 @@ igt_main
>>                                  for (j = FEATURE_NONE; j <
>> FEATURE_COUNT; j++) {
>>                                          if (j != FEATURE_NONE &&
>> !(coexist_features[i] & j))
>>                                                  continue;
>> -                                       igt_dynamic_f("pipe-%s-%s%s",
>> kmstest_pipe_name(pipes[i]),
>> +                                       igt_dynamic_f("%s-pipe-%s-
>> %s%s", get_psr_mode_str_for_output(&data, outputs[i]),
>> +
>> kmstest_pipe_name(pipes[i]),
>>                                                       
>> igt_output_name(outputs[i]),
>>                                                       
>> coexist_feature_str(j)) {
>>                                                  data.pipe = pipes[i];
>>                                                  data.output =
>> outputs[i];
>>                                                  data.test_plane_id =
>> DRM_PLANE_TYPE_PRIMARY;
>>                                                  data.coexist_feature
>> = j;
>> +                                               data.psr_mode =
>> get_sel_fetch_mode_for_output(&data, data.output);
>> +                                               igt_assert_f(data.psr
>> _mode != PSR_DISABLED,
>> +
>>      "Invalid psr mode\n");
>>                                                  for (k = 1; k <=
>> MAX_DAMAGE_AREAS; k++) {
>>                                                          data.damage_a
>> rea_count = k;
>>                                                          prepare(&data
>> );
>> @@ -1086,7 +1130,8 @@ igt_main
>>                                          for (j = FEATURE_NONE; j <
>> FEATURE_COUNT; j++) {
>>                                                  if (j != FEATURE_NONE
>> && !(coexist_features[i] & j))
>>                                                          continue;
>> -                                               igt_dynamic_f("pipe-
>> %s-%s%s",
>> +                                               igt_dynamic_f("%s-
>> pipe-%s-%s%s",
>> +
>> get_psr_mode_str_for_output(&data, outputs[i]),
>>                                                               
>> kmstest_pipe_name(pipes[i]),
>>                                                               
>> igt_output_name(outputs[i]),
>>                                                               
>> coexist_feature_str(j)) {
>> @@ -1094,6 +1139,9 @@ igt_main
>>                                                          data.output =
>> outputs[i];
>>                                                          data.test_pla
>> ne_id = DRM_PLANE_TYPE_PRIMARY;
>>                                                          data.coexist_
>> feature = j;
>> +                                                       data.psr_mode
>> = get_sel_fetch_mode_for_output(&data, data.output);
>> +                                                       igt_assert_f(
>> data.psr_mode != PSR_DISABLED,
>> +
>>              "Invalid psr mode\n");
>>                                                          for (k = 1; k
>> <= MAX_DAMAGE_AREAS; k++) {
>>                                                                  data.
>> damage_area_count = k;
>>                                                                  prepa
>> re(&data);
>> @@ -1118,13 +1166,17 @@ igt_main
>>                                  for (j = FEATURE_NONE; j <
>> FEATURE_COUNT; j++) {
>>                                          if (j != FEATURE_NONE &&
>> !(coexist_features[i] & j))
>>                                                  continue;
>> -                                       igt_dynamic_f("pipe-%s-%s%s",
>> kmstest_pipe_name(pipes[i]),
>> +                                       igt_dynamic_f("%s-pipe-%s-
>> %s%s", get_psr_mode_str_for_output(&data, outputs[i]),
>> +
>> kmstest_pipe_name(pipes[i]),
>>                                                       
>> igt_output_name(outputs[i]),
>>                                                       
>> coexist_feature_str(j)) {
>>                                                  data.pipe = pipes[i];
>>                                                  data.output =
>> outputs[i];
>>                                                  data.test_plane_id =
>> DRM_PLANE_TYPE_OVERLAY;
>>                                                  data.coexist_feature
>> = j;
>> +                                               data.psr_mode =
>> get_sel_fetch_mode_for_output(&data, data.output);
>> +                                               igt_assert_f(data.psr
>> _mode != PSR_DISABLED,
>> +
>>      "Invalid psr mode\n");
>>                                                  for (k = 1; k <=
>> MAX_DAMAGE_AREAS; k++) {
>>                                                          data.damage_a
>> rea_count = k;
>>                                                          prepare(&data
>> );
>> @@ -1148,13 +1200,17 @@ igt_main
>>                                  for (j = FEATURE_NONE; j <
>> FEATURE_COUNT; j++) {
>>                                          if (j != FEATURE_NONE &&
>> !(coexist_features[i] & j))
>>                                                  continue;
>> -                                       igt_dynamic_f("pipe-%s-%s%s",
>> kmstest_pipe_name(pipes[i]),
>> +                                       igt_dynamic_f("%s-pipe-%s-
>> %s%s", get_psr_mode_str_for_output(&data, outputs[i]),
>> +
>> kmstest_pipe_name(pipes[i]),
>>                                                       
>> igt_output_name(outputs[i]),
>>                                                       
>> coexist_feature_str(j)) {
>>                                                  data.pipe = pipes[i];
>>                                                  data.output =
>> outputs[i];
>>                                                  data.test_plane_id =
>> DRM_PLANE_TYPE_CURSOR;
>>                                                  data.coexist_feature
>> = j;
>> +                                               data.psr_mode =
>> get_sel_fetch_mode_for_output(&data, data.output);
>> +                                               igt_assert_f(data.psr
>> _mode != PSR_DISABLED,
>> +
>>      "Invalid psr mode\n");
>>                                                  prepare(&data);
>>                                                  run(&data);
>>                                                  cleanup(&data);
>> @@ -1174,13 +1230,17 @@ igt_main
>>                                  for (j = FEATURE_NONE; j <
>> FEATURE_COUNT; j++) {
>>                                          if (j != FEATURE_NONE &&
>> !(coexist_features[i] & j))
>>                                                  continue;
>> -                                       igt_dynamic_f("pipe-%s-%s%s",
>> kmstest_pipe_name(pipes[i]),
>> +                                       igt_dynamic_f("%s-pipe-%s-
>> %s%s", get_psr_mode_str_for_output(&data, outputs[i]),
>> +
>> kmstest_pipe_name(pipes[i]),
>>                                                       
>> igt_output_name(outputs[i]),
>>                                                       
>> coexist_feature_str(j)) {
>>                                                  data.pipe = pipes[i];
>>                                                  data.output =
>> outputs[i];
>>                                                  data.test_plane_id =
>> DRM_PLANE_TYPE_CURSOR;
>>                                                  data.coexist_feature
>> = j;
>> +                                               data.psr_mode =
>> get_sel_fetch_mode_for_output(&data, data.output);
>> +                                               igt_assert_f(data.psr
>> _mode != PSR_DISABLED,
>> +
>>      "Invalid psr mode\n");
>>                                                  prepare(&data);
>>                                                  run(&data);
>>                                                  cleanup(&data);
>> @@ -1201,13 +1261,17 @@ igt_main
>>                                  for (j = FEATURE_NONE; j <
>> FEATURE_COUNT; j++) {
>>                                          if (j != FEATURE_NONE &&
>> !(coexist_features[i] & j))
>>                                                  continue;
>> -                                       igt_dynamic_f("pipe-%s-%s%s",
>> kmstest_pipe_name(pipes[i]),
>> +                                       igt_dynamic_f("%s-pipe-%s-
>> %s%s", get_psr_mode_str_for_output(&data, outputs[i]),
>> +
>> kmstest_pipe_name(pipes[i]),
>>                                                       
>> igt_output_name(outputs[i]),
>>                                                       
>> coexist_feature_str(j)) {
>>                                                  data.pipe = pipes[i];
>>                                                  data.output =
>> outputs[i];
>>                                                  data.test_plane_id =
>> DRM_PLANE_TYPE_CURSOR;
>>                                                  data.coexist_feature
>> = j;
>> +                                               data.psr_mode =
>> get_sel_fetch_mode_for_output(&data, data.output);
>> +                                               igt_assert_f(data.psr
>> _mode != PSR_DISABLED,
>> +
>>      "Invalid psr mode\n");
>>                                                  prepare(&data);
>>                                                  run(&data);
>>                                                  cleanup(&data);
>> @@ -1228,13 +1292,17 @@ igt_main
>>                                  for (j = FEATURE_NONE; j <
>> FEATURE_COUNT; j++) {
>>                                          if (j != FEATURE_NONE &&
>> !(coexist_features[i] & j))
>>                                                  continue;
>> -                                       igt_dynamic_f("pipe-%s-%s%s",
>> kmstest_pipe_name(pipes[i]),
>> +                                       igt_dynamic_f("%s-pipe-%s-
>> %s%s", get_psr_mode_str_for_output(&data, outputs[i]),
>> +
>> kmstest_pipe_name(pipes[i]),
>>                                                       
>> igt_output_name(outputs[i]),
>>                                                       
>> coexist_feature_str(j)) {
>>                                                  data.pipe = pipes[i];
>>                                                  data.output =
>> outputs[i];
>>                                                  data.test_plane_id =
>> DRM_PLANE_TYPE_CURSOR;
>>                                                  data.coexist_feature
>> = j;
>> +                                               data.psr_mode =
>> get_sel_fetch_mode_for_output(&data, data.output);
>> +                                               igt_assert_f(data.psr
>> _mode != PSR_DISABLED,
>> +
>>      "Invalid psr mode\n");
>>                                                  prepare(&data);
>>                                                  run(&data);
>>                                                  cleanup(&data);
>> @@ -1256,13 +1324,18 @@ igt_main
>>                                  for (j = FEATURE_NONE; j <
>> FEATURE_COUNT; j++) {
>>                                          if (j != FEATURE_NONE &&
>> !(coexist_features[i] & j))
>>                                                  continue;
>> -                                       igt_dynamic_f("pipe-%s-%s%s",
>> kmstest_pipe_name(pipes[i]),
>> +                                       igt_dynamic_f("%s-pipe-%s-
>> %s%s",
>> +
>> get_psr_mode_str_for_output(&data, outputs[i]),
>> +
>> kmstest_pipe_name(pipes[i]),
>>                                                       
>> igt_output_name(outputs[i]),
>>                                                       
>> coexist_feature_str(j)) {
>>                                                  data.pipe = pipes[i];
>>                                                  data.output =
>> outputs[i];
>>                                                  data.test_plane_id =
>> DRM_PLANE_TYPE_OVERLAY;
>>                                                  data.coexist_feature
>> = j;
>> +                                               data.psr_mode =
>> get_sel_fetch_mode_for_output(&data, data.output);
>> +                                               igt_assert_f(data.psr
>> _mode != PSR_DISABLED,
>> +
>>      "Invalid psr mode\n");
>>                                                  for (k =
>> POS_TOP_LEFT; k <= POS_BOTTOM_RIGHT ; k++) {
>>                                                          data.pos = k;
>>                                                          prepare(&data
>> );
>> @@ -1285,13 +1358,17 @@ igt_main
>>                                  for (j = FEATURE_NONE; j <
>> FEATURE_COUNT; j++) {
>>                                          if (j != FEATURE_NONE &&
>> !(coexist_features[i] & j))
>>                                                  continue;
>> -                                       igt_dynamic_f("pipe-%s-%s%s",
>> kmstest_pipe_name(pipes[i]),
>> +                                       igt_dynamic_f("%s-pipe-%s-
>> %s%s", get_psr_mode_str_for_output(&data, outputs[i]),
>> +
>> kmstest_pipe_name(pipes[i]),
>>                                                       
>> igt_output_name(outputs[i]),
>>                                                       
>> coexist_feature_str(j)) {
>>                                          data.pipe = pipes[i];
>>                                          data.output = outputs[i];
>>                                          data.test_plane_id =
>> DRM_PLANE_TYPE_OVERLAY;
>>                                          data.coexist_feature = j;
>> +                                       data.psr_mode =
>> get_sel_fetch_mode_for_output(&data, data.output);
>> +                                       igt_assert_f(data.psr_mode !=
>> PSR_DISABLED,
>> +
>> "Invalid psr mode\n");
>>                                          prepare(&data);
>>                                          run(&data);
>>                                          cleanup(&data);
>> @@ -1312,13 +1389,17 @@ igt_main
>>                                  for (j = FEATURE_NONE; j <
>> FEATURE_COUNT; j++) {
>>                                          if (j != FEATURE_NONE &&
>> !(coexist_features[i] & j))
>>                                                  continue;
>> -                                       igt_dynamic_f("pipe-%s-%s%s",
>> kmstest_pipe_name(pipes[i]),
>> +                                       igt_dynamic_f("%s-pipe-%s-
>> %s%s", get_psr_mode_str_for_output(&data, outputs[i]),
>> +
>> kmstest_pipe_name(pipes[i]),
>>                                                       
>> igt_output_name(outputs[i]),
>>                                                       
>> coexist_feature_str(j)) {
>>                                                  data.pipe = pipes[i];
>>                                                  data.output =
>> outputs[i];
>>                                                  data.test_plane_id =
>> DRM_PLANE_TYPE_OVERLAY;
>>                                                  data.coexist_feature
>> = j;
>> +                                               data.psr_mode =
>> get_sel_fetch_mode_for_output(&data, data.output);
>> +                                               igt_assert_f(data.psr
>> _mode != PSR_DISABLED,
>> +
>>      "Invalid psr mode\n");
>>                                                  prepare(&data);
>>                                                  run(&data);
>>                                                  cleanup(&data);
>> @@ -1339,13 +1420,17 @@ igt_main
>>                                  for (j = FEATURE_NONE; j <
>> FEATURE_COUNT; j++) {
>>                                          if (j != FEATURE_NONE &&
>> !(coexist_features[i] & j))
>>                                                  continue;
>> -                                       igt_dynamic_f("pipe-%s-%s%s",
>> kmstest_pipe_name(pipes[i]),
>> +                                       igt_dynamic_f("%s-pipe-%s-
>> %s%s", get_psr_mode_str_for_output(&data, outputs[i]),
>> +
>> kmstest_pipe_name(pipes[i]),
>>                                                       
>> igt_output_name(outputs[i]),
>>                                                       
>> coexist_feature_str(j)) {
>>                                                  data.pipe = pipes[i];
>>                                                  data.output =
>> outputs[i];
>>                                                  data.test_plane_id =
>> DRM_PLANE_TYPE_OVERLAY;
>>                                                  data.coexist_feature
>> = j;
>> +                                               data.psr_mode =
>> get_sel_fetch_mode_for_output(&data, data.output);
>> +                                               igt_assert_f(data.psr
>> _mode != PSR_DISABLED,
>> +
>>      "Invalid psr mode\n");
>>                                                  prepare(&data);
>>                                                  run(&data);
>>                                                  cleanup(&data);
>> @@ -1367,7 +1452,8 @@ igt_main
>>                                  for (j = FEATURE_NONE; j <
>> FEATURE_COUNT; j++) {
>>                                          if (j != FEATURE_NONE &&
>> !(coexist_features[i] & j))
>>                                                  continue;
>> -                                       igt_dynamic_f("pipe-%s-%s%s",
>> kmstest_pipe_name(pipes[i]),
>> +                                       igt_dynamic_f("%s-pipe-%s-
>> %s%s", kmstest_pipe_name(pipes[i]),
>> +
>> get_psr_mode_str_for_output(&data, outputs[i]),
>>                                                       
>> igt_output_name(outputs[i]),
>>                                                       
>> coexist_feature_str(j)) {
>>                                                  data.pipe = pipes[i];
>> @@ -1376,6 +1462,9 @@ igt_main
>>                                                          data.damage_a
>> rea_count = k;
>>                                                          data.test_pla
>> ne_id = DRM_PLANE_TYPE_PRIMARY;
>>                                                          data.coexist_
>> feature = j;
>> +                                                       data.psr_mode
>> = get_sel_fetch_mode_for_output(&data, data.output);
>> +                                                       igt_assert_f(
>> data.psr_mode != PSR_DISABLED,
>> +
>>              "Invalid psr mode\n");
>>                                                          prepare(&data
>> );
>>                                                          run(&data);
>>                                                          cleanup(&data
>> );
>> @@ -1400,7 +1489,8 @@ igt_main
>>                                  for (j = FEATURE_NONE; j <
>> FEATURE_COUNT; j++) {
>>                                          if (j != FEATURE_NONE &&
>> !(coexist_features[i] & j))
>>                                                  continue;
>> -                                       igt_dynamic_f("pipe-%s-%s%s",
>> kmstest_pipe_name(pipes[i]),
>> +                                       igt_dynamic_f("%s-pipe-%s-
>> %s%s", get_psr_mode_str_for_output(&data, outputs[i]),
>> +
>> kmstest_pipe_name(pipes[i]),
>>                                                       
>> igt_output_name(outputs[i]),
>>                                                       
>> coexist_feature_str(j)) {
>>                                                  data.pipe = pipes[i];
>> @@ -1412,6 +1502,9 @@ igt_main
>>                                                          data.primary_
>> format = DRM_FORMAT_NV12;
>>                                                  data.test_plane_id =
>> DRM_PLANE_TYPE_OVERLAY;
>>                                                  data.coexist_feature
>> = j;
>> +                                               data.psr_mode =
>> get_sel_fetch_mode_for_output(&data, data.output);
>> +                                               igt_assert_f(data.psr
>> _mode != PSR_DISABLED,
>> +
>>      "Invalid psr mode\n");
>>                                                  prepare(&data);
>>                                                  run(&data);
>>                                                  cleanup(&data);

Regards
Kunal Joshi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/igt-dev/attachments/20240219/6b767a48/attachment-0001.htm>


More information about the igt-dev mailing list