aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/drm_fb_helper.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index 04d3fd3658f3..158d8e51db3d 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -326,12 +326,21 @@ static bool drm_fb_helper_force_kernel_mode(void)
326 return false; 326 return false;
327 327
328 list_for_each_entry(helper, &kernel_fb_helper_list, kernel_fb_list) { 328 list_for_each_entry(helper, &kernel_fb_helper_list, kernel_fb_list) {
329 if (helper->dev->switch_power_state == DRM_SWITCH_POWER_OFF) 329 struct drm_device *dev = helper->dev;
330
331 if (dev->switch_power_state == DRM_SWITCH_POWER_OFF)
332 continue;
333
334 if (!mutex_trylock(&dev->mode_config.mutex)) {
335 error = true;
330 continue; 336 continue;
337 }
331 338
332 ret = drm_fb_helper_restore_fbdev_mode(helper); 339 ret = drm_fb_helper_restore_fbdev_mode(helper);
333 if (ret) 340 if (ret)
334 error = true; 341 error = true;
342
343 mutex_unlock(&dev->mode_config.mutex);
335 } 344 }
336 return error; 345 return error;
337} 346}