|
@@ -574,9 +574,13 @@ of the video device exits.
|
|
|
The default video_device_release() callback just calls kfree to free the
|
|
|
allocated memory.
|
|
|
|
|
|
+There is also a video_device_release_empty() function that does nothing
|
|
|
+(is empty) and can be used if the struct is embedded and there is nothing
|
|
|
+to do when it is released.
|
|
|
+
|
|
|
You should also set these fields:
|
|
|
|
|
|
-- v4l2_dev: set to the v4l2_device parent device.
|
|
|
+- v4l2_dev: must be set to the v4l2_device parent device.
|
|
|
|
|
|
- name: set to something descriptive and unique.
|
|
|
|
|
@@ -613,15 +617,16 @@ You should also set these fields:
|
|
|
If you want to have a separate priority state per (group of) device node(s),
|
|
|
then you can point it to your own struct v4l2_prio_state.
|
|
|
|
|
|
-- parent: you only set this if v4l2_device was registered with NULL as
|
|
|
+- dev_parent: you only set this if v4l2_device was registered with NULL as
|
|
|
the parent device struct. This only happens in cases where one hardware
|
|
|
device has multiple PCI devices that all share the same v4l2_device core.
|
|
|
|
|
|
The cx88 driver is an example of this: one core v4l2_device struct, but
|
|
|
- it is used by both an raw video PCI device (cx8800) and a MPEG PCI device
|
|
|
- (cx8802). Since the v4l2_device cannot be associated with a particular
|
|
|
- PCI device it is setup without a parent device. But when the struct
|
|
|
- video_device is setup you do know which parent PCI device to use.
|
|
|
+ it is used by both a raw video PCI device (cx8800) and a MPEG PCI device
|
|
|
+ (cx8802). Since the v4l2_device cannot be associated with two PCI devices
|
|
|
+ at the same time it is setup without a parent device. But when the struct
|
|
|
+ video_device is initialized you *do* know which parent PCI device to use and
|
|
|
+ so you set dev_device to the correct PCI device.
|
|
|
|
|
|
- flags: optional. Set to V4L2_FL_USE_FH_PRIO if you want to let the framework
|
|
|
handle the VIDIOC_G/S_PRIORITY ioctls. This requires that you use struct
|