Received: by 2002:a05:7412:d8a:b0:e2:908c:2ebd with SMTP id b10csp3343882rdg; Tue, 17 Oct 2023 11:33:43 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFtVRHfl+EPy59qMVBcSnW2cS26DwDm/xPwEm1fkaw+0Dx/SDTcfVWIGla43AmUyboWsA+V X-Received: by 2002:a05:6a20:1588:b0:15d:9ee7:180a with SMTP id h8-20020a056a20158800b0015d9ee7180amr2704762pzj.4.1697567623491; Tue, 17 Oct 2023 11:33:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1697567623; cv=none; d=google.com; s=arc-20160816; b=0OtPYXKI/gZS7awerU72v+4zmHF6VFqrXLYyuueAuyVYlh49vLkR/Iq2gfyGfoG3H/ NEHDvebGQX6R9H+NUaJhHioxsymqdfrwTsZ6NfzGihHVspQQwZ/iCCqWVI2MzzkzxXp3 ivH03JXblHLObHzei/A3mIHx8N9a2g0zeByKT0tIfj2W7dYZLOmV3bJvvMQIDp6dBWMG jMhbWQvtSm1AXYEJFOmoSGTJO9iU9uEuZ+5TjygbFhABXuPxYTZDzd//3CwXaW6qEIlK qsS3/N/MG68B3a68gRgy7U2pIx+lFYmHdxE43WW9ScfAE6whLNBWRZbr4ZHzrVTY6ooe C0Lw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:dkim-signature; bh=AcBNvDPm+5lurRZbHk0V2IeK1x1A6vL27sfb3JeZGgA=; fh=//oGtJwtcq2S2I6Zu1zUhwxN+WwWohEz8GjTHtRywOo=; b=d8H0m2rZJEj4unVX0q7YEmhphw+jmCNkkxnoWlUABU8p6+WTe9IGgIA9ZVbKX6Fu7V KcqCLisJDjBwYeNabZx95iuPZyDRVYQhpj0ddP+gwmyPszXNDOeqCRbkuJWr+djm8KGW BTFmYTLjei8Njq5/Qo8fBbKIKQZ0Bz3GoWXGpoF64pmvAeArdS6O1LnOOdr8xoFLV1ZB 9AwwyEk2+j0sxKLyK1iZ+LgrFRd/a8+IPI+AW5pVSSeaGWDGVwjyu4VGE11wmozJfY69 N7WOSzy21+yLRJRVu6gTpyhqnLRkn9vsySBGWx7zq1qCQRke9QszCclPcBRtBlhsmLIh 8w4g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sifive.com header.s=google header.b=htptCsKq; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=sifive.com Return-Path: Received: from howler.vger.email (howler.vger.email. [23.128.96.34]) by mx.google.com with ESMTPS id z16-20020a170903019000b001c60ee5a9dcsi2420160plg.428.2023.10.17.11.33.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Oct 2023 11:33:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) client-ip=23.128.96.34; Authentication-Results: mx.google.com; dkim=pass header.i=@sifive.com header.s=google header.b=htptCsKq; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=sifive.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id B722A80B6317; Tue, 17 Oct 2023 11:33:40 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344094AbjJQSdc (ORCPT + 99 others); Tue, 17 Oct 2023 14:33:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51124 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1343887AbjJQSdb (ORCPT ); Tue, 17 Oct 2023 14:33:31 -0400 Received: from mail-qk1-x72d.google.com (mail-qk1-x72d.google.com [IPv6:2607:f8b0:4864:20::72d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AB66190 for ; Tue, 17 Oct 2023 11:33:29 -0700 (PDT) Received: by mail-qk1-x72d.google.com with SMTP id af79cd13be357-7741c2e76a3so393576085a.1 for ; Tue, 17 Oct 2023 11:33:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1697567609; x=1698172409; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=AcBNvDPm+5lurRZbHk0V2IeK1x1A6vL27sfb3JeZGgA=; b=htptCsKqExIqBn7UboDsXmhXZjDi4kbkTB8Mqkbk3HHeEgQPSdrql5rBR0n35IkrbH tYuouYgaaeRI5i5oi1iocSykHEXE04BX2zcOG2frTPHEIkwtCUGQEd85JiXwiFyQlhov IldEqSGJBtcT/FNWhsab59VzV8/R2r9zzaqyuP7ZkmbTbCWMuOUwKsx9pXDFb8l8YwKi 183gLWSFCuiYhtUeS++gmuPRJsbcmxskQY8S7l7ohGaWlPkWB+oxw68oTiKg3QoF2akf LdIFpBml7LINw1SCFmBcgs/l53eZ3wEaybuMd2HaaVNBMVO0ZmfchK8+ZUProIUaQrCI v3jQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697567609; x=1698172409; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=AcBNvDPm+5lurRZbHk0V2IeK1x1A6vL27sfb3JeZGgA=; b=PzQ2QgCGgXbrRB8pckHmItkDDHMcQb6fJdqERxVxGj4KaQ0MCkd/LM2ile05i0uBhr QVs68+UGct+TC9efaLpfdY01ufUlvQ1X0H/6FbfjZIYjzCdG4qJJLsw/qPiUJxcKUxTF I7J9Ne+Hx69ERO96fD30p+cJYhY3dK0/kK3qqvWHdmEyYrDoSbqa+d2q3zQ5QaKjQiql r+tOfNvhcrRq6VfWHFI6ozSxyG6DNZWUjyWpxvavrAHAYeBSI5coGalEtlZ36FaLBPbU s6uAaBIyFTERlNYMBNab3sCosaeIn/fEnaeGJlQFYgeVhUQ3opo+K+skoixl7wXjoaal iE5Q== X-Gm-Message-State: AOJu0YxpbZWvN8Qxfw2BX4uGNa3geQc9VBsuKzTS4FBLV4LXFmhDMLSk kbgyBKi8gsCXiyKIUooCoOcTFw== X-Received: by 2002:a05:620a:1229:b0:76d:ada0:4c0 with SMTP id v9-20020a05620a122900b0076dada004c0mr2765787qkj.76.1697567608779; Tue, 17 Oct 2023 11:33:28 -0700 (PDT) Received: from ?IPV6:2600:1700:2000:b002:95cc:ccc5:95bc:7d2c? ([2600:1700:2000:b002:95cc:ccc5:95bc:7d2c]) by smtp.gmail.com with ESMTPSA id f22-20020a05620a12f600b00765aa3ffa07sm866623qkl.98.2023.10.17.11.33.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 17 Oct 2023 11:33:28 -0700 (PDT) Message-ID: Date: Tue, 17 Oct 2023 13:33:27 -0500 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 1/4] dmaengine: sf-pdma: Support of_dma_controller_register() Content-Language: en-US To: shravan chippa , green.wan@sifive.com, vkoul@kernel.org, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, palmer@dabbelt.com, paul.walmsley@sifive.com, conor+dt@kernel.org Cc: dmaengine@vger.kernel.org, devicetree@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, nagasuresh.relli@microchip.com, praveen.kumar@microchip.com References: <20231003042215.142678-1-shravan.chippa@microchip.com> <20231003042215.142678-2-shravan.chippa@microchip.com> From: Samuel Holland In-Reply-To: <20231003042215.142678-2-shravan.chippa@microchip.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on howler.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Tue, 17 Oct 2023 11:33:41 -0700 (PDT) Hi, On 2023-10-02 11:22 PM, shravan chippa wrote: > From: Shravan Chippa > > Update sf-pdma driver to adopt generic DMA device tree bindings. > It calls of_dma_controller_register() with sf-pdma specific > of_dma_xlate to get the generic DMA device tree helper support > and the DMA clients can look up the sf-pdma controller using > standard APIs. > > Signed-off-by: Shravan Chippa > --- > drivers/dma/sf-pdma/sf-pdma.c | 44 +++++++++++++++++++++++++++++++++++ > 1 file changed, 44 insertions(+) > > diff --git a/drivers/dma/sf-pdma/sf-pdma.c b/drivers/dma/sf-pdma/sf-pdma.c > index d1c6956af452..06a0912a12a1 100644 > --- a/drivers/dma/sf-pdma/sf-pdma.c > +++ b/drivers/dma/sf-pdma/sf-pdma.c > @@ -20,6 +20,7 @@ > #include > #include > #include > +#include > #include > > #include "sf-pdma.h" > @@ -490,6 +491,33 @@ static void sf_pdma_setup_chans(struct sf_pdma *pdma) > } > } > > +static struct dma_chan *sf_pdma_of_xlate(struct of_phandle_args *dma_spec, > + struct of_dma *ofdma) > +{ > + struct sf_pdma *pdma = ofdma->of_dma_data; > + struct device *dev = pdma->dma_dev.dev; > + struct sf_pdma_chan *chan; > + struct dma_chan *c; > + u32 channel_id; > + > + if (dma_spec->args_count != 1) { > + dev_err(dev, "Bad number of cells\n"); > + return NULL; > + } > + > + channel_id = dma_spec->args[0]; > + > + chan = &pdma->chans[channel_id]; > + > + c = dma_get_slave_channel(&chan->vchan.chan); This does not look right to me. All of the channels in the controller are identical and support arbitrary addresses, so there is no need to use a specific physical channel. And unless Microchip has added something on top, the only way to trigger a transfer is through the MMIO interface, so there is no request ID to differentiate virtual channels either. So it seems to me that #dma-cells should really be 0, and this function should just call dma_get_any_slave_channel(). Regards, Samuel > + if (!c) { > + dev_err(dev, "No more channels available\n"); > + return NULL; > + } > + > + return c; > +} > + > static int sf_pdma_probe(struct platform_device *pdev) > { > struct sf_pdma *pdma; > @@ -563,7 +591,20 @@ static int sf_pdma_probe(struct platform_device *pdev) > return ret; > } > > + ret = of_dma_controller_register(pdev->dev.of_node, > + sf_pdma_of_xlate, pdma); > + if (ret < 0) { > + dev_err(&pdev->dev, > + "Can't register SiFive Platform OF_DMA. (%d)\n", ret); > + goto err_unregister; > + } > + > return 0; > + > +err_unregister: > + dma_async_device_unregister(&pdma->dma_dev); > + > + return ret; > } > > static int sf_pdma_remove(struct platform_device *pdev) > @@ -583,6 +624,9 @@ static int sf_pdma_remove(struct platform_device *pdev) > tasklet_kill(&ch->err_tasklet); > } > > + if (pdev->dev.of_node) > + of_dma_controller_free(pdev->dev.of_node); > + > dma_async_device_unregister(&pdma->dma_dev); > > return 0;