From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752606AbdATNzt (ORCPT ); Fri, 20 Jan 2017 08:55:49 -0500 Received: from mga06.intel.com ([134.134.136.31]:47692 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752484AbdATNzq (ORCPT ); Fri, 20 Jan 2017 08:55:46 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.33,258,1477983600"; d="scan'208";a="1115495033" Date: Fri, 20 Jan 2017 15:55:40 +0200 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= To: Andrzej Hajda Cc: Inki Dae , dri-devel@lists.freedesktop.org, Krzysztof Kozlowski , linux-samsung-soc@vger.kernel.org, Bartlomiej Zolnierkiewicz , linux-kernel@vger.kernel.org, Kyungmin Park , Marek Szyprowski Subject: Re: [PATCH 6/7] drm/exynos/decon5433: signal vblank only on odd fields Message-ID: <20170120135540.GC31595@intel.com> References: <1484895145-511-1-git-send-email-a.hajda@samsung.com> <1484895145-511-7-git-send-email-a.hajda@samsung.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1484895145-511-7-git-send-email-a.hajda@samsung.com> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jan 20, 2017 at 07:52:24AM +0100, Andrzej Hajda wrote: > In case of interlace mode irq is generated for odd and even fields, but > vblank should be signaled only for the last emitted field. I'm pretty sure most drivers signal it for both fields. At least i915 does. > > 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 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Ville Syrjälä Intel OTC