drm/msm: dpu: Don't drop locks in crtc_vblank_enable
authorSean Paul <seanpaul@chromium.org>
Fri, 16 Nov 2018 18:42:23 +0000 (13:42 -0500)
committerRob Clark <robdclark@gmail.com>
Tue, 11 Dec 2018 18:10:12 +0000 (13:10 -0500)
Now that runtime resume is handled in encoder, we don't need to worry
about crtc_lock recursion when calling pm_runtime_(get|put). So drop the
lock drops in _dpu_crtc_vblank_enable_no_lock().

Changes in v2:
- None

Reviewed-by: Jeykumar Sankaran <jsanka@codeaurora.org>
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Rob Clark <robdclark@gmail.com>
drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c

index 44bd3b8..6da2492 100644 (file)
@@ -781,10 +781,7 @@ static void _dpu_crtc_vblank_enable_no_lock(
        struct drm_encoder *enc;
 
        if (enable) {
-               /* drop lock since power crtc cb may try to re-acquire lock */
-               mutex_unlock(&dpu_crtc->crtc_lock);
                pm_runtime_get_sync(dev->dev);
-               mutex_lock(&dpu_crtc->crtc_lock);
 
                list_for_each_entry(enc, &dev->mode_config.encoder_list, head) {
                        if (enc->crtc != crtc)
@@ -809,10 +806,7 @@ static void _dpu_crtc_vblank_enable_no_lock(
                        dpu_encoder_register_vblank_callback(enc, NULL, NULL);
                }
 
-               /* drop lock since power crtc cb may try to re-acquire lock */
-               mutex_unlock(&dpu_crtc->crtc_lock);
                pm_runtime_put_sync(dev->dev);
-               mutex_lock(&dpu_crtc->crtc_lock);
        }
 }