Received: by 2002:a05:6a10:a852:0:0:0:0 with SMTP id d18csp810728pxy; Wed, 5 May 2021 14:40:01 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzhTq+AiCKlrlcIvrv1hHvNJOLf2MIkRzMtnl5rrikupHJXL1P//suYJyrnW+0w0Hnne1N4 X-Received: by 2002:a17:906:4159:: with SMTP id l25mr860841ejk.76.1620250801382; Wed, 05 May 2021 14:40:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620250801; cv=none; d=google.com; s=arc-20160816; b=rNFscyU6GLgtA31lavHFJGeOgePX3ExBZTUMhabLQVkm2eMI9TDEmz54RNGwJ6WGLm INw5nUHcr3SwStf2S2Wd4pwXLFyQvBeR8NUtZIl2jyunHYyBpnw/Sa1GX5XJmIhmziqp tT31MDuOxhSvySObtZPToYeJ8QzY0iUPfUJHrP39asP85/+CCQ6xWooC4Osy6Wy6AKDa 4A36lIBMFuAhskmlr63yKhTZrmfOVpB9wI8hMtpNQOFpR3l1OEivRZAHasgSbUPmMVJT v8leSGrtE6Hp+yAvGRaekuP3Nfp5m1RPmVuw6pajGg7v5LOL5SIBLIRt1h/9rJZZCS2I 2uog== 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=166D0K4ZGZhubJGZmHB+5zYKTmFkS5cEFQyCpyijewQ=; b=OOtLiKUGOgPExDeJtSqczH/2luyFKr8M5xqyZ4aLNmiEZgmoeYtZcZ0rMAdQ5+VU9b XJUKgPv4mz7Gdz+iaJ1wnt/NSLXwYCnkFoqOsVmNynA5Z2pgluLaiC4u/12IMzb/40vP oRnUsncAOm+KDjqHKe6HWdJ0OO//8eF4erXInbDjuzSkZmd/WNdZn8kaDnx8Z/OLIAQc v+EQ1nQLBt3S1D2QennrrRycFhBdHuNKU4A8/O5zmcHvHh+e5tMqz+TXUgB+VcwW12/e 1Xh0QcowfL8X2aIls8GCQQ9QXqMI1WTyu1ckgi9Komtc6GxmXOt6XL8UYHYCcaKzzR4M D2kg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ZDZZb7Cw; 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 c14si622029edr.0.2021.05.05.14.39.38; Wed, 05 May 2021 14:40:01 -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=ZDZZb7Cw; 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 S234189AbhEEVju (ORCPT + 99 others); Wed, 5 May 2021 17:39:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49768 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234202AbhEEVjr (ORCPT ); Wed, 5 May 2021 17:39:47 -0400 Received: from mail-pg1-x52e.google.com (mail-pg1-x52e.google.com [IPv6:2607:f8b0:4864:20::52e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7203DC06138B for ; Wed, 5 May 2021 14:38:50 -0700 (PDT) Received: by mail-pg1-x52e.google.com with SMTP id d10so2776410pgf.12 for ; Wed, 05 May 2021 14:38:50 -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=166D0K4ZGZhubJGZmHB+5zYKTmFkS5cEFQyCpyijewQ=; b=ZDZZb7CwsOszsg37MZTiSSdrLdZVbKQb4tAf8nK0Rhm53S9sbMUh9dBWurPWpKzPYh 8jUcoB637ubZFVaLitqeezh6LBG+qmq9ce3Dnj6MwXpHl6RpCS1xATvsUXVqYIUHsynD 8OnBfpBmd2KKUYxy5a/U1q7MN0k74eWYhIUkhL0zXx1GvLOk8+Rnj5EjZcpyKGc38rf6 PrqBDZzzTck6yA08ZWNUPXpIkUxMjpk859R1N5eYaS5GVmNYIV0Q9mO6/3uRQPd6gMQh LE2weq0rtayBlTQcaui9qmOlSDlHO3Rv4FhgKuqRxuVUUON1tXYJnT/0aFplkns9RrYH GA7A== 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:mime-version:content-transfer-encoding; bh=166D0K4ZGZhubJGZmHB+5zYKTmFkS5cEFQyCpyijewQ=; b=DGwfOmmKPY9j9x2tsoB1zx7JDg0v71G997Px1T0VB94+PGdj2Uve8WVPPHnAIsmUwO roGgNlumShvuHZj6USQyi3HBE7kRNS9Z9YGRX089jOOFTF9A/qu3nhCQ9L+ArDSkNm86 h7mo/xi740ARKOmWQF8flMtpZmHTKXXhMhaqxUWRWzOceGQp3Z2jOz4bkP0/7eweugP0 LEEUJtXiOykcflxMGNKpNCAm6L64a0MMsXgyEZl1fzYqibkUrx1FMM9nvLo7ON/K8eox Yql+c+hrDoxhbm7Te4ijQNFN0vnGSok1+hcb+4MWy/Ul9p+xBV/M8WvJt1iKsrVqh9fs Kv5g== X-Gm-Message-State: AOAM532HE7+0waOz2JDiYbGPlIJw2KImqZZmkdksXmAo/rQNq/sYQRa/ tYOtquCNGoWKjgYbR226n666Hg== X-Received: by 2002:aa7:87d5:0:b029:25a:b5f8:15ab with SMTP id i21-20020aa787d50000b029025ab5f815abmr1017494pfo.22.1620250730014; Wed, 05 May 2021 14:38:50 -0700 (PDT) Received: from localhost.localdomain.name ([223.235.141.68]) by smtp.gmail.com with ESMTPSA id z26sm167031pfq.86.2021.05.05.14.38.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 05 May 2021 14:38:49 -0700 (PDT) From: Bhupesh Sharma To: linux-arm-msm@vger.kernel.org Cc: bhupesh.sharma@linaro.org, Thara Gopinath , Bjorn Andersson , Rob Herring , Andy Gross , Herbert Xu , "David S . Miller" , Stephen Boyd , Michael Turquette , Vinod Koul , dmaengine@vger.kernel.org, linux-clk@vger.kernel.org, linux-crypto@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, bhupesh.linux@gmail.com Subject: [PATCH v2 08/17] dma: qcom: bam_dma: Add support to initialize interconnect path Date: Thu, 6 May 2021 03:07:22 +0530 Message-Id: <20210505213731.538612-9-bhupesh.sharma@linaro.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210505213731.538612-1-bhupesh.sharma@linaro.org> References: <20210505213731.538612-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 Cc: Andy Gross Cc: Herbert Xu Cc: David S. Miller Cc: Stephen Boyd Cc: Michael Turquette Cc: Vinod Koul Cc: dmaengine@vger.kernel.org Cc: linux-clk@vger.kernel.org Cc: linux-crypto@vger.kernel.org Cc: devicetree@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: bhupesh.linux@gmail.com 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.30.2