From: Ville Syrjälä Date: Tue, 31 Mar 2015 07:37:24 +0000 (+0300) Subject: drm/i915: Mark the overlay active only if we got ring space X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=1c7c4301eeeff9af7e5009785aa721b0da6c9198;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git drm/i915: Mark the overlay active only if we got ring space After the GPU has wedged we can't turn on the overlay anymore. Only mark it as active if we succeed in allocating ring space. This prevents a WARN (previous;y a BUG) during driver unload if we attempted to use the overlay after the GPU had already wedged. Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter --- diff --git a/drivers/gpu/drm/i915/intel_overlay.c b/drivers/gpu/drm/i915/intel_overlay.c index fd9ded771d01..b291f1301c93 100644 --- a/drivers/gpu/drm/i915/intel_overlay.c +++ b/drivers/gpu/drm/i915/intel_overlay.c @@ -242,14 +242,14 @@ static int intel_overlay_on(struct intel_overlay *overlay) int ret; WARN_ON(overlay->active); - overlay->active = true; - WARN_ON(IS_I830(dev) && !(dev_priv->quirks & QUIRK_PIPEA_FORCE)); ret = intel_ring_begin(ring, 4); if (ret) return ret; + overlay->active = true; + intel_ring_emit(ring, MI_OVERLAY_FLIP | MI_OVERLAY_ON); intel_ring_emit(ring, overlay->flip_addr | OFC_UPDATE); intel_ring_emit(ring, MI_WAIT_FOR_EVENT | MI_WAIT_FOR_OVERLAY_FLIP);