* [PATCH i-g-t 1/3] lib/kms: Introduce struct igt_forced_connector
@ 2024-04-10 15:02 Ville Syrjala
2024-04-10 15:02 ` [PATCH i-g-t 2/3] lib/kms: Simplify force_connectors[] error handling Ville Syrjala
` (4 more replies)
0 siblings, 5 replies; 11+ messages in thread
From: Ville Syrjala @ 2024-04-10 15:02 UTC (permalink / raw)
To: igt-dev; +Cc: Kunal Joshi
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Give the forced_connector[] struct a proper type name,
and utilize it in various places to make the code
less messy.
Cc: Kunal Joshi <kunal1.joshi@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
lib/igt_kms.c | 50 +++++++++++++++++++++++++++++++-------------------
1 file changed, 31 insertions(+), 19 deletions(-)
diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 2a518eb8d936..f7dd1db91827 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -91,12 +91,14 @@
#define MAX_EDID 2
#define DISPLAY_TILE_BLOCK 0x12
-static struct {
+struct igt_forced_connector {
uint32_t connector_type;
uint32_t connector_type_id;
int idx;
int dir;
-} forced_connectors[MAX_CONNECTORS + 1];
+};
+
+static struct igt_forced_connector forced_connectors[MAX_CONNECTORS + 1];
/**
* igt_kms_get_base_edid:
@@ -1498,31 +1500,37 @@ static bool connector_is_forced(int idx, drmModeConnector *connector)
igt_assert(connector->connector_type != 0);
for (int i = 0; forced_connectors[i].connector_type; i++) {
- if (forced_connectors[i].idx == idx &&
- forced_connectors[i].connector_type == connector->connector_type &&
- forced_connectors[i].connector_type_id == connector->connector_type_id)
+ struct igt_forced_connector *c = &forced_connectors[i];
+
+ if (c->idx == idx &&
+ c->connector_type == connector->connector_type &&
+ c->connector_type_id == connector->connector_type_id)
return true;
}
return false;
}
-static int forced_connector_free_index(void)
+static struct igt_forced_connector *forced_connector_alloc(void)
{
int i;
for (i = 0; forced_connectors[i].connector_type; i++)
;
- return i < ARRAY_SIZE(forced_connectors) ? i : -1;
+ if (i >= ARRAY_SIZE(forced_connectors))
+ return NULL;
+
+ return &forced_connectors[i];
}
static bool force_connector(int drm_fd,
drmModeConnector *connector,
const char *value)
{
+ struct igt_forced_connector *c;
char name[80];
- int i, idx, dir;
+ int idx, dir;
idx = igt_device_get_card_index(drm_fd);
if (idx < 0 || idx > 63)
@@ -1549,17 +1557,17 @@ static bool force_connector(int drm_fd,
return true;
}
- i = forced_connector_free_index();
- if (i < 0) {
+ c = forced_connector_alloc();
+ if (!c) {
igt_warn("Connector limit reached, %s will not be reset\n", name);
close(dir);
return true;
}
- forced_connectors[i].idx = idx;
- forced_connectors[i].connector_type = connector->connector_type;
- forced_connectors[i].connector_type_id = connector->connector_type_id;
- forced_connectors[i].dir = dir;
+ c->idx = idx;
+ c->connector_type = connector->connector_type;
+ c->connector_type_id = connector->connector_type_id;
+ c->dir = dir;
return true;
}
@@ -1571,9 +1579,10 @@ static void dump_forced_connectors(void)
igt_debug("Current forced connectors:\n");
for (int i = 0; forced_connectors[i].connector_type; i++) {
- kmstest_connector_dirname(forced_connectors[i].idx,
- forced_connectors[i].connector_type,
- forced_connectors[i].connector_type_id,
+ struct igt_forced_connector *c = &forced_connectors[i];
+
+ kmstest_connector_dirname(c->idx, c->connector_type,
+ c->connector_type_id,
name, sizeof(name));
igt_debug("\t%s\n", name);
}
@@ -5302,8 +5311,11 @@ void igt_reset_connectors(void)
{
/* reset the connectors stored in forced_connectors, avoiding any
* functions that are not safe to call in signal handlers */
- for (int i = 0; i < forced_connectors[i].connector_type; i++)
- igt_sysfs_set(forced_connectors[i].dir, "status", "detect");
+ for (int i = 0; i < forced_connectors[i].connector_type; i++) {
+ struct igt_forced_connector *c = &forced_connectors[i];
+
+ igt_sysfs_set(c->dir, "status", "detect");
+ }
}
/**
--
2.43.2
^ permalink raw reply related [flat|nested] 11+ messages in thread* [PATCH i-g-t 2/3] lib/kms: Simplify force_connectors[] error handling 2024-04-10 15:02 [PATCH i-g-t 1/3] lib/kms: Introduce struct igt_forced_connector Ville Syrjala @ 2024-04-10 15:02 ` Ville Syrjala 2024-04-11 6:15 ` [i-g-t,2/3] " Joshi, Kunal1 2024-04-11 8:25 ` [PATCH i-g-t 2/3] " Kamil Konieczny 2024-04-10 15:02 ` [PATCH i-g-t 3/3] lib/kms: Generalize forced_connectors[] to handle arbitrary attributes Ville Syrjala ` (3 subsequent siblings) 4 siblings, 2 replies; 11+ messages in thread From: Ville Syrjala @ 2024-04-10 15:02 UTC (permalink / raw) To: igt-dev; +Cc: Kunal Joshi From: Ville Syrjälä <ville.syrjala@linux.intel.com> The failure to allocate a forced_connector entry is entirely our own fault. If we hit this then we've screwd up and made the array too small. Skip the error handling and just assert that we must have enough room in the array. Cc: Kunal Joshi <kunal1.joshi@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> --- lib/igt_kms.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/lib/igt_kms.c b/lib/igt_kms.c index f7dd1db91827..19bb4ac66ece 100644 --- a/lib/igt_kms.c +++ b/lib/igt_kms.c @@ -1518,8 +1518,7 @@ static struct igt_forced_connector *forced_connector_alloc(void) for (i = 0; forced_connectors[i].connector_type; i++) ; - if (i >= ARRAY_SIZE(forced_connectors)) - return NULL; + igt_assert_lt(i, ARRAY_SIZE(forced_connectors)); return &forced_connectors[i]; } @@ -1558,11 +1557,6 @@ static bool force_connector(int drm_fd, } c = forced_connector_alloc(); - if (!c) { - igt_warn("Connector limit reached, %s will not be reset\n", name); - close(dir); - return true; - } c->idx = idx; c->connector_type = connector->connector_type; -- 2.43.2 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [i-g-t,2/3] lib/kms: Simplify force_connectors[] error handling 2024-04-10 15:02 ` [PATCH i-g-t 2/3] lib/kms: Simplify force_connectors[] error handling Ville Syrjala @ 2024-04-11 6:15 ` Joshi, Kunal1 2024-04-11 8:25 ` [PATCH i-g-t 2/3] " Kamil Konieczny 1 sibling, 0 replies; 11+ messages in thread From: Joshi, Kunal1 @ 2024-04-11 6:15 UTC (permalink / raw) To: Ville Syrjala, igt-dev On 4/10/2024 8:32 PM, Ville Syrjala wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > The failure to allocate a forced_connector entry is entirely > our own fault. If we hit this then we've screwd up and made > the array too small. Skip the error handling and just assert > that we must have enough room in the array. > > Cc: Kunal Joshi <kunal1.joshi@intel.com> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> LGTM Reviewed-by: Kunal Joshi <kunal1.joshi@intel.com> ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH i-g-t 2/3] lib/kms: Simplify force_connectors[] error handling 2024-04-10 15:02 ` [PATCH i-g-t 2/3] lib/kms: Simplify force_connectors[] error handling Ville Syrjala 2024-04-11 6:15 ` [i-g-t,2/3] " Joshi, Kunal1 @ 2024-04-11 8:25 ` Kamil Konieczny 2024-04-11 13:23 ` Ville Syrjälä 1 sibling, 1 reply; 11+ messages in thread From: Kamil Konieczny @ 2024-04-11 8:25 UTC (permalink / raw) To: igt-dev; +Cc: Ville Syrjala, Kunal Joshi Hi Ville, On 2024-04-10 at 18:02:28 +0300, Ville Syrjala wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > The failure to allocate a forced_connector entry is entirely > our own fault. If we hit this then we've screwd up and made > the array too small. Skip the error handling and just assert > that we must have enough room in the array. > > Cc: Kunal Joshi <kunal1.joshi@intel.com> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > --- > lib/igt_kms.c | 8 +------- > 1 file changed, 1 insertion(+), 7 deletions(-) > > diff --git a/lib/igt_kms.c b/lib/igt_kms.c > index f7dd1db91827..19bb4ac66ece 100644 > --- a/lib/igt_kms.c > +++ b/lib/igt_kms.c > @@ -1518,8 +1518,7 @@ static struct igt_forced_connector *forced_connector_alloc(void) > for (i = 0; forced_connectors[i].connector_type; i++) > ; > > - if (i >= ARRAY_SIZE(forced_connectors)) > - return NULL; > + igt_assert_lt(i, ARRAY_SIZE(forced_connectors)); Asserts in libs are ugly, could we just realloc it once? Btw (i == ARRAY_SIZE(forced_connectors) should be ok? Or do we treat this as a end-of-array guard? If you insist on keeping assert please at least give a message for ease of debug. Regards, Kamil > > return &forced_connectors[i]; > } > @@ -1558,11 +1557,6 @@ static bool force_connector(int drm_fd, > } > > c = forced_connector_alloc(); > - if (!c) { > - igt_warn("Connector limit reached, %s will not be reset\n", name); > - close(dir); > - return true; > - } > > c->idx = idx; > c->connector_type = connector->connector_type; > -- > 2.43.2 > ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH i-g-t 2/3] lib/kms: Simplify force_connectors[] error handling 2024-04-11 8:25 ` [PATCH i-g-t 2/3] " Kamil Konieczny @ 2024-04-11 13:23 ` Ville Syrjälä 0 siblings, 0 replies; 11+ messages in thread From: Ville Syrjälä @ 2024-04-11 13:23 UTC (permalink / raw) To: Kamil Konieczny, igt-dev, Kunal Joshi On Thu, Apr 11, 2024 at 10:25:11AM +0200, Kamil Konieczny wrote: > Hi Ville, > On 2024-04-10 at 18:02:28 +0300, Ville Syrjala wrote: > > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > > > The failure to allocate a forced_connector entry is entirely > > our own fault. If we hit this then we've screwd up and made > > the array too small. Skip the error handling and just assert > > that we must have enough room in the array. > > > > Cc: Kunal Joshi <kunal1.joshi@intel.com> > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > > --- > > lib/igt_kms.c | 8 +------- > > 1 file changed, 1 insertion(+), 7 deletions(-) > > > > diff --git a/lib/igt_kms.c b/lib/igt_kms.c > > index f7dd1db91827..19bb4ac66ece 100644 > > --- a/lib/igt_kms.c > > +++ b/lib/igt_kms.c > > @@ -1518,8 +1518,7 @@ static struct igt_forced_connector *forced_connector_alloc(void) > > for (i = 0; forced_connectors[i].connector_type; i++) > > ; > > > > - if (i >= ARRAY_SIZE(forced_connectors)) > > - return NULL; > > + igt_assert_lt(i, ARRAY_SIZE(forced_connectors)); > > Asserts in libs are ugly, could we just realloc it once? We never realloc anything. It's a static array. > Btw (i == ARRAY_SIZE(forced_connectors) should be ok? Or do > we treat this as a end-of-array guard? That's past the end of the array. > > If you insist on keeping assert please at least give a message > for ease of debug. Looks like I actually dropped the assert entirely in the next patch and let it explode naturally. Which it actually did in CI because I made a booboo in _alloc()... > > Regards, > Kamil > > > > > return &forced_connectors[i]; > > } > > @@ -1558,11 +1557,6 @@ static bool force_connector(int drm_fd, > > } > > > > c = forced_connector_alloc(); > > - if (!c) { > > - igt_warn("Connector limit reached, %s will not be reset\n", name); > > - close(dir); > > - return true; > > - } > > > > c->idx = idx; > > c->connector_type = connector->connector_type; > > -- > > 2.43.2 > > -- Ville Syrjälä Intel ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH i-g-t 3/3] lib/kms: Generalize forced_connectors[] to handle arbitrary attributes 2024-04-10 15:02 [PATCH i-g-t 1/3] lib/kms: Introduce struct igt_forced_connector Ville Syrjala 2024-04-10 15:02 ` [PATCH i-g-t 2/3] lib/kms: Simplify force_connectors[] error handling Ville Syrjala @ 2024-04-10 15:02 ` Ville Syrjala 2024-04-11 7:47 ` [i-g-t,3/3] " Joshi, Kunal1 2024-04-10 23:56 ` ✗ CI.xeBAT: failure for series starting with [i-g-t,1/3] lib/kms: Introduce struct igt_forced_connector Patchwork ` (2 subsequent siblings) 4 siblings, 1 reply; 11+ messages in thread From: Ville Syrjala @ 2024-04-10 15:02 UTC (permalink / raw) To: igt-dev; +Cc: Kunal Joshi From: Ville Syrjälä <ville.syrjala@linux.intel.com> We may want to poke at various other connector attributes via sysfs/debugfs. Generalize the existing the force_connectors mechamisn to handle arbitrary attributes. Cc: Kunal Joshi <kunal1.joshi@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> --- lib/igt_kms.c | 131 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 85 insertions(+), 46 deletions(-) diff --git a/lib/igt_kms.c b/lib/igt_kms.c index 19bb4ac66ece..5b23fada94d9 100644 --- a/lib/igt_kms.c +++ b/lib/igt_kms.c @@ -91,14 +91,18 @@ #define MAX_EDID 2 #define DISPLAY_TILE_BLOCK 0x12 -struct igt_forced_connector { +typedef bool (*igt_connector_attr_set)(int dir, const char *attr, const char *value); + +struct igt_connector_attr { uint32_t connector_type; uint32_t connector_type_id; int idx; int dir; + igt_connector_attr_set set; + const char *attr, *value, *reset_value; }; -static struct igt_forced_connector forced_connectors[MAX_CONNECTORS + 1]; +static struct igt_connector_attr connector_attrs[MAX_CONNECTORS + 1]; /** * igt_kms_get_base_edid: @@ -1495,39 +1499,80 @@ int igt_connector_sysfs_open(int drm_fd, return conn_dir; } -static bool connector_is_forced(int idx, drmModeConnector *connector) +static struct igt_connector_attr *connector_attr_find(int idx, drmModeConnector *connector, + igt_connector_attr_set set, + const char *attr) { igt_assert(connector->connector_type != 0); - for (int i = 0; forced_connectors[i].connector_type; i++) { - struct igt_forced_connector *c = &forced_connectors[i]; + for (int i = 0; connector_attrs[i].connector_type; i++) { + struct igt_connector_attr *c = &connector_attrs[i]; if (c->idx == idx && c->connector_type == connector->connector_type && - c->connector_type_id == connector->connector_type_id) - return true; + c->connector_type_id == connector->connector_type_id && + c->set == set && !strcmp(c->attr, attr)) + return c; } - return false; + return NULL; } -static struct igt_forced_connector *forced_connector_alloc(void) +static struct igt_connector_attr *connector_attr_alloc(int idx, drmModeConnector *connector, + int dir, igt_connector_attr_set set, + const char *attr, const char *reset_value) { - int i; + struct igt_connector_attr *c = NULL; - for (i = 0; forced_connectors[i].connector_type; i++) - ; + for (int i = 0; connector_attrs[i].connector_type; i++) { + c = &connector_attrs[i]; + break; + } + + c->idx = idx; + c->connector_type = connector->connector_type; + c->connector_type_id = connector->connector_type_id; + + c->dir = dir; + c->set = set; + c->attr = attr; + c->reset_value = reset_value; + + return c; +} + +static void connector_attr_free(struct igt_connector_attr *c) +{ + memset(c, 0, sizeof(*c)); +} + +static bool connector_attr_set(int idx, drmModeConnector *connector, + int dir, igt_connector_attr_set set, + const char *attr, const char *value, + const char *reset_value) +{ + struct igt_connector_attr *c; + + c = connector_attr_find(idx, connector, set, attr); + if (!c) + c = connector_attr_alloc(idx, connector, dir, set, + attr, reset_value); + + if (!c->set(c->dir, c->attr, c->value)) { + connector_attr_free(c); + return false; + } - igt_assert_lt(i, ARRAY_SIZE(forced_connectors)); + c->value = value; - return &forced_connectors[i]; + return true; } -static bool force_connector(int drm_fd, - drmModeConnector *connector, - const char *value) +static bool connector_attr_set_sysfs(int drm_fd, + drmModeConnector *connector, + const char *attr, const char *value, + const char *reset_value) { - struct igt_forced_connector *c; char name[80]; int idx, dir; @@ -1543,45 +1588,39 @@ static bool force_connector(int drm_fd, if (dir < 0) return false; - if (!igt_sysfs_set(dir, "status", value)) { - close(dir); + if (!connector_attr_set(idx, connector, dir, + igt_sysfs_set, attr, value, reset_value)) return false; - } - igt_debug("Connector %s is now forced %s\n", name, value); - - /* already tracked? */ - if (connector_is_forced(idx, connector)) { - close(dir); - return true; - } - - c = forced_connector_alloc(); - - c->idx = idx; - c->connector_type = connector->connector_type; - c->connector_type_id = connector->connector_type_id; - c->dir = dir; + igt_debug("Connector %s/%s is now %s\n", name, attr, value); return true; } -static void dump_forced_connectors(void) +static void dump_connector_attrs(void) { char name[80]; - igt_debug("Current forced connectors:\n"); + igt_debug("Current connector attrs:\n"); - for (int i = 0; forced_connectors[i].connector_type; i++) { - struct igt_forced_connector *c = &forced_connectors[i]; + for (int i = 0; connector_attrs[i].connector_type; i++) { + struct igt_connector_attr *c = &connector_attrs[i]; kmstest_connector_dirname(c->idx, c->connector_type, c->connector_type_id, name, sizeof(name)); - igt_debug("\t%s\n", name); + igt_debug("\t%s/%s: %s\n", name, c->attr, c->value); } } +static bool force_connector(int drm_fd, + drmModeConnector *connector, + const char *value) +{ + return connector_attr_set_sysfs(drm_fd, connector, + "status", value, "detect"); +} + /** * kmstest_force_connector: * @fd: drm file descriptor @@ -1626,7 +1665,7 @@ bool kmstest_force_connector(int drm_fd, drmModeConnector *connector, if (!force_connector(drm_fd, connector, value)) return false; - dump_forced_connectors(); + dump_connector_attrs(); igt_install_exit_handler(reset_connectors_at_exit); @@ -2619,7 +2658,7 @@ static void igt_handle_spurious_hpd(igt_display_t *display) conn->connector_type_id); } - dump_forced_connectors(); + dump_connector_attrs(); } /** @@ -5303,12 +5342,12 @@ void igt_enable_connectors(int drm_fd) */ void igt_reset_connectors(void) { - /* reset the connectors stored in forced_connectors, avoiding any + /* reset the connectors stored in connector_attrs, avoiding any * functions that are not safe to call in signal handlers */ - for (int i = 0; i < forced_connectors[i].connector_type; i++) { - struct igt_forced_connector *c = &forced_connectors[i]; + for (int i = 0; i < connector_attrs[i].connector_type; i++) { + struct igt_connector_attr *c = &connector_attrs[i]; - igt_sysfs_set(c->dir, "status", "detect"); + c->set(c->dir, c->attr, c->reset_value); } } -- 2.43.2 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [i-g-t,3/3] lib/kms: Generalize forced_connectors[] to handle arbitrary attributes 2024-04-10 15:02 ` [PATCH i-g-t 3/3] lib/kms: Generalize forced_connectors[] to handle arbitrary attributes Ville Syrjala @ 2024-04-11 7:47 ` Joshi, Kunal1 2024-04-11 14:51 ` Ville Syrjälä 0 siblings, 1 reply; 11+ messages in thread From: Joshi, Kunal1 @ 2024-04-11 7:47 UTC (permalink / raw) To: Ville Syrjala, igt-dev [-- Attachment #1: Type: text/plain, Size: 7229 bytes --] Hello Ville, On 4/10/2024 8:32 PM, Ville Syrjala wrote: > From: Ville Syrjälä<ville.syrjala@linux.intel.com> > > We may want to poke at various other connector attributes > via sysfs/debugfs. Generalize the existing the force_connectors > mechamisn to handle arbitrary attributes. > > Cc: Kunal Joshi<kunal1.joshi@intel.com> > Signed-off-by: Ville Syrjälä<ville.syrjala@linux.intel.com> > --- > lib/igt_kms.c | 131 ++++++++++++++++++++++++++++++++------------------ > 1 file changed, 85 insertions(+), 46 deletions(-) > > diff --git a/lib/igt_kms.c b/lib/igt_kms.c > index 19bb4ac66ece..5b23fada94d9 100644 > --- a/lib/igt_kms.c > +++ b/lib/igt_kms.c > @@ -91,14 +91,18 @@ > #define MAX_EDID 2 > #define DISPLAY_TILE_BLOCK 0x12 > > -struct igt_forced_connector { > +typedef bool (*igt_connector_attr_set)(int dir, const char *attr, const char *value); > + > +struct igt_connector_attr { > uint32_t connector_type; > uint32_t connector_type_id; > int idx; > int dir; > + igt_connector_attr_set set; > + const char *attr, *value, *reset_value; > }; > > -static struct igt_forced_connector forced_connectors[MAX_CONNECTORS + 1]; > +static struct igt_connector_attr connector_attrs[MAX_CONNECTORS + 1]; > > /** > * igt_kms_get_base_edid: > @@ -1495,39 +1499,80 @@ int igt_connector_sysfs_open(int drm_fd, > return conn_dir; > } > > -static bool connector_is_forced(int idx, drmModeConnector *connector) > +static struct igt_connector_attr *connector_attr_find(int idx, drmModeConnector *connector, > + igt_connector_attr_set set, > + const char *attr) > { > igt_assert(connector->connector_type != 0); > > - for (int i = 0; forced_connectors[i].connector_type; i++) { > - struct igt_forced_connector *c = &forced_connectors[i]; > + for (int i = 0; connector_attrs[i].connector_type; i++) { > + struct igt_connector_attr *c = &connector_attrs[i]; > > if (c->idx == idx && > c->connector_type == connector->connector_type && > - c->connector_type_id == connector->connector_type_id) > - return true; > + c->connector_type_id == connector->connector_type_id && > + c->set == set && !strcmp(c->attr, attr)) > + return c; > } > > - return false; > + return NULL; > } > > -static struct igt_forced_connector *forced_connector_alloc(void) > +static struct igt_connector_attr *connector_attr_alloc(int idx, drmModeConnector *connector, > + int dir, igt_connector_attr_set set, > + const char *attr, const char *reset_value) > { > - int i; > + struct igt_connector_attr *c = NULL; > > - for (i = 0; forced_connectors[i].connector_type; i++) > - ; > + for (int i = 0; connector_attrs[i].connector_type; i++) { > + c = &connector_attrs[i]; > + break; > + } > + > + c->idx = idx; > + c->connector_type = connector->connector_type; > + c->connector_type_id = connector->connector_type_id; > + > + c->dir = dir; > + c->set = set; > + c->attr = attr; > + c->reset_value = reset_value; c can be null if we don't find any valid connector_attrs Thanks and Regards Kunal Joshi > + > + return c; > +} > + > +static void connector_attr_free(struct igt_connector_attr *c) > +{ > + memset(c, 0, sizeof(*c)); > +} > + > +static bool connector_attr_set(int idx, drmModeConnector *connector, > + int dir, igt_connector_attr_set set, > + const char *attr, const char *value, > + const char *reset_value) > +{ > + struct igt_connector_attr *c; > + > + c = connector_attr_find(idx, connector, set, attr); > + if (!c) > + c = connector_attr_alloc(idx, connector, dir, set, > + attr, reset_value); > + > + if (!c->set(c->dir, c->attr, c->value)) { > + connector_attr_free(c); > + return false; > + } > > - igt_assert_lt(i, ARRAY_SIZE(forced_connectors)); > + c->value = value; > > - return &forced_connectors[i]; > + return true; > } > > -static bool force_connector(int drm_fd, > - drmModeConnector *connector, > - const char *value) > +static bool connector_attr_set_sysfs(int drm_fd, > + drmModeConnector *connector, > + const char *attr, const char *value, > + const char *reset_value) > { > - struct igt_forced_connector *c; > char name[80]; > int idx, dir; > > @@ -1543,45 +1588,39 @@ static bool force_connector(int drm_fd, > if (dir < 0) > return false; > > - if (!igt_sysfs_set(dir, "status", value)) { > - close(dir); > + if (!connector_attr_set(idx, connector, dir, > + igt_sysfs_set, attr, value, reset_value)) > return false; > - } > > - igt_debug("Connector %s is now forced %s\n", name, value); > - > - /* already tracked? */ > - if (connector_is_forced(idx, connector)) { > - close(dir); > - return true; > - } > - > - c = forced_connector_alloc(); > - > - c->idx = idx; > - c->connector_type = connector->connector_type; > - c->connector_type_id = connector->connector_type_id; > - c->dir = dir; > + igt_debug("Connector %s/%s is now %s\n", name, attr, value); > > return true; > } > > -static void dump_forced_connectors(void) > +static void dump_connector_attrs(void) > { > char name[80]; > > - igt_debug("Current forced connectors:\n"); > + igt_debug("Current connector attrs:\n"); > > - for (int i = 0; forced_connectors[i].connector_type; i++) { > - struct igt_forced_connector *c = &forced_connectors[i]; > + for (int i = 0; connector_attrs[i].connector_type; i++) { > + struct igt_connector_attr *c = &connector_attrs[i]; > > kmstest_connector_dirname(c->idx, c->connector_type, > c->connector_type_id, > name, sizeof(name)); > - igt_debug("\t%s\n", name); > + igt_debug("\t%s/%s: %s\n", name, c->attr, c->value); > } > } > > +static bool force_connector(int drm_fd, > + drmModeConnector *connector, > + const char *value) > +{ > + return connector_attr_set_sysfs(drm_fd, connector, > + "status", value, "detect"); > +} > + > /** > * kmstest_force_connector: > * @fd: drm file descriptor > @@ -1626,7 +1665,7 @@ bool kmstest_force_connector(int drm_fd, drmModeConnector *connector, > if (!force_connector(drm_fd, connector, value)) > return false; > > - dump_forced_connectors(); > + dump_connector_attrs(); > > igt_install_exit_handler(reset_connectors_at_exit); > > @@ -2619,7 +2658,7 @@ static void igt_handle_spurious_hpd(igt_display_t *display) > conn->connector_type_id); > } > > - dump_forced_connectors(); > + dump_connector_attrs(); > } > > /** > @@ -5303,12 +5342,12 @@ void igt_enable_connectors(int drm_fd) > */ > void igt_reset_connectors(void) > { > - /* reset the connectors stored in forced_connectors, avoiding any > + /* reset the connectors stored in connector_attrs, avoiding any > * functions that are not safe to call in signal handlers */ > - for (int i = 0; i < forced_connectors[i].connector_type; i++) { > - struct igt_forced_connector *c = &forced_connectors[i]; > + for (int i = 0; i < connector_attrs[i].connector_type; i++) { > + struct igt_connector_attr *c = &connector_attrs[i]; > > - igt_sysfs_set(c->dir, "status", "detect"); > + c->set(c->dir, c->attr, c->reset_value); > } > } > [-- Attachment #2: Type: text/html, Size: 7822 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [i-g-t,3/3] lib/kms: Generalize forced_connectors[] to handle arbitrary attributes 2024-04-11 7:47 ` [i-g-t,3/3] " Joshi, Kunal1 @ 2024-04-11 14:51 ` Ville Syrjälä 0 siblings, 0 replies; 11+ messages in thread From: Ville Syrjälä @ 2024-04-11 14:51 UTC (permalink / raw) To: Joshi, Kunal1; +Cc: igt-dev On Thu, Apr 11, 2024 at 01:17:19PM +0530, Joshi, Kunal1 wrote: > Hello Ville, > > On 4/10/2024 8:32 PM, Ville Syrjala wrote: > > From: Ville Syrjälä<ville.syrjala@linux.intel.com> > > > > We may want to poke at various other connector attributes > > via sysfs/debugfs. Generalize the existing the force_connectors > > mechamisn to handle arbitrary attributes. > > > > Cc: Kunal Joshi<kunal1.joshi@intel.com> > > Signed-off-by: Ville Syrjälä<ville.syrjala@linux.intel.com> > > --- > > lib/igt_kms.c | 131 ++++++++++++++++++++++++++++++++------------------ > > 1 file changed, 85 insertions(+), 46 deletions(-) > > > > diff --git a/lib/igt_kms.c b/lib/igt_kms.c > > index 19bb4ac66ece..5b23fada94d9 100644 > > --- a/lib/igt_kms.c > > +++ b/lib/igt_kms.c > > @@ -91,14 +91,18 @@ > > #define MAX_EDID 2 > > #define DISPLAY_TILE_BLOCK 0x12 > > > > -struct igt_forced_connector { > > +typedef bool (*igt_connector_attr_set)(int dir, const char *attr, const char *value); > > + > > +struct igt_connector_attr { > > uint32_t connector_type; > > uint32_t connector_type_id; > > int idx; > > int dir; > > + igt_connector_attr_set set; > > + const char *attr, *value, *reset_value; > > }; > > > > -static struct igt_forced_connector forced_connectors[MAX_CONNECTORS + 1]; > > +static struct igt_connector_attr connector_attrs[MAX_CONNECTORS + 1]; > > > > /** > > * igt_kms_get_base_edid: > > @@ -1495,39 +1499,80 @@ int igt_connector_sysfs_open(int drm_fd, > > return conn_dir; > > } > > > > -static bool connector_is_forced(int idx, drmModeConnector *connector) > > +static struct igt_connector_attr *connector_attr_find(int idx, drmModeConnector *connector, > > + igt_connector_attr_set set, > > + const char *attr) > > { > > igt_assert(connector->connector_type != 0); > > > > - for (int i = 0; forced_connectors[i].connector_type; i++) { > > - struct igt_forced_connector *c = &forced_connectors[i]; > > + for (int i = 0; connector_attrs[i].connector_type; i++) { > > + struct igt_connector_attr *c = &connector_attrs[i]; > > > > if (c->idx == idx && > > c->connector_type == connector->connector_type && > > - c->connector_type_id == connector->connector_type_id) > > - return true; > > + c->connector_type_id == connector->connector_type_id && > > + c->set == set && !strcmp(c->attr, attr)) > > + return c; > > } > > > > - return false; > > + return NULL; > > } > > > > -static struct igt_forced_connector *forced_connector_alloc(void) > > +static struct igt_connector_attr *connector_attr_alloc(int idx, drmModeConnector *connector, > > + int dir, igt_connector_attr_set set, > > + const char *attr, const char *reset_value) > > { > > - int i; > > + struct igt_connector_attr *c = NULL; > > > > - for (i = 0; forced_connectors[i].connector_type; i++) > > - ; > > + for (int i = 0; connector_attrs[i].connector_type; i++) { > > + c = &connector_attrs[i]; > > + break; > > + } > > + > > + c->idx = idx; > > + c->connector_type = connector->connector_type; > > + c->connector_type_id = connector->connector_type_id; > > + > > + c->dir = dir; > > + c->set = set; > > + c->attr = attr; > > + c->reset_value = reset_value; > > c can be null if we don't find any valid connector_attrs c==NULL would be a bug. > > Thanks and Regards Kunal Joshi > > > + > > + return c; > > +} > > + > > +static void connector_attr_free(struct igt_connector_attr *c) > > +{ > > + memset(c, 0, sizeof(*c)); > > +} > > + > > +static bool connector_attr_set(int idx, drmModeConnector *connector, > > + int dir, igt_connector_attr_set set, > > + const char *attr, const char *value, > > + const char *reset_value) > > +{ > > + struct igt_connector_attr *c; > > + > > + c = connector_attr_find(idx, connector, set, attr); > > + if (!c) > > + c = connector_attr_alloc(idx, connector, dir, set, > > + attr, reset_value); > > + > > + if (!c->set(c->dir, c->attr, c->value)) { > > + connector_attr_free(c); > > + return false; > > + } > > > > - igt_assert_lt(i, ARRAY_SIZE(forced_connectors)); > > + c->value = value; > > > > - return &forced_connectors[i]; > > + return true; > > } > > > > -static bool force_connector(int drm_fd, > > - drmModeConnector *connector, > > - const char *value) > > +static bool connector_attr_set_sysfs(int drm_fd, > > + drmModeConnector *connector, > > + const char *attr, const char *value, > > + const char *reset_value) > > { > > - struct igt_forced_connector *c; > > char name[80]; > > int idx, dir; > > > > @@ -1543,45 +1588,39 @@ static bool force_connector(int drm_fd, > > if (dir < 0) > > return false; > > > > - if (!igt_sysfs_set(dir, "status", value)) { > > - close(dir); > > + if (!connector_attr_set(idx, connector, dir, > > + igt_sysfs_set, attr, value, reset_value)) > > return false; > > - } > > > > - igt_debug("Connector %s is now forced %s\n", name, value); > > - > > - /* already tracked? */ > > - if (connector_is_forced(idx, connector)) { > > - close(dir); > > - return true; > > - } > > - > > - c = forced_connector_alloc(); > > - > > - c->idx = idx; > > - c->connector_type = connector->connector_type; > > - c->connector_type_id = connector->connector_type_id; > > - c->dir = dir; > > + igt_debug("Connector %s/%s is now %s\n", name, attr, value); > > > > return true; > > } > > > > -static void dump_forced_connectors(void) > > +static void dump_connector_attrs(void) > > { > > char name[80]; > > > > - igt_debug("Current forced connectors:\n"); > > + igt_debug("Current connector attrs:\n"); > > > > - for (int i = 0; forced_connectors[i].connector_type; i++) { > > - struct igt_forced_connector *c = &forced_connectors[i]; > > + for (int i = 0; connector_attrs[i].connector_type; i++) { > > + struct igt_connector_attr *c = &connector_attrs[i]; > > > > kmstest_connector_dirname(c->idx, c->connector_type, > > c->connector_type_id, > > name, sizeof(name)); > > - igt_debug("\t%s\n", name); > > + igt_debug("\t%s/%s: %s\n", name, c->attr, c->value); > > } > > } > > > > +static bool force_connector(int drm_fd, > > + drmModeConnector *connector, > > + const char *value) > > +{ > > + return connector_attr_set_sysfs(drm_fd, connector, > > + "status", value, "detect"); > > +} > > + > > /** > > * kmstest_force_connector: > > * @fd: drm file descriptor > > @@ -1626,7 +1665,7 @@ bool kmstest_force_connector(int drm_fd, drmModeConnector *connector, > > if (!force_connector(drm_fd, connector, value)) > > return false; > > > > - dump_forced_connectors(); > > + dump_connector_attrs(); > > > > igt_install_exit_handler(reset_connectors_at_exit); > > > > @@ -2619,7 +2658,7 @@ static void igt_handle_spurious_hpd(igt_display_t *display) > > conn->connector_type_id); > > } > > > > - dump_forced_connectors(); > > + dump_connector_attrs(); > > } > > > > /** > > @@ -5303,12 +5342,12 @@ void igt_enable_connectors(int drm_fd) > > */ > > void igt_reset_connectors(void) > > { > > - /* reset the connectors stored in forced_connectors, avoiding any > > + /* reset the connectors stored in connector_attrs, avoiding any > > * functions that are not safe to call in signal handlers */ > > - for (int i = 0; i < forced_connectors[i].connector_type; i++) { > > - struct igt_forced_connector *c = &forced_connectors[i]; > > + for (int i = 0; i < connector_attrs[i].connector_type; i++) { > > + struct igt_connector_attr *c = &connector_attrs[i]; > > > > - igt_sysfs_set(c->dir, "status", "detect"); > > + c->set(c->dir, c->attr, c->reset_value); > > } > > } > > -- Ville Syrjälä Intel ^ permalink raw reply [flat|nested] 11+ messages in thread
* ✗ CI.xeBAT: failure for series starting with [i-g-t,1/3] lib/kms: Introduce struct igt_forced_connector 2024-04-10 15:02 [PATCH i-g-t 1/3] lib/kms: Introduce struct igt_forced_connector Ville Syrjala 2024-04-10 15:02 ` [PATCH i-g-t 2/3] lib/kms: Simplify force_connectors[] error handling Ville Syrjala 2024-04-10 15:02 ` [PATCH i-g-t 3/3] lib/kms: Generalize forced_connectors[] to handle arbitrary attributes Ville Syrjala @ 2024-04-10 23:56 ` Patchwork 2024-04-11 0:17 ` ✗ Fi.CI.BAT: " Patchwork 2024-04-11 6:14 ` Joshi, Kunal1 4 siblings, 0 replies; 11+ messages in thread From: Patchwork @ 2024-04-10 23:56 UTC (permalink / raw) To: Ville Syrjala; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 3051 bytes --] == Series Details == Series: series starting with [i-g-t,1/3] lib/kms: Introduce struct igt_forced_connector URL : https://patchwork.freedesktop.org/series/132284/ State : failure == Summary == CI Bug Log - changes from XEIGT_7805_BAT -> XEIGTPW_11001_BAT ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with XEIGTPW_11001_BAT absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in XEIGTPW_11001_BAT, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them to document this new failure mode, which will reduce false positives in CI. Participating hosts (5 -> 5) ------------------------------ No changes in participating hosts Possible new issues ------------------- Here are the unknown changes that may have been introduced in XEIGTPW_11001_BAT: ### IGT changes ### #### Possible regressions #### * igt@kms_force_connector_basic@force-connector-state: - bat-dg2-oem2: [PASS][1] -> [FAIL][2] +1 other test fail [1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7805/bat-dg2-oem2/igt@kms_force_connector_basic@force-connector-state.html [2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11001/bat-dg2-oem2/igt@kms_force_connector_basic@force-connector-state.html - bat-adlp-7: [PASS][3] -> [FAIL][4] +2 other tests fail [3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7805/bat-adlp-7/igt@kms_force_connector_basic@force-connector-state.html [4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11001/bat-adlp-7/igt@kms_force_connector_basic@force-connector-state.html * igt@kms_hdmi_inject@inject-audio: - bat-dg2-oem2: [PASS][5] -> [CRASH][6] [5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7805/bat-dg2-oem2/igt@kms_hdmi_inject@inject-audio.html [6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11001/bat-dg2-oem2/igt@kms_hdmi_inject@inject-audio.html - bat-adlp-7: [PASS][7] -> [CRASH][8] [7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7805/bat-adlp-7/igt@kms_hdmi_inject@inject-audio.html [8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11001/bat-adlp-7/igt@kms_hdmi_inject@inject-audio.html #### Warnings #### * igt@kms_force_connector_basic@prune-stale-modes: - bat-dg2-oem2: [SKIP][9] ([i915#5274]) -> [FAIL][10] [9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7805/bat-dg2-oem2/igt@kms_force_connector_basic@prune-stale-modes.html [10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11001/bat-dg2-oem2/igt@kms_force_connector_basic@prune-stale-modes.html [i915#5274]: https://gitlab.freedesktop.org/drm/intel/issues/5274 Build changes ------------- * IGT: IGT_7805 -> IGTPW_11001 IGTPW_11001: 11001 IGT_7805: 7805 xe-1073-72c79c9b20ced92d5c10230bb50fca29c9f387f9: 72c79c9b20ced92d5c10230bb50fca29c9f387f9 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11001/index.html [-- Attachment #2: Type: text/html, Size: 3714 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* ✗ Fi.CI.BAT: failure for series starting with [i-g-t,1/3] lib/kms: Introduce struct igt_forced_connector 2024-04-10 15:02 [PATCH i-g-t 1/3] lib/kms: Introduce struct igt_forced_connector Ville Syrjala ` (2 preceding siblings ...) 2024-04-10 23:56 ` ✗ CI.xeBAT: failure for series starting with [i-g-t,1/3] lib/kms: Introduce struct igt_forced_connector Patchwork @ 2024-04-11 0:17 ` Patchwork 2024-04-11 6:14 ` Joshi, Kunal1 4 siblings, 0 replies; 11+ messages in thread From: Patchwork @ 2024-04-11 0:17 UTC (permalink / raw) To: Ville Syrjala; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 36514 bytes --] == Series Details == Series: series starting with [i-g-t,1/3] lib/kms: Introduce struct igt_forced_connector URL : https://patchwork.freedesktop.org/series/132284/ State : failure == Summary == CI Bug Log - changes from IGT_7805 -> IGTPW_11001 ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with IGTPW_11001 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in IGTPW_11001, please notify your bug team (I915-ci-infra@lists.freedesktop.org) 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_11001/index.html Participating hosts (33 -> 36) ------------------------------ Additional (6): fi-kbl-7567u bat-arls-2 fi-bsw-n3050 fi-cfl-8109u bat-dg2-11 bat-mtlp-8 Missing (3): bat-mtlp-9 fi-snb-2520m bat-arls-3 Possible new issues ------------------- Here are the unknown changes that may have been introduced in IGTPW_11001: ### IGT changes ### #### Possible regressions #### * igt@kms_force_connector_basic@force-connector-state: - bat-adls-6: [PASS][1] -> [FAIL][2] +2 other tests fail [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-adls-6/igt@kms_force_connector_basic@force-connector-state.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-adls-6/igt@kms_force_connector_basic@force-connector-state.html - bat-adlm-1: [PASS][3] -> [FAIL][4] +2 other tests fail [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-adlm-1/igt@kms_force_connector_basic@force-connector-state.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-adlm-1/igt@kms_force_connector_basic@force-connector-state.html - fi-ilk-650: [PASS][5] -> [FAIL][6] +3 other tests fail [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/fi-ilk-650/igt@kms_force_connector_basic@force-connector-state.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-ilk-650/igt@kms_force_connector_basic@force-connector-state.html - bat-jsl-1: [PASS][7] -> [FAIL][8] +2 other tests fail [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-jsl-1/igt@kms_force_connector_basic@force-connector-state.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-jsl-1/igt@kms_force_connector_basic@force-connector-state.html - fi-tgl-1115g4: [PASS][9] -> [FAIL][10] +2 other tests fail [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/fi-tgl-1115g4/igt@kms_force_connector_basic@force-connector-state.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-tgl-1115g4/igt@kms_force_connector_basic@force-connector-state.html - bat-arls-1: [PASS][11] -> [FAIL][12] +2 other tests fail [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-arls-1/igt@kms_force_connector_basic@force-connector-state.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-arls-1/igt@kms_force_connector_basic@force-connector-state.html - fi-blb-e6850: [PASS][13] -> [FAIL][14] +3 other tests fail [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/fi-blb-e6850/igt@kms_force_connector_basic@force-connector-state.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-blb-e6850/igt@kms_force_connector_basic@force-connector-state.html - fi-bsw-n3050: NOTRUN -> [FAIL][15] +3 other tests fail [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-bsw-n3050/igt@kms_force_connector_basic@force-connector-state.html - bat-adlp-6: [PASS][16] -> [FAIL][17] +2 other tests fail [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-adlp-6/igt@kms_force_connector_basic@force-connector-state.html [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-adlp-6/igt@kms_force_connector_basic@force-connector-state.html - bat-mtlp-6: [PASS][18] -> [FAIL][19] +1 other test fail [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-mtlp-6/igt@kms_force_connector_basic@force-connector-state.html [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-mtlp-6/igt@kms_force_connector_basic@force-connector-state.html - fi-pnv-d510: [PASS][20] -> [FAIL][21] +3 other tests fail [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/fi-pnv-d510/igt@kms_force_connector_basic@force-connector-state.html [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-pnv-d510/igt@kms_force_connector_basic@force-connector-state.html - fi-glk-j4005: [PASS][22] -> [FAIL][23] +2 other tests fail [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/fi-glk-j4005/igt@kms_force_connector_basic@force-connector-state.html [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-glk-j4005/igt@kms_force_connector_basic@force-connector-state.html - bat-adlp-9: [PASS][24] -> [FAIL][25] +2 other tests fail [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-adlp-9/igt@kms_force_connector_basic@force-connector-state.html [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-adlp-9/igt@kms_force_connector_basic@force-connector-state.html - fi-cfl-8700k: [PASS][26] -> [FAIL][27] +2 other tests fail [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/fi-cfl-8700k/igt@kms_force_connector_basic@force-connector-state.html [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-cfl-8700k/igt@kms_force_connector_basic@force-connector-state.html - bat-dg2-14: [PASS][28] -> [FAIL][29] +1 other test fail [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-dg2-14/igt@kms_force_connector_basic@force-connector-state.html [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-dg2-14/igt@kms_force_connector_basic@force-connector-state.html - fi-bsw-nick: [PASS][30] -> [FAIL][31] +2 other tests fail [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/fi-bsw-nick/igt@kms_force_connector_basic@force-connector-state.html [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-bsw-nick/igt@kms_force_connector_basic@force-connector-state.html - bat-kbl-2: [PASS][32] -> [FAIL][33] +2 other tests fail [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-kbl-2/igt@kms_force_connector_basic@force-connector-state.html [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-kbl-2/igt@kms_force_connector_basic@force-connector-state.html - bat-rplp-1: [PASS][34] -> [FAIL][35] +2 other tests fail [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-rplp-1/igt@kms_force_connector_basic@force-connector-state.html [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-rplp-1/igt@kms_force_connector_basic@force-connector-state.html - fi-rkl-11600: [PASS][36] -> [FAIL][37] +2 other tests fail [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/fi-rkl-11600/igt@kms_force_connector_basic@force-connector-state.html [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-rkl-11600/igt@kms_force_connector_basic@force-connector-state.html - bat-dg2-9: [PASS][38] -> [FAIL][39] +1 other test fail [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-dg2-9/igt@kms_force_connector_basic@force-connector-state.html [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-dg2-9/igt@kms_force_connector_basic@force-connector-state.html * igt@kms_force_connector_basic@force-edid: - bat-mtlp-8: NOTRUN -> [FAIL][40] +3 other tests fail [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-mtlp-8/igt@kms_force_connector_basic@force-edid.html - bat-dg2-8: [PASS][41] -> [FAIL][42] +1 other test fail [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-dg2-8/igt@kms_force_connector_basic@force-edid.html [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-dg2-8/igt@kms_force_connector_basic@force-edid.html - fi-kbl-guc: [PASS][43] -> [FAIL][44] +2 other tests fail [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/fi-kbl-guc/igt@kms_force_connector_basic@force-edid.html [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-kbl-guc/igt@kms_force_connector_basic@force-edid.html * igt@kms_force_connector_basic@force-load-detect: - fi-kbl-7567u: NOTRUN -> [FAIL][45] +3 other tests fail [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-kbl-7567u/igt@kms_force_connector_basic@force-load-detect.html * igt@kms_force_connector_basic@prune-stale-modes: - bat-jsl-3: [PASS][46] -> [FAIL][47] +2 other tests fail [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-jsl-3/igt@kms_force_connector_basic@prune-stale-modes.html [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-jsl-3/igt@kms_force_connector_basic@prune-stale-modes.html - bat-dg2-11: NOTRUN -> [FAIL][48] +3 other tests fail [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-dg2-11/igt@kms_force_connector_basic@prune-stale-modes.html - fi-kbl-x1275: [PASS][49] -> [FAIL][50] +2 other tests fail [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/fi-kbl-x1275/igt@kms_force_connector_basic@prune-stale-modes.html [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-kbl-x1275/igt@kms_force_connector_basic@prune-stale-modes.html - fi-cfl-8109u: NOTRUN -> [FAIL][51] +3 other tests fail [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-cfl-8109u/igt@kms_force_connector_basic@prune-stale-modes.html - bat-adln-1: [PASS][52] -> [FAIL][53] +2 other tests fail [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-adln-1/igt@kms_force_connector_basic@prune-stale-modes.html [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-adln-1/igt@kms_force_connector_basic@prune-stale-modes.html - fi-ivb-3770: [PASS][54] -> [FAIL][55] +3 other tests fail [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/fi-ivb-3770/igt@kms_force_connector_basic@prune-stale-modes.html [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-ivb-3770/igt@kms_force_connector_basic@prune-stale-modes.html - fi-cfl-guc: [PASS][56] -> [FAIL][57] +2 other tests fail [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/fi-cfl-guc/igt@kms_force_connector_basic@prune-stale-modes.html [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-cfl-guc/igt@kms_force_connector_basic@prune-stale-modes.html * igt@kms_hdmi_inject@inject-audio: - fi-glk-j4005: [PASS][58] -> [CRASH][59] [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/fi-glk-j4005/igt@kms_hdmi_inject@inject-audio.html [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-glk-j4005/igt@kms_hdmi_inject@inject-audio.html - bat-adlp-9: [PASS][60] -> [CRASH][61] [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-adlp-9/igt@kms_hdmi_inject@inject-audio.html [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-adlp-9/igt@kms_hdmi_inject@inject-audio.html - fi-cfl-8700k: [PASS][62] -> [CRASH][63] [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/fi-cfl-8700k/igt@kms_hdmi_inject@inject-audio.html [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-cfl-8700k/igt@kms_hdmi_inject@inject-audio.html - bat-dg2-14: [PASS][64] -> [CRASH][65] [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-dg2-14/igt@kms_hdmi_inject@inject-audio.html [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-dg2-14/igt@kms_hdmi_inject@inject-audio.html - fi-bsw-nick: [PASS][66] -> [CRASH][67] [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/fi-bsw-nick/igt@kms_hdmi_inject@inject-audio.html [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-bsw-nick/igt@kms_hdmi_inject@inject-audio.html - bat-kbl-2: [PASS][68] -> [CRASH][69] [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-kbl-2/igt@kms_hdmi_inject@inject-audio.html [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-kbl-2/igt@kms_hdmi_inject@inject-audio.html - bat-adlp-6: [PASS][70] -> [CRASH][71] [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-adlp-6/igt@kms_hdmi_inject@inject-audio.html [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-adlp-6/igt@kms_hdmi_inject@inject-audio.html - bat-rplp-1: [PASS][72] -> [CRASH][73] [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-rplp-1/igt@kms_hdmi_inject@inject-audio.html [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-rplp-1/igt@kms_hdmi_inject@inject-audio.html - fi-rkl-11600: [PASS][74] -> [CRASH][75] [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/fi-rkl-11600/igt@kms_hdmi_inject@inject-audio.html [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-rkl-11600/igt@kms_hdmi_inject@inject-audio.html - bat-jsl-3: [PASS][76] -> [CRASH][77] [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-jsl-3/igt@kms_hdmi_inject@inject-audio.html [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-jsl-3/igt@kms_hdmi_inject@inject-audio.html - bat-dg2-9: [PASS][78] -> [CRASH][79] [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-dg2-9/igt@kms_hdmi_inject@inject-audio.html [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-dg2-9/igt@kms_hdmi_inject@inject-audio.html - bat-dg2-11: NOTRUN -> [CRASH][80] [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-dg2-11/igt@kms_hdmi_inject@inject-audio.html - fi-cfl-8109u: NOTRUN -> [CRASH][81] [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-cfl-8109u/igt@kms_hdmi_inject@inject-audio.html - fi-kbl-7567u: NOTRUN -> [CRASH][82] [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-kbl-7567u/igt@kms_hdmi_inject@inject-audio.html - bat-adln-1: [PASS][83] -> [CRASH][84] [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-adln-1/igt@kms_hdmi_inject@inject-audio.html [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-adln-1/igt@kms_hdmi_inject@inject-audio.html - bat-mtlp-8: NOTRUN -> [CRASH][85] [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-mtlp-8/igt@kms_hdmi_inject@inject-audio.html - bat-dg2-8: [PASS][86] -> [CRASH][87] [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-dg2-8/igt@kms_hdmi_inject@inject-audio.html [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-dg2-8/igt@kms_hdmi_inject@inject-audio.html - fi-kbl-guc: [PASS][88] -> [CRASH][89] [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/fi-kbl-guc/igt@kms_hdmi_inject@inject-audio.html [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-kbl-guc/igt@kms_hdmi_inject@inject-audio.html - bat-adls-6: [PASS][90] -> [CRASH][91] [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-adls-6/igt@kms_hdmi_inject@inject-audio.html [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-adls-6/igt@kms_hdmi_inject@inject-audio.html - bat-adlm-1: [PASS][92] -> [CRASH][93] [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-adlm-1/igt@kms_hdmi_inject@inject-audio.html [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-adlm-1/igt@kms_hdmi_inject@inject-audio.html - fi-ilk-650: [PASS][94] -> [CRASH][95] [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/fi-ilk-650/igt@kms_hdmi_inject@inject-audio.html [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-ilk-650/igt@kms_hdmi_inject@inject-audio.html - bat-jsl-1: [PASS][96] -> [CRASH][97] [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-jsl-1/igt@kms_hdmi_inject@inject-audio.html [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-jsl-1/igt@kms_hdmi_inject@inject-audio.html - fi-tgl-1115g4: [PASS][98] -> [CRASH][99] [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/fi-tgl-1115g4/igt@kms_hdmi_inject@inject-audio.html [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-tgl-1115g4/igt@kms_hdmi_inject@inject-audio.html - bat-arls-1: [PASS][100] -> [CRASH][101] [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-arls-1/igt@kms_hdmi_inject@inject-audio.html [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-arls-1/igt@kms_hdmi_inject@inject-audio.html - fi-bsw-n3050: NOTRUN -> [CRASH][102] [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-bsw-n3050/igt@kms_hdmi_inject@inject-audio.html - fi-cfl-guc: [PASS][103] -> [CRASH][104] [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/fi-cfl-guc/igt@kms_hdmi_inject@inject-audio.html [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-cfl-guc/igt@kms_hdmi_inject@inject-audio.html - bat-mtlp-6: [PASS][105] -> [CRASH][106] [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-mtlp-6/igt@kms_hdmi_inject@inject-audio.html [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-mtlp-6/igt@kms_hdmi_inject@inject-audio.html #### Warnings #### * igt@kms_force_connector_basic@force-load-detect: - bat-adln-1: [SKIP][107] -> [FAIL][108] [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-adln-1/igt@kms_force_connector_basic@force-load-detect.html [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-adln-1/igt@kms_force_connector_basic@force-load-detect.html - fi-cfl-8700k: [SKIP][109] -> [FAIL][110] [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/fi-cfl-8700k/igt@kms_force_connector_basic@force-load-detect.html [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-cfl-8700k/igt@kms_force_connector_basic@force-load-detect.html - bat-dg2-14: [SKIP][111] -> [FAIL][112] [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-dg2-14/igt@kms_force_connector_basic@force-load-detect.html [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-dg2-14/igt@kms_force_connector_basic@force-load-detect.html - fi-bsw-nick: [SKIP][113] -> [FAIL][114] [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/fi-bsw-nick/igt@kms_force_connector_basic@force-load-detect.html [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-bsw-nick/igt@kms_force_connector_basic@force-load-detect.html - bat-kbl-2: [SKIP][115] -> [FAIL][116] [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-kbl-2/igt@kms_force_connector_basic@force-load-detect.html [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-kbl-2/igt@kms_force_connector_basic@force-load-detect.html - bat-adlm-1: [SKIP][117] -> [FAIL][118] [117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-adlm-1/igt@kms_force_connector_basic@force-load-detect.html [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-adlm-1/igt@kms_force_connector_basic@force-load-detect.html - bat-rplp-1: [SKIP][119] -> [FAIL][120] [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-rplp-1/igt@kms_force_connector_basic@force-load-detect.html [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-rplp-1/igt@kms_force_connector_basic@force-load-detect.html - fi-rkl-11600: [SKIP][121] -> [FAIL][122] [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/fi-rkl-11600/igt@kms_force_connector_basic@force-load-detect.html [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-rkl-11600/igt@kms_force_connector_basic@force-load-detect.html - fi-tgl-1115g4: [SKIP][123] -> [FAIL][124] [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/fi-tgl-1115g4/igt@kms_force_connector_basic@force-load-detect.html [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-tgl-1115g4/igt@kms_force_connector_basic@force-load-detect.html - fi-cfl-guc: [SKIP][125] -> [FAIL][126] [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/fi-cfl-guc/igt@kms_force_connector_basic@force-load-detect.html [126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-cfl-guc/igt@kms_force_connector_basic@force-load-detect.html - bat-mtlp-6: [SKIP][127] ([i915#9792]) -> [FAIL][128] [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-mtlp-6/igt@kms_force_connector_basic@force-load-detect.html [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-mtlp-6/igt@kms_force_connector_basic@force-load-detect.html - bat-jsl-3: [SKIP][129] -> [FAIL][130] [129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-jsl-3/igt@kms_force_connector_basic@force-load-detect.html [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-jsl-3/igt@kms_force_connector_basic@force-load-detect.html - bat-dg2-9: [SKIP][131] -> [FAIL][132] [131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-dg2-9/igt@kms_force_connector_basic@force-load-detect.html [132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-dg2-9/igt@kms_force_connector_basic@force-load-detect.html - fi-kbl-x1275: [SKIP][133] -> [FAIL][134] [133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/fi-kbl-x1275/igt@kms_force_connector_basic@force-load-detect.html [134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-kbl-x1275/igt@kms_force_connector_basic@force-load-detect.html - bat-dg2-8: [SKIP][135] -> [FAIL][136] [135]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-dg2-8/igt@kms_force_connector_basic@force-load-detect.html [136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-dg2-8/igt@kms_force_connector_basic@force-load-detect.html - fi-kbl-guc: [SKIP][137] -> [FAIL][138] [137]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/fi-kbl-guc/igt@kms_force_connector_basic@force-load-detect.html [138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-kbl-guc/igt@kms_force_connector_basic@force-load-detect.html - bat-adls-6: [SKIP][139] -> [FAIL][140] [139]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-adls-6/igt@kms_force_connector_basic@force-load-detect.html [140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-adls-6/igt@kms_force_connector_basic@force-load-detect.html - bat-jsl-1: [SKIP][141] -> [FAIL][142] [141]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-jsl-1/igt@kms_force_connector_basic@force-load-detect.html [142]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-jsl-1/igt@kms_force_connector_basic@force-load-detect.html - bat-arls-1: [SKIP][143] ([i915#10207]) -> [FAIL][144] [143]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-arls-1/igt@kms_force_connector_basic@force-load-detect.html [144]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-arls-1/igt@kms_force_connector_basic@force-load-detect.html - bat-adlp-6: [SKIP][145] -> [FAIL][146] [145]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-adlp-6/igt@kms_force_connector_basic@force-load-detect.html [146]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-adlp-6/igt@kms_force_connector_basic@force-load-detect.html - fi-glk-j4005: [SKIP][147] -> [FAIL][148] [147]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/fi-glk-j4005/igt@kms_force_connector_basic@force-load-detect.html [148]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-glk-j4005/igt@kms_force_connector_basic@force-load-detect.html - bat-adlp-9: [SKIP][149] -> [FAIL][150] [149]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-adlp-9/igt@kms_force_connector_basic@force-load-detect.html [150]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-adlp-9/igt@kms_force_connector_basic@force-load-detect.html * igt@kms_force_connector_basic@prune-stale-modes: - bat-dg2-9: [SKIP][151] ([i915#5274]) -> [FAIL][152] [151]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-dg2-9/igt@kms_force_connector_basic@prune-stale-modes.html [152]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-dg2-9/igt@kms_force_connector_basic@prune-stale-modes.html - bat-dg2-8: [SKIP][153] ([i915#5274]) -> [FAIL][154] [153]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-dg2-8/igt@kms_force_connector_basic@prune-stale-modes.html [154]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-dg2-8/igt@kms_force_connector_basic@prune-stale-modes.html - bat-mtlp-6: [SKIP][155] ([i915#5274] / [i915#9792]) -> [FAIL][156] [155]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-mtlp-6/igt@kms_force_connector_basic@prune-stale-modes.html [156]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-mtlp-6/igt@kms_force_connector_basic@prune-stale-modes.html - bat-dg2-14: [SKIP][157] ([i915#5274]) -> [FAIL][158] [157]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7805/bat-dg2-14/igt@kms_force_connector_basic@prune-stale-modes.html [158]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-dg2-14/igt@kms_force_connector_basic@prune-stale-modes.html Known issues ------------ Here are the changes found in IGTPW_11001 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@debugfs_test@basic-hwmon: - bat-mtlp-8: NOTRUN -> [SKIP][159] ([i915#9318]) [159]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-mtlp-8/igt@debugfs_test@basic-hwmon.html - bat-arls-2: NOTRUN -> [SKIP][160] ([i915#9318]) [160]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-arls-2/igt@debugfs_test@basic-hwmon.html * igt@gem_ctx_create@basic-files: - bat-arls-2: NOTRUN -> [ABORT][161] ([i915#10687]) [161]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-arls-2/igt@gem_ctx_create@basic-files.html * igt@gem_huc_copy@huc-copy: - fi-cfl-8109u: NOTRUN -> [SKIP][162] ([i915#2190]) [162]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-cfl-8109u/igt@gem_huc_copy@huc-copy.html - fi-kbl-7567u: NOTRUN -> [SKIP][163] ([i915#2190]) [163]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-kbl-7567u/igt@gem_huc_copy@huc-copy.html * igt@gem_lmem_swapping@basic: - fi-kbl-7567u: NOTRUN -> [SKIP][164] ([i915#4613]) +3 other tests skip [164]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-kbl-7567u/igt@gem_lmem_swapping@basic.html * igt@gem_lmem_swapping@random-engines: - fi-bsw-n3050: NOTRUN -> [SKIP][165] +18 other tests skip [165]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-bsw-n3050/igt@gem_lmem_swapping@random-engines.html * igt@gem_lmem_swapping@verify-random: - fi-cfl-8109u: NOTRUN -> [SKIP][166] ([i915#4613]) +3 other tests skip [166]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-cfl-8109u/igt@gem_lmem_swapping@verify-random.html - bat-mtlp-8: NOTRUN -> [SKIP][167] ([i915#4613]) +3 other tests skip [167]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-mtlp-8/igt@gem_lmem_swapping@verify-random.html * igt@gem_mmap@basic: - bat-dg2-11: NOTRUN -> [SKIP][168] ([i915#4083]) [168]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-dg2-11/igt@gem_mmap@basic.html - bat-mtlp-8: NOTRUN -> [SKIP][169] ([i915#4083]) [169]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-mtlp-8/igt@gem_mmap@basic.html * igt@gem_mmap_gtt@basic: - bat-mtlp-8: NOTRUN -> [SKIP][170] ([i915#4077]) +2 other tests skip [170]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-mtlp-8/igt@gem_mmap_gtt@basic.html * igt@gem_render_tiled_blits@basic: - bat-mtlp-8: NOTRUN -> [SKIP][171] ([i915#4079]) +1 other test skip [171]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-mtlp-8/igt@gem_render_tiled_blits@basic.html * igt@gem_tiled_fence_blits@basic: - bat-dg2-11: NOTRUN -> [SKIP][172] ([i915#4077]) +2 other tests skip [172]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-dg2-11/igt@gem_tiled_fence_blits@basic.html * igt@gem_tiled_pread_basic: - bat-dg2-11: NOTRUN -> [SKIP][173] ([i915#4079]) +1 other test skip [173]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-dg2-11/igt@gem_tiled_pread_basic.html * igt@i915_pm_rps@basic-api: - bat-dg2-11: NOTRUN -> [SKIP][174] ([i915#6621]) [174]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-dg2-11/igt@i915_pm_rps@basic-api.html - bat-mtlp-8: NOTRUN -> [SKIP][175] ([i915#6621]) [175]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-mtlp-8/igt@i915_pm_rps@basic-api.html * igt@kms_addfb_basic@addfb25-x-tiled-mismatch-legacy: - bat-dg2-11: NOTRUN -> [SKIP][176] ([i915#4212]) +7 other tests skip [176]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-dg2-11/igt@kms_addfb_basic@addfb25-x-tiled-mismatch-legacy.html * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy: - bat-mtlp-8: NOTRUN -> [SKIP][177] ([i915#5190]) [177]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-mtlp-8/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html - bat-dg2-11: NOTRUN -> [SKIP][178] ([i915#5190]) [178]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-dg2-11/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html * igt@kms_addfb_basic@basic-y-tiled-legacy: - bat-mtlp-8: NOTRUN -> [SKIP][179] ([i915#4212]) +8 other tests skip [179]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-mtlp-8/igt@kms_addfb_basic@basic-y-tiled-legacy.html - bat-dg2-11: NOTRUN -> [SKIP][180] ([i915#4215] / [i915#5190]) [180]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-dg2-11/igt@kms_addfb_basic@basic-y-tiled-legacy.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic: - bat-dg2-11: NOTRUN -> [SKIP][181] ([i915#4103] / [i915#4213]) +1 other test skip [181]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-dg2-11/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy: - bat-mtlp-8: NOTRUN -> [SKIP][182] ([i915#4213]) +1 other test skip [182]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-mtlp-8/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html * igt@kms_dsc@dsc-basic: - bat-dg2-11: NOTRUN -> [SKIP][183] ([i915#3555] / [i915#3840]) [183]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-dg2-11/igt@kms_dsc@dsc-basic.html - fi-kbl-7567u: NOTRUN -> [SKIP][184] +10 other tests skip [184]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-kbl-7567u/igt@kms_dsc@dsc-basic.html - bat-mtlp-8: NOTRUN -> [SKIP][185] ([i915#3555] / [i915#3840] / [i915#9159]) [185]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-mtlp-8/igt@kms_dsc@dsc-basic.html * igt@kms_pm_backlight@basic-brightness: - bat-dg2-11: NOTRUN -> [SKIP][186] ([i915#5354]) [186]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-dg2-11/igt@kms_pm_backlight@basic-brightness.html - fi-cfl-8109u: NOTRUN -> [SKIP][187] +10 other tests skip [187]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/fi-cfl-8109u/igt@kms_pm_backlight@basic-brightness.html * igt@kms_psr@psr-primary-mmap-gtt@edp-1: - bat-mtlp-8: NOTRUN -> [SKIP][188] ([i915#4077] / [i915#9688]) [188]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-mtlp-8/igt@kms_psr@psr-primary-mmap-gtt@edp-1.html * igt@kms_psr@psr-sprite-plane-onoff: - bat-dg2-11: NOTRUN -> [SKIP][189] ([i915#1072] / [i915#9732]) +3 other tests skip [189]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-dg2-11/igt@kms_psr@psr-sprite-plane-onoff.html * igt@kms_setmode@basic-clone-single-crtc: - bat-dg2-11: NOTRUN -> [SKIP][190] ([i915#3555]) [190]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-dg2-11/igt@kms_setmode@basic-clone-single-crtc.html - bat-mtlp-8: NOTRUN -> [SKIP][191] ([i915#3555] / [i915#8809]) [191]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-mtlp-8/igt@kms_setmode@basic-clone-single-crtc.html * igt@prime_vgem@basic-fence-flip: - bat-dg2-11: NOTRUN -> [SKIP][192] ([i915#3708]) [192]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-dg2-11/igt@prime_vgem@basic-fence-flip.html * igt@prime_vgem@basic-fence-mmap: - bat-dg2-11: NOTRUN -> [SKIP][193] ([i915#3708] / [i915#4077]) +1 other test skip [193]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-dg2-11/igt@prime_vgem@basic-fence-mmap.html - bat-mtlp-8: NOTRUN -> [SKIP][194] ([i915#3708] / [i915#4077]) +1 other test skip [194]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-mtlp-8/igt@prime_vgem@basic-fence-mmap.html * igt@prime_vgem@basic-fence-read: - bat-mtlp-8: NOTRUN -> [SKIP][195] ([i915#3708]) +1 other test skip [195]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-mtlp-8/igt@prime_vgem@basic-fence-read.html * igt@prime_vgem@basic-read: - bat-dg2-11: NOTRUN -> [SKIP][196] ([i915#3291] / [i915#3708]) +2 other tests skip [196]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-dg2-11/igt@prime_vgem@basic-read.html * igt@prime_vgem@basic-write: - bat-mtlp-8: NOTRUN -> [SKIP][197] ([i915#10216] / [i915#3708]) [197]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/bat-mtlp-8/igt@prime_vgem@basic-write.html [i915#10207]: https://gitlab.freedesktop.org/drm/intel/issues/10207 [i915#10216]: https://gitlab.freedesktop.org/drm/intel/issues/10216 [i915#10687]: https://gitlab.freedesktop.org/drm/intel/issues/10687 [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072 [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190 [i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291 [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708 [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840 [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#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 [i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190 [i915#5274]: https://gitlab.freedesktop.org/drm/intel/issues/5274 [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354 [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621 [i915#8809]: https://gitlab.freedesktop.org/drm/intel/issues/8809 [i915#9159]: https://gitlab.freedesktop.org/drm/intel/issues/9159 [i915#9318]: https://gitlab.freedesktop.org/drm/intel/issues/9318 [i915#9688]: https://gitlab.freedesktop.org/drm/intel/issues/9688 [i915#9732]: https://gitlab.freedesktop.org/drm/intel/issues/9732 [i915#9792]: https://gitlab.freedesktop.org/drm/intel/issues/9792 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_7805 -> IGTPW_11001 CI-20190529: 20190529 CI_DRM_14561: 72c79c9b20ced92d5c10230bb50fca29c9f387f9 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_11001: 11001 IGT_7805: 7805 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11001/index.html [-- Attachment #2: Type: text/html, Size: 40026 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [i-g-t,1/3] lib/kms: Introduce struct igt_forced_connector 2024-04-10 15:02 [PATCH i-g-t 1/3] lib/kms: Introduce struct igt_forced_connector Ville Syrjala ` (3 preceding siblings ...) 2024-04-11 0:17 ` ✗ Fi.CI.BAT: " Patchwork @ 2024-04-11 6:14 ` Joshi, Kunal1 4 siblings, 0 replies; 11+ messages in thread From: Joshi, Kunal1 @ 2024-04-11 6:14 UTC (permalink / raw) To: Ville Syrjala, igt-dev On 4/10/2024 8:32 PM, Ville Syrjala wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > Give the forced_connector[] struct a proper type name, > and utilize it in various places to make the code > less messy. > > Cc: Kunal Joshi <kunal1.joshi@intel.com> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> LGTM Reviewed-by: Kunal Joshi <kunal1.joshi@intel.com> ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2024-04-11 14:51 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-04-10 15:02 [PATCH i-g-t 1/3] lib/kms: Introduce struct igt_forced_connector Ville Syrjala 2024-04-10 15:02 ` [PATCH i-g-t 2/3] lib/kms: Simplify force_connectors[] error handling Ville Syrjala 2024-04-11 6:15 ` [i-g-t,2/3] " Joshi, Kunal1 2024-04-11 8:25 ` [PATCH i-g-t 2/3] " Kamil Konieczny 2024-04-11 13:23 ` Ville Syrjälä 2024-04-10 15:02 ` [PATCH i-g-t 3/3] lib/kms: Generalize forced_connectors[] to handle arbitrary attributes Ville Syrjala 2024-04-11 7:47 ` [i-g-t,3/3] " Joshi, Kunal1 2024-04-11 14:51 ` Ville Syrjälä 2024-04-10 23:56 ` ✗ CI.xeBAT: failure for series starting with [i-g-t,1/3] lib/kms: Introduce struct igt_forced_connector Patchwork 2024-04-11 0:17 ` ✗ Fi.CI.BAT: " Patchwork 2024-04-11 6:14 ` Joshi, Kunal1
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox