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: <20180411090854.GY6014@localhost> Date: Wed, 11 Apr 2018 14:38:55 +0530 To: Radhey Shyam Pandey Cc: dan.j.williams@intel.com, michal.simek@xilinx.com, appana.durga.rao@xilinx.com, radheys@xilinx.com, lars@metafoo.de, dmaengine@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org List-ID: T24gTW9uLCBBcHIgMDIsIDIwMTggYXQgMDQ6MDk6MDJQTSArMDUzMCwgUmFkaGV5IFNoeWFtIFBh bmRleSB3cm90ZToKCj4gKwo+ICsJCWlmIChjaGFuLT54ZGV2LT5oYXNfYXhpZXRoX2Nvbm5lY3Rl ZCkgewo+ICsJCQlzZWcgPSBsaXN0X2ZpcnN0X2VudHJ5KCZkZXNjLT5zZWdtZW50cywKPiArCQkJ CQlzdHJ1Y3QgeGlsaW54X2F4aWRtYV90eF9zZWdtZW50LCBub2RlKTsKPiArCQkJaWYgKGNiLmNh bGxiYWNrX3BhcmFtKSB7Cj4gKwkJCQlhcHBfdyA9ICh1MzIgKikgY2IuY2FsbGJhY2tfcGFyYW07 Cgp3aHkgYXJlIHlvdSBpbnRlcnByZXRpbmcgY2FsbGJhY2tfcGFyYW0/IFRoaXMgaXMgcGxhaW5s eSB3cm9uZy4Kd2UgZG8gbm90IGtub3cgd2hhdCBpcyB0aGUgaW50ZXJwcmV0YXRpb24gb2YgY2Fs bGJhY2tfcGFyYW0gYW5kIGl0IGlzCmludGVybmFsIHRvIHN1Ym1pdHRlci4KCldoYXQgZXhhY3Rs eSBpcyB0aGUgcHJvYmxlbSB5b3UgYXJlIHRyeWluZyB0byBzb2x2ZT8KCj4gKwkJCQlodyA9ICZz ZWctPmh3Owo+ICsJCQkJKmFwcF93ID0gaHctPnN0YXR1cyAmIFhJTElOWF9ETUFfTUFYX1RSQU5T X0xFTjsKPiArCQkJCW1lbWNweShhcHBfdywgaHctPmFwcCwgc2l6ZW9mKHUzMikgKgo+ICsJCQkJ CVhJTElOWF9ETUFfTlVNX0FQUF9XT1JEUyk7Cj4gKwkJCX0K From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752758AbeDKJEb (ORCPT ); Wed, 11 Apr 2018 05:04:31 -0400 Received: from mga06.intel.com ([134.134.136.31]:61920 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752140AbeDKJE3 (ORCPT ); Wed, 11 Apr 2018 05:04:29 -0400 X-Amp-Result: UNSCANNABLE X-Amp-File-Uploaded: False X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.48,435,1517904000"; d="scan'208";a="45276519" Date: Wed, 11 Apr 2018 14:38:55 +0530 From: Vinod Koul To: Radhey Shyam Pandey Cc: dan.j.williams@intel.com, michal.simek@xilinx.com, appana.durga.rao@xilinx.com, radheys@xilinx.com, lars@metafoo.de, dmaengine@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [RFC 2/6] dmaengine: xilinx_dma: Pass AXI4-Stream control words to netdev dma client Message-ID: <20180411090854.GY6014@localhost> References: <1522665546-10035-1-git-send-email-radheys@xilinx.com> <1522665546-10035-3-git-send-email-radheys@xilinx.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1522665546-10035-3-git-send-email-radheys@xilinx.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 Mon, Apr 02, 2018 at 04:09:02PM +0530, Radhey Shyam Pandey wrote: > + > + if (chan->xdev->has_axieth_connected) { > + seg = list_first_entry(&desc->segments, > + struct xilinx_axidma_tx_segment, node); > + if (cb.callback_param) { > + app_w = (u32 *) cb.callback_param; why are you interpreting callback_param? This is plainly wrong. we do not know what is the interpretation of callback_param and it is internal to submitter. What exactly is the problem you are trying to solve? > + hw = &seg->hw; > + *app_w = hw->status & XILINX_DMA_MAX_TRANS_LEN; > + memcpy(app_w, hw->app, sizeof(u32) * > + XILINX_DMA_NUM_APP_WORDS); > + } -- ~Vinod From mboxrd@z Thu Jan 1 00:00:00 1970 From: vinod.koul@intel.com (Vinod Koul) Date: Wed, 11 Apr 2018 14:38:55 +0530 Subject: [RFC 2/6] dmaengine: xilinx_dma: Pass AXI4-Stream control words to netdev dma client In-Reply-To: <1522665546-10035-3-git-send-email-radheys@xilinx.com> References: <1522665546-10035-1-git-send-email-radheys@xilinx.com> <1522665546-10035-3-git-send-email-radheys@xilinx.com> Message-ID: <20180411090854.GY6014@localhost> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Mon, Apr 02, 2018 at 04:09:02PM +0530, Radhey Shyam Pandey wrote: > + > + if (chan->xdev->has_axieth_connected) { > + seg = list_first_entry(&desc->segments, > + struct xilinx_axidma_tx_segment, node); > + if (cb.callback_param) { > + app_w = (u32 *) cb.callback_param; why are you interpreting callback_param? This is plainly wrong. we do not know what is the interpretation of callback_param and it is internal to submitter. What exactly is the problem you are trying to solve? > + hw = &seg->hw; > + *app_w = hw->status & XILINX_DMA_MAX_TRANS_LEN; > + memcpy(app_w, hw->app, sizeof(u32) * > + XILINX_DMA_NUM_APP_WORDS); > + } -- ~Vinod