From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751744AbdATGyO (ORCPT ); Fri, 20 Jan 2017 01:54:14 -0500 Received: from mailout4.w1.samsung.com ([210.118.77.14]:20713 "EHLO mailout4.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751346AbdATGwl (ORCPT ); Fri, 20 Jan 2017 01:52:41 -0500 X-AuditID: cbfec7f2-f790f6d000002555-59-5881b3af0e3f From: Andrzej Hajda To: Inki Dae , dri-devel@lists.freedesktop.org, Krzysztof Kozlowski Cc: Andrzej Hajda , Bartlomiej Zolnierkiewicz , Marek Szyprowski , Kyungmin Park , linux-kernel@vger.kernel.org, linux-samsung-soc@vger.kernel.org Subject: [PATCH 6/7] drm/exynos/decon5433: signal vblank only on odd fields Date: Fri, 20 Jan 2017 07:52:24 +0100 Message-id: <1484895145-511-7-git-send-email-a.hajda@samsung.com> X-Mailer: git-send-email 2.7.4 In-reply-to: <1484895145-511-1-git-send-email-a.hajda@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrLIsWRmVeSWpSXmKPExsWy7djP87obNjdGGByYzGhxa905VouNM9az Wlz5+p7NYtL9CSwW589vYLc42/SG3eLyrjlsFjPO72OyWHvkLrsDp8emVZ1sHve7jzN59G1Z xejxeZNcAEsUl01Kak5mWWqRvl0CV8aLxe+YC25wVzx+0sLYwHiLs4uRg0NCwERic1dZFyMn kCkmceHeerYuRi4OIYGljBLTd35lhnA+M0os37mZBaLKRKLxxy9WiMQyRom92zYygySEBP4z Sly7owtiswloSvzdfJMNxBYRyJU4+fUI2FhmgT+MEjfvLGUESQgLeEss3fCVCeQMFgFViR9L Y0DCvAKOEu9aO6CWyUncPNfJDFLCKeAksXdROsgYCYH/bBI/Fs5khPhAVmLTAWaIcheJ3Ude MkHYwhKvjm9hh7BlJDo7DjJB9HYzSnzqP8EO4UxhlPj3YQZUt7XE4eMXWUFsZgE+iUnbpjND LOCV6GgTgijxkLjybzZUuaPE2mWvmSABMZVRYtLNO+wTGGUWMDKsYhRJLS3OTU8tNtYrTswt Ls1L10vOz93ECIzk0/+Of9rB+PWE1SFGAQ5GJR7eHScaIoRYE8uKK3MPMUpwMCuJ8Pasb4wQ 4k1JrKxKLcqPLyrNSS0+xCjNwaIkzrtnwZVwIYH0xJLU7NTUgtQimCwTB6dUA6PLwr5JDRXq mgwpdmnK/gJKHFKPM7PP/C/5u3JZWe6pCttC3W+NpXwh0ZY3Q3Zu7/X+Iqbpc2tp+IJFBScC HzndnGK87UfVdvMODu99Sun89z4bPzxv+sVnpcPLKSHJHwKUdiRdE5ASl9ruxF79S3txikrS wqN3g9rX/Tt5TMPZ4/SnhstHWpVYijMSDbWYi4oTAXxhsxbgAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrLLMWRmVeSWpSXmKPExsVy+t/xa7qvNjdGGPTMU7G4te4cq8XGGetZ La58fc9mMen+BBaL8+c3sFucbXrDbnF51xw2ixnn9zFZrD1yl92B02PTqk42j/vdx5k8+ras YvT4vEkugCXKzSYjNTEltUghNS85PyUzL91WKTTETddCSSEvMTfVVilC1zckSEmhLDGnFMgz MkADDs4B7sFK+nYJbhkvFr9jLrjBXfH4SQtjA+Mtzi5GTg4JAROJxh+/WCFsMYkL99azdTFy cQgJLGGUmNX4nBHCaWSS+LJ5IztIFZuApsTfzTfZQGwRgVyJ9U9nsoMUMQv8Y5TYcPUNE0hC WMBbYumGr0A2BweLgKrEj6UxIGFeAUeJd60dLBDb5CRunutkBinhFHCS2LsoHSQsBFRysPkA 2wRG3gWMDKsYRVJLi3PTc4sN9YoTc4tL89L1kvNzNzECg3rbsZ+bdzBe2hh8iFGAg1GJhzfh WEOEEGtiWXFl7iFGCQ5mJRHenvWNEUK8KYmVValF+fFFpTmpxYcYTYFOmsgsJZqcD4y4vJJ4 QxNDc0tDI2MLC3MjIyVx3pIPV8KFBNITS1KzU1MLUotg+pg4OKUaGDknqhwU/B89OTxbqky2 VpjrWYrI4e+rzt9ZeTLk5LYFu/0nvhF7HzLlVGYRR7frGo4Ijs73jwJr1HZ8Ki3PuS1ZdWZa y5MJE18enfT/7dqXH5RX7/b9GlCyedJf24A5Bw4H3rtVqzCj3f/An3PPmp1j1qx5lrjL5PrO hY83fDwZm272zbM8dwOvEktxRqKhFnNRcSIAYfc+NYACAAA= X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170120065231eucas1p121d2a987695fdce00e1b2bba445f1818 X-Msg-Generator: CA X-Sender-IP: 182.198.249.179 X-Local-Sender: =?UTF-8?B?QW5kcnplaiBIYWpkYRtTUlBPTC1LZXJuZWwgKFRQKRvsgrw=?= =?UTF-8?B?7ISx7KCE7J6QG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Global-Sender: =?UTF-8?B?QW5kcnplaiBIYWpkYRtTUlBPTC1LZXJuZWwgKFRQKRtTYW1z?= =?UTF-8?B?dW5nIEVsZWN0cm9uaWNzG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Sender-Code: =?UTF-8?B?QzEwG0VIURtDMTBDRDAyQ0QwMjczOTI=?= CMS-TYPE: 201P X-HopCount: 7 X-CMS-RootMailID: 20170120065231eucas1p121d2a987695fdce00e1b2bba445f1818 X-RootMTR: 20170120065231eucas1p121d2a987695fdce00e1b2bba445f1818 References: <1484895145-511-1-git-send-email-a.hajda@samsung.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In case of interlace mode irq is generated for odd and even fields, but vblank should be signaled only for the last emitted field. Signed-off-by: Andrzej Hajda --- drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 7 +++++++ include/video/exynos5433_decon.h | 1 + 2 files changed, 8 insertions(+) diff --git a/drivers/gpu/drm/exynos/exynos5433_drm_decon.c b/drivers/gpu/drm/exynos/exynos5433_drm_decon.c index 46434ba9..ad8b93a 100644 --- a/drivers/gpu/drm/exynos/exynos5433_drm_decon.c +++ b/drivers/gpu/drm/exynos/exynos5433_drm_decon.c @@ -591,6 +591,13 @@ static irqreturn_t decon_irq_handler(int irq, void *dev_id) if (val) { writel(val, ctx->addr + DECON_VIDINTCON1); + if (ctx->out_type & IFTYPE_HDMI) { + val = readl(ctx->addr + DECON_VIDOUTCON0); + val &= VIDOUT_INTERLACE_EN_F | VIDOUT_INTERLACE_FIELD_F; + if (val == + (VIDOUT_INTERLACE_EN_F | VIDOUT_INTERLACE_FIELD_F)) + return IRQ_HANDLED; + } drm_crtc_handle_vblank(&ctx->crtc->base); } diff --git a/include/video/exynos5433_decon.h b/include/video/exynos5433_decon.h index b26511a..ef8e2a8 100644 --- a/include/video/exynos5433_decon.h +++ b/include/video/exynos5433_decon.h @@ -89,6 +89,7 @@ #define VIDCON0_ENVID_F (1 << 0) /* VIDOUTCON0 */ +#define VIDOUT_INTERLACE_FIELD_F (1 << 29) #define VIDOUT_INTERLACE_EN_F (1 << 28) #define VIDOUT_LCD_ON (1 << 24) #define VIDOUT_IF_F_MASK (0x3 << 20) -- 2.7.4