From patchwork Thu Sep 22 14:25:37 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxime Ripard X-Patchwork-Id: 12985350 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 864E9C6FA82 for ; Thu, 22 Sep 2022 14:47:42 +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=AJFa57SvSUuOthp5ChIRqvdbYABJlmoKRBVcfH/jmHc=; b=ksX2C1Y7Qv3uYA U8UD8Iqjd+gbJf6vd+yb+RoM09gTE9pK9xI3Y/JqyGluhJuMn8L9uZm5T/nThkPXRSio0k5NMhaXC 0RV6squ/mEQjmWHd3ev7wBgvpvvO8l+MopCKQX9Ru1liusfhz2Tt7iyPdMaWvIhowurNu2q5O++LD IcWis0jFNnT3GhUEbcwJ3R++mxwn4RzBhVmQuVf8d1t4Phtyb5zrLUvg6ZcLxQm0+iyxLU7lqSBZh +d1XLcph9fX7wFNq+NaKfJwo70kl1TDuz7IAWPJLr7L4G+BBkDfu43ZwZGHw3eR3/gTn/+nQ0nXCW gZV/K+zT/vqolcIau+iA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1obNSm-00G9PR-UJ; Thu, 22 Sep 2022 14:46:06 +0000 Received: from wnew4-smtp.messagingengine.com ([64.147.123.18]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1obNBH-00G1Ez-0D for linux-arm-kernel@lists.infradead.org; Thu, 22 Sep 2022 14:28:00 +0000 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailnew.west.internal (Postfix) with ESMTP id CCC942B05B34; Thu, 22 Sep 2022 10:27:55 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute5.internal (MEProxy); Thu, 22 Sep 2022 10:27:58 -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=fm2; t=1663856875; x= 1663864075; bh=LNibWIZ1W4oFh1EO7hNOkEOkBr+JL3i1WQh0c1QOIds=; b=E qjXHEhfsFJxGnXzlHxs8AGJ/IGlCJ4Je9Vkaw37k4eA97mPZkneMuA8RWDB3HH+i MZwBj14i91lWLB07WX/zewgpoAslc0LPsYk4z3vY/zdYB4zhW+MkVl9k/bUIvwnN yrCyQYCggzoQ3BVV835DLVI7j3GsW70l7i+5Yi38mQNTXhZ6PokB80LLNyMyUl3P 0ialxYVCoDahe0/hZ0OSP/LB3t4SEp4jc0eic58DKQZzcxahSenn2ozbI5vJqcxx bHiUgi9eyZHLmlQOrxrh+vu8M13V5qpObxyoUO3kOfbgjwNLFbteJQvFYzZEmovd CAJHzGPBCpaW/yjMjUz5Q== 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=fm2; t=1663856875; x= 1663864075; bh=LNibWIZ1W4oFh1EO7hNOkEOkBr+JL3i1WQh0c1QOIds=; b=F sWV473P8NYYQexGGABI/U0cKKIraWEr2rHvc+4mg4mpibxWI9MR7dEVOoyx9RmQV lqaONiY4JsGgOGv0YMEuhBWmK0HUWAXOZnv7X+QpgOp0ZG/kQqbDD3jCOQ/SjATz mcgkukz3WBbtMKaPXGHVIFiidpDXSH7UIkQWQA8Q4RgRE7r+g6T5kxsjdQw8ttSn i7ODyW2dbuXMZ2srWgYmwO9Q0VrLmOkfroLAaw2tyKKc7gQ5rWd5gyWu9kYtXpJh A4BYfEhRlP7rcCxurB1KUP3Cr5HszCE9q/Fk0F16WxVwIYO2VXwCeWx8/cHX+6Mn hObr4pofH2E+uI6dpPaxQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrfeefgedgudejucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephfffufggtgfgkfhfjgfvvefosehtkeertdertdejnecuhfhrohhmpeforgig ihhmvgcutfhiphgrrhguuceomhgrgihimhgvsegtvghrnhhordhtvggthheqnecuggftrf grthhtvghrnhepudduudfhveejteefgedvffdvvedvjedugedukeejhedtlefhffevtefh jeeltdevnecuvehluhhsthgvrhfuihiivgepfeenucfrrghrrghmpehmrghilhhfrhhomh epmhgrgihimhgvsegtvghrnhhordhtvggthh X-ME-Proxy: Feedback-ID: i8771445c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 22 Sep 2022 10:27:53 -0400 (EDT) From: Maxime Ripard Date: Thu, 22 Sep 2022 16:25:37 +0200 Subject: [PATCH v2 20/33] drm/modes: Fill drm_cmdline mode from named modes MIME-Version: 1.0 Message-Id: <20220728-rpi-analog-tv-properties-v2-20-f733a0ed9f90@cerno.tech> References: <20220728-rpi-analog-tv-properties-v2-0-f733a0ed9f90@cerno.tech> In-Reply-To: <20220728-rpi-analog-tv-properties-v2-0-f733a0ed9f90@cerno.tech> To: Jernej Skrabec , Rodrigo Vivi , Ben Skeggs , David Airlie , Maxime Ripard , Joonas Lahtinen , Emma Anholt , Karol Herbst , Samuel Holland , Jani Nikula , Thomas Zimmermann , Daniel Vetter , Lyude Paul , Maarten Lankhorst , Tvrtko Ursulin , Chen-Yu Tsai Cc: =?unknown-8bit?q?Hans_de_Goede_=3Chdegoede=40redhat=2Ecom=3E=2C_nouveau?= =?unknown-8bit?q?=40lists=2Efreedesktop=2Eorg=2C_Geert_Uytterhoeven_=3Cgeer?= =?unknown-8bit?q?t=40linux-m68k=2Eorg=3E=2C?= =?unknown-8bit?q?_Dave_Stevenson_=3Cdave=2Estevenson=40raspberrypi=2Ecom=3E?= =?unknown-8bit?q?=2C_linux-kernel=40vger=2Ekernel=2Eorg=2C_linux-arm-kernel?= =?unknown-8bit?q?=40lists=2Einfradead=2Eorg=2C?= =?unknown-8bit?q?_Phil_Elwell_=3Cphil=40raspberrypi=2Ecom=3E=2C_intel-gfx=40?= =?unknown-8bit?q?lists=2Efreedesktop=2Eorg=2C_Noralf_Tr=C3=B8nnes_=3Cnoralf?= =?unknown-8bit?q?=40tronnes=2Eorg=3E=2C?= =?unknown-8bit?q?_Dom_Cobley_=3Cdom=40raspberrypi=2Ecom=3E=2C_linux-sunxi=40?= =?unknown-8bit?q?lists=2Elinux=2Edev=2C_Maxime_Ripard_=3Cmaxime=40cerno=2Et?= =?unknown-8bit?q?ech=3E=2C?= =?unknown-8bit?q?_Mateusz_Kwiatkowski_=3Ckfyatek+publicgit=40gmail=2Ecom=3E?= =?unknown-8bit?q?=2C_dri-devel=40lists=2Efreedesktop=2Eorg?= X-Mailer: b4 0.10.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1635; i=maxime@cerno.tech; h=from:subject:message-id; bh=Vry5+OU4UmtPLlNtlWmlVT8AGNp67JVCIbgY1gO14o0=; b=owGbwMvMwCX2+D1vfrpE4FHG02pJDMk6BYGTBLVVDtizMWVdeij876WFp+gKK09OnYcs/uxpJWEx 4TUdpSwMYlwMsmKKLDHC5kviTs163cnGNw9mDisTyBAGLk4BmMiTEob/iX8nJmuELX3kvey/LfPp0D VTCh/6MXwXn293TJxrq91kN0aGBo0SUYm+rXEuJ4v47hucixC2K5kcGCIf1CT7u/DFfxc2AA== 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-20220922_072759_113797_E637205F X-CRM114-Status: GOOD ( 11.49 ) 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 diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c index 8c8b37ba37dc..5d8b6a0d96f3 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;