From patchwork Tue Dec 17 06:54:23 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jingoo Han X-Patchwork-Id: 302007 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 9CBE12C007E for ; Tue, 17 Dec 2013 17:54:27 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752074Ab3LQGy1 (ORCPT ); Tue, 17 Dec 2013 01:54:27 -0500 Received: from mailout3.samsung.com ([203.254.224.33]:11881 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752066Ab3LQGy0 (ORCPT ); Tue, 17 Dec 2013 01:54:26 -0500 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 <0MXX00JO7V6O1L80@mailout3.samsung.com> for linux-i2c@vger.kernel.org; Tue, 17 Dec 2013 15:54:24 +0900 (KST) Received: from epcpsbgm1.samsung.com ( [203.254.230.47]) by epcpsbgr3.samsung.com (EPCPMTA) with SMTP id DB.96.05880.025FFA25; Tue, 17 Dec 2013 15:54:24 +0900 (KST) X-AuditID: cbfee68f-b7fe36d0000016f8-be-52aff5200314 Received: from epmmp2 ( [203.254.227.17]) by epcpsbgm1.samsung.com (EPCPMTA) with SMTP id E3.C5.22838.F15FFA25; Tue, 17 Dec 2013 15:54:24 +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 <0MXX005JHV6NLA80@mmp2.samsung.com>; Tue, 17 Dec 2013 15:54:23 +0900 (KST) From: Jingoo Han To: 'Wolfram Sang' Cc: linux-i2c@vger.kernel.org, 'Jingoo Han' References: <001601cefaf3$940d0040$bc2700c0$%han@samsung.com> In-reply-to: <001601cefaf3$940d0040$bc2700c0$%han@samsung.com> Subject: [PATCH 06/13] i2c: pmcmsp: Use devm_*() functions Date: Tue, 17 Dec 2013 15:54:23 +0900 Message-id: <002a01cefaf4$d17ae720$7470b560$%han@samsung.com> MIME-version: 1.0 Content-type: text/plain; charset=us-ascii Content-transfer-encoding: 7bit X-Mailer: Microsoft Office Outlook 12.0 Thread-index: Ac7685PVHbujt8MeRNi0GNiruYn2+wAARfjA Content-language: ko x-cr-hashedpuzzle: Gfqw H6Jm Idmz Mki+ NGXC Pxh3 SCep UF64 UVuS VRTa Yu28 a8G5 gxyh hM2M hYjd kyhd; 3; agBnADEALgBoAGEAbgBAAHMAYQBtAHMAdQBuAGcALgBjAG8AbQA7AGwAaQBuAHUAeAAtAGkAMgBjAEAAdgBnAGUAcgAuAGsAZQByAG4AZQBsAC4AbwByAGcAOwB3AHMAYQBAAHQAaABlAC0AZAByAGUAYQBtAHMALgBkAGUA; Sosha1_v1; 7; {94EF9CA0-4D72-4E3F-A7F1-49A3CE77D397}; agBnADEALgBoAGEAbgBAAHMAYQBtAHMAdQBuAGcALgBjAG8AbQA=; Tue, 17 Dec 2013 06:54:17 GMT; WwBQAEEAVABDAEgAIAAwADYALwAxADMAXQAgAGkAMgBjADoAIABwAG0AYwBtAHMAcAA6ACAAVQBzAGUAIABkAGUAdgBtAF8AKgAoACkAIABmAHUAbgBjAHQAaQBvAG4AcwA= x-cr-puzzleid: {94EF9CA0-4D72-4E3F-A7F1-49A3CE77D397} X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrNIsWRmVeSWpSXmKPExsVy+t8zfV2Fr+uDDB6tYbW4vPASq0XH3y+M FitPzGJ2YPbo27KK0ePkqScsHp83yQUwR3HZpKTmZJalFunbJXBlrFg6m6Xgl0jFhdvbmBsY +wW7GDk5JARMJDa8amWBsMUkLtxbz9bFyMUhJLCMUWLF5PlsMEVnXrWwg9hCAtMZJaadSoAo +sUosf1sN1gRm4CaxJcvh8GKRIDsZx+/MoLYzAKOEkf2foNqtpXoW7kMLM4pYCdxa+EvMFtY wEpi89dbzCA2i4CqxPv1V1hBbF6g+kUdT9ghbEGJH5PvsUDM1JJYv/M4E4QtL7F5zVugXg6g Q9UlHv3VhTjBSGLxh3lQJ4hI7HvxjhHkZgmBBSwSO061s0HUm0pcm14GET/HLtHY8IcF4gYB iW+TD7FA1MhKbDrADAkHSYmDK26wTGCUmoXkollILpqF5KJZSFYvYGRZxSiaWpBcUJyUXmSs V5yYW1yal66XnJ+7iRESsf07GO8esD7EmAy0fiKzlGhyPjDi80riDY3NjCxMTUyNjcwtzUgT VhLnvf8wKUhIID2xJDU7NbUgtSi+qDQntfgQIxMHp1QDY9Y8Nd7axywLvst8iZ2luUVs7auX Jy9eemyuGv5iyzP+lPj19Svfu9+cwbJ5j7pJcdvv6cyTxA/e2Ti/UOW/+rsVpx8v+ZOTpb/E fMXM1+X5XY9DLrkxuFwy1P8dy+tjfZ4teBlnzOaogJkv7GpzP8+Stit7JaEX/7jmcuyDfnON yIkL4nh3ciixFGckGmoxFxUnAgDS+BvW7gIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrBKsWRmVeSWpSXmKPExsVy+t9jQV2Fr+uDDJZOY7S4vPASq0XH3y+M FitPzGJ2YPbo27KK0ePkqScsHp83yQUwRzUw2mSkJqakFimk5iXnp2TmpdsqeQfHO8ebmhkY 6hpaWpgrKeQl5qbaKrn4BOi6ZeYAbVJSKEvMKQUKBSQWFyvp22GaEBripmsB0xih6xsSBNdj ZIAGEtYxZqxYOpul4JdIxYXb25gbGPsFuxg5OSQETCTOvGphh7DFJC7cW88GYgsJTGeUmHYq oYuRC8j+xSix/Ww3WIJNQE3iy5fDYA0iQPazj18ZQWxmAUeJI3u/sUM020r0rVwGFucUsJO4 tfAXmC0sYCWx+estZhCbRUBV4v36K6wgNi9Q/aKOJ+wQtqDEj8n3WCBmakms33mcCcKWl9i8 5i1QLwfQoeoSj/7qQpxgJLH4wzyoE0Qk9r14xwhys4TAAhaJHafa2SDqTSWuTS+bwCgyC8mG WUg2zEKyYRaSUQsYWVYxiqYWJBcUJ6XnGuoVJ+YWl+al6yXn525iBKeDZ1I7GFc2WBxiFOBg VOLh5Zi9PkiINbGsuDL3EKMEB7OSCC9LAVCINyWxsiq1KD++qDQntfgQYzIwACYyS4km5wNT VV5JvKGxiZmRpZGZhZGJuTlpwkrivAdarQOFBNITS1KzU1MLUotgtjBxcEo1MDq6bN2hXtLY Llmy6uQk9vMFTA8yTC7H8ete6Oq+lp/Fd2rasjId+4urf9odefKxRfveU4aJQRsuuliIscvq K01QlX5XdpHhMqP/8Vcbfm/037tDm3UCb+DRuWv59ivut1vSyOG6Rd/j/OplwrwGAenCEzaK i0/8qHG3u7KR/9Pp1j/uUnFRPUosxRmJhlrMRcWJAMxWFrNLAwAA DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected Sender: linux-i2c-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-i2c@vger.kernel.org Use devm_*() functions to make cleanup paths simpler. Signed-off-by: Jingoo Han --- drivers/i2c/busses/i2c-pmcmsp.c | 44 +++++++-------------------------------- 1 file changed, 7 insertions(+), 37 deletions(-) diff --git a/drivers/i2c/busses/i2c-pmcmsp.c b/drivers/i2c/busses/i2c-pmcmsp.c index f6389e2..cfbee76 100644 --- a/drivers/i2c/busses/i2c-pmcmsp.c +++ b/drivers/i2c/busses/i2c-pmcmsp.c @@ -279,34 +279,19 @@ static int pmcmsptwi_probe(struct platform_device *pldev) res = platform_get_resource(pldev, IORESOURCE_MEM, 0); if (!res) { dev_err(&pldev->dev, "IOMEM resource not found\n"); - goto ret_err; + return rc; } - /* reserve the memory region */ - if (!request_mem_region(res->start, resource_size(res), - pldev->name)) { - dev_err(&pldev->dev, - "Unable to get memory/io address region 0x%08x\n", - res->start); - rc = -EBUSY; - goto ret_err; - } - - /* remap the memory */ - pmcmsptwi_data.iobase = ioremap_nocache(res->start, - resource_size(res)); - if (!pmcmsptwi_data.iobase) { - dev_err(&pldev->dev, - "Unable to ioremap address 0x%08x\n", res->start); - rc = -EIO; - goto ret_unreserve; - } + pmcmsptwi_data.iobase = devm_ioremap_resource(&pldev->dev, res); + if (IS_ERR(pmcmsptwi_data.iobase)) + return PTR_ERR(pmcmsptwi_data.iobase); /* request the irq */ pmcmsptwi_data.irq = platform_get_irq(pldev, 0); if (pmcmsptwi_data.irq) { - rc = request_irq(pmcmsptwi_data.irq, &pmcmsptwi_interrupt, - IRQF_SHARED, pldev->name, &pmcmsptwi_data); + rc = devm_request_irq(&pldev->dev, pmcmsptwi_data.irq, + &pmcmsptwi_interrupt, IRQF_SHARED, + pldev->name, &pmcmsptwi_data); if (rc == 0) { /* * Enable 'DONE' interrupt only. @@ -352,15 +337,8 @@ ret_unmap: if (pmcmsptwi_data.irq) { pmcmsptwi_writel(0, pmcmsptwi_data.iobase + MSP_TWI_INT_MSK_REG_OFFSET); - free_irq(pmcmsptwi_data.irq, &pmcmsptwi_data); } - iounmap(pmcmsptwi_data.iobase); - -ret_unreserve: - release_mem_region(res->start, resource_size(res)); - -ret_err: return rc; } @@ -369,21 +347,13 @@ ret_err: */ static int pmcmsptwi_remove(struct platform_device *pldev) { - struct resource *res; - i2c_del_adapter(&pmcmsptwi_adapter); if (pmcmsptwi_data.irq) { pmcmsptwi_writel(0, pmcmsptwi_data.iobase + MSP_TWI_INT_MSK_REG_OFFSET); - free_irq(pmcmsptwi_data.irq, &pmcmsptwi_data); } - iounmap(pmcmsptwi_data.iobase); - - res = platform_get_resource(pldev, IORESOURCE_MEM, 0); - release_mem_region(res->start, resource_size(res)); - return 0; }