aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/media/hantro/rk3288_vpu_hw.c
diff options
context:
space:
mode:
authorEzequiel Garcia <ezequiel@collabora.com>2019-12-05 15:24:43 +0100
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>2019-12-16 10:28:39 +0100
commit8c2d66b036c778480787e395097e0d04bc383db4 (patch)
tree0b6163ffa2b3182be77a3b30dc56a5a0470b05ed /drivers/staging/media/hantro/rk3288_vpu_hw.c
parentmedia: hantro: Rename {prepare,finish}_run to {start,end}_prepare_run (diff)
downloadlinux-dev-8c2d66b036c778480787e395097e0d04bc383db4.tar.xz
linux-dev-8c2d66b036c778480787e395097e0d04bc383db4.zip
media: hantro: Support color conversion via post-processing
The Hantro G1 decoder is able to enable a post-processor on the decoding pipeline, which can be used to perform scaling and color conversion. The post-processor is integrated to the decoder, and it's possible to use it in a way that is completely transparent to the user. This commit enables color conversion via post-processing, which means the driver now exposes YUV packed, in addition to NV12. Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com> Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Diffstat (limited to '')
-rw-r--r--drivers/staging/media/hantro/rk3288_vpu_hw.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/staging/media/hantro/rk3288_vpu_hw.c b/drivers/staging/media/hantro/rk3288_vpu_hw.c
index f8db6fcaad73..2f914b37b9e5 100644
--- a/drivers/staging/media/hantro/rk3288_vpu_hw.c
+++ b/drivers/staging/media/hantro/rk3288_vpu_hw.c
@@ -56,6 +56,13 @@ static const struct hantro_fmt rk3288_vpu_enc_fmts[] = {
},
};
+static const struct hantro_fmt rk3288_vpu_postproc_fmts[] = {
+ {
+ .fourcc = V4L2_PIX_FMT_YUYV,
+ .codec_mode = HANTRO_MODE_NONE,
+ },
+};
+
static const struct hantro_fmt rk3288_vpu_dec_fmts[] = {
{
.fourcc = V4L2_PIX_FMT_NV12,
@@ -215,6 +222,9 @@ const struct hantro_variant rk3288_vpu_variant = {
.dec_offset = 0x400,
.dec_fmts = rk3288_vpu_dec_fmts,
.num_dec_fmts = ARRAY_SIZE(rk3288_vpu_dec_fmts),
+ .postproc_fmts = rk3288_vpu_postproc_fmts,
+ .num_postproc_fmts = ARRAY_SIZE(rk3288_vpu_postproc_fmts),
+ .postproc_regs = &hantro_g1_postproc_regs,
.codec = HANTRO_JPEG_ENCODER | HANTRO_MPEG2_DECODER |
HANTRO_VP8_DECODER | HANTRO_H264_DECODER,
.codec_ops = rk3288_vpu_codec_ops,