<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
{mso-style-priority:99;
mso-style-link:"Plain Text Char";
margin:0in;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri",sans-serif;
color:windowtext;}
span.PlainTextChar
{mso-style-name:"Plain Text Char";
mso-style-priority:99;
mso-style-link:"Plain Text";
font-family:"Calibri",sans-serif;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri",sans-serif;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoPlainText">On Tue, 2022-11-15 at 08:43 +0530, Bhanuprakash Modem wrote:<o:p></o:p></p>
<p class="MsoPlainText">>This patch will add a check to Skip the subtest if a selected
<o:p></o:p></p>
<p class="MsoPlainText">>pipe/output combo won't support Bigjoiner or 8K mode.<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>Example:<o:p></o:p></p>
<p class="MsoPlainText">>* Pipe-D wont support a mode > 5K<o:p></o:p></p>
<p class="MsoPlainText">>* To use 8K mode on a pipe then consecutive pipe must be available & free.<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>V2: - Use updated helper name<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>Signed-off-by: Bhanuprakash Modem <<a href="mailto:bhanuprakash.modem@intel.com">bhanuprakash.modem@intel.com</a>><o:p></o:p></p>
<p class="MsoPlainText">Reviewed-by: Nidhi Gupta <<a href="mailto:nidhi1.gupta@intel.com">nidhi1.gupta@intel.com</a>><o:p></o:p></p>
<p class="MsoPlainText">---<o:p></o:p></p>
<p class="MsoPlainText">tests/kms_atomic_interruptible.c | 40 ++++++++++++++++++++++++++++++++<o:p></o:p></p>
<p class="MsoPlainText">1 file changed, 40 insertions(+)<o:p></o:p></p>
<p class="MsoPlainText">>diff --git a/tests/kms_atomic_interruptible.c <o:p></o:p></p>
<p class="MsoPlainText">>b/tests/kms_atomic_interruptible.c<o:p></o:p></p>
<p class="MsoPlainText">>index f461a15c..74b2e246 100644<o:p></o:p></p>
<p class="MsoPlainText">>--- a/tests/kms_atomic_interruptible.c<o:p></o:p></p>
<p class="MsoPlainText">>+++ b/tests/kms_atomic_interruptible.c<o:p></o:p></p>
<p class="MsoPlainText">>@@ -82,11 +82,15 @@ static void run_plane_test(igt_display_t *display, enum pipe pipe, igt_output_t<o:p></o:p></p>
<p class="MsoPlainText">> igt_plane_t *primary, *plane;<o:p></o:p></p>
<p class="MsoPlainText">> int block;<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>+ igt_info("Using (pipe %s + %s) to run the subtest.\n",<o:p></o:p></p>
<p class="MsoPlainText">>+ kmstest_pipe_name(pipe), igt_output_name(output));<o:p></o:p></p>
<p class="MsoPlainText">>+<o:p></o:p></p>
<p class="MsoPlainText">> /*<o:p></o:p></p>
<p class="MsoPlainText">> * Make sure we start with everything disabled to force a real modeset.<o:p></o:p></p>
<p class="MsoPlainText">> * igt_display_require only sets sw state, and assumes the first test<o:p></o:p></p>
<p class="MsoPlainText">> * doesn't care about hw state.<o:p></o:p></p>
<p class="MsoPlainText">> */<o:p></o:p></p>
<p class="MsoPlainText">>+ igt_display_reset(display);<o:p></o:p></p>
<p class="MsoPlainText">> igt_display_commit2(display, COMMIT_ATOMIC);<o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">> igt_output_set_pipe(output, pipe);<o:p></o:p></p>
<p class="MsoPlainText">>@@ -265,6 +269,21 @@ static void run_plane_test(igt_display_t *display, enum pipe pipe, igt_output_t<o:p></o:p></p>
<p class="MsoPlainText">> igt_remove_fb(display->drm_fd, &fb);<o:p></o:p></p>
<p class="MsoPlainText">> }<o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">>+static bool pipe_output_combo_valid(igt_display_t *display,<o:p></o:p></p>
<p class="MsoPlainText">>+ enum pipe pipe, igt_output_t *output) {<o:p></o:p></p>
<p class="MsoPlainText">>+ bool ret = true;<o:p></o:p></p>
<p class="MsoPlainText">>+<o:p></o:p></p>
<p class="MsoPlainText">>+ igt_display_reset(display);<o:p></o:p></p>
<p class="MsoPlainText">>+<o:p></o:p></p>
<p class="MsoPlainText">>+ igt_output_set_pipe(output, pipe);<o:p></o:p></p>
<p class="MsoPlainText">>+ if (!i915_pipe_output_combo_valid(display))<o:p></o:p></p>
<p class="MsoPlainText">>+ ret = false;<o:p></o:p></p>
<p class="MsoPlainText">>+ igt_output_set_pipe(output, PIPE_NONE);<o:p></o:p></p>
<p class="MsoPlainText">>+<o:p></o:p></p>
<p class="MsoPlainText">>+ return ret;<o:p></o:p></p>
<p class="MsoPlainText">>+}<o:p></o:p></p>
<p class="MsoPlainText">>+<o:p></o:p></p>
<p class="MsoPlainText">>igt_main<o:p></o:p></p>
<p class="MsoPlainText">>{<o:p></o:p></p>
<p class="MsoPlainText">> igt_display_t display;<o:p></o:p></p>
<p class="MsoPlainText">>@@ -286,6 +305,9 @@ igt_main<o:p></o:p></p>
<p class="MsoPlainText">> igt_describe("Tests the interrupt properties of legacy modeset");<o:p></o:p></p>
<p class="MsoPlainText">> igt_subtest_with_dynamic("legacy-setmode") {<o:p></o:p></p>
<p class="MsoPlainText">> for_each_pipe_with_valid_output(&display, pipe, output) {<o:p></o:p></p>
<p class="MsoPlainText">>+ if (!pipe_output_combo_valid(&display, pipe, output))<o:p></o:p></p>
<p class="MsoPlainText">>+ continue;<o:p></o:p></p>
<p class="MsoPlainText">>+<o:p></o:p></p>
<p class="MsoPlainText">> igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))<o:p></o:p></p>
<p class="MsoPlainText">> run_plane_test(&display, pipe, output, test_legacy_modeset, DRM_PLANE_TYPE_PRIMARY);<o:p></o:p></p>
<p class="MsoPlainText">> break;<o:p></o:p></p>
<p class="MsoPlainText">>@@ -295,6 +317,9 @@ igt_main<o:p></o:p></p>
<p class="MsoPlainText">> igt_describe("Tests the interrupt properties of atomic modeset");<o:p></o:p></p>
<p class="MsoPlainText">> igt_subtest_with_dynamic("atomic-setmode") {<o:p></o:p></p>
<p class="MsoPlainText">> for_each_pipe_with_valid_output(&display, pipe, output) {<o:p></o:p></p>
<p class="MsoPlainText">>+ if (!pipe_output_combo_valid(&display, pipe, output))<o:p></o:p></p>
<p class="MsoPlainText">>+ continue;<o:p></o:p></p>
<p class="MsoPlainText">>+<o:p></o:p></p>
<p class="MsoPlainText">> igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))<o:p></o:p></p>
<p class="MsoPlainText">> run_plane_test(&display, pipe, output, test_atomic_modeset, DRM_PLANE_TYPE_PRIMARY);<o:p></o:p></p>
<p class="MsoPlainText">> break;<o:p></o:p></p>
<p class="MsoPlainText">>@@ -304,6 +329,9 @@ igt_main<o:p></o:p></p>
<p class="MsoPlainText">> igt_describe("Tests the interrupt properties for DPMS");<o:p></o:p></p>
<p class="MsoPlainText">> igt_subtest_with_dynamic("legacy-dpms") {<o:p></o:p></p>
<p class="MsoPlainText">> for_each_pipe_with_valid_output(&display, pipe, output) {<o:p></o:p></p>
<p class="MsoPlainText">>+ if (!pipe_output_combo_valid(&display, pipe, output))<o:p></o:p></p>
<p class="MsoPlainText">>+ continue;<o:p></o:p></p>
<p class="MsoPlainText">>+<o:p></o:p></p>
<p class="MsoPlainText">> igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))<o:p></o:p></p>
<p class="MsoPlainText">> run_plane_test(&display, pipe, output, test_legacy_dpms, DRM_PLANE_TYPE_PRIMARY);<o:p></o:p></p>
<p class="MsoPlainText">> break;<o:p></o:p></p>
<p class="MsoPlainText">>@@ -313,6 +341,9 @@ igt_main<o:p></o:p></p>
<p class="MsoPlainText">> igt_describe("Tests the interrupt properties for pageflip");<o:p></o:p></p>
<p class="MsoPlainText">> igt_subtest_with_dynamic("legacy-pageflip") {<o:p></o:p></p>
<p class="MsoPlainText">> for_each_pipe_with_valid_output(&display, pipe, output) {<o:p></o:p></p>
<p class="MsoPlainText">>+ if (!pipe_output_combo_valid(&display, pipe, output))<o:p></o:p></p>
<p class="MsoPlainText">>+ continue;<o:p></o:p></p>
<p class="MsoPlainText">>+<o:p></o:p></p>
<p class="MsoPlainText">> igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))<o:p></o:p></p>
<p class="MsoPlainText">> run_plane_test(&display, pipe, output, test_pageflip, DRM_PLANE_TYPE_PRIMARY);<o:p></o:p></p>
<p class="MsoPlainText">> break;<o:p></o:p></p>
<p class="MsoPlainText">>@@ -322,6 +353,9 @@ igt_main<o:p></o:p></p>
<p class="MsoPlainText">> igt_describe("Tests the interrupt properties for cursor");<o:p></o:p></p>
<p class="MsoPlainText">> igt_subtest_with_dynamic("legacy-cursor") {<o:p></o:p></p>
<p class="MsoPlainText">> for_each_pipe_with_valid_output(&display, pipe, output) {<o:p></o:p></p>
<p class="MsoPlainText">>+ if (!pipe_output_combo_valid(&display, pipe, output))<o:p></o:p></p>
<p class="MsoPlainText">>+ continue;<o:p></o:p></p>
<p class="MsoPlainText">>+<o:p></o:p></p>
<p class="MsoPlainText">> igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))<o:p></o:p></p>
<p class="MsoPlainText">> run_plane_test(&display, pipe, output, test_setcursor, DRM_PLANE_TYPE_CURSOR);<o:p></o:p></p>
<p class="MsoPlainText">> break;<o:p></o:p></p>
<p class="MsoPlainText">>@@ -331,6 +365,9 @@ igt_main<o:p></o:p></p>
<p class="MsoPlainText">> igt_describe("Tests the interrupt properties for primary plane");<o:p></o:p></p>
<p class="MsoPlainText">> igt_subtest_with_dynamic("universal-setplane-primary") {<o:p></o:p></p>
<p class="MsoPlainText">> for_each_pipe_with_valid_output(&display, pipe, output) {<o:p></o:p></p>
<p class="MsoPlainText">>+ if (!pipe_output_combo_valid(&display, pipe, output))<o:p></o:p></p>
<p class="MsoPlainText">>+ continue;<o:p></o:p></p>
<p class="MsoPlainText">>+<o:p></o:p></p>
<p class="MsoPlainText">> igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))<o:p></o:p></p>
<p class="MsoPlainText">> run_plane_test(&display, pipe, output, test_setplane, DRM_PLANE_TYPE_PRIMARY);<o:p></o:p></p>
<p class="MsoPlainText">> break;<o:p></o:p></p>
<p class="MsoPlainText">>@@ -340,6 +377,9 @@ igt_main<o:p></o:p></p>
<p class="MsoPlainText">> igt_describe("Tests the interrupt properties for cursor plane");<o:p></o:p></p>
<p class="MsoPlainText">> igt_subtest_with_dynamic("universal-setplane-cursor") {<o:p></o:p></p>
<p class="MsoPlainText">> for_each_pipe_with_valid_output(&display, pipe, output) {<o:p></o:p></p>
<p class="MsoPlainText">>+ if (!pipe_output_combo_valid(&display, pipe, output))<o:p></o:p></p>
<p class="MsoPlainText">>+ continue;<o:p></o:p></p>
<p class="MsoPlainText">>+<o:p></o:p></p>
<p class="MsoPlainText">> igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))<o:p></o:p></p>
<p class="MsoPlainText">> run_plane_test(&display, pipe, output, test_setplane, DRM_PLANE_TYPE_CURSOR);<o:p></o:p></p>
<p class="MsoPlainText">> break;<o:p></o:p></p>
</div>
</body>
</html>