summaryrefslogtreecommitdiff
path: root/drivers/rtc/rtc-mc13xxx.c
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2011-05-12 11:31:13 +0200
committerThomas Gleixner <tglx@linutronix.de>2011-05-12 11:31:13 +0200
commit557d97d57446f55d2c4a66593794ea31ffd0a74d (patch)
tree60a88a0c5a107997c9f19ee37f5de3b9aed1a487 /drivers/rtc/rtc-mc13xxx.c
parente05b2efb82596905ebfe88e8612ee81dec9b6592 (diff)
parent156229b352b999cafb86a21b50912975e39b7f44 (diff)
Merge branch 'fortglx/39/tip/timers/rtc' of git://git.linaro.org/people/jstultz/linux into timers/urgent
Diffstat (limited to 'drivers/rtc/rtc-mc13xxx.c')
-rw-r--r--drivers/rtc/rtc-mc13xxx.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/rtc/rtc-mc13xxx.c b/drivers/rtc/rtc-mc13xxx.c
index c5ac03793e7..a1a278bc340 100644
--- a/drivers/rtc/rtc-mc13xxx.c
+++ b/drivers/rtc/rtc-mc13xxx.c
@@ -349,11 +349,15 @@ static int __devinit mc13xxx_rtc_probe(struct platform_device *pdev)
if (ret)
goto err_alarm_irq_request;
+ mc13xxx_unlock(mc13xxx);
+
priv->rtc = rtc_device_register(pdev->name,
&pdev->dev, &mc13xxx_rtc_ops, THIS_MODULE);
if (IS_ERR(priv->rtc)) {
ret = PTR_ERR(priv->rtc);
+ mc13xxx_lock(mc13xxx);
+
mc13xxx_irq_free(mc13xxx, MC13XXX_IRQ_TODA, priv);
err_alarm_irq_request:
@@ -365,12 +369,12 @@ err_reset_irq_status:
mc13xxx_irq_free(mc13xxx, MC13XXX_IRQ_RTCRST, priv);
err_reset_irq_request:
+ mc13xxx_unlock(mc13xxx);
+
platform_set_drvdata(pdev, NULL);
kfree(priv);
}
- mc13xxx_unlock(mc13xxx);
-
return ret;
}