From patchwork Fri Feb 22 00:05:05 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Vetter X-Patchwork-Id: 2173941 Return-Path: X-Original-To: patchwork-intel-gfx@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork2.kernel.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by patchwork2.kernel.org (Postfix) with ESMTP id 91A52DF215 for ; Fri, 22 Feb 2013 00:13:19 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 6C142E620D for ; Thu, 21 Feb 2013 16:13:19 -0800 (PST) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mail-ee0-f52.google.com (mail-ee0-f52.google.com [74.125.83.52]) by gabe.freedesktop.org (Postfix) with ESMTP id 7A19BE611B for ; Thu, 21 Feb 2013 16:05:44 -0800 (PST) Received: by mail-ee0-f52.google.com with SMTP id b15so38840eek.25 for ; Thu, 21 Feb 2013 16:05:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=x-received:from:to:cc:subject:date:message-id:x-mailer:in-reply-to :references; bh=QSFxqNkEthmtWbYf8+XGR2idGW3FVMA+9Q6d/+GBnTg=; b=QhxKBwr4qLJ7wJQ/77pck5+5vjr9yqIMR83vpAbjmwhiSzEfOprKOnqPDJ4R95C4cf xS+gffA3gi3w/Qin9I+OfazutrA1OB/vyALQk+Nmg8SZewr0BbwuRn3gZlm4onXBPbM2 1EjKrOzISI/AANOJFMO091zRpUHYeAwzAm/HU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:from:to:cc:subject:date:message-id:x-mailer:in-reply-to :references:x-gm-message-state; bh=QSFxqNkEthmtWbYf8+XGR2idGW3FVMA+9Q6d/+GBnTg=; b=B2y/IeZzhARBJScWWeodE6GGgcp3eBIRyKvoDrDBk4yRu+JRp9h/kRL3+boREdqMWw 5veZ/KPXbTwTcW6D6p6XP+ApV7IbcCvNjeoB0V2LccIA+8vu7phPI//sfAHvjF0l++PB IQnMv6PdgBK4OHvtE8IrlFPyOlrLr2p62K7kCZOl2KY4CxdtLd+6qflJSUg3dEf1vf+M RLQHVzhHAUA9HOYsNTX/ft2TUX2Uy+mNt6nIIdV58H5ML6U5EcriIJzBz/lQtBzANn+I IOUHjcLbksqVbd6sMgnRylFy+U3v3k1IugUHMgeQAIImQxjKDXFjg/Iq7dwtM8fJ4BfG Ok4w== X-Received: by 10.14.202.71 with SMTP id c47mr85411597eeo.39.1361491543846; Thu, 21 Feb 2013 16:05:43 -0800 (PST) Received: from bremse.ffwll.local (178-83-130-250.dynamic.hispeed.ch. [178.83.130.250]) by mx.google.com with ESMTPS id s3sm508871eem.4.2013.02.21.16.05.42 (version=TLSv1 cipher=RC4-SHA bits=128/128); Thu, 21 Feb 2013 16:05:42 -0800 (PST) From: Daniel Vetter To: Intel Graphics Development Date: Fri, 22 Feb 2013 01:05:05 +0100 Message-Id: <1361491513-14231-11-git-send-email-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 1.7.11.4 In-Reply-To: <1361491513-14231-1-git-send-email-daniel.vetter@ffwll.ch> References: <1361491513-14231-1-git-send-email-daniel.vetter@ffwll.ch> X-Gm-Message-State: ALoCoQlW6+mliK3GtLPa3NuOL7N6B8HRkD1Zhj6XHghxDWFjnd8+NyQtRDIHG4AkDVYLPs+QdIiv Cc: Jani Nikula , Daniel Vetter Subject: [Intel-gfx] [PATCH 05/10] drm/i915: force bpp for eDP panels 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 We'ev had our fair share of woes already which showed that we can't rely on the bpc limits in the EDID for eDP panels without risking black screens. So now we limit the depth by what the BIOS recommends in the VBT: commit 2f4f649a69a9eb51f6e98130e19dd90a260a4145 Author: Jani Nikula Date: Mon Nov 12 14:33:44 2012 +0200 drm/i915: do not ignore eDP bpc settings from vbt But that's not enough, since at least the panel on my ASUS Zenbook Prime here is also unhappy if the bpc is too low. Hence just take the firmware value and dither to get what flimsy panels want. Like before we ensure that we don't change the bpp if the firmware doesn't proved a value, see commit 2f4f649a69a9eb51f6e98130e19dd90a260a4145 Author: Jani Nikula Date: Mon Nov 12 14:33:44 2012 +0200 drm/i915: do not ignore eDP bpc settings from vbt Cc: Jani Nikula Signed-off-by: Daniel Vetter Reviewed-by: Jani Nikula --- drivers/gpu/drm/i915/intel_dp.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index 83e3791..81693fc 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c @@ -755,8 +755,15 @@ intel_dp_compute_config(struct intel_encoder *encoder, /* Walk through all bpp values. Luckily they're all nicely spaced with 2 * bpc in between. */ bpp = min_t(int, 8*3, pipe_config->pipe_bpp); - if (is_edp(intel_dp) && dev_priv->edp.bpp) - bpp = min_t(int, bpp, dev_priv->edp.bpp); + + /* eDP panels are really fickle, try to enfore the bpp the firmware + * recomments. This means we'll up-dither 16bpp framebuffers on + * high-depth panels. */ + if (is_edp(intel_dp) && dev_priv->edp.bpp) { + DRM_DEBUG_KMS("forcing bpp for eDP panel to BIOS-provided %i\n", + dev_priv->edp.bpp); + bpp = dev_priv->edp.bpp; + } for (; bpp >= 6*3; bpp -= 2*3) { mode_rate = intel_dp_link_required(target_clock, bpp);