On Fri, Jan 15, 2016 at 5:46 AM, Timur Tabi timur@tabi.org wrote:
Mark Brown wrote:
I admit it's a grey area, but the hardware doesn't work if you use the wrong value, and it is a fixed value per device. A p1022ds would use a different value than in in i.MX6, and once you pick a value, it's the same no matter which sample rate, buffer size, etc you choose.
Caleb's original message suggested this was rate dependant.
Yeah, I just noticed that. In that case, I agree that a device tree property is inappropriate, unless it's an array that contains tuples of sample rates and watermark/maxburst settings. That would get unwieldy very easily, though.
The rate dependance is only a *potential* issue. I suspect that a value of 4 should be functional for all rates and chips. The only trade off is more DMA requests/bursts.
In a typical 15 word fifo, 48kHz, stereo, single fifo DMA system, the old value was 15-2 = 13, which would mean 7385 13-word DMA bursts/second. A new value of 4 would mean 24,000 4-word DMA bursts/second.
Is that consequential for anybody? It's about the same total bandwidth on the system, but just broken up into smaller chunks (I don't know what the overhead is for a DMA burst)
In a high channel count system (16 channels @ 48kHz), the old value doesn't work, and the new value would mean 192,000 4-word DMA bursts/second, which works on my MX6. So given that 192000 works fine, I'm not sure that the difference in a typical system would matter at all.
If nobody objects, we can just set the value to 4 and be done with it.
Another question: is the watermark ever going to be different than maxburst? Is there any reason to have them different?
-Caleb