drm/i915: fixup interrupted overlay switch off calls
When switching to interruptible sleeps in the overlay code, I've forgotten to recover from interruptions at one site. This resulted in the overlay still running when it should have been switched off. This in turn caused a hang on resume because it tried to disable the (not-running) overlay in preparation for the resume modeset. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=24980 Tested-by: maximlevitsky@gmail.com Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
parent
12ca45fea9
commit
9bedb9743f
|
@ -842,12 +842,15 @@ int intel_overlay_switch_off(struct intel_overlay *overlay)
|
|||
BUG_ON(!mutex_is_locked(&dev->struct_mutex));
|
||||
BUG_ON(!mutex_is_locked(&dev->mode_config.mutex));
|
||||
|
||||
if (overlay->hw_wedged) {
|
||||
ret = intel_overlay_recover_from_interrupt(overlay, 1);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (!overlay->active)
|
||||
return 0;
|
||||
|
||||
if (overlay->hw_wedged)
|
||||
return -EBUSY;
|
||||
|
||||
ret = intel_overlay_release_old_vid(overlay);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
|
|
Loading…
Reference in New Issue