Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753578AbcLHMUg convert rfc822-to-8bit (ORCPT ); Thu, 8 Dec 2016 07:20:36 -0500 Received: from unicorn.mansr.com ([81.2.72.234]:41520 "EHLO unicorn.mansr.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750827AbcLHMUe (ORCPT ); Thu, 8 Dec 2016 07:20:34 -0500 From: =?iso-8859-1?Q?M=E5ns_Rullg=E5rd?= To: Geert Uytterhoeven Cc: Vinod Koul , Mason , Russell King , dmaengine@vger.kernel.org, Linus Walleij , Dan Williams , LKML , Linux ARM , Jon Mason , Mark Brown , Lars-Peter Clausen , Lee Jones , Laurent Pinchart , Arnd Bergmann , Maxime Ripard , Dave Jiang , Peter Ujfalusi , Bartlomiej Zolnierkiewicz , Sebastian Frias , Thibaud Cornic Subject: Re: Tearing down DMA transfer setup after DMA client has finished References: <58356EA8.2010806@free.fr> <20161125045549.GC2698@localhost> <092f44ee-4560-be17-25f7-00948dba3cfa@free.fr> <20fc9020-7278-bc2f-2a8d-43aff5cabff8@free.fr> <20161206051222.GQ6408@localhost> <5846B237.8060409@free.fr> <20161207164341.GX6408@localhost> <20161208103921.GC6408@localhost> Date: Thu, 08 Dec 2016 12:20:30 +0000 In-Reply-To: (Geert Uytterhoeven's message of "Thu, 8 Dec 2016 12:59:54 +0100") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 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 Content-Length: 1845 Lines: 39 Geert Uytterhoeven writes: > On Thu, Dec 8, 2016 at 12:44 PM, M?ns Rullg?rd wrote: >> Vinod Koul writes: >>> On Wed, Dec 07, 2016 at 04:45:58PM +0000, M?ns Rullg?rd wrote: >>>> Vinod Koul writes: >>>> > On Tue, Dec 06, 2016 at 01:14:20PM +0000, M?ns Rullg?rd wrote: >>>> >> That's not going to work very well. Device drivers typically request >>>> >> dma channels in their probe functions or when the device is opened. >>>> >> This means that reserving one of the few channels there will inevitably >>>> >> make some other device fail to operate. >>>> > >>>> > No that doesnt make sense at all, you should get a channel only when you >>>> > want to use it and not in probe! >>>> >>>> Tell that to just about every single driver ever written. >>> >>> Not really, few do yes which is wrong but not _all_ do that. >> >> Every driver I ever looked at does. Name one you consider "correct." > > I'm far from claiming that drivers/tty/serial/sh-sci.c is perfect, but > it does request DMA channels at open time, not at probe time. In the part quoted above, I said most drivers request dma channels in their probe or open functions. For the purposes of this discussion, that distinction is irrelevant. In either case, the channel is held indefinitely. If this wasn't the correct way to use the dmaengine, there would be no need for the virt-dma helpers which are specifically designed for cases the one currently at hand. The only problem we have is that nobody envisioned hardware where the dma engine indicates completion slightly too soon. I suspect there's a fifo or such somewhere, and the interrupt is triggered when the last byte has been placed in the fifo rather than when it has been removed which would have been more correct. -- M?ns Rullg?rd