Commit 93263e52 authored by Linus Torvalds's avatar Linus Torvalds

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.
parents ba3b7d82 89ced125
...@@ -1544,10 +1544,10 @@ int drm_fb_helper_hotplug_event(struct drm_fb_helper *fb_helper) ...@@ -1544,10 +1544,10 @@ int drm_fb_helper_hotplug_event(struct drm_fb_helper *fb_helper)
if (!fb_helper->fb) if (!fb_helper->fb)
return 0; return 0;
drm_modeset_lock_all(dev); mutex_lock(&fb_helper->dev->mode_config.mutex);
if (!drm_fb_helper_is_bound(fb_helper)) { if (!drm_fb_helper_is_bound(fb_helper)) {
fb_helper->delayed_hotplug = true; fb_helper->delayed_hotplug = true;
drm_modeset_unlock_all(dev); mutex_unlock(&fb_helper->dev->mode_config.mutex);
return 0; return 0;
} }
DRM_DEBUG_KMS("\n"); DRM_DEBUG_KMS("\n");
...@@ -1558,9 +1558,11 @@ int drm_fb_helper_hotplug_event(struct drm_fb_helper *fb_helper) ...@@ -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, count = drm_fb_helper_probe_connector_modes(fb_helper, max_width,
max_height); max_height);
mutex_unlock(&fb_helper->dev->mode_config.mutex);
drm_modeset_lock_all(dev);
drm_setup_crtcs(fb_helper); drm_setup_crtcs(fb_helper);
drm_modeset_unlock_all(dev); drm_modeset_unlock_all(dev);
drm_fb_helper_set_par(fb_helper->fbdev); drm_fb_helper_set_par(fb_helper->fbdev);
return 0; return 0;
......
...@@ -61,6 +61,10 @@ static int udl_get_modes(struct drm_connector *connector) ...@@ -61,6 +61,10 @@ static int udl_get_modes(struct drm_connector *connector)
int ret; int ret;
edid = (struct edid *)udl_get_edid(udl); 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 * We only read the main block, but if the monitor reports extension
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment