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: [RFC,2/6] dmaengine: xilinx_dma: Pass AXI4-Stream control words to netdev dma client From: Vinod Koul Message-Id: <20180417154231.GV6014@localhost> Date: Tue, 17 Apr 2018 21:12:31 +0530 To: Peter Ujfalusi Cc: Lars-Peter Clausen , Radhey Shyam Pandey , "michal.simek@xilinx.com" , "linux-kernel@vger.kernel.org" , "dmaengine@vger.kernel.org" , "dan.j.williams@intel.com" , Appana Durga Kedareswara Rao , "linux-arm-kernel@lists.infradead.org" List-ID: T24gVHVlLCBBcHIgMTcsIDIwMTggYXQgMDQ6NDY6NDNQTSArMDMwMCwgUGV0ZXIgVWpmYWx1c2kg d3JvdGU6Cgo+IEBAIC03MDksNiArNzA5LDExIEBAIHN0cnVjdCBkbWFfZmlsdGVyIHsKPiAgICoJ YmUgY2FsbGVkIGFmdGVyIHBlcmlvZF9sZW4gYnl0ZXMgaGF2ZSBiZWVuIHRyYW5zZmVycmVkLgo+ ICAgKiBAZGV2aWNlX3ByZXBfaW50ZXJsZWF2ZWRfZG1hOiBUcmFuc2ZlciBleHByZXNzaW9uIGlu IGEgZ2VuZXJpYyB3YXkuCj4gICAqIEBkZXZpY2VfcHJlcF9kbWFfaW1tX2RhdGE6IERNQSdzIDgg Ynl0ZSBpbW1lZGlhdGUgZGF0YSB0byB0aGUgZHN0IGFkZHJlc3MKPiArICogQGRldmljZV9hdHRh Y2hfbWV0YWRhdGE6IFNvbWUgRE1BIGVuZ2luZXMgY2FuIHNlbmQgYW5kIHJlY2VpdmUgc2lkZSBi YW5kCj4gKyAqCWluZm9ybWF0aW9uLCBjb21tYW5kcyBvciBwYXJhbWV0ZXJzIHdoaWNoIGlzIG5v dCB0cmFuc2ZlcnJlZCB3aXRoaW4gdGhlCj4gKyAqCWRhdGEgc3RyZWFtIGl0c2VsZi4gSW4gc3Vj aCBjYXNlIGNsaWVudHMgY2FuIHNldCB0aGUgbWV0YWRhdGEgdG8gdGhlCj4gKyAqCWdpdmVuIGRl c2NyaXB0b3IgYW5kIGl0IGlzIGdvaW5nIHRvIGJlIHNlbnQgdG8gdGhlIHBlcmlwaGVyYWwsIG9y IGluCj4gKyAqCWNhc2Ugb2YgREVWX1RPX01FTSB0aGUgcHJvdmlkZWQgYnVmZmVyIHdpbGwgcmVj ZWl2ZSB0aGUgbWV0YWRhdGEuCj4gICAqIEBkZXZpY2VfY29uZmlnOiBQdXNoZXMgYSBuZXcgY29u ZmlndXJhdGlvbiB0byBhIGNoYW5uZWwsIHJldHVybiAwIG9yIGFuIGVycm9yCj4gICAqCWNvZGUK PiAgICogQGRldmljZV9wYXVzZTogUGF1c2VzIGFueSB0cmFuc2ZlciBoYXBwZW5pbmcgb24gYSBj aGFubmVsLiBSZXR1cm5zCj4gQEAgLTc5Niw2ICs4MDEsOSBAQCBzdHJ1Y3QgZG1hX2RldmljZSB7 Cj4gIAkJc3RydWN0IGRtYV9jaGFuICpjaGFuLCBkbWFfYWRkcl90IGRzdCwgdTY0IGRhdGEsCj4g IAkJdW5zaWduZWQgbG9uZyBmbGFncyk7Cj4gIAo+ICsJaW50ICgqZGV2aWNlX2F0dGFjaF9tZXRh ZGF0YSkoc3RydWN0IGRtYV9hc3luY190eF9kZXNjcmlwdG9yICpkZXNjLAo+ICsJCQkJICAgICAg dm9pZCAqZGF0YSwgc2l6ZV90IGxlbik7Cgp3aGlsZSBpIGFtIG9rYXkgd2l0aCB0aGUgY29uY2Vw dCwgSSB3b3VsZCBub3Qgd2FudCB0byBnbyBhZ2FpbiB0aGUgY3VzdG9tCnBvaW50ZXIgcm91dGUs IHRoaXMgaXMgYSBuby1nbyBmb3IgbWUuCgpJbnN0ZWFkIGxldHMgYWRkIHRoZSB2ZW5kb3IgZGF0 YSwgZGVmaW5lIHRoYXQgZXhwbGljaXRseS4gV2UgY2FuIHVzZSBzdHJ1Y3QsCnRva2VucyBvciBz b21ldGhpbmcgZWxzZSB0byBkZWZpbmUgdGhlc2UuIEJ1dCBsZXRzIHRyeSB0byBzdGF5IGF3YXkg ZnJvbQpvcGFxdWUgb2JqZWN0cyBwbGVhc2UgOi0pCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: vinod.koul@intel.com (Vinod Koul) Date: Tue, 17 Apr 2018 21:12:31 +0530 Subject: [RFC 2/6] dmaengine: xilinx_dma: Pass AXI4-Stream control words to netdev dma client In-Reply-To: <4ba085c7-5256-6c8a-5697-c0d5736a6e46@ti.com> References: <1522665546-10035-1-git-send-email-radheys@xilinx.com> <1522665546-10035-3-git-send-email-radheys@xilinx.com> <20180411090854.GY6014@localhost> <7f549d2e-fc96-8c7e-d839-edb86ae088a5@metafoo.de> <4ba085c7-5256-6c8a-5697-c0d5736a6e46@ti.com> Message-ID: <20180417154231.GV6014@localhost> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Tue, Apr 17, 2018 at 04:46:43PM +0300, Peter Ujfalusi wrote: > @@ -709,6 +709,11 @@ struct dma_filter { > * be called after period_len bytes have been transferred. > * @device_prep_interleaved_dma: Transfer expression in a generic way. > * @device_prep_dma_imm_data: DMA's 8 byte immediate data to the dst address > + * @device_attach_metadata: Some DMA engines can send and receive side band > + * information, commands or parameters which is not transferred within the > + * data stream itself. In such case clients can set the metadata to the > + * given descriptor and it is going to be sent to the peripheral, or in > + * case of DEV_TO_MEM the provided buffer will receive the metadata. > * @device_config: Pushes a new configuration to a channel, return 0 or an error > * code > * @device_pause: Pauses any transfer happening on a channel. Returns > @@ -796,6 +801,9 @@ struct dma_device { > struct dma_chan *chan, dma_addr_t dst, u64 data, > unsigned long flags); > > + int (*device_attach_metadata)(struct dma_async_tx_descriptor *desc, > + void *data, size_t len); while i am okay with the concept, I would not want to go again the custom pointer route, this is a no-go for me. Instead lets add the vendor data, define that explicitly. We can use struct, tokens or something else to define these. But lets try to stay away from opaque objects please :-) -- ~Vinod From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752805AbeDQPiE (ORCPT ); Tue, 17 Apr 2018 11:38:04 -0400 Received: from mga12.intel.com ([192.55.52.136]:60875 "EHLO mga12.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752696AbeDQPiD (ORCPT ); Tue, 17 Apr 2018 11:38:03 -0400 X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.48,464,1517904000"; d="scan'208";a="217280983" Date: Tue, 17 Apr 2018 21:12:31 +0530 From: Vinod Koul To: Peter Ujfalusi Cc: Lars-Peter Clausen , Radhey Shyam Pandey , "michal.simek@xilinx.com" , "linux-kernel@vger.kernel.org" , "dmaengine@vger.kernel.org" , "dan.j.williams@intel.com" , Appana Durga Kedareswara Rao , "linux-arm-kernel@lists.infradead.org" Subject: Re: [RFC 2/6] dmaengine: xilinx_dma: Pass AXI4-Stream control words to netdev dma client Message-ID: <20180417154231.GV6014@localhost> References: <1522665546-10035-1-git-send-email-radheys@xilinx.com> <1522665546-10035-3-git-send-email-radheys@xilinx.com> <20180411090854.GY6014@localhost> <7f549d2e-fc96-8c7e-d839-edb86ae088a5@metafoo.de> <4ba085c7-5256-6c8a-5697-c0d5736a6e46@ti.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4ba085c7-5256-6c8a-5697-c0d5736a6e46@ti.com> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Apr 17, 2018 at 04:46:43PM +0300, Peter Ujfalusi wrote: > @@ -709,6 +709,11 @@ struct dma_filter { > * be called after period_len bytes have been transferred. > * @device_prep_interleaved_dma: Transfer expression in a generic way. > * @device_prep_dma_imm_data: DMA's 8 byte immediate data to the dst address > + * @device_attach_metadata: Some DMA engines can send and receive side band > + * information, commands or parameters which is not transferred within the > + * data stream itself. In such case clients can set the metadata to the > + * given descriptor and it is going to be sent to the peripheral, or in > + * case of DEV_TO_MEM the provided buffer will receive the metadata. > * @device_config: Pushes a new configuration to a channel, return 0 or an error > * code > * @device_pause: Pauses any transfer happening on a channel. Returns > @@ -796,6 +801,9 @@ struct dma_device { > struct dma_chan *chan, dma_addr_t dst, u64 data, > unsigned long flags); > > + int (*device_attach_metadata)(struct dma_async_tx_descriptor *desc, > + void *data, size_t len); while i am okay with the concept, I would not want to go again the custom pointer route, this is a no-go for me. Instead lets add the vendor data, define that explicitly. We can use struct, tokens or something else to define these. But lets try to stay away from opaque objects please :-) -- ~Vinod