From patchwork Fri Jan 11 19:57:57 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rodrigo Vivi X-Patchwork-Id: 1967291 Return-Path: X-Original-To: patchwork-intel-gfx@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by patchwork1.kernel.org (Postfix) with ESMTP id A11DB3FF0F for ; Fri, 11 Jan 2013 20:15:30 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id A73534BE25 for ; Fri, 11 Jan 2013 12:15:30 -0800 (PST) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mail-yh0-f51.google.com (mail-yh0-f51.google.com [209.85.213.51]) by gabe.freedesktop.org (Postfix) with ESMTP id 3F10CE5C33 for ; Fri, 11 Jan 2013 12:12:45 -0800 (PST) Received: by mail-yh0-f51.google.com with SMTP id f73so403725yha.24 for ; Fri, 11 Jan 2013 12:12:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:from:to:cc:subject:date:message-id:x-mailer:in-reply-to :references; bh=WPpudRwBNuXDrMbpFDhlB4C/yaWfrCK7hVZEyv4jlwY=; b=Cp7I1IcT3O4zu3WEtmCDko8oV+8qKpXZ44z2k9eMwhK3Z0SvFyO9OoOP4MRoByRUvu bPRKnRSvov2NLktZWsC+hCjZqWlsIlS3k/322cJ9n0aEm5zzKxUS2+vDSGrSBKwMwV0J 9xF17aUkzUS9ouFWOqKAxjTL14PSmKgHgv6m5LhzGyieGDT+fgZXMbRgVRB1reLJsrpr uPDjXBt51ffxIjQXKNEBGxJ/9B/K/2lXZTU+5waqGXMaHCs80X+OnUJsJldvWRShIIov hVYGyHWvYpAEwAzFIxDnh51jur+U+INAp9CqHx4LjcP/N281DuD0gjqZUtTQLgvFDitF crWQ== X-Received: by 10.100.82.3 with SMTP id f3mr24875857anb.38.1357935164436; Fri, 11 Jan 2013 12:12:44 -0800 (PST) Received: from localhost.localdomain ([189.0.16.214]) by mx.google.com with ESMTPS id y17sm4630713ang.12.2013.01.11.12.12.37 (version=TLSv1 cipher=RC4-SHA bits=128/128); Fri, 11 Jan 2013 12:12:43 -0800 (PST) From: Rodrigo Vivi To: intel-gfx@lists.freedesktop.org Date: Fri, 11 Jan 2013 17:57:57 -0200 Message-Id: <1357934277-3300-9-git-send-email-rodrigo.vivi@gmail.com> X-Mailer: git-send-email 1.7.11.7 In-Reply-To: <1357934277-3300-1-git-send-email-rodrigo.vivi@gmail.com> References: <1357934277-3300-1-git-send-email-rodrigo.vivi@gmail.com> Subject: [Intel-gfx] [PATCH 8/8] drm/i915: Hook PSR functionality X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: intel-gfx-bounces+patchwork-intel-gfx=patchwork.kernel.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+patchwork-intel-gfx=patchwork.kernel.org@lists.freedesktop.org PSR must be enabled after transcoder and port are running. And it is only available for HSW. Signed-off-by: Rodrigo Vivi --- drivers/gpu/drm/i915/intel_display.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 1464e47..7e1469a 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -3431,8 +3431,13 @@ static void haswell_crtc_enable(struct drm_crtc *crtc) intel_crtc_update_cursor(crtc, true); - for_each_encoder_on_crtc(dev, crtc, encoder) + for_each_encoder_on_crtc(dev, crtc, encoder) { encoder->enable(encoder); + if (encoder->type == INTEL_OUTPUT_EDP) { + struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base); + intel_edp_enable_psr(intel_dp); + } + } /* * There seems to be a race in PCH platform hw (at least on some @@ -3459,8 +3464,14 @@ static void ironlake_crtc_disable(struct drm_crtc *crtc) if (!intel_crtc->active) return; - for_each_encoder_on_crtc(dev, crtc, encoder) + for_each_encoder_on_crtc(dev, crtc, encoder) { + if (encoder->type == INTEL_OUTPUT_EDP) { + struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base); + intel_edp_disable_psr(intel_dp); + } encoder->disable(encoder); + } + intel_crtc_wait_for_pending_flips(crtc); drm_vblank_off(dev, pipe);