diff options
Diffstat (limited to 'Documentation/video4linux/v4l2-framework.txt')
-rw-r--r-- | Documentation/video4linux/v4l2-framework.txt | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/Documentation/video4linux/v4l2-framework.txt b/Documentation/video4linux/v4l2-framework.txt index eeae76c22a93..ff124374e9ba 100644 --- a/Documentation/video4linux/v4l2-framework.txt +++ b/Documentation/video4linux/v4l2-framework.txt | |||
@@ -184,7 +184,7 @@ may be NULL if the subdev driver does not support anything from that category. | |||
184 | It looks like this: | 184 | It looks like this: |
185 | 185 | ||
186 | struct v4l2_subdev_core_ops { | 186 | struct v4l2_subdev_core_ops { |
187 | int (*g_chip_ident)(struct v4l2_subdev *sd, struct v4l2_chip_ident *chip); | 187 | int (*g_chip_ident)(struct v4l2_subdev *sd, struct v4l2_dbg_chip_ident *chip); |
188 | int (*log_status)(struct v4l2_subdev *sd); | 188 | int (*log_status)(struct v4l2_subdev *sd); |
189 | int (*init)(struct v4l2_subdev *sd, u32 val); | 189 | int (*init)(struct v4l2_subdev *sd, u32 val); |
190 | ... | 190 | ... |
@@ -390,16 +390,18 @@ allocated memory. | |||
390 | 390 | ||
391 | You should also set these fields: | 391 | You should also set these fields: |
392 | 392 | ||
393 | - parent: set to the parent device (same device as was used to register | 393 | - v4l2_dev: set to the v4l2_device parent device. |
394 | v4l2_device). | ||
395 | - name: set to something descriptive and unique. | 394 | - name: set to something descriptive and unique. |
396 | - fops: set to the file_operations struct. | 395 | - fops: set to the v4l2_file_operations struct. |
397 | - ioctl_ops: if you use the v4l2_ioctl_ops to simplify ioctl maintenance | 396 | - ioctl_ops: if you use the v4l2_ioctl_ops to simplify ioctl maintenance |
398 | (highly recommended to use this and it might become compulsory in the | 397 | (highly recommended to use this and it might become compulsory in the |
399 | future!), then set this to your v4l2_ioctl_ops struct. | 398 | future!), then set this to your v4l2_ioctl_ops struct. |
400 | 399 | ||
401 | If you use v4l2_ioctl_ops, then you should set .unlocked_ioctl to | 400 | If you use v4l2_ioctl_ops, then you should set either .unlocked_ioctl or |
402 | __video_ioctl2 or .ioctl to video_ioctl2 in your file_operations struct. | 401 | .ioctl to video_ioctl2 in your v4l2_file_operations struct. |
402 | |||
403 | The v4l2_file_operations struct is a subset of file_operations. The main | ||
404 | difference is that the inode argument is omitted since it is never used. | ||
403 | 405 | ||
404 | 406 | ||
405 | video_device registration | 407 | video_device registration |
@@ -410,7 +412,7 @@ for you. | |||
410 | 412 | ||
411 | err = video_register_device(vdev, VFL_TYPE_GRABBER, -1); | 413 | err = video_register_device(vdev, VFL_TYPE_GRABBER, -1); |
412 | if (err) { | 414 | if (err) { |
413 | video_device_release(vdev); // or kfree(my_vdev); | 415 | video_device_release(vdev); /* or kfree(my_vdev); */ |
414 | return err; | 416 | return err; |
415 | } | 417 | } |
416 | 418 | ||
@@ -516,5 +518,4 @@ void *video_drvdata(struct file *file); | |||
516 | 518 | ||
517 | You can go from a video_device struct to the v4l2_device struct using: | 519 | You can go from a video_device struct to the v4l2_device struct using: |
518 | 520 | ||
519 | struct v4l2_device *v4l2_dev = dev_get_drvdata(vdev->parent); | 521 | struct v4l2_device *v4l2_dev = vdev->v4l2_dev; |
520 | |||