summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Dufresne <nicolas.dufresne@collabora.com>2021-08-19 16:00:09 +0200
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>2021-09-30 10:08:04 +0200
commit448ea5ee473b9a41ec1235217648bd48096dfcf0 (patch)
tree96aa08c8edd26a3455f2416cb2a6cc583de01b5b
parent95a10c4eb307f13c8a58d714e39733831c3288f6 (diff)
downloadlinux-448ea5ee473b9a41ec1235217648bd48096dfcf0.tar.gz
linux-448ea5ee473b9a41ec1235217648bd48096dfcf0.tar.bz2
linux-448ea5ee473b9a41ec1235217648bd48096dfcf0.zip
media: cedrus: Fix SUNXI tile size calculation
Tiled formats requires full rows being allocated (even for Chroma planes). When the number of Luma tiles is odd, we need to round up to twice the tile width in order to roundup the number of Chroma tiles. This was notice with a crash running BA1_FT_C compliance test using sunxi tiles using GStreamer. Cedrus driver would allocate 9 rows for Luma, but only 4.5 rows for Chroma, causing userspace to crash. Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Fixes: 50e761516f2b8 ("media: platform: Add Cedrus VPU decoder driver") Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
-rw-r--r--drivers/staging/media/sunxi/cedrus/cedrus_video.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_video.c b/drivers/staging/media/sunxi/cedrus/cedrus_video.c
index ee7353086641..66714609b577 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus_video.c
+++ b/drivers/staging/media/sunxi/cedrus/cedrus_video.c
@@ -135,7 +135,7 @@ void cedrus_prepare_format(struct v4l2_pix_format *pix_fmt)
sizeimage = bytesperline * height;
/* Chroma plane size. */
- sizeimage += bytesperline * height / 2;
+ sizeimage += bytesperline * ALIGN(height, 64) / 2;
break;