Re: [PATCH RFC 1/1] ASoC: fsl_ssi: Make fifo watermark and maxburst settings device tree options

From: Caleb Crome
Date: Fri Jan 15 2016 - 12:03:53 EST


On Fri, Jan 15, 2016 at 5:46 AM, Timur Tabi <timur@xxxxxxxx> 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