linux-sh.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Vinod Koul <vinod.koul@intel.com>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Cc: Mark Brown <broonie@linaro.org>, Mark Brown <broonie@kernel.org>,
	Simon <horms@verge.net.au>, Rob Herring <robh+dt@kernel.org>,
	Linux-SH <linux-sh@vger.kernel.org>,
	Linux-ALSA <alsa-devel@alsa-project.org>,
	Arnd Bergmann <arnd@arndb.de>,
	dmaengine@vger.kernel.org
Subject: Re: [PATCH 0/2 v5] dmaengine: rcar-audmapp: independent from SH_DMAE_BASE
Date: Mon, 26 Jan 2015 06:26:55 +0000	[thread overview]
Message-ID: <20150126062655.GG28763@intel.com> (raw)
In-Reply-To: <5155160.jFIrOp4XSG@avalon>

On Mon, Jan 26, 2015 at 04:39:42AM +0200, Laurent Pinchart wrote:
> Hi Morimoto-san,
> 
> On Friday 23 January 2015 00:35:32 Kuninori Morimoto wrote:
> > Hi Laurent, Vinod, and Arnd
> > 
> > # I added Linux ALSA ML and Mark
> > 
> > >>>> This time I added SoC/platform side setting patches too (= 3) - 6)).
> > >>>> SoC/platform side setting needs many entries for this rcar-audmapp,
> > >>>> because it has many combinations.
> > >>>> But, I believe this is very normal DMAEngine style, not special.
> > >>> 
> > >>> Vinod commented on 22/12/2014 (Message-ID:
> > >>> <20141222151447.GL16827@intel.com>)
> > >>> 
> > >>> "I think this makes sense. Going thru the driver, it was clear that we
> > >>> were not really gaining anything for using dmaengine API here. So
> > >>> agree that lets use dmanegine for 1st dmac thru dmaengine library and
> > >>> then configure this in your sound driver.."
> > >>> 
> > >>> My understanding is that a solution specific to the sound driver was
> > >>> preferred, instead of a generic DMA engine driver. Have I missed
> > >>> something ?
> > >> 
> > >> Grr... my understanding was that
> > >> "1st DMAC will use dmaengine library (= sound framework has
> > >> sound-dma-xxx
> > >> functions) 2nd DMAC will use normal dmaengine API"
> > >> 
> > >> But, I need to fixup sound driver ?
> > >> 
> > >>  - 1st DMAC = normal DMAEngine API
> > >>  - 2nd DMAC = part of sound driver
> > >> 
> > >> Sorry, for discuss it again here, but I want flexible switching
> > >> for 1st/2nd DMAC (because of 1st/2nd DMAC path combination).
> > >> So, using same DMAEngine interface from sound driver is easy to
> > >> implement/understanding.
> > >> 
> > >>  - 1st DMAC = normal DMAEngine API
> > >>  - 2nd DMAC = normal DMAEngine API
> > > 
> > > The first DMA engine (the one handling transfer from/to memory) is a
> > > general- purpose DMA engine. It should be handled by a driver that
> > > implement the DMA engine API, no doubt about that.
> > > 
> > > The second "DMA engine" is dedicated to the sound IP cores and is far from
> > > being general-purpose, given that it only supports
> > > peripheral-to-peripheral transfers, without even interrupts to report
> > > transfer completion. I'm not even sure we can call it a DMA engine as
> > > there's no Direct Memory Access involved here :-) The hardware looks more
> > > like a crossbar switch with programmable routing of audio channels. That's
> > > why Vinod and I were wondering whether it really makes sense to implement
> > > it using the DMA engine API, given the resulting complexity of the DT
> > > bindings (the sound DT nodes look a bit scary), or if it could be simpler
> > > to implement it as part of the Renesas sound drivers.
> > 
> > If you are caring about naming (= DMA), it is "Audio *DMAC* peri peri".
> > I wonder dma_transfer_direction has DMA_DEV_TO_DEV (this driver is not using
> > it though...) it is for peripheral-to-peripheral ?
> > And API point of view, 2nd DMAC doesn't need new DMAEngine API.
> > From DRY (= Don't Repeat Yourself) point of view, I don't want to re-create
> > "similar but different" implementation for naming issue.
> > 
> > From DT bindings complexity point of view, which is complex ?
> > DMAC driver side ? DT node side ?
> > Indeed sound driver needs many node, but is is regular arrangement, not
> > complex, and, it needs many node for 1st DMAC too. I don't understand why
> > 1st is OK, 2nd is not OK ? From DMAC driver side complexity point of view,
> > 1st DMAC has same complexity (= it accepts many node from many drivers) ?
> > 
> > If I need to move 2nd DMAC from DMAEngine to sound driver side,
> > please explain it to Mark Brown (= ALSA SoC maintainer)
> 
> I'm not saying you need to, I just wanted to raise the issue. From what I 
> understood Vinod was also having doubts on using the DMA engine API for this 
> device, given that it doesn't really match what the DMA engine API has been 
> designed for. If everybody else is fine with your patches, and if the sound DT 
> nodes are not considered overly complex with the DMA engine bindings, then I 
> have no objection.
Laurent is right in his observations, When I last reviewed the series
(though have looked at this one yet), the advise was to use dmaengine APIs
with sound dmanengine library for 1st DMAC.  The second DMAC is specfic to
this device so should be handled internally or as part of the sound driver
(or whatever client)

HTH
-- 
~Vinod


  parent reply	other threads:[~2015-01-26  6:26 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-20  1:43 [PATCH 0/2 v5] dmaengine: rcar-audmapp: independent from SH_DMAE_BASE Kuninori Morimoto
2015-01-20 13:16 ` Laurent Pinchart
2015-01-21  0:51 ` Kuninori Morimoto
2015-01-22 21:14 ` Laurent Pinchart
2015-01-23  0:35   ` Kuninori Morimoto
2015-01-26  2:18     ` [alsa-devel] " Kuninori Morimoto
2015-01-26  3:03       ` Kuninori Morimoto
2015-01-26  2:39     ` Laurent Pinchart
2015-01-26  2:57       ` Kuninori Morimoto
2015-01-26  3:01         ` Laurent Pinchart
2015-01-28  5:45           ` Magnus Damm
2015-01-29  1:23             ` Kuninori Morimoto
2015-01-29  1:24               ` [PATCH 1/2][RFC] dmaengine: rcar-audmapp: calculate chcr via src/dst addr Kuninori Morimoto
2015-01-29  9:15                 ` Arnd Bergmann
2015-01-29  9:33                   ` Geert Uytterhoeven
2015-01-29  9:45                     ` Kuninori Morimoto
2015-01-29  9:50                       ` Geert Uytterhoeven
2015-01-30  0:27                         ` Kuninori Morimoto
2015-01-30  1:17                           ` [alsa-devel] " Kuninori Morimoto
2015-01-29  9:41                   ` Kuninori Morimoto
2015-01-29  1:24               ` [PATCH 2/2][RFC] ARM: shmobile: r8a7790: sound enables Audio DMAC peri peri entry on DTSI Kuninori Morimoto
2015-01-29  6:34               ` [PATCH 0/2 v5] dmaengine: rcar-audmapp: independent from SH_DMAE_BASE Magnus Damm
2015-01-29  6:45                 ` Kuninori Morimoto
2015-01-26  6:26       ` Vinod Koul [this message]
2015-01-26  6:40         ` Kuninori Morimoto
2015-01-26  7:16           ` Kuninori Morimoto
  -- strict thread matches above, loose matches on Subject: below --
2014-11-12  9:02 [PATCH] " Kuninori Morimoto

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150126062655.GG28763@intel.com \
    --to=vinod.koul@intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=arnd@arndb.de \
    --cc=broonie@kernel.org \
    --cc=broonie@linaro.org \
    --cc=dmaengine@vger.kernel.org \
    --cc=horms@verge.net.au \
    --cc=kuninori.morimoto.gx@renesas.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-sh@vger.kernel.org \
    --cc=robh+dt@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).