Commit 041bc406 authored by Yong Zhi's avatar Yong Zhi Committed by Mauro Carvalho Chehab
Browse files

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: default avatarYong Zhi <yong.zhi@intel.com>
Reviewed-by: default avatarTomasz Figa <tfiga@chromium.org>
Signed-off-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
parent 9dd0627d
Loading
Loading
Loading
Loading
+0 −2
Original line number Original line Diff line number Diff line
@@ -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.
+0 −6
Original line number Original line Diff line number Diff line
@@ -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
+11 −4
Original line number Original line Diff line number Diff line
@@ -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 ********************/