mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-21 16:29:59 +00:00
V4L/DVB (6216): V4L: Int if: add vidioc_int_g_ifparm, other updates
vidioc_int_g_ifparm can be used to obtain hardware-specific information about the interface used by the slave. Rearrange v4l2-int-device.h as well. Also remove useless & characters. Signed-off-by: Sakari Ailus <sakari.ailus@nokia.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
This commit is contained in:
parent
588005e100
commit
098c645e39
2 changed files with 84 additions and 58 deletions
|
@ -150,7 +150,7 @@ int v4l2_int_ioctl_0(struct v4l2_int_device *d, int cmd)
|
|||
{
|
||||
return ((v4l2_int_ioctl_func_0 *)
|
||||
find_ioctl(d->u.slave, cmd,
|
||||
(v4l2_int_ioctl_func *)&no_such_ioctl_0))(d);
|
||||
(v4l2_int_ioctl_func *)no_such_ioctl_0))(d);
|
||||
}
|
||||
|
||||
static int no_such_ioctl_1(struct v4l2_int_device *d, void *arg)
|
||||
|
@ -162,5 +162,5 @@ int v4l2_int_ioctl_1(struct v4l2_int_device *d, int cmd, void *arg)
|
|||
{
|
||||
return ((v4l2_int_ioctl_func_1 *)
|
||||
find_ioctl(d->u.slave, cmd,
|
||||
(v4l2_int_ioctl_func *)&no_such_ioctl_1))(d, arg);
|
||||
(v4l2_int_ioctl_func *)no_such_ioctl_1))(d, arg);
|
||||
}
|
||||
|
|
|
@ -30,67 +30,17 @@
|
|||
|
||||
#define V4L2NAMESIZE 32
|
||||
|
||||
/*
|
||||
*
|
||||
* The internal V4L2 device interface core.
|
||||
*
|
||||
*/
|
||||
|
||||
enum v4l2_int_type {
|
||||
v4l2_int_type_master = 1,
|
||||
v4l2_int_type_slave
|
||||
};
|
||||
|
||||
enum v4l2_int_ioctl_num {
|
||||
/*
|
||||
*
|
||||
* "Proper" V4L ioctls, as in struct video_device.
|
||||
*
|
||||
*/
|
||||
vidioc_int_enum_fmt_cap_num = 1,
|
||||
vidioc_int_g_fmt_cap_num,
|
||||
vidioc_int_s_fmt_cap_num,
|
||||
vidioc_int_try_fmt_cap_num,
|
||||
vidioc_int_queryctrl_num,
|
||||
vidioc_int_g_ctrl_num,
|
||||
vidioc_int_s_ctrl_num,
|
||||
vidioc_int_g_parm_num,
|
||||
vidioc_int_s_parm_num,
|
||||
|
||||
/*
|
||||
*
|
||||
* Strictly internal ioctls.
|
||||
*
|
||||
*/
|
||||
/* Initialise the device when slave attaches to the master. */
|
||||
vidioc_int_dev_init_num = 1000,
|
||||
/* Delinitialise the device at slave detach. */
|
||||
vidioc_int_dev_exit_num,
|
||||
/* Set device power state: 0 is off, non-zero is on. */
|
||||
vidioc_int_s_power_num,
|
||||
/* Get parallel interface clock speed for current settings. */
|
||||
vidioc_int_g_ext_clk_num,
|
||||
/*
|
||||
* Tell what the parallel interface clock speed actually is.
|
||||
*/
|
||||
vidioc_int_s_ext_clk_num,
|
||||
/* Does the slave need to be reset after VIDIOC_DQBUF? */
|
||||
vidioc_int_g_needs_reset_num,
|
||||
|
||||
/*
|
||||
*
|
||||
* VIDIOC_INT_* ioctls.
|
||||
*
|
||||
*/
|
||||
/* VIDIOC_INT_RESET */
|
||||
vidioc_int_reset_num,
|
||||
/* VIDIOC_INT_INIT */
|
||||
vidioc_int_init_num,
|
||||
/* VIDIOC_INT_G_CHIP_IDENT */
|
||||
vidioc_int_g_chip_ident_num,
|
||||
|
||||
/*
|
||||
*
|
||||
* Start of private ioctls.
|
||||
*
|
||||
*/
|
||||
vidioc_int_priv_start_num = 2000,
|
||||
};
|
||||
|
||||
struct v4l2_int_device;
|
||||
|
||||
struct v4l2_int_master {
|
||||
|
@ -141,6 +91,81 @@ void v4l2_int_device_unregister(struct v4l2_int_device *d);
|
|||
int v4l2_int_ioctl_0(struct v4l2_int_device *d, int cmd);
|
||||
int v4l2_int_ioctl_1(struct v4l2_int_device *d, int cmd, void *arg);
|
||||
|
||||
/*
|
||||
*
|
||||
* Types and definitions for IOCTL commands.
|
||||
*
|
||||
*/
|
||||
|
||||
/* Slave interface type. */
|
||||
enum v4l2_if_type {
|
||||
};
|
||||
|
||||
struct v4l2_ifparm {
|
||||
enum v4l2_if_type if_type;
|
||||
union {
|
||||
} u;
|
||||
};
|
||||
|
||||
/* IOCTL command numbers. */
|
||||
enum v4l2_int_ioctl_num {
|
||||
/*
|
||||
*
|
||||
* "Proper" V4L ioctls, as in struct video_device.
|
||||
*
|
||||
*/
|
||||
vidioc_int_enum_fmt_cap_num = 1,
|
||||
vidioc_int_g_fmt_cap_num,
|
||||
vidioc_int_s_fmt_cap_num,
|
||||
vidioc_int_try_fmt_cap_num,
|
||||
vidioc_int_queryctrl_num,
|
||||
vidioc_int_g_ctrl_num,
|
||||
vidioc_int_s_ctrl_num,
|
||||
vidioc_int_g_parm_num,
|
||||
vidioc_int_s_parm_num,
|
||||
|
||||
/*
|
||||
*
|
||||
* Strictly internal ioctls.
|
||||
*
|
||||
*/
|
||||
/* Initialise the device when slave attaches to the master. */
|
||||
vidioc_int_dev_init_num = 1000,
|
||||
/* Delinitialise the device at slave detach. */
|
||||
vidioc_int_dev_exit_num,
|
||||
/* Set device power state: 0 is off, non-zero is on. */
|
||||
vidioc_int_s_power_num,
|
||||
/* Get slave interface parameters. */
|
||||
vidioc_int_g_ifparm_num,
|
||||
/* Get external clock speed for current slave settings. */
|
||||
vidioc_int_g_ext_clk_num,
|
||||
/*
|
||||
* Tell what the generated interface clock speed actually is.
|
||||
*/
|
||||
vidioc_int_s_ext_clk_num,
|
||||
/* Does the slave need to be reset after VIDIOC_DQBUF? */
|
||||
vidioc_int_g_needs_reset_num,
|
||||
|
||||
/*
|
||||
*
|
||||
* VIDIOC_INT_* ioctls.
|
||||
*
|
||||
*/
|
||||
/* VIDIOC_INT_RESET */
|
||||
vidioc_int_reset_num,
|
||||
/* VIDIOC_INT_INIT */
|
||||
vidioc_int_init_num,
|
||||
/* VIDIOC_INT_G_CHIP_IDENT */
|
||||
vidioc_int_g_chip_ident_num,
|
||||
|
||||
/*
|
||||
*
|
||||
* Start of private ioctls.
|
||||
*
|
||||
*/
|
||||
vidioc_int_priv_start_num = 2000,
|
||||
};
|
||||
|
||||
/*
|
||||
*
|
||||
* IOCTL wrapper functions for better type checking.
|
||||
|
@ -199,6 +224,7 @@ V4L2_INT_WRAPPER_1(s_parm, struct v4l2_streamparm, *);
|
|||
V4L2_INT_WRAPPER_0(dev_init);
|
||||
V4L2_INT_WRAPPER_0(dev_exit);
|
||||
V4L2_INT_WRAPPER_1(s_power, int, );
|
||||
V4L2_INT_WRAPPER_1(g_ifparm, struct v4l2_ifparm, *);
|
||||
V4L2_INT_WRAPPER_1(s_ext_clk, u32, );
|
||||
V4L2_INT_WRAPPER_1(g_ext_clk, u32, *);
|
||||
V4L2_INT_WRAPPER_1(g_needs_reset, void, *);
|
||||
|
|
Loading…
Reference in a new issue