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: [v2,2/2] dmaengine: sprd: Add Spreadtrum DMA configuration From: Baolin Wang Message-Id: Date: Fri, 11 May 2018 19:58:39 +0800 To: Vinod Koul Cc: Dan Williams , Eric Long , Mark Brown , Lars-Peter Clausen , dmaengine@vger.kernel.org, LKML List-ID: T24gMTEgTWF5IDIwMTggYXQgMTk6NTMsIFZpbm9kIEtvdWwgPHZrb3VsQGtlcm5lbC5vcmc+IHdy b3RlOgo+IE9uIDExLTA1LTE4LCAxOTo0NCwgQmFvbGluIFdhbmcgd3JvdGU6Cj4+IEhpIFZpbm9k LAo+Pgo+PiBPbiAxMSBNYXkgMjAxOCBhdCAxOToyMiwgVmlub2QgS291bCA8dmtvdWxAa2VybmVs Lm9yZz4gd3JvdGU6Cj4+ID4gT24gMDktMDUtMTgsIDE5OjEyLCBCYW9saW4gV2FuZyB3cm90ZToK Pj4gPgo+PiA+PiArLyoKPj4gPj4gKyAqIHN0cnVjdCBzcHJkX2RtYV9jb25maWcgLSBETUEgY29u ZmlndXJhdGlvbiBzdHJ1Y3R1cmUKPj4gPj4gKyAqIEBjZmc6IGRtYSBzbGF2ZSBjaGFubmVsIHJ1 bnRpbWUgY29uZmlnCj4+ID4+ICsgKiBAc3JjX2FkZHI6IHRoZSBzb3VyY2UgcGh5c2ljYWwgYWRk cmVzcwo+PiA+PiArICogQGRzdF9hZGRyOiB0aGUgZGVzdGluYXRpb24gcGh5c2ljYWwgYWRkcmVz cwo+PiA+PiArICogQGJsb2NrX2xlbjogc3BlY2lmeSBvbmUgYmxvY2sgdHJhbnNmZXIgbGVuZ3Ro Cj4+ID4+ICsgKiBAdHJhbnNjYXRpb25fbGVuOiBzcGVjaWZ5IG9uZSB0cmFuc2NhdGlvbiB0cmFu c2ZlciBsZW5ndGgKPj4gPj4gKyAqIEBzcmNfc3RlcDogc291cmNlIHRyYW5zZmVyIHN0ZXAKPj4g Pj4gKyAqIEBkc3Rfc3RlcDogZGVzdGluYXRpb24gdHJhbnNmZXIgc3RlcAo+PiA+PiArICogQHdy YXBfcHRyOiB3cmFwIHBvaW50ZXIgYWRkcmVzcywgb25jZSB0aGUgdHJhbnNmZXIgYWRkcmVzcyBy ZWFjaGVzIHRoZQo+PiA+PiArICogJ3dyYXBfcHRyJywgdGhlIG5leHQgdHJhbnNmZXIgYWRkcmVz cyB3aWxsIGp1bXAgdG8gdGhlICd3cmFwX3RvJyBhZGRyZXNzLgo+PiA+PiArICogQHdyYXBfdG86 IHdyYXAganVtcCB0byBhZGRyZXNzCj4+ID4+ICsgKiBAcmVxX21vZGU6IHNwZWNpZnkgdGhlIERN QSByZXF1ZXN0IG1vZGUKPj4gPj4gKyAqIEBpbnRfbW9kZTogc3BlY2lmeSB0aGUgRE1BIGludGVy cnVwdCB0eXBlCj4+ID4+ICsgKi8KPj4gPj4gK3N0cnVjdCBzcHJkX2RtYV9jb25maWcgewo+PiA+ PiArICAgICBzdHJ1Y3QgZG1hX3NsYXZlX2NvbmZpZyBjZmc7Cj4+ID4+ICsgICAgIHBoeXNfYWRk cl90IHNyY19hZGRyOwo+PiA+PiArICAgICBwaHlzX2FkZHJfdCBkc3RfYWRkcjsKPj4gPgo+PiA+ IHRoZXNlIGFyZSBhbHJlYWR5IGluIGNmZyBzbyB3aHkgZHVwbGljYXRlLCBzYW1lIGZvciBmZXcg bW9yZSBoZXJlLgo+Pgo+PiBXZSBzYXZlIHRoZW0gaW4gJ3N0cnVjdCBzcHJkX2RtYV9jb25maWcn IGFzIG9uZSBwYXJhbWV0ZXIgZm9yCj4+IHNwcmRfZG1hX2NvbmZpZygpLCBvdGhlcndpc2Ugd2Ug bmVlZCBhZGQgMiBtb3JlIHBhcmFtZXRlcnMgKHNyYyBhbmQKPj4gZHN0KSBmb3Igc3ByZF9kbWFf Y29uZmlnKCkuCj4KPiBJIGFtIG5vdCBzdXJlIEkgZm9sbG93Li4uCj4KPiBJIG1lYW50IHlvdSBj YW4gdXNlIHNwcmRfZG1hX2NvbmZpZy5jZmctPnNyY19hZGRyL2RzdF9hZGRyIGFuZCByZW1vdmUg c3JjX2FkZHIgJgo+IGRzdF9hZGRyIGluIHRoZSBzcHJkX2RtYV9jb25maWcuIEl0IGR1cGxpY2F0 ZS4uCgpCdXQgd2UgY2FuIG5vdCBzZXQgdmFsdWVzIGlmIGRpciA9PSBETUFfTUVNX1RPX0RFViwg c2luY2UgdGhleQpyZXByZXNlbnQgdGhlIGRldmljZSBhZGRyZXNzLCByaWdodD8Kc3ByZF9kbWFf Y29uZmlnLmNmZy0+c3JjX2FkZHIgPSBzZ19kbWFfYWRkcmVzcyhzZyk7Cgo+Cj4gU2FtZSBmb3Ig ZmV3IG1vcmUgcGFyYW1zLi4uCj4KPj4gPj4gKyAgICAgaWYgKCFpc19zbGF2ZV9kaXJlY3Rpb24o ZGlyKSB8fCBzZ2xlbiA+IDEpCj4+ID4+ICsgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Cj4+ID4+ ICsKPj4gPj4gKyAgICAgc2Rlc2MgPSBremFsbG9jKHNpemVvZigqc2Rlc2MpLCBHRlBfTk9XQUlU KTsKPj4gPj4gKyAgICAgaWYgKCFzZGVzYykKPj4gPj4gKyAgICAgICAgICAgICByZXR1cm4gTlVM TDsKPj4gPj4gKwo+PiA+PiArICAgICBmb3JfZWFjaF9zZyhzZ2wsIHNnLCBzZ2xlbiwgaSkgewo+ PiA+PiArICAgICAgICAgICAgIGlmIChkaXIgPT0gRE1BX01FTV9UT19ERVYpIHsKPj4gPj4gKyAg ICAgICAgICAgICAgICAgICAgIHNsYXZlX2NmZy0+c3JjX2FkZHIgPSBzZ19kbWFfYWRkcmVzcyhz Zyk7Cj4+ID4+ICsgICAgICAgICAgICAgICAgICAgICBzbGF2ZV9jZmctPmRzdF9hZGRyID0gc2xh dmVfY2ZnLT5jZmcuZHN0X2FkZHI7Cj4+ID4+ICsgICAgICAgICAgICAgICAgICAgICBzbGF2ZV9j ZmctPnNyY19zdGVwID0KPj4gPj4gKyAgICAgICAgICAgICAgICAgICAgIHNwcmRfZG1hX2dldF9z dGVwKHNsYXZlX2NmZy0+Y2ZnLnNyY19hZGRyX3dpZHRoKTsKPj4gPj4gKyAgICAgICAgICAgICAg ICAgICAgIHNsYXZlX2NmZy0+ZHN0X3N0ZXAgPSBTUFJEX0RNQV9OT05FX1NURVA7Cj4+ID4+ICsg ICAgICAgICAgICAgfSBlbHNlIHsKPj4gPj4gKyAgICAgICAgICAgICAgICAgICAgIHNsYXZlX2Nm Zy0+c3JjX2FkZHIgPSBzbGF2ZV9jZmctPmNmZy5zcmNfYWRkcjsKPj4gPj4gKyAgICAgICAgICAg ICAgICAgICAgIHNsYXZlX2NmZy0+ZHN0X2FkZHIgPSBzZ19kbWFfYWRkcmVzcyhzZyk7Cj4+ID4+ ICsgICAgICAgICAgICAgICAgICAgICBzbGF2ZV9jZmctPnNyY19zdGVwID0gU1BSRF9ETUFfTk9O RV9TVEVQOwo+PiA+PiArICAgICAgICAgICAgICAgICAgICAgc2xhdmVfY2ZnLT5kc3Rfc3RlcCA9 Cj4+ID4+ICsgICAgICAgICAgICAgICAgICAgICBzcHJkX2RtYV9nZXRfc3RlcChzbGF2ZV9jZmct PmNmZy5kc3RfYWRkcl93aWR0aCk7Cj4+ID4KPj4gPiB1c2UgYSBoZWxwZXIgZm9yIGZpbGxpbmcg dGhpcyBhbmQgcGFzc2luZyByaWdodCB2YWx1ZXMgZm9yIGVhY2ggY2FzZT8KPj4KPj4gV2UgbmVl ZCBwYXNzIG1hbnkgdmFsdWVzIHRvIHRoaXMgaGVscGVyLCBidXQgd2lsbCB0cnkuIFRoYW5rcy4K Pgo+IEkgdGhpbmsgNSBhbmQgdGhhdCBtYXkgaGVscCB0byBsb29rIGl0IGJldHRlciA6KQoKT0su Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752919AbeEKL6m (ORCPT ); Fri, 11 May 2018 07:58:42 -0400 Received: from mail-ot0-f174.google.com ([74.125.82.174]:43209 "EHLO mail-ot0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752272AbeEKL6k (ORCPT ); Fri, 11 May 2018 07:58:40 -0400 X-Google-Smtp-Source: AB8JxZq1Sju0tHVC0mGqINkK65pEctmN3GxQv1tfMBk05Iu8xndpqtAOL7Ijgf9pAcPfLXLOSGWP7mev8r8rVVBfiu8= MIME-Version: 1.0 In-Reply-To: <20180511115306.GC30118@vkoul-mobl> References: <67447aabb8e4e051ff39b814a0e169e6a91bb66e.1525863923.git.baolin.wang@linaro.org> <20180511112225.GA30118@vkoul-mobl> <20180511115306.GC30118@vkoul-mobl> From: Baolin Wang Date: Fri, 11 May 2018 19:58:39 +0800 Message-ID: Subject: Re: [PATCH v2 2/2] dmaengine: sprd: Add Spreadtrum DMA configuration To: Vinod Koul Cc: Dan Williams , Eric Long , Mark Brown , Lars-Peter Clausen , 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 11 May 2018 at 19:53, Vinod Koul wrote: > On 11-05-18, 19:44, Baolin Wang wrote: >> Hi Vinod, >> >> On 11 May 2018 at 19:22, Vinod Koul wrote: >> > On 09-05-18, 19:12, Baolin Wang wrote: >> > >> >> +/* >> >> + * struct sprd_dma_config - DMA configuration structure >> >> + * @cfg: dma slave channel runtime config >> >> + * @src_addr: the source physical address >> >> + * @dst_addr: the destination physical address >> >> + * @block_len: specify one block transfer length >> >> + * @transcation_len: specify one transcation transfer length >> >> + * @src_step: source transfer step >> >> + * @dst_step: destination transfer step >> >> + * @wrap_ptr: wrap pointer address, once the transfer address reaches the >> >> + * 'wrap_ptr', the next transfer address will jump to the 'wrap_to' address. >> >> + * @wrap_to: wrap jump to address >> >> + * @req_mode: specify the DMA request mode >> >> + * @int_mode: specify the DMA interrupt type >> >> + */ >> >> +struct sprd_dma_config { >> >> + struct dma_slave_config cfg; >> >> + phys_addr_t src_addr; >> >> + phys_addr_t dst_addr; >> > >> > these are already in cfg so why duplicate, same for few more here. >> >> We save them in 'struct sprd_dma_config' as one parameter for >> sprd_dma_config(), otherwise we need add 2 more parameters (src and >> dst) for sprd_dma_config(). > > I am not sure I follow... > > I meant you can use sprd_dma_config.cfg->src_addr/dst_addr and remove src_addr & > dst_addr in the sprd_dma_config. It duplicate.. But we can not set values if dir == DMA_MEM_TO_DEV, since they represent the device address, right? sprd_dma_config.cfg->src_addr = sg_dma_address(sg); > > Same for few more params... > >> >> + if (!is_slave_direction(dir) || sglen > 1) >> >> + return NULL; >> >> + >> >> + sdesc = kzalloc(sizeof(*sdesc), GFP_NOWAIT); >> >> + if (!sdesc) >> >> + return NULL; >> >> + >> >> + for_each_sg(sgl, sg, sglen, i) { >> >> + if (dir == DMA_MEM_TO_DEV) { >> >> + slave_cfg->src_addr = sg_dma_address(sg); >> >> + slave_cfg->dst_addr = slave_cfg->cfg.dst_addr; >> >> + slave_cfg->src_step = >> >> + sprd_dma_get_step(slave_cfg->cfg.src_addr_width); >> >> + slave_cfg->dst_step = SPRD_DMA_NONE_STEP; >> >> + } else { >> >> + slave_cfg->src_addr = slave_cfg->cfg.src_addr; >> >> + slave_cfg->dst_addr = sg_dma_address(sg); >> >> + slave_cfg->src_step = SPRD_DMA_NONE_STEP; >> >> + slave_cfg->dst_step = >> >> + sprd_dma_get_step(slave_cfg->cfg.dst_addr_width); >> > >> > use a helper for filling this and passing right values for each case? >> >> We need pass many values to this helper, but will try. Thanks. > > I think 5 and that may help to look it better :) OK. -- Baolin.wang Best Regards