History

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.

Linus Torvalds committed 13 years ago

Commit 93263e52 parents ba3b7d8 89ced122 files · +9 −3Browse files

Unified · Split

2 files
  1. drivers/gpu/drm/drm_fb_helper.c +5 −3
  2. drivers/gpu/drm/udl/udl_connector.c +4 −0
drivers/gpu/drm/drm_fb_helper.c+5−3
@@ -1544,10 +1544,10 @@ int drm_fb_helper_hotplug_event(struct drm_fb_helper *fb_helper) · 1543 unmodified lines
1544 if (!fb_helper->fb)1544 if (!fb_helper->fb)
1545 return 0;1545 return 0;
1546 1546
1547 drm_modeset_lock_all(dev);1547 mutex_lock(&fb_helper->dev->mode_config.mutex);
1548 if (!drm_fb_helper_is_bound(fb_helper)) {1548 if (!drm_fb_helper_is_bound(fb_helper)) {
1549 fb_helper->delayed_hotplug = true;1549 fb_helper->delayed_hotplug = true;
1550 drm_modeset_unlock_all(dev);1550 mutex_unlock(&fb_helper->dev->mode_config.mutex);
1551 return 0;1551 return 0;
1552 }1552 }
1553 DRM_DEBUG_KMS("\n");1553 DRM_DEBUG_KMS("\n");
@@ -1558,9 +1558,11 @@ int drm_fb_helper_hotplug_event(struct drm_fb_helper *fb_helper) · 4 unmodified lines
1558 1558
1559 count = drm_fb_helper_probe_connector_modes(fb_helper, max_width,1559 count = drm_fb_helper_probe_connector_modes(fb_helper, max_width,
1560 max_height);1560 max_height);
1561 mutex_unlock(&fb_helper->dev->mode_config.mutex);
1562
1563 drm_modeset_lock_all(dev);
1561 drm_setup_crtcs(fb_helper);1564 drm_setup_crtcs(fb_helper);
1562 drm_modeset_unlock_all(dev);1565 drm_modeset_unlock_all(dev);
1563
1564 drm_fb_helper_set_par(fb_helper->fbdev);1566 drm_fb_helper_set_par(fb_helper->fbdev);
1565 1567
1566 return 0;1568 return 0;
drivers/gpu/drm/udl/udl_connector.c+4−0
@@ -61,6 +61,10 @@ static int udl_get_modes(struct drm_connector *connector) · 60 unmodified lines
61 int ret;61 int ret;
62 62
63 edid = (struct edid *)udl_get_edid(udl);63 edid = (struct edid *)udl_get_edid(udl);
64 if (!edid) {
65 drm_mode_connector_update_edid_property(connector, NULL);
66 return 0;
67 }
64 68
65 /*69 /*
66 * We only read the main block, but if the monitor reports extension70 * We only read the main block, but if the monitor reports extension

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t