From: "Uwe Kleine-König (The Capable Hub)" <u.kleine-koenig@baylibre.com>
To: Guenter Roeck <linux@roeck-us.net>
Cc: "Cedric Encarnacion" <cedricjustine.encarnacion@analog.com>,
"Igor Reznichenko" <igor@reznichenko.net>,
"Chris Packham" <chris.packham@alliedtelesis.co.nz>,
linux-hwmon@vger.kernel.org, linux-kernel@vger.kernel.org,
"Jean Delvare" <jdelvare@suse.com>,
"Corentin Labbe" <clabbe.montjoie@gmail.com>,
"Michael Hennerich" <Michael.Hennerich@analog.com>,
"George Joseph" <george.joseph@fairview5.com>,
"Javier Carrasco" <javier.carrasco.cruz@gmail.com>,
"Juerg Haefliger" <juergh@proton.me>,
"Steve Glendinning" <steve.glendinning@shawell.net>,
"Riku Voipio" <riku.voipio@iki.fi>,
"Andre Werner" <andre.werner@systec-electronic.com>,
"Andrei Lalaev" <andrey.lalaev@gmail.com>,
"Carsten Spieß" <mail@carsten-spiess.de>,
"Guillaume Ligneul" <guillaume.ligneul@gmail.com>,
"Nuno Sá" <nuno.sa@analog.com>,
"Antoniu Miclaus" <antoniu.miclaus@analog.com>,
"Zev Weiss" <zev@bewilderbeest.net>,
"Ninad Palsule" <ninad@linux.ibm.com>,
"Robert Marko" <robert.marko@sartura.hr>,
"Vasileios Amoiridis" <vasileios.amoiridis@cern.ch>,
"Leo Yang" <leo.yang.sy0@gmail.com>,
"Daniel Nilsson" <daniel.nilsson@flex.com>,
"Kim Seer Paller" <kimseer.paller@analog.com>,
"Noah Wang" <noahwang.wang@outlook.com>,
"Wensheng Wang" <wenswang@yeah.net>,
"Yuxi Wang" <Yuxi.Wang@monolithicpower.com>,
"Cosmo Chou" <chou.cosmo@gmail.com>,
"Saravanan Sekar" <sravanhome@gmail.com>,
"Charles Hsu" <hsu.yungteng@gmail.com>,
"Jerome Brunet" <jbrunet@baylibre.com>,
"Duke Du" <dukedu83@gmail.com>,
"Eric Tremblay" <etremblay@distech-controls.com>,
"Marc Hulsman" <m.hulsman@tudelft.nl>,
"Rudolf Marek" <r.marek@assembler.cz>,
"ChiShih Tsai" <tomtsai764@gmail.com>,
"Andrew Davis" <afd@ti.com>,
"Sanman Pradhan" <psanman@juniper.net>,
"Dawei Liu" <dawei.liu.jy@renesas.com>,
"Grant Peltier" <grantpeltier93@gmail.com>,
"Chiang Brian" <chiang.brian@inventec.com>,
"Jeff Lin" <jefflin994697@gmail.com>,
"Alexis Czezar Torreno" <alexisczezar.torreno@analog.com>,
"Carl Lee" <carl.lee@amd.com>,
"Randy Dunlap" <rdunlap@infradead.org>,
"Andy Shevchenko" <andriy.shevchenko@intel.com>,
"Andrew Morton" <akpm@linux-foundation.org>,
"Colin Huang" <u8813345@gmail.com>,
"Torben Nielsen" <t8927095@gmail.com>,
"Bartosz Golaszewski" <brgl@kernel.org>,
"Ashish Yadav" <ashish.yadav@infineon.com>,
"Markus Schneider-Pargmann" <msp@baylibre.com>
Subject: [PATCH v1 0/2] hwmon: Rework initialization of i2c_device_ids
Date: Wed, 13 May 2026 18:44:56 +0200 [thread overview]
Message-ID: <cover.1778688802.git.u.kleine-koenig@baylibre.com> (raw)
Hello,
this series is a preparation for
diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h
index 23ff24080dfd..aebd3a5e90af 100644
--- a/include/linux/mod_devicetable.h
+++ b/include/linux/mod_devicetable.h
@@ -477,7 +477,11 @@ struct rpmsg_device_id {
struct i2c_device_id {
char name[I2C_NAME_SIZE];
- kernel_ulong_t driver_data; /* Data private to the driver */
+ union {
+ /* Data private to the driver */
+ kernel_ulong_t driver_data;
+ const void *driver_data_ptr;
+ };
};
/* pci_epf */
and this requires that .driver_data is assigned via a named initializer
for static data. This requirement isn't a bad one because named
initializers are also much better readable than list initializers.
There are no hwmon drivers that benefit from that change to
i2c_device_id, but it allows further cleanups like:
diff --git a/drivers/iio/accel/kxcjk-1013.c b/drivers/iio/accel/kxcjk-1013.c
index 8a082ff034dd..b2aac7348d22 100644
--- a/drivers/iio/accel/kxcjk-1013.c
+++ b/drivers/iio/accel/kxcjk-1013.c
@@ -1429,7 +1429,7 @@ static int kxcjk1013_probe(struct i2c_client *client)
if (id) {
name = id->name;
- data->info = (const struct kx_chipset_info *)(id->driver_data);
+ data->info = id->driver_data_ptr;
} else {
name = iio_get_acpi_device_name_and_data(&client->dev, &ddata);
data->info = ddata;
@@ -1630,11 +1630,11 @@ static const struct dev_pm_ops kxcjk1013_pm_ops = {
};
static const struct i2c_device_id kxcjk1013_id[] = {
- { .name = "kxcjk1013", .driver_data = (kernel_ulong_t)&kxcjk1013_info },
- { .name = "kxcj91008", .driver_data = (kernel_ulong_t)&kxcj91008_info },
- { .name = "kxtj21009", .driver_data = (kernel_ulong_t)&kxtj21009_info },
- { .name = "kxtf9", .driver_data = (kernel_ulong_t)&kxtf9_info },
- { .name = "kx023-1025", .driver_data = (kernel_ulong_t)&kx0231025_info },
+ { .name = "kxcjk1013", .driver_data_ptr = &kxcjk1013_info },
+ { .name = "kxcj91008", .driver_data_ptr = &kxcj91008_info },
+ { .name = "kxtj21009", .driver_data_ptr = &kxtj21009_info },
+ { .name = "kxtf9", .driver_data_ptr = &kxtf9_info },
+ { .name = "kx023-1025", .driver_data_ptr = &kx0231025_info },
{ }
};
MODULE_DEVICE_TABLE(i2c, kxcjk1013_id);
that are an improvement for readability (again!) and it keeps some
properties of the pointers (here: being const) without having to pay
attention for that.
My additional motivation for this effort is CHERI[1]. This is a hardware
extension that uses 128 bit pointers but unsigned long is still 64 bit.
So with CHERI you cannot store pointers in unsigned long variables.
The first patch drops a few unused assignments to .driver_data (which is
still better than assigning the values by name) and the second converts
all hwmon drivers to use named initializers.
Uwe Kleine-König (The Capable Hub) (2):
hwmon: Drop unused i2c driver_data
hwmon: Use named initializers for arrays of i2c_device_data
drivers/hwmon/ad7414.c | 4 +-
drivers/hwmon/ad7418.c | 6 +-
drivers/hwmon/adc128d818.c | 2 +-
drivers/hwmon/adm1025.c | 4 +-
drivers/hwmon/adm1026.c | 2 +-
drivers/hwmon/adm1029.c | 2 +-
drivers/hwmon/adm1031.c | 4 +-
drivers/hwmon/adm1177.c | 4 +-
drivers/hwmon/adm9240.c | 6 +-
drivers/hwmon/ads7828.c | 4 +-
drivers/hwmon/adt7410.c | 8 +--
drivers/hwmon/adt7411.c | 2 +-
drivers/hwmon/adt7462.c | 2 +-
drivers/hwmon/adt7470.c | 2 +-
drivers/hwmon/adt7475.c | 8 +--
drivers/hwmon/aht10.c | 8 +--
drivers/hwmon/amc6821.c | 2 +-
drivers/hwmon/asb100.c | 2 +-
drivers/hwmon/asc7621.c | 6 +-
drivers/hwmon/atxp1.c | 2 +-
drivers/hwmon/chipcap2.c | 16 ++---
drivers/hwmon/dme1737.c | 4 +-
drivers/hwmon/ds1621.c | 10 +--
drivers/hwmon/ds620.c | 4 +-
drivers/hwmon/emc1403.c | 24 +++----
drivers/hwmon/emc2103.c | 2 +-
drivers/hwmon/emc2305.c | 8 +--
drivers/hwmon/emc6w201.c | 2 +-
drivers/hwmon/f75375s.c | 6 +-
drivers/hwmon/fschmd.c | 14 ++--
drivers/hwmon/ftsteutates.c | 2 +-
drivers/hwmon/g760a.c | 2 +-
drivers/hwmon/g762.c | 6 +-
drivers/hwmon/gl518sm.c | 2 +-
drivers/hwmon/gl520sm.c | 2 +-
drivers/hwmon/hih6130.c | 2 +-
drivers/hwmon/hs3001.c | 4 +-
drivers/hwmon/htu31.c | 2 +-
drivers/hwmon/ina209.c | 2 +-
drivers/hwmon/ina238.c | 12 ++--
drivers/hwmon/ina2xx.c | 16 ++---
drivers/hwmon/ina3221.c | 2 +-
drivers/hwmon/isl28022.c | 2 +-
drivers/hwmon/jc42.c | 2 +-
drivers/hwmon/lineage-pem.c | 4 +-
drivers/hwmon/lm63.c | 6 +-
drivers/hwmon/lm73.c | 2 +-
drivers/hwmon/lm75.c | 62 ++++++++--------
drivers/hwmon/lm77.c | 2 +-
drivers/hwmon/lm78.c | 4 +-
drivers/hwmon/lm80.c | 4 +-
drivers/hwmon/lm83.c | 4 +-
drivers/hwmon/lm85.c | 24 +++----
drivers/hwmon/lm87.c | 4 +-
drivers/hwmon/lm90.c | 96 ++++++++++++-------------
drivers/hwmon/lm92.c | 6 +-
drivers/hwmon/lm93.c | 4 +-
drivers/hwmon/lm95234.c | 4 +-
drivers/hwmon/lm95241.c | 4 +-
drivers/hwmon/lm95245.c | 4 +-
drivers/hwmon/ltc2945.c | 2 +-
drivers/hwmon/ltc2947-i2c.c | 4 +-
drivers/hwmon/ltc2990.c | 4 +-
drivers/hwmon/ltc2991.c | 4 +-
drivers/hwmon/ltc2992.c | 4 +-
drivers/hwmon/ltc4151.c | 2 +-
drivers/hwmon/ltc4215.c | 2 +-
drivers/hwmon/ltc4222.c | 2 +-
drivers/hwmon/ltc4245.c | 2 +-
drivers/hwmon/ltc4260.c | 2 +-
drivers/hwmon/ltc4261.c | 4 +-
drivers/hwmon/max127.c | 2 +-
drivers/hwmon/max16065.c | 12 ++--
drivers/hwmon/max1619.c | 2 +-
drivers/hwmon/max1668.c | 6 +-
drivers/hwmon/max31730.c | 2 +-
drivers/hwmon/max31760.c | 2 +-
drivers/hwmon/max31790.c | 2 +-
drivers/hwmon/max31827.c | 6 +-
drivers/hwmon/max6620.c | 2 +-
drivers/hwmon/max6621.c | 2 +-
drivers/hwmon/max6639.c | 2 +-
drivers/hwmon/max6650.c | 4 +-
drivers/hwmon/max6697.c | 20 +++---
drivers/hwmon/mc34vr500.c | 4 +-
drivers/hwmon/mcp3021.c | 4 +-
drivers/hwmon/nct6775-i2c.c | 26 +++----
drivers/hwmon/nct7802.c | 2 +-
drivers/hwmon/nct7904.c | 4 +-
drivers/hwmon/pcf8591.c | 2 +-
drivers/hwmon/pmbus/acbel-fsg032.c | 4 +-
drivers/hwmon/pmbus/adm1266.c | 2 +-
drivers/hwmon/pmbus/adm1275.c | 20 +++---
drivers/hwmon/pmbus/aps-379.c | 4 +-
drivers/hwmon/pmbus/bel-pfe.c | 6 +-
drivers/hwmon/pmbus/bpa-rs600.c | 6 +-
drivers/hwmon/pmbus/crps.c | 4 +-
drivers/hwmon/pmbus/delta-ahe50dc-fan.c | 2 +-
drivers/hwmon/pmbus/dps920ab.c | 4 +-
drivers/hwmon/pmbus/fsp-3y.c | 4 +-
drivers/hwmon/pmbus/hac300s.c | 4 +-
drivers/hwmon/pmbus/ibm-cffps.c | 8 +--
drivers/hwmon/pmbus/ina233.c | 4 +-
drivers/hwmon/pmbus/inspur-ipsps.c | 4 +-
drivers/hwmon/pmbus/ir35221.c | 4 +-
drivers/hwmon/pmbus/ir36021.c | 4 +-
drivers/hwmon/pmbus/ir38064.c | 10 +--
drivers/hwmon/pmbus/irps5401.c | 4 +-
drivers/hwmon/pmbus/isl68137.c | 92 ++++++++++++------------
drivers/hwmon/pmbus/lm25066.c | 10 +--
drivers/hwmon/pmbus/lt3074.c | 4 +-
drivers/hwmon/pmbus/lt7182s.c | 4 +-
drivers/hwmon/pmbus/ltc2978.c | 60 ++++++++--------
drivers/hwmon/pmbus/ltc3815.c | 2 +-
drivers/hwmon/pmbus/max15301.c | 8 +--
drivers/hwmon/pmbus/max16064.c | 4 +-
drivers/hwmon/pmbus/max16601.c | 10 +--
drivers/hwmon/pmbus/max17616.c | 2 +-
drivers/hwmon/pmbus/max20730.c | 10 +--
drivers/hwmon/pmbus/max20751.c | 4 +-
drivers/hwmon/pmbus/max31785.c | 8 +--
drivers/hwmon/pmbus/max34440.c | 18 ++---
drivers/hwmon/pmbus/max8688.c | 2 +-
drivers/hwmon/pmbus/mp2856.c | 6 +-
drivers/hwmon/pmbus/mp2888.c | 4 +-
drivers/hwmon/pmbus/mp2891.c | 2 +-
drivers/hwmon/pmbus/mp2925.c | 6 +-
drivers/hwmon/pmbus/mp29502.c | 4 +-
drivers/hwmon/pmbus/mp2975.c | 8 +--
drivers/hwmon/pmbus/mp2993.c | 2 +-
drivers/hwmon/pmbus/mp5920.c | 2 +-
drivers/hwmon/pmbus/mp5926.c | 4 +-
drivers/hwmon/pmbus/mp5990.c | 4 +-
drivers/hwmon/pmbus/mp9941.c | 2 +-
drivers/hwmon/pmbus/mp9945.c | 4 +-
drivers/hwmon/pmbus/mpq7932.c | 6 +-
drivers/hwmon/pmbus/mpq8785.c | 10 +--
drivers/hwmon/pmbus/pim4328.c | 18 ++---
drivers/hwmon/pmbus/pli1209bc.c | 4 +-
drivers/hwmon/pmbus/pm6764tr.c | 4 +-
drivers/hwmon/pmbus/pmbus.c | 60 ++++++++--------
drivers/hwmon/pmbus/pxe1610.c | 8 +--
drivers/hwmon/pmbus/q54sj108a2.c | 8 +--
drivers/hwmon/pmbus/stef48h28.c | 4 +-
drivers/hwmon/pmbus/stpddc60.c | 6 +-
drivers/hwmon/pmbus/tda38640.c | 4 +-
drivers/hwmon/pmbus/tps25990.c | 4 +-
drivers/hwmon/pmbus/tps40422.c | 4 +-
drivers/hwmon/pmbus/tps53679.c | 18 ++---
drivers/hwmon/pmbus/tps546d24.c | 4 +-
drivers/hwmon/pmbus/ucd9000.c | 16 ++---
drivers/hwmon/pmbus/ucd9200.c | 18 ++---
drivers/hwmon/pmbus/xdp710.c | 2 +-
drivers/hwmon/pmbus/xdp720.c | 4 +-
drivers/hwmon/pmbus/xdpe12284.c | 8 +--
drivers/hwmon/pmbus/xdpe152c4.c | 6 +-
drivers/hwmon/pmbus/xdpe1a2g7b.c | 6 +-
drivers/hwmon/pmbus/zl6100.c | 44 ++++++------
drivers/hwmon/powr1220.c | 4 +-
drivers/hwmon/pt5161l.c | 4 +-
drivers/hwmon/sbtsi_temp.c | 4 +-
drivers/hwmon/sg2042-mcu.c | 2 +-
drivers/hwmon/sht21.c | 6 +-
drivers/hwmon/sht3x.c | 8 +--
drivers/hwmon/sht4x.c | 4 +-
drivers/hwmon/shtc1.c | 6 +-
drivers/hwmon/smsc47m192.c | 2 +-
drivers/hwmon/spd5118.c | 2 +-
drivers/hwmon/stts751.c | 2 +-
drivers/hwmon/tc654.c | 6 +-
drivers/hwmon/tc74.c | 4 +-
drivers/hwmon/thmc50.c | 4 +-
drivers/hwmon/tmp102.c | 2 +-
drivers/hwmon/tmp103.c | 2 +-
drivers/hwmon/tmp108.c | 8 +--
drivers/hwmon/tmp401.c | 10 +--
drivers/hwmon/tmp421.c | 10 +--
drivers/hwmon/tmp464.c | 4 +-
drivers/hwmon/tmp513.c | 4 +-
drivers/hwmon/tsc1641.c | 2 +-
drivers/hwmon/w83773g.c | 2 +-
drivers/hwmon/w83781d.c | 8 +--
drivers/hwmon/w83791d.c | 2 +-
drivers/hwmon/w83792d.c | 2 +-
drivers/hwmon/w83793.c | 2 +-
drivers/hwmon/w83795.c | 4 +-
drivers/hwmon/w83l785ts.c | 2 +-
drivers/hwmon/w83l786ng.c | 2 +-
188 files changed, 687 insertions(+), 687 deletions(-)
base-commit: 254f49634ee16a731174d2ae34bc50bd5f45e731
--
2.47.3
next reply other threads:[~2026-05-13 16:45 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-13 16:44 Uwe Kleine-König (The Capable Hub) [this message]
2026-05-13 16:44 ` [PATCH v1 1/2] hwmon: Drop unused i2c driver_data Uwe Kleine-König (The Capable Hub)
2026-05-13 22:40 ` Chris Packham
2026-05-13 16:44 ` [PATCH v1 2/2] hwmon: Use named initializers for arrays of i2c_device_data Uwe Kleine-König (The Capable Hub)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1778688802.git.u.kleine-koenig@baylibre.com \
--to=u.kleine-koenig@baylibre.com \
--cc=Michael.Hennerich@analog.com \
--cc=Yuxi.Wang@monolithicpower.com \
--cc=afd@ti.com \
--cc=akpm@linux-foundation.org \
--cc=alexisczezar.torreno@analog.com \
--cc=andre.werner@systec-electronic.com \
--cc=andrey.lalaev@gmail.com \
--cc=andriy.shevchenko@intel.com \
--cc=antoniu.miclaus@analog.com \
--cc=ashish.yadav@infineon.com \
--cc=brgl@kernel.org \
--cc=carl.lee@amd.com \
--cc=cedricjustine.encarnacion@analog.com \
--cc=chiang.brian@inventec.com \
--cc=chou.cosmo@gmail.com \
--cc=chris.packham@alliedtelesis.co.nz \
--cc=clabbe.montjoie@gmail.com \
--cc=daniel.nilsson@flex.com \
--cc=dawei.liu.jy@renesas.com \
--cc=dukedu83@gmail.com \
--cc=etremblay@distech-controls.com \
--cc=george.joseph@fairview5.com \
--cc=grantpeltier93@gmail.com \
--cc=guillaume.ligneul@gmail.com \
--cc=hsu.yungteng@gmail.com \
--cc=igor@reznichenko.net \
--cc=javier.carrasco.cruz@gmail.com \
--cc=jbrunet@baylibre.com \
--cc=jdelvare@suse.com \
--cc=jefflin994697@gmail.com \
--cc=juergh@proton.me \
--cc=kimseer.paller@analog.com \
--cc=leo.yang.sy0@gmail.com \
--cc=linux-hwmon@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=m.hulsman@tudelft.nl \
--cc=mail@carsten-spiess.de \
--cc=msp@baylibre.com \
--cc=ninad@linux.ibm.com \
--cc=noahwang.wang@outlook.com \
--cc=nuno.sa@analog.com \
--cc=psanman@juniper.net \
--cc=r.marek@assembler.cz \
--cc=rdunlap@infradead.org \
--cc=riku.voipio@iki.fi \
--cc=robert.marko@sartura.hr \
--cc=sravanhome@gmail.com \
--cc=steve.glendinning@shawell.net \
--cc=t8927095@gmail.com \
--cc=tomtsai764@gmail.com \
--cc=u8813345@gmail.com \
--cc=vasileios.amoiridis@cern.ch \
--cc=wenswang@yeah.net \
--cc=zev@bewilderbeest.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox