Hi Hiep, On Mon, Feb 13, 2017 at 7:50 AM, Hiep Cao Minh <cm-hiep@xxxxxxxxxxx> wrote: > Sorry to bother you! No, thank you for finally make me see my wrong reasoning! >> qspi_transfer_in() does: >> >> while (n > 0) { >> len = qspi_set_receive_trigger(rspi, n); >> // len will be <= n > > I agree. This is len = min value of n and 32. >> >> if (len == QSPI_BUFFER_SIZE) { >> // receive blocks of len bytes > > Yes, This is len == 32 bytes >> >> ... >> } else { >> // receive n (not len) bytes > > This is always n == len ( This case, len or n is always < 32) > Because this is the last n bytes should be received. Right. Doh, I must have missed that if "len < n", the first branch is always taken. >> ret = rspi_pio_transfer(rspi, NULL, rx, n); It would have been clearer to use "len" here instead of "n". Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds