summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/tilcdc/tilcdc_crtc.c
diff options
context:
space:
mode:
authorJyri Sarha <jsarha@ti.com>2016-09-06 16:25:08 +0200
committerJyri Sarha <jsarha@ti.com>2016-09-07 14:54:43 +0200
commit2e0965b06d90b9dba76198d026c4c2ee04443aca (patch)
treeccef377ba06e82d714cbc0add7933fb0caadb561 /drivers/gpu/drm/tilcdc/tilcdc_crtc.c
parentdrm/tilcdc: Take CRTC lock when calling tilcdc_crtc_disable() (diff)
downloadlinux-2e0965b06d90b9dba76198d026c4c2ee04443aca.tar.xz
linux-2e0965b06d90b9dba76198d026c4c2ee04443aca.zip
drm/tilcdc: WARN if CRTC is touched without CRTC lock
WARN if CRTC is touched without CRTC lock. The crtc functions should not be called simultaneously from multiple threads. Having the DRM CRTC lock should take care of that. Signed-off-by: Jyri Sarha <jsarha@ti.com> Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/gpu/drm/tilcdc/tilcdc_crtc.c')
-rw-r--r--drivers/gpu/drm/tilcdc/tilcdc_crtc.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c
index c1cbabcfb9d4..639821fb27b7 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c
@@ -153,6 +153,8 @@ static void tilcdc_crtc_enable(struct drm_crtc *crtc)
struct drm_device *dev = crtc->dev;
struct tilcdc_crtc *tilcdc_crtc = to_tilcdc_crtc(crtc);
+ WARN_ON(!drm_modeset_is_locked(&crtc->mutex));
+
if (tilcdc_crtc->enabled)
return;
@@ -177,6 +179,8 @@ void tilcdc_crtc_disable(struct drm_crtc *crtc)
struct drm_device *dev = crtc->dev;
struct tilcdc_drm_private *priv = dev->dev_private;
+ WARN_ON(!drm_modeset_is_locked(&crtc->mutex));
+
if (!tilcdc_crtc->enabled)
return;
@@ -249,6 +253,8 @@ int tilcdc_crtc_update_fb(struct drm_crtc *crtc,
struct drm_device *dev = crtc->dev;
unsigned long flags;
+ WARN_ON(!drm_modeset_is_locked(&crtc->mutex));
+
if (tilcdc_crtc->event) {
dev_err(dev->dev, "already pending page flip!\n");
return -EBUSY;
@@ -353,6 +359,8 @@ static void tilcdc_crtc_mode_set_nofb(struct drm_crtc *crtc)
struct drm_display_mode *mode = &crtc->state->adjusted_mode;
struct drm_framebuffer *fb = crtc->primary->state->fb;
+ WARN_ON(!drm_modeset_is_locked(&crtc->mutex));
+
if (WARN_ON(!info))
return;