We need to make sure that no one else is using this in the enable function and also that the work item hasn't raced with the disabled function. Cc: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx> Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx> --- drivers/gpu/drm/i915/intel_dp.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index 923a9f6991f7..503809e4e6f3 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c @@ -1844,6 +1844,11 @@ void intel_edp_psr_enable(struct intel_dp *intel_dp) return; } + if (dev_priv->psr.enabled) { + DRM_DEBUG_KMS("PSR already in use\n"); + return; + } + /* Setup PSR once */ intel_edp_psr_setup(intel_dp); @@ -1882,6 +1887,9 @@ static void intel_edp_psr_work(struct work_struct *work) container_of(work, typeof(*dev_priv), psr.work.work); struct intel_dp *intel_dp = dev_priv->psr.enabled; + if (!intel_dp) + return; + if (intel_edp_psr_match_conditions(intel_dp)) intel_edp_psr_do_enable(intel_dp); } -- 2.0.0 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx