Skip to content
Tags give the ability to mark specific points in history as being important
  • drm-msm-fixes-2024-02-15
    8c7bfd82 · drm/msm: Wire up tlb ops ·
    Fixes for v6.8-rc5
    
    GPU:
    - dmabuf vmap fix
    - a610 UBWC corruption fix (incorrect hbb)
    - revert a commit that was making GPU recovery unreliable
    - tlb invalidation fix
  • drm-msm-fixes-2024-02-07
    Fixes for v6.8-rc4
    
    DPU:
    - fix for kernel doc warnings and smatch warnings in dpu_encoder
    - fix for smatch warning in dpu_encoder
    - fix the bus bandwidth value for SDM670
    
    DP:
    - fixes to handle unknown bpc case correctly for DP. The current code was
      spilling over into other bits of DP configuration register, had to be
      fixed to avoid the extra shifts which were causing the spill over
    - fix for MISC0 programming in DP driver to program the correct
      colorimetry value
    
    GPU:
    - dmabuf vmap fix
    - a610 UBWC corruption fix (incorrect hbb)
    - revert a commit that was making GPU recovery unreliable
  • drm-msm-next-2023-12-15
    Updates for v6.8:
    
    Core:
    - Add support for SDM670, SM8650
    - Handle the CFG interconnect to fix the obscure hangs / timeouts
      on register write
    - Kconfig fix for QMP dependency
    - DT schema fixes
    
    DPU:
    - Add support for SDM670, SM8650
    - Enable SmartDMA on SM8350 and SM8450
    - Correct UBWC settings for SC8280XP
    - Fix catalog settings for SC8180X
    - Actually make use of the version to switch between QSEED3/3LITE/4
      scalers
    - Use devres-managed and drm-managed allocations where appropriate
    - misc other fixes
    - Enabled YUV writeback on SC7280, SM8250
    - Enabled writeback on SM8350, SM8450
    - CRC fix when encoder is selected as the input source
    - other misc fixes
    
    MDP4:
    - Use devres-managed and drm-managed allocations where appropriate
    - flush vblank event on CRTC disable
    
    MDP5:
    - Use devres-managed and drm-managed allocations where appropriate
    
    DP:
    - Add support for SM8650
    - Enable PM runtime support
    - Merge msm-specific debugfs dir with the generic one
    - Described DisplayPort on SM8150 in DeviceTree bindings
    - Moved dp_display_get_next_bridge() to probe()
    
    DSI:
    - Add support for SM8650
    - Enable PM runtime support
    
    GPU/GEM:
    - demote userspace triggerable warnings to debug
    - add GEM object metadata UAPI
    - move GPU devcoredumps to GPU device
    - fix hangcheck to skip retired submits
    - expose UBWC config to userspace
    - fix a680 chip-id
    - drm_exec conversion
    - drm/ci: remove rebase-merge directory (to unblock CI)
  • drm-msm-fixes-2023-11-21
    Fixes for v6.7-rc3:
    
    - Fix the VREG_CTRL_1 for 4nm CPHY to match downstream
    - Remove duplicate call to drm_kms_helper_poll_init() in msm_drm_init()
    - Fix the safe_lut_tbl[] for sc8280xp to match downstream
    - Don't attach the drm_dp_set_subconnector_property() for eDP
    - Fix to attach drm_dp_set_subconnector_property() for DP. Otherwise
      there is a bootup crash on multiple targets
    - Remove unnecessary NULL check left behind during cleanup
  • drm-msm-next-2023-10-17
    Updates for v6.7
    
    DP:
    - use existing helpers for DPCD handling instead of open-coded functions
    - set the subconnector type according to the plugged cable / dongle
      skip validity check for DP CTS EDID checksum
    
    DPU:
    - continued migration of feature flags to use core revision checks
    - reworked interrupts code to use '0' as NO_IRQ, removed raw IRQ indices
      from log / trace output
    
    gpu:
    - a7xx support (a730, a740)
    - fixes and additional speedbins for a635, a643
    
    core:
    - decouple msm_drv from kms to more cleanly support headless devices (like
      imx5+a2xx)
  • drm-msm-fixes-2023-10-07
    Fixes for v6.6-rc5
    
    - fix to not reset the PHY everytime we start link training but only
      do it if link training fails. Without this, the PLL unlocked
      interrupt fires causing "Unexpected DP AUX IRQ 0x01000000 when
      not busy" spam in the logs since last 2-3 cycles
    - correct the highest bank bit to match downstream device tree for
      msm8998
    - skip the video mode wait if the timing engine is not enabled. This
      was introduced after pre_enable flag for DSI video mode panels
      where we would end up waiting for the video mode done interrupt
      even before enabling timing engine causing error spam and long
      bootup times.
    - check the correct return code of irq_of_parse_and_map() in DSI code
    - avoid overflow issues in the dpu bandwidth calculation . This was
      exposed for high resolution displays and a critical fix to avoid
      atomic_check failure
    - minor fix to add new lines in DP print messages.
    - Fix to fail atomic_check() if the resolution exceeds max mdp clk.
      This leads to underflow otherwise if we try to allow that frame.
  • drm-msm-next-2023-08-20
    Updates for v6.6, which includes a backmerge of msm-fixes to avoid conficts.
    
    Core:
    - SM6125 MDSS support
    
    DPU:
    - SM6125 DPU support
    - Added subblocks to display snapshot
    - Use UBWC data from MDSS driver rather than duplicating it
    - dpu_core_perf cleanup
    
    DSI:
    - Enabled burst mode to fix CMD mode panels
    - Runtime PM support
    - refgen regulator support
    
    DSI PHY:
    - SM6125 support in 14nm DSI PHY driver
    
    GPU:
    - Rework GPU identification to prepare for a7xx, and other a7xx prep
    - Cleanups and fixes
    - Disallow legacy relocs on a6xx and newer
    - a690: switch to using a660_gmu.bin fw as this is what we have in
      linux-firmware and we see no evidence that it should be different
      from other a660 family (a6xx subgen 4) devices
    - Submit overhead opts, 1.6x faster for NO_IMPLICIT_SYNC commits with
      100 BOs to 2.5x faster for 1000 BOs
  • drm-msm-fixes-2023-07-27
    Fixes for v6.5-rc4
    
    Display:
    + Fix to correct the UBWC programming for decoder version 4.3 seen
      on SM8550
    + Add the missing flush and fetch bits for DMA4 and DMA5 SSPPs.
    + Fix to drop the unused dpu_core_perf_data_bus_id enum from the code
    + Drop the unused dsi_phy_14nm_17mA_regulators from QCM 2290 DSI cfg.
    
    GPU:
    + Fix warn splat for newer devices without revn
    + Remove name/revn for a690.. we shouldn't be populating these for
      newer devices, for consistency, but it slipped through review
    + Fix a6xx gpu snapshot BINDLESS_DATA size (was listed in bytes
      instead of dwords, causing AHB faults on a6xx gen4/a660-family)
    + Disallow submit with fence id 0
  • drm-msm-next-2023-06-18
    Updates for v6.5.. this includes a backmerg of drm-next tree to be able
    to use new DRM DSC helpers.
    
    Core:
    + Add Marijn Suijten as drm/msm reviewer
    + Adreno A660 bindings
    + SM8350 MDSS bindings fix
    + Fix adreno_is_a690() warnings
    + More generic (DRM) and MSM-specific DSC helpers
    
    DP:
    + Removed obsolete USB-PD remains
    + Documented DP compatible string for sm8550 platform
    
    DPU:
    + Enable missing features (DSPP, DSC, split display) on sc8180x,
      sc8280xp, sm8450
    + Enabled writeback on sc7280
    + Implemented tearcheck support to support vsync on SM150 and
      newer platforms
    + Native HDMI output support
    + Dropped unused features: regdma, GC, IGC
    + Fixed the DSC flush operations
    + Simplified QoS handling, removing obsolete and unused features
      and merging SSPP and WB code paths
    + Reworked dpu_encoder initialisation path
    + Enabled DSPP support on sdm845
    + Disabled color-management if DSPP blocks are not available
    + Added support for DSC 1.2 blocks found on sm8350 and later
    + Added .fb_dirty to fix CMD panels
    
    DSI:
    + Drop powerup quirks in favour of using pre_enable_prev_first for
      downstream bridges
    + Fixed 14nm DSI PHY programming
    + Added support for DSI and 28nm DSI PHY on MSM8226 platform
    + Make use of DRM and MSM DSC helpers
    
    MDP5:
    + Added support for display controller on MSM8226 platform
    
    GPU:
    + A690 support
    + Don't set IO_PGTABLE_QUIRK_ARM_OUTER_WBWA on devices with coherent SMMU
      (like A690)
    + Move cmdstream dumping out of fence signaling path
    + Cleanups
    + Support for a6xx devices without GMU (aka "GMU wrapper"
    + a610 support
    + a619_holi support (a619 variant without GMU)
  • drm-msm-fixes-2023-06-08
    A few more late fixes for v6.4-rc6
    
    + Fix max segment size to address splat on newer a6xx
    + Disable PSR by default w/ modparam to re-enable, since there
      still seems to be a lingering issue
    + Fix HPD issue
    + Fix issue with unitialized GMU mutex
  • drm-msm-fixes-2023-06-04
    A few more late fixes for v6.4-rc6
    
    + Fix max segment size to address splat on newer a6xx
    + Disable PSR by default w/ modparam to re-enable, since there
      still seems to be a lingering issue
    + Fix HPD issue
    + Fix issue with unitialized GMU mutex
  • drm-msm-fixes-2023-05-17
    msm-fixes for v6.4-rc3
    
    Display Fixes:
    
    + Catalog fixes:
     - fix the programmable fetch lines and qos settings of msm8998
       to match what is present downstream
     - fix the LM pairs for msm8998 to match what is present downstream.
       The current settings are not right as LMs with incompatible
       connected blocks are paired
     - remove unused INTF0 interrupt mask from SM6115/QCM2290 as there
       is no INTF0 present on those chipsets. There is only one DSI on
       index 1
     - remove TE2 block from relevant chipsets because this is mainly
       used for ping-pong split feature which is not supported upstream
       and also for the chipsets where we are removing them in this
       change, that block is not present as the tear check has been moved
       to the intf block
     - relocate non-MDP_TOP INTF_INTR offsets from dpu_hwio.h to
       dpu_hw_interrupts.c to match where they belong
     - fix the indentation for REV_7xxx interrupt masks
     - fix the offset and version for dither blocks of SM8[34]50/SC8280XP
       chipsets as it was incorrect
     - make the ping-pong blk length 0 for appropriate chipsets as those
       chipsets only have a dither ping-pong dither block but no other
       functionality in the base ping-pong
     - remove some duplicate register defines from INTF
    + Fix the log mask for the writeback block so that it can be enabled
      correctly via debugfs
    + unregister the hdmi codec for dp during unbind otherwise it leaks
      audio codec devices
    + Yaml change to fix warnings related to 'qcom,master-dsi' and
      'qcom,sync-dual-dsi'
    
    GPU Fixes:
    
    + fix submit error path leak
    + arm-smmu-qcom fix for regression that broke per-process page tables
    + fix no-iommu crash
  • drm-msm-next-2023-04-10
    main pull request for v6.4
    
    Core Display:
    ============
    * Bugfixes for error handling during probe
    * rework UBWC decoder programming
    * prepare_commit cleanup
    * bindings for SM8550 (MDSS, DPU), SM8450 (DP)
    * timeout calculation fixup
    * atomic: use drm_crtc_next_vblank_start() instead of our own
      custom thing to calculate the start of next vblank
    
    DP:
    ==
    * interrupts cleanup
    
    DPU:
    ===
    * DSPP sub-block flush on sc7280
    * support AR30 in addition to XR30 format
    * Allow using REC_0 and REC_1 to handle wide (4k) RGB planes
    * Split the HW catalog into individual per-SoC files
    
    DSI:
    ===
    * rework DSI instance ID detection on obscure platforms
    
    GPU:
    ===
    * uapi C++ compatibility fix
    * a6xx: More robust gdsc reset
    * a3xx and a4xx devfreq support
    * update generated headers
    * various cleanups and fixes
    * GPU and GEM updates to avoid allocations which could trigger
      reclaim (shrinker) in fence signaling path
    * dma-fence deadline hint support and wait-boost
    * a640 speedbin support
    * a650 speedbin support
  • dma-fence-deadline
    This series adds a deadline hint to fences, so realtime deadlines
    such as vblank can be communicated to the fence signaller for power/
    frequency management decisions.
    
    This is partially inspired by a trick i915 does, but implemented
    via dma-fence for a couple of reasons:
    
    1) To continue to be able to use the atomic helpers
    2) To support cases where display and gpu are different drivers
    
    See https://patchwork.freedesktop.org/series/93035/
    
    This does not yet add any UAPI, although this will be needed in
    a number of cases:
    
    1) Workloads "ping-ponging" between CPU and GPU, where we don't
       want the GPU freq governor to interpret time stalled waiting
       for GPU as "idle" time
    2) Cases where the compositor is waiting for fences to be signaled
       before issuing the atomic ioctl, for example to maintain 60fps
       cursor updates even when the GPU is not able to maintain that
       framerate.
  • dma-fence-deadline-core
    Immutable branch with dma-fence deadline hint support between drm-next and driver -next trees.
  • drm-msm-next-2023-03-15
    msm-next for v6.4
    
    Early pull req with PSR and related drm core helpers
  • drm-msm-fixes-2023-03-09
    msm-fixes for v6.3-rc2
    
    - Fix for possible invalid ptr free in submit ioctl syncobj cleanup path.
    - Synchronize GMU removal in driver teardown path
    - a5xx preemption fixes
    - Fix runpm imbalance at unbind
    - DPU hw catalog fixes:
     - set DPU_MDP_PERIPH_0_REMOVED for sc8280xp as this is another chipset
       where the PERIPH_0 block of registers is not there
     - fix the DPU features supported in QCM2290 by comparing it with the
       downstream device tree
     - fix the length of registers in the sc7180_ctl from 0xe4 to 0x1dc
     - fix the max mixer line width for sm6115 and qcm2290 chipsets in the
       DPU catalog
     - fix the scaler version on sm8550, sc8280xp, sm8450, sm8250, sm8350
       and sm6115. This was incorrectly populated on the SW version of the
       scaler library and  not the scaler HW version
     - Drop dim layer support for msm8998 as its not indicated to be
       supported in the downstream DTSI
     - fix the DPU_CLK_CTRL bits for msm 8998 sspp blocks
     - Use DPU_CLK_CTRL_DMA* prefix instead of DPU_CLK_CTRL_CURSOR*
       for all chipsets for the DMA sspp blocks
     - fix the ping-pong block base address for sc7280 in the DPU HW catalog
    - Fix stack corruption issue in the dpu_hw_ctl_setup_blendstage() function
      as it was causing a negative left shift by protecting against an invalid
      index
    - Clear the DSPP reservations in dpu_rm_release(). This was missed out and
      as as result the DSPP was not released from the resource manager global
      state.
  • drm-msm-next-2023-01-30
    msm-next for v6.3
    
    There is one devfreq patch, maintainer acked to land via msm-next to
    avoid a build break on platforms that do not support PM_DEVFREQ.  And
    otherwise the usual assortment:
    
    GPU:
    - Add MSM_SUBMIT_BO_NO_IMPLICIT
    - a2xx: Support to load legacy firmware
    - a6xx: GPU devcore dump updates for a650/a660
    - GPU devfreq tuning and fixes
    
    DPU, DSI, MDSS:
    - Support for SM8350, SM8450 SM8550 and SC8280XP platform
    
    Core:
    - Added bindings for SM8150 (driver support already present)
    
    DPU:
    - Partial support for DSC on SM8150 and SM8250
    - Fixed color transformation matrix being lost on suspend/resume
    - Include DSC blocks into register snapshot
    - Misc HW catalog fixes
    
    DP:
    - Support for DP on SDM845 and SC8280XP platforms
    - HPD fixes
    - Support for limiting DP link rate via DT property, this enables
    - Support for HBR3 rates.
    
    DSI:
    - Validate display modes according to the DSI OPP table
    - DSI PHY support for the SM6375 platform
    - Fixed byte intf clock selection for 14nm PHYs
    - Fix the case of empty OPP tables (fixing db410c)
    - DT schema rework and fixes
    
    HDMI:
    - Turn 8960 HDMI PHY into clock provider,
    - Make 8960 HDMI PHY use PXO clock from DT
    
    MDP5:
    - Schema conversion to YAML
  • drm-msm-fixes-2023-01-16
    msm-fixes for v6.3-rc5
    
    Two GPU fixes which were meant to be part of the previous pull request,
    but I'd forgotten to fetch from gitlab after the MR was merged so that
    git tag was applied to the wrong commit.
    
    - kexec shutdown fix
    - fix potential double free
  • drm-msm-fixes-2023-01-12
    msm-fixes for v6.3-rc4
    
    Display Fixes:
    
    - Fix the documentation for dpu_encoder_phys_wb_init() and
      dpu_encoder_phys_wb_setup_fb() APIs to address doc warnings
    - Remove vcca-supply and vdds-supply as mandatory for 14nm PHY and
      10nm PHY DT schemas respectively as they are not present on some
      SOCs using these PHYs
    - Add the dsi-phy-regulator-ldo-mode to dsi-phy-28nm.yaml as it was
      missed out during txt to yaml migration
    - Remove operating-points-v2 and power-domain as a required property
      for the DSI controller as thats not the case for every SOC
    - Fix the description from display escape clock to display core
      clock in the dsi controller yaml
    - Fix the memory leak for mdp1-mem path for the cases when we return
      early after failing to get mdp0-mem ICC paths for msm
    - Fix error handling path in msm_hdmi_dev_probe() to release the phy
      ref count when devm_pm_runtime_enable() fails
    - Fix the dp_aux_isr() routine to make sure it doesnt incorrectly
      signal the aux transaction as complete if the ISR was not an AUX
      isr. This fixes a big hitter stability bug on chromebooks.
    - Add protection against null pointer dereference when there is no
      kms object as in the case of headless adreno GPU in the shutdown
      path.
    
    GPU Fixes:
    
    - a5xx: fix quirks to actually be a bitmask and not overwrite each
      other
    - a6xx: fix gx halt sequence to avoid 1000ms hang on some devices
    - kexec shutdown fix
    - fix potential double free