Usage:
 - X11: xrandr --output <output name> --set "pixel encoding" <encoding>
 - Wayland: proptest -M amdgpu -D <card path> <connector ID> connector
   <pixel encoding ID> <encoding (ID)>
 - Kernel Param: amdgpu.pixel_encoding=<encoding>
   or amdgpu.pixel_encoding=<monitor>:<encoding>,<monitor>:<encoding>

Supported encodings are: "auto" (0) (Default and original behavior), "rgb"
(1), "ycbcr444" (2), "ycbcr422" (4), and "ycbcr420" (8).

This patch series allow users to switch between pixel encodings, which is
specially important when auto gets it wrong (probably because of monitor's
manufacturer mistake) and needs user intervention.

Changes since v1:
 - Some cleanup and rebase
 - Added YUV422 support

Full discussion:
https://gitlab.freedesktop.org/drm/amd/-/issues/476#note_2628536

Original patch by Yassine Imounachen, current version is modified based on
this patch(was rebased by Rafael Carvalho):
https://lists.freedesktop.org/archives/amd-gfx/2024-October/116195.html

Shengyu Qu (2):
  drm/connector: Add "pixel_encoding" to switch between RGB & YUV color
    output modes
  drm/amdgpu: Add "pixel_encoding" DRM connector property support for
    amdgpu

 drivers/gpu/drm/amd/amdgpu/amdgpu_display.c   |  36 +++
 drivers/gpu/drm/amd/amdgpu/amdgpu_display.h   |   3 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h      |   2 +
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 273 +++++++++++++++++-
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h |   1 +
 drivers/gpu/drm/amd/display/dc/core/dc.c      |   8 +
 drivers/gpu/drm/amd/display/dc/dc_stream.h    |   2 +
 drivers/gpu/drm/drm_modes.c                   |  32 ++
 include/drm/drm_connector.h                   |   7 +
 9 files changed, 353 insertions(+), 11 deletions(-)

-- 
2.43.0

Reply via email to