提交 6118efe5 编写于 作者: R Rodrigo Vivi 提交者: Daniel Vetter

drm/i915: move psr_setup_done to psr struct

"Because our driver assumes only one panel is PSR capable, and we
already have other PSR information on dev_priv instead of intel_dp. If
we ever support multiple PSR panels, we'll have to move struct
i915_psr to intel_dp anyway." (by Paulo)

v2: Avoid more than one setup. Removing initialization
    and trusting allocation. (By Paulo Zanoni).
v3: rebase.
v4: Adding comment.
Reviewed-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
Signed-off-by: NRodrigo Vivi <rodrigo.vivi@gmail.com>
Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
上级 bc1dfff0
...@@ -638,6 +638,7 @@ struct i915_drrs { ...@@ -638,6 +638,7 @@ struct i915_drrs {
struct i915_psr { struct i915_psr {
bool sink_support; bool sink_support;
bool source_ok; bool source_ok;
bool setup_done;
}; };
enum intel_pch { enum intel_pch {
......
...@@ -1665,7 +1665,7 @@ static void intel_edp_psr_setup(struct intel_dp *intel_dp) ...@@ -1665,7 +1665,7 @@ static void intel_edp_psr_setup(struct intel_dp *intel_dp)
struct drm_i915_private *dev_priv = dev->dev_private; struct drm_i915_private *dev_priv = dev->dev_private;
struct edp_vsc_psr psr_vsc; struct edp_vsc_psr psr_vsc;
if (intel_dp->psr_setup_done) if (dev_priv->psr.setup_done)
return; return;
/* Prepare VSC packet as per EDP 1.3 spec, Table 3.10 */ /* Prepare VSC packet as per EDP 1.3 spec, Table 3.10 */
...@@ -1680,7 +1680,7 @@ static void intel_edp_psr_setup(struct intel_dp *intel_dp) ...@@ -1680,7 +1680,7 @@ static void intel_edp_psr_setup(struct intel_dp *intel_dp)
I915_WRITE(EDP_PSR_DEBUG_CTL(dev), EDP_PSR_DEBUG_MASK_MEMUP | I915_WRITE(EDP_PSR_DEBUG_CTL(dev), EDP_PSR_DEBUG_MASK_MEMUP |
EDP_PSR_DEBUG_MASK_HPD | EDP_PSR_DEBUG_MASK_LPSP); EDP_PSR_DEBUG_MASK_HPD | EDP_PSR_DEBUG_MASK_LPSP);
intel_dp->psr_setup_done = true; dev_priv->psr.setup_done = true;
} }
static void intel_edp_psr_enable_sink(struct intel_dp *intel_dp) static void intel_edp_psr_enable_sink(struct intel_dp *intel_dp)
...@@ -4279,8 +4279,6 @@ intel_dp_init_connector(struct intel_digital_port *intel_dig_port, ...@@ -4279,8 +4279,6 @@ intel_dp_init_connector(struct intel_digital_port *intel_dig_port,
intel_dp_aux_init(intel_dp, intel_connector); intel_dp_aux_init(intel_dp, intel_connector);
intel_dp->psr_setup_done = false;
if (!intel_edp_init_connector(intel_dp, intel_connector, &power_seq)) { if (!intel_edp_init_connector(intel_dp, intel_connector, &power_seq)) {
drm_dp_aux_unregister(&intel_dp->aux); drm_dp_aux_unregister(&intel_dp->aux);
if (is_edp(intel_dp)) { if (is_edp(intel_dp)) {
......
...@@ -537,7 +537,6 @@ struct intel_dp { ...@@ -537,7 +537,6 @@ struct intel_dp {
unsigned long last_power_cycle; unsigned long last_power_cycle;
unsigned long last_power_on; unsigned long last_power_on;
unsigned long last_backlight_off; unsigned long last_backlight_off;
bool psr_setup_done;
bool use_tps3; bool use_tps3;
struct intel_connector *attached_connector; struct intel_connector *attached_connector;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册