Re: [PATCH] mtd: nand: raw: atmel: add module param to avoid using dma

From: Nicolas Ferre
Date: Mon May 28 2018 - 12:11:25 EST


On 28/05/2018 at 17:52, Peter Rosin wrote:
On 2018-05-28 16:27, Boris Brezillon wrote:

[..]

Could it just be that you're reaching the DDR bus limit. As I said
previously, when you go through the CPU, and assuming you're consuming
the data directly, you have:

1/ NFC SRAM -> CPU
2/ CPU -> L1 data cache --write-back--> DRAM
3/ L1-cache -> CPU

While, if you use DMA you get:

1/ NFC SRAM -> DRAM
2/ SDRAM -> L1 data cache -> CPU

So, if you're approaching the limit of (LP)DDR bandwidth, using the CPU
might make things a bit better. Still, if the limitation really comes
from the DDR bus, my opinion is that you should maybe use a smaller
resolution or use a more compact pixel format (RGB565?).

The issue is still there if I use a CLUT mode instead of rgb565, which is
what I normally use (and what I would like to use, CLUT is just alien and
a pain these days).

The panels we are using only supports one resolution (each), but the issue
is there with both 1920x1080@16bpp and 1024x768@8bpp (~60Hz).

Did you calculate how much of the bandwidth is taken by the HLCDC
block and compared it to the max (LP)DDR bandwidth?

I did, but don't remember the exact details. There is some room even for
1920x1080@16bpp, but not oceans of it. We were a bit uncertain if 16bpp
would be possible, and in fact that was the reason I worked on CLUT
support for atmel-hlcdc last year. But since the problem persists with
much less memory pressure as well, I don't think that's it either.

Just jumping in the conversation with another perspective (maybe already tried actually).

Can you try to make all that you can to maximize the blanking period of your screen (some are more tolerant than others according to that). By doing so, you would allow the LCD FIFO to recover better after each line. You might loose some columns on the side of your display but it would give us a good idea of how far we are from getting rid of those annoying LCD reset glitches (that are due to underruns on LCD FIFO).

Admittedly I have not tested these AHB matrix tricks with a smaller
panel (it would take a bit of work to arrange for those tests), but the
issue was there when I last tried (using defaults).

If what I said earlier has an impact, reducing the panel size will also make a difference. But the question is how small is "smaller" ;-)

Best regards,
--
Nicolas Ferre