Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp3334959pxb; Wed, 13 Oct 2021 04:00:40 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwWupeFBK18tZ2YrBN0m7XypRXXmc9MeanV0BINMUpDXhkXhlmD6LNZLf9l1Sv8IskdLhAd X-Received: by 2002:a17:906:2412:: with SMTP id z18mr19199133eja.56.1634122840638; Wed, 13 Oct 2021 04:00:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1634122840; cv=none; d=google.com; s=arc-20160816; b=vKFb9yfLld7KY9aQ2OyOLX1+uFTFg6xTTH+iZZqjpvUDFRn/dqDArLG0aPQT1Hy9Jy NNi9egC/NzPghc2FuJQQ3iR0677sstkOmOwcN0A/AkCOkmOx8nn+bHWTzmcQsJSQa2TE evnbiTcbasvnznEkdzXWOQ84YqiqY7NRSySFR55VWoVAE4JekowzUXsH793ccJoNLOEa kL8C7QtBDaqiYOahs7SZ3290HUFy+wgo6W23M0l5AydKPLFr8uD/Yiw/CfJHexUkAHrp 6yjhcWn9eE+09rN85LB4llHcJJd+tXG2jj1zQWe2uEgnIPQaevdD9OiaLYXk/A7RvVff TFUg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=o9zfEpAFP/UtYO0y7HUDPjv1/m+Sw2jOFwXawa2AyNU=; b=yUd8ny9B7h1atZKfY7T8EkwVGOaGqz+TatqzoCtbZO3VSZQKfgMnlOZB0vlvOC0BIf eEuOEqbeKhHRlbMtinStyxSRkZI5GxmoOLEG2BN3ownRArm2y9Z4noVphdoO16OCD7IL 2HNiRrgldW8+b4S8A+adaBmoI2gNhEm7+OtxfQhiIYfaljCZH2eZsXK95qaSmPzVGsFK KJC5ieSMxUOYlBFu5/CBtwDZSS+ghZ7+M/RtSYwf5UM/h8Fo2p83YjLKS3d/fJmOgdml DEm0tlbJdURFeWWtYwGHpJzHA3kwN9VkeZnz7A4SGfJRyxseEb7Zrg20Xg+5USzcsIlw Q1og== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=U67yZi0a; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id cc25si22886094edb.495.2021.10.13.03.59.59; Wed, 13 Oct 2021 04:00:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=U67yZi0a; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231137AbhJMLBN (ORCPT + 99 others); Wed, 13 Oct 2021 07:01:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56402 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230399AbhJMLAn (ORCPT ); Wed, 13 Oct 2021 07:00:43 -0400 Received: from mail-pj1-x102a.google.com (mail-pj1-x102a.google.com [IPv6:2607:f8b0:4864:20::102a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 12ACFC06176D for ; Wed, 13 Oct 2021 03:56:56 -0700 (PDT) Received: by mail-pj1-x102a.google.com with SMTP id pf6-20020a17090b1d8600b0019fa884ab85so4110395pjb.5 for ; Wed, 13 Oct 2021 03:56:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=o9zfEpAFP/UtYO0y7HUDPjv1/m+Sw2jOFwXawa2AyNU=; b=U67yZi0auHCjjwva0sTdaEAXRnJdVLTB7DviAcEjVZZdjq75nxAZmhS1lVAqvVDcVc iAg8QW6jDb1uWLzCAJGkmDFWHxJFej3DnyHNoiBuIDNtSfdpjJFLtzB2QtUvomNkQLPn Wc41ka+mc9w/5sEHMAMrZSqMWIHzuS1j3UOQsiQx19OmF045HMV0OmMbXQ8bz7gHIJ7g g2D1AJMtkNtXt43lmUTXZYXeBVFRHRAE6DNe7eq9mm+gxCBC1iWIQnAcfdAMZK0eiYqa y4VrOb1qZ8kwrHOwlguRF3zoYriskjonKpGNBp4fi82gltB6phplWw9fRCOYNtAEsqP9 RVag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=o9zfEpAFP/UtYO0y7HUDPjv1/m+Sw2jOFwXawa2AyNU=; b=iltR0L4O0aFiApbytnh1rrpYSnM2eJIYURL9ez2/+SiPvbMF71cjfw/0pCo8sRw1Wc E7gx0OuAmxPhpp16pOPlNqskZb4UhmoATGv+YxtlLFdCdqrrtUM23Z1K4dv+zNhbRKSN 5Uczt9pUWOcDBeIazdalLILe4wV/2SGTIijrZdtTwXsadoAVmvbVn0UtVTPzaEo8Ea/2 +J/HY1FLumnva8w8a+9yQkmUR1HN2XIzw8y3a23avUU1QWGmDXxBnWv8y7zBafbfO3TH wWTlkz7VZotJc+jGXa9K7zfL2ZAqwUqHWHCaBXDDubHaWdFVHrnfl5WOIrV77z0TBnns Tdgw== X-Gm-Message-State: AOAM531FsvDT6opWrchvT/txHLkZ8dxkW3UBASQDobkMS2D1ddq4x3jL l4ygY3RFRdwHw1gwbYHGJQSa6Q== X-Received: by 2002:a17:90a:df13:: with SMTP id gp19mr10540172pjb.151.1634122615608; Wed, 13 Oct 2021 03:56:55 -0700 (PDT) Received: from localhost.name ([122.161.48.68]) by smtp.gmail.com with ESMTPSA id b13sm6155351pjl.15.2021.10.13.03.56.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Oct 2021 03:56:55 -0700 (PDT) From: Bhupesh Sharma To: linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org Cc: bhupesh.sharma@linaro.org, bhupesh.linux@gmail.com, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, robh+dt@kernel.org, agross@kernel.org, herbert@gondor.apana.org.au, davem@davemloft.net, Thara Gopinath , Bjorn Andersson Subject: [PATCH v4 13/20] dma: qcom: bam_dma: Add support to initialize interconnect path Date: Wed, 13 Oct 2021 16:25:34 +0530 Message-Id: <20211013105541.68045-14-bhupesh.sharma@linaro.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211013105541.68045-1-bhupesh.sharma@linaro.org> References: <20211013105541.68045-1-bhupesh.sharma@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org From: Thara Gopinath BAM dma engine associated with certain hardware blocks could require relevant interconnect pieces be initialized prior to the dma engine initialization. For e.g. crypto bam dma engine on sm8250. Such requirement is passed on to the bam dma driver from dt via the "interconnects" property. Add support in bam_dma driver to check whether the interconnect path is accessible/enabled prior to attempting driver intializations. Cc: Bjorn Andersson Cc: Rob Herring Signed-off-by: Bhupesh Sharma [Make header file inclusion alphabetical] Signed-off-by: Thara Gopinath --- drivers/dma/qcom/bam_dma.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/drivers/dma/qcom/bam_dma.c b/drivers/dma/qcom/bam_dma.c index c8a77b428b52..fc84ef42507d 100644 --- a/drivers/dma/qcom/bam_dma.c +++ b/drivers/dma/qcom/bam_dma.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #include @@ -392,6 +393,7 @@ struct bam_device { const struct reg_offset_data *layout; struct clk *bamclk; + struct icc_path *mem_path; int irq; /* dma start transaction tasklet */ @@ -1284,9 +1286,18 @@ static int bam_dma_probe(struct platform_device *pdev) return ret; } + /* Ensure that interconnects are initialized */ + bdev->mem_path = of_icc_get(bdev->dev, "memory"); + + if (IS_ERR(bdev->mem_path)) { + ret = PTR_ERR(bdev->mem_path); + dev_err(bdev->dev, "failed to acquire icc path %d\n", ret); + goto err_disable_clk; + } + ret = bam_init(bdev); if (ret) - goto err_disable_clk; + goto err_icc_path_put; tasklet_setup(&bdev->task, dma_tasklet); @@ -1371,6 +1382,8 @@ static int bam_dma_probe(struct platform_device *pdev) tasklet_kill(&bdev->channels[i].vc.task); err_tasklet_kill: tasklet_kill(&bdev->task); +err_icc_path_put: + icc_put(bdev->mem_path); err_disable_clk: clk_disable_unprepare(bdev->bamclk); @@ -1406,6 +1419,7 @@ static int bam_dma_remove(struct platform_device *pdev) tasklet_kill(&bdev->task); + icc_put(bdev->mem_path); clk_disable_unprepare(bdev->bamclk); return 0; -- 2.31.1