From patchwork Tue Apr 12 08:30:14 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Axel Lin X-Patchwork-Id: 609288 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 3qkgBR41KJz9snk for ; Tue, 12 Apr 2016 18:31:11 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=ingics-com.20150623.gappssmtp.com header.i=@ingics-com.20150623.gappssmtp.com header.b=LbugsiRT; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756036AbcDLIbK (ORCPT ); Tue, 12 Apr 2016 04:31:10 -0400 Received: from mail-pa0-f46.google.com ([209.85.220.46]:34736 "EHLO mail-pa0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752649AbcDLIbH (ORCPT ); Tue, 12 Apr 2016 04:31:07 -0400 Received: by mail-pa0-f46.google.com with SMTP id ot11so9549702pab.1 for ; Tue, 12 Apr 2016 01:31:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ingics-com.20150623.gappssmtp.com; s=20150623; h=message-id:subject:from:to:cc:date:mime-version :content-transfer-encoding; bh=sIaSf53ZI2YnLGj1e2LNwL4V5XC3aEnbYRlAbk6gtX8=; b=LbugsiRTouiLTeW2Wr7QsdK2DC5jr9NTL2/AA8eGY3K8fMehJO3oxZ/SvFJNL2SXwC gD2K5h7YgnEcbtckIYtZmja5Bgen1V1RS087iaB5dyCFKXp8DbkrgxWiawd9hAiLw7C8 R2mluoHnx+/uQI4VBcAg7AIod7HFgH8bxayIFhc8RQ3TbufbmifMyI0ABEEjuZ/aszhm OzyBphy6Vm9RPjAoockycdOO/E0TCqwJ5+8whQbxCw/2CWxyEv3/KuvODQBjJSUcLoUf E8YIx2GZid/qhZr3ckyXUkKRa7G6kc+9WahwWqgjgWu0GxxVWeEp0ivRKIYV37r7fO18 yDOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:subject:from:to:cc:date:mime-version :content-transfer-encoding; bh=sIaSf53ZI2YnLGj1e2LNwL4V5XC3aEnbYRlAbk6gtX8=; b=lvM7G8jIcoqpD1q0kALB33KBEgQlMQ6vzLMozDN/5F3S2QBOrquWyl1+rzxuP4e23u YpTrs68g65OOtJd2O5q3X2irgbfbOX4FDM9ik60DjYAW6QvSfT13mJGj2a5+YCHYnG+p Li7JHUNPlayMdFg8sk9b65eAithdbgyVSCa9ZtoJi06/ECpkvYHRiKhrp4CSCKaniVTV oKEAPHxHwSomfcip9AbGR4OeA925Zh3kYWlxBc6xYZv8MUcM7nJu4DkPhc3EA3K8qaWi iFj5sMyPZuh1Hc97lrQvbWqaYtzJneZxhNP/i5nEJ+IQZguXJq98SQVjLzZ6jRfdaodm f0ng== X-Gm-Message-State: AOPr4FXT2+W0ucfRA8yU48UYKI8XDFO7yKQRkEnQPfobH6dcHJOPsTz4tG/9NSxCVYJHVw== X-Received: by 10.66.63.98 with SMTP id f2mr2842406pas.123.1460449866746; Tue, 12 Apr 2016 01:31:06 -0700 (PDT) Received: from [10.1.4.40] (61-220-39-66.HINET-IP.hinet.net. [61.220.39.66]) by smtp.gmail.com with ESMTPSA id 79sm41479723pfq.65.2016.04.12.01.31.04 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 12 Apr 2016 01:31:05 -0700 (PDT) Message-ID: <1460449814.28557.0.camel@ingics.com> Subject: [PATCH] i2c: simtec: Convert to use devm_* APIs From: Axel Lin To: Wolfram Sang Cc: Ben Dooks , linux-i2c@vger.kernel.org Date: Tue, 12 Apr 2016 16:30:14 +0800 X-Mailer: Evolution 3.16.5-1ubuntu3.1 Mime-Version: 1.0 Sender: linux-i2c-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-i2c@vger.kernel.org Use devm_* APIs to simplify the code a bit. Signed-off-by: Axel Lin --- drivers/i2c/busses/i2c-simtec.c | 52 +++++------------------------------------ 1 file changed, 6 insertions(+), 46 deletions(-) diff --git a/drivers/i2c/busses/i2c-simtec.c b/drivers/i2c/busses/i2c-simtec.c index b4685bb..46b88d5 100644 --- a/drivers/i2c/busses/i2c-simtec.c +++ b/drivers/i2c/busses/i2c-simtec.c @@ -25,7 +25,6 @@ #include struct simtec_i2c_data { - struct resource *ioarea; void __iomem *reg; struct i2c_adapter adap; struct i2c_algo_bit_data bit; @@ -69,37 +68,18 @@ static int simtec_i2c_probe(struct platform_device *dev) { struct simtec_i2c_data *pd; struct resource *res; - int size; - int ret; - pd = kzalloc(sizeof(struct simtec_i2c_data), GFP_KERNEL); + pd = devm_kzalloc(&dev->dev, sizeof(struct simtec_i2c_data), + GFP_KERNEL); if (pd == NULL) return -ENOMEM; platform_set_drvdata(dev, pd); res = platform_get_resource(dev, IORESOURCE_MEM, 0); - if (res == NULL) { - dev_err(&dev->dev, "cannot find IO resource\n"); - ret = -ENOENT; - goto err; - } - - size = resource_size(res); - - pd->ioarea = request_mem_region(res->start, size, dev->name); - if (pd->ioarea == NULL) { - dev_err(&dev->dev, "cannot request IO\n"); - ret = -ENXIO; - goto err; - } - - pd->reg = ioremap(res->start, size); - if (pd->reg == NULL) { - dev_err(&dev->dev, "cannot map IO\n"); - ret = -ENXIO; - goto err_res; - } + pd->reg = devm_ioremap_resource(&dev->dev, res); + if (IS_ERR(pd->reg)) + return PTR_ERR(pd->reg); /* setup the private data */ @@ -117,22 +97,7 @@ static int simtec_i2c_probe(struct platform_device *dev) pd->bit.timeout = HZ; pd->bit.udelay = 20; - ret = i2c_bit_add_bus(&pd->adap); - if (ret) - goto err_all; - - return 0; - - err_all: - iounmap(pd->reg); - - err_res: - release_resource(pd->ioarea); - kfree(pd->ioarea); - - err: - kfree(pd); - return ret; + return i2c_bit_add_bus(&pd->adap); } static int simtec_i2c_remove(struct platform_device *dev) @@ -141,11 +106,6 @@ static int simtec_i2c_remove(struct platform_device *dev) i2c_del_adapter(&pd->adap); - iounmap(pd->reg); - release_resource(pd->ioarea); - kfree(pd->ioarea); - kfree(pd); - return 0; }