@@ -117,7 +117,7 @@ static int scpi_hwmon_probe(struct platform_device *pdev)
117
117
struct scpi_ops * scpi_ops ;
118
118
struct device * hwdev , * dev = & pdev -> dev ;
119
119
struct scpi_sensors * scpi_sensors ;
120
- int ret ;
120
+ int ret , idx ;
121
121
122
122
scpi_ops = get_scpi_ops ();
123
123
if (!scpi_ops )
@@ -146,8 +146,8 @@ static int scpi_hwmon_probe(struct platform_device *pdev)
146
146
147
147
scpi_sensors -> scpi_ops = scpi_ops ;
148
148
149
- for (i = 0 ; i < nr_sensors ; i ++ ) {
150
- struct sensor_data * sensor = & scpi_sensors -> data [i ];
149
+ for (i = 0 , idx = 0 ; i < nr_sensors ; i ++ ) {
150
+ struct sensor_data * sensor = & scpi_sensors -> data [idx ];
151
151
152
152
ret = scpi_ops -> sensor_get_info (i , & sensor -> info );
153
153
if (ret )
@@ -183,7 +183,7 @@ static int scpi_hwmon_probe(struct platform_device *pdev)
183
183
num_power ++ ;
184
184
break ;
185
185
default :
186
- break ;
186
+ continue ;
187
187
}
188
188
189
189
sensor -> dev_attr_input .attr .mode = S_IRUGO ;
@@ -194,11 +194,12 @@ static int scpi_hwmon_probe(struct platform_device *pdev)
194
194
sensor -> dev_attr_label .show = scpi_show_label ;
195
195
sensor -> dev_attr_label .attr .name = sensor -> label ;
196
196
197
- scpi_sensors -> attrs [i << 1 ] = & sensor -> dev_attr_input .attr ;
198
- scpi_sensors -> attrs [(i << 1 ) + 1 ] = & sensor -> dev_attr_label .attr ;
197
+ scpi_sensors -> attrs [idx << 1 ] = & sensor -> dev_attr_input .attr ;
198
+ scpi_sensors -> attrs [(idx << 1 ) + 1 ] = & sensor -> dev_attr_label .attr ;
199
199
200
- sysfs_attr_init (scpi_sensors -> attrs [i << 1 ]);
201
- sysfs_attr_init (scpi_sensors -> attrs [(i << 1 ) + 1 ]);
200
+ sysfs_attr_init (scpi_sensors -> attrs [idx << 1 ]);
201
+ sysfs_attr_init (scpi_sensors -> attrs [(idx << 1 ) + 1 ]);
202
+ idx ++ ;
202
203
}
203
204
204
205
scpi_sensors -> group .attrs = scpi_sensors -> attrs ;
@@ -236,8 +237,8 @@ static int scpi_hwmon_probe(struct platform_device *pdev)
236
237
237
238
zone -> sensor_id = i ;
238
239
zone -> scpi_sensors = scpi_sensors ;
239
- zone -> tzd = thermal_zone_of_sensor_register (dev , i , zone ,
240
- & scpi_sensor_ops );
240
+ zone -> tzd = thermal_zone_of_sensor_register (dev ,
241
+ sensor -> info . sensor_id , zone , & scpi_sensor_ops );
241
242
/*
242
243
* The call to thermal_zone_of_sensor_register returns
243
244
* an error for sensors that are not associated with
0 commit comments