diff options
author | Alexandre Belloni <alexandre.belloni@free-electrons.com> | 2015-07-24 10:07:30 -0400 |
---|---|---|
committer | Alexandre Belloni <alexandre.belloni@free-electrons.com> | 2015-09-05 07:19:11 -0400 |
commit | f0b63a1d5a4a4d9d60fe728ede0fa78ec5aab8be (patch) | |
tree | 42fdacde4a427d9f28d63651d3484806d23f7153 /drivers/rtc | |
parent | b6a57c955c362cb9d6ace991cdd77376849abb44 (diff) |
rtc: rx8025: switch to managed irq allocation
Use devm_request_threaded_irq() so it is not necessary to call free_irq()
explicitly.
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Diffstat (limited to 'drivers/rtc')
-rw-r--r-- | drivers/rtc/rtc-rx8025.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/drivers/rtc/rtc-rx8025.c b/drivers/rtc/rtc-rx8025.c index d8737713135d..be91e922a139 100644 --- a/drivers/rtc/rtc-rx8025.c +++ b/drivers/rtc/rtc-rx8025.c | |||
@@ -554,8 +554,9 @@ static int rx8025_probe(struct i2c_client *client, | |||
554 | 554 | ||
555 | if (client->irq > 0) { | 555 | if (client->irq > 0) { |
556 | dev_info(&client->dev, "IRQ %d supplied\n", client->irq); | 556 | dev_info(&client->dev, "IRQ %d supplied\n", client->irq); |
557 | err = request_threaded_irq(client->irq, NULL, rx8025_handle_irq, | 557 | err = devm_request_threaded_irq(&client->dev, client->irq, NULL, |
558 | 0, "rx8025", client); | 558 | rx8025_handle_irq, 0, "rx8025", |
559 | client); | ||
559 | if (err) { | 560 | if (err) { |
560 | dev_err(&client->dev, "unable to request IRQ\n"); | 561 | dev_err(&client->dev, "unable to request IRQ\n"); |
561 | goto errout; | 562 | goto errout; |
@@ -567,14 +568,10 @@ static int rx8025_probe(struct i2c_client *client, | |||
567 | 568 | ||
568 | err = rx8025_sysfs_register(&client->dev); | 569 | err = rx8025_sysfs_register(&client->dev); |
569 | if (err) | 570 | if (err) |
570 | goto errout_irq; | 571 | goto errout; |
571 | 572 | ||
572 | return 0; | 573 | return 0; |
573 | 574 | ||
574 | errout_irq: | ||
575 | if (client->irq > 0) | ||
576 | free_irq(client->irq, client); | ||
577 | |||
578 | errout: | 575 | errout: |
579 | dev_err(&adapter->dev, "probing for rx8025 failed\n"); | 576 | dev_err(&adapter->dev, "probing for rx8025 failed\n"); |
580 | return err; | 577 | return err; |
@@ -582,9 +579,6 @@ errout: | |||
582 | 579 | ||
583 | static int rx8025_remove(struct i2c_client *client) | 580 | static int rx8025_remove(struct i2c_client *client) |
584 | { | 581 | { |
585 | if (client->irq > 0) | ||
586 | free_irq(client->irq, client); | ||
587 | |||
588 | rx8025_sysfs_unregister(&client->dev); | 582 | rx8025_sysfs_unregister(&client->dev); |
589 | return 0; | 583 | return 0; |
590 | } | 584 | } |