From nobody Mon Jul 27 20:01:41 2026 Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9EA9C422E22 for ; Thu, 16 Jul 2026 19:25:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784229939; cv=none; b=XD6IkmR8oDGX1zZV0aJ8rJDj/tcCBf6ykPMjz83izgvzr0K+Fb79WNM5tVpcD/W7Hh5Pyx+EgCJg32epTnB8nuTo7IvhEubQwo0tOdnkZzdWMHiTDCifXHL/TskpmJeSWb7vUzpb5ObRrFR7uKfm+OmzEOhTtbx3p7ag2gW39u0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784229939; c=relaxed/simple; bh=UfIEc8aikJ1M4bIzqCGo5pTJFc1acZzEWA/aeiDqyxw=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type; b=JRytIrnpk3kjFTE+aoQb16ZV4QKUEGQn6UopkjwJrCFbVfq7YMtq0jFQEDcze/6qyQV1FowNamMQC2rCUWbnMPA1yKtLgMrUAPm1E81j8y8QFHArHU1sOEcKTLYQaBUUeG9VEEWNpu6BP4c1RktWzXwVCKGpGIstLUEmgmQasyE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre.com header.i=@baylibre.com header.b=Yz+vLs3i; arc=none smtp.client-ip=209.85.128.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre.com header.i=@baylibre.com header.b="Yz+vLs3i" Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-493f431e317so26481505e9.0 for ; Thu, 16 Jul 2026 12:25:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre.com; s=google; t=1784229931; x=1784834731; darn=vger.kernel.org; h=content-transfer-encoding:content-type:mime-version:message-id:date :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to :content-type; bh=2EnDpN9/EzuQRL2oL3rRietJSPrPHbp0gZrBiyubbNo=; b=Yz+vLs3iT8XAHLTomgoSNUA9fVGL0/aq/SJOa7mcpRi8dDiV92Uzz/cYk8h6Fl9hAk nCjUJDLjuDO5OtaTzJI5mG6nqYl0tkB0wmjX7nfRLmIVtno8WC0ueFUoGAayO486ZBVc wxf+VSOWO1aLVP4+X8XYrmKjeY+f1Oy06ENngxnYgqcDAmjEoMDbowPh204QH7Ce3GGI Mn9OLL33JNgM3DPGLy786y3ocviirkr6C2tSqRb4S0yBfM1OaeANmxeEcuLh+r3d4rxk D813hqZo6zCL7HDuzu79QhtyamENEOkh9t2QPx3kzZlIHKW5jNDSpn3TJk8uwlBINSGh o93g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784229931; x=1784834731; h=content-transfer-encoding:content-type:mime-version:message-id:date :subject:cc:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to:content-type; bh=2EnDpN9/EzuQRL2oL3rRietJSPrPHbp0gZrBiyubbNo=; b=jRMZQCHokTvQziu7tLNK5/dWrWpQtgMIn0UrU54oAUi3x4HQDzGI7pCtiTuKk7Jzsw Jw2gx/0CqvDL+JfVe5RwT9tr3Ddjgyrs++EqswEcF12W0CxuaLvfNOncgeQ87OveQ1it 92gT15r1lBruuK1D3VW+J9Vp3u0y0j6V1fIWM8RU6be/cr37baFPjmVldIKgdiYLSjox QABiDjkEcqw1kDNuG0B8q5n8OCXMVJzu4L8uWizoFauAjhwumWDSDRG2LnoN8QDmzba0 RfUdC2h75AcCzbAPKIr59J7qEY9SOtkYDnDN/RyLCVvJ2A9brEwwbsgktH/gWRw9KMeJ Qlzw== X-Forwarded-Encrypted: i=1; AHgh+RqqwBN1ExDJ5UxDFL+Ox4t+/dojALjjiPOD0lWGLHQjr+qOY0ZLyZdBp8AB+bEqnXWXbNfGbDxLoT0oNE4=@vger.kernel.org X-Gm-Message-State: AOJu0YymdYb7p7jO+F/WhyTm4Q0TA1g99M0ReB+cf8RTS3RZSTxoA2bY iWRWQQr96hFWEKLfS/dGqCBI+vm6mCLYishN56Zy+2t9HbjSEJaictUf0jwXp09k4q2e/lmhpql OUWct X-Gm-Gg: AfdE7cmNarOvBCE7ZpuK/h8m5s8MKR7VAogJfRWd9kITIXDI4rNUiOmGG4tZMTRMn5Y qkqQvvo7k8XbC7EB6kM6SwJaCaj8KhFEevuLgRNjgqgmnn0VjANtrxcT06zybcHTExu5osotJy9 PbV7brcguCsvRltR4JUwbZ37evWsEVyWi4LkR38BO8+62T7nih1ddcdY4kTaESZGPtE4AG/wTZ3 UKSHiycu9yxmlVtFExs6Ox/LRBm/ysTBACbLoLr48l5klN0ugs16mip4wiyZb6AtciLNvgAoBIz 1WtSmo0gPNP0qYKq7/RMQlrhKNoGRikGdRhBJ7wAJsb7R2Q0B+NEWSZ0X3TacjQ0KbyNItcSLOS 8ihN8NgH+I27JOyjEKhXEbZhmFLyfbtCvbqOcaXiojX3qY/t+zRVAXhBS9uYKxDTo4q5zr5hq+L z84llX26WnKPTxCV6KUw== X-Received: by 2002:a05:600c:c492:b0:495:4589:cea6 with SMTP id 5b1f17b1804b1-495483c7c53mr7923575e9.34.1784229931237; Thu, 16 Jul 2026 12:25:31 -0700 (PDT) Received: from localhost ([2a02:8071:56d1:2de0:1d24:d58d:2b65:c291]) by smtp.gmail.com with UTF8SMTPSA id 5b1f17b1804b1-49541e51f47sm71110295e9.0.2026.07.16.12.25.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Jul 2026 12:25:30 -0700 (PDT) From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig=20=28The=20Capable=20Hub=29?= To: Roger Quadros , Tony Lindgren , Krzysztof Kozlowski , Miquel Raynal , Vignesh Raghavendra , Johan Hovold Cc: Richard Weinberger , linux-omap@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mtd@lists.infradead.org Subject: [PATCH] mtd: nand-omap2: Move omap_nand_ids[] to raw nand driver Date: Thu, 16 Jul 2026 21:25:23 +0200 Message-ID: <901ca5f67bc57219a9222115fabe1a1729b87e25.1784229863.git.ukleinek@kernel.org> X-Mailer: git-send-email 2.55.0.11.g153666a7d9bb Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Developer-Signature: v=1; a=openpgp-sha256; l=4041; i=u.kleine-koenig@baylibre.com; h=from:subject:message-id; bh=UfIEc8aikJ1M4bIzqCGo5pTJFc1acZzEWA/aeiDqyxw=; b=owGbwMvMwMXY3/A7olbonx/jabUkhqxIA5WUZNG+6b8ZH05yWZKo9HXXNmcm/bYmhpcBcRy3G K3mHGTrZDRmYWDkYpAVU2Sxb1yTaVUlF9m59t9lmEGsTCBTGLg4BWAiMlc5GHoe3FGob/AsE9QK 21HWerB60qeiM2XfV0UWTxSI/nrxc0Bgv+qZ0uA5fdoZix0Ygw4rGQWdEXPsXau0SNO3i/nCxV8 Pd11deXkLZ1ODM0NGovG2V1FCwudCfJ9u4JfayCeqJPKkINyt5nfJC/Hshj2vPrxhVyqsy39h+f PZzAkz/PQMO+fMD+73We+/dX1Xz8H52zb7JUbxKa1myn0XLdG7/r3YDb1bCaqfNzz07+ATCDyw1 i42+/4VRS9p9aDHaSZVjA8uhxefiGo+tClec+9s3/+Nywws4+TOPg26eOrzYRWmwGtuVc8Y9lma Whi1vPld9rPeNKes+NeVq4lsHEJXvdnVH0y6EzWh1OoGAA== X-Developer-Key: i=u.kleine-koenig@baylibre.com; a=openpgp; fpr=0D2511F322BFAB1C1580266BE2DCDD9132669BD6 Content-Transfer-Encoding: quoted-printable Defining a static array in a header results in each .c file that includes the header (here: drivers/memory/omap-gpmc.c and drivers/mtd/nand/raw/omap2.c) to contain a copy of that array when compiled to an object file. With sizeof(struct of_device_id[3]) =E2=89=A5 588 having omap_nand_ids[] tw= ice just to do two string comparisons is quite some bloat. So move omap_nand_ids[] to the nand driver which actually needs that array for its module meta data and do the compatible check by hand. bloat-o-meter reports for drivers/memory/omap-gpmc.o (ARCH=3Darm): add/remove: 1/2 grow/shrink: 1/0 up/down: 28/-588 (-560) Function old new delta gpmc_probe_generic_child 2108 2136 +28 omap_nand_ids 588 - -588 Total: Before=3D18114, After=3D17554, chg -3.09% (drivers/mtd/nand/raw/omap2.o doesn't change). This allows to drop from include/linux/platform_data/mtd-nand-omap2.h (which is my original motivation for this change). Note that this header isn't needed in the two drivers because omap-gpmc.c doesn't use any device id struct and for the nand driver omap2.c of_device_id is already provided via . Signed-off-by: Uwe Kleine-K=C3=B6nig (The Capable Hub) --- drivers/memory/omap-gpmc.c | 9 ++++++++- drivers/mtd/nand/raw/omap2.c | 6 +++++- include/linux/platform_data/mtd-nand-omap2.h | 7 ------- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/drivers/memory/omap-gpmc.c b/drivers/memory/omap-gpmc.c index 958d2b0ea54a..48af31a54b55 100644 --- a/drivers/memory/omap-gpmc.c +++ b/drivers/memory/omap-gpmc.c @@ -2129,6 +2129,13 @@ static void __maybe_unused gpmc_read_timings_dt(stru= ct device_node *np, of_property_read_bool(np, "gpmc,time-para-granularity"); } =20 +static int gpmc_child_is_nand(struct device_node *child) +{ + /* This has to match drivers/mtd/nand/raw/omap2.c's omap_nand_ids[] */ + return of_device_is_compatible(child, "ti,omap2-nand") || + of_device_is_compatible(child, "ti,am64-nand"); +} + /** * gpmc_probe_generic_child - configures the gpmc for a child device * @pdev: pointer to gpmc platform device @@ -2220,7 +2227,7 @@ static int gpmc_probe_generic_child(struct platform_d= evice *pdev, goto err; } =20 - if (of_match_node(omap_nand_ids, child)) { + if (gpmc_child_is_nand(child)) { /* NAND specific setup */ val =3D 8; of_property_read_u32(child, "nand-bus-width", &val); diff --git a/drivers/mtd/nand/raw/omap2.c b/drivers/mtd/nand/raw/omap2.c index 39e297486721..552f36da79fc 100644 --- a/drivers/mtd/nand/raw/omap2.c +++ b/drivers/mtd/nand/raw/omap2.c @@ -2318,7 +2318,11 @@ static void omap_nand_remove(struct platform_device = *pdev) nand_cleanup(nand_chip); } =20 -/* omap_nand_ids defined in linux/platform_data/mtd-nand-omap2.h */ +static const struct of_device_id omap_nand_ids[] =3D { + { .compatible =3D "ti,omap2-nand" }, + { .compatible =3D "ti,am64-nand" }, + { } +}; MODULE_DEVICE_TABLE(of, omap_nand_ids); =20 static struct platform_driver omap_nand_driver =3D { diff --git a/include/linux/platform_data/mtd-nand-omap2.h b/include/linux/p= latform_data/mtd-nand-omap2.h index 8c2f1f185353..2ddb624b97fd 100644 --- a/include/linux/platform_data/mtd-nand-omap2.h +++ b/include/linux/platform_data/mtd-nand-omap2.h @@ -7,7 +7,6 @@ #define _MTD_NAND_OMAP2_H =20 #include -#include =20 #define GPMC_BCH_NUM_REMAINDER 8 =20 @@ -63,10 +62,4 @@ struct gpmc_nand_regs { void __iomem *gpmc_bch_result6[GPMC_BCH_NUM_REMAINDER]; }; =20 -static const struct of_device_id omap_nand_ids[] =3D { - { .compatible =3D "ti,omap2-nand", }, - { .compatible =3D "ti,am64-nand", }, - {}, -}; - #endif /* _MTD_NAND_OMAP2_H */ base-commit: 1a1757b76427f6201bfe0bf1bea9f7574f332a93 --=20 2.55.0.11.g153666a7d9bb