Hi Dave&Daniel, This time around a bit larger than usual, but a large part of that is Dmitry's dsi phy/pll refactor (which is itself a pretty large negative diffstat). The dsi phy/pll refactor includes a couple clk patches a-b the maintainer. (For folks actually trying to boot msm-next, there is one clk fix required, which should hopefully land in 5.12 but not in msm-next.. https://patchwork.freedesktop.org/patch/427412/) * Big DSI phy/pll cleanup * Initial support for sc7280 * compatibles fixes for sm8150/sm8250 * cleanups for all dpu gens to use same bandwidth scaling paths (\o/) * various shrinker path lock contention optimizations * unpin/swap support for GEM objects (disabled by default, enable with msm.enable_eviction=1 .. due to various combinations of iommu drivers with older gens I want to get more testing on hw I don't have in front of me before enabling by default) * The usual assortment of misc fixes and cleanups The following changes since commit 1e28eed17697bcf343c6743f0028cc3b5dd88bf0: Linux 5.12-rc3 (2021-03-14 14:41:02 -0700) are available in the Git repository at: https://gitlab.freedesktop.org/drm/msm.git drm-msm-next-2021-04-11 for you to fetch changes up to a29c8c0241654d5f3165d52e9307e4feff955621: drm/msm/disp/dpu1: fix display underruns during modeset. (2021-04-09 12:02:35 -0700) ---------------------------------------------------------------- Abhinav Kumar (3): drm/msm/dp: Fix indentation kbot warnings in DP driver drm/msm/dp: Fix incorrect NULL check kbot warnings in DP driver drm/msm/dp: delete unnecessary debugfs error handling Akhil P Oommen (2): drm/msm/a6xx: Fix perfcounter oob timeout drm/msm: Select CONFIG_NVMEM AngeloGioacchino Del Regno (2): drm/msm/dsi: Uncomment core_mmss clock for MSM8996 drm/msm/mdp5: Disable pingpong autorefresh at tearcheck init Bernard Zhao (1): gpu/drm/msm: remove redundant pr_err() when devm_kzalloc failed Bhaskar Chowdhury (1): drivers: gpu: drm: msn: disp: dpu1: Fixed couple of spellings in the file dpu_hw_top.h Bjorn Andersson (1): drm/msm: Remove need for reiterating the compatibles Colin Ian King (1): drm/msm: Fix spelling mistake "Purgable" -> "Purgeable" Dmitry Baryshkov (32): drm/msm/dsi: fix check-before-set in the 7nm dsi_pll code drm/msm/dsi_pll_7nm: Solve TODO for multiplier frac_bits assignment drm/msm/dsi_pll_7nm: Fix variable usage for pll_lockdet_rate drm/msm: fix shutdown hook in case GPU components failed to bind drm/msm: a6xx: fix version check for the A650 SQE microcode clk: mux: provide devm_clk_hw_register_mux() clk: divider: add devm_clk_hw_register_divider drm/msm/dsi: replace PHY's init callback with configurable data drm/msm/dsi: fuse dsi_pll_* code into dsi_phy_* code drm/msm/dsi: drop multiple pll enable_seq support drm/msm/dsi: move all PLL callbacks into PHY config struct drm/msm/dsi: drop global msm_dsi_phy_type enumaration drm/msm/dsi: move min/max PLL rate to phy config drm/msm/dsi: remove msm_dsi_pll_set_usecase drm/msm/dsi: push provided clocks handling into a generic code drm/msm/dsi: use devm_clk_*register to registe DSI PHY clocks drm/msm/dsi: use devm_of_clk_add_hw_provider drm/msm/dsi: make save/restore_state phy-level functions drm/msm/dsi: drop vco_delay setting from 7nm, 10nm, 14nm drivers drm/msm/dsi: simplify vco_delay handling in dsi_phy_28nm driver drm/msi/dsi: inline msm_dsi_pll_helper_clk_prepare/unprepare drm/msm/dsi: make save_state/restore_state callbacks accept msm_dsi_phy drm/msm/dsi: drop msm_dsi_pll abstraction drm/msm/dsi: drop PLL accessor functions drm/msm/dsi: move ioremaps to dsi_phy_driver_probe drm/msm/dsi: remove duplicate fields from dsi_pll_Nnm instances drm/msm/dsi: remove temp data from global pll structure drm/msm/dsi: inline msm_dsi_phy_set_src_pll drm/msm/dsi: stop passing src_pll_id to the phy_enable call drm/msm/dpu: enable DPU_SSPP_QOS_8LVL for SM8250 drm/msm/dpu: fill missing details in hw catalog for sdm845 and sm8[12]50 drm/msm/dpu: always use mdp device to scale bandwidth Douglas Anderson (1): drm/msm: Fix speed-bin support not to access outside valid memory Fabio Estevam (1): drm/msm: Fix suspend/resume on i.MX5 John Stultz (1): drm/msm: Fix removal of valid error case when checking speed_bin Jonathan Marek (2): drm/msm: fix a6xx_gmu_clear_oob drm/msm: add compatibles for sm8150/sm8250 display Jordan Crouse (1): drm/msm: a6xx: Make sure the SQE microcode is safe Kalyan Thota (4): drm/msm/disp/dpu1: icc path needs to be set before dpu runtime resume drm/msm/disp/dpu1: program 3d_merge only if block is attached drm/msm/disp/dpu1: turn off vblank irqs aggressively in dpu driver drm/msm/disp/dpu1: fix display underruns during modeset. Konrad Dybcio (1): drm/msm/adreno: a5xx_power: Don't apply A540 lm_setup to other GPUs Krishna Manikandan (7): drm/msm/disp/dpu1: add support for display for SC7280 target drm/msm/disp/dpu1: add intf offsets for SC7280 target drm/msm/disp/dpu1: add support to program fetch active in ctl path drm/msm/disp/dpu1: enable DATA_HCTL_EN for sc7280 target drm/msm/disp/dpu1: increase the range of interrupts in dpu_irq_map drm/msm/disp/dpu1: add vsync and underrun irqs for INTF_5 drm/msm/disp/dpu1: add flags to indicate obsolete irqs Marijn Suijten (2): drm/msm/mdp5: Configure PP_SYNC_HEIGHT to double the vtotal drm/msm/mdp5: Do not multiply vclk line count by 100 Rob Clark (18): drm/msm: Ratelimit invalid-fence message drm/msm: Fix a5xx/a6xx timestamps Merge tag 'drm-msm-fixes-2021-04-02' into msm-next drm/msm: Remove unused freed llist node drm/msm: Avoid mutex in shrinker_count() drm/msm: Fix debugfs deadlock drm/msm: Improved debugfs gem stats drm/msm: Drop mm_lock in scan loop drm/msm: Fix spelling "purgable" -> "purgeable" drm/msm: Add param for userspace to query suspend count drm/msm: ratelimit GEM related WARN_ON()s drm/msm: Reorganize msm_gem_shrinker_scan() drm/msm: Clear msm_obj->sgt in put_pages() drm/msm: Split iova purge and close drm/msm: Add $debugfs/gem stats on resident objects drm/msm: Track potentially evictable objects drm/msm: Small msm_gem_purge() fix drm/msm: Support evicting GEM objects to swap Stephen Boyd (3): drm/msm/kms: Use nested locking for crtc lock instead of custom classes drm/msm/dp: Restore aux retry tuning logic drm/msm: Set drvdata to NULL when msm_drm_init() fails drivers/clk/clk-mux.c | 35 + drivers/gpu/drm/msm/Kconfig | 9 +- drivers/gpu/drm/msm/Makefile | 9 - drivers/gpu/drm/msm/adreno/a5xx_gpu.c | 4 +- drivers/gpu/drm/msm/adreno/a5xx_power.c | 2 +- drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 14 +- drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 108 +- drivers/gpu/drm/msm/adreno/adreno_gpu.c | 3 + drivers/gpu/drm/msm/disp/dpu1/dpu_core_irq.c | 4 +- drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c | 1 - drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 88 +- drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 30 + drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h | 11 + drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h | 1 + .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c | 26 + drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c | 195 +++- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h | 10 +- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c | 31 +- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.h | 3 + drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.c | 793 ++++++++++++-- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.h | 5 +- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.c | 12 +- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.h | 1 + drivers/gpu/drm/msm/disp/dpu1/dpu_hw_top.h | 4 +- drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 19 +- drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c | 54 +- drivers/gpu/drm/msm/disp/mdp5/mdp5_cmd_encoder.c | 19 +- drivers/gpu/drm/msm/dp/dp_aux.c | 7 + drivers/gpu/drm/msm/dp/dp_debug.c | 33 +- drivers/gpu/drm/msm/dp/dp_hpd.c | 4 +- drivers/gpu/drm/msm/dp/dp_power.c | 2 +- drivers/gpu/drm/msm/dsi/dsi.h | 60 +- drivers/gpu/drm/msm/dsi/dsi_cfg.c | 6 +- drivers/gpu/drm/msm/dsi/dsi_host.c | 6 +- drivers/gpu/drm/msm/dsi/dsi_manager.c | 30 +- drivers/gpu/drm/msm/dsi/phy/dsi_phy.c | 161 +-- drivers/gpu/drm/msm/dsi/phy/dsi_phy.h | 41 +- drivers/gpu/drm/msm/dsi/phy/dsi_phy_10nm.c | 747 ++++++++++++- drivers/gpu/drm/msm/dsi/phy/dsi_phy_14nm.c | 939 ++++++++++++++++- drivers/gpu/drm/msm/dsi/phy/dsi_phy_20nm.c | 16 +- drivers/gpu/drm/msm/dsi/phy/dsi_phy_28nm.c | 654 +++++++++++- drivers/gpu/drm/msm/dsi/phy/dsi_phy_28nm_8960.c | 479 ++++++++- drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c | 774 +++++++++++++- drivers/gpu/drm/msm/dsi/pll/dsi_pll.c | 184 ---- drivers/gpu/drm/msm/dsi/pll/dsi_pll.h | 130 --- drivers/gpu/drm/msm/dsi/pll/dsi_pll_10nm.c | 881 ---------------- drivers/gpu/drm/msm/dsi/pll/dsi_pll_14nm.c | 1096 -------------------- drivers/gpu/drm/msm/dsi/pll/dsi_pll_28nm.c | 643 ------------ drivers/gpu/drm/msm/dsi/pll/dsi_pll_28nm_8960.c | 526 ---------- drivers/gpu/drm/msm/dsi/pll/dsi_pll_7nm.c | 912 ---------------- drivers/gpu/drm/msm/msm_atomic.c | 7 +- drivers/gpu/drm/msm/msm_debugfs.c | 14 +- drivers/gpu/drm/msm/msm_drv.c | 36 +- drivers/gpu/drm/msm/msm_drv.h | 29 +- drivers/gpu/drm/msm/msm_fb.c | 3 +- drivers/gpu/drm/msm/msm_fence.c | 2 +- drivers/gpu/drm/msm/msm_gem.c | 212 +++- drivers/gpu/drm/msm/msm_gem.h | 126 ++- drivers/gpu/drm/msm/msm_gem_shrinker.c | 166 ++- drivers/gpu/drm/msm/msm_gpu.c | 2 + drivers/gpu/drm/msm/msm_gpu.h | 2 + drivers/gpu/drm/msm/msm_gpu_trace.h | 13 + drivers/gpu/drm/msm/msm_kms.h | 8 +- include/linux/clk-provider.h | 30 + include/uapi/drm/msm_drm.h | 1 + 65 files changed, 5402 insertions(+), 5071 deletions(-) delete mode 100644 drivers/gpu/drm/msm/dsi/pll/dsi_pll.c delete mode 100644 drivers/gpu/drm/msm/dsi/pll/dsi_pll.h delete mode 100644 drivers/gpu/drm/msm/dsi/pll/dsi_pll_10nm.c delete mode 100644 drivers/gpu/drm/msm/dsi/pll/dsi_pll_14nm.c delete mode 100644 drivers/gpu/drm/msm/dsi/pll/dsi_pll_28nm.c delete mode 100644 drivers/gpu/drm/msm/dsi/pll/dsi_pll_28nm_8960.c delete mode 100644 drivers/gpu/drm/msm/dsi/pll/dsi_pll_7nm.c