Re: [PATCH 01/14] dma: sun6i-dma: Add burst case of 4

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 2016-10-30 at 10:06 +-0800, Chen-Yu Tsai wrote:
+AD4- Looking at the dmaengine API, I believe we got it wrong.
+AD4- 
+AD4- max+AF8-burst in dma+AF8-slave+AF8-config denotes the largest amount of data
+AD4- a single transfer should be, as described in dmaengine.h:

Not a single transfer but smallest transaction within a transfer of a
block. So dmaengines transfer data in bursts from source to destination,
this parameter decides the size of that bursts

+AD4- 
+AD4- +AKAAKg- +AEA-src+AF8-maxburst: the maximum number of words (note: words, as in
+AD4- +AKAAKg- units of the src+AF8-addr+AF8-width member, not bytes) that can be sent
+AD4- +AKAAKg- in one burst to the device. Typically something like half the
+AD4- +AKAAKg- FIFO depth on I/O peripherals so you don't overflow it. This
+AD4- +AKAAKg- may or may not be applicable on memory sources.
+AD4- +AKAAKg- +AEA-dst+AF8-maxburst: same as src+AF8-maxburst but for destination target
+AD4- +AKAAKg- mutatis mutandis.
+AD4- 
+AD4- The DMA engine driver should be free to select whatever burst size
+AD4- that doesn't exceed this. So for max+AF8-burst +AD0- 4, the driver can select
+AD4- burst +AD0- 4 for controllers that do support it, or burst +AD0- 1 for those
+AD4- that don't, and do more bursts.

Nope, the client configures these parameters and dmaengine driver
validates and programs

+AD4- 
+AD4- This also means we can increase max+AF8-burst for the audio codec, as
+AD4- the FIFO is 64 samples deep for stereo, or 128 samples for mono.

Beware that higher bursts means chance of underrun of FIFO. This value
is selected with consideration of power and performance required. Lazy
allocation would be half of FIFO size..

--+AKA-
+AH4-Vinod
--
To unsubscribe from this list: send the line "unsubscribe dmaengine" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux PCI]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux