diff --git a/drivers/rtc/rtc-max8997.c b/drivers/rtc/rtc-max8997.c index a4e7079fb863..00e505b6bee3 100644 --- a/drivers/rtc/rtc-max8997.c +++ b/drivers/rtc/rtc-max8997.c @@ -495,7 +495,8 @@ static int max8997_rtc_probe(struct platform_device *pdev) } info->virq = virq; - ret = request_threaded_irq(virq, NULL, max8997_rtc_alarm_irq, 0, + ret = devm_request_threaded_irq(&pdev->dev, virq, NULL, + max8997_rtc_alarm_irq, 0, "rtc-alarm0", info); if (ret < 0) { dev_err(&pdev->dev, "Failed to request alarm IRQ: %d: %d\n", @@ -514,10 +515,8 @@ static int max8997_rtc_remove(struct platform_device *pdev) { struct max8997_rtc_info *info = platform_get_drvdata(pdev); - if (info) { - free_irq(info->virq, info); + if (info) rtc_device_unregister(info->rtc_dev); - } return 0; }