From patchwork Sun Sep 15 07:29:03 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Satendra Singh Thakur X-Patchwork-Id: 11145879 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 70D9D14E5 for ; Sun, 15 Sep 2019 07:29:22 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4EE9B21479 for ; Sun, 15 Sep 2019 07:29:22 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="NJeF3w3m" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726340AbfIOH3V (ORCPT ); Sun, 15 Sep 2019 03:29:21 -0400 Received: from mail-pg1-f195.google.com ([209.85.215.195]:40858 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725497AbfIOH3V (ORCPT ); Sun, 15 Sep 2019 03:29:21 -0400 Received: by mail-pg1-f195.google.com with SMTP id w10so17535101pgj.7; Sun, 15 Sep 2019 00:29:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=feHoHeaJlwzigA+EFklJwcCVQwO/8riLigRDqPWgDLg=; b=NJeF3w3mqwFtxyYc6Vx7gx8+PgVwkfnoD0KpBOj8vR0ObgGYjjzTciTaOL5l7Z/10P TrdIuOUbmw3MglvyVpGIO6SXmJTeucjeepVZhW20jidr95rMHI6uOWyO5hzGFSvPnb9G 2lP/cQlsUl60iujTSh10e5H6/druZQiWwgXbESiaJRerwxK+ak/KxoYjEk5dUsuYNNqf J8Z1KG9aKF1BbyTES6USDeMJzbqwmdJYfW1VWEvtPPIMc3md8eL6f4dk6OhNYKJ/hYBu AKFX2KpDm/ro/j4WFMxc4ZXkR1KuQFSHH5rEGkDHZmZLR18B2t30+0e722ksMNOR9qKT jwwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=feHoHeaJlwzigA+EFklJwcCVQwO/8riLigRDqPWgDLg=; b=bL4l/jGqy+1PqKH0VvIF7MwyHc1ThBGGwCGTfTUBcsNUW8XCFibSRSsg76NKzU64fy z2hm4MrdD3tJOAXtMUhg2jVMdIW28285MMMR1NwuNyrJSo7n2XCywrz1oFy3bsTucxh/ eJJXFQdpHlNvyyPH74jLnRZFuKz2C63V6AB9wbRjz7CiWwXV8E3Oe9q6wr0AP+IHoBdx ZuDMDhTbtyYB1A6uzuwFK25j1BQ/p5pOY/15Lo1XvZQ3Ltu3ZmjEdMVvc4bpuoxLeWRr d4ifPFsgkN5RqCyTKBiynwc90dFa4f4acQFJqI/1DyITn7hHa83SIWFIPoe2M7zlVv1c bPlA== X-Gm-Message-State: APjAAAUbuNF/6pOKFes9CWlaqzXpQE7l4cGoQ+3ld8dfjy3STDBZnRny ikdi5K2i4fBmxjJ3vQ+GXyc4BXxq1GWbsg== X-Google-Smtp-Source: APXvYqwF3YgMbjKR1jnQH7AInYrRQmHT8uS+agDXvbe9lIlt1XJpsKDqBX2oKXpQxmSoBluhKUmwZw== X-Received: by 2002:a17:90a:3086:: with SMTP id h6mr14562263pjb.1.1568532560912; Sun, 15 Sep 2019 00:29:20 -0700 (PDT) Received: from satendra-MM061.ib-wrb304n.setup.in ([103.82.150.111]) by smtp.gmail.com with ESMTPSA id i1sm43107195pfg.2.2019.09.15.00.29.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Sep 2019 00:29:20 -0700 (PDT) From: Satendra Singh Thakur Cc: satendrasingh.thakur@hcl.com, Satendra Singh Thakur , Dan Williams , Vinod Koul , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/9] probe/dma/jz4740: removed redundant code from jz4740 dma controller's probe function Date: Sun, 15 Sep 2019 12:59:03 +0530 Message-Id: <20190915072903.23522-1-sst2005@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190915072644.23329-1-sst2005@gmail.com> References: <20190915072644.23329-1-sst2005@gmail.com> To: unlisted-recipients:; (no To-header on input) Sender: dmaengine-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: dmaengine@vger.kernel.org 1. In order to remove duplicate code, following functions: devm_kzalloc platform_get_resource devm_ioremap_resource clk_get clk_prepare_enable platform_get_irq are replaced with a macro devm_platform_probe_helper_clk. 2. Added irq field in the struct jz4740_dma_dev. Removed platform_get_irq from remove method. 3. This patch depends on the file include/linux/probe-helper.h which is pushed in previous patch [01/09]. Signed-off-by: Satendra Singh Thakur Signed-off-by: Satendra Singh Thakur --- drivers/dma/dma-jz4740.c | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/drivers/dma/dma-jz4740.c b/drivers/dma/dma-jz4740.c index 39c676c47082..b012896d02bb 100644 --- a/drivers/dma/dma-jz4740.c +++ b/drivers/dma/dma-jz4740.c @@ -15,6 +15,7 @@ #include #include #include +#include #include "virt-dma.h" @@ -121,6 +122,7 @@ struct jz4740_dma_dev { struct dma_device ddev; void __iomem *base; struct clk *clk; + int irq; struct jz4740_dmaengine_chan chan[JZ_DMA_NR_CHANS]; }; @@ -519,27 +521,19 @@ static int jz4740_dma_probe(struct platform_device *pdev) struct jz4740_dma_dev *dmadev; struct dma_device *dd; unsigned int i; - struct resource *res; int ret; - int irq; - dmadev = devm_kzalloc(&pdev->dev, sizeof(*dmadev), GFP_KERNEL); - if (!dmadev) - return -EINVAL; + /* + * This macro internally combines following functions: + * devm_kzalloc, platform_get_resource, devm_ioremap_resource, + * devm_clk_get, platform_get_irq, clk_prepare_enable + */ + ret = devm_platform_probe_helper_clk(pdev, dmadev, "dma"); + if (ret < 0) + return ret; dd = &dmadev->ddev; - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - dmadev->base = devm_ioremap_resource(&pdev->dev, res); - if (IS_ERR(dmadev->base)) - return PTR_ERR(dmadev->base); - - dmadev->clk = clk_get(&pdev->dev, "dma"); - if (IS_ERR(dmadev->clk)) - return PTR_ERR(dmadev->clk); - - clk_prepare_enable(dmadev->clk); - dma_cap_set(DMA_SLAVE, dd->cap_mask); dma_cap_set(DMA_CYCLIC, dd->cap_mask); dd->device_free_chan_resources = jz4740_dma_free_chan_resources; @@ -567,8 +561,8 @@ static int jz4740_dma_probe(struct platform_device *pdev) if (ret) goto err_clk; - irq = platform_get_irq(pdev, 0); - ret = request_irq(irq, jz4740_dma_irq, 0, dev_name(&pdev->dev), dmadev); + ret = request_irq(dmadev->irq, jz4740_dma_irq, 0, + dev_name(&pdev->dev), dmadev); if (ret) goto err_unregister; @@ -598,9 +592,8 @@ static void jz4740_cleanup_vchan(struct dma_device *dmadev) static int jz4740_dma_remove(struct platform_device *pdev) { struct jz4740_dma_dev *dmadev = platform_get_drvdata(pdev); - int irq = platform_get_irq(pdev, 0); - free_irq(irq, dmadev); + free_irq(dmadev->irq, dmadev); jz4740_cleanup_vchan(&dmadev->ddev); dma_async_device_unregister(&dmadev->ddev); From patchwork Sun Sep 15 07:29:38 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Satendra Singh Thakur X-Patchwork-Id: 11145881 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id F1E6814E5 for ; Sun, 15 Sep 2019 07:29:52 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D032421479 for ; Sun, 15 Sep 2019 07:29:52 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="SbdyYrUw" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726024AbfIOH3w (ORCPT ); Sun, 15 Sep 2019 03:29:52 -0400 Received: from mail-pg1-f196.google.com ([209.85.215.196]:35944 "EHLO mail-pg1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725497AbfIOH3w (ORCPT ); Sun, 15 Sep 2019 03:29:52 -0400 Received: by mail-pg1-f196.google.com with SMTP id m29so1251359pgc.3; Sun, 15 Sep 2019 00:29:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=3HnPNE6bny7nidosOapEAj+KRL90m9eSVpY97KZloEc=; b=SbdyYrUwmxpWw/IGnwApl9GNJByd+tJBzyW7ttbSD3kpB74BJhHDAenksQx1KOhzEi OSUIkFxuifbsT8JI2JiFEAcshvMAFP1vBazrnpR8emlPTE9npePVU1jAhcTGpYngvW/R iOd65Q7y6v4A5OrUTbGLcNThec0I+4zJkgcAVWYpQhPRU3+GRgMbmu4WwebcJKOFgZAJ ZcBloZ2hTvZRoTlMdi5eH+LTTnZnt2TkWQWV+hPdlGDRiYhtEkQxUhPChfvsVQSikYQc IzQ0pFYaVZ0mtdQg+X6OeUevfyYARVy+0aJyIGCET6iDZMPPxBK3+x6fQoYN6YdNxI0m g3Vw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=3HnPNE6bny7nidosOapEAj+KRL90m9eSVpY97KZloEc=; b=FBx/Iu2KkMDhlAjBK8+iTSuc+4QwJFRSbeb7+wjnTYLMrdXQPxmdkcp9KrelHUiZft +lpJBLB1vUicAQcNwk1bKOkzcxElXqZjhL0Io8g2wXCjsZKm9U1RnuWIPq3UigmNSuqX 6mdSkUGhbNWI1rJr0lvrNYP13NxztsZWBfr+ZA11s+jdpVoSbCBkmc48gaD/Pf0vT/8D IyaKglVorPCrvEvCAq5SiI9RaRoFYJ0or8EwqUVacFrWj1U1tAahkAEELRNbqV9bmog8 WrHRjT45SUIDans5k7YRY99KXLS+BQ1D++03Qq5JqydogKXtenSWwMmI3g+rpLly1C7i RhgA== X-Gm-Message-State: APjAAAWc9f03Mp7XPqMV7KN48rdkEkLbsLOKuf0qoHKGjEUShGm+Y/7p f3M0PQaEuaeGxiV5oJlFP/4= X-Google-Smtp-Source: APXvYqw5PxTdM1K9L0LNRfE6IZWWx5WTGGNbG/zb6i4AP/v8NpFmj9emb+i7ELsl/NB8c0v4ahPk2g== X-Received: by 2002:a63:6fc9:: with SMTP id k192mr50346497pgc.20.1568532591347; Sun, 15 Sep 2019 00:29:51 -0700 (PDT) Received: from satendra-MM061.ib-wrb304n.setup.in ([103.82.150.111]) by smtp.gmail.com with ESMTPSA id 132sm10029355pgg.52.2019.09.15.00.29.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Sep 2019 00:29:50 -0700 (PDT) From: Satendra Singh Thakur Cc: satendrasingh.thakur@hcl.com, Satendra Singh Thakur , Jun Nie , Shawn Guo , Vinod Koul , Dan Williams , linux-arm-kernel@lists.infradead.org, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/9] probe/dma/zx: removed redundant code from zx dma controller's probe function Date: Sun, 15 Sep 2019 12:59:38 +0530 Message-Id: <20190915072938.23610-1-sst2005@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190915072644.23329-1-sst2005@gmail.com> References: <20190915072644.23329-1-sst2005@gmail.com> To: unlisted-recipients:; (no To-header on input) Sender: dmaengine-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: dmaengine@vger.kernel.org 1. In order to remove duplicate code, following functions: platform_get_resource devm_kzalloc devm_ioremap_resource devm_clk_get platform_get_irq devm_request_irq are replaced with a macro devm_platform_probe_helper_irq. 2. Removed dmam_pool_destroy from remove method as dmam_pool_create is already used in probe function. 3. This patch depends on the file include/linux/probe-helper.h which is pushed in previous patch [01/09]. Signed-off-by: Satendra Singh Thakur Signed-off-by: Satendra Singh Thakur --- drivers/dma/zx_dma.c | 35 ++++++++++------------------------- 1 file changed, 10 insertions(+), 25 deletions(-) diff --git a/drivers/dma/zx_dma.c b/drivers/dma/zx_dma.c index 9f4436f7c914..d8c2fbe9766c 100644 --- a/drivers/dma/zx_dma.c +++ b/drivers/dma/zx_dma.c @@ -18,6 +18,7 @@ #include #include #include +#include #include "virt-dma.h" @@ -754,20 +755,17 @@ static struct dma_chan *zx_of_dma_simple_xlate(struct of_phandle_args *dma_spec, static int zx_dma_probe(struct platform_device *op) { struct zx_dma_dev *d; - struct resource *iores; int i, ret = 0; - iores = platform_get_resource(op, IORESOURCE_MEM, 0); - if (!iores) - return -EINVAL; - - d = devm_kzalloc(&op->dev, sizeof(*d), GFP_KERNEL); - if (!d) - return -ENOMEM; - - d->base = devm_ioremap_resource(&op->dev, iores); - if (IS_ERR(d->base)) - return PTR_ERR(d->base); + /* + * This macro internally combines following functions: + * devm_kzalloc, platform_get_resource, devm_ioremap_resource, + * devm_clk_get, platform_get_irq, devm_request_irq, + */ + ret = devm_platform_probe_helper_irq(op, d, NULL, + zx_dma_int_handler, 0, DRIVER_NAME, d); + if (ret < 0) + return ret; of_property_read_u32((&op->dev)->of_node, "dma-channels", &d->dma_channels); @@ -776,18 +774,6 @@ static int zx_dma_probe(struct platform_device *op) if (!d->dma_requests || !d->dma_channels) return -EINVAL; - d->clk = devm_clk_get(&op->dev, NULL); - if (IS_ERR(d->clk)) { - dev_err(&op->dev, "no dma clk\n"); - return PTR_ERR(d->clk); - } - - d->irq = platform_get_irq(op, 0); - ret = devm_request_irq(&op->dev, d->irq, zx_dma_int_handler, - 0, DRIVER_NAME, d); - if (ret) - return ret; - /* A DMA memory pool for LLIs, align on 32-byte boundary */ d->pool = dmam_pool_create(DRIVER_NAME, &op->dev, LLI_BLOCK_SIZE, 32, 0); @@ -894,7 +880,6 @@ static int zx_dma_remove(struct platform_device *op) list_del(&c->vc.chan.device_node); } clk_disable_unprepare(d->clk); - dmam_pool_destroy(d->pool); return 0; } From patchwork Sun Sep 15 07:30:20 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Satendra Singh Thakur X-Patchwork-Id: 11145885 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 67D8F112B for ; Sun, 15 Sep 2019 07:30:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 3C0E721479 for ; Sun, 15 Sep 2019 07:30:40 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="p23CT3gR" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726136AbfIOHaj (ORCPT ); Sun, 15 Sep 2019 03:30:39 -0400 Received: from mail-pl1-f196.google.com ([209.85.214.196]:42870 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725497AbfIOHaj (ORCPT ); Sun, 15 Sep 2019 03:30:39 -0400 Received: by mail-pl1-f196.google.com with SMTP id e5so4078941pls.9; Sun, 15 Sep 2019 00:30:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=dMeTUZXRAUHh0+qJ13H8cie73F/u28qD7x83pAfJ/9Q=; b=p23CT3gRcvap2xtcYSdgl1DJX7+YD+Tc3MWZ5tZ69jtgHNh3opMLs4hhDeohqTQ8lT LMQWcvKLaNOVZY0kZU+RQIPGRJF/ifS1NIFJ7PUaLTmUPVERkqIzX2T9yOQ9Is65TwT7 Ccz+mvMBo/km8JEOnM++YPtHzltCjorO3l3tk+0BU2QL+rRuWkn9v8/ZRjdIRF1tGcx4 OONKF9e06k8/KBjzjmaX2Oh2EJsAjAHr5zOK3PfHQfWYpnUeaZ4jOf3Kk7V/EPAmf/Dl +T3xioo6um5zvmTbImxMYoMC8gPzEAAQlehSsKGfacysFWpV6c1nyKEeyB5Gy4GMBLp8 TIjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=dMeTUZXRAUHh0+qJ13H8cie73F/u28qD7x83pAfJ/9Q=; b=sgyXfJKoWBcHi48RcRJgENPGiUtbbZETy4mXcRKTugiMwQ/41i90+HatghwVmeeeKr ehFXxgfk8py1Pvhc/SKMC+463Pv3JPe6hspexNticB0OTj9hPSuvpcwU+hFwQpkzUqcY IUvqsBEoAFRmtnHdZBWfMO1vv6rPxg+OV6IbrtczFx/02UfZZWgjvLTff8fG5F1Vwfry QVYp1JHdCzgS2r094DUAzBOQcvTjmiftfge5ibs8qbjyLU1ZqfDNpmbksOcXNNhoErry 8YiSQ6Vf1xW4HH0kdmbTQ1WxPABKAs9ZzGNFksr6T45mhYce36/tb8n/d14RBeF5DTsE W2Xw== X-Gm-Message-State: APjAAAUwh/NG5+MA7n9uWjPoqHgNdNSk9rRRFE2L5oWI01cvGEj3g9Ab f25+1EyZ1YxshQVI0J7QxBo= X-Google-Smtp-Source: APXvYqzdSFdn/APC8Kl3rfSziRAIhmZhHdVJdjZRPZa5vfYcn6CxiIhCmbCNhMIdxW/OH/TLwQlvrg== X-Received: by 2002:a17:902:9681:: with SMTP id n1mr5657126plp.89.1568532638710; Sun, 15 Sep 2019 00:30:38 -0700 (PDT) Received: from satendra-MM061.ib-wrb304n.setup.in ([103.82.150.111]) by smtp.gmail.com with ESMTPSA id y12sm195702pfe.165.2019.09.15.00.30.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Sep 2019 00:30:38 -0700 (PDT) From: Satendra Singh Thakur Cc: satendrasingh.thakur@hcl.com, Satendra Singh Thakur , Andy Gross , Dan Williams , Vinod Koul , linux-arm-msm@vger.kernel.org, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 4/9] probe/dma/qcom-bam: removed redundant code from qcom bam dma controller's probe function Date: Sun, 15 Sep 2019 13:00:20 +0530 Message-Id: <20190915073021.23738-1-sst2005@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190915072644.23329-1-sst2005@gmail.com> References: <20190915072644.23329-1-sst2005@gmail.com> To: unlisted-recipients:; (no To-header on input) Sender: dmaengine-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: dmaengine@vger.kernel.org 1. In order to remove duplicate code, following functions: platform_get_resource devm_kzalloc devm_ioremap_resource devm_clk_get platform_get_irq clk_prepare_enable are replaced with a macro devm_platform_probe_helper_clk. 2. Renamed variables regs and bamclk so that helper macro can be applied. 3. This patch depends on the file include/linux/probe-helper.h which is pushed in previous patch [01/09]. Signed-off-by: Satendra Singh Thakur Signed-off-by: Satendra Singh Thakur --- drivers/dma/qcom/bam_dma.c | 71 ++++++++++++++++---------------------- 1 file changed, 29 insertions(+), 42 deletions(-) diff --git a/drivers/dma/qcom/bam_dma.c b/drivers/dma/qcom/bam_dma.c index 8e90a405939d..06c136ca8e40 100644 --- a/drivers/dma/qcom/bam_dma.c +++ b/drivers/dma/qcom/bam_dma.c @@ -41,6 +41,7 @@ #include #include #include +#include #include "../dmaengine.h" #include "../virt-dma.h" @@ -378,7 +379,7 @@ static inline struct bam_chan *to_bam_chan(struct dma_chan *common) } struct bam_device { - void __iomem *regs; + void __iomem *base; struct device *dev; struct dma_device common; struct device_dma_parameters dma_parms; @@ -392,7 +393,7 @@ struct bam_device { const struct reg_offset_data *layout; - struct clk *bamclk; + struct clk *clk; int irq; /* dma start transaction tasklet */ @@ -410,7 +411,7 @@ static inline void __iomem *bam_addr(struct bam_device *bdev, u32 pipe, { const struct reg_offset_data r = bdev->layout[reg]; - return bdev->regs + r.base_offset + + return bdev->base + r.base_offset + r.pipe_mult * pipe + r.evnt_mult * pipe + r.ee_mult * bdev->ee; @@ -1209,41 +1210,41 @@ static int bam_dma_probe(struct platform_device *pdev) { struct bam_device *bdev; const struct of_device_id *match; - struct resource *iores; int ret, i; - - bdev = devm_kzalloc(&pdev->dev, sizeof(*bdev), GFP_KERNEL); - if (!bdev) - return -ENOMEM; + /* + * This macro internally combines following functions: + * devm_kzalloc, platform_get_resource, devm_ioremap_resource, + * devm_clk_get, platform_get_irq, clk_prepare_enable + */ + ret = devm_platform_probe_helper_clk(pdev, bdev, "bam_clk"); + bdev->controlled_remotely = of_property_read_bool(pdev->dev.of_node, + "qcom,controlled-remotely"); + if (ret < 0) { + if (IS_ERR(bdev->clk)) { + if (!bdev->controlled_remotely) + return ret; + bdev->clk = NULL; + } else + return ret; + } bdev->dev = &pdev->dev; match = of_match_node(bam_of_match, pdev->dev.of_node); if (!match) { dev_err(&pdev->dev, "Unsupported BAM module\n"); - return -ENODEV; + ret = -ENODEV; + goto err_disable_clk; } bdev->layout = match->data; - iores = platform_get_resource(pdev, IORESOURCE_MEM, 0); - bdev->regs = devm_ioremap_resource(&pdev->dev, iores); - if (IS_ERR(bdev->regs)) - return PTR_ERR(bdev->regs); - - bdev->irq = platform_get_irq(pdev, 0); - if (bdev->irq < 0) - return bdev->irq; - ret = of_property_read_u32(pdev->dev.of_node, "qcom,ee", &bdev->ee); if (ret) { dev_err(bdev->dev, "Execution environment unspecified\n"); - return ret; + goto err_disable_clk; } - bdev->controlled_remotely = of_property_read_bool(pdev->dev.of_node, - "qcom,controlled-remotely"); - if (bdev->controlled_remotely) { ret = of_property_read_u32(pdev->dev.of_node, "num-channels", &bdev->num_channels); @@ -1256,20 +1257,6 @@ static int bam_dma_probe(struct platform_device *pdev) dev_err(bdev->dev, "num-ees unspecified in dt\n"); } - bdev->bamclk = devm_clk_get(bdev->dev, "bam_clk"); - if (IS_ERR(bdev->bamclk)) { - if (!bdev->controlled_remotely) - return PTR_ERR(bdev->bamclk); - - bdev->bamclk = NULL; - } - - ret = clk_prepare_enable(bdev->bamclk); - if (ret) { - dev_err(bdev->dev, "failed to prepare/enable clock\n"); - return ret; - } - ret = bam_init(bdev); if (ret) goto err_disable_clk; @@ -1359,7 +1346,7 @@ static int bam_dma_probe(struct platform_device *pdev) err_tasklet_kill: tasklet_kill(&bdev->task); err_disable_clk: - clk_disable_unprepare(bdev->bamclk); + clk_disable_unprepare(bdev->clk); return ret; } @@ -1393,7 +1380,7 @@ static int bam_dma_remove(struct platform_device *pdev) tasklet_kill(&bdev->task); - clk_disable_unprepare(bdev->bamclk); + clk_disable_unprepare(bdev->clk); return 0; } @@ -1402,7 +1389,7 @@ static int __maybe_unused bam_dma_runtime_suspend(struct device *dev) { struct bam_device *bdev = dev_get_drvdata(dev); - clk_disable(bdev->bamclk); + clk_disable(bdev->clk); return 0; } @@ -1412,7 +1399,7 @@ static int __maybe_unused bam_dma_runtime_resume(struct device *dev) struct bam_device *bdev = dev_get_drvdata(dev); int ret; - ret = clk_enable(bdev->bamclk); + ret = clk_enable(bdev->clk); if (ret < 0) { dev_err(dev, "clk_enable failed: %d\n", ret); return ret; @@ -1428,7 +1415,7 @@ static int __maybe_unused bam_dma_suspend(struct device *dev) if (!bdev->controlled_remotely) pm_runtime_force_suspend(dev); - clk_unprepare(bdev->bamclk); + clk_unprepare(bdev->clk); return 0; } @@ -1438,7 +1425,7 @@ static int __maybe_unused bam_dma_resume(struct device *dev) struct bam_device *bdev = dev_get_drvdata(dev); int ret; - ret = clk_prepare(bdev->bamclk); + ret = clk_prepare(bdev->clk); if (ret) return ret; From patchwork Sun Sep 15 07:30:48 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Satendra Singh Thakur X-Patchwork-Id: 11145889 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 83218912 for ; Sun, 15 Sep 2019 07:30:59 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 5FE3620644 for ; Sun, 15 Sep 2019 07:30:59 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="jH53rpPk" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725613AbfIOHa7 (ORCPT ); Sun, 15 Sep 2019 03:30:59 -0400 Received: from mail-pf1-f194.google.com ([209.85.210.194]:41905 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725497AbfIOHa6 (ORCPT ); Sun, 15 Sep 2019 03:30:58 -0400 Received: by mail-pf1-f194.google.com with SMTP id b13so20526743pfo.8; Sun, 15 Sep 2019 00:30:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=GkvCW2yDGpRo3PSFTuRArziiou4pMe6vPX17Y8y6Dnc=; b=jH53rpPk8Uk1MSBhnWEhXTfoJMN+iJEQ7EKpauS+mO+CCAQ033B4UaLO04rOUTzP9Z PWJfnMr8F1cxat2FMQdXS2RJJ1iqxl+Ly5gMy7fE6XV6H3/Dvqci/SSY4YzCsumfD9VD 0S0HaXx4zVtosSZZQ5Vt1m3HfctPhInLJAyRuKiMEPe3JR7UT/I4dFsaNYmNiAby8+d6 mfaUBZP6heEKzHQR8jC+6grUVpMO7KekOvRcDWcq7hWfDtElp27rRwCOlRWJQ4u9PBVF 6aLTQYOVDHUKwV0yJ6E7AuHoHSZLagv8Sqmmz+O4IupGz8GOqVKzxUnpkbDWF+JaO3q4 245A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=GkvCW2yDGpRo3PSFTuRArziiou4pMe6vPX17Y8y6Dnc=; b=eAmVxGJ/tm1SEU7azCI7UHws78TRJyjc4STFmCY/rptpOKBlC1IbVwH2ZL2tdg2ktM FLgV/TSzegBjyl33iv0MnqpmDtY5ROMHymy26R0rzrw8rm0fzglrajbofuyMVMV5eyiK mQdDp1/3NNcL8SzrjSIjmq0fdgh1OukQxKmVO3KR5UZ16qTAEXfoe3+LQ9pWHn432FCa MHg0/Ddtp+Ow4xmBD3On74FPOFbUzJHBLTOj4bJZbNHatOucNF8LWhGHxPCmoJSkeImy T+NM22Rklojq3EjJKPsVr2yVXx+qlqPSWm0/4n8w3/Jiox+Wh6KsHZVbqt9dIuIn9s7f PiOw== X-Gm-Message-State: APjAAAUQ1rIBjttH2ibr8Gjpl49tm667sFPQFbYUiEomC8vfZhcJVVOO +jdPnRuwef8cKkErxgHan0o= X-Google-Smtp-Source: APXvYqxuah8yl/pvu9JVO+yv2YIraDJx3bTe6QtVyQFOYlpd+/GcXmhFtP4zDYlq6PIBRRZ/EtEAEQ== X-Received: by 2002:a17:90a:65c9:: with SMTP id i9mr13948462pjs.54.1568532657679; Sun, 15 Sep 2019 00:30:57 -0700 (PDT) Received: from satendra-MM061.ib-wrb304n.setup.in ([103.82.150.111]) by smtp.gmail.com with ESMTPSA id c11sm65160088pfj.114.2019.09.15.00.30.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Sep 2019 00:30:56 -0700 (PDT) From: Satendra Singh Thakur Cc: satendrasingh.thakur@hcl.com, Satendra Singh Thakur , Sean Wang , Vinod Koul , Dan Williams , Matthias Brugger , dmaengine@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH 5/9] probe/dma/mtk-hs: removed redundant code from mediatek hs dma controller's probe function Date: Sun, 15 Sep 2019 13:00:48 +0530 Message-Id: <20190915073048.23817-1-sst2005@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190915072644.23329-1-sst2005@gmail.com> References: <20190915072644.23329-1-sst2005@gmail.com> To: unlisted-recipients:; (no To-header on input) Sender: dmaengine-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: dmaengine@vger.kernel.org 1. In order to remove duplicate code, following functions: platform_get_resource devm_kzalloc devm_ioremap_resource devm_clk_get platform_get_irq are replaced with a macro devm_platform_probe_helper. 2. Fixed a memory leak when devm_request_irq fails, Called of_dma_controller_free in such case. 3. This patch depends on the file include/linux/probe-helper.h which is pushed in previous patch [01/09]. Signed-off-by: Satendra Singh Thakur Signed-off-by: Satendra Singh Thakur --- drivers/dma/mediatek/mtk-hsdma.c | 38 ++++++++++---------------------- 1 file changed, 12 insertions(+), 26 deletions(-) diff --git a/drivers/dma/mediatek/mtk-hsdma.c b/drivers/dma/mediatek/mtk-hsdma.c index 1a2028e1c29e..6fc01093aeea 100644 --- a/drivers/dma/mediatek/mtk-hsdma.c +++ b/drivers/dma/mediatek/mtk-hsdma.c @@ -23,6 +23,7 @@ #include #include #include +#include #include "../virt-dma.h" @@ -896,41 +897,24 @@ static int mtk_hsdma_probe(struct platform_device *pdev) struct mtk_hsdma_device *hsdma; struct mtk_hsdma_vchan *vc; struct dma_device *dd; - struct resource *res; int i, err; - hsdma = devm_kzalloc(&pdev->dev, sizeof(*hsdma), GFP_KERNEL); - if (!hsdma) - return -ENOMEM; - + /* + * This macro internally combines following functions: + * devm_kzalloc, platform_get_resource, devm_ioremap_resource, + * devm_clk_get, platform_get_irq + */ + err = devm_platform_probe_helper(pdev, hsdma, "hsdma"); + if (err < 0) + return err; dd = &hsdma->ddev; - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - hsdma->base = devm_ioremap_resource(&pdev->dev, res); - if (IS_ERR(hsdma->base)) - return PTR_ERR(hsdma->base); - hsdma->soc = of_device_get_match_data(&pdev->dev); if (!hsdma->soc) { dev_err(&pdev->dev, "No device match found\n"); return -ENODEV; } - hsdma->clk = devm_clk_get(&pdev->dev, "hsdma"); - if (IS_ERR(hsdma->clk)) { - dev_err(&pdev->dev, "No clock for %s\n", - dev_name(&pdev->dev)); - return PTR_ERR(hsdma->clk); - } - - res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); - if (!res) { - dev_err(&pdev->dev, "No irq resource for %s\n", - dev_name(&pdev->dev)); - return -EINVAL; - } - hsdma->irq = res->start; - refcount_set(&hsdma->pc_refcnt, 0); spin_lock_init(&hsdma->lock); @@ -997,7 +981,7 @@ static int mtk_hsdma_probe(struct platform_device *pdev) if (err) { dev_err(&pdev->dev, "request_irq failed with err %d\n", err); - goto err_unregister; + goto err_free; } platform_set_drvdata(pdev, hsdma); @@ -1006,6 +990,8 @@ static int mtk_hsdma_probe(struct platform_device *pdev) return 0; +err_free: + of_dma_controller_free(pdev->dev.of_node); err_unregister: dma_async_device_unregister(dd); From patchwork Sun Sep 15 07:31:44 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Satendra Singh Thakur X-Patchwork-Id: 11145897 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B117817EE for ; Sun, 15 Sep 2019 07:31:58 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 8F91B20830 for ; Sun, 15 Sep 2019 07:31:58 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ZfZ5uJOk" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726363AbfIOHbz (ORCPT ); Sun, 15 Sep 2019 03:31:55 -0400 Received: from mail-pf1-f194.google.com ([209.85.210.194]:40510 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725497AbfIOHby (ORCPT ); Sun, 15 Sep 2019 03:31:54 -0400 Received: by mail-pf1-f194.google.com with SMTP id x127so20535251pfb.7; Sun, 15 Sep 2019 00:31:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=0DZe/s2/vHEDWjkZMS1zmvi4NsZEIq/1qP/znK935TQ=; b=ZfZ5uJOkXcijb1z+GqXDBCpSk0K10rTW5epVfdMwpJ0sQtC4xP+TyVfe2nF8YAgxsU qJS0C73jzw7UM6QUQ579KcOuDXGKpkGfzPV/tp7gb+7ecsj4JJQ6plI3JtPmtvr9Fmax uFXQsiFTe5us54At0SivWKJ1tTzeZeqL2DVs/rvaXaQm23avCPCG97VL5oxD/KAgMfyg zVa/RFNlCn3kwXddw87Gfa818o6mmG1BpAmEHykzM5kESMLk+OW1ijdy5ZBCoDkU0dYc 71wMeNwdotk6vTtXfJryYveNv4V+sV9qW972v8PlpEATz8RYb/rKb7NevuQGFwflVz8f R9cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=0DZe/s2/vHEDWjkZMS1zmvi4NsZEIq/1qP/znK935TQ=; b=I8jibTD1bluqZlWxIAYNhD8xezdnU28zXpoAFp4Pw20aLp8/CMnVia0nyggMbEXfS4 COEzJYjkAcH/GmMa37SD8/s6aaAVJIXqqxJsc4c8Cx+eLOc2pD9bERbThQU1NoTkRTmi uIGjQUyKyQ/35WLps8hNLRS/hFcdshdQjxFiOc5I0fgb6sfz2Mrt2tnuKVk9qfIX9YgS DqTl5XTVKjCNOGOvynkNKRWxiyry3d3NuN8qOwZSomRNWfKNYbDTJGdBvzjSpqwJWZ98 siNEohzloCbWm/bvEtKKdNC1eqmAKWYY/F+FZ3HURVZcTkwtQ9uXzje9/BCefA5YY8Lh K3NA== X-Gm-Message-State: APjAAAXR/uPFhQWvBBqUkJHXgBwC6/MSiVra7e4DzyWtpqigS2p9xq9a vDrT1RAAptHgmbpIQyyvadaum5P8c0y+ow== X-Google-Smtp-Source: APXvYqycv60YtanN5Vu0TRpL2U5mtB8FDs+f7JRrqV4nnVE9qEcmwM7IZJEy/v83woF+LAH77BTX/Q== X-Received: by 2002:a62:cf82:: with SMTP id b124mr64368927pfg.159.1568532714069; Sun, 15 Sep 2019 00:31:54 -0700 (PDT) Received: from satendra-MM061.ib-wrb304n.setup.in ([103.82.150.111]) by smtp.gmail.com with ESMTPSA id e192sm45142269pfh.83.2019.09.15.00.31.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Sep 2019 00:31:53 -0700 (PDT) From: Satendra Singh Thakur Cc: satendrasingh.thakur@hcl.com, Satendra Singh Thakur , Vinod Koul , Dan Williams , Maxime Ripard , Chen-Yu Tsai , dmaengine@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH 6/9] probe/dma/sun6i: removed redundant code from sun6i dma controller's probe function Date: Sun, 15 Sep 2019 13:01:44 +0530 Message-Id: <20190915073144.23965-1-sst2005@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190915072644.23329-1-sst2005@gmail.com> References: <20190915072644.23329-1-sst2005@gmail.com> To: unlisted-recipients:; (no To-header on input) Sender: dmaengine-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: dmaengine@vger.kernel.org 1. In order to remove duplicate code, following functions: platform_get_resource devm_kzalloc devm_ioremap_resource devm_clk_get platform_get_irq are replaced with a macro devm_platform_probe_helper. 2. This patch depends on the file include/linux/probe-helper.h which is pushed in previous patch [01/09]. Signed-off-by: Satendra Singh Thakur Signed-off-by: Satendra Singh Thakur --- drivers/dma/sun6i-dma.c | 30 +++++++++--------------------- 1 file changed, 9 insertions(+), 21 deletions(-) diff --git a/drivers/dma/sun6i-dma.c b/drivers/dma/sun6i-dma.c index ed5b68dcfe50..41ee054bbeeb 100644 --- a/drivers/dma/sun6i-dma.c +++ b/drivers/dma/sun6i-dma.c @@ -19,6 +19,7 @@ #include #include #include +#include #include "virt-dma.h" @@ -1234,34 +1235,21 @@ static int sun6i_dma_probe(struct platform_device *pdev) { struct device_node *np = pdev->dev.of_node; struct sun6i_dma_dev *sdc; - struct resource *res; int ret, i; - sdc = devm_kzalloc(&pdev->dev, sizeof(*sdc), GFP_KERNEL); - if (!sdc) - return -ENOMEM; + /* + * This macro internally combines following functions: + * devm_kzalloc, platform_get_resource, devm_ioremap_resource, + * devm_clk_get, platform_get_irq + */ + ret = devm_platform_probe_helper(pdev, sdc, NULL); + if (ret < 0) + return ret; sdc->cfg = of_device_get_match_data(&pdev->dev); if (!sdc->cfg) return -ENODEV; - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - sdc->base = devm_ioremap_resource(&pdev->dev, res); - if (IS_ERR(sdc->base)) - return PTR_ERR(sdc->base); - - sdc->irq = platform_get_irq(pdev, 0); - if (sdc->irq < 0) { - dev_err(&pdev->dev, "Cannot claim IRQ\n"); - return sdc->irq; - } - - sdc->clk = devm_clk_get(&pdev->dev, NULL); - if (IS_ERR(sdc->clk)) { - dev_err(&pdev->dev, "No clock specified\n"); - return PTR_ERR(sdc->clk); - } - if (sdc->cfg->has_mbus_clk) { sdc->clk_mbus = devm_clk_get(&pdev->dev, "mbus"); if (IS_ERR(sdc->clk_mbus)) { From patchwork Sun Sep 15 07:32:00 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Satendra Singh Thakur X-Patchwork-Id: 11145899 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id BC175912 for ; Sun, 15 Sep 2019 07:32:13 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 9B63B21479 for ; Sun, 15 Sep 2019 07:32:13 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="eK5arapl" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726246AbfIOHcN (ORCPT ); Sun, 15 Sep 2019 03:32:13 -0400 Received: from mail-pg1-f194.google.com ([209.85.215.194]:45924 "EHLO mail-pg1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725497AbfIOHcN (ORCPT ); Sun, 15 Sep 2019 03:32:13 -0400 Received: by mail-pg1-f194.google.com with SMTP id 4so17497778pgm.12; Sun, 15 Sep 2019 00:32:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=S4PgIGQ3wJQUQthoZj1zqeVCz9S7XcbHvEQ97PV6+tM=; b=eK5araplelxFt5qbQ2yVZnHo79vn6Wv45m52C1zwcLZlVgsLls4QF3DE+Jz8oX6muB w1OTTbKsAzjUfTYwmTzpWqpUNkVoK1py5YfJa5hfOf4pZ0Zhf9KFPDdknI5BhN6pCITT g9qN+ZZPP1vjXH3aBQW4C0UsQTLkb7EsQx6U4xNRW7HaHvb6qW0YA8eUrDOzQ0bq3/D/ JrdoCpbL23u9b0yJ31RxMmeG3JChQ5TtY17t8zp5yUJVu5B1KQtTeykS/MUCDK/jsupe fIS7nh+bP+w+fsHJKAEtnt3a+dtP2KoyzEu0g6Z7Huc78nKCTDW6h6xl+Tus5O6lttjn 1O2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=S4PgIGQ3wJQUQthoZj1zqeVCz9S7XcbHvEQ97PV6+tM=; b=o4ZLDzdRy53uaRBBDoDNbpkZLVKIsMBdDiJVjXIA1kvJTok2wBHC22ShCmVXXCiXKc jrABSbKxjRm1Nocm+CQDPxYUSqiZGO3wffbVfSLwwuFM0Vqz5kP2/FiCLRig3WF5wZ+q NmuDUA89dhF13CSgcPHu+kWySR0Pr76/RM6Sj0En6p5ChHkBSVPY2rdrEkwEZEmsFWZC L/W50g+zjvjw3O1Ac7EmnW6KctI1Y9TYAoRtdv6n4r/em/Yxpzma54oFwz9OkXpGM0UD S1phwkjnLIp3vm4+tifh3r+JF6BXxkMlxRPhZDJDVNH8FQIyZXy+c8E5bqMCJ9YJp5Ia 33CA== X-Gm-Message-State: APjAAAV0JN7XUj1vZgZT/o6HP9tadRdWAxOi8qeVbXPhPS765xecNeAs MeD9mOWGZXbmd2ZhBhNOnoo= X-Google-Smtp-Source: APXvYqw4GNHiM/JotTPC37vIr0f7HSYy4qPrwREclNq9g2KRIxRE6+gg2fLKcFMNvrV/T8jwjBTuFg== X-Received: by 2002:a17:90a:ba16:: with SMTP id s22mr13936707pjr.84.1568532732350; Sun, 15 Sep 2019 00:32:12 -0700 (PDT) Received: from satendra-MM061.ib-wrb304n.setup.in ([103.82.150.111]) by smtp.gmail.com with ESMTPSA id 30sm7567118pjk.25.2019.09.15.00.32.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Sep 2019 00:32:11 -0700 (PDT) From: Satendra Singh Thakur Cc: satendrasingh.thakur@hcl.com, Satendra Singh Thakur , Vinod Koul , Dan Williams , Maxime Ripard , Chen-Yu Tsai , dmaengine@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH 7/9] probe/dma/sun4i: removed redundant code from sun4i dma controller's probe function Date: Sun, 15 Sep 2019 13:02:00 +0530 Message-Id: <20190915073201.24032-1-sst2005@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190915072644.23329-1-sst2005@gmail.com> References: <20190915072644.23329-1-sst2005@gmail.com> To: unlisted-recipients:; (no To-header on input) Sender: dmaengine-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: dmaengine@vger.kernel.org 1. In order to remove duplicate code, following functions: platform_get_resource devm_kzalloc devm_ioremap_resource devm_clk_get platform_get_irq are replaced with a macro devm_platform_probe_helper. 2. This patch depends on the file include/linux/probe-helper.h which is pushed in previous patch [01/09]. Signed-off-by: Satendra Singh Thakur Signed-off-by: Satendra Singh Thakur --- drivers/dma/sun4i-dma.c | 30 +++++++++--------------------- 1 file changed, 9 insertions(+), 21 deletions(-) diff --git a/drivers/dma/sun4i-dma.c b/drivers/dma/sun4i-dma.c index 1f80568b2613..5db139ff43ac 100644 --- a/drivers/dma/sun4i-dma.c +++ b/drivers/dma/sun4i-dma.c @@ -15,6 +15,7 @@ #include #include #include +#include #include "virt-dma.h" @@ -1119,29 +1120,16 @@ static irqreturn_t sun4i_dma_interrupt(int irq, void *dev_id) static int sun4i_dma_probe(struct platform_device *pdev) { struct sun4i_dma_dev *priv; - struct resource *res; int i, j, ret; - priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); - if (!priv) - return -ENOMEM; - - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - priv->base = devm_ioremap_resource(&pdev->dev, res); - if (IS_ERR(priv->base)) - return PTR_ERR(priv->base); - - priv->irq = platform_get_irq(pdev, 0); - if (priv->irq < 0) { - dev_err(&pdev->dev, "Cannot claim IRQ\n"); - return priv->irq; - } - - priv->clk = devm_clk_get(&pdev->dev, NULL); - if (IS_ERR(priv->clk)) { - dev_err(&pdev->dev, "No clock specified\n"); - return PTR_ERR(priv->clk); - } + /* + * This macro internally combines following functions: + * devm_kzalloc, platform_get_resource, devm_ioremap_resource, + * devm_clk_get, platform_get_irq + */ + ret = devm_platform_probe_helper(pdev, priv, NULL); + if (ret < 0) + return ret; platform_set_drvdata(pdev, priv); spin_lock_init(&priv->lock); From patchwork Sun Sep 15 07:32:17 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Satendra Singh Thakur X-Patchwork-Id: 11145903 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E7C92112B for ; Sun, 15 Sep 2019 07:32:27 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C5B0E21479 for ; Sun, 15 Sep 2019 07:32:27 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="BbWt2DLY" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727017AbfIOHc1 (ORCPT ); Sun, 15 Sep 2019 03:32:27 -0400 Received: from mail-pf1-f194.google.com ([209.85.210.194]:42822 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725497AbfIOHc1 (ORCPT ); Sun, 15 Sep 2019 03:32:27 -0400 Received: by mail-pf1-f194.google.com with SMTP id q12so237998pff.9; Sun, 15 Sep 2019 00:32:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=GPul5JuzdKo1YLlmlMUVEvVy40XkhDScmOvvCl/5Aqg=; b=BbWt2DLYK8AUxUs1ijP7jhTEmZRsuZlkVv0L7MhtdmA1ZVzYE6UYsyHSSUcsgrIBds pKQYa5d7HfA9clUZO9ZeUWzO4yc5xNnRd0Q0mIa+0miB4vSiw0UvhlcBM/idtYg6FszN UTv8U/1c1w+mD4qHiLLtv0+oI9WDvcyKPYwAlXPQPcefq9QHdY+zeiz8k3f+xjAaa0nZ xsNFZeYz3lqK9erPsssS8WMur4pGSMjbmPhzTedNaorSgfTQNxM0Y33O1UYora3+bYzU w4iHoRYMJw2D3/N+iwYzZsGDodt1pn0aPsX0H+FoFnidJs3zFZ7mBTll0auGC/AxKvq4 OJ2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=GPul5JuzdKo1YLlmlMUVEvVy40XkhDScmOvvCl/5Aqg=; b=UC7txxlDgYwKRHzRmcBVbtu0Oi2xApQJilH7qdFDnq141PhnRY25TTtGFKak183lqB dgmHHaBSEMfjyddlulUQKUHmeJf+OSy3pRnyKaEI8tPcMW/V4Niy1PmgPFWRuVmnzprk 8uLZKBbO15FTqenthYPgP7RXh4tU9Aei3BYDHOJT0xJnUwGwb0mHu4YEnuk6LOYs+qw8 OM+RADmS4SpHQVEHOlH/bEPXEmCOMU3MWS5AjERcm0tn9bpe5dmscRjuRFZ7Ap4TnmaU AJPc3KNjeUaXS+sI19WeLQl+3b8QSAQ8Vs3LQ8PPl88vymhxb8B1/5hk94/Sj5gPSy7O XNmw== X-Gm-Message-State: APjAAAXnA1BqjlcpHvuP1X4yoIPJ6JmkbQSLaHa5Dom5zy8B0Mh76xA0 iGMnliWLs8IaApHViwh5OBA= X-Google-Smtp-Source: APXvYqyXkwyCNKWe1ap8gdlQNYMaQ+xsRWuU3kxTWHyT3AZqbIjkAfdHvFTLTpgvyNIggQxhv3eSSA== X-Received: by 2002:aa7:9486:: with SMTP id z6mr64991286pfk.118.1568532746548; Sun, 15 Sep 2019 00:32:26 -0700 (PDT) Received: from satendra-MM061.ib-wrb304n.setup.in ([103.82.150.111]) by smtp.gmail.com with ESMTPSA id f14sm44920340pfq.187.2019.09.15.00.32.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Sep 2019 00:32:25 -0700 (PDT) From: Satendra Singh Thakur Cc: satendrasingh.thakur@hcl.com, Satendra Singh Thakur , Lars-Peter Clausen , Vinod Koul , Dan Williams , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 8/9] probe/dma/axi: removed redundant code from axi dma controller's probe function Date: Sun, 15 Sep 2019 13:02:17 +0530 Message-Id: <20190915073217.24101-1-sst2005@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190915072644.23329-1-sst2005@gmail.com> References: <20190915072644.23329-1-sst2005@gmail.com> To: unlisted-recipients:; (no To-header on input) Sender: dmaengine-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: dmaengine@vger.kernel.org 1. In order to remove duplicate code, following functions: platform_get_resource devm_kzalloc devm_ioremap_resource devm_clk_get platform_get_irq clk_prepare_enable are replaced with a macro devm_platform_probe_helper. 2. This patch depends on the file include/linux/probe-helper.h which is pushed in previous patch [01/09]. Signed-off-by: Satendra Singh Thakur Signed-off-by: Satendra Singh Thakur --- drivers/dma/dma-axi-dmac.c | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/drivers/dma/dma-axi-dmac.c b/drivers/dma/dma-axi-dmac.c index a0ee404b736e..ac8a2355b299 100644 --- a/drivers/dma/dma-axi-dmac.c +++ b/drivers/dma/dma-axi-dmac.c @@ -21,6 +21,7 @@ #include #include #include +#include #include @@ -829,28 +830,19 @@ static int axi_dmac_probe(struct platform_device *pdev) struct device_node *of_channels, *of_chan; struct dma_device *dma_dev; struct axi_dmac *dmac; - struct resource *res; int ret; - dmac = devm_kzalloc(&pdev->dev, sizeof(*dmac), GFP_KERNEL); - if (!dmac) - return -ENOMEM; - - dmac->irq = platform_get_irq(pdev, 0); - if (dmac->irq < 0) - return dmac->irq; - if (dmac->irq == 0) + /* + * This macro internally combines following functions: + * devm_kzalloc, platform_get_resource, devm_ioremap_resource, + * devm_clk_get, platform_get_irq + */ + ret = devm_platform_probe_helper(pdev, dmac, NULL); + if (ret < 0) + return ret; + else if (!dmac->irq) return -EINVAL; - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - dmac->base = devm_ioremap_resource(&pdev->dev, res); - if (IS_ERR(dmac->base)) - return PTR_ERR(dmac->base); - - dmac->clk = devm_clk_get(&pdev->dev, NULL); - if (IS_ERR(dmac->clk)) - return PTR_ERR(dmac->clk); - INIT_LIST_HEAD(&dmac->chan.active_descs); of_channels = of_get_child_by_name(pdev->dev.of_node, "adi,channels"); From patchwork Sun Sep 15 07:32:36 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Satendra Singh Thakur X-Patchwork-Id: 11145905 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6EDCA912 for ; Sun, 15 Sep 2019 07:32:47 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4C8A721479 for ; Sun, 15 Sep 2019 07:32:47 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="QtyDwWHe" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726319AbfIOHcq (ORCPT ); Sun, 15 Sep 2019 03:32:46 -0400 Received: from mail-pg1-f196.google.com ([209.85.215.196]:34144 "EHLO mail-pg1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725497AbfIOHcq (ORCPT ); Sun, 15 Sep 2019 03:32:46 -0400 Received: by mail-pg1-f196.google.com with SMTP id n9so17546662pgc.1; Sun, 15 Sep 2019 00:32:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=epiWAfrrjHwKJt0b7IMtr8i9SbnEcdcq2Ym8PuAYz04=; b=QtyDwWHemh4cRk7EU4ZwvpL1HMwqx2nSdOePw1BNvFwHm0++GYgWCO69MOU5SAKKDm bKw7HlAcNKeeEef1wKUPYaoqxyyGhnUEnrX76doUT1E9IVXloFaZ5hCd8yamr+EFN5sm Qzlmxo7+hTrXuKITqoZuvRdpEeZn1nzaypHV7OdEL5a1O1G1pVVS8cErf1GaFIZinCFt qHt1+Hfyw3JpHB28dugHsdi6DRiIFHED+53aUfUVtD7k35ST9XD6p9FxKcc3djaGw4VK kVPj0oGNypP+oTC1Ps0drCM284c1u6ZwNTvUe/F2F7aWLOvfL5VR5LWWXjKdgbbMF+Ue W3aw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=epiWAfrrjHwKJt0b7IMtr8i9SbnEcdcq2Ym8PuAYz04=; b=ZAmaUnjIN/cPfO0AROWVAxN2ATsJil9qC3fAYnJcLGZvcsK0LbCYow4G61M0Av/ZZC SjuvRbRH0ImfEZ8zyR4pqnfRmjk5rQ5QIN7LQD4Yx4JrQg3TshX03UkgYX+fXmCek6iv fEjBTMIW6IyGtB1sR2OQz1z1qOxZOVj9djWmNr59I1bP3bNYtulQEfIS9HRBOv6h9mkR J4yi1ytYxRau76KaVCBCOEOcdJIWgNL413DgB2HPwwo1iF8eQMKPPL8fLK1vf0qSWl+0 03v3qJmuIcfb8Z4oj58WGgR/CeGoQ39Qaz0LNw+T5yLrdGHc9b4amlLH2xAqr+eUrVvf a8IA== X-Gm-Message-State: APjAAAWCjwDwQ8dcWEj6JMAgI66iJ1BYl7bU7IC+AG4v4HpHVtvC30KL gVEFVQOT9gzlN8EPI0bNwrk= X-Google-Smtp-Source: APXvYqxKE6UOnyayAFP+Ed+EdafQY4inmPdkuc4MpFTdLnndQPUnn3o556ROa4qcANt3ls98+BqUww== X-Received: by 2002:a63:5652:: with SMTP id g18mr19651857pgm.393.1568532765954; Sun, 15 Sep 2019 00:32:45 -0700 (PDT) Received: from satendra-MM061.ib-wrb304n.setup.in ([103.82.150.111]) by smtp.gmail.com with ESMTPSA id b6sm27961404pgq.26.2019.09.15.00.32.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Sep 2019 00:32:45 -0700 (PDT) From: Satendra Singh Thakur Cc: satendrasingh.thakur@hcl.com, Satendra Singh Thakur , =?utf-8?q?Andreas_F=C3=A4rber?= , Manivannan Sadhasivam , Vinod Koul , Dan Williams , linux-arm-kernel@lists.infradead.org, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 9/9] probe/dma/owl: removed redundant code from owl dma controller's probe function Date: Sun, 15 Sep 2019 13:02:36 +0530 Message-Id: <20190915073237.24176-1-sst2005@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190915072644.23329-1-sst2005@gmail.com> References: <20190915072644.23329-1-sst2005@gmail.com> To: unlisted-recipients:; (no To-header on input) Sender: dmaengine-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: dmaengine@vger.kernel.org 1. In order to remove duplicate code, following functions: platform_get_resource devm_kzalloc devm_ioremap_resource devm_clk_get platform_get_irq are replaced with a macro devm_platform_probe_helper. 2. This patch depends on the file include/linux/probe-helper.h which is pushed in previous patch [01/09]. Signed-off-by: Satendra Singh Thakur Signed-off-by: Satendra Singh Thakur --- drivers/dma/owl-dma.c | 29 +++++++++-------------------- 1 file changed, 9 insertions(+), 20 deletions(-) diff --git a/drivers/dma/owl-dma.c b/drivers/dma/owl-dma.c index 90bbcef99ef8..03e692fc25a1 100644 --- a/drivers/dma/owl-dma.c +++ b/drivers/dma/owl-dma.c @@ -23,6 +23,7 @@ #include #include #include +#include #include "virt-dma.h" #define OWL_DMA_FRAME_MAX_LENGTH 0xfffff @@ -1045,20 +1046,15 @@ static int owl_dma_probe(struct platform_device *pdev) { struct device_node *np = pdev->dev.of_node; struct owl_dma *od; - struct resource *res; int ret, i, nr_channels, nr_requests; - - od = devm_kzalloc(&pdev->dev, sizeof(*od), GFP_KERNEL); - if (!od) - return -ENOMEM; - - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (!res) - return -EINVAL; - - od->base = devm_ioremap_resource(&pdev->dev, res); - if (IS_ERR(od->base)) - return PTR_ERR(od->base); + /* + * This macro internally combines following functions: + * devm_kzalloc, platform_get_resource, devm_ioremap_resource, + * devm_clk_get, platform_get_irq + */ + ret = devm_platform_probe_helper(pdev, od, NULL); + if (ret < 0) + return ret; ret = of_property_read_u32(np, "dma-channels", &nr_channels); if (ret) { @@ -1105,18 +1101,11 @@ static int owl_dma_probe(struct platform_device *pdev) INIT_LIST_HEAD(&od->dma.channels); - od->clk = devm_clk_get(&pdev->dev, NULL); - if (IS_ERR(od->clk)) { - dev_err(&pdev->dev, "unable to get clock\n"); - return PTR_ERR(od->clk); - } - /* * Eventhough the DMA controller is capable of generating 4 * IRQ's for DMA priority feature, we only use 1 IRQ for * simplification. */ - od->irq = platform_get_irq(pdev, 0); ret = devm_request_irq(&pdev->dev, od->irq, owl_dma_interrupt, 0, dev_name(&pdev->dev), od); if (ret) {