On Thu, 2010-03-25 at 11:39 +0900, Kuninori Morimoto wrote:
- dev_dbg(dai->dev, "fifo = %d words\n", fsi->fifo_max);
- for (i = 1; i < fsi->chan; i *= 2)
if (fsi->chan > i)
fsi->fifo_max >>= 1;
Is the if really needed here. You may also want to calculate the shift size rather than looping too.
This calculate number of sample data. And it is depend on channel size. If chip fifo size is 256, the number of sample data will be...
1 chan : 256 (256 x 1 = 256) 2 chan : 128 (128 x 2 = 256) 3 chan : 64 ( 64 x 3 = 192) 4 chan : 64 ( 64 x 4 = 256) 5 chan : 32 ( 32 x 5 = 160) 6 chan : 32 ( 32 x 6 = 192) 7 chan : 32 ( 32 x 7 = 224) 8 chan : 32 ( 32 x 8 = 256)
Above calculation is needed. but yes un-understandable. I don't know a method computable by one line. So, I will add tiny comment/document here. OK ?
Yes, this sounds fine :)
It wasn't understandable from the original code.
Thanks
Liam