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 |
