From patchwork Thu Dec 26 01:44:59 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jingoo Han X-Patchwork-Id: 305155 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from casper.infradead.org (unknown [IPv6:2001:770:15f::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id D55872C009C for ; Thu, 26 Dec 2013 12:45:39 +1100 (EST) Received: from merlin.infradead.org ([2001:4978:20e::2]) by casper.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1Vw010-0007zC-4e; Thu, 26 Dec 2013 01:45:34 +0000 Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1Vw00y-0002IL-JU; Thu, 26 Dec 2013 01:45:32 +0000 Received: from mailout1.samsung.com ([203.254.224.24]) by merlin.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1Vw00v-0002HS-8t for linux-mtd@lists.infradead.org; Thu, 26 Dec 2013 01:45:30 +0000 Received: from epcpsbgr5.samsung.com (u145.gpu120.samsung.co.kr [203.254.230.145]) by mailout1.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0MYE000GK4V07V90@mailout1.samsung.com> for linux-mtd@lists.infradead.org; Thu, 26 Dec 2013 10:45:00 +0900 (KST) Received: from epcpsbgm2.samsung.com ( [203.254.230.49]) by epcpsbgr5.samsung.com (EPCPMTA) with SMTP id E7.78.14803.C1A8BB25; Thu, 26 Dec 2013 10:45:00 +0900 (KST) X-AuditID: cbfee691-b7efc6d0000039d3-2f-52bb8a1c2c23 Received: from epmmp2 ( [203.254.227.17]) by epcpsbgm2.samsung.com (EPCPMTA) with SMTP id 6E.48.28157.B1A8BB25; Thu, 26 Dec 2013 10:44:59 +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 <0MYE00JDL4UZ2M00@mmp2.samsung.com>; Thu, 26 Dec 2013 10:44:59 +0900 (KST) From: Jingoo Han To: 'Brian Norris' References: <007901cf01db$8362f580$8a28e080$%han@samsung.com> In-reply-to: <007901cf01db$8362f580$8a28e080$%han@samsung.com> Subject: [PATCH V3 6/8] mtd: nuc900_nand: Use devm_*() functions Date: Thu, 26 Dec 2013 10:44:59 +0900 Message-id: <007e01cf01dc$16708720$43519560$%han@samsung.com> MIME-version: 1.0 X-Mailer: Microsoft Office Outlook 12.0 Thread-index: Ac8B24NMnmT2jqUVQHWbCuObShK78AAAH5lg Content-language: ko x-cr-hashedpuzzle: BbIm Hnh1 J9QO MfQ5 Pxjo R2hz VClQ VJG2 XBGk ZtwX cMDJ g4u3 tAPK uUch u5/2 1Iyz; 5; YwBvAG0AcAB1AHQAZQByAHMAZgBvAHIAcABlAGEAYwBlAEAAZwBtAGEAaQBsAC4AYwBvAG0AOwBkAHcAbQB3ADIAQABpAG4AZgByAGEAZABlAGEAZAAuAG8AcgBnADsAagBnADEALgBoAGEAbgBAAHMAYQBtAHMAdQBuAGcALgBjAG8AbQA7AGwAaQBuAHUAeAAtAG0AdABkAEAAbABpAHMAdABzAC4AaQBuAGYAcgBhAGQAZQBhAGQALgBvAHIAZwA7AG0AYwB1AG8AcwAuAGMAbwBtAEAAZwBtAGEAaQBsAC4AYwBvAG0A; Sosha1_v1; 7; {955536F3-FDE3-430D-9F0E-FB0041580A03}; agBnADEALgBoAGEAbgBAAHMAYQBtAHMAdQBuAGcALgBjAG8AbQA=; Thu, 26 Dec 2013 01:44:51 GMT; WwBQAEEAVABDAEgAIABWADMAIAA2AC8AOABdACAAbQB0AGQAOgAgAG4AdQBjADkAMAAwAF8AbgBhAG4AZAA6ACAAVQBzAGUAIABkAGUAdgBtAF8AKgAoACkAIABmAHUAbgBjAHQAaQBvAG4AcwA= x-cr-puzzleid: {955536F3-FDE3-430D-9F0E-FB0041580A03} X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrJIsWRmVeSWpSXmKPExsVy+t8zQ12Zrt1BBh8uMFscubCW2WLiysnM FpcXXmK12N20jN3i6fQ6B1aPnbPusntsXqHlsXlJvUffllWMASxRXDYpqTmZZalF+nYJXBlL Xt1jKjglXjH17ATmBsYDwl2MnBwSAiYSGzs/M0LYYhIX7q1n62Lk4hASWMYo8fDkdSaYos9t 19ghEtMZJV6cW8wM4fxilOjd95YZpIpNQE3iy5fDQFUcHCICBhI/3mSC1DALTGOU+LJ2DhtI jZCArcSn9RtZQWxOATuJC01f2UFsYQEHiZcHT4LZLAKqEouftIHZvED1nzc+hLIFJX5MvscC YjMLaEms33mcCcKWl9i8BuQGDqBL1SUe/dUFCYsIGEksW/2XEaJERGLfi3eMIPdICBxglbjz fhdUvanEu/XFEPGP7BLbntxghLhBQOLb5EMsEDWyEpsOMEMCQlLi4IobLBMYpWYhuWgWkotm IbloFpLVCxhZVjGKphYkFxQnpReZ6hUn5haX5qXrJefnbmKERPPEHYz3D1gfYkwGWj+RWUo0 OR+YDPJK4g2NzYwsTE1MjY3MLc1IE1YS501/lBQkJJCeWJKanZpakFoUX1Sak1p8iJGJg1Oq gdF9YY6917W8qPeBrOfOzF9r8G/6uctnFv7WsHxV5h6y7Gboj6UpZ2SeLOJ1//OHR3f/1YXL ujqu3tzG9a+gIOf3nUynyVn8e17fvMYRY+JcXr/+9eHiN1beN807nbnevy4MabmypPB/xrVd ZRs/FrN1bb6Qc+LBs1LhipulV1p3XN/1Y/vBTz+PK7EUZyQaajEXFScCAAFV7n78AgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrGKsWRmVeSWpSXmKPExsVy+t9jQV3prt1BBise21gcubCW2WLiysnM FpcXXmK12N20jN3i6fQ6B1aPnbPusntsXqHlsXlJvUffllWMASxRDYw2GamJKalFCql5yfkp mXnptkrewfHO8aZmBoa6hpYW5koKeYm5qbZKLj4Bum6ZOUBrlRTKEnNKgUIBicXFSvp2mCaE hrjpWsA0Ruj6hgTB9RgZoIGEdYwZS17dYyo4JV4x9ewE5gbGA8JdjJwcEgImEp/brrFD2GIS F+6tZ+ti5OIQEpjOKPHi3GJmCOcXo0TvvrfMIFVsAmoSX74cBurg4BARMJD48SYTpIZZYBqj xJe1c9hAaoQEbCU+rd/ICmJzCthJXGj6CrZBWMBB4uXBk2A2i4CqxOInbWA2L1D9540PoWxB iR+T77GA2MwCWhLrdx5ngrDlJTavAbmBA+hSdYlHf3VBwiICRhLLVv9lhCgRkdj34h0jyD0S AgdYJe683wVVbyrxbn3xBEaRWUg2zEKyYRaSDbOQjFrAyLKKUTS1ILmgOCk910ivODG3uDQv XS85P3cTIzhVPJPewbiqweIQowAHoxIPb4fu7iAh1sSy4srcQ4wSHMxKIryBTUAh3pTEyqrU ovz4otKc1OJDjMnAAJjILCWanA9MY3kl8YbGJmZGlkZmFkYm5uakCSuJ8x5stQ4UEkhPLEnN Tk0tSC2C2cLEwSnVwLhRWirNRDx76hYuttcnPjp+eaX/5t/qCRZeCWp22WfDi4NMp5mtDXXi btjc97772polG56snyRWKcnFmnMzf0ZVgPvvzDN3j1RI7r704vQGTgYNpju6U4IFzypyV+ms eB8v4X348sZS0YS/mikLjGczZ71QvrigJKJDJS38aXtO9/FPWkqTLiqxFGckGmoxFxUnAgBh gMvAWQMAAA== DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20131225_204529_562120_E10923B3 X-CRM114-Status: UNSURE ( 9.75 ) X-CRM114-Notice: Please train this message. X-Spam-Score: -7.5 (-------) X-Spam-Report: SpamAssassin version 3.3.2 on merlin.infradead.org summary: Content analysis details: (-7.5 points) pts rule name description ---- ---------------------- -------------------------------------------------- -5.0 RCVD_IN_DNSWL_HI RBL: Sender listed at http://www.dnswl.org/, high trust [203.254.224.24 listed in list.dnswl.org] -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.6 RP_MATCHES_RCVD Envelope sender domain matches handover relay domain -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] Cc: linux-mtd@lists.infradead.org, 'Jingoo Han' , 'David Woodhouse' , 'Wan ZongShun' X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org Use devm_*() functions to make cleanup paths simpler. Signed-off-by: Jingoo Han --- No change since v2. drivers/mtd/nand/nuc900_nand.c | 55 ++++++++++------------------------------ 1 file changed, 13 insertions(+), 42 deletions(-) diff --git a/drivers/mtd/nand/nuc900_nand.c b/drivers/mtd/nand/nuc900_nand.c index 5211515..661fd14 100644 --- a/drivers/mtd/nand/nuc900_nand.c +++ b/drivers/mtd/nand/nuc900_nand.c @@ -241,12 +241,10 @@ static int nuc900_nand_probe(struct platform_device *pdev) { struct nuc900_nand *nuc900_nand; struct nand_chip *chip; - int retval; struct resource *res; - retval = 0; - - nuc900_nand = kzalloc(sizeof(struct nuc900_nand), GFP_KERNEL); + nuc900_nand = devm_kzalloc(&pdev->dev, sizeof(struct nuc900_nand), + GFP_KERNEL); if (!nuc900_nand) return -ENOMEM; chip = &(nuc900_nand->chip); @@ -255,11 +253,9 @@ static int nuc900_nand_probe(struct platform_device *pdev) nuc900_nand->mtd.owner = THIS_MODULE; spin_lock_init(&nuc900_nand->lock); - nuc900_nand->clk = clk_get(&pdev->dev, NULL); - if (IS_ERR(nuc900_nand->clk)) { - retval = -ENOENT; - goto fail1; - } + nuc900_nand->clk = devm_clk_get(&pdev->dev, NULL); + if (IS_ERR(nuc900_nand->clk)) + return -ENOENT; clk_enable(nuc900_nand->clk); chip->cmdfunc = nuc900_nand_command_lp; @@ -272,57 +268,32 @@ static int nuc900_nand_probe(struct platform_device *pdev) chip->ecc.mode = NAND_ECC_SOFT; res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (!res) { - retval = -ENXIO; - goto fail1; - } + if (!res) + return -ENXIO; - if (!request_mem_region(res->start, resource_size(res), pdev->name)) { - retval = -EBUSY; - goto fail1; - } - - nuc900_nand->reg = ioremap(res->start, resource_size(res)); - if (!nuc900_nand->reg) { - retval = -ENOMEM; - goto fail2; - } + nuc900_nand->reg = devm_ioremap_resource(&pdev->dev, res); + if (IS_ERR(nuc900_nand->reg)) + return PTR_ERR(nuc900_nand->reg); nuc900_nand_enable(nuc900_nand); - if (nand_scan(&(nuc900_nand->mtd), 1)) { - retval = -ENXIO; - goto fail3; - } + if (nand_scan(&(nuc900_nand->mtd), 1)) + return -ENXIO; mtd_device_register(&(nuc900_nand->mtd), partitions, ARRAY_SIZE(partitions)); platform_set_drvdata(pdev, nuc900_nand); - return retval; - -fail3: iounmap(nuc900_nand->reg); -fail2: release_mem_region(res->start, resource_size(res)); -fail1: kfree(nuc900_nand); - return retval; + return 0; } static int nuc900_nand_remove(struct platform_device *pdev) { struct nuc900_nand *nuc900_nand = platform_get_drvdata(pdev); - struct resource *res; nand_release(&nuc900_nand->mtd); - iounmap(nuc900_nand->reg); - - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - release_mem_region(res->start, resource_size(res)); - clk_disable(nuc900_nand->clk); - clk_put(nuc900_nand->clk); - - kfree(nuc900_nand); return 0; }