From patchwork Tue Dec 17 06:48:19 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jingoo Han X-Patchwork-Id: 302002 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 C406E2C007E for ; Tue, 17 Dec 2013 17:48:23 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752066Ab3LQGsX (ORCPT ); Tue, 17 Dec 2013 01:48:23 -0500 Received: from mailout3.samsung.com ([203.254.224.33]:10331 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751719Ab3LQGsW (ORCPT ); Tue, 17 Dec 2013 01:48:22 -0500 Received: from epcpsbgr2.samsung.com (u142.gpu120.samsung.co.kr [203.254.230.142]) by mailout3.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0MXX00IP3UWKPE80@mailout3.samsung.com> for linux-i2c@vger.kernel.org; Tue, 17 Dec 2013 15:48:20 +0900 (KST) Received: from epcpsbgm1.samsung.com ( [203.254.230.47]) by epcpsbgr2.samsung.com (EPCPMTA) with SMTP id 17.B4.06250.4B3FFA25; Tue, 17 Dec 2013 15:48:20 +0900 (KST) X-AuditID: cbfee68e-b7fb46d00000186a-7c-52aff3b353df Received: from epmmp2 ( [203.254.227.17]) by epcpsbgm1.samsung.com (EPCPMTA) with SMTP id CE.24.22838.3B3FFA25; Tue, 17 Dec 2013 15:48:19 +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 <0MXX0058BUWJLA70@mmp2.samsung.com>; Tue, 17 Dec 2013 15:48:19 +0900 (KST) From: Jingoo Han To: 'Wolfram Sang' Cc: linux-i2c@vger.kernel.org, 'Jingoo Han' , 'Haavard Skinnemoen' , 'Bo Shen' References: <001601cefaf3$940d0040$bc2700c0$%han@samsung.com> In-reply-to: <001601cefaf3$940d0040$bc2700c0$%han@samsung.com> Subject: [PATCH 02/13] i2c: gpio: Use devm_gpio_request() Date: Tue, 17 Dec 2013 15:48:19 +0900 Message-id: <001e01cefaf3$f8b520e0$ea1f62a0$%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+wAACRhQ Content-language: ko X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrNIsWRmVeSWpSXmKPExsVy+t8zfd0tn9cHGaw4y2Tx8pCmxY+vzSwW lxdeYrXo+PuF0WLitK2MFitPzGJ2YPNY8Gsri8fOWXfZPfq2rGL0OHnqCYvH501yAaxRXDYp qTmZZalF+nYJXBlztxsXXOOv2PXkIEsD4wmeLkZODgkBE4mt7ZPZIWwxiQv31rN1MXJxCAks Y5Q4Ne0MUxcjB1jRj3VVEPHpjBILjs1lgXB+MUo0TdzJDNLNJqAm8eXLYbBJIkD2s49fGUGK mAUmM0rcf/qBCSQhJGAr0bdyGSOIzSlgJ3Fr4S8wW1jAUmLC3nVgNSwCqhI3vpwDi/MC1c9e M50ZwhaU+DH5HguIzSygJbF+53EmCFteYvOat8wQl6pLPPqrC3GDkcSN6c9YIUpEJPa9eAd2 j4TAI3aJK0uOQO0SkPg2+RALRK+sxKYDzJCQkJQ4uOIGywRGiVlINs9CsnkWks2zkKxYwMiy ilE0tSC5oDgpvchIrzgxt7g0L10vOT93EyMkYvt2MN48YH2IMRlo/URmKdHkfGDE55XEGxqb GVmYmpgaG5lbmpEmrCTOu+hhUpCQQHpiSWp2ampBalF8UWlOavEhRiYOTqkGRo5jlkaeJwuX M4v1tL+c80L/tnpw+IFsgf+CTBv2O2gd1DROkMh5lPN3tVR0nYVnaoVvse6f59XccvdnnH0R XB7jmh01ce/U2R/9zOcWtd04wV4keGfl04Y0v8ztCz7E3d58Nenraf8dj2Y/Fz31Y9l51UM1 FbmhEoGTVrFyzL2yPOpG5P9r3UosxRmJhlrMRcWJAJqhLIjuAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrBKsWRmVeSWpSXmKPExsVy+t9jQd3Nn9cHGVzps7Z4eUjT4sfXZhaL ywsvsVp0/P3CaDFx2lZGi5UnZjE7sHks+LWVxWPnrLvsHn1bVjF6nDz1hMXj8ya5ANaoBkab jNTElNQihdS85PyUzLx0WyXv4HjneFMzA0NdQ0sLcyWFvMTcVFslF58AXbfMHKALlBTKEnNK gUIBicXFSvp2mCaEhrjpWsA0Ruj6hgTB9RgZoIGEdYwZc7cbF1zjr9j15CBLA+MJni5GDg4J AROJH+uquhg5gUwxiQv31rN1MXJxCAlMZ5RYcGwuC4Tzi1GiaeJOZpAqNgE1iS9fDrOD2CJA 9rOPXxlBipgFJjNK3H/6gQkkISRgK9G3chkjiM0pYCdxa+EvMFtYwFJiwt51YDUsAqoSN76c A4vzAtXPXjOdGcIWlPgx+R4LiM0soCWxfudxJghbXmLzmrfMEFerSzz6qwtxg5HEjenPWCFK RCT2vXjHOIFRaBaSSbOQTJqFZNIsJC0LGFlWMYqmFiQXFCel5xrqFSfmFpfmpesl5+duYgSn g2dSOxhXNlgcYhTgYFTi4eWYvT5IiDWxrLgy9xCjBAezkggvSwFQiDclsbIqtSg/vqg0J7X4 EGMy0KMTmaVEk/OBqSqvJN7Q2MTMyNLIzMLIxNycNGElcd4DrdaBQgLpiSWp2ampBalFMFuY ODilGhidBVzK/qYwztV9//phavg3RmPp/2v8d+arvDrneuIiT03Fhvu7Mpd75FdkfVKdyMxi JTaBZUWLpej5b6JzVR4nCZjyG9xWTZu4nveGqMWW3kfhy4smzlPZVJA+++sWbhdzjlT55Vum 2K3Pv8nJWX7K0JwrcpugwQqnFTyuWb+5PpYw5j0KnKXEUpyRaKjFXFScCAAf26vqSwMAAA== 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_gpio_request() to make cleanup paths simpler. Signed-off-by: Jingoo Han --- drivers/i2c/busses/i2c-gpio.c | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/drivers/i2c/busses/i2c-gpio.c b/drivers/i2c/busses/i2c-gpio.c index d9f7e18..401be4c 100644 --- a/drivers/i2c/busses/i2c-gpio.c +++ b/drivers/i2c/busses/i2c-gpio.c @@ -144,24 +144,22 @@ static int i2c_gpio_probe(struct platform_device *pdev) scl_pin = pdata->scl_pin; } - ret = gpio_request(sda_pin, "sda"); + ret = devm_gpio_request(&pdev->dev, sda_pin, "sda"); if (ret) { if (ret == -EINVAL) ret = -EPROBE_DEFER; /* Try again later */ - goto err_request_sda; + return ret; } - ret = gpio_request(scl_pin, "scl"); + ret = devm_gpio_request(&pdev->dev, scl_pin, "scl"); if (ret) { if (ret == -EINVAL) ret = -EPROBE_DEFER; /* Try again later */ - goto err_request_scl; + return ret; } priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); - if (!priv) { - ret = -ENOMEM; - goto err_add_bus; - } + if (!priv) + return -ENOMEM; adap = &priv->adap; bit_data = &priv->bit_data; pdata = &priv->pdata; @@ -222,7 +220,7 @@ static int i2c_gpio_probe(struct platform_device *pdev) adap->nr = pdev->id; ret = i2c_bit_add_numbered_bus(adap); if (ret) - goto err_add_bus; + return ret; platform_set_drvdata(pdev, priv); @@ -232,13 +230,6 @@ static int i2c_gpio_probe(struct platform_device *pdev) ? ", no clock stretching" : ""); return 0; - -err_add_bus: - gpio_free(scl_pin); -err_request_scl: - gpio_free(sda_pin); -err_request_sda: - return ret; } static int i2c_gpio_remove(struct platform_device *pdev) @@ -252,8 +243,6 @@ static int i2c_gpio_remove(struct platform_device *pdev) pdata = &priv->pdata; i2c_del_adapter(adap); - gpio_free(pdata->scl_pin); - gpio_free(pdata->sda_pin); return 0; }