^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)