mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 03:01:39 -04:00
A reasonably busy cycle for documentation this time around. There is a new
guide for user-space API documents, rather sparsely populated at the moment, but it's a start. Markus improved the infrastructure for converting diagrams. Mauro has converted much of the USB documentation over to RST. Plus the usual set of fixes, improvements, and tweaks. There's a bit more than the usual amount of reaching out of Documentation/ to fix comments elsewhere in the tree; I have acks for those where I could get them. -----BEGIN PGP SIGNATURE----- iQIcBAABAgAGBQJZB1elAAoJEI3ONVYwIuV6wUIQAJSM/4rNdj6z+GXeWhRfbsOo vqqVYluvXQIJaaqdsy9dgcfThhOXWYsPyVF6Xd+bDJpwF3BMZYbX1CI1Mo3kRD+7 9+Pf68cYSHRoU3l/sFI8q0zfKbHtmFteIvnRQoFtRaExqgTR8glUfxNDyN9XuNAZ 3naS4qMZivM4gjMcSpIB/wFOQpV+6qVIs6VTFLdCC8wodT3W/Wmb+bqrCVJ0twbB t8jJeYHt2wsiTdqrKU+VilAUAZ1Lby+DNfeWrO18rC1ohktPyUzOGg8JmTKUBpVO qj1OJwD6abuaNh/J9bXsh8u0OrVrBKWjVrhq9IFYDlm92fu3Bgr6YeoaVPEpcklt jdlgZnWs9/oXa6d32aMc9F7mP9a0Q1qikFTYINhaHQZCb4VDRuQ9hCSuqWm5jlVy lmVAoxLa0zSdOoXaYuO3HC99ku1cIn814CXMDz/IwKXkqUCV+zl+H3AGkvxGyQ5M eblw2TnQnc6e1LRcxt5bgpFR1JYMbCJhu0U5XrNFueQV8ReB15dvL7h4y21dWJKF 2Sr83rwfG1rpZQiSqCjOXxIzuXbEGH3+a+zCDV5IHhQRt/VNDOt2hgmcyucSSJ5h 5GRFYgTlGvoT/6LdIT39QooHB+4tSDRtEQ6lh0q2ZtVV2rfG/I6/PR5sUbWM65SN vAfctRm2afHLhdonSX5O =41m+ -----END PGP SIGNATURE----- Merge tag 'docs-4.12' of git://git.lwn.net/linux Pull documentation update from Jonathan Corbet: "A reasonably busy cycle for documentation this time around. There is a new guide for user-space API documents, rather sparsely populated at the moment, but it's a start. Markus improved the infrastructure for converting diagrams. Mauro has converted much of the USB documentation over to RST. Plus the usual set of fixes, improvements, and tweaks. There's a bit more than the usual amount of reaching out of Documentation/ to fix comments elsewhere in the tree; I have acks for those where I could get them" * tag 'docs-4.12' of git://git.lwn.net/linux: (74 commits) docs: Fix a couple typos docs: Fix a spelling error in vfio-mediated-device.txt docs: Fix a spelling error in ioctl-number.txt MAINTAINERS: update file entry for HSI subsystem Documentation: allow installing man pages to a user defined directory Doc/PM: Sync with intel_powerclamp code behavior zr364xx.rst: usb/devices is now at /sys/kernel/debug/ usb.rst: move documentation from proc_usb_info.txt to USB ReST book convert philips.txt to ReST and add to media docs docs-rst: usb: update old usbfs-related documentation arm: Documentation: update a path name docs: process/4.Coding.rst: Fix a couple of document refs docs-rst: fix usb cross-references usb: gadget.h: be consistent at kernel doc macros usb: composite.h: fix two warnings when building docs usb: get rid of some ReST doc build errors usb.rst: get rid of some Sphinx errors usb/URB.txt: convert to ReST and update it usb/persist.txt: convert to ReST and add to driver-api book usb/hotplug.txt: convert to ReST and add to driver-api book ...
This commit is contained in:
commit
c58d4055c0
132 changed files with 6111 additions and 5417 deletions
|
|
@ -1,51 +1,6 @@
|
|||
# Rules to convert DOT and SVG to Sphinx images
|
||||
|
||||
SRC_DIR=$(srctree)/Documentation/media
|
||||
|
||||
DOTS = \
|
||||
uapi/v4l/pipeline.dot \
|
||||
|
||||
IMAGES = \
|
||||
typical_media_device.svg \
|
||||
uapi/dvb/dvbstb.svg \
|
||||
uapi/v4l/bayer.svg \
|
||||
uapi/v4l/constraints.svg \
|
||||
uapi/v4l/crop.svg \
|
||||
uapi/v4l/fieldseq_bt.svg \
|
||||
uapi/v4l/fieldseq_tb.svg \
|
||||
uapi/v4l/nv12mt.svg \
|
||||
uapi/v4l/nv12mt_example.svg \
|
||||
uapi/v4l/pipeline.svg \
|
||||
uapi/v4l/selection.svg \
|
||||
uapi/v4l/subdev-image-processing-full.svg \
|
||||
uapi/v4l/subdev-image-processing-scaling-multi-source.svg \
|
||||
uapi/v4l/subdev-image-processing-crop.svg \
|
||||
uapi/v4l/vbi_525.svg \
|
||||
uapi/v4l/vbi_625.svg \
|
||||
uapi/v4l/vbi_hsync.svg \
|
||||
|
||||
DOTTGT := $(patsubst %.dot,%.svg,$(DOTS))
|
||||
IMGDOT := $(patsubst %,$(SRC_DIR)/%,$(DOTTGT))
|
||||
|
||||
IMGTGT := $(patsubst %.svg,%.pdf,$(IMAGES))
|
||||
IMGPDF := $(patsubst %,$(SRC_DIR)/%,$(IMGTGT))
|
||||
|
||||
cmd = $(echo-cmd) $(cmd_$(1))
|
||||
|
||||
quiet_cmd_genpdf = GENPDF $2
|
||||
cmd_genpdf = convert $2 $3
|
||||
|
||||
quiet_cmd_gendot = DOT $2
|
||||
cmd_gendot = dot -Tsvg $2 > $3 || { rm -f $3; exit 1; }
|
||||
|
||||
%.pdf: %.svg
|
||||
@$(call cmd,genpdf,$<,$@)
|
||||
|
||||
%.svg: %.dot
|
||||
@$(call cmd,gendot,$<,$@)
|
||||
|
||||
# Rules to convert a .h file to inline RST documentation
|
||||
|
||||
SRC_DIR=$(srctree)/Documentation/media
|
||||
PARSER = $(srctree)/Documentation/sphinx/parse-headers.pl
|
||||
UAPI = $(srctree)/include/uapi/linux
|
||||
KAPI = $(srctree)/include/linux
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ A typical media device hardware is shown at :ref:`typical_media_device`.
|
|||
|
||||
.. _typical_media_device:
|
||||
|
||||
.. figure:: typical_media_device.*
|
||||
:alt: typical_media_device.pdf / typical_media_device.svg
|
||||
:align: center
|
||||
.. kernel-figure:: typical_media_device.svg
|
||||
:alt: typical_media_device.svg
|
||||
:align: center
|
||||
|
||||
Typical Media Device
|
||||
|
||||
|
|
|
|||
|
|
@ -55,9 +55,9 @@ Overview
|
|||
|
||||
.. _stb_components:
|
||||
|
||||
.. figure:: dvbstb.*
|
||||
:alt: dvbstb.pdf / dvbstb.svg
|
||||
:align: center
|
||||
.. kernel-figure:: dvbstb.svg
|
||||
:alt: dvbstb.svg
|
||||
:align: center
|
||||
|
||||
Components of a DVB card/STB
|
||||
|
||||
|
|
|
|||
|
|
@ -53,8 +53,8 @@ Cropping Structures
|
|||
|
||||
.. _crop-scale:
|
||||
|
||||
.. figure:: crop.*
|
||||
:alt: crop.pdf / crop.svg
|
||||
.. kernel-figure:: crop.svg
|
||||
:alt: crop.svg
|
||||
:align: center
|
||||
|
||||
Image Cropping, Insertion and Scaling
|
||||
|
|
|
|||
|
|
@ -221,33 +221,29 @@ and always returns default parameters as :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` does
|
|||
|
||||
.. _vbi-hsync:
|
||||
|
||||
.. figure:: vbi_hsync.*
|
||||
:alt: vbi_hsync.pdf / vbi_hsync.svg
|
||||
:align: center
|
||||
.. kernel-figure:: vbi_hsync.svg
|
||||
:alt: vbi_hsync.svg
|
||||
:align: center
|
||||
|
||||
**Figure 4.1. Line synchronization**
|
||||
|
||||
|
||||
.. _vbi-525:
|
||||
|
||||
.. figure:: vbi_525.*
|
||||
:alt: vbi_525.pdf / vbi_525.svg
|
||||
:align: center
|
||||
.. kernel-figure:: vbi_525.svg
|
||||
:alt: vbi_525.svg
|
||||
:align: center
|
||||
|
||||
**Figure 4.2. ITU-R 525 line numbering (M/NTSC and M/PAL)**
|
||||
|
||||
|
||||
|
||||
.. _vbi-625:
|
||||
|
||||
.. figure:: vbi_625.*
|
||||
:alt: vbi_625.pdf / vbi_625.svg
|
||||
:align: center
|
||||
.. kernel-figure:: vbi_625.svg
|
||||
:alt: vbi_625.svg
|
||||
:align: center
|
||||
|
||||
**Figure 4.3. ITU-R 625 line numbering**
|
||||
|
||||
|
||||
|
||||
Remember the VBI image format depends on the selected video standard,
|
||||
therefore the application must choose a new standard or query the
|
||||
current standard first. Attempts to read or write data ahead of format
|
||||
|
|
|
|||
|
|
@ -99,9 +99,9 @@ the video sensor and the host image processing hardware.
|
|||
|
||||
.. _pipeline-scaling:
|
||||
|
||||
.. figure:: pipeline.*
|
||||
:alt: pipeline.pdf / pipeline.svg
|
||||
:align: center
|
||||
.. kernel-figure:: pipeline.dot
|
||||
:alt: pipeline.dot
|
||||
:align: center
|
||||
|
||||
Image Format Negotiation on Pipelines
|
||||
|
||||
|
|
@ -404,9 +404,9 @@ selection will refer to the sink pad format dimensions instead.
|
|||
|
||||
.. _subdev-image-processing-crop:
|
||||
|
||||
.. figure:: subdev-image-processing-crop.*
|
||||
:alt: subdev-image-processing-crop.pdf / subdev-image-processing-crop.svg
|
||||
:align: center
|
||||
.. kernel-figure:: subdev-image-processing-crop.svg
|
||||
:alt: subdev-image-processing-crop.svg
|
||||
:align: center
|
||||
|
||||
**Figure 4.5. Image processing in subdevs: simple crop example**
|
||||
|
||||
|
|
@ -421,9 +421,9 @@ pad.
|
|||
|
||||
.. _subdev-image-processing-scaling-multi-source:
|
||||
|
||||
.. figure:: subdev-image-processing-scaling-multi-source.*
|
||||
:alt: subdev-image-processing-scaling-multi-source.pdf / subdev-image-processing-scaling-multi-source.svg
|
||||
:align: center
|
||||
.. kernel-figure:: subdev-image-processing-scaling-multi-source.svg
|
||||
:alt: subdev-image-processing-scaling-multi-source.svg
|
||||
:align: center
|
||||
|
||||
**Figure 4.6. Image processing in subdevs: scaling with multiple sources**
|
||||
|
||||
|
|
@ -437,8 +437,8 @@ an area at location specified by the source crop rectangle from it.
|
|||
|
||||
.. _subdev-image-processing-full:
|
||||
|
||||
.. figure:: subdev-image-processing-full.*
|
||||
:alt: subdev-image-processing-full.pdf / subdev-image-processing-full.svg
|
||||
.. kernel-figure:: subdev-image-processing-full.svg
|
||||
:alt: subdev-image-processing-full.svg
|
||||
:align: center
|
||||
|
||||
**Figure 4.7. Image processing in subdevs: scaling and composition with multiple sinks and sources**
|
||||
|
|
|
|||
|
|
@ -141,17 +141,20 @@ enum v4l2_field
|
|||
Field Order, Top Field First Transmitted
|
||||
========================================
|
||||
|
||||
.. figure:: fieldseq_tb.*
|
||||
:alt: fieldseq_tb.pdf / fieldseq_tb.svg
|
||||
.. kernel-figure:: fieldseq_tb.svg
|
||||
:alt: fieldseq_tb.svg
|
||||
:align: center
|
||||
|
||||
Field Order, Top Field First Transmitted
|
||||
|
||||
|
||||
.. _fieldseq-bt:
|
||||
|
||||
Field Order, Bottom Field First Transmitted
|
||||
===========================================
|
||||
|
||||
.. figure:: fieldseq_bt.*
|
||||
:alt: fieldseq_bt.pdf / fieldseq_bt.svg
|
||||
.. kernel-figure:: fieldseq_bt.svg
|
||||
:alt: fieldseq_bt.svg
|
||||
:align: center
|
||||
|
||||
Field Order, Bottom Field First Transmitted
|
||||
|
|
|
|||
|
|
@ -33,8 +33,8 @@ Layout of macroblocks in memory is presented in the following figure.
|
|||
|
||||
.. _nv12mt:
|
||||
|
||||
.. figure:: nv12mt.*
|
||||
:alt: nv12mt.pdf / nv12mt.svg
|
||||
.. kernel-figure:: nv12mt.svg
|
||||
:alt: nv12mt.svg
|
||||
:align: center
|
||||
|
||||
V4L2_PIX_FMT_NV12MT macroblock Z shape memory layout
|
||||
|
|
@ -50,8 +50,8 @@ interleaved. Height of the buffer is aligned to 32.
|
|||
|
||||
.. _nv12mt_ex:
|
||||
|
||||
.. figure:: nv12mt_example.*
|
||||
:alt: nv12mt_example.pdf / nv12mt_example.svg
|
||||
.. kernel-figure:: nv12mt_example.svg
|
||||
:alt: nv12mt_example.svg
|
||||
:align: center
|
||||
|
||||
Example V4L2_PIX_FMT_NV12MT memory layout of macroblocks
|
||||
|
|
|
|||
|
|
@ -7,9 +7,9 @@ Selection targets
|
|||
|
||||
.. _sel-targets-capture:
|
||||
|
||||
.. figure:: selection.*
|
||||
:alt: selection.pdf / selection.svg
|
||||
:align: center
|
||||
.. kernel-figure:: selection.svg
|
||||
:alt: selection.svg
|
||||
:align: center
|
||||
|
||||
Cropping and composing targets
|
||||
|
||||
|
|
|
|||
|
|
@ -1514,8 +1514,8 @@ be named ``MEDIA_BUS_FMT_SRGGB10_2X8_PADHI_LE``.
|
|||
|
||||
.. _bayer-patterns:
|
||||
|
||||
.. figure:: bayer.*
|
||||
:alt: bayer.pdf / bayer.svg
|
||||
.. kernel-figure:: bayer.svg
|
||||
:alt: bayer.svg
|
||||
:align: center
|
||||
|
||||
**Figure 4.8 Bayer Patterns**
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@ For more details see the file COPYING in the source distribution of Linux.
|
|||
meye
|
||||
omap3isp
|
||||
omap4_camera
|
||||
philips
|
||||
pvrusb2
|
||||
pxa_camera
|
||||
radiotrack
|
||||
|
|
|
|||
245
Documentation/media/v4l-drivers/philips.rst
Normal file
245
Documentation/media/v4l-drivers/philips.rst
Normal file
|
|
@ -0,0 +1,245 @@
|
|||
Philips webcams (pwc driver)
|
||||
============================
|
||||
|
||||
This file contains some additional information for the Philips and OEM webcams.
|
||||
E-mail: [email protected] Last updated: 2004-01-19
|
||||
Site: http://www.smcc.demon.nl/webcam/
|
||||
|
||||
As of this moment, the following cameras are supported:
|
||||
|
||||
* Philips PCA645
|
||||
* Philips PCA646
|
||||
* Philips PCVC675
|
||||
* Philips PCVC680
|
||||
* Philips PCVC690
|
||||
* Philips PCVC720/40
|
||||
* Philips PCVC730
|
||||
* Philips PCVC740
|
||||
* Philips PCVC750
|
||||
* Askey VC010
|
||||
* Creative Labs Webcam 5
|
||||
* Creative Labs Webcam Pro Ex
|
||||
* Logitech QuickCam 3000 Pro
|
||||
* Logitech QuickCam 4000 Pro
|
||||
* Logitech QuickCam Notebook Pro
|
||||
* Logitech QuickCam Zoom
|
||||
* Logitech QuickCam Orbit
|
||||
* Logitech QuickCam Sphere
|
||||
* Samsung MPC-C10
|
||||
* Samsung MPC-C30
|
||||
* Sotec Afina Eye
|
||||
* AME CU-001
|
||||
* Visionite VCS-UM100
|
||||
* Visionite VCS-UC300
|
||||
|
||||
The main webpage for the Philips driver is at the address above. It contains
|
||||
a lot of extra information, a FAQ, and the binary plugin 'PWCX'. This plugin
|
||||
contains decompression routines that allow you to use higher image sizes and
|
||||
framerates; in addition the webcam uses less bandwidth on the USB bus (handy
|
||||
if you want to run more than 1 camera simultaneously). These routines fall
|
||||
under a NDA, and may therefore not be distributed as source; however, its use
|
||||
is completely optional.
|
||||
|
||||
You can build this code either into your kernel, or as a module. I recommend
|
||||
the latter, since it makes troubleshooting a lot easier. The built-in
|
||||
microphone is supported through the USB Audio class.
|
||||
|
||||
When you load the module you can set some default settings for the
|
||||
camera; some programs depend on a particular image-size or -format and
|
||||
don't know how to set it properly in the driver. The options are:
|
||||
|
||||
size
|
||||
Can be one of 'sqcif', 'qsif', 'qcif', 'sif', 'cif' or
|
||||
'vga', for an image size of resp. 128x96, 160x120, 176x144,
|
||||
320x240, 352x288 and 640x480 (of course, only for those cameras that
|
||||
support these resolutions).
|
||||
|
||||
fps
|
||||
Specifies the desired framerate. Is an integer in the range of 4-30.
|
||||
|
||||
fbufs
|
||||
This parameter specifies the number of internal buffers to use for storing
|
||||
frames from the cam. This will help if the process that reads images from
|
||||
the cam is a bit slow or momentarily busy. However, on slow machines it
|
||||
only introduces lag, so choose carefully. The default is 3, which is
|
||||
reasonable. You can set it between 2 and 5.
|
||||
|
||||
mbufs
|
||||
This is an integer between 1 and 10. It will tell the module the number of
|
||||
buffers to reserve for mmap(), VIDIOCCGMBUF, VIDIOCMCAPTURE and friends.
|
||||
The default is 2, which is adequate for most applications (double
|
||||
buffering).
|
||||
|
||||
Should you experience a lot of 'Dumping frame...' messages during
|
||||
grabbing with a tool that uses mmap(), you might want to increase if.
|
||||
However, it doesn't really buffer images, it just gives you a bit more
|
||||
slack when your program is behind. But you need a multi-threaded or
|
||||
forked program to really take advantage of these buffers.
|
||||
|
||||
The absolute maximum is 10, but don't set it too high! Every buffer takes
|
||||
up 460 KB of RAM, so unless you have a lot of memory setting this to
|
||||
something more than 4 is an absolute waste. This memory is only
|
||||
allocated during open(), so nothing is wasted when the camera is not in
|
||||
use.
|
||||
|
||||
power_save
|
||||
When power_save is enabled (set to 1), the module will try to shut down
|
||||
the cam on close() and re-activate on open(). This will save power and
|
||||
turn off the LED. Not all cameras support this though (the 645 and 646
|
||||
don't have power saving at all), and some models don't work either (they
|
||||
will shut down, but never wake up). Consider this experimental. By
|
||||
default this option is disabled.
|
||||
|
||||
compression (only useful with the plugin)
|
||||
With this option you can control the compression factor that the camera
|
||||
uses to squeeze the image through the USB bus. You can set the
|
||||
parameter between 0 and 3::
|
||||
|
||||
0 = prefer uncompressed images; if the requested mode is not available
|
||||
in an uncompressed format, the driver will silently switch to low
|
||||
compression.
|
||||
1 = low compression.
|
||||
2 = medium compression.
|
||||
3 = high compression.
|
||||
|
||||
High compression takes less bandwidth of course, but it could also
|
||||
introduce some unwanted artefacts. The default is 2, medium compression.
|
||||
See the FAQ on the website for an overview of which modes require
|
||||
compression.
|
||||
|
||||
The compression parameter does not apply to the 645 and 646 cameras
|
||||
and OEM models derived from those (only a few). Most cams honour this
|
||||
parameter.
|
||||
|
||||
leds
|
||||
This settings takes 2 integers, that define the on/off time for the LED
|
||||
(in milliseconds). One of the interesting things that you can do with
|
||||
this is let the LED blink while the camera is in use. This::
|
||||
|
||||
leds=500,500
|
||||
|
||||
will blink the LED once every second. But with::
|
||||
|
||||
leds=0,0
|
||||
|
||||
the LED never goes on, making it suitable for silent surveillance.
|
||||
|
||||
By default the camera's LED is on solid while in use, and turned off
|
||||
when the camera is not used anymore.
|
||||
|
||||
This parameter works only with the ToUCam range of cameras (720, 730, 740,
|
||||
750) and OEMs. For other cameras this command is silently ignored, and
|
||||
the LED cannot be controlled.
|
||||
|
||||
Finally: this parameters does not take effect UNTIL the first time you
|
||||
open the camera device. Until then, the LED remains on.
|
||||
|
||||
dev_hint
|
||||
A long standing problem with USB devices is their dynamic nature: you
|
||||
never know what device a camera gets assigned; it depends on module load
|
||||
order, the hub configuration, the order in which devices are plugged in,
|
||||
and the phase of the moon (i.e. it can be random). With this option you
|
||||
can give the driver a hint as to what video device node (/dev/videoX) it
|
||||
should use with a specific camera. This is also handy if you have two
|
||||
cameras of the same model.
|
||||
|
||||
A camera is specified by its type (the number from the camera model,
|
||||
like PCA645, PCVC750VC, etc) and optionally the serial number (visible
|
||||
in /proc/bus/usb/devices). A hint consists of a string with the following
|
||||
format::
|
||||
|
||||
[type[.serialnumber]:]node
|
||||
|
||||
The square brackets mean that both the type and the serialnumber are
|
||||
optional, but a serialnumber cannot be specified without a type (which
|
||||
would be rather pointless). The serialnumber is separated from the type
|
||||
by a '.'; the node number by a ':'.
|
||||
|
||||
This somewhat cryptic syntax is best explained by a few examples::
|
||||
|
||||
dev_hint=3,5 The first detected cam gets assigned
|
||||
/dev/video3, the second /dev/video5. Any
|
||||
other cameras will get the first free
|
||||
available slot (see below).
|
||||
|
||||
dev_hint=645:1,680:2 The PCA645 camera will get /dev/video1,
|
||||
and a PCVC680 /dev/video2.
|
||||
|
||||
dev_hint=645.0123:3,645.4567:0 The PCA645 camera with serialnumber
|
||||
0123 goes to /dev/video3, the same
|
||||
camera model with the 4567 serial
|
||||
gets /dev/video0.
|
||||
|
||||
dev_hint=750:1,4,5,6 The PCVC750 camera will get /dev/video1, the
|
||||
next 3 Philips cams will use /dev/video4
|
||||
through /dev/video6.
|
||||
|
||||
Some points worth knowing:
|
||||
|
||||
- Serialnumbers are case sensitive and must be written full, including
|
||||
leading zeroes (it's treated as a string).
|
||||
- If a device node is already occupied, registration will fail and
|
||||
the webcam is not available.
|
||||
- You can have up to 64 video devices; be sure to make enough device
|
||||
nodes in /dev if you want to spread the numbers.
|
||||
After /dev/video9 comes /dev/video10 (not /dev/videoA).
|
||||
- If a camera does not match any dev_hint, it will simply get assigned
|
||||
the first available device node, just as it used to be.
|
||||
|
||||
trace
|
||||
In order to better detect problems, it is now possible to turn on a
|
||||
'trace' of some of the calls the module makes; it logs all items in your
|
||||
kernel log at debug level.
|
||||
|
||||
The trace variable is a bitmask; each bit represents a certain feature.
|
||||
If you want to trace something, look up the bit value(s) in the table
|
||||
below, add the values together and supply that to the trace variable.
|
||||
|
||||
====== ======= ================================================ =======
|
||||
Value Value Description Default
|
||||
(dec) (hex)
|
||||
====== ======= ================================================ =======
|
||||
1 0x1 Module initialization; this will log messages On
|
||||
while loading and unloading the module
|
||||
|
||||
2 0x2 probe() and disconnect() traces On
|
||||
|
||||
4 0x4 Trace open() and close() calls Off
|
||||
|
||||
8 0x8 read(), mmap() and associated ioctl() calls Off
|
||||
|
||||
16 0x10 Memory allocation of buffers, etc. Off
|
||||
|
||||
32 0x20 Showing underflow, overflow and Dumping frame On
|
||||
messages
|
||||
|
||||
64 0x40 Show viewport and image sizes Off
|
||||
|
||||
128 0x80 PWCX debugging Off
|
||||
====== ======= ================================================ =======
|
||||
|
||||
For example, to trace the open() & read() functions, sum 8 + 4 = 12,
|
||||
so you would supply trace=12 during insmod or modprobe. If
|
||||
you want to turn the initialization and probing tracing off, set trace=0.
|
||||
The default value for trace is 35 (0x23).
|
||||
|
||||
|
||||
|
||||
Example::
|
||||
|
||||
# modprobe pwc size=cif fps=15 power_save=1
|
||||
|
||||
The fbufs, mbufs and trace parameters are global and apply to all connected
|
||||
cameras. Each camera has its own set of buffers.
|
||||
|
||||
size and fps only specify defaults when you open() the device; this is to
|
||||
accommodate some tools that don't set the size. You can change these
|
||||
settings after open() with the Video4Linux ioctl() calls. The default of
|
||||
defaults is QCIF size at 10 fps.
|
||||
|
||||
The compression parameter is semiglobal; it sets the initial compression
|
||||
preference for all camera's, but this parameter can be set per camera with
|
||||
the VIDIOCPWCSCQUAL ioctl() call.
|
||||
|
||||
All parameters are optional.
|
||||
|
||||
|
|
@ -30,7 +30,7 @@ You can try the experience changing the vendor/product ID values (look
|
|||
at the source code).
|
||||
|
||||
You can get these values by looking at /var/log/messages when you plug
|
||||
your camera, or by typing : cat /proc/bus/usb/devices.
|
||||
your camera, or by typing : cat /sys/kernel/debug/usb/devices.
|
||||
|
||||
If you manage to use your cam with this code, you can send me a mail
|
||||
([email protected]) with the name of your cam and a patch if needed.
|
||||
|
|
|
|||
Loading…
Reference in a new issue