Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) .. SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3) Philips webcams (pwc driver)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4) ============================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6) This file contains some additional information for the Philips and OEM webcams.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) E-mail: webcam@smcc.demon.nl                        Last updated: 2004-01-19
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8) Site: http://www.smcc.demon.nl/webcam/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) As of this moment, the following cameras are supported:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12)  * Philips PCA645
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13)  * Philips PCA646
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14)  * Philips PCVC675
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15)  * Philips PCVC680
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16)  * Philips PCVC690
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17)  * Philips PCVC720/40
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18)  * Philips PCVC730
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19)  * Philips PCVC740
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20)  * Philips PCVC750
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21)  * Askey VC010
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22)  * Creative Labs Webcam 5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23)  * Creative Labs Webcam Pro Ex
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24)  * Logitech QuickCam 3000 Pro
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25)  * Logitech QuickCam 4000 Pro
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26)  * Logitech QuickCam Notebook Pro
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27)  * Logitech QuickCam Zoom
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28)  * Logitech QuickCam Orbit
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29)  * Logitech QuickCam Sphere
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30)  * Samsung MPC-C10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31)  * Samsung MPC-C30
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32)  * Sotec Afina Eye
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33)  * AME CU-001
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34)  * Visionite VCS-UM100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35)  * Visionite VCS-UC300
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) The main webpage for the Philips driver is at the address above. It contains
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) a lot of extra information, a FAQ, and the binary plugin 'PWCX'. This plugin
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) contains decompression routines that allow you to use higher image sizes and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) framerates; in addition the webcam uses less bandwidth on the USB bus (handy
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) if you want to run more than 1 camera simultaneously). These routines fall
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) under a NDA, and may therefore not be distributed as source; however, its use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) is completely optional.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) You can build this code either into your kernel, or as a module. I recommend
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) the latter, since it makes troubleshooting a lot easier. The built-in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) microphone is supported through the USB Audio class.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) When you load the module you can set some default settings for the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) camera; some programs depend on a particular image-size or -format and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) don't know how to set it properly in the driver. The options are:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) size
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54)    Can be one of 'sqcif', 'qsif', 'qcif', 'sif', 'cif' or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55)    'vga', for an image size of resp. 128x96, 160x120, 176x144,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56)    320x240, 352x288 and 640x480 (of course, only for those cameras that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57)    support these resolutions).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) fps
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60)    Specifies the desired framerate. Is an integer in the range of 4-30.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) fbufs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63)    This parameter specifies the number of internal buffers to use for storing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64)    frames from the cam. This will help if the process that reads images from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65)    the cam is a bit slow or momentarily busy. However, on slow machines it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66)    only introduces lag, so choose carefully. The default is 3, which is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67)    reasonable. You can set it between 2 and 5.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) mbufs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70)    This is an integer between 1 and 10. It will tell the module the number of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71)    buffers to reserve for mmap(), VIDIOCCGMBUF, VIDIOCMCAPTURE and friends.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72)    The default is 2, which is adequate for most applications (double
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73)    buffering).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75)    Should you experience a lot of 'Dumping frame...' messages during
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76)    grabbing with a tool that uses mmap(), you might want to increase if.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77)    However, it doesn't really buffer images, it just gives you a bit more
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78)    slack when your program is behind. But you need a multi-threaded or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79)    forked program to really take advantage of these buffers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81)    The absolute maximum is 10, but don't set it too high!  Every buffer takes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82)    up 460 KB of RAM, so unless you have a lot of memory setting this to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83)    something more than 4 is an absolute waste.  This memory is only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84)    allocated during open(), so nothing is wasted when the camera is not in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85)    use.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) power_save
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88)    When power_save is enabled (set to 1), the module will try to shut down
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89)    the cam on close() and re-activate on open(). This will save power and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90)    turn off the LED. Not all cameras support this though (the 645 and 646
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91)    don't have power saving at all), and some models don't work either (they
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92)    will shut down, but never wake up). Consider this experimental. By
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93)    default this option is disabled.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) compression (only useful with the plugin)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96)    With this option you can control the compression factor that the camera
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97)    uses to squeeze the image through the USB bus. You can set the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98)    parameter between 0 and 3::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100)      0 = prefer uncompressed images; if the requested mode is not available
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) 	 in an uncompressed format, the driver will silently switch to low
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) 	 compression.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103)      1 = low compression.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104)      2 = medium compression.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105)      3 = high compression.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107)    High compression takes less bandwidth of course, but it could also
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108)    introduce some unwanted artefacts. The default is 2, medium compression.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109)    See the FAQ on the website for an overview of which modes require
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110)    compression.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112)    The compression parameter does not apply to the 645 and 646 cameras
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113)    and OEM models derived from those (only a few). Most cams honour this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114)    parameter.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) leds
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117)    This settings takes 2 integers, that define the on/off time for the LED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118)    (in milliseconds). One of the interesting things that you can do with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119)    this is let the LED blink while the camera is in use. This::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121)      leds=500,500
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123)    will blink the LED once every second. But with::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125)      leds=0,0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127)    the LED never goes on, making it suitable for silent surveillance.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129)    By default the camera's LED is on solid while in use, and turned off
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130)    when the camera is not used anymore.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132)    This parameter works only with the ToUCam range of cameras (720, 730, 740,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133)    750) and OEMs. For other cameras this command is silently ignored, and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134)    the LED cannot be controlled.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136)    Finally: this parameters does not take effect UNTIL the first time you
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137)    open the camera device. Until then, the LED remains on.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) dev_hint
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140)    A long standing problem with USB devices is their dynamic nature: you
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141)    never know what device a camera gets assigned; it depends on module load
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142)    order, the hub configuration, the order in which devices are plugged in,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143)    and the phase of the moon (i.e. it can be random). With this option you
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144)    can give the driver a hint as to what video device node (/dev/videoX) it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145)    should use with a specific camera. This is also handy if you have two
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146)    cameras of the same model.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148)    A camera is specified by its type (the number from the camera model,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149)    like PCA645, PCVC750VC, etc) and optionally the serial number (visible
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150)    in /sys/kernel/debug/usb/devices). A hint consists of a string with the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151)    following format::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153)       [type[.serialnumber]:]node
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155)    The square brackets mean that both the type and the serialnumber are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156)    optional, but a serialnumber cannot be specified without a type (which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157)    would be rather pointless). The serialnumber is separated from the type
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158)    by a '.'; the node number by a ':'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160)    This somewhat cryptic syntax is best explained by a few examples::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162)      dev_hint=3,5              The first detected cam gets assigned
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) 			       /dev/video3, the second /dev/video5. Any
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) 			       other cameras will get the first free
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) 			       available slot (see below).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167)      dev_hint=645:1,680:2      The PCA645 camera will get /dev/video1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) 			       and a PCVC680 /dev/video2.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170)      dev_hint=645.0123:3,645.4567:0	The PCA645 camera with serialnumber
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) 					0123 goes to /dev/video3, the same
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) 					camera model with the 4567 serial
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) 					gets /dev/video0.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175)      dev_hint=750:1,4,5,6       The PCVC750 camera will get /dev/video1, the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) 				next 3 Philips cams will use /dev/video4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) 				through /dev/video6.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179)    Some points worth knowing:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181)    - Serialnumbers are case sensitive and must be written full, including
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182)      leading zeroes (it's treated as a string).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183)    - If a device node is already occupied, registration will fail and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184)      the webcam is not available.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185)    - You can have up to 64 video devices; be sure to make enough device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186)      nodes in /dev if you want to spread the numbers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187)      After /dev/video9 comes /dev/video10 (not /dev/videoA).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188)    - If a camera does not match any dev_hint, it will simply get assigned
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189)      the first available device node, just as it used to be.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) trace
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192)    In order to better detect problems, it is now possible to turn on a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193)    'trace' of some of the calls the module makes; it logs all items in your
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194)    kernel log at debug level.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196)    The trace variable is a bitmask; each bit represents a certain feature.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197)    If you want to trace something, look up the bit value(s) in the table
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198)    below, add the values together and supply that to the trace variable.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200)    ====== ======= ================================================ =======
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201)    Value  Value   Description					   Default
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202)    (dec)  (hex)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203)    ====== ======= ================================================ =======
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204)        1    0x1   Module initialization; this will log messages       On
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) 		  while loading and unloading the module
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207)        2    0x2   probe() and disconnect() traces                     On
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209)        4    0x4   Trace open() and close() calls                      Off
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211)        8    0x8   read(), mmap() and associated ioctl() calls         Off
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213)       16   0x10   Memory allocation of buffers, etc.                  Off
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215)       32   0x20   Showing underflow, overflow and Dumping frame       On
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) 		  messages
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218)       64   0x40   Show viewport and image sizes                       Off
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220)      128   0x80   PWCX debugging                                      Off
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221)    ====== ======= ================================================ =======
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223)    For example, to trace the open() & read() functions, sum 8 + 4 = 12,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224)    so you would supply trace=12 during insmod or modprobe. If
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225)    you want to turn the initialization and probing tracing off, set trace=0.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226)    The default value for trace is 35 (0x23).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) Example::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232)      # modprobe pwc size=cif fps=15 power_save=1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) The fbufs, mbufs and trace parameters are global and apply to all connected
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) cameras. Each camera has its own set of buffers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) size and fps only specify defaults when you open() the device; this is to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) accommodate some tools that don't set the size. You can change these
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) settings after open() with the Video4Linux ioctl() calls. The default of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) defaults is QCIF size at 10 fps.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) The compression parameter is semiglobal; it sets the initial compression
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) preference for all camera's, but this parameter can be set per camera with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) the VIDIOCPWCSCQUAL ioctl() call.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) All parameters are optional.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247)