From patchwork Fri Jun 20 11:59:34 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Prabhakar X-Patchwork-Id: 362173 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 0476F140084 for ; Fri, 20 Jun 2014 22:00:43 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S966864AbaFTMAR (ORCPT ); Fri, 20 Jun 2014 08:00:17 -0400 Received: from mail-wi0-f182.google.com ([209.85.212.182]:58308 "EHLO mail-wi0-f182.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S966555AbaFTMAP (ORCPT ); Fri, 20 Jun 2014 08:00:15 -0400 Received: by mail-wi0-f182.google.com with SMTP id bs8so664389wib.9 for ; Fri, 20 Jun 2014 05:00:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=z5oZuSxDl4f8iqawNX3t3JMynYBrjx4c5wy55K7yjD0=; b=uyhC9RsQKrLPzmcBrk6ZvqvzkTu0XdicPzOdQjXY6tzNCWFJtkMTSL+zUPlJVLZTuY bMMklMcIK9DARMKq+aYXONFFVuypBRi567ZGY+/KODGRt3uQ6lpbVRD5Ik7hYHqlDjfM KqRLpzGNKWUmjXvnsyGgZG+fyhHutOB9N0zX1DifmJZuXcv1ZS2NUrXvWefzMw1Q8WMI iKmjePFV6/NegUteO2IbHECLOciJ8fpbHUmDtLFkbpziRRieP34LD/k7V2NX4ocunbwn Of+O0sfsePQFayhiNPMlJn6dEL0alp7TcKZp20coZa01tK2i4GTdljopyClIBkuZFtqJ fASw== X-Received: by 10.194.23.135 with SMTP id m7mr3907126wjf.2.1403265613339; Fri, 20 Jun 2014 05:00:13 -0700 (PDT) Received: from Prabhakar-Ubuntu.RL.local ([194.72.83.162]) by mx.google.com with ESMTPSA id gc5sm4158249wic.6.2014.06.20.05.00.12 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 20 Jun 2014 05:00:12 -0700 (PDT) From: "Lad, Prabhakar" X-Google-Original-From: "Lad, Prabhakar" , Marc Kleine-Budde Cc: LKML , "Lad, Prabhakar" Subject: [PATCH] can: c_can: convert to use devm * api Date: Fri, 20 Jun 2014 12:59:34 +0100 Message-Id: <1403265574-12923-1-git-send-email-prabhakar.csengg@gmail.com> X-Mailer: git-send-email 1.9.1 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: "Lad, Prabhakar" this patch uses devm_* APIs as they are device managed and make code simpler. Signed-off-by: Lad, Prabhakar --- Note: This patch is compile tested only. drivers/net/can/c_can/c_can_platform.c | 41 ++++++++-------------------------- 1 file changed, 9 insertions(+), 32 deletions(-) diff --git a/drivers/net/can/c_can/c_can_platform.c b/drivers/net/can/c_can/c_can_platform.c index 1df0b32..e0dcbcf 100644 --- a/drivers/net/can/c_can/c_can_platform.c +++ b/drivers/net/can/c_can/c_can_platform.c @@ -157,40 +157,31 @@ static int c_can_plat_probe(struct platform_device *pdev) } /* get the appropriate clk */ - clk = clk_get(&pdev->dev, NULL); + clk = devm_clk_get(&pdev->dev, NULL); if (IS_ERR(clk)) { - dev_err(&pdev->dev, "no clock defined\n"); - ret = -ENODEV; + ret = PTR_ERR(clk); goto exit; } /* get the platform data */ mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); irq = platform_get_irq(pdev, 0); - if (!mem || irq <= 0) { - ret = -ENODEV; - goto exit_free_clk; - } - - if (!request_mem_region(mem->start, resource_size(mem), - KBUILD_MODNAME)) { - dev_err(&pdev->dev, "resource unavailable\n"); + if (irq <= 0) { ret = -ENODEV; - goto exit_free_clk; + goto exit; } - addr = ioremap(mem->start, resource_size(mem)); - if (!addr) { - dev_err(&pdev->dev, "failed to map can port\n"); - ret = -ENOMEM; - goto exit_release_mem; + addr = devm_ioremap_resource(&pdev->dev, mem); + if (IS_ERR(addr)) { + ret = PTR_ERR(addr); + goto exit; } /* allocate the c_can device */ dev = alloc_c_can_dev(); if (!dev) { ret = -ENOMEM; - goto exit_iounmap; + goto exit; } priv = netdev_priv(dev); @@ -255,12 +246,6 @@ static int c_can_plat_probe(struct platform_device *pdev) exit_free_device: free_c_can_dev(dev); -exit_iounmap: - iounmap(addr); -exit_release_mem: - release_mem_region(mem->start, resource_size(mem)); -exit_free_clk: - clk_put(clk); exit: dev_err(&pdev->dev, "probe failed\n"); @@ -270,18 +255,10 @@ exit: static int c_can_plat_remove(struct platform_device *pdev) { struct net_device *dev = platform_get_drvdata(pdev); - struct c_can_priv *priv = netdev_priv(dev); - struct resource *mem; unregister_c_can_dev(dev); free_c_can_dev(dev); - iounmap(priv->base); - - mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); - release_mem_region(mem->start, resource_size(mem)); - - clk_put(priv->priv); return 0; }