From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [4/7] dmaengine: sprd: Add device validation to support multiple controllers From: Baolin Wang Message-Id: Date: Mon, 29 Apr 2019 20:20:26 +0800 To: Vinod Koul Cc: Dan Williams , eric.long@unisoc.com, Orson Zhai , Chunyan Zhang , Mark Brown , dmaengine@vger.kernel.org, LKML List-ID: T24gTW9uLCAyOSBBcHIgMjAxOSBhdCAxOTo1NywgVmlub2QgS291bCA8dmtvdWxAa2VybmVsLm9y Zz4gd3JvdGU6Cj4KPiBPbiAxNS0wNC0xOSwgMjA6MTQsIEJhb2xpbiBXYW5nIHdyb3RlOgo+ID4g RnJvbTogRXJpYyBMb25nIDxlcmljLmxvbmdAdW5pc29jLmNvbT4KPiA+Cj4gPiBTaW5jZSB3ZSBj YW4gc3VwcG9ydCBtdWx0aXBsZSBETUEgZW5naW5lIGNvbnRyb2xsZXJzLCB3ZSBzaG91bGQgYWRk Cj4gPiBkZXZpY2UgdmFsaWRhdGlvbiBpbiBmaWx0ZXIgZnVuY3Rpb24gdG8gY2hlY2sgaWYgdGhl IGNvcnJlY3QgY29udHJvbGxlcgo+ID4gdG8gYmUgcmVxdWVzdGVkLgo+ID4KPiA+IFNpZ25lZC1v ZmYtYnk6IEVyaWMgTG9uZyA8ZXJpYy5sb25nQHVuaXNvYy5jb20+Cj4gPiBTaWduZWQtb2ZmLWJ5 OiBCYW9saW4gV2FuZyA8YmFvbGluLndhbmdAbGluYXJvLm9yZz4KPiA+IC0tLQo+ID4gIGRyaXZl cnMvZG1hL3NwcmQtZG1hLmMgfCAgICA1ICsrKysrCj4gPiAgMSBmaWxlIGNoYW5nZWQsIDUgaW5z ZXJ0aW9ucygrKQo+ID4KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS9zcHJkLWRtYS5jIGIv ZHJpdmVycy9kbWEvc3ByZC1kbWEuYwo+ID4gaW5kZXggMGY5MmU2MC4uOWY5OWQ0YiAxMDA2NDQK PiA+IC0tLSBhL2RyaXZlcnMvZG1hL3NwcmQtZG1hLmMKPiA+ICsrKyBiL2RyaXZlcnMvZG1hL3Nw cmQtZG1hLmMKPiA+IEBAIC0xMDIwLDggKzEwMjAsMTMgQEAgc3RhdGljIHZvaWQgc3ByZF9kbWFf ZnJlZV9kZXNjKHN0cnVjdCB2aXJ0X2RtYV9kZXNjICp2ZCkKPiA+ICBzdGF0aWMgYm9vbCBzcHJk X2RtYV9maWx0ZXJfZm4oc3RydWN0IGRtYV9jaGFuICpjaGFuLCB2b2lkICpwYXJhbSkKPiA+ICB7 Cj4gPiAgICAgICBzdHJ1Y3Qgc3ByZF9kbWFfY2huICpzY2hhbiA9IHRvX3NwcmRfZG1hX2NoYW4o Y2hhbik7Cj4gPiArICAgICBzdHJ1Y3Qgb2ZfcGhhbmRsZV9hcmdzICpkbWFfc3BlYyA9Cj4gPiAr ICAgICAgICAgICAgIGNvbnRhaW5lcl9vZihwYXJhbSwgc3RydWN0IG9mX3BoYW5kbGVfYXJncywg YXJnc1swXSk7Cj4gPiAgICAgICB1MzIgc2xhdmVfaWQgPSAqKHUzMiAqKXBhcmFtOwo+ID4KPiA+ ICsgICAgIGlmIChjaGFuLT5kZXZpY2UtPmRldi0+b2Zfbm9kZSAhPSBkbWFfc3BlYy0+bnApCj4K PiBBcmUgeW91IG5vdCB1c2luZyBvZl9kbWFfZmluZF9jb250cm9sbGVyKCkgdGhhdCBkb2VzIHRo aXMsIHNvIHRoaXMgd291bGQKPiBiZSB1c2VsZXNzIQoKWWVzLCB3ZSBjYW4gdXNlIG9mX2RtYV9m aW5kX2NvbnRyb2xsZXIoKSwgYnV0IHRoYXQgd2lsbCBiZSBhIGxpdHRsZQpjb21wbGljYXRlZCB0 aGFuIGN1cnJlbnQgc29sdXRpb24uIFNpbmNlIHdlIG5lZWQgaW50cm9kdWNlIG9uZQpzdHJ1Y3R1 cmUgdG8gc2F2ZSB0aGUgbm9kZSB0byB2YWxpZGF0ZSBpbiB0aGUgZmlsdGVyIGZ1bmN0aW9uIGxp a2UKYmVsb3csIHdoaWNoIHNlZW1zIG1ha2UgdGhpbmdzIGNvbXBsaWNhdGVkLiBCdXQgaWYgeW91 IHN0aWxsIGxpa2UgdG8KdXNlIG9mX2RtYV9maW5kX2NvbnRyb2xsZXIoKSwgSSBjYW4gY2hhbmdl IHRvIHVzZSBpdCBpbiBuZXh0IHZlcnNpb24uClRoYW5rLgoKc3RydWN0IHNwcmRfZG1hX2ZpbHRl cl9wYXJhbSB7CiAgICAgc3RydWN0IGRldmljZV9ub2RlICpucDsKfTsKCnN0YXRpYyBzdHJ1Y3Qg ZG1hX2NoYW4qIHNwcmRfZG1hX3hsYXRlKHN0cnVjdCBvZl9waGFuZGxlX2FyZ3MKKmRtYV9zcGVj LCBzdHJ1Y3Qgb2ZfZG1hICpvZl9kbWEpCnsKICAgIHBhcmFtLm5wID0gZG1hX3NwZWMtPm5vZGU7 CgogICAgcmV0dXJuIGRtYV9yZXF1ZXN0X2NoYW5uZWwoeHh4KTsKfQoKb2ZfZG1hX2NvbnRyb2xs ZXJfcmVnaXN0ZXIobnAsIHNwcmRfZG1hX3hsYXRlLCBzZGV2KTsK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 17B84C43219 for ; Mon, 29 Apr 2019 12:20:44 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D9F1120578 for ; Mon, 29 Apr 2019 12:20:43 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="uNM939BH" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728033AbfD2MUk (ORCPT ); Mon, 29 Apr 2019 08:20:40 -0400 Received: from mail-oi1-f195.google.com ([209.85.167.195]:38038 "EHLO mail-oi1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727710AbfD2MUk (ORCPT ); Mon, 29 Apr 2019 08:20:40 -0400 Received: by mail-oi1-f195.google.com with SMTP id t70so2525396oif.5 for ; Mon, 29 Apr 2019 05:20:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=eFO0p/7UJRpxLYopOdRBBRpDf4lmxD0/G7tl+RGmL9s=; b=uNM939BHOv4+pdSPK+Vzc1/5zuB63RUW5hgUqQ8Hvx4yfKIDCXAC1oMA0G6OuEyHnX /YNeO7H0d+7nGGHTKK8hd4GR5qk4CYC0ZtE9XZTRpdRvxYvEw7vpMMUCq0D0CbIAxomt vHxpGTDGwa9PG+wkPmhPxy0QsCYz0SwAXIRCEgkmaA2BgKyWJvL5yryq3oE7qaSUq0k4 0lZaFwbW2VLyNRntMGB0m9bbY+EyEjwUbCEGA9U3hzDe94M2QfBqL+kDdO0TUrLxBkPE 1LPMAD6T9vn74cRN6leBRQRzEBCXIy+qP6Q2IhvaX93CREg5Cc1XQQmc/J6lhy+VhxvG zoSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=eFO0p/7UJRpxLYopOdRBBRpDf4lmxD0/G7tl+RGmL9s=; b=FXSEiKuDJBmiDzK0YWIQLfCcax4vDtpmqRvmIbMQmb8pPALjsQS/YI3fOrVXK8gnuU FpghUs/6wJ2XApkFB0i+w3NXB5cXNHch365x7M0hXXf4pl3/zBuL7b6I5q/txyr5qucn HApe1FS0kI6CiiYkAk8yMuTnF0IPmvEJ7RCJZCXB6Q8NhBxIBWOftqe2yPseDBb4J2G9 JDrCMeAeIyG7f+Yk9gJeA9DDdQYk4BVXdlx28fCaxix/ij/b9/wDyczEyFLckLIlChoi ryGL8jGluS2tNi6+SOmiUYZIhe3Znda2K9azvup4XU35jnmf/3RwREecgX2otka+N0w/ j80w== X-Gm-Message-State: APjAAAVhw+AT5UW+nbtW63ivWTvFyG4A7f9ovxc5Tptir2eLf5lzRS9f dhmIk2NTE7sLbN4zowko1VjsCKNPOJTCdVN+VOFthQ== X-Google-Smtp-Source: APXvYqzTmh9x7vaRytwBmnlAbmJCtwWQ8MTSGQxCK2lTPxYWKsNUzTE5riEh/it8vk8shHd+EM/kUWbicbcbSKV2Y88= X-Received: by 2002:aca:61c3:: with SMTP id v186mr15973210oib.27.1556540438914; Mon, 29 Apr 2019 05:20:38 -0700 (PDT) MIME-Version: 1.0 References: <20190429115723.GK3845@vkoul-mobl.Dlink> In-Reply-To: <20190429115723.GK3845@vkoul-mobl.Dlink> From: Baolin Wang Date: Mon, 29 Apr 2019 20:20:26 +0800 Message-ID: Subject: Re: [PATCH 4/7] dmaengine: sprd: Add device validation to support multiple controllers To: Vinod Koul Cc: Dan Williams , eric.long@unisoc.com, Orson Zhai , Chunyan Zhang , Mark Brown , dmaengine@vger.kernel.org, LKML Content-Type: text/plain; charset="UTF-8" Sender: dmaengine-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: dmaengine@vger.kernel.org Message-ID: <20190429122026.DurFfUVAGRHr_7XKbn3TcxfrLsPTdG-S29QCz4hMq5o@z> On Mon, 29 Apr 2019 at 19:57, Vinod Koul wrote: > > On 15-04-19, 20:14, Baolin Wang wrote: > > From: Eric Long > > > > Since we can support multiple DMA engine controllers, we should add > > device validation in filter function to check if the correct controller > > to be requested. > > > > Signed-off-by: Eric Long > > Signed-off-by: Baolin Wang > > --- > > drivers/dma/sprd-dma.c | 5 +++++ > > 1 file changed, 5 insertions(+) > > > > diff --git a/drivers/dma/sprd-dma.c b/drivers/dma/sprd-dma.c > > index 0f92e60..9f99d4b 100644 > > --- a/drivers/dma/sprd-dma.c > > +++ b/drivers/dma/sprd-dma.c > > @@ -1020,8 +1020,13 @@ static void sprd_dma_free_desc(struct virt_dma_desc *vd) > > static bool sprd_dma_filter_fn(struct dma_chan *chan, void *param) > > { > > struct sprd_dma_chn *schan = to_sprd_dma_chan(chan); > > + struct of_phandle_args *dma_spec = > > + container_of(param, struct of_phandle_args, args[0]); > > u32 slave_id = *(u32 *)param; > > > > + if (chan->device->dev->of_node != dma_spec->np) > > Are you not using of_dma_find_controller() that does this, so this would > be useless! Yes, we can use of_dma_find_controller(), but that will be a little complicated than current solution. Since we need introduce one structure to save the node to validate in the filter function like below, which seems make things complicated. But if you still like to use of_dma_find_controller(), I can change to use it in next version. Thank. struct sprd_dma_filter_param { struct device_node *np; }; static struct dma_chan* sprd_dma_xlate(struct of_phandle_args *dma_spec, struct of_dma *of_dma) { param.np = dma_spec->node; return dma_request_channel(xxx); } of_dma_controller_register(np, sprd_dma_xlate, sdev); -- Baolin Wang Best Regards