mirror_ubuntu-kernels/drivers/gpu/drm/msm
Kuogee Hsieh 858ddb64f1 drm/msm/dpu: improve DSC allocation
At DSC V1.1 DCE (Display Compression Engine) contains a DSC encoder.
However, at DSC V1.2 DCE consists of two DSC encoders, one has an odd
index and another one has an even index. Each encoder can work
independently. But only two DSC encoders from same DCE can be paired
to work together to support DSC merge mode at DSC V1.2. For DSC V1.1
two consecutive DSC encoders (start with even index) have to be paired
to support DSC merge mode.  In addition, the DSC with even index have
to be mapped to even PINGPONG index and DSC with odd index have to be
mapped to odd PINGPONG index at its data path in regardless of DSC
V1.1 or V1.2. This patch improves DSC allocation mechanism with
consideration of those factors.

Changes in V6:
-- rename _dpu_rm_reserve_dsc_single to _dpu_rm_dsc_alloc
-- rename _dpu_rm_reserve_dsc_pair to _dpu_rm_dsc_alloc_pair
-- pass global_state to _dpu_rm_pingpong_next_index()
-- remove pp_max
-- fix for loop condition check at _dpu_rm_dsc_alloc()

Changes in V5:
-- delete dsc_id[]
-- update to global_state->dsc_to_enc_id[] directly
-- replace ndx with idx
-- fix indentation at function declaration
-- only one for loop at _dpu_rm_reserve_dsc_single()

Changes in V4:
-- rework commit message
-- use reserved_by_other()
-- add _dpu_rm_pingpong_next_index()
-- revise _dpu_rm_pingpong_dsc_check()

Changes in V3:
-- add dpu_rm_pingpong_dsc_check()
-- for pair allocation use i += 2 at for loop

Changes in V2:
    -- split _dpu_rm_reserve_dsc() into _dpu_rm_reserve_dsc_single() and
       _dpu_rm_reserve_dsc_pair()

Fixes: f2803ee91a ("drm/msm/disp/dpu1: Add DSC support in RM")
Signed-off-by: Kuogee Hsieh <quic_khsieh@quicinc.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Patchwork: https://patchwork.freedesktop.org/patch/572144/
Link: https://lore.kernel.org/r/1702580172-30606-1-git-send-email-quic_khsieh@quicinc.com
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
2024-02-11 22:38:06 +02:00
..
adreno drm/msm/a6xx: set highest_bank_bit to 13 for a610 2024-02-01 15:13:41 -08:00
disp drm/msm/dpu: improve DSC allocation 2024-02-11 22:38:06 +02:00
dp drm-misc-next for v6.9: 2024-02-11 12:34:39 -08:00
dsi drm/msm/dsi: remove msm_dsi::encoder 2024-02-11 22:38:06 +02:00
hdmi drm: remove I2C_CLASS_DDC support 2024-01-18 21:10:41 +01:00
Kconfig drm/msm/gem: Convert to drm_exec 2023-12-10 11:19:44 -08:00
Makefile drm/msm/dpu: add dpu_hw_cdm abstraction for CDM block 2023-12-14 09:27:23 +02:00
msm_atomic_trace.h
msm_atomic_tracepoints.c
msm_atomic.c
msm_debugfs.c drm/msm: don't create GPU-related debugfs files with no GPU present 2023-11-20 18:31:42 -08:00
msm_debugfs.h
msm_drv.c Merge remote-tracking branch 'drm-misc/drm-misc-next' into msm-next 2023-12-10 10:07:54 -08:00
msm_drv.h drm/msm/dpu: add support to allocate CDM from RM 2023-12-14 09:27:23 +02:00
msm_dsc_helper.h drm/msm: Add MSM-specific DSC helper methods 2023-06-15 12:58:56 +03:00
msm_fb.c
msm_fbdev.c fbdev: Align deferred I/O with naming of helpers 2023-07-31 20:07:24 +02:00
msm_fence.c drm/msm: Fix hw_fence error path cleanup 2023-07-17 12:54:20 -07:00
msm_fence.h
msm_gem_prime.c drm/msm/gem: Fix double resv lock aquire 2024-02-01 14:59:35 -08:00
msm_gem_shrinker.c drm/msm: Reduce fallout of fence signaling vs reclaim hangs 2023-11-20 17:15:02 -08:00
msm_gem_submit.c drm/msm/gem: Convert to drm_exec 2023-12-10 11:19:44 -08:00
msm_gem_vma.c drm/msm: Remove vma use tracking 2023-08-10 13:08:03 -07:00
msm_gem.c drm/msm/gem: Demote userspace errors to DRM_UT_DRIVER 2023-11-20 18:35:26 -08:00
msm_gem.h drm/msm/gem: Convert to drm_exec 2023-12-10 11:19:44 -08:00
msm_gpu_devfreq.c
msm_gpu_trace.h
msm_gpu_tracepoints.c
msm_gpu.c Revert "drm/msm/gpu: Push gpu lock down past runpm" 2024-02-01 15:24:10 -08:00
msm_gpu.h drm/sched: Reverse run-queue priority enumeration 2023-11-24 23:03:53 -05:00
msm_gpummu.c
msm_io_utils.c
msm_iommu.c
msm_kms.c drm/msm: carve out KMS code from msm_drv.c 2023-10-09 11:51:48 -07:00
msm_kms.h drm/msm/mdp5: drop split display support 2024-02-11 22:38:06 +02:00
msm_mdss.c drm/msm/mdss: specify cfg bandwidth for SDM670 2024-01-25 14:36:04 -08:00
msm_mdss.h drm/msm/mdss: Handle the reg bus ICC path 2023-12-05 04:09:43 +03:00
msm_mmu.h
msm_perf.c
msm_rd.c drm/msm: don't create GPU-related debugfs files with no GPU present 2023-11-20 18:31:42 -08:00
msm_ringbuffer.c Revert "drm/msm/gpu: Push gpu lock down past runpm" 2024-02-01 15:24:10 -08:00
msm_ringbuffer.h drm/msm/a6xx: Add skeleton A7xx support 2023-10-09 11:22:05 -07:00
msm_submitqueue.c
NOTES