我们当前正在使用ov490 i2c subdev驱动程序。我们想在传感器中添加新功能,因此我们需要在v4l2框架中添加额外的ioctl。因此,我们在“ v4l2_subdev_core_ops”中添加了以下ioctl。
static const struct v4l2_subdev_core_ops ov490_core_ops = {
.log_status = v4l2_ctrl_subdev_log_status,
.subscribe_event = v4l2_ctrl_subdev_subscribe_event,
.unsubscribe_event = v4l2_event_subdev_unsubscribe,
.ioctl = ov490_ioctl,
};
ov490_ioctl功能如下。
static long ov490_ioctl(struct v4l2_subdev *sd, unsigned int cmd, void *arg) {
printk("%d - %s() \n", __LINE__, __FUNCTION__ );
switch (cmd) {
case OV490_EXPOSURE:
return ov490_exposure(sd, (struct ov490_exposure *)arg);
default:
return -EINVAL;
}
return 0;
}
我们使用的是4.9.59内核版本。 如何检查以上设置是否正确,还是我们错过了什么?