From patchwork Thu Oct 13 13:18:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxime Ripard X-Patchwork-Id: 13006050 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 96D82C433FE for ; Thu, 13 Oct 2022 13:28:46 +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=T3uqFha7mS6P8il4McN00bdDqocwACqiOSdkQ6jPCTM=; b=qiu7T1aB9QGabV S9Pmy3MylEBIzf8/549FK1JSpS8NIM3djBNvGD1Y4wMdPtjHS3lbQjmQge9EydT3WdsZm/wom9Dze LgkvaGzaJJ9WGBLZVDE+jo7dBc4Xa3/ydmU1gpFNti53cZHVX+0mpEyK//5BgiEAx5v4TYrO4VDhG fFSAUoy1ewfceqr7HS5O+TByKxJ2Mi5qxmSzEC3gg9LqOVQIlr7tQj82/suxSqvnv3fdLAxgz8CCQ ekC4rmBLr2TK6EBEbMecanqdBsoOeJ6hHOZD0++jHWXmFV7lY/xcYZd9Mj7bJiq3MG42nXPGye+2P h2k8VpyEbWN+Kq5NzAJQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oiyEw-00BrqF-DS; Thu, 13 Oct 2022 13:27:11 +0000 Received: from new3-smtp.messagingengine.com ([66.111.4.229]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oiy7T-00BoWZ-AI for linux-arm-kernel@lists.infradead.org; Thu, 13 Oct 2022 13:19:28 +0000 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailnew.nyi.internal (Postfix) with ESMTP id B0593580351; Thu, 13 Oct 2022 09:19:26 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute1.internal (MEProxy); Thu, 13 Oct 2022 09:19:26 -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=1665667166; x= 1665674366; bh=HeTs54yGfJcuWDWpIXgjp2EtWnqzAACladqtoOYJ5Iw=; b=T IZ5q0fyGHOCvbE0/Zwnk+t4hWkrK5plQ6BC6YV0v0rkIPYq8wJanMT7Mfr7+PE0Y guB3roxFIqbfGKIjdD5090ZaIkkqDhTH9aXffiElS+ZJvVFhRjNkqAiqmbv/yT8R pTD796nSWytlPXXlKwkTnkCtG89WT/lOo/s+aSRouXPpo0o6Kexg7QTcJUF/CWAw ZJu/u/2f6f4YT3uSQhB8iWBDJrEJ/PLXZvvdx3GdSMVjBDF481dvamVMXWcejx1D cnJ6sUAfJWZlCQveA6H5hswv6jilGHrhyvX1+lPajTDODMBdjzfJHwCSj+/mZCk3 2zBI3EzByHqIKRFY+7cYQ== 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=1665667166; x= 1665674366; bh=HeTs54yGfJcuWDWpIXgjp2EtWnqzAACladqtoOYJ5Iw=; b=U mDeWlGJJ34Ge+UkTWONXYIZnnKMfQWoIQ4I1m3mRCpHQYZxgoyDk06svPnEK+XiZ dVP7Jm2ZvnqzGGFpRp+oUzNiTJztDxwAmoFZ1fs39vtfsbLbG2Hs904NQgySgwef Q5MQf5zfYcjDMPnh/ldX6Z4BrisKE/z8+s5nt1CpvJVkipPqBuZ8osv9eC2MD2b5 Q8FwkrdNd4tcWThyCQviF9+ICwVSvOPlmHVvzfomQk1IVC7/ZUrmuhC+Z155Faa2 TsTFkphd9v3F26lXwkRr3GPaEOIcicKmxDAMY5KyhzvB94s/HLIp1x2XMlEmLk37 Z4N3OhM0U0P+unbXlH21Q== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrfeektddgieehucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephfffufggtgfgkfhfjgfvvefosehtkeertdertdejnecuhfhrohhmpeforgig ihhmvgcutfhiphgrrhguuceomhgrgihimhgvsegtvghrnhhordhtvggthheqnecuggftrf grthhtvghrnhepudduudfhveejteefgedvffdvvedvjedugedukeejhedtlefhffevtefh jeeltdevnecuvehluhhsthgvrhfuihiivgepudenucfrrghrrghmpehmrghilhhfrhhomh epmhgrgihimhgvsegtvghrnhhordhtvggthh X-ME-Proxy: Feedback-ID: i8771445c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 13 Oct 2022 09:19:26 -0400 (EDT) From: Maxime Ripard Date: Thu, 13 Oct 2022 15:18:54 +0200 Subject: [PATCH v5 10/22] drm/modes: Fill drm_cmdline mode from named modes MIME-Version: 1.0 Message-Id: <20220728-rpi-analog-tv-properties-v5-10-d841cc64fe4b@cerno.tech> References: <20220728-rpi-analog-tv-properties-v5-0-d841cc64fe4b@cerno.tech> In-Reply-To: <20220728-rpi-analog-tv-properties-v5-0-d841cc64fe4b@cerno.tech> To: Karol Herbst , Jani Nikula , Tvrtko Ursulin , Daniel Vetter , Maarten Lankhorst , David Airlie , Joonas Lahtinen , Lyude Paul , Maxime Ripard , Emma Anholt , Chen-Yu Tsai , Samuel Holland , Ben Skeggs , Thomas Zimmermann , Rodrigo Vivi , Jernej Skrabec Cc: =?unknown-8bit?q?Dom_Cobley_=3Cdom=40raspberrypi=2Ecom=3E=2C_Maxime_Ripa?= =?unknown-8bit?q?rd_=3Cmaxime=40cerno=2Etech=3E=2C_linux-sunxi=40lists=2Eli?= =?unknown-8bit?q?nux=2Edev=2C?= =?unknown-8bit?q?_Dave_Stevenson_=3Cdave=2Estevenson=40raspberrypi=2Ecom=3E?= =?unknown-8bit?q?=2C_Noralf_Tr=C3=B8nnes_=3Cnoralf=40tronnes=2Eorg=3E=2C_in?= =?unknown-8bit?q?tel-gfx=40lists=2Efreedesktop=2Eorg=2C?= =?unknown-8bit?q?_linux-kernel=40vger=2Ekernel=2Eorg=2C_nouveau=40lists=2Efr?= =?unknown-8bit?q?eedesktop=2Eorg=2C_Geert_Uytterhoeven_=3Cgeert=40linux-m68?= =?unknown-8bit?q?k=2Eorg=3E=2C?= =?unknown-8bit?q?_linux-arm-kernel=40lists=2Einfradead=2Eorg=2C_Mateusz_Kwia?= =?unknown-8bit?q?tkowski_=3Ckfyatek+publicgit=40gmail=2Ecom=3E=2C?= =?unknown-8bit?q?_dri-devel=40lists=2Efreedesktop=2Eorg=2C_Hans_de_Goede_=3C?= =?unknown-8bit?q?hdegoede=40redhat=2Ecom=3E=2C_Phil_Elwell_=3Cphil=40raspbe?= =?unknown-8bit?q?rrypi=2Ecom=3E?= X-Mailer: b4 0.11.0-dev-7da52 X-Developer-Signature: v=1; a=openpgp-sha256; l=1755; i=maxime@cerno.tech; h=from:subject:message-id; bh=eK4mvg+/Vgt1Y5yuflrP/Rh+1orwahkzuADXYnjtlew=; b=owGbwMvMwCX2+D1vfrpE4FHG02pJDMkeAm4qujHMu7iqtrvt8LAL/6lSbRT49vL+A765aS/Za1ut zQ52lLIwiHExyIopssQImy+JOzXrdScb3zyYOaxMIEMYuDgFYCL+0owMG1zmafkr6U/uUm+fYZh85w 7X6TedJy5lelpkfuGwEKyWZfgf2V3fWhQQ1rgj0OLjHw7NOS8+703nW/HQddauNxJJ+/W5AQ== 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-20221013_061927_478724_85919282 X-CRM114-Status: GOOD ( 12.50 ) 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 --- 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 7ed3fb839db7..99453aca9a83 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, @@ -2275,6 +2286,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;