From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f54.google.com (mail-wr1-f54.google.com [209.85.221.54]) (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 98E3C288B1 for ; Fri, 29 May 2026 10:18:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.54 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780049923; cv=none; b=blht86qKGBEokrLNDGy0v7fZWa+W1ALv3UGMp/I4Ap4Rr+594byLFMcM++w4qMn/KHIBW3uUCR5+FqoDddoIdSv/QOONHikMFlq0NMUHDadyuAcloe9qQ6+uQOBvEKDqLkCFR0t+r6U/U7RuZssTl3kUzhZJChnvz42aXzlCTV0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780049923; c=relaxed/simple; bh=HR0BG2x5gStI8qVvDgUBsjfK17M95+4vrnDaD2QTsYk=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type; b=aqXYybN2EWaAwTkKk7Ol3S31X/YeiH/a2smW5TmIAmVzb9DYfJ9/lCMLK9RE32fz87LrwbVdI0tKNecFanss8zO0Qe5DsBIuVXunRrPuuaFuN0ATbj0SZF/CGtwS8Mh83KvHKbdHpncIpX8FXuCc5Wa9cLsfKUDcC9HSySiEZcs= 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=ic69qTHO; arc=none smtp.client-ip=209.85.221.54 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="ic69qTHO" Received: by mail-wr1-f54.google.com with SMTP id ffacd0b85a97d-459bf19e87bso8325527f8f.1 for ; Fri, 29 May 2026 03:18:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre.com; s=google; t=1780049919; x=1780654719; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=gRuenZrko78jZddy0UFWO+BRki0zaXyQrkNHtJpBvQk=; b=ic69qTHO3nWGxkij2JWg1mpvBzwwIiQhZV/FL9b+CQxGiaeb7puaTqQZviCv7FL4IX EKOy4/o0tM1j7w65GqwBf5IF4Xqc/Aog9cOThFMn8a1sP26uBy8g2lbKQ5++iSPga+S6 ccoqXyuHIRvkJ4YWh7d9e3LIY1ZmBpNtpHMdD0mxhqjP6P2UarY8OcS0CNFlmjFqijFS sXiYsNWYlk4fYjsE809lSc0oDmGIE4zxttdgygkTNkltx2kDhSnl33eyohqKP2jsnMp7 GiWPMX4dacScUYYyXEn0acTAUuHTnc9plUCxQf/Ic9pcCmlBUcYL6PgADRozySZTu4As 7hmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780049919; x=1780654719; h=content-transfer-encoding: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; bh=gRuenZrko78jZddy0UFWO+BRki0zaXyQrkNHtJpBvQk=; b=nxGUr/z7xohDu9ukoSyNHoXGTktPo7oXUxKFzVImii7mqpWNiKOT97N1rrkraor/fG 0kNZJkxHTtRE/pNaJGwQO2/FVD3RvHiko77MHncR64bQsxjm1LX+MRasnTo7ugR0dp5Q ImVDVq8ypm0FcQEoRvbK/0Oxq+yX5Mkkj77j7QFaUnYfBAobOE6DDgn4Pqt5g6GqZWaj +pfPpzMsy6s9DZkXdyaTmEUdXrvLiK0OT/K8q4W0S9vq9b8ZUOLb1aTNO8jgGuaVyT+w TPxo4Ox4pRyT4bQrt56fFEKCyQ7hUiMWoyyRosg9wuYV1SIhSuX10gFhyUwxIiYoJPz/ 3kgw== X-Forwarded-Encrypted: i=1; AFNElJ+/fX8eFwu1+i9P/0FSGwwwy5MA28uMEaLkwi7POkFTW/fcqH3RvWn70XGl9QtyZyN/vrftNrnB+IFkmJI=@vger.kernel.org X-Gm-Message-State: AOJu0YwWzZ7eNdw9gfY8/1dk5fYRDBJHLMXl3oevwRbPIvw6sQiyLGpk 7KY157yLx7przmpOV9XU/upXp9vF738YyMVKT1bMdcr0MBFcwDTT7KAGNj4FjFdvoC0= X-Gm-Gg: Acq92OFLKCbA9sraDEBHMx19hXCPlJwZuLaZtBnPRiJOt6fz2Is92aEB3MzefLkfPe3 Q6UWgVm0Tynru0hKKbIHUEv9YPTO7Ta/fXt2CgWtGWi1DlN+PGXJMNBq/EQ2xX4YCD0ph4YBLf+ RmGIhz1CSyklrvcTdV9SvSoID5XcWKKjS007n5A9VIGEJ4OU0/xjFLl4aOdrn+8FjdwrNwvZoPl vAdyiqYVBeI6ELbv/TX752SNICQcwm+wYhNyk3z3Nw/TsVXgWdu33WpmqeQj7wq3ElB2GcJMEBe vjpvDh08+gDc1Z+GA9JtcMB9g8Ggg5L6F238+q3OCg9LWGSNZVCEwCyhhof9fS9ZR+sdnGGw0JW KF0PQG47cFxS1XmPcRcenNkXjNeHECtxJLLBcLZAV1GK4gAq021AgEVnILzlrFrevzwvweLmdzN VfNw6frLoACUbGLexQkYNcfSaCczSVTjbgS5e8Q+uD8CVZmhkK7Hm1Yx/6UhA343mR/eaT8RblX g5OXEsNFCABncnFJTTkYt2eHg== X-Received: by 2002:a5d:6f03:0:b0:45e:ef4a:8192 with SMTP id ffacd0b85a97d-45ef14aeca6mr4456766f8f.38.1780049919017; Fri, 29 May 2026 03:18:39 -0700 (PDT) Received: from localhost (p200300f65f47db043f932d8b97293bf6.dip0.t-ipconnect.de. [2003:f6:5f47:db04:3f93:2d8b:9729:3bf6]) by smtp.gmail.com with UTF8SMTPSA id ffacd0b85a97d-45ef354cd7csm2359192f8f.18.2026.05.29.03.18.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 03:18:38 -0700 (PDT) From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig=20=28The=20Capable=20Hub=29?= To: Sebastian Reichel Cc: Kuan-Wei Chiu , Benson Leung , Guenter Roeck , =?utf-8?q?Thomas_Wei=C3=9Fschuh?= , Krzysztof Kozlowski , Matthias Brugger , AngeloGioacchino Del Regno , linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, chrome-platform@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, Hans de Goede , Marek Szyprowski , Sebastian Krzyszkowiak , Purism Kernel Team , Yixun Lan , Andreas Kemnade , Matti Vaittinen , Sven Peter , Janne Grunau , Neal Gompa , Amit Sunil Dhamne , Samuel Kayode , linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, asahi@lists.linux.dev, imx@lists.linux.dev, Chen-Yu Tsai Subject: [PATCH v1 0/6] power: Use named initializers for platform_device_id arrays Date: Fri, 29 May 2026 12:18:15 +0200 Message-ID: X-Mailer: git-send-email 2.47.3 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=5698; i=u.kleine-koenig@baylibre.com; h=from:subject:message-id; bh=HR0BG2x5gStI8qVvDgUBsjfK17M95+4vrnDaD2QTsYk=; b=owEBbQGS/pANAwAKAY+A+1h9Ev5OAcsmYgBqGWfoDIuZ0g/W2ypE62dFHULfUWoyzPSByuJOy zumyQmeqqeJATMEAAEKAB0WIQQ/gaxpOnoeWYmt/tOPgPtYfRL+TgUCahln6AAKCRCPgPtYfRL+ TsKPB/9mAyfp+pLZiIDxZa/Gq+SSHanqJrTQwpZ9rQFWh6BTlVwAzfy9/iK3DTaEC0m73vbGFfQ SrrV9RH9jd6SuuSNJEy+P030qdvrNgwnqe9+Kw6h9Ox1Xf/WbmVgbFqiAvBlC9bWaxNYlaSXA6b k6D0JHKSjZPpHgGWSl8de58GW9wTOhD4G7APcHqvig2ElcuxKXGEJMbDiI5C+wM6c/uNZYGDKQH Gyln8usdt6LIe+L24f+S0WZZOkN5b75oBqE1U4SirbgWSV0oQR/VgR5R3MVvLMMrmyqPiFaaawD fWqFsf8PmmOgcfZvBQ4ZGzTElp/ezMarN1H6m653QUtXR1kb X-Developer-Key: i=u.kleine-koenig@baylibre.com; a=openpgp; fpr=0D2511F322BFAB1C1580266BE2DCDD9132669BD6 Content-Transfer-Encoding: 8bit Hello, this series targets to use named initializers for platform_device_id arrays. In general these are better readable for humans and more robust to changes in the respective struct definition. This robustness is needed as I want to do diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h --- a/include/linux/mod_devicetable.h +++ b/include/linux/mod_devicetable.h @@ -610,4 +610,7 @@ struct dmi_system_id { struct platform_device_id { char name[PLATFORM_NAME_SIZE]; - kernel_ulong_t driver_data; + union { + kernel_ulong_t driver_data; + const void *driver_data_ptr; + }; }; which allows dropping several casts and eases porting CHERI to mainline linux. A possible follow-up change is the following example: diff --git a/drivers/gpio/gpio-pxa.c b/drivers/gpio/gpio-pxa.c index 5d61053e0596..03bc8e859d73 100644 --- a/drivers/gpio/gpio-pxa.c +++ b/drivers/gpio/gpio-pxa.c @@ -534,7 +534,7 @@ static struct irq_chip pxa_muxed_gpio_chip = { static int pxa_gpio_nums(struct platform_device *pdev) { const struct platform_device_id *id = platform_get_device_id(pdev); - struct pxa_gpio_id *pxa_id = (struct pxa_gpio_id *)id->driver_data; + struct pxa_gpio_id *pxa_id = id->driver_data_ptr; int count = 0; switch (pxa_id->type) { @@ -708,14 +708,14 @@ static int pxa_gpio_probe(struct platform_device *pdev) } static const struct platform_device_id gpio_id_table[] = { - { .name = "pxa25x-gpio", .driver_data = (unsigned long)&pxa25x_id }, - { .name = "pxa26x-gpio", .driver_data = (unsigned long)&pxa26x_id }, - { .name = "pxa27x-gpio", .driver_data = (unsigned long)&pxa27x_id }, - { .name = "pxa3xx-gpio", .driver_data = (unsigned long)&pxa3xx_id }, - { .name = "pxa93x-gpio", .driver_data = (unsigned long)&pxa93x_id }, - { .name = "mmp-gpio", .driver_data = (unsigned long)&mmp_id }, - { .name = "mmp2-gpio", .driver_data = (unsigned long)&mmp2_id }, - { .name = "pxa1928-gpio", .driver_data = (unsigned long)&pxa1928_id }, + { .name = "pxa25x-gpio", .driver_data_ptr = &pxa25x_id }, + { .name = "pxa26x-gpio", .driver_data_ptr = &pxa26x_id }, + { .name = "pxa27x-gpio", .driver_data_ptr = &pxa27x_id }, + { .name = "pxa3xx-gpio", .driver_data_ptr = &pxa3xx_id }, + { .name = "pxa93x-gpio", .driver_data_ptr = &pxa93x_id }, + { .name = "mmp-gpio", .driver_data_ptr = &mmp_id }, + { .name = "mmp2-gpio", .driver_data_ptr = &mmp2_id }, + { .name = "pxa1928-gpio", .driver_data_ptr = &pxa1928_id }, { } }; increasing readability due to less casting. Also this results in the compiler warning: drivers/gpio/gpio-pxa.c: In function ‘pxa_gpio_nums’: drivers/gpio/gpio-pxa.c:537:38: error: initialization discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers] 537 | struct pxa_gpio_id *pxa_id = id->driver_data_ptr; | ^~ which is a good thing as adding the needed const to fix this warning improves type safety. (Sorry, no driver below drivers/power benefits here, so the example is from a different subsystem.) Patch #5 is just an unrelated change where I spotted the patch opportunity while preparing this series. It's included here just for my convenience and could be applied independently. If you consider the last patch mostly churn, just drop it. There are no dependencies between the patches, the only file that is touched in more than one patch is drivers/power/supply/mt6360_charger.c and even if these (i.e. patches #1 and #5) are reordered, git should be able to cope with that without conflicts. Note that this series is only build tested, and there is the possibility that I failed to spot driver data usage that render patches #2 and/or #3 wrong. So a deeper look on at least those two won't hurt. Best regards Uwe Uwe Kleine-König (The Capable Hub) (6): power: Drop unused assignment of platform_device_id driver data power: supply: max14577: Drop driver data in of and platform device id arrays power: supply: max17042: Drop driver data in of and platform device id arrays power: Use named initializers for platform_device_id arrays power: supply: mt6360_charger: Use of match table unconditionally power: Unify code style for platform_device_id arrays drivers/power/reset/qemu-virt-ctrl.c | 2 +- drivers/power/reset/spacemit-p1-reboot.c | 4 ++-- drivers/power/reset/tps65086-restart.c | 2 +- drivers/power/supply/axp288_charger.c | 2 +- drivers/power/supply/axp288_fuel_gauge.c | 2 +- drivers/power/supply/bd71828-power.c | 8 ++++---- drivers/power/supply/charger-manager.c | 4 ++-- drivers/power/supply/cros_charge-control.c | 4 ++-- drivers/power/supply/cros_peripheral_charger.c | 4 ++-- drivers/power/supply/cros_usbpd-charger.c | 4 ++-- drivers/power/supply/macsmc-power.c | 2 +- drivers/power/supply/max14577_charger.c | 12 +++++------- drivers/power/supply/max17042_battery.c | 14 +++++++------- drivers/power/supply/max77693_charger.c | 2 +- drivers/power/supply/max77759_charger.c | 2 +- drivers/power/supply/max8997_charger.c | 2 +- drivers/power/supply/max8998_charger.c | 2 +- drivers/power/supply/mt6360_charger.c | 6 +++--- drivers/power/supply/pf1550-charger.c | 2 +- drivers/power/supply/rt5033_charger.c | 2 +- 20 files changed, 40 insertions(+), 42 deletions(-) base-commit: f7af91adc230aa99e23330ecf85bc9badd9780ad -- 2.47.3