Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp2316344imm; Mon, 28 May 2018 05:59:22 -0700 (PDT) X-Google-Smtp-Source: AB8JxZokPKAw8csLWzRC4t25miBDI6FSPOe8JqGHhBe1nl4QEV6OZTiecFqZ52qKFMcE7aJbKMDf X-Received: by 2002:a63:9c3:: with SMTP id 186-v6mr10720993pgj.357.1527512362323; Mon, 28 May 2018 05:59:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527512362; cv=none; d=google.com; s=arc-20160816; b=sOUV7CeDUz5KW45Bp7Y1HEd7g8jG+B5i6Hm+lKa5NmyOuWdLfLQKbdE6Msr/QpyKKn Wsu+GVKR5zXXXTWA5IUu0U1MgbVobrDMELImq49vj9jT6GRvqpbSBCuyjUplGMuGygns 9BD+O/yny2tA/ojd8mDwi3b6OupkwV9qM+64EFSg6buv/BbRVUwlPWK7v550qQaCacYZ To9JsItqqz6TJetRI8NHRTxMs/NT0sOPJ7Cm4IjId9nz7j0zvCbVuhUp8FRlzZLsEazL pLfxzMiDS1vsU2ogWF4+lKL4BlDNGRdZaAsnL1AoEE3dZRwWm5KDjeAD+eYdsj+kpSoB 4bfw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=0aER/fzUq6z3AftSWR1SKgyMGWZI01M/bpAnbGGWG4o=; b=J4f1QX9FoFujiL1C2xw4/ascBT7YAatySqI40DGLMLAsWChDKFW/0bVr2f5R4GOqgZ yQk073K0MFCuIl86i+hLM+UH/lzuBmR5zB+qMM2swHrm9xAuGWZZ0xYJW0tqFqRAtOri OVHdq8VmAkosK92k/2AIWMhC76hJKie16kqbyspYMz/FlcqqPxlR1+Qo0WRI/oRy+JbI Eke/qvZOHi5Pzj/u3e4Op3dmRynRL7Hh/opYu6QIr5vIXP1j630jmLVdEohioa+toTCd iWP+grZwljS/2fCkOnfHPvhbLm48fynPnzjdAJNn7UKG5Soih4zuT1tZicughc6Bq1lG raNA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=A5VAvIN2; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s88-v6si29664255pfa.339.2018.05.28.05.59.07; Mon, 28 May 2018 05:59:22 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=A5VAvIN2; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1423795AbeE1M6c (ORCPT + 99 others); Mon, 28 May 2018 08:58:32 -0400 Received: from mail.kernel.org ([198.145.29.99]:43020 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1164248AbeE1KyG (ORCPT ); Mon, 28 May 2018 06:54:06 -0400 Received: from localhost (LFbn-1-12247-202.w90-92.abo.wanadoo.fr [90.92.61.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 3D380208A2; Mon, 28 May 2018 10:54:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1527504845; bh=XBANcnUyiZWL7ojWlbunuQzzRtrmxbP3/mgYtnSewU8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=A5VAvIN2gCrOBHqT8SRV5WpzJgXuuU5IgfZUOurjV2NqIW04dzyi2M67PBPIg2ZhG cgetyswvN0uD33yDUNN1+vDgdL2fxIsg4D7uwqfoW8Uf2XpSFreCOcXWyL20fuA5MI 4G2ycR+0LvQbuQkDF4akE9+Y5nfLcnm/rOwDuhVc= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Lucas Stach , Philipp Zabel , Sasha Levin Subject: [PATCH 4.14 251/496] drm/imx: move arming of the vblank event to atomic_flush Date: Mon, 28 May 2018 12:00:36 +0200 Message-Id: <20180528100330.459553191@linuxfoundation.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180528100319.498712256@linuxfoundation.org> References: <20180528100319.498712256@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Lucas Stach [ Upstream commit 6a055b92de15af987b4027826d43aa103c65a3c4 ] Right now the vblank event completion is racing with the atomic update, which is especially bad when the PRE is in use, as one of the hardware issue workaround might extend the atomic commit for quite some time. If the vblank IRQ happens to trigger during that time, we will prematurely signal the atomic commit completion to userspace, which causes tearing when userspace re-uses a framebuffer we haven't managed to flip away from yet. Signed-off-by: Lucas Stach Signed-off-by: Philipp Zabel Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- drivers/gpu/drm/imx/ipuv3-crtc.c | 5 +++++ 1 file changed, 5 insertions(+) --- a/drivers/gpu/drm/imx/ipuv3-crtc.c +++ b/drivers/gpu/drm/imx/ipuv3-crtc.c @@ -225,7 +225,11 @@ static void ipu_crtc_atomic_begin(struct struct drm_crtc_state *old_crtc_state) { drm_crtc_vblank_on(crtc); +} +static void ipu_crtc_atomic_flush(struct drm_crtc *crtc, + struct drm_crtc_state *old_crtc_state) +{ spin_lock_irq(&crtc->dev->event_lock); if (crtc->state->event) { WARN_ON(drm_crtc_vblank_get(crtc)); @@ -293,6 +297,7 @@ static const struct drm_crtc_helper_func .mode_set_nofb = ipu_crtc_mode_set_nofb, .atomic_check = ipu_crtc_atomic_check, .atomic_begin = ipu_crtc_atomic_begin, + .atomic_flush = ipu_crtc_atomic_flush, .atomic_disable = ipu_crtc_atomic_disable, .atomic_enable = ipu_crtc_atomic_enable, };