* [igt-dev] [PATCH 0/2] tests/i915/i915_pm_backlight: Add new subtest and test cleanup
@ 2022-11-08 13:03 Nidhi Gupta
2022-11-08 13:03 ` [igt-dev] [PATCH 1/2] tests/i915/i915_pm_backlight: Add new subtest to validate dual panel backlight Nidhi Gupta
` (3 more replies)
0 siblings, 4 replies; 9+ messages in thread
From: Nidhi Gupta @ 2022-11-08 13:03 UTC (permalink / raw)
To: igt-dev
Add new subtest to validate dual panel backlight and convert
exixting subtests to dynamic subtests for better reporting.
Nidhi Gupta (2):
tests/i915/i915_pm_backlight: Add new subtest to validate dual panel
backlight
tests/i915/i915_pm_backlight: Create dynamic subtests
tests/i915/i915_pm_backlight.c | 223 +++++++++++++++++++++++++++++------------
1 file changed, 157 insertions(+), 66 deletions(-)
--
1.9.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [igt-dev] [PATCH 1/2] tests/i915/i915_pm_backlight: Add new subtest to validate dual panel backlight
2022-11-08 13:03 [igt-dev] [PATCH 0/2] tests/i915/i915_pm_backlight: Add new subtest and test cleanup Nidhi Gupta
@ 2022-11-08 13:03 ` Nidhi Gupta
2022-11-08 13:03 ` [igt-dev] [PATCH 2/2] tests/i915/i915_pm_backlight: Create dynamic subtests Nidhi Gupta
` (2 subsequent siblings)
3 siblings, 0 replies; 9+ messages in thread
From: Nidhi Gupta @ 2022-11-08 13:03 UTC (permalink / raw)
To: igt-dev; +Cc: Nidhi Gupta
Since driver can now support multiple eDPs and Debugfs structure for
backlight changed per connector the test should then iterate through
all eDP connectors.
Signed-off-by: Nidhi Gupta <nidhi1.gupta@intel.com>
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
tests/i915/i915_pm_backlight.c | 208 +++++++++++++++++++++++++++++------------
1 file changed, 148 insertions(+), 60 deletions(-)
diff --git a/tests/i915/i915_pm_backlight.c b/tests/i915/i915_pm_backlight.c
index cafae7f..fdf1315 100644
--- a/tests/i915/i915_pm_backlight.c
+++ b/tests/i915/i915_pm_backlight.c
@@ -34,29 +34,39 @@
#include <errno.h>
#include <unistd.h>
#include <time.h>
+#include "igt_device.h"
+#include "igt_device_scan.h"
struct context {
int max;
+ igt_output_t *output;
+ char path[PATH_MAX];
};
+enum {
+ TEST_NONE = 0,
+ TEST_DPMS,
+ TEST_SUSPEND,
+};
#define TOLERANCE 5 /* percent */
-#define BACKLIGHT_PATH "/sys/class/backlight/intel_backlight"
+#define BACKLIGHT_PATH "/sys/class/backlight"
#define FADESTEPS 10
#define FADESPEED 100 /* milliseconds between steps */
+#define NUM_EDP_OUTPUTS 2
+
IGT_TEST_DESCRIPTION("Basic backlight sysfs test");
-static int backlight_read(int *result, const char *fname)
+static int backlight_read(int *result, const char *fname, struct context *context)
{
int fd;
char full[PATH_MAX];
- char dst[64];
+ char dst[512];
int r, e;
- igt_assert(snprintf(full, PATH_MAX, "%s/%s", BACKLIGHT_PATH, fname) < PATH_MAX);
-
+ igt_assert(snprintf(full, PATH_MAX, "%s/%s/%s", BACKLIGHT_PATH, context->path, fname) < PATH_MAX);
fd = open(full, O_RDONLY);
if (fd == -1)
return -errno;
@@ -73,14 +83,14 @@ static int backlight_read(int *result, const char *fname)
return errno;
}
-static int backlight_write(int value, const char *fname)
+static int backlight_write(int value, const char *fname, struct context *context)
{
int fd;
char full[PATH_MAX];
char src[64];
int len;
- igt_assert(snprintf(full, PATH_MAX, "%s/%s", BACKLIGHT_PATH, fname) < PATH_MAX);
+ igt_assert(snprintf(full, PATH_MAX, "%s/%s/%s", BACKLIGHT_PATH, context->path, fname) < PATH_MAX);
fd = open(full, O_WRONLY);
if (fd == -1)
return -errno;
@@ -100,12 +110,12 @@ static void test_and_verify(struct context *context, int val)
const int tolerance = val * TOLERANCE / 100;
int result;
- igt_assert_eq(backlight_write(val, "brightness"), 0);
- igt_assert_eq(backlight_read(&result, "brightness"), 0);
+ igt_assert_eq(backlight_write(val, "brightness", context), 0);
+ igt_assert_eq(backlight_read(&result, "brightness", context), 0);
/* Check that the exact value sticks */
igt_assert_eq(result, val);
- igt_assert_eq(backlight_read(&result, "actual_brightness"), 0);
+ igt_assert_eq(backlight_read(&result, "actual_brightness", context), 0);
/* Some rounding may happen depending on hw */
igt_assert_f(result >= max(0, val - tolerance) &&
result <= min(context->max, val + tolerance),
@@ -124,16 +134,16 @@ static void test_bad_brightness(struct context *context)
{
int val;
/* First write some sane value */
- backlight_write(context->max / 2, "brightness");
+ backlight_write(context->max / 2, "brightness", context);
/* Writing invalid values should fail and not change the value */
- igt_assert_lt(backlight_write(-1, "brightness"), 0);
- backlight_read(&val, "brightness");
+ igt_assert_lt(backlight_write(-1, "brightness", context), 0);
+ backlight_read(&val, "brightness", context);
igt_assert_eq(val, context->max / 2);
- igt_assert_lt(backlight_write(context->max + 1, "brightness"), 0);
- backlight_read(&val, "brightness");
+ igt_assert_lt(backlight_write(context->max + 1, "brightness", context), 0);
+ backlight_read(&val, "brightness", context);
igt_assert_eq(val, context->max / 2);
- igt_assert_lt(backlight_write(INT_MAX, "brightness"), 0);
- backlight_read(&val, "brightness");
+ igt_assert_lt(backlight_write(INT_MAX, "brightness", context), 0);
+ backlight_read(&val, "brightness", context);
igt_assert_eq(val, context->max / 2);
}
@@ -179,21 +189,57 @@ test_fade_with_suspend(struct context *context, igt_output_t *output)
test_fade(context);
}
+static void test_cleanup(igt_display_t *display, igt_output_t *output)
+{
+ igt_output_set_pipe(output, PIPE_NONE);
+ igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
+ igt_pm_restore_sata_link_power_management();
+}
+
+static void test_setup(igt_display_t display, igt_output_t *output)
+{
+ igt_plane_t *primary;
+ drmModeModeInfo *mode;
+ struct igt_fb fb;
+ enum pipe pipe;
+
+ igt_display_reset(&display);
+
+ for_each_pipe(&display, pipe) {
+ if (!igt_pipe_connector_valid(pipe, output))
+ continue;
+
+ igt_output_set_pipe(output, pipe);
+ mode = igt_output_get_mode(output);
+
+ igt_create_pattern_fb(display.drm_fd,
+ mode->hdisplay, mode->vdisplay,
+ DRM_FORMAT_XRGB8888,
+ DRM_FORMAT_MOD_LINEAR, &fb);
+ primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
+ igt_plane_set_fb(primary, &fb);
+
+ igt_display_commit2(&display, display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
+ igt_pm_enable_sata_link_power_management();
+
+ break;
+ }
+}
+
igt_main
{
- struct context context = {0};
- int old;
+ int old, fd;
+ int i = 0;
igt_display_t display;
igt_output_t *output;
- struct igt_fb fb;
+ char file_path_n[PATH_MAX] = "";
+ bool dual_edp = false;
+ struct context contexts[NUM_EDP_OUTPUTS];
igt_fixture {
- enum pipe pipe;
bool found = false;
char full_name[32] = {};
char *name;
- drmModeModeInfo *mode;
- igt_plane_t *primary;
/*
* Backlight tests requires the output to be enabled,
@@ -202,56 +248,98 @@ igt_main
kmstest_set_vt_graphics_mode();
igt_display_require(&display, drm_open_driver(DRIVER_INTEL));
- /* Get the max value and skip the whole test if sysfs interface not available */
- igt_skip_on(backlight_read(&old, "brightness"));
- igt_assert(backlight_read(&context.max, "max_brightness") > -1);
+ for_each_connected_output(&display, output) {
+ if (output->config.connector->connector_type != DRM_MODE_CONNECTOR_eDP)
+ continue;
- /* should be ../../cardX-$output */
- igt_assert_lt(12, readlink(BACKLIGHT_PATH "/device", full_name, sizeof(full_name) - 1));
- name = basename(full_name);
+ if (found)
+ snprintf(file_path_n, PATH_MAX, "%s/card%i-%s-backlight/brightness",
+ BACKLIGHT_PATH, igt_device_get_card_index(display.drm_fd),
+ igt_output_name(output));
+ else
+ snprintf(file_path_n, PATH_MAX, "%s/intel_backlight/brightness", BACKLIGHT_PATH);
- for_each_pipe_with_valid_output(&display, pipe, output) {
- if (strcmp(name + 6, output->name))
+ fd = open(file_path_n, O_RDONLY);
+ if (fd == -1) {
continue;
- found = true;
- break;
+ }
+ if (found)
+ snprintf(contexts[i].path, PATH_MAX, "card%i-%s-backlight",
+ igt_device_get_card_index(display.drm_fd),
+ igt_output_name(output));
+ else
+ snprintf(contexts[i].path, PATH_MAX, "intel_backlight");
+
+ close(fd);
+
+ /* should be ../../cardX-$output */
+ snprintf(file_path_n, PATH_MAX, "%s/%s/device", BACKLIGHT_PATH, contexts[i].path);
+ igt_assert_lt(16, readlink(file_path_n, full_name, sizeof(full_name) - 1));
+ name = basename(full_name);
+
+ if (!strcmp(name + 6, output->name)) {
+ contexts[i++].output = output;
+
+ if (found)
+ dual_edp = true;
+ else
+ found = true;
+ }
}
+ igt_require_f(found, "No valid output found.\n");
+ }
- igt_require_f(found,
- "Could not map backlight for \"%s\" to connected output\n",
- name);
-
- igt_output_set_pipe(output, pipe);
- mode = igt_output_get_mode(output);
-
- igt_create_pattern_fb(display.drm_fd,
- mode->hdisplay, mode->vdisplay,
- DRM_FORMAT_XRGB8888,
- DRM_FORMAT_MOD_LINEAR, &fb);
- primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
- igt_plane_set_fb(primary, &fb);
+ igt_subtest("basic-brightness") {
+ for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
+ test_setup(display, &contexts->output[j]);
+ igt_assert(backlight_read(&contexts[j].max, "max_brightness", &contexts[j]) > -1);
+ test_brightness(&contexts[j]);
+ test_cleanup(&display, output);
+ }
+ }
- igt_display_commit2(&display, display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
- igt_pm_enable_sata_link_power_management();
+ igt_subtest("bad-brightness") {
+ for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
+ test_setup(display, &contexts->output[j]);
+ igt_assert(backlight_read(&contexts[j].max, "max_brightness", &contexts[j]) > -1);
+ test_bad_brightness(&contexts[j]);
+ test_cleanup(&display, output);
+ }
+ }
+ igt_subtest("fade") {
+ for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
+ test_setup(display, &contexts->output[j]);
+ igt_assert(backlight_read(&contexts[j].max, "max_brightness", &contexts[j]) > -1);
+ test_fade(&contexts[j]);
+ test_cleanup(&display, output);
+ }
}
+ igt_subtest("fade_with_dpms") {
+ for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
+ test_setup(display, &contexts->output[j]);
+ igt_assert(backlight_read(&contexts[j].max, "max_brightness", &contexts[j]) > -1);
+ test_fade_with_dpms(&contexts[j], output);
+ test_cleanup(&display, output);
+ }
+ }
+ igt_subtest("fade_with_suspend") {
+ for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
+ test_setup(display, &contexts->output[j]);
+ igt_assert(backlight_read(&contexts[j].max, "max_brightness", &contexts[j]) > -1);
+ test_fade_with_suspend(&contexts[j], output);
+ test_cleanup(&display, output);
+ }
+ }
+
- igt_subtest("basic-brightness")
- test_brightness(&context);
- igt_subtest("bad-brightness")
- test_bad_brightness(&context);
- igt_subtest("fade")
- test_fade(&context);
- igt_subtest("fade_with_dpms")
- test_fade_with_dpms(&context, output);
- igt_subtest("fade_with_suspend")
- test_fade_with_suspend(&context, output);
igt_fixture {
/* Restore old brightness */
- backlight_write(old, "brightness");
+ for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
+ backlight_write(old, "brightness", &contexts[j]);
+ }
igt_display_fini(&display);
- igt_remove_fb(display.drm_fd, &fb);
igt_pm_restore_sata_link_power_management();
close(display.drm_fd);
}
--
1.9.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [igt-dev] [PATCH 2/2] tests/i915/i915_pm_backlight: Create dynamic subtests
2022-11-08 13:03 [igt-dev] [PATCH 0/2] tests/i915/i915_pm_backlight: Add new subtest and test cleanup Nidhi Gupta
2022-11-08 13:03 ` [igt-dev] [PATCH 1/2] tests/i915/i915_pm_backlight: Add new subtest to validate dual panel backlight Nidhi Gupta
@ 2022-11-08 13:03 ` Nidhi Gupta
2022-11-09 9:26 ` Kamil Konieczny
2022-11-08 13:34 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/i915/i915_pm_backlight: Add new subtest and test cleanup Patchwork
2022-11-08 17:55 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
3 siblings, 1 reply; 9+ messages in thread
From: Nidhi Gupta @ 2022-11-08 13:03 UTC (permalink / raw)
To: igt-dev; +Cc: Nidhi Gupta
Modified the test to include dynamic subtests.
Signed-off-by: Nidhi Gupta <nidhi1.gupta@intel.com>
---
tests/i915/i915_pm_backlight.c | 109 +++++++++++++++++++++--------------------
1 file changed, 56 insertions(+), 53 deletions(-)
diff --git a/tests/i915/i915_pm_backlight.c b/tests/i915/i915_pm_backlight.c
index fdf1315..9fe9f45 100644
--- a/tests/i915/i915_pm_backlight.c
+++ b/tests/i915/i915_pm_backlight.c
@@ -66,7 +66,8 @@ static int backlight_read(int *result, const char *fname, struct context *contex
char dst[512];
int r, e;
- igt_assert(snprintf(full, PATH_MAX, "%s/%s/%s", BACKLIGHT_PATH, context->path, fname) < PATH_MAX);
+ if (snprintf(full, PATH_MAX, "%s/%s/%s", BACKLIGHT_PATH, context->path, fname) > PATH_MAX)
+ return -errno;
fd = open(full, O_RDONLY);
if (fd == -1)
return -errno;
@@ -90,7 +91,8 @@ static int backlight_write(int value, const char *fname, struct context *context
char src[64];
int len;
- igt_assert(snprintf(full, PATH_MAX, "%s/%s/%s", BACKLIGHT_PATH, context->path, fname) < PATH_MAX);
+ if (snprintf(full, PATH_MAX, "%s/%s/%s", BACKLIGHT_PATH, context->path, fname) > PATH_MAX)
+ return -errno;
fd = open(full, O_WRONLY);
if (fd == -1)
return -errno;
@@ -163,30 +165,32 @@ static void test_fade(struct context *context)
}
}
-static void
-test_fade_with_dpms(struct context *context, igt_output_t *output)
+static int
+check_dpms(igt_output_t *output)
{
- igt_require(igt_setup_runtime_pm(output->display->drm_fd));
+ if ((igt_setup_runtime_pm(output->display->drm_fd)) == 0)
+ return -errno;
kmstest_set_connector_dpms(output->display->drm_fd,
output->config.connector,
DRM_MODE_DPMS_OFF);
- igt_require(igt_wait_for_pm_status(IGT_RUNTIME_PM_STATUS_SUSPENDED));
+ if ((igt_wait_for_pm_status(IGT_RUNTIME_PM_STATUS_SUSPENDED)) == 0)
+ return -errno;
kmstest_set_connector_dpms(output->display->drm_fd,
output->config.connector,
DRM_MODE_DPMS_ON);
- igt_assert(igt_wait_for_pm_status(IGT_RUNTIME_PM_STATUS_ACTIVE));
+ if ((igt_wait_for_pm_status(IGT_RUNTIME_PM_STATUS_ACTIVE)) == 0)
+ return -errno;
+
+ return 1;
- test_fade(context);
}
static void
-test_fade_with_suspend(struct context *context, igt_output_t *output)
+check_suspend(igt_output_t *output)
{
igt_system_suspend_autoresume(SUSPEND_STATE_MEM, SUSPEND_TEST_NONE);
-
- test_fade(context);
}
static void test_cleanup(igt_display_t *display, igt_output_t *output)
@@ -228,13 +232,25 @@ static void test_setup(igt_display_t display, igt_output_t *output)
igt_main
{
- int old, fd;
- int i = 0;
+ int old[NUM_EDP_OUTPUTS], fd;
+ int i = 0, ret = 0;
igt_display_t display;
igt_output_t *output;
char file_path_n[PATH_MAX] = "";
bool dual_edp = false;
struct context contexts[NUM_EDP_OUTPUTS];
+ struct {
+ const char *name;
+ const char *desc;
+ void (*test_t) (struct context *);
+ int flags;
+ } tests[] = {
+ { "basic-brightness", "desc", test_brightness, TEST_NONE },
+ { "bad-brightness", "desc", test_bad_brightness, TEST_NONE },
+ { "fade", "desc", test_fade, TEST_NONE },
+ { "fade-with-dpms", "desc", test_fade, TEST_DPMS },
+ { "fade-with-suspend", "desc", test_fade, TEST_SUSPEND },
+ };
igt_fixture {
bool found = false;
@@ -289,54 +305,41 @@ igt_main
igt_require_f(found, "No valid output found.\n");
}
- igt_subtest("basic-brightness") {
- for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
- test_setup(display, &contexts->output[j]);
- igt_assert(backlight_read(&contexts[j].max, "max_brightness", &contexts[j]) > -1);
- test_brightness(&contexts[j]);
- test_cleanup(&display, output);
- }
- }
- igt_subtest("bad-brightness") {
- for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
- test_setup(display, &contexts->output[j]);
- igt_assert(backlight_read(&contexts[j].max, "max_brightness", &contexts[j]) > -1);
- test_bad_brightness(&contexts[j]);
- test_cleanup(&display, output);
- }
- }
- igt_subtest("fade") {
- for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
- test_setup(display, &contexts->output[j]);
- igt_assert(backlight_read(&contexts[j].max, "max_brightness", &contexts[j]) > -1);
- test_fade(&contexts[j]);
- test_cleanup(&display, output);
- }
- }
- igt_subtest("fade_with_dpms") {
- for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
- test_setup(display, &contexts->output[j]);
- igt_assert(backlight_read(&contexts[j].max, "max_brightness", &contexts[j]) > -1);
- test_fade_with_dpms(&contexts[j], output);
- test_cleanup(&display, output);
- }
- }
- igt_subtest("fade_with_suspend") {
- for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
- test_setup(display, &contexts->output[j]);
- igt_assert(backlight_read(&contexts[j].max, "max_brightness", &contexts[j]) > -1);
- test_fade_with_suspend(&contexts[j], output);
- test_cleanup(&display, output);
+ for (i = 0; i < ARRAY_SIZE(tests); i++) {
+ igt_describe(tests[i].desc);
+ igt_subtest_with_dynamic(tests[i].name) {
+ for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
+ test_setup(display, &contexts->output[j]);
+
+ if (backlight_read(&old[j], "brightness", &contexts[j]))
+ continue;
+
+ if (tests[i].flags == TEST_DPMS) {
+ ret = check_dpms(contexts[j].output);
+ if (ret == 0)
+ continue;
+ }
+
+ if (tests[i].flags == TEST_SUSPEND)
+ check_suspend(contexts[j].output);
+
+ igt_dynamic_f("%s", igt_output_name(contexts[j].output)) {
+ igt_assert(backlight_read(&contexts[j].max, "max_brightness", &contexts[j]) > -1);
+ tests[i].test_t(&contexts[j]);
+ }
+
+ test_cleanup(&display, output);
+ }
+ /* TODO: Add tests for dual eDP. */
}
}
-
igt_fixture {
/* Restore old brightness */
for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
- backlight_write(old, "brightness", &contexts[j]);
+ backlight_write(old[j], "brightness", &contexts[j]);
}
igt_display_fini(&display);
--
1.9.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for tests/i915/i915_pm_backlight: Add new subtest and test cleanup
2022-11-08 13:03 [igt-dev] [PATCH 0/2] tests/i915/i915_pm_backlight: Add new subtest and test cleanup Nidhi Gupta
2022-11-08 13:03 ` [igt-dev] [PATCH 1/2] tests/i915/i915_pm_backlight: Add new subtest to validate dual panel backlight Nidhi Gupta
2022-11-08 13:03 ` [igt-dev] [PATCH 2/2] tests/i915/i915_pm_backlight: Create dynamic subtests Nidhi Gupta
@ 2022-11-08 13:34 ` Patchwork
2022-11-08 17:55 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
3 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2022-11-08 13:34 UTC (permalink / raw)
To: Nidhi Gupta; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 10257 bytes --]
== Series Details ==
Series: tests/i915/i915_pm_backlight: Add new subtest and test cleanup
URL : https://patchwork.freedesktop.org/series/110663/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_12354 -> IGTPW_8066
====================================================
Summary
-------
**WARNING**
Minor unknown changes coming with IGTPW_8066 need to be verified
manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_8066, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/index.html
Participating hosts (40 -> 37)
------------------------------
Additional (1): bat-dg1-7
Missing (4): fi-ctg-p8600 fi-hsw-4770 fi-ilk-m540 fi-bdw-samus
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_8066:
### IGT changes ###
#### Warnings ####
* igt@i915_pm_backlight@basic-brightness:
- fi-rkl-guc: [SKIP][1] ([i915#3012]) -> [SKIP][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/fi-rkl-guc/igt@i915_pm_backlight@basic-brightness.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/fi-rkl-guc/igt@i915_pm_backlight@basic-brightness.html
- fi-rkl-11600: [SKIP][3] ([i915#3012]) -> [SKIP][4]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/fi-rkl-11600/igt@i915_pm_backlight@basic-brightness.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/fi-rkl-11600/igt@i915_pm_backlight@basic-brightness.html
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* igt@i915_pm_backlight@basic-brightness:
- {bat-dg2-8}: [SKIP][5] ([i915#1155]) -> [SKIP][6]
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/bat-dg2-8/igt@i915_pm_backlight@basic-brightness.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/bat-dg2-8/igt@i915_pm_backlight@basic-brightness.html
- {bat-rpls-1}: [SKIP][7] ([i915#1155]) -> [SKIP][8]
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/bat-rpls-1/igt@i915_pm_backlight@basic-brightness.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/bat-rpls-1/igt@i915_pm_backlight@basic-brightness.html
- {bat-rpls-2}: [SKIP][9] ([i915#1155]) -> [SKIP][10]
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/bat-rpls-2/igt@i915_pm_backlight@basic-brightness.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/bat-rpls-2/igt@i915_pm_backlight@basic-brightness.html
- {bat-dg1-7}: NOTRUN -> [SKIP][11]
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/bat-dg1-7/igt@i915_pm_backlight@basic-brightness.html
- {bat-dg2-9}: [SKIP][12] ([i915#1155]) -> [SKIP][13]
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/bat-dg2-9/igt@i915_pm_backlight@basic-brightness.html
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/bat-dg2-9/igt@i915_pm_backlight@basic-brightness.html
- {bat-dg2-11}: [SKIP][14] ([i915#1155]) -> [SKIP][15]
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/bat-dg2-11/igt@i915_pm_backlight@basic-brightness.html
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/bat-dg2-11/igt@i915_pm_backlight@basic-brightness.html
* igt@i915_selftest@live@hangcheck:
- {bat-dg1-7}: NOTRUN -> [INCOMPLETE][16]
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/bat-dg1-7/igt@i915_selftest@live@hangcheck.html
New tests
---------
New tests have been introduced between CI_DRM_12354 and IGTPW_8066:
### New IGT tests (1) ###
* igt@i915_pm_backlight@basic-brightness@edp-1:
- Statuses : 10 pass(s)
- Exec time: [0.01, 0.24] s
Known issues
------------
Here are the changes found in IGTPW_8066 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_pm_backlight@basic-brightness:
- fi-bxt-dsi: [PASS][17] -> [SKIP][18] ([fdo#109271])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/fi-bxt-dsi/igt@i915_pm_backlight@basic-brightness.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/fi-bxt-dsi/igt@i915_pm_backlight@basic-brightness.html
- fi-snb-2520m: [PASS][19] -> [SKIP][20] ([fdo#109271])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/fi-snb-2520m/igt@i915_pm_backlight@basic-brightness.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/fi-snb-2520m/igt@i915_pm_backlight@basic-brightness.html
* igt@i915_pm_rpm@basic-pci-d3-state:
- bat-adlp-4: [PASS][21] -> [DMESG-WARN][22] ([i915#7077])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/bat-adlp-4/igt@i915_pm_rpm@basic-pci-d3-state.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/bat-adlp-4/igt@i915_pm_rpm@basic-pci-d3-state.html
* igt@i915_suspend@basic-s2idle-without-i915:
- fi-bdw-gvtdvm: NOTRUN -> [INCOMPLETE][23] ([i915#146])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/fi-bdw-gvtdvm/igt@i915_suspend@basic-s2idle-without-i915.html
* igt@kms_chamelium@hdmi-hpd-fast:
- fi-bdw-gvtdvm: NOTRUN -> [SKIP][24] ([fdo#109271] / [fdo#111827]) +7 similar issues
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/fi-bdw-gvtdvm/igt@kms_chamelium@hdmi-hpd-fast.html
* igt@kms_flip@basic-plain-flip:
- fi-bdw-gvtdvm: NOTRUN -> [SKIP][25] ([fdo#109271]) +31 similar issues
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/fi-bdw-gvtdvm/igt@kms_flip@basic-plain-flip.html
* igt@runner@aborted:
- bat-adlp-4: NOTRUN -> [FAIL][26] ([i915#4312])
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/bat-adlp-4/igt@runner@aborted.html
#### Possible fixes ####
* igt@gem_exec_parallel@engines@contexts:
- fi-bdw-gvtdvm: [INCOMPLETE][27] -> [PASS][28]
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/fi-bdw-gvtdvm/igt@gem_exec_parallel@engines@contexts.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/fi-bdw-gvtdvm/igt@gem_exec_parallel@engines@contexts.html
* igt@gem_linear_blits@basic:
- fi-pnv-d510: [SKIP][29] ([fdo#109271]) -> [PASS][30]
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/fi-pnv-d510/igt@gem_linear_blits@basic.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/fi-pnv-d510/igt@gem_linear_blits@basic.html
* igt@i915_selftest@live@gt_heartbeat:
- fi-apl-guc: [DMESG-FAIL][31] ([i915#5334]) -> [PASS][32]
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html
* igt@i915_selftest@live@migrate:
- {bat-adlp-6}: [INCOMPLETE][33] ([i915#7348]) -> [PASS][34]
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/bat-adlp-6/igt@i915_selftest@live@migrate.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/bat-adlp-6/igt@i915_selftest@live@migrate.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
[i915#1155]: https://gitlab.freedesktop.org/drm/intel/issues/1155
[i915#146]: https://gitlab.freedesktop.org/drm/intel/issues/146
[i915#2867]: https://gitlab.freedesktop.org/drm/intel/issues/2867
[i915#3012]: https://gitlab.freedesktop.org/drm/intel/issues/3012
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
[i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
[i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
[i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
[i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
[i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
[i915#4215]: https://gitlab.freedesktop.org/drm/intel/issues/4215
[i915#4258]: https://gitlab.freedesktop.org/drm/intel/issues/4258
[i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
[i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873
[i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
[i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
[i915#6434]: https://gitlab.freedesktop.org/drm/intel/issues/6434
[i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
[i915#6687]: https://gitlab.freedesktop.org/drm/intel/issues/6687
[i915#6997]: https://gitlab.freedesktop.org/drm/intel/issues/6997
[i915#7029]: https://gitlab.freedesktop.org/drm/intel/issues/7029
[i915#7077]: https://gitlab.freedesktop.org/drm/intel/issues/7077
[i915#7346]: https://gitlab.freedesktop.org/drm/intel/issues/7346
[i915#7348]: https://gitlab.freedesktop.org/drm/intel/issues/7348
[i915#7355]: https://gitlab.freedesktop.org/drm/intel/issues/7355
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7047 -> IGTPW_8066
CI-20190529: 20190529
CI_DRM_12354: ee91a500e2dc4a8b28c9e90a81e70767e6630301 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_8066: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/index.html
IGT_7047: 9cea1d05f492429a6d793995b87081e87a94b492 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Testlist changes
----------------
+igt@i915_pm_backlight@fade-with-dpms
+igt@i915_pm_backlight@fade-with-suspend
-igt@i915_pm_backlight@fade_with_dpms
-igt@i915_pm_backlight@fade_with_suspend
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/index.html
[-- Attachment #2: Type: text/html, Size: 10486 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for tests/i915/i915_pm_backlight: Add new subtest and test cleanup
2022-11-08 13:03 [igt-dev] [PATCH 0/2] tests/i915/i915_pm_backlight: Add new subtest and test cleanup Nidhi Gupta
` (2 preceding siblings ...)
2022-11-08 13:34 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/i915/i915_pm_backlight: Add new subtest and test cleanup Patchwork
@ 2022-11-08 17:55 ` Patchwork
3 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2022-11-08 17:55 UTC (permalink / raw)
To: Nidhi Gupta; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 34856 bytes --]
== Series Details ==
Series: tests/i915/i915_pm_backlight: Add new subtest and test cleanup
URL : https://patchwork.freedesktop.org/series/110663/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_12354_full -> IGTPW_8066_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/index.html
Participating hosts (9 -> 6)
------------------------------
Missing (3): pig-skl-6260u pig-kbl-iris pig-glk-j5005
New tests
---------
New tests have been introduced between CI_DRM_12354_full and IGTPW_8066_full:
### New IGT tests (7) ###
* igt@i915_pm_backlight@bad-brightness@edp-1:
- Statuses : 2 pass(s)
- Exec time: [0.00] s
* igt@i915_pm_backlight@basic-brightness@edp-1:
- Statuses : 2 pass(s)
- Exec time: [0.21, 0.22] s
* igt@i915_pm_backlight@fade-with-dpms:
- Statuses : 3 skip(s)
- Exec time: [0.0] s
* igt@i915_pm_backlight@fade-with-dpms@edp-1:
- Statuses : 2 pass(s)
- Exec time: [2.36, 2.37] s
* igt@i915_pm_backlight@fade-with-suspend:
- Statuses : 3 skip(s)
- Exec time: [0.0] s
* igt@i915_pm_backlight@fade-with-suspend@edp-1:
- Statuses : 2 pass(s)
- Exec time: [2.35, 2.36] s
* igt@i915_pm_backlight@fade@edp-1:
- Statuses : 2 pass(s)
- Exec time: [2.36, 2.37] s
Known issues
------------
Here are the changes found in IGTPW_8066_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@feature_discovery@display-3x:
- shard-iclb: NOTRUN -> [SKIP][1] ([i915#1839])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-iclb5/igt@feature_discovery@display-3x.html
- shard-tglb: NOTRUN -> [SKIP][2] ([i915#1839])
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb2/igt@feature_discovery@display-3x.html
* igt@gem_ccs@ctrl-surf-copy:
- shard-tglb: NOTRUN -> [SKIP][3] ([i915#3555] / [i915#5325])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb7/igt@gem_ccs@ctrl-surf-copy.html
* igt@gem_create@create-massive:
- shard-tglb: NOTRUN -> [DMESG-WARN][4] ([i915#4991])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb5/igt@gem_create@create-massive.html
* igt@gem_ctx_sseu@engines:
- shard-tglb: NOTRUN -> [SKIP][5] ([i915#280])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb8/igt@gem_ctx_sseu@engines.html
* igt@gem_exec_balancer@parallel-balancer:
- shard-iclb: [PASS][6] -> [SKIP][7] ([i915#4525])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/shard-iclb1/igt@gem_exec_balancer@parallel-balancer.html
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-iclb7/igt@gem_exec_balancer@parallel-balancer.html
* igt@gem_exec_fair@basic-none@vcs1:
- shard-iclb: NOTRUN -> [FAIL][8] ([i915#2842])
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-iclb1/igt@gem_exec_fair@basic-none@vcs1.html
* igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-glk: [PASS][9] -> [FAIL][10] ([i915#2842]) +2 similar issues
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/shard-glk3/igt@gem_exec_fair@basic-pace-share@rcs0.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-glk8/igt@gem_exec_fair@basic-pace-share@rcs0.html
* igt@gem_lmem_swapping@parallel-multi:
- shard-tglb: NOTRUN -> [SKIP][11] ([i915#4613]) +3 similar issues
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb6/igt@gem_lmem_swapping@parallel-multi.html
* igt@gem_lmem_swapping@parallel-random-engines:
- shard-iclb: NOTRUN -> [SKIP][12] ([i915#4613]) +1 similar issue
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-iclb8/igt@gem_lmem_swapping@parallel-random-engines.html
* igt@gem_lmem_swapping@verify-random:
- shard-apl: NOTRUN -> [SKIP][13] ([fdo#109271] / [i915#4613]) +1 similar issue
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-apl2/igt@gem_lmem_swapping@verify-random.html
- shard-glk: NOTRUN -> [SKIP][14] ([fdo#109271] / [i915#4613]) +1 similar issue
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-glk1/igt@gem_lmem_swapping@verify-random.html
* igt@gem_pxp@dmabuf-shared-protected-dst-is-context-refcounted:
- shard-tglb: NOTRUN -> [SKIP][15] ([i915#4270])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb1/igt@gem_pxp@dmabuf-shared-protected-dst-is-context-refcounted.html
* igt@gem_softpin@evict-snoop:
- shard-tglb: NOTRUN -> [SKIP][16] ([fdo#109312])
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb6/igt@gem_softpin@evict-snoop.html
- shard-iclb: NOTRUN -> [SKIP][17] ([fdo#109312])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-iclb6/igt@gem_softpin@evict-snoop.html
* igt@gem_userptr_blits@dmabuf-sync:
- shard-tglb: NOTRUN -> [SKIP][18] ([i915#3323])
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb7/igt@gem_userptr_blits@dmabuf-sync.html
* igt@gem_userptr_blits@readonly-pwrite-unsync:
- shard-tglb: NOTRUN -> [SKIP][19] ([i915#3297]) +1 similar issue
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb2/igt@gem_userptr_blits@readonly-pwrite-unsync.html
* igt@gen9_exec_parse@allowed-single:
- shard-iclb: NOTRUN -> [SKIP][20] ([i915#2856]) +1 similar issue
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-iclb8/igt@gen9_exec_parse@allowed-single.html
* igt@gen9_exec_parse@bb-chained:
- shard-tglb: NOTRUN -> [SKIP][21] ([i915#2527] / [i915#2856]) +3 similar issues
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb7/igt@gen9_exec_parse@bb-chained.html
* igt@i915_pm_dc@dc3co-vpb-simulation:
- shard-tglb: NOTRUN -> [SKIP][22] ([i915#1904])
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb3/igt@i915_pm_dc@dc3co-vpb-simulation.html
* igt@i915_pm_dc@dc9-dpms:
- shard-apl: [PASS][23] -> [SKIP][24] ([fdo#109271])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/shard-apl2/igt@i915_pm_dc@dc9-dpms.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-apl8/igt@i915_pm_dc@dc9-dpms.html
* igt@i915_pm_rpm@modeset-non-lpsp-stress:
- shard-tglb: NOTRUN -> [SKIP][25] ([fdo#111644] / [i915#1397] / [i915#2411])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb3/igt@i915_pm_rpm@modeset-non-lpsp-stress.html
* igt@i915_query@test-query-geometry-subslices:
- shard-tglb: NOTRUN -> [SKIP][26] ([i915#5723])
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb1/igt@i915_query@test-query-geometry-subslices.html
* igt@i915_selftest@live@gt_heartbeat:
- shard-glk: [PASS][27] -> [DMESG-FAIL][28] ([i915#5334])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/shard-glk9/igt@i915_selftest@live@gt_heartbeat.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-glk2/igt@i915_selftest@live@gt_heartbeat.html
* igt@i915_suspend@debugfs-reader:
- shard-apl: [PASS][29] -> [DMESG-WARN][30] ([i915#180]) +3 similar issues
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/shard-apl8/igt@i915_suspend@debugfs-reader.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-apl3/igt@i915_suspend@debugfs-reader.html
* igt@kms_atomic@atomic_plane_damage:
- shard-iclb: NOTRUN -> [SKIP][31] ([i915#4765])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-iclb8/igt@kms_atomic@atomic_plane_damage.html
* igt@kms_atomic_transition@plane-all-modeset-transition:
- shard-tglb: NOTRUN -> [SKIP][32] ([i915#1769])
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb7/igt@kms_atomic_transition@plane-all-modeset-transition.html
* igt@kms_big_fb@4-tiled-8bpp-rotate-0:
- shard-tglb: NOTRUN -> [SKIP][33] ([i915#5286]) +1 similar issue
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb2/igt@kms_big_fb@4-tiled-8bpp-rotate-0.html
- shard-iclb: NOTRUN -> [SKIP][34] ([i915#5286])
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-iclb5/igt@kms_big_fb@4-tiled-8bpp-rotate-0.html
* igt@kms_big_fb@linear-16bpp-rotate-270:
- shard-iclb: NOTRUN -> [SKIP][35] ([fdo#110725] / [fdo#111614]) +1 similar issue
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-iclb8/igt@kms_big_fb@linear-16bpp-rotate-270.html
* igt@kms_big_fb@linear-32bpp-rotate-270:
- shard-tglb: NOTRUN -> [SKIP][36] ([fdo#111614]) +3 similar issues
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb5/igt@kms_big_fb@linear-32bpp-rotate-270.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip:
- shard-tglb: NOTRUN -> [SKIP][37] ([fdo#111615]) +1 similar issue
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb6/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip.html
* igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_gen12_rc_ccs_cc:
- shard-iclb: NOTRUN -> [SKIP][38] ([fdo#109278] / [i915#3886]) +1 similar issue
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-iclb1/igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_gen12_rc_ccs_cc.html
* igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc:
- shard-apl: NOTRUN -> [SKIP][39] ([fdo#109271] / [i915#3886]) +1 similar issue
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-apl3/igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc.html
- shard-glk: NOTRUN -> [SKIP][40] ([fdo#109271] / [i915#3886]) +1 similar issue
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-glk6/igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc.html
* igt@kms_ccs@pipe-a-random-ccs-data-4_tiled_dg2_mc_ccs:
- shard-tglb: NOTRUN -> [SKIP][41] ([i915#6095]) +3 similar issues
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb7/igt@kms_ccs@pipe-a-random-ccs-data-4_tiled_dg2_mc_ccs.html
* igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs:
- shard-tglb: NOTRUN -> [SKIP][42] ([i915#3689] / [i915#3886])
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb5/igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs.html
* igt@kms_ccs@pipe-c-bad-rotation-90-yf_tiled_ccs:
- shard-tglb: NOTRUN -> [SKIP][43] ([fdo#111615] / [i915#3689]) +1 similar issue
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb8/igt@kms_ccs@pipe-c-bad-rotation-90-yf_tiled_ccs.html
* igt@kms_ccs@pipe-c-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs:
- shard-tglb: NOTRUN -> [SKIP][44] ([i915#3689] / [i915#6095]) +1 similar issue
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb7/igt@kms_ccs@pipe-c-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs.html
* igt@kms_ccs@pipe-d-bad-pixel-format-yf_tiled_ccs:
- shard-iclb: NOTRUN -> [SKIP][45] ([fdo#109278]) +1 similar issue
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-iclb3/igt@kms_ccs@pipe-d-bad-pixel-format-yf_tiled_ccs.html
* igt@kms_ccs@pipe-d-bad-rotation-90-4_tiled_dg2_mc_ccs:
- shard-tglb: NOTRUN -> [SKIP][46] ([i915#3689]) +5 similar issues
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb6/igt@kms_ccs@pipe-d-bad-rotation-90-4_tiled_dg2_mc_ccs.html
* igt@kms_chamelium@dp-hpd-after-suspend:
- shard-snb: NOTRUN -> [SKIP][47] ([fdo#109271] / [fdo#111827]) +4 similar issues
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-snb2/igt@kms_chamelium@dp-hpd-after-suspend.html
- shard-apl: NOTRUN -> [SKIP][48] ([fdo#109271] / [fdo#111827]) +3 similar issues
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-apl6/igt@kms_chamelium@dp-hpd-after-suspend.html
* igt@kms_chamelium@hdmi-audio-edid:
- shard-tglb: NOTRUN -> [SKIP][49] ([fdo#109284] / [fdo#111827]) +7 similar issues
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb3/igt@kms_chamelium@hdmi-audio-edid.html
- shard-glk: NOTRUN -> [SKIP][50] ([fdo#109271] / [fdo#111827]) +3 similar issues
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-glk2/igt@kms_chamelium@hdmi-audio-edid.html
* igt@kms_color_chamelium@ctm-0-75:
- shard-iclb: NOTRUN -> [SKIP][51] ([fdo#109284] / [fdo#111827]) +3 similar issues
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-iclb3/igt@kms_color_chamelium@ctm-0-75.html
* igt@kms_content_protection@dp-mst-lic-type-0:
- shard-tglb: NOTRUN -> [SKIP][52] ([i915#3116] / [i915#3299]) +1 similar issue
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb2/igt@kms_content_protection@dp-mst-lic-type-0.html
* igt@kms_content_protection@type1:
- shard-tglb: NOTRUN -> [SKIP][53] ([i915#7118])
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb3/igt@kms_content_protection@type1.html
- shard-iclb: NOTRUN -> [SKIP][54] ([i915#7118])
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-iclb1/igt@kms_content_protection@type1.html
* igt@kms_cursor_crc@cursor-offscreen-32x32:
- shard-tglb: NOTRUN -> [SKIP][55] ([i915#3555]) +1 similar issue
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb7/igt@kms_cursor_crc@cursor-offscreen-32x32.html
* igt@kms_flip@2x-busy-flip:
- shard-iclb: NOTRUN -> [SKIP][56] ([fdo#109274]) +1 similar issue
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-iclb6/igt@kms_flip@2x-busy-flip.html
* igt@kms_flip@2x-plain-flip-fb-recreate:
- shard-apl: NOTRUN -> [SKIP][57] ([fdo#109271]) +26 similar issues
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-apl7/igt@kms_flip@2x-plain-flip-fb-recreate.html
- shard-snb: NOTRUN -> [SKIP][58] ([fdo#109271]) +72 similar issues
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-snb5/igt@kms_flip@2x-plain-flip-fb-recreate.html
- shard-tglb: NOTRUN -> [SKIP][59] ([fdo#109274] / [fdo#111825] / [i915#3637]) +2 similar issues
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb1/igt@kms_flip@2x-plain-flip-fb-recreate.html
* igt@kms_flip@flip-vs-expired-vblank@c-hdmi-a2:
- shard-glk: [PASS][60] -> [FAIL][61] ([i915#79])
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/shard-glk6/igt@kms_flip@flip-vs-expired-vblank@c-hdmi-a2.html
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-glk6/igt@kms_flip@flip-vs-expired-vblank@c-hdmi-a2.html
* igt@kms_flip@plain-flip-ts-check-interruptible@a-hdmi-a2:
- shard-glk: [PASS][62] -> [FAIL][63] ([i915#2122]) +1 similar issue
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/shard-glk5/igt@kms_flip@plain-flip-ts-check-interruptible@a-hdmi-a2.html
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-glk7/igt@kms_flip@plain-flip-ts-check-interruptible@a-hdmi-a2.html
* igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-upscaling@pipe-a-default-mode:
- shard-iclb: NOTRUN -> [SKIP][64] ([i915#2672]) +2 similar issues
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-iclb2/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-upscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-downscaling@pipe-a-default-mode:
- shard-iclb: NOTRUN -> [SKIP][65] ([i915#2672] / [i915#3555])
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-iclb2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-downscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-valid-mode:
- shard-tglb: NOTRUN -> [SKIP][66] ([i915#2587] / [i915#2672]) +2 similar issues
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb7/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-downscaling@pipe-a-valid-mode:
- shard-iclb: NOTRUN -> [SKIP][67] ([i915#2587] / [i915#2672]) +2 similar issues
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-iclb7/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-downscaling@pipe-a-valid-mode.html
* igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-mmap-wc:
- shard-snb: [PASS][68] -> [SKIP][69] ([fdo#109271]) +1 similar issue
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/shard-snb5/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-mmap-wc.html
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-snb6/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-blt:
- shard-tglb: NOTRUN -> [SKIP][70] ([i915#6497]) +3 similar issues
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb7/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-pwrite:
- shard-glk: NOTRUN -> [SKIP][71] ([fdo#109271]) +25 similar issues
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-glk1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-pwrite.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-pwrite:
- shard-tglb: NOTRUN -> [SKIP][72] ([fdo#109280] / [fdo#111825]) +20 similar issues
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-pwrite.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-msflip-blt:
- shard-iclb: NOTRUN -> [SKIP][73] ([fdo#109280]) +3 similar issues
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-iclb5/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-msflip-blt.html
* igt@kms_hdr@static-toggle-dpms:
- shard-iclb: NOTRUN -> [SKIP][74] ([i915#3555])
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-iclb1/igt@kms_hdr@static-toggle-dpms.html
* igt@kms_pipe_b_c_ivb@enable-pipe-c-while-b-has-3-lanes:
- shard-iclb: NOTRUN -> [SKIP][75] ([fdo#109289])
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-iclb8/igt@kms_pipe_b_c_ivb@enable-pipe-c-while-b-has-3-lanes.html
* igt@kms_pipe_b_c_ivb@pipe-b-dpms-off-modeset-pipe-c:
- shard-tglb: NOTRUN -> [SKIP][76] ([fdo#109289]) +1 similar issue
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb5/igt@kms_pipe_b_c_ivb@pipe-b-dpms-off-modeset-pipe-c.html
* igt@kms_plane_alpha_blend@alpha-transparent-fb@pipe-b-hdmi-a-2:
- shard-glk: NOTRUN -> [FAIL][77] ([i915#4573]) +2 similar issues
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-glk7/igt@kms_plane_alpha_blend@alpha-transparent-fb@pipe-b-hdmi-a-2.html
* igt@kms_plane_alpha_blend@alpha-transparent-fb@pipe-c-dp-1:
- shard-apl: NOTRUN -> [FAIL][78] ([i915#4573]) +2 similar issues
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-apl8/igt@kms_plane_alpha_blend@alpha-transparent-fb@pipe-c-dp-1.html
* igt@kms_plane_lowres@tiling-4:
- shard-tglb: NOTRUN -> [SKIP][79] ([fdo#112054] / [i915#5288])
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb8/igt@kms_plane_lowres@tiling-4.html
* igt@kms_plane_scaling@plane-downscale-with-rotation-factor-0-5@pipe-d-edp-1:
- shard-tglb: NOTRUN -> [SKIP][80] ([i915#5176]) +7 similar issues
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb2/igt@kms_plane_scaling@plane-downscale-with-rotation-factor-0-5@pipe-d-edp-1.html
* igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area:
- shard-apl: NOTRUN -> [SKIP][81] ([fdo#109271] / [i915#658])
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-apl3/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area.html
- shard-tglb: NOTRUN -> [SKIP][82] ([i915#2920])
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb3/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area.html
- shard-glk: NOTRUN -> [SKIP][83] ([fdo#109271] / [i915#658])
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-glk9/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area.html
- shard-iclb: NOTRUN -> [SKIP][84] ([fdo#111068] / [i915#658])
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-iclb1/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area.html
* igt@kms_psr2_su@page_flip-xrgb8888:
- shard-iclb: NOTRUN -> [SKIP][85] ([fdo#109642] / [fdo#111068] / [i915#658])
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-iclb1/igt@kms_psr2_su@page_flip-xrgb8888.html
* igt@kms_psr@psr2_cursor_blt:
- shard-iclb: [PASS][86] -> [SKIP][87] ([fdo#109441]) +2 similar issues
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/shard-iclb2/igt@kms_psr@psr2_cursor_blt.html
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-iclb6/igt@kms_psr@psr2_cursor_blt.html
* igt@kms_psr@psr2_primary_render:
- shard-tglb: NOTRUN -> [FAIL][88] ([i915#132] / [i915#3467]) +2 similar issues
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb1/igt@kms_psr@psr2_primary_render.html
* igt@kms_psr@psr2_suspend:
- shard-iclb: NOTRUN -> [SKIP][89] ([fdo#109441])
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-iclb8/igt@kms_psr@psr2_suspend.html
* igt@kms_psr_stress_test@invalidate-primary-flip-overlay:
- shard-iclb: [PASS][90] -> [SKIP][91] ([i915#5519])
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/shard-iclb6/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-iclb7/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180:
- shard-tglb: NOTRUN -> [SKIP][92] ([fdo#111615] / [i915#5289])
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb5/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html
* igt@kms_writeback@writeback-check-output:
- shard-tglb: NOTRUN -> [SKIP][93] ([i915#2437])
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb6/igt@kms_writeback@writeback-check-output.html
* igt@prime_vgem@basic-userptr:
- shard-tglb: NOTRUN -> [SKIP][94] ([fdo#109295] / [i915#3301])
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb2/igt@prime_vgem@basic-userptr.html
* igt@sysfs_clients@sema-50:
- shard-tglb: NOTRUN -> [SKIP][95] ([i915#2994]) +1 similar issue
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb1/igt@sysfs_clients@sema-50.html
#### Possible fixes ####
* igt@gem_exec_balancer@parallel-bb-first:
- shard-iclb: [SKIP][96] ([i915#4525]) -> [PASS][97] +1 similar issue
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/shard-iclb5/igt@gem_exec_balancer@parallel-bb-first.html
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-iclb2/igt@gem_exec_balancer@parallel-bb-first.html
* igt@i915_pm_dc@dc6-psr:
- shard-iclb: [FAIL][98] ([i915#3989] / [i915#454]) -> [PASS][99]
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/shard-iclb6/igt@i915_pm_dc@dc6-psr.html
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-iclb2/igt@i915_pm_dc@dc6-psr.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a2:
- shard-glk: [FAIL][100] ([i915#79]) -> [PASS][101]
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/shard-glk3/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a2.html
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-glk3/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a2.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-cpu:
- shard-glk: [FAIL][102] ([i915#2546]) -> [PASS][103]
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/shard-glk1/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-cpu.html
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-glk6/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-cpu.html
* igt@kms_plane@plane-panning-bottom-right-suspend@pipe-b-planes:
- shard-snb: [SKIP][104] ([fdo#109271]) -> [PASS][105]
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/shard-snb7/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-b-planes.html
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-snb7/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-b-planes.html
* igt@kms_psr@psr2_no_drrs:
- shard-iclb: [SKIP][106] ([fdo#109441]) -> [PASS][107] +2 similar issues
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/shard-iclb8/igt@kms_psr@psr2_no_drrs.html
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-iclb2/igt@kms_psr@psr2_no_drrs.html
#### Warnings ####
* igt@gem_exec_balancer@parallel-ordering:
- shard-iclb: [SKIP][108] ([i915#4525]) -> [FAIL][109] ([i915#6117])
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/shard-iclb7/igt@gem_exec_balancer@parallel-ordering.html
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-iclb2/igt@gem_exec_balancer@parallel-ordering.html
* igt@gem_pread@exhaustion:
- shard-tglb: [INCOMPLETE][110] ([i915#7248]) -> [WARN][111] ([i915#2658])
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/shard-tglb2/igt@gem_pread@exhaustion.html
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-tglb3/igt@gem_pread@exhaustion.html
- shard-glk: [INCOMPLETE][112] ([i915#7248]) -> [WARN][113] ([i915#2658])
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/shard-glk3/igt@gem_pread@exhaustion.html
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-glk2/igt@gem_pread@exhaustion.html
* igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-fully-sf:
- shard-iclb: [SKIP][114] ([i915#658]) -> [SKIP][115] ([i915#2920])
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/shard-iclb3/igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-fully-sf.html
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-iclb2/igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr2_sf@cursor-plane-move-continuous-sf:
- shard-iclb: [SKIP][116] ([i915#2920]) -> [SKIP][117] ([i915#658])
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/shard-iclb2/igt@kms_psr2_sf@cursor-plane-move-continuous-sf.html
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-iclb1/igt@kms_psr2_sf@cursor-plane-move-continuous-sf.html
* igt@kms_psr2_sf@overlay-plane-update-continuous-sf:
- shard-iclb: [SKIP][118] ([fdo#111068] / [i915#658]) -> [SKIP][119] ([i915#2920])
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/shard-iclb5/igt@kms_psr2_sf@overlay-plane-update-continuous-sf.html
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-iclb2/igt@kms_psr2_sf@overlay-plane-update-continuous-sf.html
* igt@runner@aborted:
- shard-apl: ([FAIL][120], [FAIL][121]) ([i915#3002] / [i915#4312]) -> ([FAIL][122], [FAIL][123], [FAIL][124], [FAIL][125], [FAIL][126], [FAIL][127]) ([fdo#109271] / [i915#180] / [i915#3002] / [i915#4312])
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/shard-apl6/igt@runner@aborted.html
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12354/shard-apl2/igt@runner@aborted.html
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-apl8/igt@runner@aborted.html
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-apl8/igt@runner@aborted.html
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-apl6/igt@runner@aborted.html
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-apl1/igt@runner@aborted.html
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-apl3/igt@runner@aborted.html
[127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/shard-apl3/igt@runner@aborted.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
[fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
[fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
[fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
[fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
[fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
[fdo#109312]: https://bugs.freedesktop.org/show_bug.cgi?id=109312
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
[fdo#110725]: https://bugs.freedesktop.org/show_bug.cgi?id=110725
[fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
[fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
[fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
[fdo#111644]: https://bugs.freedesktop.org/show_bug.cgi?id=111644
[fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054
[i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132
[i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
[i915#1769]: https://gitlab.freedesktop.org/drm/intel/issues/1769
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
[i915#1904]: https://gitlab.freedesktop.org/drm/intel/issues/1904
[i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122
[i915#2411]: https://gitlab.freedesktop.org/drm/intel/issues/2411
[i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
[i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
[i915#2546]: https://gitlab.freedesktop.org/drm/intel/issues/2546
[i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
[i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658
[i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
[i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
[i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
[i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
[i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920
[i915#2994]: https://gitlab.freedesktop.org/drm/intel/issues/2994
[i915#3002]: https://gitlab.freedesktop.org/drm/intel/issues/3002
[i915#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116
[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#3323]: https://gitlab.freedesktop.org/drm/intel/issues/3323
[i915#3467]: https://gitlab.freedesktop.org/drm/intel/issues/3467
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
[i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
[i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
[i915#3989]: https://gitlab.freedesktop.org/drm/intel/issues/3989
[i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
[i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
[i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525
[i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
[i915#4573]: https://gitlab.freedesktop.org/drm/intel/issues/4573
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#4765]: https://gitlab.freedesktop.org/drm/intel/issues/4765
[i915#4991]: https://gitlab.freedesktop.org/drm/intel/issues/4991
[i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
[i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
[i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288
[i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
[i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
[i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
[i915#5519]: https://gitlab.freedesktop.org/drm/intel/issues/5519
[i915#5723]: https://gitlab.freedesktop.org/drm/intel/issues/5723
[i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
[i915#6117]: https://gitlab.freedesktop.org/drm/intel/issues/6117
[i915#6497]: https://gitlab.freedesktop.org/drm/intel/issues/6497
[i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
[i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118
[i915#7248]: https://gitlab.freedesktop.org/drm/intel/issues/7248
[i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7047 -> IGTPW_8066
* Piglit: piglit_4509 -> None
CI-20190529: 20190529
CI_DRM_12354: ee91a500e2dc4a8b28c9e90a81e70767e6630301 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_8066: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8066/index.html
IGT_7047: 9cea1d05f492429a6d793995b87081e87a94b492 @ 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_8066/index.html
[-- Attachment #2: Type: text/html, Size: 43498 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [igt-dev] [PATCH 2/2] tests/i915/i915_pm_backlight: Create dynamic subtests
2022-11-08 13:03 ` [igt-dev] [PATCH 2/2] tests/i915/i915_pm_backlight: Create dynamic subtests Nidhi Gupta
@ 2022-11-09 9:26 ` Kamil Konieczny
0 siblings, 0 replies; 9+ messages in thread
From: Kamil Konieczny @ 2022-11-09 9:26 UTC (permalink / raw)
To: igt-dev; +Cc: Nidhi Gupta
Hi Nidhi,
On 2022-11-08 at 18:33:03 +0530, Nidhi Gupta wrote:
> Modified the test to include dynamic subtests.
>
> Signed-off-by: Nidhi Gupta <nidhi1.gupta@intel.com>
> ---
> tests/i915/i915_pm_backlight.c | 109 +++++++++++++++++++++--------------------
> 1 file changed, 56 insertions(+), 53 deletions(-)
>
> diff --git a/tests/i915/i915_pm_backlight.c b/tests/i915/i915_pm_backlight.c
> index fdf1315..9fe9f45 100644
> --- a/tests/i915/i915_pm_backlight.c
> +++ b/tests/i915/i915_pm_backlight.c
> @@ -66,7 +66,8 @@ static int backlight_read(int *result, const char *fname, struct context *contex
> char dst[512];
> int r, e;
>
> - igt_assert(snprintf(full, PATH_MAX, "%s/%s/%s", BACKLIGHT_PATH, context->path, fname) < PATH_MAX);
> + if (snprintf(full, PATH_MAX, "%s/%s/%s", BACKLIGHT_PATH, context->path, fname) > PATH_MAX)
> + return -errno;
> fd = open(full, O_RDONLY);
> if (fd == -1)
> return -errno;
> @@ -90,7 +91,8 @@ static int backlight_write(int value, const char *fname, struct context *context
> char src[64];
> int len;
>
> - igt_assert(snprintf(full, PATH_MAX, "%s/%s/%s", BACKLIGHT_PATH, context->path, fname) < PATH_MAX);
> + if (snprintf(full, PATH_MAX, "%s/%s/%s", BACKLIGHT_PATH, context->path, fname) > PATH_MAX)
> + return -errno;
> fd = open(full, O_WRONLY);
> if (fd == -1)
> return -errno;
> @@ -163,30 +165,32 @@ static void test_fade(struct context *context)
> }
> }
>
> -static void
> -test_fade_with_dpms(struct context *context, igt_output_t *output)
> +static int
> +check_dpms(igt_output_t *output)
> {
> - igt_require(igt_setup_runtime_pm(output->display->drm_fd));
> + if ((igt_setup_runtime_pm(output->display->drm_fd)) == 0)
> + return -errno;
>
> kmstest_set_connector_dpms(output->display->drm_fd,
> output->config.connector,
> DRM_MODE_DPMS_OFF);
> - igt_require(igt_wait_for_pm_status(IGT_RUNTIME_PM_STATUS_SUSPENDED));
> + if ((igt_wait_for_pm_status(IGT_RUNTIME_PM_STATUS_SUSPENDED)) == 0)
> + return -errno;
>
> kmstest_set_connector_dpms(output->display->drm_fd,
> output->config.connector,
> DRM_MODE_DPMS_ON);
> - igt_assert(igt_wait_for_pm_status(IGT_RUNTIME_PM_STATUS_ACTIVE));
> + if ((igt_wait_for_pm_status(IGT_RUNTIME_PM_STATUS_ACTIVE)) == 0)
> + return -errno;
> +
> + return 1;
>
> - test_fade(context);
> }
>
> static void
> -test_fade_with_suspend(struct context *context, igt_output_t *output)
> +check_suspend(igt_output_t *output)
> {
> igt_system_suspend_autoresume(SUSPEND_STATE_MEM, SUSPEND_TEST_NONE);
> -
> - test_fade(context);
> }
>
> static void test_cleanup(igt_display_t *display, igt_output_t *output)
> @@ -228,13 +232,25 @@ static void test_setup(igt_display_t display, igt_output_t *output)
>
> igt_main
> {
> - int old, fd;
> - int i = 0;
> + int old[NUM_EDP_OUTPUTS], fd;
> + int i = 0, ret = 0;
> igt_display_t display;
> igt_output_t *output;
> char file_path_n[PATH_MAX] = "";
> bool dual_edp = false;
> struct context contexts[NUM_EDP_OUTPUTS];
> + struct {
> + const char *name;
> + const char *desc;
> + void (*test_t) (struct context *);
> + int flags;
> + } tests[] = {
> + { "basic-brightness", "desc", test_brightness, TEST_NONE },
-------------------------------------- ^
Please do not put dummy descriptions, either write it correctly
from the start or do it in separate patch.
Regards,
Kamil
> + { "bad-brightness", "desc", test_bad_brightness, TEST_NONE },
> + { "fade", "desc", test_fade, TEST_NONE },
> + { "fade-with-dpms", "desc", test_fade, TEST_DPMS },
> + { "fade-with-suspend", "desc", test_fade, TEST_SUSPEND },
> + };
>
> igt_fixture {
> bool found = false;
> @@ -289,54 +305,41 @@ igt_main
> igt_require_f(found, "No valid output found.\n");
> }
>
> - igt_subtest("basic-brightness") {
> - for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
> - test_setup(display, &contexts->output[j]);
> - igt_assert(backlight_read(&contexts[j].max, "max_brightness", &contexts[j]) > -1);
> - test_brightness(&contexts[j]);
> - test_cleanup(&display, output);
> - }
> - }
>
> - igt_subtest("bad-brightness") {
> - for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
> - test_setup(display, &contexts->output[j]);
> - igt_assert(backlight_read(&contexts[j].max, "max_brightness", &contexts[j]) > -1);
> - test_bad_brightness(&contexts[j]);
> - test_cleanup(&display, output);
> - }
> - }
> - igt_subtest("fade") {
> - for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
> - test_setup(display, &contexts->output[j]);
> - igt_assert(backlight_read(&contexts[j].max, "max_brightness", &contexts[j]) > -1);
> - test_fade(&contexts[j]);
> - test_cleanup(&display, output);
> - }
> - }
> - igt_subtest("fade_with_dpms") {
> - for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
> - test_setup(display, &contexts->output[j]);
> - igt_assert(backlight_read(&contexts[j].max, "max_brightness", &contexts[j]) > -1);
> - test_fade_with_dpms(&contexts[j], output);
> - test_cleanup(&display, output);
> - }
> - }
> - igt_subtest("fade_with_suspend") {
> - for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
> - test_setup(display, &contexts->output[j]);
> - igt_assert(backlight_read(&contexts[j].max, "max_brightness", &contexts[j]) > -1);
> - test_fade_with_suspend(&contexts[j], output);
> - test_cleanup(&display, output);
> + for (i = 0; i < ARRAY_SIZE(tests); i++) {
> + igt_describe(tests[i].desc);
> + igt_subtest_with_dynamic(tests[i].name) {
> + for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
> + test_setup(display, &contexts->output[j]);
> +
> + if (backlight_read(&old[j], "brightness", &contexts[j]))
> + continue;
> +
> + if (tests[i].flags == TEST_DPMS) {
> + ret = check_dpms(contexts[j].output);
> + if (ret == 0)
> + continue;
> + }
> +
> + if (tests[i].flags == TEST_SUSPEND)
> + check_suspend(contexts[j].output);
> +
> + igt_dynamic_f("%s", igt_output_name(contexts[j].output)) {
> + igt_assert(backlight_read(&contexts[j].max, "max_brightness", &contexts[j]) > -1);
> + tests[i].test_t(&contexts[j]);
> + }
> +
> + test_cleanup(&display, output);
> + }
> + /* TODO: Add tests for dual eDP. */
> }
> }
>
>
> -
> igt_fixture {
> /* Restore old brightness */
> for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
> - backlight_write(old, "brightness", &contexts[j]);
> + backlight_write(old[j], "brightness", &contexts[j]);
> }
>
> igt_display_fini(&display);
> --
> 1.9.1
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [igt-dev] [PATCH 1/2] tests/i915/i915_pm_backlight: Add new subtest to validate dual panel backlight
2022-11-14 6:40 [igt-dev] [PATCH 0/2] " Nidhi Gupta
@ 2022-11-14 6:40 ` Nidhi Gupta
2022-11-14 7:20 ` Hogander, Jouni
2022-11-14 7:46 ` Hogander, Jouni
0 siblings, 2 replies; 9+ messages in thread
From: Nidhi Gupta @ 2022-11-14 6:40 UTC (permalink / raw)
To: igt-dev; +Cc: Nidhi Gupta
Since driver can now support multiple eDPs and Debugfs structure for
backlight changed per connector the test should then iterate through
all eDP connectors.
Signed-off-by: Nidhi Gupta <nidhi1.gupta@intel.com>
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
tests/i915/i915_pm_backlight.c | 208 +++++++++++++++++++++++++++++------------
1 file changed, 148 insertions(+), 60 deletions(-)
diff --git a/tests/i915/i915_pm_backlight.c b/tests/i915/i915_pm_backlight.c
index cafae7f..fdf1315 100644
--- a/tests/i915/i915_pm_backlight.c
+++ b/tests/i915/i915_pm_backlight.c
@@ -34,29 +34,39 @@
#include <errno.h>
#include <unistd.h>
#include <time.h>
+#include "igt_device.h"
+#include "igt_device_scan.h"
struct context {
int max;
+ igt_output_t *output;
+ char path[PATH_MAX];
};
+enum {
+ TEST_NONE = 0,
+ TEST_DPMS,
+ TEST_SUSPEND,
+};
#define TOLERANCE 5 /* percent */
-#define BACKLIGHT_PATH "/sys/class/backlight/intel_backlight"
+#define BACKLIGHT_PATH "/sys/class/backlight"
#define FADESTEPS 10
#define FADESPEED 100 /* milliseconds between steps */
+#define NUM_EDP_OUTPUTS 2
+
IGT_TEST_DESCRIPTION("Basic backlight sysfs test");
-static int backlight_read(int *result, const char *fname)
+static int backlight_read(int *result, const char *fname, struct context *context)
{
int fd;
char full[PATH_MAX];
- char dst[64];
+ char dst[512];
int r, e;
- igt_assert(snprintf(full, PATH_MAX, "%s/%s", BACKLIGHT_PATH, fname) < PATH_MAX);
-
+ igt_assert(snprintf(full, PATH_MAX, "%s/%s/%s", BACKLIGHT_PATH, context->path, fname) < PATH_MAX);
fd = open(full, O_RDONLY);
if (fd == -1)
return -errno;
@@ -73,14 +83,14 @@ static int backlight_read(int *result, const char *fname)
return errno;
}
-static int backlight_write(int value, const char *fname)
+static int backlight_write(int value, const char *fname, struct context *context)
{
int fd;
char full[PATH_MAX];
char src[64];
int len;
- igt_assert(snprintf(full, PATH_MAX, "%s/%s", BACKLIGHT_PATH, fname) < PATH_MAX);
+ igt_assert(snprintf(full, PATH_MAX, "%s/%s/%s", BACKLIGHT_PATH, context->path, fname) < PATH_MAX);
fd = open(full, O_WRONLY);
if (fd == -1)
return -errno;
@@ -100,12 +110,12 @@ static void test_and_verify(struct context *context, int val)
const int tolerance = val * TOLERANCE / 100;
int result;
- igt_assert_eq(backlight_write(val, "brightness"), 0);
- igt_assert_eq(backlight_read(&result, "brightness"), 0);
+ igt_assert_eq(backlight_write(val, "brightness", context), 0);
+ igt_assert_eq(backlight_read(&result, "brightness", context), 0);
/* Check that the exact value sticks */
igt_assert_eq(result, val);
- igt_assert_eq(backlight_read(&result, "actual_brightness"), 0);
+ igt_assert_eq(backlight_read(&result, "actual_brightness", context), 0);
/* Some rounding may happen depending on hw */
igt_assert_f(result >= max(0, val - tolerance) &&
result <= min(context->max, val + tolerance),
@@ -124,16 +134,16 @@ static void test_bad_brightness(struct context *context)
{
int val;
/* First write some sane value */
- backlight_write(context->max / 2, "brightness");
+ backlight_write(context->max / 2, "brightness", context);
/* Writing invalid values should fail and not change the value */
- igt_assert_lt(backlight_write(-1, "brightness"), 0);
- backlight_read(&val, "brightness");
+ igt_assert_lt(backlight_write(-1, "brightness", context), 0);
+ backlight_read(&val, "brightness", context);
igt_assert_eq(val, context->max / 2);
- igt_assert_lt(backlight_write(context->max + 1, "brightness"), 0);
- backlight_read(&val, "brightness");
+ igt_assert_lt(backlight_write(context->max + 1, "brightness", context), 0);
+ backlight_read(&val, "brightness", context);
igt_assert_eq(val, context->max / 2);
- igt_assert_lt(backlight_write(INT_MAX, "brightness"), 0);
- backlight_read(&val, "brightness");
+ igt_assert_lt(backlight_write(INT_MAX, "brightness", context), 0);
+ backlight_read(&val, "brightness", context);
igt_assert_eq(val, context->max / 2);
}
@@ -179,21 +189,57 @@ test_fade_with_suspend(struct context *context, igt_output_t *output)
test_fade(context);
}
+static void test_cleanup(igt_display_t *display, igt_output_t *output)
+{
+ igt_output_set_pipe(output, PIPE_NONE);
+ igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
+ igt_pm_restore_sata_link_power_management();
+}
+
+static void test_setup(igt_display_t display, igt_output_t *output)
+{
+ igt_plane_t *primary;
+ drmModeModeInfo *mode;
+ struct igt_fb fb;
+ enum pipe pipe;
+
+ igt_display_reset(&display);
+
+ for_each_pipe(&display, pipe) {
+ if (!igt_pipe_connector_valid(pipe, output))
+ continue;
+
+ igt_output_set_pipe(output, pipe);
+ mode = igt_output_get_mode(output);
+
+ igt_create_pattern_fb(display.drm_fd,
+ mode->hdisplay, mode->vdisplay,
+ DRM_FORMAT_XRGB8888,
+ DRM_FORMAT_MOD_LINEAR, &fb);
+ primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
+ igt_plane_set_fb(primary, &fb);
+
+ igt_display_commit2(&display, display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
+ igt_pm_enable_sata_link_power_management();
+
+ break;
+ }
+}
+
igt_main
{
- struct context context = {0};
- int old;
+ int old, fd;
+ int i = 0;
igt_display_t display;
igt_output_t *output;
- struct igt_fb fb;
+ char file_path_n[PATH_MAX] = "";
+ bool dual_edp = false;
+ struct context contexts[NUM_EDP_OUTPUTS];
igt_fixture {
- enum pipe pipe;
bool found = false;
char full_name[32] = {};
char *name;
- drmModeModeInfo *mode;
- igt_plane_t *primary;
/*
* Backlight tests requires the output to be enabled,
@@ -202,56 +248,98 @@ igt_main
kmstest_set_vt_graphics_mode();
igt_display_require(&display, drm_open_driver(DRIVER_INTEL));
- /* Get the max value and skip the whole test if sysfs interface not available */
- igt_skip_on(backlight_read(&old, "brightness"));
- igt_assert(backlight_read(&context.max, "max_brightness") > -1);
+ for_each_connected_output(&display, output) {
+ if (output->config.connector->connector_type != DRM_MODE_CONNECTOR_eDP)
+ continue;
- /* should be ../../cardX-$output */
- igt_assert_lt(12, readlink(BACKLIGHT_PATH "/device", full_name, sizeof(full_name) - 1));
- name = basename(full_name);
+ if (found)
+ snprintf(file_path_n, PATH_MAX, "%s/card%i-%s-backlight/brightness",
+ BACKLIGHT_PATH, igt_device_get_card_index(display.drm_fd),
+ igt_output_name(output));
+ else
+ snprintf(file_path_n, PATH_MAX, "%s/intel_backlight/brightness", BACKLIGHT_PATH);
- for_each_pipe_with_valid_output(&display, pipe, output) {
- if (strcmp(name + 6, output->name))
+ fd = open(file_path_n, O_RDONLY);
+ if (fd == -1) {
continue;
- found = true;
- break;
+ }
+ if (found)
+ snprintf(contexts[i].path, PATH_MAX, "card%i-%s-backlight",
+ igt_device_get_card_index(display.drm_fd),
+ igt_output_name(output));
+ else
+ snprintf(contexts[i].path, PATH_MAX, "intel_backlight");
+
+ close(fd);
+
+ /* should be ../../cardX-$output */
+ snprintf(file_path_n, PATH_MAX, "%s/%s/device", BACKLIGHT_PATH, contexts[i].path);
+ igt_assert_lt(16, readlink(file_path_n, full_name, sizeof(full_name) - 1));
+ name = basename(full_name);
+
+ if (!strcmp(name + 6, output->name)) {
+ contexts[i++].output = output;
+
+ if (found)
+ dual_edp = true;
+ else
+ found = true;
+ }
}
+ igt_require_f(found, "No valid output found.\n");
+ }
- igt_require_f(found,
- "Could not map backlight for \"%s\" to connected output\n",
- name);
-
- igt_output_set_pipe(output, pipe);
- mode = igt_output_get_mode(output);
-
- igt_create_pattern_fb(display.drm_fd,
- mode->hdisplay, mode->vdisplay,
- DRM_FORMAT_XRGB8888,
- DRM_FORMAT_MOD_LINEAR, &fb);
- primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
- igt_plane_set_fb(primary, &fb);
+ igt_subtest("basic-brightness") {
+ for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
+ test_setup(display, &contexts->output[j]);
+ igt_assert(backlight_read(&contexts[j].max, "max_brightness", &contexts[j]) > -1);
+ test_brightness(&contexts[j]);
+ test_cleanup(&display, output);
+ }
+ }
- igt_display_commit2(&display, display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
- igt_pm_enable_sata_link_power_management();
+ igt_subtest("bad-brightness") {
+ for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
+ test_setup(display, &contexts->output[j]);
+ igt_assert(backlight_read(&contexts[j].max, "max_brightness", &contexts[j]) > -1);
+ test_bad_brightness(&contexts[j]);
+ test_cleanup(&display, output);
+ }
+ }
+ igt_subtest("fade") {
+ for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
+ test_setup(display, &contexts->output[j]);
+ igt_assert(backlight_read(&contexts[j].max, "max_brightness", &contexts[j]) > -1);
+ test_fade(&contexts[j]);
+ test_cleanup(&display, output);
+ }
}
+ igt_subtest("fade_with_dpms") {
+ for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
+ test_setup(display, &contexts->output[j]);
+ igt_assert(backlight_read(&contexts[j].max, "max_brightness", &contexts[j]) > -1);
+ test_fade_with_dpms(&contexts[j], output);
+ test_cleanup(&display, output);
+ }
+ }
+ igt_subtest("fade_with_suspend") {
+ for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
+ test_setup(display, &contexts->output[j]);
+ igt_assert(backlight_read(&contexts[j].max, "max_brightness", &contexts[j]) > -1);
+ test_fade_with_suspend(&contexts[j], output);
+ test_cleanup(&display, output);
+ }
+ }
+
- igt_subtest("basic-brightness")
- test_brightness(&context);
- igt_subtest("bad-brightness")
- test_bad_brightness(&context);
- igt_subtest("fade")
- test_fade(&context);
- igt_subtest("fade_with_dpms")
- test_fade_with_dpms(&context, output);
- igt_subtest("fade_with_suspend")
- test_fade_with_suspend(&context, output);
igt_fixture {
/* Restore old brightness */
- backlight_write(old, "brightness");
+ for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
+ backlight_write(old, "brightness", &contexts[j]);
+ }
igt_display_fini(&display);
- igt_remove_fb(display.drm_fd, &fb);
igt_pm_restore_sata_link_power_management();
close(display.drm_fd);
}
--
1.9.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [igt-dev] [PATCH 1/2] tests/i915/i915_pm_backlight: Add new subtest to validate dual panel backlight
2022-11-14 6:40 ` [igt-dev] [PATCH 1/2] tests/i915/i915_pm_backlight: Add new subtest to validate dual panel backlight Nidhi Gupta
@ 2022-11-14 7:20 ` Hogander, Jouni
2022-11-14 7:46 ` Hogander, Jouni
1 sibling, 0 replies; 9+ messages in thread
From: Hogander, Jouni @ 2022-11-14 7:20 UTC (permalink / raw)
To: igt-dev@lists.freedesktop.org, Gupta, Nidhi1
Hello Nidhi,
As igt is following kernel coding style: you can use
scripts/checkpatch.pl from Linux kernel tree to check your patches.
See also my inline comments below.
On Mon, 2022-11-14 at 12:10 +0530, Nidhi Gupta wrote:
> Since driver can now support multiple eDPs and Debugfs structure for
> backlight changed per connector the test should then iterate through
> all eDP connectors.
>
> Signed-off-by: Nidhi Gupta <nidhi1.gupta@intel.com>
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> ---
> tests/i915/i915_pm_backlight.c | 208 +++++++++++++++++++++++++++++--
> ----------
> 1 file changed, 148 insertions(+), 60 deletions(-)
>
> diff --git a/tests/i915/i915_pm_backlight.c
> b/tests/i915/i915_pm_backlight.c
> index cafae7f..fdf1315 100644
> --- a/tests/i915/i915_pm_backlight.c
> +++ b/tests/i915/i915_pm_backlight.c
> @@ -34,29 +34,39 @@
> #include <errno.h>
> #include <unistd.h>
> #include <time.h>
> +#include "igt_device.h"
> +#include "igt_device_scan.h"
>
> struct context {
> int max;
> + igt_output_t *output;
> + char path[PATH_MAX];
> };
>
> +enum {
> + TEST_NONE = 0,
> + TEST_DPMS,
> + TEST_SUSPEND,
> +};
>
> #define TOLERANCE 5 /* percent */
> -#define BACKLIGHT_PATH "/sys/class/backlight/intel_backlight"
> +#define BACKLIGHT_PATH "/sys/class/backlight"
>
> #define FADESTEPS 10
> #define FADESPEED 100 /* milliseconds between steps */
>
> +#define NUM_EDP_OUTPUTS 2
> +
> IGT_TEST_DESCRIPTION("Basic backlight sysfs test");
>
> -static int backlight_read(int *result, const char *fname)
> +static int backlight_read(int *result, const char *fname, struct
> context *context)
> {
> int fd;
> char full[PATH_MAX];
> - char dst[64];
> + char dst[512];
This change is not needed?
> int r, e;
>
> - igt_assert(snprintf(full, PATH_MAX, "%s/%s", BACKLIGHT_PATH,
> fname) < PATH_MAX);
> -
> + igt_assert(snprintf(full, PATH_MAX, "%s/%s/%s",
> BACKLIGHT_PATH, context->path, fname) < PATH_MAX);
> fd = open(full, O_RDONLY);
> if (fd == -1)
> return -errno;
> @@ -73,14 +83,14 @@ static int backlight_read(int *result, const char
> *fname)
> return errno;
> }
>
> -static int backlight_write(int value, const char *fname)
> +static int backlight_write(int value, const char *fname, struct
> context *context)
> {
> int fd;
> char full[PATH_MAX];
> char src[64];
> int len;
>
> - igt_assert(snprintf(full, PATH_MAX, "%s/%s", BACKLIGHT_PATH,
> fname) < PATH_MAX);
> + igt_assert(snprintf(full, PATH_MAX, "%s/%s/%s",
> BACKLIGHT_PATH, context->path, fname) < PATH_MAX);
> fd = open(full, O_WRONLY);
> if (fd == -1)
> return -errno;
> @@ -100,12 +110,12 @@ static void test_and_verify(struct context
> *context, int val)
> const int tolerance = val * TOLERANCE / 100;
> int result;
>
> - igt_assert_eq(backlight_write(val, "brightness"), 0);
> - igt_assert_eq(backlight_read(&result, "brightness"), 0);
> + igt_assert_eq(backlight_write(val, "brightness", context),
> 0);
> + igt_assert_eq(backlight_read(&result, "brightness", context),
> 0);
> /* Check that the exact value sticks */
> igt_assert_eq(result, val);
>
> - igt_assert_eq(backlight_read(&result, "actual_brightness"),
> 0);
> + igt_assert_eq(backlight_read(&result, "actual_brightness",
> context), 0);
> /* Some rounding may happen depending on hw */
> igt_assert_f(result >= max(0, val - tolerance) &&
> result <= min(context->max, val + tolerance),
> @@ -124,16 +134,16 @@ static void test_bad_brightness(struct context
> *context)
> {
> int val;
> /* First write some sane value */
> - backlight_write(context->max / 2, "brightness");
> + backlight_write(context->max / 2, "brightness", context);
> /* Writing invalid values should fail and not change the
> value */
> - igt_assert_lt(backlight_write(-1, "brightness"), 0);
> - backlight_read(&val, "brightness");
> + igt_assert_lt(backlight_write(-1, "brightness", context), 0);
> + backlight_read(&val, "brightness", context);
> igt_assert_eq(val, context->max / 2);
> - igt_assert_lt(backlight_write(context->max + 1,
> "brightness"), 0);
> - backlight_read(&val, "brightness");
> + igt_assert_lt(backlight_write(context->max + 1, "brightness",
> context), 0);
> + backlight_read(&val, "brightness", context);
> igt_assert_eq(val, context->max / 2);
> - igt_assert_lt(backlight_write(INT_MAX, "brightness"), 0);
> - backlight_read(&val, "brightness");
> + igt_assert_lt(backlight_write(INT_MAX, "brightness",
> context), 0);
> + backlight_read(&val, "brightness", context);
> igt_assert_eq(val, context->max / 2);
> }
>
> @@ -179,21 +189,57 @@ test_fade_with_suspend(struct context *context,
> igt_output_t *output)
> test_fade(context);
> }
>
> +static void test_cleanup(igt_display_t *display, igt_output_t
> *output)
> +{
> + igt_output_set_pipe(output, PIPE_NONE);
> + igt_display_commit2(display, display->is_atomic ?
> COMMIT_ATOMIC : COMMIT_LEGACY);
> + igt_pm_restore_sata_link_power_management();
> +}
> +
> +static void test_setup(igt_display_t display, igt_output_t *output)
> +{
> + igt_plane_t *primary;
> + drmModeModeInfo *mode;
> + struct igt_fb fb;
> + enum pipe pipe;
> +
> + igt_display_reset(&display);
> +
> + for_each_pipe(&display, pipe) {
> + if (!igt_pipe_connector_valid(pipe, output))
> + continue;
> +
> + igt_output_set_pipe(output, pipe);
> + mode = igt_output_get_mode(output);
> +
> + igt_create_pattern_fb(display.drm_fd,
> + mode->hdisplay, mode->vdisplay,
> + DRM_FORMAT_XRGB8888,
> + DRM_FORMAT_MOD_LINEAR, &fb);
> + primary = igt_output_get_plane_type(output,
> DRM_PLANE_TYPE_PRIMARY);
> + igt_plane_set_fb(primary, &fb);
> +
> + igt_display_commit2(&display, display.is_atomic ?
> COMMIT_ATOMIC : COMMIT_LEGACY);
> + igt_pm_enable_sata_link_power_management();
> +
> + break;
> + }
> +}
> +
> igt_main
> {
> - struct context context = {0};
> - int old;
> + int old, fd;
> + int i = 0;
> igt_display_t display;
> igt_output_t *output;
> - struct igt_fb fb;
> + char file_path_n[PATH_MAX] = "";
> + bool dual_edp = false;
> + struct context contexts[NUM_EDP_OUTPUTS];
>
> igt_fixture {
> - enum pipe pipe;
> bool found = false;
> char full_name[32] = {};
> char *name;
> - drmModeModeInfo *mode;
> - igt_plane_t *primary;
>
> /*
> * Backlight tests requires the output to be enabled,
> @@ -202,56 +248,98 @@ igt_main
> kmstest_set_vt_graphics_mode();
> igt_display_require(&display,
> drm_open_driver(DRIVER_INTEL));
>
> - /* Get the max value and skip the whole test if sysfs
> interface not available */
> - igt_skip_on(backlight_read(&old, "brightness"));
> - igt_assert(backlight_read(&context.max,
> "max_brightness") > -1);
> + for_each_connected_output(&display, output) {
> + if (output->config.connector->connector_type
> != DRM_MODE_CONNECTOR_eDP)
> + continue;
>
> - /* should be ../../cardX-$output */
> - igt_assert_lt(12, readlink(BACKLIGHT_PATH "/device",
> full_name, sizeof(full_name) - 1));
> - name = basename(full_name);
> + if (found)
> + snprintf(file_path_n, PATH_MAX,
> "%s/card%i-%s-backlight/brightness",
> + BACKLIGHT_PATH,
> igt_device_get_card_index(display.drm_fd),
> + igt_output_name(output));
> + else
> + snprintf(file_path_n, PATH_MAX,
> "%s/intel_backlight/brightness", BACKLIGHT_PATH);
>
> - for_each_pipe_with_valid_output(&display, pipe,
> output) {
> - if (strcmp(name + 6, output->name))
> + fd = open(file_path_n, O_RDONLY);
> + if (fd == -1) {
> continue;
> - found = true;
> - break;
> + }
> + if (found)
> + snprintf(contexts[i].path, PATH_MAX,
> "card%i-%s-backlight",
> +
> igt_device_get_card_index(display.drm_fd),
> + igt_output_name(output));
> + else
> + snprintf(contexts[i].path, PATH_MAX,
> "intel_backlight");
> +
> + close(fd);
> +
> + /* should be ../../cardX-$output */
> + snprintf(file_path_n, PATH_MAX,
> "%s/%s/device", BACKLIGHT_PATH, contexts[i].path);
> + igt_assert_lt(16, readlink(file_path_n,
> full_name, sizeof(full_name) - 1));
> + name = basename(full_name);
> +
> + if (!strcmp(name + 6, output->name)) {
> + contexts[i++].output = output;
> +
> + if (found)
> + dual_edp = true;
> + else
> + found = true;
> + }
> }
> + igt_require_f(found, "No valid output found.\n");
> + }
>
> - igt_require_f(found,
> - "Could not map backlight for \"%s\" to
> connected output\n",
> - name);
> -
> - igt_output_set_pipe(output, pipe);
> - mode = igt_output_get_mode(output);
> -
> - igt_create_pattern_fb(display.drm_fd,
> - mode->hdisplay, mode->vdisplay,
> - DRM_FORMAT_XRGB8888,
> - DRM_FORMAT_MOD_LINEAR, &fb);
> - primary = igt_output_get_plane_type(output,
> DRM_PLANE_TYPE_PRIMARY);
> - igt_plane_set_fb(primary, &fb);
> + igt_subtest("basic-brightness") {
> + for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
I think you can use existing variable "i" in these loops as well.
> + test_setup(display, &contexts->output[j]);
> + igt_assert(backlight_read(&contexts[j].max,
> "max_brightness", &contexts[j]) > -1);
> + test_brightness(&contexts[j]);
> + test_cleanup(&display, output);
> + }
> + }
>
> - igt_display_commit2(&display, display.is_atomic ?
> COMMIT_ATOMIC : COMMIT_LEGACY);
> - igt_pm_enable_sata_link_power_management();
> + igt_subtest("bad-brightness") {
> + for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
> + test_setup(display, &contexts->output[j]);
> + igt_assert(backlight_read(&contexts[j].max,
> "max_brightness", &contexts[j]) > -1);
> + test_bad_brightness(&contexts[j]);
> + test_cleanup(&display, output);
> + }
> + }
> + igt_subtest("fade") {
> + for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
> + test_setup(display, &contexts->output[j]);
> + igt_assert(backlight_read(&contexts[j].max,
> "max_brightness", &contexts[j]) > -1);
> + test_fade(&contexts[j]);
> + test_cleanup(&display, output);
> + }
> }
> + igt_subtest("fade_with_dpms") {
> + for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
> + test_setup(display, &contexts->output[j]);
> + igt_assert(backlight_read(&contexts[j].max,
> "max_brightness", &contexts[j]) > -1);
> + test_fade_with_dpms(&contexts[j], output);
> + test_cleanup(&display, output);
> + }
> + }
> + igt_subtest("fade_with_suspend") {
> + for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
> + test_setup(display, &contexts->output[j]);
> + igt_assert(backlight_read(&contexts[j].max,
> "max_brightness", &contexts[j]) > -1);
> + test_fade_with_suspend(&contexts[j], output);
> + test_cleanup(&display, output);
> + }
> + }
> +
>
> - igt_subtest("basic-brightness")
> - test_brightness(&context);
> - igt_subtest("bad-brightness")
> - test_bad_brightness(&context);
> - igt_subtest("fade")
> - test_fade(&context);
> - igt_subtest("fade_with_dpms")
> - test_fade_with_dpms(&context, output);
> - igt_subtest("fade_with_suspend")
> - test_fade_with_suspend(&context, output);
>
> igt_fixture {
> /* Restore old brightness */
> - backlight_write(old, "brightness");
> + for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
> + backlight_write(old, "brightness",
> &contexts[j]);
> + }
>
> igt_display_fini(&display);
> - igt_remove_fb(display.drm_fd, &fb);
> igt_pm_restore_sata_link_power_management();
> close(display.drm_fd);
> }
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [igt-dev] [PATCH 1/2] tests/i915/i915_pm_backlight: Add new subtest to validate dual panel backlight
2022-11-14 6:40 ` [igt-dev] [PATCH 1/2] tests/i915/i915_pm_backlight: Add new subtest to validate dual panel backlight Nidhi Gupta
2022-11-14 7:20 ` Hogander, Jouni
@ 2022-11-14 7:46 ` Hogander, Jouni
1 sibling, 0 replies; 9+ messages in thread
From: Hogander, Jouni @ 2022-11-14 7:46 UTC (permalink / raw)
To: igt-dev@lists.freedesktop.org, Gupta, Nidhi1
Hello,
One more comment below.
On Mon, 2022-11-14 at 12:10 +0530, Nidhi Gupta wrote:
> Since driver can now support multiple eDPs and Debugfs structure for
> backlight changed per connector the test should then iterate through
> all eDP connectors.
>
> Signed-off-by: Nidhi Gupta <nidhi1.gupta@intel.com>
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> ---
> tests/i915/i915_pm_backlight.c | 208 +++++++++++++++++++++++++++++--
> ----------
> 1 file changed, 148 insertions(+), 60 deletions(-)
>
> diff --git a/tests/i915/i915_pm_backlight.c
> b/tests/i915/i915_pm_backlight.c
> index cafae7f..fdf1315 100644
> --- a/tests/i915/i915_pm_backlight.c
> +++ b/tests/i915/i915_pm_backlight.c
> @@ -34,29 +34,39 @@
> #include <errno.h>
> #include <unistd.h>
> #include <time.h>
> +#include "igt_device.h"
> +#include "igt_device_scan.h"
>
> struct context {
> int max;
> + igt_output_t *output;
> + char path[PATH_MAX];
> };
>
> +enum {
> + TEST_NONE = 0,
> + TEST_DPMS,
> + TEST_SUSPEND,
> +};
>
These should go to the second patch.
> #define TOLERANCE 5 /* percent */
> -#define BACKLIGHT_PATH "/sys/class/backlight/intel_backlight"
> +#define BACKLIGHT_PATH "/sys/class/backlight"
>
> #define FADESTEPS 10
> #define FADESPEED 100 /* milliseconds between steps */
>
> +#define NUM_EDP_OUTPUTS 2
> +
> IGT_TEST_DESCRIPTION("Basic backlight sysfs test");
>
> -static int backlight_read(int *result, const char *fname)
> +static int backlight_read(int *result, const char *fname, struct
> context *context)
> {
> int fd;
> char full[PATH_MAX];
> - char dst[64];
> + char dst[512];
> int r, e;
>
> - igt_assert(snprintf(full, PATH_MAX, "%s/%s", BACKLIGHT_PATH,
> fname) < PATH_MAX);
> -
> + igt_assert(snprintf(full, PATH_MAX, "%s/%s/%s",
> BACKLIGHT_PATH, context->path, fname) < PATH_MAX);
> fd = open(full, O_RDONLY);
> if (fd == -1)
> return -errno;
> @@ -73,14 +83,14 @@ static int backlight_read(int *result, const char
> *fname)
> return errno;
> }
>
> -static int backlight_write(int value, const char *fname)
> +static int backlight_write(int value, const char *fname, struct
> context *context)
> {
> int fd;
> char full[PATH_MAX];
> char src[64];
> int len;
>
> - igt_assert(snprintf(full, PATH_MAX, "%s/%s", BACKLIGHT_PATH,
> fname) < PATH_MAX);
> + igt_assert(snprintf(full, PATH_MAX, "%s/%s/%s",
> BACKLIGHT_PATH, context->path, fname) < PATH_MAX);
> fd = open(full, O_WRONLY);
> if (fd == -1)
> return -errno;
> @@ -100,12 +110,12 @@ static void test_and_verify(struct context
> *context, int val)
> const int tolerance = val * TOLERANCE / 100;
> int result;
>
> - igt_assert_eq(backlight_write(val, "brightness"), 0);
> - igt_assert_eq(backlight_read(&result, "brightness"), 0);
> + igt_assert_eq(backlight_write(val, "brightness", context),
> 0);
> + igt_assert_eq(backlight_read(&result, "brightness", context),
> 0);
> /* Check that the exact value sticks */
> igt_assert_eq(result, val);
>
> - igt_assert_eq(backlight_read(&result, "actual_brightness"),
> 0);
> + igt_assert_eq(backlight_read(&result, "actual_brightness",
> context), 0);
> /* Some rounding may happen depending on hw */
> igt_assert_f(result >= max(0, val - tolerance) &&
> result <= min(context->max, val + tolerance),
> @@ -124,16 +134,16 @@ static void test_bad_brightness(struct context
> *context)
> {
> int val;
> /* First write some sane value */
> - backlight_write(context->max / 2, "brightness");
> + backlight_write(context->max / 2, "brightness", context);
> /* Writing invalid values should fail and not change the
> value */
> - igt_assert_lt(backlight_write(-1, "brightness"), 0);
> - backlight_read(&val, "brightness");
> + igt_assert_lt(backlight_write(-1, "brightness", context), 0);
> + backlight_read(&val, "brightness", context);
> igt_assert_eq(val, context->max / 2);
> - igt_assert_lt(backlight_write(context->max + 1,
> "brightness"), 0);
> - backlight_read(&val, "brightness");
> + igt_assert_lt(backlight_write(context->max + 1, "brightness",
> context), 0);
> + backlight_read(&val, "brightness", context);
> igt_assert_eq(val, context->max / 2);
> - igt_assert_lt(backlight_write(INT_MAX, "brightness"), 0);
> - backlight_read(&val, "brightness");
> + igt_assert_lt(backlight_write(INT_MAX, "brightness",
> context), 0);
> + backlight_read(&val, "brightness", context);
> igt_assert_eq(val, context->max / 2);
> }
>
> @@ -179,21 +189,57 @@ test_fade_with_suspend(struct context *context,
> igt_output_t *output)
> test_fade(context);
> }
>
> +static void test_cleanup(igt_display_t *display, igt_output_t
> *output)
> +{
> + igt_output_set_pipe(output, PIPE_NONE);
> + igt_display_commit2(display, display->is_atomic ?
> COMMIT_ATOMIC : COMMIT_LEGACY);
> + igt_pm_restore_sata_link_power_management();
> +}
> +
> +static void test_setup(igt_display_t display, igt_output_t *output)
> +{
> + igt_plane_t *primary;
> + drmModeModeInfo *mode;
> + struct igt_fb fb;
> + enum pipe pipe;
> +
> + igt_display_reset(&display);
> +
> + for_each_pipe(&display, pipe) {
> + if (!igt_pipe_connector_valid(pipe, output))
> + continue;
> +
> + igt_output_set_pipe(output, pipe);
> + mode = igt_output_get_mode(output);
> +
> + igt_create_pattern_fb(display.drm_fd,
> + mode->hdisplay, mode->vdisplay,
> + DRM_FORMAT_XRGB8888,
> + DRM_FORMAT_MOD_LINEAR, &fb);
> + primary = igt_output_get_plane_type(output,
> DRM_PLANE_TYPE_PRIMARY);
> + igt_plane_set_fb(primary, &fb);
> +
> + igt_display_commit2(&display, display.is_atomic ?
> COMMIT_ATOMIC : COMMIT_LEGACY);
> + igt_pm_enable_sata_link_power_management();
> +
> + break;
> + }
> +}
> +
> igt_main
> {
> - struct context context = {0};
> - int old;
> + int old, fd;
> + int i = 0;
> igt_display_t display;
> igt_output_t *output;
> - struct igt_fb fb;
> + char file_path_n[PATH_MAX] = "";
> + bool dual_edp = false;
> + struct context contexts[NUM_EDP_OUTPUTS];
>
> igt_fixture {
> - enum pipe pipe;
> bool found = false;
> char full_name[32] = {};
> char *name;
> - drmModeModeInfo *mode;
> - igt_plane_t *primary;
>
> /*
> * Backlight tests requires the output to be enabled,
> @@ -202,56 +248,98 @@ igt_main
> kmstest_set_vt_graphics_mode();
> igt_display_require(&display,
> drm_open_driver(DRIVER_INTEL));
>
> - /* Get the max value and skip the whole test if sysfs
> interface not available */
> - igt_skip_on(backlight_read(&old, "brightness"));
> - igt_assert(backlight_read(&context.max,
> "max_brightness") > -1);
> + for_each_connected_output(&display, output) {
> + if (output->config.connector->connector_type
> != DRM_MODE_CONNECTOR_eDP)
> + continue;
>
> - /* should be ../../cardX-$output */
> - igt_assert_lt(12, readlink(BACKLIGHT_PATH "/device",
> full_name, sizeof(full_name) - 1));
> - name = basename(full_name);
> + if (found)
> + snprintf(file_path_n, PATH_MAX,
> "%s/card%i-%s-backlight/brightness",
> + BACKLIGHT_PATH,
> igt_device_get_card_index(display.drm_fd),
> + igt_output_name(output));
> + else
> + snprintf(file_path_n, PATH_MAX,
> "%s/intel_backlight/brightness", BACKLIGHT_PATH);
>
> - for_each_pipe_with_valid_output(&display, pipe,
> output) {
> - if (strcmp(name + 6, output->name))
> + fd = open(file_path_n, O_RDONLY);
> + if (fd == -1) {
> continue;
> - found = true;
> - break;
> + }
> + if (found)
> + snprintf(contexts[i].path, PATH_MAX,
> "card%i-%s-backlight",
> +
> igt_device_get_card_index(display.drm_fd),
> + igt_output_name(output));
> + else
> + snprintf(contexts[i].path, PATH_MAX,
> "intel_backlight");
> +
> + close(fd);
> +
> + /* should be ../../cardX-$output */
> + snprintf(file_path_n, PATH_MAX,
> "%s/%s/device", BACKLIGHT_PATH, contexts[i].path);
> + igt_assert_lt(16, readlink(file_path_n,
> full_name, sizeof(full_name) - 1));
> + name = basename(full_name);
> +
> + if (!strcmp(name + 6, output->name)) {
> + contexts[i++].output = output;
> +
> + if (found)
> + dual_edp = true;
> + else
> + found = true;
> + }
> }
> + igt_require_f(found, "No valid output found.\n");
> + }
>
> - igt_require_f(found,
> - "Could not map backlight for \"%s\" to
> connected output\n",
> - name);
> -
> - igt_output_set_pipe(output, pipe);
> - mode = igt_output_get_mode(output);
> -
> - igt_create_pattern_fb(display.drm_fd,
> - mode->hdisplay, mode->vdisplay,
> - DRM_FORMAT_XRGB8888,
> - DRM_FORMAT_MOD_LINEAR, &fb);
> - primary = igt_output_get_plane_type(output,
> DRM_PLANE_TYPE_PRIMARY);
> - igt_plane_set_fb(primary, &fb);
> + igt_subtest("basic-brightness") {
> + for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
> + test_setup(display, &contexts->output[j]);
> + igt_assert(backlight_read(&contexts[j].max,
> "max_brightness", &contexts[j]) > -1);
> + test_brightness(&contexts[j]);
> + test_cleanup(&display, output);
> + }
> + }
>
> - igt_display_commit2(&display, display.is_atomic ?
> COMMIT_ATOMIC : COMMIT_LEGACY);
> - igt_pm_enable_sata_link_power_management();
> + igt_subtest("bad-brightness") {
> + for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
> + test_setup(display, &contexts->output[j]);
> + igt_assert(backlight_read(&contexts[j].max,
> "max_brightness", &contexts[j]) > -1);
> + test_bad_brightness(&contexts[j]);
> + test_cleanup(&display, output);
> + }
> + }
> + igt_subtest("fade") {
> + for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
> + test_setup(display, &contexts->output[j]);
> + igt_assert(backlight_read(&contexts[j].max,
> "max_brightness", &contexts[j]) > -1);
> + test_fade(&contexts[j]);
> + test_cleanup(&display, output);
> + }
> }
> + igt_subtest("fade_with_dpms") {
> + for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
> + test_setup(display, &contexts->output[j]);
> + igt_assert(backlight_read(&contexts[j].max,
> "max_brightness", &contexts[j]) > -1);
> + test_fade_with_dpms(&contexts[j], output);
> + test_cleanup(&display, output);
> + }
> + }
> + igt_subtest("fade_with_suspend") {
> + for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
> + test_setup(display, &contexts->output[j]);
> + igt_assert(backlight_read(&contexts[j].max,
> "max_brightness", &contexts[j]) > -1);
> + test_fade_with_suspend(&contexts[j], output);
> + test_cleanup(&display, output);
> + }
> + }
> +
>
> - igt_subtest("basic-brightness")
> - test_brightness(&context);
> - igt_subtest("bad-brightness")
> - test_bad_brightness(&context);
> - igt_subtest("fade")
> - test_fade(&context);
> - igt_subtest("fade_with_dpms")
> - test_fade_with_dpms(&context, output);
> - igt_subtest("fade_with_suspend")
> - test_fade_with_suspend(&context, output);
>
> igt_fixture {
> /* Restore old brightness */
> - backlight_write(old, "brightness");
> + for (int j = 0; j < (dual_edp ? 2 : 1); j++) {
> + backlight_write(old, "brightness",
> &contexts[j]);
> + }
>
> igt_display_fini(&display);
> - igt_remove_fb(display.drm_fd, &fb);
> igt_pm_restore_sata_link_power_management();
> close(display.drm_fd);
> }
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2022-11-14 7:46 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-08 13:03 [igt-dev] [PATCH 0/2] tests/i915/i915_pm_backlight: Add new subtest and test cleanup Nidhi Gupta
2022-11-08 13:03 ` [igt-dev] [PATCH 1/2] tests/i915/i915_pm_backlight: Add new subtest to validate dual panel backlight Nidhi Gupta
2022-11-08 13:03 ` [igt-dev] [PATCH 2/2] tests/i915/i915_pm_backlight: Create dynamic subtests Nidhi Gupta
2022-11-09 9:26 ` Kamil Konieczny
2022-11-08 13:34 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/i915/i915_pm_backlight: Add new subtest and test cleanup Patchwork
2022-11-08 17:55 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
-- strict thread matches above, loose matches on Subject: below --
2022-11-14 6:40 [igt-dev] [PATCH 0/2] " Nidhi Gupta
2022-11-14 6:40 ` [igt-dev] [PATCH 1/2] tests/i915/i915_pm_backlight: Add new subtest to validate dual panel backlight Nidhi Gupta
2022-11-14 7:20 ` Hogander, Jouni
2022-11-14 7:46 ` Hogander, Jouni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox