aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/video4linux
diff options
context:
space:
mode:
authorAnton Vorontsov <cbouatmailru@gmail.com>2012-01-04 00:09:35 -0500
committerAnton Vorontsov <cbouatmailru@gmail.com>2012-01-04 00:09:35 -0500
commit251f39fe42dae863bd24e30864e6b66076ba076d (patch)
treec804944bc17f3836d19cc8b5bc611dd1fb0ea915 /Documentation/video4linux
parent9b8872273af6983b246252a6508fa7cf34c69d6e (diff)
parent35b4c01e29bdd9632dabf9784ed3486333f00427 (diff)
Merge branch 'power-supply-scope' of git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen
Diffstat (limited to 'Documentation/video4linux')
-rw-r--r--Documentation/video4linux/CARDLIST.tm600016
-rw-r--r--Documentation/video4linux/gspca.txt4
-rw-r--r--Documentation/video4linux/omap3isp.txt9
-rw-r--r--Documentation/video4linux/v4l2-controls.txt43
4 files changed, 41 insertions, 31 deletions
diff --git a/Documentation/video4linux/CARDLIST.tm6000 b/Documentation/video4linux/CARDLIST.tm6000
new file mode 100644
index 000000000000..b5edce487997
--- /dev/null
+++ b/Documentation/video4linux/CARDLIST.tm6000
@@ -0,0 +1,16 @@
1 1 -> Generic tm5600 board (tm5600) [6000:0001]
2 2 -> Generic tm6000 board (tm6000) [6000:0001]
3 3 -> Generic tm6010 board (tm6010) [6000:0002]
4 4 -> 10Moons UT821 (tm5600) [6000:0001]
5 5 -> 10Moons UT330 (tm5600)
6 6 -> ADSTech Dual TV (tm6000) [06e1:f332]
7 7 -> FreeCom and similar (tm6000) [14aa:0620]
8 8 -> ADSTech Mini Dual TV (tm6000) [06e1:b339]
9 9 -> Hauppauge WinTV HVR-900H/USB2 Stick (tm6010) [2040:6600,2040:6601,2040:6610,2040:6611]
10 10 -> Beholder Wander (tm6010) [6000:dec0]
11 11 -> Beholder Voyager (tm6010) [6000:dec1]
12 12 -> TerraTec Cinergy Hybrid XE/Cinergy Hybrid Stick (tm6010) [0ccd:0086,0ccd:00a5]
13 13 -> TwinHan TU501 (tm6010) [13d3:3240,13d3:3241,13d3:3243,13d3:3264]
14 14 -> Beholder Wander Lite (tm6010) [6000:dec2]
15 15 -> Beholder Voyager Lite (tm6010) [6000:dec3]
16
diff --git a/Documentation/video4linux/gspca.txt b/Documentation/video4linux/gspca.txt
index 5bfa9a777d26..b15e29f31121 100644
--- a/Documentation/video4linux/gspca.txt
+++ b/Documentation/video4linux/gspca.txt
@@ -8,6 +8,7 @@ xxxx vend:prod
8---- 8----
9spca501 0000:0000 MystFromOri Unknown Camera 9spca501 0000:0000 MystFromOri Unknown Camera
10spca508 0130:0130 Clone Digital Webcam 11043 10spca508 0130:0130 Clone Digital Webcam 11043
11zc3xx 03f0:1b07 HP Premium Starter Cam
11m5602 0402:5602 ALi Video Camera Controller 12m5602 0402:5602 ALi Video Camera Controller
12spca501 040a:0002 Kodak DVC-325 13spca501 040a:0002 Kodak DVC-325
13spca500 040a:0300 Kodak EZ200 14spca500 040a:0300 Kodak EZ200
@@ -190,6 +191,7 @@ ov519 05a9:0519 OV519 Microphone
190ov519 05a9:0530 OmniVision 191ov519 05a9:0530 OmniVision
191ov519 05a9:2800 OmniVision SuperCAM 192ov519 05a9:2800 OmniVision SuperCAM
192ov519 05a9:4519 Webcam Classic 193ov519 05a9:4519 Webcam Classic
194ov534_9 05a9:8065 OmniVision test kit ov538+ov9712
193ov519 05a9:8519 OmniVision 195ov519 05a9:8519 OmniVision
194ov519 05a9:a511 D-Link USB Digital Video Camera 196ov519 05a9:a511 D-Link USB Digital Video Camera
195ov519 05a9:a518 D-Link DSB-C310 Webcam 197ov519 05a9:a518 D-Link DSB-C310 Webcam
@@ -199,6 +201,8 @@ gl860 05e3:0503 Genesys Logic PC Camera
199gl860 05e3:f191 Genesys Logic PC Camera 201gl860 05e3:f191 Genesys Logic PC Camera
200spca561 060b:a001 Maxell Compact Pc PM3 202spca561 060b:a001 Maxell Compact Pc PM3
201zc3xx 0698:2003 CTX M730V built in 203zc3xx 0698:2003 CTX M730V built in
204topro 06a2:0003 TP6800 PC Camera, CmoX CX0342 webcam
205topro 06a2:6810 Creative Qmax
202nw80x 06a5:0000 Typhoon Webcam 100 USB 206nw80x 06a5:0000 Typhoon Webcam 100 USB
203nw80x 06a5:d001 Divio based webcams 207nw80x 06a5:d001 Divio based webcams
204nw80x 06a5:d800 Divio Chicony TwinkleCam, Trust SpaceCam 208nw80x 06a5:d800 Divio Chicony TwinkleCam, Trust SpaceCam
diff --git a/Documentation/video4linux/omap3isp.txt b/Documentation/video4linux/omap3isp.txt
index 69be2c782b98..5dd1439b61fd 100644
--- a/Documentation/video4linux/omap3isp.txt
+++ b/Documentation/video4linux/omap3isp.txt
@@ -70,10 +70,11 @@ Events
70The OMAP 3 ISP driver does support the V4L2 event interface on CCDC and 70The OMAP 3 ISP driver does support the V4L2 event interface on CCDC and
71statistics (AEWB, AF and histogram) subdevs. 71statistics (AEWB, AF and histogram) subdevs.
72 72
73The CCDC subdev produces V4L2_EVENT_OMAP3ISP_HS_VS type event on HS_VS 73The CCDC subdev produces V4L2_EVENT_FRAME_SYNC type event on HS_VS
74interrupt which is used to signal frame start. The event is triggered exactly 74interrupt which is used to signal frame start. Earlier version of this
75when the reception of the first line of the frame starts in the CCDC module. 75driver used V4L2_EVENT_OMAP3ISP_HS_VS for this purpose. The event is
76The event can be subscribed on the CCDC subdev. 76triggered exactly when the reception of the first line of the frame starts
77in the CCDC module. The event can be subscribed on the CCDC subdev.
77 78
78(When using parallel interface one must pay account to correct configuration 79(When using parallel interface one must pay account to correct configuration
79of the VS signal polarity. This is automatically correct when using the serial 80of the VS signal polarity. This is automatically correct when using the serial
diff --git a/Documentation/video4linux/v4l2-controls.txt b/Documentation/video4linux/v4l2-controls.txt
index 9346fc8cbf2b..26aa0573933e 100644
--- a/Documentation/video4linux/v4l2-controls.txt
+++ b/Documentation/video4linux/v4l2-controls.txt
@@ -285,11 +285,11 @@ implement g_volatile_ctrl like this:
285Note that you use the 'new value' union as well in g_volatile_ctrl. In general 285Note that you use the 'new value' union as well in g_volatile_ctrl. In general
286controls that need to implement g_volatile_ctrl are read-only controls. 286controls that need to implement g_volatile_ctrl are read-only controls.
287 287
288To mark a control as volatile you have to set the is_volatile flag: 288To mark a control as volatile you have to set V4L2_CTRL_FLAG_VOLATILE:
289 289
290 ctrl = v4l2_ctrl_new_std(&sd->ctrl_handler, ...); 290 ctrl = v4l2_ctrl_new_std(&sd->ctrl_handler, ...);
291 if (ctrl) 291 if (ctrl)
292 ctrl->is_volatile = 1; 292 ctrl->flags |= V4L2_CTRL_FLAG_VOLATILE;
293 293
294For try/s_ctrl the new values (i.e. as passed by the user) are filled in and 294For try/s_ctrl the new values (i.e. as passed by the user) are filled in and
295you can modify them in try_ctrl or set them in s_ctrl. The 'cur' union 295you can modify them in try_ctrl or set them in s_ctrl. The 'cur' union
@@ -367,8 +367,7 @@ Driver specific controls can be created using v4l2_ctrl_new_custom():
367The last argument is the priv pointer which can be set to driver-specific 367The last argument is the priv pointer which can be set to driver-specific
368private data. 368private data.
369 369
370The v4l2_ctrl_config struct also has fields to set the is_private and is_volatile 370The v4l2_ctrl_config struct also has a field to set the is_private flag.
371flags.
372 371
373If the name field is not set, then the framework will assume this is a standard 372If the name field is not set, then the framework will assume this is a standard
374control and will fill in the name, type and flags fields accordingly. 373control and will fill in the name, type and flags fields accordingly.
@@ -496,18 +495,20 @@ Handling autogain/gain-type Controls with Auto Clusters
496 495
497A common type of control cluster is one that handles 'auto-foo/foo'-type 496A common type of control cluster is one that handles 'auto-foo/foo'-type
498controls. Typical examples are autogain/gain, autoexposure/exposure, 497controls. Typical examples are autogain/gain, autoexposure/exposure,
499autowhitebalance/red balance/blue balance. In all cases you have one controls 498autowhitebalance/red balance/blue balance. In all cases you have one control
500that determines whether another control is handled automatically by the hardware, 499that determines whether another control is handled automatically by the hardware,
501or whether it is under manual control from the user. 500or whether it is under manual control from the user.
502 501
503If the cluster is in automatic mode, then the manual controls should be 502If the cluster is in automatic mode, then the manual controls should be
504marked inactive. When the volatile controls are read the g_volatile_ctrl 503marked inactive and volatile. When the volatile controls are read the
505operation should return the value that the hardware's automatic mode set up 504g_volatile_ctrl operation should return the value that the hardware's automatic
506automatically. 505mode set up automatically.
507 506
508If the cluster is put in manual mode, then the manual controls should become 507If the cluster is put in manual mode, then the manual controls should become
509active again and the is_volatile flag should be ignored (so g_volatile_ctrl is 508active again and the volatile flag is cleared (so g_volatile_ctrl is no longer
510no longer called while in manual mode). 509called while in manual mode). In addition just before switching to manual mode
510the current values as determined by the auto mode are copied as the new manual
511values.
511 512
512Finally the V4L2_CTRL_FLAG_UPDATE should be set for the auto control since 513Finally the V4L2_CTRL_FLAG_UPDATE should be set for the auto control since
513changing that control affects the control flags of the manual controls. 514changing that control affects the control flags of the manual controls.
@@ -520,7 +521,11 @@ void v4l2_ctrl_auto_cluster(unsigned ncontrols, struct v4l2_ctrl **controls,
520 521
521The first two arguments are identical to v4l2_ctrl_cluster. The third argument 522The first two arguments are identical to v4l2_ctrl_cluster. The third argument
522tells the framework which value switches the cluster into manual mode. The 523tells the framework which value switches the cluster into manual mode. The
523last argument will optionally set the is_volatile flag for the non-auto controls. 524last argument will optionally set V4L2_CTRL_FLAG_VOLATILE for the non-auto controls.
525If it is false, then the manual controls are never volatile. You would typically
526use that if the hardware does not give you the option to read back to values as
527determined by the auto mode (e.g. if autogain is on, the hardware doesn't allow
528you to obtain the current gain value).
524 529
525The first control of the cluster is assumed to be the 'auto' control. 530The first control of the cluster is assumed to be the 'auto' control.
526 531
@@ -681,16 +686,6 @@ if there are no controls at all.
681count if nothing was done yet. If it is less than count then only the controls 686count if nothing was done yet. If it is less than count then only the controls
682up to error_idx-1 were successfully applied. 687up to error_idx-1 were successfully applied.
683 688
6843) When attempting to read a button control the framework will return -EACCES
685instead of -EINVAL as stated in the spec. It seems to make more sense since
686button controls are write-only controls.
687
6884) Attempting to write to a read-only control will return -EACCES instead of
689-EINVAL as the spec says.
690
6915) The spec does not mention what should happen when you try to set/get a
692control class controls. The framework will return -EACCES.
693
694 689
695Proposals for Extensions 690Proposals for Extensions
696======================== 691========================
@@ -703,9 +698,3 @@ decimal. Useful for e.g. video_mute_yuv.
7032) It is possible to mark in the controls array which controls have been 6982) It is possible to mark in the controls array which controls have been
704successfully written and which failed by for example adding a bit to the 699successfully written and which failed by for example adding a bit to the
705control ID. Not sure if it is worth the effort, though. 700control ID. Not sure if it is worth the effort, though.
706
7073) Trying to set volatile inactive controls should result in -EACCESS.
708
7094) Add a new flag to mark volatile controls. Any application that wants
710to store the state of the controls can then skip volatile inactive controls.
711Currently it is not possible to detect such controls.