Re: [PATCH v1 09/16] rtc: mediatek: convert to use device managed functions
From: Sean Wang <sean.wang@mediatek.com>
Date: 2018-03-26 04:07:54
Also in:
linux-mediatek, linux-pm, linux-rtc, lkml
On Fri, 2018-03-23 at 11:50 +0100, Alexandre Belloni wrote:
On 23/03/2018 at 17:15:06 +0800, sean.wang@mediatek.com wrote:quoted
From: Sean Wang <sean.wang@mediatek.com> Use device managed operation to simplify error handling, reduce source code size, and reduce the likelyhood of bugs, and remove our removal callback which contains anything already done by device managed functions. Signed-off-by: Sean Wang <sean.wang@mediatek.com> --- drivers/rtc/rtc-mt6397.c | 31 ++++++++----------------------- 1 file changed, 8 insertions(+), 23 deletions(-)diff --git a/drivers/rtc/rtc-mt6397.c b/drivers/rtc/rtc-mt6397.c index cefb83b..bfc5d6f 100644 --- a/drivers/rtc/rtc-mt6397.c +++ b/drivers/rtc/rtc-mt6397.c@@ -14,6 +14,7 @@ #include <linux/delay.h> #include <linux/init.h> +#include <linux/interrupt.h> #include <linux/module.h> #include <linux/regmap.h> #include <linux/rtc.h>@@ -328,10 +329,10 @@ static int mtk_rtc_probe(struct platform_device *pdev) platform_set_drvdata(pdev, rtc); - ret = request_threaded_irq(rtc->irq, NULL, - mtk_rtc_irq_handler_thread, - IRQF_ONESHOT | IRQF_TRIGGER_HIGH, - "mt6397-rtc", rtc); + ret = devm_request_threaded_irq(&pdev->dev, rtc->irq, NULL, + mtk_rtc_irq_handler_thread, + IRQF_ONESHOT | IRQF_TRIGGER_HIGH, + "mt6397-rtc", rtc); if (ret) { dev_err(&pdev->dev, "Failed to request alarm IRQ: %d: %d\n", rtc->irq, ret);@@ -340,30 +341,15 @@ static int mtk_rtc_probe(struct platform_device *pdev) device_init_wakeup(&pdev->dev, 1); - rtc->rtc_dev = rtc_device_register("mt6397-rtc", &pdev->dev, - &mtk_rtc_ops, THIS_MODULE); + rtc->rtc_dev = devm_rtc_device_register(&pdev->dev, "mt6397-rtc", + &mtk_rtc_ops, THIS_MODULE);You should probably switch to devm_rtc_allocate_device() and rtc_register_device instead of devm_rtc_device_register.
Just would like to know something details It seems you just encourage me to switch into the new registration method and currently devm_rtc_device_register I used for the driver shouldn't cause any harm. right?
quoted
if (IS_ERR(rtc->rtc_dev)) { dev_err(&pdev->dev, "register rtc device failed\n"); ret = PTR_ERR(rtc->rtc_dev); - goto out_free_irq; + return ret;ret doesn't seem necessary anymore here.
okay, it'll be removed