Received: by 10.223.176.46 with SMTP id f43csp2703046wra; Mon, 22 Jan 2018 01:56:09 -0800 (PST) X-Google-Smtp-Source: AH8x224QTqqdv2TU2Xn8aaraMpybAA7TMZSqAbsl3vlO7nXcmrDaSu/pNHh3H+S2axm/SJ65o32E X-Received: by 2002:a17:902:5497:: with SMTP id e23-v6mr3115012pli.194.1516614969113; Mon, 22 Jan 2018 01:56:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516614969; cv=none; d=google.com; s=arc-20160816; b=hV6wcN2nHuLNsYioNdbxMHwwbXfvWJJ+r2F7i3W/IiGY7smXiF3m2+btHJrRI5wBFl /YMDH+DnxGxG/uXHlDP/r0rOVzP2d6fTdQGu/o53M/hl5kJQtNmZzoURiGA2jHZy2ARz Gw1eyiIRWSUdkxQmaJon1TR8uiV2M54EkutvYTJ8XPeuYaVk0shcJohudMZcpvqzGjSL Om9rLdxpV3hf+JyLIZ6fUffbqDrZW5xHtlbhNYAv7zruC6dIb1EvVzklqTuLMDp/nosG SszCsTN7iZ6v54KKw/WxR8Jy0Ie9rav0+MN4RIrej64ai0Z0QU3LU48HTE6h7sTk3yHr YMNA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature :arc-authentication-results; bh=NeygyFyp1LBBoVQ9mG+xoMCQIjaJQ0RZ50BikNDtXAA=; b=qcAgZFVzc/R7bNnuzp/pPli86GPC3XNIQbDA4geYhyx/wae4+rLRc0AkEV3d7yUUYK KhlxdRmmiMo6NwGl5UZAq9o8zSRkv6Z+u0blCH6vvJ6wU/rvV+TPyzUK+b7PCYD9P5yN W4k9sHae46xDorMe8VkR+aE/MDPbz0PpR3e8aSY6vfm98wj3awtW+jacZjVZbetlNrx2 IE04Ls+oq+womBdGhxqYlqGSH4/7S29aveusnZm9XbUdU1pMIgTt8sBz4T1zU4od6Qsj Iwe/tXlfSBSpQ145aP1xgjzOe73E1rxHjJDuIfn52q2Ckc02h5CJ09IGDMjs5I9JYBzJ +a6Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=emnvWnfe; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-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. [209.132.180.67]) by mx.google.com with ESMTP id k11-v6si3237611pls.631.2018.01.22.01.55.55; Mon, 22 Jan 2018 01:56:09 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=emnvWnfe; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-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 S1751432AbeAVJzN (ORCPT + 99 others); Mon, 22 Jan 2018 04:55:13 -0500 Received: from mail-wm0-f67.google.com ([74.125.82.67]:40977 "EHLO mail-wm0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750945AbeAVJzJ (ORCPT ); Mon, 22 Jan 2018 04:55:09 -0500 Received: by mail-wm0-f67.google.com with SMTP id f71so15080712wmf.0 for ; Mon, 22 Jan 2018 01:55:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=NeygyFyp1LBBoVQ9mG+xoMCQIjaJQ0RZ50BikNDtXAA=; b=emnvWnfeoKENXi9TohxzkTvkfTgvAp1F2vbdwnY//NGsDcqSNanb/MTjohh2ZlbkFY /hY5t82ydenWHpSw9g07uRr9sJSibhyhh0KX1Bad5YZDqr0TYu9K/lOGLL9OWwmrewrA DecyrZmSbVew0fy524GGbXvwXKMJWkTrft47U= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=NeygyFyp1LBBoVQ9mG+xoMCQIjaJQ0RZ50BikNDtXAA=; b=LaSe42Wo4ZByAXWdCqKw8bqMWdOYl9pC4G1EVcf8ha9OVbEjhckzNp1JQXnDkD4J2p aOd9Dq3nT4y+3dPhjwZPIfAMs1Lo9kTHrPWXPBsWQ5jhDwSDHtRs1h/AoLi3fXC3NTht V2xp86dZueMR6OhTQyB1INPw98r1bZf5OZ7JHe46IiRTT3HLUzjKdMW2cfPblpwg79uc O1auVdbMnMsZLCePgwT80L2lcVrY6gOg8GC4XOQ0FIcFhysacjOHgc8UDEBs67eo8vwg NqCwv2Cj6X1yI6SAkYo6J5tVznmi9fFcgTGO119A3YABsNtUQk/5+IicWTH7ujsjvBiK bqOQ== X-Gm-Message-State: AKwxytfuktfK59U3rWtb9oSymHXN8AYlQChOHa1BD4Wmf9b9dpra1YjB I5uTku4dCsFXm6ejv9rOcxAPgg== X-Received: by 10.80.244.23 with SMTP id r23mr12179427edm.2.1516614907868; Mon, 22 Jan 2018 01:55:07 -0800 (PST) Received: from [192.168.0.20] (cpc90716-aztw32-2-0-cust92.18-1.cable.virginm.net. [86.26.100.93]) by smtp.googlemail.com with ESMTPSA id k12sm10557362edl.86.2018.01.22.01.55.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 22 Jan 2018 01:55:07 -0800 (PST) Subject: Re: [PATCH 2/4] dmaengine: qcom: bam_dma: add num-channels binding for remotely controlled To: Vinod Koul Cc: Andy Gross , dmaengine@vger.kernel.org, Rob Herring , Mark Rutland , David Brown , Dan Williams , 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 References: <20180116190236.14558-1-srinivas.kandagatla@linaro.org> <20180116190236.14558-3-srinivas.kandagatla@linaro.org> <20180119055509.GW18649@localhost> From: Srinivas Kandagatla Message-ID: <57712340-96b3-0be3-81e3-ec107c559a2e@linaro.org> Date: Mon, 22 Jan 2018 09:55:06 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: <20180119055509.GW18649@localhost> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 19/01/18 05:55, Vinod Koul wrote: > On Tue, Jan 16, 2018 at 07:02:34PM +0000, srinivas.kandagatla@linaro.org wrote: >> From: Srinivas Kandagatla >> >> 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 >> --- >> 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? No, bindings "num-channels" and "num-ees" are applicable to remote controlled instances only, which is documented in the DT bindings. Normally these values come from register reads, which are not possible in case of remotely controlled instances as BAM driver would not know if the remote is powered up or not. thanks, srini > >> + 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 >> >