aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/Changes24
-rw-r--r--Documentation/DocBook/libata.tmpl96
-rw-r--r--Documentation/SubmittingDrivers14
-rw-r--r--Documentation/SubmittingPatches59
-rw-r--r--Documentation/acpi-hotkey.txt35
-rw-r--r--Documentation/block/ioprio.txt176
-rw-r--r--Documentation/cciss.txt1
-rw-r--r--Documentation/dontdiff2
-rw-r--r--Documentation/dvb/README.dvb-usb132
-rw-r--r--Documentation/dvb/bt8xx.txt79
-rw-r--r--Documentation/feature-removal-schedule.txt20
-rw-r--r--Documentation/filesystems/inotify.txt151
-rw-r--r--Documentation/filesystems/ntfs.txt29
-rw-r--r--Documentation/hwmon/adm1021 (renamed from Documentation/i2c/chips/adm1021)0
-rw-r--r--Documentation/hwmon/adm1025 (renamed from Documentation/i2c/chips/adm1025)0
-rw-r--r--Documentation/hwmon/adm1026 (renamed from Documentation/i2c/chips/adm1026)0
-rw-r--r--Documentation/hwmon/adm1031 (renamed from Documentation/i2c/chips/adm1031)0
-rw-r--r--Documentation/hwmon/adm9240 (renamed from Documentation/i2c/chips/adm9240)0
-rw-r--r--Documentation/hwmon/asb100 (renamed from Documentation/i2c/chips/asb100)0
-rw-r--r--Documentation/hwmon/ds1621 (renamed from Documentation/i2c/chips/ds1621)0
-rw-r--r--Documentation/hwmon/fscher (renamed from Documentation/i2c/chips/fscher)0
-rw-r--r--Documentation/hwmon/gl518sm (renamed from Documentation/i2c/chips/gl518sm)0
-rw-r--r--Documentation/hwmon/it87 (renamed from Documentation/i2c/chips/it87)0
-rw-r--r--Documentation/hwmon/lm63 (renamed from Documentation/i2c/chips/lm63)0
-rw-r--r--Documentation/hwmon/lm75 (renamed from Documentation/i2c/chips/lm75)0
-rw-r--r--Documentation/hwmon/lm77 (renamed from Documentation/i2c/chips/lm77)0
-rw-r--r--Documentation/hwmon/lm78 (renamed from Documentation/i2c/chips/lm78)0
-rw-r--r--Documentation/hwmon/lm80 (renamed from Documentation/i2c/chips/lm80)0
-rw-r--r--Documentation/hwmon/lm83 (renamed from Documentation/i2c/chips/lm83)0
-rw-r--r--Documentation/hwmon/lm85 (renamed from Documentation/i2c/chips/lm85)0
-rw-r--r--Documentation/hwmon/lm87 (renamed from Documentation/i2c/chips/lm87)0
-rw-r--r--Documentation/hwmon/lm90 (renamed from Documentation/i2c/chips/lm90)0
-rw-r--r--Documentation/hwmon/lm92 (renamed from Documentation/i2c/chips/lm92)0
-rw-r--r--Documentation/hwmon/max1619 (renamed from Documentation/i2c/chips/max1619)0
-rw-r--r--Documentation/hwmon/pc87360 (renamed from Documentation/i2c/chips/pc87360)0
-rw-r--r--Documentation/hwmon/sis5595 (renamed from Documentation/i2c/chips/sis5595)0
-rw-r--r--Documentation/hwmon/smsc47b397 (renamed from Documentation/i2c/chips/smsc47b397)0
-rw-r--r--Documentation/hwmon/smsc47m1 (renamed from Documentation/i2c/chips/smsc47m1)0
-rw-r--r--Documentation/hwmon/sysfs-interface (renamed from Documentation/i2c/sysfs-interface)0
-rw-r--r--Documentation/hwmon/userspace-tools (renamed from Documentation/i2c/userspace-tools)0
-rw-r--r--Documentation/hwmon/via686a (renamed from Documentation/i2c/chips/via686a)0
-rw-r--r--Documentation/hwmon/w83627hf (renamed from Documentation/i2c/chips/w83627hf)0
-rw-r--r--Documentation/hwmon/w83781d (renamed from Documentation/i2c/chips/w83781d)0
-rw-r--r--Documentation/hwmon/w83l785ts (renamed from Documentation/i2c/chips/w83l785ts)0
-rw-r--r--Documentation/i2c/chips/max687522
-rw-r--r--Documentation/i2c/dev-interface15
-rw-r--r--Documentation/i2c/writing-clients7
-rw-r--r--Documentation/infiniband/user_verbs.txt69
-rw-r--r--Documentation/kernel-parameters.txt22
-rw-r--r--Documentation/networking/dmfe.txt82
-rw-r--r--Documentation/networking/fib_trie.txt145
-rw-r--r--Documentation/pcmcia/devicetable.txt63
-rw-r--r--Documentation/pcmcia/driver-changes.txt58
-rw-r--r--Documentation/power/video.txt1
-rw-r--r--Documentation/serial/driver4
-rw-r--r--Documentation/usb/sn9c102.txt4
-rw-r--r--Documentation/usb/usbmon.txt29
-rw-r--r--Documentation/video4linux/API.html415
-rw-r--r--Documentation/video4linux/CARDLIST.bttv2
-rw-r--r--Documentation/video4linux/CARDLIST.cx8810
-rw-r--r--Documentation/video4linux/CARDLIST.saa713416
-rw-r--r--Documentation/video4linux/CARDLIST.tuner5
-rw-r--r--Documentation/video4linux/README.saa71349
-rw-r--r--Documentation/video4linux/bttv/Cards74
-rw-r--r--Documentation/video4linux/not-in-cx2388x-datasheet.txt4
65 files changed, 1162 insertions, 712 deletions
diff --git a/Documentation/Changes b/Documentation/Changes
index b3760075476..dfec7569d45 100644
--- a/Documentation/Changes
+++ b/Documentation/Changes
@@ -44,9 +44,9 @@ running, the suggested command should tell you.
44 44
45Again, keep in mind that this list assumes you are already 45Again, keep in mind that this list assumes you are already
46functionally running a Linux 2.4 kernel. Also, not all tools are 46functionally running a Linux 2.4 kernel. Also, not all tools are
47necessary on all systems; obviously, if you don't have any PCMCIA (PC 47necessary on all systems; obviously, if you don't have any ISDN
48Card) hardware, for example, you probably needn't concern yourself 48hardware, for example, you probably needn't concern yourself with
49with pcmcia-cs. 49isdn4k-utils.
50 50
51o Gnu C 2.95.3 # gcc --version 51o Gnu C 2.95.3 # gcc --version
52o Gnu make 3.79.1 # make --version 52o Gnu make 3.79.1 # make --version
@@ -57,6 +57,7 @@ o e2fsprogs 1.29 # tune2fs
57o jfsutils 1.1.3 # fsck.jfs -V 57o jfsutils 1.1.3 # fsck.jfs -V
58o reiserfsprogs 3.6.3 # reiserfsck -V 2>&1|grep reiserfsprogs 58o reiserfsprogs 3.6.3 # reiserfsck -V 2>&1|grep reiserfsprogs
59o xfsprogs 2.6.0 # xfs_db -V 59o xfsprogs 2.6.0 # xfs_db -V
60o pcmciautils 004
60o pcmcia-cs 3.1.21 # cardmgr -V 61o pcmcia-cs 3.1.21 # cardmgr -V
61o quota-tools 3.09 # quota -V 62o quota-tools 3.09 # quota -V
62o PPP 2.4.0 # pppd --version 63o PPP 2.4.0 # pppd --version
@@ -186,13 +187,20 @@ architecture independent and any version from 2.0.0 onward should
186work correctly with this version of the XFS kernel code (2.6.0 or 187work correctly with this version of the XFS kernel code (2.6.0 or
187later is recommended, due to some significant improvements). 188later is recommended, due to some significant improvements).
188 189
190PCMCIAutils
191-----------
192
193PCMCIAutils replaces pcmcia-cs (see below). It properly sets up
194PCMCIA sockets at system startup and loads the appropriate modules
195for 16-bit PCMCIA devices if the kernel is modularized and the hotplug
196subsystem is used.
189 197
190Pcmcia-cs 198Pcmcia-cs
191--------- 199---------
192 200
193PCMCIA (PC Card) support is now partially implemented in the main 201PCMCIA (PC Card) support is now partially implemented in the main
194kernel source. Pay attention when you recompile your kernel ;-). 202kernel source. The "pcmciautils" package (see above) replaces pcmcia-cs
195Also, be sure to upgrade to the latest pcmcia-cs release. 203for newest kernels.
196 204
197Quota-tools 205Quota-tools
198----------- 206-----------
@@ -349,9 +357,13 @@ Xfsprogs
349-------- 357--------
350o <ftp://oss.sgi.com/projects/xfs/download/> 358o <ftp://oss.sgi.com/projects/xfs/download/>
351 359
360Pcmciautils
361-----------
362o <ftp://ftp.kernel.org/pub/linux/utils/kernel/pcmcia/>
363
352Pcmcia-cs 364Pcmcia-cs
353--------- 365---------
354o <ftp://pcmcia-cs.sourceforge.net/pub/pcmcia-cs/pcmcia-cs-3.1.21.tar.gz> 366o <http://pcmcia-cs.sourceforge.net/>
355 367
356Quota-tools 368Quota-tools
357---------- 369----------
diff --git a/Documentation/DocBook/libata.tmpl b/Documentation/DocBook/libata.tmpl
index 6df1dfd18b6..375ae760dc1 100644
--- a/Documentation/DocBook/libata.tmpl
+++ b/Documentation/DocBook/libata.tmpl
@@ -84,6 +84,14 @@ void (*port_disable) (struct ata_port *);
84 Called from ata_bus_probe() and ata_bus_reset() error paths, 84 Called from ata_bus_probe() and ata_bus_reset() error paths,
85 as well as when unregistering from the SCSI module (rmmod, hot 85 as well as when unregistering from the SCSI module (rmmod, hot
86 unplug). 86 unplug).
87 This function should do whatever needs to be done to take the
88 port out of use. In most cases, ata_port_disable() can be used
89 as this hook.
90 </para>
91 <para>
92 Called from ata_bus_probe() on a failed probe.
93 Called from ata_bus_reset() on a failed bus reset.
94 Called from ata_scsi_release().
87 </para> 95 </para>
88 96
89 </sect2> 97 </sect2>
@@ -98,6 +106,13 @@ void (*dev_config) (struct ata_port *, struct ata_device *);
98 found. Typically used to apply device-specific fixups prior to 106 found. Typically used to apply device-specific fixups prior to
99 issue of SET FEATURES - XFER MODE, and prior to operation. 107 issue of SET FEATURES - XFER MODE, and prior to operation.
100 </para> 108 </para>
109 <para>
110 Called by ata_device_add() after ata_dev_identify() determines
111 a device is present.
112 </para>
113 <para>
114 This entry may be specified as NULL in ata_port_operations.
115 </para>
101 116
102 </sect2> 117 </sect2>
103 118
@@ -135,6 +150,8 @@ void (*tf_read) (struct ata_port *ap, struct ata_taskfile *tf);
135 registers / DMA buffers. ->tf_read() is called to read the 150 registers / DMA buffers. ->tf_read() is called to read the
136 hardware registers / DMA buffers, to obtain the current set of 151 hardware registers / DMA buffers, to obtain the current set of
137 taskfile register values. 152 taskfile register values.
153 Most drivers for taskfile-based hardware (PIO or MMIO) use
154 ata_tf_load() and ata_tf_read() for these hooks.
138 </para> 155 </para>
139 156
140 </sect2> 157 </sect2>
@@ -147,6 +164,8 @@ void (*exec_command)(struct ata_port *ap, struct ata_taskfile *tf);
147 <para> 164 <para>
148 causes an ATA command, previously loaded with 165 causes an ATA command, previously loaded with
149 ->tf_load(), to be initiated in hardware. 166 ->tf_load(), to be initiated in hardware.
167 Most drivers for taskfile-based hardware use ata_exec_command()
168 for this hook.
150 </para> 169 </para>
151 170
152 </sect2> 171 </sect2>
@@ -161,6 +180,10 @@ Allow low-level driver to filter ATA PACKET commands, returning a status
161indicating whether or not it is OK to use DMA for the supplied PACKET 180indicating whether or not it is OK to use DMA for the supplied PACKET
162command. 181command.
163 </para> 182 </para>
183 <para>
184 This hook may be specified as NULL, in which case libata will
185 assume that atapi dma can be supported.
186 </para>
164 187
165 </sect2> 188 </sect2>
166 189
@@ -175,6 +198,14 @@ u8 (*check_err)(struct ata_port *ap);
175 Reads the Status/AltStatus/Error ATA shadow register from 198 Reads the Status/AltStatus/Error ATA shadow register from
176 hardware. On some hardware, reading the Status register has 199 hardware. On some hardware, reading the Status register has
177 the side effect of clearing the interrupt condition. 200 the side effect of clearing the interrupt condition.
201 Most drivers for taskfile-based hardware use
202 ata_check_status() for this hook.
203 </para>
204 <para>
205 Note that because this is called from ata_device_add(), at
206 least a dummy function that clears device interrupts must be
207 provided for all drivers, even if the controller doesn't
208 actually have a taskfile status register.
178 </para> 209 </para>
179 210
180 </sect2> 211 </sect2>
@@ -188,7 +219,13 @@ void (*dev_select)(struct ata_port *ap, unsigned int device);
188 Issues the low-level hardware command(s) that causes one of N 219 Issues the low-level hardware command(s) that causes one of N
189 hardware devices to be considered 'selected' (active and 220 hardware devices to be considered 'selected' (active and
190 available for use) on the ATA bus. This generally has no 221 available for use) on the ATA bus. This generally has no
191meaning on FIS-based devices. 222 meaning on FIS-based devices.
223 </para>
224 <para>
225 Most drivers for taskfile-based hardware use
226 ata_std_dev_select() for this hook. Controllers which do not
227 support second drives on a port (such as SATA contollers) will
228 use ata_noop_dev_select().
192 </para> 229 </para>
193 230
194 </sect2> 231 </sect2>
@@ -204,6 +241,8 @@ void (*phy_reset) (struct ata_port *ap);
204 for device presence (PATA and SATA), typically a soft reset 241 for device presence (PATA and SATA), typically a soft reset
205 (SRST) will be performed. Drivers typically use the helper 242 (SRST) will be performed. Drivers typically use the helper
206 functions ata_bus_reset() or sata_phy_reset() for this hook. 243 functions ata_bus_reset() or sata_phy_reset() for this hook.
244 Many SATA drivers use sata_phy_reset() or call it from within
245 their own phy_reset() functions.
207 </para> 246 </para>
208 247
209 </sect2> 248 </sect2>
@@ -227,6 +266,25 @@ PCI IDE DMA Status register.
227These hooks are typically either no-ops, or simply not implemented, in 266These hooks are typically either no-ops, or simply not implemented, in
228FIS-based drivers. 267FIS-based drivers.
229 </para> 268 </para>
269 <para>
270Most legacy IDE drivers use ata_bmdma_setup() for the bmdma_setup()
271hook. ata_bmdma_setup() will write the pointer to the PRD table to
272the IDE PRD Table Address register, enable DMA in the DMA Command
273register, and call exec_command() to begin the transfer.
274 </para>
275 <para>
276Most legacy IDE drivers use ata_bmdma_start() for the bmdma_start()
277hook. ata_bmdma_start() will write the ATA_DMA_START flag to the DMA
278Command register.
279 </para>
280 <para>
281Many legacy IDE drivers use ata_bmdma_stop() for the bmdma_stop()
282hook. ata_bmdma_stop() clears the ATA_DMA_START flag in the DMA
283command register.
284 </para>
285 <para>
286Many legacy IDE drivers use ata_bmdma_status() as the bmdma_status() hook.
287 </para>
230 288
231 </sect2> 289 </sect2>
232 290
@@ -250,6 +308,10 @@ int (*qc_issue) (struct ata_queued_cmd *qc);
250 helper function ata_qc_issue_prot() for taskfile protocol-based 308 helper function ata_qc_issue_prot() for taskfile protocol-based
251 dispatch. More advanced drivers implement their own ->qc_issue. 309 dispatch. More advanced drivers implement their own ->qc_issue.
252 </para> 310 </para>
311 <para>
312 ata_qc_issue_prot() calls ->tf_load(), ->bmdma_setup(), and
313 ->bmdma_start() as necessary to initiate a transfer.
314 </para>
253 315
254 </sect2> 316 </sect2>
255 317
@@ -279,6 +341,21 @@ void (*irq_clear) (struct ata_port *);
279 before the interrupt handler is registered, to be sure hardware 341 before the interrupt handler is registered, to be sure hardware
280 is quiet. 342 is quiet.
281 </para> 343 </para>
344 <para>
345 The second argument, dev_instance, should be cast to a pointer
346 to struct ata_host_set.
347 </para>
348 <para>
349 Most legacy IDE drivers use ata_interrupt() for the
350 irq_handler hook, which scans all ports in the host_set,
351 determines which queued command was active (if any), and calls
352 ata_host_intr(ap,qc).
353 </para>
354 <para>
355 Most legacy IDE drivers use ata_bmdma_irq_clear() for the
356 irq_clear() hook, which simply clears the interrupt and error
357 flags in the DMA status register.
358 </para>
282 359
283 </sect2> 360 </sect2>
284 361
@@ -292,6 +369,7 @@ void (*scr_write) (struct ata_port *ap, unsigned int sc_reg,
292 <para> 369 <para>
293 Read and write standard SATA phy registers. Currently only used 370 Read and write standard SATA phy registers. Currently only used
294 if ->phy_reset hook called the sata_phy_reset() helper function. 371 if ->phy_reset hook called the sata_phy_reset() helper function.
372 sc_reg is one of SCR_STATUS, SCR_CONTROL, SCR_ERROR, or SCR_ACTIVE.
295 </para> 373 </para>
296 374
297 </sect2> 375 </sect2>
@@ -307,17 +385,29 @@ void (*host_stop) (struct ata_host_set *host_set);
307 ->port_start() is called just after the data structures for each 385 ->port_start() is called just after the data structures for each
308 port are initialized. Typically this is used to alloc per-port 386 port are initialized. Typically this is used to alloc per-port
309 DMA buffers / tables / rings, enable DMA engines, and similar 387 DMA buffers / tables / rings, enable DMA engines, and similar
310 tasks. 388 tasks. Some drivers also use this entry point as a chance to
389 allocate driver-private memory for ap->private_data.
390 </para>
391 <para>
392 Many drivers use ata_port_start() as this hook or call
393 it from their own port_start() hooks. ata_port_start()
394 allocates space for a legacy IDE PRD table and returns.
311 </para> 395 </para>
312 <para> 396 <para>
313 ->port_stop() is called after ->host_stop(). It's sole function 397 ->port_stop() is called after ->host_stop(). It's sole function
314 is to release DMA/memory resources, now that they are no longer 398 is to release DMA/memory resources, now that they are no longer
315 actively being used. 399 actively being used. Many drivers also free driver-private
400 data from port at this time.
401 </para>
402 <para>
403 Many drivers use ata_port_stop() as this hook, which frees the
404 PRD table.
316 </para> 405 </para>
317 <para> 406 <para>
318 ->host_stop() is called after all ->port_stop() calls 407 ->host_stop() is called after all ->port_stop() calls
319have completed. The hook must finalize hardware shutdown, release DMA 408have completed. The hook must finalize hardware shutdown, release DMA
320and other resources, etc. 409and other resources, etc.
410 This hook may be specified as NULL, in which case it is not called.
321 </para> 411 </para>
322 412
323 </sect2> 413 </sect2>
diff --git a/Documentation/SubmittingDrivers b/Documentation/SubmittingDrivers
index de3b252e717..c3cca924e94 100644
--- a/Documentation/SubmittingDrivers
+++ b/Documentation/SubmittingDrivers
@@ -13,13 +13,14 @@ Allocating Device Numbers
13------------------------- 13-------------------------
14 14
15Major and minor numbers for block and character devices are allocated 15Major and minor numbers for block and character devices are allocated
16by the Linux assigned name and number authority (currently better 16by the Linux assigned name and number authority (currently this is
17known as H Peter Anvin). The site is http://www.lanana.org/. This 17Torben Mathiasen). The site is http://www.lanana.org/. This
18also deals with allocating numbers for devices that are not going to 18also deals with allocating numbers for devices that are not going to
19be submitted to the mainstream kernel. 19be submitted to the mainstream kernel.
20See Documentation/devices.txt for more information on this.
20 21
21If you don't use assigned numbers then when you device is submitted it will 22If you don't use assigned numbers then when your device is submitted it will
22get given an assigned number even if that is different from values you may 23be given an assigned number even if that is different from values you may
23have shipped to customers before. 24have shipped to customers before.
24 25
25Who To Submit Drivers To 26Who To Submit Drivers To
@@ -32,7 +33,8 @@ Linux 2.2:
32 If the code area has a general maintainer then please submit it to 33 If the code area has a general maintainer then please submit it to
33 the maintainer listed in MAINTAINERS in the kernel file. If the 34 the maintainer listed in MAINTAINERS in the kernel file. If the
34 maintainer does not respond or you cannot find the appropriate 35 maintainer does not respond or you cannot find the appropriate
35 maintainer then please contact Alan Cox <alan@lxorguk.ukuu.org.uk> 36 maintainer then please contact the 2.2 kernel maintainer:
37 Marc-Christian Petersen <m.c.p@wolk-project.de>.
36 38
37Linux 2.4: 39Linux 2.4:
38 The same rules apply as 2.2. The final contact point for Linux 2.4 40 The same rules apply as 2.2. The final contact point for Linux 2.4
@@ -48,7 +50,7 @@ What Criteria Determine Acceptance
48 50
49Licensing: The code must be released to us under the 51Licensing: The code must be released to us under the
50 GNU General Public License. We don't insist on any kind 52 GNU General Public License. We don't insist on any kind
51 of exclusively GPL licensing, and if you wish the driver 53 of exclusive GPL licensing, and if you wish the driver
52 to be useful to other communities such as BSD you may well 54 to be useful to other communities such as BSD you may well
53 wish to release under multiple licenses. 55 wish to release under multiple licenses.
54 56
diff --git a/Documentation/SubmittingPatches b/Documentation/SubmittingPatches
index bcdeee146ff..6761a7b241a 100644
--- a/Documentation/SubmittingPatches
+++ b/Documentation/SubmittingPatches
@@ -35,7 +35,7 @@ not in any lower subdirectory.
35 35
36To create a patch for a single file, it is often sufficient to do: 36To create a patch for a single file, it is often sufficient to do:
37 37
38 SRCTREE= linux-2.4 38 SRCTREE= linux-2.6
39 MYFILE= drivers/net/mydriver.c 39 MYFILE= drivers/net/mydriver.c
40 40
41 cd $SRCTREE 41 cd $SRCTREE
@@ -48,17 +48,18 @@ To create a patch for multiple files, you should unpack a "vanilla",
48or unmodified kernel source tree, and generate a diff against your 48or unmodified kernel source tree, and generate a diff against your
49own source tree. For example: 49own source tree. For example:
50 50
51 MYSRC= /devel/linux-2.4 51 MYSRC= /devel/linux-2.6
52 52
53 tar xvfz linux-2.4.0-test11.tar.gz 53 tar xvfz linux-2.6.12.tar.gz
54 mv linux linux-vanilla 54 mv linux-2.6.12 linux-2.6.12-vanilla
55 wget http://www.moses.uklinux.net/patches/dontdiff 55 diff -uprN -X linux-2.6.12-vanilla/Documentation/dontdiff \
56 diff -uprN -X dontdiff linux-vanilla $MYSRC > /tmp/patch 56 linux-2.6.12-vanilla $MYSRC > /tmp/patch
57 rm -f dontdiff
58 57
59"dontdiff" is a list of files which are generated by the kernel during 58"dontdiff" is a list of files which are generated by the kernel during
60the build process, and should be ignored in any diff(1)-generated 59the build process, and should be ignored in any diff(1)-generated
61patch. dontdiff is maintained by Tigran Aivazian <tigran@veritas.com> 60patch. The "dontdiff" file is included in the kernel tree in
612.6.12 and later. For earlier kernel versions, you can get it
62from <http://www.xenotime.net/linux/doc/dontdiff>.
62 63
63Make sure your patch does not include any extra files which do not 64Make sure your patch does not include any extra files which do not
64belong in a patch submission. Make sure to review your patch -after- 65belong in a patch submission. Make sure to review your patch -after-
@@ -66,18 +67,20 @@ generated it with diff(1), to ensure accuracy.
66 67
67If your changes produce a lot of deltas, you may want to look into 68If your changes produce a lot of deltas, you may want to look into
68splitting them into individual patches which modify things in 69splitting them into individual patches which modify things in
69logical stages, this will facilitate easier reviewing by other 70logical stages. This will facilitate easier reviewing by other
70kernel developers, very important if you want your patch accepted. 71kernel developers, very important if you want your patch accepted.
71There are a number of scripts which can aid in this; 72There are a number of scripts which can aid in this:
72 73
73Quilt: 74Quilt:
74http://savannah.nongnu.org/projects/quilt 75http://savannah.nongnu.org/projects/quilt
75 76
76Randy Dunlap's patch scripts: 77Randy Dunlap's patch scripts:
77http://developer.osdl.org/rddunlap/scripts/patching-scripts.tgz 78http://www.xenotime.net/linux/scripts/patching-scripts-002.tar.gz
78 79
79Andrew Morton's patch scripts: 80Andrew Morton's patch scripts:
80http://www.zip.com.au/~akpm/linux/patches/patch-scripts-0.16 81http://www.zip.com.au/~akpm/linux/patches/patch-scripts-0.20
82
83
81 84
822) Describe your changes. 852) Describe your changes.
83 86
@@ -132,21 +135,6 @@ which require discussion or do not have a clear advantage should
132usually be sent first to linux-kernel. Only after the patch is 135usually be sent first to linux-kernel. Only after the patch is
133discussed should the patch then be submitted to Linus. 136discussed should the patch then be submitted to Linus.
134 137
135For small patches you may want to CC the Trivial Patch Monkey
136trivial@rustcorp.com.au set up by Rusty Russell; which collects "trivial"
137patches. Trivial patches must qualify for one of the following rules:
138 Spelling fixes in documentation
139 Spelling fixes which could break grep(1).
140 Warning fixes (cluttering with useless warnings is bad)
141 Compilation fixes (only if they are actually correct)
142 Runtime fixes (only if they actually fix things)
143 Removing use of deprecated functions/macros (eg. check_region).
144 Contact detail and documentation fixes
145 Non-portable code replaced by portable code (even in arch-specific,
146 since people copy, as long as it's trivial)
147 Any fix by the author/maintainer of the file. (ie. patch monkey
148 in re-transmission mode)
149
150 138
151 139
1525) Select your CC (e-mail carbon copy) list. 1405) Select your CC (e-mail carbon copy) list.
@@ -178,6 +166,8 @@ patches. Trivial patches must qualify for one of the following rules:
178 since people copy, as long as it's trivial) 166 since people copy, as long as it's trivial)
179 Any fix by the author/maintainer of the file. (ie. patch monkey 167 Any fix by the author/maintainer of the file. (ie. patch monkey
180 in re-transmission mode) 168 in re-transmission mode)
169URL: <http://www.kernel.org/pub/linux/kernel/people/rusty/trivial/>
170
181 171
182 172
183 173
@@ -306,6 +296,17 @@ now, but you can do this to mark internal company procedures or just
306point out some special detail about the sign-off. 296point out some special detail about the sign-off.
307 297
308 298
299
30012) More references for submitting patches
301
302Andrew Morton, "The perfect patch" (tpp).
303 <http://www.zip.com.au/~akpm/linux/patches/stuff/tpp.txt>
304
305Jeff Garzik, "Linux kernel patch submission format."
306 <http://linux.yyz.us/patch-format.html>
307
308
309
309----------------------------------- 310-----------------------------------
310SECTION 2 - HINTS, TIPS, AND TRICKS 311SECTION 2 - HINTS, TIPS, AND TRICKS
311----------------------------------- 312-----------------------------------
@@ -374,7 +375,5 @@ and 'extern __inline__'.
3744) Don't over-design. 3754) Don't over-design.
375 376
376Don't try to anticipate nebulous future cases which may or may not 377Don't try to anticipate nebulous future cases which may or may not
377be useful: "Make it as simple as you can, and no simpler" 378be useful: "Make it as simple as you can, and no simpler."
378
379
380 379
diff --git a/Documentation/acpi-hotkey.txt b/Documentation/acpi-hotkey.txt
new file mode 100644
index 00000000000..4c115a7bb82
--- /dev/null
+++ b/Documentation/acpi-hotkey.txt
@@ -0,0 +1,35 @@
1driver/acpi/hotkey.c implement:
21. /proc/acpi/hotkey/event_config
3(event based hotkey or event config interface):
4a. add a event based hotkey(event) :
5echo "0:bus::action:method:num:num" > event_config
6
7b. delete a event based hotkey(event):
8echo "1:::::num:num" > event_config
9
10c. modify a event based hotkey(event):
11echo "2:bus::action:method:num:num" > event_config
12
132. /proc/acpi/hotkey/poll_config
14(polling based hotkey or event config interface):
15a.add a polling based hotkey(event) :
16echo "0:bus:method:action:method:num" > poll_config
17this adding command will create a proc file
18/proc/acpi/hotkey/method, which is used to get
19result of polling.
20
21b.delete a polling based hotkey(event):
22echo "1:::::num" > event_config
23
24c.modify a polling based hotkey(event):
25echo "2:bus:method:action:method:num" > poll_config
26
273./proc/acpi/hotkey/action
28(interface to call aml method associated with a
29specific hotkey(event))
30echo "event_num:event_type:event_argument" >
31 /proc/acpi/hotkey/action.
32The result of the execution of this aml method is
33attached to /proc/acpi/hotkey/poll_method, which is dnyamically
34created. Please use command "cat /proc/acpi/hotkey/polling_method"
35to retrieve it.
diff --git a/Documentation/block/ioprio.txt b/Documentation/block/ioprio.txt
new file mode 100644
index 00000000000..96ccf681075
--- /dev/null
+++ b/Documentation/block/ioprio.txt
@@ -0,0 +1,176 @@
1Block io priorities
2===================
3
4
5Intro
6-----
7
8With the introduction of cfq v3 (aka cfq-ts or time sliced cfq), basic io
9priorities is supported for reads on files. This enables users to io nice
10processes or process groups, similar to what has been possible to cpu
11scheduling for ages. This document mainly details the current possibilites
12with cfq, other io schedulers do not support io priorities so far.
13
14Scheduling classes
15------------------
16
17CFQ implements three generic scheduling classes that determine how io is
18served for a process.
19
20IOPRIO_CLASS_RT: This is the realtime io class. This scheduling class is given
21higher priority than any other in the system, processes from this class are
22given first access to the disk every time. Thus it needs to be used with some
23care, one io RT process can starve the entire system. Within the RT class,
24there are 8 levels of class data that determine exactly how much time this
25process needs the disk for on each service. In the future this might change
26to be more directly mappable to performance, by passing in a wanted data
27rate instead.
28
29IOPRIO_CLASS_BE: This is the best-effort scheduling class, which is the default
30for any process that hasn't set a specific io priority. The class data
31determines how much io bandwidth the process will get, it's directly mappable
32to the cpu nice levels just more coarsely implemented. 0 is the highest
33BE prio level, 7 is the lowest. The mapping between cpu nice level and io
34nice level is determined as: io_nice = (cpu_nice + 20) / 5.
35
36IOPRIO_CLASS_IDLE: This is the idle scheduling class, processes running at this
37level only get io time when no one else needs the disk. The idle class has no
38class data, since it doesn't really apply here.
39
40Tools
41-----
42
43See below for a sample ionice tool. Usage:
44
45# ionice -c<class> -n<level> -p<pid>
46
47If pid isn't given, the current process is assumed. IO priority settings
48are inherited on fork, so you can use ionice to start the process at a given
49level:
50
51# ionice -c2 -n0 /bin/ls
52
53will run ls at the best-effort scheduling class at the highest priority.
54For a running process, you can give the pid instead:
55
56# ionice -c1 -n2 -p100
57
58will change pid 100 to run at the realtime scheduling class, at priority 2.
59
60---> snip ionice.c tool <---
61
62#include <stdio.h>
63#include <stdlib.h>
64#include <errno.h>
65#include <getopt.h>
66#include <unistd.h>
67#include <sys/ptrace.h>
68#include <asm/unistd.h>
69
70extern int sys_ioprio_set(int, int, int);
71extern int sys_ioprio_get(int, int);
72
73#if defined(__i386__)
74#define __NR_ioprio_set 289
75#define __NR_ioprio_get 290
76#elif defined(__ppc__)
77#define __NR_ioprio_set 273
78#define __NR_ioprio_get 274
79#elif defined(__x86_64__)
80#define __NR_ioprio_set 251
81#define __NR_ioprio_get 252
82#elif defined(__ia64__)
83#define __NR_ioprio_set 1274
84#define __NR_ioprio_get 1275
85#else
86#error "Unsupported arch"
87#endif
88
89_syscall3(int, ioprio_set, int, which, int, who, int, ioprio);
90_syscall2(int, ioprio_get, int, which, int, who);
91
92enum {
93 IOPRIO_CLASS_NONE,
94 IOPRIO_CLASS_RT,
95 IOPRIO_CLASS_BE,
96 IOPRIO_CLASS_IDLE,
97};
98
99enum {
100 IOPRIO_WHO_PROCESS = 1,
101 IOPRIO_WHO_PGRP,
102 IOPRIO_WHO_USER,
103};
104
105#define IOPRIO_CLASS_SHIFT 13
106
107const char *to_prio[] = { "none", "realtime", "best-effort", "idle", };
108
109int main(int argc, char *argv[])
110{
111 int ioprio = 4, set = 0, ioprio_class = IOPRIO_CLASS_BE;
112 int c, pid = 0;
113
114 while ((c = getopt(argc, argv, "+n:c:p:")) != EOF) {
115 switch (c) {
116 case 'n':
117 ioprio = strtol(optarg, NULL, 10);
118 set = 1;
119 break;
120 case 'c':
121 ioprio_class = strtol(optarg, NULL, 10);
122 set = 1;
123 break;
124 case 'p':
125 pid = strtol(optarg, NULL, 10);
126 break;
127 }
128 }
129
130 switch (ioprio_class) {
131 case IOPRIO_CLASS_NONE:
132 ioprio_class = IOPRIO_CLASS_BE;
133 break;
134 case IOPRIO_CLASS_RT:
135 case IOPRIO_CLASS_BE:
136 break;
137 case IOPRIO_CLASS_IDLE:
138 ioprio = 7;
139 break;
140 default:
141 printf("bad prio class %d\n", ioprio_class);
142 return 1;
143 }
144
145 if (!set) {
146 if (!pid && argv[optind])
147 pid = strtol(argv[optind], NULL, 10);
148
149 ioprio = ioprio_get(IOPRIO_WHO_PROCESS, pid);
150
151 printf("pid=%d, %d\n", pid, ioprio);
152
153 if (ioprio == -1)
154 perror("ioprio_get");
155 else {
156 ioprio_class = ioprio >> IOPRIO_CLASS_SHIFT;
157 ioprio = ioprio & 0xff;
158 printf("%s: prio %d\n", to_prio[ioprio_class], ioprio);
159 }
160 } else {
161 if (ioprio_set(IOPRIO_WHO_PROCESS, pid, ioprio | ioprio_class << IOPRIO_CLASS_SHIFT) == -1) {
162 perror("ioprio_set");
163 return 1;
164 }
165
166 if (argv[optind])
167 execvp(argv[optind], &argv[optind]);
168 }
169
170 return 0;
171}
172
173---> snip ionice.c tool <---
174
175
176March 11 2005, Jens Axboe <axboe@suse.de>
diff --git a/Documentation/cciss.txt b/Documentation/cciss.txt
index d599beb9df8..c8f9a73111d 100644
--- a/Documentation/cciss.txt
+++ b/Documentation/cciss.txt
@@ -17,6 +17,7 @@ This driver is known to work with the following cards:
17 * SA P600 17 * SA P600
18 * SA P800 18 * SA P800
19 * SA E400 19 * SA E400
20 * SA E300
20 21
21If nodes are not already created in the /dev/cciss directory, run as root: 22If nodes are not already created in the /dev/cciss directory, run as root:
22 23
diff --git a/Documentation/dontdiff b/Documentation/dontdiff
index d4fda25db86..b974cf595d0 100644
--- a/Documentation/dontdiff
+++ b/Documentation/dontdiff
@@ -41,6 +41,7 @@ COPYING
41CREDITS 41CREDITS
42CVS 42CVS
43ChangeSet 43ChangeSet
44Image
44Kerntypes 45Kerntypes
45MODS.txt 46MODS.txt
46Module.symvers 47Module.symvers
@@ -103,6 +104,7 @@ logo_*.c
103logo_*_clut224.c 104logo_*_clut224.c
104logo_*_mono.c 105logo_*_mono.c
105lxdialog 106lxdialog
107mach-types.h
106make_times_h 108make_times_h
107map 109map
108maui_boot.h 110maui_boot.h
diff --git a/Documentation/dvb/README.dvb-usb b/Documentation/dvb/README.dvb-usb
index c7ed01b9f8f..ac0797ea646 100644
--- a/Documentation/dvb/README.dvb-usb
+++ b/Documentation/dvb/README.dvb-usb
@@ -13,14 +13,17 @@ different way: With the help of a dvb-usb-framework.
13The framework provides generic functions (mostly kernel API calls), such as: 13The framework provides generic functions (mostly kernel API calls), such as:
14 14
15- Transport Stream URB handling in conjunction with dvb-demux-feed-control 15- Transport Stream URB handling in conjunction with dvb-demux-feed-control
16 (bulk and isoc (TODO) are supported) 16 (bulk and isoc are supported)
17- registering the device for the DVB-API 17- registering the device for the DVB-API
18- registering an I2C-adapter if applicable 18- registering an I2C-adapter if applicable
19- remote-control/input-device handling 19- remote-control/input-device handling
20- firmware requesting and loading (currently just for the Cypress USB 20- firmware requesting and loading (currently just for the Cypress USB
21 controller) 21 controllers)
22- other functions/methods which can be shared by several drivers (such as 22- other functions/methods which can be shared by several drivers (such as
23 functions for bulk-control-commands) 23 functions for bulk-control-commands)
24- TODO: a I2C-chunker. It creates device-specific chunks of register-accesses
25 depending on length of a register and the number of values that can be
26 multi-written and multi-read.
24 27
25The source code of the particular DVB USB devices does just the communication 28The source code of the particular DVB USB devices does just the communication
26with the device via the bus. The connection between the DVB-API-functionality 29with the device via the bus. The connection between the DVB-API-functionality
@@ -36,93 +39,18 @@ the dvb-usb-lib.
36TODO: dynamic enabling and disabling of the pid-filter in regard to number of 39TODO: dynamic enabling and disabling of the pid-filter in regard to number of
37feeds requested. 40feeds requested.
38 41
39Supported devices USB1.1 42Supported devices
40======================== 43========================
41 44
42Produced and reselled by Twinhan: 45See the LinuxTV DVB Wiki at www.linuxtv.org for a complete list of
43--------------------------------- 46cards/drivers/firmwares:
44- TwinhanDTV USB-Ter DVB-T Device (VP7041)
45 http://www.twinhan.com/product_terrestrial_3.asp
46 47
47- TwinhanDTV Magic Box (VP7041e) 48http://www.linuxtv.org/wiki/index.php/DVB_USB
48 http://www.twinhan.com/product_terrestrial_4.asp
49
50- HAMA DVB-T USB device
51 http://www.hama.de/portal/articleId*110620/action*2598
52
53- CTS Portable (Chinese Television System) (2)
54 http://www.2cts.tv/ctsportable/
55
56- Unknown USB DVB-T device with vendor ID Hyper-Paltek
57
58
59Produced and reselled by KWorld:
60--------------------------------
61- KWorld V-Stream XPERT DTV DVB-T USB
62 http://www.kworld.com.tw/en/product/DVBT-USB/DVBT-USB.html
63
64- JetWay DTV DVB-T USB
65 http://www.jetway.com.tw/evisn/product/lcd-tv/DVT-USB/dtv-usb.htm
66
67- ADSTech Instant TV DVB-T USB
68 http://www.adstech.com/products/PTV-333/intro/PTV-333_intro.asp?pid=PTV-333
69
70
71Others:
72-------
73- Ultima Electronic/Artec T1 USB TVBOX (AN2135, AN2235, AN2235 with Panasonic Tuner)
74 http://82.161.246.249/products-tvbox.html
75
76- Compro Videomate DVB-U2000 - DVB-T USB (2)
77 http://www.comprousa.com/products/vmu2000.htm
78
79- Grandtec USB DVB-T
80 http://www.grand.com.tw/
81
82- AVerMedia AverTV DVBT USB
83 http://www.avermedia.com/
84
85- DiBcom USB DVB-T reference device (non-public)
86
87
88Supported devices USB2.0-only
89=============================
90- Twinhan MagicBox II
91 http://www.twinhan.com/product_terrestrial_7.asp
92
93- TwinhanDTV Alpha
94 http://www.twinhan.com/product_terrestrial_8.asp
95
96- DigitalNow TinyUSB 2 DVB-t Receiver
97 http://www.digitalnow.com.au/DigitalNow%20tinyUSB2%20Specifications.html
98
99- Hanftek UMT-010
100 http://www.globalsources.com/si/6008819757082/ProductDetail/Digital-TV/product_id-100046529
101
102
103Supported devices USB2.0 and USB1.1
104=============================
105- Typhoon/Yakumo/HAMA/Yuan DVB-T mobile USB2.0
106 http://www.yakumo.de/produkte/index.php?pid=1&ag=DVB-T
107 http://www.yuan.com.tw/en/products/vdo_ub300.html
108 http://www.hama.de/portal/articleId*114663/action*2563
109 http://www.anubisline.com/english/articlec.asp?id=50502&catid=002
110
111- Artec T1 USB TVBOX (FX2) (2)
112
113- Hauppauge WinTV NOVA-T USB2
114 http://www.hauppauge.com/
115
116- KWorld/ADSTech Instant DVB-T USB2.0 (DiB3000M-B)
117
118- DiBcom USB2.0 DVB-T reference device (non-public)
119
120- AVerMedia AverTV A800 DVB-T USB2.0
121
1221) It is working almost - work-in-progress.
1232) No test reports received yet.
124 49
1250. History & News: 500. History & News:
51 2005-06-30 - added support for WideView WT-220U (Thanks to Steve Chang)
52 2005-05-30 - added basic isochronous support to the dvb-usb-framework
53 added support for Conexant Hybrid reference design and Nebula DigiTV USB
126 2005-04-17 - all dibusb devices ported to make use of the dvb-usb-framework 54 2005-04-17 - all dibusb devices ported to make use of the dvb-usb-framework
127 2005-04-02 - re-enabled and improved remote control code. 55 2005-04-02 - re-enabled and improved remote control code.
128 2005-03-31 - ported the Yakumo/Hama/Typhoon DVB-T USB2.0 device to dvb-usb. 56 2005-03-31 - ported the Yakumo/Hama/Typhoon DVB-T USB2.0 device to dvb-usb.
@@ -137,7 +65,7 @@ Supported devices USB2.0 and USB1.1
137 2005-01-31 - distorted streaming is gone for USB1.1 devices 65 2005-01-31 - distorted streaming is gone for USB1.1 devices
138 2005-01-13 - moved the mirrored pid_filter_table back to dvb-dibusb 66 2005-01-13 - moved the mirrored pid_filter_table back to dvb-dibusb
139 - first almost working version for HanfTek UMT-010 67 - first almost working version for HanfTek UMT-010
140 - found out, that Yakumo/HAMA/Typhoon are predessors of the HanfTek UMT-010 68 - found out, that Yakumo/HAMA/Typhoon are predecessors of the HanfTek UMT-010
141 2005-01-10 - refactoring completed, now everything is very delightful 69 2005-01-10 - refactoring completed, now everything is very delightful
142 - tuner quirks for some weird devices (Artec T1 AN2235 device has sometimes a 70 - tuner quirks for some weird devices (Artec T1 AN2235 device has sometimes a
143 Panasonic Tuner assembled). Tunerprobing implemented. Thanks a lot to Gunnar Wittich. 71 Panasonic Tuner assembled). Tunerprobing implemented. Thanks a lot to Gunnar Wittich.
@@ -187,25 +115,13 @@ Supported devices USB2.0 and USB1.1
1871. How to use? 1151. How to use?
1881.1. Firmware 1161.1. Firmware
189 117
190Most of the USB drivers need to download a firmware to start working. 118Most of the USB drivers need to download a firmware to the device before start
191 119working.
192for USB1.1 (AN2135) you need: dvb-usb-dibusb-5.0.0.11.fw
193for USB2.0 HanfTek: dvb-usb-umt-010-02.fw
194for USB2.0 DiBcom: dvb-usb-dibusb-6.0.0.8.fw
195for USB2.0 AVerMedia AverTV DVB-T USB2: dvb-usb-avertv-a800-01.fw
196for USB2.0 TwinhanDTV Alpha/MagicBox II: dvb-usb-vp7045-01.fw
197
198The files can be found on http://www.linuxtv.org/download/firmware/ .
199 120
200We do not have the permission (yet) to publish the following firmware-files. 121Have a look at the Wikipage for the DVB-USB-drivers to find out, which firmware
201You'll need to extract them from the windows drivers. 122you need for your device:
202 123
203You should be able to use "get_dvb_firmware dvb-usb" to get the firmware: 124http://www.linuxtv.org/wiki/index.php/DVB_USB
204
205for USB1.1 (AN2235) (a few Artec T1 devices): dvb-usb-dibusb-an2235-01.fw
206for USB2.0 Hauppauge: dvb-usb-nova-t-usb2-01.fw
207for USB2.0 ADSTech/Kworld USB2.0: dvb-usb-adstech-usb2-01.fw
208for USB2.0 Yakumo/Typhoon/Hama: dvb-usb-dtt200u-01.fw
209 125
2101.2. Compiling 1261.2. Compiling
211 127
@@ -289,6 +205,9 @@ Patches, comments and suggestions are very very welcome.
289 Gunnar Wittich and Joachim von Caron for their trust for providing 205 Gunnar Wittich and Joachim von Caron for their trust for providing
290 root-shells on their machines to implement support for new devices. 206 root-shells on their machines to implement support for new devices.
291 207
208 Allan Third and Michael Hutchinson for their help to write the Nebula
209 digitv-driver.
210
292 Glen Harris for bringing up, that there is a new dibusb-device and Jiun-Kuei 211 Glen Harris for bringing up, that there is a new dibusb-device and Jiun-Kuei
293 Jung from AVerMedia who kindly provided a special firmware to get the device 212 Jung from AVerMedia who kindly provided a special firmware to get the device
294 up and running in Linux. 213 up and running in Linux.
@@ -296,7 +215,12 @@ Patches, comments and suggestions are very very welcome.
296 Jennifer Chen, Jeff and Jack from Twinhan for kindly supporting by 215 Jennifer Chen, Jeff and Jack from Twinhan for kindly supporting by
297 writing the vp7045-driver. 216 writing the vp7045-driver.
298 217
299 Some guys on the linux-dvb mailing list for encouraging me 218 Steve Chang from WideView for providing information for new devices and
219 firmware files.
220
221 Michael Paxton for submitting remote control keymaps.
222
223 Some guys on the linux-dvb mailing list for encouraging me.
300 224
301 Peter Schildmann >peter.schildmann-nospam-at-web.de< for his 225 Peter Schildmann >peter.schildmann-nospam-at-web.de< for his
302 user-level firmware loader, which saves a lot of time 226 user-level firmware loader, which saves a lot of time
@@ -305,4 +229,4 @@ Patches, comments and suggestions are very very welcome.
305 Ulf Hermenau for helping me out with traditional chinese. 229 Ulf Hermenau for helping me out with traditional chinese.
306 230
307 André Smoktun and Christian Frömmel for supporting me with 231 André Smoktun and Christian Frömmel for supporting me with
308 hardware and listening to my problems very patient. 232 hardware and listening to my problems very patiently.
diff --git a/Documentation/dvb/bt8xx.txt b/Documentation/dvb/bt8xx.txt
index 3a326079475..e6b8d05bc08 100644
--- a/Documentation/dvb/bt8xx.txt
+++ b/Documentation/dvb/bt8xx.txt
@@ -1,66 +1,55 @@
1How to get the Nebula, PCTV and Twinhan DST cards working 1How to get the Nebula Electronics DigiTV, Pinnacle PCTV Sat, Twinhan DST + clones working
2========================================================= 2=========================================================================================
3 3
4This class of cards has a bt878a as the PCI interface, and 41) General information
5require the bttv driver. 5======================
6 6
7Please pay close attention to the warning about the bttv module 7This class of cards has a bt878a chip as the PCI interface.
8options below for the DST card. 8The different card drivers require the bttv driver to provide the means
9to access the i2c bus and the gpio pins of the bt8xx chipset.
9 10
101) General informations 112) Compilation rules for Kernel >= 2.6.12
11======================= 12=========================================
12 13
13These drivers require the bttv driver to provide the means to access 14Enable the following options:
14the i2c bus and the gpio pins of the bt8xx chipset.
15 15
16Because of this, you need to enable
17"Device drivers" => "Multimedia devices" 16"Device drivers" => "Multimedia devices"
18 => "Video For Linux" => "BT848 Video For Linux" 17 => "Video For Linux" => "BT848 Video For Linux"
19
20Furthermore you need to enable
21"Device drivers" => "Multimedia devices" => "Digital Video Broadcasting Devices" 18"Device drivers" => "Multimedia devices" => "Digital Video Broadcasting Devices"
22 => "DVB for Linux" "DVB Core Support" "Nebula/Pinnacle PCTV/TwinHan PCI Cards" 19 => "DVB for Linux" "DVB Core Support" "Nebula/Pinnacle PCTV/TwinHan PCI Cards"
23 20
242) Loading Modules 213) Loading Modules, described by two approaches
25================== 22===============================================
26 23
27In general you need to load the bttv driver, which will handle the gpio and 24In general you need to load the bttv driver, which will handle the gpio and
28i2c communication for us, plus the common dvb-bt8xx device driver. 25i2c communication for us, plus the common dvb-bt8xx device driver,
29The frontends for Nebula (nxt6000), Pinnacle PCTV (cx24110) and 26which is called the backend.
30TwinHan (dst) are loaded automatically by the dvb-bt8xx device driver. 27The frontends for Nebula DigiTV (nxt6000), Pinnacle PCTV Sat (cx24110),
28TwinHan DST + clones (dst and dst-ca) are loaded automatically by the backend.
29For further details about TwinHan DST + clones see /Documentation/dvb/ci.txt.
31 30
323a) Nebula / Pinnacle PCTV 313a) The manual approach
33-------------------------- 32-----------------------
34 33
35 $ modprobe bttv (normally bttv is being loaded automatically by kmod) 34Loading modules:
36 $ modprobe dvb-bt8xx (or just place dvb-bt8xx in /etc/modules for automatic loading) 35modprobe bttv
36modprobe dvb-bt8xx
37 37
38Unloading modules:
39modprobe -r dvb-bt8xx
40modprobe -r bttv
38 41
393b) TwinHan and Clones 423b) The automatic approach
40-------------------------- 43--------------------------
41 44
42 $ modprobe bttv i2c_hw=1 card=0x71 45If not already done by installation, place a line either in
43 $ modprobe dvb-bt8xx 46/etc/modules.conf or in /etc/modprobe.conf containing this text:
44 $ modprobe dst 47alias char-major-81 bttv
45
46The value 0x71 will override the PCI type detection for dvb-bt8xx,
47which is necessary for TwinHan cards.
48
49If you're having an older card (blue color circuit) and card=0x71 locks
50your machine, try using 0x68, too. If that does not work, ask on the
51mailing list.
52
53The DST module takes a couple of useful parameters:
54 48
55a. verbose takes values 0 to 5. These values control the verbosity level. 49Then place a line in /etc/modules containing this text:
56b. debug takes values 0 and 1. You can either disable or enable debugging. 50dvb-bt8xx
57c. dst_addons takes values 0 and 0x20:
58- A value of 0 means it is a FTA card.
59- A value of 0x20 means it has a Conditional Access slot.
60 51
61The autodetected values are determined by the "response string" 52Reboot your system and have fun!
62of the card, which you can see in your logs:
63e.g.: dst_get_device_id: Recognize [DSTMCI]
64 53
65-- 54--
66Authors: Richard Walker, Jamie Honan, Michael Hunold, Manu Abraham, Uwe Bugla 55Authors: Richard Walker, Jamie Honan, Michael Hunold, Manu Abraham, Uwe Bugla
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt
index 1d227ee3792..8b1430b4665 100644
--- a/Documentation/feature-removal-schedule.txt
+++ b/Documentation/feature-removal-schedule.txt
@@ -103,11 +103,11 @@ Who: Jody McIntyre <scjody@steamballoon.com>
103--------------------------- 103---------------------------
104 104
105What: register_serial/unregister_serial 105What: register_serial/unregister_serial
106When: December 2005 106When: September 2005
107Why: This interface does not allow serial ports to be registered against 107Why: This interface does not allow serial ports to be registered against
108 a struct device, and as such does not allow correct power management 108 a struct device, and as such does not allow correct power management
109 of such ports. 8250-based ports should use serial8250_register_port 109 of such ports. 8250-based ports should use serial8250_register_port
110 and serial8250_unregister_port instead. 110 and serial8250_unregister_port, or platform devices instead.
111Who: Russell King <rmk@arm.linux.org.uk> 111Who: Russell King <rmk@arm.linux.org.uk>
112 112
113--------------------------- 113---------------------------
@@ -119,3 +119,19 @@ Why: Match the other drivers' name for the same function, duplicate names
119 will be available until removal of old names. 119 will be available until removal of old names.
120Who: Grant Coady <gcoady@gmail.com> 120Who: Grant Coady <gcoady@gmail.com>
121 121
122---------------------------
123
124What: PCMCIA control ioctl (needed for pcmcia-cs [cardmgr, cardctl])
125When: November 2005
126Files: drivers/pcmcia/: pcmcia_ioctl.c
127Why: With the 16-bit PCMCIA subsystem now behaving (almost) like a
128 normal hotpluggable bus, and with it using the default kernel
129 infrastructure (hotplug, driver core, sysfs) keeping the PCMCIA
130 control ioctl needed by cardmgr and cardctl from pcmcia-cs is
131 unnecessary, and makes further cleanups and integration of the
132 PCMCIA subsystem into the Linux kernel device driver model more
133 difficult. The features provided by cardmgr and cardctl are either
134 handled by the kernel itself now or are available in the new
135 pcmciautils package available at
136 http://kernel.org/pub/linux/utils/kernel/pcmcia/
137Who: Dominik Brodowski <linux@brodo.de>
diff --git a/Documentation/filesystems/inotify.txt b/Documentation/filesystems/inotify.txt
new file mode 100644
index 00000000000..6d501903f68
--- /dev/null
+++ b/Documentation/filesystems/inotify.txt
@@ -0,0 +1,151 @@
1 inotify
2 a powerful yet simple file change notification system
3
4
5
6Document started 15 Mar 2005 by Robert Love <rml@novell.com>
7
8
9(i) User Interface
10
11Inotify is controlled by a set of three system calls and normal file I/O on a
12returned file descriptor.
13
14First step in using inotify is to initialise an inotify instance:
15
16 int fd = inotify_init ();
17
18Each instance is associated with a unique, ordered queue.
19
20Change events are managed by "watches". A watch is an (object,mask) pair where
21the object is a file or directory and the mask is a bit mask of one or more
22inotify events that the application wishes to receive. See <linux/inotify.h>
23for valid events. A watch is referenced by a watch descriptor, or wd.
24
25Watches are added via a path to the file.
26
27Watches on a directory will return events on any files inside of the directory.
28
29Adding a watch is simple:
30
31 int wd = inotify_add_watch (fd, path, mask);
32
33Where "fd" is the return value from inotify_init(), path is the path to the
34object to watch, and mask is the watch mask (see <linux/inotify.h>).
35
36You can update an existing watch in the same manner, by passing in a new mask.
37
38An existing watch is removed via
39
40 int ret = inotify_rm_watch (fd, wd);
41
42Events are provided in the form of an inotify_event structure that is read(2)
43from a given inotify instance. The filename is of dynamic length and follows
44the struct. It is of size len. The filename is padded with null bytes to
45ensure proper alignment. This padding is reflected in len.
46
47You can slurp multiple events by passing a large buffer, for example
48
49 size_t len = read (fd, buf, BUF_LEN);
50
51Where "buf" is a pointer to an array of "inotify_event" structures at least
52BUF_LEN bytes in size. The above example will return as many events as are
53available and fit in BUF_LEN.
54
55Each inotify instance fd is also select()- and poll()-able.
56
57You can find the size of the current event queue via the standard FIONREAD
58ioctl on the fd returned by inotify_init().
59
60All watches are destroyed and cleaned up on close.
61
62
63(ii)
64
65Prototypes:
66
67 int inotify_init (void);
68 int inotify_add_watch (int fd, const char *path, __u32 mask);
69 int inotify_rm_watch (int fd, __u32 mask);
70
71
72(iii) Internal Kernel Implementation
73
74Each inotify instance is associated with an inotify_device structure.
75
76Each watch is associated with an inotify_watch structure. Watches are chained
77off of each associated device and each associated inode.
78
79See fs/inotify.c for the locking and lifetime rules.
80
81
82(iv) Rationale
83
84Q: What is the design decision behind not tying the watch to the open fd of
85 the watched object?
86
87A: Watches are associated with an open inotify device, not an open file.
88 This solves the primary problem with dnotify: keeping the file open pins
89 the file and thus, worse, pins the mount. Dnotify is therefore infeasible
90 for use on a desktop system with removable media as the media cannot be
91 unmounted. Watching a file should not require that it be open.
92
93Q: What is the design decision behind using an-fd-per-instance as opposed to
94 an fd-per-watch?
95
96A: An fd-per-watch quickly consumes more file descriptors than are allowed,
97 more fd's than are feasible to manage, and more fd's than are optimally
98 select()-able. Yes, root can bump the per-process fd limit and yes, users
99 can use epoll, but requiring both is a silly and extraneous requirement.
100 A watch consumes less memory than an open file, separating the number
101 spaces is thus sensible. The current design is what user-space developers
102 want: Users initialize inotify, once, and add n watches, requiring but one
103 fd and no twiddling with fd limits. Initializing an inotify instance two
104 thousand times is silly. If we can implement user-space's preferences
105 cleanly--and we can, the idr layer makes stuff like this trivial--then we
106 should.
107
108 There are other good arguments. With a single fd, there is a single
109 item to block on, which is mapped to a single queue of events. The single
110 fd returns all watch events and also any potential out-of-band data. If
111 every fd was a separate watch,
112
113 - There would be no way to get event ordering. Events on file foo and
114 file bar would pop poll() on both fd's, but there would be no way to tell
115 which happened first. A single queue trivially gives you ordering. Such
116 ordering is crucial to existing applications such as Beagle. Imagine
117 "mv a b ; mv b a" events without ordering.
118
119 - We'd have to maintain n fd's and n internal queues with state,
120 versus just one. It is a lot messier in the kernel. A single, linear
121 queue is the data structure that makes sense.
122
123 - User-space developers prefer the current API. The Beagle guys, for
124 example, love it. Trust me, I asked. It is not a surprise: Who'd want
125 to manage and block on 1000 fd's via select?
126
127 - No way to get out of band data.
128
129 - 1024 is still too low. ;-)
130
131 When you talk about designing a file change notification system that
132 scales to 1000s of directories, juggling 1000s of fd's just does not seem
133 the right interface. It is too heavy.
134
135 Additionally, it _is_ possible to more than one instance and
136 juggle more than one queue and thus more than one associated fd. There
137 need not be a one-fd-per-process mapping; it is one-fd-per-queue and a
138 process can easily want more than one queue.
139
140Q: Why the system call approach?
141
142A: The poor user-space interface is the second biggest problem with dnotify.
143 Signals are a terrible, terrible interface for file notification. Or for
144 anything, for that matter. The ideal solution, from all perspectives, is a
145 file descriptor-based one that allows basic file I/O and poll/select.
146 Obtaining the fd and managing the watches could have been done either via a
147 device file or a family of new system calls. We decided to implement a
148 family of system calls because that is the preffered approach for new kernel
149 interfaces. The only real difference was whether we wanted to use open(2)
150 and ioctl(2) or a couple of new system calls. System calls beat ioctls.
151
diff --git a/Documentation/filesystems/ntfs.txt b/Documentation/filesystems/ntfs.txt
index f89b440fad1..eef4aca0c75 100644
--- a/Documentation/filesystems/ntfs.txt
+++ b/Documentation/filesystems/ntfs.txt
@@ -21,7 +21,7 @@ Overview
21======== 21========
22 22
23Linux-NTFS comes with a number of user-space programs known as ntfsprogs. 23Linux-NTFS comes with a number of user-space programs known as ntfsprogs.
24These include mkntfs, a full-featured ntfs file system format utility, 24These include mkntfs, a full-featured ntfs filesystem format utility,
25ntfsundelete used for recovering files that were unintentionally deleted 25ntfsundelete used for recovering files that were unintentionally deleted
26from an NTFS volume and ntfsresize which is used to resize an NTFS partition. 26from an NTFS volume and ntfsresize which is used to resize an NTFS partition.
27See the web site for more information. 27See the web site for more information.
@@ -149,7 +149,14 @@ case_sensitive=<BOOL> If case_sensitive is specified, treat all file names as
149 name, if it exists. If case_sensitive, you will need 149 name, if it exists. If case_sensitive, you will need
150 to provide the correct case of the short file name. 150 to provide the correct case of the short file name.
151 151
152errors=opt What to do when critical file system errors are found. 152disable_sparse=<BOOL> If disable_sparse is specified, creation of sparse
153 regions, i.e. holes, inside files is disabled for the
154 volume (for the duration of this mount only). By
155 default, creation of sparse regions is enabled, which
156 is consistent with the behaviour of traditional Unix
157 filesystems.
158
159errors=opt What to do when critical filesystem errors are found.
153 Following values can be used for "opt": 160 Following values can be used for "opt":
154 continue: DEFAULT, try to clean-up as much as 161 continue: DEFAULT, try to clean-up as much as
155 possible, e.g. marking a corrupt inode as 162 possible, e.g. marking a corrupt inode as
@@ -432,6 +439,24 @@ ChangeLog
432 439
433Note, a technical ChangeLog aimed at kernel hackers is in fs/ntfs/ChangeLog. 440Note, a technical ChangeLog aimed at kernel hackers is in fs/ntfs/ChangeLog.
434 441
4422.1.23:
443 - Stamp the user space journal, aka transaction log, aka $UsnJrnl, if
444 it is present and active thus telling Windows and applications using
445 the transaction log that changes can have happened on the volume
446 which are not recorded in $UsnJrnl.
447 - Detect the case when Windows has been hibernated (suspended to disk)
448 and if this is the case do not allow (re)mounting read-write to
449 prevent data corruption when you boot back into the suspended
450 Windows session.
451 - Implement extension of resident files using the normal file write
452 code paths, i.e. most very small files can be extended to be a little
453 bit bigger but not by much.
454 - Add new mount option "disable_sparse". (See list of mount options
455 above for details.)
456 - Improve handling of ntfs volumes with errors and strange boot sectors
457 in particular.
458 - Fix various bugs including a nasty deadlock that appeared in recent
459 kernels (around 2.6.11-2.6.12 timeframe).
4352.1.22: 4602.1.22:
436 - Improve handling of ntfs volumes with errors. 461 - Improve handling of ntfs volumes with errors.
437 - Fix various bugs and race conditions. 462 - Fix various bugs and race conditions.
diff --git a/Documentation/i2c/chips/adm1021 b/Documentation/hwmon/adm1021
index 03d02bfb3df..03d02bfb3df 100644
--- a/Documentation/i2c/chips/adm1021
+++ b/Documentation/hwmon/adm1021
diff --git a/Documentation/i2c/chips/adm1025 b/Documentation/hwmon/adm1025
index 39d2b781b5d..39d2b781b5d 100644
--- a/Documentation/i2c/chips/adm1025
+++ b/Documentation/hwmon/adm1025
diff --git a/Documentation/i2c/chips/adm1026 b/Documentation/hwmon/adm1026
index 473c689d792..473c689d792 100644
--- a/Documentation/i2c/chips/adm1026
+++ b/Documentation/hwmon/adm1026
diff --git a/Documentation/i2c/chips/adm1031 b/Documentation/hwmon/adm1031
index 130a38382b9..130a38382b9 100644
--- a/Documentation/i2c/chips/adm1031
+++ b/Documentation/hwmon/adm1031
diff --git a/Documentation/i2c/chips/adm9240 b/Documentation/hwmon/adm9240
index 35f618f3289..35f618f3289 100644
--- a/Documentation/i2c/chips/adm9240
+++ b/Documentation/hwmon/adm9240
diff --git a/Documentation/i2c/chips/asb100 b/Documentation/hwmon/asb100
index ab7365e139b..ab7365e139b 100644
--- a/Documentation/i2c/chips/asb100
+++ b/Documentation/hwmon/asb100
diff --git a/Documentation/i2c/chips/ds1621 b/Documentation/hwmon/ds1621
index 1fee6f1e6bc..1fee6f1e6bc 100644
--- a/Documentation/i2c/chips/ds1621
+++ b/Documentation/hwmon/ds1621
diff --git a/Documentation/i2c/chips/fscher b/Documentation/hwmon/fscher
index 64031659aff..64031659aff 100644
--- a/Documentation/i2c/chips/fscher
+++ b/Documentation/hwmon/fscher
diff --git a/Documentation/i2c/chips/gl518sm b/Documentation/hwmon/gl518sm
index ce0881883bc..ce0881883bc 100644
--- a/Documentation/i2c/chips/gl518sm
+++ b/Documentation/hwmon/gl518sm
diff --git a/Documentation/i2c/chips/it87 b/Documentation/hwmon/it87
index 0d0195040d8..0d0195040d8 100644
--- a/Documentation/i2c/chips/it87
+++ b/Documentation/hwmon/it87
diff --git a/Documentation/i2c/chips/lm63 b/Documentation/hwmon/lm63
index 31660bf9797..31660bf9797 100644
--- a/Documentation/i2c/chips/lm63
+++ b/Documentation/hwmon/lm63
diff --git a/Documentation/i2c/chips/lm75 b/Documentation/hwmon/lm75
index 8e6356fe05d..8e6356fe05d 100644
--- a/Documentation/i2c/chips/lm75
+++ b/Documentation/hwmon/lm75
diff --git a/Documentation/i2c/chips/lm77 b/Documentation/hwmon/lm77
index 57c3a46d637..57c3a46d637 100644
--- a/Documentation/i2c/chips/lm77
+++ b/Documentation/hwmon/lm77
diff --git a/Documentation/i2c/chips/lm78 b/Documentation/hwmon/lm78
index 357086ed7f6..357086ed7f6 100644
--- a/Documentation/i2c/chips/lm78
+++ b/Documentation/hwmon/lm78
diff --git a/Documentation/i2c/chips/lm80 b/Documentation/hwmon/lm80
index cb5b407ba3e..cb5b407ba3e 100644
--- a/Documentation/i2c/chips/lm80
+++ b/Documentation/hwmon/lm80
diff --git a/Documentation/i2c/chips/lm83 b/Documentation/hwmon/lm83
index 061d9ed8ff4..061d9ed8ff4 100644
--- a/Documentation/i2c/chips/lm83
+++ b/Documentation/hwmon/lm83
diff --git a/Documentation/i2c/chips/lm85 b/Documentation/hwmon/lm85
index 9549237530c..9549237530c 100644
--- a/Documentation/i2c/chips/lm85
+++ b/Documentation/hwmon/lm85
diff --git a/Documentation/i2c/chips/lm87 b/Documentation/hwmon/lm87
index c952c57f0e1..c952c57f0e1 100644
--- a/Documentation/i2c/chips/lm87
+++ b/Documentation/hwmon/lm87
diff --git a/Documentation/i2c/chips/lm90 b/Documentation/hwmon/lm90
index 2c4cf39471f..2c4cf39471f 100644
--- a/Documentation/i2c/chips/lm90
+++ b/Documentation/hwmon/lm90
diff --git a/Documentation/i2c/chips/lm92 b/Documentation/hwmon/lm92
index 7705bfaa070..7705bfaa070 100644
--- a/Documentation/i2c/chips/lm92
+++ b/Documentation/hwmon/lm92
diff --git a/Documentation/i2c/chips/max1619 b/Documentation/hwmon/max1619
index d6f8d9cd7d7..d6f8d9cd7d7 100644
--- a/Documentation/i2c/chips/max1619
+++ b/Documentation/hwmon/max1619
diff --git a/Documentation/i2c/chips/pc87360 b/Documentation/hwmon/pc87360
index 89a8fcfa78d..89a8fcfa78d 100644
--- a/Documentation/i2c/chips/pc87360
+++ b/Documentation/hwmon/pc87360
diff --git a/Documentation/i2c/chips/sis5595 b/Documentation/hwmon/sis5595
index b7ae36b8cdf..b7ae36b8cdf 100644
--- a/Documentation/i2c/chips/sis5595
+++ b/Documentation/hwmon/sis5595
diff --git a/Documentation/i2c/chips/smsc47b397 b/Documentation/hwmon/smsc47b397
index da9d80c9643..da9d80c9643 100644
--- a/Documentation/i2c/chips/smsc47b397
+++ b/Documentation/hwmon/smsc47b397
diff --git a/Documentation/i2c/chips/smsc47m1 b/Documentation/hwmon/smsc47m1
index 34e6478c142..34e6478c142 100644
--- a/Documentation/i2c/chips/smsc47m1
+++ b/Documentation/hwmon/smsc47m1
diff --git a/Documentation/i2c/sysfs-interface b/Documentation/hwmon/sysfs-interface
index 346400519d0..346400519d0 100644
--- a/Documentation/i2c/sysfs-interface
+++ b/Documentation/hwmon/sysfs-interface
diff --git a/Documentation/i2c/userspace-tools b/Documentation/hwmon/userspace-tools
index 2622aac6542..2622aac6542 100644
--- a/Documentation/i2c/userspace-tools
+++ b/Documentation/hwmon/userspace-tools
diff --git a/Documentation/i2c/chips/via686a b/Documentation/hwmon/via686a
index b82014cb7c5..b82014cb7c5 100644
--- a/Documentation/i2c/chips/via686a
+++ b/Documentation/hwmon/via686a
diff --git a/Documentation/i2c/chips/w83627hf b/Documentation/hwmon/w83627hf
index 78f37c2d602..78f37c2d602 100644
--- a/Documentation/i2c/chips/w83627hf
+++ b/Documentation/hwmon/w83627hf
diff --git a/Documentation/i2c/chips/w83781d b/Documentation/hwmon/w83781d
index e5459333ba6..e5459333ba6 100644
--- a/Documentation/i2c/chips/w83781d
+++ b/Documentation/hwmon/w83781d
diff --git a/Documentation/i2c/chips/w83l785ts b/Documentation/hwmon/w83l785ts
index 1841cedc25b..1841cedc25b 100644
--- a/Documentation/i2c/chips/w83l785ts
+++ b/Documentation/hwmon/w83l785ts
diff --git a/Documentation/i2c/chips/max6875 b/Documentation/i2c/chips/max6875
index b4fb49b4181..b02002898a0 100644
--- a/Documentation/i2c/chips/max6875
+++ b/Documentation/i2c/chips/max6875
@@ -2,10 +2,10 @@ Kernel driver max6875
2===================== 2=====================
3 3
4Supported chips: 4Supported chips:
5 * Maxim max6874, max6875 5 * Maxim MAX6874, MAX6875
6 Prefixes: 'max6875' 6 Prefix: 'max6875'
7 Addresses scanned: 0x50, 0x52 7 Addresses scanned: 0x50, 0x52
8 Datasheets: 8 Datasheet:
9 http://pdfserv.maxim-ic.com/en/ds/MAX6874-MAX6875.pdf 9 http://pdfserv.maxim-ic.com/en/ds/MAX6874-MAX6875.pdf
10 10
11Author: Ben Gardner <bgardner@wabtec.com> 11Author: Ben Gardner <bgardner@wabtec.com>
@@ -23,14 +23,26 @@ Module Parameters
23Description 23Description
24----------- 24-----------
25 25
26The MAXIM max6875 is a EEPROM-programmable power-supply sequencer/supervisor. 26The Maxim MAX6875 is an EEPROM-programmable power-supply sequencer/supervisor.
27It provides timed outputs that can be used as a watchdog, if properly wired. 27It provides timed outputs that can be used as a watchdog, if properly wired.
28It also provides 512 bytes of user EEPROM. 28It also provides 512 bytes of user EEPROM.
29 29
30At reset, the max6875 reads the configuration eeprom into its configuration 30At reset, the MAX6875 reads the configuration EEPROM into its configuration
31registers. The chip then begins to operate according to the values in the 31registers. The chip then begins to operate according to the values in the
32registers. 32registers.
33 33
34The Maxim MAX6874 is a similar, mostly compatible device, with more intputs
35and outputs:
36
37 vin gpi vout
38MAX6874 6 4 8
39MAX6875 4 3 5
40
41MAX6874 chips can have four different addresses (as opposed to only two for
42the MAX6875). The additional addresses (0x54 and 0x56) are not probed by
43this driver by default, but the probe module parameter can be used if
44needed.
45
34See the datasheet for details on how to program the EEPROM. 46See the datasheet for details on how to program the EEPROM.
35 47
36 48
diff --git a/Documentation/i2c/dev-interface b/Documentation/i2c/dev-interface
index 09d6cda2a1f..b849ad63658 100644
--- a/Documentation/i2c/dev-interface
+++ b/Documentation/i2c/dev-interface
@@ -14,9 +14,12 @@ C example
14========= 14=========
15 15
16So let's say you want to access an i2c adapter from a C program. The 16So let's say you want to access an i2c adapter from a C program. The
17first thing to do is `#include <linux/i2c.h>" and "#include <linux/i2c-dev.h>. 17first thing to do is "#include <linux/i2c-dev.h>". Please note that
18Yes, I know, you should never include kernel header files, but until glibc 18there are two files named "i2c-dev.h" out there, one is distributed
19knows about i2c, there is not much choice. 19with the Linux kernel and is meant to be included from kernel
20driver code, the other one is distributed with lm_sensors and is
21meant to be included from user-space programs. You obviously want
22the second one here.
20 23
21Now, you have to decide which adapter you want to access. You should 24Now, you have to decide which adapter you want to access. You should
22inspect /sys/class/i2c-dev/ to decide this. Adapter numbers are assigned 25inspect /sys/class/i2c-dev/ to decide this. Adapter numbers are assigned
@@ -78,7 +81,7 @@ Full interface description
78========================== 81==========================
79 82
80The following IOCTLs are defined and fully supported 83The following IOCTLs are defined and fully supported
81(see also i2c-dev.h and i2c.h): 84(see also i2c-dev.h):
82 85
83ioctl(file,I2C_SLAVE,long addr) 86ioctl(file,I2C_SLAVE,long addr)
84 Change slave address. The address is passed in the 7 lower bits of the 87 Change slave address. The address is passed in the 7 lower bits of the
@@ -97,10 +100,10 @@ ioctl(file,I2C_PEC,long select)
97ioctl(file,I2C_FUNCS,unsigned long *funcs) 100ioctl(file,I2C_FUNCS,unsigned long *funcs)
98 Gets the adapter functionality and puts it in *funcs. 101 Gets the adapter functionality and puts it in *funcs.
99 102
100ioctl(file,I2C_RDWR,struct i2c_ioctl_rdwr_data *msgset) 103ioctl(file,I2C_RDWR,struct i2c_rdwr_ioctl_data *msgset)
101 104
102 Do combined read/write transaction without stop in between. 105 Do combined read/write transaction without stop in between.
103 The argument is a pointer to a struct i2c_ioctl_rdwr_data { 106 The argument is a pointer to a struct i2c_rdwr_ioctl_data {
104 107
105 struct i2c_msg *msgs; /* ptr to array of simple messages */ 108 struct i2c_msg *msgs; /* ptr to array of simple messages */
106 int nmsgs; /* number of messages to exchange */ 109 int nmsgs; /* number of messages to exchange */
diff --git a/Documentation/i2c/writing-clients b/Documentation/i2c/writing-clients
index f482dae81de..91664be91ff 100644
--- a/Documentation/i2c/writing-clients
+++ b/Documentation/i2c/writing-clients
@@ -27,7 +27,6 @@ address.
27static struct i2c_driver foo_driver = { 27static struct i2c_driver foo_driver = {
28 .owner = THIS_MODULE, 28 .owner = THIS_MODULE,
29 .name = "Foo version 2.3 driver", 29 .name = "Foo version 2.3 driver",
30 .id = I2C_DRIVERID_FOO, /* from i2c-id.h, optional */
31 .flags = I2C_DF_NOTIFY, 30 .flags = I2C_DF_NOTIFY,
32 .attach_adapter = &foo_attach_adapter, 31 .attach_adapter = &foo_attach_adapter,
33 .detach_client = &foo_detach_client, 32 .detach_client = &foo_detach_client,
@@ -37,12 +36,6 @@ static struct i2c_driver foo_driver = {
37The name can be chosen freely, and may be upto 40 characters long. Please 36The name can be chosen freely, and may be upto 40 characters long. Please
38use something descriptive here. 37use something descriptive here.
39 38
40If used, the id should be a unique ID. The range 0xf000 to 0xffff is
41reserved for local use, and you can use one of those until you start
42distributing the driver, at which time you should contact the i2c authors
43to get your own ID(s). Note that most of the time you don't need an ID
44at all so you can just omit it.
45
46Don't worry about the flags field; just put I2C_DF_NOTIFY into it. This 39Don't worry about the flags field; just put I2C_DF_NOTIFY into it. This
47means that your driver will be notified when new adapters are found. 40means that your driver will be notified when new adapters are found.
48This is almost always what you want. 41This is almost always what you want.
diff --git a/Documentation/infiniband/user_verbs.txt b/Documentation/infiniband/user_verbs.txt
new file mode 100644
index 00000000000..f847501e50b
--- /dev/null
+++ b/Documentation/infiniband/user_verbs.txt
@@ -0,0 +1,69 @@
1USERSPACE VERBS ACCESS
2
3 The ib_uverbs module, built by enabling CONFIG_INFINIBAND_USER_VERBS,
4 enables direct userspace access to IB hardware via "verbs," as
5 described in chapter 11 of the InfiniBand Architecture Specification.
6
7 To use the verbs, the libibverbs library, available from
8 <http://openib.org/>, is required. libibverbs contains a
9 device-independent API for using the ib_uverbs interface.
10 libibverbs also requires appropriate device-dependent kernel and
11 userspace driver for your InfiniBand hardware. For example, to use
12 a Mellanox HCA, you will need the ib_mthca kernel module and the
13 libmthca userspace driver be installed.
14
15User-kernel communication
16
17 Userspace communicates with the kernel for slow path, resource
18 management operations via the /dev/infiniband/uverbsN character
19 devices. Fast path operations are typically performed by writing
20 directly to hardware registers mmap()ed into userspace, with no
21 system call or context switch into the kernel.
22
23 Commands are sent to the kernel via write()s on these device files.
24 The ABI is defined in drivers/infiniband/include/ib_user_verbs.h.
25 The structs for commands that require a response from the kernel
26 contain a 64-bit field used to pass a pointer to an output buffer.
27 Status is returned to userspace as the return value of the write()
28 system call.
29
30Resource management
31
32 Since creation and destruction of all IB resources is done by
33 commands passed through a file descriptor, the kernel can keep track
34 of which resources are attached to a given userspace context. The
35 ib_uverbs module maintains idr tables that are used to translate
36 between kernel pointers and opaque userspace handles, so that kernel
37 pointers are never exposed to userspace and userspace cannot trick
38 the kernel into following a bogus pointer.
39
40 This also allows the kernel to clean up when a process exits and
41 prevent one process from touching another process's resources.
42
43Memory pinning
44
45 Direct userspace I/O requires that memory regions that are potential
46 I/O targets be kept resident at the same physical address. The
47 ib_uverbs module manages pinning and unpinning memory regions via
48 get_user_pages() and put_page() calls. It also accounts for the
49 amount of memory pinned in the process's locked_vm, and checks that
50 unprivileged processes do not exceed their RLIMIT_MEMLOCK limit.
51
52 Pages that are pinned multiple times are counted each time they are
53 pinned, so the value of locked_vm may be an overestimate of the
54 number of pages pinned by a process.
55
56/dev files
57
58 To create the appropriate character device files automatically with
59 udev, a rule like
60
61 KERNEL="uverbs*", NAME="infiniband/%k"
62
63 can be used. This will create device nodes named
64
65 /dev/infiniband/uverbs0
66
67 and so on. Since the InfiniBand userspace verbs should be safe for
68 use by non-privileged processes, it may be useful to add an
69 appropriate MODE or GROUP to the udev rule.
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index f44bb5567c5..a998a8c2f95 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -37,7 +37,7 @@ restrictions referred to are that the relevant option is valid if:
37 IA-32 IA-32 aka i386 architecture is enabled. 37 IA-32 IA-32 aka i386 architecture is enabled.
38 IA-64 IA-64 architecture is enabled. 38 IA-64 IA-64 architecture is enabled.
39 IOSCHED More than one I/O scheduler is enabled. 39 IOSCHED More than one I/O scheduler is enabled.
40 IP_PNP IP DCHP, BOOTP, or RARP is enabled. 40 IP_PNP IP DHCP, BOOTP, or RARP is enabled.
41 ISAPNP ISA PnP code is enabled. 41 ISAPNP ISA PnP code is enabled.
42 ISDN Appropriate ISDN support is enabled. 42 ISDN Appropriate ISDN support is enabled.
43 JOY Appropriate joystick support is enabled. 43 JOY Appropriate joystick support is enabled.
@@ -622,6 +622,17 @@ running once the system is up.
622 ips= [HW,SCSI] Adaptec / IBM ServeRAID controller 622 ips= [HW,SCSI] Adaptec / IBM ServeRAID controller
623 See header of drivers/scsi/ips.c. 623 See header of drivers/scsi/ips.c.
624 624
625 irqfixup [HW]
626 When an interrupt is not handled search all handlers
627 for it. Intended to get systems with badly broken
628 firmware running.
629
630 irqpoll [HW]
631 When an interrupt is not handled search all handlers
632 for it. Also check all handlers each timer
633 interrupt. Intended to get systems with badly broken
634 firmware running.
635
625 isapnp= [ISAPNP] 636 isapnp= [ISAPNP]
626 Format: <RDP>, <reset>, <pci_scan>, <verbosity> 637 Format: <RDP>, <reset>, <pci_scan>, <verbosity>
627 638
@@ -747,6 +758,9 @@ running once the system is up.
747 maxcpus= [SMP] Maximum number of processors that an SMP kernel 758 maxcpus= [SMP] Maximum number of processors that an SMP kernel
748 should make use of 759 should make use of
749 760
761 max_addr=[KMG] [KNL,BOOT,ia64] All physical memory greater than or
762 equal to this physical address is ignored.
763
750 max_luns= [SCSI] Maximum number of LUNs to probe 764 max_luns= [SCSI] Maximum number of LUNs to probe
751 Should be between 1 and 2^32-1. 765 Should be between 1 and 2^32-1.
752 766
@@ -1030,6 +1044,10 @@ running once the system is up.
1030 irqmask=0xMMMM [IA-32] Set a bit mask of IRQs allowed to be assigned 1044 irqmask=0xMMMM [IA-32] Set a bit mask of IRQs allowed to be assigned
1031 automatically to PCI devices. You can make the kernel 1045 automatically to PCI devices. You can make the kernel
1032 exclude IRQs of your ISA cards this way. 1046 exclude IRQs of your ISA cards this way.
1047 pirqaddr=0xAAAAA [IA-32] Specify the physical address
1048 of the PIRQ table (normally generated
1049 by the BIOS) if it is outside the
1050 F0000h-100000h range.
1033 lastbus=N [IA-32] Scan all buses till bus #N. Can be useful 1051 lastbus=N [IA-32] Scan all buses till bus #N. Can be useful
1034 if the kernel is unable to find your secondary buses 1052 if the kernel is unable to find your secondary buses
1035 and you want to tell it explicitly which ones they are. 1053 and you want to tell it explicitly which ones they are.
@@ -1115,7 +1133,7 @@ running once the system is up.
1115 See Documentation/ramdisk.txt. 1133 See Documentation/ramdisk.txt.
1116 1134
1117 psmouse.proto= [HW,MOUSE] Highest PS2 mouse protocol extension to 1135 psmouse.proto= [HW,MOUSE] Highest PS2 mouse protocol extension to
1118 probe for (bare|imps|exps). 1136 probe for (bare|imps|exps|lifebook|any).
1119 psmouse.rate= [HW,MOUSE] Set desired mouse report rate, in reports 1137 psmouse.rate= [HW,MOUSE] Set desired mouse report rate, in reports
1120 per second. 1138 per second.
1121 psmouse.resetafter= 1139 psmouse.resetafter=
diff --git a/Documentation/networking/dmfe.txt b/Documentation/networking/dmfe.txt
index c0e8398674e..046363552d0 100644
--- a/Documentation/networking/dmfe.txt
+++ b/Documentation/networking/dmfe.txt
@@ -1,59 +1,65 @@
1 dmfe.c: Version 1.28 01/18/2000 1Davicom DM9102(A)/DM9132/DM9801 fast ethernet driver for Linux.
2 2
3 A Davicom DM9102(A)/DM9132/DM9801 fast ethernet driver for Linux. 3This program is free software; you can redistribute it and/or
4 Copyright (C) 1997 Sten Wang 4modify it under the terms of the GNU General Public License
5as published by the Free Software Foundation; either version 2
6of the License, or (at your option) any later version.
5 7
6 This program is free software; you can redistribute it and/or 8This program is distributed in the hope that it will be useful,
7 modify it under the terms of the GNU General Public License 9but WITHOUT ANY WARRANTY; without even the implied warranty of
8 as published by the Free Software Foundation; either version 2 10MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9 of the License, or (at your option) any later version. 11GNU General Public License for more details.
10 12
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15 13
14This driver provides kernel support for Davicom DM9102(A)/DM9132/DM9801 ethernet cards ( CNET
1510/100 ethernet cards uses Davicom chipset too, so this driver supports CNET cards too ).If you
16didn't compile this driver as a module, it will automatically load itself on boot and print a
17line similar to :
16 18
17 A. Compiler command: 19 dmfe: Davicom DM9xxx net driver, version 1.36.4 (2002-01-17)
18 20
19 A-1: For normal single or multiple processor kernel 21If you compiled this driver as a module, you have to load it on boot.You can load it with command :
20 "gcc -DMODULE -D__KERNEL__ -I/usr/src/linux/net/inet -Wall
21 -Wstrict-prototypes -O6 -c dmfe.c"
22 22
23 A-2: For single or multiple processor with kernel module version function 23 insmod dmfe
24 "gcc -DMODULE -DMODVERSIONS -D__KERNEL__ -I/usr/src/linux/net/inet
25 -Wall -Wstrict-prototypes -O6 -c dmfe.c"
26 24
25This way it will autodetect the device mode.This is the suggested way to load the module.Or you can pass
26a mode= setting to module while loading, like :
27 27
28 B. The following steps teach you how to activate a DM9102 board: 28 insmod dmfe mode=0 # Force 10M Half Duplex
29 insmod dmfe mode=1 # Force 100M Half Duplex
30 insmod dmfe mode=4 # Force 10M Full Duplex
31 insmod dmfe mode=5 # Force 100M Full Duplex
29 32
30 1. Used the upper compiler command to compile dmfe.c 33Next you should configure your network interface with a command similar to :
31 34
32 2. Insert dmfe module into kernel 35 ifconfig eth0 172.22.3.18
33 "insmod dmfe" ;;Auto Detection Mode (Suggest) 36 ^^^^^^^^^^^
34 "insmod dmfe mode=0" ;;Force 10M Half Duplex 37 Your IP Adress
35 "insmod dmfe mode=1" ;;Force 100M Half Duplex
36 "insmod dmfe mode=4" ;;Force 10M Full Duplex
37 "insmod dmfe mode=5" ;;Force 100M Full Duplex
38 38
39 3. Config a dm9102 network interface 39Then you may have to modify the default routing table with command :
40 "ifconfig eth0 172.22.3.18"
41 ^^^^^^^^^^^ Your IP address
42 40
43 4. Activate the IP routing table. For some distributions, it is not 41 route add default eth0
44 necessary. You can type "route" to check.
45 42
46 "route add default eth0"
47 43
44Now your ethernet card should be up and running.
48 45
49 5. Well done. Your DM9102 adapter is now activated.
50 46
47TODO:
51 48
52 C. Object files description: 49Implement pci_driver::suspend() and pci_driver::resume() power management methods.
53 1. dmfe_rh61.o: For Redhat 6.1 50Check on 64 bit boxes.
51Check and fix on big endian boxes.
52Test and make sure PCI latency is now correct for all cases.
54 53
55 If you can make sure your kernel version, you can rename
56 to dmfe.o and directly use it without re-compiling.
57 54
55Authors:
58 56
59 Author: Sten Wang, 886-3-5798797-8517, E-mail: sten_wang@davicom.com.tw 57Sten Wang <sten_wang@davicom.com.tw > : Original Author
58Tobias Ringstrom <tori@unhappy.mine.nu> : Current Maintainer
59
60Contributors:
61
62Marcelo Tosatti <marcelo@conectiva.com.br>
63Alan Cox <alan@redhat.com>
64Jeff Garzik <jgarzik@pobox.com>
65Vojtech Pavlik <vojtech@suse.cz>
diff --git a/Documentation/networking/fib_trie.txt b/Documentation/networking/fib_trie.txt
new file mode 100644
index 00000000000..f50d0c673c5
--- /dev/null
+++ b/Documentation/networking/fib_trie.txt
@@ -0,0 +1,145 @@
1 LC-trie implementation notes.
2
3Node types
4----------
5leaf
6 An end node with data. This has a copy of the relevant key, along
7 with 'hlist' with routing table entries sorted by prefix length.
8 See struct leaf and struct leaf_info.
9
10trie node or tnode
11 An internal node, holding an array of child (leaf or tnode) pointers,
12 indexed through a subset of the key. See Level Compression.
13
14A few concepts explained
15------------------------
16Bits (tnode)
17 The number of bits in the key segment used for indexing into the
18 child array - the "child index". See Level Compression.
19
20Pos (tnode)
21 The position (in the key) of the key segment used for indexing into
22 the child array. See Path Compression.
23
24Path Compression / skipped bits
25 Any given tnode is linked to from the child array of its parent, using
26 a segment of the key specified by the parent's "pos" and "bits"
27 In certain cases, this tnode's own "pos" will not be immediately
28 adjacent to the parent (pos+bits), but there will be some bits
29 in the key skipped over because they represent a single path with no
30 deviations. These "skipped bits" constitute Path Compression.
31 Note that the search algorithm will simply skip over these bits when
32 searching, making it necessary to save the keys in the leaves to
33 verify that they actually do match the key we are searching for.
34
35Level Compression / child arrays
36 the trie is kept level balanced moving, under certain conditions, the
37 children of a full child (see "full_children") up one level, so that
38 instead of a pure binary tree, each internal node ("tnode") may
39 contain an arbitrarily large array of links to several children.
40 Conversely, a tnode with a mostly empty child array (see empty_children)
41 may be "halved", having some of its children moved downwards one level,
42 in order to avoid ever-increasing child arrays.
43
44empty_children
45 the number of positions in the child array of a given tnode that are
46 NULL.
47
48full_children
49 the number of children of a given tnode that aren't path compressed.
50 (in other words, they aren't NULL or leaves and their "pos" is equal
51 to this tnode's "pos"+"bits").
52
53 (The word "full" here is used more in the sense of "complete" than
54 as the opposite of "empty", which might be a tad confusing.)
55
56Comments
57---------
58
59We have tried to keep the structure of the code as close to fib_hash as
60possible to allow verification and help up reviewing.
61
62fib_find_node()
63 A good start for understanding this code. This function implements a
64 straightforward trie lookup.
65
66fib_insert_node()
67 Inserts a new leaf node in the trie. This is bit more complicated than
68 fib_find_node(). Inserting a new node means we might have to run the
69 level compression algorithm on part of the trie.
70
71trie_leaf_remove()
72 Looks up a key, deletes it and runs the level compression algorithm.
73
74trie_rebalance()
75 The key function for the dynamic trie after any change in the trie
76 it is run to optimize and reorganize. Tt will walk the trie upwards
77 towards the root from a given tnode, doing a resize() at each step
78 to implement level compression.
79
80resize()
81 Analyzes a tnode and optimizes the child array size by either inflating
82 or shrinking it repeatedly until it fullfills the criteria for optimal
83 level compression. This part follows the original paper pretty closely
84 and there may be some room for experimentation here.
85
86inflate()
87 Doubles the size of the child array within a tnode. Used by resize().
88
89halve()
90 Halves the size of the child array within a tnode - the inverse of
91 inflate(). Used by resize();
92
93fn_trie_insert(), fn_trie_delete(), fn_trie_select_default()
94 The route manipulation functions. Should conform pretty closely to the
95 corresponding functions in fib_hash.
96
97fn_trie_flush()
98 This walks the full trie (using nextleaf()) and searches for empty
99 leaves which have to be removed.
100
101fn_trie_dump()
102 Dumps the routing table ordered by prefix length. This is somewhat
103 slower than the corresponding fib_hash function, as we have to walk the
104 entire trie for each prefix length. In comparison, fib_hash is organized
105 as one "zone"/hash per prefix length.
106
107Locking
108-------
109
110fib_lock is used for an RW-lock in the same way that this is done in fib_hash.
111However, the functions are somewhat separated for other possible locking
112scenarios. It might conceivably be possible to run trie_rebalance via RCU
113to avoid read_lock in the fn_trie_lookup() function.
114
115Main lookup mechanism
116---------------------
117fn_trie_lookup() is the main lookup function.
118
119The lookup is in its simplest form just like fib_find_node(). We descend the
120trie, key segment by key segment, until we find a leaf. check_leaf() does
121the fib_semantic_match in the leaf's sorted prefix hlist.
122
123If we find a match, we are done.
124
125If we don't find a match, we enter prefix matching mode. The prefix length,
126starting out at the same as the key length, is reduced one step at a time,
127and we backtrack upwards through the trie trying to find a longest matching
128prefix. The goal is always to reach a leaf and get a positive result from the
129fib_semantic_match mechanism.
130
131Inside each tnode, the search for longest matching prefix consists of searching
132through the child array, chopping off (zeroing) the least significant "1" of
133the child index until we find a match or the child index consists of nothing but
134zeros.
135
136At this point we backtrack (t->stats.backtrack++) up the trie, continuing to
137chop off part of the key in order to find the longest matching prefix.
138
139At this point we will repeatedly descend subtries to look for a match, and there
140are some optimizations available that can provide us with "shortcuts" to avoid
141descending into dead ends. Look for "HL_OPTIMIZE" sections in the code.
142
143To alleviate any doubts about the correctness of the route selection process,
144a new netlink operation has been added. Look for NETLINK_FIB_LOOKUP, which
145gives userland access to fib_lookup().
diff --git a/Documentation/pcmcia/devicetable.txt b/Documentation/pcmcia/devicetable.txt
new file mode 100644
index 00000000000..3351c035514
--- /dev/null
+++ b/Documentation/pcmcia/devicetable.txt
@@ -0,0 +1,63 @@
1Matching of PCMCIA devices to drivers is done using one or more of the
2following criteria:
3
4- manufactor ID
5- card ID
6- product ID strings _and_ hashes of these strings
7- function ID
8- device function (actual and pseudo)
9
10You should use the helpers in include/pcmcia/device_id.h for generating the
11struct pcmcia_device_id[] entries which match devices to drivers.
12
13If you want to match product ID strings, you also need to pass the crc32
14hashes of the string to the macro, e.g. if you want to match the product ID
15string 1, you need to use
16
17PCMCIA_DEVICE_PROD_ID1("some_string", 0x(hash_of_some_string)),
18
19If the hash is incorrect, the kernel will inform you about this in "dmesg"
20upon module initialization, and tell you of the correct hash.
21
22You can determine the hash of the product ID strings by catting the file
23"modalias" in the sysfs directory of the PCMCIA device. It generates a string
24in the following form:
25pcmcia:m0149cC1ABf06pfn00fn00pa725B842DpbF1EFEE84pc0877B627pd00000000
26
27The hex value after "pa" is the hash of product ID string 1, after "pb" for
28string 2 and so on.
29
30Alternatively, you can use this small tool to determine the crc32 hash.
31simply pass the string you want to evaluate as argument to this program,
32e.g.
33$ ./crc32hash "Dual Speed"
34
35-------------------------------------------------------------------------
36/* crc32hash.c - derived from linux/lib/crc32.c, GNU GPL v2 */
37#include <string.h>
38#include <stdio.h>
39#include <ctype.h>
40#include <stdlib.h>
41
42unsigned int crc32(unsigned char const *p, unsigned int len)
43{
44 int i;
45 unsigned int crc = 0;
46 while (len--) {
47 crc ^= *p++;
48 for (i = 0; i < 8; i++)
49 crc = (crc >> 1) ^ ((crc & 1) ? 0xedb88320 : 0);
50 }
51 return crc;
52}
53
54int main(int argc, char **argv) {
55 unsigned int result;
56 if (argc != 2) {
57 printf("no string passed as argument\n");
58 return -1;
59 }
60 result = crc32(argv[1], strlen(argv[1]));
61 printf("0x%x\n", result);
62 return 0;
63}
diff --git a/Documentation/pcmcia/driver-changes.txt b/Documentation/pcmcia/driver-changes.txt
new file mode 100644
index 00000000000..59ccc63838c
--- /dev/null
+++ b/Documentation/pcmcia/driver-changes.txt
@@ -0,0 +1,58 @@
1This file details changes in 2.6 which affect PCMCIA card driver authors:
2
3* event handler initialization in struct pcmcia_driver (as of 2.6.13)
4 The event handler is notified of all events, and must be initialized
5 as the event() callback in the driver's struct pcmcia_driver.
6
7* pcmcia/version.h should not be used (as of 2.6.13)
8 This file will be removed eventually.
9
10* in-kernel device<->driver matching (as of 2.6.13)
11 PCMCIA devices and their correct drivers can now be matched in
12 kernelspace. See 'devicetable.txt' for details.
13
14* Device model integration (as of 2.6.11)
15 A struct pcmcia_device is registered with the device model core,
16 and can be used (e.g. for SET_NETDEV_DEV) by using
17 handle_to_dev(client_handle_t * handle).
18
19* Convert internal I/O port addresses to unsigned long (as of 2.6.11)
20 ioaddr_t should be replaced by kio_addr_t in PCMCIA card drivers.
21
22* irq_mask and irq_list parameters (as of 2.6.11)
23 The irq_mask and irq_list parameters should no longer be used in
24 PCMCIA card drivers. Instead, it is the job of the PCMCIA core to
25 determine which IRQ should be used. Therefore, link->irq.IRQInfo2
26 is ignored.
27
28* client->PendingEvents is gone (as of 2.6.11)
29 client->PendingEvents is no longer available.
30
31* client->Attributes are gone (as of 2.6.11)
32 client->Attributes is unused, therefore it is removed from all
33 PCMCIA card drivers
34
35* core functions no longer available (as of 2.6.11)
36 The following functions have been removed from the kernel source
37 because they are unused by all in-kernel drivers, and no external
38 driver was reported to rely on them:
39 pcmcia_get_first_region()
40 pcmcia_get_next_region()
41 pcmcia_modify_window()
42 pcmcia_set_event_mask()
43 pcmcia_get_first_window()
44 pcmcia_get_next_window()
45
46* device list iteration upon module removal (as of 2.6.10)
47 It is no longer necessary to iterate on the driver's internal
48 client list and call the ->detach() function upon module removal.
49
50* Resource management. (as of 2.6.8)
51 Although the PCMCIA subsystem will allocate resources for cards,
52 it no longer marks these resources busy. This means that driver
53 authors are now responsible for claiming your resources as per
54 other drivers in Linux. You should use request_region() to mark
55 your IO regions in-use, and request_mem_region() to mark your
56 memory regions in-use. The name argument should be a pointer to
57 your driver name. Eg, for pcnet_cs, name should point to the
58 string "pcnet_cs".
diff --git a/Documentation/power/video.txt b/Documentation/power/video.txt
index 881a37e3eeb..7a4a5036d12 100644
--- a/Documentation/power/video.txt
+++ b/Documentation/power/video.txt
@@ -117,6 +117,7 @@ IBM Thinkpad X40 Type 2371-7JG s3_bios,s3_mode (4)
117Medion MD4220 ??? (*) 117Medion MD4220 ??? (*)
118Samsung P35 vbetool needed (6) 118Samsung P35 vbetool needed (6)
119Sharp PC-AR10 (ATI rage) none (1) 119Sharp PC-AR10 (ATI rage) none (1)
120Sony Vaio PCG-C1VRX/K s3_bios (2)
120Sony Vaio PCG-F403 ??? (*) 121Sony Vaio PCG-F403 ??? (*)
121Sony Vaio PCG-N505SN ??? (*) 122Sony Vaio PCG-N505SN ??? (*)
122Sony Vaio vgn-s260 X or boot-radeon can init it (5) 123Sony Vaio vgn-s260 X or boot-radeon can init it (5)
diff --git a/Documentation/serial/driver b/Documentation/serial/driver
index e9c0178cd20..ac7eabbf662 100644
--- a/Documentation/serial/driver
+++ b/Documentation/serial/driver
@@ -107,8 +107,8 @@ hardware.
107 indicate that the signal is permanently active. If RI is 107 indicate that the signal is permanently active. If RI is
108 not available, the signal should not be indicated as active. 108 not available, the signal should not be indicated as active.
109 109
110 Locking: none. 110 Locking: port->lock taken.
111 Interrupts: caller dependent. 111 Interrupts: locally disabled.
112 This call must not sleep 112 This call must not sleep
113 113
114 stop_tx(port,tty_stop) 114 stop_tx(port,tty_stop)
diff --git a/Documentation/usb/sn9c102.txt b/Documentation/usb/sn9c102.txt
index cf9a1187edc..3f8a119db31 100644
--- a/Documentation/usb/sn9c102.txt
+++ b/Documentation/usb/sn9c102.txt
@@ -297,6 +297,7 @@ Vendor ID Product ID
2970x0c45 0x602a 2970x0c45 0x602a
2980x0c45 0x602b 2980x0c45 0x602b
2990x0c45 0x602c 2990x0c45 0x602c
3000x0c45 0x602d
3000x0c45 0x6030 3010x0c45 0x6030
3010x0c45 0x6080 3020x0c45 0x6080
3020x0c45 0x6082 3030x0c45 0x6082
@@ -333,6 +334,7 @@ Model Manufacturer
333----- ------------ 334----- ------------
334HV7131D Hynix Semiconductor, Inc. 335HV7131D Hynix Semiconductor, Inc.
335MI-0343 Micron Technology, Inc. 336MI-0343 Micron Technology, Inc.
337OV7630 OmniVision Technologies, Inc.
336PAS106B PixArt Imaging, Inc. 338PAS106B PixArt Imaging, Inc.
337PAS202BCB PixArt Imaging, Inc. 339PAS202BCB PixArt Imaging, Inc.
338TAS5110C1B Taiwan Advanced Sensor Corporation 340TAS5110C1B Taiwan Advanced Sensor Corporation
@@ -470,9 +472,11 @@ order):
470- Luca Capello for the donation of a webcam; 472- Luca Capello for the donation of a webcam;
471- Joao Rodrigo Fuzaro, Joao Limirio, Claudio Filho and Caio Begotti for the 473- Joao Rodrigo Fuzaro, Joao Limirio, Claudio Filho and Caio Begotti for the
472 donation of a webcam; 474 donation of a webcam;
475- Jon Hollstrom for the donation of a webcam;
473- Carlos Eduardo Medaglia Dyonisio, who added the support for the PAS202BCB 476- Carlos Eduardo Medaglia Dyonisio, who added the support for the PAS202BCB
474 image sensor; 477 image sensor;
475- Stefano Mozzi, who donated 45 EU; 478- Stefano Mozzi, who donated 45 EU;
479- Andrew Pearce for the donation of a webcam;
476- Bertrik Sikken, who reverse-engineered and documented the Huffman compression 480- Bertrik Sikken, who reverse-engineered and documented the Huffman compression
477 algorithm used in the SN9C10x controllers and implemented the first decoder; 481 algorithm used in the SN9C10x controllers and implemented the first decoder;
478- Mizuno Takafumi for the donation of a webcam; 482- Mizuno Takafumi for the donation of a webcam;
diff --git a/Documentation/usb/usbmon.txt b/Documentation/usb/usbmon.txt
index 2f8431f92b7..f1896ee3bb2 100644
--- a/Documentation/usb/usbmon.txt
+++ b/Documentation/usb/usbmon.txt
@@ -101,6 +101,13 @@ Here is the list of words, from left to right:
101 or 3 and 2 positions, correspondingly. 101 or 3 and 2 positions, correspondingly.
102- URB Status. This field makes no sense for submissions, but is present 102- URB Status. This field makes no sense for submissions, but is present
103 to help scripts with parsing. In error case, it contains the error code. 103 to help scripts with parsing. In error case, it contains the error code.
104 In case of a setup packet, it contains a Setup Tag. If scripts read a number
105 in this field, the proceed to read Data Length. Otherwise, they read
106 the setup packet before reading the Data Length.
107- Setup packet, if present, consists of 5 words: one of each for bmRequestType,
108 bRequest, wValue, wIndex, wLength, as specified by the USB Specification 2.0.
109 These words are safe to decode if Setup Tag was 's'. Otherwise, the setup
110 packet was present, but not captured, and the fields contain filler.
104- Data Length. This is the actual length in the URB. 111- Data Length. This is the actual length in the URB.
105- Data tag. The usbmon may not always capture data, even if length is nonzero. 112- Data tag. The usbmon may not always capture data, even if length is nonzero.
106 Only if tag is '=', the data words are present. 113 Only if tag is '=', the data words are present.
@@ -125,25 +132,31 @@ class ParsedLine {
125 String data_str = st.nextToken(); 132 String data_str = st.nextToken();
126 int len = data_str.length() / 2; 133 int len = data_str.length() / 2;
127 int i; 134 int i;
135 int b; // byte is signed, apparently?! XXX
128 for (i = 0; i < len; i++) { 136 for (i = 0; i < len; i++) {
129 data[data_len] = Byte.parseByte( 137 // data[data_len] = Byte.parseByte(
130 data_str.substring(i*2, i*2 + 2), 138 // data_str.substring(i*2, i*2 + 2),
131 16); 139 // 16);
140 b = Integer.parseInt(
141 data_str.substring(i*2, i*2 + 2),
142 16);
143 if (b >= 128)
144 b *= -1;
145 data[data_len] = (byte) b;
132 data_len++; 146 data_len++;
133 } 147 }
134 } 148 }
135 } 149 }
136} 150}
137 151
138This format is obviously deficient. For example, the setup packet for control 152This format may be changed in the future.
139transfers is not delivered. This will change in the future.
140 153
141Examples: 154Examples:
142 155
143An input control transfer to get a port status: 156An input control transfer to get a port status.
144 157
145d74ff9a0 2640288196 S Ci:001:00 -115 4 < 158d5ea89a0 3575914555 S Ci:001:00 s a3 00 0000 0003 0004 4 <
146d74ff9a0 2640288202 C Ci:001:00 0 4 = 01010100 159d5ea89a0 3575914560 C Ci:001:00 0 4 = 01050000
147 160
148An output bulk transfer to send a SCSI command 0x5E in a 31-byte Bulk wrapper 161An output bulk transfer to send a SCSI command 0x5E in a 31-byte Bulk wrapper
149to a storage device at address 5: 162to a storage device at address 5:
diff --git a/Documentation/video4linux/API.html b/Documentation/video4linux/API.html
index 4b3d8f640a4..441407b12a9 100644
--- a/Documentation/video4linux/API.html
+++ b/Documentation/video4linux/API.html
@@ -1,399 +1,16 @@
1<HTML><HEAD> 1<TITLE>V4L API</TITLE>
2<TITLE>Video4Linux Kernel API Reference v0.1:19990430</TITLE> 2<H1>Video For Linux APIs</H1>
3</HEAD> 3<table border=0>
4<! Revision History: > 4<tr>
5<! 4/30/1999 - Fred Gleason (fredg@wava.com)> 5<td>
6<! Documented extensions for the Radio Data System (RDS) extensions > 6<A HREF=http://www.linuxtv.org/downloads/video4linux/API/V4L1_API.html>
7<BODY bgcolor="#ffffff"> 7V4L original API</a>
8<H3>Devices</H3> 8</td><td>
9Video4Linux provides the following sets of device files. These live on the 9Obsoleted by V4L2 API
10character device formerly known as "/dev/bttv". /dev/bttv should be a 10</td></tr><tr><td>
11symlink to /dev/video0 for most people. 11<A HREF=http://www.linuxtv.org/downloads/video4linux/API/V4L2_API.html>
12<P> 12V4L2 API</a>
13<TABLE> 13</td><td>
14<TR><TH>Device Name</TH><TH>Minor Range</TH><TH>Function</TH> 14Should be used for new projects
15<TR><TD>/dev/video</TD><TD>0-63</TD><TD>Video Capture Interface</TD> 15</td></tr>
16<TR><TD>/dev/radio</TD><TD>64-127</TD><TD>AM/FM Radio Devices</TD> 16</table>
17<TR><TD>/dev/vtx</TD><TD>192-223</TD><TD>Teletext Interface Chips</TD>
18<TR><TD>/dev/vbi</TD><TD>224-239</TD><TD>Raw VBI Data (Intercast/teletext)</TD>
19</TABLE>
20<P>
21Video4Linux programs open and scan the devices to find what they are looking
22for. Capability queries define what each interface supports. The
23described API is only defined for video capture cards. The relevant subset
24applies to radio cards. Teletext interfaces talk the existing VTX API.
25<P>
26<H3>Capability Query Ioctl</H3>
27The <B>VIDIOCGCAP</B> ioctl call is used to obtain the capability
28information for a video device. The <b>struct video_capability</b> object
29passed to the ioctl is completed and returned. It contains the following
30information
31<P>
32<TABLE>
33<TR><TD><b>name[32]</b><TD>Canonical name for this interface</TD>
34<TR><TD><b>type</b><TD>Type of interface</TD>
35<TR><TD><b>channels</b><TD>Number of radio/tv channels if appropriate</TD>
36<TR><TD><b>audios</b><TD>Number of audio devices if appropriate</TD>
37<TR><TD><b>maxwidth</b><TD>Maximum capture width in pixels</TD>
38<TR><TD><b>maxheight</b><TD>Maximum capture height in pixels</TD>
39<TR><TD><b>minwidth</b><TD>Minimum capture width in pixels</TD>
40<TR><TD><b>minheight</b><TD>Minimum capture height in pixels</TD>
41</TABLE>
42<P>
43The type field lists the capability flags for the device. These are
44as follows
45<P>
46<TABLE>
47<TR><TH>Name</TH><TH>Description</TH>
48<TR><TD><b>VID_TYPE_CAPTURE</b><TD>Can capture to memory</TD>
49<TR><TD><b>VID_TYPE_TUNER</b><TD>Has a tuner of some form</TD>
50<TR><TD><b>VID_TYPE_TELETEXT</b><TD>Has teletext capability</TD>
51<TR><TD><b>VID_TYPE_OVERLAY</b><TD>Can overlay its image onto the frame buffer</TD>
52<TR><TD><b>VID_TYPE_CHROMAKEY</b><TD>Overlay is Chromakeyed</TD>
53<TR><TD><b>VID_TYPE_CLIPPING</b><TD>Overlay clipping is supported</TD>
54<TR><TD><b>VID_TYPE_FRAMERAM</b><TD>Overlay overwrites frame buffer memory</TD>
55<TR><TD><b>VID_TYPE_SCALES</b><TD>The hardware supports image scaling</TD>
56<TR><TD><b>VID_TYPE_MONOCHROME</b><TD>Image capture is grey scale only</TD>
57<TR><TD><b>VID_TYPE_SUBCAPTURE</b><TD>Capture can be of only part of the image</TD>
58</TABLE>
59<P>
60The minimum and maximum sizes listed for a capture device do not imply all
61that all height/width ratios or sizes within the range are possible. A
62request to set a size will be honoured by the largest available capture
63size whose capture is no large than the requested rectangle in either
64direction. For example the quickcam has 3 fixed settings.
65<P>
66<H3>Frame Buffer</H3>
67Capture cards that drop data directly onto the frame buffer must be told the
68base address of the frame buffer, its size and organisation. This is a
69privileged ioctl and one that eventually X itself should set.
70<P>
71The <b>VIDIOCSFBUF</b> ioctl sets the frame buffer parameters for a capture
72card. If the card does not do direct writes to the frame buffer then this
73ioctl will be unsupported. The <b>VIDIOCGFBUF</b> ioctl returns the
74currently used parameters. The structure used in both cases is a
75<b>struct video_buffer</b>.
76<P>
77<TABLE>
78<TR><TD><b>void *base</b></TD><TD>Base physical address of the buffer</TD>
79<TR><TD><b>int height</b></TD><TD>Height of the frame buffer</TD>
80<TR><TD><b>int width</b></TD><TD>Width of the frame buffer</TD>
81<TR><TD><b>int depth</b></TD><TD>Depth of the frame buffer</TD>
82<TR><TD><b>int bytesperline</b></TD><TD>Number of bytes of memory between the start of two adjacent lines</TD>
83</TABLE>
84<P>
85Note that these values reflect the physical layout of the frame buffer.
86The visible area may be smaller. In fact under XFree86 this is commonly the
87case. XFree86 DGA can provide the parameters required to set up this ioctl.
88Setting the base address to NULL indicates there is no physical frame buffer
89access.
90<P>
91<H3>Capture Windows</H3>
92The capture area is described by a <b>struct video_window</b>. This defines
93a capture area and the clipping information if relevant. The
94<b>VIDIOCGWIN</b> ioctl recovers the current settings and the
95<b>VIDIOCSWIN</b> sets new values. A successful call to <b>VIDIOCSWIN</b>
96indicates that a suitable set of parameters have been chosen. They do not
97indicate that exactly what was requested was granted. The program should
98call <b>VIDIOCGWIN</b> to check if the nearest match was suitable. The
99<b>struct video_window</b> contains the following fields.
100<P>
101<TABLE>
102<TR><TD><b>x</b><TD>The X co-ordinate specified in X windows format.</TD>
103<TR><TD><b>y</b><TD>The Y co-ordinate specified in X windows format.</TD>
104<TR><TD><b>width</b><TD>The width of the image capture.</TD>
105<TR><TD><b>height</b><TD>The height of the image capture.</TD>
106<TR><TD><b>chromakey</b><TD>A host order RGB32 value for the chroma key.</TD>
107<TR><TD><b>flags</b><TD>Additional capture flags.</TD>
108<TR><TD><b>clips</b><TD>A list of clipping rectangles. <em>(Set only)</em></TD>
109<TR><TD><b>clipcount</b><TD>The number of clipping rectangles. <em>(Set only)</em></TD>
110</TABLE>
111<P>
112Clipping rectangles are passed as an array. Each clip consists of the following
113fields available to the user.
114<P>
115<TABLE>
116<TR><TD><b>x</b></TD><TD>X co-ordinate of rectangle to skip</TD>
117<TR><TD><b>y</b></TD><TD>Y co-ordinate of rectangle to skip</TD>
118<TR><TD><b>width</b></TD><TD>Width of rectangle to skip</TD>
119<TR><TD><b>height</b></TD><TD>Height of rectangle to skip</TD>
120</TABLE>
121<P>
122Merely setting the window does not enable capturing. Overlay capturing
123(i.e. PCI-PCI transfer to the frame buffer of the video card)
124is activated by passing the <b>VIDIOCCAPTURE</b> ioctl a value of 1, and
125disabled by passing it a value of 0.
126<P>
127Some capture devices can capture a subfield of the image they actually see.
128This is indicated when VIDEO_TYPE_SUBCAPTURE is defined.
129The video_capture describes the time and special subfields to capture.
130The video_capture structure contains the following fields.
131<P>
132<TABLE>
133<TR><TD><b>x</b></TD><TD>X co-ordinate of source rectangle to grab</TD>
134<TR><TD><b>y</b></TD><TD>Y co-ordinate of source rectangle to grab</TD>
135<TR><TD><b>width</b></TD><TD>Width of source rectangle to grab</TD>
136<TR><TD><b>height</b></TD><TD>Height of source rectangle to grab</TD>
137<TR><TD><b>decimation</b></TD><TD>Decimation to apply</TD>
138<TR><TD><b>flags</b></TD><TD>Flag settings for grabbing</TD>
139</TABLE>
140The available flags are
141<P>
142<TABLE>
143<TR><TH>Name</TH><TH>Description</TH>
144<TR><TD><b>VIDEO_CAPTURE_ODD</b><TD>Capture only odd frames</TD>
145<TR><TD><b>VIDEO_CAPTURE_EVEN</b><TD>Capture only even frames</TD>
146</TABLE>
147<P>
148<H3>Video Sources</H3>
149Each video4linux video or audio device captures from one or more
150source <b>channels</b>. Each channel can be queries with the
151<b>VDIOCGCHAN</b> ioctl call. Before invoking this function the caller
152must set the channel field to the channel that is being queried. On return
153the <b>struct video_channel</b> is filled in with information about the
154nature of the channel itself.
155<P>
156The <b>VIDIOCSCHAN</b> ioctl takes an integer argument and switches the
157capture to this input. It is not defined whether parameters such as colour
158settings or tuning are maintained across a channel switch. The caller should
159maintain settings as desired for each channel. (This is reasonable as
160different video inputs may have different properties).
161<P>
162The <b>struct video_channel</b> consists of the following
163<P>
164<TABLE>
165<TR><TD><b>channel</b></TD><TD>The channel number</TD>
166<TR><TD><b>name</b></TD><TD>The input name - preferably reflecting the label
167on the card input itself</TD>
168<TR><TD><b>tuners</b></TD><TD>Number of tuners for this input</TD>
169<TR><TD><b>flags</b></TD><TD>Properties the tuner has</TD>
170<TR><TD><b>type</b></TD><TD>Input type (if known)</TD>
171<TR><TD><b>norm</b><TD>The norm for this channel</TD>
172</TABLE>
173<P>
174The flags defined are
175<P>
176<TABLE>
177<TR><TD><b>VIDEO_VC_TUNER</b><TD>Channel has tuners.</TD>
178<TR><TD><b>VIDEO_VC_AUDIO</b><TD>Channel has audio.</TD>
179<TR><TD><b>VIDEO_VC_NORM</b><TD>Channel has norm setting.</TD>
180</TABLE>
181<P>
182The types defined are
183<P>
184<TABLE>
185<TR><TD><b>VIDEO_TYPE_TV</b><TD>The input is a TV input.</TD>
186<TR><TD><b>VIDEO_TYPE_CAMERA</b><TD>The input is a camera.</TD>
187</TABLE>
188<P>
189<H3>Image Properties</H3>
190The image properties of the picture can be queried with the <b>VIDIOCGPICT</b>
191ioctl which fills in a <b>struct video_picture</b>. The <b>VIDIOCSPICT</b>
192ioctl allows values to be changed. All values except for the palette type
193are scaled between 0-65535.
194<P>
195The <b>struct video_picture</b> consists of the following fields
196<P>
197<TABLE>
198<TR><TD><b>brightness</b><TD>Picture brightness</TD>
199<TR><TD><b>hue</b><TD>Picture hue (colour only)</TD>
200<TR><TD><b>colour</b><TD>Picture colour (colour only)</TD>
201<TR><TD><b>contrast</b><TD>Picture contrast</TD>
202<TR><TD><b>whiteness</b><TD>The whiteness (greyscale only)</TD>
203<TR><TD><b>depth</b><TD>The capture depth (may need to match the frame buffer depth)</TD>
204<TR><TD><b>palette</b><TD>Reports the palette that should be used for this image</TD>
205</TABLE>
206<P>
207The following palettes are defined
208<P>
209<TABLE>
210<TR><TD><b>VIDEO_PALETTE_GREY</b><TD>Linear intensity grey scale (255 is brightest).</TD>
211<TR><TD><b>VIDEO_PALETTE_HI240</b><TD>The BT848 8bit colour cube.</TD>
212<TR><TD><b>VIDEO_PALETTE_RGB565</b><TD>RGB565 packed into 16 bit words.</TD>
213<TR><TD><b>VIDEO_PALETTE_RGB555</b><TD>RGV555 packed into 16 bit words, top bit undefined.</TD>
214<TR><TD><b>VIDEO_PALETTE_RGB24</b><TD>RGB888 packed into 24bit words.</TD>
215<TR><TD><b>VIDEO_PALETTE_RGB32</b><TD>RGB888 packed into the low 3 bytes of 32bit words. The top 8bits are undefined.</TD>
216<TR><TD><b>VIDEO_PALETTE_YUV422</b><TD>Video style YUV422 - 8bits packed 4bits Y 2bits U 2bits V</TD>
217<TR><TD><b>VIDEO_PALETTE_YUYV</b><TD>Describe me</TD>
218<TR><TD><b>VIDEO_PALETTE_UYVY</b><TD>Describe me</TD>
219<TR><TD><b>VIDEO_PALETTE_YUV420</b><TD>YUV420 capture</TD>
220<TR><TD><b>VIDEO_PALETTE_YUV411</b><TD>YUV411 capture</TD>
221<TR><TD><b>VIDEO_PALETTE_RAW</b><TD>RAW capture (BT848)</TD>
222<TR><TD><b>VIDEO_PALETTE_YUV422P</b><TD>YUV 4:2:2 Planar</TD>
223<TR><TD><b>VIDEO_PALETTE_YUV411P</b><TD>YUV 4:1:1 Planar</TD>
224</TABLE>
225<P>
226<H3>Tuning</H3>
227Each video input channel can have one or more tuners associated with it. Many
228devices will not have tuners. TV cards and radio cards will have one or more
229tuners attached.
230<P>
231Tuners are described by a <b>struct video_tuner</b> which can be obtained by
232the <b>VIDIOCGTUNER</b> ioctl. Fill in the tuner number in the structure
233then pass the structure to the ioctl to have the data filled in. The
234tuner can be switched using <b>VIDIOCSTUNER</b> which takes an integer argument
235giving the tuner to use. A struct tuner has the following fields
236<P>
237<TABLE>
238<TR><TD><b>tuner</b><TD>Number of the tuner</TD>
239<TR><TD><b>name</b><TD>Canonical name for this tuner (eg FM/AM/TV)</TD>
240<TR><TD><b>rangelow</b><TD>Lowest tunable frequency</TD>
241<TR><TD><b>rangehigh</b><TD>Highest tunable frequency</TD>
242<TR><TD><b>flags</b><TD>Flags describing the tuner</TD>
243<TR><TD><b>mode</b><TD>The video signal mode if relevant</TD>
244<TR><TD><b>signal</b><TD>Signal strength if known - between 0-65535</TD>
245</TABLE>
246<P>
247The following flags exist
248<P>
249<TABLE>
250<TR><TD><b>VIDEO_TUNER_PAL</b><TD>PAL tuning is supported</TD>
251<TR><TD><b>VIDEO_TUNER_NTSC</b><TD>NTSC tuning is supported</TD>
252<TR><TD><b>VIDEO_TUNER_SECAM</b><TD>SECAM tuning is supported</TD>
253<TR><TD><b>VIDEO_TUNER_LOW</b><TD>Frequency is in a lower range</TD>
254<TR><TD><b>VIDEO_TUNER_NORM</b><TD>The norm for this tuner is settable</TD>
255<TR><TD><b>VIDEO_TUNER_STEREO_ON</b><TD>The tuner is seeing stereo audio</TD>
256<TR><TD><b>VIDEO_TUNER_RDS_ON</b><TD>The tuner is seeing a RDS datastream</TD>
257<TR><TD><b>VIDEO_TUNER_MBS_ON</b><TD>The tuner is seeing a MBS datastream</TD>
258</TABLE>
259<P>
260The following modes are defined
261<P>
262<TABLE>
263<TR><TD><b>VIDEO_MODE_PAL</b><TD>The tuner is in PAL mode</TD>
264<TR><TD><b>VIDEO_MODE_NTSC</b><TD>The tuner is in NTSC mode</TD>
265<TR><TD><b>VIDEO_MODE_SECAM</b><TD>The tuner is in SECAM mode</TD>
266<TR><TD><b>VIDEO_MODE_AUTO</b><TD>The tuner auto switches, or mode does not apply</TD>
267</TABLE>
268<P>
269Tuning frequencies are an unsigned 32bit value in 1/16th MHz or if the
270<b>VIDEO_TUNER_LOW</b> flag is set they are in 1/16th KHz. The current
271frequency is obtained as an unsigned long via the <b>VIDIOCGFREQ</b> ioctl and
272set by the <b>VIDIOCSFREQ</b> ioctl.
273<P>
274<H3>Audio</H3>
275TV and Radio devices have one or more audio inputs that may be selected.
276The audio properties are queried by passing a <b>struct video_audio</b> to <b>VIDIOCGAUDIO</b> ioctl. The
277<b>VIDIOCSAUDIO</b> ioctl sets audio properties.
278<P>
279The structure contains the following fields
280<P>
281<TABLE>
282<TR><TD><b>audio</b><TD>The channel number</TD>
283<TR><TD><b>volume</b><TD>The volume level</TD>
284<TR><TD><b>bass</b><TD>The bass level</TD>
285<TR><TD><b>treble</b><TD>The treble level</TD>
286<TR><TD><b>flags</b><TD>Flags describing the audio channel</TD>
287<TR><TD><b>name</b><TD>Canonical name for the audio input</TD>
288<TR><TD><b>mode</b><TD>The mode the audio input is in</TD>
289<TR><TD><b>balance</b><TD>The left/right balance</TD>
290<TR><TD><b>step</b><TD>Actual step used by the hardware</TD>
291</TABLE>
292<P>
293The following flags are defined
294<P>
295<TABLE>
296<TR><TD><b>VIDEO_AUDIO_MUTE</b><TD>The audio is muted</TD>
297<TR><TD><b>VIDEO_AUDIO_MUTABLE</b><TD>Audio muting is supported</TD>
298<TR><TD><b>VIDEO_AUDIO_VOLUME</b><TD>The volume is controllable</TD>
299<TR><TD><b>VIDEO_AUDIO_BASS</b><TD>The bass is controllable</TD>
300<TR><TD><b>VIDEO_AUDIO_TREBLE</b><TD>The treble is controllable</TD>
301<TR><TD><b>VIDEO_AUDIO_BALANCE</b><TD>The balance is controllable</TD>
302</TABLE>
303<P>
304The following decoding modes are defined
305<P>
306<TABLE>
307<TR><TD><b>VIDEO_SOUND_MONO</b><TD>Mono signal</TD>
308<TR><TD><b>VIDEO_SOUND_STEREO</b><TD>Stereo signal (NICAM for TV)</TD>
309<TR><TD><b>VIDEO_SOUND_LANG1</b><TD>European TV alternate language 1</TD>
310<TR><TD><b>VIDEO_SOUND_LANG2</b><TD>European TV alternate language 2</TD>
311</TABLE>
312<P>
313<H3>Reading Images</H3>
314Each call to the <b>read</b> syscall returns the next available image
315from the device. It is up to the caller to set format and size (using
316the VIDIOCSPICT and VIDIOCSWIN ioctls) and then to pass a suitable
317size buffer and length to the function. Not all devices will support
318read operations.
319<P>
320A second way to handle image capture is via the mmap interface if supported.
321To use the mmap interface a user first sets the desired image size and depth
322properties. Next the VIDIOCGMBUF ioctl is issued. This reports the size
323of buffer to mmap and the offset within the buffer for each frame. The
324number of frames supported is device dependent and may only be one.
325<P>
326The video_mbuf structure contains the following fields
327<P>
328<TABLE>
329<TR><TD><b>size</b><TD>The number of bytes to map</TD>
330<TR><TD><b>frames</b><TD>The number of frames</TD>
331<TR><TD><b>offsets</b><TD>The offset of each frame</TD>
332</TABLE>
333<P>
334Once the mmap has been made the VIDIOCMCAPTURE ioctl starts the
335capture to a frame using the format and image size specified in the
336video_mmap (which should match or be below the initial query size).
337When the VIDIOCMCAPTURE ioctl returns the frame is <em>not</em>
338captured yet, the driver just instructed the hardware to start the
339capture. The application has to use the VIDIOCSYNC ioctl to wait
340until the capture of a frame is finished. VIDIOCSYNC takes the frame
341number you want to wait for as argument.
342<p>
343It is allowed to call VIDIOCMCAPTURE multiple times (with different
344frame numbers in video_mmap->frame of course) and thus have multiple
345outstanding capture requests. A simple way do to double-buffering
346using this feature looks like this:
347<pre>
348/* setup everything */
349VIDIOCMCAPTURE(0)
350while (whatever) {
351 VIDIOCMCAPTURE(1)
352 VIDIOCSYNC(0)
353 /* process frame 0 while the hardware captures frame 1 */
354 VIDIOCMCAPTURE(0)
355 VIDIOCSYNC(1)
356 /* process frame 1 while the hardware captures frame 0 */
357}
358</pre>
359Note that you are <em>not</em> limited to only two frames. The API
360allows up to 32 frames, the VIDIOCGMBUF ioctl returns the number of
361frames the driver granted. Thus it is possible to build deeper queues
362to avoid loosing frames on load peaks.
363<p>
364While capturing to memory the driver will make a "best effort" attempt
365to capture to screen as well if requested. This normally means all
366frames that "miss" memory mapped capture will go to the display.
367<P>
368A final ioctl exists to allow a device to obtain related devices if a
369driver has multiple components (for example video0 may not be associated
370with vbi0 which would cause an intercast display program to make a bad
371mistake). The VIDIOCGUNIT ioctl reports the unit numbers of the associated
372devices if any exist. The video_unit structure has the following fields.
373<P>
374<TABLE>
375<TR><TD><b>video</b><TD>Video capture device</TD>
376<TR><TD><b>vbi</b><TD>VBI capture device</TD>
377<TR><TD><b>radio</b><TD>Radio device</TD>
378<TR><TD><b>audio</b><TD>Audio mixer</TD>
379<TR><TD><b>teletext</b><TD>Teletext device</TD>
380</TABLE>
381<P>
382<H3>RDS Datastreams</H3>
383For radio devices that support it, it is possible to receive Radio Data
384System (RDS) data by means of a read() on the device. The data is packed in
385groups of three, as follows:
386<TABLE>
387<TR><TD>First Octet</TD><TD>Least Significant Byte of RDS Block</TD></TR>
388<TR><TD>Second Octet</TD><TD>Most Significant Byte of RDS Block
389<TR><TD>Third Octet</TD><TD>Bit 7:</TD><TD>Error bit. Indicates that
390an uncorrectable error occurred during reception of this block.</TD></TR>
391<TR><TD>&nbsp;</TD><TD>Bit 6:</TD><TD>Corrected bit. Indicates that
392an error was corrected for this data block.</TD></TR>
393<TR><TD>&nbsp;</TD><TD>Bits 5-3:</TD><TD>Received Offset. Indicates the
394offset received by the sync system.</TD></TR>
395<TR><TD>&nbsp;</TD><TD>Bits 2-0:</TD><TD>Offset Name. Indicates the
396offset applied to this data.</TD></TR>
397</TABLE>
398</BODY>
399</HTML>
diff --git a/Documentation/video4linux/CARDLIST.bttv b/Documentation/video4linux/CARDLIST.bttv
index aeeafec0594..62a12a08e2a 100644
--- a/Documentation/video4linux/CARDLIST.bttv
+++ b/Documentation/video4linux/CARDLIST.bttv
@@ -1,4 +1,4 @@
1card=0 - *** UNKNOWN/GENERIC *** 1card=0 - *** UNKNOWN/GENERIC ***
2card=1 - MIRO PCTV 2card=1 - MIRO PCTV
3card=2 - Hauppauge (bt848) 3card=2 - Hauppauge (bt848)
4card=3 - STB, Gateway P/N 6000699 (bt848) 4card=3 - STB, Gateway P/N 6000699 (bt848)
diff --git a/Documentation/video4linux/CARDLIST.cx88 b/Documentation/video4linux/CARDLIST.cx88
index 216f705495c..6d44958289d 100644
--- a/Documentation/video4linux/CARDLIST.cx88
+++ b/Documentation/video4linux/CARDLIST.cx88
@@ -13,17 +13,19 @@ card=11 - Prolink PlayTV PVR
13card=12 - ASUS PVR-416 13card=12 - ASUS PVR-416
14card=13 - MSI TV-@nywhere 14card=13 - MSI TV-@nywhere
15card=14 - KWorld/VStream XPert DVB-T 15card=14 - KWorld/VStream XPert DVB-T
16card=15 - DVICO FusionHDTV DVB-T1 16card=15 - DViCO FusionHDTV DVB-T1
17card=16 - KWorld LTV883RF 17card=16 - KWorld LTV883RF
18card=17 - DViCO - FusionHDTV 3 Gold 18card=17 - DViCO FusionHDTV 3 Gold-Q
19card=18 - Hauppauge Nova-T DVB-T 19card=18 - Hauppauge Nova-T DVB-T
20card=19 - Conexant DVB-T reference design 20card=19 - Conexant DVB-T reference design
21card=20 - Provideo PV259 21card=20 - Provideo PV259
22card=21 - DVICO FusionHDTV DVB-T Plus 22card=21 - DViCO FusionHDTV DVB-T Plus
23card=22 - digitalnow DNTV Live! DVB-T 23card=22 - digitalnow DNTV Live! DVB-T
24card=23 - pcHDTV HD3000 HDTV 24card=23 - pcHDTV HD3000 HDTV
25card=24 - Hauppauge WinTV 28xxx (Roslyn) models 25card=24 - Hauppauge WinTV 28xxx (Roslyn) models
26card=25 - Digital-Logic MICROSPACE Entertainment Center (MEC) 26card=25 - Digital-Logic MICROSPACE Entertainment Center (MEC)
27card=26 - IODATA GV/BCTV7E 27card=26 - IODATA GV/BCTV7E
28card=27 - PixelView PlayTV Ultra Pro (Stereo) 28card=27 - PixelView PlayTV Ultra Pro (Stereo)
29card=28 - DViCO - FusionHDTV 3 Gold-T 29card=28 - DViCO FusionHDTV 3 Gold-T
30card=29 - ADS Tech Instant TV DVB-T PCI
31card=30 - TerraTec Cinergy 1400 DVB-T
diff --git a/Documentation/video4linux/CARDLIST.saa7134 b/Documentation/video4linux/CARDLIST.saa7134
index d5ed95d2850..1b5a3a9ffbe 100644
--- a/Documentation/video4linux/CARDLIST.saa7134
+++ b/Documentation/video4linux/CARDLIST.saa7134
@@ -1,10 +1,10 @@
1 0 -> UNKNOWN/GENERIC 1 0 -> UNKNOWN/GENERIC
2 1 -> Proteus Pro [philips reference design] [1131:2001,1131:2001] 2 1 -> Proteus Pro [philips reference design] [1131:2001,1131:2001]
3 2 -> LifeView FlyVIDEO3000 [5168:0138,4e42:0138] 3 2 -> LifeView FlyVIDEO3000 [5168:0138,4e42:0138]
4 3 -> LifeView FlyVIDEO2000 [5168:0138] 4 3 -> LifeView FlyVIDEO2000 [5168:0138]
5 4 -> EMPRESS [1131:6752] 5 4 -> EMPRESS [1131:6752]
6 5 -> SKNet Monster TV [1131:4e85] 6 5 -> SKNet Monster TV [1131:4e85]
7 6 -> Tevion MD 9717 7 6 -> Tevion MD 9717
8 7 -> KNC One TV-Station RDS / Typhoon TV Tuner RDS [1131:fe01,1894:fe01] 8 7 -> KNC One TV-Station RDS / Typhoon TV Tuner RDS [1131:fe01,1894:fe01]
9 8 -> Terratec Cinergy 400 TV [153B:1142] 9 8 -> Terratec Cinergy 400 TV [153B:1142]
10 9 -> Medion 5044 10 9 -> Medion 5044
@@ -34,6 +34,7 @@
34 33 -> AVerMedia DVD EZMaker [1461:10ff] 34 33 -> AVerMedia DVD EZMaker [1461:10ff]
35 34 -> Noval Prime TV 7133 35 34 -> Noval Prime TV 7133
36 35 -> AverMedia AverTV Studio 305 [1461:2115] 36 35 -> AverMedia AverTV Studio 305 [1461:2115]
37 36 -> UPMOST PURPLE TV [12ab:0800]
37 37 -> Items MuchTV Plus / IT-005 38 37 -> Items MuchTV Plus / IT-005
38 38 -> Terratec Cinergy 200 TV [153B:1152] 39 38 -> Terratec Cinergy 200 TV [153B:1152]
39 39 -> LifeView FlyTV Platinum Mini [5168:0212] 40 39 -> LifeView FlyTV Platinum Mini [5168:0212]
@@ -43,14 +44,21 @@
43 43 -> :Zolid Xpert TV7134 44 43 -> :Zolid Xpert TV7134
44 44 -> Empire PCI TV-Radio LE 45 44 -> Empire PCI TV-Radio LE
45 45 -> Avermedia AVerTV Studio 307 [1461:9715] 46 45 -> Avermedia AVerTV Studio 307 [1461:9715]
46 46 -> AVerMedia Cardbus TV/Radio [1461:d6ee] 47 46 -> AVerMedia Cardbus TV/Radio (E500) [1461:d6ee]
47 47 -> Terratec Cinergy 400 mobile [153b:1162] 48 47 -> Terratec Cinergy 400 mobile [153b:1162]
48 48 -> Terratec Cinergy 600 TV MK3 [153B:1158] 49 48 -> Terratec Cinergy 600 TV MK3 [153B:1158]
49 49 -> Compro VideoMate Gold+ Pal [185b:c200] 50 49 -> Compro VideoMate Gold+ Pal [185b:c200]
50 50 -> Pinnacle PCTV 300i DVB-T + PAL [11bd:002d] 51 50 -> Pinnacle PCTV 300i DVB-T + PAL [11bd:002d]
51 51 -> ProVideo PV952 [1540:9524] 52 51 -> ProVideo PV952 [1540:9524]
52 52 -> AverMedia AverTV/305 [1461:2108] 53 52 -> AverMedia AverTV/305 [1461:2108]
54 53 -> ASUS TV-FM 7135 [1043:4845]
53 54 -> LifeView FlyTV Platinum FM [5168:0214,1489:0214] 55 54 -> LifeView FlyTV Platinum FM [5168:0214,1489:0214]
54 55 -> LifeView FlyDVB-T DUO [5168:0306] 56 55 -> LifeView FlyDVB-T DUO [5168:0502,5168:0306]
55 56 -> Avermedia AVerTV 307 [1461:a70a] 57 56 -> Avermedia AVerTV 307 [1461:a70a]
56 57 -> Avermedia AVerTV GO 007 FM [1461:f31f] 58 57 -> Avermedia AVerTV GO 007 FM [1461:f31f]
59 58 -> ADS Tech Instant TV (saa7135) [1421:0350,1421:0370]
60 59 -> Kworld/Tevion V-Stream Xpert TV PVR7134
61 60 -> Typhoon DVB-T Duo Digital/Analog Cardbus [4e42:0502]
62 61 -> Philips TOUGH DVB-T reference design [1131:2004]
63 62 -> Compro VideoMate TV Gold+II
64 63 -> Kworld Xpert TV PVR7134
diff --git a/Documentation/video4linux/CARDLIST.tuner b/Documentation/video4linux/CARDLIST.tuner
index aeb8df8ce89..d1b9d21ffd8 100644
--- a/Documentation/video4linux/CARDLIST.tuner
+++ b/Documentation/video4linux/CARDLIST.tuner
@@ -56,6 +56,9 @@ tuner=54 - tda8290+75
56tuner=55 - LG PAL (TAPE series) 56tuner=55 - LG PAL (TAPE series)
57tuner=56 - Philips PAL/SECAM multi (FQ1216AME MK4) 57tuner=56 - Philips PAL/SECAM multi (FQ1216AME MK4)
58tuner=57 - Philips FQ1236A MK4 58tuner=57 - Philips FQ1236A MK4
59tuner=58 - Ymec TVision TVF-8531MF 59tuner=58 - Ymec TVision TVF-8531MF/8831MF/8731MF
60tuner=59 - Ymec TVision TVF-5533MF 60tuner=59 - Ymec TVision TVF-5533MF
61tuner=60 - Thomson DDT 7611 (ATSC/NTSC) 61tuner=60 - Thomson DDT 7611 (ATSC/NTSC)
62tuner=61 - Tena TNF9533-D/IF/TNF9533-B/DF
63tuner=62 - Philips TEA5767HN FM Radio
64tuner=63 - Philips FMD1216ME MK3 Hybrid Tuner
diff --git a/Documentation/video4linux/README.saa7134 b/Documentation/video4linux/README.saa7134
index 1a446c65365..1f788e498ef 100644
--- a/Documentation/video4linux/README.saa7134
+++ b/Documentation/video4linux/README.saa7134
@@ -57,6 +57,15 @@ Cards can use either of these two crystals (xtal):
57 - 24.576MHz -> .audio_clock=0x200000 57 - 24.576MHz -> .audio_clock=0x200000
58(xtal * .audio_clock = 51539600) 58(xtal * .audio_clock = 51539600)
59 59
60Some details about 30/34/35:
61
62 - saa7130 - low-price chip, doesn't have mute, that is why all those
63 cards should have .mute field defined in their tuner structure.
64
65 - saa7134 - usual chip
66
67 - saa7133/35 - saa7135 is probably a marketing decision, since all those
68 chips identifies itself as 33 on pci.
60 69
61Credits 70Credits
62======= 71=======
diff --git a/Documentation/video4linux/bttv/Cards b/Documentation/video4linux/bttv/Cards
index 7f8c7eb70ab..8f1941ede4d 100644
--- a/Documentation/video4linux/bttv/Cards
+++ b/Documentation/video4linux/bttv/Cards
@@ -20,7 +20,7 @@ All other cards only differ by additional components as tuners, sound
20decoders, EEPROMs, teletext decoders ... 20decoders, EEPROMs, teletext decoders ...
21 21
22 22
23Unsupported Cards: 23Unsupported Cards:
24------------------ 24------------------
25 25
26Cards with Zoran (ZR) or Philips (SAA) or ISA are not supported by 26Cards with Zoran (ZR) or Philips (SAA) or ISA are not supported by
@@ -50,11 +50,11 @@ Bt848a/Bt849 single crytal operation support possible!!!
50Miro/Pinnacle PCTV 50Miro/Pinnacle PCTV
51------------------ 51------------------
52 52
53- Bt848 53- Bt848
54 some (all??) come with 2 crystals for PAL/SECAM and NTSC 54 some (all??) come with 2 crystals for PAL/SECAM and NTSC
55- PAL, SECAM or NTSC TV tuner (Philips or TEMIC) 55- PAL, SECAM or NTSC TV tuner (Philips or TEMIC)
56- MSP34xx sound decoder on add on board 56- MSP34xx sound decoder on add on board
57 decoder is supported but AFAIK does not yet work 57 decoder is supported but AFAIK does not yet work
58 (other sound MUX setting in GPIO port needed??? somebody who fixed this???) 58 (other sound MUX setting in GPIO port needed??? somebody who fixed this???)
59- 1 tuner, 1 composite and 1 S-VHS input 59- 1 tuner, 1 composite and 1 S-VHS input
60- tuner type is autodetected 60- tuner type is autodetected
@@ -70,7 +70,7 @@ in 1997!
70Hauppauge Win/TV pci 70Hauppauge Win/TV pci
71-------------------- 71--------------------
72 72
73There are many different versions of the Hauppauge cards with different 73There are many different versions of the Hauppauge cards with different
74tuners (TV+Radio ...), teletext decoders. 74tuners (TV+Radio ...), teletext decoders.
75Note that even cards with same model numbers have (depending on the revision) 75Note that even cards with same model numbers have (depending on the revision)
76different chips on it. 76different chips on it.
@@ -80,22 +80,22 @@ different chips on it.
80- PAL, SECAM, NTSC or tuner with or without Radio support 80- PAL, SECAM, NTSC or tuner with or without Radio support
81 81
82e.g.: 82e.g.:
83 PAL: 83 PAL:
84 TDA5737: VHF, hyperband and UHF mixer/oscillator for TV and VCR 3-band tuners 84 TDA5737: VHF, hyperband and UHF mixer/oscillator for TV and VCR 3-band tuners
85 TSA5522: 1.4 GHz I2C-bus controlled synthesizer, I2C 0xc2-0xc3 85 TSA5522: 1.4 GHz I2C-bus controlled synthesizer, I2C 0xc2-0xc3
86 86
87 NTSC: 87 NTSC:
88 TDA5731: VHF, hyperband and UHF mixer/oscillator for TV and VCR 3-band tuners 88 TDA5731: VHF, hyperband and UHF mixer/oscillator for TV and VCR 3-band tuners
89 TSA5518: no datasheet available on Philips site 89 TSA5518: no datasheet available on Philips site
90- Philips SAA5246 or SAA5284 ( or no) Teletext decoder chip 90- Philips SAA5246 or SAA5284 ( or no) Teletext decoder chip
91 with buffer RAM (e.g. Winbond W24257AS-35: 32Kx8 CMOS static RAM) 91 with buffer RAM (e.g. Winbond W24257AS-35: 32Kx8 CMOS static RAM)
92 SAA5246 (I2C 0x22) is supported 92 SAA5246 (I2C 0x22) is supported
93- 256 bytes EEPROM: Microchip 24LC02B or Philips 8582E2Y 93- 256 bytes EEPROM: Microchip 24LC02B or Philips 8582E2Y
94 with configuration information 94 with configuration information
95 I2C address 0xa0 (24LC02B also responds to 0xa2-0xaf) 95 I2C address 0xa0 (24LC02B also responds to 0xa2-0xaf)
96- 1 tuner, 1 composite and (depending on model) 1 S-VHS input 96- 1 tuner, 1 composite and (depending on model) 1 S-VHS input
97- 14052B: mux for selection of sound source 97- 14052B: mux for selection of sound source
98- sound decoder: TDA9800, MSP34xx (stereo cards) 98- sound decoder: TDA9800, MSP34xx (stereo cards)
99 99
100 100
101Askey CPH-Series 101Askey CPH-Series
@@ -108,17 +108,17 @@ Developed by TelSignal(?), OEMed by many vendors (Typhoon, Anubis, Dynalink)
108 CPH05x: BT878 with FM 108 CPH05x: BT878 with FM
109 CPH06x: BT878 (w/o FM) 109 CPH06x: BT878 (w/o FM)
110 CPH07x: BT878 capture only 110 CPH07x: BT878 capture only
111 111
112 TV standards: 112 TV standards:
113 CPH0x0: NTSC-M/M 113 CPH0x0: NTSC-M/M
114 CPH0x1: PAL-B/G 114 CPH0x1: PAL-B/G
115 CPH0x2: PAL-I/I 115 CPH0x2: PAL-I/I
116 CPH0x3: PAL-D/K 116 CPH0x3: PAL-D/K
117 CPH0x4: SECAM-L/L 117 CPH0x4: SECAM-L/L
118 CPH0x5: SECAM-B/G 118 CPH0x5: SECAM-B/G
119 CPH0x6: SECAM-D/K 119 CPH0x6: SECAM-D/K
120 CPH0x7: PAL-N/N 120 CPH0x7: PAL-N/N
121 CPH0x8: PAL-B/H 121 CPH0x8: PAL-B/H
122 CPH0x9: PAL-M/M 122 CPH0x9: PAL-M/M
123 123
124 CPH03x was often sold as "TV capturer". 124 CPH03x was often sold as "TV capturer".
@@ -174,7 +174,7 @@ Lifeview Flyvideo Series:
174 "The FlyVideo2000 and FlyVideo2000s product name have renamed to FlyVideo98." 174 "The FlyVideo2000 and FlyVideo2000s product name have renamed to FlyVideo98."
175 Their Bt8x8 cards are listed as discontinued. 175 Their Bt8x8 cards are listed as discontinued.
176 Flyvideo 2000S was probably sold as Flyvideo 3000 in some contries(Europe?). 176 Flyvideo 2000S was probably sold as Flyvideo 3000 in some contries(Europe?).
177 The new Flyvideo 2000/3000 are SAA7130/SAA7134 based. 177 The new Flyvideo 2000/3000 are SAA7130/SAA7134 based.
178 178
179 "Flyvideo II" had been the name for the 848 cards, nowadays (in Germany) 179 "Flyvideo II" had been the name for the 848 cards, nowadays (in Germany)
180 this name is re-used for LR50 Rev.W. 180 this name is re-used for LR50 Rev.W.
@@ -235,12 +235,12 @@ Prolink
235 Multimedia TV packages (card + software pack): 235 Multimedia TV packages (card + software pack):
236 PixelView Play TV Theater - (Model: PV-M4200) = PixelView Play TV pro + Software 236 PixelView Play TV Theater - (Model: PV-M4200) = PixelView Play TV pro + Software
237 PixelView Play TV PAK - (Model: PV-BT878P+ REV 4E) 237 PixelView Play TV PAK - (Model: PV-BT878P+ REV 4E)
238 PixelView Play TV/VCR - (Model: PV-M3200 REV 4C / 8D / 10A ) 238 PixelView Play TV/VCR - (Model: PV-M3200 REV 4C / 8D / 10A )
239 PixelView Studio PAK - (Model: M2200 REV 4C / 8D / 10A ) 239 PixelView Studio PAK - (Model: M2200 REV 4C / 8D / 10A )
240 PixelView PowerStudio PAK - (Model: PV-M3600 REV 4E) 240 PixelView PowerStudio PAK - (Model: PV-M3600 REV 4E)
241 PixelView DigitalVCR PAK - (Model: PV-M2400 REV 4C / 8D / 10A ) 241 PixelView DigitalVCR PAK - (Model: PV-M2400 REV 4C / 8D / 10A )
242 242
243 PixelView PlayTV PAK II (TV/FM card + usb camera) PV-M3800 243 PixelView PlayTV PAK II (TV/FM card + usb camera) PV-M3800
244 PixelView PlayTV XP PV-M4700,PV-M4700(w/FM) 244 PixelView PlayTV XP PV-M4700,PV-M4700(w/FM)
245 PixelView PlayTV DVR PV-M4600 package contents:PixelView PlayTV pro, windvr & videoMail s/w 245 PixelView PlayTV DVR PV-M4600 package contents:PixelView PlayTV pro, windvr & videoMail s/w
246 246
@@ -254,7 +254,7 @@ Prolink
254 254
255 DTV3000 PV-DTV3000P+ DVB-S CI = Twinhan VP-1030 255 DTV3000 PV-DTV3000P+ DVB-S CI = Twinhan VP-1030
256 DTV2000 DVB-S = Twinhan VP-1020 256 DTV2000 DVB-S = Twinhan VP-1020
257 257
258 Video Conferencing: 258 Video Conferencing:
259 PixelView Meeting PAK - (Model: PV-BT878P) 259 PixelView Meeting PAK - (Model: PV-BT878P)
260 PixelView Meeting PAK Lite - (Model: PV-BT878P) 260 PixelView Meeting PAK Lite - (Model: PV-BT878P)
@@ -308,7 +308,7 @@ KNC One
308 308
309 newer Cards have saa7134, but model name stayed the same? 309 newer Cards have saa7134, but model name stayed the same?
310 310
311Provideo 311Provideo
312-------- 312--------
313 PV951 or PV-951 (also are sold as: 313 PV951 or PV-951 (also are sold as:
314 Boeder TV-FM Video Capture Card 314 Boeder TV-FM Video Capture Card
@@ -353,7 +353,7 @@ AVerMedia
353 AVerTV 353 AVerTV
354 AVerTV Stereo 354 AVerTV Stereo
355 AVerTV Studio (w/FM) 355 AVerTV Studio (w/FM)
356 AVerMedia TV98 with Remote 356 AVerMedia TV98 with Remote
357 AVerMedia TV/FM98 Stereo 357 AVerMedia TV/FM98 Stereo
358 AVerMedia TVCAM98 358 AVerMedia TVCAM98
359 TVCapture (Bt848) 359 TVCapture (Bt848)
@@ -373,7 +373,7 @@ AVerMedia
373 (1) Daughterboard MB68-A with TDA9820T and TDA9840T 373 (1) Daughterboard MB68-A with TDA9820T and TDA9840T
374 (2) Sony NE41S soldered (stereo sound?) 374 (2) Sony NE41S soldered (stereo sound?)
375 (3) Daughterboard M118-A w/ pic 16c54 and 4 MHz quartz 375 (3) Daughterboard M118-A w/ pic 16c54 and 4 MHz quartz
376 376
377 US site has different drivers for (as of 09/2002): 377 US site has different drivers for (as of 09/2002):
378 EZ Capture/InterCam PCI (BT-848 chip) 378 EZ Capture/InterCam PCI (BT-848 chip)
379 EZ Capture/InterCam PCI (BT-878 chip) 379 EZ Capture/InterCam PCI (BT-878 chip)
@@ -437,7 +437,7 @@ Terratec
437 Terra TValueRadio, "LR102 Rev.C" printed on the PCB 437 Terra TValueRadio, "LR102 Rev.C" printed on the PCB
438 Terra TV/Radio+ Version 1.0, "80-CP2830100-0" TTTV3 printed on the PCB, 438 Terra TV/Radio+ Version 1.0, "80-CP2830100-0" TTTV3 printed on the PCB,
439 "CPH010-E83" on the back, SAA6588T, TDA9873H 439 "CPH010-E83" on the back, SAA6588T, TDA9873H
440 Terra TValue Version BT878, "80-CP2830110-0 TTTV4" printed on the PCB, 440 Terra TValue Version BT878, "80-CP2830110-0 TTTV4" printed on the PCB,
441 "CPH011-D83" on back 441 "CPH011-D83" on back
442 Terra TValue Version 1.0 "ceb105.PCB" (really identical to Terra TV+ Version 1.0) 442 Terra TValue Version 1.0 "ceb105.PCB" (really identical to Terra TV+ Version 1.0)
443 Terra TValue New Revision "LR102 Rec.C" 443 Terra TValue New Revision "LR102 Rec.C"
@@ -528,7 +528,7 @@ Koutech
528 KW-606RSF 528 KW-606RSF
529 KW-607A (capture only) 529 KW-607A (capture only)
530 KW-608 (Zoran capture only) 530 KW-608 (Zoran capture only)
531 531
532IODATA (jp) 532IODATA (jp)
533------ 533------
534 GV-BCTV/PCI 534 GV-BCTV/PCI
@@ -542,15 +542,15 @@ Canopus (jp)
542------- 542-------
543 WinDVR = Kworld "KW-TVL878RF" 543 WinDVR = Kworld "KW-TVL878RF"
544 544
545www.sigmacom.co.kr 545www.sigmacom.co.kr
546------------------ 546------------------
547 Sigma Cyber TV II 547 Sigma Cyber TV II
548 548
549www.sasem.co.kr 549www.sasem.co.kr
550--------------- 550---------------
551 Litte OnAir TV 551 Litte OnAir TV
552 552
553hama 553hama
554---- 554----
555 TV/Radio-Tuner Card, PCI (Model 44677) = CPH051 555 TV/Radio-Tuner Card, PCI (Model 44677) = CPH051
556 556
@@ -638,7 +638,7 @@ Media-Surfer (esc-kathrein.de)
638 638
639Jetway (www.jetway.com.tw) 639Jetway (www.jetway.com.tw)
640-------------------------- 640--------------------------
641 JW-TV 878M 641 JW-TV 878M
642 JW-TV 878 = KWorld KW-TV878RF 642 JW-TV 878 = KWorld KW-TV878RF
643 643
644Galaxis 644Galaxis
@@ -715,7 +715,7 @@ Hauppauge
715 809 MyVideo 715 809 MyVideo
716 872 MyTV2Go FM 716 872 MyTV2Go FM
717 717
718 718
719 546 WinTV Nova-S CI 719 546 WinTV Nova-S CI
720 543 WinTV Nova 720 543 WinTV Nova
721 907 Nova-S USB 721 907 Nova-S USB
@@ -739,7 +739,7 @@ Hauppauge
739 832 MyTV2Go 739 832 MyTV2Go
740 869 MyTV2Go-FM 740 869 MyTV2Go-FM
741 805 MyVideo (USB) 741 805 MyVideo (USB)
742 742
743 743
744Matrix-Vision 744Matrix-Vision
745------------- 745-------------
@@ -764,7 +764,7 @@ Gallant (www.gallantcom.com) www.minton.com.tw
764 Intervision IV-550 (bt8x8) 764 Intervision IV-550 (bt8x8)
765 Intervision IV-100 (zoran) 765 Intervision IV-100 (zoran)
766 Intervision IV-1000 (bt8x8) 766 Intervision IV-1000 (bt8x8)
767 767
768Asonic (www.asonic.com.cn) (website down) 768Asonic (www.asonic.com.cn) (website down)
769----------------------------------------- 769-----------------------------------------
770 SkyEye tv 878 770 SkyEye tv 878
@@ -804,11 +804,11 @@ Kworld (www.kworld.com.tw)
804 804
805JTT/ Justy Corp.http://www.justy.co.jp/ (www.jtt.com.jp website down) 805JTT/ Justy Corp.http://www.justy.co.jp/ (www.jtt.com.jp website down)
806--------------------------------------------------------------------- 806---------------------------------------------------------------------
807 JTT-02 (JTT TV) "TV watchmate pro" (bt848) 807 JTT-02 (JTT TV) "TV watchmate pro" (bt848)
808 808
809ADS www.adstech.com 809ADS www.adstech.com
810------------------- 810-------------------
811 Channel Surfer TV ( CHX-950 ) 811 Channel Surfer TV ( CHX-950 )
812 Channel Surfer TV+FM ( CHX-960FM ) 812 Channel Surfer TV+FM ( CHX-960FM )
813 813
814AVEC www.prochips.com 814AVEC www.prochips.com
@@ -874,7 +874,7 @@ www.ids-imaging.de
874------------------ 874------------------
875 Falcon Series (capture only) 875 Falcon Series (capture only)
876 In USA: http://www.theimagingsource.com/ 876 In USA: http://www.theimagingsource.com/
877 DFG/LC1 877 DFG/LC1
878 878
879www.sknet-web.co.jp 879www.sknet-web.co.jp
880------------------- 880-------------------
@@ -890,7 +890,7 @@ Cybertainment
890 CyberMail Xtreme 890 CyberMail Xtreme
891 These are Flyvideo 891 These are Flyvideo
892 892
893VCR (http://www.vcrinc.com/) 893VCR (http://www.vcrinc.com/)
894--- 894---
895 Video Catcher 16 895 Video Catcher 16
896 896
@@ -920,7 +920,7 @@ Sdisilk www.sdisilk.com/
920 SDI Silk 200 SDI Input Card 920 SDI Silk 200 SDI Input Card
921 921
922www.euresys.com 922www.euresys.com
923 PICOLO series 923 PICOLO series
924 924
925PMC/Pace 925PMC/Pace
926www.pacecom.co.uk website closed 926www.pacecom.co.uk website closed
diff --git a/Documentation/video4linux/not-in-cx2388x-datasheet.txt b/Documentation/video4linux/not-in-cx2388x-datasheet.txt
index 96b638b5ba1..edbfe744d21 100644
--- a/Documentation/video4linux/not-in-cx2388x-datasheet.txt
+++ b/Documentation/video4linux/not-in-cx2388x-datasheet.txt
@@ -34,4 +34,8 @@ MO_OUTPUT_FORMAT (0x310164)
34 2: HACTEXT 34 2: HACTEXT
35 1: HSFMT 35 1: HSFMT
36 36
370x47 is the sync byte for MPEG-2 transport stream packets.
38Datasheet incorrectly states to use 47 decimal. 188 is the length.
39All DVB compliant frontends output packets with this start code.
40
37================================================================================= 41=================================================================================