Hi Sam,
Le dim., juil. 3 2022 at 08:43:37 +0200, Sam Ravnborg
<sam@xxxxxxxxxxxx> a écrit :
Hi Paul,
On Sun, Jul 03, 2022 at 12:07:27AM +0100, Paul Cercueil wrote:
Until now, when running at the maximum resolution of 1280x720 at
32bpp
on the JZ4770 SoC the output was garbled, the X/Y position of the
top-left corner of the framebuffer warping to a random position with
the whole image being offset accordingly, every time a new frame was
being submitted.
This problem can be eliminated by using a bigger burst size for the
DMA.
Are there any alignment constraints of the framebuffer that depends on
the burst size? I am hit by this with some atmel IP - which is why I
ask.
I verified this, and everything behaves correctly when the source
address is not aligned to the burst size. So I believe in our case the
DMA is smart enough to auto-select the best burst size, up to the
configured value.
Cheers,
-Paul
Patch looks good and is a-b.
Set in each soc_info structure the maximum burst size supported by
the
corresponding SoC, and use it in the driver.
Set the new value using regmap_update_bits() instead of
regmap_set_bits(), since we do want to override the old value of the
burst size. (Note that regmap_set_bits() wasn't really valid before
for
the same reason, but it never seemed to be a problem).
Cc: <stable@xxxxxxxxxxxxxxx>
Fixes: 90b86fcc47b4 ("DRM: Add KMS driver for the Ingenic JZ47xx
SoCs")
Signed-off-by: Paul Cercueil <paul@xxxxxxxxxxxxxxx>
Acked-by: Sam Ravnborg <sam@xxxxxxxxxxxx>