[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230226141051.21767-1-iam@lach.pw>
Date: Sun, 26 Feb 2023 15:10:49 +0100
From: Yaroslav Bolyukin <iam@...h.pw>
To: amd-gfx@...ts.freedesktop.org, dri-devel@...ts.freedesktop.org,
linux-kernel@...r.kernel.org
Cc: Harry Wentland <harry.wentland@....com>,
Leo Li <sunpeng.li@....com>,
Rodrigo Siqueira <Rodrigo.Siqueira@....com>,
Alex Deucher <alexander.deucher@....com>,
Christian König <christian.koenig@....com>,
"Pan, Xinhui" <Xinhui.Pan@....com>,
David Airlie <airlied@...il.com>,
Daniel Vetter <daniel@...ll.ch>,
Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>,
Maxime Ripard <mripard@...nel.org>,
Thomas Zimmermann <tzimmermann@...e.de>,
Jani Nikula <jani.nikula@...el.com>,
Yaroslav Bolyukin <iam@...h.pw>
Subject: [PATCH v3] drm/edid DSC pass-through timing support
VESA DisplayID spec allows the device to force its DSC bits per pixel
value.
For example, the HTC Vive Pro 2 VR headset uses this value in
high-resolution modes (3680x1836@...120, 4896x2448@...120), and when the
kernel doesn't respect this parameter, the garbage is displayed on HMD
instead.
I am unaware of any other hardware using this value; however, multiple
users have tested this patch on the Vive Pro 2, and it is known to work and
not break anything else.
Regarding driver support - I have looked at amdgpu and Nvidia's
open-gpu-kernel-modules, and both seem to have some indication for this
value; however, in Linux, it is unused in both.
Amdgpu integration was trivial, so I implemented it in the second patch;
other kernel drivers still need the support of this value, and I don't have
the necessary hardware to implement and test the handling of this value on
them.
BR,
Yaroslav
Yaroslav Bolyukin (2):
drm/edid: parse DRM VESA dsc bpp target
drm/amd: use fixed dsc bits-per-pixel from edid
.../amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 2 +
.../gpu/drm/amd/display/dc/core/dc_stream.c | 2 +
drivers/gpu/drm/amd/display/dc/dc_types.h | 3 ++
drivers/gpu/drm/drm_edid.c | 42 ++++++++++++-------
include/drm/drm_connector.h | 6 +++
include/drm/drm_displayid.h | 4 ++
6 files changed, 45 insertions(+), 14 deletions(-)
base-commit: a48bba98380cb0b43dcd01d276c7efc282e3c33f
--
2.39.1
Powered by blists - more mailing lists