media: ipu3-imgu: Use MENU type for mode control

This addresses the below TODO item.
- Use V4L2_CTRL_TYPE_MENU for dual-pipe mode control. (Sakari)

Signed-off-by: Yong Zhi <yong.zhi@intel.com>
Reviewed-by: Tomasz Figa <tfiga@chromium.org>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
Yong Zhi 2019-01-16 12:18:46 -05:00 committed by Mauro Carvalho Chehab
parent 9dd0627d8d
commit 041bc40662
3 changed files with 11 additions and 12 deletions

View File

@ -11,8 +11,6 @@ staging directory.
- Prefix imgu for all public APIs, i.e. change ipu3_v4l2_register() to - Prefix imgu for all public APIs, i.e. change ipu3_v4l2_register() to
imgu_v4l2_register(). (Sakari) imgu_v4l2_register(). (Sakari)
- Use V4L2_CTRL_TYPE_MENU for dual-pipe mode control. (Sakari)
- IPU3 driver documentation (Laurent) - IPU3 driver documentation (Laurent)
Add diagram in driver rst to describe output capability. Add diagram in driver rst to describe output capability.
Comments on configuring v4l2 subdevs for CIO2 and ImgU. Comments on configuring v4l2 subdevs for CIO2 and ImgU.

View File

@ -16,12 +16,6 @@
#define V4L2_CID_INTEL_IPU3_BASE (V4L2_CID_USER_BASE + 0x10c0) #define V4L2_CID_INTEL_IPU3_BASE (V4L2_CID_USER_BASE + 0x10c0)
#define V4L2_CID_INTEL_IPU3_MODE (V4L2_CID_INTEL_IPU3_BASE + 1) #define V4L2_CID_INTEL_IPU3_MODE (V4L2_CID_INTEL_IPU3_BASE + 1)
/* custom ctrl to set pipe mode */
enum ipu3_running_mode {
IPU3_RUNNING_MODE_VIDEO = 0,
IPU3_RUNNING_MODE_STILL = 1,
};
/******************* ipu3_uapi_stats_3a *******************/ /******************* ipu3_uapi_stats_3a *******************/
#define IPU3_UAPI_MAX_STRIPES 2 #define IPU3_UAPI_MAX_STRIPES 2

View File

@ -12,6 +12,9 @@
/******************** v4l2_subdev_ops ********************/ /******************** v4l2_subdev_ops ********************/
#define IPU3_RUNNING_MODE_VIDEO 0
#define IPU3_RUNNING_MODE_STILL 1
static int ipu3_subdev_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh) static int ipu3_subdev_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh)
{ {
struct imgu_v4l2_subdev *imgu_sd = container_of(sd, struct imgu_v4l2_subdev *imgu_sd = container_of(sd,
@ -1035,15 +1038,19 @@ static const struct v4l2_ctrl_ops ipu3_subdev_ctrl_ops = {
.s_ctrl = ipu3_sd_s_ctrl, .s_ctrl = ipu3_sd_s_ctrl,
}; };
static const char * const ipu3_ctrl_mode_strings[] = {
"Video mode",
"Still mode",
};
static const struct v4l2_ctrl_config ipu3_subdev_ctrl_mode = { static const struct v4l2_ctrl_config ipu3_subdev_ctrl_mode = {
.ops = &ipu3_subdev_ctrl_ops, .ops = &ipu3_subdev_ctrl_ops,
.id = V4L2_CID_INTEL_IPU3_MODE, .id = V4L2_CID_INTEL_IPU3_MODE,
.name = "IPU3 Pipe Mode", .name = "IPU3 Pipe Mode",
.type = V4L2_CTRL_TYPE_INTEGER, .type = V4L2_CTRL_TYPE_MENU,
.min = IPU3_RUNNING_MODE_VIDEO, .max = ARRAY_SIZE(ipu3_ctrl_mode_strings) - 1,
.max = IPU3_RUNNING_MODE_STILL,
.step = 1,
.def = IPU3_RUNNING_MODE_VIDEO, .def = IPU3_RUNNING_MODE_VIDEO,
.qmenu = ipu3_ctrl_mode_strings,
}; };
/******************** Framework registration ********************/ /******************** Framework registration ********************/