* [PATCH v4 0/2] Block DC6 on Vblank enable for Panel Replay
@ 2024-09-19 12:37 Jouni Högander
2024-09-19 12:37 ` [PATCH v4 1/2] drm/i915/psr: Add intel_psr_needs_block_dc_vblank for blocking dc entry Jouni Högander
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Jouni Högander @ 2024-09-19 12:37 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.
v4:
- do flush_work for vblank_work on intel_crtc_vblank_off
- no need to use READ_ONCE in bdw_enable_vblank
- check crtc->block_dc_for_vblank in bdw_disable_vblank as well
- move adding block_dc_for_vblank into patch 2.
- patch 1. scope changed
v3: check that encoder is dp
v2: set/clear block_dc6_needed in intel_crtc_vblank_on/off
Jouni Högander (2):
drm/i915/psr: Add intel_psr_needs_block_dc_vblank for blocking dc
entry
drm/i915/display: Prevent DC6 while vblank is enabled for Panel Replay
drivers/gpu/drm/i915/display/intel_crtc.c | 7 +++++
.../gpu/drm/i915/display/intel_display_core.h | 2 ++
.../gpu/drm/i915/display/intel_display_irq.c | 27 ++++++++++++++++
.../drm/i915/display/intel_display_types.h | 2 ++
drivers/gpu/drm/i915/display/intel_psr.c | 31 +++++++++++++++++++
drivers/gpu/drm/i915/display/intel_psr.h | 1 +
6 files changed, 70 insertions(+)
--
2.34.1
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v4 1/2] drm/i915/psr: Add intel_psr_needs_block_dc_vblank for blocking dc entry
2024-09-19 12:37 [PATCH v4 0/2] Block DC6 on Vblank enable for Panel Replay Jouni Högander
@ 2024-09-19 12:37 ` Jouni Högander
2024-09-19 12:37 ` [PATCH v4 2/2] drm/i915/display: Prevent DC6 while vblank is enabled for Panel Replay Jouni Högander
` (2 subsequent siblings)
3 siblings, 0 replies; 6+ messages in thread
From: Jouni Högander @ 2024-09-19 12:37 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 it in case of Panel Replay. Panel Replay switches main link off on
DC entry. This means vblank interrupts are not fired and is a problem if
user-space is polling for vblank events. For this purpose add new function
to query need for dc entry blocking on.
Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
---
drivers/gpu/drm/i915/display/intel_psr.c | 31 ++++++++++++++++++++++++
drivers/gpu/drm/i915/display/intel_psr.h | 1 +
2 files changed, 32 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
index 5ed446f1e3bab..a25039c70be91 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"
@@ -2227,6 +2228,36 @@ void intel_psr_resume(struct intel_dp *intel_dp)
mutex_unlock(&psr->lock);
}
+/**
+ * intel_psr_needs_block_dc_vblank - Check if block dc entry is needed
+ * @crtc_state: CRTC status
+ *
+ * We need to block DC6 entry in case of Panel Replay as enabling VBI doesn't
+ * prevent it in case of Panel Replay. Panel Replay switches main link off on
+ * DC entry. This means vblank interrupts are not fired and is a problem if
+ * user-space is polling for vblank events.
+ */
+bool intel_psr_needs_block_dc_vblank(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))
+ return true;
+ }
+
+ return false;
+}
+
static u32 man_trk_ctl_enable_bit_get(struct intel_display *display)
{
struct drm_i915_private *dev_priv = to_i915(display->drm);
diff --git a/drivers/gpu/drm/i915/display/intel_psr.h b/drivers/gpu/drm/i915/display/intel_psr.h
index 6eb5f15f674fa..5f26f61f82aa9 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.h
+++ b/drivers/gpu/drm/i915/display/intel_psr.h
@@ -58,6 +58,7 @@ int intel_psr2_sel_fetch_update(struct intel_atomic_state *state,
void intel_psr2_program_trans_man_trk_ctl(const struct intel_crtc_state *crtc_state);
void intel_psr_pause(struct intel_dp *intel_dp);
void intel_psr_resume(struct intel_dp *intel_dp);
+bool intel_psr_needs_block_dc_vblank(const struct intel_crtc_state *crtc_state);
void intel_psr_lock(const struct intel_crtc_state *crtc_state);
void intel_psr_unlock(const struct intel_crtc_state *crtc_state);
--
2.34.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v4 2/2] drm/i915/display: Prevent DC6 while vblank is enabled for Panel Replay
2024-09-19 12:37 [PATCH v4 0/2] Block DC6 on Vblank enable for Panel Replay Jouni Högander
2024-09-19 12:37 ` [PATCH v4 1/2] drm/i915/psr: Add intel_psr_needs_block_dc_vblank for blocking dc entry Jouni Högander
@ 2024-09-19 12:37 ` Jouni Högander
2024-09-19 13:39 ` Ville Syrjälä
2024-09-20 4:01 ` ✗ Fi.CI.SPARSE: warning for Block DC6 on Vblank enable for Panel Replay (rev4) Patchwork
2024-09-20 4:02 ` ✓ Fi.CI.BAT: success " Patchwork
3 siblings, 1 reply; 6+ messages in thread
From: Jouni Högander @ 2024-09-19 12:37 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.
v3:
- do flush_work for vblank_work on intel_crtc_vblank_off
- no need to use READ_ONCE in bdw_enable_vblank
- check crtc->block_dc_for_vblank in bdw_disable_vblank as well
- move adding block_dc_for_vblank into this patch
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>
---
drivers/gpu/drm/i915/display/intel_crtc.c | 7 +++++
.../gpu/drm/i915/display/intel_display_core.h | 2 ++
.../gpu/drm/i915/display/intel_display_irq.c | 27 +++++++++++++++++++
.../drm/i915/display/intel_display_types.h | 2 ++
4 files changed, 38 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c b/drivers/gpu/drm/i915/display/intel_crtc.c
index f95d169fc324a..315d3f1230846 100644
--- a/drivers/gpu/drm/i915/display/intel_crtc.c
+++ b/drivers/gpu/drm/i915/display/intel_crtc.c
@@ -124,6 +124,8 @@ void intel_crtc_vblank_on(const struct intel_crtc_state *crtc_state)
{
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
+ crtc->block_dc_for_vblank = intel_psr_needs_block_dc_vblank(crtc_state);
+
assert_vblank_disabled(&crtc->base);
drm_crtc_set_max_vblank_count(&crtc->base,
intel_crtc_max_vblank_count(crtc_state));
@@ -140,6 +142,7 @@ void intel_crtc_vblank_on(const struct intel_crtc_state *crtc_state)
void intel_crtc_vblank_off(const struct intel_crtc_state *crtc_state)
{
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
+ struct intel_display *display = to_intel_display(crtc);
/*
* Should really happen exactly when we disable the pipe
@@ -150,6 +153,10 @@ 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_dc_for_vblank = false;
+
+ flush_work(&display->irq.vblank_work);
}
struct intel_crtc_state *intel_crtc_state_alloc(struct intel_crtc *crtc)
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 b830756124c32..03428f92abd82 100644
--- a/drivers/gpu/drm/i915/display/intel_display_irq.c
+++ b/drivers/gpu/drm/i915/display/intel_display_irq.c
@@ -1361,9 +1361,27 @@ 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;
@@ -1371,6 +1389,9 @@ int bdw_enable_vblank(struct drm_crtc *_crtc)
if (gen11_dsi_configure_te(crtc, true))
return 0;
+ if (display->irq.vblank_enabled++ == 0 && crtc->block_dc_for_vblank)
+ 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 +1457,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 +1468,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 && crtc->block_dc_for_vblank)
+ schedule_work(&display->irq.vblank_work);
}
void vlv_display_irq_reset(struct drm_i915_private *dev_priv)
@@ -1882,4 +1907,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);
}
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index 000ab373c8879..245c1381b455f 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -1413,6 +1413,8 @@ struct intel_crtc {
#ifdef CONFIG_DEBUG_FS
struct intel_pipe_crc pipe_crc;
#endif
+
+ u8 block_dc_for_vblank;
};
struct intel_plane {
--
2.34.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v4 2/2] drm/i915/display: Prevent DC6 while vblank is enabled for Panel Replay
2024-09-19 12:37 ` [PATCH v4 2/2] drm/i915/display: Prevent DC6 while vblank is enabled for Panel Replay Jouni Högander
@ 2024-09-19 13:39 ` Ville Syrjälä
0 siblings, 0 replies; 6+ messages in thread
From: Ville Syrjälä @ 2024-09-19 13:39 UTC (permalink / raw)
To: Jouni Högander; +Cc: intel-gfx
On Thu, Sep 19, 2024 at 03:37:25PM +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.
>
> v3:
> - do flush_work for vblank_work on intel_crtc_vblank_off
> - no need to use READ_ONCE in bdw_enable_vblank
> - check crtc->block_dc_for_vblank in bdw_disable_vblank as well
> - move adding block_dc_for_vblank into this patch
> 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>
> ---
> drivers/gpu/drm/i915/display/intel_crtc.c | 7 +++++
> .../gpu/drm/i915/display/intel_display_core.h | 2 ++
> .../gpu/drm/i915/display/intel_display_irq.c | 27 +++++++++++++++++++
> .../drm/i915/display/intel_display_types.h | 2 ++
> 4 files changed, 38 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c b/drivers/gpu/drm/i915/display/intel_crtc.c
> index f95d169fc324a..315d3f1230846 100644
> --- a/drivers/gpu/drm/i915/display/intel_crtc.c
> +++ b/drivers/gpu/drm/i915/display/intel_crtc.c
> @@ -124,6 +124,8 @@ void intel_crtc_vblank_on(const struct intel_crtc_state *crtc_state)
> {
> struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>
> + crtc->block_dc_for_vblank = intel_psr_needs_block_dc_vblank(crtc_state);
> +
> assert_vblank_disabled(&crtc->base);
> drm_crtc_set_max_vblank_count(&crtc->base,
> intel_crtc_max_vblank_count(crtc_state));
> @@ -140,6 +142,7 @@ void intel_crtc_vblank_on(const struct intel_crtc_state *crtc_state)
> void intel_crtc_vblank_off(const struct intel_crtc_state *crtc_state)
> {
> struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> + struct intel_display *display = to_intel_display(crtc);
>
> /*
> * Should really happen exactly when we disable the pipe
> @@ -150,6 +153,10 @@ 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_dc_for_vblank = false;
> +
> + flush_work(&display->irq.vblank_work);
> }
>
> struct intel_crtc_state *intel_crtc_state_alloc(struct intel_crtc *crtc)
> 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;
Maybe "vblank_dc_work" or something so we don't get too confused
what this does?
> +
> 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 b830756124c32..03428f92abd82 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_irq.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_irq.c
> @@ -1361,9 +1361,27 @@ 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;
> @@ -1371,6 +1389,9 @@ int bdw_enable_vblank(struct drm_crtc *_crtc)
> if (gen11_dsi_configure_te(crtc, true))
> return 0;
>
> + if (display->irq.vblank_enabled++ == 0 && crtc->block_dc_for_vblank)
> + 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 +1457,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 +1468,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 && crtc->block_dc_for_vblank)
> + schedule_work(&display->irq.vblank_work);
> }
>
> void vlv_display_irq_reset(struct drm_i915_private *dev_priv)
> @@ -1882,4 +1907,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);
> }
> diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
> index 000ab373c8879..245c1381b455f 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> @@ -1413,6 +1413,8 @@ struct intel_crtc {
> #ifdef CONFIG_DEBUG_FS
> struct intel_pipe_crc pipe_crc;
> #endif
> +
> + u8 block_dc_for_vblank;
Can be 'bool'
Apart from those minor issues this looks good to me. Series is
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> };
>
> struct intel_plane {
> --
> 2.34.1
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 6+ messages in thread
* ✗ Fi.CI.SPARSE: warning for Block DC6 on Vblank enable for Panel Replay (rev4)
2024-09-19 12:37 [PATCH v4 0/2] Block DC6 on Vblank enable for Panel Replay Jouni Högander
2024-09-19 12:37 ` [PATCH v4 1/2] drm/i915/psr: Add intel_psr_needs_block_dc_vblank for blocking dc entry Jouni Högander
2024-09-19 12:37 ` [PATCH v4 2/2] drm/i915/display: Prevent DC6 while vblank is enabled for Panel Replay Jouni Högander
@ 2024-09-20 4:01 ` Patchwork
2024-09-20 4:02 ` ✓ Fi.CI.BAT: success " Patchwork
3 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2024-09-20 4:01 UTC (permalink / raw)
To: Hogander, Jouni; +Cc: intel-gfx
== Series Details ==
Series: Block DC6 on Vblank enable for Panel Replay (rev4)
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] 6+ messages in thread
* ✓ Fi.CI.BAT: success for Block DC6 on Vblank enable for Panel Replay (rev4)
2024-09-19 12:37 [PATCH v4 0/2] Block DC6 on Vblank enable for Panel Replay Jouni Högander
` (2 preceding siblings ...)
2024-09-20 4:01 ` ✗ Fi.CI.SPARSE: warning for Block DC6 on Vblank enable for Panel Replay (rev4) Patchwork
@ 2024-09-20 4:02 ` Patchwork
3 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2024-09-20 4:02 UTC (permalink / raw)
To: Hogander, Jouni; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 7257 bytes --]
== Series Details ==
Series: Block DC6 on Vblank enable for Panel Replay (rev4)
URL : https://patchwork.freedesktop.org/series/138630/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_15440 -> Patchwork_138630v4
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v4/index.html
Participating hosts (39 -> 35)
------------------------------
Missing (4): fi-kbl-8809g bat-jsl-1 fi-snb-2520m fi-elk-e7500
Known issues
------------
Here are the changes found in Patchwork_138630v4 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@fbdev@read:
- bat-arls-1: [PASS][1] -> [DMESG-FAIL][2] ([i915#12102])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15440/bat-arls-1/igt@fbdev@read.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v4/bat-arls-1/igt@fbdev@read.html
* igt@i915_selftest@live:
- bat-arls-1: [PASS][3] -> [DMESG-WARN][4] ([i915#10341] / [i915#12133])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15440/bat-arls-1/igt@i915_selftest@live.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v4/bat-arls-1/igt@i915_selftest@live.html
* igt@i915_selftest@live@hangcheck:
- bat-arls-1: [PASS][5] -> [DMESG-WARN][6] ([i915#11349])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15440/bat-arls-1/igt@i915_selftest@live@hangcheck.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v4/bat-arls-1/igt@i915_selftest@live@hangcheck.html
#### Possible fixes ####
* igt@fbdev@info:
- bat-arls-1: [DMESG-WARN][7] ([i915#12102]) -> [PASS][8]
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15440/bat-arls-1/igt@fbdev@info.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v4/bat-arls-1/igt@fbdev@info.html
* igt@i915_module_load@reload:
- fi-kbl-7567u: [DMESG-WARN][9] ([i915#180] / [i915#1982] / [i915#9925]) -> [PASS][10]
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15440/fi-kbl-7567u/igt@i915_module_load@reload.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v4/fi-kbl-7567u/igt@i915_module_load@reload.html
* igt@i915_pm_rpm@module-reload:
- fi-kbl-7567u: [DMESG-WARN][11] ([i915#11621] / [i915#180] / [i915#1982] / [i915#9925]) -> [PASS][12]
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15440/fi-kbl-7567u/igt@i915_pm_rpm@module-reload.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v4/fi-kbl-7567u/igt@i915_pm_rpm@module-reload.html
* igt@i915_selftest@live:
- bat-mtlp-6: [ABORT][13] ([i915#12061]) -> [PASS][14] +1 other test pass
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15440/bat-mtlp-6/igt@i915_selftest@live.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v4/bat-mtlp-6/igt@i915_selftest@live.html
* igt@i915_selftest@live@requests:
- bat-apl-1: [DMESG-WARN][15] ([i915#11621]) -> [PASS][16] +79 other tests pass
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15440/bat-apl-1/igt@i915_selftest@live@requests.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v4/bat-apl-1/igt@i915_selftest@live@requests.html
* igt@i915_selftest@live@sanitycheck:
- fi-kbl-7567u: [DMESG-WARN][17] ([i915#11621]) -> [PASS][18] +37 other tests pass
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15440/fi-kbl-7567u/igt@i915_selftest@live@sanitycheck.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v4/fi-kbl-7567u/igt@i915_selftest@live@sanitycheck.html
* igt@kms_busy@basic@flip:
- bat-apl-1: [DMESG-WARN][19] ([i915#180] / [i915#1982]) -> [PASS][20] +2 other tests pass
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15440/bat-apl-1/igt@kms_busy@basic@flip.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v4/bat-apl-1/igt@kms_busy@basic@flip.html
* igt@kms_flip@basic-flip-vs-modeset@b-dp1:
- bat-apl-1: [DMESG-WARN][21] ([i915#11621] / [i915#180]) -> [PASS][22] +33 other tests pass
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15440/bat-apl-1/igt@kms_flip@basic-flip-vs-modeset@b-dp1.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v4/bat-apl-1/igt@kms_flip@basic-flip-vs-modeset@b-dp1.html
* igt@kms_flip@basic-flip-vs-wf_vblank@a-dp1:
- bat-apl-1: [DMESG-WARN][23] ([i915#11621] / [i915#180] / [i915#1982]) -> [PASS][24]
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15440/bat-apl-1/igt@kms_flip@basic-flip-vs-wf_vblank@a-dp1.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v4/bat-apl-1/igt@kms_flip@basic-flip-vs-wf_vblank@a-dp1.html
* igt@kms_pipe_crc_basic@read-crc-frame-sequence:
- bat-apl-1: [DMESG-WARN][25] ([i915#180]) -> [PASS][26] +11 other tests pass
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15440/bat-apl-1/igt@kms_pipe_crc_basic@read-crc-frame-sequence.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v4/bat-apl-1/igt@kms_pipe_crc_basic@read-crc-frame-sequence.html
#### Warnings ####
* igt@i915_selftest@live:
- bat-arls-5: [DMESG-WARN][27] ([i915#10341] / [i915#12133]) -> [ABORT][28] ([i915#12061] / [i915#12133])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15440/bat-arls-5/igt@i915_selftest@live.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v4/bat-arls-5/igt@i915_selftest@live.html
* igt@i915_selftest@live@workarounds:
- bat-arls-5: [DMESG-WARN][29] ([i915#10341] / [i915#11637]) -> [ABORT][30] ([i915#12061])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15440/bat-arls-5/igt@i915_selftest@live@workarounds.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v4/bat-arls-5/igt@i915_selftest@live@workarounds.html
[i915#10341]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10341
[i915#11349]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11349
[i915#11621]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11621
[i915#11637]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11637
[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#180]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/180
[i915#1982]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1982
[i915#9925]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9925
Build changes
-------------
* Linux: CI_DRM_15440 -> Patchwork_138630v4
CI-20190529: 20190529
CI_DRM_15440: d4340c1de6d417c7b3edac187c3af011b146701a @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_8028: 8028
Patchwork_138630v4: d4340c1de6d417c7b3edac187c3af011b146701a @ git://anongit.freedesktop.org/gfx-ci/linux
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138630v4/index.html
[-- Attachment #2: Type: text/html, Size: 9703 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-09-20 4:02 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-19 12:37 [PATCH v4 0/2] Block DC6 on Vblank enable for Panel Replay Jouni Högander
2024-09-19 12:37 ` [PATCH v4 1/2] drm/i915/psr: Add intel_psr_needs_block_dc_vblank for blocking dc entry Jouni Högander
2024-09-19 12:37 ` [PATCH v4 2/2] drm/i915/display: Prevent DC6 while vblank is enabled for Panel Replay Jouni Högander
2024-09-19 13:39 ` Ville Syrjälä
2024-09-20 4:01 ` ✗ Fi.CI.SPARSE: warning for Block DC6 on Vblank enable for Panel Replay (rev4) Patchwork
2024-09-20 4:02 ` ✓ Fi.CI.BAT: success " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox