diff options
Diffstat (limited to 'drivers/gpu/drm/drm_fb_helper.c')
| -rw-r--r-- | drivers/gpu/drm/drm_fb_helper.c | 8 | 
1 files changed, 5 insertions, 3 deletions
| diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c index 6764dce44e84..b78cbe74dadf 100644 --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c @@ -1551,10 +1551,10 @@ int drm_fb_helper_hotplug_event(struct drm_fb_helper *fb_helper)  	if (!fb_helper->fb)  		return 0; -	drm_modeset_lock_all(dev); +	mutex_lock(&fb_helper->dev->mode_config.mutex);  	if (!drm_fb_helper_is_bound(fb_helper)) {  		fb_helper->delayed_hotplug = true; -		drm_modeset_unlock_all(dev); +		mutex_unlock(&fb_helper->dev->mode_config.mutex);  		return 0;  	}  	DRM_DEBUG_KMS("\n"); @@ -1565,9 +1565,11 @@ int drm_fb_helper_hotplug_event(struct drm_fb_helper *fb_helper)  	count = drm_fb_helper_probe_connector_modes(fb_helper, max_width,  						    max_height); +	mutex_unlock(&fb_helper->dev->mode_config.mutex); + +	drm_modeset_lock_all(dev);  	drm_setup_crtcs(fb_helper);  	drm_modeset_unlock_all(dev); -  	drm_fb_helper_set_par(fb_helper->fbdev);  	return 0; | 
