diff options
| -rw-r--r-- | drivers/gpu/drm/i915/display/intel_overlay.c | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_overlay.c b/drivers/gpu/drm/i915/display/intel_overlay.c index 1b84790a63b2..1edc0ae09c68 100644 --- a/drivers/gpu/drm/i915/display/intel_overlay.c +++ b/drivers/gpu/drm/i915/display/intel_overlay.c @@ -1490,23 +1490,29 @@ bool intel_overlay_available(struct intel_display *display) return display->overlay; } -void intel_overlay_cleanup(struct intel_display *display) +static void i915_overlay_cleanup(struct drm_device *drm, + struct intel_overlay *overlay) { - struct intel_overlay *overlay; - - overlay = fetch_and_zero(&display->overlay); - if (!overlay) - return; - /* * The bo's should be free'd by the generic code already. * Furthermore modesetting teardown happens beforehand so the * hardware should be off already. */ - drm_WARN_ON(display->drm, i915_overlay_is_active(display->drm)); + drm_WARN_ON(drm, i915_overlay_is_active(drm)); i915_gem_object_put(overlay->reg_bo); i915_active_fini(&overlay->last_flip); +} + +void intel_overlay_cleanup(struct intel_display *display) +{ + struct intel_overlay *overlay; + + overlay = fetch_and_zero(&display->overlay); + if (!overlay) + return; + + i915_overlay_cleanup(display->drm, overlay); kfree(overlay); } |
