From patchwork Thu Sep 29 16:31:11 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxime Ripard X-Patchwork-Id: 12994442 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 9DD33C433F5 for ; Thu, 29 Sep 2022 16:49:10 +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=JqEq/ODMI7218g 1MMHvGJSuVxkxCXtur+TivG1fB8ZlnsqjYMGX8e+Y8KtVHKKktZL61Dt7ZbESRkqekFwTfs/KQs5k Yuz/my/bt1hlRrtqFtDLpm2LWNBOhxcjmc9hHiJsDolBvEd3JHozHZEXDic0M28Ph2ilUliAv1uSn LYTNeiyqK2x1/p3E6qXn0w+okQArZICeBOUk3vvYLNnZBla5AL0ZAtG8Y/9hzWeFr+1ymI7EXyLzC FR/IAQCWrweSGITQxeQoo9EKOfUf6UYKl5N8duZODBCWDNhc7x/b0Z818DbEKj77rW8UnTkvgR9mV 6Xd5ekrFFfORWPNMxRow==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1odwhC-004JHB-1W; Thu, 29 Sep 2022 16:47:34 +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 1odwS3-004C5j-50 for linux-arm-kernel@lists.infradead.org; Thu, 29 Sep 2022 16:31:58 +0000 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailnew.nyi.internal (Postfix) with ESMTP id 67D125807D7; Thu, 29 Sep 2022 12:31:54 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute5.internal (MEProxy); Thu, 29 Sep 2022 12:31:54 -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=1664469114; x= 1664476314; bh=HeTs54yGfJcuWDWpIXgjp2EtWnqzAACladqtoOYJ5Iw=; b=4 QsN+ZEY8mWRq9g5Pd0t02kHb883t7D1L9vgNNQkGeY/UrWbF0IdD8C69/+/8lRzT MrMzqAjRukrzydlOIEWvyQuSw1KjUB2QRJUF+Ho/duMia4xZeCf4VvRqgZZ7aqCf 2lD59wWEXrbRjalGgGUtTD2V61W0mFiiP7cv+giLpp7ElAgaM9yzzRUPxwMOqcfU xyWAgp3+SDx6YKBu/vNohqDBXaYX9wri07XDL98Zb+pgwIrjWshA/V2ZldhOncER EvuiSNHXbBuaQQtDl6ByODy934f6DxEKqgOAFPzCNIkJm+SkZbl5BSQ+tKI250wq 0r4PZunDQZCkyoigi9qdw== 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=1664469114; x= 1664476314; bh=HeTs54yGfJcuWDWpIXgjp2EtWnqzAACladqtoOYJ5Iw=; b=L D76K3Q9nYZXFKsXc+LlE5WUbuFtNG9iZrUY/2C5aferzPmcQq6Cnc/Dp56nw/zIH gWCJRMNcpRUJ0Wa/aOC03E7sqZLLbFQWwrDmm0ked8uC8bZl1ym1qLP9Wkr44bP6 fsqyfcPQqxpeypTxvq/F9OwfnaCMMj2y1VoedgrMUH5n5qHhNkGwPwVJ/bfx4V5f irfDc302f39SQ4P82R/n0HVYj96tAF+Q1iIhC95h6PXa+UsPi4cGG/SIAol4WPLu upklcywQQlBzYnXZwB7o+/TFZRdq5nDCgVOay8qlAuMuUX4B+o38JTyvGiQXhozB YwfE59lvip5R8l+xj51qg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrfeehtddguddtvdcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefhfffugggtgffkfhgjvfevofesthekredtredtjeenucfhrhhomhepofgr gihimhgvucftihhprghrugcuoehmrgigihhmvgestggvrhhnohdrthgvtghhqeenucggtf frrghtthgvrhhnpeduudduhfevjeetfeegvdffvdevvdejudegudekjeehtdelhfffveet hfejledtveenucevlhhushhtvghrufhiiigvpeefnecurfgrrhgrmhepmhgrihhlfhhroh hmpehmrgigihhmvgestggvrhhnohdrthgvtghh X-ME-Proxy: Feedback-ID: i8771445c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 29 Sep 2022 12:31:48 -0400 (EDT) From: Maxime Ripard Date: Thu, 29 Sep 2022 18:31:11 +0200 Subject: [PATCH v4 17/30] drm/modes: Fill drm_cmdline mode from named modes MIME-Version: 1.0 Message-Id: <20220728-rpi-analog-tv-properties-v4-17-60d38873f782@cerno.tech> References: <20220728-rpi-analog-tv-properties-v4-0-60d38873f782@cerno.tech> In-Reply-To: <20220728-rpi-analog-tv-properties-v4-0-60d38873f782@cerno.tech> To: Jernej Skrabec , Chen-Yu Tsai , Karol Herbst , Samuel Holland , Lyude Paul , Jani Nikula , Daniel Vetter , Thomas Zimmermann , Emma Anholt , Joonas Lahtinen , Ben Skeggs , David Airlie , Rodrigo Vivi , Tvrtko Ursulin , Maarten Lankhorst , Maxime Ripard Cc: =?unknown-8bit?q?linux-arm-kernel=40lists=2Einfradead=2Eorg=2C_Maxime_Ri?= =?unknown-8bit?q?pard_=3Cmaxime=40cerno=2Etech=3E=2C_dri-devel=40lists=2Efr?= =?unknown-8bit?q?eedesktop=2Eorg=2C?= =?unknown-8bit?q?_Geert_Uytterhoeven_=3Cgeert=40linux-m68k=2Eorg=3E=2C_intel?= =?unknown-8bit?q?-gfx=40lists=2Efreedesktop=2Eorg=2C_linux-sunxi=40lists=2E?= =?unknown-8bit?q?linux=2Edev=2C?= =?unknown-8bit?q?_Hans_de_Goede_=3Chdegoede=40redhat=2Ecom=3E=2C_nouveau=40l?= =?unknown-8bit?q?ists=2Efreedesktop=2Eorg=2C_Noralf_Tr=C3=B8nnes_=3Cnoralf?= =?unknown-8bit?q?=40tronnes=2Eorg=3E=2C?= =?unknown-8bit?q?_Mateusz_Kwiatkowski_=3Ckfyatek+publicgit=40gmail=2Ecom=3E?= =?unknown-8bit?q?=2C_Dave_Stevenson_=3Cdave=2Estevenson=40raspberrypi=2Ecom?= =?unknown-8bit?q?=3E=2C?= =?unknown-8bit?q?_linux-kernel=40vger=2Ekernel=2Eorg=2C_Dom_Cobley_=3Cdom=40?= =?unknown-8bit?q?raspberrypi=2Ecom=3E=2C_Phil_Elwell_=3Cphil=40raspberrypi?= =?unknown-8bit?q?=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+D1vfrpE4FHG02pJDMmmJ9yZNkXNjzfasnf7gxTVWxOv+PG6JAb5mwbE97ey/Bdx W3G6o5SFQYyLQVZMkSVG2HxJ3KlZrzvZ+ObBzGFlAhnCwMUpABOZ/IeR4ZmQzZq0NR9c921YdaJpyf cFcVIMZzbXr3HcYJIRVVSz7hEjw7kVmuEFjSXsOpVhX7XFvuq47J74ZvPvvbVb47n1Pl85xQ4A 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-20220929_093155_303244_AB34DB7F X-CRM114-Status: GOOD ( 13.52 ) 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;