From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A4C80C4338F for ; Sun, 25 Jul 2021 17:50:12 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 54C3360F39 for ; Sun, 25 Jul 2021 17:50:10 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 54C3360F39 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id AED226E44B; Sun, 25 Jul 2021 17:50:09 +0000 (UTC) Received: from mx1.smtp.larsendata.com (mx1.smtp.larsendata.com [91.221.196.215]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4A93B6E44B for ; Sun, 25 Jul 2021 17:50:08 +0000 (UTC) Received: from mail01.mxhotel.dk (mail01.mxhotel.dk [91.221.196.236]) by mx1.smtp.larsendata.com (Halon) with ESMTPS id c2751beb-ed70-11eb-9082-0050568c148b; Sun, 25 Jul 2021 17:50:11 +0000 (UTC) Received: from ravnborg.org (80-162-45-141-cable.dk.customer.tdc.net [80.162.45.141]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: sam@ravnborg.org) by mail01.mxhotel.dk (Postfix) with ESMTPSA id 03509194B04; Sun, 25 Jul 2021 19:50:24 +0200 (CEST) Date: Sun, 25 Jul 2021 19:50:04 +0200 X-Report-Abuse-To: abuse@mxhotel.dk From: Sam Ravnborg To: Jagan Teki Subject: Re: [RFC PATCH 17/17] drm: bridge: samsung-dsim: Add bridge mode_fixup Message-ID: References: <20210704090230.26489-1-jagan@amarulasolutions.com> <20210704090230.26489-18-jagan@amarulasolutions.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210704090230.26489-18-jagan@amarulasolutions.com> X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Marek Vasut , devicetree@vger.kernel.org, linux-samsung-soc@vger.kernel.org, Joonyoung Shim , Neil Armstrong , linux-amarula , dri-devel@lists.freedesktop.org, Krzysztof Kozlowski , Seung-Woo Kim , Robert Foss , Frieder Schrempf , Andrzej Hajda , Kyungmin Park , Laurent Pinchart , Daniel Vetter , linux-arm-kernel@lists.infradead.org, NXP Linux Team Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Hi Jagan, On Sun, Jul 04, 2021 at 02:32:30PM +0530, Jagan Teki wrote: > Fixing up the mode flags are required in order to correlate > the correct sync flags in i.MX8MM eLCDIF. > > So, handle the mode flags via bridge, mode_fixup. Please do this in atomic_check. Check rcar-du for a way to get access to adjusted_mode. I have a helper in the works, but I may not return to it until a week or more. Sam > > Signed-off-by: Jagan Teki > --- > drivers/gpu/drm/bridge/samsung-dsim.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c b/drivers/gpu/drm/bridge/samsung-dsim.c > index 0ed218f5eefc..c2a76ee5ac4e 100644 > --- a/drivers/gpu/drm/bridge/samsung-dsim.c > +++ b/drivers/gpu/drm/bridge/samsung-dsim.c > @@ -1474,6 +1474,16 @@ static void samsung_dsim_bridge_disable(struct drm_bridge *bridge) > pm_runtime_put_sync(dsi->dev); > } > > +static bool samsung_dsim_bridge_mode_fixup(struct drm_bridge *bridge, > + const struct drm_display_mode *mode, > + struct drm_display_mode *adjusted_mode) > +{ > + adjusted_mode->flags |= (DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC); > + adjusted_mode->flags &= ~(DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC); > + > + return true; > +} > + > static void samsung_dsim_bridge_mode_set(struct drm_bridge *bridge, > const struct drm_display_mode *mode, > const struct drm_display_mode *adjusted_mode) > @@ -1542,6 +1552,7 @@ static const struct drm_bridge_funcs samsung_dsim_bridge_funcs = { > .enable = samsung_dsim_bridge_enable, > .disable = samsung_dsim_bridge_disable, > .mode_set = samsung_dsim_bridge_mode_set, > + .mode_fixup = samsung_dsim_bridge_mode_fixup, > .attach = samsung_dsim_bridge_attach, > }; > > -- > 2.25.1