All of lore.kernel.org
 help / color / mirror / Atom feed
From: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
To: Vinod Koul <vinod.koul@linux.intel.com>
Cc: Magnus Damm <magnus.damm@gmail.com>,
	linux-sh@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 5/7 v2] dma: sh: use an integer slave ID to improve API compatibility
Date: Mon, 16 Jul 2012 08:47:48 +0000	[thread overview]
Message-ID: <Pine.LNX.4.64.1207161040070.12302@axis700.grange> (raw)
In-Reply-To: <1342427305.1726.50.camel@vkoul-udesk3>

On Mon, 16 Jul 2012, Vinod Koul wrote:

> On Mon, 2012-07-16 at 09:13 +0200, Guennadi Liakhovetski wrote:
> > > > They tell the driver how the channel has to be configured to
> > support this 
> > > > specific client. They are values of two specific registers. In
> > fact, CHCR 
> > > > means exactly that - CHannel Control Register.
> > > what exactly does the channel control register do in shdma? Should
> > shdma
> > > driver deduce this value rather than client giving it?
> > > Same question for mid_rid?
> > 
> > See, e.g.,
> > arch/arm/mach-shmobile/setup-sh7372.c::sh7372_dmae_slaves[]. 
> > Platforms are supplying these values with shdma driver platform data, 
> > together with slave IDs. Them when slaves request channels and supply 
> > their slave IDs, the driver searches the above array, looking for the 
> > matching slave ID, then it uses the rest of the information in those 
> > structs to configure the channel for this client. Again, this is
> > nothing 
> > new, this is how the driver has been functioning since a long time,
> > this 
> > driver is not modifying anything there. Any changes to this
> > procedure, 
> > like providing all thig information from clients themselves instead
> > of 
> > keeping it with DMACs, requires these patches to be committed first.
> That wasn't my question.
> 
> I want to know what does ccr and mid_rid mean to dmac here?

CHCR contains a few fields, some enable various interrupt sources, some 
specify repeat- and renew-modes, others yet specify transfer size, source 
and destination address-modes (incrementing, constant, decrementing), 
others yet select a DMA client category (slave / memcpy / ...), and a 
transfer flag. Some of these fields could be calculated, others are 
pre-defined for various slaves, the exact layout of those fields can also 
vary between SoCs.

MID_RID is actually a slave-selector, it contains a magic value, that 
cannot be calculated.

Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/

WARNING: multiple messages have this Message-ID (diff)
From: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
To: Vinod Koul <vinod.koul@linux.intel.com>
Cc: Magnus Damm <magnus.damm@gmail.com>,
	linux-sh@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 5/7 v2] dma: sh: use an integer slave ID to improve API compatibility
Date: Mon, 16 Jul 2012 10:47:48 +0200 (CEST)	[thread overview]
Message-ID: <Pine.LNX.4.64.1207161040070.12302@axis700.grange> (raw)
In-Reply-To: <1342427305.1726.50.camel@vkoul-udesk3>

On Mon, 16 Jul 2012, Vinod Koul wrote:

> On Mon, 2012-07-16 at 09:13 +0200, Guennadi Liakhovetski wrote:
> > > > They tell the driver how the channel has to be configured to
> > support this 
> > > > specific client. They are values of two specific registers. In
> > fact, CHCR 
> > > > means exactly that - CHannel Control Register.
> > > what exactly does the channel control register do in shdma? Should
> > shdma
> > > driver deduce this value rather than client giving it?
> > > Same question for mid_rid?
> > 
> > See, e.g.,
> > arch/arm/mach-shmobile/setup-sh7372.c::sh7372_dmae_slaves[]. 
> > Platforms are supplying these values with shdma driver platform data, 
> > together with slave IDs. Them when slaves request channels and supply 
> > their slave IDs, the driver searches the above array, looking for the 
> > matching slave ID, then it uses the rest of the information in those 
> > structs to configure the channel for this client. Again, this is
> > nothing 
> > new, this is how the driver has been functioning since a long time,
> > this 
> > driver is not modifying anything there. Any changes to this
> > procedure, 
> > like providing all thig information from clients themselves instead
> > of 
> > keeping it with DMACs, requires these patches to be committed first.
> That wasn't my question.
> 
> I want to know what does ccr and mid_rid mean to dmac here?

CHCR contains a few fields, some enable various interrupt sources, some 
specify repeat- and renew-modes, others yet specify transfer size, source 
and destination address-modes (incrementing, constant, decrementing), 
others yet select a DMA client category (slave / memcpy / ...), and a 
transfer flag. Some of these fields could be calculated, others are 
pre-defined for various slaves, the exact layout of those fields can also 
vary between SoCs.

MID_RID is actually a slave-selector, it contains a magic value, that 
cannot be calculated.

Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/

  reply	other threads:[~2012-07-16  8:47 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-05 10:29 [PATCH 0/7 v2] dma: sh: stop using .private Guennadi Liakhovetski
2012-07-05 10:29 ` Guennadi Liakhovetski
2012-07-05 10:29 ` [PATCH 1/7 v2] dmaengine: shdma: (cosmetic) simplify a static function Guennadi Liakhovetski
2012-07-05 10:29   ` Guennadi Liakhovetski
2012-07-05 10:29 ` [PATCH 2/7 v2] ASoC: siu: don't use DMA device for channel filtering Guennadi Liakhovetski
2012-07-05 10:29   ` Guennadi Liakhovetski
2012-07-05 12:08   ` Mark Brown
2012-07-05 12:08     ` Mark Brown
2012-07-05 13:54     ` Guennadi Liakhovetski
2012-07-05 13:54       ` Guennadi Liakhovetski
2012-07-05 14:00       ` Mark Brown
2012-07-05 14:00         ` Mark Brown
2012-07-05 14:08         ` Guennadi Liakhovetski
2012-07-05 14:08           ` Guennadi Liakhovetski
2012-07-05 10:29 ` [PATCH 3/7 v2] sh: remove unused DMA device pointer from SIU platform data Guennadi Liakhovetski
2012-07-05 10:29   ` Guennadi Liakhovetski
2012-07-05 10:29 ` [PATCH 4/7 v2] dmaengine: shdma: prepare to stop using struct dma_chan::private Guennadi Liakhovetski
2012-07-05 10:29   ` Guennadi Liakhovetski
2012-07-05 10:29 ` [PATCH 5/7 v2] dma: sh: use an integer slave ID to improve API compatibility Guennadi Liakhovetski
2012-07-05 10:29   ` Guennadi Liakhovetski
2012-07-16  6:07   ` Vinod Koul
2012-07-16  6:19     ` Vinod Koul
2012-07-16  6:37     ` Guennadi Liakhovetski
2012-07-16  6:37       ` Guennadi Liakhovetski
2012-07-16  6:53       ` Vinod Koul
2012-07-16  6:57         ` Vinod Koul
2012-07-16  7:13         ` Guennadi Liakhovetski
2012-07-16  7:13           ` Guennadi Liakhovetski
2012-07-16  8:28           ` Vinod Koul
2012-07-16  8:40             ` Vinod Koul
2012-07-16  8:47             ` Guennadi Liakhovetski [this message]
2012-07-16  8:47               ` Guennadi Liakhovetski
2012-07-16  9:37               ` Vinod Koul
2012-07-16  9:49                 ` Vinod Koul
2012-07-16 10:01                 ` Guennadi Liakhovetski
2012-07-16 10:01                   ` Guennadi Liakhovetski
2012-07-16 10:24                   ` Vinod Koul
2012-07-16 10:36                     ` Vinod Koul
2012-07-16 10:55                     ` Guennadi Liakhovetski
2012-07-16 10:55                       ` Guennadi Liakhovetski
2012-07-16 11:12                       ` Vinod Koul
2012-07-16 11:24                         ` Vinod Koul
2012-07-16 12:47                         ` Guennadi Liakhovetski
2012-07-16 12:47                           ` Guennadi Liakhovetski
2012-07-18  3:14                           ` Vinod Koul
2012-07-18  3:26                             ` Vinod Koul
2012-07-18  8:34                             ` Guennadi Liakhovetski
2012-07-18  8:34                               ` Guennadi Liakhovetski
2012-07-05 10:29 ` [PATCH 6/7 v2] dma: sh: provide a migration path for slave drivers to stop using .private Guennadi Liakhovetski
2012-07-05 10:29   ` Guennadi Liakhovetski
2012-07-16  6:19   ` Vinod Koul
2012-07-16  6:31     ` Vinod Koul
2012-07-16  6:31     ` Guennadi Liakhovetski
2012-07-16  6:31       ` Guennadi Liakhovetski
2012-07-05 10:29 ` [PATCH 7/7 v2] mmc: sh_mmcif: switch to the new DMA channel allocation and configuration Guennadi Liakhovetski
2012-07-05 10:29   ` Guennadi Liakhovetski
2012-07-20  6:00 ` [PATCH 0/7 v2] dma: sh: stop using .private Vinod Koul
2012-07-20  6:12   ` Vinod Koul

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=Pine.LNX.4.64.1207161040070.12302@axis700.grange \
    --to=g.liakhovetski@gmx.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sh@vger.kernel.org \
    --cc=magnus.damm@gmail.com \
    --cc=vinod.koul@linux.intel.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.