lkml.org 
[lkml]   [2022]   [Dec]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[PATCH v2 0/8] drm/msm: DSC Electric Boogaloo for sm8[12]50
Date
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.

v1: https://lore.kernel.org/linux-arm-msm/20221213232207.113607-1-marijn.suijten@somainline.org/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

\
 
 \ /
  Last update: 2023-03-26 23:17    [W:0.132 / U:0.484 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site