Commit 3f715c64 authored by Ezequiel Garcia's avatar Ezequiel Garcia Committed by Mauro Carvalho Chehab

media: cedrus: Cleanup control initialization

In order to introduce other controls, the control initialization
needs to support an initial struct v4l2_ctrl_control.

While here, let's cleanup the control initialization,
removing unneeded fields.
Signed-off-by: default avatarEzequiel Garcia <ezequiel@collabora.com>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
parent c3adb857
...@@ -29,44 +29,51 @@ ...@@ -29,44 +29,51 @@
static const struct cedrus_control cedrus_controls[] = { static const struct cedrus_control cedrus_controls[] = {
{ {
.cfg = {
.id = V4L2_CID_MPEG_VIDEO_MPEG2_SLICE_PARAMS, .id = V4L2_CID_MPEG_VIDEO_MPEG2_SLICE_PARAMS,
.elem_size = sizeof(struct v4l2_ctrl_mpeg2_slice_params), },
.codec = CEDRUS_CODEC_MPEG2, .codec = CEDRUS_CODEC_MPEG2,
.required = true, .required = true,
}, },
{ {
.cfg = {
.id = V4L2_CID_MPEG_VIDEO_MPEG2_QUANTIZATION, .id = V4L2_CID_MPEG_VIDEO_MPEG2_QUANTIZATION,
.elem_size = sizeof(struct v4l2_ctrl_mpeg2_quantization), },
.codec = CEDRUS_CODEC_MPEG2, .codec = CEDRUS_CODEC_MPEG2,
.required = false, .required = false,
}, },
{ {
.cfg = {
.id = V4L2_CID_MPEG_VIDEO_H264_DECODE_PARAMS, .id = V4L2_CID_MPEG_VIDEO_H264_DECODE_PARAMS,
.elem_size = sizeof(struct v4l2_ctrl_h264_decode_params), },
.codec = CEDRUS_CODEC_H264, .codec = CEDRUS_CODEC_H264,
.required = true, .required = true,
}, },
{ {
.cfg = {
.id = V4L2_CID_MPEG_VIDEO_H264_SLICE_PARAMS, .id = V4L2_CID_MPEG_VIDEO_H264_SLICE_PARAMS,
.elem_size = sizeof(struct v4l2_ctrl_h264_slice_params), },
.codec = CEDRUS_CODEC_H264, .codec = CEDRUS_CODEC_H264,
.required = true, .required = true,
}, },
{ {
.cfg = {
.id = V4L2_CID_MPEG_VIDEO_H264_SPS, .id = V4L2_CID_MPEG_VIDEO_H264_SPS,
.elem_size = sizeof(struct v4l2_ctrl_h264_sps), },
.codec = CEDRUS_CODEC_H264, .codec = CEDRUS_CODEC_H264,
.required = true, .required = true,
}, },
{ {
.cfg = {
.id = V4L2_CID_MPEG_VIDEO_H264_PPS, .id = V4L2_CID_MPEG_VIDEO_H264_PPS,
.elem_size = sizeof(struct v4l2_ctrl_h264_pps), },
.codec = CEDRUS_CODEC_H264, .codec = CEDRUS_CODEC_H264,
.required = true, .required = true,
}, },
{ {
.cfg = {
.id = V4L2_CID_MPEG_VIDEO_H264_SCALING_MATRIX, .id = V4L2_CID_MPEG_VIDEO_H264_SCALING_MATRIX,
.elem_size = sizeof(struct v4l2_ctrl_h264_scaling_matrix), },
.codec = CEDRUS_CODEC_H264, .codec = CEDRUS_CODEC_H264,
.required = true, .required = true,
}, },
...@@ -106,12 +113,8 @@ static int cedrus_init_ctrls(struct cedrus_dev *dev, struct cedrus_ctx *ctx) ...@@ -106,12 +113,8 @@ static int cedrus_init_ctrls(struct cedrus_dev *dev, struct cedrus_ctx *ctx)
return -ENOMEM; return -ENOMEM;
for (i = 0; i < CEDRUS_CONTROLS_COUNT; i++) { for (i = 0; i < CEDRUS_CONTROLS_COUNT; i++) {
struct v4l2_ctrl_config cfg = {}; ctrl = v4l2_ctrl_new_custom(hdl, &cedrus_controls[i].cfg,
NULL);
cfg.elem_size = cedrus_controls[i].elem_size;
cfg.id = cedrus_controls[i].id;
ctrl = v4l2_ctrl_new_custom(hdl, &cfg, NULL);
if (hdl->error) { if (hdl->error) {
v4l2_err(&dev->v4l2_dev, v4l2_err(&dev->v4l2_dev,
"Failed to create new custom control\n"); "Failed to create new custom control\n");
...@@ -178,7 +181,7 @@ static int cedrus_request_validate(struct media_request *req) ...@@ -178,7 +181,7 @@ static int cedrus_request_validate(struct media_request *req)
continue; continue;
ctrl_test = v4l2_ctrl_request_hdl_ctrl_find(hdl, ctrl_test = v4l2_ctrl_request_hdl_ctrl_find(hdl,
cedrus_controls[i].id); cedrus_controls[i].cfg.id);
if (!ctrl_test) { if (!ctrl_test) {
v4l2_info(&ctx->dev->v4l2_dev, v4l2_info(&ctx->dev->v4l2_dev,
"Missing required codec control\n"); "Missing required codec control\n");
......
...@@ -49,8 +49,7 @@ enum cedrus_h264_pic_type { ...@@ -49,8 +49,7 @@ enum cedrus_h264_pic_type {
}; };
struct cedrus_control { struct cedrus_control {
u32 id; struct v4l2_ctrl_config cfg;
u32 elem_size;
enum cedrus_codec codec; enum cedrus_codec codec;
unsigned char required:1; unsigned char required:1;
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment