From: Ville Syrjälä Date: Wed, 19 Nov 2025 18:16:01 +0000 (+0200) Subject: drm/i915: Use the proper (hw.crtc) for the cursor unpin vblank worker X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0aee7d2e32e554ca0969063694568975817494a4;p=thirdparty%2Fkernel%2Flinux.git drm/i915: Use the proper (hw.crtc) for the cursor unpin vblank worker uapi.crtc is NULL for joiner secondary pipes, so using that is nonsense in most places. Switch to hw.crtc so that we use the deferred cursor unpin also on joiner secondary pipes. Signed-off-by: Ville Syrjälä Link: https://patch.msgid.link/20251119181606.17129-2-ville.syrjala@linux.intel.com Reviewed-by: Jani Nikula --- diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c b/drivers/gpu/drm/i915/display/intel_crtc.c index 153ff4b4b52c5..2fe645860385d 100644 --- a/drivers/gpu/drm/i915/display/intel_crtc.c +++ b/drivers/gpu/drm/i915/display/intel_crtc.c @@ -552,7 +552,7 @@ void intel_pipe_update_start(struct intel_atomic_state *state, for_each_oldnew_intel_plane_in_state(state, plane, old_plane_state, new_plane_state, i) { - if (old_plane_state->uapi.crtc == &crtc->base) + if (old_plane_state->hw.crtc == &crtc->base) intel_plane_init_cursor_vblank_work(old_plane_state, new_plane_state); } @@ -704,7 +704,7 @@ void intel_pipe_update_end(struct intel_atomic_state *state, int i; for_each_old_intel_plane_in_state(state, plane, old_plane_state, i) { - if (old_plane_state->uapi.crtc == &crtc->base && + if (old_plane_state->hw.crtc == &crtc->base && old_plane_state->unpin_work.vblank) { drm_vblank_work_schedule(&old_plane_state->unpin_work, drm_crtc_accurate_vblank_count(&crtc->base) + 1, diff --git a/drivers/gpu/drm/i915/display/intel_plane.c b/drivers/gpu/drm/i915/display/intel_plane.c index a7fec5ba6ac0c..870e6b896be6a 100644 --- a/drivers/gpu/drm/i915/display/intel_plane.c +++ b/drivers/gpu/drm/i915/display/intel_plane.c @@ -1408,7 +1408,7 @@ void intel_plane_init_cursor_vblank_work(struct intel_plane_state *old_plane_sta old_plane_state->ggtt_vma == new_plane_state->ggtt_vma) return; - drm_vblank_work_init(&old_plane_state->unpin_work, old_plane_state->uapi.crtc, + drm_vblank_work_init(&old_plane_state->unpin_work, old_plane_state->hw.crtc, intel_cursor_unpin_work); }