* [igt-dev] [PATCH i-g-t 1/2] tests/kms_display_modes: Add negative test for extended display
@ 2023-05-02 11:02 Mohammed Thasleem
2023-05-02 11:02 ` [igt-dev] [PATCH i-g-t 2/2] lib/igt_kms: bandwidth failure should return ENOSPC Mohammed Thasleem
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Mohammed Thasleem @ 2023-05-02 11:02 UTC (permalink / raw)
To: igt-dev
Added negative test to validte ENOSPC when two 2k-4k or 4k-4k
moniters connected through MST.
This test added to provide bandwidth issue in MST config.
Example:
When two monitors connected through MST, the second monitor
also tries to use the same mode. So two such modes may not
fit into the link bandwidth. So, iterate through connected
outputs & modes and find a invalid combination.
v2: Rebased on tip.
v3: -Code cleanup and updated description.
-Free path_blob before call return. (Kamil)
v4: Updated code formatting and function description. (Jeevan)
v5: Updated commit description and minor changes.
Signed-off-by: Mohammed Thasleem <mohammed.thasleem@intel.com>
Reviewed-by: Jeevan B <jeevan.b@intel.com>
---
tests/kms_display_modes.c | 166 ++++++++++++++++++++++++++++++++++++++
1 file changed, 166 insertions(+)
diff --git a/tests/kms_display_modes.c b/tests/kms_display_modes.c
index d69c7b931..27c13ba05 100644
--- a/tests/kms_display_modes.c
+++ b/tests/kms_display_modes.c
@@ -26,14 +26,113 @@
#include "igt.h"
+#define HDISPLAY_2K 2560
+#define VDISPLAY_2K 1440
+
+#define HDISPLAY_4K 3840
+#define VDISPLAY_4K 2160
+
IGT_TEST_DESCRIPTION("Test Display Modes");
typedef struct {
int drm_fd;
igt_display_t display;
+ drmModeModeInfo mode_mst[2];
+ igt_output_t *mst_output[2];
int n_pipes;
} data_t;
+/*Get higher mode supported by panel*/
+static drmModeModeInfo *get_highres_mode(igt_output_t *output)
+{
+ drmModeConnector *connector = output->config.connector;
+ drmModeModeInfo *highest_mode = NULL;
+
+ igt_sort_connector_modes(connector, sort_drm_modes_by_res_dsc);
+ highest_mode = &connector->modes[0];
+
+ return highest_mode;
+}
+
+/*Get the 4k or less then 4k mode of connected panel*/
+static drmModeModeInfo *get_mode(igt_output_t *output)
+{
+ int j;
+ drmModeModeInfo *required_mode = NULL;
+ drmModeConnector *connector = output->config.connector;
+
+ required_mode = igt_output_get_mode(output);
+ if (required_mode->vdisplay <= VDISPLAY_4K &&
+ required_mode->hdisplay <= HDISPLAY_4K) {
+ return required_mode;
+ }
+
+ igt_sort_connector_modes(connector, sort_drm_modes_by_res_dsc);
+ for (j = 0; j < connector->count_modes; j++) {
+ if (connector->modes[j].vdisplay <= VDISPLAY_4K &&
+ connector->modes[j].hdisplay <= HDISPLAY_4K) {
+ required_mode = &connector->modes[j];
+ break;
+ }
+ }
+
+ return required_mode;
+}
+
+static int parse_path_blob(char *blob_data)
+{
+ int connector_id;
+ char *encoder;
+
+ encoder = strtok(blob_data, ":");
+ igt_assert_f(!strcmp(encoder, "mst"), "PATH connector property expected to have 'mst'\n");
+
+ connector_id = atoi(strtok(NULL, "-"));
+
+ return connector_id;
+}
+
+static bool output_is_dp_mst(data_t *data, igt_output_t *output, int i)
+{
+ drmModePropertyBlobPtr path_blob = NULL;
+ uint64_t path_blob_id;
+ drmModeConnector *connector = output->config.connector;
+ struct kmstest_connector_config config;
+ const char *encoder;
+ int connector_id;
+ static int prev_connector_id;
+
+ kmstest_get_connector_config(data->drm_fd, output->config.connector->connector_id,
+ -1, &config);
+ encoder = kmstest_encoder_type_str(config.encoder->encoder_type);
+
+ if (strcmp(encoder, "DP MST"))
+ return false;
+
+ igt_assert(kmstest_get_property(data->drm_fd, connector->connector_id,
+ DRM_MODE_OBJECT_CONNECTOR, "PATH", NULL,
+ &path_blob_id, NULL));
+
+ igt_assert(path_blob = drmModeGetPropertyBlob(data->drm_fd, path_blob_id));
+
+ connector_id = parse_path_blob((char *) path_blob->data);
+
+ drmModeFreePropertyBlob(path_blob);
+
+ /*
+ * Discarding outputs of other DP MST topology.
+ * Testing only on outputs on the topology we got previously
+ */
+ if (i == 0) {
+ prev_connector_id = connector_id;
+ } else {
+ if (connector_id != prev_connector_id)
+ return false;
+ }
+
+ return true;
+}
+
static void run_extendedmode_basic(data_t *data,
enum pipe pipe1, igt_output_t *output1,
enum pipe pipe2, igt_output_t *output2)
@@ -173,8 +272,46 @@ static void run_extendedmode_test(data_t *data) {
}
}
+static void run_extendedmode_negative(data_t *data, int pipe1, int pipe2)
+{
+ struct igt_fb fbs[2];
+ igt_display_t *display = &data->display;
+ igt_plane_t *plane[2];
+ int ret;
+
+ igt_display_reset(display);
+
+ igt_output_set_pipe(data->mst_output[0], pipe1);
+ igt_output_set_pipe(data->mst_output[1], pipe2);
+
+ igt_create_color_fb(data->drm_fd, data->mode_mst[0].hdisplay, data->mode_mst[0].vdisplay,
+ DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_LINEAR, 1, 0, 0, &fbs[0]);
+ igt_create_color_fb(data->drm_fd, data->mode_mst[1].hdisplay, data->mode_mst[1].vdisplay,
+ DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_LINEAR, 0, 0, 1, &fbs[1]);
+
+ plane[0] = igt_pipe_get_plane_type(&display->pipes[pipe1], DRM_PLANE_TYPE_PRIMARY);
+ plane[1] = igt_pipe_get_plane_type(&display->pipes[pipe2], DRM_PLANE_TYPE_PRIMARY);
+
+ igt_plane_set_fb(plane[0], &fbs[0]);
+ igt_fb_set_size(&fbs[0], plane[0], data->mode_mst[0].hdisplay, data->mode_mst[0].vdisplay);
+ igt_plane_set_size(plane[0], data->mode_mst[0].hdisplay, data->mode_mst[0].vdisplay);
+
+ igt_plane_set_fb(plane[1], &fbs[1]);
+ igt_fb_set_size(&fbs[1], plane[1], data->mode_mst[1].hdisplay, data->mode_mst[1].vdisplay);
+ igt_plane_set_size(plane[1], data->mode_mst[1].hdisplay, data->mode_mst[1].vdisplay);
+
+ igt_output_override_mode(data->mst_output[0], &data->mode_mst[0]);
+ igt_output_override_mode(data->mst_output[1], &data->mode_mst[1]);
+
+ ret = igt_display_try_commit2(display, COMMIT_ATOMIC);
+ igt_assert(ret != 0 && errno == ENOSPC);
+}
+
igt_main
{
+ int dp_mst_outputs = 0, count = 0;
+ enum pipe pipe1, pipe2;
+ igt_output_t *output;
data_t data;
igt_fixture {
@@ -182,12 +319,41 @@ igt_main
kmstest_set_vt_graphics_mode();
igt_display_require(&data.display, data.drm_fd);
igt_display_require_output(&data.display);
+
+ for_each_connected_output(&data.display, output) {
+ data.mst_output[count++] = output;
+ if (output_is_dp_mst(&data, output, dp_mst_outputs))
+ dp_mst_outputs++;
+ }
}
igt_describe("Test for validating display extended mode with a pair of connected displays");
igt_subtest_with_dynamic("extended-mode-basic")
run_extendedmode_test(&data);
+ igt_describe("Negative test for validating display extended mode with a pair of connected "
+ "2k-4k or 4k-4k displays");
+ igt_subtest_with_dynamic("mst-extended-mode-negative") {
+ igt_require_f(dp_mst_outputs > 1, "MST not found more then one\n");
+
+ memcpy(&data.mode_mst[0], get_mode(data.mst_output[0]), sizeof(drmModeModeInfo));
+ memcpy(&data.mode_mst[1], get_highres_mode(data.mst_output[1]),
+ sizeof(drmModeModeInfo));
+ igt_require_f((data.mode_mst[1].hdisplay >= HDISPLAY_4K &&
+ data.mode_mst[1].vdisplay >= VDISPLAY_4K), "4k panel not found\n");
+
+ for_each_pipe(&data.display, pipe1) {
+ for_each_pipe(&data.display, pipe2) {
+ if (pipe1 == pipe2)
+ continue;
+
+ igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe1),
+ kmstest_pipe_name(pipe2))
+ run_extendedmode_negative(&data, pipe1, pipe2);
+ }
+ }
+ }
+
igt_fixture {
igt_display_fini(&data.display);
}
--
2.25.1
^ permalink raw reply related [flat|nested] 6+ messages in thread* [igt-dev] [PATCH i-g-t 2/2] lib/igt_kms: bandwidth failure should return ENOSPC 2023-05-02 11:02 [igt-dev] [PATCH i-g-t 1/2] tests/kms_display_modes: Add negative test for extended display Mohammed Thasleem @ 2023-05-02 11:02 ` Mohammed Thasleem 2023-05-03 5:55 ` Modem, Bhanuprakash 2023-05-02 11:45 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] tests/kms_display_modes: Add negative test for extended display Patchwork ` (2 subsequent siblings) 3 siblings, 1 reply; 6+ messages in thread From: Mohammed Thasleem @ 2023-05-02 11:02 UTC (permalink / raw) To: igt-dev Return failure for ENOSPC on fit to bandwidth failure in MST config. Signed-off-by: Mohammed Thasleem <mohammed.thasleem@intel.com> --- lib/igt_kms.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/igt_kms.c b/lib/igt_kms.c index c12823d31..790fbca2e 100644 --- a/lib/igt_kms.c +++ b/lib/igt_kms.c @@ -4534,6 +4534,8 @@ bool __override_all_active_output_modes_to_fit_bw(igt_display_t *display, if (!ret) return true; + else if (ret == -ENOSPC) + return false; } return false; -- 2.25.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 2/2] lib/igt_kms: bandwidth failure should return ENOSPC 2023-05-02 11:02 ` [igt-dev] [PATCH i-g-t 2/2] lib/igt_kms: bandwidth failure should return ENOSPC Mohammed Thasleem @ 2023-05-03 5:55 ` Modem, Bhanuprakash 0 siblings, 0 replies; 6+ messages in thread From: Modem, Bhanuprakash @ 2023-05-03 5:55 UTC (permalink / raw) To: Mohammed Thasleem, igt-dev Hi Thasleem, lib/igt_kms: bandwidth failure should return ENOSPC ---------------------------------------------^ We are returning bool not ENOSPC, please fix the title. On Tue-02-05-2023 04:32 pm, Mohammed Thasleem wrote: > Return failure for ENOSPC on fit to bandwidth failure in MST config. Please elaborate about this patch. > > Signed-off-by: Mohammed Thasleem <mohammed.thasleem@intel.com> > --- > lib/igt_kms.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/lib/igt_kms.c b/lib/igt_kms.c > index c12823d31..790fbca2e 100644 > --- a/lib/igt_kms.c > +++ b/lib/igt_kms.c > @@ -4534,6 +4534,8 @@ bool __override_all_active_output_modes_to_fit_bw(igt_display_t *display, > > if (!ret) > return true; > + else if (ret == -ENOSPC) -----------------------------^ It must be "!=", right? Everytime we get the no space error, we need to retry with another mode till we get the valid one. For other errors, just return false. - Bhanu > + return false; > } > > return false; ^ permalink raw reply [flat|nested] 6+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] tests/kms_display_modes: Add negative test for extended display 2023-05-02 11:02 [igt-dev] [PATCH i-g-t 1/2] tests/kms_display_modes: Add negative test for extended display Mohammed Thasleem 2023-05-02 11:02 ` [igt-dev] [PATCH i-g-t 2/2] lib/igt_kms: bandwidth failure should return ENOSPC Mohammed Thasleem @ 2023-05-02 11:45 ` Patchwork 2023-05-02 14:35 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork 2023-05-03 5:43 ` [igt-dev] [PATCH i-g-t 1/2] " Modem, Bhanuprakash 3 siblings, 0 replies; 6+ messages in thread From: Patchwork @ 2023-05-02 11:45 UTC (permalink / raw) To: Mohammed Thasleem; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 4373 bytes --] == Series Details == Series: series starting with [i-g-t,1/2] tests/kms_display_modes: Add negative test for extended display URL : https://patchwork.freedesktop.org/series/117195/ State : success == Summary == CI Bug Log - changes from CI_DRM_13096 -> IGTPW_8896 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/index.html Participating hosts (38 -> 37) ------------------------------ Missing (1): fi-snb-2520m Known issues ------------ Here are the changes found in IGTPW_8896 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@i915_selftest@live@gt_lrc: - bat-dg2-11: [PASS][1] -> [INCOMPLETE][2] ([i915#7609] / [i915#7913]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13096/bat-dg2-11/igt@i915_selftest@live@gt_lrc.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/bat-dg2-11/igt@i915_selftest@live@gt_lrc.html * igt@i915_selftest@live@requests: - bat-rpls-1: [PASS][3] -> [ABORT][4] ([i915#7911] / [i915#7920]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13096/bat-rpls-1/igt@i915_selftest@live@requests.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/bat-rpls-1/igt@i915_selftest@live@requests.html * igt@kms_chamelium_hpd@common-hpd-after-suspend: - bat-rplp-1: NOTRUN -> [SKIP][5] ([i915#7828]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/bat-rplp-1/igt@kms_chamelium_hpd@common-hpd-after-suspend.html * igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence: - bat-dg2-11: NOTRUN -> [SKIP][6] ([i915#1845] / [i915#5354]) +1 similar issue [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/bat-dg2-11/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence.html #### Possible fixes #### * igt@i915_selftest@live@migrate: - bat-adlp-6: [DMESG-FAIL][7] ([i915#7699] / [i915#7913]) -> [PASS][8] [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13096/bat-adlp-6/igt@i915_selftest@live@migrate.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/bat-adlp-6/igt@i915_selftest@live@migrate.html * igt@i915_selftest@live@requests: - bat-rplp-1: [ABORT][9] ([i915#7913] / [i915#7920]) -> [PASS][10] [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13096/bat-rplp-1/igt@i915_selftest@live@requests.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/bat-rplp-1/igt@i915_selftest@live@requests.html - {bat-mtlp-8}: [ABORT][11] ([i915#4983] / [i915#7920]) -> [PASS][12] [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13096/bat-mtlp-8/igt@i915_selftest@live@requests.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/bat-mtlp-8/igt@i915_selftest@live@requests.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845 [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983 [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354 [i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367 [i915#6645]: https://gitlab.freedesktop.org/drm/intel/issues/6645 [i915#7609]: https://gitlab.freedesktop.org/drm/intel/issues/7609 [i915#7699]: https://gitlab.freedesktop.org/drm/intel/issues/7699 [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828 [i915#7911]: https://gitlab.freedesktop.org/drm/intel/issues/7911 [i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913 [i915#7920]: https://gitlab.freedesktop.org/drm/intel/issues/7920 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_7277 -> IGTPW_8896 CI-20190529: 20190529 CI_DRM_13096: ec374264576fb8b33a27098e4b2ceeb99712007d @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_8896: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/index.html IGT_7277: 1cb3507f3ff28d11bd5cfabcde576fe78ddab571 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Testlist changes ---------------- +igt@kms_display_modes@mst-extended-mode-negative == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/index.html [-- Attachment #2: Type: text/html, Size: 5258 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for series starting with [i-g-t,1/2] tests/kms_display_modes: Add negative test for extended display 2023-05-02 11:02 [igt-dev] [PATCH i-g-t 1/2] tests/kms_display_modes: Add negative test for extended display Mohammed Thasleem 2023-05-02 11:02 ` [igt-dev] [PATCH i-g-t 2/2] lib/igt_kms: bandwidth failure should return ENOSPC Mohammed Thasleem 2023-05-02 11:45 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] tests/kms_display_modes: Add negative test for extended display Patchwork @ 2023-05-02 14:35 ` Patchwork 2023-05-03 5:43 ` [igt-dev] [PATCH i-g-t 1/2] " Modem, Bhanuprakash 3 siblings, 0 replies; 6+ messages in thread From: Patchwork @ 2023-05-02 14:35 UTC (permalink / raw) To: Mohammed Thasleem; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 14826 bytes --] == Series Details == Series: series starting with [i-g-t,1/2] tests/kms_display_modes: Add negative test for extended display URL : https://patchwork.freedesktop.org/series/117195/ State : success == Summary == CI Bug Log - changes from CI_DRM_13096_full -> IGTPW_8896_full ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/index.html Participating hosts (7 -> 7) ------------------------------ No changes in participating hosts Possible new issues ------------------- Here are the unknown changes that may have been introduced in IGTPW_8896_full: ### IGT changes ### #### Possible regressions #### * {igt@kms_display_modes@mst-extended-mode-negative} (NEW): - {shard-rkl}: NOTRUN -> [SKIP][1] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/shard-rkl-3/igt@kms_display_modes@mst-extended-mode-negative.html - {shard-dg1}: NOTRUN -> [SKIP][2] [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/shard-dg1-15/igt@kms_display_modes@mst-extended-mode-negative.html - {shard-tglu}: NOTRUN -> [SKIP][3] [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/shard-tglu-2/igt@kms_display_modes@mst-extended-mode-negative.html New tests --------- New tests have been introduced between CI_DRM_13096_full and IGTPW_8896_full: ### New IGT tests (1) ### * igt@kms_display_modes@mst-extended-mode-negative: - Statuses : 6 skip(s) - Exec time: [0.0] s Known issues ------------ Here are the changes found in IGTPW_8896_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_ccs@block-copy-compressed: - shard-snb: NOTRUN -> [SKIP][4] ([fdo#109271]) +112 similar issues [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/shard-snb2/igt@gem_ccs@block-copy-compressed.html * igt@gem_exec_fair@basic-pace@vcs0: - shard-glk: [PASS][5] -> [FAIL][6] ([i915#2842]) +2 similar issues [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13096/shard-glk1/igt@gem_exec_fair@basic-pace@vcs0.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/shard-glk4/igt@gem_exec_fair@basic-pace@vcs0.html * igt@gem_pxp@create-regular-context-1: - shard-glk: NOTRUN -> [SKIP][7] ([fdo#109271]) +5 similar issues [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/shard-glk9/igt@gem_pxp@create-regular-context-1.html * igt@gen9_exec_parse@allowed-single: - shard-glk: [PASS][8] -> [ABORT][9] ([i915#5566]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13096/shard-glk6/igt@gen9_exec_parse@allowed-single.html [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/shard-glk5/igt@gen9_exec_parse@allowed-single.html * {igt@kms_display_modes@mst-extended-mode-negative} (NEW): - shard-apl: NOTRUN -> [SKIP][10] ([fdo#109271]) [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/shard-apl6/igt@kms_display_modes@mst-extended-mode-negative.html * igt@kms_plane_alpha_blend@constant-alpha-max@pipe-c-hdmi-a-1: - shard-glk: NOTRUN -> [FAIL][11] ([i915#4573]) +1 similar issue [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/shard-glk5/igt@kms_plane_alpha_blend@constant-alpha-max@pipe-c-hdmi-a-1.html #### Possible fixes #### * igt@drm_fdinfo@virtual-idle: - {shard-rkl}: [FAIL][12] ([i915#7742]) -> [PASS][13] [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13096/shard-rkl-1/igt@drm_fdinfo@virtual-idle.html [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/shard-rkl-7/igt@drm_fdinfo@virtual-idle.html * igt@gem_barrier_race@remote-request@rcs0: - shard-glk: [ABORT][14] ([i915#7461] / [i915#8211]) -> [PASS][15] [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13096/shard-glk3/igt@gem_barrier_race@remote-request@rcs0.html [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/shard-glk4/igt@gem_barrier_race@remote-request@rcs0.html * igt@gem_eio@hibernate: - {shard-dg1}: [ABORT][16] ([i915#7975] / [i915#8213]) -> [PASS][17] [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13096/shard-dg1-14/igt@gem_eio@hibernate.html [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/shard-dg1-16/igt@gem_eio@hibernate.html - {shard-tglu}: [ABORT][18] ([i915#7975] / [i915#8213] / [i915#8398]) -> [PASS][19] [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13096/shard-tglu-10/igt@gem_eio@hibernate.html [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/shard-tglu-8/igt@gem_eio@hibernate.html * igt@gem_eio@unwedge-stress: - {shard-dg1}: [FAIL][20] ([i915#5784]) -> [PASS][21] [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13096/shard-dg1-16/igt@gem_eio@unwedge-stress.html [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/shard-dg1-12/igt@gem_eio@unwedge-stress.html * igt@gem_exec_fair@basic-deadline: - shard-glk: [FAIL][22] ([i915#2846]) -> [PASS][23] [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13096/shard-glk1/igt@gem_exec_fair@basic-deadline.html [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/shard-glk9/igt@gem_exec_fair@basic-deadline.html * igt@gem_exec_fair@basic-none-solo@rcs0: - shard-apl: [FAIL][24] ([i915#2842]) -> [PASS][25] +1 similar issue [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13096/shard-apl7/igt@gem_exec_fair@basic-none-solo@rcs0.html [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/shard-apl7/igt@gem_exec_fair@basic-none-solo@rcs0.html * igt@gem_exec_fair@basic-none@bcs0: - {shard-rkl}: [FAIL][26] ([i915#2842]) -> [PASS][27] [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13096/shard-rkl-7/igt@gem_exec_fair@basic-none@bcs0.html [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/shard-rkl-2/igt@gem_exec_fair@basic-none@bcs0.html * igt@i915_module_load@reload-no-display: - shard-snb: [ABORT][28] ([i915#4528] / [i915#8393]) -> [PASS][29] [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13096/shard-snb4/igt@i915_module_load@reload-no-display.html [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/shard-snb1/igt@i915_module_load@reload-no-display.html * igt@i915_pm_rps@reset: - shard-snb: [DMESG-FAIL][30] ([i915#8319]) -> [PASS][31] [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13096/shard-snb7/igt@i915_pm_rps@reset.html [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/shard-snb6/igt@i915_pm_rps@reset.html * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size: - shard-glk: [FAIL][32] ([i915#2346]) -> [PASS][33] [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13096/shard-glk1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/shard-glk4/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html * igt@kms_flip@flip-vs-rmfb@a-hdmi-a1: - {shard-tglu}: [INCOMPLETE][34] -> [PASS][35] [34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13096/shard-tglu-4/igt@kms_flip@flip-vs-rmfb@a-hdmi-a1.html [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/shard-tglu-7/igt@kms_flip@flip-vs-rmfb@a-hdmi-a1.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274 [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280 [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285 [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289 [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295 [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315 [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189 [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614 [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615 [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072 [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397 [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825 [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346 [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527 [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575 [i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587 [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672 [i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681 [i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705 [i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280 [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842 [i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846 [i915#3023]: https://gitlab.freedesktop.org/drm/intel/issues/3023 [i915#315]: https://gitlab.freedesktop.org/drm/intel/issues/315 [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281 [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282 [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297 [i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299 [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301 [i915#3361]: https://gitlab.freedesktop.org/drm/intel/issues/3361 [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458 [i915#3469]: https://gitlab.freedesktop.org/drm/intel/issues/3469 [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 [i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591 [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637 [i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638 [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689 [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708 [i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742 [i915#3743]: https://gitlab.freedesktop.org/drm/intel/issues/3743 [i915#3804]: https://gitlab.freedesktop.org/drm/intel/issues/3804 [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886 [i915#3989]: https://gitlab.freedesktop.org/drm/intel/issues/3989 [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070 [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077 [i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078 [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079 [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098 [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103 [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212 [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270 [i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349 [i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525 [i915#4528]: https://gitlab.freedesktop.org/drm/intel/issues/4528 [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538 [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454 [i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565 [i915#4573]: https://gitlab.freedesktop.org/drm/intel/issues/4573 [i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579 [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 [i915#4816]: https://gitlab.freedesktop.org/drm/intel/issues/4816 [i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833 [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860 [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176 [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235 [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286 [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533 [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354 [i915#5493]: https://gitlab.freedesktop.org/drm/intel/issues/5493 [i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566 [i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784 [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095 [i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301 [i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524 [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658 [i915#6768]: https://gitlab.freedesktop.org/drm/intel/issues/6768 [i915#6786]: https://gitlab.freedesktop.org/drm/intel/issues/6786 [i915#6946]: https://gitlab.freedesktop.org/drm/intel/issues/6946 [i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118 [i915#7461]: https://gitlab.freedesktop.org/drm/intel/issues/7461 [i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711 [i915#7742]: https://gitlab.freedesktop.org/drm/intel/issues/7742 [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828 [i915#7975]: https://gitlab.freedesktop.org/drm/intel/issues/7975 [i915#8011]: https://gitlab.freedesktop.org/drm/intel/issues/8011 [i915#8211]: https://gitlab.freedesktop.org/drm/intel/issues/8211 [i915#8213]: https://gitlab.freedesktop.org/drm/intel/issues/8213 [i915#8229]: https://gitlab.freedesktop.org/drm/intel/issues/8229 [i915#8292]: https://gitlab.freedesktop.org/drm/intel/issues/8292 [i915#8319]: https://gitlab.freedesktop.org/drm/intel/issues/8319 [i915#8381]: https://gitlab.freedesktop.org/drm/intel/issues/8381 [i915#8393]: https://gitlab.freedesktop.org/drm/intel/issues/8393 [i915#8398]: https://gitlab.freedesktop.org/drm/intel/issues/8398 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_7277 -> IGTPW_8896 * Piglit: piglit_4509 -> None CI-20190529: 20190529 CI_DRM_13096: ec374264576fb8b33a27098e4b2ceeb99712007d @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_8896: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/index.html IGT_7277: 1cb3507f3ff28d11bd5cfabcde576fe78ddab571 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8896/index.html [-- Attachment #2: Type: text/html, Size: 10877 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 1/2] tests/kms_display_modes: Add negative test for extended display 2023-05-02 11:02 [igt-dev] [PATCH i-g-t 1/2] tests/kms_display_modes: Add negative test for extended display Mohammed Thasleem ` (2 preceding siblings ...) 2023-05-02 14:35 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork @ 2023-05-03 5:43 ` Modem, Bhanuprakash 3 siblings, 0 replies; 6+ messages in thread From: Modem, Bhanuprakash @ 2023-05-03 5:43 UTC (permalink / raw) To: Mohammed Thasleem, igt-dev Hi Thasleem, On Tue-02-05-2023 04:32 pm, Mohammed Thasleem wrote: > Added negative test to validte ENOSPC when two 2k-4k or 4k-4k > moniters connected through MST. > This test added to provide bandwidth issue in MST config. > > Example: > When two monitors connected through MST, the second monitor > also tries to use the same mode. So two such modes may not > fit into the link bandwidth. So, iterate through connected > outputs & modes and find a invalid combination. > > v2: Rebased on tip. > v3: -Code cleanup and updated description. > -Free path_blob before call return. (Kamil) > v4: Updated code formatting and function description. (Jeevan) > v5: Updated commit description and minor changes. > > Signed-off-by: Mohammed Thasleem <mohammed.thasleem@intel.com> > Reviewed-by: Jeevan B <jeevan.b@intel.com> > --- > tests/kms_display_modes.c | 166 ++++++++++++++++++++++++++++++++++++++ > 1 file changed, 166 insertions(+) > > diff --git a/tests/kms_display_modes.c b/tests/kms_display_modes.c > index d69c7b931..27c13ba05 100644 > --- a/tests/kms_display_modes.c > +++ b/tests/kms_display_modes.c > @@ -26,14 +26,113 @@ > > #include "igt.h" > > +#define HDISPLAY_2K 2560 > +#define VDISPLAY_2K 1440 Unused macros, please drop. > + > +#define HDISPLAY_4K 3840 > +#define VDISPLAY_4K 2160 > + > IGT_TEST_DESCRIPTION("Test Display Modes"); > > typedef struct { > int drm_fd; > igt_display_t display; > + drmModeModeInfo mode_mst[2]; > + igt_output_t *mst_output[2]; > int n_pipes; > } data_t; > > +/*Get higher mode supported by panel*/ Please follow the proper commenting style. Example: /* This is single line comment. */ /* * This is multi-line * comment. */ > +static drmModeModeInfo *get_highres_mode(igt_output_t *output) > +{ > + drmModeConnector *connector = output->config.connector; > + drmModeModeInfo *highest_mode = NULL; > + > + igt_sort_connector_modes(connector, sort_drm_modes_by_res_dsc); > + highest_mode = &connector->modes[0]; > + > + return highest_mode; > +} > + > +/*Get the 4k or less then 4k mode of connected panel*/ > +static drmModeModeInfo *get_mode(igt_output_t *output) > +{ > + int j; > + drmModeModeInfo *required_mode = NULL; > + drmModeConnector *connector = output->config.connector; > + > + required_mode = igt_output_get_mode(output); > + if (required_mode->vdisplay <= VDISPLAY_4K && > + required_mode->hdisplay <= HDISPLAY_4K) { > + return required_mode; > + } Please write a comment about this logic. > + > + igt_sort_connector_modes(connector, sort_drm_modes_by_res_dsc); > + for (j = 0; j < connector->count_modes; j++) { > + if (connector->modes[j].vdisplay <= VDISPLAY_4K && > + connector->modes[j].hdisplay <= HDISPLAY_4K) { > + required_mode = &connector->modes[j]; > + break; > + } > + } > + > + return required_mode; > +} > + > +static int parse_path_blob(char *blob_data) > +{ > + int connector_id; > + char *encoder; > + > + encoder = strtok(blob_data, ":"); > + igt_assert_f(!strcmp(encoder, "mst"), "PATH connector property expected to have 'mst'\n"); > + > + connector_id = atoi(strtok(NULL, "-")); > + > + return connector_id; > +} > + > +static bool output_is_dp_mst(data_t *data, igt_output_t *output, int i) > +{ > + drmModePropertyBlobPtr path_blob = NULL; > + uint64_t path_blob_id; > + drmModeConnector *connector = output->config.connector; > + struct kmstest_connector_config config; > + const char *encoder; > + int connector_id; > + static int prev_connector_id; > + > + kmstest_get_connector_config(data->drm_fd, output->config.connector->connector_id, > + -1, &config); > + encoder = kmstest_encoder_type_str(config.encoder->encoder_type); > + > + if (strcmp(encoder, "DP MST")) > + return false; > + > + igt_assert(kmstest_get_property(data->drm_fd, connector->connector_id, > + DRM_MODE_OBJECT_CONNECTOR, "PATH", NULL, > + &path_blob_id, NULL)); > + > + igt_assert(path_blob = drmModeGetPropertyBlob(data->drm_fd, path_blob_id)); > + > + connector_id = parse_path_blob((char *) path_blob->data); > + > + drmModeFreePropertyBlob(path_blob); > + > + /* > + * Discarding outputs of other DP MST topology. > + * Testing only on outputs on the topology we got previously > + */ > + if (i == 0) { > + prev_connector_id = connector_id; > + } else { > + if (connector_id != prev_connector_id) > + return false; > + } Not understood this block, we already checking the encoder == "DP MST" and again reading the connector_id from PATH property. Is it not a redundant? > + > + return true; > +} > + > static void run_extendedmode_basic(data_t *data, > enum pipe pipe1, igt_output_t *output1, > enum pipe pipe2, igt_output_t *output2) > @@ -173,8 +272,46 @@ static void run_extendedmode_test(data_t *data) { > } > } > > +static void run_extendedmode_negative(data_t *data, int pipe1, int pipe2) > +{ > + struct igt_fb fbs[2]; > + igt_display_t *display = &data->display; > + igt_plane_t *plane[2]; > + int ret; > + > + igt_display_reset(display); > + > + igt_output_set_pipe(data->mst_output[0], pipe1); > + igt_output_set_pipe(data->mst_output[1], pipe2); > + > + igt_create_color_fb(data->drm_fd, data->mode_mst[0].hdisplay, data->mode_mst[0].vdisplay, > + DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_LINEAR, 1, 0, 0, &fbs[0]); > + igt_create_color_fb(data->drm_fd, data->mode_mst[1].hdisplay, data->mode_mst[1].vdisplay, > + DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_LINEAR, 0, 0, 1, &fbs[1]); > + > + plane[0] = igt_pipe_get_plane_type(&display->pipes[pipe1], DRM_PLANE_TYPE_PRIMARY); > + plane[1] = igt_pipe_get_plane_type(&display->pipes[pipe2], DRM_PLANE_TYPE_PRIMARY); > + > + igt_plane_set_fb(plane[0], &fbs[0]); > + igt_fb_set_size(&fbs[0], plane[0], data->mode_mst[0].hdisplay, data->mode_mst[0].vdisplay); > + igt_plane_set_size(plane[0], data->mode_mst[0].hdisplay, data->mode_mst[0].vdisplay); > + > + igt_plane_set_fb(plane[1], &fbs[1]); > + igt_fb_set_size(&fbs[1], plane[1], data->mode_mst[1].hdisplay, data->mode_mst[1].vdisplay); > + igt_plane_set_size(plane[1], data->mode_mst[1].hdisplay, data->mode_mst[1].vdisplay); > + > + igt_output_override_mode(data->mst_output[0], &data->mode_mst[0]); > + igt_output_override_mode(data->mst_output[1], &data->mode_mst[1]); > + > + ret = igt_display_try_commit2(display, COMMIT_ATOMIC); Don't we need to check for the bigjoiner constraint? Example: 4K on pipe-c + 8K on pipe-d will throw -EINVAL. > + igt_assert(ret != 0 && errno == ENOSPC); > +} > + > igt_main > { > + int dp_mst_outputs = 0, count = 0; > + enum pipe pipe1, pipe2; > + igt_output_t *output; > data_t data; > > igt_fixture { > @@ -182,12 +319,41 @@ igt_main > kmstest_set_vt_graphics_mode(); > igt_display_require(&data.display, data.drm_fd); > igt_display_require_output(&data.display); > + > + for_each_connected_output(&data.display, output) { > + data.mst_output[count++] = output; > + if (output_is_dp_mst(&data, output, dp_mst_outputs)) > + dp_mst_outputs++; > + } > } > > igt_describe("Test for validating display extended mode with a pair of connected displays"); > igt_subtest_with_dynamic("extended-mode-basic") > run_extendedmode_test(&data); > > + igt_describe("Negative test for validating display extended mode with a pair of connected " > + "2k-4k or 4k-4k displays"); > + igt_subtest_with_dynamic("mst-extended-mode-negative") { > + igt_require_f(dp_mst_outputs > 1, "MST not found more then one\n"); > + > + memcpy(&data.mode_mst[0], get_mode(data.mst_output[0]), sizeof(drmModeModeInfo)); > + memcpy(&data.mode_mst[1], get_highres_mode(data.mst_output[1]), ----------------^ Fix the alignment (an extra space) > + sizeof(drmModeModeInfo)); > + igt_require_f((data.mode_mst[1].hdisplay >= HDISPLAY_4K && > + data.mode_mst[1].vdisplay >= VDISPLAY_4K), "4k panel not found\n"); > + > + for_each_pipe(&data.display, pipe1) { > + for_each_pipe(&data.display, pipe2) { > + if (pipe1 == pipe2) > + continue; > + > + igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe1), > + kmstest_pipe_name(pipe2)) > + run_extendedmode_negative(&data, pipe1, pipe2); > + } > + } > + } > + > igt_fixture { > igt_display_fini(&data.display); > } ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2023-05-03 5:55 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-05-02 11:02 [igt-dev] [PATCH i-g-t 1/2] tests/kms_display_modes: Add negative test for extended display Mohammed Thasleem 2023-05-02 11:02 ` [igt-dev] [PATCH i-g-t 2/2] lib/igt_kms: bandwidth failure should return ENOSPC Mohammed Thasleem 2023-05-03 5:55 ` Modem, Bhanuprakash 2023-05-02 11:45 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] tests/kms_display_modes: Add negative test for extended display Patchwork 2023-05-02 14:35 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork 2023-05-03 5:43 ` [igt-dev] [PATCH i-g-t 1/2] " Modem, Bhanuprakash
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox