* [PATCH 1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us()
@ 2025-07-02 22:34 Ville Syrjala
2025-07-02 22:34 ` [PATCH 2/4] iopoll: Avoid evaluating 'cond' twice in poll_timeout_us() Ville Syrjala
` (13 more replies)
0 siblings, 14 replies; 23+ messages in thread
From: Ville Syrjala @ 2025-07-02 22:34 UTC (permalink / raw)
To: linux-kernel
Cc: Jani Nikula, Lucas De Marchi, Dibin Moolakadan Subrahmanian,
Imre Deak, David Laight, Geert Uytterhoeven, Matt Wagantall,
Dejin Zheng, intel-gfx, intel-xe, Ville Syrjälä
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
While read_poll_timeout() & co. were originally introduced just
for simple I/O usage scenarios they have since been generalized to
be useful in more cases.
However the interface is very cumbersome to use in the general case.
Attempt to make it more flexible by combining the 'op', 'var' and
'args' parameter into just a single 'op' that the caller can fully
specify.
For example i915 has one case where one might currently
have to write something like:
ret = read_poll_timeout(drm_dp_dpcd_read_byte, err,
err || (status & mask),
0 * 1000, 200 * 1000, false,
aux, DP_FEC_STATUS, &status);
which is practically illegible, but with the adjusted macro
we do:
ret = poll_timeout_us(err = drm_dp_dpcd_read_byte(aux, DP_FEC_STATUS, &status),
err || (status & mask),
0 * 1000, 200 * 1000, false);
which much easier to understand.
One could even combine the 'op' and 'cond' parameters into
one, but that might make the caller a bit too unwieldly with
assignments and checks being done on the same statement.
This makes poll_timeout_us() closer to the i915 __wait_for()
macro, with the main difference being that __wait_for() uses
expenential backoff as opposed to the fixed polling interval
used by poll_timeout_us(). Eventually we might be able to switch
(at least most of) i915 to use poll_timeout_us().
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Dibin Moolakadan Subrahmanian <dibin.moolakadan.subrahmanian@intel.com>
Cc: Imre Deak <imre.deak@intel.com>
Cc: David Laight <david.laight.linux@gmail.com>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: Matt Wagantall <mattw@codeaurora.org>
Cc: Dejin Zheng <zhengdejin5@gmail.com>
Cc: intel-gfx@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
include/linux/iopoll.h | 110 +++++++++++++++++++++++++++++------------
1 file changed, 78 insertions(+), 32 deletions(-)
diff --git a/include/linux/iopoll.h b/include/linux/iopoll.h
index 91324c331a4b..0d8186d3df03 100644
--- a/include/linux/iopoll.h
+++ b/include/linux/iopoll.h
@@ -14,41 +14,38 @@
#include <linux/io.h>
/**
- * read_poll_timeout - Periodically poll an address until a condition is
- * met or a timeout occurs
- * @op: accessor function (takes @args as its arguments)
- * @val: Variable to read the value into
- * @cond: Break condition (usually involving @val)
- * @sleep_us: Maximum time to sleep between reads in us (0 tight-loops). Please
- * read usleep_range() function description for details and
+ * poll_timeout_us - Periodically poll and perform an operaion until
+ * a condition is met or a timeout occurs
+ *
+ * @op: Operation
+ * @cond: Break condition
+ * @sleep_us: Maximum time to sleep between operations in us (0 tight-loops).
+ * Please read usleep_range() function description for details and
* limitations.
* @timeout_us: Timeout in us, 0 means never timeout
- * @sleep_before_read: if it is true, sleep @sleep_us before read.
- * @args: arguments for @op poll
+ * @sleep_before_op: if it is true, sleep @sleep_us before operation.
*
* When available, you'll probably want to use one of the specialized
* macros defined below rather than this macro directly.
*
- * Returns: 0 on success and -ETIMEDOUT upon a timeout. In either
- * case, the last read value at @args is stored in @val. Must not
+ * Returns: 0 on success and -ETIMEDOUT upon a timeout. Must not
* be called from atomic context if sleep_us or timeout_us are used.
*/
-#define read_poll_timeout(op, val, cond, sleep_us, timeout_us, \
- sleep_before_read, args...) \
+#define poll_timeout_us(op, cond, sleep_us, timeout_us, sleep_before_op) \
({ \
u64 __timeout_us = (timeout_us); \
unsigned long __sleep_us = (sleep_us); \
ktime_t __timeout = ktime_add_us(ktime_get(), __timeout_us); \
might_sleep_if((__sleep_us) != 0); \
- if (sleep_before_read && __sleep_us) \
+ if ((sleep_before_op) && __sleep_us) \
usleep_range((__sleep_us >> 2) + 1, __sleep_us); \
for (;;) { \
- (val) = op(args); \
+ op; \
if (cond) \
break; \
if (__timeout_us && \
ktime_compare(ktime_get(), __timeout) > 0) { \
- (val) = op(args); \
+ op; \
break; \
} \
if (__sleep_us) \
@@ -59,17 +56,16 @@
})
/**
- * read_poll_timeout_atomic - Periodically poll an address until a condition is
- * met or a timeout occurs
- * @op: accessor function (takes @args as its arguments)
- * @val: Variable to read the value into
- * @cond: Break condition (usually involving @val)
- * @delay_us: Time to udelay between reads in us (0 tight-loops). Please
- * read udelay() function description for details and
+ * poll_timeout_us_atomic - Periodically poll and perform an operaion until
+ * a condition is met or a timeout occurs
+ *
+ * @op: Operation
+ * @cond: Break condition
+ * @sleep_us: Maximum time to sleep between operations in us (0 tight-loops).
+ * Please read usleep_range() function description for details and
* limitations.
* @timeout_us: Timeout in us, 0 means never timeout
- * @delay_before_read: if it is true, delay @delay_us before read.
- * @args: arguments for @op poll
+ * @delay_before_op: if it is true, delay @delay_us before operation.
*
* This macro does not rely on timekeeping. Hence it is safe to call even when
* timekeeping is suspended, at the expense of an underestimation of wall clock
@@ -78,27 +74,26 @@
* When available, you'll probably want to use one of the specialized
* macros defined below rather than this macro directly.
*
- * Returns: 0 on success and -ETIMEDOUT upon a timeout. In either
- * case, the last read value at @args is stored in @val.
+ * Returns: 0 on success and -ETIMEDOUT upon a timeout.
*/
-#define read_poll_timeout_atomic(op, val, cond, delay_us, timeout_us, \
- delay_before_read, args...) \
+#define poll_timeout_us_atomic(op, cond, delay_us, timeout_us, \
+ delay_before_op) \
({ \
u64 __timeout_us = (timeout_us); \
s64 __left_ns = __timeout_us * NSEC_PER_USEC; \
unsigned long __delay_us = (delay_us); \
u64 __delay_ns = __delay_us * NSEC_PER_USEC; \
- if (delay_before_read && __delay_us) { \
+ if ((delay_before_op) && __delay_us) { \
udelay(__delay_us); \
if (__timeout_us) \
__left_ns -= __delay_ns; \
} \
for (;;) { \
- (val) = op(args); \
+ op; \
if (cond) \
break; \
if (__timeout_us && __left_ns < 0) { \
- (val) = op(args); \
+ op; \
break; \
} \
if (__delay_us) { \
@@ -113,6 +108,57 @@
(cond) ? 0 : -ETIMEDOUT; \
})
+/**
+ * read_poll_timeout - Periodically poll an address until a condition is
+ * met or a timeout occurs
+ * @op: accessor function (takes @args as its arguments)
+ * @val: Variable to read the value into
+ * @cond: Break condition (usually involving @val)
+ * @sleep_us: Maximum time to sleep between reads in us (0 tight-loops). Please
+ * read usleep_range() function description for details and
+ * limitations.
+ * @timeout_us: Timeout in us, 0 means never timeout
+ * @sleep_before_read: if it is true, sleep @sleep_us before read.
+ * @args: arguments for @op poll
+ *
+ * When available, you'll probably want to use one of the specialized
+ * macros defined below rather than this macro directly.
+ *
+ * Returns: 0 on success and -ETIMEDOUT upon a timeout. In either
+ * case, the last read value at @args is stored in @val. Must not
+ * be called from atomic context if sleep_us or timeout_us are used.
+ */
+#define read_poll_timeout(op, val, cond, sleep_us, timeout_us, \
+ sleep_before_read, args...) \
+ poll_timeout_us((val) = op(args), cond, sleep_us, timeout_us, sleep_before_read)
+
+/**
+ * read_poll_timeout_atomic - Periodically poll an address until a condition is
+ * met or a timeout occurs
+ * @op: accessor function (takes @args as its arguments)
+ * @val: Variable to read the value into
+ * @cond: Break condition (usually involving @val)
+ * @delay_us: Time to udelay between reads in us (0 tight-loops). Please
+ * read udelay() function description for details and
+ * limitations.
+ * @timeout_us: Timeout in us, 0 means never timeout
+ * @delay_before_read: if it is true, delay @delay_us before read.
+ * @args: arguments for @op poll
+ *
+ * This macro does not rely on timekeeping. Hence it is safe to call even when
+ * timekeeping is suspended, at the expense of an underestimation of wall clock
+ * time, which is rather minimal with a non-zero delay_us.
+ *
+ * When available, you'll probably want to use one of the specialized
+ * macros defined below rather than this macro directly.
+ *
+ * Returns: 0 on success and -ETIMEDOUT upon a timeout. In either
+ * case, the last read value at @args is stored in @val.
+ */
+#define read_poll_timeout_atomic(op, val, cond, sleep_us, timeout_us, \
+ sleep_before_read, args...) \
+ poll_timeout_us_atomic((val) = op(args), cond, sleep_us, timeout_us, sleep_before_read)
+
/**
* readx_poll_timeout - Periodically poll an address until a condition is met or a timeout occurs
* @op: accessor function (takes @addr as its only argument)
--
2.49.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 2/4] iopoll: Avoid evaluating 'cond' twice in poll_timeout_us()
2025-07-02 22:34 [PATCH 1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us() Ville Syrjala
@ 2025-07-02 22:34 ` Ville Syrjala
2025-07-03 11:55 ` Jani Nikula
2025-07-02 22:34 ` [PATCH 3/4] iopoll: Reorder the timeout handling " Ville Syrjala
` (12 subsequent siblings)
13 siblings, 1 reply; 23+ messages in thread
From: Ville Syrjala @ 2025-07-02 22:34 UTC (permalink / raw)
To: linux-kernel
Cc: Jani Nikula, Lucas De Marchi, Dibin Moolakadan Subrahmanian,
Imre Deak, David Laight, Geert Uytterhoeven, Matt Wagantall,
Dejin Zheng, intel-gfx, intel-xe, Ville Syrjälä
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Currently poll_timeout_us() evaluates 'cond' twice at the end
of the success case. This not desirable in case 'cond' itself
is expensive.
Avoid the double evaluation by tracking the return value in
a variable. Need to use a triple undescore '___ret' name to
avoid a conflict with an existing double undescore '__ret'
variable in the regmap code.
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Dibin Moolakadan Subrahmanian <dibin.moolakadan.subrahmanian@intel.com>
Cc: Imre Deak <imre.deak@intel.com>
Cc: David Laight <david.laight.linux@gmail.com>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: Matt Wagantall <mattw@codeaurora.org>
Cc: Dejin Zheng <zhengdejin5@gmail.com>
Cc: intel-gfx@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
include/linux/iopoll.h | 22 ++++++++++++++++++----
1 file changed, 18 insertions(+), 4 deletions(-)
diff --git a/include/linux/iopoll.h b/include/linux/iopoll.h
index 0d8186d3df03..69296e6adbf3 100644
--- a/include/linux/iopoll.h
+++ b/include/linux/iopoll.h
@@ -36,23 +36,30 @@
u64 __timeout_us = (timeout_us); \
unsigned long __sleep_us = (sleep_us); \
ktime_t __timeout = ktime_add_us(ktime_get(), __timeout_us); \
+ int ___ret; \
might_sleep_if((__sleep_us) != 0); \
if ((sleep_before_op) && __sleep_us) \
usleep_range((__sleep_us >> 2) + 1, __sleep_us); \
for (;;) { \
op; \
- if (cond) \
+ if (cond) { \
+ ___ret = 0; \
break; \
+ } \
if (__timeout_us && \
ktime_compare(ktime_get(), __timeout) > 0) { \
op; \
+ if (cond) \
+ ___ret = 0; \
+ else \
+ ___ret = -ETIMEDOUT; \
break; \
} \
if (__sleep_us) \
usleep_range((__sleep_us >> 2) + 1, __sleep_us); \
cpu_relax(); \
} \
- (cond) ? 0 : -ETIMEDOUT; \
+ ___ret; \
})
/**
@@ -83,6 +90,7 @@
s64 __left_ns = __timeout_us * NSEC_PER_USEC; \
unsigned long __delay_us = (delay_us); \
u64 __delay_ns = __delay_us * NSEC_PER_USEC; \
+ int ___ret; \
if ((delay_before_op) && __delay_us) { \
udelay(__delay_us); \
if (__timeout_us) \
@@ -90,10 +98,16 @@
} \
for (;;) { \
op; \
- if (cond) \
+ if (cond) { \
+ ___ret = 0; \
break; \
+ } \
if (__timeout_us && __left_ns < 0) { \
op; \
+ if (cond) \
+ ___ret = 0; \
+ else \
+ ___ret = -ETIMEDOUT; \
break; \
} \
if (__delay_us) { \
@@ -105,7 +119,7 @@
if (__timeout_us) \
__left_ns--; \
} \
- (cond) ? 0 : -ETIMEDOUT; \
+ ___ret; \
})
/**
--
2.49.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 3/4] iopoll: Reorder the timeout handling in poll_timeout_us()
2025-07-02 22:34 [PATCH 1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us() Ville Syrjala
2025-07-02 22:34 ` [PATCH 2/4] iopoll: Avoid evaluating 'cond' twice in poll_timeout_us() Ville Syrjala
@ 2025-07-02 22:34 ` Ville Syrjala
2025-07-03 12:00 ` Jani Nikula
2025-07-02 22:34 ` [PATCH 4/4] DO-NOT-MERGE: drm/i915: Use poll_timeout_us() Ville Syrjala
` (11 subsequent siblings)
13 siblings, 1 reply; 23+ messages in thread
From: Ville Syrjala @ 2025-07-02 22:34 UTC (permalink / raw)
To: linux-kernel
Cc: Jani Nikula, Lucas De Marchi, Dibin Moolakadan Subrahmanian,
Imre Deak, David Laight, Geert Uytterhoeven, Matt Wagantall,
Dejin Zheng, intel-gfx, intel-xe, Ville Syrjälä
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Currently poll_timeout_us() evaluates 'op' and 'cond' twice
within the loop, once at the start, and a second time after
the timeout check. While it's probably not a big deal to do
it twice almost back to back, it does make the macro a bit messy.
Simplify the implementation to evaluate the timeout at the
very start, then follow up with 'op'/'cond', and finally
check if the timeout did in fact happen or not.
For good measure throw in a compiler barrier between the timeout
and 'op'/'cond' evaluations to make sure the compiler can't reoder
the operations (which could cause false positive timeouts).
The similar i915 __wait_for() macro already has the barrier, though
there it is between the 'op' and 'cond' evaluations, which seems
like it could still allow 'op' and the timeout evaluations to get
reordered incorrectly. I suppose the ktime_get() might itself act
as a sufficient barrier here, but better safe than sorry I guess.
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Dibin Moolakadan Subrahmanian <dibin.moolakadan.subrahmanian@intel.com>
Cc: Imre Deak <imre.deak@intel.com>
Cc: David Laight <david.laight.linux@gmail.com>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: Matt Wagantall <mattw@codeaurora.org>
Cc: Dejin Zheng <zhengdejin5@gmail.com>
Cc: intel-gfx@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
include/linux/iopoll.h | 24 +++++++++++-------------
1 file changed, 11 insertions(+), 13 deletions(-)
diff --git a/include/linux/iopoll.h b/include/linux/iopoll.h
index 69296e6adbf3..0e0940a60fdb 100644
--- a/include/linux/iopoll.h
+++ b/include/linux/iopoll.h
@@ -41,18 +41,17 @@
if ((sleep_before_op) && __sleep_us) \
usleep_range((__sleep_us >> 2) + 1, __sleep_us); \
for (;;) { \
+ bool __expired = __timeout_us && \
+ ktime_compare(ktime_get(), __timeout) > 0; \
+ /* guarantee 'op' and 'cond' are evaluated after timeout expired */ \
+ barrier(); \
op; \
if (cond) { \
___ret = 0; \
break; \
} \
- if (__timeout_us && \
- ktime_compare(ktime_get(), __timeout) > 0) { \
- op; \
- if (cond) \
- ___ret = 0; \
- else \
- ___ret = -ETIMEDOUT; \
+ if (__expired) { \
+ ___ret = -ETIMEDOUT; \
break; \
} \
if (__sleep_us) \
@@ -97,17 +96,16 @@
__left_ns -= __delay_ns; \
} \
for (;;) { \
+ bool __expired = __timeout_us && __left_ns < 0; \
+ /* guarantee 'op' and 'cond' are evaluated after timeout expired */ \
+ barrier(); \
op; \
if (cond) { \
___ret = 0; \
break; \
} \
- if (__timeout_us && __left_ns < 0) { \
- op; \
- if (cond) \
- ___ret = 0; \
- else \
- ___ret = -ETIMEDOUT; \
+ if (__expired) { \
+ ___ret = -ETIMEDOUT; \
break; \
} \
if (__delay_us) { \
--
2.49.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 4/4] DO-NOT-MERGE: drm/i915: Use poll_timeout_us()
2025-07-02 22:34 [PATCH 1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us() Ville Syrjala
2025-07-02 22:34 ` [PATCH 2/4] iopoll: Avoid evaluating 'cond' twice in poll_timeout_us() Ville Syrjala
2025-07-02 22:34 ` [PATCH 3/4] iopoll: Reorder the timeout handling " Ville Syrjala
@ 2025-07-02 22:34 ` Ville Syrjala
2025-07-03 12:12 ` Jani Nikula
2025-07-02 23:05 ` ✗ CI.checkpatch: warning for series starting with [1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us() Patchwork
` (10 subsequent siblings)
13 siblings, 1 reply; 23+ messages in thread
From: Ville Syrjala @ 2025-07-02 22:34 UTC (permalink / raw)
To: linux-kernel
Cc: Jani Nikula, Lucas De Marchi, Dibin Moolakadan Subrahmanian,
Imre Deak, David Laight, Geert Uytterhoeven, Matt Wagantall,
Dejin Zheng, intel-gfx, intel-xe, Ville Syrjälä
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Make sure poll_timeout_us() works by using it in i915
instead of the custom __wait_for().
Remaining difference between two:
| poll_timeout_us() | __wait_for()
---------------------------------------------------
backoff | fixed interval | exponential
usleep_range() | N/4+1 to N | N to N*2
clock | MONOTONIC | MONOTONIC_RAW
Just a test hack for now, proper conversion probably
needs actual thought.
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Dibin Moolakadan Subrahmanian <dibin.moolakadan.subrahmanian@intel.com>
Cc: Imre Deak <imre.deak@intel.com>
Cc: David Laight <david.laight.linux@gmail.com>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: Matt Wagantall <mattw@codeaurora.org>
Cc: Dejin Zheng <zhengdejin5@gmail.com>
Cc: intel-gfx@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/i915_utils.h | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/i915_utils.h b/drivers/gpu/drm/i915/i915_utils.h
index f7fb40cfdb70..8509d1de1901 100644
--- a/drivers/gpu/drm/i915/i915_utils.h
+++ b/drivers/gpu/drm/i915/i915_utils.h
@@ -32,6 +32,7 @@
#include <linux/types.h>
#include <linux/workqueue.h>
#include <linux/sched/clock.h>
+#include <linux/iopoll.h>
#ifdef CONFIG_X86
#include <asm/hypervisor.h>
@@ -238,7 +239,7 @@ wait_remaining_ms_from_jiffies(unsigned long timestamp_jiffies, int to_wait_ms)
* timeout could be due to preemption or similar and we've never had a chance to
* check the condition before the timeout.
*/
-#define __wait_for(OP, COND, US, Wmin, Wmax) ({ \
+#define __wait_for_old(OP, COND, US, Wmin, Wmax) ({ \
const ktime_t end__ = ktime_add_ns(ktime_get_raw(), 1000ll * (US)); \
long wait__ = (Wmin); /* recommended min for usleep is 10 us */ \
int ret__; \
@@ -263,6 +264,8 @@ wait_remaining_ms_from_jiffies(unsigned long timestamp_jiffies, int to_wait_ms)
ret__; \
})
+#define __wait_for(OP, COND, US, Wmin, Wmax) \
+ poll_timeout_us(OP, COND, (Wmin), (US), false)
#define _wait_for(COND, US, Wmin, Wmax) __wait_for(, (COND), (US), (Wmin), \
(Wmax))
#define wait_for(COND, MS) _wait_for((COND), (MS) * 1000, 10, 1000)
--
2.49.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* ✗ CI.checkpatch: warning for series starting with [1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us()
2025-07-02 22:34 [PATCH 1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us() Ville Syrjala
` (2 preceding siblings ...)
2025-07-02 22:34 ` [PATCH 4/4] DO-NOT-MERGE: drm/i915: Use poll_timeout_us() Ville Syrjala
@ 2025-07-02 23:05 ` Patchwork
2025-07-02 23:06 ` ✓ CI.KUnit: success " Patchwork
` (9 subsequent siblings)
13 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2025-07-02 23:05 UTC (permalink / raw)
To: Ville Syrjala; +Cc: intel-xe
== Series Details ==
Series: series starting with [1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us()
URL : https://patchwork.freedesktop.org/series/151093/
State : warning
== Summary ==
+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt
Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master
f8ff75ae1d2127635239b134695774ed4045d05b
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit d35fdbf71ae71bd066d09ea6ac5fd2e82a462f5b
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date: Thu Jul 3 01:34:39 2025 +0300
DO-NOT-MERGE: drm/i915: Use poll_timeout_us()
Make sure poll_timeout_us() works by using it in i915
instead of the custom __wait_for().
Remaining difference between two:
| poll_timeout_us() | __wait_for()
---------------------------------------------------
backoff | fixed interval | exponential
usleep_range() | N/4+1 to N | N to N*2
clock | MONOTONIC | MONOTONIC_RAW
Just a test hack for now, proper conversion probably
needs actual thought.
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Dibin Moolakadan Subrahmanian <dibin.moolakadan.subrahmanian@intel.com>
Cc: Imre Deak <imre.deak@intel.com>
Cc: David Laight <david.laight.linux@gmail.com>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: Matt Wagantall <mattw@codeaurora.org>
Cc: Dejin Zheng <zhengdejin5@gmail.com>
Cc: intel-gfx@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
+ /mt/dim checkpatch 339a9f6176f6e176caa8e631859c73b34ffb07d6 drm-intel
280630be102a iopoll: Generalize read_poll_timeout() into poll_timeout_us()
-:26: WARNING:COMMIT_LOG_LONG_LINE: Prefer a maximum 75 chars per line (possible unwrapped commit description?)
#26:
ret = poll_timeout_us(err = drm_dp_dpcd_read_byte(aux, DP_FEC_STATUS, &status),
-:92: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'op' - possible side-effects?
#92: FILE: include/linux/iopoll.h:34:
+#define poll_timeout_us(op, cond, sleep_us, timeout_us, sleep_before_op) \
({ \
u64 __timeout_us = (timeout_us); \
unsigned long __sleep_us = (sleep_us); \
ktime_t __timeout = ktime_add_us(ktime_get(), __timeout_us); \
might_sleep_if((__sleep_us) != 0); \
+ if ((sleep_before_op) && __sleep_us) \
usleep_range((__sleep_us >> 2) + 1, __sleep_us); \
for (;;) { \
+ op; \
if (cond) \
break; \
if (__timeout_us && \
ktime_compare(ktime_get(), __timeout) > 0) { \
+ op; \
break; \
} \
if (__sleep_us) \
-:149: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'op' - possible side-effects?
#149: FILE: include/linux/iopoll.h:79:
+#define poll_timeout_us_atomic(op, cond, delay_us, timeout_us, \
+ delay_before_op) \
({ \
u64 __timeout_us = (timeout_us); \
s64 __left_ns = __timeout_us * NSEC_PER_USEC; \
unsigned long __delay_us = (delay_us); \
u64 __delay_ns = __delay_us * NSEC_PER_USEC; \
+ if ((delay_before_op) && __delay_us) { \
udelay(__delay_us); \
if (__timeout_us) \
__left_ns -= __delay_ns; \
} \
for (;;) { \
+ op; \
if (cond) \
break; \
if (__timeout_us && __left_ns < 0) { \
+ op; \
break; \
} \
if (__delay_us) { \
total: 0 errors, 1 warnings, 2 checks, 169 lines checked
de595a165e27 iopoll: Avoid evaluating 'cond' twice in poll_timeout_us()
54fe111cefb4 iopoll: Reorder the timeout handling in poll_timeout_us()
d35fdbf71ae7 DO-NOT-MERGE: drm/i915: Use poll_timeout_us()
-:52: CHECK:CAMELCASE: Avoid CamelCase: <Wmin>
#52: FILE: drivers/gpu/drm/i915/i915_utils.h:242:
+#define __wait_for_old(OP, COND, US, Wmin, Wmax) ({ \
-:52: CHECK:CAMELCASE: Avoid CamelCase: <Wmax>
#52: FILE: drivers/gpu/drm/i915/i915_utils.h:242:
+#define __wait_for_old(OP, COND, US, Wmin, Wmax) ({ \
-:52: WARNING:MACRO_ARG_UNUSED: Argument 'OP' is not used in function-like macro
#52: FILE: drivers/gpu/drm/i915/i915_utils.h:242:
+#define __wait_for_old(OP, COND, US, Wmin, Wmax) ({ \
const ktime_t end__ = ktime_add_ns(ktime_get_raw(), 1000ll * (US)); \
long wait__ = (Wmin); /* recommended min for usleep is 10 us */ \
int ret__; \
-:52: WARNING:MACRO_ARG_UNUSED: Argument 'COND' is not used in function-like macro
#52: FILE: drivers/gpu/drm/i915/i915_utils.h:242:
+#define __wait_for_old(OP, COND, US, Wmin, Wmax) ({ \
const ktime_t end__ = ktime_add_ns(ktime_get_raw(), 1000ll * (US)); \
long wait__ = (Wmin); /* recommended min for usleep is 10 us */ \
int ret__; \
-:52: WARNING:MACRO_ARG_UNUSED: Argument 'Wmax' is not used in function-like macro
#52: FILE: drivers/gpu/drm/i915/i915_utils.h:242:
+#define __wait_for_old(OP, COND, US, Wmin, Wmax) ({ \
const ktime_t end__ = ktime_add_ns(ktime_get_raw(), 1000ll * (US)); \
long wait__ = (Wmin); /* recommended min for usleep is 10 us */ \
int ret__; \
-:60: WARNING:MACRO_ARG_UNUSED: Argument 'Wmax' is not used in function-like macro
#60: FILE: drivers/gpu/drm/i915/i915_utils.h:267:
+#define __wait_for(OP, COND, US, Wmin, Wmax) \
+ poll_timeout_us(OP, COND, (Wmin), (US), false)
total: 0 errors, 4 warnings, 2 checks, 23 lines checked
^ permalink raw reply [flat|nested] 23+ messages in thread
* ✓ CI.KUnit: success for series starting with [1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us()
2025-07-02 22:34 [PATCH 1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us() Ville Syrjala
` (3 preceding siblings ...)
2025-07-02 23:05 ` ✗ CI.checkpatch: warning for series starting with [1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us() Patchwork
@ 2025-07-02 23:06 ` Patchwork
2025-07-02 23:58 ` ✓ Xe.CI.BAT: " Patchwork
` (8 subsequent siblings)
13 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2025-07-02 23:06 UTC (permalink / raw)
To: Ville Syrjala; +Cc: intel-xe
== Series Details ==
Series: series starting with [1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us()
URL : https://patchwork.freedesktop.org/series/151093/
State : success
== Summary ==
+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[23:05:06] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[23:05:10] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[23:05:37] Starting KUnit Kernel (1/1)...
[23:05:37] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[23:05:37] ================== guc_buf (11 subtests) ===================
[23:05:37] [PASSED] test_smallest
[23:05:37] [PASSED] test_largest
[23:05:37] [PASSED] test_granular
[23:05:37] [PASSED] test_unique
[23:05:37] [PASSED] test_overlap
[23:05:37] [PASSED] test_reusable
[23:05:37] [PASSED] test_too_big
[23:05:37] [PASSED] test_flush
[23:05:37] [PASSED] test_lookup
[23:05:37] [PASSED] test_data
[23:05:37] [PASSED] test_class
[23:05:37] ===================== [PASSED] guc_buf =====================
[23:05:37] =================== guc_dbm (7 subtests) ===================
[23:05:37] [PASSED] test_empty
[23:05:37] [PASSED] test_default
[23:05:37] ======================== test_size ========================
[23:05:37] [PASSED] 4
[23:05:37] [PASSED] 8
[23:05:37] [PASSED] 32
[23:05:37] [PASSED] 256
[23:05:37] ==================== [PASSED] test_size ====================
[23:05:37] ======================= test_reuse ========================
[23:05:37] [PASSED] 4
[23:05:37] [PASSED] 8
[23:05:37] [PASSED] 32
[23:05:37] [PASSED] 256
[23:05:37] =================== [PASSED] test_reuse ====================
[23:05:37] =================== test_range_overlap ====================
[23:05:37] [PASSED] 4
[23:05:37] [PASSED] 8
[23:05:37] [PASSED] 32
[23:05:37] [PASSED] 256
[23:05:37] =============== [PASSED] test_range_overlap ================
[23:05:37] =================== test_range_compact ====================
[23:05:37] [PASSED] 4
[23:05:37] [PASSED] 8
[23:05:37] [PASSED] 32
[23:05:37] [PASSED] 256
[23:05:37] =============== [PASSED] test_range_compact ================
[23:05:37] ==================== test_range_spare =====================
[23:05:37] [PASSED] 4
[23:05:37] [PASSED] 8
[23:05:37] [PASSED] 32
[23:05:37] [PASSED] 256
[23:05:37] ================ [PASSED] test_range_spare =================
[23:05:37] ===================== [PASSED] guc_dbm =====================
[23:05:37] =================== guc_idm (6 subtests) ===================
[23:05:37] [PASSED] bad_init
[23:05:37] [PASSED] no_init
[23:05:37] [PASSED] init_fini
[23:05:37] [PASSED] check_used
[23:05:37] [PASSED] check_quota
[23:05:37] [PASSED] check_all
[23:05:37] ===================== [PASSED] guc_idm =====================
[23:05:37] ================== no_relay (3 subtests) ===================
[23:05:37] [PASSED] xe_drops_guc2pf_if_not_ready
[23:05:37] [PASSED] xe_drops_guc2vf_if_not_ready
[23:05:37] [PASSED] xe_rejects_send_if_not_ready
[23:05:37] ==================== [PASSED] no_relay =====================
[23:05:37] ================== pf_relay (14 subtests) ==================
[23:05:37] [PASSED] pf_rejects_guc2pf_too_short
[23:05:37] [PASSED] pf_rejects_guc2pf_too_long
[23:05:37] [PASSED] pf_rejects_guc2pf_no_payload
[23:05:37] [PASSED] pf_fails_no_payload
[23:05:37] [PASSED] pf_fails_bad_origin
[23:05:37] [PASSED] pf_fails_bad_type
[23:05:37] [PASSED] pf_txn_reports_error
[23:05:37] [PASSED] pf_txn_sends_pf2guc
[23:05:37] [PASSED] pf_sends_pf2guc
[23:05:37] [SKIPPED] pf_loopback_nop
[23:05:37] [SKIPPED] pf_loopback_echo
[23:05:37] [SKIPPED] pf_loopback_fail
[23:05:37] [SKIPPED] pf_loopback_busy
[23:05:37] [SKIPPED] pf_loopback_retry
[23:05:37] ==================== [PASSED] pf_relay =====================
[23:05:37] ================== vf_relay (3 subtests) ===================
[23:05:37] [PASSED] vf_rejects_guc2vf_too_short
[23:05:37] [PASSED] vf_rejects_guc2vf_too_long
[23:05:37] [PASSED] vf_rejects_guc2vf_no_payload
[23:05:37] ==================== [PASSED] vf_relay =====================
[23:05:37] ================= pf_service (11 subtests) =================
[23:05:37] [PASSED] pf_negotiate_any
[23:05:37] [PASSED] pf_negotiate_base_match
[23:05:37] [PASSED] pf_negotiate_base_newer
[23:05:37] [PASSED] pf_negotiate_base_next
[23:05:37] [SKIPPED] pf_negotiate_base_older
[23:05:37] [PASSED] pf_negotiate_base_prev
[23:05:37] [PASSED] pf_negotiate_latest_match
[23:05:37] [PASSED] pf_negotiate_latest_newer
[23:05:37] [PASSED] pf_negotiate_latest_next
[23:05:37] [SKIPPED] pf_negotiate_latest_older
[23:05:37] [SKIPPED] pf_negotiate_latest_prev
[23:05:37] =================== [PASSED] pf_service ====================
[23:05:37] ===================== lmtt (1 subtest) =====================
[23:05:37] ======================== test_ops =========================
[23:05:37] [PASSED] 2-level
[23:05:37] [PASSED] multi-level
[23:05:37] ==================== [PASSED] test_ops =====================
[23:05:37] ====================== [PASSED] lmtt =======================
[23:05:37] =================== xe_mocs (2 subtests) ===================
[23:05:37] ================ xe_live_mocs_kernel_kunit ================
[23:05:37] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[23:05:37] ================ xe_live_mocs_reset_kunit =================
[23:05:37] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[23:05:37] ==================== [SKIPPED] xe_mocs =====================
[23:05:37] ================= xe_migrate (2 subtests) ==================
[23:05:37] ================= xe_migrate_sanity_kunit =================
[23:05:37] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[23:05:37] ================== xe_validate_ccs_kunit ==================
[23:05:37] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[23:05:37] =================== [SKIPPED] xe_migrate ===================
[23:05:37] ================== xe_dma_buf (1 subtest) ==================
[23:05:37] ==================== xe_dma_buf_kunit =====================
[23:05:37] ================ [SKIPPED] xe_dma_buf_kunit ================
[23:05:37] =================== [SKIPPED] xe_dma_buf ===================
[23:05:37] ================= xe_bo_shrink (1 subtest) =================
[23:05:37] =================== xe_bo_shrink_kunit ====================
[23:05:37] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[23:05:37] ================== [SKIPPED] xe_bo_shrink ==================
[23:05:37] ==================== xe_bo (2 subtests) ====================
[23:05:37] ================== xe_ccs_migrate_kunit ===================
[23:05:37] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[23:05:37] ==================== xe_bo_evict_kunit ====================
[23:05:37] =============== [SKIPPED] xe_bo_evict_kunit ================
[23:05:37] ===================== [SKIPPED] xe_bo ======================
[23:05:37] ==================== args (11 subtests) ====================
[23:05:37] [PASSED] count_args_test
[23:05:37] [PASSED] call_args_example
[23:05:37] [PASSED] call_args_test
[23:05:37] [PASSED] drop_first_arg_example
[23:05:37] [PASSED] drop_first_arg_test
[23:05:37] [PASSED] first_arg_example
[23:05:37] [PASSED] first_arg_test
[23:05:37] [PASSED] last_arg_example
[23:05:37] [PASSED] last_arg_test
[23:05:37] [PASSED] pick_arg_example
[23:05:37] [PASSED] sep_comma_example
[23:05:37] ====================== [PASSED] args =======================
[23:05:37] =================== xe_pci (2 subtests) ====================
[23:05:37] ==================== check_graphics_ip ====================
[23:05:37] [PASSED] 12.70 Xe_LPG
[23:05:37] [PASSED] 12.71 Xe_LPG
[23:05:37] [PASSED] 12.74 Xe_LPG+
[23:05:37] [PASSED] 20.01 Xe2_HPG
[23:05:37] [PASSED] 20.02 Xe2_HPG
[23:05:37] [PASSED] 20.04 Xe2_LPG
[23:05:37] [PASSED] 30.00 Xe3_LPG
[23:05:37] [PASSED] 30.01 Xe3_LPG
[23:05:37] [PASSED] 30.03 Xe3_LPG
[23:05:37] ================ [PASSED] check_graphics_ip ================
[23:05:37] ===================== check_media_ip ======================
[23:05:37] [PASSED] 13.00 Xe_LPM+
[23:05:37] [PASSED] 13.01 Xe2_HPM
[23:05:37] [PASSED] 20.00 Xe2_LPM
[23:05:37] [PASSED] 30.00 Xe3_LPM
[23:05:37] [PASSED] 30.02 Xe3_LPM
stty: 'standard input': Inappropriate ioctl for device
[23:05:37] ================= [PASSED] check_media_ip ==================
[23:05:37] ===================== [PASSED] xe_pci ======================
[23:05:37] =================== xe_rtp (2 subtests) ====================
[23:05:37] =============== xe_rtp_process_to_sr_tests ================
[23:05:37] [PASSED] coalesce-same-reg
[23:05:37] [PASSED] no-match-no-add
[23:05:37] [PASSED] match-or
[23:05:37] [PASSED] match-or-xfail
[23:05:37] [PASSED] no-match-no-add-multiple-rules
[23:05:37] [PASSED] two-regs-two-entries
[23:05:37] [PASSED] clr-one-set-other
[23:05:37] [PASSED] set-field
[23:05:37] [PASSED] conflict-duplicate
[23:05:37] [PASSED] conflict-not-disjoint
[23:05:37] [PASSED] conflict-reg-type
[23:05:37] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[23:05:37] ================== xe_rtp_process_tests ===================
[23:05:37] [PASSED] active1
[23:05:37] [PASSED] active2
[23:05:37] [PASSED] active-inactive
[23:05:37] [PASSED] inactive-active
[23:05:37] [PASSED] inactive-1st_or_active-inactive
[23:05:37] [PASSED] inactive-2nd_or_active-inactive
[23:05:37] [PASSED] inactive-last_or_active-inactive
[23:05:37] [PASSED] inactive-no_or_active-inactive
[23:05:37] ============== [PASSED] xe_rtp_process_tests ===============
[23:05:37] ===================== [PASSED] xe_rtp ======================
[23:05:37] ==================== xe_wa (1 subtest) =====================
[23:05:37] ======================== xe_wa_gt =========================
[23:05:37] [PASSED] TIGERLAKE (B0)
[23:05:37] [PASSED] DG1 (A0)
[23:05:37] [PASSED] DG1 (B0)
[23:05:37] [PASSED] ALDERLAKE_S (A0)
[23:05:37] [PASSED] ALDERLAKE_S (B0)
[23:05:37] [PASSED] ALDERLAKE_S (C0)
[23:05:37] [PASSED] ALDERLAKE_S (D0)
[23:05:37] [PASSED] ALDERLAKE_P (A0)
[23:05:37] [PASSED] ALDERLAKE_P (B0)
[23:05:37] [PASSED] ALDERLAKE_P (C0)
[23:05:37] [PASSED] ALDERLAKE_S_RPLS (D0)
[23:05:37] [PASSED] ALDERLAKE_P_RPLU (E0)
[23:05:37] [PASSED] DG2_G10 (C0)
[23:05:37] [PASSED] DG2_G11 (B1)
[23:05:37] [PASSED] DG2_G12 (A1)
[23:05:37] [PASSED] METEORLAKE (g:A0, m:A0)
[23:05:37] [PASSED] METEORLAKE (g:A0, m:A0)
[23:05:37] [PASSED] METEORLAKE (g:A0, m:A0)
[23:05:37] [PASSED] LUNARLAKE (g:A0, m:A0)
[23:05:37] [PASSED] LUNARLAKE (g:B0, m:A0)
[23:05:37] [PASSED] BATTLEMAGE (g:A0, m:A1)
[23:05:37] ==================== [PASSED] xe_wa_gt =====================
[23:05:37] ====================== [PASSED] xe_wa ======================
[23:05:37] ============================================================
[23:05:37] Testing complete. Ran 145 tests: passed: 129, skipped: 16
[23:05:37] Elapsed time: 31.164s total, 4.166s configuring, 26.682s building, 0.301s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[23:05:37] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[23:05:39] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[23:06:00] Starting KUnit Kernel (1/1)...
[23:06:00] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[23:06:00] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[23:06:00] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[23:06:00] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[23:06:00] =========== drm_validate_clone_mode (2 subtests) ===========
[23:06:00] ============== drm_test_check_in_clone_mode ===============
[23:06:00] [PASSED] in_clone_mode
[23:06:00] [PASSED] not_in_clone_mode
[23:06:00] ========== [PASSED] drm_test_check_in_clone_mode ===========
[23:06:00] =============== drm_test_check_valid_clones ===============
[23:06:00] [PASSED] not_in_clone_mode
[23:06:00] [PASSED] valid_clone
[23:06:00] [PASSED] invalid_clone
[23:06:00] =========== [PASSED] drm_test_check_valid_clones ===========
[23:06:00] ============= [PASSED] drm_validate_clone_mode =============
[23:06:00] ============= drm_validate_modeset (1 subtest) =============
[23:06:00] [PASSED] drm_test_check_connector_changed_modeset
[23:06:00] ============== [PASSED] drm_validate_modeset ===============
[23:06:00] ====== drm_test_bridge_get_current_state (2 subtests) ======
[23:06:00] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[23:06:00] [PASSED] drm_test_drm_bridge_get_current_state_legacy
[23:06:00] ======== [PASSED] drm_test_bridge_get_current_state ========
[23:06:00] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[23:06:00] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[23:06:00] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[23:06:00] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy
[23:06:00] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[23:06:00] ============== drm_bridge_alloc (2 subtests) ===============
[23:06:00] [PASSED] drm_test_drm_bridge_alloc_basic
[23:06:00] [PASSED] drm_test_drm_bridge_alloc_get_put
[23:06:00] ================ [PASSED] drm_bridge_alloc =================
[23:06:00] ================== drm_buddy (7 subtests) ==================
[23:06:00] [PASSED] drm_test_buddy_alloc_limit
[23:06:00] [PASSED] drm_test_buddy_alloc_optimistic
[23:06:00] [PASSED] drm_test_buddy_alloc_pessimistic
[23:06:00] [PASSED] drm_test_buddy_alloc_pathological
[23:06:00] [PASSED] drm_test_buddy_alloc_contiguous
[23:06:00] [PASSED] drm_test_buddy_alloc_clear
[23:06:00] [PASSED] drm_test_buddy_alloc_range_bias
[23:06:00] ==================== [PASSED] drm_buddy ====================
[23:06:00] ============= drm_cmdline_parser (40 subtests) =============
[23:06:00] [PASSED] drm_test_cmdline_force_d_only
[23:06:00] [PASSED] drm_test_cmdline_force_D_only_dvi
[23:06:00] [PASSED] drm_test_cmdline_force_D_only_hdmi
[23:06:00] [PASSED] drm_test_cmdline_force_D_only_not_digital
[23:06:00] [PASSED] drm_test_cmdline_force_e_only
[23:06:00] [PASSED] drm_test_cmdline_res
[23:06:00] [PASSED] drm_test_cmdline_res_vesa
[23:06:00] [PASSED] drm_test_cmdline_res_vesa_rblank
[23:06:00] [PASSED] drm_test_cmdline_res_rblank
[23:06:00] [PASSED] drm_test_cmdline_res_bpp
[23:06:00] [PASSED] drm_test_cmdline_res_refresh
[23:06:00] [PASSED] drm_test_cmdline_res_bpp_refresh
[23:06:00] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[23:06:00] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[23:06:00] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[23:06:00] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[23:06:00] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[23:06:00] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[23:06:00] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[23:06:00] [PASSED] drm_test_cmdline_res_margins_force_on
[23:06:00] [PASSED] drm_test_cmdline_res_vesa_margins
[23:06:00] [PASSED] drm_test_cmdline_name
[23:06:00] [PASSED] drm_test_cmdline_name_bpp
[23:06:00] [PASSED] drm_test_cmdline_name_option
[23:06:00] [PASSED] drm_test_cmdline_name_bpp_option
[23:06:00] [PASSED] drm_test_cmdline_rotate_0
[23:06:00] [PASSED] drm_test_cmdline_rotate_90
[23:06:00] [PASSED] drm_test_cmdline_rotate_180
[23:06:00] [PASSED] drm_test_cmdline_rotate_270
[23:06:00] [PASSED] drm_test_cmdline_hmirror
[23:06:00] [PASSED] drm_test_cmdline_vmirror
[23:06:00] [PASSED] drm_test_cmdline_margin_options
[23:06:00] [PASSED] drm_test_cmdline_multiple_options
[23:06:00] [PASSED] drm_test_cmdline_bpp_extra_and_option
[23:06:00] [PASSED] drm_test_cmdline_extra_and_option
[23:06:00] [PASSED] drm_test_cmdline_freestanding_options
[23:06:00] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[23:06:00] [PASSED] drm_test_cmdline_panel_orientation
[23:06:00] ================ drm_test_cmdline_invalid =================
[23:06:00] [PASSED] margin_only
[23:06:00] [PASSED] interlace_only
[23:06:00] [PASSED] res_missing_x
[23:06:00] [PASSED] res_missing_y
[23:06:00] [PASSED] res_bad_y
[23:06:00] [PASSED] res_missing_y_bpp
[23:06:00] [PASSED] res_bad_bpp
[23:06:00] [PASSED] res_bad_refresh
[23:06:00] [PASSED] res_bpp_refresh_force_on_off
[23:06:00] [PASSED] res_invalid_mode
[23:06:00] [PASSED] res_bpp_wrong_place_mode
[23:06:00] [PASSED] name_bpp_refresh
[23:06:00] [PASSED] name_refresh
[23:06:00] [PASSED] name_refresh_wrong_mode
[23:06:00] [PASSED] name_refresh_invalid_mode
[23:06:00] [PASSED] rotate_multiple
[23:06:00] [PASSED] rotate_invalid_val
[23:06:00] [PASSED] rotate_truncated
[23:06:00] [PASSED] invalid_option
[23:06:00] [PASSED] invalid_tv_option
[23:06:00] [PASSED] truncated_tv_option
[23:06:00] ============ [PASSED] drm_test_cmdline_invalid =============
[23:06:00] =============== drm_test_cmdline_tv_options ===============
[23:06:00] [PASSED] NTSC
[23:06:00] [PASSED] NTSC_443
[23:06:00] [PASSED] NTSC_J
[23:06:00] [PASSED] PAL
[23:06:00] [PASSED] PAL_M
[23:06:00] [PASSED] PAL_N
[23:06:00] [PASSED] SECAM
[23:06:00] [PASSED] MONO_525
[23:06:00] [PASSED] MONO_625
[23:06:00] =========== [PASSED] drm_test_cmdline_tv_options ===========
[23:06:00] =============== [PASSED] drm_cmdline_parser ================
[23:06:00] ========== drmm_connector_hdmi_init (20 subtests) ==========
[23:06:00] [PASSED] drm_test_connector_hdmi_init_valid
[23:06:00] [PASSED] drm_test_connector_hdmi_init_bpc_8
[23:06:00] [PASSED] drm_test_connector_hdmi_init_bpc_10
[23:06:00] [PASSED] drm_test_connector_hdmi_init_bpc_12
[23:06:00] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[23:06:00] [PASSED] drm_test_connector_hdmi_init_bpc_null
[23:06:00] [PASSED] drm_test_connector_hdmi_init_formats_empty
[23:06:00] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[23:06:00] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[23:06:00] [PASSED] supported_formats=0x9 yuv420_allowed=1
[23:06:00] [PASSED] supported_formats=0x9 yuv420_allowed=0
[23:06:00] [PASSED] supported_formats=0x3 yuv420_allowed=1
[23:06:00] [PASSED] supported_formats=0x3 yuv420_allowed=0
[23:06:00] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[23:06:00] [PASSED] drm_test_connector_hdmi_init_null_ddc
[23:06:00] [PASSED] drm_test_connector_hdmi_init_null_product
[23:06:00] [PASSED] drm_test_connector_hdmi_init_null_vendor
[23:06:00] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[23:06:00] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[23:06:00] [PASSED] drm_test_connector_hdmi_init_product_valid
[23:06:00] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[23:06:00] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[23:06:00] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[23:06:00] ========= drm_test_connector_hdmi_init_type_valid =========
[23:06:00] [PASSED] HDMI-A
[23:06:00] [PASSED] HDMI-B
[23:06:00] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[23:06:00] ======== drm_test_connector_hdmi_init_type_invalid ========
[23:06:00] [PASSED] Unknown
[23:06:00] [PASSED] VGA
[23:06:00] [PASSED] DVI-I
[23:06:00] [PASSED] DVI-D
[23:06:00] [PASSED] DVI-A
[23:06:00] [PASSED] Composite
[23:06:00] [PASSED] SVIDEO
[23:06:00] [PASSED] LVDS
[23:06:00] [PASSED] Component
[23:06:00] [PASSED] DIN
[23:06:00] [PASSED] DP
[23:06:00] [PASSED] TV
[23:06:00] [PASSED] eDP
[23:06:00] [PASSED] Virtual
[23:06:00] [PASSED] DSI
[23:06:00] [PASSED] DPI
[23:06:00] [PASSED] Writeback
[23:06:00] [PASSED] SPI
[23:06:00] [PASSED] USB
[23:06:00] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[23:06:00] ============ [PASSED] drmm_connector_hdmi_init =============
[23:06:00] ============= drmm_connector_init (3 subtests) =============
[23:06:00] [PASSED] drm_test_drmm_connector_init
[23:06:00] [PASSED] drm_test_drmm_connector_init_null_ddc
[23:06:00] ========= drm_test_drmm_connector_init_type_valid =========
[23:06:00] [PASSED] Unknown
[23:06:00] [PASSED] VGA
[23:06:00] [PASSED] DVI-I
[23:06:00] [PASSED] DVI-D
[23:06:00] [PASSED] DVI-A
[23:06:00] [PASSED] Composite
[23:06:00] [PASSED] SVIDEO
[23:06:00] [PASSED] LVDS
[23:06:00] [PASSED] Component
[23:06:00] [PASSED] DIN
[23:06:00] [PASSED] DP
[23:06:00] [PASSED] HDMI-A
[23:06:00] [PASSED] HDMI-B
[23:06:00] [PASSED] TV
[23:06:00] [PASSED] eDP
[23:06:00] [PASSED] Virtual
[23:06:00] [PASSED] DSI
[23:06:00] [PASSED] DPI
[23:06:00] [PASSED] Writeback
[23:06:00] [PASSED] SPI
[23:06:00] [PASSED] USB
[23:06:00] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[23:06:00] =============== [PASSED] drmm_connector_init ===============
[23:06:00] ========= drm_connector_dynamic_init (6 subtests) ==========
[23:06:00] [PASSED] drm_test_drm_connector_dynamic_init
[23:06:00] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[23:06:00] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[23:06:00] [PASSED] drm_test_drm_connector_dynamic_init_properties
[23:06:00] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[23:06:00] [PASSED] Unknown
[23:06:00] [PASSED] VGA
[23:06:00] [PASSED] DVI-I
[23:06:00] [PASSED] DVI-D
[23:06:00] [PASSED] DVI-A
[23:06:00] [PASSED] Composite
[23:06:00] [PASSED] SVIDEO
[23:06:00] [PASSED] LVDS
[23:06:00] [PASSED] Component
[23:06:00] [PASSED] DIN
[23:06:00] [PASSED] DP
[23:06:00] [PASSED] HDMI-A
[23:06:00] [PASSED] HDMI-B
[23:06:00] [PASSED] TV
[23:06:00] [PASSED] eDP
[23:06:00] [PASSED] Virtual
[23:06:00] [PASSED] DSI
[23:06:00] [PASSED] DPI
[23:06:00] [PASSED] Writeback
[23:06:00] [PASSED] SPI
[23:06:00] [PASSED] USB
[23:06:00] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[23:06:00] ======== drm_test_drm_connector_dynamic_init_name =========
[23:06:00] [PASSED] Unknown
[23:06:00] [PASSED] VGA
[23:06:00] [PASSED] DVI-I
[23:06:00] [PASSED] DVI-D
[23:06:00] [PASSED] DVI-A
[23:06:00] [PASSED] Composite
[23:06:00] [PASSED] SVIDEO
[23:06:00] [PASSED] LVDS
[23:06:00] [PASSED] Component
[23:06:00] [PASSED] DIN
[23:06:00] [PASSED] DP
[23:06:00] [PASSED] HDMI-A
[23:06:00] [PASSED] HDMI-B
[23:06:00] [PASSED] TV
[23:06:00] [PASSED] eDP
[23:06:00] [PASSED] Virtual
[23:06:00] [PASSED] DSI
[23:06:00] [PASSED] DPI
[23:06:00] [PASSED] Writeback
[23:06:00] [PASSED] SPI
[23:06:00] [PASSED] USB
[23:06:00] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[23:06:00] =========== [PASSED] drm_connector_dynamic_init ============
[23:06:00] ==== drm_connector_dynamic_register_early (4 subtests) =====
[23:06:00] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[23:06:00] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[23:06:00] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[23:06:00] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[23:06:00] ====== [PASSED] drm_connector_dynamic_register_early =======
[23:06:00] ======= drm_connector_dynamic_register (7 subtests) ========
[23:06:00] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[23:06:00] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[23:06:00] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[23:06:00] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[23:06:00] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[23:06:00] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[23:06:00] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[23:06:00] ========= [PASSED] drm_connector_dynamic_register ==========
[23:06:00] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[23:06:00] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[23:06:00] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[23:06:00] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[23:06:00] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[23:06:00] ========== drm_test_get_tv_mode_from_name_valid ===========
[23:06:00] [PASSED] NTSC
[23:06:00] [PASSED] NTSC-443
[23:06:00] [PASSED] NTSC-J
[23:06:00] [PASSED] PAL
[23:06:00] [PASSED] PAL-M
[23:06:00] [PASSED] PAL-N
[23:06:00] [PASSED] SECAM
[23:06:00] [PASSED] Mono
[23:06:00] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[23:06:00] [PASSED] drm_test_get_tv_mode_from_name_truncated
[23:06:00] ============ [PASSED] drm_get_tv_mode_from_name ============
[23:06:00] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[23:06:00] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[23:06:00] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[23:06:00] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[23:06:00] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[23:06:00] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[23:06:00] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[23:06:00] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[23:06:00] [PASSED] VIC 96
[23:06:00] [PASSED] VIC 97
[23:06:00] [PASSED] VIC 101
[23:06:00] [PASSED] VIC 102
[23:06:00] [PASSED] VIC 106
[23:06:00] [PASSED] VIC 107
[23:06:00] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[23:06:00] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[23:06:00] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[23:06:00] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[23:06:00] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[23:06:00] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[23:06:00] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[23:06:00] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[23:06:00] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[23:06:00] [PASSED] Automatic
[23:06:00] [PASSED] Full
[23:06:00] [PASSED] Limited 16:235
[23:06:00] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[23:06:00] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[23:06:00] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[23:06:00] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[23:06:00] === drm_test_drm_hdmi_connector_get_output_format_name ====
[23:06:00] [PASSED] RGB
[23:06:00] [PASSED] YUV 4:2:0
[23:06:00] [PASSED] YUV 4:2:2
[23:06:00] [PASSED] YUV 4:4:4
[23:06:00] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[23:06:00] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[23:06:00] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[23:06:00] ============= drm_damage_helper (21 subtests) ==============
[23:06:00] [PASSED] drm_test_damage_iter_no_damage
[23:06:00] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[23:06:00] [PASSED] drm_test_damage_iter_no_damage_src_moved
[23:06:00] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[23:06:00] [PASSED] drm_test_damage_iter_no_damage_not_visible
[23:06:00] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[23:06:00] [PASSED] drm_test_damage_iter_no_damage_no_fb
[23:06:00] [PASSED] drm_test_damage_iter_simple_damage
[23:06:00] [PASSED] drm_test_damage_iter_single_damage
[23:06:00] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[23:06:00] [PASSED] drm_test_damage_iter_single_damage_outside_src
[23:06:00] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[23:06:00] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[23:06:00] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[23:06:00] [PASSED] drm_test_damage_iter_single_damage_src_moved
[23:06:00] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[23:06:00] [PASSED] drm_test_damage_iter_damage
[23:06:00] [PASSED] drm_test_damage_iter_damage_one_intersect
[23:06:00] [PASSED] drm_test_damage_iter_damage_one_outside
[23:06:00] [PASSED] drm_test_damage_iter_damage_src_moved
[23:06:00] [PASSED] drm_test_damage_iter_damage_not_visible
[23:06:00] ================ [PASSED] drm_damage_helper ================
[23:06:00] ============== drm_dp_mst_helper (3 subtests) ==============
[23:06:00] ============== drm_test_dp_mst_calc_pbn_mode ==============
[23:06:00] [PASSED] Clock 154000 BPP 30 DSC disabled
[23:06:00] [PASSED] Clock 234000 BPP 30 DSC disabled
[23:06:00] [PASSED] Clock 297000 BPP 24 DSC disabled
[23:06:00] [PASSED] Clock 332880 BPP 24 DSC enabled
[23:06:00] [PASSED] Clock 324540 BPP 24 DSC enabled
[23:06:00] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[23:06:00] ============== drm_test_dp_mst_calc_pbn_div ===============
[23:06:00] [PASSED] Link rate 2000000 lane count 4
[23:06:00] [PASSED] Link rate 2000000 lane count 2
[23:06:00] [PASSED] Link rate 2000000 lane count 1
[23:06:00] [PASSED] Link rate 1350000 lane count 4
[23:06:00] [PASSED] Link rate 1350000 lane count 2
[23:06:00] [PASSED] Link rate 1350000 lane count 1
[23:06:00] [PASSED] Link rate 1000000 lane count 4
[23:06:00] [PASSED] Link rate 1000000 lane count 2
[23:06:00] [PASSED] Link rate 1000000 lane count 1
[23:06:00] [PASSED] Link rate 810000 lane count 4
[23:06:00] [PASSED] Link rate 810000 lane count 2
[23:06:00] [PASSED] Link rate 810000 lane count 1
[23:06:00] [PASSED] Link rate 540000 lane count 4
[23:06:00] [PASSED] Link rate 540000 lane count 2
[23:06:00] [PASSED] Link rate 540000 lane count 1
[23:06:00] [PASSED] Link rate 270000 lane count 4
[23:06:00] [PASSED] Link rate 270000 lane count 2
[23:06:00] [PASSED] Link rate 270000 lane count 1
[23:06:00] [PASSED] Link rate 162000 lane count 4
[23:06:00] [PASSED] Link rate 162000 lane count 2
[23:06:00] [PASSED] Link rate 162000 lane count 1
[23:06:00] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[23:06:00] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[23:06:00] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[23:06:00] [PASSED] DP_POWER_UP_PHY with port number
[23:06:00] [PASSED] DP_POWER_DOWN_PHY with port number
[23:06:00] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[23:06:00] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[23:06:00] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[23:06:00] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[23:06:00] [PASSED] DP_QUERY_PAYLOAD with port number
[23:06:00] [PASSED] DP_QUERY_PAYLOAD with VCPI
[23:06:00] [PASSED] DP_REMOTE_DPCD_READ with port number
[23:06:00] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[23:06:00] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[23:06:00] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[23:06:00] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[23:06:00] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[23:06:00] [PASSED] DP_REMOTE_I2C_READ with port number
[23:06:00] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[23:06:00] [PASSED] DP_REMOTE_I2C_READ with transactions array
[23:06:00] [PASSED] DP_REMOTE_I2C_WRITE with port number
[23:06:00] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[23:06:00] [PASSED] DP_REMOTE_I2C_WRITE with data array
[23:06:00] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[23:06:00] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[23:06:00] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[23:06:00] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[23:06:00] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[23:06:00] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[23:06:00] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[23:06:00] ================ [PASSED] drm_dp_mst_helper ================
[23:06:00] ================== drm_exec (7 subtests) ===================
[23:06:00] [PASSED] sanitycheck
[23:06:00] [PASSED] test_lock
[23:06:00] [PASSED] test_lock_unlock
[23:06:00] [PASSED] test_duplicates
[23:06:00] [PASSED] test_prepare
[23:06:00] [PASSED] test_prepare_array
[23:06:00] [PASSED] test_multiple_loops
[23:06:00] ==================== [PASSED] drm_exec =====================
[23:06:00] =========== drm_format_helper_test (17 subtests) ===========
[23:06:00] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[23:06:00] [PASSED] single_pixel_source_buffer
[23:06:00] [PASSED] single_pixel_clip_rectangle
[23:06:00] [PASSED] well_known_colors
[23:06:00] [PASSED] destination_pitch
[23:06:00] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[23:06:00] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[23:06:00] [PASSED] single_pixel_source_buffer
[23:06:00] [PASSED] single_pixel_clip_rectangle
[23:06:00] [PASSED] well_known_colors
[23:06:00] [PASSED] destination_pitch
[23:06:00] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[23:06:00] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[23:06:00] [PASSED] single_pixel_source_buffer
[23:06:00] [PASSED] single_pixel_clip_rectangle
[23:06:00] [PASSED] well_known_colors
[23:06:00] [PASSED] destination_pitch
[23:06:00] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[23:06:00] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[23:06:00] [PASSED] single_pixel_source_buffer
[23:06:00] [PASSED] single_pixel_clip_rectangle
[23:06:00] [PASSED] well_known_colors
[23:06:00] [PASSED] destination_pitch
[23:06:00] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[23:06:00] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[23:06:00] [PASSED] single_pixel_source_buffer
[23:06:00] [PASSED] single_pixel_clip_rectangle
[23:06:00] [PASSED] well_known_colors
[23:06:00] [PASSED] destination_pitch
[23:06:00] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[23:06:00] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[23:06:00] [PASSED] single_pixel_source_buffer
[23:06:00] [PASSED] single_pixel_clip_rectangle
[23:06:00] [PASSED] well_known_colors
[23:06:00] [PASSED] destination_pitch
[23:06:00] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[23:06:00] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[23:06:00] [PASSED] single_pixel_source_buffer
[23:06:00] [PASSED] single_pixel_clip_rectangle
[23:06:00] [PASSED] well_known_colors
[23:06:00] [PASSED] destination_pitch
[23:06:00] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[23:06:00] ============= drm_test_fb_xrgb8888_to_bgr888 ==============
[23:06:00] [PASSED] single_pixel_source_buffer
[23:06:00] [PASSED] single_pixel_clip_rectangle
[23:06:00] [PASSED] well_known_colors
[23:06:00] [PASSED] destination_pitch
[23:06:00] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[23:06:00] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[23:06:00] [PASSED] single_pixel_source_buffer
[23:06:00] [PASSED] single_pixel_clip_rectangle
[23:06:00] [PASSED] well_known_colors
[23:06:00] [PASSED] destination_pitch
[23:06:00] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[23:06:00] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[23:06:00] [PASSED] single_pixel_source_buffer
[23:06:00] [PASSED] single_pixel_clip_rectangle
[23:06:00] [PASSED] well_known_colors
[23:06:00] [PASSED] destination_pitch
[23:06:00] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[23:06:00] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[23:06:00] [PASSED] single_pixel_source_buffer
[23:06:00] [PASSED] single_pixel_clip_rectangle
[23:06:00] [PASSED] well_known_colors
[23:06:00] [PASSED] destination_pitch
[23:06:00] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[23:06:00] ============== drm_test_fb_xrgb8888_to_mono ===============
[23:06:00] [PASSED] single_pixel_source_buffer
[23:06:00] [PASSED] single_pixel_clip_rectangle
[23:06:00] [PASSED] well_known_colors
[23:06:00] [PASSED] destination_pitch
[23:06:00] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[23:06:00] ==================== drm_test_fb_swab =====================
[23:06:00] [PASSED] single_pixel_source_buffer
[23:06:00] [PASSED] single_pixel_clip_rectangle
[23:06:00] [PASSED] well_known_colors
[23:06:00] [PASSED] destination_pitch
[23:06:00] ================ [PASSED] drm_test_fb_swab =================
[23:06:00] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[23:06:00] [PASSED] single_pixel_source_buffer
[23:06:00] [PASSED] single_pixel_clip_rectangle
[23:06:00] [PASSED] well_known_colors
[23:06:00] [PASSED] destination_pitch
[23:06:00] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[23:06:00] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[23:06:00] [PASSED] single_pixel_source_buffer
[23:06:00] [PASSED] single_pixel_clip_rectangle
[23:06:00] [PASSED] well_known_colors
[23:06:00] [PASSED] destination_pitch
[23:06:00] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[23:06:00] ================= drm_test_fb_clip_offset =================
[23:06:00] [PASSED] pass through
[23:06:00] [PASSED] horizontal offset
[23:06:00] [PASSED] vertical offset
[23:06:00] [PASSED] horizontal and vertical offset
[23:06:00] [PASSED] horizontal offset (custom pitch)
[23:06:00] [PASSED] vertical offset (custom pitch)
[23:06:00] [PASSED] horizontal and vertical offset (custom pitch)
[23:06:00] ============= [PASSED] drm_test_fb_clip_offset =============
[23:06:00] =================== drm_test_fb_memcpy ====================
[23:06:00] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[23:06:00] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[23:06:00] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[23:06:00] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[23:06:00] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[23:06:00] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[23:06:00] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[23:06:00] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[23:06:00] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[23:06:00] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[23:06:00] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[23:06:00] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[23:06:00] =============== [PASSED] drm_test_fb_memcpy ================
[23:06:00] ============= [PASSED] drm_format_helper_test ==============
[23:06:00] ================= drm_format (18 subtests) =================
[23:06:00] [PASSED] drm_test_format_block_width_invalid
[23:06:00] [PASSED] drm_test_format_block_width_one_plane
[23:06:00] [PASSED] drm_test_format_block_width_two_plane
[23:06:00] [PASSED] drm_test_format_block_width_three_plane
[23:06:00] [PASSED] drm_test_format_block_width_tiled
[23:06:00] [PASSED] drm_test_format_block_height_invalid
[23:06:00] [PASSED] drm_test_format_block_height_one_plane
[23:06:00] [PASSED] drm_test_format_block_height_two_plane
[23:06:00] [PASSED] drm_test_format_block_height_three_plane
[23:06:00] [PASSED] drm_test_format_block_height_tiled
[23:06:00] [PASSED] drm_test_format_min_pitch_invalid
[23:06:00] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[23:06:00] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[23:06:00] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[23:06:00] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[23:06:00] [PASSED] drm_test_format_min_pitch_two_plane
[23:06:00] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[23:06:00] [PASSED] drm_test_format_min_pitch_tiled
[23:06:00] =================== [PASSED] drm_format ====================
[23:06:00] ============== drm_framebuffer (10 subtests) ===============
[23:06:00] ========== drm_test_framebuffer_check_src_coords ==========
[23:06:00] [PASSED] Success: source fits into fb
[23:06:00] [PASSED] Fail: overflowing fb with x-axis coordinate
[23:06:00] [PASSED] Fail: overflowing fb with y-axis coordinate
[23:06:00] [PASSED] Fail: overflowing fb with source width
[23:06:00] [PASSED] Fail: overflowing fb with source height
[23:06:00] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[23:06:00] [PASSED] drm_test_framebuffer_cleanup
[23:06:00] =============== drm_test_framebuffer_create ===============
[23:06:00] [PASSED] ABGR8888 normal sizes
[23:06:00] [PASSED] ABGR8888 max sizes
[23:06:00] [PASSED] ABGR8888 pitch greater than min required
[23:06:00] [PASSED] ABGR8888 pitch less than min required
[23:06:00] [PASSED] ABGR8888 Invalid width
[23:06:00] [PASSED] ABGR8888 Invalid buffer handle
[23:06:00] [PASSED] No pixel format
[23:06:00] [PASSED] ABGR8888 Width 0
[23:06:00] [PASSED] ABGR8888 Height 0
[23:06:00] [PASSED] ABGR8888 Out of bound height * pitch combination
[23:06:00] [PASSED] ABGR8888 Large buffer offset
[23:06:00] [PASSED] ABGR8888 Buffer offset for inexistent plane
[23:06:00] [PASSED] ABGR8888 Invalid flag
[23:06:00] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[23:06:00] [PASSED] ABGR8888 Valid buffer modifier
[23:06:00] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[23:06:00] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[23:06:00] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[23:06:00] [PASSED] NV12 Normal sizes
[23:06:00] [PASSED] NV12 Max sizes
[23:06:00] [PASSED] NV12 Invalid pitch
[23:06:00] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[23:06:00] [PASSED] NV12 different modifier per-plane
[23:06:00] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[23:06:00] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[23:06:00] [PASSED] NV12 Modifier for inexistent plane
[23:06:00] [PASSED] NV12 Handle for inexistent plane
[23:06:00] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[23:06:00] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[23:06:00] [PASSED] YVU420 Normal sizes
[23:06:00] [PASSED] YVU420 Max sizes
[23:06:00] [PASSED] YVU420 Invalid pitch
[23:06:00] [PASSED] YVU420 Different pitches
[23:06:00] [PASSED] YVU420 Different buffer offsets/pitches
[23:06:00] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[23:06:00] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[23:06:00] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[23:06:00] [PASSED] YVU420 Valid modifier
[23:06:00] [PASSED] YVU420 Different modifiers per plane
[23:06:00] [PASSED] YVU420 Modifier for inexistent plane
[23:06:00] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[23:06:00] [PASSED] X0L2 Normal sizes
[23:06:00] [PASSED] X0L2 Max sizes
[23:06:00] [PASSED] X0L2 Invalid pitch
[23:06:00] [PASSED] X0L2 Pitch greater than minimum required
[23:06:00] [PASSED] X0L2 Handle for inexistent plane
[23:06:00] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[23:06:00] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[23:06:00] [PASSED] X0L2 Valid modifier
[23:06:00] [PASSED] X0L2 Modifier for inexistent plane
[23:06:00] =========== [PASSED] drm_test_framebuffer_create ===========
[23:06:00] [PASSED] drm_test_framebuffer_free
[23:06:00] [PASSED] drm_test_framebuffer_init
[23:06:00] [PASSED] drm_test_framebuffer_init_bad_format
[23:06:00] [PASSED] drm_test_framebuffer_init_dev_mismatch
[23:06:00] [PASSED] drm_test_framebuffer_lookup
[23:06:00] [PASSED] drm_test_framebuffer_lookup_inexistent
[23:06:00] [PASSED] drm_test_framebuffer_modifiers_not_supported
[23:06:00] ================= [PASSED] drm_framebuffer =================
[23:06:00] ================ drm_gem_shmem (8 subtests) ================
[23:06:00] [PASSED] drm_gem_shmem_test_obj_create
[23:06:00] [PASSED] drm_gem_shmem_test_obj_create_private
[23:06:00] [PASSED] drm_gem_shmem_test_pin_pages
[23:06:00] [PASSED] drm_gem_shmem_test_vmap
[23:06:00] [PASSED] drm_gem_shmem_test_get_pages_sgt
[23:06:00] [PASSED] drm_gem_shmem_test_get_sg_table
[23:06:00] [PASSED] drm_gem_shmem_test_madvise
[23:06:00] [PASSED] drm_gem_shmem_test_purge
[23:06:00] ================== [PASSED] drm_gem_shmem ==================
[23:06:00] === drm_atomic_helper_connector_hdmi_check (27 subtests) ===
[23:06:00] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[23:06:00] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[23:06:00] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[23:06:00] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[23:06:00] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[23:06:00] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[23:06:00] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 =======
[23:06:00] [PASSED] Automatic
[23:06:00] [PASSED] Full
[23:06:00] [PASSED] Limited 16:235
[23:06:00] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[23:06:00] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[23:06:00] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[23:06:00] [PASSED] drm_test_check_disable_connector
[23:06:00] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[23:06:00] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[23:06:00] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[23:06:00] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[23:06:00] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[23:06:00] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[23:06:00] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[23:06:00] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[23:06:00] [PASSED] drm_test_check_output_bpc_dvi
[23:06:00] [PASSED] drm_test_check_output_bpc_format_vic_1
[23:06:00] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[23:06:00] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[23:06:00] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[23:06:00] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[23:06:00] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[23:06:00] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[23:06:00] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[23:06:00] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[23:06:00] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[23:06:00] [PASSED] drm_test_check_broadcast_rgb_value
[23:06:00] [PASSED] drm_test_check_bpc_8_value
[23:06:00] [PASSED] drm_test_check_bpc_10_value
[23:06:00] [PASSED] drm_test_check_bpc_12_value
[23:06:00] [PASSED] drm_test_check_format_value
[23:06:00] [PASSED] drm_test_check_tmds_char_value
[23:06:00] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[23:06:00] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) =
[23:06:00] [PASSED] drm_test_check_mode_valid
[23:06:00] [PASSED] drm_test_check_mode_valid_reject
[23:06:00] [PASSED] drm_test_check_mode_valid_reject_rate
[23:06:00] [PASSED] drm_test_check_mode_valid_reject_max_clock
[23:06:00] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[23:06:00] ================= drm_managed (2 subtests) =================
[23:06:00] [PASSED] drm_test_managed_release_action
[23:06:00] [PASSED] drm_test_managed_run_action
[23:06:00] =================== [PASSED] drm_managed ===================
[23:06:00] =================== drm_mm (6 subtests) ====================
[23:06:00] [PASSED] drm_test_mm_init
[23:06:00] [PASSED] drm_test_mm_debug
[23:06:00] [PASSED] drm_test_mm_align32
[23:06:00] [PASSED] drm_test_mm_align64
[23:06:00] [PASSED] drm_test_mm_lowest
[23:06:00] [PASSED] drm_test_mm_highest
[23:06:00] ===================== [PASSED] drm_mm ======================
[23:06:00] ============= drm_modes_analog_tv (5 subtests) =============
[23:06:00] [PASSED] drm_test_modes_analog_tv_mono_576i
[23:06:00] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[23:06:00] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[23:06:00] [PASSED] drm_test_modes_analog_tv_pal_576i
[23:06:00] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[23:06:00] =============== [PASSED] drm_modes_analog_tv ===============
[23:06:00] ============== drm_plane_helper (2 subtests) ===============
[23:06:00] =============== drm_test_check_plane_state ================
[23:06:00] [PASSED] clipping_simple
[23:06:00] [PASSED] clipping_rotate_reflect
[23:06:00] [PASSED] positioning_simple
[23:06:00] [PASSED] upscaling
[23:06:00] [PASSED] downscaling
[23:06:00] [PASSED] rounding1
[23:06:00] [PASSED] rounding2
[23:06:00] [PASSED] rounding3
[23:06:00] [PASSED] rounding4
[23:06:00] =========== [PASSED] drm_test_check_plane_state ============
[23:06:00] =========== drm_test_check_invalid_plane_state ============
[23:06:00] [PASSED] positioning_invalid
[23:06:00] [PASSED] upscaling_invalid
[23:06:00] [PASSED] downscaling_invalid
[23:06:00] ======= [PASSED] drm_test_check_invalid_plane_state ========
[23:06:00] ================ [PASSED] drm_plane_helper =================
[23:06:00] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[23:06:00] ====== drm_test_connector_helper_tv_get_modes_check =======
[23:06:00] [PASSED] None
[23:06:00] [PASSED] PAL
[23:06:00] [PASSED] NTSC
[23:06:00] [PASSED] Both, NTSC Default
[23:06:00] [PASSED] Both, PAL Default
[23:06:00] [PASSED] Both, NTSC Default, with PAL on command-line
[23:06:00] [PASSED] Both, PAL Default, with NTSC on command-line
[23:06:00] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[23:06:00] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[23:06:00] ================== drm_rect (9 subtests) ===================
[23:06:00] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[23:06:00] [PASSED] drm_test_rect_clip_scaled_not_clipped
[23:06:00] [PASSED] drm_test_rect_clip_scaled_clipped
[23:06:00] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[23:06:00] ================= drm_test_rect_intersect =================
[23:06:00] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[23:06:00] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[23:06:00] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[23:06:00] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[23:06:00] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[23:06:00] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[23:06:00] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[23:06:00] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[23:06:00] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[23:06:00] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[23:06:00] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[23:06:00] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[23:06:00] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[23:06:00] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[23:06:00] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[23:06:00] ============= [PASSED] drm_test_rect_intersect =============
[23:06:00] ================ drm_test_rect_calc_hscale ================
[23:06:00] [PASSED] normal use
[23:06:00] [PASSED] out of max range
[23:06:00] [PASSED] out of min range
[23:06:00] [PASSED] zero dst
[23:06:00] [PASSED] negative src
[23:06:00] [PASSED] negative dst
[23:06:00] ============ [PASSED] drm_test_rect_calc_hscale ============
[23:06:00] ================ drm_test_rect_calc_vscale ================
[23:06:00] [PASSED] normal use
[23:06:00] [PASSED] out of max range
[23:06:00] [PASSED] out of min range
[23:06:00] [PASSED] zero dst
[23:06:00] [PASSED] negative src
[23:06:00] [PASSED] negative dst
[23:06:00] ============ [PASSED] drm_test_rect_calc_vscale ============
[23:06:00] ================== drm_test_rect_rotate ===================
[23:06:00] [PASSED] reflect-x
[23:06:00] [PASSED] reflect-y
[23:06:00] [PASSED] rotate-0
[23:06:00] [PASSED] rotate-90
[23:06:00] [PASSED] rotate-180
[23:06:00] [PASSED] rotate-270
stty: 'standard input': Inappropriate ioctl for device
[23:06:00] ============== [PASSED] drm_test_rect_rotate ===============
[23:06:00] ================ drm_test_rect_rotate_inv =================
[23:06:00] [PASSED] reflect-x
[23:06:00] [PASSED] reflect-y
[23:06:00] [PASSED] rotate-0
[23:06:00] [PASSED] rotate-90
[23:06:00] [PASSED] rotate-180
[23:06:00] [PASSED] rotate-270
[23:06:00] ============ [PASSED] drm_test_rect_rotate_inv =============
[23:06:00] ==================== [PASSED] drm_rect =====================
[23:06:00] ============ drm_sysfb_modeset_test (1 subtest) ============
[23:06:00] ============ drm_test_sysfb_build_fourcc_list =============
[23:06:00] [PASSED] no native formats
[23:06:00] [PASSED] XRGB8888 as native format
[23:06:00] [PASSED] remove duplicates
[23:06:00] [PASSED] convert alpha formats
[23:06:00] [PASSED] random formats
[23:06:00] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[23:06:00] ============= [PASSED] drm_sysfb_modeset_test ==============
[23:06:00] ============================================================
[23:06:00] Testing complete. Ran 616 tests: passed: 616
[23:06:00] Elapsed time: 22.918s total, 1.645s configuring, 21.105s building, 0.147s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[23:06:00] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[23:06:02] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[23:06:09] Starting KUnit Kernel (1/1)...
[23:06:09] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[23:06:09] ================= ttm_device (5 subtests) ==================
[23:06:09] [PASSED] ttm_device_init_basic
[23:06:09] [PASSED] ttm_device_init_multiple
[23:06:09] [PASSED] ttm_device_fini_basic
[23:06:09] [PASSED] ttm_device_init_no_vma_man
[23:06:09] ================== ttm_device_init_pools ==================
[23:06:09] [PASSED] No DMA allocations, no DMA32 required
[23:06:09] [PASSED] DMA allocations, DMA32 required
[23:06:09] [PASSED] No DMA allocations, DMA32 required
[23:06:09] [PASSED] DMA allocations, no DMA32 required
[23:06:09] ============== [PASSED] ttm_device_init_pools ==============
[23:06:09] =================== [PASSED] ttm_device ====================
[23:06:09] ================== ttm_pool (8 subtests) ===================
[23:06:09] ================== ttm_pool_alloc_basic ===================
[23:06:09] [PASSED] One page
[23:06:09] [PASSED] More than one page
[23:06:09] [PASSED] Above the allocation limit
[23:06:09] [PASSED] One page, with coherent DMA mappings enabled
[23:06:09] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[23:06:09] ============== [PASSED] ttm_pool_alloc_basic ===============
[23:06:09] ============== ttm_pool_alloc_basic_dma_addr ==============
[23:06:09] [PASSED] One page
[23:06:09] [PASSED] More than one page
[23:06:09] [PASSED] Above the allocation limit
[23:06:09] [PASSED] One page, with coherent DMA mappings enabled
[23:06:09] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[23:06:09] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[23:06:09] [PASSED] ttm_pool_alloc_order_caching_match
[23:06:09] [PASSED] ttm_pool_alloc_caching_mismatch
[23:06:09] [PASSED] ttm_pool_alloc_order_mismatch
[23:06:09] [PASSED] ttm_pool_free_dma_alloc
[23:06:09] [PASSED] ttm_pool_free_no_dma_alloc
[23:06:09] [PASSED] ttm_pool_fini_basic
[23:06:09] ==================== [PASSED] ttm_pool =====================
[23:06:09] ================ ttm_resource (8 subtests) =================
[23:06:09] ================= ttm_resource_init_basic =================
[23:06:09] [PASSED] Init resource in TTM_PL_SYSTEM
[23:06:09] [PASSED] Init resource in TTM_PL_VRAM
[23:06:09] [PASSED] Init resource in a private placement
[23:06:09] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[23:06:09] ============= [PASSED] ttm_resource_init_basic =============
[23:06:09] [PASSED] ttm_resource_init_pinned
[23:06:09] [PASSED] ttm_resource_fini_basic
[23:06:09] [PASSED] ttm_resource_manager_init_basic
[23:06:09] [PASSED] ttm_resource_manager_usage_basic
[23:06:09] [PASSED] ttm_resource_manager_set_used_basic
[23:06:09] [PASSED] ttm_sys_man_alloc_basic
[23:06:09] [PASSED] ttm_sys_man_free_basic
[23:06:09] ================== [PASSED] ttm_resource ===================
[23:06:09] =================== ttm_tt (15 subtests) ===================
[23:06:09] ==================== ttm_tt_init_basic ====================
[23:06:09] [PASSED] Page-aligned size
[23:06:09] [PASSED] Extra pages requested
[23:06:09] ================ [PASSED] ttm_tt_init_basic ================
[23:06:09] [PASSED] ttm_tt_init_misaligned
[23:06:09] [PASSED] ttm_tt_fini_basic
[23:06:09] [PASSED] ttm_tt_fini_sg
[23:06:09] [PASSED] ttm_tt_fini_shmem
[23:06:09] [PASSED] ttm_tt_create_basic
[23:06:09] [PASSED] ttm_tt_create_invalid_bo_type
[23:06:09] [PASSED] ttm_tt_create_ttm_exists
[23:06:09] [PASSED] ttm_tt_create_failed
[23:06:09] [PASSED] ttm_tt_destroy_basic
[23:06:09] [PASSED] ttm_tt_populate_null_ttm
[23:06:09] [PASSED] ttm_tt_populate_populated_ttm
[23:06:09] [PASSED] ttm_tt_unpopulate_basic
[23:06:09] [PASSED] ttm_tt_unpopulate_empty_ttm
[23:06:09] [PASSED] ttm_tt_swapin_basic
[23:06:09] ===================== [PASSED] ttm_tt ======================
[23:06:09] =================== ttm_bo (14 subtests) ===================
[23:06:09] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[23:06:09] [PASSED] Cannot be interrupted and sleeps
[23:06:09] [PASSED] Cannot be interrupted, locks straight away
[23:06:09] [PASSED] Can be interrupted, sleeps
[23:06:09] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[23:06:09] [PASSED] ttm_bo_reserve_locked_no_sleep
[23:06:09] [PASSED] ttm_bo_reserve_no_wait_ticket
[23:06:09] [PASSED] ttm_bo_reserve_double_resv
[23:06:09] [PASSED] ttm_bo_reserve_interrupted
[23:06:09] [PASSED] ttm_bo_reserve_deadlock
[23:06:09] [PASSED] ttm_bo_unreserve_basic
[23:06:09] [PASSED] ttm_bo_unreserve_pinned
[23:06:09] [PASSED] ttm_bo_unreserve_bulk
[23:06:09] [PASSED] ttm_bo_put_basic
[23:06:09] [PASSED] ttm_bo_put_shared_resv
[23:06:09] [PASSED] ttm_bo_pin_basic
[23:06:09] [PASSED] ttm_bo_pin_unpin_resource
[23:06:09] [PASSED] ttm_bo_multiple_pin_one_unpin
[23:06:09] ===================== [PASSED] ttm_bo ======================
[23:06:09] ============== ttm_bo_validate (22 subtests) ===============
[23:06:09] ============== ttm_bo_init_reserved_sys_man ===============
[23:06:09] [PASSED] Buffer object for userspace
[23:06:09] [PASSED] Kernel buffer object
[23:06:09] [PASSED] Shared buffer object
[23:06:09] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[23:06:09] ============== ttm_bo_init_reserved_mock_man ==============
[23:06:09] [PASSED] Buffer object for userspace
[23:06:09] [PASSED] Kernel buffer object
[23:06:09] [PASSED] Shared buffer object
[23:06:09] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[23:06:09] [PASSED] ttm_bo_init_reserved_resv
[23:06:09] ================== ttm_bo_validate_basic ==================
[23:06:09] [PASSED] Buffer object for userspace
[23:06:09] [PASSED] Kernel buffer object
[23:06:09] [PASSED] Shared buffer object
[23:06:09] ============== [PASSED] ttm_bo_validate_basic ==============
[23:06:09] [PASSED] ttm_bo_validate_invalid_placement
[23:06:09] ============= ttm_bo_validate_same_placement ==============
[23:06:09] [PASSED] System manager
[23:06:09] [PASSED] VRAM manager
[23:06:09] ========= [PASSED] ttm_bo_validate_same_placement ==========
[23:06:09] [PASSED] ttm_bo_validate_failed_alloc
[23:06:09] [PASSED] ttm_bo_validate_pinned
[23:06:09] [PASSED] ttm_bo_validate_busy_placement
[23:06:09] ================ ttm_bo_validate_multihop =================
[23:06:09] [PASSED] Buffer object for userspace
[23:06:09] [PASSED] Kernel buffer object
[23:06:09] [PASSED] Shared buffer object
[23:06:09] ============ [PASSED] ttm_bo_validate_multihop =============
[23:06:09] ========== ttm_bo_validate_no_placement_signaled ==========
[23:06:09] [PASSED] Buffer object in system domain, no page vector
[23:06:09] [PASSED] Buffer object in system domain with an existing page vector
[23:06:09] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[23:06:09] ======== ttm_bo_validate_no_placement_not_signaled ========
[23:06:09] [PASSED] Buffer object for userspace
[23:06:09] [PASSED] Kernel buffer object
[23:06:09] [PASSED] Shared buffer object
[23:06:09] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[23:06:09] [PASSED] ttm_bo_validate_move_fence_signaled
[23:06:10] ========= ttm_bo_validate_move_fence_not_signaled =========
[23:06:10] [PASSED] Waits for GPU
[23:06:10] [PASSED] Tries to lock straight away
[23:06:10] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[23:06:10] [PASSED] ttm_bo_validate_swapout
[23:06:10] [PASSED] ttm_bo_validate_happy_evict
[23:06:10] [PASSED] ttm_bo_validate_all_pinned_evict
[23:06:10] [PASSED] ttm_bo_validate_allowed_only_evict
[23:06:10] [PASSED] ttm_bo_validate_deleted_evict
[23:06:10] [PASSED] ttm_bo_validate_busy_domain_evict
[23:06:10] [PASSED] ttm_bo_validate_evict_gutting
[23:06:10] [PASSED] ttm_bo_validate_recrusive_evict
stty: 'standard input': Inappropriate ioctl for device
[23:06:10] ================= [PASSED] ttm_bo_validate =================
[23:06:10] ============================================================
[23:06:10] Testing complete. Ran 102 tests: passed: 102
[23:06:10] Elapsed time: 9.989s total, 1.645s configuring, 7.727s building, 0.522s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 23+ messages in thread
* ✓ Xe.CI.BAT: success for series starting with [1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us()
2025-07-02 22:34 [PATCH 1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us() Ville Syrjala
` (4 preceding siblings ...)
2025-07-02 23:06 ` ✓ CI.KUnit: success " Patchwork
@ 2025-07-02 23:58 ` Patchwork
2025-07-03 11:51 ` [PATCH 1/4] " Jani Nikula
` (7 subsequent siblings)
13 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2025-07-02 23:58 UTC (permalink / raw)
To: Ville Syrjala; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 2210 bytes --]
== Series Details ==
Series: series starting with [1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us()
URL : https://patchwork.freedesktop.org/series/151093/
State : success
== Summary ==
CI Bug Log - changes from xe-3337-6544e412d3a4f16dbd3fdbf0d4d97731388d4792_BAT -> xe-pw-151093v1_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (9 -> 8)
------------------------------
Missing (1): bat-adlp-vm
Known issues
------------
Here are the changes found in xe-pw-151093v1_BAT that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@intel_sysfs_debugfs@xe-sysfs-read-all-entries:
- bat-lnl-2: [PASS][1] -> [ABORT][2] ([Intel XE#4624] / [Intel XE#4966])
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3337-6544e412d3a4f16dbd3fdbf0d4d97731388d4792/bat-lnl-2/igt@intel_sysfs_debugfs@xe-sysfs-read-all-entries.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v1/bat-lnl-2/igt@intel_sysfs_debugfs@xe-sysfs-read-all-entries.html
#### Possible fixes ####
* igt@kms_flip@basic-plain-flip@c-edp1:
- bat-adlp-7: [DMESG-WARN][3] ([Intel XE#4543]) -> [PASS][4] +1 other test pass
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3337-6544e412d3a4f16dbd3fdbf0d4d97731388d4792/bat-adlp-7/igt@kms_flip@basic-plain-flip@c-edp1.html
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v1/bat-adlp-7/igt@kms_flip@basic-plain-flip@c-edp1.html
[Intel XE#4543]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4543
[Intel XE#4624]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4624
[Intel XE#4966]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4966
Build changes
-------------
* Linux: xe-3337-6544e412d3a4f16dbd3fdbf0d4d97731388d4792 -> xe-pw-151093v1
IGT_8434: 5185b9527673518a418d575c3f58b5554e27f111 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-3337-6544e412d3a4f16dbd3fdbf0d4d97731388d4792: 6544e412d3a4f16dbd3fdbf0d4d97731388d4792
xe-pw-151093v1: 151093v1
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v1/index.html
[-- Attachment #2: Type: text/html, Size: 2790 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH 1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us()
2025-07-02 22:34 [PATCH 1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us() Ville Syrjala
` (5 preceding siblings ...)
2025-07-02 23:58 ` ✓ Xe.CI.BAT: " Patchwork
@ 2025-07-03 11:51 ` Jani Nikula
2025-07-03 14:28 ` Lucas De Marchi
` (6 subsequent siblings)
13 siblings, 0 replies; 23+ messages in thread
From: Jani Nikula @ 2025-07-03 11:51 UTC (permalink / raw)
To: Ville Syrjala, linux-kernel
Cc: Lucas De Marchi, Dibin Moolakadan Subrahmanian, Imre Deak,
David Laight, Geert Uytterhoeven, Matt Wagantall, Dejin Zheng,
intel-gfx, intel-xe, Ville Syrjälä
On Thu, 03 Jul 2025, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> While read_poll_timeout() & co. were originally introduced just
> for simple I/O usage scenarios they have since been generalized to
> be useful in more cases.
>
> However the interface is very cumbersome to use in the general case.
> Attempt to make it more flexible by combining the 'op', 'var' and
> 'args' parameter into just a single 'op' that the caller can fully
> specify.
>
> For example i915 has one case where one might currently
> have to write something like:
> ret = read_poll_timeout(drm_dp_dpcd_read_byte, err,
> err || (status & mask),
> 0 * 1000, 200 * 1000, false,
> aux, DP_FEC_STATUS, &status);
> which is practically illegible, but with the adjusted macro
> we do:
> ret = poll_timeout_us(err = drm_dp_dpcd_read_byte(aux, DP_FEC_STATUS, &status),
> err || (status & mask),
> 0 * 1000, 200 * 1000, false);
> which much easier to understand.
>
> One could even combine the 'op' and 'cond' parameters into
> one, but that might make the caller a bit too unwieldly with
> assignments and checks being done on the same statement.
I think it's better like this, with separate op and cond.
It might be worth mentioning this patch should have no functional
changes to the existing read_poll_timeout*() users.
> This makes poll_timeout_us() closer to the i915 __wait_for()
> macro, with the main difference being that __wait_for() uses
> expenential backoff as opposed to the fixed polling interval
> used by poll_timeout_us(). Eventually we might be able to switch
> (at least most of) i915 to use poll_timeout_us().
>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Cc: Lucas De Marchi <lucas.demarchi@intel.com>
> Cc: Dibin Moolakadan Subrahmanian <dibin.moolakadan.subrahmanian@intel.com>
> Cc: Imre Deak <imre.deak@intel.com>
> Cc: David Laight <david.laight.linux@gmail.com>
> Cc: Geert Uytterhoeven <geert+renesas@glider.be>
> Cc: Matt Wagantall <mattw@codeaurora.org>
> Cc: Dejin Zheng <zhengdejin5@gmail.com>
> Cc: intel-gfx@lists.freedesktop.org
> Cc: intel-xe@lists.freedesktop.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> include/linux/iopoll.h | 110 +++++++++++++++++++++++++++++------------
> 1 file changed, 78 insertions(+), 32 deletions(-)
>
> diff --git a/include/linux/iopoll.h b/include/linux/iopoll.h
> index 91324c331a4b..0d8186d3df03 100644
> --- a/include/linux/iopoll.h
> +++ b/include/linux/iopoll.h
> @@ -14,41 +14,38 @@
> #include <linux/io.h>
>
> /**
> - * read_poll_timeout - Periodically poll an address until a condition is
> - * met or a timeout occurs
> - * @op: accessor function (takes @args as its arguments)
> - * @val: Variable to read the value into
> - * @cond: Break condition (usually involving @val)
> - * @sleep_us: Maximum time to sleep between reads in us (0 tight-loops). Please
> - * read usleep_range() function description for details and
> + * poll_timeout_us - Periodically poll and perform an operaion until
*operation
> + * a condition is met or a timeout occurs
> + *
> + * @op: Operation
> + * @cond: Break condition
> + * @sleep_us: Maximum time to sleep between operations in us (0 tight-loops).
> + * Please read usleep_range() function description for details and
> * limitations.
Side note, I've sent a patch [1] to switch from usleep_range() to
fsleep(), which is perhaps better for the longer waits. But the patch at
hand is much more important to us than that.
[1] https://lore.kernel.org/r/20250626145119.2048423-1-jani.nikula@intel.com
> * @timeout_us: Timeout in us, 0 means never timeout
> - * @sleep_before_read: if it is true, sleep @sleep_us before read.
> - * @args: arguments for @op poll
> + * @sleep_before_op: if it is true, sleep @sleep_us before operation.
> *
> * When available, you'll probably want to use one of the specialized
> * macros defined below rather than this macro directly.
> *
> - * Returns: 0 on success and -ETIMEDOUT upon a timeout. In either
> - * case, the last read value at @args is stored in @val. Must not
> + * Returns: 0 on success and -ETIMEDOUT upon a timeout. Must not
> * be called from atomic context if sleep_us or timeout_us are used.
> */
> -#define read_poll_timeout(op, val, cond, sleep_us, timeout_us, \
> - sleep_before_read, args...) \
> +#define poll_timeout_us(op, cond, sleep_us, timeout_us, sleep_before_op) \
> ({ \
> u64 __timeout_us = (timeout_us); \
> unsigned long __sleep_us = (sleep_us); \
> ktime_t __timeout = ktime_add_us(ktime_get(), __timeout_us); \
> might_sleep_if((__sleep_us) != 0); \
> - if (sleep_before_read && __sleep_us) \
> + if ((sleep_before_op) && __sleep_us) \
> usleep_range((__sleep_us >> 2) + 1, __sleep_us); \
> for (;;) { \
> - (val) = op(args); \
> + op; \
> if (cond) \
> break; \
> if (__timeout_us && \
> ktime_compare(ktime_get(), __timeout) > 0) { \
> - (val) = op(args); \
> + op; \
> break; \
> } \
> if (__sleep_us) \
> @@ -59,17 +56,16 @@
> })
>
> /**
> - * read_poll_timeout_atomic - Periodically poll an address until a condition is
> - * met or a timeout occurs
> - * @op: accessor function (takes @args as its arguments)
> - * @val: Variable to read the value into
> - * @cond: Break condition (usually involving @val)
> - * @delay_us: Time to udelay between reads in us (0 tight-loops). Please
> - * read udelay() function description for details and
> + * poll_timeout_us_atomic - Periodically poll and perform an operaion until
> + * a condition is met or a timeout occurs
> + *
> + * @op: Operation
> + * @cond: Break condition
> + * @sleep_us: Maximum time to sleep between operations in us (0 tight-loops).
> + * Please read usleep_range() function description for details and
> * limitations.
> * @timeout_us: Timeout in us, 0 means never timeout
> - * @delay_before_read: if it is true, delay @delay_us before read.
> - * @args: arguments for @op poll
> + * @delay_before_op: if it is true, delay @delay_us before operation.
> *
> * This macro does not rely on timekeeping. Hence it is safe to call even when
> * timekeeping is suspended, at the expense of an underestimation of wall clock
> @@ -78,27 +74,26 @@
> * When available, you'll probably want to use one of the specialized
> * macros defined below rather than this macro directly.
> *
> - * Returns: 0 on success and -ETIMEDOUT upon a timeout. In either
> - * case, the last read value at @args is stored in @val.
> + * Returns: 0 on success and -ETIMEDOUT upon a timeout.
> */
> -#define read_poll_timeout_atomic(op, val, cond, delay_us, timeout_us, \
> - delay_before_read, args...) \
> +#define poll_timeout_us_atomic(op, cond, delay_us, timeout_us, \
> + delay_before_op) \
There's a sleep_us/delay_us mismatch in kernel-doc and macro args.
Arguably it should remain delay for the _atomic() variants.
> ({ \
> u64 __timeout_us = (timeout_us); \
> s64 __left_ns = __timeout_us * NSEC_PER_USEC; \
> unsigned long __delay_us = (delay_us); \
> u64 __delay_ns = __delay_us * NSEC_PER_USEC; \
> - if (delay_before_read && __delay_us) { \
> + if ((delay_before_op) && __delay_us) { \
> udelay(__delay_us); \
> if (__timeout_us) \
> __left_ns -= __delay_ns; \
> } \
> for (;;) { \
> - (val) = op(args); \
> + op; \
> if (cond) \
> break; \
> if (__timeout_us && __left_ns < 0) { \
> - (val) = op(args); \
> + op; \
> break; \
> } \
> if (__delay_us) { \
> @@ -113,6 +108,57 @@
> (cond) ? 0 : -ETIMEDOUT; \
> })
>
> +/**
> + * read_poll_timeout - Periodically poll an address until a condition is
> + * met or a timeout occurs
> + * @op: accessor function (takes @args as its arguments)
> + * @val: Variable to read the value into
> + * @cond: Break condition (usually involving @val)
> + * @sleep_us: Maximum time to sleep between reads in us (0 tight-loops). Please
> + * read usleep_range() function description for details and
> + * limitations.
> + * @timeout_us: Timeout in us, 0 means never timeout
> + * @sleep_before_read: if it is true, sleep @sleep_us before read.
> + * @args: arguments for @op poll
> + *
> + * When available, you'll probably want to use one of the specialized
> + * macros defined below rather than this macro directly.
> + *
> + * Returns: 0 on success and -ETIMEDOUT upon a timeout. In either
> + * case, the last read value at @args is stored in @val. Must not
> + * be called from atomic context if sleep_us or timeout_us are used.
> + */
> +#define read_poll_timeout(op, val, cond, sleep_us, timeout_us, \
> + sleep_before_read, args...) \
> + poll_timeout_us((val) = op(args), cond, sleep_us, timeout_us, sleep_before_read)
> +
> +/**
> + * read_poll_timeout_atomic - Periodically poll an address until a condition is
> + * met or a timeout occurs
> + * @op: accessor function (takes @args as its arguments)
> + * @val: Variable to read the value into
> + * @cond: Break condition (usually involving @val)
> + * @delay_us: Time to udelay between reads in us (0 tight-loops). Please
> + * read udelay() function description for details and
> + * limitations.
> + * @timeout_us: Timeout in us, 0 means never timeout
> + * @delay_before_read: if it is true, delay @delay_us before read.
> + * @args: arguments for @op poll
> + *
> + * This macro does not rely on timekeeping. Hence it is safe to call even when
> + * timekeeping is suspended, at the expense of an underestimation of wall clock
> + * time, which is rather minimal with a non-zero delay_us.
> + *
> + * When available, you'll probably want to use one of the specialized
> + * macros defined below rather than this macro directly.
> + *
> + * Returns: 0 on success and -ETIMEDOUT upon a timeout. In either
> + * case, the last read value at @args is stored in @val.
> + */
> +#define read_poll_timeout_atomic(op, val, cond, sleep_us, timeout_us, \
> + sleep_before_read, args...) \
> + poll_timeout_us_atomic((val) = op(args), cond, sleep_us, timeout_us, sleep_before_read)
Ditto about delay_us/sleep_us.
With the nitpicks fixed,
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> +
> /**
> * readx_poll_timeout - Periodically poll an address until a condition is met or a timeout occurs
> * @op: accessor function (takes @addr as its only argument)
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH 2/4] iopoll: Avoid evaluating 'cond' twice in poll_timeout_us()
2025-07-02 22:34 ` [PATCH 2/4] iopoll: Avoid evaluating 'cond' twice in poll_timeout_us() Ville Syrjala
@ 2025-07-03 11:55 ` Jani Nikula
0 siblings, 0 replies; 23+ messages in thread
From: Jani Nikula @ 2025-07-03 11:55 UTC (permalink / raw)
To: Ville Syrjala, linux-kernel
Cc: Lucas De Marchi, Dibin Moolakadan Subrahmanian, Imre Deak,
David Laight, Geert Uytterhoeven, Matt Wagantall, Dejin Zheng,
intel-gfx, intel-xe, Ville Syrjälä
On Thu, 03 Jul 2025, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Currently poll_timeout_us() evaluates 'cond' twice at the end
> of the success case. This not desirable in case 'cond' itself
> is expensive.
>
> Avoid the double evaluation by tracking the return value in
> a variable. Need to use a triple undescore '___ret' name to
> avoid a conflict with an existing double undescore '__ret'
> variable in the regmap code.
>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Cc: Lucas De Marchi <lucas.demarchi@intel.com>
> Cc: Dibin Moolakadan Subrahmanian <dibin.moolakadan.subrahmanian@intel.com>
> Cc: Imre Deak <imre.deak@intel.com>
> Cc: David Laight <david.laight.linux@gmail.com>
> Cc: Geert Uytterhoeven <geert+renesas@glider.be>
> Cc: Matt Wagantall <mattw@codeaurora.org>
> Cc: Dejin Zheng <zhengdejin5@gmail.com>
> Cc: intel-gfx@lists.freedesktop.org
> Cc: intel-xe@lists.freedesktop.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> ---
> include/linux/iopoll.h | 22 ++++++++++++++++++----
> 1 file changed, 18 insertions(+), 4 deletions(-)
>
> diff --git a/include/linux/iopoll.h b/include/linux/iopoll.h
> index 0d8186d3df03..69296e6adbf3 100644
> --- a/include/linux/iopoll.h
> +++ b/include/linux/iopoll.h
> @@ -36,23 +36,30 @@
> u64 __timeout_us = (timeout_us); \
> unsigned long __sleep_us = (sleep_us); \
> ktime_t __timeout = ktime_add_us(ktime_get(), __timeout_us); \
> + int ___ret; \
> might_sleep_if((__sleep_us) != 0); \
> if ((sleep_before_op) && __sleep_us) \
> usleep_range((__sleep_us >> 2) + 1, __sleep_us); \
> for (;;) { \
> op; \
> - if (cond) \
> + if (cond) { \
> + ___ret = 0; \
> break; \
> + } \
> if (__timeout_us && \
> ktime_compare(ktime_get(), __timeout) > 0) { \
> op; \
> + if (cond) \
> + ___ret = 0; \
> + else \
> + ___ret = -ETIMEDOUT; \
> break; \
> } \
> if (__sleep_us) \
> usleep_range((__sleep_us >> 2) + 1, __sleep_us); \
> cpu_relax(); \
> } \
> - (cond) ? 0 : -ETIMEDOUT; \
> + ___ret; \
> })
>
> /**
> @@ -83,6 +90,7 @@
> s64 __left_ns = __timeout_us * NSEC_PER_USEC; \
> unsigned long __delay_us = (delay_us); \
> u64 __delay_ns = __delay_us * NSEC_PER_USEC; \
> + int ___ret; \
> if ((delay_before_op) && __delay_us) { \
> udelay(__delay_us); \
> if (__timeout_us) \
> @@ -90,10 +98,16 @@
> } \
> for (;;) { \
> op; \
> - if (cond) \
> + if (cond) { \
> + ___ret = 0; \
> break; \
> + } \
> if (__timeout_us && __left_ns < 0) { \
> op; \
> + if (cond) \
> + ___ret = 0; \
> + else \
> + ___ret = -ETIMEDOUT; \
> break; \
> } \
> if (__delay_us) { \
> @@ -105,7 +119,7 @@
> if (__timeout_us) \
> __left_ns--; \
> } \
> - (cond) ? 0 : -ETIMEDOUT; \
> + ___ret; \
> })
>
> /**
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH 3/4] iopoll: Reorder the timeout handling in poll_timeout_us()
2025-07-02 22:34 ` [PATCH 3/4] iopoll: Reorder the timeout handling " Ville Syrjala
@ 2025-07-03 12:00 ` Jani Nikula
0 siblings, 0 replies; 23+ messages in thread
From: Jani Nikula @ 2025-07-03 12:00 UTC (permalink / raw)
To: Ville Syrjala, linux-kernel
Cc: Lucas De Marchi, Dibin Moolakadan Subrahmanian, Imre Deak,
David Laight, Geert Uytterhoeven, Matt Wagantall, Dejin Zheng,
intel-gfx, intel-xe, Ville Syrjälä
On Thu, 03 Jul 2025, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Currently poll_timeout_us() evaluates 'op' and 'cond' twice
> within the loop, once at the start, and a second time after
> the timeout check. While it's probably not a big deal to do
> it twice almost back to back, it does make the macro a bit messy.
>
> Simplify the implementation to evaluate the timeout at the
> very start, then follow up with 'op'/'cond', and finally
> check if the timeout did in fact happen or not.
>
> For good measure throw in a compiler barrier between the timeout
> and 'op'/'cond' evaluations to make sure the compiler can't reoder
> the operations (which could cause false positive timeouts).
> The similar i915 __wait_for() macro already has the barrier, though
> there it is between the 'op' and 'cond' evaluations, which seems
> like it could still allow 'op' and the timeout evaluations to get
> reordered incorrectly. I suppose the ktime_get() might itself act
> as a sufficient barrier here, but better safe than sorry I guess.
>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Cc: Lucas De Marchi <lucas.demarchi@intel.com>
> Cc: Dibin Moolakadan Subrahmanian <dibin.moolakadan.subrahmanian@intel.com>
> Cc: Imre Deak <imre.deak@intel.com>
> Cc: David Laight <david.laight.linux@gmail.com>
> Cc: Geert Uytterhoeven <geert+renesas@glider.be>
> Cc: Matt Wagantall <mattw@codeaurora.org>
> Cc: Dejin Zheng <zhengdejin5@gmail.com>
> Cc: intel-gfx@lists.freedesktop.org
> Cc: intel-xe@lists.freedesktop.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> ---
> include/linux/iopoll.h | 24 +++++++++++-------------
> 1 file changed, 11 insertions(+), 13 deletions(-)
>
> diff --git a/include/linux/iopoll.h b/include/linux/iopoll.h
> index 69296e6adbf3..0e0940a60fdb 100644
> --- a/include/linux/iopoll.h
> +++ b/include/linux/iopoll.h
> @@ -41,18 +41,17 @@
> if ((sleep_before_op) && __sleep_us) \
> usleep_range((__sleep_us >> 2) + 1, __sleep_us); \
> for (;;) { \
> + bool __expired = __timeout_us && \
> + ktime_compare(ktime_get(), __timeout) > 0; \
> + /* guarantee 'op' and 'cond' are evaluated after timeout expired */ \
> + barrier(); \
> op; \
> if (cond) { \
> ___ret = 0; \
> break; \
> } \
> - if (__timeout_us && \
> - ktime_compare(ktime_get(), __timeout) > 0) { \
> - op; \
> - if (cond) \
> - ___ret = 0; \
> - else \
> - ___ret = -ETIMEDOUT; \
> + if (__expired) { \
> + ___ret = -ETIMEDOUT; \
> break; \
> } \
> if (__sleep_us) \
> @@ -97,17 +96,16 @@
> __left_ns -= __delay_ns; \
> } \
> for (;;) { \
> + bool __expired = __timeout_us && __left_ns < 0; \
> + /* guarantee 'op' and 'cond' are evaluated after timeout expired */ \
> + barrier(); \
> op; \
> if (cond) { \
> ___ret = 0; \
> break; \
> } \
> - if (__timeout_us && __left_ns < 0) { \
> - op; \
> - if (cond) \
> - ___ret = 0; \
> - else \
> - ___ret = -ETIMEDOUT; \
> + if (__expired) { \
> + ___ret = -ETIMEDOUT; \
> break; \
> } \
> if (__delay_us) { \
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH 4/4] DO-NOT-MERGE: drm/i915: Use poll_timeout_us()
2025-07-02 22:34 ` [PATCH 4/4] DO-NOT-MERGE: drm/i915: Use poll_timeout_us() Ville Syrjala
@ 2025-07-03 12:12 ` Jani Nikula
2025-07-03 12:50 ` Ville Syrjälä
0 siblings, 1 reply; 23+ messages in thread
From: Jani Nikula @ 2025-07-03 12:12 UTC (permalink / raw)
To: Ville Syrjala, linux-kernel
Cc: Lucas De Marchi, Dibin Moolakadan Subrahmanian, Imre Deak,
David Laight, Geert Uytterhoeven, Matt Wagantall, Dejin Zheng,
intel-gfx, intel-xe, Ville Syrjälä
On Thu, 03 Jul 2025, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Make sure poll_timeout_us() works by using it in i915
> instead of the custom __wait_for().
>
> Remaining difference between two:
> | poll_timeout_us() | __wait_for()
> ---------------------------------------------------
> backoff | fixed interval | exponential
> usleep_range() | N/4+1 to N | N to N*2
> clock | MONOTONIC | MONOTONIC_RAW
>
> Just a test hack for now, proper conversion probably
> needs actual thought.
Agreed.
I feel pretty strongly about converting everything to use
poll_timeout_us() and poll_timeout_us_atomic() directly. I think the
plethora of wait_for variants in i915_utils.h is more confusing than
helpful (even if some of them are supposed to be "simpler"
alternatives). I also think the separate atomic variant is better than
magically deciding that based on delay length.
I'm also not all that convinced about the exponential wait. Not all of
the wait_for versions use it, and then it needs to have a max wait
anyway (we have an issue with xe not having that [1]). I believe callers
can decide on a sleep length that is appropriate for the timeout, case
by case, and gut feeling says it's probably fine. ;)
BR,
Jani.
[1] https://lore.kernel.org/r/fe44d12c701c3d410de6e0ebc1f08bae2eec10a1@intel.com
>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Cc: Lucas De Marchi <lucas.demarchi@intel.com>
> Cc: Dibin Moolakadan Subrahmanian <dibin.moolakadan.subrahmanian@intel.com>
> Cc: Imre Deak <imre.deak@intel.com>
> Cc: David Laight <david.laight.linux@gmail.com>
> Cc: Geert Uytterhoeven <geert+renesas@glider.be>
> Cc: Matt Wagantall <mattw@codeaurora.org>
> Cc: Dejin Zheng <zhengdejin5@gmail.com>
> Cc: intel-gfx@lists.freedesktop.org
> Cc: intel-xe@lists.freedesktop.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> drivers/gpu/drm/i915/i915_utils.h | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_utils.h b/drivers/gpu/drm/i915/i915_utils.h
> index f7fb40cfdb70..8509d1de1901 100644
> --- a/drivers/gpu/drm/i915/i915_utils.h
> +++ b/drivers/gpu/drm/i915/i915_utils.h
> @@ -32,6 +32,7 @@
> #include <linux/types.h>
> #include <linux/workqueue.h>
> #include <linux/sched/clock.h>
> +#include <linux/iopoll.h>
>
> #ifdef CONFIG_X86
> #include <asm/hypervisor.h>
> @@ -238,7 +239,7 @@ wait_remaining_ms_from_jiffies(unsigned long timestamp_jiffies, int to_wait_ms)
> * timeout could be due to preemption or similar and we've never had a chance to
> * check the condition before the timeout.
> */
> -#define __wait_for(OP, COND, US, Wmin, Wmax) ({ \
> +#define __wait_for_old(OP, COND, US, Wmin, Wmax) ({ \
> const ktime_t end__ = ktime_add_ns(ktime_get_raw(), 1000ll * (US)); \
> long wait__ = (Wmin); /* recommended min for usleep is 10 us */ \
> int ret__; \
> @@ -263,6 +264,8 @@ wait_remaining_ms_from_jiffies(unsigned long timestamp_jiffies, int to_wait_ms)
> ret__; \
> })
>
> +#define __wait_for(OP, COND, US, Wmin, Wmax) \
> + poll_timeout_us(OP, COND, (Wmin), (US), false)
> #define _wait_for(COND, US, Wmin, Wmax) __wait_for(, (COND), (US), (Wmin), \
> (Wmax))
> #define wait_for(COND, MS) _wait_for((COND), (MS) * 1000, 10, 1000)
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH 4/4] DO-NOT-MERGE: drm/i915: Use poll_timeout_us()
2025-07-03 12:12 ` Jani Nikula
@ 2025-07-03 12:50 ` Ville Syrjälä
0 siblings, 0 replies; 23+ messages in thread
From: Ville Syrjälä @ 2025-07-03 12:50 UTC (permalink / raw)
To: Jani Nikula
Cc: linux-kernel, Lucas De Marchi, Dibin Moolakadan Subrahmanian,
Imre Deak, David Laight, Geert Uytterhoeven, Matt Wagantall,
Dejin Zheng, intel-gfx, intel-xe
On Thu, Jul 03, 2025 at 03:12:39PM +0300, Jani Nikula wrote:
> On Thu, 03 Jul 2025, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >
> > Make sure poll_timeout_us() works by using it in i915
> > instead of the custom __wait_for().
> >
> > Remaining difference between two:
> > | poll_timeout_us() | __wait_for()
> > ---------------------------------------------------
> > backoff | fixed interval | exponential
> > usleep_range() | N/4+1 to N | N to N*2
> > clock | MONOTONIC | MONOTONIC_RAW
> >
> > Just a test hack for now, proper conversion probably
> > needs actual thought.
>
> Agreed.
>
> I feel pretty strongly about converting everything to use
> poll_timeout_us() and poll_timeout_us_atomic() directly. I think the
> plethora of wait_for variants in i915_utils.h is more confusing than
> helpful (even if some of them are supposed to be "simpler"
> alternatives). I also think the separate atomic variant is better than
> magically deciding that based on delay length.
>
> I'm also not all that convinced about the exponential wait. Not all of
> the wait_for versions use it, and then it needs to have a max wait
> anyway (we have an issue with xe not having that [1]). I believe callers
> can decide on a sleep length that is appropriate for the timeout, case
> by case, and gut feeling says it's probably fine. ;)
Yeah, we've not really done any work to justify the polling interval/backoff
strategy. At some point it would be nice to collect some statistics to see
what the typical wait durations are, and then perhaps tune the polling
interval on a case by case basis to be at least somewhat optimal (short
enough to not cause significant delays, but long enough to avoid excessive
polling).
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH 1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us()
2025-07-02 22:34 [PATCH 1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us() Ville Syrjala
` (6 preceding siblings ...)
2025-07-03 11:51 ` [PATCH 1/4] " Jani Nikula
@ 2025-07-03 14:28 ` Lucas De Marchi
2025-07-04 8:40 ` Jani Nikula
2025-07-04 14:34 ` ✗ Xe.CI.Full: failure for series starting with [1/4] " Patchwork
` (5 subsequent siblings)
13 siblings, 1 reply; 23+ messages in thread
From: Lucas De Marchi @ 2025-07-03 14:28 UTC (permalink / raw)
To: Ville Syrjala
Cc: linux-kernel, Jani Nikula, Dibin Moolakadan Subrahmanian,
Imre Deak, David Laight, Geert Uytterhoeven, Matt Wagantall,
Dejin Zheng, intel-gfx, intel-xe
On Thu, Jul 03, 2025 at 01:34:36AM +0300, Ville Syrjälä wrote:
>-#define read_poll_timeout(op, val, cond, sleep_us, timeout_us, \
>- sleep_before_read, args...) \
>+#define poll_timeout_us(op, cond, sleep_us, timeout_us, sleep_before_op) \
nit: could use use usec/msec etc that pairs nicely with USEC_PER_SEC
and friends, also used by tools like perf and are a little bit more
greppable than ms/us?
Lucas De Marchi
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH 1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us()
2025-07-03 14:28 ` Lucas De Marchi
@ 2025-07-04 8:40 ` Jani Nikula
0 siblings, 0 replies; 23+ messages in thread
From: Jani Nikula @ 2025-07-04 8:40 UTC (permalink / raw)
To: Lucas De Marchi, Ville Syrjala
Cc: linux-kernel, Dibin Moolakadan Subrahmanian, Imre Deak,
David Laight, Geert Uytterhoeven, Matt Wagantall, Dejin Zheng,
intel-gfx, intel-xe
On Thu, 03 Jul 2025, Lucas De Marchi <lucas.demarchi@intel.com> wrote:
> On Thu, Jul 03, 2025 at 01:34:36AM +0300, Ville Syrjälä wrote:
>>-#define read_poll_timeout(op, val, cond, sleep_us, timeout_us, \
>>- sleep_before_read, args...) \
>>+#define poll_timeout_us(op, cond, sleep_us, timeout_us, sleep_before_op) \
>
> nit: could use use usec/msec etc that pairs nicely with USEC_PER_SEC
> and friends, also used by tools like perf and are a little bit more
> greppable than ms/us?
This horrendous quick and dirty git grep popularity contest says _us/_ms
suffixes are much more popular than _usec/_msec in kernel:
$ git grep -aoh "_[mu]s\(ec\)\?[^a-zA-Z0-9_]" | sed 's/[^a-zA-Z0-9_]$//' | sort | uniq -c | sort -rn
8603 _us
5901 _ms
1214 _usec
736 _msec
BR,
Jani.
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 23+ messages in thread
* ✗ Xe.CI.Full: failure for series starting with [1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us()
2025-07-02 22:34 [PATCH 1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us() Ville Syrjala
` (7 preceding siblings ...)
2025-07-03 14:28 ` Lucas De Marchi
@ 2025-07-04 14:34 ` Patchwork
2025-07-08 13:16 ` [PATCH v2 1/4] " Ville Syrjala
` (4 subsequent siblings)
13 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2025-07-04 14:34 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 419 bytes --]
== Series Details ==
Series: series starting with [1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us()
URL : https://patchwork.freedesktop.org/series/151093/
State : failure
== Summary ==
ERROR: The runconfig 'xe-3337-6544e412d3a4f16dbd3fdbf0d4d97731388d4792_FULL' does not exist in the database
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v1/index.html
[-- Attachment #2: Type: text/html, Size: 984 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* [PATCH v2 1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us()
2025-07-02 22:34 [PATCH 1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us() Ville Syrjala
` (8 preceding siblings ...)
2025-07-04 14:34 ` ✗ Xe.CI.Full: failure for series starting with [1/4] " Patchwork
@ 2025-07-08 13:16 ` Ville Syrjala
2025-07-15 18:20 ` Ville Syrjälä
2025-07-08 14:46 ` ✗ CI.checkpatch: warning for series starting with [v2,1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us() (rev2) Patchwork
` (3 subsequent siblings)
13 siblings, 1 reply; 23+ messages in thread
From: Ville Syrjala @ 2025-07-08 13:16 UTC (permalink / raw)
To: linux-kernel
Cc: Ville Syrjälä, Lucas De Marchi,
Dibin Moolakadan Subrahmanian, Imre Deak, David Laight,
Geert Uytterhoeven, Matt Wagantall, Dejin Zheng, intel-gfx,
intel-xe, Jani Nikula
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
While read_poll_timeout() & co. were originally introduced just
for simple I/O usage scenarios they have since been generalized to
be useful in more cases.
However the interface is very cumbersome to use in the general case.
Attempt to make it more flexible by combining the 'op', 'var' and
'args' parameter into just a single 'op' that the caller can fully
specify.
For example i915 has one case where one might currently
have to write something like:
ret = read_poll_timeout(drm_dp_dpcd_read_byte, err,
err || (status & mask),
0 * 1000, 200 * 1000, false,
aux, DP_FEC_STATUS, &status);
which is practically illegible, but with the adjusted macro
we do:
ret = poll_timeout_us(err = drm_dp_dpcd_read_byte(aux, DP_FEC_STATUS, &status),
err || (status & mask),
0 * 1000, 200 * 1000, false);
which much easier to understand.
One could even combine the 'op' and 'cond' parameters into
one, but that might make the caller a bit too unwieldly with
assignments and checks being done on the same statement.
This makes poll_timeout_us() closer to the i915 __wait_for()
macro, with the main difference being that __wait_for() uses
expenential backoff as opposed to the fixed polling interval
used by poll_timeout_us(). Eventually we might be able to switch
(at least most of) i915 to use poll_timeout_us().
v2: Fix typos (Jani)
Fix delay_us docs for poll_timeout_us_atomic() (Jani)
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Dibin Moolakadan Subrahmanian <dibin.moolakadan.subrahmanian@intel.com>
Cc: Imre Deak <imre.deak@intel.com>
Cc: David Laight <david.laight.linux@gmail.com>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: Matt Wagantall <mattw@codeaurora.org>
Cc: Dejin Zheng <zhengdejin5@gmail.com>
Cc: intel-gfx@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-kernel@vger.kernel.org
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
include/linux/iopoll.h | 110 +++++++++++++++++++++++++++++------------
1 file changed, 78 insertions(+), 32 deletions(-)
diff --git a/include/linux/iopoll.h b/include/linux/iopoll.h
index 91324c331a4b..440aca5b4b59 100644
--- a/include/linux/iopoll.h
+++ b/include/linux/iopoll.h
@@ -14,41 +14,38 @@
#include <linux/io.h>
/**
- * read_poll_timeout - Periodically poll an address until a condition is
- * met or a timeout occurs
- * @op: accessor function (takes @args as its arguments)
- * @val: Variable to read the value into
- * @cond: Break condition (usually involving @val)
- * @sleep_us: Maximum time to sleep between reads in us (0 tight-loops). Please
- * read usleep_range() function description for details and
+ * poll_timeout_us - Periodically poll and perform an operation until
+ * a condition is met or a timeout occurs
+ *
+ * @op: Operation
+ * @cond: Break condition
+ * @sleep_us: Maximum time to sleep between operations in us (0 tight-loops).
+ * Please read usleep_range() function description for details and
* limitations.
* @timeout_us: Timeout in us, 0 means never timeout
- * @sleep_before_read: if it is true, sleep @sleep_us before read.
- * @args: arguments for @op poll
+ * @sleep_before_op: if it is true, sleep @sleep_us before operation.
*
* When available, you'll probably want to use one of the specialized
* macros defined below rather than this macro directly.
*
- * Returns: 0 on success and -ETIMEDOUT upon a timeout. In either
- * case, the last read value at @args is stored in @val. Must not
+ * Returns: 0 on success and -ETIMEDOUT upon a timeout. Must not
* be called from atomic context if sleep_us or timeout_us are used.
*/
-#define read_poll_timeout(op, val, cond, sleep_us, timeout_us, \
- sleep_before_read, args...) \
+#define poll_timeout_us(op, cond, sleep_us, timeout_us, sleep_before_op) \
({ \
u64 __timeout_us = (timeout_us); \
unsigned long __sleep_us = (sleep_us); \
ktime_t __timeout = ktime_add_us(ktime_get(), __timeout_us); \
might_sleep_if((__sleep_us) != 0); \
- if (sleep_before_read && __sleep_us) \
+ if ((sleep_before_op) && __sleep_us) \
usleep_range((__sleep_us >> 2) + 1, __sleep_us); \
for (;;) { \
- (val) = op(args); \
+ op; \
if (cond) \
break; \
if (__timeout_us && \
ktime_compare(ktime_get(), __timeout) > 0) { \
- (val) = op(args); \
+ op; \
break; \
} \
if (__sleep_us) \
@@ -59,17 +56,16 @@
})
/**
- * read_poll_timeout_atomic - Periodically poll an address until a condition is
- * met or a timeout occurs
- * @op: accessor function (takes @args as its arguments)
- * @val: Variable to read the value into
- * @cond: Break condition (usually involving @val)
- * @delay_us: Time to udelay between reads in us (0 tight-loops). Please
- * read udelay() function description for details and
+ * poll_timeout_us_atomic - Periodically poll and perform an operation until
+ * a condition is met or a timeout occurs
+ *
+ * @op: Operation
+ * @cond: Break condition
+ * @delay_us: Time to udelay between operations in us (0 tight-loops).
+ * Please read udelay() function description for details and
* limitations.
* @timeout_us: Timeout in us, 0 means never timeout
- * @delay_before_read: if it is true, delay @delay_us before read.
- * @args: arguments for @op poll
+ * @delay_before_op: if it is true, delay @delay_us before operation.
*
* This macro does not rely on timekeeping. Hence it is safe to call even when
* timekeeping is suspended, at the expense of an underestimation of wall clock
@@ -78,27 +74,26 @@
* When available, you'll probably want to use one of the specialized
* macros defined below rather than this macro directly.
*
- * Returns: 0 on success and -ETIMEDOUT upon a timeout. In either
- * case, the last read value at @args is stored in @val.
+ * Returns: 0 on success and -ETIMEDOUT upon a timeout.
*/
-#define read_poll_timeout_atomic(op, val, cond, delay_us, timeout_us, \
- delay_before_read, args...) \
+#define poll_timeout_us_atomic(op, cond, delay_us, timeout_us, \
+ delay_before_op) \
({ \
u64 __timeout_us = (timeout_us); \
s64 __left_ns = __timeout_us * NSEC_PER_USEC; \
unsigned long __delay_us = (delay_us); \
u64 __delay_ns = __delay_us * NSEC_PER_USEC; \
- if (delay_before_read && __delay_us) { \
+ if ((delay_before_op) && __delay_us) { \
udelay(__delay_us); \
if (__timeout_us) \
__left_ns -= __delay_ns; \
} \
for (;;) { \
- (val) = op(args); \
+ op; \
if (cond) \
break; \
if (__timeout_us && __left_ns < 0) { \
- (val) = op(args); \
+ op; \
break; \
} \
if (__delay_us) { \
@@ -113,6 +108,57 @@
(cond) ? 0 : -ETIMEDOUT; \
})
+/**
+ * read_poll_timeout - Periodically poll an address until a condition is
+ * met or a timeout occurs
+ * @op: accessor function (takes @args as its arguments)
+ * @val: Variable to read the value into
+ * @cond: Break condition (usually involving @val)
+ * @sleep_us: Maximum time to sleep between reads in us (0 tight-loops). Please
+ * read usleep_range() function description for details and
+ * limitations.
+ * @timeout_us: Timeout in us, 0 means never timeout
+ * @sleep_before_read: if it is true, sleep @sleep_us before read.
+ * @args: arguments for @op poll
+ *
+ * When available, you'll probably want to use one of the specialized
+ * macros defined below rather than this macro directly.
+ *
+ * Returns: 0 on success and -ETIMEDOUT upon a timeout. In either
+ * case, the last read value at @args is stored in @val. Must not
+ * be called from atomic context if sleep_us or timeout_us are used.
+ */
+#define read_poll_timeout(op, val, cond, sleep_us, timeout_us, \
+ sleep_before_read, args...) \
+ poll_timeout_us((val) = op(args), cond, sleep_us, timeout_us, sleep_before_read)
+
+/**
+ * read_poll_timeout_atomic - Periodically poll an address until a condition is
+ * met or a timeout occurs
+ * @op: accessor function (takes @args as its arguments)
+ * @val: Variable to read the value into
+ * @cond: Break condition (usually involving @val)
+ * @delay_us: Time to udelay between reads in us (0 tight-loops). Please
+ * read udelay() function description for details and
+ * limitations.
+ * @timeout_us: Timeout in us, 0 means never timeout
+ * @delay_before_read: if it is true, delay @delay_us before read.
+ * @args: arguments for @op poll
+ *
+ * This macro does not rely on timekeeping. Hence it is safe to call even when
+ * timekeeping is suspended, at the expense of an underestimation of wall clock
+ * time, which is rather minimal with a non-zero delay_us.
+ *
+ * When available, you'll probably want to use one of the specialized
+ * macros defined below rather than this macro directly.
+ *
+ * Returns: 0 on success and -ETIMEDOUT upon a timeout. In either
+ * case, the last read value at @args is stored in @val.
+ */
+#define read_poll_timeout_atomic(op, val, cond, sleep_us, timeout_us, \
+ sleep_before_read, args...) \
+ poll_timeout_us_atomic((val) = op(args), cond, sleep_us, timeout_us, sleep_before_read)
+
/**
* readx_poll_timeout - Periodically poll an address until a condition is met or a timeout occurs
* @op: accessor function (takes @addr as its only argument)
--
2.49.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* ✗ CI.checkpatch: warning for series starting with [v2,1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us() (rev2)
2025-07-02 22:34 [PATCH 1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us() Ville Syrjala
` (9 preceding siblings ...)
2025-07-08 13:16 ` [PATCH v2 1/4] " Ville Syrjala
@ 2025-07-08 14:46 ` Patchwork
2025-07-08 14:47 ` ✓ CI.KUnit: success " Patchwork
` (2 subsequent siblings)
13 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2025-07-08 14:46 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: intel-xe
== Series Details ==
Series: series starting with [v2,1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us() (rev2)
URL : https://patchwork.freedesktop.org/series/151093/
State : warning
== Summary ==
+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt
Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master
43254c2aa575037fc031c7ac21b0d031c700b2bf
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit 95986909150858997f74d7f0919360708bae8cf1
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date: Thu Jul 3 01:34:39 2025 +0300
DO-NOT-MERGE: drm/i915: Use poll_timeout_us()
Make sure poll_timeout_us() works by using it in i915
instead of the custom __wait_for().
Remaining difference between two:
| poll_timeout_us() | __wait_for()
---------------------------------------------------
backoff | fixed interval | exponential
usleep_range() | N/4+1 to N | N to N*2
clock | MONOTONIC | MONOTONIC_RAW
Just a test hack for now, proper conversion probably
needs actual thought.
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Dibin Moolakadan Subrahmanian <dibin.moolakadan.subrahmanian@intel.com>
Cc: Imre Deak <imre.deak@intel.com>
Cc: David Laight <david.laight.linux@gmail.com>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: Matt Wagantall <mattw@codeaurora.org>
Cc: Dejin Zheng <zhengdejin5@gmail.com>
Cc: intel-gfx@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
+ /mt/dim checkpatch 56ce5c21690fd8995ee447f790a15485cb49b996 drm-intel
bdb9d3fe673e iopoll: Generalize read_poll_timeout() into poll_timeout_us()
-:26: WARNING:COMMIT_LOG_LONG_LINE: Prefer a maximum 75 chars per line (possible unwrapped commit description?)
#26:
ret = poll_timeout_us(err = drm_dp_dpcd_read_byte(aux, DP_FEC_STATUS, &status),
-:95: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'op' - possible side-effects?
#95: FILE: include/linux/iopoll.h:34:
+#define poll_timeout_us(op, cond, sleep_us, timeout_us, sleep_before_op) \
({ \
u64 __timeout_us = (timeout_us); \
unsigned long __sleep_us = (sleep_us); \
ktime_t __timeout = ktime_add_us(ktime_get(), __timeout_us); \
might_sleep_if((__sleep_us) != 0); \
+ if ((sleep_before_op) && __sleep_us) \
usleep_range((__sleep_us >> 2) + 1, __sleep_us); \
for (;;) { \
+ op; \
if (cond) \
break; \
if (__timeout_us && \
ktime_compare(ktime_get(), __timeout) > 0) { \
+ op; \
break; \
} \
if (__sleep_us) \
-:152: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'op' - possible side-effects?
#152: FILE: include/linux/iopoll.h:79:
+#define poll_timeout_us_atomic(op, cond, delay_us, timeout_us, \
+ delay_before_op) \
({ \
u64 __timeout_us = (timeout_us); \
s64 __left_ns = __timeout_us * NSEC_PER_USEC; \
unsigned long __delay_us = (delay_us); \
u64 __delay_ns = __delay_us * NSEC_PER_USEC; \
+ if ((delay_before_op) && __delay_us) { \
udelay(__delay_us); \
if (__timeout_us) \
__left_ns -= __delay_ns; \
} \
for (;;) { \
+ op; \
if (cond) \
break; \
if (__timeout_us && __left_ns < 0) { \
+ op; \
break; \
} \
if (__delay_us) { \
total: 0 errors, 1 warnings, 2 checks, 169 lines checked
51c3fadabdef iopoll: Avoid evaluating 'cond' twice in poll_timeout_us()
caef1ee3ae50 iopoll: Reorder the timeout handling in poll_timeout_us()
959869091508 DO-NOT-MERGE: drm/i915: Use poll_timeout_us()
-:52: CHECK:CAMELCASE: Avoid CamelCase: <Wmin>
#52: FILE: drivers/gpu/drm/i915/i915_utils.h:242:
+#define __wait_for_old(OP, COND, US, Wmin, Wmax) ({ \
-:52: CHECK:CAMELCASE: Avoid CamelCase: <Wmax>
#52: FILE: drivers/gpu/drm/i915/i915_utils.h:242:
+#define __wait_for_old(OP, COND, US, Wmin, Wmax) ({ \
-:52: WARNING:MACRO_ARG_UNUSED: Argument 'OP' is not used in function-like macro
#52: FILE: drivers/gpu/drm/i915/i915_utils.h:242:
+#define __wait_for_old(OP, COND, US, Wmin, Wmax) ({ \
const ktime_t end__ = ktime_add_ns(ktime_get_raw(), 1000ll * (US)); \
long wait__ = (Wmin); /* recommended min for usleep is 10 us */ \
int ret__; \
-:52: WARNING:MACRO_ARG_UNUSED: Argument 'COND' is not used in function-like macro
#52: FILE: drivers/gpu/drm/i915/i915_utils.h:242:
+#define __wait_for_old(OP, COND, US, Wmin, Wmax) ({ \
const ktime_t end__ = ktime_add_ns(ktime_get_raw(), 1000ll * (US)); \
long wait__ = (Wmin); /* recommended min for usleep is 10 us */ \
int ret__; \
-:52: WARNING:MACRO_ARG_UNUSED: Argument 'Wmax' is not used in function-like macro
#52: FILE: drivers/gpu/drm/i915/i915_utils.h:242:
+#define __wait_for_old(OP, COND, US, Wmin, Wmax) ({ \
const ktime_t end__ = ktime_add_ns(ktime_get_raw(), 1000ll * (US)); \
long wait__ = (Wmin); /* recommended min for usleep is 10 us */ \
int ret__; \
-:60: WARNING:MACRO_ARG_UNUSED: Argument 'Wmax' is not used in function-like macro
#60: FILE: drivers/gpu/drm/i915/i915_utils.h:267:
+#define __wait_for(OP, COND, US, Wmin, Wmax) \
+ poll_timeout_us(OP, COND, (Wmin), (US), false)
total: 0 errors, 4 warnings, 2 checks, 23 lines checked
^ permalink raw reply [flat|nested] 23+ messages in thread
* ✓ CI.KUnit: success for series starting with [v2,1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us() (rev2)
2025-07-02 22:34 [PATCH 1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us() Ville Syrjala
` (10 preceding siblings ...)
2025-07-08 14:46 ` ✗ CI.checkpatch: warning for series starting with [v2,1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us() (rev2) Patchwork
@ 2025-07-08 14:47 ` Patchwork
2025-07-08 15:28 ` ✓ Xe.CI.BAT: " Patchwork
2025-07-08 16:46 ` ✗ Xe.CI.Full: failure " Patchwork
13 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2025-07-08 14:47 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: intel-xe
== Series Details ==
Series: series starting with [v2,1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us() (rev2)
URL : https://patchwork.freedesktop.org/series/151093/
State : success
== Summary ==
+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[14:46:07] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[14:46:11] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[14:46:38] Starting KUnit Kernel (1/1)...
[14:46:38] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[14:46:38] ================== guc_buf (11 subtests) ===================
[14:46:38] [PASSED] test_smallest
[14:46:38] [PASSED] test_largest
[14:46:38] [PASSED] test_granular
[14:46:38] [PASSED] test_unique
[14:46:38] [PASSED] test_overlap
[14:46:38] [PASSED] test_reusable
[14:46:38] [PASSED] test_too_big
[14:46:38] [PASSED] test_flush
[14:46:38] [PASSED] test_lookup
[14:46:38] [PASSED] test_data
[14:46:38] [PASSED] test_class
[14:46:38] ===================== [PASSED] guc_buf =====================
[14:46:38] =================== guc_dbm (7 subtests) ===================
[14:46:38] [PASSED] test_empty
[14:46:38] [PASSED] test_default
[14:46:38] ======================== test_size ========================
[14:46:38] [PASSED] 4
[14:46:38] [PASSED] 8
[14:46:38] [PASSED] 32
[14:46:38] [PASSED] 256
[14:46:38] ==================== [PASSED] test_size ====================
[14:46:38] ======================= test_reuse ========================
[14:46:38] [PASSED] 4
[14:46:38] [PASSED] 8
[14:46:38] [PASSED] 32
[14:46:38] [PASSED] 256
[14:46:38] =================== [PASSED] test_reuse ====================
[14:46:38] =================== test_range_overlap ====================
[14:46:38] [PASSED] 4
[14:46:38] [PASSED] 8
[14:46:38] [PASSED] 32
[14:46:38] [PASSED] 256
[14:46:38] =============== [PASSED] test_range_overlap ================
[14:46:38] =================== test_range_compact ====================
[14:46:38] [PASSED] 4
[14:46:38] [PASSED] 8
[14:46:38] [PASSED] 32
[14:46:38] [PASSED] 256
[14:46:38] =============== [PASSED] test_range_compact ================
[14:46:38] ==================== test_range_spare =====================
[14:46:38] [PASSED] 4
[14:46:38] [PASSED] 8
[14:46:38] [PASSED] 32
[14:46:38] [PASSED] 256
[14:46:38] ================ [PASSED] test_range_spare =================
[14:46:38] ===================== [PASSED] guc_dbm =====================
[14:46:38] =================== guc_idm (6 subtests) ===================
[14:46:38] [PASSED] bad_init
[14:46:38] [PASSED] no_init
[14:46:38] [PASSED] init_fini
[14:46:38] [PASSED] check_used
[14:46:38] [PASSED] check_quota
[14:46:38] [PASSED] check_all
[14:46:38] ===================== [PASSED] guc_idm =====================
[14:46:38] ================== no_relay (3 subtests) ===================
[14:46:38] [PASSED] xe_drops_guc2pf_if_not_ready
[14:46:38] [PASSED] xe_drops_guc2vf_if_not_ready
[14:46:38] [PASSED] xe_rejects_send_if_not_ready
[14:46:38] ==================== [PASSED] no_relay =====================
[14:46:38] ================== pf_relay (14 subtests) ==================
[14:46:38] [PASSED] pf_rejects_guc2pf_too_short
[14:46:38] [PASSED] pf_rejects_guc2pf_too_long
[14:46:38] [PASSED] pf_rejects_guc2pf_no_payload
[14:46:38] [PASSED] pf_fails_no_payload
[14:46:38] [PASSED] pf_fails_bad_origin
[14:46:38] [PASSED] pf_fails_bad_type
[14:46:38] [PASSED] pf_txn_reports_error
[14:46:38] [PASSED] pf_txn_sends_pf2guc
[14:46:38] [PASSED] pf_sends_pf2guc
[14:46:38] [SKIPPED] pf_loopback_nop
[14:46:38] [SKIPPED] pf_loopback_echo
[14:46:38] [SKIPPED] pf_loopback_fail
[14:46:38] [SKIPPED] pf_loopback_busy
[14:46:38] [SKIPPED] pf_loopback_retry
[14:46:38] ==================== [PASSED] pf_relay =====================
[14:46:38] ================== vf_relay (3 subtests) ===================
[14:46:38] [PASSED] vf_rejects_guc2vf_too_short
[14:46:38] [PASSED] vf_rejects_guc2vf_too_long
[14:46:38] [PASSED] vf_rejects_guc2vf_no_payload
[14:46:38] ==================== [PASSED] vf_relay =====================
[14:46:38] ================= pf_service (11 subtests) =================
[14:46:38] [PASSED] pf_negotiate_any
[14:46:38] [PASSED] pf_negotiate_base_match
[14:46:38] [PASSED] pf_negotiate_base_newer
[14:46:38] [PASSED] pf_negotiate_base_next
[14:46:38] [SKIPPED] pf_negotiate_base_older
[14:46:38] [PASSED] pf_negotiate_base_prev
[14:46:38] [PASSED] pf_negotiate_latest_match
[14:46:38] [PASSED] pf_negotiate_latest_newer
[14:46:38] [PASSED] pf_negotiate_latest_next
[14:46:38] [SKIPPED] pf_negotiate_latest_older
[14:46:38] [SKIPPED] pf_negotiate_latest_prev
[14:46:38] =================== [PASSED] pf_service ====================
[14:46:38] ===================== lmtt (1 subtest) =====================
[14:46:38] ======================== test_ops =========================
[14:46:38] [PASSED] 2-level
[14:46:38] [PASSED] multi-level
[14:46:38] ==================== [PASSED] test_ops =====================
[14:46:38] ====================== [PASSED] lmtt =======================
[14:46:38] =================== xe_mocs (2 subtests) ===================
[14:46:38] ================ xe_live_mocs_kernel_kunit ================
[14:46:38] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[14:46:38] ================ xe_live_mocs_reset_kunit =================
[14:46:38] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[14:46:38] ==================== [SKIPPED] xe_mocs =====================
[14:46:38] ================= xe_migrate (2 subtests) ==================
[14:46:38] ================= xe_migrate_sanity_kunit =================
[14:46:38] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[14:46:38] ================== xe_validate_ccs_kunit ==================
[14:46:38] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[14:46:38] =================== [SKIPPED] xe_migrate ===================
[14:46:38] ================== xe_dma_buf (1 subtest) ==================
[14:46:38] ==================== xe_dma_buf_kunit =====================
[14:46:38] ================ [SKIPPED] xe_dma_buf_kunit ================
[14:46:38] =================== [SKIPPED] xe_dma_buf ===================
[14:46:38] ================= xe_bo_shrink (1 subtest) =================
[14:46:38] =================== xe_bo_shrink_kunit ====================
[14:46:38] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[14:46:38] ================== [SKIPPED] xe_bo_shrink ==================
[14:46:38] ==================== xe_bo (2 subtests) ====================
[14:46:38] ================== xe_ccs_migrate_kunit ===================
[14:46:38] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[14:46:38] ==================== xe_bo_evict_kunit ====================
[14:46:38] =============== [SKIPPED] xe_bo_evict_kunit ================
[14:46:38] ===================== [SKIPPED] xe_bo ======================
[14:46:38] ==================== args (11 subtests) ====================
[14:46:38] [PASSED] count_args_test
[14:46:38] [PASSED] call_args_example
[14:46:38] [PASSED] call_args_test
[14:46:38] [PASSED] drop_first_arg_example
[14:46:38] [PASSED] drop_first_arg_test
[14:46:38] [PASSED] first_arg_example
[14:46:38] [PASSED] first_arg_test
[14:46:38] [PASSED] last_arg_example
[14:46:38] [PASSED] last_arg_test
[14:46:38] [PASSED] pick_arg_example
[14:46:38] [PASSED] sep_comma_example
[14:46:38] ====================== [PASSED] args =======================
[14:46:38] =================== xe_pci (3 subtests) ====================
[14:46:38] ==================== check_graphics_ip ====================
[14:46:38] [PASSED] 12.70 Xe_LPG
[14:46:38] [PASSED] 12.71 Xe_LPG
[14:46:38] [PASSED] 12.74 Xe_LPG+
[14:46:38] [PASSED] 20.01 Xe2_HPG
[14:46:38] [PASSED] 20.02 Xe2_HPG
[14:46:38] [PASSED] 20.04 Xe2_LPG
[14:46:38] [PASSED] 30.00 Xe3_LPG
[14:46:38] [PASSED] 30.01 Xe3_LPG
[14:46:38] [PASSED] 30.03 Xe3_LPG
[14:46:38] ================ [PASSED] check_graphics_ip ================
[14:46:38] ===================== check_media_ip ======================
[14:46:38] [PASSED] 13.00 Xe_LPM+
[14:46:38] [PASSED] 13.01 Xe2_HPM
[14:46:38] [PASSED] 20.00 Xe2_LPM
[14:46:38] [PASSED] 30.00 Xe3_LPM
[14:46:38] [PASSED] 30.02 Xe3_LPM
[14:46:38] ================= [PASSED] check_media_ip ==================
[14:46:38] ================= check_platform_gt_count =================
[14:46:38] [PASSED] 0x9A60 (TIGERLAKE)
[14:46:38] [PASSED] 0x9A68 (TIGERLAKE)
[14:46:38] [PASSED] 0x9A70 (TIGERLAKE)
[14:46:38] [PASSED] 0x9A40 (TIGERLAKE)
[14:46:38] [PASSED] 0x9A49 (TIGERLAKE)
[14:46:38] [PASSED] 0x9A59 (TIGERLAKE)
[14:46:38] [PASSED] 0x9A78 (TIGERLAKE)
[14:46:38] [PASSED] 0x9AC0 (TIGERLAKE)
[14:46:38] [PASSED] 0x9AC9 (TIGERLAKE)
[14:46:38] [PASSED] 0x9AD9 (TIGERLAKE)
[14:46:38] [PASSED] 0x9AF8 (TIGERLAKE)
[14:46:38] [PASSED] 0x4C80 (ROCKETLAKE)
[14:46:38] [PASSED] 0x4C8A (ROCKETLAKE)
[14:46:38] [PASSED] 0x4C8B (ROCKETLAKE)
[14:46:38] [PASSED] 0x4C8C (ROCKETLAKE)
[14:46:38] [PASSED] 0x4C90 (ROCKETLAKE)
[14:46:38] [PASSED] 0x4C9A (ROCKETLAKE)
[14:46:38] [PASSED] 0x4680 (ALDERLAKE_S)
[14:46:38] [PASSED] 0x4682 (ALDERLAKE_S)
[14:46:38] [PASSED] 0x4688 (ALDERLAKE_S)
[14:46:38] [PASSED] 0x468A (ALDERLAKE_S)
[14:46:38] [PASSED] 0x468B (ALDERLAKE_S)
[14:46:38] [PASSED] 0x4690 (ALDERLAKE_S)
[14:46:38] [PASSED] 0x4692 (ALDERLAKE_S)
[14:46:38] [PASSED] 0x4693 (ALDERLAKE_S)
[14:46:38] [PASSED] 0x46A0 (ALDERLAKE_P)
[14:46:38] [PASSED] 0x46A1 (ALDERLAKE_P)
[14:46:38] [PASSED] 0x46A2 (ALDERLAKE_P)
[14:46:38] [PASSED] 0x46A3 (ALDERLAKE_P)
[14:46:38] [PASSED] 0x46A6 (ALDERLAKE_P)
[14:46:38] [PASSED] 0x46A8 (ALDERLAKE_P)
[14:46:38] [PASSED] 0x46AA (ALDERLAKE_P)
[14:46:38] [PASSED] 0x462A (ALDERLAKE_P)
[14:46:38] [PASSED] 0x4626 (ALDERLAKE_P)
[14:46:38] [PASSED] 0x4628 (ALDERLAKE_P)
[14:46:38] [PASSED] 0x46B0 (ALDERLAKE_P)
[14:46:38] [PASSED] 0x46B1 (ALDERLAKE_P)
[14:46:38] [PASSED] 0x46B2 (ALDERLAKE_P)
[14:46:38] [PASSED] 0x46B3 (ALDERLAKE_P)
[14:46:38] [PASSED] 0x46C0 (ALDERLAKE_P)
[14:46:38] [PASSED] 0x46C1 (ALDERLAKE_P)
[14:46:38] [PASSED] 0x46C2 (ALDERLAKE_P)
[14:46:38] [PASSED] 0x46C3 (ALDERLAKE_P)
[14:46:38] [PASSED] 0x46D0 (ALDERLAKE_N)
[14:46:38] [PASSED] 0x46D1 (ALDERLAKE_N)
[14:46:38] [PASSED] 0x46D2 (ALDERLAKE_N)
[14:46:38] [PASSED] 0x46D3 (ALDERLAKE_N)
[14:46:38] [PASSED] 0x46D4 (ALDERLAKE_N)
[14:46:38] [PASSED] 0xA721 (ALDERLAKE_P)
[14:46:38] [PASSED] 0xA7A1 (ALDERLAKE_P)
[14:46:38] [PASSED] 0xA7A9 (ALDERLAKE_P)
[14:46:38] [PASSED] 0xA7AC (ALDERLAKE_P)
[14:46:38] [PASSED] 0xA7AD (ALDERLAKE_P)
[14:46:38] [PASSED] 0xA720 (ALDERLAKE_P)
[14:46:38] [PASSED] 0xA7A0 (ALDERLAKE_P)
[14:46:38] [PASSED] 0xA7A8 (ALDERLAKE_P)
[14:46:38] [PASSED] 0xA7AA (ALDERLAKE_P)
[14:46:38] [PASSED] 0xA7AB (ALDERLAKE_P)
[14:46:38] [PASSED] 0xA780 (ALDERLAKE_S)
[14:46:38] [PASSED] 0xA781 (ALDERLAKE_S)
[14:46:38] [PASSED] 0xA782 (ALDERLAKE_S)
[14:46:38] [PASSED] 0xA783 (ALDERLAKE_S)
[14:46:38] [PASSED] 0xA788 (ALDERLAKE_S)
[14:46:38] [PASSED] 0xA789 (ALDERLAKE_S)
[14:46:38] [PASSED] 0xA78A (ALDERLAKE_S)
[14:46:38] [PASSED] 0xA78B (ALDERLAKE_S)
[14:46:38] [PASSED] 0x4905 (DG1)
[14:46:38] [PASSED] 0x4906 (DG1)
[14:46:38] [PASSED] 0x4907 (DG1)
[14:46:38] [PASSED] 0x4908 (DG1)
[14:46:38] [PASSED] 0x4909 (DG1)
[14:46:38] [PASSED] 0x56C0 (DG2)
[14:46:38] [PASSED] 0x56C2 (DG2)
[14:46:38] [PASSED] 0x56C1 (DG2)
[14:46:38] [PASSED] 0x7D51 (METEORLAKE)
[14:46:38] [PASSED] 0x7DD1 (METEORLAKE)
[14:46:38] [PASSED] 0x7D41 (METEORLAKE)
[14:46:38] [PASSED] 0x7D67 (METEORLAKE)
[14:46:38] [PASSED] 0xB640 (METEORLAKE)
[14:46:38] [PASSED] 0x56A0 (DG2)
[14:46:38] [PASSED] 0x56A1 (DG2)
[14:46:38] [PASSED] 0x56A2 (DG2)
[14:46:38] [PASSED] 0x56BE (DG2)
[14:46:38] [PASSED] 0x56BF (DG2)
[14:46:38] [PASSED] 0x5690 (DG2)
[14:46:38] [PASSED] 0x5691 (DG2)
[14:46:38] [PASSED] 0x5692 (DG2)
[14:46:38] [PASSED] 0x56A5 (DG2)
[14:46:38] [PASSED] 0x56A6 (DG2)
[14:46:38] [PASSED] 0x56B0 (DG2)
[14:46:38] [PASSED] 0x56B1 (DG2)
[14:46:38] [PASSED] 0x56BA (DG2)
[14:46:38] [PASSED] 0x56BB (DG2)
[14:46:38] [PASSED] 0x56BC (DG2)
[14:46:38] [PASSED] 0x56BD (DG2)
[14:46:38] [PASSED] 0x5693 (DG2)
[14:46:38] [PASSED] 0x5694 (DG2)
[14:46:38] [PASSED] 0x5695 (DG2)
[14:46:38] [PASSED] 0x56A3 (DG2)
[14:46:38] [PASSED] 0x56A4 (DG2)
[14:46:38] [PASSED] 0x56B2 (DG2)
[14:46:38] [PASSED] 0x56B3 (DG2)
[14:46:38] [PASSED] 0x5696 (DG2)
[14:46:38] [PASSED] 0x5697 (DG2)
[14:46:38] [PASSED] 0xB69 (PVC)
[14:46:38] [PASSED] 0xB6E (PVC)
[14:46:38] [PASSED] 0xBD4 (PVC)
[14:46:38] [PASSED] 0xBD5 (PVC)
[14:46:38] [PASSED] 0xBD6 (PVC)
[14:46:38] [PASSED] 0xBD7 (PVC)
[14:46:38] [PASSED] 0xBD8 (PVC)
[14:46:38] [PASSED] 0xBD9 (PVC)
[14:46:38] [PASSED] 0xBDA (PVC)
[14:46:38] [PASSED] 0xBDB (PVC)
[14:46:38] [PASSED] 0xBE0 (PVC)
[14:46:38] [PASSED] 0xBE1 (PVC)
[14:46:38] [PASSED] 0xBE5 (PVC)
[14:46:38] [PASSED] 0x7D40 (METEORLAKE)
[14:46:38] [PASSED] 0x7D45 (METEORLAKE)
[14:46:38] [PASSED] 0x7D55 (METEORLAKE)
[14:46:38] [PASSED] 0x7D60 (METEORLAKE)
[14:46:38] [PASSED] 0x7DD5 (METEORLAKE)
[14:46:38] [PASSED] 0x6420 (LUNARLAKE)
[14:46:38] [PASSED] 0x64A0 (LUNARLAKE)
[14:46:38] [PASSED] 0x64B0 (LUNARLAKE)
[14:46:38] [PASSED] 0xE202 (BATTLEMAGE)
[14:46:38] [PASSED] 0xE209 (BATTLEMAGE)
[14:46:38] [PASSED] 0xE20B (BATTLEMAGE)
[14:46:38] [PASSED] 0xE20C (BATTLEMAGE)
[14:46:38] [PASSED] 0xE20D (BATTLEMAGE)
[14:46:38] [PASSED] 0xE210 (BATTLEMAGE)
[14:46:38] [PASSED] 0xE211 (BATTLEMAGE)
[14:46:38] [PASSED] 0xE212 (BATTLEMAGE)
[14:46:38] [PASSED] 0xE216 (BATTLEMAGE)
[14:46:38] [PASSED] 0xE220 (BATTLEMAGE)
[14:46:38] [PASSED] 0xE221 (BATTLEMAGE)
[14:46:38] [PASSED] 0xE222 (BATTLEMAGE)
[14:46:38] [PASSED] 0xE223 (BATTLEMAGE)
[14:46:38] [PASSED] 0xB080 (PANTHERLAKE)
[14:46:38] [PASSED] 0xB081 (PANTHERLAKE)
[14:46:38] [PASSED] 0xB082 (PANTHERLAKE)
[14:46:38] [PASSED] 0xB083 (PANTHERLAKE)
[14:46:38] [PASSED] 0xB084 (PANTHERLAKE)
[14:46:38] [PASSED] 0xB085 (PANTHERLAKE)
[14:46:38] [PASSED] 0xB086 (PANTHERLAKE)
[14:46:38] [PASSED] 0xB087 (PANTHERLAKE)
[14:46:38] [PASSED] 0xB08F (PANTHERLAKE)
[14:46:38] [PASSED] 0xB090 (PANTHERLAKE)
[14:46:38] [PASSED] 0xB0A0 (PANTHERLAKE)
[14:46:38] [PASSED] 0xB0B0 (PANTHERLAKE)
[14:46:38] [PASSED] 0xFD80 (PANTHERLAKE)
[14:46:38] [PASSED] 0xFD81 (PANTHERLAKE)
[14:46:38] ============= [PASSED] check_platform_gt_count =============
[14:46:38] ===================== [PASSED] xe_pci ======================
[14:46:38] =================== xe_rtp (2 subtests) ====================
[14:46:38] =============== xe_rtp_process_to_sr_tests ================
[14:46:38] [PASSED] coalesce-same-reg
[14:46:38] [PASSED] no-match-no-add
[14:46:38] [PASSED] match-or
[14:46:38] [PASSED] match-or-xfail
[14:46:38] [PASSED] no-match-no-add-multiple-rules
[14:46:38] [PASSED] two-regs-two-entries
[14:46:38] [PASSED] clr-one-set-other
[14:46:38] [PASSED] set-field
[14:46:38] [PASSED] conflict-duplicate
[14:46:38] [PASSED] conflict-not-disjoint
[14:46:38] [PASSED] conflict-reg-type
[14:46:38] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[14:46:38] ================== xe_rtp_process_tests ===================
[14:46:38] [PASSED] active1
[14:46:38] [PASSED] active2
[14:46:38] [PASSED] active-inactive
[14:46:38] [PASSED] inactive-active
[14:46:38] [PASSED] inactive-1st_or_active-inactive
[14:46:38] [PASSED] inactive-2nd_or_active-inactive
[14:46:38] [PASSED] inactive-last_or_active-inactive
[14:46:38] [PASSED] inactive-no_or_active-inactive
[14:46:38] ============== [PASSED] xe_rtp_process_tests ===============
[14:46:38] ===================== [PASSED] xe_rtp ======================
[14:46:38] ==================== xe_wa (1 subtest) =====================
[14:46:38] ======================== xe_wa_gt =========================
[14:46:38] [PASSED] TIGERLAKE (B0)
[14:46:38] [PASSED] DG1 (A0)
[14:46:38] [PASSED] DG1 (B0)
[14:46:38] [PASSED] ALDERLAKE_S (A0)
[14:46:38] [PASSED] ALDERLAKE_S (B0)
[14:46:38] [PASSED] ALDERLAKE_S (C0)
[14:46:38] [PASSED] ALDERLAKE_S (D0)
[14:46:38] [PASSED] ALDERLAKE_P (A0)
[14:46:38] [PASSED] ALDERLAKE_P (B0)
[14:46:38] [PASSED] ALDERLAKE_P (C0)
[14:46:38] [PASSED] ALDERLAKE_S_RPLS (D0)
[14:46:38] [PASSED] ALDERLAKE_P_RPLU (E0)
[14:46:38] [PASSED] DG2_G10 (C0)
[14:46:38] [PASSED] DG2_G11 (B1)
[14:46:38] [PASSED] DG2_G12 (A1)
[14:46:38] [PASSED] METEORLAKE (g:A0, m:A0)
[14:46:38] [PASSED] METEORLAKE (g:A0, m:A0)
[14:46:38] [PASSED] METEORLAKE (g:A0, m:A0)
[14:46:38] [PASSED] LUNARLAKE (g:A0, m:A0)
[14:46:38] [PASSED] LUNARLAKE (g:B0, m:A0)
stty: 'standard input': Inappropriate ioctl for device
[14:46:38] [PASSED] BATTLEMAGE (g:A0, m:A1)
[14:46:38] ==================== [PASSED] xe_wa_gt =====================
[14:46:38] ====================== [PASSED] xe_wa ======================
[14:46:38] ============================================================
[14:46:38] Testing complete. Ran 297 tests: passed: 281, skipped: 16
[14:46:38] Elapsed time: 31.386s total, 4.238s configuring, 26.781s building, 0.310s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[14:46:38] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[14:46:40] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[14:47:01] Starting KUnit Kernel (1/1)...
[14:47:01] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[14:47:01] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[14:47:01] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[14:47:01] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[14:47:01] =========== drm_validate_clone_mode (2 subtests) ===========
[14:47:01] ============== drm_test_check_in_clone_mode ===============
[14:47:01] [PASSED] in_clone_mode
[14:47:01] [PASSED] not_in_clone_mode
[14:47:01] ========== [PASSED] drm_test_check_in_clone_mode ===========
[14:47:01] =============== drm_test_check_valid_clones ===============
[14:47:01] [PASSED] not_in_clone_mode
[14:47:01] [PASSED] valid_clone
[14:47:01] [PASSED] invalid_clone
[14:47:01] =========== [PASSED] drm_test_check_valid_clones ===========
[14:47:01] ============= [PASSED] drm_validate_clone_mode =============
[14:47:01] ============= drm_validate_modeset (1 subtest) =============
[14:47:01] [PASSED] drm_test_check_connector_changed_modeset
[14:47:01] ============== [PASSED] drm_validate_modeset ===============
[14:47:01] ====== drm_test_bridge_get_current_state (2 subtests) ======
[14:47:01] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[14:47:01] [PASSED] drm_test_drm_bridge_get_current_state_legacy
[14:47:01] ======== [PASSED] drm_test_bridge_get_current_state ========
[14:47:01] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[14:47:01] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[14:47:01] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[14:47:01] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy
[14:47:01] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[14:47:01] ============== drm_bridge_alloc (2 subtests) ===============
[14:47:01] [PASSED] drm_test_drm_bridge_alloc_basic
[14:47:01] [PASSED] drm_test_drm_bridge_alloc_get_put
[14:47:01] ================ [PASSED] drm_bridge_alloc =================
[14:47:01] ================== drm_buddy (7 subtests) ==================
[14:47:01] [PASSED] drm_test_buddy_alloc_limit
[14:47:01] [PASSED] drm_test_buddy_alloc_optimistic
[14:47:01] [PASSED] drm_test_buddy_alloc_pessimistic
[14:47:01] [PASSED] drm_test_buddy_alloc_pathological
[14:47:01] [PASSED] drm_test_buddy_alloc_contiguous
[14:47:01] [PASSED] drm_test_buddy_alloc_clear
[14:47:01] [PASSED] drm_test_buddy_alloc_range_bias
[14:47:01] ==================== [PASSED] drm_buddy ====================
[14:47:01] ============= drm_cmdline_parser (40 subtests) =============
[14:47:01] [PASSED] drm_test_cmdline_force_d_only
[14:47:01] [PASSED] drm_test_cmdline_force_D_only_dvi
[14:47:01] [PASSED] drm_test_cmdline_force_D_only_hdmi
[14:47:01] [PASSED] drm_test_cmdline_force_D_only_not_digital
[14:47:01] [PASSED] drm_test_cmdline_force_e_only
[14:47:01] [PASSED] drm_test_cmdline_res
[14:47:01] [PASSED] drm_test_cmdline_res_vesa
[14:47:01] [PASSED] drm_test_cmdline_res_vesa_rblank
[14:47:01] [PASSED] drm_test_cmdline_res_rblank
[14:47:01] [PASSED] drm_test_cmdline_res_bpp
[14:47:01] [PASSED] drm_test_cmdline_res_refresh
[14:47:01] [PASSED] drm_test_cmdline_res_bpp_refresh
[14:47:01] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[14:47:01] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[14:47:01] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[14:47:01] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[14:47:01] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[14:47:01] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[14:47:01] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[14:47:01] [PASSED] drm_test_cmdline_res_margins_force_on
[14:47:01] [PASSED] drm_test_cmdline_res_vesa_margins
[14:47:01] [PASSED] drm_test_cmdline_name
[14:47:01] [PASSED] drm_test_cmdline_name_bpp
[14:47:01] [PASSED] drm_test_cmdline_name_option
[14:47:01] [PASSED] drm_test_cmdline_name_bpp_option
[14:47:01] [PASSED] drm_test_cmdline_rotate_0
[14:47:01] [PASSED] drm_test_cmdline_rotate_90
[14:47:01] [PASSED] drm_test_cmdline_rotate_180
[14:47:01] [PASSED] drm_test_cmdline_rotate_270
[14:47:01] [PASSED] drm_test_cmdline_hmirror
[14:47:01] [PASSED] drm_test_cmdline_vmirror
[14:47:01] [PASSED] drm_test_cmdline_margin_options
[14:47:01] [PASSED] drm_test_cmdline_multiple_options
[14:47:01] [PASSED] drm_test_cmdline_bpp_extra_and_option
[14:47:01] [PASSED] drm_test_cmdline_extra_and_option
[14:47:01] [PASSED] drm_test_cmdline_freestanding_options
[14:47:01] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[14:47:01] [PASSED] drm_test_cmdline_panel_orientation
[14:47:01] ================ drm_test_cmdline_invalid =================
[14:47:01] [PASSED] margin_only
[14:47:01] [PASSED] interlace_only
[14:47:01] [PASSED] res_missing_x
[14:47:01] [PASSED] res_missing_y
[14:47:01] [PASSED] res_bad_y
[14:47:01] [PASSED] res_missing_y_bpp
[14:47:01] [PASSED] res_bad_bpp
[14:47:01] [PASSED] res_bad_refresh
[14:47:01] [PASSED] res_bpp_refresh_force_on_off
[14:47:01] [PASSED] res_invalid_mode
[14:47:01] [PASSED] res_bpp_wrong_place_mode
[14:47:01] [PASSED] name_bpp_refresh
[14:47:01] [PASSED] name_refresh
[14:47:01] [PASSED] name_refresh_wrong_mode
[14:47:01] [PASSED] name_refresh_invalid_mode
[14:47:01] [PASSED] rotate_multiple
[14:47:01] [PASSED] rotate_invalid_val
[14:47:01] [PASSED] rotate_truncated
[14:47:01] [PASSED] invalid_option
[14:47:01] [PASSED] invalid_tv_option
[14:47:01] [PASSED] truncated_tv_option
[14:47:01] ============ [PASSED] drm_test_cmdline_invalid =============
[14:47:01] =============== drm_test_cmdline_tv_options ===============
[14:47:01] [PASSED] NTSC
[14:47:01] [PASSED] NTSC_443
[14:47:01] [PASSED] NTSC_J
[14:47:01] [PASSED] PAL
[14:47:01] [PASSED] PAL_M
[14:47:01] [PASSED] PAL_N
[14:47:01] [PASSED] SECAM
[14:47:01] [PASSED] MONO_525
[14:47:01] [PASSED] MONO_625
[14:47:01] =========== [PASSED] drm_test_cmdline_tv_options ===========
[14:47:01] =============== [PASSED] drm_cmdline_parser ================
[14:47:01] ========== drmm_connector_hdmi_init (20 subtests) ==========
[14:47:01] [PASSED] drm_test_connector_hdmi_init_valid
[14:47:01] [PASSED] drm_test_connector_hdmi_init_bpc_8
[14:47:01] [PASSED] drm_test_connector_hdmi_init_bpc_10
[14:47:01] [PASSED] drm_test_connector_hdmi_init_bpc_12
[14:47:01] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[14:47:01] [PASSED] drm_test_connector_hdmi_init_bpc_null
[14:47:01] [PASSED] drm_test_connector_hdmi_init_formats_empty
[14:47:01] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[14:47:01] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[14:47:01] [PASSED] supported_formats=0x9 yuv420_allowed=1
[14:47:01] [PASSED] supported_formats=0x9 yuv420_allowed=0
[14:47:01] [PASSED] supported_formats=0x3 yuv420_allowed=1
[14:47:01] [PASSED] supported_formats=0x3 yuv420_allowed=0
[14:47:01] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[14:47:01] [PASSED] drm_test_connector_hdmi_init_null_ddc
[14:47:01] [PASSED] drm_test_connector_hdmi_init_null_product
[14:47:01] [PASSED] drm_test_connector_hdmi_init_null_vendor
[14:47:01] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[14:47:01] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[14:47:01] [PASSED] drm_test_connector_hdmi_init_product_valid
[14:47:01] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[14:47:01] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[14:47:01] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[14:47:01] ========= drm_test_connector_hdmi_init_type_valid =========
[14:47:01] [PASSED] HDMI-A
[14:47:01] [PASSED] HDMI-B
[14:47:01] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[14:47:01] ======== drm_test_connector_hdmi_init_type_invalid ========
[14:47:01] [PASSED] Unknown
[14:47:01] [PASSED] VGA
[14:47:01] [PASSED] DVI-I
[14:47:01] [PASSED] DVI-D
[14:47:01] [PASSED] DVI-A
[14:47:01] [PASSED] Composite
[14:47:01] [PASSED] SVIDEO
[14:47:01] [PASSED] LVDS
[14:47:01] [PASSED] Component
[14:47:01] [PASSED] DIN
[14:47:01] [PASSED] DP
[14:47:01] [PASSED] TV
[14:47:01] [PASSED] eDP
[14:47:01] [PASSED] Virtual
[14:47:01] [PASSED] DSI
[14:47:01] [PASSED] DPI
[14:47:01] [PASSED] Writeback
[14:47:01] [PASSED] SPI
[14:47:01] [PASSED] USB
[14:47:01] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[14:47:01] ============ [PASSED] drmm_connector_hdmi_init =============
[14:47:01] ============= drmm_connector_init (3 subtests) =============
[14:47:01] [PASSED] drm_test_drmm_connector_init
[14:47:01] [PASSED] drm_test_drmm_connector_init_null_ddc
[14:47:01] ========= drm_test_drmm_connector_init_type_valid =========
[14:47:01] [PASSED] Unknown
[14:47:01] [PASSED] VGA
[14:47:01] [PASSED] DVI-I
[14:47:01] [PASSED] DVI-D
[14:47:01] [PASSED] DVI-A
[14:47:01] [PASSED] Composite
[14:47:01] [PASSED] SVIDEO
[14:47:01] [PASSED] LVDS
[14:47:01] [PASSED] Component
[14:47:01] [PASSED] DIN
[14:47:01] [PASSED] DP
[14:47:01] [PASSED] HDMI-A
[14:47:01] [PASSED] HDMI-B
[14:47:01] [PASSED] TV
[14:47:01] [PASSED] eDP
[14:47:01] [PASSED] Virtual
[14:47:01] [PASSED] DSI
[14:47:01] [PASSED] DPI
[14:47:01] [PASSED] Writeback
[14:47:01] [PASSED] SPI
[14:47:01] [PASSED] USB
[14:47:01] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[14:47:01] =============== [PASSED] drmm_connector_init ===============
[14:47:01] ========= drm_connector_dynamic_init (6 subtests) ==========
[14:47:01] [PASSED] drm_test_drm_connector_dynamic_init
[14:47:01] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[14:47:01] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[14:47:01] [PASSED] drm_test_drm_connector_dynamic_init_properties
[14:47:01] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[14:47:01] [PASSED] Unknown
[14:47:01] [PASSED] VGA
[14:47:01] [PASSED] DVI-I
[14:47:01] [PASSED] DVI-D
[14:47:01] [PASSED] DVI-A
[14:47:01] [PASSED] Composite
[14:47:01] [PASSED] SVIDEO
[14:47:01] [PASSED] LVDS
[14:47:01] [PASSED] Component
[14:47:01] [PASSED] DIN
[14:47:01] [PASSED] DP
[14:47:01] [PASSED] HDMI-A
[14:47:01] [PASSED] HDMI-B
[14:47:01] [PASSED] TV
[14:47:01] [PASSED] eDP
[14:47:01] [PASSED] Virtual
[14:47:01] [PASSED] DSI
[14:47:01] [PASSED] DPI
[14:47:01] [PASSED] Writeback
[14:47:01] [PASSED] SPI
[14:47:01] [PASSED] USB
[14:47:01] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[14:47:01] ======== drm_test_drm_connector_dynamic_init_name =========
[14:47:01] [PASSED] Unknown
[14:47:01] [PASSED] VGA
[14:47:01] [PASSED] DVI-I
[14:47:01] [PASSED] DVI-D
[14:47:01] [PASSED] DVI-A
[14:47:01] [PASSED] Composite
[14:47:01] [PASSED] SVIDEO
[14:47:01] [PASSED] LVDS
[14:47:01] [PASSED] Component
[14:47:01] [PASSED] DIN
[14:47:01] [PASSED] DP
[14:47:01] [PASSED] HDMI-A
[14:47:01] [PASSED] HDMI-B
[14:47:01] [PASSED] TV
[14:47:01] [PASSED] eDP
[14:47:01] [PASSED] Virtual
[14:47:01] [PASSED] DSI
[14:47:01] [PASSED] DPI
[14:47:01] [PASSED] Writeback
[14:47:01] [PASSED] SPI
[14:47:01] [PASSED] USB
[14:47:01] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[14:47:01] =========== [PASSED] drm_connector_dynamic_init ============
[14:47:01] ==== drm_connector_dynamic_register_early (4 subtests) =====
[14:47:01] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[14:47:01] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[14:47:01] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[14:47:01] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[14:47:01] ====== [PASSED] drm_connector_dynamic_register_early =======
[14:47:01] ======= drm_connector_dynamic_register (7 subtests) ========
[14:47:01] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[14:47:01] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[14:47:01] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[14:47:01] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[14:47:01] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[14:47:01] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[14:47:01] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[14:47:01] ========= [PASSED] drm_connector_dynamic_register ==========
[14:47:01] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[14:47:01] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[14:47:01] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[14:47:01] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[14:47:01] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[14:47:01] ========== drm_test_get_tv_mode_from_name_valid ===========
[14:47:01] [PASSED] NTSC
[14:47:01] [PASSED] NTSC-443
[14:47:01] [PASSED] NTSC-J
[14:47:01] [PASSED] PAL
[14:47:01] [PASSED] PAL-M
[14:47:01] [PASSED] PAL-N
[14:47:01] [PASSED] SECAM
[14:47:01] [PASSED] Mono
[14:47:01] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[14:47:01] [PASSED] drm_test_get_tv_mode_from_name_truncated
[14:47:01] ============ [PASSED] drm_get_tv_mode_from_name ============
[14:47:01] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[14:47:01] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[14:47:01] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[14:47:01] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[14:47:01] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[14:47:01] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[14:47:01] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[14:47:01] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[14:47:01] [PASSED] VIC 96
[14:47:01] [PASSED] VIC 97
[14:47:01] [PASSED] VIC 101
[14:47:01] [PASSED] VIC 102
[14:47:01] [PASSED] VIC 106
[14:47:01] [PASSED] VIC 107
[14:47:01] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[14:47:01] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[14:47:01] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[14:47:01] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[14:47:01] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[14:47:01] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[14:47:01] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[14:47:01] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[14:47:01] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[14:47:01] [PASSED] Automatic
[14:47:01] [PASSED] Full
[14:47:01] [PASSED] Limited 16:235
[14:47:01] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[14:47:01] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[14:47:01] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[14:47:01] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[14:47:01] === drm_test_drm_hdmi_connector_get_output_format_name ====
[14:47:01] [PASSED] RGB
[14:47:01] [PASSED] YUV 4:2:0
[14:47:01] [PASSED] YUV 4:2:2
[14:47:01] [PASSED] YUV 4:4:4
[14:47:01] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[14:47:01] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[14:47:01] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[14:47:01] ============= drm_damage_helper (21 subtests) ==============
[14:47:01] [PASSED] drm_test_damage_iter_no_damage
[14:47:01] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[14:47:01] [PASSED] drm_test_damage_iter_no_damage_src_moved
[14:47:01] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[14:47:01] [PASSED] drm_test_damage_iter_no_damage_not_visible
[14:47:01] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[14:47:01] [PASSED] drm_test_damage_iter_no_damage_no_fb
[14:47:01] [PASSED] drm_test_damage_iter_simple_damage
[14:47:01] [PASSED] drm_test_damage_iter_single_damage
[14:47:01] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[14:47:01] [PASSED] drm_test_damage_iter_single_damage_outside_src
[14:47:01] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[14:47:01] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[14:47:01] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[14:47:01] [PASSED] drm_test_damage_iter_single_damage_src_moved
[14:47:01] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[14:47:01] [PASSED] drm_test_damage_iter_damage
[14:47:01] [PASSED] drm_test_damage_iter_damage_one_intersect
[14:47:01] [PASSED] drm_test_damage_iter_damage_one_outside
[14:47:01] [PASSED] drm_test_damage_iter_damage_src_moved
[14:47:01] [PASSED] drm_test_damage_iter_damage_not_visible
[14:47:01] ================ [PASSED] drm_damage_helper ================
[14:47:01] ============== drm_dp_mst_helper (3 subtests) ==============
[14:47:01] ============== drm_test_dp_mst_calc_pbn_mode ==============
[14:47:01] [PASSED] Clock 154000 BPP 30 DSC disabled
[14:47:01] [PASSED] Clock 234000 BPP 30 DSC disabled
[14:47:01] [PASSED] Clock 297000 BPP 24 DSC disabled
[14:47:01] [PASSED] Clock 332880 BPP 24 DSC enabled
[14:47:01] [PASSED] Clock 324540 BPP 24 DSC enabled
[14:47:01] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[14:47:01] ============== drm_test_dp_mst_calc_pbn_div ===============
[14:47:01] [PASSED] Link rate 2000000 lane count 4
[14:47:01] [PASSED] Link rate 2000000 lane count 2
[14:47:01] [PASSED] Link rate 2000000 lane count 1
[14:47:01] [PASSED] Link rate 1350000 lane count 4
[14:47:01] [PASSED] Link rate 1350000 lane count 2
[14:47:01] [PASSED] Link rate 1350000 lane count 1
[14:47:01] [PASSED] Link rate 1000000 lane count 4
[14:47:01] [PASSED] Link rate 1000000 lane count 2
[14:47:01] [PASSED] Link rate 1000000 lane count 1
[14:47:01] [PASSED] Link rate 810000 lane count 4
[14:47:01] [PASSED] Link rate 810000 lane count 2
[14:47:01] [PASSED] Link rate 810000 lane count 1
[14:47:01] [PASSED] Link rate 540000 lane count 4
[14:47:01] [PASSED] Link rate 540000 lane count 2
[14:47:01] [PASSED] Link rate 540000 lane count 1
[14:47:01] [PASSED] Link rate 270000 lane count 4
[14:47:01] [PASSED] Link rate 270000 lane count 2
[14:47:01] [PASSED] Link rate 270000 lane count 1
[14:47:01] [PASSED] Link rate 162000 lane count 4
[14:47:01] [PASSED] Link rate 162000 lane count 2
[14:47:01] [PASSED] Link rate 162000 lane count 1
[14:47:01] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[14:47:01] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[14:47:01] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[14:47:01] [PASSED] DP_POWER_UP_PHY with port number
[14:47:01] [PASSED] DP_POWER_DOWN_PHY with port number
[14:47:01] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[14:47:01] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[14:47:01] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[14:47:01] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[14:47:01] [PASSED] DP_QUERY_PAYLOAD with port number
[14:47:01] [PASSED] DP_QUERY_PAYLOAD with VCPI
[14:47:01] [PASSED] DP_REMOTE_DPCD_READ with port number
[14:47:01] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[14:47:01] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[14:47:01] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[14:47:01] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[14:47:01] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[14:47:01] [PASSED] DP_REMOTE_I2C_READ with port number
[14:47:01] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[14:47:01] [PASSED] DP_REMOTE_I2C_READ with transactions array
[14:47:01] [PASSED] DP_REMOTE_I2C_WRITE with port number
[14:47:01] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[14:47:01] [PASSED] DP_REMOTE_I2C_WRITE with data array
[14:47:01] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[14:47:01] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[14:47:01] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[14:47:01] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[14:47:01] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[14:47:01] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[14:47:01] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[14:47:01] ================ [PASSED] drm_dp_mst_helper ================
[14:47:01] ================== drm_exec (7 subtests) ===================
[14:47:01] [PASSED] sanitycheck
[14:47:01] [PASSED] test_lock
[14:47:01] [PASSED] test_lock_unlock
[14:47:01] [PASSED] test_duplicates
[14:47:01] [PASSED] test_prepare
[14:47:01] [PASSED] test_prepare_array
[14:47:01] [PASSED] test_multiple_loops
[14:47:01] ==================== [PASSED] drm_exec =====================
[14:47:01] =========== drm_format_helper_test (17 subtests) ===========
[14:47:01] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[14:47:01] [PASSED] single_pixel_source_buffer
[14:47:01] [PASSED] single_pixel_clip_rectangle
[14:47:01] [PASSED] well_known_colors
[14:47:01] [PASSED] destination_pitch
[14:47:01] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[14:47:01] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[14:47:01] [PASSED] single_pixel_source_buffer
[14:47:01] [PASSED] single_pixel_clip_rectangle
[14:47:01] [PASSED] well_known_colors
[14:47:01] [PASSED] destination_pitch
[14:47:01] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[14:47:01] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[14:47:01] [PASSED] single_pixel_source_buffer
[14:47:01] [PASSED] single_pixel_clip_rectangle
[14:47:01] [PASSED] well_known_colors
[14:47:01] [PASSED] destination_pitch
[14:47:01] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[14:47:01] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[14:47:01] [PASSED] single_pixel_source_buffer
[14:47:01] [PASSED] single_pixel_clip_rectangle
[14:47:01] [PASSED] well_known_colors
[14:47:01] [PASSED] destination_pitch
[14:47:01] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[14:47:01] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[14:47:01] [PASSED] single_pixel_source_buffer
[14:47:01] [PASSED] single_pixel_clip_rectangle
[14:47:01] [PASSED] well_known_colors
[14:47:01] [PASSED] destination_pitch
[14:47:01] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[14:47:01] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[14:47:01] [PASSED] single_pixel_source_buffer
[14:47:01] [PASSED] single_pixel_clip_rectangle
[14:47:01] [PASSED] well_known_colors
[14:47:01] [PASSED] destination_pitch
[14:47:01] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[14:47:01] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[14:47:01] [PASSED] single_pixel_source_buffer
[14:47:01] [PASSED] single_pixel_clip_rectangle
[14:47:01] [PASSED] well_known_colors
[14:47:01] [PASSED] destination_pitch
[14:47:01] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[14:47:01] ============= drm_test_fb_xrgb8888_to_bgr888 ==============
[14:47:01] [PASSED] single_pixel_source_buffer
[14:47:01] [PASSED] single_pixel_clip_rectangle
[14:47:01] [PASSED] well_known_colors
[14:47:01] [PASSED] destination_pitch
[14:47:01] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[14:47:01] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[14:47:01] [PASSED] single_pixel_source_buffer
[14:47:01] [PASSED] single_pixel_clip_rectangle
[14:47:01] [PASSED] well_known_colors
[14:47:01] [PASSED] destination_pitch
[14:47:01] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[14:47:01] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[14:47:01] [PASSED] single_pixel_source_buffer
[14:47:01] [PASSED] single_pixel_clip_rectangle
[14:47:01] [PASSED] well_known_colors
[14:47:01] [PASSED] destination_pitch
[14:47:01] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[14:47:01] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[14:47:01] [PASSED] single_pixel_source_buffer
[14:47:01] [PASSED] single_pixel_clip_rectangle
[14:47:01] [PASSED] well_known_colors
[14:47:01] [PASSED] destination_pitch
[14:47:01] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[14:47:01] ============== drm_test_fb_xrgb8888_to_mono ===============
[14:47:01] [PASSED] single_pixel_source_buffer
[14:47:01] [PASSED] single_pixel_clip_rectangle
[14:47:01] [PASSED] well_known_colors
[14:47:01] [PASSED] destination_pitch
[14:47:01] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[14:47:01] ==================== drm_test_fb_swab =====================
[14:47:01] [PASSED] single_pixel_source_buffer
[14:47:01] [PASSED] single_pixel_clip_rectangle
[14:47:01] [PASSED] well_known_colors
[14:47:01] [PASSED] destination_pitch
[14:47:01] ================ [PASSED] drm_test_fb_swab =================
[14:47:01] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[14:47:01] [PASSED] single_pixel_source_buffer
[14:47:01] [PASSED] single_pixel_clip_rectangle
[14:47:01] [PASSED] well_known_colors
[14:47:01] [PASSED] destination_pitch
[14:47:01] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[14:47:01] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[14:47:01] [PASSED] single_pixel_source_buffer
[14:47:01] [PASSED] single_pixel_clip_rectangle
[14:47:01] [PASSED] well_known_colors
[14:47:01] [PASSED] destination_pitch
[14:47:01] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[14:47:01] ================= drm_test_fb_clip_offset =================
[14:47:01] [PASSED] pass through
[14:47:01] [PASSED] horizontal offset
[14:47:01] [PASSED] vertical offset
[14:47:01] [PASSED] horizontal and vertical offset
[14:47:01] [PASSED] horizontal offset (custom pitch)
[14:47:01] [PASSED] vertical offset (custom pitch)
[14:47:01] [PASSED] horizontal and vertical offset (custom pitch)
[14:47:01] ============= [PASSED] drm_test_fb_clip_offset =============
[14:47:01] =================== drm_test_fb_memcpy ====================
[14:47:01] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[14:47:01] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[14:47:01] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[14:47:01] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[14:47:01] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[14:47:01] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[14:47:01] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[14:47:01] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[14:47:01] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[14:47:01] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[14:47:01] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[14:47:01] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[14:47:01] =============== [PASSED] drm_test_fb_memcpy ================
[14:47:01] ============= [PASSED] drm_format_helper_test ==============
[14:47:01] ================= drm_format (18 subtests) =================
[14:47:01] [PASSED] drm_test_format_block_width_invalid
[14:47:01] [PASSED] drm_test_format_block_width_one_plane
[14:47:01] [PASSED] drm_test_format_block_width_two_plane
[14:47:01] [PASSED] drm_test_format_block_width_three_plane
[14:47:01] [PASSED] drm_test_format_block_width_tiled
[14:47:01] [PASSED] drm_test_format_block_height_invalid
[14:47:01] [PASSED] drm_test_format_block_height_one_plane
[14:47:01] [PASSED] drm_test_format_block_height_two_plane
[14:47:01] [PASSED] drm_test_format_block_height_three_plane
[14:47:01] [PASSED] drm_test_format_block_height_tiled
[14:47:01] [PASSED] drm_test_format_min_pitch_invalid
[14:47:01] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[14:47:01] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[14:47:01] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[14:47:01] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[14:47:01] [PASSED] drm_test_format_min_pitch_two_plane
[14:47:01] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[14:47:01] [PASSED] drm_test_format_min_pitch_tiled
[14:47:01] =================== [PASSED] drm_format ====================
[14:47:01] ============== drm_framebuffer (10 subtests) ===============
[14:47:01] ========== drm_test_framebuffer_check_src_coords ==========
[14:47:01] [PASSED] Success: source fits into fb
[14:47:01] [PASSED] Fail: overflowing fb with x-axis coordinate
[14:47:01] [PASSED] Fail: overflowing fb with y-axis coordinate
[14:47:01] [PASSED] Fail: overflowing fb with source width
[14:47:01] [PASSED] Fail: overflowing fb with source height
[14:47:01] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[14:47:01] [PASSED] drm_test_framebuffer_cleanup
[14:47:01] =============== drm_test_framebuffer_create ===============
[14:47:01] [PASSED] ABGR8888 normal sizes
[14:47:01] [PASSED] ABGR8888 max sizes
[14:47:01] [PASSED] ABGR8888 pitch greater than min required
[14:47:01] [PASSED] ABGR8888 pitch less than min required
[14:47:01] [PASSED] ABGR8888 Invalid width
[14:47:01] [PASSED] ABGR8888 Invalid buffer handle
[14:47:01] [PASSED] No pixel format
[14:47:01] [PASSED] ABGR8888 Width 0
[14:47:01] [PASSED] ABGR8888 Height 0
[14:47:01] [PASSED] ABGR8888 Out of bound height * pitch combination
[14:47:01] [PASSED] ABGR8888 Large buffer offset
[14:47:01] [PASSED] ABGR8888 Buffer offset for inexistent plane
[14:47:01] [PASSED] ABGR8888 Invalid flag
[14:47:01] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[14:47:01] [PASSED] ABGR8888 Valid buffer modifier
[14:47:01] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[14:47:01] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[14:47:01] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[14:47:01] [PASSED] NV12 Normal sizes
[14:47:01] [PASSED] NV12 Max sizes
[14:47:01] [PASSED] NV12 Invalid pitch
[14:47:01] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[14:47:01] [PASSED] NV12 different modifier per-plane
[14:47:01] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[14:47:01] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[14:47:01] [PASSED] NV12 Modifier for inexistent plane
[14:47:01] [PASSED] NV12 Handle for inexistent plane
[14:47:01] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[14:47:01] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[14:47:01] [PASSED] YVU420 Normal sizes
[14:47:01] [PASSED] YVU420 Max sizes
[14:47:01] [PASSED] YVU420 Invalid pitch
[14:47:01] [PASSED] YVU420 Different pitches
[14:47:01] [PASSED] YVU420 Different buffer offsets/pitches
[14:47:01] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[14:47:01] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[14:47:01] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[14:47:01] [PASSED] YVU420 Valid modifier
[14:47:01] [PASSED] YVU420 Different modifiers per plane
[14:47:01] [PASSED] YVU420 Modifier for inexistent plane
[14:47:01] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[14:47:01] [PASSED] X0L2 Normal sizes
[14:47:01] [PASSED] X0L2 Max sizes
[14:47:01] [PASSED] X0L2 Invalid pitch
[14:47:01] [PASSED] X0L2 Pitch greater than minimum required
[14:47:01] [PASSED] X0L2 Handle for inexistent plane
[14:47:01] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[14:47:01] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[14:47:01] [PASSED] X0L2 Valid modifier
[14:47:01] [PASSED] X0L2 Modifier for inexistent plane
[14:47:01] =========== [PASSED] drm_test_framebuffer_create ===========
[14:47:01] [PASSED] drm_test_framebuffer_free
[14:47:01] [PASSED] drm_test_framebuffer_init
[14:47:01] [PASSED] drm_test_framebuffer_init_bad_format
[14:47:01] [PASSED] drm_test_framebuffer_init_dev_mismatch
[14:47:01] [PASSED] drm_test_framebuffer_lookup
[14:47:01] [PASSED] drm_test_framebuffer_lookup_inexistent
[14:47:01] [PASSED] drm_test_framebuffer_modifiers_not_supported
[14:47:01] ================= [PASSED] drm_framebuffer =================
[14:47:01] ================ drm_gem_shmem (8 subtests) ================
[14:47:01] [PASSED] drm_gem_shmem_test_obj_create
[14:47:01] [PASSED] drm_gem_shmem_test_obj_create_private
[14:47:01] [PASSED] drm_gem_shmem_test_pin_pages
[14:47:01] [PASSED] drm_gem_shmem_test_vmap
[14:47:01] [PASSED] drm_gem_shmem_test_get_pages_sgt
[14:47:01] [PASSED] drm_gem_shmem_test_get_sg_table
[14:47:01] [PASSED] drm_gem_shmem_test_madvise
[14:47:01] [PASSED] drm_gem_shmem_test_purge
[14:47:01] ================== [PASSED] drm_gem_shmem ==================
[14:47:01] === drm_atomic_helper_connector_hdmi_check (27 subtests) ===
[14:47:01] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[14:47:01] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[14:47:01] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[14:47:01] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[14:47:01] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[14:47:01] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[14:47:01] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 =======
[14:47:01] [PASSED] Automatic
[14:47:01] [PASSED] Full
[14:47:01] [PASSED] Limited 16:235
[14:47:01] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[14:47:01] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[14:47:01] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[14:47:01] [PASSED] drm_test_check_disable_connector
[14:47:01] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[14:47:01] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[14:47:01] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[14:47:01] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[14:47:01] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[14:47:01] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[14:47:01] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[14:47:01] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[14:47:01] [PASSED] drm_test_check_output_bpc_dvi
[14:47:01] [PASSED] drm_test_check_output_bpc_format_vic_1
[14:47:01] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[14:47:01] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[14:47:01] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[14:47:01] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[14:47:01] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[14:47:01] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[14:47:01] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[14:47:01] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[14:47:01] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[14:47:01] [PASSED] drm_test_check_broadcast_rgb_value
[14:47:01] [PASSED] drm_test_check_bpc_8_value
[14:47:01] [PASSED] drm_test_check_bpc_10_value
[14:47:01] [PASSED] drm_test_check_bpc_12_value
[14:47:01] [PASSED] drm_test_check_format_value
[14:47:01] [PASSED] drm_test_check_tmds_char_value
[14:47:01] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[14:47:01] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) =
[14:47:01] [PASSED] drm_test_check_mode_valid
[14:47:01] [PASSED] drm_test_check_mode_valid_reject
[14:47:01] [PASSED] drm_test_check_mode_valid_reject_rate
[14:47:01] [PASSED] drm_test_check_mode_valid_reject_max_clock
[14:47:01] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[14:47:01] ================= drm_managed (2 subtests) =================
[14:47:01] [PASSED] drm_test_managed_release_action
[14:47:01] [PASSED] drm_test_managed_run_action
[14:47:01] =================== [PASSED] drm_managed ===================
[14:47:01] =================== drm_mm (6 subtests) ====================
[14:47:01] [PASSED] drm_test_mm_init
[14:47:01] [PASSED] drm_test_mm_debug
[14:47:01] [PASSED] drm_test_mm_align32
[14:47:01] [PASSED] drm_test_mm_align64
[14:47:01] [PASSED] drm_test_mm_lowest
[14:47:01] [PASSED] drm_test_mm_highest
[14:47:01] ===================== [PASSED] drm_mm ======================
[14:47:01] ============= drm_modes_analog_tv (5 subtests) =============
[14:47:01] [PASSED] drm_test_modes_analog_tv_mono_576i
[14:47:01] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[14:47:01] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[14:47:01] [PASSED] drm_test_modes_analog_tv_pal_576i
[14:47:01] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[14:47:01] =============== [PASSED] drm_modes_analog_tv ===============
[14:47:01] ============== drm_plane_helper (2 subtests) ===============
[14:47:01] =============== drm_test_check_plane_state ================
[14:47:01] [PASSED] clipping_simple
[14:47:01] [PASSED] clipping_rotate_reflect
[14:47:01] [PASSED] positioning_simple
[14:47:01] [PASSED] upscaling
[14:47:01] [PASSED] downscaling
[14:47:01] [PASSED] rounding1
[14:47:01] [PASSED] rounding2
[14:47:01] [PASSED] rounding3
[14:47:01] [PASSED] rounding4
[14:47:01] =========== [PASSED] drm_test_check_plane_state ============
[14:47:01] =========== drm_test_check_invalid_plane_state ============
[14:47:01] [PASSED] positioning_invalid
[14:47:01] [PASSED] upscaling_invalid
[14:47:01] [PASSED] downscaling_invalid
[14:47:01] ======= [PASSED] drm_test_check_invalid_plane_state ========
[14:47:01] ================ [PASSED] drm_plane_helper =================
[14:47:01] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[14:47:01] ====== drm_test_connector_helper_tv_get_modes_check =======
[14:47:01] [PASSED] None
[14:47:01] [PASSED] PAL
[14:47:01] [PASSED] NTSC
[14:47:01] [PASSED] Both, NTSC Default
[14:47:01] [PASSED] Both, PAL Default
[14:47:01] [PASSED] Both, NTSC Default, with PAL on command-line
[14:47:01] [PASSED] Both, PAL Default, with NTSC on command-line
[14:47:01] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[14:47:01] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[14:47:01] ================== drm_rect (9 subtests) ===================
[14:47:01] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[14:47:01] [PASSED] drm_test_rect_clip_scaled_not_clipped
[14:47:01] [PASSED] drm_test_rect_clip_scaled_clipped
[14:47:01] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[14:47:01] ================= drm_test_rect_intersect =================
[14:47:01] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[14:47:01] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[14:47:01] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[14:47:01] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[14:47:01] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[14:47:01] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[14:47:01] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[14:47:01] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[14:47:01] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[14:47:01] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[14:47:01] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[14:47:01] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[14:47:01] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[14:47:01] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[14:47:01] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[14:47:01] ============= [PASSED] drm_test_rect_intersect =============
[14:47:01] ================ drm_test_rect_calc_hscale ================
[14:47:01] [PASSED] normal use
[14:47:01] [PASSED] out of max range
[14:47:01] [PASSED] out of min range
[14:47:01] [PASSED] zero dst
[14:47:01] [PASSED] negative src
[14:47:01] [PASSED] negative dst
[14:47:01] ============ [PASSED] drm_test_rect_calc_hscale ============
[14:47:01] ================ drm_test_rect_calc_vscale ================
[14:47:01] [PASSED] normal use
[14:47:01] [PASSED] out of max range
[14:47:01] [PASSED] out of min range
[14:47:01] [PASSED] zero dst
[14:47:01] [PASSED] negative src
[14:47:01] [PASSED] negative dst
[14:47:01] ============ [PASSED] drm_test_rect_calc_vscale ============
[14:47:01] ================== drm_test_rect_rotate ===================
[14:47:01] [PASSED] reflect-x
[14:47:01] [PASSED] reflect-y
[14:47:01] [PASSED] rotate-0
[14:47:01] [PASSED] rotate-90
[14:47:01] [PASSED] rotate-180
[14:47:01] [PASSED] rotate-270
stty: 'standard input': Inappropriate ioctl for device
[14:47:01] ============== [PASSED] drm_test_rect_rotate ===============
[14:47:01] ================ drm_test_rect_rotate_inv =================
[14:47:01] [PASSED] reflect-x
[14:47:01] [PASSED] reflect-y
[14:47:01] [PASSED] rotate-0
[14:47:01] [PASSED] rotate-90
[14:47:01] [PASSED] rotate-180
[14:47:01] [PASSED] rotate-270
[14:47:01] ============ [PASSED] drm_test_rect_rotate_inv =============
[14:47:01] ==================== [PASSED] drm_rect =====================
[14:47:01] ============ drm_sysfb_modeset_test (1 subtest) ============
[14:47:01] ============ drm_test_sysfb_build_fourcc_list =============
[14:47:01] [PASSED] no native formats
[14:47:01] [PASSED] XRGB8888 as native format
[14:47:01] [PASSED] remove duplicates
[14:47:01] [PASSED] convert alpha formats
[14:47:01] [PASSED] random formats
[14:47:01] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[14:47:01] ============= [PASSED] drm_sysfb_modeset_test ==============
[14:47:01] ============================================================
[14:47:01] Testing complete. Ran 616 tests: passed: 616
[14:47:01] Elapsed time: 23.156s total, 1.703s configuring, 21.279s building, 0.142s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[14:47:01] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[14:47:03] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[14:47:11] Starting KUnit Kernel (1/1)...
[14:47:11] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[14:47:11] ================= ttm_device (5 subtests) ==================
[14:47:11] [PASSED] ttm_device_init_basic
[14:47:11] [PASSED] ttm_device_init_multiple
[14:47:11] [PASSED] ttm_device_fini_basic
[14:47:11] [PASSED] ttm_device_init_no_vma_man
[14:47:11] ================== ttm_device_init_pools ==================
[14:47:11] [PASSED] No DMA allocations, no DMA32 required
[14:47:11] [PASSED] DMA allocations, DMA32 required
[14:47:11] [PASSED] No DMA allocations, DMA32 required
[14:47:11] [PASSED] DMA allocations, no DMA32 required
[14:47:11] ============== [PASSED] ttm_device_init_pools ==============
[14:47:11] =================== [PASSED] ttm_device ====================
[14:47:11] ================== ttm_pool (8 subtests) ===================
[14:47:11] ================== ttm_pool_alloc_basic ===================
[14:47:11] [PASSED] One page
[14:47:11] [PASSED] More than one page
[14:47:11] [PASSED] Above the allocation limit
[14:47:11] [PASSED] One page, with coherent DMA mappings enabled
[14:47:11] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[14:47:11] ============== [PASSED] ttm_pool_alloc_basic ===============
[14:47:11] ============== ttm_pool_alloc_basic_dma_addr ==============
[14:47:11] [PASSED] One page
[14:47:11] [PASSED] More than one page
[14:47:11] [PASSED] Above the allocation limit
[14:47:11] [PASSED] One page, with coherent DMA mappings enabled
[14:47:11] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[14:47:11] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[14:47:11] [PASSED] ttm_pool_alloc_order_caching_match
[14:47:11] [PASSED] ttm_pool_alloc_caching_mismatch
[14:47:11] [PASSED] ttm_pool_alloc_order_mismatch
[14:47:11] [PASSED] ttm_pool_free_dma_alloc
[14:47:11] [PASSED] ttm_pool_free_no_dma_alloc
[14:47:11] [PASSED] ttm_pool_fini_basic
[14:47:11] ==================== [PASSED] ttm_pool =====================
[14:47:11] ================ ttm_resource (8 subtests) =================
[14:47:11] ================= ttm_resource_init_basic =================
[14:47:11] [PASSED] Init resource in TTM_PL_SYSTEM
[14:47:11] [PASSED] Init resource in TTM_PL_VRAM
[14:47:11] [PASSED] Init resource in a private placement
[14:47:11] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[14:47:11] ============= [PASSED] ttm_resource_init_basic =============
[14:47:11] [PASSED] ttm_resource_init_pinned
[14:47:11] [PASSED] ttm_resource_fini_basic
[14:47:11] [PASSED] ttm_resource_manager_init_basic
[14:47:11] [PASSED] ttm_resource_manager_usage_basic
[14:47:11] [PASSED] ttm_resource_manager_set_used_basic
[14:47:11] [PASSED] ttm_sys_man_alloc_basic
[14:47:11] [PASSED] ttm_sys_man_free_basic
[14:47:11] ================== [PASSED] ttm_resource ===================
[14:47:11] =================== ttm_tt (15 subtests) ===================
[14:47:11] ==================== ttm_tt_init_basic ====================
[14:47:11] [PASSED] Page-aligned size
[14:47:11] [PASSED] Extra pages requested
[14:47:11] ================ [PASSED] ttm_tt_init_basic ================
[14:47:11] [PASSED] ttm_tt_init_misaligned
[14:47:11] [PASSED] ttm_tt_fini_basic
[14:47:11] [PASSED] ttm_tt_fini_sg
[14:47:11] [PASSED] ttm_tt_fini_shmem
[14:47:11] [PASSED] ttm_tt_create_basic
[14:47:11] [PASSED] ttm_tt_create_invalid_bo_type
[14:47:11] [PASSED] ttm_tt_create_ttm_exists
[14:47:11] [PASSED] ttm_tt_create_failed
[14:47:11] [PASSED] ttm_tt_destroy_basic
[14:47:11] [PASSED] ttm_tt_populate_null_ttm
[14:47:11] [PASSED] ttm_tt_populate_populated_ttm
[14:47:11] [PASSED] ttm_tt_unpopulate_basic
[14:47:11] [PASSED] ttm_tt_unpopulate_empty_ttm
[14:47:11] [PASSED] ttm_tt_swapin_basic
[14:47:11] ===================== [PASSED] ttm_tt ======================
[14:47:11] =================== ttm_bo (14 subtests) ===================
[14:47:11] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[14:47:11] [PASSED] Cannot be interrupted and sleeps
[14:47:11] [PASSED] Cannot be interrupted, locks straight away
[14:47:11] [PASSED] Can be interrupted, sleeps
[14:47:11] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[14:47:11] [PASSED] ttm_bo_reserve_locked_no_sleep
[14:47:11] [PASSED] ttm_bo_reserve_no_wait_ticket
[14:47:11] [PASSED] ttm_bo_reserve_double_resv
[14:47:11] [PASSED] ttm_bo_reserve_interrupted
[14:47:11] [PASSED] ttm_bo_reserve_deadlock
[14:47:11] [PASSED] ttm_bo_unreserve_basic
[14:47:11] [PASSED] ttm_bo_unreserve_pinned
[14:47:11] [PASSED] ttm_bo_unreserve_bulk
[14:47:11] [PASSED] ttm_bo_put_basic
[14:47:11] [PASSED] ttm_bo_put_shared_resv
[14:47:11] [PASSED] ttm_bo_pin_basic
[14:47:11] [PASSED] ttm_bo_pin_unpin_resource
[14:47:11] [PASSED] ttm_bo_multiple_pin_one_unpin
[14:47:11] ===================== [PASSED] ttm_bo ======================
[14:47:11] ============== ttm_bo_validate (22 subtests) ===============
[14:47:11] ============== ttm_bo_init_reserved_sys_man ===============
[14:47:11] [PASSED] Buffer object for userspace
[14:47:11] [PASSED] Kernel buffer object
[14:47:11] [PASSED] Shared buffer object
[14:47:11] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[14:47:11] ============== ttm_bo_init_reserved_mock_man ==============
[14:47:11] [PASSED] Buffer object for userspace
[14:47:11] [PASSED] Kernel buffer object
[14:47:11] [PASSED] Shared buffer object
[14:47:11] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[14:47:11] [PASSED] ttm_bo_init_reserved_resv
[14:47:11] ================== ttm_bo_validate_basic ==================
[14:47:11] [PASSED] Buffer object for userspace
[14:47:11] [PASSED] Kernel buffer object
[14:47:11] [PASSED] Shared buffer object
[14:47:11] ============== [PASSED] ttm_bo_validate_basic ==============
[14:47:11] [PASSED] ttm_bo_validate_invalid_placement
[14:47:11] ============= ttm_bo_validate_same_placement ==============
[14:47:11] [PASSED] System manager
[14:47:11] [PASSED] VRAM manager
[14:47:11] ========= [PASSED] ttm_bo_validate_same_placement ==========
[14:47:11] [PASSED] ttm_bo_validate_failed_alloc
[14:47:11] [PASSED] ttm_bo_validate_pinned
[14:47:11] [PASSED] ttm_bo_validate_busy_placement
[14:47:11] ================ ttm_bo_validate_multihop =================
[14:47:11] [PASSED] Buffer object for userspace
[14:47:11] [PASSED] Kernel buffer object
[14:47:11] [PASSED] Shared buffer object
[14:47:11] ============ [PASSED] ttm_bo_validate_multihop =============
[14:47:11] ========== ttm_bo_validate_no_placement_signaled ==========
[14:47:11] [PASSED] Buffer object in system domain, no page vector
[14:47:11] [PASSED] Buffer object in system domain with an existing page vector
[14:47:11] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[14:47:11] ======== ttm_bo_validate_no_placement_not_signaled ========
[14:47:11] [PASSED] Buffer object for userspace
[14:47:11] [PASSED] Kernel buffer object
[14:47:11] [PASSED] Shared buffer object
[14:47:11] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[14:47:11] [PASSED] ttm_bo_validate_move_fence_signaled
[14:47:11] ========= ttm_bo_validate_move_fence_not_signaled =========
[14:47:11] [PASSED] Waits for GPU
[14:47:11] [PASSED] Tries to lock straight away
[14:47:11] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[14:47:11] [PASSED] ttm_bo_validate_swapout
[14:47:11] [PASSED] ttm_bo_validate_happy_evict
[14:47:11] [PASSED] ttm_bo_validate_all_pinned_evict
[14:47:11] [PASSED] ttm_bo_validate_allowed_only_evict
[14:47:11] [PASSED] ttm_bo_validate_deleted_evict
[14:47:11] [PASSED] ttm_bo_validate_busy_domain_evict
[14:47:11] [PASSED] ttm_bo_validate_evict_gutting
[14:47:11] [PASSED] ttm_bo_validate_recrusive_evict
stty: 'standard input': Inappropriate ioctl for device
[14:47:11] ================= [PASSED] ttm_bo_validate =================
[14:47:11] ============================================================
[14:47:11] Testing complete. Ran 102 tests: passed: 102
[14:47:11] Elapsed time: 10.050s total, 1.648s configuring, 7.786s building, 0.533s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 23+ messages in thread
* ✓ Xe.CI.BAT: success for series starting with [v2,1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us() (rev2)
2025-07-02 22:34 [PATCH 1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us() Ville Syrjala
` (11 preceding siblings ...)
2025-07-08 14:47 ` ✓ CI.KUnit: success " Patchwork
@ 2025-07-08 15:28 ` Patchwork
2025-07-08 16:46 ` ✗ Xe.CI.Full: failure " Patchwork
13 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2025-07-08 15:28 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 6796 bytes --]
== Series Details ==
Series: series starting with [v2,1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us() (rev2)
URL : https://patchwork.freedesktop.org/series/151093/
State : success
== Summary ==
CI Bug Log - changes from xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d_BAT -> xe-pw-151093v2_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (9 -> 8)
------------------------------
Missing (1): bat-adlp-vm
Known issues
------------
Here are the changes found in xe-pw-151093v2_BAT that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- bat-lnl-2: NOTRUN -> [SKIP][1] ([Intel XE#1466] / [Intel XE#2235])
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/bat-lnl-2/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
* igt@kms_flip@basic-flip-vs-dpms:
- bat-lnl-2: NOTRUN -> [SKIP][2] ([Intel XE#2235] / [Intel XE#2482]) +3 other tests skip
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/bat-lnl-2/igt@kms_flip@basic-flip-vs-dpms.html
* igt@kms_force_connector_basic@force-connector-state:
- bat-lnl-2: NOTRUN -> [SKIP][3] ([Intel XE#2235] / [Intel XE#352]) +2 other tests skip
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/bat-lnl-2/igt@kms_force_connector_basic@force-connector-state.html
* igt@kms_frontbuffer_tracking@basic:
- bat-lnl-2: NOTRUN -> [SKIP][4] ([Intel XE#2235] / [Intel XE#2548])
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/bat-lnl-2/igt@kms_frontbuffer_tracking@basic.html
* igt@kms_hdmi_inject@inject-audio:
- bat-lnl-2: NOTRUN -> [SKIP][5] ([Intel XE#1470] / [Intel XE#2235] / [Intel XE#2853])
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/bat-lnl-2/igt@kms_hdmi_inject@inject-audio.html
* igt@kms_pipe_crc_basic@compare-crc-sanitycheck-xr24:
- bat-lnl-2: NOTRUN -> [SKIP][6] ([Intel XE#2235]) +13 other tests skip
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/bat-lnl-2/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-xr24.html
* igt@kms_psr@psr-cursor-plane-move:
- bat-lnl-2: NOTRUN -> [SKIP][7] ([Intel XE#2850] / [Intel XE#929]) +2 other tests skip
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/bat-lnl-2/igt@kms_psr@psr-cursor-plane-move.html
* igt@sriov_basic@enable-vfs-autoprobe-off:
- bat-lnl-2: NOTRUN -> [SKIP][8] ([Intel XE#1091] / [Intel XE#2849]) +1 other test skip
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/bat-lnl-2/igt@sriov_basic@enable-vfs-autoprobe-off.html
* igt@xe_evict@evict-beng-small:
- bat-lnl-2: NOTRUN -> [SKIP][9] ([Intel XE#688]) +11 other tests skip
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/bat-lnl-2/igt@xe_evict@evict-beng-small.html
* igt@xe_live_ktest@xe_bo@xe_bo_evict_kunit:
- bat-lnl-2: NOTRUN -> [SKIP][10] ([Intel XE#2229]) +2 other tests skip
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/bat-lnl-2/igt@xe_live_ktest@xe_bo@xe_bo_evict_kunit.html
* igt@xe_mmap@vram:
- bat-lnl-2: NOTRUN -> [SKIP][11] ([Intel XE#1416])
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/bat-lnl-2/igt@xe_mmap@vram.html
* igt@xe_pat@pat-index-xehpc:
- bat-lnl-2: NOTRUN -> [SKIP][12] ([Intel XE#1420] / [Intel XE#2838])
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/bat-lnl-2/igt@xe_pat@pat-index-xehpc.html
* igt@xe_pat@pat-index-xelp:
- bat-lnl-2: NOTRUN -> [SKIP][13] ([Intel XE#977])
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/bat-lnl-2/igt@xe_pat@pat-index-xelp.html
* igt@xe_pat@pat-index-xelpg:
- bat-lnl-2: NOTRUN -> [SKIP][14] ([Intel XE#2236] / [Intel XE#979])
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/bat-lnl-2/igt@xe_pat@pat-index-xelpg.html
* igt@xe_sriov_flr@flr-vf1-clear:
- bat-lnl-2: NOTRUN -> [SKIP][15] ([Intel XE#3342])
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/bat-lnl-2/igt@xe_sriov_flr@flr-vf1-clear.html
#### Possible fixes ####
* igt@intel_sysfs_debugfs@xe-sysfs-read-all-entries:
- bat-lnl-2: [ABORT][16] ([Intel XE#4624] / [Intel XE#4966]) -> [PASS][17]
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/bat-lnl-2/igt@intel_sysfs_debugfs@xe-sysfs-read-all-entries.html
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/bat-lnl-2/igt@intel_sysfs_debugfs@xe-sysfs-read-all-entries.html
[Intel XE#1091]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1091
[Intel XE#1416]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1416
[Intel XE#1420]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1420
[Intel XE#1466]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1466
[Intel XE#1470]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1470
[Intel XE#2229]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2229
[Intel XE#2235]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2235
[Intel XE#2236]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2236
[Intel XE#2482]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2482
[Intel XE#2548]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2548
[Intel XE#2838]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2838
[Intel XE#2849]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2849
[Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
[Intel XE#2853]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2853
[Intel XE#3342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3342
[Intel XE#352]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/352
[Intel XE#4624]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4624
[Intel XE#4966]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4966
[Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
[Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929
[Intel XE#977]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/977
[Intel XE#979]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/979
Build changes
-------------
* Linux: xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d -> xe-pw-151093v2
IGT_8445: 8445
xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d: 53bebc799dad6c4f1fea22b98cff5041533a987d
xe-pw-151093v2: 151093v2
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/index.html
[-- Attachment #2: Type: text/html, Size: 8019 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* ✗ Xe.CI.Full: failure for series starting with [v2,1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us() (rev2)
2025-07-02 22:34 [PATCH 1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us() Ville Syrjala
` (12 preceding siblings ...)
2025-07-08 15:28 ` ✓ Xe.CI.BAT: " Patchwork
@ 2025-07-08 16:46 ` Patchwork
13 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2025-07-08 16:46 UTC (permalink / raw)
To: Ville Syrjala; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 97965 bytes --]
== Series Details ==
Series: series starting with [v2,1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us() (rev2)
URL : https://patchwork.freedesktop.org/series/151093/
State : failure
== Summary ==
CI Bug Log - changes from xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d_FULL -> xe-pw-151093v2_FULL
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with xe-pw-151093v2_FULL absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in xe-pw-151093v2_FULL, 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 (4 -> 4)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in xe-pw-151093v2_FULL:
### IGT changes ###
#### Possible regressions ####
* igt@kms_flip@absolute-wf_vblank-interruptible:
- shard-adlp: [PASS][1] -> [INCOMPLETE][2]
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-adlp-2/igt@kms_flip@absolute-wf_vblank-interruptible.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-adlp-8/igt@kms_flip@absolute-wf_vblank-interruptible.html
New tests
---------
New tests have been introduced between xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d_FULL and xe-pw-151093v2_FULL:
### New IGT tests (1) ###
* igt@core_setmaster:
- Statuses :
- Exec time: [None] s
Known issues
------------
Here are the changes found in xe-pw-151093v2_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@fbdev@read:
- shard-dg2-set2: NOTRUN -> [SKIP][3] ([Intel XE#2134])
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@fbdev@read.html
* igt@intel_sysfs_debugfs@xe-debugfs-read-all-entries-display-off:
- shard-dg2-set2: [PASS][4] -> [SKIP][5] ([Intel XE#4208] / [Intel XE#4618])
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-433/igt@intel_sysfs_debugfs@xe-debugfs-read-all-entries-display-off.html
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@intel_sysfs_debugfs@xe-debugfs-read-all-entries-display-off.html
* igt@kms_atomic_transition@modeset-transition-nonblocking-fencing:
- shard-dg2-set2: [PASS][6] -> [SKIP][7] ([Intel XE#4208] / [i915#2575]) +40 other tests skip
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-466/igt@kms_atomic_transition@modeset-transition-nonblocking-fencing.html
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@kms_atomic_transition@modeset-transition-nonblocking-fencing.html
* igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0:
- shard-dg2-set2: NOTRUN -> [SKIP][8] ([Intel XE#1124]) +4 other tests skip
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-433/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0.html
- shard-lnl: NOTRUN -> [SKIP][9] ([Intel XE#1124]) +2 other tests skip
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-2/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0.html
* igt@kms_big_fb@yf-tiled-32bpp-rotate-270:
- shard-bmg: NOTRUN -> [SKIP][10] ([Intel XE#1124]) +2 other tests skip
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-5/igt@kms_big_fb@yf-tiled-32bpp-rotate-270.html
* igt@kms_bw@linear-tiling-1-displays-1920x1080p:
- shard-dg2-set2: NOTRUN -> [SKIP][11] ([Intel XE#4208] / [i915#2575]) +30 other tests skip
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@kms_bw@linear-tiling-1-displays-1920x1080p.html
* igt@kms_bw@linear-tiling-3-displays-3840x2160p:
- shard-dg2-set2: NOTRUN -> [SKIP][12] ([Intel XE#367])
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-433/igt@kms_bw@linear-tiling-3-displays-3840x2160p.html
- shard-lnl: NOTRUN -> [SKIP][13] ([Intel XE#367])
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-2/igt@kms_bw@linear-tiling-3-displays-3840x2160p.html
- shard-bmg: NOTRUN -> [SKIP][14] ([Intel XE#367])
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-5/igt@kms_bw@linear-tiling-3-displays-3840x2160p.html
* igt@kms_ccs@bad-aux-stride-y-tiled-gen12-mc-ccs@pipe-c-hdmi-a-6:
- shard-dg2-set2: NOTRUN -> [SKIP][15] ([Intel XE#787]) +104 other tests skip
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-463/igt@kms_ccs@bad-aux-stride-y-tiled-gen12-mc-ccs@pipe-c-hdmi-a-6.html
* igt@kms_ccs@bad-rotation-90-4-tiled-dg2-mc-ccs:
- shard-bmg: NOTRUN -> [SKIP][16] ([Intel XE#2887])
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-5/igt@kms_ccs@bad-rotation-90-4-tiled-dg2-mc-ccs.html
- shard-lnl: NOTRUN -> [SKIP][17] ([Intel XE#2887])
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-2/igt@kms_ccs@bad-rotation-90-4-tiled-dg2-mc-ccs.html
* igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs@pipe-c-dp-2:
- shard-bmg: NOTRUN -> [SKIP][18] ([Intel XE#2652] / [Intel XE#787]) +3 other tests skip
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-1/igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs@pipe-c-dp-2.html
* igt@kms_ccs@bad-rotation-90-y-tiled-gen12-mc-ccs@pipe-d-dp-4:
- shard-dg2-set2: NOTRUN -> [SKIP][19] ([Intel XE#455] / [Intel XE#787]) +16 other tests skip
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-434/igt@kms_ccs@bad-rotation-90-y-tiled-gen12-mc-ccs@pipe-d-dp-4.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs:
- shard-bmg: NOTRUN -> [INCOMPLETE][20] ([Intel XE#3862])
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-5/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs@pipe-b-hdmi-a-3:
- shard-bmg: NOTRUN -> [INCOMPLETE][21] ([Intel XE#3862] / [Intel XE#4345])
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-5/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs@pipe-b-hdmi-a-3.html
* igt@kms_cdclk@mode-transition-all-outputs:
- shard-bmg: NOTRUN -> [SKIP][22] ([Intel XE#2724])
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-5/igt@kms_cdclk@mode-transition-all-outputs.html
- shard-dg2-set2: NOTRUN -> [SKIP][23] ([Intel XE#4418])
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-433/igt@kms_cdclk@mode-transition-all-outputs.html
- shard-lnl: NOTRUN -> [SKIP][24] ([Intel XE#4418])
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-2/igt@kms_cdclk@mode-transition-all-outputs.html
* igt@kms_cdclk@mode-transition@pipe-a-dp-2:
- shard-dg2-set2: NOTRUN -> [SKIP][25] ([Intel XE#4417]) +3 other tests skip
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-432/igt@kms_cdclk@mode-transition@pipe-a-dp-2.html
* igt@kms_chamelium_color@gamma:
- shard-dg2-set2: NOTRUN -> [SKIP][26] ([Intel XE#306])
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-433/igt@kms_chamelium_color@gamma.html
- shard-lnl: NOTRUN -> [SKIP][27] ([Intel XE#306])
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-2/igt@kms_chamelium_color@gamma.html
- shard-bmg: NOTRUN -> [SKIP][28] ([Intel XE#2325])
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-5/igt@kms_chamelium_color@gamma.html
* igt@kms_chamelium_hpd@vga-hpd-after-hibernate:
- shard-bmg: NOTRUN -> [SKIP][29] ([Intel XE#2252]) +1 other test skip
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-5/igt@kms_chamelium_hpd@vga-hpd-after-hibernate.html
- shard-dg2-set2: NOTRUN -> [SKIP][30] ([Intel XE#373]) +1 other test skip
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-433/igt@kms_chamelium_hpd@vga-hpd-after-hibernate.html
- shard-lnl: NOTRUN -> [SKIP][31] ([Intel XE#373]) +1 other test skip
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-2/igt@kms_chamelium_hpd@vga-hpd-after-hibernate.html
* igt@kms_content_protection@atomic-dpms:
- shard-dg2-set2: NOTRUN -> [FAIL][32] ([Intel XE#1178]) +1 other test fail
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-433/igt@kms_content_protection@atomic-dpms.html
- shard-lnl: NOTRUN -> [SKIP][33] ([Intel XE#3278])
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-2/igt@kms_content_protection@atomic-dpms.html
- shard-bmg: NOTRUN -> [SKIP][34] ([Intel XE#2341])
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-5/igt@kms_content_protection@atomic-dpms.html
* igt@kms_content_protection@lic-type-0@pipe-a-dp-4:
- shard-dg2-set2: NOTRUN -> [FAIL][35] ([Intel XE#3304])
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-463/igt@kms_content_protection@lic-type-0@pipe-a-dp-4.html
* igt@kms_cursor_crc@cursor-rapid-movement-128x42:
- shard-lnl: NOTRUN -> [SKIP][36] ([Intel XE#1424]) +1 other test skip
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-2/igt@kms_cursor_crc@cursor-rapid-movement-128x42.html
- shard-bmg: NOTRUN -> [SKIP][37] ([Intel XE#2320]) +1 other test skip
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-5/igt@kms_cursor_crc@cursor-rapid-movement-128x42.html
* igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic:
- shard-lnl: NOTRUN -> [SKIP][38] ([Intel XE#309])
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-2/igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic.html
- shard-bmg: NOTRUN -> [SKIP][39] ([Intel XE#2291])
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-5/igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic.html
* igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size:
- shard-bmg: [PASS][40] -> [SKIP][41] ([Intel XE#2291]) +2 other tests skip
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-bmg-8/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size.html
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-5/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size.html
* igt@kms_dirtyfb@drrs-dirtyfb-ioctl:
- shard-bmg: NOTRUN -> [SKIP][42] ([Intel XE#1508])
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-5/igt@kms_dirtyfb@drrs-dirtyfb-ioctl.html
- shard-lnl: NOTRUN -> [SKIP][43] ([Intel XE#1508])
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-2/igt@kms_dirtyfb@drrs-dirtyfb-ioctl.html
* igt@kms_dp_aux_dev:
- shard-bmg: [PASS][44] -> [SKIP][45] ([Intel XE#3009])
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-bmg-8/igt@kms_dp_aux_dev.html
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-5/igt@kms_dp_aux_dev.html
* igt@kms_dsc@dsc-basic:
- shard-bmg: NOTRUN -> [SKIP][46] ([Intel XE#2244])
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-5/igt@kms_dsc@dsc-basic.html
- shard-lnl: NOTRUN -> [SKIP][47] ([Intel XE#2244])
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-2/igt@kms_dsc@dsc-basic.html
* igt@kms_flip@2x-flip-vs-dpms-on-nop-interruptible:
- shard-bmg: [PASS][48] -> [SKIP][49] ([Intel XE#2316]) +5 other tests skip
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-bmg-3/igt@kms_flip@2x-flip-vs-dpms-on-nop-interruptible.html
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-6/igt@kms_flip@2x-flip-vs-dpms-on-nop-interruptible.html
* igt@kms_flip@absolute-wf_vblank-interruptible@a-edp1:
- shard-lnl: [PASS][50] -> [INCOMPLETE][51] ([Intel XE#2049]) +1 other test incomplete
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-lnl-3/igt@kms_flip@absolute-wf_vblank-interruptible@a-edp1.html
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-2/igt@kms_flip@absolute-wf_vblank-interruptible@a-edp1.html
* igt@kms_flip@flip-vs-absolute-wf_vblank@b-hdmi-a1:
- shard-adlp: [PASS][52] -> [DMESG-WARN][53] ([Intel XE#4543]) +1 other test dmesg-warn
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-adlp-9/igt@kms_flip@flip-vs-absolute-wf_vblank@b-hdmi-a1.html
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-adlp-3/igt@kms_flip@flip-vs-absolute-wf_vblank@b-hdmi-a1.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@a-edp1:
- shard-lnl: [PASS][54] -> [FAIL][55] ([Intel XE#301])
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-lnl-4/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-edp1.html
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-1/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-edp1.html
* igt@kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling:
- shard-dg2-set2: [PASS][56] -> [SKIP][57] ([Intel XE#2351] / [Intel XE#4208]) +4 other tests skip
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-466/igt@kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling.html
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling:
- shard-lnl: NOTRUN -> [SKIP][58] ([Intel XE#1397] / [Intel XE#1745])
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-2/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling@pipe-a-default-mode:
- shard-lnl: NOTRUN -> [SKIP][59] ([Intel XE#1397])
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-2/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling@pipe-a-default-mode.html
* igt@kms_flip_tiling@flip-change-tiling@pipe-d-hdmi-a-1-y-to-y:
- shard-adlp: [PASS][60] -> [DMESG-FAIL][61] ([Intel XE#4543]) +1 other test dmesg-fail
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-adlp-1/igt@kms_flip_tiling@flip-change-tiling@pipe-d-hdmi-a-1-y-to-y.html
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-adlp-1/igt@kms_flip_tiling@flip-change-tiling@pipe-d-hdmi-a-1-y-to-y.html
* igt@kms_frontbuffer_tracking@drrs-1p-primscrn-shrfb-plflip-blt:
- shard-dg2-set2: NOTRUN -> [SKIP][62] ([Intel XE#651]) +5 other tests skip
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-433/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-shrfb-plflip-blt.html
- shard-lnl: NOTRUN -> [SKIP][63] ([Intel XE#651]) +1 other test skip
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-2/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-shrfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-render:
- shard-bmg: NOTRUN -> [SKIP][64] ([Intel XE#2312]) +3 other tests skip
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-5/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbc-stridechange:
- shard-bmg: NOTRUN -> [SKIP][65] ([Intel XE#5390])
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-stridechange.html
* igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-shrfb-pgflip-blt:
- shard-bmg: NOTRUN -> [SKIP][66] ([Intel XE#2311]) +1 other test skip
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-shrfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-blt:
- shard-bmg: NOTRUN -> [SKIP][67] ([Intel XE#2313])
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-blt.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-blt:
- shard-lnl: NOTRUN -> [SKIP][68] ([Intel XE#656]) +2 other tests skip
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-2/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-blt.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-shrfb-plflip-blt:
- shard-dg2-set2: NOTRUN -> [SKIP][69] ([Intel XE#653]) +4 other tests skip
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-434/igt@kms_frontbuffer_tracking@psr-2p-primscrn-shrfb-plflip-blt.html
* igt@kms_hdr@static-toggle-suspend:
- shard-bmg: [PASS][70] -> [SKIP][71] ([Intel XE#1503])
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-bmg-3/igt@kms_hdr@static-toggle-suspend.html
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-6/igt@kms_hdr@static-toggle-suspend.html
* igt@kms_joiner@basic-force-ultra-joiner:
- shard-bmg: NOTRUN -> [SKIP][72] ([Intel XE#2934])
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-5/igt@kms_joiner@basic-force-ultra-joiner.html
- shard-dg2-set2: NOTRUN -> [SKIP][73] ([Intel XE#2925])
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-433/igt@kms_joiner@basic-force-ultra-joiner.html
- shard-lnl: NOTRUN -> [SKIP][74] ([Intel XE#2934])
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-2/igt@kms_joiner@basic-force-ultra-joiner.html
* igt@kms_plane_lowres@tiling-y:
- shard-lnl: NOTRUN -> [SKIP][75] ([Intel XE#599])
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-2/igt@kms_plane_lowres@tiling-y.html
- shard-bmg: NOTRUN -> [SKIP][76] ([Intel XE#2393])
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-5/igt@kms_plane_lowres@tiling-y.html
* igt@kms_pm_backlight@fade-with-dpms:
- shard-dg2-set2: NOTRUN -> [SKIP][77] ([Intel XE#870])
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-434/igt@kms_pm_backlight@fade-with-dpms.html
* igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-sf-dmg-area:
- shard-bmg: NOTRUN -> [SKIP][78] ([Intel XE#1489]) +1 other test skip
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-5/igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-sf-dmg-area.html
- shard-lnl: NOTRUN -> [SKIP][79] ([Intel XE#2893] / [Intel XE#4608])
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-2/igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-sf-dmg-area.html
* igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-sf-dmg-area@pipe-a-edp-1:
- shard-lnl: NOTRUN -> [SKIP][80] ([Intel XE#4608])
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-2/igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-sf-dmg-area@pipe-a-edp-1.html
* igt@kms_psr2_sf@pr-cursor-plane-move-continuous-sf:
- shard-dg2-set2: NOTRUN -> [SKIP][81] ([Intel XE#1489]) +2 other tests skip
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-433/igt@kms_psr2_sf@pr-cursor-plane-move-continuous-sf.html
* igt@kms_psr@fbc-pr-primary-blt:
- shard-bmg: NOTRUN -> [SKIP][82] ([Intel XE#2234] / [Intel XE#2850]) +2 other tests skip
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-5/igt@kms_psr@fbc-pr-primary-blt.html
* igt@kms_psr@fbc-psr-no-drrs:
- shard-dg2-set2: NOTRUN -> [SKIP][83] ([Intel XE#2351] / [Intel XE#4208]) +10 other tests skip
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@kms_psr@fbc-psr-no-drrs.html
* igt@kms_psr@fbc-psr2-sprite-plane-onoff:
- shard-dg2-set2: NOTRUN -> [SKIP][84] ([Intel XE#2850] / [Intel XE#929]) +5 other tests skip
[84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-433/igt@kms_psr@fbc-psr2-sprite-plane-onoff.html
- shard-lnl: NOTRUN -> [SKIP][85] ([Intel XE#1406]) +1 other test skip
[85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-2/igt@kms_psr@fbc-psr2-sprite-plane-onoff.html
* igt@kms_psr@fbc-psr2-sprite-plane-onoff@edp-1:
- shard-lnl: NOTRUN -> [SKIP][86] ([Intel XE#4609])
[86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-2/igt@kms_psr@fbc-psr2-sprite-plane-onoff@edp-1.html
* igt@kms_rotation_crc@bad-tiling:
- shard-dg2-set2: NOTRUN -> [SKIP][87] ([Intel XE#3414]) +1 other test skip
[87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-433/igt@kms_rotation_crc@bad-tiling.html
- shard-lnl: NOTRUN -> [SKIP][88] ([Intel XE#3414] / [Intel XE#3904]) +1 other test skip
[88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-2/igt@kms_rotation_crc@bad-tiling.html
* igt@kms_rotation_crc@primary-rotation-270:
- shard-bmg: NOTRUN -> [SKIP][89] ([Intel XE#3414] / [Intel XE#3904]) +1 other test skip
[89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-5/igt@kms_rotation_crc@primary-rotation-270.html
* igt@kms_vrr@negative-basic:
- shard-lnl: NOTRUN -> [SKIP][90] ([Intel XE#1499])
[90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-2/igt@kms_vrr@negative-basic.html
- shard-bmg: NOTRUN -> [SKIP][91] ([Intel XE#1499])
[91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-5/igt@kms_vrr@negative-basic.html
* igt@xe_compute_preempt@compute-preempt-many-all-ram@engine-drm_xe_engine_class_compute:
- shard-dg2-set2: NOTRUN -> [SKIP][92] ([Intel XE#455]) +11 other tests skip
[92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-433/igt@xe_compute_preempt@compute-preempt-many-all-ram@engine-drm_xe_engine_class_compute.html
* igt@xe_eu_stall@non-blocking-read:
- shard-dg2-set2: NOTRUN -> [SKIP][93] ([Intel XE#5419])
[93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-433/igt@xe_eu_stall@non-blocking-read.html
* igt@xe_eudebug@basic-vm-access-parameters:
- shard-dg2-set2: NOTRUN -> [SKIP][94] ([Intel XE#4837]) +3 other tests skip
[94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-433/igt@xe_eudebug@basic-vm-access-parameters.html
- shard-lnl: NOTRUN -> [SKIP][95] ([Intel XE#4837]) +1 other test skip
[95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-2/igt@xe_eudebug@basic-vm-access-parameters.html
- shard-bmg: NOTRUN -> [SKIP][96] ([Intel XE#4837]) +1 other test skip
[96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-5/igt@xe_eudebug@basic-vm-access-parameters.html
* igt@xe_evict_ccs@evict-overcommit-parallel-instantfree-reopen:
- shard-lnl: NOTRUN -> [SKIP][97] ([Intel XE#688])
[97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-2/igt@xe_evict_ccs@evict-overcommit-parallel-instantfree-reopen.html
* igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-rebind:
- shard-bmg: NOTRUN -> [SKIP][98] ([Intel XE#2322]) +1 other test skip
[98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-5/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-rebind.html
* igt@xe_exec_basic@multigpu-no-exec-basic-defer-mmap:
- shard-dg2-set2: [PASS][99] -> [SKIP][100] ([Intel XE#1392])
[99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-466/igt@xe_exec_basic@multigpu-no-exec-basic-defer-mmap.html
[100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-432/igt@xe_exec_basic@multigpu-no-exec-basic-defer-mmap.html
* igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr-rebind:
- shard-lnl: NOTRUN -> [SKIP][101] ([Intel XE#1392]) +1 other test skip
[101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-2/igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr-rebind.html
* igt@xe_exec_basic@no-exec-userptr-invalidate:
- shard-dg2-set2: [PASS][102] -> [SKIP][103] ([Intel XE#4208]) +100 other tests skip
[102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-466/igt@xe_exec_basic@no-exec-userptr-invalidate.html
[103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@xe_exec_basic@no-exec-userptr-invalidate.html
* igt@xe_exec_fault_mode@twice-bindexecqueue-userptr-invalidate-race:
- shard-dg2-set2: NOTRUN -> [SKIP][104] ([Intel XE#288]) +5 other tests skip
[104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-434/igt@xe_exec_fault_mode@twice-bindexecqueue-userptr-invalidate-race.html
* igt@xe_exec_mix_modes@exec-simple-batch-store-dma-fence:
- shard-dg2-set2: NOTRUN -> [SKIP][105] ([Intel XE#2360])
[105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-434/igt@xe_exec_mix_modes@exec-simple-batch-store-dma-fence.html
* igt@xe_exec_system_allocator@process-many-execqueues-free-race:
- shard-dg2-set2: NOTRUN -> [SKIP][106] ([Intel XE#4208]) +129 other tests skip
[106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@xe_exec_system_allocator@process-many-execqueues-free-race.html
* igt@xe_exec_system_allocator@process-many-execqueues-mmap-free-huge:
- shard-bmg: NOTRUN -> [SKIP][107] ([Intel XE#4943]) +2 other tests skip
[107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-5/igt@xe_exec_system_allocator@process-many-execqueues-mmap-free-huge.html
* igt@xe_exec_system_allocator@threads-many-large-execqueues-malloc-mlock-nomemset:
- shard-dg2-set2: NOTRUN -> [SKIP][108] ([Intel XE#4915]) +75 other tests skip
[108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-433/igt@xe_exec_system_allocator@threads-many-large-execqueues-malloc-mlock-nomemset.html
* igt@xe_exec_system_allocator@threads-shared-vm-many-stride-mmap-new-huge-nomemset:
- shard-lnl: NOTRUN -> [SKIP][109] ([Intel XE#4943]) +2 other tests skip
[109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-2/igt@xe_exec_system_allocator@threads-shared-vm-many-stride-mmap-new-huge-nomemset.html
* igt@xe_huc_copy@huc_copy:
- shard-dg2-set2: NOTRUN -> [SKIP][110] ([Intel XE#255])
[110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-433/igt@xe_huc_copy@huc_copy.html
* igt@xe_oa@mmio-triggered-reports:
- shard-dg2-set2: NOTRUN -> [SKIP][111] ([Intel XE#2541] / [Intel XE#3573])
[111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-434/igt@xe_oa@mmio-triggered-reports.html
* igt@xe_peer2peer@read@read-gpua-vram01-gpub-system-p2p:
- shard-dg2-set2: NOTRUN -> [FAIL][112] ([Intel XE#1173])
[112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-435/igt@xe_peer2peer@read@read-gpua-vram01-gpub-system-p2p.html
* igt@xe_pm@s2idle-basic-exec:
- shard-adlp: [PASS][113] -> [DMESG-WARN][114] ([Intel XE#2953] / [Intel XE#4173])
[113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-adlp-2/igt@xe_pm@s2idle-basic-exec.html
[114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-adlp-8/igt@xe_pm@s2idle-basic-exec.html
* igt@xe_pm@vram-d3cold-threshold:
- shard-dg2-set2: NOTRUN -> [SKIP][115] ([Intel XE#579])
[115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-433/igt@xe_pm@vram-d3cold-threshold.html
- shard-lnl: NOTRUN -> [SKIP][116] ([Intel XE#579])
[116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-2/igt@xe_pm@vram-d3cold-threshold.html
- shard-bmg: NOTRUN -> [SKIP][117] ([Intel XE#579])
[117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-5/igt@xe_pm@vram-d3cold-threshold.html
* igt@xe_query@multigpu-query-hwconfig:
- shard-bmg: NOTRUN -> [SKIP][118] ([Intel XE#944])
[118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-5/igt@xe_query@multigpu-query-hwconfig.html
- shard-lnl: NOTRUN -> [SKIP][119] ([Intel XE#944])
[119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-2/igt@xe_query@multigpu-query-hwconfig.html
* igt@xe_query@multigpu-query-uc-fw-version-guc:
- shard-dg2-set2: NOTRUN -> [SKIP][120] ([Intel XE#944]) +1 other test skip
[120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-434/igt@xe_query@multigpu-query-uc-fw-version-guc.html
* igt@xe_sriov_auto_provisioning@exclusive-ranges:
- shard-dg2-set2: NOTRUN -> [SKIP][121] ([Intel XE#4130])
[121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-434/igt@xe_sriov_auto_provisioning@exclusive-ranges.html
#### Possible fixes ####
* igt@core_setmaster@master-drop-set-root:
- shard-dg2-set2: [FAIL][122] ([Intel XE#4208]) -> [PASS][123]
[122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@core_setmaster@master-drop-set-root.html
[123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-432/igt@core_setmaster@master-drop-set-root.html
* igt@fbdev@eof:
- shard-dg2-set2: [SKIP][124] ([Intel XE#2134]) -> [PASS][125]
[124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-464/igt@fbdev@eof.html
[125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-463/igt@fbdev@eof.html
* igt@intel_sysfs_debugfs@xe-base:
- shard-dg2-set2: [SKIP][126] ([Intel XE#4208] / [Intel XE#4618]) -> [PASS][127]
[126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@intel_sysfs_debugfs@xe-base.html
[127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-432/igt@intel_sysfs_debugfs@xe-base.html
* igt@kms_atomic@plane-invalid-params-fence:
- shard-dg2-set2: [SKIP][128] ([Intel XE#4208] / [i915#2575]) -> [PASS][129] +52 other tests pass
[128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@kms_atomic@plane-invalid-params-fence.html
[129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-435/igt@kms_atomic@plane-invalid-params-fence.html
* igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1:
- shard-adlp: [FAIL][130] ([Intel XE#3908]) -> [PASS][131] +1 other test pass
[130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-adlp-9/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1.html
[131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-adlp-3/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1.html
* igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip:
- shard-adlp: [DMESG-FAIL][132] ([Intel XE#4543]) -> [PASS][133]
[132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-adlp-6/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html
[133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-adlp-4/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html
* igt@kms_bw@connected-linear-tiling-2-displays-2560x1440p:
- shard-bmg: [SKIP][134] ([Intel XE#2314] / [Intel XE#2894]) -> [PASS][135]
[134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-bmg-5/igt@kms_bw@connected-linear-tiling-2-displays-2560x1440p.html
[135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-8/igt@kms_bw@connected-linear-tiling-2-displays-2560x1440p.html
* igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs-cc:
- shard-dg2-set2: [SKIP][136] ([Intel XE#2351] / [Intel XE#4208]) -> [PASS][137] +3 other tests pass
[136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs-cc.html
[137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-435/igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs-cc.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs:
- shard-dg2-set2: [INCOMPLETE][138] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4345] / [Intel XE#4522]) -> [PASS][139]
[138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html
[139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-434/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-c-dp-4:
- shard-dg2-set2: [INCOMPLETE][140] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4522]) -> [PASS][141]
[140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-c-dp-4.html
[141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-434/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-c-dp-4.html
* igt@kms_cursor_legacy@cursorb-vs-flipa-legacy:
- shard-bmg: [SKIP][142] ([Intel XE#2291]) -> [PASS][143] +6 other tests pass
[142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-bmg-6/igt@kms_cursor_legacy@cursorb-vs-flipa-legacy.html
[143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-8/igt@kms_cursor_legacy@cursorb-vs-flipa-legacy.html
* igt@kms_cursor_legacy@single-bo:
- shard-adlp: [DMESG-WARN][144] ([Intel XE#2953] / [Intel XE#4173]) -> [PASS][145] +11 other tests pass
[144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-adlp-1/igt@kms_cursor_legacy@single-bo.html
[145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-adlp-1/igt@kms_cursor_legacy@single-bo.html
* igt@kms_dp_link_training@non-uhbr-sst:
- shard-bmg: [SKIP][146] ([Intel XE#4354]) -> [PASS][147]
[146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-bmg-5/igt@kms_dp_link_training@non-uhbr-sst.html
[147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-8/igt@kms_dp_link_training@non-uhbr-sst.html
* igt@kms_dp_linktrain_fallback@dp-fallback:
- shard-bmg: [SKIP][148] ([Intel XE#4294]) -> [PASS][149]
[148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-bmg-5/igt@kms_dp_linktrain_fallback@dp-fallback.html
[149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-3/igt@kms_dp_linktrain_fallback@dp-fallback.html
* igt@kms_flip@2x-plain-flip-fb-recreate:
- shard-bmg: [SKIP][150] ([Intel XE#2316]) -> [PASS][151] +10 other tests pass
[150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-bmg-5/igt@kms_flip@2x-plain-flip-fb-recreate.html
[151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-8/igt@kms_flip@2x-plain-flip-fb-recreate.html
* igt@kms_flip@2x-plain-flip-ts-check:
- shard-bmg: [FAIL][152] ([Intel XE#3098]) -> [PASS][153] +1 other test pass
[152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-bmg-4/igt@kms_flip@2x-plain-flip-ts-check.html
[153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-2/igt@kms_flip@2x-plain-flip-ts-check.html
* igt@kms_flip@basic-flip-vs-modeset@d-hdmi-a1:
- shard-adlp: [DMESG-WARN][154] ([Intel XE#4543]) -> [PASS][155] +1 other test pass
[154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-adlp-4/igt@kms_flip@basic-flip-vs-modeset@d-hdmi-a1.html
[155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-adlp-9/igt@kms_flip@basic-flip-vs-modeset@d-hdmi-a1.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@c-edp1:
- shard-lnl: [FAIL][156] ([Intel XE#301]) -> [PASS][157]
[156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-lnl-4/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-edp1.html
[157]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-1/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-edp1.html
* igt@kms_flip@flip-vs-suspend-interruptible:
- shard-bmg: [INCOMPLETE][158] ([Intel XE#2049] / [Intel XE#2597]) -> [PASS][159] +1 other test pass
[158]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-bmg-4/igt@kms_flip@flip-vs-suspend-interruptible.html
[159]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-5/igt@kms_flip@flip-vs-suspend-interruptible.html
* igt@kms_hdr@invalid-hdr:
- shard-bmg: [SKIP][160] ([Intel XE#1503]) -> [PASS][161]
[160]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-bmg-1/igt@kms_hdr@invalid-hdr.html
[161]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-7/igt@kms_hdr@invalid-hdr.html
* igt@kms_plane_scaling@2x-scaler-multi-pipe:
- shard-bmg: [SKIP][162] ([Intel XE#2571]) -> [PASS][163]
[162]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-bmg-5/igt@kms_plane_scaling@2x-scaler-multi-pipe.html
[163]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-3/igt@kms_plane_scaling@2x-scaler-multi-pipe.html
* igt@kms_setmode@basic@pipe-b-edp-1:
- shard-lnl: [FAIL][164] ([Intel XE#2883]) -> [PASS][165] +2 other tests pass
[164]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-lnl-2/igt@kms_setmode@basic@pipe-b-edp-1.html
[165]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-4/igt@kms_setmode@basic@pipe-b-edp-1.html
* igt@kms_setmode@clone-exclusive-crtc:
- shard-bmg: [SKIP][166] ([Intel XE#1435]) -> [PASS][167]
[166]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-bmg-5/igt@kms_setmode@clone-exclusive-crtc.html
[167]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-7/igt@kms_setmode@clone-exclusive-crtc.html
* igt@xe_exec_basic@many-null-rebind:
- shard-dg2-set2: [SKIP][168] ([Intel XE#4208]) -> [PASS][169] +121 other tests pass
[168]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@xe_exec_basic@many-null-rebind.html
[169]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-432/igt@xe_exec_basic@many-null-rebind.html
* igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr-rebind:
- shard-dg2-set2: [SKIP][170] ([Intel XE#1392]) -> [PASS][171] +1 other test pass
[170]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-432/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr-rebind.html
[171]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-463/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr-rebind.html
* igt@xe_exec_reset@gt-reset-stress:
- shard-adlp: [DMESG-WARN][172] ([Intel XE#4812]) -> [PASS][173]
[172]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-adlp-6/igt@xe_exec_reset@gt-reset-stress.html
[173]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-adlp-4/igt@xe_exec_reset@gt-reset-stress.html
* igt@xe_exec_system_allocator@threads-shared-vm-many-large-new-bo-map-nomemset:
- shard-lnl: [FAIL][174] ([Intel XE#5018]) -> [PASS][175]
[174]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-lnl-7/igt@xe_exec_system_allocator@threads-shared-vm-many-large-new-bo-map-nomemset.html
[175]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-7/igt@xe_exec_system_allocator@threads-shared-vm-many-large-new-bo-map-nomemset.html
* igt@xe_module_load@many-reload:
- shard-adlp: [DMESG-WARN][176] ([Intel XE#2953] / [Intel XE#4173] / [Intel XE#5244]) -> [PASS][177]
[176]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-adlp-3/igt@xe_module_load@many-reload.html
[177]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-adlp-6/igt@xe_module_load@many-reload.html
* igt@xe_pmu@gt-frequency:
- shard-dg2-set2: [FAIL][178] ([Intel XE#4835]) -> [PASS][179] +1 other test pass
[178]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-434/igt@xe_pmu@gt-frequency.html
[179]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-435/igt@xe_pmu@gt-frequency.html
#### Warnings ####
* igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- shard-dg2-set2: [SKIP][180] ([Intel XE#4208] / [i915#2575]) -> [SKIP][181] ([Intel XE#623])
[180]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-464/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
[181]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-463/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
* igt@kms_big_fb@4-tiled-64bpp-rotate-270:
- shard-dg2-set2: [SKIP][182] ([Intel XE#316]) -> [SKIP][183] ([Intel XE#2351] / [Intel XE#4208])
[182]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-433/igt@kms_big_fb@4-tiled-64bpp-rotate-270.html
[183]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@kms_big_fb@4-tiled-64bpp-rotate-270.html
* igt@kms_big_fb@4-tiled-64bpp-rotate-90:
- shard-dg2-set2: [SKIP][184] ([Intel XE#4208]) -> [SKIP][185] ([Intel XE#316])
[184]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@kms_big_fb@4-tiled-64bpp-rotate-90.html
[185]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-435/igt@kms_big_fb@4-tiled-64bpp-rotate-90.html
* igt@kms_big_fb@x-tiled-16bpp-rotate-90:
- shard-dg2-set2: [SKIP][186] ([Intel XE#316]) -> [SKIP][187] ([Intel XE#4208])
[186]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-466/igt@kms_big_fb@x-tiled-16bpp-rotate-90.html
[187]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@kms_big_fb@x-tiled-16bpp-rotate-90.html
* igt@kms_big_fb@x-tiled-8bpp-rotate-90:
- shard-dg2-set2: [SKIP][188] ([Intel XE#2351] / [Intel XE#4208]) -> [SKIP][189] ([Intel XE#316])
[188]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-464/igt@kms_big_fb@x-tiled-8bpp-rotate-90.html
[189]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-463/igt@kms_big_fb@x-tiled-8bpp-rotate-90.html
* igt@kms_big_fb@y-tiled-64bpp-rotate-180:
- shard-dg2-set2: [SKIP][190] ([Intel XE#2351] / [Intel XE#4208]) -> [SKIP][191] ([Intel XE#1124]) +2 other tests skip
[190]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@kms_big_fb@y-tiled-64bpp-rotate-180.html
[191]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-432/igt@kms_big_fb@y-tiled-64bpp-rotate-180.html
* igt@kms_big_fb@y-tiled-addfb-size-overflow:
- shard-dg2-set2: [SKIP][192] ([Intel XE#4208]) -> [SKIP][193] ([Intel XE#610])
[192]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@kms_big_fb@y-tiled-addfb-size-overflow.html
[193]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-435/igt@kms_big_fb@y-tiled-addfb-size-overflow.html
* igt@kms_big_fb@yf-tiled-16bpp-rotate-0:
- shard-dg2-set2: [SKIP][194] ([Intel XE#1124]) -> [SKIP][195] ([Intel XE#4208]) +2 other tests skip
[194]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-466/igt@kms_big_fb@yf-tiled-16bpp-rotate-0.html
[195]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@kms_big_fb@yf-tiled-16bpp-rotate-0.html
* igt@kms_big_fb@yf-tiled-32bpp-rotate-180:
- shard-dg2-set2: [SKIP][196] ([Intel XE#4208]) -> [SKIP][197] ([Intel XE#1124]) +1 other test skip
[196]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@kms_big_fb@yf-tiled-32bpp-rotate-180.html
[197]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-432/igt@kms_big_fb@yf-tiled-32bpp-rotate-180.html
* igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow:
- shard-dg2-set2: [SKIP][198] ([Intel XE#4208]) -> [SKIP][199] ([Intel XE#607])
[198]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow.html
[199]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-435/igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip:
- shard-dg2-set2: [SKIP][200] ([Intel XE#1124]) -> [SKIP][201] ([Intel XE#2351] / [Intel XE#4208]) +1 other test skip
[200]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-433/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html
[201]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html
* igt@kms_bw@connected-linear-tiling-3-displays-2560x1440p:
- shard-dg2-set2: [SKIP][202] ([Intel XE#2191]) -> [SKIP][203] ([Intel XE#4208] / [i915#2575]) +1 other test skip
[202]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-433/igt@kms_bw@connected-linear-tiling-3-displays-2560x1440p.html
[203]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@kms_bw@connected-linear-tiling-3-displays-2560x1440p.html
* igt@kms_bw@connected-linear-tiling-4-displays-1920x1080p:
- shard-dg2-set2: [SKIP][204] ([Intel XE#4208] / [i915#2575]) -> [SKIP][205] ([Intel XE#2191])
[204]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@kms_bw@connected-linear-tiling-4-displays-1920x1080p.html
[205]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-435/igt@kms_bw@connected-linear-tiling-4-displays-1920x1080p.html
* igt@kms_bw@linear-tiling-1-displays-3840x2160p:
- shard-dg2-set2: [SKIP][206] ([Intel XE#367]) -> [SKIP][207] ([Intel XE#4208] / [i915#2575])
[206]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-466/igt@kms_bw@linear-tiling-1-displays-3840x2160p.html
[207]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@kms_bw@linear-tiling-1-displays-3840x2160p.html
* igt@kms_bw@linear-tiling-2-displays-1920x1080p:
- shard-dg2-set2: [SKIP][208] ([Intel XE#4208] / [i915#2575]) -> [SKIP][209] ([Intel XE#367])
[208]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@kms_bw@linear-tiling-2-displays-1920x1080p.html
[209]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-432/igt@kms_bw@linear-tiling-2-displays-1920x1080p.html
* igt@kms_ccs@bad-pixel-format-y-tiled-gen12-rc-ccs:
- shard-dg2-set2: [SKIP][210] ([Intel XE#455] / [Intel XE#787]) -> [SKIP][211] ([Intel XE#2351] / [Intel XE#4208])
[210]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-466/igt@kms_ccs@bad-pixel-format-y-tiled-gen12-rc-ccs.html
[211]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@kms_ccs@bad-pixel-format-y-tiled-gen12-rc-ccs.html
* igt@kms_ccs@bad-rotation-90-4-tiled-mtl-mc-ccs:
- shard-dg2-set2: [SKIP][212] ([Intel XE#4208]) -> [SKIP][213] ([Intel XE#455] / [Intel XE#787]) +5 other tests skip
[212]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-mc-ccs.html
[213]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-435/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-mc-ccs.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs:
- shard-dg2-set2: [INCOMPLETE][214] ([Intel XE#3862]) -> [SKIP][215] ([Intel XE#4208])
[214]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-434/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs.html
[215]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs.html
* igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs:
- shard-dg2-set2: [SKIP][216] ([Intel XE#2907]) -> [SKIP][217] ([Intel XE#4208])
[216]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-433/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs.html
[217]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs.html
* igt@kms_ccs@random-ccs-data-y-tiled-gen12-mc-ccs:
- shard-dg2-set2: [SKIP][218] ([Intel XE#455] / [Intel XE#787]) -> [SKIP][219] ([Intel XE#4208]) +7 other tests skip
[218]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-466/igt@kms_ccs@random-ccs-data-y-tiled-gen12-mc-ccs.html
[219]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@kms_ccs@random-ccs-data-y-tiled-gen12-mc-ccs.html
* igt@kms_chamelium_color@ctm-blue-to-red:
- shard-dg2-set2: [SKIP][220] ([Intel XE#4208] / [i915#2575]) -> [SKIP][221] ([Intel XE#306])
[220]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@kms_chamelium_color@ctm-blue-to-red.html
[221]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-435/igt@kms_chamelium_color@ctm-blue-to-red.html
* igt@kms_chamelium_edid@dp-edid-change-during-suspend:
- shard-dg2-set2: [SKIP][222] ([Intel XE#373]) -> [SKIP][223] ([Intel XE#4208] / [i915#2575]) +5 other tests skip
[222]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-466/igt@kms_chamelium_edid@dp-edid-change-during-suspend.html
[223]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@kms_chamelium_edid@dp-edid-change-during-suspend.html
* igt@kms_chamelium_hpd@vga-hpd-without-ddc:
- shard-dg2-set2: [SKIP][224] ([Intel XE#4208] / [i915#2575]) -> [SKIP][225] ([Intel XE#373]) +5 other tests skip
[224]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@kms_chamelium_hpd@vga-hpd-without-ddc.html
[225]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-432/igt@kms_chamelium_hpd@vga-hpd-without-ddc.html
* igt@kms_content_protection@dp-mst-lic-type-0:
- shard-dg2-set2: [SKIP][226] ([Intel XE#4208] / [i915#2575]) -> [SKIP][227] ([Intel XE#307])
[226]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@kms_content_protection@dp-mst-lic-type-0.html
[227]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-432/igt@kms_content_protection@dp-mst-lic-type-0.html
* igt@kms_content_protection@dp-mst-type-1:
- shard-dg2-set2: [SKIP][228] ([Intel XE#307]) -> [SKIP][229] ([Intel XE#4208] / [i915#2575])
[228]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-466/igt@kms_content_protection@dp-mst-type-1.html
[229]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@kms_content_protection@dp-mst-type-1.html
* igt@kms_content_protection@srm:
- shard-dg2-set2: [FAIL][230] ([Intel XE#1178]) -> [SKIP][231] ([Intel XE#4208] / [i915#2575])
[230]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-433/igt@kms_content_protection@srm.html
[231]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@kms_content_protection@srm.html
* igt@kms_cursor_crc@cursor-offscreen-512x170:
- shard-dg2-set2: [SKIP][232] ([Intel XE#4208] / [i915#2575]) -> [SKIP][233] ([Intel XE#308])
[232]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@kms_cursor_crc@cursor-offscreen-512x170.html
[233]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-432/igt@kms_cursor_crc@cursor-offscreen-512x170.html
* igt@kms_cursor_crc@cursor-sliding-max-size:
- shard-dg2-set2: [SKIP][234] ([Intel XE#455]) -> [SKIP][235] ([Intel XE#4208] / [i915#2575]) +2 other tests skip
[234]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-433/igt@kms_cursor_crc@cursor-sliding-max-size.html
[235]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@kms_cursor_crc@cursor-sliding-max-size.html
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions:
- shard-dg2-set2: [SKIP][236] ([Intel XE#4208] / [i915#2575]) -> [SKIP][237] ([Intel XE#323])
[236]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html
[237]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-435/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html
* igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-dirtyfb-tests:
- shard-dg2-set2: [SKIP][238] ([Intel XE#4208]) -> [SKIP][239] ([Intel XE#4422])
[238]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-dirtyfb-tests.html
[239]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-432/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-dirtyfb-tests.html
* igt@kms_feature_discovery@chamelium:
- shard-dg2-set2: [SKIP][240] ([Intel XE#4208] / [i915#2575]) -> [SKIP][241] ([Intel XE#701])
[240]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@kms_feature_discovery@chamelium.html
[241]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-435/igt@kms_feature_discovery@chamelium.html
* igt@kms_feature_discovery@psr1:
- shard-dg2-set2: [SKIP][242] ([Intel XE#1135]) -> [SKIP][243] ([Intel XE#4208] / [i915#2575])
[242]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-433/igt@kms_feature_discovery@psr1.html
[243]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@kms_feature_discovery@psr1.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible:
- shard-lnl: [FAIL][244] ([Intel XE#301] / [Intel XE#3149]) -> [FAIL][245] ([Intel XE#301])
[244]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-lnl-4/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
[245]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-lnl-1/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling:
- shard-dg2-set2: [SKIP][246] ([Intel XE#455]) -> [SKIP][247] ([Intel XE#4208])
[246]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-433/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling.html
[247]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling:
- shard-dg2-set2: [SKIP][248] ([Intel XE#2351] / [Intel XE#4208]) -> [SKIP][249] ([Intel XE#455])
[248]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling.html
[249]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-435/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling.html
* igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-onoff:
- shard-dg2-set2: [SKIP][250] ([Intel XE#651]) -> [SKIP][251] ([Intel XE#4208]) +11 other tests skip
[250]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-433/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-onoff.html
[251]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-onoff.html
* igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-onoff:
- shard-dg2-set2: [SKIP][252] ([Intel XE#4208]) -> [SKIP][253] ([Intel XE#651]) +12 other tests skip
[252]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-onoff.html
[253]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-432/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-onoff.html
* igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-fullscreen:
- shard-dg2-set2: [SKIP][254] ([Intel XE#651]) -> [SKIP][255] ([Intel XE#2351] / [Intel XE#4208]) +3 other tests skip
[254]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-433/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-fullscreen.html
[255]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-fullscreen.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-render:
- shard-bmg: [SKIP][256] ([Intel XE#5390]) -> [SKIP][257] ([Intel XE#2312]) +4 other tests skip
[256]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-bmg-8/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-render.html
[257]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff:
- shard-bmg: [SKIP][258] ([Intel XE#2312]) -> [SKIP][259] ([Intel XE#5390]) +10 other tests skip
[258]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html
[259]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-8/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html
* igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-indfb-draw-mmap-wc:
- shard-dg2-set2: [SKIP][260] ([Intel XE#651]) -> [INCOMPLETE][261] ([Intel XE#2594])
[260]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-433/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-indfb-draw-mmap-wc.html
[261]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-434/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-shrfb-draw-render:
- shard-dg2-set2: [SKIP][262] ([Intel XE#2351] / [Intel XE#4208]) -> [SKIP][263] ([Intel XE#651]) +5 other tests skip
[262]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-shrfb-draw-render.html
[263]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-435/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-shrfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc:
- shard-bmg: [SKIP][264] ([Intel XE#2312]) -> [SKIP][265] ([Intel XE#2311]) +21 other tests skip
[264]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc.html
[265]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-1/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-indfb-msflip-blt:
- shard-bmg: [SKIP][266] ([Intel XE#2311]) -> [SKIP][267] ([Intel XE#2312]) +9 other tests skip
[266]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-bmg-3/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-indfb-msflip-blt.html
[267]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-indfb-msflip-blt.html
* igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y:
- shard-dg2-set2: [SKIP][268] ([Intel XE#2351] / [Intel XE#4208]) -> [SKIP][269] ([Intel XE#658])
[268]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y.html
[269]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-435/igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-render:
- shard-dg2-set2: [SKIP][270] ([Intel XE#653]) -> [SKIP][271] ([Intel XE#2351] / [Intel XE#4208])
[270]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-466/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-render.html
[271]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-msflip-blt:
- shard-dg2-set2: [SKIP][272] ([Intel XE#653]) -> [SKIP][273] ([Intel XE#4208]) +13 other tests skip
[272]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-433/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-msflip-blt.html
[273]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-msflip-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-pri-indfb-multidraw:
- shard-bmg: [SKIP][274] ([Intel XE#2312]) -> [SKIP][275] ([Intel XE#2313]) +18 other tests skip
[274]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-pri-indfb-multidraw.html
[275]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-1/igt@kms_frontbuffer_tracking@fbcpsr-2p-pri-indfb-multidraw.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-blt:
- shard-dg2-set2: [SKIP][276] ([Intel XE#4208]) -> [SKIP][277] ([Intel XE#653]) +16 other tests skip
[276]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-blt.html
[277]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-432/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-blt.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-onoff:
- shard-bmg: [SKIP][278] ([Intel XE#2313]) -> [SKIP][279] ([Intel XE#2312]) +11 other tests skip
[278]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-bmg-3/igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-onoff.html
[279]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-bmg-6/igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-onoff.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-mmap-wc:
- shard-dg2-set2: [SKIP][280] ([Intel XE#2351] / [Intel XE#4208]) -> [SKIP][281] ([Intel XE#653])
[280]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-mmap-wc.html
[281]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-435/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-mmap-wc.html
* igt@kms_joiner@basic-big-joiner:
- shard-dg2-set2: [SKIP][282] ([Intel XE#346]) -> [SKIP][283] ([Intel XE#4208])
[282]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-466/igt@kms_joiner@basic-big-joiner.html
[283]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@kms_joiner@basic-big-joiner.html
* igt@kms_plane_multiple@2x-tiling-yf:
- shard-dg2-set2: [SKIP][284] ([Intel XE#5021]) -> [SKIP][285] ([Intel XE#4208] / [i915#2575])
[284]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-433/igt@kms_plane_multiple@2x-tiling-yf.html
[285]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@kms_plane_multiple@2x-tiling-yf.html
* igt@kms_pm_backlight@bad-brightness:
- shard-dg2-set2: [SKIP][286] ([Intel XE#4208]) -> [SKIP][287] ([Intel XE#870])
[286]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@kms_pm_backlight@bad-brightness.html
[287]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-432/igt@kms_pm_backlight@bad-brightness.html
* igt@kms_pm_backlight@brightness-with-dpms:
- shard-dg2-set2: [SKIP][288] ([Intel XE#2938]) -> [SKIP][289] ([Intel XE#4208])
[288]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-433/igt@kms_pm_backlight@brightness-with-dpms.html
[289]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@kms_pm_backlight@brightness-with-dpms.html
* igt@kms_pm_dc@dc9-dpms:
- shard-adlp: [SKIP][290] ([Intel XE#734]) -> [FAIL][291] ([Intel XE#3325])
[290]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-adlp-2/igt@kms_pm_dc@dc9-dpms.html
[291]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-adlp-8/igt@kms_pm_dc@dc9-dpms.html
* igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-sf:
- shard-dg2-set2: [SKIP][292] ([Intel XE#4208]) -> [SKIP][293] ([Intel XE#1489]) +3 other tests skip
[292]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-sf.html
[293]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-435/igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-sf.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-sf:
- shard-dg2-set2: [SKIP][294] ([Intel XE#1489]) -> [SKIP][295] ([Intel XE#4208]) +4 other tests skip
[294]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-466/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-sf.html
[295]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-sf.html
* igt@kms_psr2_su@page_flip-nv12:
- shard-dg2-set2: [SKIP][296] ([Intel XE#4208]) -> [SKIP][297] ([Intel XE#1122])
[296]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@kms_psr2_su@page_flip-nv12.html
[297]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-435/igt@kms_psr2_su@page_flip-nv12.html
* igt@kms_psr2_su@page_flip-xrgb8888:
- shard-dg2-set2: [SKIP][298] ([Intel XE#1122]) -> [SKIP][299] ([Intel XE#4208])
[298]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-466/igt@kms_psr2_su@page_flip-xrgb8888.html
[299]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@kms_psr2_su@page_flip-xrgb8888.html
* igt@kms_psr@fbc-psr-cursor-plane-onoff:
- shard-dg2-set2: [SKIP][300] ([Intel XE#2850] / [Intel XE#929]) -> [SKIP][301] ([Intel XE#4208]) +4 other tests skip
[300]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-466/igt@kms_psr@fbc-psr-cursor-plane-onoff.html
[301]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@kms_psr@fbc-psr-cursor-plane-onoff.html
* igt@kms_psr@fbc-psr-sprite-plane-move:
- shard-dg2-set2: [SKIP][302] ([Intel XE#2850] / [Intel XE#929]) -> [SKIP][303] ([Intel XE#2351] / [Intel XE#4208])
[302]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-433/igt@kms_psr@fbc-psr-sprite-plane-move.html
[303]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@kms_psr@fbc-psr-sprite-plane-move.html
* igt@kms_psr@fbc-psr2-primary-render:
- shard-dg2-set2: [SKIP][304] ([Intel XE#4208]) -> [SKIP][305] ([Intel XE#2850] / [Intel XE#929]) +6 other tests skip
[304]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-464/igt@kms_psr@fbc-psr2-primary-render.html
[305]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-463/igt@kms_psr@fbc-psr2-primary-render.html
* igt@kms_psr@fbc-psr2-sprite-render:
- shard-dg2-set2: [SKIP][306] ([Intel XE#2351] / [Intel XE#4208]) -> [SKIP][307] ([Intel XE#2850] / [Intel XE#929]) +2 other tests skip
[306]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@kms_psr@fbc-psr2-sprite-render.html
[307]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-432/igt@kms_psr@fbc-psr2-sprite-render.html
* igt@kms_rotation_crc@primary-y-tiled-reflect-x-270:
- shard-dg2-set2: [SKIP][308] ([Intel XE#3414]) -> [SKIP][309] ([Intel XE#4208] / [i915#2575])
[308]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-433/igt@kms_rotation_crc@primary-y-tiled-reflect-x-270.html
[309]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@kms_rotation_crc@primary-y-tiled-reflect-x-270.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180:
- shard-dg2-set2: [SKIP][310] ([Intel XE#1127]) -> [SKIP][311] ([Intel XE#4208] / [i915#2575])
[310]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-433/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html
[311]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html
* igt@kms_rotation_crc@sprite-rotation-90:
- shard-dg2-set2: [SKIP][312] ([Intel XE#4208] / [i915#2575]) -> [SKIP][313] ([Intel XE#3414])
[312]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@kms_rotation_crc@sprite-rotation-90.html
[313]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-435/igt@kms_rotation_crc@sprite-rotation-90.html
* igt@kms_tiled_display@basic-test-pattern:
- shard-dg2-set2: [SKIP][314] ([Intel XE#4208] / [i915#2575]) -> [FAIL][315] ([Intel XE#1729])
[314]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@kms_tiled_display@basic-test-pattern.html
[315]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-435/igt@kms_tiled_display@basic-test-pattern.html
* igt@kms_vrr@flip-dpms:
- shard-dg2-set2: [SKIP][316] ([Intel XE#4208] / [i915#2575]) -> [SKIP][317] ([Intel XE#455]) +3 other tests skip
[316]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@kms_vrr@flip-dpms.html
[317]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-432/igt@kms_vrr@flip-dpms.html
* igt@kms_vrr@lobf:
- shard-dg2-set2: [SKIP][318] ([Intel XE#4208] / [i915#2575]) -> [SKIP][319] ([Intel XE#2168]) +1 other test skip
[318]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@kms_vrr@lobf.html
[319]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-432/igt@kms_vrr@lobf.html
* igt@xe_copy_basic@mem-copy-linear-0xfffe:
- shard-dg2-set2: [SKIP][320] ([Intel XE#4208]) -> [SKIP][321] ([Intel XE#1123])
[320]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@xe_copy_basic@mem-copy-linear-0xfffe.html
[321]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-435/igt@xe_copy_basic@mem-copy-linear-0xfffe.html
* igt@xe_copy_basic@mem-set-linear-0xfffe:
- shard-dg2-set2: [SKIP][322] ([Intel XE#4208]) -> [SKIP][323] ([Intel XE#1126])
[322]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@xe_copy_basic@mem-set-linear-0xfffe.html
[323]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-432/igt@xe_copy_basic@mem-set-linear-0xfffe.html
* igt@xe_create@multigpu-create-massive-size:
- shard-dg2-set2: [SKIP][324] ([Intel XE#4208]) -> [SKIP][325] ([Intel XE#944]) +1 other test skip
[324]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-464/igt@xe_create@multigpu-create-massive-size.html
[325]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-463/igt@xe_create@multigpu-create-massive-size.html
* igt@xe_eudebug@basic-vm-bind-ufence-delay-ack:
- shard-dg2-set2: [SKIP][326] ([Intel XE#4837]) -> [SKIP][327] ([Intel XE#4208]) +4 other tests skip
[326]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-433/igt@xe_eudebug@basic-vm-bind-ufence-delay-ack.html
[327]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@xe_eudebug@basic-vm-bind-ufence-delay-ack.html
* igt@xe_eudebug_online@interrupt-all-set-breakpoint:
- shard-dg2-set2: [SKIP][328] ([Intel XE#4208]) -> [SKIP][329] ([Intel XE#4837]) +7 other tests skip
[328]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@xe_eudebug_online@interrupt-all-set-breakpoint.html
[329]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-432/igt@xe_eudebug_online@interrupt-all-set-breakpoint.html
* igt@xe_eudebug_sriov@deny-eudebug:
- shard-dg2-set2: [SKIP][330] ([Intel XE#4518]) -> [SKIP][331] ([Intel XE#4208])
[330]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-466/igt@xe_eudebug_sriov@deny-eudebug.html
[331]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@xe_eudebug_sriov@deny-eudebug.html
* igt@xe_exec_basic@multigpu-no-exec-userptr:
- shard-dg2-set2: [SKIP][332] ([Intel XE#4208]) -> [SKIP][333] ([Intel XE#1392])
[332]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@xe_exec_basic@multigpu-no-exec-userptr.html
[333]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-432/igt@xe_exec_basic@multigpu-no-exec-userptr.html
* igt@xe_exec_fault_mode@many-execqueues-bindexecqueue-prefetch:
- shard-dg2-set2: [SKIP][334] ([Intel XE#288]) -> [SKIP][335] ([Intel XE#4208]) +11 other tests skip
[334]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-466/igt@xe_exec_fault_mode@many-execqueues-bindexecqueue-prefetch.html
[335]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@xe_exec_fault_mode@many-execqueues-bindexecqueue-prefetch.html
* igt@xe_exec_fault_mode@twice-userptr-prefetch:
- shard-dg2-set2: [SKIP][336] ([Intel XE#4208]) -> [SKIP][337] ([Intel XE#288]) +12 other tests skip
[336]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@xe_exec_fault_mode@twice-userptr-prefetch.html
[337]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-432/igt@xe_exec_fault_mode@twice-userptr-prefetch.html
* igt@xe_exec_mix_modes@exec-simple-batch-store-lr:
- shard-dg2-set2: [SKIP][338] ([Intel XE#4208]) -> [SKIP][339] ([Intel XE#2360])
[338]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-464/igt@xe_exec_mix_modes@exec-simple-batch-store-lr.html
[339]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-463/igt@xe_exec_mix_modes@exec-simple-batch-store-lr.html
* igt@xe_exec_mix_modes@exec-spinner-interrupted-dma-fence:
- shard-dg2-set2: [SKIP][340] ([Intel XE#2360]) -> [SKIP][341] ([Intel XE#4208])
[340]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-433/igt@xe_exec_mix_modes@exec-spinner-interrupted-dma-fence.html
[341]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@xe_exec_mix_modes@exec-spinner-interrupted-dma-fence.html
* igt@xe_exec_system_allocator@many-large-malloc-nomemset:
- shard-dg2-set2: [SKIP][342] ([Intel XE#4208]) -> [SKIP][343] ([Intel XE#4915]) +152 other tests skip
[342]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@xe_exec_system_allocator@many-large-malloc-nomemset.html
[343]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-432/igt@xe_exec_system_allocator@many-large-malloc-nomemset.html
* igt@xe_exec_system_allocator@threads-many-large-mmap-shared-remap-dontunmap-eocheck:
- shard-dg2-set2: [SKIP][344] ([Intel XE#4915]) -> [SKIP][345] ([Intel XE#4208]) +129 other tests skip
[344]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-466/igt@xe_exec_system_allocator@threads-many-large-mmap-shared-remap-dontunmap-eocheck.html
[345]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@xe_exec_system_allocator@threads-many-large-mmap-shared-remap-dontunmap-eocheck.html
* igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv:
- shard-dg2-set2: [SKIP][346] ([Intel XE#4208]) -> [ABORT][347] ([Intel XE#4917])
[346]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv.html
[347]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-432/igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv.html
* igt@xe_oa@mmio-triggered-reports-read:
- shard-dg2-set2: [SKIP][348] ([Intel XE#4208]) -> [SKIP][349] ([Intel XE#5103])
[348]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@xe_oa@mmio-triggered-reports-read.html
[349]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-432/igt@xe_oa@mmio-triggered-reports-read.html
* igt@xe_oa@non-privileged-access-vaddr:
- shard-dg2-set2: [SKIP][350] ([Intel XE#2541] / [Intel XE#3573]) -> [SKIP][351] ([Intel XE#4208]) +1 other test skip
[350]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-433/igt@xe_oa@non-privileged-access-vaddr.html
[351]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@xe_oa@non-privileged-access-vaddr.html
* igt@xe_oa@polling-small-buf:
- shard-dg2-set2: [SKIP][352] ([Intel XE#4208]) -> [SKIP][353] ([Intel XE#2541] / [Intel XE#3573]) +2 other tests skip
[352]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@xe_oa@polling-small-buf.html
[353]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-432/igt@xe_oa@polling-small-buf.html
* igt@xe_oa@syncs-userptr-wait:
- shard-dg2-set2: [SKIP][354] ([Intel XE#2541] / [Intel XE#3573] / [Intel XE#4501]) -> [SKIP][355] ([Intel XE#4208]) +1 other test skip
[354]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-466/igt@xe_oa@syncs-userptr-wait.html
[355]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@xe_oa@syncs-userptr-wait.html
* igt@xe_pat@pat-index-xe2:
- shard-dg2-set2: [SKIP][356] ([Intel XE#4208]) -> [SKIP][357] ([Intel XE#977])
[356]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-464/igt@xe_pat@pat-index-xe2.html
[357]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-463/igt@xe_pat@pat-index-xe2.html
* igt@xe_peer2peer@read:
- shard-dg2-set2: [SKIP][358] ([Intel XE#1061] / [Intel XE#4208]) -> [FAIL][359] ([Intel XE#1173])
[358]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@xe_peer2peer@read.html
[359]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-435/igt@xe_peer2peer@read.html
* igt@xe_pm@d3cold-mocs:
- shard-dg2-set2: [SKIP][360] ([Intel XE#2284]) -> [SKIP][361] ([Intel XE#4208])
[360]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-433/igt@xe_pm@d3cold-mocs.html
[361]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@xe_pm@d3cold-mocs.html
* igt@xe_pxp@pxp-stale-bo-exec-post-suspend:
- shard-dg2-set2: [SKIP][362] ([Intel XE#4208]) -> [SKIP][363] ([Intel XE#4733]) +1 other test skip
[362]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@xe_pxp@pxp-stale-bo-exec-post-suspend.html
[363]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-435/igt@xe_pxp@pxp-stale-bo-exec-post-suspend.html
* igt@xe_pxp@pxp-termination-key-update-post-suspend:
- shard-dg2-set2: [SKIP][364] ([Intel XE#4733]) -> [SKIP][365] ([Intel XE#4208])
[364]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-433/igt@xe_pxp@pxp-termination-key-update-post-suspend.html
[365]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@xe_pxp@pxp-termination-key-update-post-suspend.html
* igt@xe_query@multigpu-query-gt-list:
- shard-dg2-set2: [SKIP][366] ([Intel XE#944]) -> [SKIP][367] ([Intel XE#4208])
[366]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-466/igt@xe_query@multigpu-query-gt-list.html
[367]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-436/igt@xe_query@multigpu-query-gt-list.html
* igt@xe_render_copy@render-stress-2-copies:
- shard-dg2-set2: [SKIP][368] ([Intel XE#4208]) -> [SKIP][369] ([Intel XE#4814]) +1 other test skip
[368]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@xe_render_copy@render-stress-2-copies.html
[369]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-432/igt@xe_render_copy@render-stress-2-copies.html
* igt@xe_sriov_auto_provisioning@resources-released-on-vfs-disabling:
- shard-dg2-set2: [SKIP][370] ([Intel XE#4208]) -> [SKIP][371] ([Intel XE#4130])
[370]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d/shard-dg2-436/igt@xe_sriov_auto_provisioning@resources-released-on-vfs-disabling.html
[371]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/shard-dg2-432/igt@xe_sriov_auto_provisioning@resources-released-on-vfs-disabling.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[Intel XE#1061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1061
[Intel XE#1122]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1122
[Intel XE#1123]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1123
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1126]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1126
[Intel XE#1127]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1127
[Intel XE#1135]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1135
[Intel XE#1173]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1173
[Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
[Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
[Intel XE#1397]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1397
[Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
[Intel XE#1424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1424
[Intel XE#1435]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1435
[Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
[Intel XE#1499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1499
[Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503
[Intel XE#1508]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1508
[Intel XE#1727]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1727
[Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729
[Intel XE#1745]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1745
[Intel XE#2049]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2049
[Intel XE#2134]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2134
[Intel XE#2168]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2168
[Intel XE#2191]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2191
[Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
[Intel XE#2244]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2244
[Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
[Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284
[Intel XE#2291]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2291
[Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
[Intel XE#2312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2312
[Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
[Intel XE#2314]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2314
[Intel XE#2316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2316
[Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
[Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
[Intel XE#2325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2325
[Intel XE#2341]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2341
[Intel XE#2351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2351
[Intel XE#2360]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2360
[Intel XE#2393]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2393
[Intel XE#2541]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2541
[Intel XE#255]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/255
[Intel XE#2571]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2571
[Intel XE#2594]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2594
[Intel XE#2597]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2597
[Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652
[Intel XE#2705]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2705
[Intel XE#2724]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2724
[Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
[Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
[Intel XE#2883]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2883
[Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
[Intel XE#2893]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2893
[Intel XE#2894]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2894
[Intel XE#2907]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2907
[Intel XE#2925]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2925
[Intel XE#2934]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2934
[Intel XE#2938]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2938
[Intel XE#2953]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2953
[Intel XE#3009]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3009
[Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
[Intel XE#306]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/306
[Intel XE#307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/307
[Intel XE#308]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/308
[Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
[Intel XE#3098]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3098
[Intel XE#3113]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3113
[Intel XE#3149]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3149
[Intel XE#316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/316
[Intel XE#323]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/323
[Intel XE#3278]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3278
[Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304
[Intel XE#3325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3325
[Intel XE#3414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3414
[Intel XE#346]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/346
[Intel XE#3573]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3573
[Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
[Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
[Intel XE#3862]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3862
[Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904
[Intel XE#3908]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3908
[Intel XE#4130]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4130
[Intel XE#4173]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4173
[Intel XE#4208]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4208
[Intel XE#4212]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4212
[Intel XE#4294]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4294
[Intel XE#4345]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4345
[Intel XE#4354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4354
[Intel XE#4417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4417
[Intel XE#4418]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4418
[Intel XE#4422]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4422
[Intel XE#4501]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4501
[Intel XE#4518]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4518
[Intel XE#4522]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4522
[Intel XE#4543]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4543
[Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
[Intel XE#4608]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4608
[Intel XE#4609]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4609
[Intel XE#4618]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4618
[Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
[Intel XE#4812]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4812
[Intel XE#4814]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4814
[Intel XE#4835]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4835
[Intel XE#4837]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4837
[Intel XE#4915]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4915
[Intel XE#4917]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4917
[Intel XE#4943]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4943
[Intel XE#5018]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5018
[Intel XE#5021]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5021
[Intel XE#5103]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5103
[Intel XE#5244]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5244
[Intel XE#5300]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5300
[Intel XE#5390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5390
[Intel XE#5419]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5419
[Intel XE#579]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/579
[Intel XE#599]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/599
[Intel XE#607]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/607
[Intel XE#610]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/610
[Intel XE#623]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/623
[Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
[Intel XE#653]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/653
[Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
[Intel XE#658]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/658
[Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
[Intel XE#701]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/701
[Intel XE#734]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/734
[Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
[Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870
[Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929
[Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
[Intel XE#977]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/977
[i915#2575]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2575
Build changes
-------------
* Linux: xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d -> xe-pw-151093v2
IGT_8445: 8445
xe-3369-53bebc799dad6c4f1fea22b98cff5041533a987d: 53bebc799dad6c4f1fea22b98cff5041533a987d
xe-pw-151093v2: 151093v2
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151093v2/index.html
[-- Attachment #2: Type: text/html, Size: 121962 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us()
2025-07-08 13:16 ` [PATCH v2 1/4] " Ville Syrjala
@ 2025-07-15 18:20 ` Ville Syrjälä
2025-07-31 8:51 ` Jani Nikula
0 siblings, 1 reply; 23+ messages in thread
From: Ville Syrjälä @ 2025-07-15 18:20 UTC (permalink / raw)
To: linux-kernel
Cc: Lucas De Marchi, Dibin Moolakadan Subrahmanian, Imre Deak,
David Laight, Geert Uytterhoeven, Matt Wagantall, Dejin Zheng,
intel-gfx, intel-xe, Jani Nikula
On Tue, Jul 08, 2025 at 04:16:34PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> While read_poll_timeout() & co. were originally introduced just
> for simple I/O usage scenarios they have since been generalized to
> be useful in more cases.
>
> However the interface is very cumbersome to use in the general case.
> Attempt to make it more flexible by combining the 'op', 'var' and
> 'args' parameter into just a single 'op' that the caller can fully
> specify.
>
> For example i915 has one case where one might currently
> have to write something like:
> ret = read_poll_timeout(drm_dp_dpcd_read_byte, err,
> err || (status & mask),
> 0 * 1000, 200 * 1000, false,
> aux, DP_FEC_STATUS, &status);
> which is practically illegible, but with the adjusted macro
> we do:
> ret = poll_timeout_us(err = drm_dp_dpcd_read_byte(aux, DP_FEC_STATUS, &status),
> err || (status & mask),
> 0 * 1000, 200 * 1000, false);
> which much easier to understand.
>
> One could even combine the 'op' and 'cond' parameters into
> one, but that might make the caller a bit too unwieldly with
> assignments and checks being done on the same statement.
>
> This makes poll_timeout_us() closer to the i915 __wait_for()
> macro, with the main difference being that __wait_for() uses
> expenential backoff as opposed to the fixed polling interval
> used by poll_timeout_us(). Eventually we might be able to switch
> (at least most of) i915 to use poll_timeout_us().
>
> v2: Fix typos (Jani)
> Fix delay_us docs for poll_timeout_us_atomic() (Jani)
>
> Cc: Lucas De Marchi <lucas.demarchi@intel.com>
> Cc: Dibin Moolakadan Subrahmanian <dibin.moolakadan.subrahmanian@intel.com>
> Cc: Imre Deak <imre.deak@intel.com>
> Cc: David Laight <david.laight.linux@gmail.com>
> Cc: Geert Uytterhoeven <geert+renesas@glider.be>
> Cc: Matt Wagantall <mattw@codeaurora.org>
> Cc: Dejin Zheng <zhengdejin5@gmail.com>
> Cc: intel-gfx@lists.freedesktop.org
> Cc: intel-xe@lists.freedesktop.org
> Cc: linux-kernel@vger.kernel.org
> Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> include/linux/iopoll.h | 110 +++++++++++++++++++++++++++++------------
> 1 file changed, 78 insertions(+), 32 deletions(-)
Any thoughs how we should get this stuff in? Jani will need it for
some i915 stuff once he returns from vacation, so I could just push
it into drm-intel-next...
Are people OK with that, or is there a better tree that could pick
this up?
>
> diff --git a/include/linux/iopoll.h b/include/linux/iopoll.h
> index 91324c331a4b..440aca5b4b59 100644
> --- a/include/linux/iopoll.h
> +++ b/include/linux/iopoll.h
> @@ -14,41 +14,38 @@
> #include <linux/io.h>
>
> /**
> - * read_poll_timeout - Periodically poll an address until a condition is
> - * met or a timeout occurs
> - * @op: accessor function (takes @args as its arguments)
> - * @val: Variable to read the value into
> - * @cond: Break condition (usually involving @val)
> - * @sleep_us: Maximum time to sleep between reads in us (0 tight-loops). Please
> - * read usleep_range() function description for details and
> + * poll_timeout_us - Periodically poll and perform an operation until
> + * a condition is met or a timeout occurs
> + *
> + * @op: Operation
> + * @cond: Break condition
> + * @sleep_us: Maximum time to sleep between operations in us (0 tight-loops).
> + * Please read usleep_range() function description for details and
> * limitations.
> * @timeout_us: Timeout in us, 0 means never timeout
> - * @sleep_before_read: if it is true, sleep @sleep_us before read.
> - * @args: arguments for @op poll
> + * @sleep_before_op: if it is true, sleep @sleep_us before operation.
> *
> * When available, you'll probably want to use one of the specialized
> * macros defined below rather than this macro directly.
> *
> - * Returns: 0 on success and -ETIMEDOUT upon a timeout. In either
> - * case, the last read value at @args is stored in @val. Must not
> + * Returns: 0 on success and -ETIMEDOUT upon a timeout. Must not
> * be called from atomic context if sleep_us or timeout_us are used.
> */
> -#define read_poll_timeout(op, val, cond, sleep_us, timeout_us, \
> - sleep_before_read, args...) \
> +#define poll_timeout_us(op, cond, sleep_us, timeout_us, sleep_before_op) \
> ({ \
> u64 __timeout_us = (timeout_us); \
> unsigned long __sleep_us = (sleep_us); \
> ktime_t __timeout = ktime_add_us(ktime_get(), __timeout_us); \
> might_sleep_if((__sleep_us) != 0); \
> - if (sleep_before_read && __sleep_us) \
> + if ((sleep_before_op) && __sleep_us) \
> usleep_range((__sleep_us >> 2) + 1, __sleep_us); \
> for (;;) { \
> - (val) = op(args); \
> + op; \
> if (cond) \
> break; \
> if (__timeout_us && \
> ktime_compare(ktime_get(), __timeout) > 0) { \
> - (val) = op(args); \
> + op; \
> break; \
> } \
> if (__sleep_us) \
> @@ -59,17 +56,16 @@
> })
>
> /**
> - * read_poll_timeout_atomic - Periodically poll an address until a condition is
> - * met or a timeout occurs
> - * @op: accessor function (takes @args as its arguments)
> - * @val: Variable to read the value into
> - * @cond: Break condition (usually involving @val)
> - * @delay_us: Time to udelay between reads in us (0 tight-loops). Please
> - * read udelay() function description for details and
> + * poll_timeout_us_atomic - Periodically poll and perform an operation until
> + * a condition is met or a timeout occurs
> + *
> + * @op: Operation
> + * @cond: Break condition
> + * @delay_us: Time to udelay between operations in us (0 tight-loops).
> + * Please read udelay() function description for details and
> * limitations.
> * @timeout_us: Timeout in us, 0 means never timeout
> - * @delay_before_read: if it is true, delay @delay_us before read.
> - * @args: arguments for @op poll
> + * @delay_before_op: if it is true, delay @delay_us before operation.
> *
> * This macro does not rely on timekeeping. Hence it is safe to call even when
> * timekeeping is suspended, at the expense of an underestimation of wall clock
> @@ -78,27 +74,26 @@
> * When available, you'll probably want to use one of the specialized
> * macros defined below rather than this macro directly.
> *
> - * Returns: 0 on success and -ETIMEDOUT upon a timeout. In either
> - * case, the last read value at @args is stored in @val.
> + * Returns: 0 on success and -ETIMEDOUT upon a timeout.
> */
> -#define read_poll_timeout_atomic(op, val, cond, delay_us, timeout_us, \
> - delay_before_read, args...) \
> +#define poll_timeout_us_atomic(op, cond, delay_us, timeout_us, \
> + delay_before_op) \
> ({ \
> u64 __timeout_us = (timeout_us); \
> s64 __left_ns = __timeout_us * NSEC_PER_USEC; \
> unsigned long __delay_us = (delay_us); \
> u64 __delay_ns = __delay_us * NSEC_PER_USEC; \
> - if (delay_before_read && __delay_us) { \
> + if ((delay_before_op) && __delay_us) { \
> udelay(__delay_us); \
> if (__timeout_us) \
> __left_ns -= __delay_ns; \
> } \
> for (;;) { \
> - (val) = op(args); \
> + op; \
> if (cond) \
> break; \
> if (__timeout_us && __left_ns < 0) { \
> - (val) = op(args); \
> + op; \
> break; \
> } \
> if (__delay_us) { \
> @@ -113,6 +108,57 @@
> (cond) ? 0 : -ETIMEDOUT; \
> })
>
> +/**
> + * read_poll_timeout - Periodically poll an address until a condition is
> + * met or a timeout occurs
> + * @op: accessor function (takes @args as its arguments)
> + * @val: Variable to read the value into
> + * @cond: Break condition (usually involving @val)
> + * @sleep_us: Maximum time to sleep between reads in us (0 tight-loops). Please
> + * read usleep_range() function description for details and
> + * limitations.
> + * @timeout_us: Timeout in us, 0 means never timeout
> + * @sleep_before_read: if it is true, sleep @sleep_us before read.
> + * @args: arguments for @op poll
> + *
> + * When available, you'll probably want to use one of the specialized
> + * macros defined below rather than this macro directly.
> + *
> + * Returns: 0 on success and -ETIMEDOUT upon a timeout. In either
> + * case, the last read value at @args is stored in @val. Must not
> + * be called from atomic context if sleep_us or timeout_us are used.
> + */
> +#define read_poll_timeout(op, val, cond, sleep_us, timeout_us, \
> + sleep_before_read, args...) \
> + poll_timeout_us((val) = op(args), cond, sleep_us, timeout_us, sleep_before_read)
> +
> +/**
> + * read_poll_timeout_atomic - Periodically poll an address until a condition is
> + * met or a timeout occurs
> + * @op: accessor function (takes @args as its arguments)
> + * @val: Variable to read the value into
> + * @cond: Break condition (usually involving @val)
> + * @delay_us: Time to udelay between reads in us (0 tight-loops). Please
> + * read udelay() function description for details and
> + * limitations.
> + * @timeout_us: Timeout in us, 0 means never timeout
> + * @delay_before_read: if it is true, delay @delay_us before read.
> + * @args: arguments for @op poll
> + *
> + * This macro does not rely on timekeeping. Hence it is safe to call even when
> + * timekeeping is suspended, at the expense of an underestimation of wall clock
> + * time, which is rather minimal with a non-zero delay_us.
> + *
> + * When available, you'll probably want to use one of the specialized
> + * macros defined below rather than this macro directly.
> + *
> + * Returns: 0 on success and -ETIMEDOUT upon a timeout. In either
> + * case, the last read value at @args is stored in @val.
> + */
> +#define read_poll_timeout_atomic(op, val, cond, sleep_us, timeout_us, \
> + sleep_before_read, args...) \
> + poll_timeout_us_atomic((val) = op(args), cond, sleep_us, timeout_us, sleep_before_read)
> +
> /**
> * readx_poll_timeout - Periodically poll an address until a condition is met or a timeout occurs
> * @op: accessor function (takes @addr as its only argument)
> --
> 2.49.0
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us()
2025-07-15 18:20 ` Ville Syrjälä
@ 2025-07-31 8:51 ` Jani Nikula
2025-08-26 10:56 ` Jani Nikula
0 siblings, 1 reply; 23+ messages in thread
From: Jani Nikula @ 2025-07-31 8:51 UTC (permalink / raw)
To: Ville Syrjälä, linux-kernel
Cc: Lucas De Marchi, Dibin Moolakadan Subrahmanian, Imre Deak,
David Laight, Geert Uytterhoeven, Matt Wagantall, Dejin Zheng,
intel-gfx, intel-xe, Andrew Morton
On Tue, 15 Jul 2025, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
> On Tue, Jul 08, 2025 at 04:16:34PM +0300, Ville Syrjala wrote:
>> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>>
>> While read_poll_timeout() & co. were originally introduced just
>> for simple I/O usage scenarios they have since been generalized to
>> be useful in more cases.
>>
>> However the interface is very cumbersome to use in the general case.
>> Attempt to make it more flexible by combining the 'op', 'var' and
>> 'args' parameter into just a single 'op' that the caller can fully
>> specify.
>>
>> For example i915 has one case where one might currently
>> have to write something like:
>> ret = read_poll_timeout(drm_dp_dpcd_read_byte, err,
>> err || (status & mask),
>> 0 * 1000, 200 * 1000, false,
>> aux, DP_FEC_STATUS, &status);
>> which is practically illegible, but with the adjusted macro
>> we do:
>> ret = poll_timeout_us(err = drm_dp_dpcd_read_byte(aux, DP_FEC_STATUS, &status),
>> err || (status & mask),
>> 0 * 1000, 200 * 1000, false);
>> which much easier to understand.
>>
>> One could even combine the 'op' and 'cond' parameters into
>> one, but that might make the caller a bit too unwieldly with
>> assignments and checks being done on the same statement.
>>
>> This makes poll_timeout_us() closer to the i915 __wait_for()
>> macro, with the main difference being that __wait_for() uses
>> expenential backoff as opposed to the fixed polling interval
>> used by poll_timeout_us(). Eventually we might be able to switch
>> (at least most of) i915 to use poll_timeout_us().
>>
>> v2: Fix typos (Jani)
>> Fix delay_us docs for poll_timeout_us_atomic() (Jani)
>>
>> Cc: Lucas De Marchi <lucas.demarchi@intel.com>
>> Cc: Dibin Moolakadan Subrahmanian <dibin.moolakadan.subrahmanian@intel.com>
>> Cc: Imre Deak <imre.deak@intel.com>
>> Cc: David Laight <david.laight.linux@gmail.com>
>> Cc: Geert Uytterhoeven <geert+renesas@glider.be>
>> Cc: Matt Wagantall <mattw@codeaurora.org>
>> Cc: Dejin Zheng <zhengdejin5@gmail.com>
>> Cc: intel-gfx@lists.freedesktop.org
>> Cc: intel-xe@lists.freedesktop.org
>> Cc: linux-kernel@vger.kernel.org
>> Reviewed-by: Jani Nikula <jani.nikula@intel.com>
>> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> ---
>> include/linux/iopoll.h | 110 +++++++++++++++++++++++++++++------------
>> 1 file changed, 78 insertions(+), 32 deletions(-)
>
> Any thoughs how we should get this stuff in? Jani will need it for
> some i915 stuff once he returns from vacation, so I could just push
> it into drm-intel-next...
>
> Are people OK with that, or is there a better tree that could pick
> this up?
Cc: Andrew
The iopoll.h file is not in MAINTAINERS, and previous changes to it
appear to have gone through various trees. I'd like to base follow-up
work in i915 on this, but who could ack merging the patches via
drm-intel-next? Though doesn't look like anyone's acked the earlier
changes either...
BR,
Jani.
>
>>
>> diff --git a/include/linux/iopoll.h b/include/linux/iopoll.h
>> index 91324c331a4b..440aca5b4b59 100644
>> --- a/include/linux/iopoll.h
>> +++ b/include/linux/iopoll.h
>> @@ -14,41 +14,38 @@
>> #include <linux/io.h>
>>
>> /**
>> - * read_poll_timeout - Periodically poll an address until a condition is
>> - * met or a timeout occurs
>> - * @op: accessor function (takes @args as its arguments)
>> - * @val: Variable to read the value into
>> - * @cond: Break condition (usually involving @val)
>> - * @sleep_us: Maximum time to sleep between reads in us (0 tight-loops). Please
>> - * read usleep_range() function description for details and
>> + * poll_timeout_us - Periodically poll and perform an operation until
>> + * a condition is met or a timeout occurs
>> + *
>> + * @op: Operation
>> + * @cond: Break condition
>> + * @sleep_us: Maximum time to sleep between operations in us (0 tight-loops).
>> + * Please read usleep_range() function description for details and
>> * limitations.
>> * @timeout_us: Timeout in us, 0 means never timeout
>> - * @sleep_before_read: if it is true, sleep @sleep_us before read.
>> - * @args: arguments for @op poll
>> + * @sleep_before_op: if it is true, sleep @sleep_us before operation.
>> *
>> * When available, you'll probably want to use one of the specialized
>> * macros defined below rather than this macro directly.
>> *
>> - * Returns: 0 on success and -ETIMEDOUT upon a timeout. In either
>> - * case, the last read value at @args is stored in @val. Must not
>> + * Returns: 0 on success and -ETIMEDOUT upon a timeout. Must not
>> * be called from atomic context if sleep_us or timeout_us are used.
>> */
>> -#define read_poll_timeout(op, val, cond, sleep_us, timeout_us, \
>> - sleep_before_read, args...) \
>> +#define poll_timeout_us(op, cond, sleep_us, timeout_us, sleep_before_op) \
>> ({ \
>> u64 __timeout_us = (timeout_us); \
>> unsigned long __sleep_us = (sleep_us); \
>> ktime_t __timeout = ktime_add_us(ktime_get(), __timeout_us); \
>> might_sleep_if((__sleep_us) != 0); \
>> - if (sleep_before_read && __sleep_us) \
>> + if ((sleep_before_op) && __sleep_us) \
>> usleep_range((__sleep_us >> 2) + 1, __sleep_us); \
>> for (;;) { \
>> - (val) = op(args); \
>> + op; \
>> if (cond) \
>> break; \
>> if (__timeout_us && \
>> ktime_compare(ktime_get(), __timeout) > 0) { \
>> - (val) = op(args); \
>> + op; \
>> break; \
>> } \
>> if (__sleep_us) \
>> @@ -59,17 +56,16 @@
>> })
>>
>> /**
>> - * read_poll_timeout_atomic - Periodically poll an address until a condition is
>> - * met or a timeout occurs
>> - * @op: accessor function (takes @args as its arguments)
>> - * @val: Variable to read the value into
>> - * @cond: Break condition (usually involving @val)
>> - * @delay_us: Time to udelay between reads in us (0 tight-loops). Please
>> - * read udelay() function description for details and
>> + * poll_timeout_us_atomic - Periodically poll and perform an operation until
>> + * a condition is met or a timeout occurs
>> + *
>> + * @op: Operation
>> + * @cond: Break condition
>> + * @delay_us: Time to udelay between operations in us (0 tight-loops).
>> + * Please read udelay() function description for details and
>> * limitations.
>> * @timeout_us: Timeout in us, 0 means never timeout
>> - * @delay_before_read: if it is true, delay @delay_us before read.
>> - * @args: arguments for @op poll
>> + * @delay_before_op: if it is true, delay @delay_us before operation.
>> *
>> * This macro does not rely on timekeeping. Hence it is safe to call even when
>> * timekeeping is suspended, at the expense of an underestimation of wall clock
>> @@ -78,27 +74,26 @@
>> * When available, you'll probably want to use one of the specialized
>> * macros defined below rather than this macro directly.
>> *
>> - * Returns: 0 on success and -ETIMEDOUT upon a timeout. In either
>> - * case, the last read value at @args is stored in @val.
>> + * Returns: 0 on success and -ETIMEDOUT upon a timeout.
>> */
>> -#define read_poll_timeout_atomic(op, val, cond, delay_us, timeout_us, \
>> - delay_before_read, args...) \
>> +#define poll_timeout_us_atomic(op, cond, delay_us, timeout_us, \
>> + delay_before_op) \
>> ({ \
>> u64 __timeout_us = (timeout_us); \
>> s64 __left_ns = __timeout_us * NSEC_PER_USEC; \
>> unsigned long __delay_us = (delay_us); \
>> u64 __delay_ns = __delay_us * NSEC_PER_USEC; \
>> - if (delay_before_read && __delay_us) { \
>> + if ((delay_before_op) && __delay_us) { \
>> udelay(__delay_us); \
>> if (__timeout_us) \
>> __left_ns -= __delay_ns; \
>> } \
>> for (;;) { \
>> - (val) = op(args); \
>> + op; \
>> if (cond) \
>> break; \
>> if (__timeout_us && __left_ns < 0) { \
>> - (val) = op(args); \
>> + op; \
>> break; \
>> } \
>> if (__delay_us) { \
>> @@ -113,6 +108,57 @@
>> (cond) ? 0 : -ETIMEDOUT; \
>> })
>>
>> +/**
>> + * read_poll_timeout - Periodically poll an address until a condition is
>> + * met or a timeout occurs
>> + * @op: accessor function (takes @args as its arguments)
>> + * @val: Variable to read the value into
>> + * @cond: Break condition (usually involving @val)
>> + * @sleep_us: Maximum time to sleep between reads in us (0 tight-loops). Please
>> + * read usleep_range() function description for details and
>> + * limitations.
>> + * @timeout_us: Timeout in us, 0 means never timeout
>> + * @sleep_before_read: if it is true, sleep @sleep_us before read.
>> + * @args: arguments for @op poll
>> + *
>> + * When available, you'll probably want to use one of the specialized
>> + * macros defined below rather than this macro directly.
>> + *
>> + * Returns: 0 on success and -ETIMEDOUT upon a timeout. In either
>> + * case, the last read value at @args is stored in @val. Must not
>> + * be called from atomic context if sleep_us or timeout_us are used.
>> + */
>> +#define read_poll_timeout(op, val, cond, sleep_us, timeout_us, \
>> + sleep_before_read, args...) \
>> + poll_timeout_us((val) = op(args), cond, sleep_us, timeout_us, sleep_before_read)
>> +
>> +/**
>> + * read_poll_timeout_atomic - Periodically poll an address until a condition is
>> + * met or a timeout occurs
>> + * @op: accessor function (takes @args as its arguments)
>> + * @val: Variable to read the value into
>> + * @cond: Break condition (usually involving @val)
>> + * @delay_us: Time to udelay between reads in us (0 tight-loops). Please
>> + * read udelay() function description for details and
>> + * limitations.
>> + * @timeout_us: Timeout in us, 0 means never timeout
>> + * @delay_before_read: if it is true, delay @delay_us before read.
>> + * @args: arguments for @op poll
>> + *
>> + * This macro does not rely on timekeeping. Hence it is safe to call even when
>> + * timekeeping is suspended, at the expense of an underestimation of wall clock
>> + * time, which is rather minimal with a non-zero delay_us.
>> + *
>> + * When available, you'll probably want to use one of the specialized
>> + * macros defined below rather than this macro directly.
>> + *
>> + * Returns: 0 on success and -ETIMEDOUT upon a timeout. In either
>> + * case, the last read value at @args is stored in @val.
>> + */
>> +#define read_poll_timeout_atomic(op, val, cond, sleep_us, timeout_us, \
>> + sleep_before_read, args...) \
>> + poll_timeout_us_atomic((val) = op(args), cond, sleep_us, timeout_us, sleep_before_read)
>> +
>> /**
>> * readx_poll_timeout - Periodically poll an address until a condition is met or a timeout occurs
>> * @op: accessor function (takes @addr as its only argument)
>> --
>> 2.49.0
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us()
2025-07-31 8:51 ` Jani Nikula
@ 2025-08-26 10:56 ` Jani Nikula
0 siblings, 0 replies; 23+ messages in thread
From: Jani Nikula @ 2025-08-26 10:56 UTC (permalink / raw)
To: Ville Syrjälä, linux-kernel
Cc: Lucas De Marchi, Dibin Moolakadan Subrahmanian, Imre Deak,
David Laight, Geert Uytterhoeven, Matt Wagantall, Dejin Zheng,
intel-gfx, intel-xe, Andrew Morton, Sima Vetter, Dave Airlie
On Thu, 31 Jul 2025, Jani Nikula <jani.nikula@intel.com> wrote:
> On Tue, 15 Jul 2025, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
>> On Tue, Jul 08, 2025 at 04:16:34PM +0300, Ville Syrjala wrote:
>>> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>>>
>>> While read_poll_timeout() & co. were originally introduced just
>>> for simple I/O usage scenarios they have since been generalized to
>>> be useful in more cases.
>>>
>>> However the interface is very cumbersome to use in the general case.
>>> Attempt to make it more flexible by combining the 'op', 'var' and
>>> 'args' parameter into just a single 'op' that the caller can fully
>>> specify.
>>>
>>> For example i915 has one case where one might currently
>>> have to write something like:
>>> ret = read_poll_timeout(drm_dp_dpcd_read_byte, err,
>>> err || (status & mask),
>>> 0 * 1000, 200 * 1000, false,
>>> aux, DP_FEC_STATUS, &status);
>>> which is practically illegible, but with the adjusted macro
>>> we do:
>>> ret = poll_timeout_us(err = drm_dp_dpcd_read_byte(aux, DP_FEC_STATUS, &status),
>>> err || (status & mask),
>>> 0 * 1000, 200 * 1000, false);
>>> which much easier to understand.
>>>
>>> One could even combine the 'op' and 'cond' parameters into
>>> one, but that might make the caller a bit too unwieldly with
>>> assignments and checks being done on the same statement.
>>>
>>> This makes poll_timeout_us() closer to the i915 __wait_for()
>>> macro, with the main difference being that __wait_for() uses
>>> expenential backoff as opposed to the fixed polling interval
>>> used by poll_timeout_us(). Eventually we might be able to switch
>>> (at least most of) i915 to use poll_timeout_us().
>>>
>>> v2: Fix typos (Jani)
>>> Fix delay_us docs for poll_timeout_us_atomic() (Jani)
>>>
>>> Cc: Lucas De Marchi <lucas.demarchi@intel.com>
>>> Cc: Dibin Moolakadan Subrahmanian <dibin.moolakadan.subrahmanian@intel.com>
>>> Cc: Imre Deak <imre.deak@intel.com>
>>> Cc: David Laight <david.laight.linux@gmail.com>
>>> Cc: Geert Uytterhoeven <geert+renesas@glider.be>
>>> Cc: Matt Wagantall <mattw@codeaurora.org>
>>> Cc: Dejin Zheng <zhengdejin5@gmail.com>
>>> Cc: intel-gfx@lists.freedesktop.org
>>> Cc: intel-xe@lists.freedesktop.org
>>> Cc: linux-kernel@vger.kernel.org
>>> Reviewed-by: Jani Nikula <jani.nikula@intel.com>
>>> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
>>> ---
>>> include/linux/iopoll.h | 110 +++++++++++++++++++++++++++++------------
>>> 1 file changed, 78 insertions(+), 32 deletions(-)
>>
>> Any thoughs how we should get this stuff in? Jani will need it for
>> some i915 stuff once he returns from vacation, so I could just push
>> it into drm-intel-next...
>>
>> Are people OK with that, or is there a better tree that could pick
>> this up?
>
> Cc: Andrew
>
> The iopoll.h file is not in MAINTAINERS, and previous changes to it
> appear to have gone through various trees. I'd like to base follow-up
> work in i915 on this, but who could ack merging the patches via
> drm-intel-next? Though doesn't look like anyone's acked the earlier
> changes either...
Ville, can you submit this again, please?
If we don't get any feedback from anyone, I'm just going to merge this
via drm-intel-next.
Cc: Dave, Sima.
BR,
Jani.
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 23+ messages in thread
end of thread, other threads:[~2025-08-26 10:56 UTC | newest]
Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-02 22:34 [PATCH 1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us() Ville Syrjala
2025-07-02 22:34 ` [PATCH 2/4] iopoll: Avoid evaluating 'cond' twice in poll_timeout_us() Ville Syrjala
2025-07-03 11:55 ` Jani Nikula
2025-07-02 22:34 ` [PATCH 3/4] iopoll: Reorder the timeout handling " Ville Syrjala
2025-07-03 12:00 ` Jani Nikula
2025-07-02 22:34 ` [PATCH 4/4] DO-NOT-MERGE: drm/i915: Use poll_timeout_us() Ville Syrjala
2025-07-03 12:12 ` Jani Nikula
2025-07-03 12:50 ` Ville Syrjälä
2025-07-02 23:05 ` ✗ CI.checkpatch: warning for series starting with [1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us() Patchwork
2025-07-02 23:06 ` ✓ CI.KUnit: success " Patchwork
2025-07-02 23:58 ` ✓ Xe.CI.BAT: " Patchwork
2025-07-03 11:51 ` [PATCH 1/4] " Jani Nikula
2025-07-03 14:28 ` Lucas De Marchi
2025-07-04 8:40 ` Jani Nikula
2025-07-04 14:34 ` ✗ Xe.CI.Full: failure for series starting with [1/4] " Patchwork
2025-07-08 13:16 ` [PATCH v2 1/4] " Ville Syrjala
2025-07-15 18:20 ` Ville Syrjälä
2025-07-31 8:51 ` Jani Nikula
2025-08-26 10:56 ` Jani Nikula
2025-07-08 14:46 ` ✗ CI.checkpatch: warning for series starting with [v2,1/4] iopoll: Generalize read_poll_timeout() into poll_timeout_us() (rev2) Patchwork
2025-07-08 14:47 ` ✓ CI.KUnit: success " Patchwork
2025-07-08 15:28 ` ✓ Xe.CI.BAT: " Patchwork
2025-07-08 16:46 ` ✗ Xe.CI.Full: failure " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).