Skip to content

Commit

Permalink
omapdrm: use modeset_lock_all
Browse files Browse the repository at this point in the history
I've left the locking in the debugfs code as-is, it's essentially just
used to keep the framebuffer object alive (which won't be necessary
any more later on). We don't need fb refcounting either, since the new
mode_config.fb_lock ensures that the framebuffers can't disappear
(once mode_config.mutex doesn't guarantee this any more later on in
the series).

The fbcon restore needs all modeset locks. The crtc callbacks seem to
only need the crtc locks, but I've quickly discussed things with Rob
Clark and he's fine with just using modeset_lock_all for those, too.
He'll look into converting things over later.

Reviewed-by: Rob Clark <rob@ti.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
  • Loading branch information
Daniel Vetter committed Jan 20, 2013
1 parent bbe4b99 commit d5d2636
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 6 deletions.
8 changes: 4 additions & 4 deletions drivers/staging/omapdrm/omap_crtc.c
Original file line number Diff line number Diff line change
Expand Up @@ -278,13 +278,13 @@ static void page_flip_worker(struct work_struct *work)
struct drm_display_mode *mode = &crtc->mode;
struct drm_gem_object *bo;

mutex_lock(&dev->mode_config.mutex);
drm_modeset_lock_all(dev);
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);
mutex_unlock(&dev->mode_config.mutex);
drm_modeset_unlock_all(dev);

bo = omap_framebuffer_bo(crtc->fb, 0);
drm_gem_object_unreference_unlocked(bo);
Expand Down Expand Up @@ -417,7 +417,7 @@ static void apply_worker(struct work_struct *work)
* the callbacks and list modification all serialized
* with respect to modesetting ioctls from userspace.
*/
mutex_lock(&dev->mode_config.mutex);
drm_modeset_lock_all(dev);
dispc_runtime_get();

/*
Expand Down Expand Up @@ -462,7 +462,7 @@ static void apply_worker(struct work_struct *work)

out:
dispc_runtime_put();
mutex_unlock(&dev->mode_config.mutex);
drm_modeset_unlock_all(dev);
}

int omap_crtc_apply(struct drm_crtc *crtc,
Expand Down
4 changes: 2 additions & 2 deletions drivers/staging/omapdrm/omap_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -449,9 +449,9 @@ static void dev_lastclose(struct drm_device *dev)
}
}

mutex_lock(&dev->mode_config.mutex);
drm_modeset_lock_all(dev);
ret = drm_fb_helper_restore_fbdev_mode(priv->fbdev);
mutex_unlock(&dev->mode_config.mutex);
drm_modeset_unlock_all(dev);
if (ret)
DBG("failed to restore crtc mode");
}
Expand Down

0 comments on commit d5d2636

Please sign in to comment.