Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux
Pull drm fixes from Dave Airlie: "One fix for a hotplug locking regressions, and one fix for an oops if you unplug the monitor at an inopportune moment on the udl device." * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: drm/fb-helper: Fix locking in drm_fb_helper_hotplug_event udl: handle EDID failure properly.
This commit is contained in:
Коммит
93263e5283
|
@ -1544,10 +1544,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");
|
||||
|
@ -1558,9 +1558,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;
|
||||
|
|
|
@ -61,6 +61,10 @@ static int udl_get_modes(struct drm_connector *connector)
|
|||
int ret;
|
||||
|
||||
edid = (struct edid *)udl_get_edid(udl);
|
||||
if (!edid) {
|
||||
drm_mode_connector_update_edid_property(connector, NULL);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* We only read the main block, but if the monitor reports extension
|
||||
|
|
Загрузка…
Ссылка в новой задаче