From patchwork Tue May 21 06:17:52 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jingoo Han X-Patchwork-Id: 245192 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from mail-pb0-x23f.google.com (mail-pb0-x23f.google.com [IPv6:2607:f8b0:400e:c01::23f]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority" (not verified)) by ozlabs.org (Postfix) with ESMTPS id EB6642C00B3 for ; Tue, 21 May 2013 16:17:56 +1000 (EST) Received: by mail-pb0-f63.google.com with SMTP id ma3sf80280pbc.8 for ; Mon, 20 May 2013 23:17:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20120806; h=x-beenthere:x-auditid:from:to:cc:subject:date:message-id :mime-version:x-mailer:thread-index:x-brightmail-tracker :x-brightmail-tracker:dlp-filter:x-mtr:x-cfilter-loop :x-original-sender:x-original-authentication-results:reply-to :precedence:mailing-list:list-id:x-google-group-id:list-post :list-help:list-archive:sender:list-subscribe:list-unsubscribe :content-type:content-language; bh=Q38+hre8y7kN7G9Y2bHAF8lEO5DqvrJDBAUlJ38M5y8=; b=KJdj4ArEBJ/MieVBIrmyxaDXjHMpg+YQD+3hHvQnOiCIeSFBNEivYMSTw7z5K1JU7K ZwjcXJ5gbvx9dTE59G/83QwP0Cm6DpVSsUHOOTIipcBTVGgJRUufXf3v1W80EEswP5gW AXyOPQj85tghRemXWhuTabzF8Og+hQFNFWyx5fYPdXmPCMhbQ3K2Z3TZVfA1/0NDBQt6 2icMJ8LKCKBAarj4mAhcAsc3sVEnWP5fDhLtN2HEbP8TVfegFYJ0erYIbI1jZKa7szq4 4Ou+so6gbTm5d3jFS5lhVGEA1R9N9iUbg/gOpPqZahb3eCs0S5IJZaeRA351gsV6yvPt rfqw== X-Received: by 10.50.36.99 with SMTP id p3mr1377906igj.4.1369117074729; Mon, 20 May 2013 23:17:54 -0700 (PDT) X-BeenThere: rtc-linux@googlegroups.com Received: by 10.50.112.71 with SMTP id io7ls268609igb.3.gmail; Mon, 20 May 2013 23:17:54 -0700 (PDT) X-Received: by 10.66.251.163 with SMTP id zl3mr136374pac.39.1369117074456; Mon, 20 May 2013 23:17:54 -0700 (PDT) Received: from mailout3.samsung.com (mailout3.samsung.com. [203.254.224.33]) by gmr-mx.google.com with ESMTP id cw1si179322pbb.0.2013.05.20.23.17.54 for ; Mon, 20 May 2013 23:17:54 -0700 (PDT) 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 epcpsbgr5.samsung.com (u145.gpu120.samsung.co.kr [203.254.230.145]) by mailout3.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0MN400J1GXHBD7Q0@mailout3.samsung.com> for rtc-linux@googlegroups.com; Tue, 21 May 2013 15:17:53 +0900 (KST) Received: from epcpsbgm1.samsung.com ( [203.254.230.50]) by epcpsbgr5.samsung.com (EPCPMTA) with SMTP id 58.69.11618.0911B915; Tue, 21 May 2013 15:17:52 +0900 (KST) X-AuditID: cbfee691-b7fef6d000002d62-52-519b1190fef5 Received: from epmmp1.local.host ( [203.254.227.16]) by epcpsbgm1.samsung.com (EPCPMTA) with SMTP id 16.80.16109.0911B915; Tue, 21 May 2013 15:17:52 +0900 (KST) Received: from DOJG1HAN03 ([12.23.120.99]) by mmp1.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0MN400FURXHSPE70@mmp1.samsung.com>; Tue, 21 May 2013 15:17:52 +0900 (KST) From: Jingoo Han To: 'Andrew Morton' Cc: linux-kernel@vger.kernel.org, 'Alessandro Zummo' , rtc-linux@googlegroups.com, Jingoo Han Subject: [rtc-linux] [PATCH 5/8] rtc: rtc-pm8xxx: use devm_*() functions Date: Tue, 21 May 2013 15:17:52 +0900 Message-id: <000801ce55ea$ecdba950$c692fbf0$@samsung.com> MIME-version: 1.0 X-Mailer: Microsoft Outlook 14.0 Thread-index: Ac5V6uwySmVn3U0XRZm0AWXxq1bX5g== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrAIsWRmVeSWpSXmKPExsVy+t8zI90JgrMDDabf17RYcvEqu8Wc9WvY LC4vvMRqcXnXHDaL/Z0djA6sHnsmnmTzODHjN4tH35ZVjB7T5/1k8vi8SS6ANYrLJiU1J7Ms tUjfLoErY/uWrSwFi6QqPm48wNTAuFa0i5GDQ0LARGL6Hf4uRk4gU0ziwr31bF2MXBxCAssY JXauuMAIkTCR2L7vDjtEYhGjxM322awQzi9GiZPXmllBqtgE1CS+fDnMDjJVREBfoq1FA6SG WaCbUeJR81xmkBphARuJYzf3sYHYLAKqEhuOfWAHsXkFLCXevH3DCmELSvyYfI8FxGYW0JJY v/M4E4QtL7F5zVtmiIsUJHacfQ12nYiAnsTbY5tYIWpEJPa9eMcIslhC4BS7xPE1D9khlglI fJt8iAXiZVmJTQeg5khKHFxxg2UCo9gsJKtnIVk9C8nqWUhWLGBkWcUomlqQXFCclF5kqlec mFtcmpeul5yfu4kREnsTdzDeP2B9iDEZaP1EZinR5Hxg7OaVxBsamxlZmJqYGhuZW5qRJqwk zqveYh0oJJCeWJKanZpakFoUX1Sak1p8iJGJg1OqgTFlaUl26gIdzqLnRRtM3RfbSd4oPulW aug75Z22tbW97dHG+BDnCq2OgxxHegQ4ny2fMfPF64k9JdxqiqtUJpgpFr3p37/VxHll9GTe 6Zbfz23grjO4zuJzJO19Z3juvMfMa3JYYrY57z1tK5y+NUS3M7L2oujWP44eC0z3TnG4PFnZ mXv6SyWW4oxEQy3mouJEAK+4BCbTAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprHKsWRmVeSWpSXmKPExsVy+t9jAd0JgrMDDc6/V7VYcvEqu8Wc9WvY LC4vvMRqcXnXHDaL/Z0djA6sHnsmnmTzODHjN4tH35ZVjB7T5/1k8vi8SS6ANaqB0SYjNTEl tUghNS85PyUzL91WyTs43jne1MzAUNfQ0sJcSSEvMTfVVsnFJ0DXLTMHaLuSQlliTilQKCCx uFhJ3w7ThNAQN10LmMYIXd+QILgeIwM0kLCOMWP7lq0sBYukKj5uPMDUwLhWtIuRk0NCwERi +7477BC2mMSFe+vZuhi5OIQEFjFK3GyfzQrh/GKUOHmtmRWkik1ATeLLl8NAHRwcIgL6Em0t GiA1zALdjBKPmucyg9QIC9hIHLu5jw3EZhFQldhw7APYBl4BS4k3b9+wQtiCEj8m32MBsZkF tCTW7zzOBGHLS2xe85YZ4iIFiR1nXzOC2CICehJvj21ihagRkdj34h3jBEaBWUhGzUIyahaS UbOQtCxgZFnFKJpakFxQnJSea6hXnJhbXJqXrpecn7uJERzbz6R2MK5ssDjEKMDBqMTDK2A4 K1CINbGsuDL3EKMEB7OSCO/3ZqAQb0piZVVqUX58UWlOavEhxmSgTycyS4km5wPTTl5JvKGx iZmRpZGZhZGJuTlpwkrivAdarQOFBNITS1KzU1MLUotgtjBxcEo1MIZdmFSWW3bZZrvbpdya PaKer1YcOLDh9U+TxIszLBacz1lmcGvWrjxWbus645gHrwJzT1vkhlscfyZ4W0Fhu2q8+MP3 k7YF5lyTqtCdqLlvhYDI37Qp1z0udroo3jlUdJLh/d2Tpdt/KJxIqSjme1v9OuH/uf0ir25n V/Rd/ygzr7RA3YaJl0mJpTgj0VCLuag4EQAxKzpUMQMAAA== 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. Signed-off-by: Jingoo Han --- drivers/rtc/rtc-pm8xxx.c | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/drivers/rtc/rtc-pm8xxx.c b/drivers/rtc/rtc-pm8xxx.c index 14ee860..03f8f75 100644 --- a/drivers/rtc/rtc-pm8xxx.c +++ b/drivers/rtc/rtc-pm8xxx.c @@ -395,7 +395,7 @@ static int pm8xxx_rtc_probe(struct platform_device *pdev) if (pdata != NULL) rtc_write_enable = pdata->rtc_write_enable; - rtc_dd = kzalloc(sizeof(*rtc_dd), GFP_KERNEL); + rtc_dd = devm_kzalloc(&pdev->dev, sizeof(*rtc_dd), GFP_KERNEL); if (rtc_dd == NULL) { dev_err(&pdev->dev, "Unable to allocate memory!\n"); return -ENOMEM; @@ -407,16 +407,14 @@ static int pm8xxx_rtc_probe(struct platform_device *pdev) rtc_dd->rtc_alarm_irq = platform_get_irq(pdev, 0); if (rtc_dd->rtc_alarm_irq < 0) { dev_err(&pdev->dev, "Alarm IRQ resource absent!\n"); - rc = -ENXIO; - goto fail_rtc_enable; + return -ENXIO; } rtc_resource = platform_get_resource_byname(pdev, IORESOURCE_IO, "pmic_rtc_base"); if (!(rtc_resource && rtc_resource->start)) { dev_err(&pdev->dev, "RTC IO resource absent!\n"); - rc = -ENXIO; - goto fail_rtc_enable; + return -ENXIO; } rtc_dd->rtc_base = rtc_resource->start; @@ -432,7 +430,7 @@ static int pm8xxx_rtc_probe(struct platform_device *pdev) rc = pm8xxx_read_wrapper(rtc_dd, &ctrl_reg, rtc_dd->rtc_base, 1); if (rc < 0) { dev_err(&pdev->dev, "RTC control register read failed!\n"); - goto fail_rtc_enable; + return rc; } if (!(ctrl_reg & PM8xxx_RTC_ENABLE)) { @@ -442,7 +440,7 @@ static int pm8xxx_rtc_probe(struct platform_device *pdev) if (rc < 0) { dev_err(&pdev->dev, "Write to RTC control register " "failed\n"); - goto fail_rtc_enable; + return rc; } } @@ -453,13 +451,12 @@ static int pm8xxx_rtc_probe(struct platform_device *pdev) platform_set_drvdata(pdev, rtc_dd); /* Register the RTC device */ - rtc_dd->rtc = rtc_device_register("pm8xxx_rtc", &pdev->dev, + rtc_dd->rtc = devm_rtc_device_register(&pdev->dev, "pm8xxx_rtc", &pm8xxx_rtc_ops, THIS_MODULE); if (IS_ERR(rtc_dd->rtc)) { dev_err(&pdev->dev, "%s: RTC registration failed (%ld)\n", __func__, PTR_ERR(rtc_dd->rtc)); - rc = PTR_ERR(rtc_dd->rtc); - goto fail_rtc_enable; + return PTR_ERR(rtc_dd->rtc); } /* Request the alarm IRQ */ @@ -468,7 +465,7 @@ static int pm8xxx_rtc_probe(struct platform_device *pdev) "pm8xxx_rtc_alarm", rtc_dd); if (rc < 0) { dev_err(&pdev->dev, "Request IRQ failed (%d)\n", rc); - goto fail_req_irq; + return rc; } device_init_wakeup(&pdev->dev, 1); @@ -476,12 +473,6 @@ static int pm8xxx_rtc_probe(struct platform_device *pdev) dev_dbg(&pdev->dev, "Probe success !!\n"); return 0; - -fail_req_irq: - rtc_device_unregister(rtc_dd->rtc); -fail_rtc_enable: - kfree(rtc_dd); - return rc; } static int pm8xxx_rtc_remove(struct platform_device *pdev) @@ -490,8 +481,6 @@ static int pm8xxx_rtc_remove(struct platform_device *pdev) device_init_wakeup(&pdev->dev, 0); free_irq(rtc_dd->rtc_alarm_irq, rtc_dd); - rtc_device_unregister(rtc_dd->rtc); - kfree(rtc_dd); return 0; }