[RFC PATCH 0/7] drm/msm/dpu: Implement tearcheck support on INTF block

From: Marijn Suijten
Date: Sat Dec 31 2022 - 16:50:47 EST


Since DPU 5.0.0 the TEARCHECK registers and interrupts moved out of the
PINGPONG block and into the INTF. Implement the necessary callbacks in
the INTF block, and use these callbacks together with the INTF_TEAR
interrupts. Additionally, disable previous register writes and remove
unused interrupts in the PINGPONG and MDP_TOP blocks for these newer
platforms.

With these patches the devices on DPU >= 5.0.0 listed below now update
their panels at 60fps without tearing (nor sluggishness), and without
repeated timeouts in dmesg.

Tested on the following devices with command-mode panels and TE pins:

- Sony Xperia XZ3 (sdm845, DPU 4.0.0, cmdmode panel): no regressions on
PINGPONG TE;
- Sony Xperia 5 (sm8150, DPU 5.0.0);
- Sony Xperia 10 II (sm6125, DPU 5.0.4).

Konrad Dybcio (1):
drm/msm/dpu: Move dpu_hw_{tear_check,pp_vsync_info} to dpu_hw_mdss.h

Marijn Suijten (6):
drm/msm/dpu: Remove unused INTF0 interrupt mask from sm6115/qcm2290
drm/msm/dpu: Disable pingpong TE on DPU 5.0.0 and above
drm/msm/dpu: Disable MDP vsync source selection on DPU 5.0.0 and above
drm/msm/dpu: Document and enable TEAR interrupts on DSI interfaces
drm/msm/dpu: Implement tearcheck support on INTF block
drm/msm/dpu: Remove intr_rdptr from DPU >= 5.0.0 pingpong config

drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 11 +
.../gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h | 10 +-
.../drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c | 108 +++++++--
.../gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c | 181 +++++++++------
.../gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h | 7 +-
.../gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.c | 12 +
.../gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.h | 2 +
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.c | 206 ++++++++++++++++++
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.h | 29 +++
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_mdss.h | 48 ++++
.../gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.c | 18 +-
.../gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.h | 22 --
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_top.c | 52 +++--
drivers/gpu/drm/msm/disp/dpu1/dpu_hwio.h | 3 +
14 files changed, 570 insertions(+), 139 deletions(-)

--
2.39.0