From patchwork Wed Oct 26 15:33:29 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Maxime Ripard X-Patchwork-Id: 13020829 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 5B2E9C433FE for ; Wed, 26 Oct 2022 15:39:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References:Message-Id :MIME-Version:Subject:Date:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=JQlc93sRGrx+RblZaUFOYxjx/9Dqih1JgGpFAaJYoww=; b=zawUgmKU5X8qkZ sbBs2ntipcTGIP24QxChx2HQTD39Yt3AB3LxhqADHpP7JKM87AexaipIBxVH6gn7viva/EygFPFnC hGdp1pIou1Dws4M5qfkbAOajEy1pBLDH7Kj7UQjfl381SeaKCLoj3fy5UTnDHzegP0tzDhDKIFxgh 2DX9zvHFOfTB82GAmks/FyPeXbg/HzMpKfnsv/Z+Ll0L1WIGjBxW897BcSX8bCVx8rjngZ1IieTW6 NQ31fLFJ6sBOXpm/UCVVnfEo8IA5YAiAV5xTNtI4zDKFU8SzsguPdM/p3M9adxpfzFJVnCVNeYybE aBW+7h/ujkTfSJ1XSziw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oniU6-009w6h-8X; Wed, 26 Oct 2022 15:38:26 +0000 Received: from new4-smtp.messagingengine.com ([66.111.4.230]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oniPh-009u4S-FY for linux-arm-kernel@lists.infradead.org; Wed, 26 Oct 2022 15:33:54 +0000 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailnew.nyi.internal (Postfix) with ESMTP id C88E558040D; Wed, 26 Oct 2022 11:33:52 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute1.internal (MEProxy); Wed, 26 Oct 2022 11:33:52 -0400 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=fm3; t=1666798432; x= 1666805632; bh=SXMlVCwujUWn5ijYluVa7H3jLHYEQBr1nrtXJ/1PSeY=; b=w QyLRcX3RKXHtCWol8ziF9sMZBc85vejZIeHrZGhJnfil9Oow2LaynO75kZNREqKR AXml+aSv/U3Yz1+qZRAOCZAhhHMvE3fDVzknNIWIdQ97UZmdVCiIL27GayU5u2RI i0Dl3DwGIPn+/fvUWjZfwSsZpTI4gTxjbT+wekV3MWY9xdJiNFF+I9tRV7h0iAZ4 tdjAUUlPAtbFikoeV2t2ZnD2o9+N8TAZlN/md3SxE9um9rMNmuJKfhivHvHhzWQj SiS7JyenUGghkz2/C0nfEBrrW2w4vKeWrOWyJJccWN6kUrpo5AeQszTU5qLv6RU2 9882qcCYC8HJ8HZEveGmg== 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=fm3; t=1666798432; x= 1666805632; bh=SXMlVCwujUWn5ijYluVa7H3jLHYEQBr1nrtXJ/1PSeY=; b=X CKcNHIMRkZpr2XU5d4cL+LJQ9l/gjiJIJ8yGJoEGuA/QYoBv4sg/3YDfVveGuAIU CapvIPiD3ZTgtACBRmHUJ0JdyaQRVmPOEQ9ZtzGGhLnw8mPZY1qc9k/bmM2zC7M4 x2pyX5AgeHTQDnDHS4NiBG2+V+qV1i2Qi/gxeOK/Dc3z0mSJyIbclUEUfuHz1NZ7 j05cF7b9WILs7OGWaoTVTJDmkj101igbMRKETbk0kfOjeok6tq4SvtU2WWEFs8x8 XEPBBvAbmhWyxeawq+qDG32LUeONx902uTRkHxMHmOl80WU54t5Ch7nz58fAnAE9 tuO9OOmYOhuEkawZxoTPw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvgedrtddvgdeltdcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhfffugggtgffkfhgjvfevofesthekredtredtjeenucfhrhhomhepmhgrgihi mhgvsegtvghrnhhordhtvggthhenucggtffrrghtthgvrhhnpeefudfhgeevhefhfedtue evueeluddutdetuddtvddvgeekheelvefhteekteeihfenucevlhhushhtvghrufhiiigv pedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrgigihhmvgestggvrhhnohdrthgvtg hh X-ME-Proxy: Feedback-ID: i8771445c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 26 Oct 2022 11:33:51 -0400 (EDT) From: maxime@cerno.tech Date: Wed, 26 Oct 2022 17:33:29 +0200 Subject: [PATCH v6 10/23] drm/modes: Fill drm_cmdline mode from named modes MIME-Version: 1.0 Message-Id: <20220728-rpi-analog-tv-properties-v6-10-e7792734108f@cerno.tech> References: <20220728-rpi-analog-tv-properties-v6-0-e7792734108f@cerno.tech> In-Reply-To: <20220728-rpi-analog-tv-properties-v6-0-e7792734108f@cerno.tech> To: Karol Herbst , Emma Anholt , Ben Skeggs , Chen-Yu Tsai , Rodrigo Vivi , Maarten Lankhorst , Jani Nikula , Daniel Vetter , Thomas Zimmermann , Tvrtko Ursulin , Samuel Holland , Jernej Skrabec , David Airlie , Maxime Ripard , Joonas Lahtinen , Lyude Paul Cc: =?unknown-8bit?q?linux-sunxi=40lists=2Elinux=2Edev=2C_Maxime_Ripard_=3Cm?= =?unknown-8bit?q?axime=40cerno=2Etech=3E=2C_intel-gfx=40lists=2Efreedesktop?= =?unknown-8bit?q?=2Eorg=2C?= =?unknown-8bit?q?_Phil_Elwell_=3Cphil=40raspberrypi=2Ecom=3E=2C_linux-arm-ke?= =?unknown-8bit?q?rnel=40lists=2Einfradead=2Eorg=2C_nouveau=40lists=2Efreede?= =?unknown-8bit?q?sktop=2Eorg=2C?= =?unknown-8bit?q?_Hans_de_Goede_=3Chdegoede=40redhat=2Ecom=3E=2C_Dom_Cobley_?= =?unknown-8bit?q?=3Cdom=40raspberrypi=2Ecom=3E=2C?= =?unknown-8bit?q?_Mateusz_Kwiatkowski_=3Ckfyatek+publicgit=40gmail=2Ecom=3E?= =?unknown-8bit?q?=2C_dri-devel=40lists=2Efreedesktop=2Eorg=2C?= =?unknown-8bit?q?_Dave_Stevenson_=3Cdave=2Estevenson=40raspberrypi=2Ecom=3E?= =?unknown-8bit?q?=2C_linux-kernel=40vger=2Ekernel=2Eorg=2C_Noralf_Tr=C3=B8n?= =?unknown-8bit?q?nes_=3Cnoralf=40tronnes=2Eorg=3E=2C?= =?unknown-8bit?q?_Geert_Uytterhoeven_=3Cgeert=40linux-m68k=2Eorg=3E?= X-Mailer: b4 0.11.0-dev-99e3a X-Developer-Signature: v=1; a=openpgp-sha256; l=1755; i=maxime@cerno.tech; h=from:subject:message-id; bh=H2y9y7eNqc9Q4StL5kM0iFsoomBesHaC2CAmPl0XFSQ=; b=owGbwMvMwCX2+D1vfrpE4FHG02pJDMmRwW6Pk8zc1XdIhyy5VLT6XJWNo7rbcY2dhWuWVSa1Gzjn mzt2lLIwiHExyIopssQImy+JOzXrdScb3zyYOaxMIEMYuDgFYCJTUxn++6w/vah31rIuT4bstyvOq5 2/x5zd+ISNt6aIcfOi/5Z7vzL8FZsgfO2Y4tHiR2qvkpZM/u+95DXr16kJzxnqfvoVNj1pYwEA X-Developer-Key: i=maxime@cerno.tech; a=openpgp; fpr=BE5675C37E818C8B5764241C254BCFC56BF6CE8D X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221026_083353_610756_FB5CB73F X-CRM114-Status: GOOD ( 13.64 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org 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. Signed-off-by: Maxime Ripard Reviewed-by: Noralf Trønnes --- 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;