Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp4233768ybb; Tue, 7 Apr 2020 03:30:58 -0700 (PDT) X-Google-Smtp-Source: APiQypK06zAOOIRFGnD7c5zsk3HglfjJ9dcawccpi0PMeF5XB9rj4byVehLPmyAwZVKVtm0Ba6Rg X-Received: by 2002:a05:6830:4025:: with SMTP id i5mr989715ots.203.1586255458247; Tue, 07 Apr 2020 03:30:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586255458; cv=none; d=google.com; s=arc-20160816; b=EX/0NRFVpo5yY2eFsetrm9k3/zz77KZsSeZ+nDQyw7XcR8jMWk7FJruSonJMsYtCJE Pdho317zuMMgUv2EMk3NvRLbmpDth0bz7E7tMkJvGQu0hCiG7L9/ryG8vfeuIH/AmOD7 3rFunlObEy1p4VL4rQ9gFasp0gFePDNXJG0Ylh6Ao6ESEXji0NQF/nh6/T1tHdrSO7iJ ntLYvQ4R2Ql7u2ZKrEeMzRsJ09fOs8QfipjTPhmYcpczs+MUVi28d2/76h06HAq2n+l5 6QupiBhY75Lhd2XvEqTwHRHQGVz5LOSDD7hv+6ET51ESfZYUokIFCfiCaVGMrBUlmGgM KyNw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=5O8ZNHUG4/cOxuFp7fZZhiaYAOR3fk90vAVvHH9irEA=; b=M+IsvqP/tK1qjHz+qvSk5SHY4iDO20OB2HjGo45KSPClEMjH0gCL7XepaUsYKly0og G2Dx+Sbi5MUyfdc+vNQoq1xQ6Wxu2tGgoCpgoaNWCE0wfP5UrhXwIEwkg3HeDWyvfD3j rYWj+UqWG/Wr8jsOYe9P9MaqJc/kfeJ7UHrh0FCbwxHjOVV3CsZyB9uJVtof6dHMWK9B Y5z2BU8nCQd1nPxPM/dEw6dWnnNg3RYtn4Xb9qKoNgHr3DtIij7XrZ/wAvX0aJp8WYD1 nil1LF2UNXk4pLtBqsOwXwfFMSzkWvMdx6xi32hnxpx2zdCBORk/XChZVaashk3o3xr2 BtDw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=sZmTAfeT; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d2si1235682oti.128.2020.04.07.03.30.46; Tue, 07 Apr 2020 03:30:58 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=sZmTAfeT; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728665AbgDGKYN (ORCPT + 99 others); Tue, 7 Apr 2020 06:24:13 -0400 Received: from mail.kernel.org ([198.145.29.99]:34286 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728304AbgDGKYL (ORCPT ); Tue, 7 Apr 2020 06:24:11 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 334EC2078A; Tue, 7 Apr 2020 10:24:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1586255050; bh=mydvpf9JQotGF33zrvwujih4d2LyJw0bPk+qpk20hdk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sZmTAfeT9hWp0dfOHp3h9U4lRbv7e66rCDqjp67S70yDtoooWdrK7Cmr4Rb2Ww3q6 XQ8T3qeQhTRGVrFnFxEdsnY1B6Z8Y/BfHrirC4coHrzxAUIEVh4+TXXa5hMe+HRQfc MlsTqgMA2UdQobRRphyrurRNzUS/PtNnVrmApGmg= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Mario Kleiner , Alex Deucher , Sasha Levin Subject: [PATCH 5.5 10/46] drm/amd/display: Add link_rate quirk for Apple 15" MBP 2017 Date: Tue, 7 Apr 2020 12:21:41 +0200 Message-Id: <20200407101500.616555233@linuxfoundation.org> X-Mailer: git-send-email 2.26.0 In-Reply-To: <20200407101459.502593074@linuxfoundation.org> References: <20200407101459.502593074@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Mario Kleiner [ Upstream commit dec9de2ada523b344eb2428abfedf9d6cd0a0029 ] This fixes a problem found on the MacBookPro 2017 Retina panel: The panel reports 10 bpc color depth in its EDID, and the firmware chooses link settings at boot which support enough bandwidth for 10 bpc (324000 kbit/sec aka LINK_RATE_RBR2 aka 0xc), but the DP_MAX_LINK_RATE dpcd register only reports 2.7 Gbps (multiplier value 0xa) as possible, in direct contradiction of what the firmware successfully set up. This restricts the panel to 8 bpc, not providing the full color depth of the panel on Linux <= 5.5. Additionally, commit '4a8ca46bae8a ("drm/amd/display: Default max bpc to 16 for eDP")' introduced into Linux 5.6-rc1 will unclamp panel depth to its full 10 bpc, thereby requiring a eDP bandwidth for all modes that exceeds the bandwidth available and causes all modes to fail validation -> No modes for the laptop panel -> failure to set any mode -> Panel goes dark. This patch adds a quirk specific to the MBP 2017 15" Retina panel to override reported max link rate to the correct maximum of 0xc = LINK_RATE_RBR2 to fix the darkness and reduced display precision. Please apply for Linux 5.6+ to avoid regressing Apple MBP panel support. Signed-off-by: Mario Kleiner Signed-off-by: Alex Deucher Signed-off-by: Sasha Levin --- drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c index 504055fc70e89..6f2b3ec17e7f0 100644 --- a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c @@ -2909,6 +2909,17 @@ static bool retrieve_link_cap(struct dc_link *link) sink_id.ieee_device_id, sizeof(sink_id.ieee_device_id)); + /* Quirk Apple MBP 2017 15" Retina panel: Wrong DP_MAX_LINK_RATE */ + { + uint8_t str_mbp_2017[] = { 101, 68, 21, 101, 98, 97 }; + + if ((link->dpcd_caps.sink_dev_id == 0x0010fa) && + !memcmp(link->dpcd_caps.sink_dev_id_str, str_mbp_2017, + sizeof(str_mbp_2017))) { + link->reported_link_cap.link_rate = 0x0c; + } + } + core_link_read_dpcd( link, DP_SINK_HW_REVISION_START, -- 2.20.1