From patchwork Fri Apr 29 13:42:47 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrzej Hajda X-Patchwork-Id: 8982531 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 1DE959F46D for ; Fri, 29 Apr 2016 13:43:13 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 49A30201CE for ; Fri, 29 Apr 2016 13:43:12 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id B9625201FA for ; Fri, 29 Apr 2016 13:43:10 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id D2B376EF88; Fri, 29 Apr 2016 13:43:08 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by gabe.freedesktop.org (Postfix) with ESMTPS id D0DD76EF88 for ; Fri, 29 Apr 2016 13:43:06 +0000 (UTC) Received: from eucpsbgm1.samsung.com (unknown [203.254.199.244]) by mailout1.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0O6E00E6IE3QDCC0@mailout1.w1.samsung.com> for dri-devel@lists.freedesktop.org; Fri, 29 Apr 2016 14:43:02 +0100 (BST) X-AuditID: cbfec7f4-f796c6d000001486-55-572364e6628a Received: from eusync1.samsung.com ( [203.254.199.211]) by eucpsbgm1.samsung.com (EUCPMTA) with SMTP id E6.AC.05254.6E463275; Fri, 29 Apr 2016 14:43:02 +0100 (BST) Received: from amdc1061.digital.local ([106.116.147.88]) by eusync1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0O6E00HVME3PG680@eusync1.samsung.com>; Fri, 29 Apr 2016 14:43:02 +0100 (BST) From: Andrzej Hajda To: inki.dae@samsung.com Subject: [PATCH 1/3] drm/exynos/decon5433: handle vblank in vblank interrupt Date: Fri, 29 Apr 2016 15:42:47 +0200 Message-id: <1461937369-22994-1-git-send-email-a.hajda@samsung.com> X-Mailer: git-send-email 1.9.1 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrMJMWRmVeSWpSXmKPExsVy+t/xy7rPUpTDDR4s5bS4te4cq8XGGetZ La58fc9mMen+BBaLtUfusjuwetzvPs7k0bdlFWMAUxSXTUpqTmZZapG+XQJXxon/01gLHnBW vNrwkbmBcSVHFyMHh4SAicSMNb5djJxAppjEhXvr2boYuTiEBJYySiw8fYoVwmlikrj2czor SBWbgKbE38032UBsEQEJiZmvLjKBFDELrGeU2DDlNiNIQljAR2Jf80Ywm0VAVWJt/0kWkG28 As4SNz8mQGyTkzh5bDLrBEbuBYwMqxhFU0uTC4qT0nMN9YoTc4tL89L1kvNzNzFCvP5lB+Pi Y1aHGAU4GJV4eGfcUwoXYk0sK67MPcQowcGsJMKbnawcLsSbklhZlVqUH19UmpNafIhRmoNF SZx37q73IUIC6YklqdmpqQWpRTBZJg5OqQbGzq054t673Ey/XFyWu7Xmie+b3b6am/dq8AQ0 LWHYHnJ7xXH7wN1lpyWffa3ZYiS3/wLzyers6d7H263/3Yk6oLJVfEFu1oGr+QZJm2bOyRNO q+AVD595skfP4uwDrnkzv/LEbHS7dG6VuNm7ls+W/nxFKo+/RzhkNs9RvRI4847Fhdf18Y9P KbEUZyQaajEXFScCAIhZtcf2AQAA Cc: Andrzej Hajda , Marek Szyprowski , dri-devel@lists.freedesktop.org, Bartlomiej Zolnierkiewicz X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Spam-Status: No, score=-5.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP vblank should be signaled to userspace after reading framebuffers not before, signaling it in TE interrupt looks wrong. TE triggers reading framebuffers so it is the worst moment. Tearing is not observable because hardware prevents it, but there are frequently skipped vblank events. Signed-off-by: Andrzej Hajda --- drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/gpu/drm/exynos/exynos5433_drm_decon.c b/drivers/gpu/drm/exynos/exynos5433_drm_decon.c index b985b96..a835dd8 100644 --- a/drivers/gpu/drm/exynos/exynos5433_drm_decon.c +++ b/drivers/gpu/drm/exynos/exynos5433_drm_decon.c @@ -443,8 +443,6 @@ static void decon_te_irq_handler(struct exynos_drm_crtc *crtc) if (test_and_clear_bit(BIT_WIN_UPDATED, &ctx->flags)) decon_set_bits(ctx, DECON_TRIGCON, TRIGCON_SWTRIGCMD, ~0); - - drm_crtc_handle_vblank(&ctx->crtc->base); } static void decon_clear_channels(struct exynos_drm_crtc *crtc) @@ -577,6 +575,7 @@ static irqreturn_t decon_irq_handler(int irq, void *dev_id) /* clear */ writel(val, ctx->addr + DECON_VIDINTCON1); + drm_crtc_handle_vblank(&ctx->crtc->base); } out: