omapdrm: only take crtc->mutex in crtc callbacks
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 24 Jan 2013 16:20:33 +0000 (17:20 +0100)
committerRob Clark <robdclark@gmail.com>
Sat, 16 Feb 2013 22:38:06 +0000 (17:38 -0500)
Omapdrm doesn't do anything nefarious with crtc load detection or has
any shared resources, so this is enough. We also need to adjust the
WARN_ON.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Rob Clark <robdclark@gmail.com>
drivers/gpu/drm/omapdrm/omap_crtc.c

index 2b97cf90071b9ee266777328c470128c6360b648..ac2258f59805968e65cde237a3134de6b92bd89b 100644 (file)
@@ -274,17 +274,16 @@ static void page_flip_worker(struct work_struct *work)
        struct omap_crtc *omap_crtc =
                        container_of(work, struct omap_crtc, page_flip_work);
        struct drm_crtc *crtc = &omap_crtc->base;
-       struct drm_device *dev = crtc->dev;
        struct drm_display_mode *mode = &crtc->mode;
        struct drm_gem_object *bo;
 
-       drm_modeset_lock_all(dev);
+       mutex_lock(&crtc->mutex);
        omap_plane_mode_set(omap_crtc->plane, crtc, crtc->fb,
                        0, 0, mode->hdisplay, mode->vdisplay,
                        crtc->x << 16, crtc->y << 16,
                        mode->hdisplay << 16, mode->vdisplay << 16,
                        vblank_cb, crtc);
-       drm_modeset_unlock_all(dev);
+       mutex_unlock(&crtc->mutex);
 
        bo = omap_framebuffer_bo(crtc->fb, 0);
        drm_gem_object_unreference_unlocked(bo);
@@ -417,7 +416,7 @@ static void apply_worker(struct work_struct *work)
         * the callbacks and list modification all serialized
         * with respect to modesetting ioctls from userspace.
         */
-       drm_modeset_lock_all(dev);
+       mutex_lock(&crtc->mutex);
        dispc_runtime_get();
 
        /*
@@ -462,16 +461,15 @@ static void apply_worker(struct work_struct *work)
 
 out:
        dispc_runtime_put();
-       drm_modeset_unlock_all(dev);
+       mutex_unlock(&crtc->mutex);
 }
 
 int omap_crtc_apply(struct drm_crtc *crtc,
                struct omap_drm_apply *apply)
 {
        struct omap_crtc *omap_crtc = to_omap_crtc(crtc);
-       struct drm_device *dev = crtc->dev;
 
-       WARN_ON(!mutex_is_locked(&dev->mode_config.mutex));
+       WARN_ON(!mutex_is_locked(&crtc->mutex));
 
        /* no need to queue it again if it is already queued: */
        if (apply->queued)
This page took 0.04248 seconds and 5 git commands to generate.