From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753134Ab1JJJQX (ORCPT ); Mon, 10 Oct 2011 05:16:23 -0400 Received: from mail-wy0-f174.google.com ([74.125.82.174]:40034 "EHLO mail-wy0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753102Ab1JJJQV convert rfc822-to-8bit (ORCPT ); Mon, 10 Oct 2011 05:16:21 -0400 MIME-Version: 1.0 In-Reply-To: <1318229592.1573.2298.camel@vkoul-udesk3> References: <1317191992-3635-1-git-send-email-jaswinder.singh@linaro.org> <1317200618.1573.1765.camel@vkoul-udesk3> <1317295068.1573.1780.camel@vkoul-udesk3> <20111003161349.GB28287@flint.arm.linux.org.uk> <1317966346.1573.2252.camel@vkoul-udesk3> <1317997177.1573.2275.camel@vkoul-udesk3> <1318229592.1573.2298.camel@vkoul-udesk3> Date: Mon, 10 Oct 2011 14:46:20 +0530 Message-ID: Subject: Re: [PATCHv4] DMAEngine: Define interleaved transfer request api From: Jassi Brar To: Vinod Koul Cc: "Williams, Dan J" , Russell King , Barry Song <21cnbao@gmail.com>, linux-kernel@vger.kernel.org, DL-SHA-WorkGroupLinux , Dave Jiang Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 10 October 2011 12:23, Vinod Koul wrote: > > +struct dmaxfer_memcpy_template { > +       dma_addr_t src_start; > +       dma_addr_t dst_start; > +       bool src_inc; > +       bool dst_inc; > +       bool src_sgl; > +       bool dst_sgl; > +       size_t numf; > +       size_t frame_size; > +       struct data_chunk sgl[0]; > +}; > + > +struct dmaxfer_slave_template { > +       dma_addr_t mem; > +       bool mem_inc; > +       size_t numf; > +       size_t frame_size; > +       struct data_chunk sgl[0]; > +}; > (1) Please tell how is dmaxfer_slave_template supposed to work on bi-directional channels? Keeping in mind, dma_slave_config.direction is marked to go away in future. (2) * slave_template.mem <=> memcpy_template.src_start * slave_template.mem_inc <=> memcpy_template.src_inc So essentially memcpy_template := slave_template + src/dst_sgl + dst_start + dst_inc Even after this separation, there is nothing slave specific in dmaxfer_slave_template. The slave client still needs DMA_SLAVE_CONFIG to specify slave parameters of the transfer. You only save a few bytes in a _copy_ of memcpy_template. Sorry but I only see code duplication and a very vulnerable segregation. > > The point is that it makes it simpler to understand what we are doing > rather than resort to parsing to find out if its memcpy or slave and > what is the direction. > Not sure how reading dmaxfer_template.xfer_direction is "parsing".