drm/i915: Take modeset locks around intel_modeset_setup_hw_state()
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Mon, 2 Dec 2013 09:08:06 +0000 (11:08 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 3 Dec 2013 22:14:26 +0000 (23:14 +0100)
Some lower level things get angry if we don't have modeset locks
during intel_modeset_setup_hw_state(). Actually the resume and
lid_notify codepaths alreday hold the locks, but the init codepath
doesn't, so fix that.

Note: This slipped through since we only disable pipes if the
plane/pipe linking doesn't match. Which is only relevant on older
gen3 mobile machines, if the BIOS fails to set up our preferred
linking.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: stable@vger.kernel.org
Tested-and-reported-by: Paul Bolle <pebolle@tiscali.nl>
[danvet: Add note now that I could confirm my theory with the log
files Paul Bolle provided.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_display.c

index 080f6fd4e839b2e3a82926b5ba7ae99b871c9d9e..114db51996bdd3d1353b1f8023fa285288f3ae56 100644 (file)
@@ -11046,7 +11046,9 @@ void intel_modeset_gem_init(struct drm_device *dev)
 
        intel_setup_overlay(dev);
 
+       drm_modeset_lock_all(dev);
        intel_modeset_setup_hw_state(dev, false);
+       drm_modeset_unlock_all(dev);
 }
 
 void intel_modeset_cleanup(struct drm_device *dev)