From patchwork Mon Nov 7 14:16:36 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Maxime Ripard X-Patchwork-Id: 13034453 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 62009C4332F for ; Mon, 7 Nov 2022 14:18:29 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 3156910E358; Mon, 7 Nov 2022 14:17:56 +0000 (UTC) Received: from wnew2-smtp.messagingengine.com (wnew2-smtp.messagingengine.com [64.147.123.27]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7706810E338; Mon, 7 Nov 2022 14:17:29 +0000 (UTC) Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailnew.west.internal (Postfix) with ESMTP id BA74D2B066F4; Mon, 7 Nov 2022 09:17:26 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Mon, 07 Nov 2022 09:17:28 -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=1667830646; x= 1667837846; bh=Ngp8whnuDWvZJFV5jotNpMrQ4mHBLOAsMNO1rcVm9kQ=; b=E vHG7QsL+VmAAFbFs178cud5gFq8O+bP4K5gxZsUPolQrtpokO83Uh8lqY6rHBRDL 20nJDImNybhJhBYxYlwe4f68upZzMIF1/TTXYStVt+oMKR/SI3vsMh8cen3IxcUP uf9uDZkgFPnH4KThjQZLJGCkYOAESZSsQSrtyfUhZfbG2w3sGdu1YO88d3KSCt6r nQ91G0ED/S5G4VNny41Wtq8XoJCQsn/qBWmxDqvlL02Wn/NxC53VRuqzf5q2AKgq WG7i3DwqhSoAdXW1kfLHvf+L8FHznma3lrowcHB1EjqwK+FD1bovQ3b7BzSmuC1m zm9r0sAMtiy/tzVYd0KPA== 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=1667830646; x= 1667837846; bh=Ngp8whnuDWvZJFV5jotNpMrQ4mHBLOAsMNO1rcVm9kQ=; b=o gahNBtJhsf4lczNvByGhhGhnqf/Ab70p8nsY6+3z+dz0+YtaUTs4VyDn48GwPimR ZyMi8Up9QnYHwWnn8Z7LoSp6kcol1Z3IO8cv3z6S2voU6f0ygXZ0eMe6Yyst1Ws7 ww2GlyHwLpr7gQi+duOa2mWOVyItK/oCWC0BgeBaBgnNOFGY+5sWe0KkrNqU0izm R9gHzzRs79vUYMxmkKe5W6U9KDJUxFTWbyirTZNAXI8t09HwVgMzQe76w7XZAbmt X+kzLq03wWZUUKoe5F1y/UqECZLH5/JLfIZBQ1Ymhk1kaAs+Psd/lYvSVuAIOtNS FXV3Op1bCtidfttYgSDig== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvgedrvdekgdeivdcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhfffuggfgtgfkfhgjvfevofesthekredtredtjeenucfhrhhomhepofgrgihi mhgvucftihhprghrugcuoehmrgigihhmvgestggvrhhnohdrthgvtghhqeenucggtffrrg htthgvrhhnpedvgfevjefhtdetveevhfelieeuueetgfdvgeevkeegudejffegfffgtedt leelhfenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpe hmrgigihhmvgestggvrhhnohdrthgvtghh X-ME-Proxy: Feedback-ID: i8771445c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 7 Nov 2022 09:17:25 -0500 (EST) From: Maxime Ripard Date: Mon, 07 Nov 2022 15:16:36 +0100 Subject: [PATCH v7 10/23] drm/modes: Fill drm_cmdline mode from named modes MIME-Version: 1.0 Message-Id: <20220728-rpi-analog-tv-properties-v7-10-7072a478c6b3@cerno.tech> References: <20220728-rpi-analog-tv-properties-v7-0-7072a478c6b3@cerno.tech> In-Reply-To: <20220728-rpi-analog-tv-properties-v7-0-7072a478c6b3@cerno.tech> To: Jani Nikula , Joonas Lahtinen , Tvrtko Ursulin , Ben Skeggs , Rodrigo Vivi , Maxime Ripard , Samuel Holland , Jernej Skrabec , Maarten Lankhorst , Emma Anholt , Karol Herbst , Daniel Vetter , Chen-Yu Tsai , Lyude Paul , Thomas Zimmermann , David Airlie X-Mailer: b4 0.11.0-dev-99e3a X-Developer-Signature: v=1; a=openpgp-sha256; l=1857; i=maxime@cerno.tech; h=from:subject:message-id; bh=FcO2lRsVFO8/cJ2pFa8Sj2nk/izc0QvJ9lvsv6CGgOk=; b=owGbwMvMwCX2+D1vfrpE4FHG02pJDMmZwg4WyW+3ztV+7Xj+fsNrBcVFHX06E/+lPNkZqb3IWDv6 nlNARykLgxgXg6yYIkuMsPmSuFOzXney8c2DmcPKBDKEgYtTACbyyoaR4U7nh9fh2c+0bI581D8h4i 36eVO9n46rwCY24TSeYxpnixn+2U7OSn2xnFWluVxn9n+lc0efdjKoZ2ZNOvFoS5WmQd40BgA= X-Developer-Key: i=maxime@cerno.tech; a=openpgp; fpr=BE5675C37E818C8B5764241C254BCFC56BF6CE8D 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: =?unknown-8bit?q?Dom_Cobley_=3Cdom=40raspberrypi=2Ecom=3E=2C_Dave_Steven?= =?unknown-8bit?q?son_=3Cdave=2Estevenson=40raspberrypi=2Ecom=3E=2C_nouveau?= =?unknown-8bit?q?=40lists=2Efreedesktop=2Eorg=2C_intel-gfx=40lists=2Efreede?= =?unknown-8bit?q?sktop=2Eorg=2C_linux-kernel=40vger=2Ekernel=2Eorg=2C_dri-d?= =?unknown-8bit?q?evel=40lists=2Efreedesktop=2Eorg=2C_Phil_Elwell_=3Cphil=40?= =?unknown-8bit?q?raspberrypi=2Ecom=3E=2C_Hans_de_Goede_=3Chdegoede=40redhat?= =?unknown-8bit?q?=2Ecom=3E=2C_Noralf_Tr=C3=B8nnes_=3Cnoralf=40tronnes=2Eorg?= =?unknown-8bit?q?=3E=2C_Geert_Uytterhoeven_=3Cgeert=40linux-m68k=2Eorg=3E?= =?unknown-8bit?q?=2C_Maxime_Ripard_=3Cmaxime=40cerno=2Etech=3E=2C_Mateusz_K?= =?unknown-8bit?q?wiatkowski_=3Ckfyatek+publicgit=40gmail=2Ecom=3E=2C_linux-?= =?unknown-8bit?q?sunxi=40lists=2Elinux=2Edev=2C_linux-arm-kernel=40lists=2E?= =?unknown-8bit?q?infradead=2Eorg?= Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" The current code to deal with named modes will only set the mode name, and then it's up to drivers to try to match that name to whatever mode or configuration they see fit. The plan is to remove that need and move the named mode handling out of drivers and into the core, and only rely on modes and properties. Let's start by properly filling drm_cmdline_mode from a named mode. Reviewed-by: Noralf Trønnes Signed-off-by: Maxime Ripard --- Changes in v7: - Add Noralf Reviewed-by:w --- drivers/gpu/drm/drm_modes.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c index 7594b657f86a..acee23e1a8b7 100644 --- a/drivers/gpu/drm/drm_modes.c +++ b/drivers/gpu/drm/drm_modes.c @@ -2226,11 +2226,22 @@ static int drm_mode_parse_cmdline_options(const char *str, struct drm_named_mode { const char *name; + unsigned int xres; + unsigned int yres; + unsigned int flags; }; +#define NAMED_MODE(_name, _x, _y, _flags) \ + { \ + .name = _name, \ + .xres = _x, \ + .yres = _y, \ + .flags = _flags, \ + } + static const struct drm_named_mode drm_named_modes[] = { - { "NTSC", }, - { "PAL", }, + NAMED_MODE("NTSC", 720, 480, DRM_MODE_FLAG_INTERLACE), + NAMED_MODE("PAL", 720, 576, DRM_MODE_FLAG_INTERLACE), }; static int drm_mode_parse_cmdline_named_mode(const char *name, @@ -2271,6 +2282,9 @@ static int drm_mode_parse_cmdline_named_mode(const char *name, continue; strcpy(cmdline_mode->name, mode->name); + cmdline_mode->xres = mode->xres; + cmdline_mode->yres = mode->yres; + cmdline_mode->interlace = !!(mode->flags & DRM_MODE_FLAG_INTERLACE); cmdline_mode->specified = true; return 1;