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/5] dmaengine: sprd: Add Spreadtrum DMA configuration From: Baolin Wang Message-Id: Date: Mon, 16 Apr 2018 14:32:05 +0800 To: Vinod Koul Cc: Dan Williams , Eric Long , Mark Brown , dmaengine@vger.kernel.org, LKML List-ID: T24gMTYgQXByaWwgMjAxOCBhdCAxMTo1OCwgVmlub2QgS291bCA8dmlub2Qua291bEBpbnRlbC5j b20+IHdyb3RlOgo+IE9uIEZyaSwgQXByIDEzLCAyMDE4IGF0IDAyOjQxOjQ4UE0gKzA4MDAsIEJh b2xpbiBXYW5nIHdyb3RlOgo+PiBPbiAxMyBBcHJpbCAyMDE4IGF0IDE0OjM2LCBWaW5vZCBLb3Vs IDx2aW5vZC5rb3VsQGludGVsLmNvbT4gd3JvdGU6Cj4+ID4gT24gRnJpLCBBcHIgMTMsIDIwMTgg YXQgMDI6MTc6MzRQTSArMDgwMCwgQmFvbGluIFdhbmcgd3JvdGU6Cj4+ID4KPj4gPj4gPiBBZ3Jl ZWQsIHVzZXJzIG9ubHkgY2FyZSBhYm91dCBncmFiYmluZyBhIGNoYW5uZWwsIHNldHRpbmcgYSBk ZXNjcmlwdG9yIGFuZAo+PiA+PiA+IHN1Ym1pdHRpbmcgdGhhdC4KPj4gPj4gPgo+PiA+PiA+IEkg dGhpbmsgeW91IG5lZWQgdG8gZ28gYmFjayBhbmQgdGhpbmsgYWJvdXQgdGhpcyBhIGJpdCwgcGxl YXNlIGRvIGdvIHRocnUKPj4gPj4gPiBkbWFlbmdpbmUgZG9jdW1lbnRhdGlvbiBhbmQgc2VlIG90 aGVyIGRyaXZlciBleGFtcGxlcy4KPj4gPj4gPgo+PiA+PiA+IFdlIGRvbid0IHR5cGljYWxseSBl eHBvc2UgdGhlc2UgdG8gdXNlcnMsIHRoZXkgZ2l2ZSB1cyBhIHRyYW5zZmVyIGFuZCB3ZSBzZXQK Pj4gPj4gPiB0aGF0IHVwIGluIGhhcmR3YXJlIGZvciBlZmZpY2llbnQuIEl0cyBETUEgc28gcGVv cGxlIGV4cGVjdCB1cyB0byB1c2UgZmFzdGVzdAo+PiA+PiA+IG1lY2hhbmlzbSBhdmFpbGFibGUu Cj4+ID4+Cj4+ID4+IEJ1dCB0aGVyZSBhcmUgc29tZSBjb25maWd1cmF0aW9uIGFyZSByZWFsbHkg c3BlY2lhbCBmb3IgU3ByZWFkdHJ1bQo+PiA+PiBETUEsIGFuZCBtdXN0IG5lZWQgdXNlciB0byBz cGVjaWZ5IGhvdyB0byBjb25maWd1cmUsIGVzcGVjaWFsbHkgc29tZQo+PiA+PiBzY2VuYXJpb3Mg b2YgYXVkaW8uIFNvIEkgd2FuZGVyIGlmIHdlIGNhbiBhZGQgb25lIHBvaW50ZXIgZm9yCj4+ID4+ ICdkbWFfc2xhdmVfY29uZmlnJyB0byBleHBhbmQgc29tZSBzcGVjaWFsIERNQSBjb25maWd1cmF0 aW9uCj4+ID4+IHJlcXVpcmVtZW50cywgbGlrZToKPj4gPj4KPj4gPj4gc3RydWN0IGRtYV9zbGF2 ZV9jb25maWcgewo+PiA+PiAgICAgLi4uLi4uCj4+ID4+ICAgICB1bnNpZ25lZCBpbnQgc2xhdmVf aWQ7Cj4+ID4+ICAgICB2b2lkICpwbGF0Zm9ybV9kYXRhOwo+PiA+PiB9Owo+PiA+Pgo+PiA+PiBT byBpZiBzb21lIERNQSBoYXMgc29tZSBzcGVjaWFsIGNvbmZpZ3VyYXRpb24gKHN1Y2ggYXMgU3By ZWFkdHJ1bQo+PiA+PiBETUEpLCB0aGV5IGNhbiB1c2VyIHRoaXMgcGxhdGZvcm1fZGF0YSBwb2lu dGVyLiBMaWtlIHhpbGlueCBETUEsIHRoZXkKPj4gPj4gYWxzbyBoYXZlIHNvbWUgc3BlY2lhbCBj b25maWd1cmF0aW9uLgo+PiA+Cj4+ID4gV2VsbCB3ZSBhbGwgdGhpbmsgb3VyIEhXIGlzIHNwZWNp YWwgYW5kIG5lZWRzIHNvbWUgYWRkaXRpb25hbCBzdHVmZiwgbW9zdCBvZgo+PiA+IHRoZSBjYXNl cyB0dXJucyBvdXQgbm90IHRvIGJlIHRoZSBjYXNlLgo+PiA+Cj4+ID4gQ2FuIHlvdSBleHBsYWlu IGhvdyBhdWRpbyBpbiB0aGlzIGNhc2UgYWRkaXRpb25hbCBjb25maWd1cmF0aW9uLi4uCj4+Cj4+ IEJlc2lkZSB0aGUgZ2VuZXJhbCBjb25maWd1cmF0aW9uLCBvdXIgYXVkaW8gZHJpdmVyIHdpbGwg Y29uZmlndXJlIHRoZQo+PiBmcmFnbWVudCBsZW5ndGgsIGJsb2NrIGxlbmd0aCwgbWF5YmUgdHJh bnNhY3Rpb24gbGVuZ3RoLCBhbmQgdGhleSBtdXN0Cj4+IHNwZWNpZnkgdGhlIHJlcXVlc3QgdHlw ZSBhbmQgaW50ZXJydXB0IHR5cGUsIHRoZXNlIGFyZSB3aGF0IHdlIHdhbnQgdG8KPj4gZXhwb3J0 IGZvciB1c2Vycy4KPgo+IEFzIEkgc2FpZCBiZWZvcmUsIHlvdSBuZWVkIHRvIGRlcml2ZSBmcmFn bWVudCwgYmxvY2sgb3IgdHJhbnNhY3Rpb24gZnJvbQoKSSBhbSBzb3JyeSBJIGRpZCBub3QgbWFr ZSB0aGluZ3MgY2xlYXIgaGVyZS4gV2hhdCBJIG1lYW4gaXMgbm90IG9ubHkKbGluayBsaXN0IG1v ZGUocHJlcF9jeWNsaWMpLCBidXQgYWxzbyBvdGhlciBtb2RlcyAocHJlcF9zbGF2ZSwKcHJlcF9p bnRlcmxlYXZlZCAuLi4pLCB1c2VycyBzdGlsbCBuZWVkIHRvIGNvbmZpZ3VyZSB0aGUgZnJhZ21l bnQKbGVuZ3RoLCBibG9jayBsZW5ndGggb3IgdHJhbnNhY3Rpb24gbGVuZ3RoIGFjY29yZGluZyB0 byB0aGVpcgpyZXF1aXJlbWVudHMuCgo+IGdpdmVuIHByZXBfY3ljbGljIHZhbHVlcy4gSW50ZXJy dXB0IHR5cGUgbmVlZHMgdG8gYmUgZGVyaXZlZCB3aXRoIHRoZSBmbGFncwo+IHBhc3NlZC4gUGxl YXNlIGRvIHNlZSBob3cgb3RoZXIgZHJpdmVycyBtYWtlIHVzZSBvZiBpdC4KCkZpbmUuIFdlIGNv bmZpZ3VyZSB0aGUgSW50ZXJydXB0IHR5cGUgdGhyb3VnaCB0aGUgZmxhZ3MgcGFzc2VkLgo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752040AbeDPGcI (ORCPT ); Mon, 16 Apr 2018 02:32:08 -0400 Received: from mail-ot0-f194.google.com ([74.125.82.194]:42657 "EHLO mail-ot0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750707AbeDPGcG (ORCPT ); Mon, 16 Apr 2018 02:32:06 -0400 X-Google-Smtp-Source: AIpwx4+/n5pybvSvIFY8dqAjpZfYOWHiEdsR2R4hUXA2whRrw2un4FQ2wBfhommXlezcqx8bJKU73Ksz4xVGu+/sfzU= MIME-Version: 1.0 In-Reply-To: <20180416035831.GO6014@localhost> References: <0c2b76aba6a49e583f920ae582d6815fa9cc4361.1523346135.git.baolin.wang@linaro.org> <20180411093634.GC6014@localhost> <20180412093735.GF6014@localhost> <20180413034332.GI6014@localhost> <20180413063641.GL6014@localhost> <20180416035831.GO6014@localhost> From: Baolin Wang Date: Mon, 16 Apr 2018 14:32:05 +0800 Message-ID: Subject: Re: [PATCH 4/5] dmaengine: sprd: Add Spreadtrum DMA configuration To: Vinod Koul Cc: Dan Williams , Eric Long , Mark Brown , dmaengine@vger.kernel.org, LKML Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 16 April 2018 at 11:58, Vinod Koul wrote: > On Fri, Apr 13, 2018 at 02:41:48PM +0800, Baolin Wang wrote: >> On 13 April 2018 at 14:36, Vinod Koul wrote: >> > On Fri, Apr 13, 2018 at 02:17:34PM +0800, Baolin Wang wrote: >> > >> >> > Agreed, users only care about grabbing a channel, setting a descriptor and >> >> > submitting that. >> >> > >> >> > I think you need to go back and think about this a bit, please do go thru >> >> > dmaengine documentation and see other driver examples. >> >> > >> >> > We don't typically expose these to users, they give us a transfer and we set >> >> > that up in hardware for efficient. Its DMA so people expect us to use fastest >> >> > mechanism available. >> >> >> >> But there are some configuration are really special for Spreadtrum >> >> DMA, and must need user to specify how to configure, especially some >> >> scenarios of audio. So I wander if we can add one pointer for >> >> 'dma_slave_config' to expand some special DMA configuration >> >> requirements, like: >> >> >> >> struct dma_slave_config { >> >> ...... >> >> unsigned int slave_id; >> >> void *platform_data; >> >> }; >> >> >> >> So if some DMA has some special configuration (such as Spreadtrum >> >> DMA), they can user this platform_data pointer. Like xilinx DMA, they >> >> also have some special configuration. >> > >> > Well we all think our HW is special and needs some additional stuff, most of >> > the cases turns out not to be the case. >> > >> > Can you explain how audio in this case additional configuration... >> >> Beside the general configuration, our audio driver will configure the >> fragment length, block length, maybe transaction length, and they must >> specify the request type and interrupt type, these are what we want to >> export for users. > > As I said before, you need to derive fragment, block or transaction from I am sorry I did not make things clear here. What I mean is not only link list mode(prep_cyclic), but also other modes (prep_slave, prep_interleaved ...), users still need to configure the fragment length, block length or transaction length according to their requirements. > given prep_cyclic values. Interrupt type needs to be derived with the flags > passed. Please do see how other drivers make use of it. Fine. We configure the Interrupt type through the flags passed. -- Baolin.wang Best Regards