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