Re: [PATCH v3] dmaengine: rcar-dmac: use TCRB instead of TCR for residue

From: Geert Uytterhoeven
Date: Mon Nov 06 2017 - 08:27:47 EST


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