Better be paranoid. The wmb should flush the wc writes, and the chipset_flush hopefully flushes any mch buffers. There've been a few overlay hangs I've never really diagnosed, unfortunately all the reporters disappeared. Maybe-related: https://bugs.freedesktop.org/show_bug.cgi?id=33309 Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch> --- drivers/gpu/drm/i915/intel_overlay.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_overlay.c b/drivers/gpu/drm/i915/intel_overlay.c index cdf17d4..f75e892 100644 --- a/drivers/gpu/drm/i915/intel_overlay.c +++ b/drivers/gpu/drm/i915/intel_overlay.c @@ -209,6 +209,9 @@ static void intel_overlay_unmap_regs(struct intel_overlay *overlay, { if (!OVERLAY_NEEDS_PHYSICAL(overlay->dev)) io_mapping_unmap(regs); + + wmb(); + intel_gtt_chipset_flush(); } static int intel_overlay_do_wait_request(struct intel_overlay *overlay, -- 1.7.7.3