Hi Rob, This is a pull request over the patches accumulated, reviewed and tested for the 5.19 merge window. This pull request contains following changes:
- DPU: DSC (Display Stream Compression) support - DPU: inline rotation support on SC7280 - DPU: update DP timings to follow vendor recommendations - DP, DPU: add support for wide bus (on newer chipsets) - DP: eDP support - Merge DPU1 and MDP5 MDSS driver, make dpu/mdp device the master component - MDSS: optionally reset the IP block at the bootup to drop bootloader state - Properly register and unregister internal bridges in the DRM framework - Complete DPU IRQ cleanup - DP: conversion to use drm_bridge and drm_bridge_connector - Misc small fixes This request still comes as a merge of several local branches. If you wish, I can rebase them into a single stream of patches. There are several other series which are very close to the merge (e.g. the writeback support), so if the time permits I might send another pull request later. The following changes since commit 78f815c1cf8fc5f05dc5cec29eb1895cb53470e9: drm/msm: return the average load over the polling period (2022-04-21 15:05:23 -0700) are available in the Git repository at: https://gitlab.freedesktop.org/lumag/msm.git msm-next-lumag for you to fetch changes up to 7e7657dc3f145df9990494f17aebcbea163f4a84: Merge branches 'msm-next-lumag-core', 'msm-next-lumag-dpu', 'msm-next-lumag-dp', 'msm-next-lumag-dsi', 'msm-next-lumag-hdmi', 'msm-next-lumag-mdp5' and 'msm-next-lumag-mdp4' into msm-next-lumag (2022-04-26 04:08:20 +0300) ---------------------------------------------------------------- Abhinav Kumar (1): drm/msm: remove unused hotplug and edid macros from msm_drv.h Bjorn Andersson (2): dt-bindings: display: msm: Add optional resets drm/msm/dpu: Issue MDSS reset during initialization Chia-I Wu (1): drm/msm: add trace_dma_fence_emit to msm_gpu_submit Dmitry Baryshkov (30): drm/msm: unify MDSS drivers drm/msm: remove extra indirection for msm_mdss drm/msm: split the main platform driver drm/msm: stop using device's match data pointer drm/msm: allow compile time selection of driver components drm/msm: make mdp5/dpu devices master components drm/msm: properly add and remove internal bridges drm/msm/dpu: remove manual destruction of DRM objects drm/msm: loop over encoders using drm_for_each_encoder() drm/msm: don't store created planes, connectors and encoders drm/msm: remove unused plane_property field from msm_drm_private drm/msm/dpu: don't use merge_3d if DSC merge topology is used drm/msm/dp: replace dp_connector with drm_bridge_connector drm/msm/dp: remove extra wrappers and public functions drm/msm/dp: drop dp_mode argument from dp_panel_get_modes() drm/msm/dp: simplify dp_connector_get_modes() drm/msm/dp: remove max_pclk_khz field from dp_panel/dp_display drm/msm/dpu: remove extra wrappers around dpu_core_irq drm/msm/dpu: remove always-true argument of dpu_core_irq_read() drm/msm/dpu: allow just single IRQ callback drm/msm/dpu: get rid of dpu_encoder_helper_(un)register_irq drm/msm/dpu: remove struct dpu_encoder_irq drm/msm/dpu: pass irq to dpu_encoder_helper_wait_for_irq() drm/msm/dpu: document INTF_EDP/INTF_DP difference drm/msm/dpu: drop INTF_TYPE_MAX symbol drm/msm/dpu: drop obsolete INTF_EDP comment drm/msm/dpu: drop INTF_EDP from interface type conditions drm/msm/dsi: fix error checks and return values for DSI xmit functions drm/msm: select DRM_DP_AUX_BUS for the AUX bus support Merge branches 'msm-next-lumag-core', 'msm-next-lumag-dpu', 'msm-next-lumag-dp', 'msm-next-lumag-dsi', 'msm-next-lumag-hdmi', 'msm-next-lumag-mdp5' and 'msm-next-lumag-mdp4' into msm-next-lumag Guo Zhengkui (1): drm/msm: fix returnvar.cocci warning Haowen Bai (1): drm/msm/mdp5: Eliminate useless code Kuogee Hsieh (7): drm/msm/dpu: adjust display_v_end for eDP and DP drm/msm/dpu: replace BIT(x) with correspond marco define string drm/msm/dpu: revise timing engine programming to support widebus feature drm/msm/dp: enable widebus feature for display port drm/msm/dp: replace DRM_DEBUG_DP marco with drm_dbg_dp drm/msm/dp: stop event kernel thread when DP unbind drm/msm/dp: tear down main link at unplug handle immediately Lv Ruyi (4): drm: msm: fix error check return value of irq_of_parse_and_map() drm/msm/dp: fix error check return value of irq_of_parse_and_map() drm/msm/hdmi: fix error check return value of irq_of_parse_and_map() drm/msm/dpu: fix error check return value of irq_of_parse_and_map() Marijn Suijten (1): drm/msm/dpu: Bind pingpong block to intf on active ctls in cmd encoder Sankeerth Billakanti (4): drm/msm/dp: Add eDP support via aux_bus drm/msm/dp: Support only IRQ_HPD and REPLUG interrupts for eDP drm/msm/dp: wait for hpd high before aux transaction drm/msm/dp: Support the eDP modes given by panel Tom Rix (1): drm/msm: change msm_sched_ops from global to static Vinod Koul (13): drm/msm/dsi: add support for dsc data drm/msm/dsi: Pass DSC params to drm_panel drm/msm/disp/dpu1: Add support for DSC drm/msm/disp/dpu1: Add support for DSC in pingpong block drm/msm/disp/dpu1: Add DSC for SDM845 to hw_catalog drm/msm/disp/dpu1: Add DSC support in hw_ctl drm/msm/disp/dpu1: Add support for DSC in encoder drm/msm: Add missing num_dspp field documentation drm/msm/disp/dpu1: Add support for DSC in topology drm/msm/disp/dpu1: Add DSC support in RM drm/msm/dsi: add mode valid callback for dsi_mgr drm/msm: Update generated headers drm/msm/dsi: Add support for DSC configuration Vinod Polimera (3): drm/msm/disp/dpu1: add inline function to validate format support drm/msm/disp/dpu1: add inline rotation support for sc7280 drm/msm/disp/dpu1: set vbif hw config to NULL to avoid use after memory free during pm runtime resume Yang Yingliang (1): drm/msm/hdmi: check return value after calling platform_get_resource_byname() .../bindings/display/msm/dpu-qcm2290.yaml | 4 + .../bindings/display/msm/dpu-sc7180.yaml | 4 + .../bindings/display/msm/dpu-sc7280.yaml | 4 + .../bindings/display/msm/dpu-sdm845.yaml | 4 + drivers/gpu/drm/msm/Kconfig | 51 ++- drivers/gpu/drm/msm/Makefile | 26 +- drivers/gpu/drm/msm/disp/dpu1/dpu_core_irq.h | 32 +- drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 282 +++++++++----- drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h | 10 + drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h | 55 +-- .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c | 112 +++--- .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c | 79 ++-- drivers/gpu/drm/msm/disp/dpu1/dpu_formats.h | 22 ++ drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c | 63 ++- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h | 29 ++ drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c | 11 +- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.h | 2 + drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c | 215 +++++++++++ drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.h | 80 ++++ drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.c | 157 +++----- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.h | 12 +- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.c | 62 ++- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.h | 2 + drivers/gpu/drm/msm/disp/dpu1/dpu_hw_mdss.h | 22 +- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.c | 32 ++ drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.h | 14 + drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 168 +++----- drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h | 13 +- drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c | 260 ------------- drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 139 +++++-- drivers/gpu/drm/msm/disp/dpu1/dpu_plane.h | 2 + drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c | 56 +++ drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h | 1 + drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h | 67 ++-- drivers/gpu/drm/msm/disp/mdp4/mdp4_dsi_encoder.c | 3 + drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c | 64 ++- drivers/gpu/drm/msm/disp/mdp5/mdp5_cmd_encoder.c | 3 + drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c | 80 ++-- drivers/gpu/drm/msm/disp/mdp5/mdp5_mdss.c | 252 ------------ drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c | 2 - drivers/gpu/drm/msm/dp/dp_audio.c | 50 ++- drivers/gpu/drm/msm/dp/dp_aux.c | 21 +- drivers/gpu/drm/msm/dp/dp_aux.h | 3 +- drivers/gpu/drm/msm/dp/dp_catalog.c | 98 +++-- drivers/gpu/drm/msm/dp/dp_catalog.h | 3 + drivers/gpu/drm/msm/dp/dp_ctrl.c | 150 ++++--- drivers/gpu/drm/msm/dp/dp_ctrl.h | 2 + drivers/gpu/drm/msm/dp/dp_debug.c | 2 - drivers/gpu/drm/msm/dp/dp_display.c | 429 +++++++++++++-------- drivers/gpu/drm/msm/dp/dp_display.h | 7 +- drivers/gpu/drm/msm/dp/dp_drm.c | 215 +++-------- drivers/gpu/drm/msm/dp/dp_drm.h | 22 +- drivers/gpu/drm/msm/dp/dp_link.c | 103 +++-- drivers/gpu/drm/msm/dp/dp_panel.c | 49 ++- drivers/gpu/drm/msm/dp/dp_panel.h | 3 +- drivers/gpu/drm/msm/dp/dp_parser.c | 25 +- drivers/gpu/drm/msm/dp/dp_parser.h | 14 +- drivers/gpu/drm/msm/dp/dp_power.c | 25 +- drivers/gpu/drm/msm/dsi/dsi.c | 6 +- drivers/gpu/drm/msm/dsi/dsi.h | 3 + drivers/gpu/drm/msm/dsi/dsi.xml.h | 80 ++++ drivers/gpu/drm/msm/dsi/dsi_host.c | 297 +++++++++++++- drivers/gpu/drm/msm/dsi/dsi_manager.c | 15 + drivers/gpu/drm/msm/hdmi/hdmi.c | 11 +- drivers/gpu/drm/msm/hdmi/hdmi_bridge.c | 3 + drivers/gpu/drm/msm/msm_drv.c | 264 +++---------- drivers/gpu/drm/msm/msm_drv.h | 139 ++++--- drivers/gpu/drm/msm/msm_gpu.c | 2 + drivers/gpu/drm/msm/msm_kms.h | 21 - drivers/gpu/drm/msm/msm_mdss.c | 416 ++++++++++++++++++++ drivers/gpu/drm/msm/msm_ringbuffer.c | 2 +- include/drm/drm_panel.h | 7 + 72 files changed, 3004 insertions(+), 1979 deletions(-) create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.h delete mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c delete mode 100644 drivers/gpu/drm/msm/disp/mdp5/mdp5_mdss.c create mode 100644 drivers/gpu/drm/msm/msm_mdss.c