summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorNishanth Menon <nm@ti.com>2015-06-23 16:15:11 (GMT)
committerAlexandre Belloni <alexandre.belloni@free-electrons.com>2015-09-05 11:19:05 (GMT)
commitc5983191362af5ef7a627d8811a45f0fd01a3582 (patch)
treef757dfb2a7303d00199bbed4c65dcb7e025d1fa5 /drivers
parent2fb07a10e0aa699ddb12aba1459208579bdc9802 (diff)
downloadlinux-c5983191362af5ef7a627d8811a45f0fd01a3582.tar.xz
rtc: ds1307: Switch to managed irq allocation
Since we are not doing anything fancy in remove function that requires us to sequence IRQ free operation, we might as well switch over to devm_ equivalent of managed IRQ allocation and remove the explicit free_irq since it'd be done automatically at remove. Signed-off-by: Nishanth Menon <nm@ti.com> Acked-by: Felipe Balbi <balbi@ti.com> Reviewed-by: Grygorii Strashko <grygorii.strashko@ti.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/rtc/rtc-ds1307.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/rtc/rtc-ds1307.c b/drivers/rtc/rtc-ds1307.c
index 8ea496e5..0a98d8a 100644
--- a/drivers/rtc/rtc-ds1307.c
+++ b/drivers/rtc/rtc-ds1307.c
@@ -1156,9 +1156,10 @@ read_rtc:
}
if (want_irq) {
- err = request_threaded_irq(client->irq, NULL, irq_handler,
- IRQF_SHARED | IRQF_ONESHOT,
- ds1307->rtc->name, client);
+ err = devm_request_threaded_irq(&client->dev,
+ client->irq, NULL, irq_handler,
+ IRQF_SHARED | IRQF_ONESHOT,
+ ds1307->rtc->name, client);
if (err) {
client->irq = 0;
dev_err(&client->dev, "unable to request IRQ!\n");
@@ -1212,9 +1213,6 @@ static int ds1307_remove(struct i2c_client *client)
{
struct ds1307 *ds1307 = i2c_get_clientdata(client);
- if (test_and_clear_bit(HAS_ALARM, &ds1307->flags))
- free_irq(client->irq, client);
-
if (test_and_clear_bit(HAS_NVRAM, &ds1307->flags))
sysfs_remove_bin_file(&client->dev.kobj, ds1307->nvram);