forked from Minki/linux
media: v4l2-subdev: implement VIDIOC_DBG_G_CHIP_INFO ioctl
The VIDIOC_DBG_G/S_REGISTER ioctls imply that VIDIOC_DBG_G_CHIP_INFO is also present, since without that you cannot use v4l2-dbg. Just like the implementation in v4l2-ioctl.c this can be implemented in the core and no drivers need to be modified. It also makes it possible for v4l2-compliance to properly test the VIDIOC_DBG_G/S_REGISTER ioctls. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
parent
3103c7b4ad
commit
f437a7cb87
@ -263,6 +263,19 @@ static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg)
|
||||
return -EPERM;
|
||||
return v4l2_subdev_call(sd, core, s_register, p);
|
||||
}
|
||||
case VIDIOC_DBG_G_CHIP_INFO:
|
||||
{
|
||||
struct v4l2_dbg_chip_info *p = arg;
|
||||
|
||||
if (p->match.type != V4L2_CHIP_MATCH_SUBDEV || p->match.addr)
|
||||
return -EINVAL;
|
||||
if (sd->ops->core && sd->ops->core->s_register)
|
||||
p->flags |= V4L2_CHIP_FL_WRITABLE;
|
||||
if (sd->ops->core && sd->ops->core->g_register)
|
||||
p->flags |= V4L2_CHIP_FL_READABLE;
|
||||
strlcpy(p->name, sd->name, sizeof(p->name));
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
case VIDIOC_LOG_STATUS: {
|
||||
|
Loading…
Reference in New Issue
Block a user