Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp2078378imu; Wed, 28 Nov 2018 21:59:48 -0800 (PST) X-Google-Smtp-Source: AFSGD/X09dUesgG6Zb2jLO1E96VOrBf9GyAkAidbYOhRKEe+S8zR4vho8CdH4S+htaXTYYYcbtJz X-Received: by 2002:a63:6f0d:: with SMTP id k13mr174411pgc.42.1543471188062; Wed, 28 Nov 2018 21:59:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543471188; cv=none; d=google.com; s=arc-20160816; b=p6JBbxnALTGEQXSK7NgyoRC+fr3suJ20uwJlmIWUUca8NRWXo75CFTRHCg1pTSmM0G 0R1oLUzKX4X7lQ1s+0PYHyQvmVSzK5+stmQ1Pw2S61kd0VpWwcQUp8MHvLP1rhXttOkm 50tll0HaN8S4tjD/g9XYa+SSdnlR0De3EwmXffLG4kGXVMKEVMTc6GLm8oZrK5uLFPxy lkmdnlIir+aHQtFyMjm4w2TCTqm/vfLlM35+9oXUcyAmOWtCf7bCZgJqqKUKPajPLVTT vD+5CE+2lvrmImWPD+k9en8rPYA8f2NlkXkd360XNbEwA2TKBwRabdnrDWPfAcY3rCFF Ngrw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=Ak/uPIlDo7/AILSbVvCu1zvAGgnLVkywQf8ZOOpJ+yI=; b=oGW/IIG+/pbSbfB/tDaG9iKzTM6BtizKbyeTUs5u0EAgF1d1+FhwqBmfJ+nB4vM8iz DZ9zJB/glWiZNbPuJXSFpVjLZv+/adk07tp3TzogX/s+/QRT3Ehat82b8GUYAwpBJuRx ZY4u6wFiwI0hv5rdKhvmVRooPD+QrC0FvDn/fqais9rmHyKt/IxXwihVFChIXMsMpbs1 rvS+sqnj6+P4DPmHxkpJyOBCRGoJ7QKuP0noGahJJRgbrnX2EEnxvxfrcwsmcwx5b9oR pm58nAuq76EFQMTNQ2WrXi1u2LYZlLBq7mEMWsNxOxxEiZRMedwYI/06OZkrcXT2d/tk IDvw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=cITnVz8u; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g5si1020040plt.273.2018.11.28.21.59.33; Wed, 28 Nov 2018 21:59:48 -0800 (PST) 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=cITnVz8u; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728503AbeK2RCa (ORCPT + 99 others); Thu, 29 Nov 2018 12:02:30 -0500 Received: from mail.kernel.org ([198.145.29.99]:36228 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727643AbeK2RC3 (ORCPT ); Thu, 29 Nov 2018 12:02:29 -0500 Received: from sasha-vm.mshome.net (unknown [37.142.5.207]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 98407205C9; Thu, 29 Nov 2018 05:58:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1543471099; bh=yosf/Fv/70HIq7HXF9Clhe977oF49BT16IXjGwBwhkE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cITnVz8uN8ZxOObmTtI2fYdata+0s1Qne78JuFd8sO7oxTc77xsDrhwqJiIU0BymY RWEK6vKiZ3AQZ2nS/7MHr+nNCjN2TBEJvVLIy6EYB1q0Eiy1850R3/VbcdasU+ZXpY WoH562zWSY4+5ALCsoueAfzaLqScccPeaXtnC38A= From: Sasha Levin To: stable@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Nicholas Kazlauskas , Alex Deucher , Sasha Levin , amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Subject: [PATCH AUTOSEL 4.19 27/68] drm/amdgpu: Add amdgpu "max bpc" connector property (v2) Date: Thu, 29 Nov 2018 00:55:18 -0500 Message-Id: <20181129055559.159228-27-sashal@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181129055559.159228-1-sashal@kernel.org> References: <20181129055559.159228-1-sashal@kernel.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Nicholas Kazlauskas [ Upstream commit 69756c6ff0de478c10100481f16c966dde3b5339 ] [Why] Many panels support more than 8bpc but some modes are unavailable while running at greater than 8bpc due to DP/HDMI bandwidth constraints. Support for more than 8bpc was added recently in the driver but it defaults to the maximum supported bpc - locking out these modes. This should be a user configurable option such that the user can select what bpc configuration they would like. [How] This patch introduces the "max bpc" amdgpu driver specific connector property so the user can limit the maximum bpc. It ranges from 8 to 16. This doesn't directly set the preferred bpc for the panel since it follows Intel's existing driver conventions. This proprety should be removed once common drm support for max bpc lands. v2: rebase on upstream (Alex) Signed-off-by: Nicholas Kazlauskas Acked-by: Alex Deucher Reviewed-by: Harry Wentland Signed-off-by: Alex Deucher Signed-off-by: Sasha Levin --- drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 7 +++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h | 2 ++ 2 files changed, 9 insertions(+) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c index 6748cd7fc129..686a26de50f9 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c @@ -626,6 +626,13 @@ int amdgpu_display_modeset_create_props(struct amdgpu_device *adev) "dither", amdgpu_dither_enum_list, sz); + if (amdgpu_device_has_dc_support(adev)) { + adev->mode_info.max_bpc_property = + drm_property_create_range(adev->ddev, 0, "max bpc", 8, 16); + if (!adev->mode_info.max_bpc_property) + return -ENOMEM; + } + return 0; } diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h index b9e9e8b02fb7..d1b4d9b6aae0 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h @@ -339,6 +339,8 @@ struct amdgpu_mode_info { struct drm_property *audio_property; /* FMT dithering */ struct drm_property *dither_property; + /* maximum number of bits per channel for monitor color */ + struct drm_property *max_bpc_property; /* hardcoded DFP edid from BIOS */ struct edid *bios_hardcoded_edid; int bios_hardcoded_edid_size; -- 2.17.1