From patchwork Mon Nov 14 13:00:30 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Maxime Ripard X-Patchwork-Id: 13042353 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 A5259C4332F for ; Mon, 14 Nov 2022 13:08:35 +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=+thwH5krzfrVdPbIk0rVx5Nc09zavnLe73CsF6UNiiM=; b=E7D8OzdaXf3/Vc I3hws2jFBhfPVVFJR44zu97CiosMGLq5KgqUfnuhlmPY28pLl95BlsS7NbvnLQBPvZSCuHrmyftRW CHnX9YAgfzoCdJ8dv50xVXwda7lo6dH7QncQBBIFvTsRPxk3FO8N+2aIGdEJbZq1grpcQvyhjTUE9 0b2DAnB370Ifv5BOvA2L6FWg/JwGAQgm+1AawN1WER6VhTDukuNvf+BiLBajzwbT19CRRL7SQiRtO 12b2M9v8AvYvXktJ32P3XdpKRZ+txHTCd7GzlhB9Ngm/5ehrRmBIP+PP28DAMyMapTwRVKNLgh5zh m20UEi42cMJwtVJ3kw3Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ouZBK-0014VY-VK; Mon, 14 Nov 2022 13:07:24 +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 1ouZ58-0010hG-QV for linux-arm-kernel@lists.infradead.org; Mon, 14 Nov 2022 13:01:00 +0000 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailnew.nyi.internal (Postfix) with ESMTP id 3711558023E; Mon, 14 Nov 2022 08:00:58 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Mon, 14 Nov 2022 08:00:58 -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=1668430858; x= 1668438058; bh=f5Bxyyy3gbM1aob3o5oavcw2aZQ/p0BMdvQWWMyrDVI=; b=R 1D5VtaycnPq4jh1AQtM28QigfQUn3hUU0KGllPepBPUaZ3t/KijVEvemhxT4MhRe 6+AD724irdiNjeCGCihKyy27YtopcG2O9A3VLBQzQJCAHgtHXagSYKh1fLQ2CxBY arODKGOdU8SYqR00D7zuZ4RqcK8JJqJ3KGdPEi/4cywqwf/0Q7Z/b0ztQ3EIz4PU 2kCqXTxcH+p7iDLtRCdh0JVK/XJZYPtjhOSWR9evuHUgub8K3oyYDY5NFh8pUeoS 5/+XC9jVD5cb6vC+gMm5bP11zHyi335VEedxIkQ2ItfmrNmQWrDHdayrjwwOvTNI 5uhchrGU/hmqkrBKDp7uQ== 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=1668430858; x= 1668438058; bh=f5Bxyyy3gbM1aob3o5oavcw2aZQ/p0BMdvQWWMyrDVI=; b=J 9vFukDj9AhNePZ0aFGnUDhvuujQpSMzaOIzc8XKQ3zMyKIAFvcy1tDGOQteYi6WD HGK0kMVU+ut4edpEly1EEhKElUhIM8IPfwWKzUFrFApLG+kX6zShoAE00iShhJhV U4uvYWT6yOBHhdH+Z8trO0VJfNjYEC2gfkIS2ivgmQj1qEBkNC4AU1WnWE7qb+zA C7B79T6evZSQPABGyxsfnd3RRopUxjrUYqaKPS7UCjuKaGObfj949eIEhEhv4A9y IhXQQv1yEK/LfvKBxiuQeIBAcVisUIZG6QvpIddB3AqibJKGMcrHx18O5yxsKvyf DeWaCuO/qk5ndHi7a2aLQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvgedrgedvgddvtdcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhfffuggfgtgfkfhgjvfevofesthekredtredtjeenucfhrhhomhepofgrgihi mhgvucftihhprghrugcuoehmrgigihhmvgestggvrhhnohdrthgvtghhqeenucggtffrrg htthgvrhhnpedvgfevjefhtdetveevhfelieeuueetgfdvgeevkeegudejffegfffgtedt leelhfenucevlhhushhtvghrufhiiigvpedunecurfgrrhgrmhepmhgrihhlfhhrohhmpe hmrgigihhmvgestggvrhhnohdrthgvtghh X-ME-Proxy: Feedback-ID: i8771445c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 14 Nov 2022 08:00:57 -0500 (EST) From: Maxime Ripard Date: Mon, 14 Nov 2022 14:00:30 +0100 Subject: [PATCH v9 11/25] drm/modes: Fill drm_cmdline mode from named modes MIME-Version: 1.0 Message-Id: <20220728-rpi-analog-tv-properties-v9-11-24b168e5bcd5@cerno.tech> References: <20220728-rpi-analog-tv-properties-v9-0-24b168e5bcd5@cerno.tech> In-Reply-To: <20220728-rpi-analog-tv-properties-v9-0-24b168e5bcd5@cerno.tech> To: Maxime Ripard , Karol Herbst , Samuel Holland , Joonas Lahtinen , Daniel Vetter , Chen-Yu Tsai , Maarten Lankhorst , Lyude Paul , Thomas Zimmermann , Emma Anholt , Jani Nikula , Rodrigo Vivi , Ben Skeggs , Tvrtko Ursulin , David Airlie , Jernej Skrabec Cc: =?unknown-8bit?q?Dom_Cobley_=3Cdom=40raspberrypi=2Ecom=3E=2C_Phil_Elwell?= =?unknown-8bit?q?_=3Cphil=40raspberrypi=2Ecom=3E=2C?= =?unknown-8bit?q?_Mateusz_Kwiatkowski_=3Ckfyatek+publicgit=40gmail=2Ecom=3E?= =?unknown-8bit?q?=2C_nouveau=40lists=2Efreedesktop=2Eorg=2C?= =?unknown-8bit?q?_Dave_Stevenson_=3Cdave=2Estevenson=40raspberrypi=2Ecom=3E?= =?unknown-8bit?q?=2C_Hans_de_Goede_=3Chdegoede=40redhat=2Ecom=3E=2C_intel-g?= =?unknown-8bit?q?fx=40lists=2Efreedesktop=2Eorg=2C?= =?unknown-8bit?q?_dri-devel=40lists=2Efreedesktop=2Eorg=2C_linux-kernel=40vg?= =?unknown-8bit?q?er=2Ekernel=2Eorg=2C_linux-arm-kernel=40lists=2Einfradead?= =?unknown-8bit?q?=2Eorg=2C?= =?unknown-8bit?q?_Noralf_Tr=C3=B8nnes_=3Cnoralf=40tronnes=2Eorg=3E=2C_Geert_?= =?unknown-8bit?q?Uytterhoeven_=3Cgeert=40linux-m68k=2Eorg=3E=2C_Maxime_Ripa?= =?unknown-8bit?q?rd_=3Cmaxime=40cerno=2Etech=3E=2C?= =?unknown-8bit?q?_linux-sunxi=40lists=2Elinux=2Edev?= X-Mailer: b4 0.11.0-dev-99e3a X-Developer-Signature: v=1; a=openpgp-sha256; l=1919; i=maxime@cerno.tech; h=from:subject:message-id; bh=V/HryWBeSFhWZNkmbgXKuJjMNJOyfsAtwscHjRyAPVk=; b=owGbwMvMwCX2+D1vfrpE4FHG02pJDMlF1q8jOKW/nTxb6HnXodXuv4f75TmXl1eU7GXPSdqmlhol FhXRUcrCIMbFICumyBIjbL4k7tSs151sfPNg5rAygQxh4OIUgIl0zGb4p/9ooY3oV89/nmFrP1pscP U6JC50QCAubob1qjNT+c9cjmL4H6r0OSb58Up7NZOprCf3fElvqrKeuG23dsWpPQ+jk68p8wAA 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-20221114_050058_953461_619B3D37 X-CRM114-Status: GOOD ( 13.59 ) 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. Reviewed-by: Noralf Trønnes Tested-by: Mateusz Kwiatkowski 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;