The Chroma Down Sampling (CDM) block is a hardware component in the DPU pipeline that includes a CSC block capable of converting RGB input from the DPU to YUV data. This block can be used with either HDMI, DP, or writeback interfaces. This series adds support for the CDM block to be used with DP in YUV420 mode format. This series allows selection of the YUV420 format for monitors which support certain resolutions only in YUV420 thus unblocking the validation of many other resolutions which were previously filtered out if the connector did not support YUV420. This was validated using a DP connected monitor requiring the use of YUV420 format. This series currently works as-is. But it was also validated to function on top of in the case of future integration: https://patchwork.freedesktop.org/series/118831/ Kuogee Hsieh (1): drm/msm/dpu: add support of new peripheral flush mechanism Paloma Arellano (16): drm/msm/dpu: allow dpu_encoder_helper_phys_setup_cdm to work for DP drm/msm/dpu: move dpu_encoder_helper_phys_setup_cdm to dpu_encoder drm/msm/dp: rename wide_bus_en to wide_bus_supported drm/msm/dp: store mode YUV420 information to be used by rest of DP drm/msm/dp: add an API to indicate if sink supports VSC SDP drm/msm/dpu: move widebus logic to its own API drm/msm/dpu: disallow widebus en in INTF_CONFIG2 when DP is YUV420 drm/msm/dp: change YUV420 related programming for DP drm/msm/dp: move parity calculation to dp_catalog drm/msm/dp: modify dp_catalog_hw_revision to show major and minor val drm/msm/dp: add VSC SDP support for YUV420 over DP drm/msm/dp: enable SDP and SDE periph flush update drm/msm/dpu: modify encoder programming for CDM over DP drm/msm/dpu: allow certain formats for CDM for DP drm/msm/dpu: reserve CDM blocks for DP if mode is YUV420 drm/msm/dp: allow YUV420 mode for DP connector when VSC SDP supported drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 143 ++++++++++++-- drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h | 12 ++ .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h | 13 +- .../drm/msm/disp/dpu1/dpu_encoder_phys_vid.c | 36 +++- .../drm/msm/disp/dpu1/dpu_encoder_phys_wb.c | 101 +--------- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_cdm.c | 2 +- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c | 17 ++ drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.h | 10 + drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.c | 4 +- drivers/gpu/drm/msm/dp/dp_audio.c | 100 ++-------- drivers/gpu/drm/msm/dp/dp_catalog.c | 182 +++++++++++++++++- drivers/gpu/drm/msm/dp/dp_catalog.h | 81 +++++++- drivers/gpu/drm/msm/dp/dp_ctrl.c | 17 +- drivers/gpu/drm/msm/dp/dp_display.c | 79 +++++--- drivers/gpu/drm/msm/dp/dp_panel.c | 82 +++++++- drivers/gpu/drm/msm/dp/dp_panel.h | 2 + drivers/gpu/drm/msm/dp/dp_reg.h | 5 + drivers/gpu/drm/msm/msm_drv.h | 9 +- drivers/gpu/drm/msm/msm_kms.h | 3 + 19 files changed, 655 insertions(+), 243 deletions(-) -- 2.39.2