]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/msm: use drm_crtc_vblank_waitqueue()
authorJani Nikula <jani.nikula@intel.com>
Fri, 7 Nov 2025 11:04:57 +0000 (13:04 +0200)
committerJani Nikula <jani.nikula@intel.com>
Mon, 10 Nov 2025 13:41:38 +0000 (15:41 +0200)
We have drm_crtc_vblank_waitqueue() to get the wait_queue_head_t pointer
for a vblank. Use it instead of poking at dev->vblank[] directly.

Due to the macro maze of wait_event_timeout() that uses the address-of
operator on the argument, we have to pass it in with the indirection
operator.

Cc: Rob Clark <robin.clark@oss.qualcomm.com>
Cc: Dmitry Baryshkov <lumag@kernel.org>
Cc: Abhinav Kumar <abhinav.kumar@linux.dev>
Cc: Jessica Zhang <jesszhan0024@gmail.com>
Cc: Sean Paul <sean@poorly.run>
Cc: Marijn Suijten <marijn.suijten@somainline.org>
Cc: linux-arm-msm@vger.kernel.org
Cc: freedreno@lists.freedesktop.org
Acked-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://patch.msgid.link/5917fd537f4a775a1c135a68f294df3917980943.1762513240.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/msm/disp/mdp4/mdp4_crtc.c
drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c

index da53ca88251e7f184f4a7067fda16d6b426d3c49..e8066f9fd534339689fa1270e10fb0c0d366371a 100644 (file)
@@ -527,13 +527,14 @@ static void mdp4_crtc_wait_for_flush_done(struct drm_crtc *crtc)
        struct drm_device *dev = crtc->dev;
        struct mdp4_crtc *mdp4_crtc = to_mdp4_crtc(crtc);
        struct mdp4_kms *mdp4_kms = get_kms(crtc);
+       wait_queue_head_t *queue = drm_crtc_vblank_waitqueue(crtc);
        int ret;
 
        ret = drm_crtc_vblank_get(crtc);
        if (ret)
                return;
 
-       ret = wait_event_timeout(dev->vblank[drm_crtc_index(crtc)].queue,
+       ret = wait_event_timeout(*queue,
                !(mdp4_read(mdp4_kms, REG_MDP4_OVERLAY_FLUSH) &
                        mdp4_crtc->flushed_mask),
                msecs_to_jiffies(50));
index 4c4900a7beda8f7bd3184230a1c1b5f7ebd0c588..373ae7d9bf01cf012aac5a36f1b92ca0807df905 100644 (file)
@@ -1234,6 +1234,7 @@ static void mdp5_crtc_wait_for_flush_done(struct drm_crtc *crtc)
        struct mdp5_crtc *mdp5_crtc = to_mdp5_crtc(crtc);
        struct mdp5_crtc_state *mdp5_cstate = to_mdp5_crtc_state(crtc->state);
        struct mdp5_ctl *ctl = mdp5_cstate->ctl;
+       wait_queue_head_t *queue = drm_crtc_vblank_waitqueue(crtc);
        int ret;
 
        /* Should not call this function if crtc is disabled. */
@@ -1244,7 +1245,7 @@ static void mdp5_crtc_wait_for_flush_done(struct drm_crtc *crtc)
        if (ret)
                return;
 
-       ret = wait_event_timeout(dev->vblank[drm_crtc_index(crtc)].queue,
+       ret = wait_event_timeout(*queue,
                ((mdp5_ctl_get_commit_status(ctl) &
                mdp5_crtc->flushed_mask) == 0),
                msecs_to_jiffies(50));