diff options
author | Guodong Xu <guodong.xu@linaro.org> | 2013-12-05 21:27:09 +0800 |
---|---|---|
committer | Guodong Xu <guodong.xu@linaro.org> | 2013-12-05 21:27:09 +0800 |
commit | 85e32c21a194794f6bf1bc1c0f8e89914e06cda1 (patch) | |
tree | 18f76675f99371963363e490cbaf7bce960056f8 /drivers/rtc/rtc-hi6421.c | |
parent | d539adecc096b722f13fd7d998e68275500109ee (diff) | |
parent | 56f092a1bc6311932c42d02ed84f2c304e1e64cb (diff) |
Merge branch 'tracking-hilt-regulator-1129' into integration-hilt-lsk-androidintegration-hilt-lsk-android-1205
* tracking-hilt-regulator-1129:
mfd: hi6421: calling irq_create_mapping in irq handler can cause failure
rtc: rtc-hi6421: rtc_device_register should be called before devm_request_irq
input: hi6421: allocate input_dev before request_irq
Diffstat (limited to 'drivers/rtc/rtc-hi6421.c')
-rw-r--r-- | drivers/rtc/rtc-hi6421.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/drivers/rtc/rtc-hi6421.c b/drivers/rtc/rtc-hi6421.c index 14e27b96e0ef..50ec3911861b 100644 --- a/drivers/rtc/rtc-hi6421.c +++ b/drivers/rtc/rtc-hi6421.c @@ -214,29 +214,27 @@ static int hi6421_rtc_probe(struct platform_device *pdev) if (info->irq < 0) return -ENOENT; - ret = devm_request_irq(&pdev->dev, info->irq, hi6421_rtc_handler, - IRQF_DISABLED, "alarm", info); - if (ret < 0) - return ret; info->pmic = dev_get_drvdata(pdev->dev.parent); platform_set_drvdata(pdev, info); /* enable RTC device */ hi6421_pmic_write(info->pmic, REG_RTCCTRL, 1); - info->rtc = rtc_device_register(pdev->name, &pdev->dev, - &hi6421_rtc_ops, - THIS_MODULE); + info->rtc = devm_rtc_device_register(&pdev->dev, pdev->name, + &hi6421_rtc_ops, THIS_MODULE); if (IS_ERR(info->rtc)) return PTR_ERR(info->rtc); + + ret = devm_request_irq(&pdev->dev, info->irq, hi6421_rtc_handler, + IRQF_DISABLED, "alarm", info); + if (ret < 0) + return ret; + return 0; } static int hi6421_rtc_remove(struct platform_device *pdev) { - struct hi6421_rtc_info *info = platform_get_drvdata(pdev); - - rtc_device_unregister(info->rtc); return 0; } |