aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Kocialkowski2024-09-03 19:12:34 +0200
committerPaul Kocialkowski2024-09-03 19:12:34 +0200
commitc417690a4b7060f4b609b88ac943242ba474e7bf (patch)
tree2cb561648a9ff48c4ac7e1af87d38cb00a6e714f
parent8bbbb740320cabef1f54a2addc13fa7dc85ac594 (diff)
media: cedrus: Add support for the NV16_32L32 pixel format
Signed-off-by: Paul Kocialkowski <paulk@sys-base.io>
-rw-r--r--drivers/staging/media/sunxi/cedrus/cedrus_hw.c1
-rw-r--r--drivers/staging/media/sunxi/cedrus/cedrus_video.c19
2 files changed, 20 insertions, 0 deletions
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_hw.c b/drivers/staging/media/sunxi/cedrus/cedrus_hw.c
index 688220abacf9..efb6a5f70fd2 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus_hw.c
+++ b/drivers/staging/media/sunxi/cedrus/cedrus_hw.c
@@ -108,6 +108,7 @@ void cedrus_dst_format_set(struct cedrus_dev *dev,
break;
case V4L2_PIX_FMT_NV12_32L32:
+ case V4L2_PIX_FMT_NV16_32L32:
default:
reg = VE_PRIMARY_OUT_FMT_TILED_32_NV12;
cedrus_write(dev, VE_PRIMARY_OUT_FMT, reg);
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_video.c b/drivers/staging/media/sunxi/cedrus/cedrus_video.c
index 9655be4936d5..0fbd12bc71c7 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus_video.c
+++ b/drivers/staging/media/sunxi/cedrus/cedrus_video.c
@@ -69,6 +69,10 @@ static struct cedrus_format cedrus_formats[] = {
.pixelformat = V4L2_PIX_FMT_NV12_32L32,
.directions = CEDRUS_DECODE_DST,
},
+ {
+ .pixelformat = V4L2_PIX_FMT_NV16_32L32,
+ .directions = CEDRUS_DECODE_DST,
+ },
};
#define CEDRUS_FORMATS_COUNT ARRAY_SIZE(cedrus_formats)
@@ -145,6 +149,21 @@ void cedrus_prepare_format(struct v4l2_pix_format *pix_fmt)
break;
+ case V4L2_PIX_FMT_NV16_32L32:
+ /* 32-aligned stride. */
+ bytesperline = ALIGN(width, 32);
+
+ /* 32-aligned height. */
+ height = ALIGN(height, 32);
+
+ /* Luma plane size. */
+ sizeimage = bytesperline * height;
+
+ /* Chroma plane size. */
+ sizeimage += bytesperline * height;
+
+ break;
+
case V4L2_PIX_FMT_NV12:
/* 16-aligned stride. */
bytesperline = ALIGN(width, 16);