On Sun, Apr 11, 2021 at 05:53:32PM -0700, Rob Clark wrote: > 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 Pulled into drm-next, thanks for your pull. Maybe to make this even easier for us: Pull summary in the tag is nice :-) Dave, I've done a backmerge of drm-fixes into drm-next first since this was on a newer baseline. I asked Alex to double-check the result just in case. -Daniel > 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 -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch