summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/i915/i915_drv.h
diff options
context:
space:
mode:
authorRodrigo Vivi <rodrigo.vivi@gmail.com>2013-07-11 18:45:00 -0300
committerDaniel Vetter <daniel.vetter@ffwll.ch>2013-07-18 10:17:21 +0200
commit3f51e4713fc57ab0fc225c3f0e67578a53c24a11 (patch)
tree805ccec916c12cc168dfb34a8bd07d957d69e654 /drivers/gpu/drm/i915/i915_drv.h
parente91fd8c6dec2ffa903b4f695fce4b9d7248ed2d5 (diff)
downloadlwn-3f51e4713fc57ab0fc225c3f0e67578a53c24a11.tar.gz
lwn-3f51e4713fc57ab0fc225c3f0e67578a53c24a11.zip
drm/i915: Match all PSR mode entry conditions before enabling it.
v2: Prefer seq_puts to seq_printf by Paulo Zanoni. v3: small changes like avoiding calling dp_to_dig_port twice as noticed by Paulo Zanoni. v4: Avoiding reading non-existent registers - noticed by Paulo on first psr debugfs patch. v5: Accepting more suggestions from Paulo: * check sw interlace flag instead of i915_read * introduce PSR_S3D_ENABLED to avoid forgeting it whenever added. Cc: Paulo Zanoni <paulo.r.zanoni@intel.com> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@gmail.com> Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Reviewed-by: Shobhit Kumar <shobhit.kumar@intel.com> [danvet: Fix up debugfs output (spotted by Paulo) and rip out the power well check since we really can't do that in a race-free manner, so it's bogus.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_drv.h')
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index bd1b95ea6a28..21d55f855d16 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -593,6 +593,17 @@ struct i915_fbc {
} no_fbc_reason;
};
+enum no_psr_reason {
+ PSR_NO_SOURCE, /* Not supported on platform */
+ PSR_NO_SINK, /* Not supported by panel */
+ PSR_CRTC_NOT_ACTIVE,
+ PSR_PWR_WELL_ENABLED,
+ PSR_NOT_TILED,
+ PSR_SPRITE_ENABLED,
+ PSR_S3D_ENABLED,
+ PSR_INTERLACED_ENABLED,
+ PSR_HSW_NOT_DDIA,
+};
enum intel_pch {
PCH_NONE = 0, /* No PCH present */
@@ -1173,6 +1184,8 @@ typedef struct drm_i915_private {
/* Haswell power well */
struct i915_power_well power_well;
+ enum no_psr_reason no_psr_reason;
+
struct i915_gpu_error gpu_error;
struct drm_i915_gem_object *vlv_pctx;