From patchwork Tue Jan 28 19:46:55 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Rodrigo Vivi X-Patchwork-Id: 3548001 Return-Path: X-Original-To: patchwork-intel-gfx@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id BB84AC02DC for ; Tue, 28 Jan 2014 19:47:08 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id BDDCF20138 for ; Tue, 28 Jan 2014 19:47:07 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id 1350A20127 for ; Tue, 28 Jan 2014 19:47:03 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 02E2A105F8B; Tue, 28 Jan 2014 11:47:02 -0800 (PST) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mail-yk0-f174.google.com (mail-yk0-f174.google.com [209.85.160.174]) by gabe.freedesktop.org (Postfix) with ESMTP id F168B105F8B for ; Tue, 28 Jan 2014 11:46:59 -0800 (PST) Received: by mail-yk0-f174.google.com with SMTP id 10so3853248ykt.5 for ; Tue, 28 Jan 2014 11:46:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-type:content-transfer-encoding; bh=yUTU4zlDRq5aCg3aiAYzV1NxlD+En9cfHGhHglnJiRI=; b=KHU5X3hvG6Wh4Pd6UeVimWwtZdlsNFOFj6JRk/Iht5rJ91wGrc0r8VIp2WD60PRW1A ZOs+XyQAiccMIA4QpDT8gOJd8ZakJCZkJIMkAcuxEBynkQdPBRmte1bavME2ACFsa41V B2VwL8KpSheNJvQBbx/+yDykm59BGSiHITCIFjiu9RavgnYTarsS1veZYONILOOrlMVa +KLPgUTUOBRJ00h80geqWJ1HhhRGKiJ+7TYbuey8XXyk0OsbKQZIHykHnwq/V7uJ560L yFDV9qWN1X9R8ZfaQUaRH7dZ4zDqONkaAbZmSJBC6Lz2M0UsUkxWEcDtfYBSIUxaZLY8 iOqA== X-Received: by 10.236.124.133 with SMTP id x5mr2384490yhh.59.1390938419471; Tue, 28 Jan 2014 11:46:59 -0800 (PST) Received: from localhost.localdomain (200.188.217.18.dedicated.neoviatelecom.com.br. [200.188.217.18]) by mx.google.com with ESMTPSA id f78sm48585526yhp.12.2014.01.28.11.46.55 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 28 Jan 2014 11:46:58 -0800 (PST) From: Rodrigo Vivi To: intel-gfx@lists.freedesktop.org Date: Tue, 28 Jan 2014 17:46:55 -0200 Message-Id: <1390938415-4595-1-git-send-email-rodrigo.vivi@gmail.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <20140124145805.GI9454@intel.com> References: <20140124145805.GI9454@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 1/4] drm/i915: Set primary plane enable at dpcntrl. 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: , Sender: intel-gfx-bounces@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD, T_DKIM_INVALID, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This patch allows system to safely recover after kms_psr_sink_crc check or any other similar case that might fail when PSR is enabled. Ville made and sent me this patch after noticing that primary plane enabled bit was set during test case and unset after failure. What was causing a hard and non-recoverable blank screen. After the failure when alternating from fbcon to x section it was possible to see and move mouse cursor, but nothing else. Everything else was fully black. A for dpms off/on also haleped to get screen back. But this patch seeting primary plane enabled bit propertly seemed more clean. v2: Fix identation issue. v3: Add the XXX comment. Cc: Ville Syrjälä Signed-off-by: Rodrigo Vivi --- drivers/gpu/drm/i915/intel_display.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 122f871..1a9aa19 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -2095,6 +2095,9 @@ static int i9xx_update_plane(struct drm_crtc *crtc, struct drm_framebuffer *fb, if (IS_G4X(dev)) dspcntr |= DISPPLANE_TRICKLE_FEED_DISABLE; + if (intel_crtc->primary_enabled) + dspcntr |= DISPLAY_PLANE_ENABLE; + I915_WRITE(reg, dspcntr); linear_offset = y * fb->pitches[0] + x * (fb->bits_per_pixel / 8); @@ -2192,6 +2195,9 @@ static int ironlake_update_plane(struct drm_crtc *crtc, else dspcntr |= DISPPLANE_TRICKLE_FEED_DISABLE; + if (intel_crtc->primary_enabled) + dspcntr |= DISPLAY_PLANE_ENABLE; + I915_WRITE(reg, dspcntr); linear_offset = y * fb->pitches[0] + x * (fb->bits_per_pixel / 8); @@ -8625,6 +8631,13 @@ static int intel_gen7_queue_flip(struct drm_device *dev, intel_ring_emit(ring, i915_gem_obj_ggtt_offset(obj) + intel_crtc->dspaddr_offset); intel_ring_emit(ring, (MI_NOOP)); + /* XXX: Ugly hack to avoid PSR test case eventually breaking things up + * to be removed whenever it is fixed. */ + if (IS_VALLEYVIEW(dev) && intel_crtc->primary_enabled) + I915_WRITE(DSPCNTR(intel_crtc->plane), + I915_READ(DSPCNTR(intel_crtc->plane)) + | DISPLAY_PLANE_ENABLE); + intel_mark_page_flip_active(intel_crtc); __intel_ring_advance(ring); return 0;