From patchwork Thu Dec 5 01:03:00 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jingoo Han X-Patchwork-Id: 296682 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from mail-ob0-x238.google.com (mail-ob0-x238.google.com [IPv6:2607:f8b0:4003:c01::238]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (not verified)) by ozlabs.org (Postfix) with ESMTPS id 4936E2C009F for ; Thu, 5 Dec 2013 12:03:05 +1100 (EST) Received: by mail-ob0-f184.google.com with SMTP id va2sf4324929obc.11 for ; Wed, 04 Dec 2013 17:03:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20120806; h=from:to:cc:subject:date:message-id:mime-version:thread-index :dlp-filter:x-original-sender:x-original-authentication-results :reply-to:precedence:mailing-list:list-id:list-post:list-help :list-archive:sender:list-subscribe:list-unsubscribe:content-type :content-language; bh=vddO1H8sm/Yc+LXqfx3OVNn3mla3PbjyWTn8n93+ENw=; b=SoNG1tBlm7AOt/BbO/nH3oWnC3DEeEdGn4C4sLBWeqIUE45UuMC506UMQVDzMNzIcd BjKLgYXObxvdQi97TIBokxZqw7EAX8uPColw0pw7VRAyVQYhJCMrpskrXFKoDeetVndb OB7mrfJdc9hic3bH3oOiRjalsjlgy3YUaszrzhdEIe2StCrYZMoVBnauksnCSI4cUbh5 Bp9ThCUrj+UZvHSWpp7ujRHJKgsA7Uv6MoMg7Na2OFR3mci1QS6GjIApuU2xVQMP0MEX ZLofVjKY/ZFwhQpF42gxoPEKuX04VhrAMPu4y9sobxZDGlZj+QpE7lfTx7fCw/oQqTj/ tYrg== X-Received: by 10.50.73.99 with SMTP id k3mr124053igv.9.1386205382874; Wed, 04 Dec 2013 17:03:02 -0800 (PST) X-BeenThere: rtc-linux@googlegroups.com Received: by 10.50.1.104 with SMTP id 8ls671899igl.31.gmail; Wed, 04 Dec 2013 17:03:02 -0800 (PST) X-Received: by 10.42.67.19 with SMTP id r19mr22764070ici.6.1386205382414; Wed, 04 Dec 2013 17:03:02 -0800 (PST) Received: from mailout3.samsung.com (mailout3.samsung.com. [203.254.224.33]) by gmr-mx.google.com with ESMTPS id ns3si284524pbc.1.2013.12.04.17.03.02 for (version=TLSv1 cipher=RC4-MD5 bits=128/128); Wed, 04 Dec 2013 17:03:02 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of jg1.han@samsung.com designates 203.254.224.33 as permitted sender) client-ip=203.254.224.33; Received: from epcpsbgr3.samsung.com (u143.gpu120.samsung.co.kr [203.254.230.143]) by mailout3.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0MXB00C816X0I010@mailout3.samsung.com> for rtc-linux@googlegroups.com; Thu, 05 Dec 2013 10:03:00 +0900 (KST) Received: from epcpsbgm2.samsung.com ( [203.254.230.51]) by epcpsbgr3.samsung.com (EPCPMTA) with SMTP id C3.77.15387.4C0DF925; Thu, 05 Dec 2013 10:03:00 +0900 (KST) X-AuditID: cbfee68f-b7f256d000003c1b-4f-529fd0c4a008 Received: from epmmp2 ( [203.254.227.17]) by epcpsbgm2.samsung.com (EPCPMTA) with SMTP id 51.15.15903.4C0DF925; Thu, 05 Dec 2013 10:03:00 +0900 (KST) Received: from DOJG1HAN03 ([12.23.120.99]) by mmp2.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0MXB007EQ6X0JT30@mmp2.samsung.com>; Thu, 05 Dec 2013 10:03:00 +0900 (KST) From: Jingoo Han To: 'Andrew Morton' Cc: linux-kernel@vger.kernel.org, 'Alessandro Zummo' , rtc-linux@googlegroups.com, 'Jingoo Han' , 'Kevin Hilman' , 'Tony Lindgren' , 'Grygorii Strashko' , 'Peter Ujfalusi' Subject: [rtc-linux] [PATCH 1/2] rtc: rtc-twl: Use devm_*() functions Date: Thu, 05 Dec 2013 10:03:00 +0900 Message-id: <000001cef155$be1674e0$3a435ea0$%han@samsung.com> MIME-version: 1.0 X-Mailer: Microsoft Office Outlook 12.0 Thread-index: Ac7xVbT2xOcYR3GdRSO1O8jmIZkciA== x-cr-hashedpuzzle: TsVq XiZR Z/oE j0XL leEd qqET ynst 1yGj AAtEvA== ACd/Ow== ACz79Q== AD/P0w== AHVMsg== AHXHXQ== AHoa5Q== AIiYEQ==; 9; YQAuAHoAdQBtAG0AbwBAAHQAbwB3AGUAcgB0AGUAYwBoAC4AaQB0ADsAYQBrAHAAbQBAAGwAaQBuAHUAeAAtAGYAbwB1AG4AZABhAHQAaQBvAG4ALgBvAHIAZwA7AGcAcgB5AGcAbwByAGkAaQAuAHMAdAByAGEAcwBoAGsAbwBAAHQAaQAuAGMAbwBtADsAagBnADEALgBoAGEAbgBAAHMAYQBtAHMAdQBuAGcALgBjAG8AbQA7AGsAaABpAGwAbQBhAG4AQABsAGkAbgBhAHIAbwAuAG8AcgBnADsAbABpAG4AdQB4AC0AawBlAHIAbgBlAGwAQAB2AGcAZQByAC4AawBlAHIAbgBlAGwALgBvAHIAZwA7AHAAZQB0AGUAcgAuAHUAagBmAGEAbAB1AHMAaQBAAHQAaQAuAGMAbwBtADsAcgB0AGMALQBsAGkAbgB1AHgAQABnAG8AbwBnAGwAZQBnAHIAbwB1AHAAcwAuAGMAbwBtADsAdABvAG4AeQBAAGEAdABvAG0AaQBkAGUALgBjAG8AbQA=; Sosha1_v1; 7; {A3E1E5B1-6A64-404D-BC59-84D578F179D7}; agBnADEALgBoAGEAbgBAAHMAYQBtAHMAdQBuAGcALgBjAG8AbQA=; Thu, 05 Dec 2013 01:02:45 GMT; WwBQAEEAVABDAEgAIAAxAC8AMgBdACAAcgB0AGMAOgAgAHIAdABjAC0AdAB3AGwAOgAgAFUAcwBlACAAZABlAHYAbQBfACoAKAApACAAZgB1AG4AYwB0AGkAbwBuAHMA x-cr-puzzleid: {A3E1E5B1-6A64-404D-BC59-84D578F179D7} X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrBIsWRmVeSWpSXmKPExsVy+t8zY90jF+YHGby6o2Gx5OJVdos569ew WaycwmJxeeElVouvh1cwWlzeNYfNYtbHH6wW+zs7GC32X/Fy4PT49nUSi8eeiSfZPO5c28Pm cWLGbxaPvi2rGD2O39jO5DF93k8mj8+b5AI4orhsUlJzMstSi/TtErgyFr3/zFQwR6qi48Na pgbGHtEuRk4OCQETiaXbnjFC2GISF+6tZ+ti5OIQEljGKHF8/TYmmKIz719BJaYzSkz4eJUd wvnFKLHs9TJmkCo2ATWJL18OAyU4OEQE9CXaWjRAapgFtjFJ/H/6iREkLixgKfFskwhIOYuA qsTBfYdZQWxeAVuJ1evnsUDYghI/Jt8Ds5kFtCTW7zzOBGHLS2xe85YZZIyEgLrEo7+6IGER AT2JBzvPsUGUiEjse/EO6pkd7BLPVyZC2KYSv6dfYQQ5R0JgIofE+knP2SBuEJD4NvkQC8RM WYlNB5gh6iUlDq64wTKBUWIWkotmIbloFpKLZiFZvYCRZRWjaGpBckFxUnqRsV5xYm5xaV66 XnJ+7iZGSKz372C8e8D6EGMy0PqJzFKiyfnAVJFXEm9obGZkYWpiamxkbmlGmrCSOO/9h0lB QgLpiSWp2ampBalF8UWlOanFhxiZODilGhhVMg3cONe3+kZuW7irJ6on4tN7gaD/nKFh1QL5 ySt82D32RV12n/EnK7zd4o6jg38lt4WJ28KmYqslqnM9sx9/1VnNvtRn6/N3p1QSC2T/P0zq unbr6eeuGSpRTrfvfo4o3FCTf9xdwuXzM0vNxAfhjrrPLUJ9NrhoHtSwqtdb4eHXzXzphhJL cUaioRZzUXEiAGB0ZTkLAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrKKsWRmVeSWpSXmKPExsVy+t9jQd0jF+YHGew9omyx5OJVdos569ew WaycwmJxeeElVouvh1cwWlzeNYfNYtbHH6wW+zs7GC32X/Fy4PT49nUSi8eeiSfZPO5c28Pm cWLGbxaPvi2rGD2O39jO5DF93k8mj8+b5AI4ohoYbTJSE1NSixRS85LzUzLz0m2VvIPjneNN zQwMdQ0tLcyVFPISc1NtlVx8AnTdMnOAzlNSKEvMKQUKBSQWFyvp22GaEBripmsB0xih6xsS BNdjZIAGEtYxZix6/5mpYI5URceHtUwNjD2iXYycHBICJhJn3r9ig7DFJC7cWw9kc3EICUxn lJjw8So7hPOLUWLZ62XMIFVsAmoSX74cBkpwcIgI6Eu0tWiA1DALbGOS+P/0EyNIXFjAUuLZ JhGQchYBVYmD+w6zgti8ArYSq9fPY4GwBSV+TL4HZjMLaEms33mcCcKWl9i85i0zyBgJAXWJ R391QcIiAnoSD3aeY4MoEZHY9+IdI8TNO9glnq9MhLBNJX5Pv8I4gVFoFpINs5BsmIVkwywk oxYwsqxiFE0tSC4oTkrPNdIrTswtLs1L10vOz93ECE4kz6R3MK5qsDjEKMDBqMTD+yJxfpAQ a2JZcWXuIUYJDmYlEd5/NUAh3pTEyqrUovz4otKc1OJDjMnAAJjILCWanA9Mcnkl8YbGJmZG lkZmFkYm5uakCSuJ8x5stQ4UEkhPLEnNTk0tSC2C2cLEwSnVwFjDfaf/2gL9xlN7Xzv+P72k 4K3YVZnKTLHolcFt1dcuGPyf35h5Jca6kYXJWsjo4Aqet9pWu/YVf318uDjbfL5p+5zrh678 /7x89uyWpQHXfO4Zq7xTZFz2/uSvsLAyQ8MD0/nWJ6wPbhIrVjz9TuzDTYVVnZXtPE6sJTrx RgtOTPoi/tR+j4ESS3FGoqEWc1FxIgD2JKFMaAMAAA== DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected X-Original-Sender: jg1.han@samsung.com X-Original-Authentication-Results: gmr-mx.google.com; spf=pass (google.com: best guess record for domain of jg1.han@samsung.com designates 203.254.224.33 as permitted sender) smtp.mail=jg1.han@samsung.com Reply-To: rtc-linux@googlegroups.com Precedence: list Mailing-list: list rtc-linux@googlegroups.com; contact rtc-linux+owners@googlegroups.com List-ID: X-Google-Group-Id: 712029733259 List-Post: , List-Help: , List-Archive: Sender: rtc-linux@googlegroups.com List-Subscribe: , List-Unsubscribe: , Content-type: text/plain; charset=ISO-8859-1 Content-language: ko Use devm_*() functions to make cleanup paths simpler, and remove unnecessary remove(). Signed-off-by: Jingoo Han --- drivers/rtc/rtc-twl.c | 38 +++++++++++++------------------------- 1 file changed, 13 insertions(+), 25 deletions(-) diff --git a/drivers/rtc/rtc-twl.c b/drivers/rtc/rtc-twl.c index c2e80d7..1915464 100644 --- a/drivers/rtc/rtc-twl.c +++ b/drivers/rtc/rtc-twl.c @@ -479,7 +479,7 @@ static int twl_rtc_probe(struct platform_device *pdev) u8 rd_reg; if (irq <= 0) - goto out1; + return ret; /* Initialize the register map */ if (twl_class_is_4030()) @@ -489,7 +489,7 @@ static int twl_rtc_probe(struct platform_device *pdev) ret = twl_rtc_read_u8(&rd_reg, REG_RTC_STATUS_REG); if (ret < 0) - goto out1; + return ret; if (rd_reg & BIT_RTC_STATUS_REG_POWER_UP_M) dev_warn(&pdev->dev, "Power up reset detected.\n"); @@ -500,7 +500,7 @@ static int twl_rtc_probe(struct platform_device *pdev) /* Clear RTC Power up reset and pending alarm interrupts */ ret = twl_rtc_write_u8(rd_reg, REG_RTC_STATUS_REG); if (ret < 0) - goto out1; + return ret; if (twl_class_is_6030()) { twl6030_interrupt_unmask(TWL6030_RTC_INT_MASK, @@ -512,7 +512,7 @@ static int twl_rtc_probe(struct platform_device *pdev) dev_info(&pdev->dev, "Enabling TWL-RTC\n"); ret = twl_rtc_write_u8(BIT_RTC_CTRL_REG_STOP_RTC_M, REG_RTC_CTRL_REG); if (ret < 0) - goto out1; + return ret; /* ensure interrupts are disabled, bootloaders can be strange */ ret = twl_rtc_write_u8(0, REG_RTC_INTERRUPTS_REG); @@ -522,34 +522,29 @@ static int twl_rtc_probe(struct platform_device *pdev) /* init cached IRQ enable bits */ ret = twl_rtc_read_u8(&rtc_irq_bits, REG_RTC_INTERRUPTS_REG); if (ret < 0) - goto out1; + return ret; device_init_wakeup(&pdev->dev, 1); - rtc = rtc_device_register(pdev->name, - &pdev->dev, &twl_rtc_ops, THIS_MODULE); + rtc = devm_rtc_device_register(&pdev->dev, pdev->name, + &twl_rtc_ops, THIS_MODULE); if (IS_ERR(rtc)) { - ret = PTR_ERR(rtc); dev_err(&pdev->dev, "can't register RTC device, err %ld\n", PTR_ERR(rtc)); - goto out1; + return PTR_ERR(rtc); } - ret = request_threaded_irq(irq, NULL, twl_rtc_interrupt, - IRQF_TRIGGER_RISING | IRQF_ONESHOT, - dev_name(&rtc->dev), rtc); + ret = devm_request_threaded_irq(&pdev->dev, irq, NULL, + twl_rtc_interrupt, + IRQF_TRIGGER_RISING | IRQF_ONESHOT, + dev_name(&rtc->dev), rtc); if (ret < 0) { dev_err(&pdev->dev, "IRQ is not free.\n"); - goto out2; + return ret; } platform_set_drvdata(pdev, rtc); return 0; - -out2: - rtc_device_unregister(rtc); -out1: - return ret; } /* @@ -559,9 +554,6 @@ out1: static int twl_rtc_remove(struct platform_device *pdev) { /* leave rtc running, but disable irqs */ - struct rtc_device *rtc = platform_get_drvdata(pdev); - int irq = platform_get_irq(pdev, 0); - mask_rtc_irq_bit(BIT_RTC_INTERRUPTS_REG_IT_ALARM_M); mask_rtc_irq_bit(BIT_RTC_INTERRUPTS_REG_IT_TIMER_M); if (twl_class_is_6030()) { @@ -571,10 +563,6 @@ static int twl_rtc_remove(struct platform_device *pdev) REG_INT_MSK_STS_A); } - - free_irq(irq, rtc); - - rtc_device_unregister(rtc); return 0; }