From patchwork Fri Dec 20 07:34:06 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jingoo Han X-Patchwork-Id: 303927 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 D08712C0227 for ; Fri, 20 Dec 2013 18:35:02 +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 1Vtubd-0007GW-AX; Fri, 20 Dec 2013 07:34:45 +0000 Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1VtubP-00016p-W6; Fri, 20 Dec 2013 07:34: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 1VtubN-00014d-5J for linux-mtd@lists.infradead.org; Fri, 20 Dec 2013 07:34:30 +0000 Received: from epcpsbgr3.samsung.com (u143.gpu120.samsung.co.kr [203.254.230.143]) by mailout1.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0MY300I5PH0U9910@mailout1.samsung.com> for linux-mtd@lists.infradead.org; Fri, 20 Dec 2013 16:34:07 +0900 (KST) Received: from epcpsbgm2.samsung.com ( [203.254.230.50]) by epcpsbgr3.samsung.com (EPCPMTA) with SMTP id 27.18.10092.EE2F3B25; Fri, 20 Dec 2013 16:34:06 +0900 (KST) X-AuditID: cbfee68f-b7f156d00000276c-82-52b3f2eefc6b Received: from epmmp1.local.host ( [203.254.227.16]) by epcpsbgm2.samsung.com (EPCPMTA) with SMTP id CB.15.28157.EE2F3B25; Fri, 20 Dec 2013 16:34:06 +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 <0MY300JBKH0UC410@mmp1.samsung.com>; Fri, 20 Dec 2013 16:34:06 +0900 (KST) From: Jingoo Han To: 'Brian Norris' References: <000d01cefd55$7e48a2a0$7ad9e7e0$%han@samsung.com> In-reply-to: <000d01cefd55$7e48a2a0$7ad9e7e0$%han@samsung.com> Subject: [PATCH V2 6/8] mtd: nuc900_nand: Use devm_*() functions Date: Fri, 20 Dec 2013 16:34:06 +0900 Message-id: <001301cefd55$dd525110$97f6f330$%han@samsung.com> MIME-version: 1.0 X-Mailer: Microsoft Office Outlook 12.0 Thread-index: Ac79VX4zfOEDhlMqR4WYmWacubn25QAAEcSQ Content-language: ko x-cr-hashedpuzzle: Bech EZIA EpJg G8RJ Mm50 TkFx Y5A4 ZoL5 arpa kAU4 qZ8C rcBi zs/e 29qn 3zeh 7TKf; 5; YwBvAG0AcAB1AHQAZQByAHMAZgBvAHIAcABlAGEAYwBlAEAAZwBtAGEAaQBsAC4AYwBvAG0AOwBkAHcAbQB3ADIAQABpAG4AZgByAGEAZABlAGEAZAAuAG8AcgBnADsAagBnADEALgBoAGEAbgBAAHMAYQBtAHMAdQBuAGcALgBjAG8AbQA7AGwAaQBuAHUAeAAtAG0AdABkAEAAbABpAHMAdABzAC4AaQBuAGYAcgBhAGQAZQBhAGQALgBvAHIAZwA7AG0AYwB1AG8AcwAuAGMAbwBtAEAAZwBtAGEAaQBsAC4AYwBvAG0A; Sosha1_v1; 7; {54B5AEDC-DFA0-4C66-90F6-3B2FCD4C917F}; agBnADEALgBoAGEAbgBAAHMAYQBtAHMAdQBuAGcALgBjAG8AbQA=; Fri, 20 Dec 2013 07:33:57 GMT; WwBQAEEAVABDAEgAIABWADIAIAA2AC8AOABdACAAbQB0AGQAOgAgAG4AdQBjADkAMAAwAF8AbgBhAG4AZAA6ACAAVQBzAGUAIABkAGUAdgBtAF8AKgAoACkAIABmAHUAbgBjAHQAaQBvAG4AcwA= x-cr-puzzleid: {54B5AEDC-DFA0-4C66-90F6-3B2FCD4C917F} X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrFIsWRmVeSWpSXmKPExsVy+t8zI913nzYHGcyebWFx5MJaZouJKycz W1xeeInVYnfTMnaLp9PrHFg9ds66y+6xeYWWx+Yl9R59W1YxBrBEcdmkpOZklqUW6dslcGVM 2dzDUnBKvOLItS+sDYwHhLsYOTkkBEwkevs+s0HYYhIX7q0Hsrk4hASWMUqsmTGLDaboaM9+ FojEIkaJzYe+MkE4vxglJvdvZwWpYhNQk/jy5TB7FyMHh4iAgcSPN5kgNcwC0xglvqydAzZJ SMBW4tzZR+wgNqeAncSypctYQGxhAQeJaR9uM4LYLAKqEpP+LQWr4QWqf3PjICuELSjxY/I9 sHpmAS2J9TuPM0HY8hKb17xlBtkrIaAu8eivLkhYRMBIYnV3L1S5iMS+F+8YQe6REDjAKrGt Zw0zxGemEpPuLWGDSHxllzi8/wsrxBECEt8mH2KBGCorsekAVL2kxMEVN1gmMErNQnLSLCQn zUJy0iwkuxcwsqxiFE0tSC4oTkovMtYrTswtLs1L10vOz93ECInn/h2Mdw9YH2JMBlo/kVlK NDkfmA7ySuINjc2MLExNTI2NzC3NSBNWEue9/zApSEggPbEkNTs1tSC1KL6oNCe1+BAjEwen VAOj7J3f2h/nbvzT5nuW/5NM0lum8yy7VsWIfxT8upFPfl7j7gRHg0ulRy+LCfqbWRc2aLMV l2qJfX/YslUt+rvqyYZpXdneelXz3dbuWOx+4NeSE1veNX/ichTMtWlZKZG7O+TNss52g62T aky+hN54sJxDgW1h9k+l3pmhwXNSBSv04t77rzqqxFKckWioxVxUnAgA7rOjpv0CAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrOKsWRmVeSWpSXmKPExsVy+t9jAd13nzYHGUycZGJx5MJaZouJKycz W1xeeInVYnfTMnaLp9PrHFg9ds66y+6xeYWWx+Yl9R59W1YxBrBENTDaZKQmpqQWKaTmJeen ZOal2yp5B8c7x5uaGRjqGlpamCsp5CXmptoqufgE6Lpl5gCtVVIoS8wpBQoFJBYXK+nbYZoQ GuKmawHTGKHrGxIE12NkgAYS1jFmTNncw1JwSrziyLUvrA2MB4S7GDk5JARMJI727GeBsMUk Ltxbz9bFyMUhJLCIUWLzoa9MEM4vRonJ/dtZQarYBNQkvnw5zN7FyMEhImAg8eNNJkgNs8A0 Rokva+ewgdQICdhKnDv7iB3E5hSwk1i2dBnYBmEBB4lpH24zgtgsAqoSk/4tBavhBap/c+Mg K4QtKPFj8j2wemYBLYn1O48zQdjyEpvXvGUG2SshoC7x6K8uSFhEwEhidXcvVLmIxL4X7xhB 7pEQOMAqsa1nDTPEZ6YSk+4tYZvAKDILyYpZSFbMQrJiFpJZCxhZVjGKphYkFxQnpeca6RUn 5haX5qXrJefnbmIEJ4tn0jsYVzVYHGIU4GBU4uEt0N8cJMSaWFZcmXuIUYKDWUmEl+M5UIg3 JbGyKrUoP76oNCe1+BBjMjAEJjJLiSbnAxNZXkm8obGJmZGlkZmFkYm5OWnCSuK8B1utA4UE 0hNLUrNTUwtSi2C2MHFwSjUwMiz4mzm9ff2u19uWVGaK+k/sWfvJdUrHFP0vGuenxwbtvB5Z Oomdtdn8b++pz6sPVzGEuL6deD3O9du0lP9mDx9Fr4ievdejeU+nrsumo/fLnnsfWDnjcYBk n+8bmQ7GlX76aV1fH8V07yiRjO4TldyvkGQtnGb6Y/72w/N+zQpX7XTTrrBrUWIpzkg01GIu Kk4EAACx+rBaAwAA 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-20131220_023429_466397_46BC78E7 X-CRM114-Status: UNSURE ( 9.69 ) X-CRM114-Notice: Please train this message. X-Spam-Score: -7.4 (-------) X-Spam-Report: SpamAssassin version 3.3.2 on merlin.infradead.org summary: Content analysis details: (-7.4 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.5 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 v1. 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; }