Message ID | 13ce7c11-a958-4892-ada9-faf5bfdcb89d@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | hwmon: Drop non-functional I2C_CLASS_HWMON support for drivers w/o detect() | expand |
On Sat, Jan 27, 2024 at 06:45:00PM +0100, Heiner Kallweit wrote: > Class-based I2C probing requires detect() and address_list both > to be set in the I2C client driver, see checks in i2c_detect(). > It's misleading to declare I2C_CLASS_HWMON support if the driver > doesn't implement detect(). > Class-based probing is a legacy mechanism, in addition apparently > nobody ever noticed that class-based probing has been non-functional > in both drivers from the very beginning. So drop the fragments of > class-based probing support. > > Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Applied. Thanks a lot for the cleanup, appreciated! Guenter
diff --git a/Documentation/hwmon/emc2305.rst b/Documentation/hwmon/emc2305.rst index 2403dbaf2..d0bfffe46 100644 --- a/Documentation/hwmon/emc2305.rst +++ b/Documentation/hwmon/emc2305.rst @@ -6,7 +6,6 @@ Kernel driver emc2305 Supported chips: Microchip EMC2305, EMC2303, EMC2302, EMC2301 - Addresses scanned: I2C 0x27, 0x2c, 0x2d, 0x2e, 0x2f, 0x4c, 0x4d Prefixes: 'emc2305' Datasheet: Publicly available at the Microchip website : diff --git a/drivers/hwmon/adt7410.c b/drivers/hwmon/adt7410.c index 952506779..fd214d9b3 100644 --- a/drivers/hwmon/adt7410.c +++ b/drivers/hwmon/adt7410.c @@ -95,14 +95,12 @@ static const struct i2c_device_id adt7410_ids[] = { MODULE_DEVICE_TABLE(i2c, adt7410_ids); static struct i2c_driver adt7410_driver = { - .class = I2C_CLASS_HWMON, .driver = { .name = "adt7410", .pm = pm_sleep_ptr(&adt7x10_dev_pm_ops), }, .probe = adt7410_i2c_probe, .id_table = adt7410_ids, - .address_list = I2C_ADDRS(0x48, 0x49, 0x4a, 0x4b), }; module_i2c_driver(adt7410_driver); diff --git a/drivers/hwmon/emc2305.c b/drivers/hwmon/emc2305.c index 29f0e4945..6ef733c0b 100644 --- a/drivers/hwmon/emc2305.c +++ b/drivers/hwmon/emc2305.c @@ -12,9 +12,6 @@ #include <linux/platform_data/emc2305.h> #include <linux/thermal.h> -static const unsigned short -emc2305_normal_i2c[] = { 0x27, 0x2c, 0x2d, 0x2e, 0x2f, 0x4c, 0x4d, I2C_CLIENT_END }; - #define EMC2305_REG_DRIVE_FAIL_STATUS 0x27 #define EMC2305_REG_VENDOR 0xfe #define EMC2305_FAN_MAX 0xff @@ -611,14 +608,12 @@ static void emc2305_remove(struct i2c_client *client) } static struct i2c_driver emc2305_driver = { - .class = I2C_CLASS_HWMON, .driver = { .name = "emc2305", }, .probe = emc2305_probe, .remove = emc2305_remove, .id_table = emc2305_ids, - .address_list = emc2305_normal_i2c, }; module_i2c_driver(emc2305_driver);
Class-based I2C probing requires detect() and address_list both to be set in the I2C client driver, see checks in i2c_detect(). It's misleading to declare I2C_CLASS_HWMON support if the driver doesn't implement detect(). Class-based probing is a legacy mechanism, in addition apparently nobody ever noticed that class-based probing has been non-functional in both drivers from the very beginning. So drop the fragments of class-based probing support. Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> --- Documentation/hwmon/emc2305.rst | 1 - drivers/hwmon/adt7410.c | 2 -- drivers/hwmon/emc2305.c | 5 ----- 3 files changed, 8 deletions(-)