Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756456AbcCQDmg (ORCPT ); Wed, 16 Mar 2016 23:42:36 -0400 Received: from vern.gendns.com ([50.115.127.205]:40630 "EHLO vern.gendns.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1753571AbcCQDme (ORCPT ); Wed, 16 Mar 2016 23:42:34 -0400 From: David Lechner Cc: Petr Kulhavy , David Lechner , Rob Herring , Pawel Moll , Mark Rutland , Ian Campbell , Kumar Gala , Russell King , Sekhar Nori , Kevin Hilman , Kishon Vijay Abraham I , Alan Stern , Greg Kroah-Hartman , Bin Liu , =?UTF-8?q?Andreas=20F=C3=A4rber?= , Robert Jarzmik , Tony Lindgren , Sergei Shtylyov , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-usb@vger.kernel.org Subject: [PATCH v2 10/11] usb: musb: da8xx: Use devm in probe Date: Wed, 16 Mar 2016 21:26:43 -0500 Message-Id: <1458181615-27782-11-git-send-email-david@lechnology.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1458181615-27782-1-git-send-email-david@lechnology.com> References: <1458181615-27782-1-git-send-email-david@lechnology.com> X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - vern.gendns.com X-AntiAbuse: Original Domain - vger.kernel.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lechnology.com X-Get-Message-Sender-Via: vern.gendns.com: authenticated_id: davidmain+lechnology.com/only user confirmed/virtual account not confirmed X-Authenticated-Sender: vern.gendns.com: davidmain@lechnology.com X-Source: X-Source-Args: X-Source-Dir: To: unlisted-recipients:; (no To-header on input) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1921 Lines: 84 Simplify things a bit by using devm functions where possible. Signed-off-by: David Lechner --- v2 changes: This is part of a previous patch that was split. No changes from previous version. drivers/usb/musb/da8xx.c | 28 ++++++++-------------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/drivers/usb/musb/da8xx.c b/drivers/usb/musb/da8xx.c index b03d3b8..50f07a5 100644 --- a/drivers/usb/musb/da8xx.c +++ b/drivers/usb/musb/da8xx.c @@ -489,32 +489,27 @@ static int da8xx_probe(struct platform_device *pdev) struct platform_device *musb; struct da8xx_glue *glue; struct platform_device_info pinfo; - struct clk *clk; + int ret; - int ret = -ENOMEM; - - glue = kzalloc(sizeof(*glue), GFP_KERNEL); + glue = devm_kzalloc(&pdev->dev, sizeof(*glue), GFP_KERNEL); if (!glue) { dev_err(&pdev->dev, "failed to allocate glue context\n"); - goto err0; + return -ENOMEM; } - clk = clk_get(&pdev->dev, "usb20"); - if (IS_ERR(clk)) { + glue->clk = devm_clk_get(&pdev->dev, "usb20"); + if (IS_ERR(glue->clk)) { dev_err(&pdev->dev, "failed to get clock\n"); - ret = PTR_ERR(clk); - goto err3; + return PTR_ERR(glue->clk); } - ret = clk_enable(clk); + ret = clk_enable(glue->clk); if (ret) { dev_err(&pdev->dev, "failed to enable clock\n"); goto err4; } glue->dev = &pdev->dev; - glue->clk = clk; - pdata->platform_ops = &da8xx_ops; glue->phy = usb_phy_generic_register(); @@ -557,15 +552,10 @@ err6: usb_phy_generic_unregister(glue->phy); err5: - clk_disable(clk); + clk_disable(glue->clk); err4: - clk_put(clk); - -err3: - kfree(glue); -err0: return ret; } @@ -576,8 +566,6 @@ static int da8xx_remove(struct platform_device *pdev) platform_device_unregister(glue->musb); usb_phy_generic_unregister(glue->phy); clk_disable(glue->clk); - clk_put(glue->clk); - kfree(glue); return 0; } -- 1.9.1