From mboxrd@z Thu Jan 1 00:00:00 1970 From: viresh.kumar@st.com (Viresh Kumar) Date: Tue, 17 Jan 2012 14:37:10 +0530 Subject: [PATCH 7/8] dmaengine/dw_dmac: Unmap all memory buffers after completion of slave transfers In-Reply-To: References: <5e5d0fcff79b9b78e64c7424317d6b77736eca43.1326707233.git.viresh.kumar@st.com> <20120116105448.GT1068@n2100.arm.linux.org.uk> <4F140DB7.3060300@st.com> Message-ID: <4F153A3E.8010409@st.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On 1/17/2012 2:22 PM, Linus Walleij wrote: > Basically the driver using the dmaengine shall map/unmap buffers > used for slave transfers, not the driver. > > I usually map them before setting up a transfer and unmaps them > when egtting the callback from the DMA engine that the transfer is > complete. > You implemented similar stuff in amba-pl08x :) . if (!plchan->slave) pl08x_unmap_buffers(txd); > Why do you want to do this? This is because people can pass in flags which are DMA_COMPL_SKIP_SRC_UNMAP, etc. If they are not passed, then DMA driver must do it for them. Sorry if i am understanding the DMA logic incorrectly. -- viresh From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752679Ab2AQJIH (ORCPT ); Tue, 17 Jan 2012 04:08:07 -0500 Received: from eu1sys200aog110.obsmtp.com ([207.126.144.129]:34553 "EHLO eu1sys200aog110.obsmtp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751504Ab2AQJIF (ORCPT ); Tue, 17 Jan 2012 04:08:05 -0500 Message-ID: <4F153A3E.8010409@st.com> Date: Tue, 17 Jan 2012 14:37:10 +0530 From: Viresh Kumar User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20110812 Thunderbird/6.0 MIME-Version: 1.0 To: Linus Walleij Cc: Russell King - ARM Linux , "vinod.koul@intel.com" , "dan.j.williams@intel.com" , Pratyush ANAND , Rajeev KUMAR , Bhupesh SHARMA , Armando VISCONTI , Mirko GARDI , "linux-kernel@vger.kernel.org" , Vipin KUMAR , Shiraz HASHIM , Amit VIRDI , Vipul Kumar SAMAR , "viresh.linux@gmail.com" , Deepak SIKRI , Bhavna YADAV , "linux-arm-kernel@lists.infradead.org" , Vincenzo FRASCINO Subject: Re: [PATCH 7/8] dmaengine/dw_dmac: Unmap all memory buffers after completion of slave transfers References: <5e5d0fcff79b9b78e64c7424317d6b77736eca43.1326707233.git.viresh.kumar@st.com> <20120116105448.GT1068@n2100.arm.linux.org.uk> <4F140DB7.3060300@st.com> In-Reply-To: Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 1/17/2012 2:22 PM, Linus Walleij wrote: > Basically the driver using the dmaengine shall map/unmap buffers > used for slave transfers, not the driver. > > I usually map them before setting up a transfer and unmaps them > when egtting the callback from the DMA engine that the transfer is > complete. > You implemented similar stuff in amba-pl08x :) . if (!plchan->slave) pl08x_unmap_buffers(txd); > Why do you want to do this? This is because people can pass in flags which are DMA_COMPL_SKIP_SRC_UNMAP, etc. If they are not passed, then DMA driver must do it for them. Sorry if i am understanding the DMA logic incorrectly. -- viresh