Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

gpu: ipu-v3: image-convert: Enable double write reduction

For the write channels with 4:2:0 subsampled YUV formats, avoid chroma
overdraw by only writing chroma for even lines (skip odd chroma rows).
This reduces necessary write memory bandwidth by at least 25% (more
with rotation enabled).

Signed-off-by: Steve Longerbeam <slongerbeam@gmail.com>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>

authored by

Steve Longerbeam and committed by
Philipp Zabel
fee77829 4791bd7d

+9
+9
drivers/gpu/ipu-v3/ipu-image-convert.c
··· 1280 1280 if (rot_mode) 1281 1281 ipu_cpmem_set_rotation(channel, rot_mode); 1282 1282 1283 + /* 1284 + * Skip writing U and V components to odd rows in the output 1285 + * channels for planar 4:2:0. 1286 + */ 1287 + if ((channel == chan->out_chan || 1288 + channel == chan->rotation_out_chan) && 1289 + image->fmt->planar && image->fmt->uv_height_dec == 2) 1290 + ipu_cpmem_skip_odd_chroma_rows(channel); 1291 + 1283 1292 if (channel == chan->rotation_in_chan || 1284 1293 channel == chan->rotation_out_chan) { 1285 1294 burst_size = 8;