intel-gfx.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/10] enable psr2 for idle_screen on y-cordinate panel
@ 2017-01-02 11:30 vathsala nagaraju
  2017-01-02 11:30 ` [PATCH 01/10] drm : adds Y-coordinate and Colorimetry Format vathsala nagaraju
                   ` (10 more replies)
  0 siblings, 11 replies; 34+ messages in thread
From: vathsala nagaraju @ 2017-01-02 11:30 UTC (permalink / raw)
  To: dri-devel, intel-gfx; +Cc: Rodrigo Vivi

This series enables psr2 on idle on screen for y cordinate panel.
Code is tested on sharp 32X18 edp 1.4 y cordinate enabled panel.
if system enters psr2, the system must go to deep sleep state.
Can be verifed by checking  psr2_status register bit 31:28.
DEEP_SLEEP[value 8]  must be entered while in idle on screen with psr2
panel.

PSR1 and PSR2 are mutually exclusive.
In the current code, when PSR2 is enabled , psr1 is also enabled,
and for psr2 the status is read from psr1 registers, leading to
blank screen.
1-3: Fixes vsc header programming for psr2 as per edp1.4 a
     table 6-11 and  blank screen issue for psr2 panel.
4-5: Enables alpm and disables aux frame sync , need for psr2.
6-7: Progarms CHICKEN_TRANS and PSR_MASK for deep sleep state, as per bspec
8:   Psr2 is enabled only for y cordinate enabled psr2 panel.
     this restriction will be removed after adding gtc support.
9-10: Adds debug support for psr2.It also enables reading of
     EDP_PSR_PERF_CNT on skl+ platforms, when dc6 is disabled through
     kernel parameter i915.enable_dc=0

Vathsala Nagaraju (10):
  drm : adds Y-coordinate and Colorimetry Format
  drm/i915/psr: program vsc header for psr2
  drm/i915/psr: fix blank screen issue for psr2
  drm/i915/psr: disable aux_frame_sync on psr2 exit
  drm/i915/psr: enable ALPM for psr2
  drm/i915/psr: set CHICKEN_TRANS for psr2
  drm/i915/psr: set PSR_MASK bits for deep sleep
  drm/i915/psr: enable psr2 for y cordinate panels
  drm/i915/psr: report live PSR2 State
  drm/i915/psr: EDP_PSR_PERF_CNT not valid for psr2

 drivers/gpu/drm/i915/i915_debugfs.c |  38 ++++++-
 drivers/gpu/drm/i915/i915_drv.h     |   3 +
 drivers/gpu/drm/i915/i915_reg.h     |  19 ++++
 drivers/gpu/drm/i915/intel_dp.c     |  35 +++++++
 drivers/gpu/drm/i915/intel_psr.c    | 199 ++++++++++++++++++++++++++++--------
 include/drm/drm_dp_helper.h         |  13 ++-
 6 files changed, 263 insertions(+), 44 deletions(-)

Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Jim Bride <jim.bride@linux.intel.com>

-- 
1.9.1

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

^ permalink raw reply	[flat|nested] 34+ messages in thread
* [PATCH 08/10] drm/i915/psr: enable psr2 for y cordinate panels
@ 2017-01-11 22:28 vathsala nagaraju
  0 siblings, 0 replies; 34+ messages in thread
From: vathsala nagaraju @ 2017-01-11 22:28 UTC (permalink / raw)
  To: dri-devel, intel-gfx; +Cc: Patil Deepti, Rodrigo Vivi

Psr2 is enabled only for y cordinate panels.Once GTC (global time code)
is implemented,this restriction is removed so that psr2
can work on panels without y cordinate support.

v2: (Rodrigo)
- Move the check to intel_psr_match_conditions

v3: (Rodrigo)
- add return false

v4: rebase

Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Jim Bride <jim.bride@linux.intel.com>
Signed-off-by: Vathsala Nagaraju <vathsala.nagaraju@intel.com>
Signed-off-by: Patil Deepti <deepti.patil@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
 drivers/gpu/drm/i915/intel_psr.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_psr.c b/drivers/gpu/drm/i915/intel_psr.c
index f9d620b..2c14f46 100644
--- a/drivers/gpu/drm/i915/intel_psr.c
+++ b/drivers/gpu/drm/i915/intel_psr.c
@@ -441,6 +441,15 @@ static bool intel_psr_match_conditions(struct intel_dp *intel_dp)
 		return false;
 	}
 
+	/*
+	 * FIXME:enable psr2 only for y-cordinate psr2 panels
+	 * After gtc implementation , remove this restriction.
+	 */
+	if (!dev_priv->psr.y_cord_support &&  dev_priv->psr.psr2_support) {
+		DRM_DEBUG_KMS("PSR2 disabled, panel does not support Y coordinate\n");
+		return false;
+	}
+
 	dev_priv->psr.source_ok = true;
 	return true;
 }
-- 
1.9.1

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

^ permalink raw reply related	[flat|nested] 34+ messages in thread
* [PATCH 08/10] drm/i915/psr: enable psr2 for y cordinate panels
@ 2017-01-06 17:31 vathsala nagaraju
  2017-01-06 17:37 ` Vivi, Rodrigo
  0 siblings, 1 reply; 34+ messages in thread
From: vathsala nagaraju @ 2017-01-06 17:31 UTC (permalink / raw)
  To: dri-devel, intel-gfx; +Cc: Patil Deepti, Rodrigo Vivi

Psr2 is enabled only for y cordinate panels.Once GTC (global time code)
is implemented,this restriction is removed so that psr2
can work on panels without y cordinate support.

v2: (Rodrigo)
- Move the check to intel_psr_match_conditions

v3: (Rodrigo)
- add return false

Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Jim Bride <jim.bride@linux.intel.com>
Signed-off-by: Vathsala Nagaraju <vathsala.nagaraju@intel.com>
Signed-off-by: Patil Deepti <deepti.patil@intel.com>
---
 drivers/gpu/drm/i915/intel_psr.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_psr.c b/drivers/gpu/drm/i915/intel_psr.c
index 05efd4e..fc32b04 100644
--- a/drivers/gpu/drm/i915/intel_psr.c
+++ b/drivers/gpu/drm/i915/intel_psr.c
@@ -433,6 +433,15 @@ static bool intel_psr_match_conditions(struct intel_dp *intel_dp)
 		return false;
 	}
 
+	/*
+	 * FIXME:enable psr2 only for y-cordinate psr2 panels
+	 * After gtc implementation , remove this restriction.
+	 */
+	if (!dev_priv->psr.y_cord_support &&  dev_priv->psr.psr2_support) {
+		DRM_DEBUG_KMS("PSR2 disabled, panel does not support Y coordinate\n");
+		return false;
+	}
+
 	dev_priv->psr.source_ok = true;
 	return true;
 }
-- 
1.9.1

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

^ permalink raw reply related	[flat|nested] 34+ messages in thread
* [PATCH 08/10] drm/i915/psr: enable psr2 for y cordinate panels
@ 2017-01-06 16:51 vathsala nagaraju
  2017-01-06 17:19 ` Vivi, Rodrigo
  0 siblings, 1 reply; 34+ messages in thread
From: vathsala nagaraju @ 2017-01-06 16:51 UTC (permalink / raw)
  To: dri-devel, intel-gfx; +Cc: Patil Deepti, Rodrigo Vivi

Psr2 is enabled only for y cordinate panels.Once GTC (global time code)
is implemented,this restriction is removed so that psr2
can work on panels without y cordinate support.

v2: (Rodrigo)
- Move the check to intel_psr_match_conditions

Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Jim Bride <jim.bride@linux.intel.com>
Signed-off-by: Vathsala Nagaraju <vathsala.nagaraju@intel.com>
Signed-off-by: Patil Deepti <deepti.patil@intel.com>
---
 drivers/gpu/drm/i915/intel_psr.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_psr.c b/drivers/gpu/drm/i915/intel_psr.c
index 05efd4e..1729128 100644
--- a/drivers/gpu/drm/i915/intel_psr.c
+++ b/drivers/gpu/drm/i915/intel_psr.c
@@ -433,6 +433,15 @@ static bool intel_psr_match_conditions(struct intel_dp *intel_dp)
 		return false;
 	}
 
+	/*
+	 * FIXME:enable psr2 only for y-cordinate psr2 panels
+	 * After gtc implementation , remove this restriction.
+	 */
+	if (!dev_priv->psr.y_cord_support &&  dev_priv->psr.psr2_support) {
+		DRM_DEBUG_KMS("PSR2 disabled, panel does not support Y coordinate\n");
+		return;
+	}
+
 	dev_priv->psr.source_ok = true;
 	return true;
 }
-- 
1.9.1

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

^ permalink raw reply related	[flat|nested] 34+ messages in thread
* [PATCH 08/10] drm/i915/psr: enable psr2 for y cordinate panels
@ 2017-01-06 16:32 vathsala nagaraju
  0 siblings, 0 replies; 34+ messages in thread
From: vathsala nagaraju @ 2017-01-06 16:32 UTC (permalink / raw)
  To: dri-devel, intel-gfx; +Cc: Patil Deepti, Rodrigo Vivi

Psr2 is enabled only for y cordinate panels.Once GTC (global time code)
is implemented,this restriction is removed so that psr2
can work on panels without y cordinate support.

v2: (Rodrigo)
- Move the check to intel_psr_match_conditions

Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Jim Bride <jim.bride@linux.intel.com>
Signed-off-by: Vathsala Nagaraju <vathsala.nagaraju@intel.com>
Signed-off-by: Patil Deepti <deepti.patil@intel.com>
---
 drivers/gpu/drm/i915/intel_psr.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_psr.c b/drivers/gpu/drm/i915/intel_psr.c
index 05efd4e..1729128 100644
--- a/drivers/gpu/drm/i915/intel_psr.c
+++ b/drivers/gpu/drm/i915/intel_psr.c
@@ -433,6 +433,15 @@ static bool intel_psr_match_conditions(struct intel_dp *intel_dp)
 		return false;
 	}
 
+	/*
+	 * FIXME:enable psr2 only for y-cordinate psr2 panels
+	 * After gtc implementation , remove this restriction.
+	 */
+	if (!dev_priv->psr.y_cord_support &&  dev_priv->psr.psr2_support) {
+		DRM_DEBUG_KMS("PSR2 disabled, panel does not support Y coordinate\n");
+		return;
+	}
+
 	dev_priv->psr.source_ok = true;
 	return true;
 }
-- 
1.9.1

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

^ permalink raw reply related	[flat|nested] 34+ messages in thread
* [PATCH 00/10] enable psr2 for idle_screen on y-cordinate panel
@ 2016-12-30  5:25 vathsala nagaraju
  2016-12-30  5:25 ` [PATCH 08/10] drm/i915/psr: enable psr2 for y cordinate panels vathsala nagaraju
  0 siblings, 1 reply; 34+ messages in thread
From: vathsala nagaraju @ 2016-12-30  5:25 UTC (permalink / raw)
  To: intel-gfx

This series enables psr2 on idle on screen for y cordinate panel.
Code is tested on sharp 32X18 edp 1.4 y cordinate enabled panel.
if system enters psr2, the system must go to deep sleep state.
Can be verifed by checking  psr2_status register bit 31:28.
DEEP_SLEEP[value 8]  must be entered while in idle on screen with psr2 
panel.

PSR1 and PSR2 are mutually exclusive.
In the current code, when PSR2 is enabled , psr1 is also enabled,
and for psr2 the status is read from psr1 registers, leading to 
blank screen.
1-3: Fixes vsc header programming for psr2 as per edp1.4 a
     table 6-11 and  blank screen issue for psr2 panel.     
4-5: Enables alpm and disables aux frame sync , need for psr2.
6-7: Progarms CHICKEN_TRANS and PSR_MASK for deep sleep state, as per bspec
8:   Psr2 is enabled only for y cordinate enabled psr2 panel.
     this restriction will be removed after adding gtc support.
9-10: Adds debug support for psr2.It also enables reading of 
     EDP_PSR_PERF_CNT on skl+ platforms, when dc6 is disabled through
     kernel parameter i915.enable_dc=0

Vathsala Nagaraju (10):
  drm : adds Y-coordinate and Colorimetry Format
  drm/i915/psr: program vsc header for psr2
  drm/i915/psr: fix blank screen issue for psr2
  drm/i915/psr: disable aux_frame_sync on psr2 exit
  drm/i915/psr: enable ALPM for psr2
  drm/i915/psr: set CHICKEN_TRANS for psr2
  drm/i915/psr: set PSR_MASK bits for deep sleep
  drm/i915/psr: enable psr2 for y cordinate panels
  drm/i915/psr: report live PSR2 State
  drm/i915/psr: EDP_PSR_PERF_CNT not valid for psr2

 drivers/gpu/drm/i915/i915_debugfs.c |  38 ++++++-
 drivers/gpu/drm/i915/i915_drv.h     |   3 +
 drivers/gpu/drm/i915/i915_reg.h     |  19 ++++
 drivers/gpu/drm/i915/intel_dp.c     |  35 +++++++
 drivers/gpu/drm/i915/intel_psr.c    | 199 ++++++++++++++++++++++++++++--------
 include/drm/drm_dp_helper.h         |  13 ++-
 6 files changed, 263 insertions(+), 44 deletions(-)

-- 
1.9.1

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

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

end of thread, other threads:[~2017-01-13  0:45 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-01-02 11:30 [PATCH 00/10] enable psr2 for idle_screen on y-cordinate panel vathsala nagaraju
2017-01-02 11:30 ` [PATCH 01/10] drm : adds Y-coordinate and Colorimetry Format vathsala nagaraju
2017-01-10 23:43   ` [Intel-gfx] " Rodrigo Vivi
2017-01-11  7:41     ` Daniel Vetter
2017-01-02 11:30 ` [PATCH 02/10] drm/i915/psr: program vsc header for psr2 vathsala nagaraju
2017-01-04 23:46   ` Jim Bride
2017-01-10 23:44     ` [Intel-gfx] " Rodrigo Vivi
2017-01-02 11:30 ` [PATCH 03/10] drm/i915/psr: fix blank screen issue " vathsala nagaraju
2017-01-05 18:05   ` Rodrigo Vivi
2017-01-02 11:30 ` [PATCH 04/10] drm/i915/psr: disable aux_frame_sync on psr2 exit vathsala nagaraju
2017-01-05 18:00   ` Rodrigo Vivi
2017-01-02 11:30 ` [PATCH 05/10] drm/i915/psr: enable ALPM for psr2 vathsala nagaraju
2017-01-05 20:38   ` Jim Bride
2017-01-13  0:45     ` [Intel-gfx] " Rodrigo Vivi
2017-01-02 11:30 ` [PATCH 06/10] drm/i915/psr: set CHICKEN_TRANS " vathsala nagaraju
2017-01-05 17:57   ` Rodrigo Vivi
2017-01-02 11:31 ` [PATCH 07/10] drm/i915/psr: set PSR_MASK bits for deep sleep vathsala nagaraju
2017-01-03 16:31   ` Ilia Mirkin
2017-01-02 11:31 ` [PATCH 08/10] drm/i915/psr: enable psr2 for y cordinate panels vathsala nagaraju
2017-01-05 17:49   ` Rodrigo Vivi
2017-01-02 11:31 ` [PATCH 09/10] drm/i915/psr: report live PSR2 State vathsala nagaraju
2017-01-05 17:47   ` Rodrigo Vivi
2017-01-02 11:31 ` [PATCH 10/10] drm/i915/psr: EDP_PSR_PERF_CNT not valid for psr2 vathsala nagaraju
2017-01-05 17:40   ` Rodrigo Vivi
2017-01-02 12:17 ` ✓ Fi.CI.BAT: success for enable psr2 for idle_screen on y-cordinate panel (rev2) Patchwork
  -- strict thread matches above, loose matches on Subject: below --
2017-01-11 22:28 [PATCH 08/10] drm/i915/psr: enable psr2 for y cordinate panels vathsala nagaraju
2017-01-06 17:31 vathsala nagaraju
2017-01-06 17:37 ` Vivi, Rodrigo
2017-01-06 17:55   ` Nagaraju, Vathsala
2017-01-06 19:20     ` Vivi, Rodrigo
2017-01-06 16:51 vathsala nagaraju
2017-01-06 17:19 ` Vivi, Rodrigo
2017-01-06 16:32 vathsala nagaraju
2016-12-30  5:25 [PATCH 00/10] enable psr2 for idle_screen on y-cordinate panel vathsala nagaraju
2016-12-30  5:25 ` [PATCH 08/10] drm/i915/psr: enable psr2 for y cordinate panels vathsala nagaraju

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).