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@90-120, 4896x2448@90-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