summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorNishanth Menon <nm@ti.com>2015-06-23 11:15:11 -0500
committerAlexandre Belloni <alexandre.belloni@free-electrons.com>2015-09-05 13:19:05 +0200
commitc5983191362af5ef7a627d8811a45f0fd01a3582 (patch)
treef757dfb2a7303d00199bbed4c65dcb7e025d1fa5 /drivers
parent2fb07a10e0aa699ddb12aba1459208579bdc9802 (diff)
downloadlinux-stable-c5983191362af5ef7a627d8811a45f0fd01a3582.tar.gz
linux-stable-c5983191362af5ef7a627d8811a45f0fd01a3582.tar.bz2
linux-stable-c5983191362af5ef7a627d8811a45f0fd01a3582.zip
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 8ea496e54a2e..0a98d8a52791 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);