drm/imx: lock scanout transfers for consecutive bursts
authorPhilipp Zabel <p.zabel@pengutronix.de>
Fri, 19 May 2017 14:05:51 +0000 (16:05 +0200)
committerPhilipp Zabel <p.zabel@pengutronix.de>
Mon, 17 Jul 2017 10:58:11 +0000 (12:58 +0200)
commit790cb4c7c9545953d22d3d425e49b36a711bae5b
tree33913a427dd96b884fa6786cebb74426fd6a5b8a
parent58dff39904c02199b80395dac2fa3dec0d8f3861
drm/imx: lock scanout transfers for consecutive bursts

Because of its shallow queues and limited reordering ability, the i.MX6Q
memory controller likes AXI bursts of consecutive addresses a lot.
To optimize memory access performance, lock the IPU scanout channels for
a number of burst accesses each, before switching to the next channel.
The burst size and length of a locked burst chain are chosen not to
overshoot the stride.

Enabling the 8-burst channel lock on a single 1920x1080@60Hz RGBx
scanout (474 MiB/s of 64-byte IPU memory read accesses) reduces the
reported memory controller busy cycles from 46% to below 28% on an
otherwise idle i.MX6Q.

Tested-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
drivers/gpu/drm/imx/ipuv3-plane.c