diff options
Diffstat (limited to 'drivers/rtc/rtc-isl1208.c')
| -rw-r--r-- | drivers/rtc/rtc-isl1208.c | 45 |
1 files changed, 11 insertions, 34 deletions
diff --git a/drivers/rtc/rtc-isl1208.c b/drivers/rtc/rtc-isl1208.c index 054e05294af8..468200c38ecb 100644 --- a/drivers/rtc/rtc-isl1208.c +++ b/drivers/rtc/rtc-isl1208.c | |||
| @@ -462,39 +462,16 @@ isl1208_sysfs_store_usr(struct device *dev, | |||
| 462 | static DEVICE_ATTR(usr, S_IRUGO | S_IWUSR, isl1208_sysfs_show_usr, | 462 | static DEVICE_ATTR(usr, S_IRUGO | S_IWUSR, isl1208_sysfs_show_usr, |
| 463 | isl1208_sysfs_store_usr); | 463 | isl1208_sysfs_store_usr); |
| 464 | 464 | ||
| 465 | static int | 465 | static struct attribute *isl1208_rtc_attrs[] = { |
| 466 | isl1208_sysfs_register(struct device *dev) | 466 | &dev_attr_atrim.attr, |
| 467 | { | 467 | &dev_attr_dtrim.attr, |
| 468 | int err; | 468 | &dev_attr_usr.attr, |
| 469 | 469 | NULL | |
| 470 | err = device_create_file(dev, &dev_attr_atrim); | 470 | }; |
| 471 | if (err) | ||
| 472 | return err; | ||
| 473 | |||
| 474 | err = device_create_file(dev, &dev_attr_dtrim); | ||
| 475 | if (err) { | ||
| 476 | device_remove_file(dev, &dev_attr_atrim); | ||
| 477 | return err; | ||
| 478 | } | ||
| 479 | |||
| 480 | err = device_create_file(dev, &dev_attr_usr); | ||
| 481 | if (err) { | ||
| 482 | device_remove_file(dev, &dev_attr_atrim); | ||
| 483 | device_remove_file(dev, &dev_attr_dtrim); | ||
| 484 | } | ||
| 485 | |||
| 486 | return 0; | ||
| 487 | } | ||
| 488 | |||
| 489 | static int | ||
| 490 | isl1208_sysfs_unregister(struct device *dev) | ||
| 491 | { | ||
| 492 | device_remove_file(dev, &dev_attr_dtrim); | ||
| 493 | device_remove_file(dev, &dev_attr_atrim); | ||
| 494 | device_remove_file(dev, &dev_attr_usr); | ||
| 495 | 471 | ||
| 496 | return 0; | 472 | static const struct attribute_group isl1208_rtc_sysfs_files = { |
| 497 | } | 473 | .attrs = isl1208_rtc_attrs, |
| 474 | }; | ||
| 498 | 475 | ||
| 499 | static int | 476 | static int |
| 500 | isl1208_probe(struct i2c_client *client, const struct i2c_device_id *id) | 477 | isl1208_probe(struct i2c_client *client, const struct i2c_device_id *id) |
| @@ -529,7 +506,7 @@ isl1208_probe(struct i2c_client *client, const struct i2c_device_id *id) | |||
| 529 | dev_warn(&client->dev, "rtc power failure detected, " | 506 | dev_warn(&client->dev, "rtc power failure detected, " |
| 530 | "please set clock.\n"); | 507 | "please set clock.\n"); |
| 531 | 508 | ||
| 532 | rc = isl1208_sysfs_register(&client->dev); | 509 | rc = sysfs_create_group(&client->dev.kobj, &isl1208_rtc_sysfs_files); |
| 533 | if (rc) | 510 | if (rc) |
| 534 | goto exit_unregister; | 511 | goto exit_unregister; |
| 535 | 512 | ||
| @@ -546,7 +523,7 @@ isl1208_remove(struct i2c_client *client) | |||
| 546 | { | 523 | { |
| 547 | struct rtc_device *rtc = i2c_get_clientdata(client); | 524 | struct rtc_device *rtc = i2c_get_clientdata(client); |
| 548 | 525 | ||
| 549 | isl1208_sysfs_unregister(&client->dev); | 526 | sysfs_remove_group(&client->dev.kobj, &isl1208_rtc_sysfs_files); |
| 550 | rtc_device_unregister(rtc); | 527 | rtc_device_unregister(rtc); |
| 551 | 528 | ||
| 552 | return 0; | 529 | return 0; |
