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 <[email protected]>
Cc: Dmitry Baryshkov <[email protected]>
Cc: Abhinav Kumar <[email protected]>
Cc: Jessica Zhang <[email protected]>
Cc: Sean Paul <[email protected]>
Cc: Marijn Suijten <[email protected]>
Cc: [email protected]
Cc: [email protected]
Signed-off-by: Jani Nikula <[email protected]>
---
 drivers/gpu/drm/msm/disp/mdp4/mdp4_crtc.c | 3 ++-
 drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_crtc.c 
b/drivers/gpu/drm/msm/disp/mdp4/mdp4_crtc.c
index da53ca88251e..e8066f9fd534 100644
--- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_crtc.c
+++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_crtc.c
@@ -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));
diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c 
b/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c
index 4c4900a7beda..373ae7d9bf01 100644
--- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c
+++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c
@@ -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));
-- 
2.47.3

Reply via email to