Re: [PATCH v2 0/8] drm/msm: DSC Electric Boogaloo for sm8[12]50

From: Daniel Vetter
Date: Thu Jan 05 2023 - 09:51:22 EST


On Thu, Dec 22, 2022 at 12:19:35AM +0100, Marijn Suijten wrote:
> This preliminary Display Stream Compression support package for
> (initially tested on) sm8[12]50 is based on comparing DSC behaviour
> between downstream and mainline. Some new callbacks are added (for
> binding blocks on active CTLs), logic bugs are corrected, zeroed struct
> members are now assigned proper values, and RM allocation and hw block
> retrieval now hand out (or not) DSC blocks without causing null-pointer
> dereferences.
>
> Unfortunately it is not yet enough to get rid of completely corrupted
> display output on the boards I tested here:
> - Sony Xperia 1 (sm8150), 1644x3840 or 1096x2560 pixels;
> - Sony Xperia 5II (sm8250), 1080x2520, at 60 or 120Hz;
> - (can include more Xperia boards if desired)
>
> Both devices use the DUALPIPE_DSCMERGE topology downstream: dual LM, PP
> and DSC, but only a single INTF/encoder/DSI-link.
>
> Hopefully this spawns some community/upstream interest to help rootcause
> our corruption issues (after we open a drm/msm report on GitLab for more
> appropriate tracking).
>
> The Sony Xperia XZ3 (sdm845) was fully tested and validated with this
> series to not cause any regressions (and one of the math fixes now
> allows us to change slice_count in the panel driver, which would corrupt
> previously).
>
> Changes since v1:
>
> - Split patch 6 into two separately backportable Fixes: patches;
> - Additionally remove num_enc from msm_display_topology in favour of
> num_dsc;
> - Reorder patches to have all Fixes: at the beginning for easier
> picking;
> - Fix existing multiline comment while editing it anyway;
> - Add missing Signed-off-by to patch 5.

Please note that Electric Boogaloo/Boogaloo Boys has been appropriated by
US alt-right groups, and so is really not a great thing to put into the
cover letter for your patch series. For the next round, please use a meme
that isn't tarnished like this.

Thanks, Daniel


>
> v1: https://lore.kernel.org/linux-arm-msm/20221213232207.113607-1-marijn.suijten@xxxxxxxxxxxxxx/T/#u
>
> Marijn Suijten (8):
> drm/msm/dpu: Wire up DSC mask for active CTL configuration
> drm/msm/dsi: Use DSC slice(s) packet size to compute word count
> drm/msm/dsi: Flip greater-than check for slice_count and
> slice_per_intf
> drm/msm/dpu: Disallow unallocated resources to be returned
> drm/msm/dpu: Reject topologies for which no DSC blocks are available
> drm/msm/dpu: Remove num_enc from topology struct in favour of num_dsc
> drm/msm/dpu: Implement DSC binding to PP block for CTL V1
> drm/msm/dpu: Add DSC configuration for SM8150 and SM8250
>
> drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 12 +++++----
> .../drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c | 1 +
> .../drm/msm/disp/dpu1/dpu_encoder_phys_vid.c | 1 +
> .../gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c | 23 +++++++++++-----
> .../gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h | 9 +++++++
> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c | 27 +++++++++++++++++++
> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.h | 4 +++
> drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c | 14 ++++++++--
> drivers/gpu/drm/msm/dsi/dsi_host.c | 7 ++---
> drivers/gpu/drm/msm/msm_drv.h | 2 --
> 10 files changed, 82 insertions(+), 18 deletions(-)
>
> --
> 2.39.0
>

--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch