
Hi Jagan and Jocke,
I'm back from vacation, so here's my answer:
On Mon, Apr 29, 2019 at 12:41 PM Jagan Teki jagan@amarulasolutions.com wrote:
- Mario
On Mon, Apr 29, 2019 at 2:48 PM Joakim Tjernlund Joakim.Tjernlund@infinera.com wrote:
On Mon, 2019-04-29 at 01:58 +0530, Jagan Teki wrote:
From: Mario Six mario.six@gdsys.cc
We do nothing in the loop if the "not empty" event was not detected. To simplify the logic, check if this is the case, and skip the execution of the loop early to reduce the nesting level and flag checking.
Looked at the driver to refresh memory and noticed: if (charSize == 32) { /* Advance output buffer by 32 bits */ din += 4; } which suggests that only 32 bit char will increase the din ptr so does other bitlens work for reading?
Yes, It will work. When charSize < 32 in a loop execution, we necessarily also have numBlks == 0, since numBlks = DIV_ROUND_UP(bitlen, 32) and charSize = (bitlen >= 32 ? 32 : bitlen); in other words: we're at the very end of the data to be sent/received and also the final loop execution, so we don't have to advance the pointer anymore.
Mario, can you respond this?
Best regards, Mario