From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: [PATCH] drm/i915: Force full PSR setup during crtc enable. Date: Tue, 10 Jun 2014 03:49:57 -0700 Message-ID: <1402397397-914-1-git-send-email-rodrigo.vivi@intel.com> References: <20140610152457.GY5821@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 753D66E71C for ; Tue, 10 Jun 2014 10:48:44 -0700 (PDT) In-Reply-To: <20140610152457.GY5821@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Daniel Vetter , Joe Konno , Paulo Zanoni , Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org Some registers set during setup might not be persistent after suspend/resume, and also on crtc off/on cycles. This was causing bugs for some people that was unable to get PSR entry state after suspend/resume cycle. v2: Adding some comments and better commit message explaining why this is needed. (by Paulo) v3: Moving psr.setup_done reset to crtc_enable because same issues might apply also on crtc off/on cycle. (by Daniel) Cc: Paulo Zanoni Cc: Daniel Vetter Cc: Joe Konno Signed-off-by: Rodrigo Vivi --- drivers/gpu/drm/i915/intel_display.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index b5cbb28..077ab0e 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -3938,6 +3938,10 @@ static void intel_crtc_enable_planes(struct drm_crtc *crtc) mutex_lock(&dev->struct_mutex); intel_update_fbc(dev); + /* Forcing a full init sequence here to make sure all + * registers are properly set. Some might not be persistent after + * crtc on/off cycle. */ + dev_priv->psr.setup_done = false; intel_edp_psr_update(dev); mutex_unlock(&dev->struct_mutex); } -- 1.9.3