Hi Morimoto-san, On Mon, Nov 6, 2017 at 2:24 AM, Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx> wrote: >> Large serial console input (copy and pasting long lines) works, as that uses >> DMA. Small serial console input (typing) doesn't work. >> >> Apparently for the serial port, TCR contains the value we need (< 0x20), >> while TCRB always contains 0x20. >> Perhaps the code should use the minimum of both registers instead? > > TCR(= read) happen 1st, and TCRB (= write) happen next. > "TCRB always contains 0x20" means, DMA didn't transfer data for some reason ? In the case of the serial console, the individual characters were actually transfered, as the console did manage to read them. With your patch, the serial driver doesn't know about them (residue == 0), and the console doesn't see them. 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