Re: [PATCH v4 09/10] drm/msm/dpu: only reassign resources when the encoder is reprogrammed

From: Joonhoe Kim

Date: Fri Oct 16 2026 - 08:41:26 EST


On Sat, 03 Oct 2026 03:30:24 +0300, Dmitry Baryshkov wrote:
> Reassign only when the encoder is reprogrammed too. Enabling colour
> management still needs a modeset, as that is when DSPPs join the
> topology, so ask for one in dpu_crtc_check_mode_changed() and only there.

Tested with 7/10 and this patch on v7.3-rc4, with out-of-tree support
for a Lenovo Legion Tab Y700 Gen 5 (SM8850, bonded DSI). A compositor
sets the CRTC CTM through the legacy property ioctl: NULL -> blob, a
series of blob -> blob updates, then back to NULL. Over two such
rounds, counting msm_dsi_host_power_off/on with kprobes: without the
series every NULL <-> blob change was a full modeset, four in total;
with it only the first NULL -> blob after boot was, and the blob ->
blob updates and the clears were plain commits.

That tree also carries out-of-tree SPR support, so for the test
dpu_crtc_needs_dspp() also returned true when SPR is enabled.

Tested-by: Joonhoe Kim <26rote@xxxxxxxxx>

W=1 warns about the kernel-doc of dpu_crtc_check_mode_changed(): the
new helpers sit between that comment and the function.

A CRTC now keeps its DSPPs after the CTM is cleared, until its next
modeset, so on chips with a single DSPP (SC7180, SC7280, ...) another
CRTC asking for a CTM fails dpu_rm_reserve() in the meantime. Maybe
worth a line in the commit message.

Thanks,
Joonhoe Kim