aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/tilcdc
diff options
context:
space:
mode:
authorJyri Sarha <jsarha@ti.com>2016-09-06 10:25:08 -0400
committerJyri Sarha <jsarha@ti.com>2016-09-07 08:54:43 -0400
commit2e0965b06d90b9dba76198d026c4c2ee04443aca (patch)
treeccef377ba06e82d714cbc0add7933fb0caadb561 /drivers/gpu/drm/tilcdc
parent6c94c71400fbb630549611e17b430458c1c00cf8 (diff)
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')
-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)
153 struct drm_device *dev = crtc->dev; 153 struct drm_device *dev = crtc->dev;
154 struct tilcdc_crtc *tilcdc_crtc = to_tilcdc_crtc(crtc); 154 struct tilcdc_crtc *tilcdc_crtc = to_tilcdc_crtc(crtc);
155 155
156 WARN_ON(!drm_modeset_is_locked(&crtc->mutex));
157
156 if (tilcdc_crtc->enabled) 158 if (tilcdc_crtc->enabled)
157 return; 159 return;
158 160
@@ -177,6 +179,8 @@ void tilcdc_crtc_disable(struct drm_crtc *crtc)
177 struct drm_device *dev = crtc->dev; 179 struct drm_device *dev = crtc->dev;
178 struct tilcdc_drm_private *priv = dev->dev_private; 180 struct tilcdc_drm_private *priv = dev->dev_private;
179 181
182 WARN_ON(!drm_modeset_is_locked(&crtc->mutex));
183
180 if (!tilcdc_crtc->enabled) 184 if (!tilcdc_crtc->enabled)
181 return; 185 return;
182 186
@@ -249,6 +253,8 @@ int tilcdc_crtc_update_fb(struct drm_crtc *crtc,
249 struct drm_device *dev = crtc->dev; 253 struct drm_device *dev = crtc->dev;
250 unsigned long flags; 254 unsigned long flags;
251 255
256 WARN_ON(!drm_modeset_is_locked(&crtc->mutex));
257
252 if (tilcdc_crtc->event) { 258 if (tilcdc_crtc->event) {
253 dev_err(dev->dev, "already pending page flip!\n"); 259 dev_err(dev->dev, "already pending page flip!\n");
254 return -EBUSY; 260 return -EBUSY;
@@ -353,6 +359,8 @@ static void tilcdc_crtc_mode_set_nofb(struct drm_crtc *crtc)
353 struct drm_display_mode *mode = &crtc->state->adjusted_mode; 359 struct drm_display_mode *mode = &crtc->state->adjusted_mode;
354 struct drm_framebuffer *fb = crtc->primary->state->fb; 360 struct drm_framebuffer *fb = crtc->primary->state->fb;
355 361
362 WARN_ON(!drm_modeset_is_locked(&crtc->mutex));
363
356 if (WARN_ON(!info)) 364 if (WARN_ON(!info))
357 return; 365 return;
358 366