devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Vinod Koul <vinod.koul@intel.com>
To: srinivas.kandagatla@linaro.org
Cc: Andy Gross <andy.gross@linaro.org>,
	dmaengine@vger.kernel.org, Rob Herring <robh+dt@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	David Brown <david.brown@linaro.org>,
	Dan Williams <dan.j.williams@intel.com>,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-msm@vger.kernel.org, linux-soc@vger.kernel.org,
	yanhe@quicinc.com, ramkri@qti.qualcomm.com, sdharia@quicinc.com
Subject: Re: [PATCH 2/4] dmaengine: qcom: bam_dma: add num-channels binding for remotely controlled
Date: Fri, 19 Jan 2018 11:25:09 +0530	[thread overview]
Message-ID: <20180119055509.GW18649@localhost> (raw)
In-Reply-To: <20180116190236.14558-3-srinivas.kandagatla@linaro.org>

On Tue, Jan 16, 2018 at 07:02:34PM +0000, srinivas.kandagatla@linaro.org wrote:
> From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> 
> When Linux is master of BAM, it can directly read registers to know number
> of supported channels, however when its remotely controlled reading these
> registers would trigger a crash if the BAM is not yet intialized/powered up
> on the remote side.
> 
> This patch adds num-channels binding to specify number of supported
> dma channels on remotely controlled BAM.
> 
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> ---
>  Documentation/devicetree/bindings/dma/qcom_bam_dma.txt |  2 ++
>  drivers/dma/qcom/bam_dma.c                             | 13 +++++++++++--
>  2 files changed, 13 insertions(+), 2 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/dma/qcom_bam_dma.txt b/Documentation/devicetree/bindings/dma/qcom_bam_dma.txt
> index 9cbf5d9df8fd..aa6822cbb230 100644
> --- a/Documentation/devicetree/bindings/dma/qcom_bam_dma.txt
> +++ b/Documentation/devicetree/bindings/dma/qcom_bam_dma.txt
> @@ -15,6 +15,8 @@ Required properties:
>    the secure world.
>  - qcom,controlled-remotely : optional, indicates that the bam is controlled by
>    remote proccessor i.e. execution environment.
> +- num-channels : optional, indicates supported number of DMA channels in a
> +  remotely controlled bam.
>  
>  Example:
>  
> diff --git a/drivers/dma/qcom/bam_dma.c b/drivers/dma/qcom/bam_dma.c
> index 78e488e8f96d..523bd178047a 100644
> --- a/drivers/dma/qcom/bam_dma.c
> +++ b/drivers/dma/qcom/bam_dma.c
> @@ -1083,8 +1083,10 @@ static int bam_init(struct bam_device *bdev)
>  	if (bdev->ee >= val)
>  		return -EINVAL;
>  
> -	val = readl_relaxed(bam_addr(bdev, 0, BAM_NUM_PIPES));
> -	bdev->num_channels = val & BAM_NUM_PIPES_MASK;
> +	if (!bdev->num_channels) {
> +		val = readl_relaxed(bam_addr(bdev, 0, BAM_NUM_PIPES));
> +		bdev->num_channels = val & BAM_NUM_PIPES_MASK;
> +	}
>  
>  	if (bdev->controlled_remotely)
>  		return 0;
> @@ -1179,6 +1181,13 @@ static int bam_dma_probe(struct platform_device *pdev)
>  	bdev->controlled_remotely = of_property_read_bool(pdev->dev.of_node,
>  						"qcom,controlled-remotely");
>  
> +	if (bdev->controlled_remotely) {

hmm so if we remove the remotely controlled instanced from DT and then Linux
won't see them and not do anything. Do we need to do configuration of these
instances too?

> +		ret = of_property_read_u32(pdev->dev.of_node, "num-channels",
> +					   &bdev->num_channels);
> +		if (ret)
> +			dev_err(bdev->dev, "num-channels unspecified in dt\n");
> +	}
> +
>  	bdev->bamclk = devm_clk_get(bdev->dev, "bam_clk");
>  	if (IS_ERR(bdev->bamclk)) {
>  		bdev->bamclk = NULL;
> -- 
> 2.15.1
> 

-- 
~Vinod

  reply	other threads:[~2018-01-19  5:55 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-16 19:02 [PATCH 0/4] dmaengine: qcom: bam_dma: fixes for remotely controlled bam srinivas.kandagatla
2018-01-16 19:02 ` [PATCH 1/4] dmaengine: qcom: bam_dma: make bam clk optional srinivas.kandagatla
2018-01-16 19:38   ` Sagar Dharia
2018-01-17  9:46     ` Srinivas Kandagatla
2018-01-19  5:52   ` Vinod Koul
2018-01-22  9:55     ` Srinivas Kandagatla
     [not found]       ` <8dfa8ba1-6e98-a8e4-614c-592861cef571-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2018-01-23  9:19         ` Vinod Koul
2018-01-23  9:20           ` Srinivas Kandagatla
2018-01-16 19:02 ` [PATCH 3/4] dmaengine: qcom: bam_dma: do not write to global regs in remote mode srinivas.kandagatla
2018-01-16 19:02 ` [PATCH 4/4] dmaengine: qcom: bam_dma: Add num-ees dt binding for remotely controlled srinivas.kandagatla
     [not found]   ` <20180116190236.14558-5-srinivas.kandagatla-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2018-01-29 16:21     ` Rob Herring
2018-01-30  9:18       ` Srinivas Kandagatla
     [not found] ` <20180116190236.14558-1-srinivas.kandagatla-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2018-01-16 19:02   ` [PATCH 2/4] dmaengine: qcom: bam_dma: add num-channels " srinivas.kandagatla-QSEj5FYQhm4dnm+yROfE0A
2018-01-19  5:55     ` Vinod Koul [this message]
2018-01-22  9:55       ` Srinivas Kandagatla
     [not found]     ` <20180116190236.14558-3-srinivas.kandagatla-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2018-01-29 16:19       ` Rob Herring
2018-01-17 10:18   ` [PATCH 0/4] dmaengine: qcom: bam_dma: fixes for remotely controlled bam Vinod Koul
2018-01-17 10:55     ` Srinivas Kandagatla
2018-01-17 15:59       ` Vinod Koul

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180119055509.GW18649@localhost \
    --to=vinod.koul@intel.com \
    --cc=andy.gross@linaro.org \
    --cc=dan.j.williams@intel.com \
    --cc=david.brown@linaro.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dmaengine@vger.kernel.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-soc@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=ramkri@qti.qualcomm.com \
    --cc=robh+dt@kernel.org \
    --cc=sdharia@quicinc.com \
    --cc=srinivas.kandagatla@linaro.org \
    --cc=yanhe@quicinc.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).