diff mbox series

hwmon: Remove I2C_CLASS_HWMON from drivers w/o detect() and address_list

Message ID 75747c6a-d414-4b07-8f66-5a5cdddc3c36@gmail.com (mailing list archive)
State Accepted
Headers show
Series hwmon: Remove I2C_CLASS_HWMON from drivers w/o detect() and address_list | expand

Commit Message

Heiner Kallweit Jan. 27, 2024, 3:02 p.m. UTC
Class-based I2C probing requires detect() and address_list to be
set in the I2C client driver, see checks in i2c_detect().
It's misleading to declare I2C_CLASS_HWMON support if this
precondition isn't met.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
 drivers/hwmon/adm1177.c       | 1 -
 drivers/hwmon/ds1621.c        | 1 -
 drivers/hwmon/ds620.c         | 1 -
 drivers/hwmon/ina209.c        | 1 -
 drivers/hwmon/ina238.c        | 1 -
 drivers/hwmon/max127.c        | 1 -
 drivers/hwmon/max31760.c      | 1 -
 drivers/hwmon/max31790.c      | 1 -
 drivers/hwmon/max31827.c      | 1 -
 drivers/hwmon/max6621.c       | 1 -
 drivers/hwmon/max6697.c       | 1 -
 drivers/hwmon/occ/p8_i2c.c    | 1 -
 drivers/hwmon/pmbus/ir36021.c | 1 -
 drivers/hwmon/powr1220.c      | 1 -
 drivers/hwmon/sbrmi.c         | 1 -
 drivers/hwmon/sbtsi_temp.c    | 1 -
 drivers/hwmon/w83773g.c       | 1 -
 17 files changed, 17 deletions(-)

Comments

Heiner Kallweit Jan. 27, 2024, 3:10 p.m. UTC | #1
On 27.01.2024 16:02, Heiner Kallweit wrote:
> Class-based I2C probing requires detect() and address_list to be
> set in the I2C client driver, see checks in i2c_detect().
> It's misleading to declare I2C_CLASS_HWMON support if this
> precondition isn't met.
> 
> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
> ---
>  drivers/hwmon/adm1177.c       | 1 -
>  drivers/hwmon/ds1621.c        | 1 -
>  drivers/hwmon/ds620.c         | 1 -
>  drivers/hwmon/ina209.c        | 1 -
>  drivers/hwmon/ina238.c        | 1 -
>  drivers/hwmon/max127.c        | 1 -
>  drivers/hwmon/max31760.c      | 1 -
>  drivers/hwmon/max31790.c      | 1 -
>  drivers/hwmon/max31827.c      | 1 -
>  drivers/hwmon/max6621.c       | 1 -
>  drivers/hwmon/max6697.c       | 1 -
>  drivers/hwmon/occ/p8_i2c.c    | 1 -
>  drivers/hwmon/pmbus/ir36021.c | 1 -
>  drivers/hwmon/powr1220.c      | 1 -
>  drivers/hwmon/sbrmi.c         | 1 -
>  drivers/hwmon/sbtsi_temp.c    | 1 -
>  drivers/hwmon/w83773g.c       | 1 -
>  17 files changed, 17 deletions(-)
> 

It seems MAINTAINERS needs to be updated.

Daniel Matyas (daniel.matyas@analog.com)
The email address you entered couldn't be found. Please check the recipient's email address and try to resend the message. If the problem continues, please contact your email admin.

Ibrahim Tilki (Ibrahim.Tilki@analog.com)
The email address you entered couldn't be found. Please check the recipient's email address and try to resend the message. If the problem continues, please contact your email admin.
Guenter Roeck Jan. 27, 2024, 3:39 p.m. UTC | #2
On Sat, Jan 27, 2024 at 04:02:54PM +0100, Heiner Kallweit wrote:
> Class-based I2C probing requires detect() and address_list to be
> set in the I2C client driver, see checks in i2c_detect().
> It's misleading to declare I2C_CLASS_HWMON support if this
> precondition isn't met.
> 
> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
> ---
>  drivers/hwmon/adm1177.c       | 1 -
>  drivers/hwmon/ds1621.c        | 1 -
>  drivers/hwmon/ds620.c         | 1 -
>  drivers/hwmon/ina209.c        | 1 -
>  drivers/hwmon/ina238.c        | 1 -
>  drivers/hwmon/max127.c        | 1 -
>  drivers/hwmon/max31760.c      | 1 -
>  drivers/hwmon/max31790.c      | 1 -
>  drivers/hwmon/max31827.c      | 1 -
>  drivers/hwmon/max6621.c       | 1 -
>  drivers/hwmon/max6697.c       | 1 -
>  drivers/hwmon/occ/p8_i2c.c    | 1 -
>  drivers/hwmon/pmbus/ir36021.c | 1 -
>  drivers/hwmon/powr1220.c      | 1 -
>  drivers/hwmon/sbrmi.c         | 1 -
>  drivers/hwmon/sbtsi_temp.c    | 1 -
>  drivers/hwmon/w83773g.c       | 1 -

Applied.

Thanks,
Guenter
Guenter Roeck Jan. 27, 2024, 4:01 p.m. UTC | #3
On 1/27/24 07:02, Heiner Kallweit wrote:
> Class-based I2C probing requires detect() and address_list to be
> set in the I2C client driver, see checks in i2c_detect().
> It's misleading to declare I2C_CLASS_HWMON support if this
> precondition isn't met.
> 
> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
> ---
>   drivers/hwmon/adm1177.c       | 1 -
>   drivers/hwmon/ds1621.c        | 1 -
>   drivers/hwmon/ds620.c         | 1 -
>   drivers/hwmon/ina209.c        | 1 -
>   drivers/hwmon/ina238.c        | 1 -
>   drivers/hwmon/max127.c        | 1 -
>   drivers/hwmon/max31760.c      | 1 -
>   drivers/hwmon/max31790.c      | 1 -
>   drivers/hwmon/max31827.c      | 1 -
>   drivers/hwmon/max6621.c       | 1 -
>   drivers/hwmon/max6697.c       | 1 -
>   drivers/hwmon/occ/p8_i2c.c    | 1 -
>   drivers/hwmon/pmbus/ir36021.c | 1 -
>   drivers/hwmon/powr1220.c      | 1 -
>   drivers/hwmon/sbrmi.c         | 1 -
>   drivers/hwmon/sbtsi_temp.c    | 1 -
>   drivers/hwmon/w83773g.c       | 1 -

Follow-up question: You did not drop the class from drivers/hwmon/adt7410.c
and drivers/hwmon/emc2305.c. Is that because of the address_list in those
drivers ?

As far as I can see, both address_list and I2C_CLASS_HWMON are useless
in those drivers and could be dropped as well. Am I missing something ?

Thanks,
Guenter
Heiner Kallweit Jan. 27, 2024, 4:12 p.m. UTC | #4
On 27.01.2024 17:01, Guenter Roeck wrote:
> On 1/27/24 07:02, Heiner Kallweit wrote:
>> Class-based I2C probing requires detect() and address_list to be
>> set in the I2C client driver, see checks in i2c_detect().
>> It's misleading to declare I2C_CLASS_HWMON support if this
>> precondition isn't met.
>>
>> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
>> ---
>>   drivers/hwmon/adm1177.c       | 1 -
>>   drivers/hwmon/ds1621.c        | 1 -
>>   drivers/hwmon/ds620.c         | 1 -
>>   drivers/hwmon/ina209.c        | 1 -
>>   drivers/hwmon/ina238.c        | 1 -
>>   drivers/hwmon/max127.c        | 1 -
>>   drivers/hwmon/max31760.c      | 1 -
>>   drivers/hwmon/max31790.c      | 1 -
>>   drivers/hwmon/max31827.c      | 1 -
>>   drivers/hwmon/max6621.c       | 1 -
>>   drivers/hwmon/max6697.c       | 1 -
>>   drivers/hwmon/occ/p8_i2c.c    | 1 -
>>   drivers/hwmon/pmbus/ir36021.c | 1 -
>>   drivers/hwmon/powr1220.c      | 1 -
>>   drivers/hwmon/sbrmi.c         | 1 -
>>   drivers/hwmon/sbtsi_temp.c    | 1 -
>>   drivers/hwmon/w83773g.c       | 1 -
> 
> Follow-up question: You did not drop the class from drivers/hwmon/adt7410.c
> and drivers/hwmon/emc2305.c. Is that because of the address_list in those
> drivers ?
> 
Yes. If address_list is set, this shows a certain intention to support
I2C class-based probing. Then the question is whether adding the missing
detect() implementation may be the more appropriate action.

> As far as I can see, both address_list and I2C_CLASS_HWMON are useless
> in those drivers and could be dropped as well. Am I missing something ?
> 
> Thanks,
> Guenter
> 
Heiner
Guenter Roeck Jan. 27, 2024, 4:37 p.m. UTC | #5
On 1/27/24 08:12, Heiner Kallweit wrote:
> On 27.01.2024 17:01, Guenter Roeck wrote:
>> On 1/27/24 07:02, Heiner Kallweit wrote:
>>> Class-based I2C probing requires detect() and address_list to be
>>> set in the I2C client driver, see checks in i2c_detect().
>>> It's misleading to declare I2C_CLASS_HWMON support if this
>>> precondition isn't met.
>>>
>>> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
>>> ---
>>>    drivers/hwmon/adm1177.c       | 1 -
>>>    drivers/hwmon/ds1621.c        | 1 -
>>>    drivers/hwmon/ds620.c         | 1 -
>>>    drivers/hwmon/ina209.c        | 1 -
>>>    drivers/hwmon/ina238.c        | 1 -
>>>    drivers/hwmon/max127.c        | 1 -
>>>    drivers/hwmon/max31760.c      | 1 -
>>>    drivers/hwmon/max31790.c      | 1 -
>>>    drivers/hwmon/max31827.c      | 1 -
>>>    drivers/hwmon/max6621.c       | 1 -
>>>    drivers/hwmon/max6697.c       | 1 -
>>>    drivers/hwmon/occ/p8_i2c.c    | 1 -
>>>    drivers/hwmon/pmbus/ir36021.c | 1 -
>>>    drivers/hwmon/powr1220.c      | 1 -
>>>    drivers/hwmon/sbrmi.c         | 1 -
>>>    drivers/hwmon/sbtsi_temp.c    | 1 -
>>>    drivers/hwmon/w83773g.c       | 1 -
>>
>> Follow-up question: You did not drop the class from drivers/hwmon/adt7410.c
>> and drivers/hwmon/emc2305.c. Is that because of the address_list in those
>> drivers ?
>>
> Yes. If address_list is set, this shows a certain intention to support
> I2C class-based probing. Then the question is whether adding the missing
> detect() implementation may be the more appropriate action.
> 

My understanding is that class based auto-detection is in the process of
being phased out. With that in mind, it would not make much sense to add
it to existing drivers. Anyone trying to add it now would have to explain
why it is suddenly needed but wasn't needed before. I think that train
has left the station.

On top of that, at least for adt7410/adt7420, I don't see a reliable means
to auto-detect those chips. Trying to do so for a 10+ year old driver would
only add (lots of) risk for little if any gain.

Those two drivers actually claim in their documentation that the address
ranges would be scanned. That should be dropped as well since it does not match
reality.

Thanks,
Guenter
Heiner Kallweit Jan. 27, 2024, 5:07 p.m. UTC | #6
On 27.01.2024 17:37, Guenter Roeck wrote:
> On 1/27/24 08:12, Heiner Kallweit wrote:
>> On 27.01.2024 17:01, Guenter Roeck wrote:
>>> On 1/27/24 07:02, Heiner Kallweit wrote:
>>>> Class-based I2C probing requires detect() and address_list to be
>>>> set in the I2C client driver, see checks in i2c_detect().
>>>> It's misleading to declare I2C_CLASS_HWMON support if this
>>>> precondition isn't met.
>>>>
>>>> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
>>>> ---
>>>>    drivers/hwmon/adm1177.c       | 1 -
>>>>    drivers/hwmon/ds1621.c        | 1 -
>>>>    drivers/hwmon/ds620.c         | 1 -
>>>>    drivers/hwmon/ina209.c        | 1 -
>>>>    drivers/hwmon/ina238.c        | 1 -
>>>>    drivers/hwmon/max127.c        | 1 -
>>>>    drivers/hwmon/max31760.c      | 1 -
>>>>    drivers/hwmon/max31790.c      | 1 -
>>>>    drivers/hwmon/max31827.c      | 1 -
>>>>    drivers/hwmon/max6621.c       | 1 -
>>>>    drivers/hwmon/max6697.c       | 1 -
>>>>    drivers/hwmon/occ/p8_i2c.c    | 1 -
>>>>    drivers/hwmon/pmbus/ir36021.c | 1 -
>>>>    drivers/hwmon/powr1220.c      | 1 -
>>>>    drivers/hwmon/sbrmi.c         | 1 -
>>>>    drivers/hwmon/sbtsi_temp.c    | 1 -
>>>>    drivers/hwmon/w83773g.c       | 1 -
>>>
>>> Follow-up question: You did not drop the class from drivers/hwmon/adt7410.c
>>> and drivers/hwmon/emc2305.c. Is that because of the address_list in those
>>> drivers ?
>>>
>> Yes. If address_list is set, this shows a certain intention to support
>> I2C class-based probing. Then the question is whether adding the missing
>> detect() implementation may be the more appropriate action.
>>
> 
> My understanding is that class based auto-detection is in the process of
> being phased out. With that in mind, it would not make much sense to add
> it to existing drivers. Anyone trying to add it now would have to explain
> why it is suddenly needed but wasn't needed before. I think that train
> has left the station.
> 
Good, then I'll send a patch for these two drivers too.

> On top of that, at least for adt7410/adt7420, I don't see a reliable means
> to auto-detect those chips. Trying to do so for a 10+ year old driver would
> only add (lots of) risk for little if any gain.
> 
> Those two drivers actually claim in their documentation that the address
> ranges would be scanned. That should be dropped as well since it does not match
> reality.
> 
For emc2305 that's right. Documentation/hwmon/adt7410.rst however states
"Addresses scanned: None", so here I wouldn't see a need for a change.

> Thanks,
> Guenter
> 
Heiner
Guenter Roeck Jan. 27, 2024, 5:48 p.m. UTC | #7
On 1/27/24 09:07, Heiner Kallweit wrote:
> On 27.01.2024 17:37, Guenter Roeck wrote:
>> On 1/27/24 08:12, Heiner Kallweit wrote:
>>> On 27.01.2024 17:01, Guenter Roeck wrote:
>>>> On 1/27/24 07:02, Heiner Kallweit wrote:
>>>>> Class-based I2C probing requires detect() and address_list to be
>>>>> set in the I2C client driver, see checks in i2c_detect().
>>>>> It's misleading to declare I2C_CLASS_HWMON support if this
>>>>> precondition isn't met.
>>>>>
>>>>> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
>>>>> ---
>>>>>     drivers/hwmon/adm1177.c       | 1 -
>>>>>     drivers/hwmon/ds1621.c        | 1 -
>>>>>     drivers/hwmon/ds620.c         | 1 -
>>>>>     drivers/hwmon/ina209.c        | 1 -
>>>>>     drivers/hwmon/ina238.c        | 1 -
>>>>>     drivers/hwmon/max127.c        | 1 -
>>>>>     drivers/hwmon/max31760.c      | 1 -
>>>>>     drivers/hwmon/max31790.c      | 1 -
>>>>>     drivers/hwmon/max31827.c      | 1 -
>>>>>     drivers/hwmon/max6621.c       | 1 -
>>>>>     drivers/hwmon/max6697.c       | 1 -
>>>>>     drivers/hwmon/occ/p8_i2c.c    | 1 -
>>>>>     drivers/hwmon/pmbus/ir36021.c | 1 -
>>>>>     drivers/hwmon/powr1220.c      | 1 -
>>>>>     drivers/hwmon/sbrmi.c         | 1 -
>>>>>     drivers/hwmon/sbtsi_temp.c    | 1 -
>>>>>     drivers/hwmon/w83773g.c       | 1 -
>>>>
>>>> Follow-up question: You did not drop the class from drivers/hwmon/adt7410.c
>>>> and drivers/hwmon/emc2305.c. Is that because of the address_list in those
>>>> drivers ?
>>>>
>>> Yes. If address_list is set, this shows a certain intention to support
>>> I2C class-based probing. Then the question is whether adding the missing
>>> detect() implementation may be the more appropriate action.
>>>
>>
>> My understanding is that class based auto-detection is in the process of
>> being phased out. With that in mind, it would not make much sense to add
>> it to existing drivers. Anyone trying to add it now would have to explain
>> why it is suddenly needed but wasn't needed before. I think that train
>> has left the station.
>>
> Good, then I'll send a patch for these two drivers too.
> 
>> On top of that, at least for adt7410/adt7420, I don't see a reliable means
>> to auto-detect those chips. Trying to do so for a 10+ year old driver would
>> only add (lots of) risk for little if any gain.
>>
>> Those two drivers actually claim in their documentation that the address
>> ranges would be scanned. That should be dropped as well since it does not match
>> reality.
>>
> For emc2305 that's right. Documentation/hwmon/adt7410.rst however states
> "Addresses scanned: None", so here I wouldn't see a need for a change.
> 

Ah, yes. You are correct. I thought I saw it for both. No idea what I looked at.

Thanks,
Guenter
Hennerich, Michael Jan. 29, 2024, 7:40 a.m. UTC | #8
> -----Original Message-----
> From: Heiner Kallweit <hkallweit1@gmail.com>
> Sent: Samstag, 27. Januar 2024 16:11
> To: Hennerich, Michael <Michael.Hennerich@analog.com>; Jean Delvare
> <jdelvare@suse.com>; Guenter Roeck <linux@roeck-us.net>
> Cc: linux-hwmon@vger.kernel.org
> Subject: Re: [PATCH] hwmon: Remove I2C_CLASS_HWMON from drivers w/o
> detect() and address_list
> 
> 
> On 27.01.2024 16:02, Heiner Kallweit wrote:
> > Class-based I2C probing requires detect() and address_list to be set
> > in the I2C client driver, see checks in i2c_detect().
> > It's misleading to declare I2C_CLASS_HWMON support if this
> > precondition isn't met.
> >
> > Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
> > ---
> >  drivers/hwmon/adm1177.c       | 1 -
> >  drivers/hwmon/ds1621.c        | 1 -
> >  drivers/hwmon/ds620.c         | 1 -
> >  drivers/hwmon/ina209.c        | 1 -
> >  drivers/hwmon/ina238.c        | 1 -
> >  drivers/hwmon/max127.c        | 1 -
> >  drivers/hwmon/max31760.c      | 1 -
> >  drivers/hwmon/max31790.c      | 1 -
> >  drivers/hwmon/max31827.c      | 1 -
> >  drivers/hwmon/max6621.c       | 1 -
> >  drivers/hwmon/max6697.c       | 1 -
> >  drivers/hwmon/occ/p8_i2c.c    | 1 -
> >  drivers/hwmon/pmbus/ir36021.c | 1 -
> >  drivers/hwmon/powr1220.c      | 1 -
> >  drivers/hwmon/sbrmi.c         | 1 -
> >  drivers/hwmon/sbtsi_temp.c    | 1 -
> >  drivers/hwmon/w83773g.c       | 1 -
> >  17 files changed, 17 deletions(-)
> >
> 
> It seems MAINTAINERS needs to be updated.
> 
> Daniel Matyas (daniel.matyas@analog.com) The email address you entered
> couldn't be found. Please check the recipient's email address and try to
> resend the message. If the problem continues, please contact your email
> admin.
> 
> Ibrahim Tilki (Ibrahim.Tilki@analog.com) The email address you entered
> couldn't be found. Please check the recipient's email address and try to
> resend the message. If the problem continues, please contact your email
> admin.

Right - thanks for pointing out.
We'll send a MAINTAINERS patch shortly.

-Michael
Heiner Kallweit Jan. 29, 2024, 9:51 a.m. UTC | #9
On 29.01.2024 08:40, Hennerich, Michael wrote:
> 
>> -----Original Message-----
>> From: Heiner Kallweit <hkallweit1@gmail.com>
>> Sent: Samstag, 27. Januar 2024 16:11
>> To: Hennerich, Michael <Michael.Hennerich@analog.com>; Jean Delvare
>> <jdelvare@suse.com>; Guenter Roeck <linux@roeck-us.net>
>> Cc: linux-hwmon@vger.kernel.org
>> Subject: Re: [PATCH] hwmon: Remove I2C_CLASS_HWMON from drivers w/o
>> detect() and address_list
>>
>>
>> On 27.01.2024 16:02, Heiner Kallweit wrote:
>>> Class-based I2C probing requires detect() and address_list to be set
>>> in the I2C client driver, see checks in i2c_detect().
>>> It's misleading to declare I2C_CLASS_HWMON support if this
>>> precondition isn't met.
>>>
>>> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
>>> ---
>>>  drivers/hwmon/adm1177.c       | 1 -
>>>  drivers/hwmon/ds1621.c        | 1 -
>>>  drivers/hwmon/ds620.c         | 1 -
>>>  drivers/hwmon/ina209.c        | 1 -
>>>  drivers/hwmon/ina238.c        | 1 -
>>>  drivers/hwmon/max127.c        | 1 -
>>>  drivers/hwmon/max31760.c      | 1 -
>>>  drivers/hwmon/max31790.c      | 1 -
>>>  drivers/hwmon/max31827.c      | 1 -
>>>  drivers/hwmon/max6621.c       | 1 -
>>>  drivers/hwmon/max6697.c       | 1 -
>>>  drivers/hwmon/occ/p8_i2c.c    | 1 -
>>>  drivers/hwmon/pmbus/ir36021.c | 1 -
>>>  drivers/hwmon/powr1220.c      | 1 -
>>>  drivers/hwmon/sbrmi.c         | 1 -
>>>  drivers/hwmon/sbtsi_temp.c    | 1 -
>>>  drivers/hwmon/w83773g.c       | 1 -
>>>  17 files changed, 17 deletions(-)
>>>
>>
>> It seems MAINTAINERS needs to be updated.
>>
>> Daniel Matyas (daniel.matyas@analog.com) The email address you entered
>> couldn't be found. Please check the recipient's email address and try to
>> resend the message. If the problem continues, please contact your email
>> admin.
>>
>> Ibrahim Tilki (Ibrahim.Tilki@analog.com) The email address you entered
>> couldn't be found. Please check the recipient's email address and try to
>> resend the message. If the problem continues, please contact your email
>> admin.
> 
> Right - thanks for pointing out.
> We'll send a MAINTAINERS patch shortly.
> 
Günter did that on your behalf already:
linux-next: 10e70ab10802 ("MAINTAINERS: Drop entries for hwmon devices with unreachable maintainers")

> -Michael
> 
Heiner
diff mbox series

Patch

diff --git a/drivers/hwmon/adm1177.c b/drivers/hwmon/adm1177.c
index 60a893f27..3390102d2 100644
--- a/drivers/hwmon/adm1177.c
+++ b/drivers/hwmon/adm1177.c
@@ -250,7 +250,6 @@  static const struct of_device_id adm1177_dt_ids[] = {
 MODULE_DEVICE_TABLE(of, adm1177_dt_ids);
 
 static struct i2c_driver adm1177_driver = {
-	.class = I2C_CLASS_HWMON,
 	.driver = {
 		.name = "adm1177",
 		.of_match_table = adm1177_dt_ids,
diff --git a/drivers/hwmon/ds1621.c b/drivers/hwmon/ds1621.c
index 21b635046..bffbc8040 100644
--- a/drivers/hwmon/ds1621.c
+++ b/drivers/hwmon/ds1621.c
@@ -380,7 +380,6 @@  MODULE_DEVICE_TABLE(i2c, ds1621_id);
 
 /* This is the driver that will be inserted */
 static struct i2c_driver ds1621_driver = {
-	.class		= I2C_CLASS_HWMON,
 	.driver = {
 		.name	= "ds1621",
 	},
diff --git a/drivers/hwmon/ds620.c b/drivers/hwmon/ds620.c
index 2b0953663..4fc4df012 100644
--- a/drivers/hwmon/ds620.c
+++ b/drivers/hwmon/ds620.c
@@ -241,7 +241,6 @@  MODULE_DEVICE_TABLE(i2c, ds620_id);
 
 /* This is the driver that will be inserted */
 static struct i2c_driver ds620_driver = {
-	.class = I2C_CLASS_HWMON,
 	.driver = {
 		   .name = "ds620",
 	},
diff --git a/drivers/hwmon/ina209.c b/drivers/hwmon/ina209.c
index c558143e5..d9b57a4b3 100644
--- a/drivers/hwmon/ina209.c
+++ b/drivers/hwmon/ina209.c
@@ -589,7 +589,6 @@  MODULE_DEVICE_TABLE(of, ina209_of_match);
 
 /* This is the driver that will be inserted */
 static struct i2c_driver ina209_driver = {
-	.class		= I2C_CLASS_HWMON,
 	.driver = {
 		.name	= "ina209",
 		.of_match_table = of_match_ptr(ina209_of_match),
diff --git a/drivers/hwmon/ina238.c b/drivers/hwmon/ina238.c
index ca9f5d2c8..69289293b 100644
--- a/drivers/hwmon/ina238.c
+++ b/drivers/hwmon/ina238.c
@@ -629,7 +629,6 @@  static const struct of_device_id __maybe_unused ina238_of_match[] = {
 MODULE_DEVICE_TABLE(of, ina238_of_match);
 
 static struct i2c_driver ina238_driver = {
-	.class		= I2C_CLASS_HWMON,
 	.driver = {
 		.name	= "ina238",
 		.of_match_table = of_match_ptr(ina238_of_match),
diff --git a/drivers/hwmon/max127.c b/drivers/hwmon/max127.c
index ee5ead06d..da2289e35 100644
--- a/drivers/hwmon/max127.c
+++ b/drivers/hwmon/max127.c
@@ -335,7 +335,6 @@  static const struct i2c_device_id max127_id[] = {
 MODULE_DEVICE_TABLE(i2c, max127_id);
 
 static struct i2c_driver max127_driver = {
-	.class		= I2C_CLASS_HWMON,
 	.driver = {
 		.name	= "max127",
 	},
diff --git a/drivers/hwmon/max31760.c b/drivers/hwmon/max31760.c
index 79945eb46..1b6f71bc6 100644
--- a/drivers/hwmon/max31760.c
+++ b/drivers/hwmon/max31760.c
@@ -578,7 +578,6 @@  static DEFINE_SIMPLE_DEV_PM_OPS(max31760_pm_ops, max31760_suspend,
 				max31760_resume);
 
 static struct i2c_driver max31760_driver = {
-	.class		= I2C_CLASS_HWMON,
 	.driver = {
 		.name	= "max31760",
 		.of_match_table = max31760_of_match,
diff --git a/drivers/hwmon/max31790.c b/drivers/hwmon/max31790.c
index 0cd44c1e9..3dc95196b 100644
--- a/drivers/hwmon/max31790.c
+++ b/drivers/hwmon/max31790.c
@@ -543,7 +543,6 @@  static const struct i2c_device_id max31790_id[] = {
 MODULE_DEVICE_TABLE(i2c, max31790_id);
 
 static struct i2c_driver max31790_driver = {
-	.class		= I2C_CLASS_HWMON,
 	.probe		= max31790_probe,
 	.driver = {
 		.name	= "max31790",
diff --git a/drivers/hwmon/max31827.c b/drivers/hwmon/max31827.c
index 4a8c3e37c..f8a13b30f 100644
--- a/drivers/hwmon/max31827.c
+++ b/drivers/hwmon/max31827.c
@@ -652,7 +652,6 @@  static const struct of_device_id max31827_of_match[] = {
 MODULE_DEVICE_TABLE(of, max31827_of_match);
 
 static struct i2c_driver max31827_driver = {
-	.class = I2C_CLASS_HWMON,
 	.driver = {
 		.name = "max31827",
 		.of_match_table = max31827_of_match,
diff --git a/drivers/hwmon/max6621.c b/drivers/hwmon/max6621.c
index af7e62685..05426cde0 100644
--- a/drivers/hwmon/max6621.c
+++ b/drivers/hwmon/max6621.c
@@ -549,7 +549,6 @@  static const struct of_device_id __maybe_unused max6621_of_match[] = {
 MODULE_DEVICE_TABLE(of, max6621_of_match);
 
 static struct i2c_driver max6621_driver = {
-	.class		= I2C_CLASS_HWMON,
 	.driver = {
 		.name = MAX6621_DRV_NAME,
 		.of_match_table = of_match_ptr(max6621_of_match),
diff --git a/drivers/hwmon/max6697.c b/drivers/hwmon/max6697.c
index 7d10dd434..d161ba0e7 100644
--- a/drivers/hwmon/max6697.c
+++ b/drivers/hwmon/max6697.c
@@ -780,7 +780,6 @@  static const struct of_device_id __maybe_unused max6697_of_match[] = {
 MODULE_DEVICE_TABLE(of, max6697_of_match);
 
 static struct i2c_driver max6697_driver = {
-	.class = I2C_CLASS_HWMON,
 	.driver = {
 		.name	= "max6697",
 		.of_match_table = of_match_ptr(max6697_of_match),
diff --git a/drivers/hwmon/occ/p8_i2c.c b/drivers/hwmon/occ/p8_i2c.c
index 06095975f..31159606c 100644
--- a/drivers/hwmon/occ/p8_i2c.c
+++ b/drivers/hwmon/occ/p8_i2c.c
@@ -241,7 +241,6 @@  static const struct of_device_id p8_i2c_occ_of_match[] = {
 MODULE_DEVICE_TABLE(of, p8_i2c_occ_of_match);
 
 static struct i2c_driver p8_i2c_occ_driver = {
-	.class = I2C_CLASS_HWMON,
 	.driver = {
 		.name = "occ-hwmon",
 		.of_match_table = p8_i2c_occ_of_match,
diff --git a/drivers/hwmon/pmbus/ir36021.c b/drivers/hwmon/pmbus/ir36021.c
index 382ba6b60..a263afeb8 100644
--- a/drivers/hwmon/pmbus/ir36021.c
+++ b/drivers/hwmon/pmbus/ir36021.c
@@ -63,7 +63,6 @@  static const struct of_device_id __maybe_unused ir36021_of_id[] = {
 MODULE_DEVICE_TABLE(of, ir36021_of_id);
 
 static struct i2c_driver ir36021_driver = {
-	.class = I2C_CLASS_HWMON,
 	.driver = {
 		.name = "ir36021",
 		.of_match_table = of_match_ptr(ir36021_of_id),
diff --git a/drivers/hwmon/powr1220.c b/drivers/hwmon/powr1220.c
index 4120cadb0..2388d0565 100644
--- a/drivers/hwmon/powr1220.c
+++ b/drivers/hwmon/powr1220.c
@@ -323,7 +323,6 @@  static const struct i2c_device_id powr1220_ids[] = {
 MODULE_DEVICE_TABLE(i2c, powr1220_ids);
 
 static struct i2c_driver powr1220_driver = {
-	.class		= I2C_CLASS_HWMON,
 	.driver = {
 		.name	= "powr1220",
 	},
diff --git a/drivers/hwmon/sbrmi.c b/drivers/hwmon/sbrmi.c
index 484703f0e..4318f5121 100644
--- a/drivers/hwmon/sbrmi.c
+++ b/drivers/hwmon/sbrmi.c
@@ -342,7 +342,6 @@  static const struct of_device_id __maybe_unused sbrmi_of_match[] = {
 MODULE_DEVICE_TABLE(of, sbrmi_of_match);
 
 static struct i2c_driver sbrmi_driver = {
-	.class = I2C_CLASS_HWMON,
 	.driver = {
 		.name = "sbrmi",
 		.of_match_table = of_match_ptr(sbrmi_of_match),
diff --git a/drivers/hwmon/sbtsi_temp.c b/drivers/hwmon/sbtsi_temp.c
index dd85cf89f..a4181acb1 100644
--- a/drivers/hwmon/sbtsi_temp.c
+++ b/drivers/hwmon/sbtsi_temp.c
@@ -232,7 +232,6 @@  static const struct of_device_id __maybe_unused sbtsi_of_match[] = {
 MODULE_DEVICE_TABLE(of, sbtsi_of_match);
 
 static struct i2c_driver sbtsi_driver = {
-	.class = I2C_CLASS_HWMON,
 	.driver = {
 		.name = "sbtsi",
 		.of_match_table = of_match_ptr(sbtsi_of_match),
diff --git a/drivers/hwmon/w83773g.c b/drivers/hwmon/w83773g.c
index 045eea837..401a28f55 100644
--- a/drivers/hwmon/w83773g.c
+++ b/drivers/hwmon/w83773g.c
@@ -290,7 +290,6 @@  static int w83773_probe(struct i2c_client *client)
 }
 
 static struct i2c_driver w83773_driver = {
-	.class = I2C_CLASS_HWMON,
 	.driver = {
 		.name	= "w83773g",
 		.of_match_table = of_match_ptr(w83773_of_match),