summaryrefslogtreecommitdiff
path: root/linux/Documentation/video4linux/v4l2-framework.txt
diff options
context:
space:
mode:
authorHans Verkuil <hverkuil@xs4all.nl>2009-03-13 14:03:04 +0100
committerHans Verkuil <hverkuil@xs4all.nl>2009-03-13 14:03:04 +0100
commite0880a34f81b5282fa1be0f8872664992db9cdfd (patch)
treeb44eed765978f6f7e3a90b2238846e298a15cf37 /linux/Documentation/video4linux/v4l2-framework.txt
parent01cbd287bd3f93c3402e8bd46d5c92aec838da2e (diff)
downloadmediapointer-dvb-s2-e0880a34f81b5282fa1be0f8872664992db9cdfd.tar.gz
mediapointer-dvb-s2-e0880a34f81b5282fa1be0f8872664992db9cdfd.tar.bz2
v4l2-dev: use parent field if the v4l2_device has no parent set.
From: Hans Verkuil <hverkuil@xs4all.nl> Normally the parent device of v4l2_device is used as the video device node's parent. But if it was not set, then use the parent field in the video_device struct. This is needed in the cx88 driver, which has one core v4l2_device but creates multiple pci devices (one each for raw and mpeg video). So you cannot associate the core v4l2_device with a particular PCI device, but you can do that for each video_device. Priority: normal Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Diffstat (limited to 'linux/Documentation/video4linux/v4l2-framework.txt')
-rw-r--r--linux/Documentation/video4linux/v4l2-framework.txt12
1 files changed, 11 insertions, 1 deletions
diff --git a/linux/Documentation/video4linux/v4l2-framework.txt b/linux/Documentation/video4linux/v4l2-framework.txt
index 51a7b6db1..df0247ed1 100644
--- a/linux/Documentation/video4linux/v4l2-framework.txt
+++ b/linux/Documentation/video4linux/v4l2-framework.txt
@@ -91,7 +91,8 @@ NULL, then you *must* setup v4l2_dev->name before calling v4l2_device_register.
The first 'dev' argument is normally the struct device pointer of a pci_dev,
usb_device or platform_device. It is rare for dev to be NULL, but it happens
-with ISA devices, for example.
+with ISA devices or when one device creates multiple PCI devices, thus making
+it impossible to associate v4l2_dev with a particular parent.
You unregister with:
@@ -414,6 +415,15 @@ You should also set these fields:
- ioctl_ops: if you use the v4l2_ioctl_ops to simplify ioctl maintenance
(highly recommended to use this and it might become compulsory in the
future!), then set this to your v4l2_ioctl_ops struct.
+- 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.
If you use v4l2_ioctl_ops, then you should set either .unlocked_ioctl or
.ioctl to video_ioctl2 in your v4l2_file_operations struct.