Commit 1f08af7ea95e0f4ec632664b9f21a687426df658

Authored by Jean Delvare
Committed by Mark M. Hoffman
1 parent 71062ffcd5

hwmon: (smsc47m1) Add individual alarm files

The new libsensors needs these individual alarm files.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Acked-by: Juerg Haefliger <juergh at gmail.com>
Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>

Showing 1 changed file with 22 additions and 3 deletions Side-by-side Diff

drivers/hwmon/smsc47m1.c
... ... @@ -198,6 +198,14 @@
198 198 return sprintf(buf, "%d\n", DIV_FROM_REG(data->fan_div[attr->index]));
199 199 }
200 200  
  201 +static ssize_t get_fan_alarm(struct device *dev, struct device_attribute
  202 + *devattr, char *buf)
  203 +{
  204 + int bitnr = to_sensor_dev_attr(devattr)->index;
  205 + struct smsc47m1_data *data = smsc47m1_update_device(dev, 0);
  206 + return sprintf(buf, "%u\n", (data->alarms >> bitnr) & 1);
  207 +}
  208 +
201 209 static ssize_t get_pwm(struct device *dev, struct device_attribute
202 210 *devattr, char *buf)
203 211 {
... ... @@ -347,6 +355,8 @@
347 355 get_fan_min, set_fan_min, offset - 1); \
348 356 static SENSOR_DEVICE_ATTR(fan##offset##_div, S_IRUGO | S_IWUSR, \
349 357 get_fan_div, set_fan_div, offset - 1); \
  358 +static SENSOR_DEVICE_ATTR(fan##offset##_alarm, S_IRUGO, get_fan_alarm, \
  359 + NULL, offset - 1); \
350 360 static SENSOR_DEVICE_ATTR(pwm##offset, S_IRUGO | S_IWUSR, \
351 361 get_pwm, set_pwm, offset - 1); \
352 362 static SENSOR_DEVICE_ATTR(pwm##offset##_enable, S_IRUGO | S_IWUSR, \
353 363  
354 364  
... ... @@ -374,12 +384,15 @@
374 384 &sensor_dev_attr_fan1_input.dev_attr.attr,
375 385 &sensor_dev_attr_fan1_min.dev_attr.attr,
376 386 &sensor_dev_attr_fan1_div.dev_attr.attr,
  387 + &sensor_dev_attr_fan1_alarm.dev_attr.attr,
377 388 &sensor_dev_attr_fan2_input.dev_attr.attr,
378 389 &sensor_dev_attr_fan2_min.dev_attr.attr,
379 390 &sensor_dev_attr_fan2_div.dev_attr.attr,
  391 + &sensor_dev_attr_fan2_alarm.dev_attr.attr,
380 392 &sensor_dev_attr_fan3_input.dev_attr.attr,
381 393 &sensor_dev_attr_fan3_min.dev_attr.attr,
382 394 &sensor_dev_attr_fan3_div.dev_attr.attr,
  395 + &sensor_dev_attr_fan3_alarm.dev_attr.attr,
383 396  
384 397 &sensor_dev_attr_pwm1.dev_attr.attr,
385 398 &sensor_dev_attr_pwm1_enable.dev_attr.attr,
... ... @@ -533,7 +546,9 @@
533 546 || (err = device_create_file(dev,
534 547 &sensor_dev_attr_fan1_min.dev_attr))
535 548 || (err = device_create_file(dev,
536   - &sensor_dev_attr_fan1_div.dev_attr)))
  549 + &sensor_dev_attr_fan1_div.dev_attr))
  550 + || (err = device_create_file(dev,
  551 + &sensor_dev_attr_fan1_alarm.dev_attr)))
537 552 goto error_remove_files;
538 553 } else
539 554 dev_dbg(dev, "Fan 1 not enabled by hardware, skipping\n");
... ... @@ -544,7 +559,9 @@
544 559 || (err = device_create_file(dev,
545 560 &sensor_dev_attr_fan2_min.dev_attr))
546 561 || (err = device_create_file(dev,
547   - &sensor_dev_attr_fan2_div.dev_attr)))
  562 + &sensor_dev_attr_fan2_div.dev_attr))
  563 + || (err = device_create_file(dev,
  564 + &sensor_dev_attr_fan2_alarm.dev_attr)))
548 565 goto error_remove_files;
549 566 } else
550 567 dev_dbg(dev, "Fan 2 not enabled by hardware, skipping\n");
... ... @@ -555,7 +572,9 @@
555 572 || (err = device_create_file(dev,
556 573 &sensor_dev_attr_fan3_min.dev_attr))
557 574 || (err = device_create_file(dev,
558   - &sensor_dev_attr_fan3_div.dev_attr)))
  575 + &sensor_dev_attr_fan3_div.dev_attr))
  576 + || (err = device_create_file(dev,
  577 + &sensor_dev_attr_fan3_alarm.dev_attr)))
559 578 goto error_remove_files;
560 579 } else if (data->type == smsc47m2)
561 580 dev_dbg(dev, "Fan 3 not enabled by hardware, skipping\n");