On Tue Mar 24 14:04:00 2026 +0900, Jackson Lee wrote:
> Wave5 encoder is capable of reading in numerous raw pixel formats.
> Expose these formats and properly configure encoder if selected.
> 
> Signed-off-by: Jackson Lee <[email protected]>
> Signed-off-by: Nas Chung <[email protected]>
> Reviewed-by: Nicolas Dufresne <[email protected]>
> Tested-by: Brandon Brnich <[email protected]>
> Signed-off-by: Nicolas Dufresne <[email protected]>
> Signed-off-by: Hans Verkuil <[email protected]>

Patch committed.

Thanks,
Hans Verkuil

 .../platform/chips-media/wave5/wave5-helper.h      |  2 +-
 .../platform/chips-media/wave5/wave5-vpu-enc.c     | 32 ++++++++++++++++++++++
 2 files changed, 33 insertions(+), 1 deletion(-)

---

diff --git a/drivers/media/platform/chips-media/wave5/wave5-helper.h 
b/drivers/media/platform/chips-media/wave5/wave5-helper.h
index d61fdbda359d..e6f241012c3b 100644
--- a/drivers/media/platform/chips-media/wave5/wave5-helper.h
+++ b/drivers/media/platform/chips-media/wave5/wave5-helper.h
@@ -11,7 +11,7 @@
 #include "wave5-vpu.h"
 
 #define FMT_TYPES      2
-#define MAX_FMTS       12
+#define MAX_FMTS       16
 
 const char *state_to_str(enum vpu_instance_state state);
 void wave5_cleanup_instance(struct vpu_instance *inst, struct file *filp);
diff --git a/drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c 
b/drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c
index e6ac76635178..e6c94b6f2671 100644
--- a/drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c
+++ b/drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c
@@ -90,6 +90,22 @@ static const struct vpu_format 
enc_fmt_list[FMT_TYPES][MAX_FMTS] = {
                        .v4l2_pix_fmt = V4L2_PIX_FMT_NV61M,
                        .v4l2_frmsize = &enc_frmsize[VPU_FMT_TYPE_RAW],
                },
+               {
+                       .v4l2_pix_fmt = V4L2_PIX_FMT_YUYV,
+                       .v4l2_frmsize = &enc_frmsize[VPU_FMT_TYPE_RAW],
+               },
+               {
+                       .v4l2_pix_fmt = V4L2_PIX_FMT_YVYU,
+                       .v4l2_frmsize = &enc_frmsize[VPU_FMT_TYPE_RAW],
+               },
+               {
+                       .v4l2_pix_fmt = V4L2_PIX_FMT_UYVY,
+                       .v4l2_frmsize = &enc_frmsize[VPU_FMT_TYPE_RAW],
+               },
+               {
+                       .v4l2_pix_fmt = V4L2_PIX_FMT_VYUY,
+                       .v4l2_frmsize = &enc_frmsize[VPU_FMT_TYPE_RAW],
+               },
        }
 };
 
@@ -1140,6 +1156,22 @@ static int wave5_set_enc_openparam(struct enc_open_param 
*open_param,
        else
                open_param->src_format = FORMAT_420;
 
+       switch (info->format) {
+       case V4L2_PIX_FMT_YUYV:
+               open_param->packed_format = PACKED_YUYV;
+               break;
+       case V4L2_PIX_FMT_YVYU:
+               open_param->packed_format = PACKED_YVYU;
+               break;
+       case V4L2_PIX_FMT_UYVY:
+               open_param->packed_format = PACKED_UYVY;
+               break;
+       case V4L2_PIX_FMT_VYUY:
+               open_param->packed_format = PACKED_VYUY;
+               break;
+       default:
+               break;
+       }
        open_param->wave_param.gop_preset_idx = PRESET_IDX_IPP_SINGLE;
        open_param->wave_param.hvs_qp_scale = 2;
        open_param->wave_param.hvs_max_delta_qp = 10;
_______________________________________________
linuxtv-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to