diff options
-rw-r--r-- | drivers/gpu/drm/i915/intel_overlay.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/gpu/drm/i915/intel_overlay.c b/drivers/gpu/drm/i915/intel_overlay.c index b97c5c562aa1..49110b3aab6a 100644 --- a/drivers/gpu/drm/i915/intel_overlay.c +++ b/drivers/gpu/drm/i915/intel_overlay.c | |||
@@ -842,12 +842,15 @@ int intel_overlay_switch_off(struct intel_overlay *overlay) | |||
842 | BUG_ON(!mutex_is_locked(&dev->struct_mutex)); | 842 | BUG_ON(!mutex_is_locked(&dev->struct_mutex)); |
843 | BUG_ON(!mutex_is_locked(&dev->mode_config.mutex)); | 843 | BUG_ON(!mutex_is_locked(&dev->mode_config.mutex)); |
844 | 844 | ||
845 | if (overlay->hw_wedged) { | ||
846 | ret = intel_overlay_recover_from_interrupt(overlay, 1); | ||
847 | if (ret != 0) | ||
848 | return ret; | ||
849 | } | ||
850 | |||
845 | if (!overlay->active) | 851 | if (!overlay->active) |
846 | return 0; | 852 | return 0; |
847 | 853 | ||
848 | if (overlay->hw_wedged) | ||
849 | return -EBUSY; | ||
850 | |||
851 | ret = intel_overlay_release_old_vid(overlay); | 854 | ret = intel_overlay_release_old_vid(overlay); |
852 | if (ret != 0) | 855 | if (ret != 0) |
853 | return ret; | 856 | return ret; |