From patchwork Wed Dec 7 10:22:47 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxime Ripard X-Patchwork-Id: 30765 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp98913wrr; Wed, 7 Dec 2022 02:30:15 -0800 (PST) X-Google-Smtp-Source: AA0mqf6kcy7GPGz/zgeRzi0MC9eg2MMKz69zxGBwy2QUjTk4VFfpf04BEo4TUbsmFgnuRV3JQWgs X-Received: by 2002:a17:902:db10:b0:189:5858:43c0 with SMTP id m16-20020a170902db1000b00189585843c0mr64197194plx.71.1670409014748; Wed, 07 Dec 2022 02:30:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1670409014; cv=none; d=google.com; s=arc-20160816; b=09ncnk9VCRF8oIQ+F+cK5ROBrtRIrslgD0gOPSTg2uUkK5BiKJxbVRDL6S4SQVs2q3 gxG6X46L2bi079eHZD9w0PJDd/NG1bDAbV6hYWPUnLIQFeODxAntLfl+o7jqhWRpJFJU VvtdMJJVZdufLo7febtGb7tBBkeeGEVgDnW+w9YRHLc0tq40ZMi1s//2sVKPodR9j8z3 oZFzIYAMl3G2h50BWpM+c4sqa8ZzIPIP+gis62CtbmUyEgqXunbqUHjHcr34r6GSOLD8 qGibTpHjy0MCPYUtNPu7CcR4JNdBCYFB47kyoWW2/ldGPWB6f2UlWUgCyxgUYSs0VS/k vTGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :feedback-id:dkim-signature:dkim-signature; bh=j72BaHFyaTxFOjEUAha4RtUDZFCZoWNUBdI79nsXaTQ=; b=epqIC3Zh/NgtELu3kmxIGJnI8zD7PgZ/p7a/Gs/DEwMeUzsLZDhuaL5hHb+10FZGMj oNCktJDTAYcRZ+zN0I6jAW52CAPvZOe+tUW4rWCP0On7p2WejtKmM71wMWfwfEyCCGul tJfnICDsPpY+iAyYXwLGuRkWnLXvrzr7gt4zdeHOO9Ec84vGnrwmgo8Z5zorhQQBalKn m6TU8t8r5vLEH7xgENW36Ia/lP6+jRYMvb2S6yDkbgj3pX2ui6fIYJjpw72S7pA7903n IVUt2/bY9QpOwizkupVhChi37P4wpJ81ndAXUjMW8e7+n81BedgNXw25QYT3wwKdHBf8 2I/g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cerno.tech header.s=fm2 header.b=RTxHcrcO; dkim=pass header.i=@messagingengine.com header.s=fm1 header.b="s0Xs//yo"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=cerno.tech Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id s18-20020a056a00179200b0053652e1c0b6si22447157pfg.12.2022.12.07.02.30.02; Wed, 07 Dec 2022 02:30:14 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@cerno.tech header.s=fm2 header.b=RTxHcrcO; dkim=pass header.i=@messagingengine.com header.s=fm1 header.b="s0Xs//yo"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=cerno.tech Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230465AbiLGK1y (ORCPT + 99 others); Wed, 7 Dec 2022 05:27:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54344 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229683AbiLGK1X (ORCPT ); Wed, 7 Dec 2022 05:27:23 -0500 Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 249181DA42 for ; Wed, 7 Dec 2022 02:27:23 -0800 (PST) Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id 9044B5C0113; Wed, 7 Dec 2022 05:27:22 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute5.internal (MEProxy); Wed, 07 Dec 2022 05:27:22 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cerno.tech; h=cc :cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm2; t=1670408842; x= 1670495242; bh=j72BaHFyaTxFOjEUAha4RtUDZFCZoWNUBdI79nsXaTQ=; b=R TxHcrcOJG43IWsUGKtFeTz45rZzwmVW1r2KFSQXX1Xf4tFxpC14QNFMLp5HJkYzF mV7gJaH1rU5YIxMFkHac+XJQPosI6Lf2/WVc5u9Uf/34zUCa47UE32MF5AoCI+nm otQQ2pRvyeWAwbK5SyzqTrrPPWI5gG/Ueud9IlicdoSQyZ5WKy5YQbdPNT0lM8wx D31yBK4ziALKFMmMDLOHmg3j5RDrN3Xq/dd1W21p5Jf+iJL91+ozIdexDB5F7tki flSV8aC7k6EiVVtEtCVlQnKAG+ybWVGb5DJicr6y8y2lRVLPklDtOQVvhR4YHBAv G5o9llUwDedG/PbLK/Ipw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1670408842; x= 1670495242; bh=j72BaHFyaTxFOjEUAha4RtUDZFCZoWNUBdI79nsXaTQ=; b=s 0Xs//yopxl2aiiorM0laR64MDvfw0i7gJIRWRfrXyK0Ni8GnzRcJ1CoPaDS3A/te OL4oMVD5UgHunRLSSyrMy2q4z2xd8kDtC9VqkwXtKupMIR/W0d797CshUJTiG2vN MZLzI9UuOC3IV1g4A7PQOm+u0pxWUJ3vIuCqbjCM7n2D5icW+LU7IqSaLqdboR7/ fR3p7DbEy7PTPvFijvbeyvkoRiBVmVu2zObPrCggyAshLP+Dmkv/orJ+se3/jXxA GKmPgl/ptRjAWsz4yt8qNtiAzPRdh+NHPrHUQlWZK2jfN+nAWOAZzDIVRwu3nL4l B9i/btWB7m7hvA8MGD60Q== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrudekgdduhecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhfffugggtgffkfhgjvfevofesthejredtredtjeenucfhrhhomhepofgrgihi mhgvucftihhprghrugcuoehmrgigihhmvgestggvrhhnohdrthgvtghhqeenucggtffrrg htthgvrhhnpeevvdelieejgedvkeffheekheeilefhgefgffehteekueelvddtueffheet ledtffenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpe hmrgigihhmvgestggvrhhnohdrthgvtghh X-ME-Proxy: Feedback-ID: i8771445c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 7 Dec 2022 05:27:21 -0500 (EST) From: Maxime Ripard Date: Wed, 07 Dec 2022 11:22:47 +0100 Subject: [PATCH 4/6] drm/vc4: dsi: Convert to use atomic operations MIME-Version: 1.0 Message-Id: <20221207-rpi-dsi-bridge-v1-4-8f68ee0b0adb@cerno.tech> References: <20221207-rpi-dsi-bridge-v1-0-8f68ee0b0adb@cerno.tech> In-Reply-To: <20221207-rpi-dsi-bridge-v1-0-8f68ee0b0adb@cerno.tech> To: Emma Anholt , Maxime Ripard , David Airlie , Daniel Vetter Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Dave Stevenson , Maxime Ripard X-Mailer: b4 0.11.0-dev-8c583 X-Developer-Signature: v=1; a=openpgp-sha256; l=3055; i=maxime@cerno.tech; h=from:subject:message-id; bh=CXisU7c7qlb5YkMujGkhm32rlKYH8x7P9zn1D9smdLI=; b=owGbwMvMwCX2+D1vfrpE4FHG02pJDMkTMkulWlkX6qxZeGDyZBmP1WLT60yuaa2Wc3DoZVouFyx0 JUKno5SFQYyLQVZMkSVG2HxJ3KlZrzvZ+ObBzGFlAhnCwMUpABPpqGf4p8l4XMD6u0TzO2a1Xytnzv K+aX5l8U+LkoiVoWem/VT+2MLwz/Tzf94Foa0lnfpPT5dduqr2K+TF4TMmr9fdbNl/b/VeRS4A X-Developer-Key: i=maxime@cerno.tech; a=openpgp; fpr=BE5675C37E818C8B5764241C254BCFC56BF6CE8D X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1751550802902632997?= X-GMAIL-MSGID: =?utf-8?q?1751550802902632997?= From: Dave Stevenson The atomic calls are preferred as the non-atomic ones are deprecated. In preparation for conversion to a bridge, switch to the atomic calls. Signed-off-by: Dave Stevenson Signed-off-by: Maxime Ripard --- drivers/gpu/drm/vc4/vc4_dsi.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_dsi.c b/drivers/gpu/drm/vc4/vc4_dsi.c index 53d73a6590b7..b90186f38749 100644 --- a/drivers/gpu/drm/vc4/vc4_dsi.c +++ b/drivers/gpu/drm/vc4/vc4_dsi.c @@ -789,7 +789,8 @@ dsi_esc_timing(u32 ns) return DIV_ROUND_UP(ns, ESC_TIME_NS); } -static void vc4_dsi_encoder_disable(struct drm_encoder *encoder) +static void vc4_dsi_encoder_disable(struct drm_encoder *encoder, + struct drm_atomic_state *state) { struct vc4_dsi *dsi = to_vc4_dsi(encoder); struct device *dev = &dsi->pdev->dev; @@ -853,17 +854,18 @@ static bool vc4_dsi_encoder_mode_fixup(struct drm_encoder *encoder, } static void vc4_dsi_encoder_mode_set(struct drm_encoder *encoder, - struct drm_display_mode *mode, - struct drm_display_mode *adjusted_mode) + struct drm_crtc_state *crtc_state, + struct drm_connector_state *conn_state) { struct vc4_dsi *dsi = to_vc4_dsi(encoder); struct device *dev = &dsi->pdev->dev; + const struct drm_display_mode *mode; bool debug_dump_regs = false; unsigned long hs_clock; u32 ui_ns; /* Minimum LP state duration in escape clock cycles. */ u32 lpx = dsi_esc_timing(60); - unsigned long pixel_clock_hz = adjusted_mode->clock * 1000; + unsigned long pixel_clock_hz; unsigned long dsip_clock; unsigned long phy_clock; int ret; @@ -880,6 +882,10 @@ static void vc4_dsi_encoder_mode_set(struct drm_encoder *encoder, drm_print_regset32(&p, &dsi->regset); } + mode = &crtc_state->adjusted_mode; + + pixel_clock_hz = mode->clock * 1000; + /* Round up the clk_set_rate() request slightly, since * PLLD_DSI1 is an integer divider and its rate selection will * never round up. @@ -1092,7 +1098,8 @@ static void vc4_dsi_encoder_mode_set(struct drm_encoder *encoder, vc4_dsi_ulps(dsi, false); } -static void vc4_dsi_encoder_enable(struct drm_encoder *encoder) +static void vc4_dsi_encoder_enable(struct drm_encoder *encoder, + struct drm_atomic_state *state) { struct vc4_dsi *dsi = to_vc4_dsi(encoder); bool debug_dump_regs = false; @@ -1348,10 +1355,10 @@ static const struct mipi_dsi_host_ops vc4_dsi_host_ops = { }; static const struct drm_encoder_helper_funcs vc4_dsi_encoder_helper_funcs = { - .disable = vc4_dsi_encoder_disable, - .enable = vc4_dsi_encoder_enable, + .atomic_disable = vc4_dsi_encoder_disable, + .atomic_enable = vc4_dsi_encoder_enable, .mode_fixup = vc4_dsi_encoder_mode_fixup, - .mode_set = vc4_dsi_encoder_mode_set, + .atomic_mode_set = vc4_dsi_encoder_mode_set, }; static int vc4_dsi_late_register(struct drm_encoder *encoder)