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