Hi! > > On 2022-01-10 10:47 AM, Lad Prabhakar wrote: > > > Instead of recursively calling rz_ssi_pio_recv() use a while loop > > > to read the samples from RX fifo. > > > > Recursion and loops are means for doing something repeatedly. Could you > > specify _why_ such change was made i.e. the conversion from one method > > into the other? I bet the code is not being changed for the sake of > > changing it, the reason is simply missing in the commit message. > > > I had feedback from Pavel "recursion is unwelcome in kernel due to > limited stack use." which I did agree with as a result I have come up > with this patch. Also to add this driver will later be used on Renesas > RZ/A2 SoC's which runs with limited memory. > > > Please note that refactoring below function into while-loop has a side > > effect: everything had to be indented by additional tab. Generally, > > readability increases if function is shaped 'linearly'. > > > I do agree, my initial patch just added a jump back to the start of > the function if there are more samples, but Biju suggested to use a > while loop instead. Yes, loop is better. I'd actually do while(true) and avoid using the done variable. if (!(!frames_left && fifo_samples >= runtime->channels)) break; will do the trick. Better yet, do if (frames_left || fifo_samples < runtime->channels) break; because double negation is quite confusing and looks like typo. Best regards, Pavel -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Attachment:
signature.asc
Description: PGP signature