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/ -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/