* [PATCH v3 0/2] Block DC6 on Vblank enable for Panel Replay
@ 2024-09-17 6:35 Jouni Högander
2024-09-17 6:35 ` [PATCH v3 1/2] drm/i915/display: Add block_dc6_needed variable into intel_crtc Jouni Högander
` (4 more replies)
0 siblings, 5 replies; 13+ messages in thread
From: Jouni Högander @ 2024-09-17 6:35 UTC (permalink / raw)
To: intel-gfx; +Cc: ville.syrjala, Jouni Högander
We need to block DC6 entry in case of Panel Replay as enabling VBI doesn't
prevent DC6 in case of Panel Replay. This causes problems if user-space is
polling for vblank events.
v3: check that encoder is dp
v2: set/clear block_dc6_needed in intel_crtc_vblank_on/off
Jouni Högander (2):
drm/i915/display: Add block_dc6_needed variable into intel_crtc
drm/i915/display: Prevent DC6 while vblank is enabled for Panel Replay
drivers/gpu/drm/i915/display/intel_crtc.c | 17 +++++++++++
.../gpu/drm/i915/display/intel_display_core.h | 2 ++
.../gpu/drm/i915/display/intel_display_irq.c | 28 +++++++++++++++++++
.../drm/i915/display/intel_display_types.h | 7 +++++
drivers/gpu/drm/i915/display/intel_psr.c | 1 +
5 files changed, 55 insertions(+)
--
2.34.1
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v3 1/2] drm/i915/display: Add block_dc6_needed variable into intel_crtc
2024-09-17 6:35 [PATCH v3 0/2] Block DC6 on Vblank enable for Panel Replay Jouni Högander
@ 2024-09-17 6:35 ` Jouni Högander
2024-09-17 17:58 ` Ville Syrjälä
2024-09-17 6:36 ` [PATCH v3 2/2] drm/i915/display: Prevent DC6 while vblank is enabled for Panel Replay Jouni Högander
` (3 subsequent siblings)
4 siblings, 1 reply; 13+ messages in thread
From: Jouni Högander @ 2024-09-17 6:35 UTC (permalink / raw)
To: intel-gfx; +Cc: ville.syrjala, Jouni Högander
We need to block DC6 entry in case of Panel Replay as enabling VBI doesn't
prevent DC6 in case of Panel Replay. This causes problems if user-space is
polling for vblank events. For this purpose add new block_dc6_needed
variable into intel_crtc. Check if eDP Panel Replay is possible and set the
variable accordingly.
v3: check that encoder is dp
v2: set/clear block_dc6_needed in intel_crtc_vblank_on/off
Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
---
drivers/gpu/drm/i915/display/intel_crtc.c | 17 +++++++++++++++++
.../gpu/drm/i915/display/intel_display_types.h | 7 +++++++
drivers/gpu/drm/i915/display/intel_psr.c | 1 +
3 files changed, 25 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c b/drivers/gpu/drm/i915/display/intel_crtc.c
index aed3853952be8..34a60b5b1e55b 100644
--- a/drivers/gpu/drm/i915/display/intel_crtc.c
+++ b/drivers/gpu/drm/i915/display/intel_crtc.c
@@ -24,6 +24,7 @@
#include "intel_display_irq.h"
#include "intel_display_trace.h"
#include "intel_display_types.h"
+#include "intel_dp.h"
#include "intel_drrs.h"
#include "intel_dsi.h"
#include "intel_fifo_underrun.h"
@@ -123,6 +124,20 @@ u32 intel_crtc_max_vblank_count(const struct intel_crtc_state *crtc_state)
void intel_crtc_vblank_on(const struct intel_crtc_state *crtc_state)
{
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
+ struct intel_encoder *encoder;
+
+ for_each_encoder_on_crtc(crtc->base.dev, &crtc->base, encoder) {
+ struct intel_dp *intel_dp;
+
+ if (!intel_encoder_is_dp(encoder))
+ continue;
+
+ intel_dp = enc_to_intel_dp(encoder);
+
+ if (intel_dp_is_edp(intel_dp) &&
+ CAN_PANEL_REPLAY(intel_dp))
+ crtc->block_dc6_needed = true;
+ }
assert_vblank_disabled(&crtc->base);
drm_crtc_set_max_vblank_count(&crtc->base,
@@ -150,6 +165,8 @@ void intel_crtc_vblank_off(const struct intel_crtc_state *crtc_state)
drm_crtc_vblank_off(&crtc->base);
assert_vblank_disabled(&crtc->base);
+
+ crtc->block_dc6_needed = false;
}
struct intel_crtc_state *intel_crtc_state_alloc(struct intel_crtc *crtc)
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index 000ab373c8879..df0c3eb750809 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -1413,6 +1413,13 @@ struct intel_crtc {
#ifdef CONFIG_DEBUG_FS
struct intel_pipe_crc pipe_crc;
#endif
+
+ /*
+ * We need to block DC6 entry in case of Panel Replay as enabling VBI doesn't
+ * prevent DC6 in case of Panel Replay. This causes problems if user-space is
+ * polling for vblank events.
+ */
+ u8 block_dc6_needed;
};
struct intel_plane {
diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
index 4f29ac32ff85b..957f470b08fe8 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -35,6 +35,7 @@
#include "intel_cursor_regs.h"
#include "intel_ddi.h"
#include "intel_de.h"
+#include "intel_display_irq.h"
#include "intel_display_types.h"
#include "intel_dp.h"
#include "intel_dp_aux.h"
--
2.34.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v3 2/2] drm/i915/display: Prevent DC6 while vblank is enabled for Panel Replay
2024-09-17 6:35 [PATCH v3 0/2] Block DC6 on Vblank enable for Panel Replay Jouni Högander
2024-09-17 6:35 ` [PATCH v3 1/2] drm/i915/display: Add block_dc6_needed variable into intel_crtc Jouni Högander
@ 2024-09-17 6:36 ` Jouni Högander
2024-09-17 18:15 ` Ville Syrjälä
2024-09-17 11:32 ` ✗ Fi.CI.SPARSE: warning for Block DC6 on Vblank enable for Panel Replay (rev3) Patchwork
` (2 subsequent siblings)
4 siblings, 1 reply; 13+ messages in thread
From: Jouni Högander @ 2024-09-17 6:36 UTC (permalink / raw)
To: intel-gfx; +Cc: ville.syrjala, Jouni Högander
We need to block DC6 entry in case of Panel Replay as enabling VBI doesn't
prevent DC6 in case of Panel Replay. This causes problems if user-space is
polling for vblank events.
Fix this by setting target DC state as DC_STATE_EN_UPTO_DC5 when both
source and sink are supporting eDP Panel Replay and VBI is enabled.
v2:
- use READ_ONCE in intel_display_vblank_work
- use DC_STATE_DISABLE instead of DC_STATE_EN_UPTO_DC6
- use intel_crtc->block_dc6_needed
Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/2296
Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
---
.../gpu/drm/i915/display/intel_display_core.h | 2 ++
.../gpu/drm/i915/display/intel_display_irq.c | 28 +++++++++++++++++++
2 files changed, 30 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_display_core.h b/drivers/gpu/drm/i915/display/intel_display_core.h
index 0a711114ff2b4..0707bc2047931 100644
--- a/drivers/gpu/drm/i915/display/intel_display_core.h
+++ b/drivers/gpu/drm/i915/display/intel_display_core.h
@@ -457,6 +457,8 @@ struct intel_display {
/* For i915gm/i945gm vblank irq workaround */
u8 vblank_enabled;
+ struct work_struct vblank_work;
+
u32 de_irq_mask[I915_MAX_PIPES];
u32 pipestat_irq_mask[I915_MAX_PIPES];
} irq;
diff --git a/drivers/gpu/drm/i915/display/intel_display_irq.c b/drivers/gpu/drm/i915/display/intel_display_irq.c
index 8f13f148c73e3..4bdc67e1baa31 100644
--- a/drivers/gpu/drm/i915/display/intel_display_irq.c
+++ b/drivers/gpu/drm/i915/display/intel_display_irq.c
@@ -1361,16 +1361,38 @@ static bool gen11_dsi_configure_te(struct intel_crtc *intel_crtc,
return true;
}
+static void intel_display_vblank_work(struct work_struct *work)
+{
+ struct intel_display *display =
+ container_of(work, typeof(*display), irq.vblank_work);
+ struct drm_i915_private *i915 = to_i915(display->drm);
+ u8 vblank_enabled = READ_ONCE(display->irq.vblank_enabled);
+
+ /*
+ * NOTE: intel_display_power_set_target_dc_state is used only by PSR
+ * code for DC3CO handling. DC3CO target state is currently disabled in
+ * PSR code. If DC3CO is taken into use we need take that into account
+ * here as well.
+ */
+ intel_display_power_set_target_dc_state(i915, vblank_enabled ? DC_STATE_DISABLE :
+ DC_STATE_EN_UPTO_DC6);
+}
+
int bdw_enable_vblank(struct drm_crtc *_crtc)
{
struct intel_crtc *crtc = to_intel_crtc(_crtc);
+ struct intel_display *display = to_intel_display(crtc);
struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
enum pipe pipe = crtc->pipe;
unsigned long irqflags;
+ u8 block_dc6_needed = READ_ONCE(crtc->block_dc6_needed);
if (gen11_dsi_configure_te(crtc, true))
return 0;
+ if (display->irq.vblank_enabled++ == 0 && block_dc6_needed)
+ schedule_work(&display->irq.vblank_work);
+
spin_lock_irqsave(&dev_priv->irq_lock, irqflags);
bdw_enable_pipe_irq(dev_priv, pipe, GEN8_PIPE_VBLANK);
spin_unlock_irqrestore(&dev_priv->irq_lock, irqflags);
@@ -1436,6 +1458,7 @@ void ilk_disable_vblank(struct drm_crtc *crtc)
void bdw_disable_vblank(struct drm_crtc *_crtc)
{
struct intel_crtc *crtc = to_intel_crtc(_crtc);
+ struct intel_display *display = to_intel_display(crtc);
struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
enum pipe pipe = crtc->pipe;
unsigned long irqflags;
@@ -1446,6 +1469,9 @@ void bdw_disable_vblank(struct drm_crtc *_crtc)
spin_lock_irqsave(&dev_priv->irq_lock, irqflags);
bdw_disable_pipe_irq(dev_priv, pipe, GEN8_PIPE_VBLANK);
spin_unlock_irqrestore(&dev_priv->irq_lock, irqflags);
+
+ if (--display->irq.vblank_enabled == 0)
+ schedule_work(&display->irq.vblank_work);
}
void vlv_display_irq_reset(struct drm_i915_private *dev_priv)
@@ -1871,4 +1897,6 @@ void intel_display_irq_init(struct drm_i915_private *i915)
i915->display.irq.display_irqs_enabled = false;
intel_hotplug_irq_init(i915);
+
+ INIT_WORK(&i915->display.irq.vblank_work, intel_display_vblank_work);
}
--
2.34.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* ✗ Fi.CI.SPARSE: warning for Block DC6 on Vblank enable for Panel Replay (rev3)
2024-09-17 6:35 [PATCH v3 0/2] Block DC6 on Vblank enable for Panel Replay Jouni Högander
2024-09-17 6:35 ` [PATCH v3 1/2] drm/i915/display: Add block_dc6_needed variable into intel_crtc Jouni Högander
2024-09-17 6:36 ` [PATCH v3 2/2] drm/i915/display: Prevent DC6 while vblank is enabled for Panel Replay Jouni Högander
@ 2024-09-17 11:32 ` Patchwork
2024-09-17 11:52 ` ✓ Fi.CI.BAT: success " Patchwork
2024-09-18 5:49 ` ✓ Fi.CI.IGT: " Patchwork
4 siblings, 0 replies; 13+ messages in thread
From: Patchwork @ 2024-09-17 11:32 UTC (permalink / raw)
To: Jouni Högander; +Cc: intel-gfx
== Series Details ==
Series: Block DC6 on Vblank enable for Panel Replay (rev3)
URL : https://patchwork.freedesktop.org/series/138630/
State : warning
== Summary ==
Error: dim sparse failed
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.
^ permalink raw reply [flat|nested] 13+ messages in thread
* ✓ Fi.CI.BAT: success for Block DC6 on Vblank enable for Panel Replay (rev3)
2024-09-17 6:35 [PATCH v3 0/2] Block DC6 on Vblank enable for Panel Replay Jouni Högander
` (2 preceding siblings ...)
2024-09-17 11:32 ` ✗ Fi.CI.SPARSE: warning for Block DC6 on Vblank enable for Panel Replay (rev3) Patchwork
@ 2024-09-17 11:52 ` Patchwork
2024-09-18 5:49 ` ✓ Fi.CI.IGT: " Patchwork
4 siblings, 0 replies; 13+ messages in thread
From: Patchwork @ 2024-09-17 11:52 UTC (permalink / raw)
To: Jouni Högander; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 5199 bytes --]
== Series Details ==
Series: Block DC6 on Vblank enable for Panel Replay (rev3)
URL : https://patchwork.freedesktop.org/series/138630/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_15429 -> Patchwork_138630v3
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/index.html
Participating hosts (40 -> 38)
------------------------------
Missing (2): fi-snb-2520m fi-kbl-8809g
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_138630v3:
### IGT changes ###
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* igt@i915_selftest@live@gt_mocs:
- {bat-arlh-3}: NOTRUN -> [ABORT][1]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/bat-arlh-3/igt@i915_selftest@live@gt_mocs.html
Known issues
------------
Here are the changes found in Patchwork_138630v3 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@fbdev@nullptr:
- bat-arls-1: [PASS][2] -> [DMESG-WARN][3] ([i915#12102])
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/bat-arls-1/igt@fbdev@nullptr.html
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/bat-arls-1/igt@fbdev@nullptr.html
* igt@kms_pipe_crc_basic@nonblocking-crc:
- bat-arls-5: [PASS][4] -> [INCOMPLETE][5] ([i915#11320])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/bat-arls-5/igt@kms_pipe_crc_basic@nonblocking-crc.html
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/bat-arls-5/igt@kms_pipe_crc_basic@nonblocking-crc.html
#### Possible fixes ####
* igt@fbdev@read:
- bat-arls-1: [DMESG-WARN][6] ([i915#12102]) -> [PASS][7]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/bat-arls-1/igt@fbdev@read.html
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/bat-arls-1/igt@fbdev@read.html
* igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-d-edp-1:
- {bat-arlh-3}: [INCOMPLETE][8] ([i915#12219]) -> [PASS][9] +1 other test pass
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/bat-arlh-3/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-d-edp-1.html
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/bat-arlh-3/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-d-edp-1.html
#### Warnings ####
* igt@i915_selftest@live:
- bat-arls-5: [DMESG-WARN][10] ([i915#10341] / [i915#12133]) -> [ABORT][11] ([i915#12133] / [i915#12175])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/bat-arls-5/igt@i915_selftest@live.html
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/bat-arls-5/igt@i915_selftest@live.html
* igt@i915_selftest@live@workarounds:
- bat-arls-5: [DMESG-WARN][12] ([i915#10341] / [i915#11637]) -> [ABORT][13] ([i915#12061])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/bat-arls-5/igt@i915_selftest@live@workarounds.html
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/bat-arls-5/igt@i915_selftest@live@workarounds.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[i915#10196]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10196
[i915#10341]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10341
[i915#11320]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11320
[i915#11346]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11346
[i915#11637]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11637
[i915#11671]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11671
[i915#11681]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11681
[i915#11723]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11723
[i915#11726]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11726
[i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
[i915#12102]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12102
[i915#12133]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12133
[i915#12175]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12175
[i915#12219]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12219
[i915#8809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8809
Build changes
-------------
* Linux: CI_DRM_15429 -> Patchwork_138630v3
CI-20190529: 20190529
CI_DRM_15429: 38e1b615fb395b928e514108e908cd6edf3d34c3 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_8022: 2d82f767a959d58c04ff3876d59d67924208d4ef @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_138630v3: 38e1b615fb395b928e514108e908cd6edf3d34c3 @ git://anongit.freedesktop.org/gfx-ci/linux
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/index.html
[-- Attachment #2: Type: text/html, Size: 5647 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v3 1/2] drm/i915/display: Add block_dc6_needed variable into intel_crtc
2024-09-17 6:35 ` [PATCH v3 1/2] drm/i915/display: Add block_dc6_needed variable into intel_crtc Jouni Högander
@ 2024-09-17 17:58 ` Ville Syrjälä
2024-09-17 18:27 ` Ville Syrjälä
2024-09-18 5:53 ` Hogander, Jouni
0 siblings, 2 replies; 13+ messages in thread
From: Ville Syrjälä @ 2024-09-17 17:58 UTC (permalink / raw)
To: Jouni Högander; +Cc: intel-gfx
On Tue, Sep 17, 2024 at 09:35:59AM +0300, Jouni Högander wrote:
> We need to block DC6 entry in case of Panel Replay as enabling VBI doesn't
> prevent DC6 in case of Panel Replay. This causes problems if user-space is
> polling for vblank events. For this purpose add new block_dc6_needed
> variable into intel_crtc. Check if eDP Panel Replay is possible and set the
> variable accordingly.
>
> v3: check that encoder is dp
> v2: set/clear block_dc6_needed in intel_crtc_vblank_on/off
>
> Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_crtc.c | 17 +++++++++++++++++
> .../gpu/drm/i915/display/intel_display_types.h | 7 +++++++
> drivers/gpu/drm/i915/display/intel_psr.c | 1 +
> 3 files changed, 25 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c b/drivers/gpu/drm/i915/display/intel_crtc.c
> index aed3853952be8..34a60b5b1e55b 100644
> --- a/drivers/gpu/drm/i915/display/intel_crtc.c
> +++ b/drivers/gpu/drm/i915/display/intel_crtc.c
> @@ -24,6 +24,7 @@
> #include "intel_display_irq.h"
> #include "intel_display_trace.h"
> #include "intel_display_types.h"
> +#include "intel_dp.h"
> #include "intel_drrs.h"
> #include "intel_dsi.h"
> #include "intel_fifo_underrun.h"
> @@ -123,6 +124,20 @@ u32 intel_crtc_max_vblank_count(const struct intel_crtc_state *crtc_state)
> void intel_crtc_vblank_on(const struct intel_crtc_state *crtc_state)
> {
> struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> + struct intel_encoder *encoder;
> +
> + for_each_encoder_on_crtc(crtc->base.dev, &crtc->base, encoder) {
> + struct intel_dp *intel_dp;
> +
> + if (!intel_encoder_is_dp(encoder))
> + continue;
> +
> + intel_dp = enc_to_intel_dp(encoder);
> +
> + if (intel_dp_is_edp(intel_dp) &&
> + CAN_PANEL_REPLAY(intel_dp))
> + crtc->block_dc6_needed = true;
> + }
This could just a function provided by intel_psr.c so that
we don't have to to see any of the details.
Is there some reason this isn't simply looking at
crtc_state->has_panel_replay?
>
> assert_vblank_disabled(&crtc->base);
> drm_crtc_set_max_vblank_count(&crtc->base,
> @@ -150,6 +165,8 @@ void intel_crtc_vblank_off(const struct intel_crtc_state *crtc_state)
>
> drm_crtc_vblank_off(&crtc->base);
> assert_vblank_disabled(&crtc->base);
> +
> + crtc->block_dc6_needed = false;
> }
>
> struct intel_crtc_state *intel_crtc_state_alloc(struct intel_crtc *crtc)
> diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
> index 000ab373c8879..df0c3eb750809 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> @@ -1413,6 +1413,13 @@ struct intel_crtc {
> #ifdef CONFIG_DEBUG_FS
> struct intel_pipe_crc pipe_crc;
> #endif
> +
> + /*
> + * We need to block DC6 entry in case of Panel Replay as enabling VBI doesn't
> + * prevent DC6 in case of Panel Replay. This causes problems if user-space is
> + * polling for vblank events.
> + */
We should point out the fact that panel replay turns the
link off only while in DC states. Otherwise I'm sure to
get confused by this again in the future.
> + u8 block_dc6_needed;
That sounds a bit too generic perhaps. block_dc_for_vblank or something?
> };
>
> struct intel_plane {
> diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
> index 4f29ac32ff85b..957f470b08fe8 100644
> --- a/drivers/gpu/drm/i915/display/intel_psr.c
> +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> @@ -35,6 +35,7 @@
> #include "intel_cursor_regs.h"
> #include "intel_ddi.h"
> #include "intel_de.h"
> +#include "intel_display_irq.h"
> #include "intel_display_types.h"
> #include "intel_dp.h"
> #include "intel_dp_aux.h"
> --
> 2.34.1
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v3 2/2] drm/i915/display: Prevent DC6 while vblank is enabled for Panel Replay
2024-09-17 6:36 ` [PATCH v3 2/2] drm/i915/display: Prevent DC6 while vblank is enabled for Panel Replay Jouni Högander
@ 2024-09-17 18:15 ` Ville Syrjälä
2024-09-18 6:07 ` Hogander, Jouni
0 siblings, 1 reply; 13+ messages in thread
From: Ville Syrjälä @ 2024-09-17 18:15 UTC (permalink / raw)
To: Jouni Högander; +Cc: intel-gfx
On Tue, Sep 17, 2024 at 09:36:00AM +0300, Jouni Högander wrote:
> We need to block DC6 entry in case of Panel Replay as enabling VBI doesn't
> prevent DC6 in case of Panel Replay. This causes problems if user-space is
> polling for vblank events.
>
> Fix this by setting target DC state as DC_STATE_EN_UPTO_DC5 when both
> source and sink are supporting eDP Panel Replay and VBI is enabled.
>
> v2:
> - use READ_ONCE in intel_display_vblank_work
> - use DC_STATE_DISABLE instead of DC_STATE_EN_UPTO_DC6
> - use intel_crtc->block_dc6_needed
>
> Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/2296
> Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
> ---
> .../gpu/drm/i915/display/intel_display_core.h | 2 ++
> .../gpu/drm/i915/display/intel_display_irq.c | 28 +++++++++++++++++++
> 2 files changed, 30 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display_core.h b/drivers/gpu/drm/i915/display/intel_display_core.h
> index 0a711114ff2b4..0707bc2047931 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_core.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_core.h
> @@ -457,6 +457,8 @@ struct intel_display {
> /* For i915gm/i945gm vblank irq workaround */
> u8 vblank_enabled;
>
> + struct work_struct vblank_work;
> +
> u32 de_irq_mask[I915_MAX_PIPES];
> u32 pipestat_irq_mask[I915_MAX_PIPES];
> } irq;
> diff --git a/drivers/gpu/drm/i915/display/intel_display_irq.c b/drivers/gpu/drm/i915/display/intel_display_irq.c
> index 8f13f148c73e3..4bdc67e1baa31 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_irq.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_irq.c
> @@ -1361,16 +1361,38 @@ static bool gen11_dsi_configure_te(struct intel_crtc *intel_crtc,
> return true;
> }
>
> +static void intel_display_vblank_work(struct work_struct *work)
> +{
> + struct intel_display *display =
> + container_of(work, typeof(*display), irq.vblank_work);
> + struct drm_i915_private *i915 = to_i915(display->drm);
> + u8 vblank_enabled = READ_ONCE(display->irq.vblank_enabled);
Could be a bool since you don't use the numeric value for anything.
Or could just not have a local variable since you only use it once
anyway.
> +
> + /*
> + * NOTE: intel_display_power_set_target_dc_state is used only by PSR
> + * code for DC3CO handling. DC3CO target state is currently disabled in
> + * PSR code. If DC3CO is taken into use we need take that into account
> + * here as well.
> + */
> + intel_display_power_set_target_dc_state(i915, vblank_enabled ? DC_STATE_DISABLE :
> + DC_STATE_EN_UPTO_DC6);
> +}
> +
> int bdw_enable_vblank(struct drm_crtc *_crtc)
> {
> struct intel_crtc *crtc = to_intel_crtc(_crtc);
> + struct intel_display *display = to_intel_display(crtc);
> struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> enum pipe pipe = crtc->pipe;
> unsigned long irqflags;
> + u8 block_dc6_needed = READ_ONCE(crtc->block_dc6_needed);
This doesn't really need the read once dance IMO since this
will never change between vblank on/off.
Feels like the introduction of that flag should also be part of
this patch, and this should be the first patch, and the second
patch would then just figure out when to set said flag.
>
> if (gen11_dsi_configure_te(crtc, true))
> return 0;
>
> + if (display->irq.vblank_enabled++ == 0 && block_dc6_needed)
> + schedule_work(&display->irq.vblank_work);
> +
> spin_lock_irqsave(&dev_priv->irq_lock, irqflags);
> bdw_enable_pipe_irq(dev_priv, pipe, GEN8_PIPE_VBLANK);
> spin_unlock_irqrestore(&dev_priv->irq_lock, irqflags);
> @@ -1436,6 +1458,7 @@ void ilk_disable_vblank(struct drm_crtc *crtc)
> void bdw_disable_vblank(struct drm_crtc *_crtc)
> {
> struct intel_crtc *crtc = to_intel_crtc(_crtc);
> + struct intel_display *display = to_intel_display(crtc);
> struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> enum pipe pipe = crtc->pipe;
> unsigned long irqflags;
> @@ -1446,6 +1469,9 @@ void bdw_disable_vblank(struct drm_crtc *_crtc)
> spin_lock_irqsave(&dev_priv->irq_lock, irqflags);
> bdw_disable_pipe_irq(dev_priv, pipe, GEN8_PIPE_VBLANK);
> spin_unlock_irqrestore(&dev_priv->irq_lock, irqflags);
> +
> + if (--display->irq.vblank_enabled == 0)
This one seems to be missing the block_dc6_needed check.
> + schedule_work(&display->irq.vblank_work);
> }
>
> void vlv_display_irq_reset(struct drm_i915_private *dev_priv)
> @@ -1871,4 +1897,6 @@ void intel_display_irq_init(struct drm_i915_private *i915)
> i915->display.irq.display_irqs_enabled = false;
>
> intel_hotplug_irq_init(i915);
> +
> + INIT_WORK(&i915->display.irq.vblank_work, intel_display_vblank_work);
I'd probably also toss in a flush_work() at the end of
intel_vblank_off() to make sure the work doesn't linger
past its due date.
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v3 1/2] drm/i915/display: Add block_dc6_needed variable into intel_crtc
2024-09-17 17:58 ` Ville Syrjälä
@ 2024-09-17 18:27 ` Ville Syrjälä
2024-09-18 5:53 ` Hogander, Jouni
1 sibling, 0 replies; 13+ messages in thread
From: Ville Syrjälä @ 2024-09-17 18:27 UTC (permalink / raw)
To: Jouni Högander; +Cc: intel-gfx
On Tue, Sep 17, 2024 at 08:58:07PM +0300, Ville Syrjälä wrote:
> On Tue, Sep 17, 2024 at 09:35:59AM +0300, Jouni Högander wrote:
> > We need to block DC6 entry in case of Panel Replay as enabling VBI doesn't
> > prevent DC6 in case of Panel Replay. This causes problems if user-space is
> > polling for vblank events. For this purpose add new block_dc6_needed
> > variable into intel_crtc. Check if eDP Panel Replay is possible and set the
> > variable accordingly.
> >
> > v3: check that encoder is dp
> > v2: set/clear block_dc6_needed in intel_crtc_vblank_on/off
> >
> > Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
> > ---
> > drivers/gpu/drm/i915/display/intel_crtc.c | 17 +++++++++++++++++
> > .../gpu/drm/i915/display/intel_display_types.h | 7 +++++++
> > drivers/gpu/drm/i915/display/intel_psr.c | 1 +
> > 3 files changed, 25 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c b/drivers/gpu/drm/i915/display/intel_crtc.c
> > index aed3853952be8..34a60b5b1e55b 100644
> > --- a/drivers/gpu/drm/i915/display/intel_crtc.c
> > +++ b/drivers/gpu/drm/i915/display/intel_crtc.c
> > @@ -24,6 +24,7 @@
> > #include "intel_display_irq.h"
> > #include "intel_display_trace.h"
> > #include "intel_display_types.h"
> > +#include "intel_dp.h"
> > #include "intel_drrs.h"
> > #include "intel_dsi.h"
> > #include "intel_fifo_underrun.h"
> > @@ -123,6 +124,20 @@ u32 intel_crtc_max_vblank_count(const struct intel_crtc_state *crtc_state)
> > void intel_crtc_vblank_on(const struct intel_crtc_state *crtc_state)
> > {
> > struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> > + struct intel_encoder *encoder;
> > +
> > + for_each_encoder_on_crtc(crtc->base.dev, &crtc->base, encoder) {
> > + struct intel_dp *intel_dp;
> > +
> > + if (!intel_encoder_is_dp(encoder))
> > + continue;
> > +
> > + intel_dp = enc_to_intel_dp(encoder);
> > +
> > + if (intel_dp_is_edp(intel_dp) &&
> > + CAN_PANEL_REPLAY(intel_dp))
> > + crtc->block_dc6_needed = true;
> > + }
>
> This could just a function provided by intel_psr.c so that
> we don't have to to see any of the details.
>
> Is there some reason this isn't simply looking at
> crtc_state->has_panel_replay?
>
> >
> > assert_vblank_disabled(&crtc->base);
> > drm_crtc_set_max_vblank_count(&crtc->base,
> > @@ -150,6 +165,8 @@ void intel_crtc_vblank_off(const struct intel_crtc_state *crtc_state)
> >
> > drm_crtc_vblank_off(&crtc->base);
> > assert_vblank_disabled(&crtc->base);
> > +
> > + crtc->block_dc6_needed = false;
> > }
> >
> > struct intel_crtc_state *intel_crtc_state_alloc(struct intel_crtc *crtc)
> > diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
> > index 000ab373c8879..df0c3eb750809 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> > +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> > @@ -1413,6 +1413,13 @@ struct intel_crtc {
> > #ifdef CONFIG_DEBUG_FS
> > struct intel_pipe_crc pipe_crc;
> > #endif
> > +
> > + /*
> > + * We need to block DC6 entry in case of Panel Replay as enabling VBI doesn't
> > + * prevent DC6 in case of Panel Replay. This causes problems if user-space is
> > + * polling for vblank events.
> > + */
>
> We should point out the fact that panel replay turns the
> link off only while in DC states. Otherwise I'm sure to
> get confused by this again in the future.
This comment should probably live in the function that the PSR
code provides to determine if we need to block DC states or not.
We could have other reasons for using this same mechanism in
the future.
>
> > + u8 block_dc6_needed;
>
> That sounds a bit too generic perhaps. block_dc_for_vblank or something?
>
> > };
> >
> > struct intel_plane {
> > diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
> > index 4f29ac32ff85b..957f470b08fe8 100644
> > --- a/drivers/gpu/drm/i915/display/intel_psr.c
> > +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> > @@ -35,6 +35,7 @@
> > #include "intel_cursor_regs.h"
> > #include "intel_ddi.h"
> > #include "intel_de.h"
> > +#include "intel_display_irq.h"
> > #include "intel_display_types.h"
> > #include "intel_dp.h"
> > #include "intel_dp_aux.h"
> > --
> > 2.34.1
>
> --
> Ville Syrjälä
> Intel
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 13+ messages in thread
* ✓ Fi.CI.IGT: success for Block DC6 on Vblank enable for Panel Replay (rev3)
2024-09-17 6:35 [PATCH v3 0/2] Block DC6 on Vblank enable for Panel Replay Jouni Högander
` (3 preceding siblings ...)
2024-09-17 11:52 ` ✓ Fi.CI.BAT: success " Patchwork
@ 2024-09-18 5:49 ` Patchwork
4 siblings, 0 replies; 13+ messages in thread
From: Patchwork @ 2024-09-18 5:49 UTC (permalink / raw)
To: Hogander, Jouni; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 68968 bytes --]
== Series Details ==
Series: Block DC6 on Vblank enable for Panel Replay (rev3)
URL : https://patchwork.freedesktop.org/series/138630/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_15429_full -> Patchwork_138630v3_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (9 -> 9)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in Patchwork_138630v3_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@device_reset@unbind-reset-rebind:
- shard-dg1: NOTRUN -> [ABORT][1] ([i915#11814] / [i915#11815])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-18/igt@device_reset@unbind-reset-rebind.html
* igt@drm_fdinfo@busy-idle@vecs0:
- shard-mtlp: NOTRUN -> [SKIP][2] ([i915#8414]) +6 other tests skip
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-mtlp-1/igt@drm_fdinfo@busy-idle@vecs0.html
* igt@drm_fdinfo@most-busy-check-all:
- shard-rkl: NOTRUN -> [FAIL][3] ([i915#12179])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-3/igt@drm_fdinfo@most-busy-check-all.html
* igt@drm_fdinfo@most-busy-check-all@rcs0:
- shard-rkl: NOTRUN -> [FAIL][4] ([i915#7742])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-3/igt@drm_fdinfo@most-busy-check-all@rcs0.html
* igt@drm_fdinfo@most-busy-idle-check-all:
- shard-rkl: [PASS][5] -> [FAIL][6] ([i915#12179])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-rkl-3/igt@drm_fdinfo@most-busy-idle-check-all.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-2/igt@drm_fdinfo@most-busy-idle-check-all.html
* igt@drm_fdinfo@most-busy-idle-check-all@rcs0:
- shard-rkl: [PASS][7] -> [FAIL][8] ([i915#7742])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-rkl-3/igt@drm_fdinfo@most-busy-idle-check-all@rcs0.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-2/igt@drm_fdinfo@most-busy-idle-check-all@rcs0.html
* igt@drm_fdinfo@most-busy-idle-check-all@vecs1:
- shard-dg2: NOTRUN -> [SKIP][9] ([i915#8414]) +7 other tests skip
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-7/igt@drm_fdinfo@most-busy-idle-check-all@vecs1.html
* igt@gem_ccs@block-multicopy-inplace:
- shard-rkl: NOTRUN -> [SKIP][10] ([i915#3555] / [i915#9323])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-4/igt@gem_ccs@block-multicopy-inplace.html
* igt@gem_ccs@ctrl-surf-copy-new-ctx:
- shard-dg1: NOTRUN -> [SKIP][11] ([i915#9323])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-16/igt@gem_ccs@ctrl-surf-copy-new-ctx.html
* igt@gem_ctx_persistence@heartbeat-many:
- shard-dg1: NOTRUN -> [SKIP][12] ([i915#8555])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@gem_ctx_persistence@heartbeat-many.html
* igt@gem_ctx_sseu@engines:
- shard-dg1: NOTRUN -> [SKIP][13] ([i915#280]) +1 other test skip
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@gem_ctx_sseu@engines.html
* igt@gem_exec_balancer@bonded-dual:
- shard-dg1: NOTRUN -> [SKIP][14] ([i915#4771])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@gem_exec_balancer@bonded-dual.html
* igt@gem_exec_fair@basic-none-rrul:
- shard-rkl: NOTRUN -> [FAIL][15] ([i915#2842]) +3 other tests fail
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-3/igt@gem_exec_fair@basic-none-rrul.html
* igt@gem_exec_fair@basic-none-solo:
- shard-glk: NOTRUN -> [FAIL][16] ([i915#2842]) +1 other test fail
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-glk7/igt@gem_exec_fair@basic-none-solo.html
* igt@gem_exec_fair@basic-pace-solo:
- shard-dg2: NOTRUN -> [SKIP][17] ([i915#3539])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-7/igt@gem_exec_fair@basic-pace-solo.html
* igt@gem_exec_fair@basic-pace@rcs0:
- shard-rkl: [PASS][18] -> [FAIL][19] ([i915#2842]) +1 other test fail
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-rkl-6/igt@gem_exec_fair@basic-pace@rcs0.html
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-5/igt@gem_exec_fair@basic-pace@rcs0.html
* igt@gem_exec_fence@concurrent:
- shard-mtlp: NOTRUN -> [SKIP][20] ([i915#4812])
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-mtlp-1/igt@gem_exec_fence@concurrent.html
* igt@gem_exec_flush@basic-batch-kernel-default-cmd:
- shard-dg1: NOTRUN -> [SKIP][21] ([i915#3539] / [i915#4852]) +1 other test skip
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@gem_exec_flush@basic-batch-kernel-default-cmd.html
* igt@gem_exec_reloc@basic-gtt-cpu-active:
- shard-dg2: NOTRUN -> [SKIP][22] ([i915#3281]) +1 other test skip
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-7/igt@gem_exec_reloc@basic-gtt-cpu-active.html
* igt@gem_exec_reloc@basic-wc-cpu-active:
- shard-mtlp: NOTRUN -> [SKIP][23] ([i915#3281])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-mtlp-1/igt@gem_exec_reloc@basic-wc-cpu-active.html
* igt@gem_exec_reloc@basic-wc-read-active:
- shard-dg1: NOTRUN -> [SKIP][24] ([i915#3281]) +6 other tests skip
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-16/igt@gem_exec_reloc@basic-wc-read-active.html
* igt@gem_exec_reloc@basic-write-read-noreloc:
- shard-rkl: NOTRUN -> [SKIP][25] ([i915#3281]) +6 other tests skip
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-4/igt@gem_exec_reloc@basic-write-read-noreloc.html
* igt@gem_exec_schedule@preempt-queue-chain:
- shard-dg1: NOTRUN -> [SKIP][26] ([i915#4812])
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@gem_exec_schedule@preempt-queue-chain.html
* igt@gem_exec_schedule@semaphore-power:
- shard-rkl: NOTRUN -> [SKIP][27] ([i915#7276])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-4/igt@gem_exec_schedule@semaphore-power.html
* igt@gem_fenced_exec_thrash@2-spare-fences:
- shard-dg1: NOTRUN -> [SKIP][28] ([i915#4860])
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@gem_fenced_exec_thrash@2-spare-fences.html
* igt@gem_lmem_swapping@parallel-multi:
- shard-rkl: NOTRUN -> [SKIP][29] ([i915#4613]) +3 other tests skip
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-4/igt@gem_lmem_swapping@parallel-multi.html
* igt@gem_lmem_swapping@parallel-random-verify-ccs:
- shard-dg1: NOTRUN -> [SKIP][30] ([i915#12193])
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@gem_lmem_swapping@parallel-random-verify-ccs.html
- shard-glk: NOTRUN -> [SKIP][31] ([i915#4613])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-glk9/igt@gem_lmem_swapping@parallel-random-verify-ccs.html
* igt@gem_lmem_swapping@parallel-random-verify-ccs@lmem0:
- shard-dg1: NOTRUN -> [SKIP][32] ([i915#4565])
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@gem_lmem_swapping@parallel-random-verify-ccs@lmem0.html
* igt@gem_mmap_gtt@fault-concurrent-x:
- shard-dg2: NOTRUN -> [SKIP][33] ([i915#4077]) +3 other tests skip
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-7/igt@gem_mmap_gtt@fault-concurrent-x.html
* igt@gem_mmap_gtt@ptrace:
- shard-mtlp: NOTRUN -> [SKIP][34] ([i915#4077]) +2 other tests skip
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-mtlp-1/igt@gem_mmap_gtt@ptrace.html
* igt@gem_mmap_wc@bad-object:
- shard-dg2: NOTRUN -> [SKIP][35] ([i915#4083]) +1 other test skip
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-7/igt@gem_mmap_wc@bad-object.html
* igt@gem_mmap_wc@write-read-distinct:
- shard-dg1: NOTRUN -> [SKIP][36] ([i915#4083]) +2 other tests skip
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@gem_mmap_wc@write-read-distinct.html
* igt@gem_partial_pwrite_pread@reads-snoop:
- shard-dg1: NOTRUN -> [SKIP][37] ([i915#3282]) +2 other tests skip
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-16/igt@gem_partial_pwrite_pread@reads-snoop.html
* igt@gem_partial_pwrite_pread@reads-uncached:
- shard-dg2: NOTRUN -> [SKIP][38] ([i915#3282]) +1 other test skip
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-7/igt@gem_partial_pwrite_pread@reads-uncached.html
* igt@gem_partial_pwrite_pread@write-uncached:
- shard-mtlp: NOTRUN -> [SKIP][39] ([i915#3282])
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-mtlp-1/igt@gem_partial_pwrite_pread@write-uncached.html
* igt@gem_pwrite@basic-exhaustion:
- shard-rkl: NOTRUN -> [SKIP][40] ([i915#3282]) +4 other tests skip
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-4/igt@gem_pwrite@basic-exhaustion.html
* igt@gem_pxp@create-valid-protected-context:
- shard-dg2: NOTRUN -> [SKIP][41] ([i915#4270])
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-7/igt@gem_pxp@create-valid-protected-context.html
* igt@gem_pxp@protected-encrypted-src-copy-not-readible:
- shard-dg1: NOTRUN -> [SKIP][42] ([i915#4270]) +1 other test skip
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@gem_pxp@protected-encrypted-src-copy-not-readible.html
* igt@gem_pxp@reject-modify-context-protection-on:
- shard-rkl: NOTRUN -> [SKIP][43] ([i915#4270]) +2 other tests skip
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-4/igt@gem_pxp@reject-modify-context-protection-on.html
* igt@gem_render_copy@y-tiled-ccs-to-y-tiled-mc-ccs:
- shard-mtlp: NOTRUN -> [SKIP][44] ([i915#8428])
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-mtlp-1/igt@gem_render_copy@y-tiled-ccs-to-y-tiled-mc-ccs.html
* igt@gem_render_copy@y-tiled-mc-ccs-to-yf-tiled-ccs:
- shard-dg2: NOTRUN -> [SKIP][45] ([i915#5190] / [i915#8428])
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-7/igt@gem_render_copy@y-tiled-mc-ccs-to-yf-tiled-ccs.html
* igt@gem_set_tiling_vs_pwrite:
- shard-dg1: NOTRUN -> [SKIP][46] ([i915#4079])
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@gem_set_tiling_vs_pwrite.html
* igt@gem_tiled_partial_pwrite_pread@writes-after-reads:
- shard-dg1: NOTRUN -> [SKIP][47] ([i915#4077]) +7 other tests skip
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-16/igt@gem_tiled_partial_pwrite_pread@writes-after-reads.html
* igt@gem_userptr_blits@access-control:
- shard-dg2: NOTRUN -> [SKIP][48] ([i915#3297])
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-7/igt@gem_userptr_blits@access-control.html
* igt@gem_userptr_blits@readonly-pwrite-unsync:
- shard-dg1: NOTRUN -> [SKIP][49] ([i915#3297])
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@gem_userptr_blits@readonly-pwrite-unsync.html
* igt@gem_userptr_blits@relocations:
- shard-rkl: NOTRUN -> [SKIP][50] ([i915#3281] / [i915#3297])
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-1/igt@gem_userptr_blits@relocations.html
* igt@gem_userptr_blits@unsync-unmap:
- shard-rkl: NOTRUN -> [SKIP][51] ([i915#3297]) +1 other test skip
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-1/igt@gem_userptr_blits@unsync-unmap.html
* igt@gen7_exec_parse@bitmasks:
- shard-dg2: NOTRUN -> [SKIP][52] +6 other tests skip
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-7/igt@gen7_exec_parse@bitmasks.html
* igt@gen9_exec_parse@bb-oversize:
- shard-mtlp: NOTRUN -> [SKIP][53] ([i915#2856])
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-mtlp-1/igt@gen9_exec_parse@bb-oversize.html
* igt@gen9_exec_parse@bb-start-far:
- shard-rkl: NOTRUN -> [SKIP][54] ([i915#2527]) +1 other test skip
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-3/igt@gen9_exec_parse@bb-start-far.html
* igt@i915_fb_tiling:
- shard-dg1: NOTRUN -> [SKIP][55] ([i915#4881])
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@i915_fb_tiling.html
* igt@i915_module_load@reload-with-fault-injection:
- shard-snb: [PASS][56] -> [ABORT][57] ([i915#9820])
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-snb6/igt@i915_module_load@reload-with-fault-injection.html
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-snb6/igt@i915_module_load@reload-with-fault-injection.html
- shard-dg1: [PASS][58] -> [ABORT][59] ([i915#9820])
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-dg1-16/igt@i915_module_load@reload-with-fault-injection.html
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-18/igt@i915_module_load@reload-with-fault-injection.html
- shard-dg2: [PASS][60] -> [ABORT][61] ([i915#9820])
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-dg2-6/igt@i915_module_load@reload-with-fault-injection.html
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-10/igt@i915_module_load@reload-with-fault-injection.html
* igt@i915_module_load@resize-bar:
- shard-dg1: NOTRUN -> [SKIP][62] ([i915#7178])
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-16/igt@i915_module_load@resize-bar.html
* igt@i915_pm_freq_api@freq-reset-multiple:
- shard-rkl: NOTRUN -> [SKIP][63] ([i915#8399])
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-3/igt@i915_pm_freq_api@freq-reset-multiple.html
* igt@i915_pm_rc6_residency@rc6-idle@gt0-vcs0:
- shard-dg1: [PASS][64] -> [FAIL][65] ([i915#3591])
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-dg1-16/igt@i915_pm_rc6_residency@rc6-idle@gt0-vcs0.html
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-18/igt@i915_pm_rc6_residency@rc6-idle@gt0-vcs0.html
* igt@i915_pm_rps@min-max-config-idle:
- shard-dg1: NOTRUN -> [SKIP][66] ([i915#11681] / [i915#6621])
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@i915_pm_rps@min-max-config-idle.html
* igt@i915_pm_rps@reset:
- shard-snb: [PASS][67] -> [INCOMPLETE][68] ([i915#7790])
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-snb5/igt@i915_pm_rps@reset.html
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-snb2/igt@i915_pm_rps@reset.html
* igt@intel_hwmon@hwmon-read:
- shard-rkl: NOTRUN -> [SKIP][69] ([i915#7707])
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-3/igt@intel_hwmon@hwmon-read.html
* igt@kms_async_flips@async-flip-with-page-flip-events@pipe-b-hdmi-a-4-y-rc-ccs:
- shard-dg1: NOTRUN -> [SKIP][70] ([i915#8709]) +7 other tests skip
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-b-hdmi-a-4-y-rc-ccs.html
* igt@kms_async_flips@async-flip-with-page-flip-events@pipe-c-hdmi-a-1-4-mc-ccs:
- shard-dg2: NOTRUN -> [SKIP][71] ([i915#8709]) +11 other tests skip
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-4/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-c-hdmi-a-1-4-mc-ccs.html
* igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels:
- shard-glk: NOTRUN -> [SKIP][72] ([i915#1769])
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-glk7/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html
* igt@kms_big_fb@4-tiled-addfb:
- shard-rkl: NOTRUN -> [SKIP][73] ([i915#5286]) +3 other tests skip
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-4/igt@kms_big_fb@4-tiled-addfb.html
* igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip:
- shard-dg1: NOTRUN -> [SKIP][74] ([i915#4538] / [i915#5286]) +3 other tests skip
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html
* igt@kms_big_fb@linear-64bpp-rotate-90:
- shard-rkl: NOTRUN -> [SKIP][75] ([i915#3638]) +3 other tests skip
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-3/igt@kms_big_fb@linear-64bpp-rotate-90.html
* igt@kms_big_fb@x-tiled-8bpp-rotate-0:
- shard-rkl: [PASS][76] -> [ABORT][77] ([i915#10354])
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-rkl-3/igt@kms_big_fb@x-tiled-8bpp-rotate-0.html
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-3/igt@kms_big_fb@x-tiled-8bpp-rotate-0.html
* igt@kms_big_fb@y-tiled-64bpp-rotate-90:
- shard-dg1: NOTRUN -> [SKIP][78] ([i915#3638]) +2 other tests skip
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@kms_big_fb@y-tiled-64bpp-rotate-90.html
* igt@kms_big_fb@yf-tiled-64bpp-rotate-180:
- shard-dg2: NOTRUN -> [SKIP][79] ([i915#4538] / [i915#5190]) +2 other tests skip
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-7/igt@kms_big_fb@yf-tiled-64bpp-rotate-180.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180:
- shard-dg1: NOTRUN -> [SKIP][80] ([i915#4538]) +4 other tests skip
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180.html
* igt@kms_big_joiner@basic-force-joiner:
- shard-dg2: NOTRUN -> [SKIP][81] ([i915#10656])
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-7/igt@kms_big_joiner@basic-force-joiner.html
* igt@kms_ccs@bad-pixel-format-4-tiled-dg2-rc-ccs:
- shard-mtlp: NOTRUN -> [SKIP][82] ([i915#6095]) +9 other tests skip
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-mtlp-1/igt@kms_ccs@bad-pixel-format-4-tiled-dg2-rc-ccs.html
* igt@kms_ccs@bad-pixel-format-y-tiled-gen12-mc-ccs@pipe-d-hdmi-a-1:
- shard-dg2: NOTRUN -> [SKIP][83] ([i915#10307] / [i915#10434] / [i915#6095]) +3 other tests skip
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-4/igt@kms_ccs@bad-pixel-format-y-tiled-gen12-mc-ccs@pipe-d-hdmi-a-1.html
* igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs:
- shard-rkl: NOTRUN -> [SKIP][84] ([i915#12042])
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-4/igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs.html
* igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs-cc@pipe-b-hdmi-a-4:
- shard-dg1: NOTRUN -> [SKIP][85] ([i915#6095]) +82 other tests skip
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs-cc@pipe-b-hdmi-a-4.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs@pipe-a-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][86] ([i915#6095]) +36 other tests skip
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-3/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs@pipe-a-hdmi-a-2.html
* igt@kms_ccs@crc-sprite-planes-basic-y-tiled-gen12-mc-ccs@pipe-d-hdmi-a-1:
- shard-dg2: NOTRUN -> [SKIP][87] ([i915#10307] / [i915#6095]) +154 other tests skip
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-10/igt@kms_ccs@crc-sprite-planes-basic-y-tiled-gen12-mc-ccs@pipe-d-hdmi-a-1.html
* igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs:
- shard-mtlp: NOTRUN -> [SKIP][88] ([i915#12042])
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-mtlp-1/igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs.html
* igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs:
- shard-dg1: NOTRUN -> [SKIP][89] ([i915#12042]) +1 other test skip
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs.html
* igt@kms_cdclk@mode-transition:
- shard-dg1: NOTRUN -> [SKIP][90] ([i915#3742])
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-18/igt@kms_cdclk@mode-transition.html
* igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-3:
- shard-dg2: NOTRUN -> [SKIP][91] ([i915#7213]) +3 other tests skip
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-6/igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-3.html
* igt@kms_chamelium_audio@hdmi-audio-edid:
- shard-dg1: NOTRUN -> [SKIP][92] ([i915#7828]) +5 other tests skip
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-16/igt@kms_chamelium_audio@hdmi-audio-edid.html
* igt@kms_chamelium_hpd@dp-hpd-for-each-pipe:
- shard-dg2: NOTRUN -> [SKIP][93] ([i915#7828]) +1 other test skip
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-7/igt@kms_chamelium_hpd@dp-hpd-for-each-pipe.html
* igt@kms_chamelium_hpd@hdmi-hpd-after-suspend:
- shard-mtlp: NOTRUN -> [SKIP][94] ([i915#7828])
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-mtlp-1/igt@kms_chamelium_hpd@hdmi-hpd-after-suspend.html
* igt@kms_chamelium_hpd@hdmi-hpd-fast:
- shard-rkl: NOTRUN -> [SKIP][95] ([i915#7828]) +6 other tests skip
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-3/igt@kms_chamelium_hpd@hdmi-hpd-fast.html
* igt@kms_content_protection@atomic@pipe-a-dp-4:
- shard-dg2: NOTRUN -> [TIMEOUT][96] ([i915#7173]) +1 other test timeout
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-11/igt@kms_content_protection@atomic@pipe-a-dp-4.html
* igt@kms_content_protection@dp-mst-lic-type-0:
- shard-mtlp: NOTRUN -> [SKIP][97] ([i915#3299])
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-mtlp-1/igt@kms_content_protection@dp-mst-lic-type-0.html
* igt@kms_content_protection@dp-mst-type-1:
- shard-dg1: NOTRUN -> [SKIP][98] ([i915#3299])
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-16/igt@kms_content_protection@dp-mst-type-1.html
* igt@kms_content_protection@mei-interface:
- shard-rkl: NOTRUN -> [SKIP][99] ([i915#9424])
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-1/igt@kms_content_protection@mei-interface.html
* igt@kms_content_protection@type1:
- shard-rkl: NOTRUN -> [SKIP][100] ([i915#7118] / [i915#9424])
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-4/igt@kms_content_protection@type1.html
* igt@kms_cursor_crc@cursor-random-32x10:
- shard-dg2: NOTRUN -> [SKIP][101] ([i915#3555]) +2 other tests skip
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-7/igt@kms_cursor_crc@cursor-random-32x10.html
* igt@kms_cursor_crc@cursor-random-512x512:
- shard-dg1: NOTRUN -> [SKIP][102] ([i915#11453]) +2 other tests skip
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@kms_cursor_crc@cursor-random-512x512.html
* igt@kms_cursor_crc@cursor-sliding-max-size:
- shard-rkl: NOTRUN -> [SKIP][103] ([i915#3555]) +1 other test skip
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-4/igt@kms_cursor_crc@cursor-sliding-max-size.html
* igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy:
- shard-rkl: NOTRUN -> [SKIP][104] +22 other tests skip
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-3/igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
- shard-dg1: NOTRUN -> [SKIP][105] ([i915#4103] / [i915#4213])
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
* igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions:
- shard-mtlp: NOTRUN -> [SKIP][106] +3 other tests skip
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-mtlp-1/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
- shard-glk: [PASS][107] -> [FAIL][108] ([i915#2346])
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-glk7/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-glk2/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions:
- shard-mtlp: NOTRUN -> [SKIP][109] ([i915#4213])
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-mtlp-1/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html
* igt@kms_cursor_legacy@torture-move:
- shard-tglu: [PASS][110] -> [DMESG-WARN][111] ([i915#10166])
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-tglu-3/igt@kms_cursor_legacy@torture-move.html
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-tglu-6/igt@kms_cursor_legacy@torture-move.html
* igt@kms_cursor_legacy@torture-move@pipe-a:
- shard-tglu: [PASS][112] -> [DMESG-WARN][113] ([i915#10166] / [i915#1982])
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-tglu-3/igt@kms_cursor_legacy@torture-move@pipe-a.html
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-tglu-6/igt@kms_cursor_legacy@torture-move@pipe-a.html
* igt@kms_dirtyfb@drrs-dirtyfb-ioctl:
- shard-dg1: NOTRUN -> [SKIP][114] ([i915#9723])
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-16/igt@kms_dirtyfb@drrs-dirtyfb-ioctl.html
* igt@kms_dsc@dsc-fractional-bpp:
- shard-dg2: NOTRUN -> [SKIP][115] ([i915#3840] / [i915#9688])
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-7/igt@kms_dsc@dsc-fractional-bpp.html
* igt@kms_dsc@dsc-fractional-bpp-with-bpc:
- shard-dg1: NOTRUN -> [SKIP][116] ([i915#3840])
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-16/igt@kms_dsc@dsc-fractional-bpp-with-bpc.html
* igt@kms_dsc@dsc-with-bpc:
- shard-dg1: NOTRUN -> [SKIP][117] ([i915#3555] / [i915#3840])
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@kms_dsc@dsc-with-bpc.html
* igt@kms_dsc@dsc-with-formats:
- shard-rkl: NOTRUN -> [SKIP][118] ([i915#3555] / [i915#3840])
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-3/igt@kms_dsc@dsc-with-formats.html
* igt@kms_feature_discovery@chamelium:
- shard-dg1: NOTRUN -> [SKIP][119] ([i915#4854])
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@kms_feature_discovery@chamelium.html
* igt@kms_fence_pin_leak:
- shard-mtlp: NOTRUN -> [SKIP][120] ([i915#4881])
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-mtlp-1/igt@kms_fence_pin_leak.html
* igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-hdmi-a1-hdmi-a2:
- shard-glk: [PASS][121] -> [FAIL][122] ([i915#79]) +1 other test fail
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-glk2/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-hdmi-a1-hdmi-a2.html
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-glk9/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-hdmi-a1-hdmi-a2.html
* igt@kms_flip@2x-plain-flip-ts-check-interruptible@ab-vga1-hdmi-a1:
- shard-snb: [PASS][123] -> [FAIL][124] ([i915#2122]) +1 other test fail
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-snb1/igt@kms_flip@2x-plain-flip-ts-check-interruptible@ab-vga1-hdmi-a1.html
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-snb7/igt@kms_flip@2x-plain-flip-ts-check-interruptible@ab-vga1-hdmi-a1.html
* igt@kms_flip@2x-wf_vblank-ts-check-interruptible:
- shard-dg1: NOTRUN -> [SKIP][125] ([i915#9934]) +4 other tests skip
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-16/igt@kms_flip@2x-wf_vblank-ts-check-interruptible.html
* igt@kms_flip@flip-vs-fences:
- shard-dg1: NOTRUN -> [SKIP][126] ([i915#8381])
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@kms_flip@flip-vs-fences.html
* igt@kms_flip@flip-vs-fences-interruptible:
- shard-mtlp: NOTRUN -> [SKIP][127] ([i915#8381])
[127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-mtlp-1/igt@kms_flip@flip-vs-fences-interruptible.html
* igt@kms_flip@plain-flip-ts-check:
- shard-dg1: [PASS][128] -> [FAIL][129] ([i915#2122])
[128]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-dg1-13/igt@kms_flip@plain-flip-ts-check.html
[129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@kms_flip@plain-flip-ts-check.html
* igt@kms_flip@plain-flip-ts-check@b-hdmi-a4:
- shard-dg1: NOTRUN -> [FAIL][130] ([i915#2122]) +1 other test fail
[130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@kms_flip@plain-flip-ts-check@b-hdmi-a4.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling:
- shard-mtlp: NOTRUN -> [SKIP][131] ([i915#2672] / [i915#3555] / [i915#8813])
[131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-mtlp-1/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling@pipe-a-default-mode:
- shard-mtlp: NOTRUN -> [SKIP][132] ([i915#2672])
[132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-mtlp-1/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling@pipe-a-valid-mode:
- shard-rkl: NOTRUN -> [SKIP][133] ([i915#2672]) +4 other tests skip
[133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-3/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-valid-mode:
- shard-dg2: NOTRUN -> [SKIP][134] ([i915#2672]) +1 other test skip
[134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-7/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling:
- shard-dg1: NOTRUN -> [SKIP][135] ([i915#2672] / [i915#3555]) +1 other test skip
[135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-16/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling@pipe-a-valid-mode:
- shard-dg1: NOTRUN -> [SKIP][136] ([i915#2587] / [i915#2672]) +1 other test skip
[136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-16/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling:
- shard-rkl: NOTRUN -> [SKIP][137] ([i915#2672] / [i915#3555]) +4 other tests skip
[137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-4/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling:
- shard-dg2: NOTRUN -> [SKIP][138] ([i915#2672] / [i915#3555] / [i915#5190]) +1 other test skip
[138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-7/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-gtt:
- shard-mtlp: NOTRUN -> [SKIP][139] ([i915#8708])
[139]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-mtlp-1/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-pwrite:
- shard-dg1: NOTRUN -> [SKIP][140] +33 other tests skip
[140]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-pwrite.html
* igt@kms_frontbuffer_tracking@fbc-tiling-linear:
- shard-dg2: [PASS][141] -> [FAIL][142] ([i915#6880])
[141]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-dg2-4/igt@kms_frontbuffer_tracking@fbc-tiling-linear.html
[142]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-5/igt@kms_frontbuffer_tracking@fbc-tiling-linear.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-render:
- shard-dg2: NOTRUN -> [SKIP][143] ([i915#3458]) +3 other tests skip
[143]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-7/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-blt:
- shard-mtlp: NOTRUN -> [SKIP][144] ([i915#1825]) +4 other tests skip
[144]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-mtlp-1/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-farfromfence-mmap-gtt:
- shard-dg1: NOTRUN -> [SKIP][145] ([i915#8708]) +8 other tests skip
[145]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-16/igt@kms_frontbuffer_tracking@fbcpsr-farfromfence-mmap-gtt.html
* igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-gtt:
- shard-rkl: NOTRUN -> [SKIP][146] ([i915#3023]) +15 other tests skip
[146]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-3/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-wc:
- shard-dg2: NOTRUN -> [SKIP][147] ([i915#8708]) +3 other tests skip
[147]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-7/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@psr-2p-rte:
- shard-dg2: NOTRUN -> [SKIP][148] ([i915#5354]) +5 other tests skip
[148]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-7/igt@kms_frontbuffer_tracking@psr-2p-rte.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-msflip-blt:
- shard-rkl: NOTRUN -> [SKIP][149] ([i915#1825]) +26 other tests skip
[149]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-3/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-msflip-blt.html
* igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-cpu:
- shard-dg1: NOTRUN -> [SKIP][150] ([i915#3458]) +13 other tests skip
[150]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-cpu.html
* igt@kms_hdr@invalid-hdr:
- shard-dg2: NOTRUN -> [SKIP][151] ([i915#3555] / [i915#8228])
[151]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-7/igt@kms_hdr@invalid-hdr.html
* igt@kms_hdr@static-toggle-dpms:
- shard-rkl: NOTRUN -> [SKIP][152] ([i915#3555] / [i915#8228]) +2 other tests skip
[152]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-4/igt@kms_hdr@static-toggle-dpms.html
* igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format:
- shard-dg1: NOTRUN -> [SKIP][153] ([i915#12247]) +13 other tests skip
[153]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format.html
* igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20:
- shard-dg2: NOTRUN -> [SKIP][154] ([i915#12247] / [i915#9423])
[154]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-7/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20.html
* igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20@pipe-a:
- shard-dg2: NOTRUN -> [SKIP][155] ([i915#12247]) +3 other tests skip
[155]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-7/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20@pipe-a.html
* igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-20x20@pipe-b:
- shard-glk: NOTRUN -> [SKIP][156] +63 other tests skip
[156]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-glk9/igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-20x20@pipe-b.html
* igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25:
- shard-rkl: NOTRUN -> [SKIP][157] ([i915#6953])
[157]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-4/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25.html
* igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-a:
- shard-rkl: NOTRUN -> [SKIP][158] ([i915#12247]) +1 other test skip
[158]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-4/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-a.html
* igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25:
- shard-dg1: NOTRUN -> [SKIP][159] ([i915#3555]) +5 other tests skip
[159]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25.html
* igt@kms_pm_backlight@fade-with-suspend:
- shard-rkl: NOTRUN -> [SKIP][160] ([i915#5354])
[160]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-3/igt@kms_pm_backlight@fade-with-suspend.html
* igt@kms_pm_dc@dc3co-vpb-simulation:
- shard-rkl: NOTRUN -> [SKIP][161] ([i915#9685])
[161]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-4/igt@kms_pm_dc@dc3co-vpb-simulation.html
* igt@kms_pm_dc@dc9-dpms:
- shard-rkl: NOTRUN -> [SKIP][162] ([i915#3361])
[162]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-1/igt@kms_pm_dc@dc9-dpms.html
- shard-tglu: [PASS][163] -> [SKIP][164] ([i915#4281])
[163]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-tglu-3/igt@kms_pm_dc@dc9-dpms.html
[164]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-tglu-7/igt@kms_pm_dc@dc9-dpms.html
* igt@kms_pm_lpsp@kms-lpsp:
- shard-dg2: [PASS][165] -> [SKIP][166] ([i915#9340])
[165]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-dg2-4/igt@kms_pm_lpsp@kms-lpsp.html
[166]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-5/igt@kms_pm_lpsp@kms-lpsp.html
- shard-rkl: NOTRUN -> [SKIP][167] ([i915#9340])
[167]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-3/igt@kms_pm_lpsp@kms-lpsp.html
* igt@kms_pm_rpm@dpms-mode-unset-non-lpsp:
- shard-rkl: NOTRUN -> [SKIP][168] ([i915#9519])
[168]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-4/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html
* igt@kms_pm_rpm@modeset-lpsp-stress:
- shard-dg1: NOTRUN -> [SKIP][169] ([i915#9519])
[169]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-16/igt@kms_pm_rpm@modeset-lpsp-stress.html
* igt@kms_pm_rpm@modeset-non-lpsp:
- shard-dg2: [PASS][170] -> [SKIP][171] ([i915#9519]) +1 other test skip
[170]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-dg2-5/igt@kms_pm_rpm@modeset-non-lpsp.html
[171]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-4/igt@kms_pm_rpm@modeset-non-lpsp.html
* igt@kms_prime@d3hot:
- shard-dg1: NOTRUN -> [SKIP][172] ([i915#6524])
[172]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@kms_prime@d3hot.html
* igt@kms_psr2_sf@cursor-plane-move-continuous-sf:
- shard-rkl: NOTRUN -> [SKIP][173] ([i915#11520]) +1 other test skip
[173]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-1/igt@kms_psr2_sf@cursor-plane-move-continuous-sf.html
* igt@kms_psr2_sf@fbc-overlay-primary-update-sf-dmg-area:
- shard-dg2: NOTRUN -> [SKIP][174] ([i915#11520])
[174]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-7/igt@kms_psr2_sf@fbc-overlay-primary-update-sf-dmg-area.html
* igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf:
- shard-dg1: NOTRUN -> [SKIP][175] ([i915#11520]) +1 other test skip
[175]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf.html
* igt@kms_psr2_su@page_flip-p010:
- shard-rkl: NOTRUN -> [SKIP][176] ([i915#9683]) +1 other test skip
[176]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-1/igt@kms_psr2_su@page_flip-p010.html
* igt@kms_psr2_su@page_flip-xrgb8888:
- shard-dg1: NOTRUN -> [SKIP][177] ([i915#9683])
[177]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@kms_psr2_su@page_flip-xrgb8888.html
* igt@kms_psr@fbc-pr-cursor-plane-onoff:
- shard-rkl: NOTRUN -> [SKIP][178] ([i915#1072] / [i915#9732]) +14 other tests skip
[178]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-4/igt@kms_psr@fbc-pr-cursor-plane-onoff.html
* igt@kms_psr@fbc-psr-sprite-blt:
- shard-dg2: NOTRUN -> [SKIP][179] ([i915#1072] / [i915#9732]) +4 other tests skip
[179]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-7/igt@kms_psr@fbc-psr-sprite-blt.html
* igt@kms_psr@pr-cursor-render:
- shard-mtlp: NOTRUN -> [SKIP][180] ([i915#9688])
[180]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-mtlp-1/igt@kms_psr@pr-cursor-render.html
* igt@kms_psr@psr2-sprite-blt:
- shard-dg1: NOTRUN -> [SKIP][181] ([i915#1072] / [i915#9732]) +13 other tests skip
[181]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@kms_psr@psr2-sprite-blt.html
* igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
- shard-dg1: NOTRUN -> [SKIP][182] ([i915#9685])
[182]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
* igt@kms_rotation_crc@primary-y-tiled-reflect-x-270:
- shard-dg2: NOTRUN -> [SKIP][183] ([i915#11131] / [i915#5190])
[183]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-7/igt@kms_rotation_crc@primary-y-tiled-reflect-x-270.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0:
- shard-rkl: NOTRUN -> [SKIP][184] ([i915#5289])
[184]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-3/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html
* igt@kms_universal_plane@cursor-fb-leak@pipe-b-hdmi-a-2:
- shard-rkl: [PASS][185] -> [FAIL][186] ([i915#9196]) +1 other test fail
[185]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-rkl-3/igt@kms_universal_plane@cursor-fb-leak@pipe-b-hdmi-a-2.html
[186]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-6/igt@kms_universal_plane@cursor-fb-leak@pipe-b-hdmi-a-2.html
* igt@kms_vrr@negative-basic:
- shard-dg1: NOTRUN -> [SKIP][187] ([i915#3555] / [i915#9906])
[187]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@kms_vrr@negative-basic.html
* igt@kms_vrr@seamless-rr-switch-drrs:
- shard-rkl: NOTRUN -> [SKIP][188] ([i915#9906])
[188]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-4/igt@kms_vrr@seamless-rr-switch-drrs.html
* igt@kms_writeback@writeback-fb-id:
- shard-dg2: NOTRUN -> [SKIP][189] ([i915#2437])
[189]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-7/igt@kms_writeback@writeback-fb-id.html
* igt@kms_writeback@writeback-fb-id-xrgb2101010:
- shard-dg1: NOTRUN -> [SKIP][190] ([i915#2437] / [i915#9412])
[190]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@kms_writeback@writeback-fb-id-xrgb2101010.html
* igt@kms_writeback@writeback-invalid-parameters:
- shard-rkl: NOTRUN -> [SKIP][191] ([i915#2437])
[191]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-1/igt@kms_writeback@writeback-invalid-parameters.html
* igt@perf_pmu@busy-double-start@vecs1:
- shard-dg2: NOTRUN -> [FAIL][192] ([i915#4349]) +4 other tests fail
[192]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-7/igt@perf_pmu@busy-double-start@vecs1.html
* igt@perf_pmu@cpu-hotplug:
- shard-dg1: NOTRUN -> [SKIP][193] ([i915#8850])
[193]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-16/igt@perf_pmu@cpu-hotplug.html
* igt@prime_vgem@coherency-gtt:
- shard-dg1: NOTRUN -> [SKIP][194] ([i915#3708] / [i915#4077]) +1 other test skip
[194]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@prime_vgem@coherency-gtt.html
* igt@prime_vgem@fence-flip-hang:
- shard-dg1: NOTRUN -> [SKIP][195] ([i915#3708])
[195]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@prime_vgem@fence-flip-hang.html
* igt@prime_vgem@fence-read-hang:
- shard-rkl: NOTRUN -> [SKIP][196] ([i915#3708])
[196]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-4/igt@prime_vgem@fence-read-hang.html
* igt@sriov_basic@enable-vfs-autoprobe-on:
- shard-dg1: NOTRUN -> [SKIP][197] ([i915#9917])
[197]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@sriov_basic@enable-vfs-autoprobe-on.html
* igt@syncobj_wait@invalid-wait-zero-handles:
- shard-rkl: NOTRUN -> [FAIL][198] ([i915#9781])
[198]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-rkl-3/igt@syncobj_wait@invalid-wait-zero-handles.html
#### Possible fixes ####
* igt@gem_eio@reset-stress:
- shard-dg1: [FAIL][199] ([i915#5784]) -> [PASS][200]
[199]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-dg1-13/igt@gem_eio@reset-stress.html
[200]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-15/igt@gem_eio@reset-stress.html
* igt@gem_exec_endless@dispatch:
- shard-dg2: [TIMEOUT][201] ([i915#7016]) -> [PASS][202]
[201]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-dg2-11/igt@gem_exec_endless@dispatch.html
[202]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-11/igt@gem_exec_endless@dispatch.html
* igt@gem_exec_endless@dispatch@bcs0:
- shard-dg2: [TIMEOUT][203] ([i915#3778] / [i915#7016]) -> [PASS][204]
[203]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-dg2-11/igt@gem_exec_endless@dispatch@bcs0.html
[204]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-11/igt@gem_exec_endless@dispatch@bcs0.html
* igt@gem_exec_fair@basic-pace-share:
- shard-tglu: [FAIL][205] ([i915#2842]) -> [PASS][206] +1 other test pass
[205]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-tglu-5/igt@gem_exec_fair@basic-pace-share.html
[206]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-tglu-8/igt@gem_exec_fair@basic-pace-share.html
* igt@i915_pm_rc6_residency@rc6-idle@gt0-bcs0:
- shard-dg1: [FAIL][207] ([i915#3591]) -> [PASS][208] +1 other test pass
[207]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-dg1-16/igt@i915_pm_rc6_residency@rc6-idle@gt0-bcs0.html
[208]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-18/igt@i915_pm_rc6_residency@rc6-idle@gt0-bcs0.html
* igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels@pipe-a-edp-1:
- shard-mtlp: [FAIL][209] ([i915#11808] / [i915#5956]) -> [PASS][210] +1 other test pass
[209]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-mtlp-6/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels@pipe-a-edp-1.html
[210]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-mtlp-7/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels@pipe-a-edp-1.html
* igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1:
- shard-snb: [FAIL][211] ([i915#5956]) -> [PASS][212] +1 other test pass
[211]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-snb5/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1.html
[212]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-snb1/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1.html
* igt@kms_cursor_legacy@torture-bo:
- shard-tglu: [DMESG-WARN][213] ([i915#10166] / [i915#1982]) -> [PASS][214]
[213]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-tglu-9/igt@kms_cursor_legacy@torture-bo.html
[214]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-tglu-5/igt@kms_cursor_legacy@torture-bo.html
* igt@kms_cursor_legacy@torture-bo@pipe-a:
- shard-tglu: [DMESG-WARN][215] ([i915#10166]) -> [PASS][216]
[215]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-tglu-9/igt@kms_cursor_legacy@torture-bo@pipe-a.html
[216]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-tglu-5/igt@kms_cursor_legacy@torture-bo@pipe-a.html
* igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-blt:
- shard-dg2: [FAIL][217] ([i915#6880]) -> [PASS][218]
[217]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-dg2-2/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-blt.html
[218]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-6/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-move:
- shard-snb: [SKIP][219] -> [PASS][220] +2 other tests pass
[219]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-snb1/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-move.html
[220]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-snb7/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-move.html
* igt@kms_pm_rpm@modeset-lpsp:
- shard-dg2: [SKIP][221] ([i915#9519]) -> [PASS][222] +1 other test pass
[221]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-dg2-6/igt@kms_pm_rpm@modeset-lpsp.html
[222]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-10/igt@kms_pm_rpm@modeset-lpsp.html
* igt@kms_universal_plane@cursor-fb-leak:
- shard-dg1: [FAIL][223] ([i915#9196]) -> [PASS][224]
[223]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-dg1-14/igt@kms_universal_plane@cursor-fb-leak.html
[224]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg1-13/igt@kms_universal_plane@cursor-fb-leak.html
- shard-dg2: [FAIL][225] ([i915#9196]) -> [PASS][226]
[225]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-dg2-5/igt@kms_universal_plane@cursor-fb-leak.html
[226]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-10/igt@kms_universal_plane@cursor-fb-leak.html
* igt@perf_pmu@busy-double-start@bcs0:
- shard-mtlp: [FAIL][227] ([i915#4349]) -> [PASS][228]
[227]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-mtlp-2/igt@perf_pmu@busy-double-start@bcs0.html
[228]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-mtlp-3/igt@perf_pmu@busy-double-start@bcs0.html
#### Warnings ####
* igt@gem_exec_big@single:
- shard-tglu: [ABORT][229] -> [ABORT][230] ([i915#11713])
[229]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-tglu-3/igt@gem_exec_big@single.html
[230]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-tglu-5/igt@gem_exec_big@single.html
* igt@i915_module_load@reload-with-fault-injection:
- shard-mtlp: [ABORT][231] ([i915#10887] / [i915#11231]) -> [ABORT][232] ([i915#10131] / [i915#9697])
[231]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-mtlp-6/igt@i915_module_load@reload-with-fault-injection.html
[232]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-mtlp-6/igt@i915_module_load@reload-with-fault-injection.html
* igt@i915_selftest@mock:
- shard-dg2: [DMESG-WARN][233] ([i915#9311]) -> [DMESG-WARN][234] ([i915#1982] / [i915#9311])
[233]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-dg2-1/igt@i915_selftest@mock.html
[234]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-6/igt@i915_selftest@mock.html
* igt@kms_big_fb@4-tiled-8bpp-rotate-90:
- shard-mtlp: [ABORT][235] ([i915#10354]) -> [SKIP][236]
[235]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-mtlp-8/igt@kms_big_fb@4-tiled-8bpp-rotate-90.html
[236]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-mtlp-1/igt@kms_big_fb@4-tiled-8bpp-rotate-90.html
* igt@kms_content_protection@legacy:
- shard-dg2: [SKIP][237] ([i915#7118] / [i915#9424]) -> [TIMEOUT][238] ([i915#7173]) +1 other test timeout
[237]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-dg2-5/igt@kms_content_protection@legacy.html
[238]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-11/igt@kms_content_protection@legacy.html
* igt@kms_content_protection@type1:
- shard-snb: [SKIP][239] -> [INCOMPLETE][240] ([i915#8816])
[239]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-snb1/igt@kms_content_protection@type1.html
[240]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-snb7/igt@kms_content_protection@type1.html
* igt@kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary:
- shard-dg2: [SKIP][241] ([i915#10433] / [i915#3458]) -> [SKIP][242] ([i915#3458])
[241]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary.html
[242]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-5/igt@kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary.html
* igt@kms_frontbuffer_tracking@psr-rgb565-draw-mmap-cpu:
- shard-dg2: [SKIP][243] ([i915#3458]) -> [SKIP][244] ([i915#10433] / [i915#3458]) +4 other tests skip
[243]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-dg2-1/igt@kms_frontbuffer_tracking@psr-rgb565-draw-mmap-cpu.html
[244]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-4/igt@kms_frontbuffer_tracking@psr-rgb565-draw-mmap-cpu.html
* igt@kms_psr@psr2-cursor-blt:
- shard-dg2: [SKIP][245] ([i915#1072] / [i915#9732]) -> [SKIP][246] ([i915#1072] / [i915#9673] / [i915#9732]) +9 other tests skip
[245]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-dg2-1/igt@kms_psr@psr2-cursor-blt.html
[246]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-11/igt@kms_psr@psr2-cursor-blt.html
* igt@kms_rotation_crc@bad-pixel-format:
- shard-dg2: [SKIP][247] ([i915#11131]) -> [SKIP][248] ([i915#11131] / [i915#4235])
[247]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-dg2-1/igt@kms_rotation_crc@bad-pixel-format.html
[248]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-11/igt@kms_rotation_crc@bad-pixel-format.html
* igt@kms_tiled_display@basic-test-pattern:
- shard-glk: [FAIL][249] ([i915#10959]) -> [SKIP][250]
[249]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-glk5/igt@kms_tiled_display@basic-test-pattern.html
[250]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-glk8/igt@kms_tiled_display@basic-test-pattern.html
* igt@perf@non-zero-reason:
- shard-dg2: [FAIL][251] ([i915#7484]) -> [FAIL][252] ([i915#9100]) +1 other test fail
[251]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15429/shard-dg2-8/igt@perf@non-zero-reason.html
[252]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/shard-dg2-6/igt@perf@non-zero-reason.html
[i915#10131]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10131
[i915#10166]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10166
[i915#10307]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10307
[i915#10354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10354
[i915#10433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10433
[i915#10434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10434
[i915#10656]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10656
[i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
[i915#10887]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10887
[i915#10959]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10959
[i915#11131]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11131
[i915#11231]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11231
[i915#11453]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11453
[i915#11520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11520
[i915#11681]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11681
[i915#11713]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11713
[i915#11808]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11808
[i915#11814]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11814
[i915#11815]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11815
[i915#12042]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12042
[i915#12179]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12179
[i915#12193]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12193
[i915#12247]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12247
[i915#1769]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1769
[i915#1825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1825
[i915#1982]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1982
[i915#2122]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2122
[i915#2346]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2346
[i915#2437]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2437
[i915#2527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2527
[i915#2587]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2587
[i915#2672]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2672
[i915#280]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/280
[i915#2842]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2842
[i915#2856]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2856
[i915#3023]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3023
[i915#3281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3281
[i915#3282]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3282
[i915#3297]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3297
[i915#3299]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3299
[i915#3361]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3361
[i915#3458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3458
[i915#3539]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3539
[i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
[i915#3591]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3591
[i915#3638]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3638
[i915#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708
[i915#3742]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3742
[i915#3778]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3778
[i915#3840]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3840
[i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077
[i915#4079]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4083
[i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103
[i915#4213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4213
[i915#4235]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4235
[i915#4270]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4270
[i915#4281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4281
[i915#4349]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4349
[i915#4538]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4538
[i915#4565]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4565
[i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
[i915#4771]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4771
[i915#4812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4812
[i915#4852]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4852
[i915#4854]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4854
[i915#4860]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4860
[i915#4881]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4881
[i915#5190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5190
[i915#5286]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5286
[i915#5289]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5289
[i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354
[i915#5784]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5784
[i915#5956]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5956
[i915#6095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095
[i915#6524]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6524
[i915#6621]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6621
[i915#6880]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6880
[i915#6953]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6953
[i915#7016]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7016
[i915#7118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7118
[i915#7173]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7173
[i915#7178]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7178
[i915#7213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7213
[i915#7276]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7276
[i915#7484]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7484
[i915#7707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7707
[i915#7742]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7742
[i915#7790]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7790
[i915#7828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7828
[i915#79]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/79
[i915#8228]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8228
[i915#8381]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8381
[i915#8399]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8399
[i915#8414]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8414
[i915#8428]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8428
[i915#8555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8555
[i915#8708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8708
[i915#8709]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8709
[i915#8813]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8813
[i915#8816]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8816
[i915#8850]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8850
[i915#9100]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9100
[i915#9196]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9196
[i915#9311]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9311
[i915#9323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9323
[i915#9340]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9340
[i915#9412]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9412
[i915#9423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9423
[i915#9424]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9424
[i915#9519]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9519
[i915#9673]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9673
[i915#9683]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9683
[i915#9685]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9685
[i915#9688]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9688
[i915#9697]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9697
[i915#9723]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9723
[i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
[i915#9781]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9781
[i915#9820]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9820
[i915#9906]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9906
[i915#9917]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9917
[i915#9934]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9934
Build changes
-------------
* Linux: CI_DRM_15429 -> Patchwork_138630v3
CI-20190529: 20190529
CI_DRM_15429: 38e1b615fb395b928e514108e908cd6edf3d34c3 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_8022: 2d82f767a959d58c04ff3876d59d67924208d4ef @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_138630v3: 38e1b615fb395b928e514108e908cd6edf3d34c3 @ git://anongit.freedesktop.org/gfx-ci/linux
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v3/index.html
[-- Attachment #2: Type: text/html, Size: 84201 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v3 1/2] drm/i915/display: Add block_dc6_needed variable into intel_crtc
2024-09-17 17:58 ` Ville Syrjälä
2024-09-17 18:27 ` Ville Syrjälä
@ 2024-09-18 5:53 ` Hogander, Jouni
2024-09-18 10:58 ` Ville Syrjälä
1 sibling, 1 reply; 13+ messages in thread
From: Hogander, Jouni @ 2024-09-18 5:53 UTC (permalink / raw)
To: ville.syrjala@linux.intel.com; +Cc: intel-gfx@lists.freedesktop.org
On Tue, 2024-09-17 at 20:58 +0300, Ville Syrjälä wrote:
> On Tue, Sep 17, 2024 at 09:35:59AM +0300, Jouni Högander wrote:
> > We need to block DC6 entry in case of Panel Replay as enabling VBI
> > doesn't
> > prevent DC6 in case of Panel Replay. This causes problems if user-
> > space is
> > polling for vblank events. For this purpose add new
> > block_dc6_needed
> > variable into intel_crtc. Check if eDP Panel Replay is possible and
> > set the
> > variable accordingly.
> >
> > v3: check that encoder is dp
> > v2: set/clear block_dc6_needed in intel_crtc_vblank_on/off
> >
> > Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
> > ---
> > drivers/gpu/drm/i915/display/intel_crtc.c | 17
> > +++++++++++++++++
> > .../gpu/drm/i915/display/intel_display_types.h | 7 +++++++
> > drivers/gpu/drm/i915/display/intel_psr.c | 1 +
> > 3 files changed, 25 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c
> > b/drivers/gpu/drm/i915/display/intel_crtc.c
> > index aed3853952be8..34a60b5b1e55b 100644
> > --- a/drivers/gpu/drm/i915/display/intel_crtc.c
> > +++ b/drivers/gpu/drm/i915/display/intel_crtc.c
> > @@ -24,6 +24,7 @@
> > #include "intel_display_irq.h"
> > #include "intel_display_trace.h"
> > #include "intel_display_types.h"
> > +#include "intel_dp.h"
> > #include "intel_drrs.h"
> > #include "intel_dsi.h"
> > #include "intel_fifo_underrun.h"
> > @@ -123,6 +124,20 @@ u32 intel_crtc_max_vblank_count(const struct
> > intel_crtc_state *crtc_state)
> > void intel_crtc_vblank_on(const struct intel_crtc_state
> > *crtc_state)
> > {
> > struct intel_crtc *crtc = to_intel_crtc(crtc_state-
> > >uapi.crtc);
> > + struct intel_encoder *encoder;
> > +
> > + for_each_encoder_on_crtc(crtc->base.dev, &crtc->base,
> > encoder) {
> > + struct intel_dp *intel_dp;
> > +
> > + if (!intel_encoder_is_dp(encoder))
> > + continue;
> > +
> > + intel_dp = enc_to_intel_dp(encoder);
> > +
> > + if (intel_dp_is_edp(intel_dp) &&
> > + CAN_PANEL_REPLAY(intel_dp))
> > + crtc->block_dc6_needed = true;
> > + }
>
> This could just a function provided by intel_psr.c so that
> we don't have to to see any of the details.
>
> Is there some reason this isn't simply looking at
> crtc_state->has_panel_replay?
Is there intel_crtc_vblank_off/on cycle always when doing full mode
set? If that is the case, then I think we can rely on crtc_state-
>has_panel_replay: changes in Panel Replay mode always mean full mode
set currently. How about fast mode set? Do we have vblank off/on cycle
there?
Later if we move into activating/de-activating Panel Replay without
full mode set I think we need to do something else. E.g. reference
count I had in previous version was trying to address this. To my
opinion relying on CAN_PANEL_REPLAY could be good enough. That would
cover all cases where blocking is needed. Drawback is that we are
unnecessarily blocking it on certain cases. But that shouldn't matter
as in these cases DC6 is blocked anyways by the HW. One example is
panel supporting Panel Replay, but only PSR2 is allowed and VBI is
enabled. What do you think?
BR,
Jouni Högander
>
> >
> > assert_vblank_disabled(&crtc->base);
> > drm_crtc_set_max_vblank_count(&crtc->base,
> > @@ -150,6 +165,8 @@ void intel_crtc_vblank_off(const struct
> > intel_crtc_state *crtc_state)
> >
> > drm_crtc_vblank_off(&crtc->base);
> > assert_vblank_disabled(&crtc->base);
> > +
> > + crtc->block_dc6_needed = false;
> > }
> >
> > struct intel_crtc_state *intel_crtc_state_alloc(struct intel_crtc
> > *crtc)
> > diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h
> > b/drivers/gpu/drm/i915/display/intel_display_types.h
> > index 000ab373c8879..df0c3eb750809 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> > +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> > @@ -1413,6 +1413,13 @@ struct intel_crtc {
> > #ifdef CONFIG_DEBUG_FS
> > struct intel_pipe_crc pipe_crc;
> > #endif
> > +
> > + /*
> > + * We need to block DC6 entry in case of Panel Replay as
> > enabling VBI doesn't
> > + * prevent DC6 in case of Panel Replay. This causes
> > problems if user-space is
> > + * polling for vblank events.
> > + */
>
> We should point out the fact that panel replay turns the
> link off only while in DC states. Otherwise I'm sure to
> get confused by this again in the future.
>
> > + u8 block_dc6_needed;
>
> That sounds a bit too generic perhaps. block_dc_for_vblank or
> something?
Ok, I will change these.
BR,
Jouni Högander
>
> > };
> >
> > struct intel_plane {
> > diff --git a/drivers/gpu/drm/i915/display/intel_psr.c
> > b/drivers/gpu/drm/i915/display/intel_psr.c
> > index 4f29ac32ff85b..957f470b08fe8 100644
> > --- a/drivers/gpu/drm/i915/display/intel_psr.c
> > +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> > @@ -35,6 +35,7 @@
> > #include "intel_cursor_regs.h"
> > #include "intel_ddi.h"
> > #include "intel_de.h"
> > +#include "intel_display_irq.h"
> > #include "intel_display_types.h"
> > #include "intel_dp.h"
> > #include "intel_dp_aux.h"
> > --
> > 2.34.1
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v3 2/2] drm/i915/display: Prevent DC6 while vblank is enabled for Panel Replay
2024-09-17 18:15 ` Ville Syrjälä
@ 2024-09-18 6:07 ` Hogander, Jouni
0 siblings, 0 replies; 13+ messages in thread
From: Hogander, Jouni @ 2024-09-18 6:07 UTC (permalink / raw)
To: ville.syrjala@linux.intel.com; +Cc: intel-gfx@lists.freedesktop.org
On Tue, 2024-09-17 at 21:15 +0300, Ville Syrjälä wrote:
> On Tue, Sep 17, 2024 at 09:36:00AM +0300, Jouni Högander wrote:
> > We need to block DC6 entry in case of Panel Replay as enabling VBI
> > doesn't
> > prevent DC6 in case of Panel Replay. This causes problems if user-
> > space is
> > polling for vblank events.
> >
> > Fix this by setting target DC state as DC_STATE_EN_UPTO_DC5 when
> > both
> > source and sink are supporting eDP Panel Replay and VBI is enabled.
> >
> > v2:
> > - use READ_ONCE in intel_display_vblank_work
> > - use DC_STATE_DISABLE instead of DC_STATE_EN_UPTO_DC6
> > - use intel_crtc->block_dc6_needed
> >
> > Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/2296
> > Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
> > ---
> > .../gpu/drm/i915/display/intel_display_core.h | 2 ++
> > .../gpu/drm/i915/display/intel_display_irq.c | 28
> > +++++++++++++++++++
> > 2 files changed, 30 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_display_core.h
> > b/drivers/gpu/drm/i915/display/intel_display_core.h
> > index 0a711114ff2b4..0707bc2047931 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display_core.h
> > +++ b/drivers/gpu/drm/i915/display/intel_display_core.h
> > @@ -457,6 +457,8 @@ struct intel_display {
> > /* For i915gm/i945gm vblank irq workaround */
> > u8 vblank_enabled;
> >
> > + struct work_struct vblank_work;
> > +
> > u32 de_irq_mask[I915_MAX_PIPES];
> > u32 pipestat_irq_mask[I915_MAX_PIPES];
> > } irq;
> > diff --git a/drivers/gpu/drm/i915/display/intel_display_irq.c
> > b/drivers/gpu/drm/i915/display/intel_display_irq.c
> > index 8f13f148c73e3..4bdc67e1baa31 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display_irq.c
> > +++ b/drivers/gpu/drm/i915/display/intel_display_irq.c
> > @@ -1361,16 +1361,38 @@ static bool gen11_dsi_configure_te(struct
> > intel_crtc *intel_crtc,
> > return true;
> > }
> >
> > +static void intel_display_vblank_work(struct work_struct *work)
> > +{
> > + struct intel_display *display =
> > + container_of(work, typeof(*display),
> > irq.vblank_work);
> > + struct drm_i915_private *i915 = to_i915(display->drm);
> > + u8 vblank_enabled = READ_ONCE(display->irq.vblank_enabled);
>
> Could be a bool since you don't use the numeric value for anything.
> Or could just not have a local variable since you only use it once
> anyway.
I will change this.
>
> > +
> > + /*
> > + * NOTE: intel_display_power_set_target_dc_state is used
> > only by PSR
> > + * code for DC3CO handling. DC3CO target state is currently
> > disabled in
> > + * PSR code. If DC3CO is taken into use we need take that
> > into account
> > + * here as well.
> > + */
> > + intel_display_power_set_target_dc_state(i915,
> > vblank_enabled ? DC_STATE_DISABLE :
> > + DC_STATE_EN_UPTO_DC
> > 6);
> > +}
> > +
> > int bdw_enable_vblank(struct drm_crtc *_crtc)
> > {
> > struct intel_crtc *crtc = to_intel_crtc(_crtc);
> > + struct intel_display *display = to_intel_display(crtc);
> > struct drm_i915_private *dev_priv = to_i915(crtc-
> > >base.dev);
> > enum pipe pipe = crtc->pipe;
> > unsigned long irqflags;
> > + u8 block_dc6_needed = READ_ONCE(crtc->block_dc6_needed);
>
> This doesn't really need the read once dance IMO since this
> will never change between vblank on/off.
>
> Feels like the introduction of that flag should also be part of
> this patch, and this should be the first patch, and the second
> patch would then just figure out when to set said flag.
Ok, I will change this.
>
> >
> > if (gen11_dsi_configure_te(crtc, true))
> > return 0;
> >
> > + if (display->irq.vblank_enabled++ == 0 && block_dc6_needed)
> > + schedule_work(&display->irq.vblank_work);
> > +
> > spin_lock_irqsave(&dev_priv->irq_lock, irqflags);
> > bdw_enable_pipe_irq(dev_priv, pipe, GEN8_PIPE_VBLANK);
> > spin_unlock_irqrestore(&dev_priv->irq_lock, irqflags);
> > @@ -1436,6 +1458,7 @@ void ilk_disable_vblank(struct drm_crtc
> > *crtc)
> > void bdw_disable_vblank(struct drm_crtc *_crtc)
> > {
> > struct intel_crtc *crtc = to_intel_crtc(_crtc);
> > + struct intel_display *display = to_intel_display(crtc);
> > struct drm_i915_private *dev_priv = to_i915(crtc-
> > >base.dev);
> > enum pipe pipe = crtc->pipe;
> > unsigned long irqflags;
> > @@ -1446,6 +1469,9 @@ void bdw_disable_vblank(struct drm_crtc
> > *_crtc)
> > spin_lock_irqsave(&dev_priv->irq_lock, irqflags);
> > bdw_disable_pipe_irq(dev_priv, pipe, GEN8_PIPE_VBLANK);
> > spin_unlock_irqrestore(&dev_priv->irq_lock, irqflags);
> > +
> > + if (--display->irq.vblank_enabled == 0)
>
> This one seems to be missing the block_dc6_needed check.
Yes, that was left out as in version 2 block_dc6_needed was reference
count. I will add it.
>
> > + schedule_work(&display->irq.vblank_work);
> > }
> >
> > void vlv_display_irq_reset(struct drm_i915_private *dev_priv)
> > @@ -1871,4 +1897,6 @@ void intel_display_irq_init(struct
> > drm_i915_private *i915)
> > i915->display.irq.display_irqs_enabled = false;
> >
> > intel_hotplug_irq_init(i915);
> > +
> > + INIT_WORK(&i915->display.irq.vblank_work,
> > intel_display_vblank_work);
>
> I'd probably also toss in a flush_work() at the end of
> intel_vblank_off() to make sure the work doesn't linger
> past its due date.
Ok, I will add that.
BR,
Jouni Högander
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v3 1/2] drm/i915/display: Add block_dc6_needed variable into intel_crtc
2024-09-18 5:53 ` Hogander, Jouni
@ 2024-09-18 10:58 ` Ville Syrjälä
2024-09-18 21:24 ` Ville Syrjälä
0 siblings, 1 reply; 13+ messages in thread
From: Ville Syrjälä @ 2024-09-18 10:58 UTC (permalink / raw)
To: Hogander, Jouni; +Cc: intel-gfx@lists.freedesktop.org
On Wed, Sep 18, 2024 at 05:53:37AM +0000, Hogander, Jouni wrote:
> On Tue, 2024-09-17 at 20:58 +0300, Ville Syrjälä wrote:
> > On Tue, Sep 17, 2024 at 09:35:59AM +0300, Jouni Högander wrote:
> > > We need to block DC6 entry in case of Panel Replay as enabling VBI
> > > doesn't
> > > prevent DC6 in case of Panel Replay. This causes problems if user-
> > > space is
> > > polling for vblank events. For this purpose add new
> > > block_dc6_needed
> > > variable into intel_crtc. Check if eDP Panel Replay is possible and
> > > set the
> > > variable accordingly.
> > >
> > > v3: check that encoder is dp
> > > v2: set/clear block_dc6_needed in intel_crtc_vblank_on/off
> > >
> > > Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
> > > ---
> > > drivers/gpu/drm/i915/display/intel_crtc.c | 17
> > > +++++++++++++++++
> > > .../gpu/drm/i915/display/intel_display_types.h | 7 +++++++
> > > drivers/gpu/drm/i915/display/intel_psr.c | 1 +
> > > 3 files changed, 25 insertions(+)
> > >
> > > diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c
> > > b/drivers/gpu/drm/i915/display/intel_crtc.c
> > > index aed3853952be8..34a60b5b1e55b 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_crtc.c
> > > +++ b/drivers/gpu/drm/i915/display/intel_crtc.c
> > > @@ -24,6 +24,7 @@
> > > #include "intel_display_irq.h"
> > > #include "intel_display_trace.h"
> > > #include "intel_display_types.h"
> > > +#include "intel_dp.h"
> > > #include "intel_drrs.h"
> > > #include "intel_dsi.h"
> > > #include "intel_fifo_underrun.h"
> > > @@ -123,6 +124,20 @@ u32 intel_crtc_max_vblank_count(const struct
> > > intel_crtc_state *crtc_state)
> > > void intel_crtc_vblank_on(const struct intel_crtc_state
> > > *crtc_state)
> > > {
> > > struct intel_crtc *crtc = to_intel_crtc(crtc_state-
> > > >uapi.crtc);
> > > + struct intel_encoder *encoder;
> > > +
> > > + for_each_encoder_on_crtc(crtc->base.dev, &crtc->base,
> > > encoder) {
> > > + struct intel_dp *intel_dp;
> > > +
> > > + if (!intel_encoder_is_dp(encoder))
> > > + continue;
> > > +
> > > + intel_dp = enc_to_intel_dp(encoder);
> > > +
> > > + if (intel_dp_is_edp(intel_dp) &&
> > > + CAN_PANEL_REPLAY(intel_dp))
> > > + crtc->block_dc6_needed = true;
> > > + }
> >
> > This could just a function provided by intel_psr.c so that
> > we don't have to to see any of the details.
> >
> > Is there some reason this isn't simply looking at
> > crtc_state->has_panel_replay?
>
> Is there intel_crtc_vblank_off/on cycle always when doing full mode
> set? If that is the case, then I think we can rely on crtc_state-
> >has_panel_replay: changes in Panel Replay mode always mean full mode
> set currently. How about fast mode set? Do we have vblank off/on cycle
> there?
No. vblank_off()/on() is only around full modesets.
>
> Later if we move into activating/de-activating Panel Replay without
> full mode set I think we need to do something else.
I think we need a clear separation of the "logically enabled/possible"
vs. "currently active" states of PSR and panel replay. With that
we can just always enable this workaround whenever panel replay
was selected during the full modeset. Fastsets/plane updates
can then just activate/deactivate panel replay/PSR (*) as needed
due to more dynamic constraints (eg. planes going on/off) without
having to worry about this stuff.
(*) the activate/deactive should only toggle the single enable
bit in the appropriate registers, nothing more
> E.g. reference
> count I had in previous version was trying to address this. To my
> opinion relying on CAN_PANEL_REPLAY could be good enough. That would
> cover all cases where blocking is needed. Drawback is that we are
> unnecessarily blocking it on certain cases. But that shouldn't matter
> as in these cases DC6 is blocked anyways by the HW. One example is
> panel supporting Panel Replay, but only PSR2 is allowed and VBI is
> enabled. What do you think?
>
> BR,
>
> Jouni Högander
>
> >
> > >
> > > assert_vblank_disabled(&crtc->base);
> > > drm_crtc_set_max_vblank_count(&crtc->base,
> > > @@ -150,6 +165,8 @@ void intel_crtc_vblank_off(const struct
> > > intel_crtc_state *crtc_state)
> > >
> > > drm_crtc_vblank_off(&crtc->base);
> > > assert_vblank_disabled(&crtc->base);
> > > +
> > > + crtc->block_dc6_needed = false;
> > > }
> > >
> > > struct intel_crtc_state *intel_crtc_state_alloc(struct intel_crtc
> > > *crtc)
> > > diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h
> > > b/drivers/gpu/drm/i915/display/intel_display_types.h
> > > index 000ab373c8879..df0c3eb750809 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> > > +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> > > @@ -1413,6 +1413,13 @@ struct intel_crtc {
> > > #ifdef CONFIG_DEBUG_FS
> > > struct intel_pipe_crc pipe_crc;
> > > #endif
> > > +
> > > + /*
> > > + * We need to block DC6 entry in case of Panel Replay as
> > > enabling VBI doesn't
> > > + * prevent DC6 in case of Panel Replay. This causes
> > > problems if user-space is
> > > + * polling for vblank events.
> > > + */
> >
> > We should point out the fact that panel replay turns the
> > link off only while in DC states. Otherwise I'm sure to
> > get confused by this again in the future.
> >
> > > + u8 block_dc6_needed;
> >
> > That sounds a bit too generic perhaps. block_dc_for_vblank or
> > something?
>
> Ok, I will change these.
>
> BR,
>
> Jouni Högander
>
> >
> > > };
> > >
> > > struct intel_plane {
> > > diff --git a/drivers/gpu/drm/i915/display/intel_psr.c
> > > b/drivers/gpu/drm/i915/display/intel_psr.c
> > > index 4f29ac32ff85b..957f470b08fe8 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_psr.c
> > > +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> > > @@ -35,6 +35,7 @@
> > > #include "intel_cursor_regs.h"
> > > #include "intel_ddi.h"
> > > #include "intel_de.h"
> > > +#include "intel_display_irq.h"
> > > #include "intel_display_types.h"
> > > #include "intel_dp.h"
> > > #include "intel_dp_aux.h"
> > > --
> > > 2.34.1
> >
>
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v3 1/2] drm/i915/display: Add block_dc6_needed variable into intel_crtc
2024-09-18 10:58 ` Ville Syrjälä
@ 2024-09-18 21:24 ` Ville Syrjälä
0 siblings, 0 replies; 13+ messages in thread
From: Ville Syrjälä @ 2024-09-18 21:24 UTC (permalink / raw)
To: Hogander, Jouni; +Cc: intel-gfx@lists.freedesktop.org
On Wed, Sep 18, 2024 at 01:58:44PM +0300, Ville Syrjälä wrote:
> On Wed, Sep 18, 2024 at 05:53:37AM +0000, Hogander, Jouni wrote:
> > On Tue, 2024-09-17 at 20:58 +0300, Ville Syrjälä wrote:
> > > On Tue, Sep 17, 2024 at 09:35:59AM +0300, Jouni Högander wrote:
> > > > We need to block DC6 entry in case of Panel Replay as enabling VBI
> > > > doesn't
> > > > prevent DC6 in case of Panel Replay. This causes problems if user-
> > > > space is
> > > > polling for vblank events. For this purpose add new
> > > > block_dc6_needed
> > > > variable into intel_crtc. Check if eDP Panel Replay is possible and
> > > > set the
> > > > variable accordingly.
> > > >
> > > > v3: check that encoder is dp
> > > > v2: set/clear block_dc6_needed in intel_crtc_vblank_on/off
> > > >
> > > > Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
> > > > ---
> > > > drivers/gpu/drm/i915/display/intel_crtc.c | 17
> > > > +++++++++++++++++
> > > > .../gpu/drm/i915/display/intel_display_types.h | 7 +++++++
> > > > drivers/gpu/drm/i915/display/intel_psr.c | 1 +
> > > > 3 files changed, 25 insertions(+)
> > > >
> > > > diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c
> > > > b/drivers/gpu/drm/i915/display/intel_crtc.c
> > > > index aed3853952be8..34a60b5b1e55b 100644
> > > > --- a/drivers/gpu/drm/i915/display/intel_crtc.c
> > > > +++ b/drivers/gpu/drm/i915/display/intel_crtc.c
> > > > @@ -24,6 +24,7 @@
> > > > #include "intel_display_irq.h"
> > > > #include "intel_display_trace.h"
> > > > #include "intel_display_types.h"
> > > > +#include "intel_dp.h"
> > > > #include "intel_drrs.h"
> > > > #include "intel_dsi.h"
> > > > #include "intel_fifo_underrun.h"
> > > > @@ -123,6 +124,20 @@ u32 intel_crtc_max_vblank_count(const struct
> > > > intel_crtc_state *crtc_state)
> > > > void intel_crtc_vblank_on(const struct intel_crtc_state
> > > > *crtc_state)
> > > > {
> > > > struct intel_crtc *crtc = to_intel_crtc(crtc_state-
> > > > >uapi.crtc);
> > > > + struct intel_encoder *encoder;
> > > > +
> > > > + for_each_encoder_on_crtc(crtc->base.dev, &crtc->base,
> > > > encoder) {
> > > > + struct intel_dp *intel_dp;
> > > > +
> > > > + if (!intel_encoder_is_dp(encoder))
> > > > + continue;
> > > > +
> > > > + intel_dp = enc_to_intel_dp(encoder);
> > > > +
> > > > + if (intel_dp_is_edp(intel_dp) &&
> > > > + CAN_PANEL_REPLAY(intel_dp))
> > > > + crtc->block_dc6_needed = true;
> > > > + }
> > >
> > > This could just a function provided by intel_psr.c so that
> > > we don't have to to see any of the details.
> > >
> > > Is there some reason this isn't simply looking at
> > > crtc_state->has_panel_replay?
> >
> > Is there intel_crtc_vblank_off/on cycle always when doing full mode
> > set? If that is the case, then I think we can rely on crtc_state-
> > >has_panel_replay: changes in Panel Replay mode always mean full mode
> > set currently. How about fast mode set? Do we have vblank off/on cycle
> > there?
>
> No. vblank_off()/on() is only around full modesets.
>
> >
> > Later if we move into activating/de-activating Panel Replay without
> > full mode set I think we need to do something else.
>
> I think we need a clear separation of the "logically enabled/possible"
> vs. "currently active" states of PSR and panel replay. With that
> we can just always enable this workaround whenever panel replay
> was selected during the full modeset. Fastsets/plane updates
> can then just activate/deactivate panel replay/PSR (*) as needed
> due to more dynamic constraints (eg. planes going on/off) without
> having to worry about this stuff.
>
> (*) the activate/deactive should only toggle the single enable
> bit in the appropriate registers, nothing more
Just to clarify, I'm fine with going with this logic for now
if the has_panel_replay/etc isn't suitable rigth now (as in
can change during fastsets/etc), as long as it's neatly
buried in the psr code.
So if this code reads something along the lines of:
crtc->block_dc_for_vblank = intel_psr_block_dc_for_vblank(...);
then I can just turn a blind eye to the details
and keep on reading past it ;)
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2024-09-18 21:24 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-17 6:35 [PATCH v3 0/2] Block DC6 on Vblank enable for Panel Replay Jouni Högander
2024-09-17 6:35 ` [PATCH v3 1/2] drm/i915/display: Add block_dc6_needed variable into intel_crtc Jouni Högander
2024-09-17 17:58 ` Ville Syrjälä
2024-09-17 18:27 ` Ville Syrjälä
2024-09-18 5:53 ` Hogander, Jouni
2024-09-18 10:58 ` Ville Syrjälä
2024-09-18 21:24 ` Ville Syrjälä
2024-09-17 6:36 ` [PATCH v3 2/2] drm/i915/display: Prevent DC6 while vblank is enabled for Panel Replay Jouni Högander
2024-09-17 18:15 ` Ville Syrjälä
2024-09-18 6:07 ` Hogander, Jouni
2024-09-17 11:32 ` ✗ Fi.CI.SPARSE: warning for Block DC6 on Vblank enable for Panel Replay (rev3) Patchwork
2024-09-17 11:52 ` ✓ Fi.CI.BAT: success " Patchwork
2024-09-18 5:49 ` ✓ Fi.CI.IGT: " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox