Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-gfx] [PATCH 1/6] drm/i915/rkl: Disable PSR2
@ 2020-05-26 22:14 José Roberto de Souza
  2020-05-26 22:14 ` [Intel-gfx] [PATCH 2/6] drm/i915: Add plane damage clips property José Roberto de Souza
                   ` (7 more replies)
  0 siblings, 8 replies; 28+ messages in thread
From: José Roberto de Souza @ 2020-05-26 22:14 UTC (permalink / raw)
  To: intel-gfx; +Cc: Dhinakaran Pandiyan

RKL doesn't have PSR2 HW tracking, it was replaced by software/manual
tracking.  The driver is required to track the areas that needs update
and program hardware to send selective updates.

So until the software tracking is implemented, PSR2 needs to be disabled
for platforms without PSR2 HW tracking.

This is part of RKL enabling patches, just cherry-picking here as it
is needed.

BSpec: 50422
BSpec: 50424

Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
---
 drivers/gpu/drm/i915/display/intel_psr.c | 15 +++++++++++++++
 drivers/gpu/drm/i915/i915_drv.h          |  2 ++
 drivers/gpu/drm/i915/i915_pci.c          |  2 ++
 drivers/gpu/drm/i915/intel_device_info.h |  1 +
 4 files changed, 20 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
index b7a2c102648a..714c590b39f5 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -646,6 +646,21 @@ static bool intel_psr2_config_valid(struct intel_dp *intel_dp,
 		return false;
 	}
 
+	/*
+	 * Some platforms lack PSR2 HW tracking and instead require manual
+	 * tracking by software.  In this case, the driver is required to track
+	 * the areas that need updates and program hardware to send selective
+	 * updates.
+	 *
+	 * So until the software tracking is implemented, PSR2 needs to be
+	 * disabled for platforms without PSR2 HW tracking.
+	 */
+	if (!HAS_PSR_HW_TRACKING(dev_priv)) {
+		drm_dbg_kms(&dev_priv->drm,
+			    "No PSR2 HW tracking in the platform\n");
+		return false;
+	}
+
 	/*
 	 * DSC and PSR2 cannot be enabled simultaneously. If a requested
 	 * resolution requires DSC to be enabled, priority is given to DSC
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 98f2c448cd92..146bfd276ce7 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1632,6 +1632,8 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915,
 #define HAS_DDI(dev_priv)		 (INTEL_INFO(dev_priv)->display.has_ddi)
 #define HAS_FPGA_DBG_UNCLAIMED(dev_priv) (INTEL_INFO(dev_priv)->has_fpga_dbg)
 #define HAS_PSR(dev_priv)		 (INTEL_INFO(dev_priv)->display.has_psr)
+#define HAS_PSR_HW_TRACKING(dev_priv) \
+	(INTEL_INFO(dev_priv)->display.has_psr_hw_tracking)
 #define HAS_TRANSCODER(dev_priv, trans)	 ((INTEL_INFO(dev_priv)->cpu_transcoder_mask & BIT(trans)) != 0)
 
 #define HAS_RC6(dev_priv)		 (INTEL_INFO(dev_priv)->has_rc6)
diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
index 7e3252fbad8e..709e857a3983 100644
--- a/drivers/gpu/drm/i915/i915_pci.c
+++ b/drivers/gpu/drm/i915/i915_pci.c
@@ -536,6 +536,7 @@ static const struct intel_device_info vlv_info = {
 	.display.has_ddi = 1, \
 	.has_fpga_dbg = 1, \
 	.display.has_psr = 1, \
+	.display.has_psr_hw_tracking = 1, \
 	.display.has_dp_mst = 1, \
 	.has_rc6p = 0 /* RC6p removed-by HSW */, \
 	HSW_PIPE_OFFSETS, \
@@ -690,6 +691,7 @@ static const struct intel_device_info skl_gt4_info = {
 	.display.has_fbc = 1, \
 	.display.has_hdcp = 1, \
 	.display.has_psr = 1, \
+	.display.has_psr_hw_tracking = 1, \
 	.has_runtime_pm = 1, \
 	.display.has_csr = 1, \
 	.has_rc6 = 1, \
diff --git a/drivers/gpu/drm/i915/intel_device_info.h b/drivers/gpu/drm/i915/intel_device_info.h
index c912acd06109..1ada48ef517c 100644
--- a/drivers/gpu/drm/i915/intel_device_info.h
+++ b/drivers/gpu/drm/i915/intel_device_info.h
@@ -147,6 +147,7 @@ enum intel_ppgtt_type {
 	func(has_modular_fia); \
 	func(has_overlay); \
 	func(has_psr); \
+	func(has_psr_hw_tracking); \
 	func(overlay_needs_physical); \
 	func(supports_tv);
 
-- 
2.26.2

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2020-06-25 21:41 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-05-26 22:14 [Intel-gfx] [PATCH 1/6] drm/i915/rkl: Disable PSR2 José Roberto de Souza
2020-05-26 22:14 ` [Intel-gfx] [PATCH 2/6] drm/i915: Add plane damage clips property José Roberto de Souza
2020-06-12 15:15   ` Mun, Gwan-gyeong
2020-06-12 15:25   ` Ville Syrjälä
2020-06-12 15:30     ` Souza, Jose
2020-06-12 15:37       ` Ville Syrjälä
2020-06-12 15:42         ` Souza, Jose
2020-05-26 22:14 ` [Intel-gfx] [PATCH 3/6] drm/i915: Reorder intel_psr2_config_valid() José Roberto de Souza
2020-06-12 15:42   ` Mun, Gwan-gyeong
2020-05-26 22:14 ` [Intel-gfx] [PATCH 4/6] drm/i915: Add PSR2 software tracking registers José Roberto de Souza
2020-06-12 20:57   ` Mun, Gwan-gyeong
2020-06-12 21:18     ` Souza, Jose
2020-06-12 21:49       ` Mun, Gwan-gyeong
2020-06-15 18:37         ` Mun, Gwan-gyeong
2020-06-15 19:23           ` Souza, Jose
2020-06-25 21:41             ` Souza, Jose
2020-05-26 22:14 ` [Intel-gfx] [PATCH 5/6] drm/i915: Implement PSR2 selective fetch José Roberto de Souza
2020-06-12 16:30   ` Ville Syrjälä
2020-06-12 20:33     ` Souza, Jose
2020-06-15 16:40       ` Ville Syrjälä
2020-06-16 15:16         ` Mun, Gwan-gyeong
2020-06-16 17:29           ` Souza, Jose
2020-06-16 20:33             ` Mun, Gwan-gyeong
2020-06-16 21:00               ` Souza, Jose
2020-05-26 22:14 ` [Intel-gfx] [PATCH 6/6] drm/i915: Implement PSR2 selective fetch WAs José Roberto de Souza
2020-05-26 22:31 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/6] drm/i915/rkl: Disable PSR2 Patchwork
2020-05-26 22:54 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2020-05-27  1:33 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox