diff options
author | Hans Verkuil <hverkuil@xs4all.nl> | 2009-03-13 09:03:04 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-03-30 11:43:20 -0400 |
commit | 005759613b95264fba9138010f112bc138c857c2 (patch) | |
tree | 43fa1d5a9035c51ab822906b5114885ac35707df /Documentation | |
parent | afd96668d8491f762e35c16ce65781da820a67fa (diff) |
V4L/DVB (10988): v4l2-dev: use parent field if the v4l2_device has no parent set.
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.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/video4linux/v4l2-framework.txt | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/Documentation/video4linux/v4l2-framework.txt b/Documentation/video4linux/v4l2-framework.txt index 51a7b6db118f..df0247ed13d8 100644 --- a/Documentation/video4linux/v4l2-framework.txt +++ b/Documentation/video4linux/v4l2-framework.txt | |||
@@ -91,7 +91,8 @@ NULL, then you *must* setup v4l2_dev->name before calling v4l2_device_register. | |||
91 | 91 | ||
92 | The first 'dev' argument is normally the struct device pointer of a pci_dev, | 92 | The first 'dev' argument is normally the struct device pointer of a pci_dev, |
93 | usb_device or platform_device. It is rare for dev to be NULL, but it happens | 93 | usb_device or platform_device. It is rare for dev to be NULL, but it happens |
94 | with ISA devices, for example. | 94 | with ISA devices or when one device creates multiple PCI devices, thus making |
95 | it impossible to associate v4l2_dev with a particular parent. | ||
95 | 96 | ||
96 | You unregister with: | 97 | You unregister with: |
97 | 98 | ||
@@ -414,6 +415,15 @@ You should also set these fields: | |||
414 | - ioctl_ops: if you use the v4l2_ioctl_ops to simplify ioctl maintenance | 415 | - ioctl_ops: if you use the v4l2_ioctl_ops to simplify ioctl maintenance |
415 | (highly recommended to use this and it might become compulsory in the | 416 | (highly recommended to use this and it might become compulsory in the |
416 | future!), then set this to your v4l2_ioctl_ops struct. | 417 | future!), then set this to your v4l2_ioctl_ops struct. |
418 | - parent: you only set this if v4l2_device was registered with NULL as | ||
419 | the parent device struct. This only happens in cases where one hardware | ||
420 | device has multiple PCI devices that all share the same v4l2_device core. | ||
421 | |||
422 | The cx88 driver is an example of this: one core v4l2_device struct, but | ||
423 | it is used by both an raw video PCI device (cx8800) and a MPEG PCI device | ||
424 | (cx8802). Since the v4l2_device cannot be associated with a particular | ||
425 | PCI device it is setup without a parent device. But when the struct | ||
426 | video_device is setup you do know which parent PCI device to use. | ||
417 | 427 | ||
418 | If you use v4l2_ioctl_ops, then you should set either .unlocked_ioctl or | 428 | If you use v4l2_ioctl_ops, then you should set either .unlocked_ioctl or |
419 | .ioctl to video_ioctl2 in your v4l2_file_operations struct. | 429 | .ioctl to video_ioctl2 in your v4l2_file_operations struct. |