From: "Wentland, Harry" <Harry.Wentland-5C7GfCeVMHo@public.gmane.org>
To: "Kazlauskas,
Nicholas" <Nicholas.Kazlauskas-5C7GfCeVMHo@public.gmane.org>,
"amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org"
<amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org>
Subject: Re: [PATCH v2 2/2] drm/amd/display: Support amdgpu "max bpc" connector property
Date: Mon, 12 Nov 2018 16:04:20 +0000 [thread overview]
Message-ID: <cfa9db5e-cf39-ea0d-2ebe-3b2acd722a40@amd.com> (raw)
In-Reply-To: <20181107175016.12565-2-nicholas.kazlauskas-5C7GfCeVMHo@public.gmane.org>
On 2018-11-07 12:50 p.m., Nicholas Kazlauskas wrote:
> [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 adds support for getting and setting the amdgpu driver
> specific "max bpc" property on the connector.
>
> It also adds support for limiting the output bpc based on the property
> value. The default limitation is the lowest value in the range, 8bpc.
> This was the old value before the range was uncapped.
>
> This patch should be updated/replaced later once common drm support
> for max bpc lands.
Generally good to call out changes for 'v2' here.
>
> Bugzilla: https://bugs.freedesktop.org/108542
> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=201585
> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=200645
> Fixes: e03fd3f300f6 ("drm/amd/display: Do not limit color depth to 8bpc")
>
> Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Series is
Reviewed-by: Harry Wentland <harry.wentland@amd.com>
Harry
> ---
> .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 16 ++++++++++++++++
> .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 1 +
> 2 files changed, 17 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> index c440d967db57..6b746afc55e7 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -2417,8 +2417,15 @@ static void update_stream_scaling_settings(const struct drm_display_mode *mode,
> static enum dc_color_depth
> convert_color_depth_from_display_info(const struct drm_connector *connector)
> {
> + struct dm_connector_state *dm_conn_state =
> + to_dm_connector_state(connector->state);
> uint32_t bpc = connector->display_info.bpc;
>
> + /* TODO: Remove this when there's support for max_bpc in drm */
> + if (dm_conn_state && bpc > dm_conn_state->max_bpc)
> + /* Round down to nearest even number. */
> + bpc = dm_conn_state->max_bpc - (dm_conn_state->max_bpc & 1);
> +
> switch (bpc) {
> case 0:
> /*
> @@ -3001,6 +3008,9 @@ int amdgpu_dm_connector_atomic_set_property(struct drm_connector *connector,
> } else if (property == adev->mode_info.underscan_property) {
> dm_new_state->underscan_enable = val;
> ret = 0;
> + } else if (property == adev->mode_info.max_bpc_property) {
> + dm_new_state->max_bpc = val;
> + ret = 0;
> } else if (property == adev->mode_info.freesync_property) {
> dm_new_state->freesync_enable = val;
> ret = 0;
> @@ -3049,6 +3059,9 @@ int amdgpu_dm_connector_atomic_get_property(struct drm_connector *connector,
> } else if (property == adev->mode_info.underscan_property) {
> *val = dm_state->underscan_enable;
> ret = 0;
> + } else if (property == adev->mode_info.max_bpc_property) {
> + *val = dm_state->max_bpc;
> + ret = 0;
> } else if (property == adev->mode_info.freesync_property) {
> *val = dm_state->freesync_enable;
> ret = 0;
> @@ -3864,6 +3877,9 @@ void amdgpu_dm_connector_init_helper(struct amdgpu_display_manager *dm,
> drm_object_attach_property(&aconnector->base.base,
> adev->mode_info.underscan_vborder_property,
> 0);
> + drm_object_attach_property(&aconnector->base.base,
> + adev->mode_info.max_bpc_property,
> + 0);
>
> if (connector_type == DRM_MODE_CONNECTOR_HDMIA ||
> connector_type == DRM_MODE_CONNECTOR_DisplayPort) {
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
> index 23f2d05cf07e..afcb9842bb45 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
> @@ -252,6 +252,7 @@ struct dm_connector_state {
> enum amdgpu_rmx_type scaling;
> uint8_t underscan_vborder;
> uint8_t underscan_hborder;
> + uint8_t max_bpc;
> bool underscan_enable;
> bool freesync_enable;
> bool freesync_capable;
>
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
prev parent reply other threads:[~2018-11-12 16:04 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-07 17:50 [PATCH v2 1/2] drm/amdgpu: Add amdgpu "max bpc" connector property Nicholas Kazlauskas
[not found] ` <20181107175016.12565-1-nicholas.kazlauskas-5C7GfCeVMHo@public.gmane.org>
2018-11-07 17:50 ` [PATCH v2 2/2] drm/amd/display: Support " Nicholas Kazlauskas
[not found] ` <20181107175016.12565-2-nicholas.kazlauskas-5C7GfCeVMHo@public.gmane.org>
2018-11-09 22:36 ` Alex Deucher
2018-11-12 16:04 ` Wentland, Harry [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cfa9db5e-cf39-ea0d-2ebe-3b2acd722a40@amd.com \
--to=harry.wentland-5c7gfcevmho@public.gmane.org \
--cc=Nicholas.Kazlauskas-5C7GfCeVMHo@public.gmane.org \
--cc=amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox