diff options
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/Changes | 24 | ||||
-rw-r--r-- | Documentation/DocBook/libata.tmpl | 96 | ||||
-rw-r--r-- | Documentation/SubmittingDrivers | 14 | ||||
-rw-r--r-- | Documentation/SubmittingPatches | 59 | ||||
-rw-r--r-- | Documentation/acpi-hotkey.txt | 35 | ||||
-rw-r--r-- | Documentation/block/ioprio.txt | 176 | ||||
-rw-r--r-- | Documentation/cciss.txt | 1 | ||||
-rw-r--r-- | Documentation/dontdiff | 2 | ||||
-rw-r--r-- | Documentation/dvb/README.dvb-usb | 132 | ||||
-rw-r--r-- | Documentation/dvb/bt8xx.txt | 79 | ||||
-rw-r--r-- | Documentation/feature-removal-schedule.txt | 20 | ||||
-rw-r--r-- | Documentation/filesystems/inotify.txt | 151 | ||||
-rw-r--r-- | Documentation/filesystems/ntfs.txt | 29 | ||||
-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/max6875 | 22 | ||||
-rw-r--r-- | Documentation/i2c/dev-interface | 15 | ||||
-rw-r--r-- | Documentation/i2c/writing-clients | 7 | ||||
-rw-r--r-- | Documentation/infiniband/user_verbs.txt | 69 | ||||
-rw-r--r-- | Documentation/kernel-parameters.txt | 22 | ||||
-rw-r--r-- | Documentation/networking/dmfe.txt | 82 | ||||
-rw-r--r-- | Documentation/networking/fib_trie.txt | 145 | ||||
-rw-r--r-- | Documentation/pcmcia/devicetable.txt | 63 | ||||
-rw-r--r-- | Documentation/pcmcia/driver-changes.txt | 58 | ||||
-rw-r--r-- | Documentation/power/video.txt | 1 | ||||
-rw-r--r-- | Documentation/serial/driver | 4 | ||||
-rw-r--r-- | Documentation/usb/sn9c102.txt | 4 | ||||
-rw-r--r-- | Documentation/usb/usbmon.txt | 29 | ||||
-rw-r--r-- | Documentation/video4linux/API.html | 415 | ||||
-rw-r--r-- | Documentation/video4linux/CARDLIST.bttv | 2 | ||||
-rw-r--r-- | Documentation/video4linux/CARDLIST.cx88 | 10 | ||||
-rw-r--r-- | Documentation/video4linux/CARDLIST.saa7134 | 16 | ||||
-rw-r--r-- | Documentation/video4linux/CARDLIST.tuner | 5 | ||||
-rw-r--r-- | Documentation/video4linux/README.saa7134 | 9 | ||||
-rw-r--r-- | Documentation/video4linux/bttv/Cards | 74 | ||||
-rw-r--r-- | Documentation/video4linux/not-in-cx2388x-datasheet.txt | 4 |
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 | ||
45 | Again, keep in mind that this list assumes you are already | 45 | Again, keep in mind that this list assumes you are already |
46 | functionally running a Linux 2.4 kernel. Also, not all tools are | 46 | functionally running a Linux 2.4 kernel. Also, not all tools are |
47 | necessary on all systems; obviously, if you don't have any PCMCIA (PC | 47 | necessary on all systems; obviously, if you don't have any ISDN |
48 | Card) hardware, for example, you probably needn't concern yourself | 48 | hardware, for example, you probably needn't concern yourself with |
49 | with pcmcia-cs. | 49 | isdn4k-utils. |
50 | 50 | ||
51 | o Gnu C 2.95.3 # gcc --version | 51 | o Gnu C 2.95.3 # gcc --version |
52 | o Gnu make 3.79.1 # make --version | 52 | o Gnu make 3.79.1 # make --version |
@@ -57,6 +57,7 @@ o e2fsprogs 1.29 # tune2fs | |||
57 | o jfsutils 1.1.3 # fsck.jfs -V | 57 | o jfsutils 1.1.3 # fsck.jfs -V |
58 | o reiserfsprogs 3.6.3 # reiserfsck -V 2>&1|grep reiserfsprogs | 58 | o reiserfsprogs 3.6.3 # reiserfsck -V 2>&1|grep reiserfsprogs |
59 | o xfsprogs 2.6.0 # xfs_db -V | 59 | o xfsprogs 2.6.0 # xfs_db -V |
60 | o pcmciautils 004 | ||
60 | o pcmcia-cs 3.1.21 # cardmgr -V | 61 | o pcmcia-cs 3.1.21 # cardmgr -V |
61 | o quota-tools 3.09 # quota -V | 62 | o quota-tools 3.09 # quota -V |
62 | o PPP 2.4.0 # pppd --version | 63 | o PPP 2.4.0 # pppd --version |
@@ -186,13 +187,20 @@ architecture independent and any version from 2.0.0 onward should | |||
186 | work correctly with this version of the XFS kernel code (2.6.0 or | 187 | work correctly with this version of the XFS kernel code (2.6.0 or |
187 | later is recommended, due to some significant improvements). | 188 | later is recommended, due to some significant improvements). |
188 | 189 | ||
190 | PCMCIAutils | ||
191 | ----------- | ||
192 | |||
193 | PCMCIAutils replaces pcmcia-cs (see below). It properly sets up | ||
194 | PCMCIA sockets at system startup and loads the appropriate modules | ||
195 | for 16-bit PCMCIA devices if the kernel is modularized and the hotplug | ||
196 | subsystem is used. | ||
189 | 197 | ||
190 | Pcmcia-cs | 198 | Pcmcia-cs |
191 | --------- | 199 | --------- |
192 | 200 | ||
193 | PCMCIA (PC Card) support is now partially implemented in the main | 201 | PCMCIA (PC Card) support is now partially implemented in the main |
194 | kernel source. Pay attention when you recompile your kernel ;-). | 202 | kernel source. The "pcmciautils" package (see above) replaces pcmcia-cs |
195 | Also, be sure to upgrade to the latest pcmcia-cs release. | 203 | for newest kernels. |
196 | 204 | ||
197 | Quota-tools | 205 | Quota-tools |
198 | ----------- | 206 | ----------- |
@@ -349,9 +357,13 @@ Xfsprogs | |||
349 | -------- | 357 | -------- |
350 | o <ftp://oss.sgi.com/projects/xfs/download/> | 358 | o <ftp://oss.sgi.com/projects/xfs/download/> |
351 | 359 | ||
360 | Pcmciautils | ||
361 | ----------- | ||
362 | o <ftp://ftp.kernel.org/pub/linux/utils/kernel/pcmcia/> | ||
363 | |||
352 | Pcmcia-cs | 364 | Pcmcia-cs |
353 | --------- | 365 | --------- |
354 | o <ftp://pcmcia-cs.sourceforge.net/pub/pcmcia-cs/pcmcia-cs-3.1.21.tar.gz> | 366 | o <http://pcmcia-cs.sourceforge.net/> |
355 | 367 | ||
356 | Quota-tools | 368 | Quota-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 | |||
161 | indicating whether or not it is OK to use DMA for the supplied PACKET | 180 | indicating whether or not it is OK to use DMA for the supplied PACKET |
162 | command. | 181 | command. |
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 |
191 | meaning 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. | |||
227 | These hooks are typically either no-ops, or simply not implemented, in | 266 | These hooks are typically either no-ops, or simply not implemented, in |
228 | FIS-based drivers. | 267 | FIS-based drivers. |
229 | </para> | 268 | </para> |
269 | <para> | ||
270 | Most legacy IDE drivers use ata_bmdma_setup() for the bmdma_setup() | ||
271 | hook. ata_bmdma_setup() will write the pointer to the PRD table to | ||
272 | the IDE PRD Table Address register, enable DMA in the DMA Command | ||
273 | register, and call exec_command() to begin the transfer. | ||
274 | </para> | ||
275 | <para> | ||
276 | Most legacy IDE drivers use ata_bmdma_start() for the bmdma_start() | ||
277 | hook. ata_bmdma_start() will write the ATA_DMA_START flag to the DMA | ||
278 | Command register. | ||
279 | </para> | ||
280 | <para> | ||
281 | Many legacy IDE drivers use ata_bmdma_stop() for the bmdma_stop() | ||
282 | hook. ata_bmdma_stop() clears the ATA_DMA_START flag in the DMA | ||
283 | command register. | ||
284 | </para> | ||
285 | <para> | ||
286 | Many 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 |
319 | have completed. The hook must finalize hardware shutdown, release DMA | 408 | have completed. The hook must finalize hardware shutdown, release DMA |
320 | and other resources, etc. | 409 | and 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 | ||
15 | Major and minor numbers for block and character devices are allocated | 15 | Major and minor numbers for block and character devices are allocated |
16 | by the Linux assigned name and number authority (currently better | 16 | by the Linux assigned name and number authority (currently this is |
17 | known as H Peter Anvin). The site is http://www.lanana.org/. This | 17 | Torben Mathiasen). The site is http://www.lanana.org/. This |
18 | also deals with allocating numbers for devices that are not going to | 18 | also deals with allocating numbers for devices that are not going to |
19 | be submitted to the mainstream kernel. | 19 | be submitted to the mainstream kernel. |
20 | See Documentation/devices.txt for more information on this. | ||
20 | 21 | ||
21 | If you don't use assigned numbers then when you device is submitted it will | 22 | If you don't use assigned numbers then when your device is submitted it will |
22 | get given an assigned number even if that is different from values you may | 23 | be given an assigned number even if that is different from values you may |
23 | have shipped to customers before. | 24 | have shipped to customers before. |
24 | 25 | ||
25 | Who To Submit Drivers To | 26 | Who 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 | ||
37 | Linux 2.4: | 39 | Linux 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 | ||
49 | Licensing: The code must be released to us under the | 51 | Licensing: 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 | ||
36 | To create a patch for a single file, it is often sufficient to do: | 36 | To 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", | |||
48 | or unmodified kernel source tree, and generate a diff against your | 48 | or unmodified kernel source tree, and generate a diff against your |
49 | own source tree. For example: | 49 | own 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 |
60 | the build process, and should be ignored in any diff(1)-generated | 59 | the build process, and should be ignored in any diff(1)-generated |
61 | patch. dontdiff is maintained by Tigran Aivazian <tigran@veritas.com> | 60 | patch. The "dontdiff" file is included in the kernel tree in |
61 | 2.6.12 and later. For earlier kernel versions, you can get it | ||
62 | from <http://www.xenotime.net/linux/doc/dontdiff>. | ||
62 | 63 | ||
63 | Make sure your patch does not include any extra files which do not | 64 | Make sure your patch does not include any extra files which do not |
64 | belong in a patch submission. Make sure to review your patch -after- | 65 | belong 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 | ||
67 | If your changes produce a lot of deltas, you may want to look into | 68 | If your changes produce a lot of deltas, you may want to look into |
68 | splitting them into individual patches which modify things in | 69 | splitting them into individual patches which modify things in |
69 | logical stages, this will facilitate easier reviewing by other | 70 | logical stages. This will facilitate easier reviewing by other |
70 | kernel developers, very important if you want your patch accepted. | 71 | kernel developers, very important if you want your patch accepted. |
71 | There are a number of scripts which can aid in this; | 72 | There are a number of scripts which can aid in this: |
72 | 73 | ||
73 | Quilt: | 74 | Quilt: |
74 | http://savannah.nongnu.org/projects/quilt | 75 | http://savannah.nongnu.org/projects/quilt |
75 | 76 | ||
76 | Randy Dunlap's patch scripts: | 77 | Randy Dunlap's patch scripts: |
77 | http://developer.osdl.org/rddunlap/scripts/patching-scripts.tgz | 78 | http://www.xenotime.net/linux/scripts/patching-scripts-002.tar.gz |
78 | 79 | ||
79 | Andrew Morton's patch scripts: | 80 | Andrew Morton's patch scripts: |
80 | http://www.zip.com.au/~akpm/linux/patches/patch-scripts-0.16 | 81 | http://www.zip.com.au/~akpm/linux/patches/patch-scripts-0.20 |
82 | |||
83 | |||
81 | 84 | ||
82 | 2) Describe your changes. | 85 | 2) Describe your changes. |
83 | 86 | ||
@@ -132,21 +135,6 @@ which require discussion or do not have a clear advantage should | |||
132 | usually be sent first to linux-kernel. Only after the patch is | 135 | usually be sent first to linux-kernel. Only after the patch is |
133 | discussed should the patch then be submitted to Linus. | 136 | discussed should the patch then be submitted to Linus. |
134 | 137 | ||
135 | For small patches you may want to CC the Trivial Patch Monkey | ||
136 | trivial@rustcorp.com.au set up by Rusty Russell; which collects "trivial" | ||
137 | patches. 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 | ||
152 | 5) Select your CC (e-mail carbon copy) list. | 140 | 5) 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) |
169 | URL: <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 | |||
306 | point out some special detail about the sign-off. | 296 | point out some special detail about the sign-off. |
307 | 297 | ||
308 | 298 | ||
299 | |||
300 | 12) More references for submitting patches | ||
301 | |||
302 | Andrew Morton, "The perfect patch" (tpp). | ||
303 | <http://www.zip.com.au/~akpm/linux/patches/stuff/tpp.txt> | ||
304 | |||
305 | Jeff Garzik, "Linux kernel patch submission format." | ||
306 | <http://linux.yyz.us/patch-format.html> | ||
307 | |||
308 | |||
309 | |||
309 | ----------------------------------- | 310 | ----------------------------------- |
310 | SECTION 2 - HINTS, TIPS, AND TRICKS | 311 | SECTION 2 - HINTS, TIPS, AND TRICKS |
311 | ----------------------------------- | 312 | ----------------------------------- |
@@ -374,7 +375,5 @@ and 'extern __inline__'. | |||
374 | 4) Don't over-design. | 375 | 4) Don't over-design. |
375 | 376 | ||
376 | Don't try to anticipate nebulous future cases which may or may not | 377 | Don't try to anticipate nebulous future cases which may or may not |
377 | be useful: "Make it as simple as you can, and no simpler" | 378 | be 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 @@ | |||
1 | driver/acpi/hotkey.c implement: | ||
2 | 1. /proc/acpi/hotkey/event_config | ||
3 | (event based hotkey or event config interface): | ||
4 | a. add a event based hotkey(event) : | ||
5 | echo "0:bus::action:method:num:num" > event_config | ||
6 | |||
7 | b. delete a event based hotkey(event): | ||
8 | echo "1:::::num:num" > event_config | ||
9 | |||
10 | c. modify a event based hotkey(event): | ||
11 | echo "2:bus::action:method:num:num" > event_config | ||
12 | |||
13 | 2. /proc/acpi/hotkey/poll_config | ||
14 | (polling based hotkey or event config interface): | ||
15 | a.add a polling based hotkey(event) : | ||
16 | echo "0:bus:method:action:method:num" > poll_config | ||
17 | this adding command will create a proc file | ||
18 | /proc/acpi/hotkey/method, which is used to get | ||
19 | result of polling. | ||
20 | |||
21 | b.delete a polling based hotkey(event): | ||
22 | echo "1:::::num" > event_config | ||
23 | |||
24 | c.modify a polling based hotkey(event): | ||
25 | echo "2:bus:method:action:method:num" > poll_config | ||
26 | |||
27 | 3./proc/acpi/hotkey/action | ||
28 | (interface to call aml method associated with a | ||
29 | specific hotkey(event)) | ||
30 | echo "event_num:event_type:event_argument" > | ||
31 | /proc/acpi/hotkey/action. | ||
32 | The result of the execution of this aml method is | ||
33 | attached to /proc/acpi/hotkey/poll_method, which is dnyamically | ||
34 | created. Please use command "cat /proc/acpi/hotkey/polling_method" | ||
35 | to 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 @@ | |||
1 | Block io priorities | ||
2 | =================== | ||
3 | |||
4 | |||
5 | Intro | ||
6 | ----- | ||
7 | |||
8 | With the introduction of cfq v3 (aka cfq-ts or time sliced cfq), basic io | ||
9 | priorities is supported for reads on files. This enables users to io nice | ||
10 | processes or process groups, similar to what has been possible to cpu | ||
11 | scheduling for ages. This document mainly details the current possibilites | ||
12 | with cfq, other io schedulers do not support io priorities so far. | ||
13 | |||
14 | Scheduling classes | ||
15 | ------------------ | ||
16 | |||
17 | CFQ implements three generic scheduling classes that determine how io is | ||
18 | served for a process. | ||
19 | |||
20 | IOPRIO_CLASS_RT: This is the realtime io class. This scheduling class is given | ||
21 | higher priority than any other in the system, processes from this class are | ||
22 | given first access to the disk every time. Thus it needs to be used with some | ||
23 | care, one io RT process can starve the entire system. Within the RT class, | ||
24 | there are 8 levels of class data that determine exactly how much time this | ||
25 | process needs the disk for on each service. In the future this might change | ||
26 | to be more directly mappable to performance, by passing in a wanted data | ||
27 | rate instead. | ||
28 | |||
29 | IOPRIO_CLASS_BE: This is the best-effort scheduling class, which is the default | ||
30 | for any process that hasn't set a specific io priority. The class data | ||
31 | determines how much io bandwidth the process will get, it's directly mappable | ||
32 | to the cpu nice levels just more coarsely implemented. 0 is the highest | ||
33 | BE prio level, 7 is the lowest. The mapping between cpu nice level and io | ||
34 | nice level is determined as: io_nice = (cpu_nice + 20) / 5. | ||
35 | |||
36 | IOPRIO_CLASS_IDLE: This is the idle scheduling class, processes running at this | ||
37 | level only get io time when no one else needs the disk. The idle class has no | ||
38 | class data, since it doesn't really apply here. | ||
39 | |||
40 | Tools | ||
41 | ----- | ||
42 | |||
43 | See below for a sample ionice tool. Usage: | ||
44 | |||
45 | # ionice -c<class> -n<level> -p<pid> | ||
46 | |||
47 | If pid isn't given, the current process is assumed. IO priority settings | ||
48 | are inherited on fork, so you can use ionice to start the process at a given | ||
49 | level: | ||
50 | |||
51 | # ionice -c2 -n0 /bin/ls | ||
52 | |||
53 | will run ls at the best-effort scheduling class at the highest priority. | ||
54 | For a running process, you can give the pid instead: | ||
55 | |||
56 | # ionice -c1 -n2 -p100 | ||
57 | |||
58 | will 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 | |||
70 | extern int sys_ioprio_set(int, int, int); | ||
71 | extern 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 | |||
92 | enum { | ||
93 | IOPRIO_CLASS_NONE, | ||
94 | IOPRIO_CLASS_RT, | ||
95 | IOPRIO_CLASS_BE, | ||
96 | IOPRIO_CLASS_IDLE, | ||
97 | }; | ||
98 | |||
99 | enum { | ||
100 | IOPRIO_WHO_PROCESS = 1, | ||
101 | IOPRIO_WHO_PGRP, | ||
102 | IOPRIO_WHO_USER, | ||
103 | }; | ||
104 | |||
105 | #define IOPRIO_CLASS_SHIFT 13 | ||
106 | |||
107 | const char *to_prio[] = { "none", "realtime", "best-effort", "idle", }; | ||
108 | |||
109 | int 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 | |||
176 | March 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 | ||
21 | If nodes are not already created in the /dev/cciss directory, run as root: | 22 | If 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 | |||
41 | CREDITS | 41 | CREDITS |
42 | CVS | 42 | CVS |
43 | ChangeSet | 43 | ChangeSet |
44 | Image | ||
44 | Kerntypes | 45 | Kerntypes |
45 | MODS.txt | 46 | MODS.txt |
46 | Module.symvers | 47 | Module.symvers |
@@ -103,6 +104,7 @@ logo_*.c | |||
103 | logo_*_clut224.c | 104 | logo_*_clut224.c |
104 | logo_*_mono.c | 105 | logo_*_mono.c |
105 | lxdialog | 106 | lxdialog |
107 | mach-types.h | ||
106 | make_times_h | 108 | make_times_h |
107 | map | 109 | map |
108 | maui_boot.h | 110 | maui_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. | |||
13 | The framework provides generic functions (mostly kernel API calls), such as: | 13 | The 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 | ||
25 | The source code of the particular DVB USB devices does just the communication | 28 | The source code of the particular DVB USB devices does just the communication |
26 | with the device via the bus. The connection between the DVB-API-functionality | 29 | with the device via the bus. The connection between the DVB-API-functionality |
@@ -36,93 +39,18 @@ the dvb-usb-lib. | |||
36 | TODO: dynamic enabling and disabling of the pid-filter in regard to number of | 39 | TODO: dynamic enabling and disabling of the pid-filter in regard to number of |
37 | feeds requested. | 40 | feeds requested. |
38 | 41 | ||
39 | Supported devices USB1.1 | 42 | Supported devices |
40 | ======================== | 43 | ======================== |
41 | 44 | ||
42 | Produced and reselled by Twinhan: | 45 | See the LinuxTV DVB Wiki at www.linuxtv.org for a complete list of |
43 | --------------------------------- | 46 | cards/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) | 48 | http://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 | |||
59 | Produced 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 | |||
71 | Others: | ||
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 | |||
88 | Supported 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 | |||
103 | Supported 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 | |||
122 | 1) It is working almost - work-in-progress. | ||
123 | 2) No test reports received yet. | ||
124 | 49 | ||
125 | 0. History & News: | 50 | 0. 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 | |||
187 | 1. How to use? | 115 | 1. How to use? |
188 | 1.1. Firmware | 116 | 1.1. Firmware |
189 | 117 | ||
190 | Most of the USB drivers need to download a firmware to start working. | 118 | Most of the USB drivers need to download a firmware to the device before start |
191 | 119 | working. | |
192 | for USB1.1 (AN2135) you need: dvb-usb-dibusb-5.0.0.11.fw | ||
193 | for USB2.0 HanfTek: dvb-usb-umt-010-02.fw | ||
194 | for USB2.0 DiBcom: dvb-usb-dibusb-6.0.0.8.fw | ||
195 | for USB2.0 AVerMedia AverTV DVB-T USB2: dvb-usb-avertv-a800-01.fw | ||
196 | for USB2.0 TwinhanDTV Alpha/MagicBox II: dvb-usb-vp7045-01.fw | ||
197 | |||
198 | The files can be found on http://www.linuxtv.org/download/firmware/ . | ||
199 | 120 | ||
200 | We do not have the permission (yet) to publish the following firmware-files. | 121 | Have a look at the Wikipage for the DVB-USB-drivers to find out, which firmware |
201 | You'll need to extract them from the windows drivers. | 122 | you need for your device: |
202 | 123 | ||
203 | You should be able to use "get_dvb_firmware dvb-usb" to get the firmware: | 124 | http://www.linuxtv.org/wiki/index.php/DVB_USB |
204 | |||
205 | for USB1.1 (AN2235) (a few Artec T1 devices): dvb-usb-dibusb-an2235-01.fw | ||
206 | for USB2.0 Hauppauge: dvb-usb-nova-t-usb2-01.fw | ||
207 | for USB2.0 ADSTech/Kworld USB2.0: dvb-usb-adstech-usb2-01.fw | ||
208 | for USB2.0 Yakumo/Typhoon/Hama: dvb-usb-dtt200u-01.fw | ||
209 | 125 | ||
210 | 1.2. Compiling | 126 | 1.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 @@ | |||
1 | How to get the Nebula, PCTV and Twinhan DST cards working | 1 | How to get the Nebula Electronics DigiTV, Pinnacle PCTV Sat, Twinhan DST + clones working |
2 | ========================================================= | 2 | ========================================================================================= |
3 | 3 | ||
4 | This class of cards has a bt878a as the PCI interface, and | 4 | 1) General information |
5 | require the bttv driver. | 5 | ====================== |
6 | 6 | ||
7 | Please pay close attention to the warning about the bttv module | 7 | This class of cards has a bt878a chip as the PCI interface. |
8 | options below for the DST card. | 8 | The different card drivers require the bttv driver to provide the means |
9 | to access the i2c bus and the gpio pins of the bt8xx chipset. | ||
9 | 10 | ||
10 | 1) General informations | 11 | 2) Compilation rules for Kernel >= 2.6.12 |
11 | ======================= | 12 | ========================================= |
12 | 13 | ||
13 | These drivers require the bttv driver to provide the means to access | 14 | Enable the following options: |
14 | the i2c bus and the gpio pins of the bt8xx chipset. | ||
15 | 15 | ||
16 | Because 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 | |||
20 | Furthermore 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 | ||
24 | 2) Loading Modules | 21 | 3) Loading Modules, described by two approaches |
25 | ================== | 22 | =============================================== |
26 | 23 | ||
27 | In general you need to load the bttv driver, which will handle the gpio and | 24 | In general you need to load the bttv driver, which will handle the gpio and |
28 | i2c communication for us, plus the common dvb-bt8xx device driver. | 25 | i2c communication for us, plus the common dvb-bt8xx device driver, |
29 | The frontends for Nebula (nxt6000), Pinnacle PCTV (cx24110) and | 26 | which is called the backend. |
30 | TwinHan (dst) are loaded automatically by the dvb-bt8xx device driver. | 27 | The frontends for Nebula DigiTV (nxt6000), Pinnacle PCTV Sat (cx24110), |
28 | TwinHan DST + clones (dst and dst-ca) are loaded automatically by the backend. | ||
29 | For further details about TwinHan DST + clones see /Documentation/dvb/ci.txt. | ||
31 | 30 | ||
32 | 3a) Nebula / Pinnacle PCTV | 31 | 3a) The manual approach |
33 | -------------------------- | 32 | ----------------------- |
34 | 33 | ||
35 | $ modprobe bttv (normally bttv is being loaded automatically by kmod) | 34 | Loading modules: |
36 | $ modprobe dvb-bt8xx (or just place dvb-bt8xx in /etc/modules for automatic loading) | 35 | modprobe bttv |
36 | modprobe dvb-bt8xx | ||
37 | 37 | ||
38 | Unloading modules: | ||
39 | modprobe -r dvb-bt8xx | ||
40 | modprobe -r bttv | ||
38 | 41 | ||
39 | 3b) TwinHan and Clones | 42 | 3b) The automatic approach |
40 | -------------------------- | 43 | -------------------------- |
41 | 44 | ||
42 | $ modprobe bttv i2c_hw=1 card=0x71 | 45 | If 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 | 47 | alias char-major-81 bttv |
45 | |||
46 | The value 0x71 will override the PCI type detection for dvb-bt8xx, | ||
47 | which is necessary for TwinHan cards. | ||
48 | |||
49 | If you're having an older card (blue color circuit) and card=0x71 locks | ||
50 | your machine, try using 0x68, too. If that does not work, ask on the | ||
51 | mailing list. | ||
52 | |||
53 | The DST module takes a couple of useful parameters: | ||
54 | 48 | ||
55 | a. verbose takes values 0 to 5. These values control the verbosity level. | 49 | Then place a line in /etc/modules containing this text: |
56 | b. debug takes values 0 and 1. You can either disable or enable debugging. | 50 | dvb-bt8xx |
57 | c. 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 | ||
61 | The autodetected values are determined by the "response string" | 52 | Reboot your system and have fun! |
62 | of the card, which you can see in your logs: | ||
63 | e.g.: dst_get_device_id: Recognize [DSTMCI] | ||
64 | 53 | ||
65 | -- | 54 | -- |
66 | Authors: Richard Walker, Jamie Honan, Michael Hunold, Manu Abraham, Uwe Bugla | 55 | Authors: 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 | ||
105 | What: register_serial/unregister_serial | 105 | What: register_serial/unregister_serial |
106 | When: December 2005 | 106 | When: September 2005 |
107 | Why: This interface does not allow serial ports to be registered against | 107 | Why: 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. |
111 | Who: Russell King <rmk@arm.linux.org.uk> | 111 | Who: 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. |
120 | Who: Grant Coady <gcoady@gmail.com> | 120 | Who: Grant Coady <gcoady@gmail.com> |
121 | 121 | ||
122 | --------------------------- | ||
123 | |||
124 | What: PCMCIA control ioctl (needed for pcmcia-cs [cardmgr, cardctl]) | ||
125 | When: November 2005 | ||
126 | Files: drivers/pcmcia/: pcmcia_ioctl.c | ||
127 | Why: 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/ | ||
137 | Who: 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 | |||
6 | Document started 15 Mar 2005 by Robert Love <rml@novell.com> | ||
7 | |||
8 | |||
9 | (i) User Interface | ||
10 | |||
11 | Inotify is controlled by a set of three system calls and normal file I/O on a | ||
12 | returned file descriptor. | ||
13 | |||
14 | First step in using inotify is to initialise an inotify instance: | ||
15 | |||
16 | int fd = inotify_init (); | ||
17 | |||
18 | Each instance is associated with a unique, ordered queue. | ||
19 | |||
20 | Change events are managed by "watches". A watch is an (object,mask) pair where | ||
21 | the object is a file or directory and the mask is a bit mask of one or more | ||
22 | inotify events that the application wishes to receive. See <linux/inotify.h> | ||
23 | for valid events. A watch is referenced by a watch descriptor, or wd. | ||
24 | |||
25 | Watches are added via a path to the file. | ||
26 | |||
27 | Watches on a directory will return events on any files inside of the directory. | ||
28 | |||
29 | Adding a watch is simple: | ||
30 | |||
31 | int wd = inotify_add_watch (fd, path, mask); | ||
32 | |||
33 | Where "fd" is the return value from inotify_init(), path is the path to the | ||
34 | object to watch, and mask is the watch mask (see <linux/inotify.h>). | ||
35 | |||
36 | You can update an existing watch in the same manner, by passing in a new mask. | ||
37 | |||
38 | An existing watch is removed via | ||
39 | |||
40 | int ret = inotify_rm_watch (fd, wd); | ||
41 | |||
42 | Events are provided in the form of an inotify_event structure that is read(2) | ||
43 | from a given inotify instance. The filename is of dynamic length and follows | ||
44 | the struct. It is of size len. The filename is padded with null bytes to | ||
45 | ensure proper alignment. This padding is reflected in len. | ||
46 | |||
47 | You can slurp multiple events by passing a large buffer, for example | ||
48 | |||
49 | size_t len = read (fd, buf, BUF_LEN); | ||
50 | |||
51 | Where "buf" is a pointer to an array of "inotify_event" structures at least | ||
52 | BUF_LEN bytes in size. The above example will return as many events as are | ||
53 | available and fit in BUF_LEN. | ||
54 | |||
55 | Each inotify instance fd is also select()- and poll()-able. | ||
56 | |||
57 | You can find the size of the current event queue via the standard FIONREAD | ||
58 | ioctl on the fd returned by inotify_init(). | ||
59 | |||
60 | All watches are destroyed and cleaned up on close. | ||
61 | |||
62 | |||
63 | (ii) | ||
64 | |||
65 | Prototypes: | ||
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 | |||
74 | Each inotify instance is associated with an inotify_device structure. | ||
75 | |||
76 | Each watch is associated with an inotify_watch structure. Watches are chained | ||
77 | off of each associated device and each associated inode. | ||
78 | |||
79 | See fs/inotify.c for the locking and lifetime rules. | ||
80 | |||
81 | |||
82 | (iv) Rationale | ||
83 | |||
84 | Q: What is the design decision behind not tying the watch to the open fd of | ||
85 | the watched object? | ||
86 | |||
87 | A: 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 | |||
93 | Q: What is the design decision behind using an-fd-per-instance as opposed to | ||
94 | an fd-per-watch? | ||
95 | |||
96 | A: 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 | |||
140 | Q: Why the system call approach? | ||
141 | |||
142 | A: 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 | ||
23 | Linux-NTFS comes with a number of user-space programs known as ntfsprogs. | 23 | Linux-NTFS comes with a number of user-space programs known as ntfsprogs. |
24 | These include mkntfs, a full-featured ntfs file system format utility, | 24 | These include mkntfs, a full-featured ntfs filesystem format utility, |
25 | ntfsundelete used for recovering files that were unintentionally deleted | 25 | ntfsundelete used for recovering files that were unintentionally deleted |
26 | from an NTFS volume and ntfsresize which is used to resize an NTFS partition. | 26 | from an NTFS volume and ntfsresize which is used to resize an NTFS partition. |
27 | See the web site for more information. | 27 | See 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 | ||
152 | errors=opt What to do when critical file system errors are found. | 152 | disable_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 | |||
159 | errors=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 | ||
433 | Note, a technical ChangeLog aimed at kernel hackers is in fs/ntfs/ChangeLog. | 440 | Note, a technical ChangeLog aimed at kernel hackers is in fs/ntfs/ChangeLog. |
434 | 441 | ||
442 | 2.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). | ||
435 | 2.1.22: | 460 | 2.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 | ||
4 | Supported chips: | 4 | Supported 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 | ||
11 | Author: Ben Gardner <bgardner@wabtec.com> | 11 | Author: Ben Gardner <bgardner@wabtec.com> |
@@ -23,14 +23,26 @@ Module Parameters | |||
23 | Description | 23 | Description |
24 | ----------- | 24 | ----------- |
25 | 25 | ||
26 | The MAXIM max6875 is a EEPROM-programmable power-supply sequencer/supervisor. | 26 | The Maxim MAX6875 is an EEPROM-programmable power-supply sequencer/supervisor. |
27 | It provides timed outputs that can be used as a watchdog, if properly wired. | 27 | It provides timed outputs that can be used as a watchdog, if properly wired. |
28 | It also provides 512 bytes of user EEPROM. | 28 | It also provides 512 bytes of user EEPROM. |
29 | 29 | ||
30 | At reset, the max6875 reads the configuration eeprom into its configuration | 30 | At reset, the MAX6875 reads the configuration EEPROM into its configuration |
31 | registers. The chip then begins to operate according to the values in the | 31 | registers. The chip then begins to operate according to the values in the |
32 | registers. | 32 | registers. |
33 | 33 | ||
34 | The Maxim MAX6874 is a similar, mostly compatible device, with more intputs | ||
35 | and outputs: | ||
36 | |||
37 | vin gpi vout | ||
38 | MAX6874 6 4 8 | ||
39 | MAX6875 4 3 5 | ||
40 | |||
41 | MAX6874 chips can have four different addresses (as opposed to only two for | ||
42 | the MAX6875). The additional addresses (0x54 and 0x56) are not probed by | ||
43 | this driver by default, but the probe module parameter can be used if | ||
44 | needed. | ||
45 | |||
34 | See the datasheet for details on how to program the EEPROM. | 46 | See 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 | ||
16 | So let's say you want to access an i2c adapter from a C program. The | 16 | So let's say you want to access an i2c adapter from a C program. The |
17 | first thing to do is `#include <linux/i2c.h>" and "#include <linux/i2c-dev.h>. | 17 | first thing to do is "#include <linux/i2c-dev.h>". Please note that |
18 | Yes, I know, you should never include kernel header files, but until glibc | 18 | there are two files named "i2c-dev.h" out there, one is distributed |
19 | knows about i2c, there is not much choice. | 19 | with the Linux kernel and is meant to be included from kernel |
20 | driver code, the other one is distributed with lm_sensors and is | ||
21 | meant to be included from user-space programs. You obviously want | ||
22 | the second one here. | ||
20 | 23 | ||
21 | Now, you have to decide which adapter you want to access. You should | 24 | Now, you have to decide which adapter you want to access. You should |
22 | inspect /sys/class/i2c-dev/ to decide this. Adapter numbers are assigned | 25 | inspect /sys/class/i2c-dev/ to decide this. Adapter numbers are assigned |
@@ -78,7 +81,7 @@ Full interface description | |||
78 | ========================== | 81 | ========================== |
79 | 82 | ||
80 | The following IOCTLs are defined and fully supported | 83 | The following IOCTLs are defined and fully supported |
81 | (see also i2c-dev.h and i2c.h): | 84 | (see also i2c-dev.h): |
82 | 85 | ||
83 | ioctl(file,I2C_SLAVE,long addr) | 86 | ioctl(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) | |||
97 | ioctl(file,I2C_FUNCS,unsigned long *funcs) | 100 | ioctl(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 | ||
100 | ioctl(file,I2C_RDWR,struct i2c_ioctl_rdwr_data *msgset) | 103 | ioctl(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. | |||
27 | static struct i2c_driver foo_driver = { | 27 | static 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 = { | |||
37 | The name can be chosen freely, and may be upto 40 characters long. Please | 36 | The name can be chosen freely, and may be upto 40 characters long. Please |
38 | use something descriptive here. | 37 | use something descriptive here. |
39 | 38 | ||
40 | If used, the id should be a unique ID. The range 0xf000 to 0xffff is | ||
41 | reserved for local use, and you can use one of those until you start | ||
42 | distributing the driver, at which time you should contact the i2c authors | ||
43 | to get your own ID(s). Note that most of the time you don't need an ID | ||
44 | at all so you can just omit it. | ||
45 | |||
46 | Don't worry about the flags field; just put I2C_DF_NOTIFY into it. This | 39 | Don't worry about the flags field; just put I2C_DF_NOTIFY into it. This |
47 | means that your driver will be notified when new adapters are found. | 40 | means that your driver will be notified when new adapters are found. |
48 | This is almost always what you want. | 41 | This 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 @@ | |||
1 | USERSPACE 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 | |||
15 | User-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 | |||
30 | Resource 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 | |||
43 | Memory 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 | 1 | Davicom DM9102(A)/DM9132/DM9801 fast ethernet driver for Linux. |
2 | 2 | ||
3 | A Davicom DM9102(A)/DM9132/DM9801 fast ethernet driver for Linux. | 3 | This program is free software; you can redistribute it and/or |
4 | Copyright (C) 1997 Sten Wang | 4 | modify it under the terms of the GNU General Public License |
5 | as published by the Free Software Foundation; either version 2 | ||
6 | of the License, or (at your option) any later version. | ||
5 | 7 | ||
6 | This program is free software; you can redistribute it and/or | 8 | This program is distributed in the hope that it will be useful, |
7 | modify it under the terms of the GNU General Public License | 9 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
8 | as published by the Free Software Foundation; either version 2 | 10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
9 | of the License, or (at your option) any later version. | 11 | GNU 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 | ||
14 | This driver provides kernel support for Davicom DM9102(A)/DM9132/DM9801 ethernet cards ( CNET | ||
15 | 10/100 ethernet cards uses Davicom chipset too, so this driver supports CNET cards too ).If you | ||
16 | didn't compile this driver as a module, it will automatically load itself on boot and print a | ||
17 | line 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 | 21 | If 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 | ||
25 | This way it will autodetect the device mode.This is the suggested way to load the module.Or you can pass | ||
26 | a 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 | 33 | Next 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 | 39 | Then 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 | ||
44 | Now your ethernet card should be up and running. | ||
48 | 45 | ||
49 | 5. Well done. Your DM9102 adapter is now activated. | ||
50 | 46 | ||
47 | TODO: | ||
51 | 48 | ||
52 | C. Object files description: | 49 | Implement pci_driver::suspend() and pci_driver::resume() power management methods. |
53 | 1. dmfe_rh61.o: For Redhat 6.1 | 50 | Check on 64 bit boxes. |
51 | Check and fix on big endian boxes. | ||
52 | Test 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 | ||
55 | Authors: | ||
58 | 56 | ||
59 | Author: Sten Wang, 886-3-5798797-8517, E-mail: sten_wang@davicom.com.tw | 57 | Sten Wang <sten_wang@davicom.com.tw > : Original Author |
58 | Tobias Ringstrom <tori@unhappy.mine.nu> : Current Maintainer | ||
59 | |||
60 | Contributors: | ||
61 | |||
62 | Marcelo Tosatti <marcelo@conectiva.com.br> | ||
63 | Alan Cox <alan@redhat.com> | ||
64 | Jeff Garzik <jgarzik@pobox.com> | ||
65 | Vojtech 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 | |||
3 | Node types | ||
4 | ---------- | ||
5 | leaf | ||
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 | |||
10 | trie 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 | |||
14 | A few concepts explained | ||
15 | ------------------------ | ||
16 | Bits (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 | |||
20 | Pos (tnode) | ||
21 | The position (in the key) of the key segment used for indexing into | ||
22 | the child array. See Path Compression. | ||
23 | |||
24 | Path 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 | |||
35 | Level 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 | |||
44 | empty_children | ||
45 | the number of positions in the child array of a given tnode that are | ||
46 | NULL. | ||
47 | |||
48 | full_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 | |||
56 | Comments | ||
57 | --------- | ||
58 | |||
59 | We have tried to keep the structure of the code as close to fib_hash as | ||
60 | possible to allow verification and help up reviewing. | ||
61 | |||
62 | fib_find_node() | ||
63 | A good start for understanding this code. This function implements a | ||
64 | straightforward trie lookup. | ||
65 | |||
66 | fib_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 | |||
71 | trie_leaf_remove() | ||
72 | Looks up a key, deletes it and runs the level compression algorithm. | ||
73 | |||
74 | trie_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 | |||
80 | resize() | ||
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 | |||
86 | inflate() | ||
87 | Doubles the size of the child array within a tnode. Used by resize(). | ||
88 | |||
89 | halve() | ||
90 | Halves the size of the child array within a tnode - the inverse of | ||
91 | inflate(). Used by resize(); | ||
92 | |||
93 | fn_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 | |||
97 | fn_trie_flush() | ||
98 | This walks the full trie (using nextleaf()) and searches for empty | ||
99 | leaves which have to be removed. | ||
100 | |||
101 | fn_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 | |||
107 | Locking | ||
108 | ------- | ||
109 | |||
110 | fib_lock is used for an RW-lock in the same way that this is done in fib_hash. | ||
111 | However, the functions are somewhat separated for other possible locking | ||
112 | scenarios. It might conceivably be possible to run trie_rebalance via RCU | ||
113 | to avoid read_lock in the fn_trie_lookup() function. | ||
114 | |||
115 | Main lookup mechanism | ||
116 | --------------------- | ||
117 | fn_trie_lookup() is the main lookup function. | ||
118 | |||
119 | The lookup is in its simplest form just like fib_find_node(). We descend the | ||
120 | trie, key segment by key segment, until we find a leaf. check_leaf() does | ||
121 | the fib_semantic_match in the leaf's sorted prefix hlist. | ||
122 | |||
123 | If we find a match, we are done. | ||
124 | |||
125 | If we don't find a match, we enter prefix matching mode. The prefix length, | ||
126 | starting out at the same as the key length, is reduced one step at a time, | ||
127 | and we backtrack upwards through the trie trying to find a longest matching | ||
128 | prefix. The goal is always to reach a leaf and get a positive result from the | ||
129 | fib_semantic_match mechanism. | ||
130 | |||
131 | Inside each tnode, the search for longest matching prefix consists of searching | ||
132 | through the child array, chopping off (zeroing) the least significant "1" of | ||
133 | the child index until we find a match or the child index consists of nothing but | ||
134 | zeros. | ||
135 | |||
136 | At this point we backtrack (t->stats.backtrack++) up the trie, continuing to | ||
137 | chop off part of the key in order to find the longest matching prefix. | ||
138 | |||
139 | At this point we will repeatedly descend subtries to look for a match, and there | ||
140 | are some optimizations available that can provide us with "shortcuts" to avoid | ||
141 | descending into dead ends. Look for "HL_OPTIMIZE" sections in the code. | ||
142 | |||
143 | To alleviate any doubts about the correctness of the route selection process, | ||
144 | a new netlink operation has been added. Look for NETLINK_FIB_LOOKUP, which | ||
145 | gives 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 @@ | |||
1 | Matching of PCMCIA devices to drivers is done using one or more of the | ||
2 | following 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 | |||
10 | You should use the helpers in include/pcmcia/device_id.h for generating the | ||
11 | struct pcmcia_device_id[] entries which match devices to drivers. | ||
12 | |||
13 | If you want to match product ID strings, you also need to pass the crc32 | ||
14 | hashes of the string to the macro, e.g. if you want to match the product ID | ||
15 | string 1, you need to use | ||
16 | |||
17 | PCMCIA_DEVICE_PROD_ID1("some_string", 0x(hash_of_some_string)), | ||
18 | |||
19 | If the hash is incorrect, the kernel will inform you about this in "dmesg" | ||
20 | upon module initialization, and tell you of the correct hash. | ||
21 | |||
22 | You 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 | ||
24 | in the following form: | ||
25 | pcmcia:m0149cC1ABf06pfn00fn00pa725B842DpbF1EFEE84pc0877B627pd00000000 | ||
26 | |||
27 | The hex value after "pa" is the hash of product ID string 1, after "pb" for | ||
28 | string 2 and so on. | ||
29 | |||
30 | Alternatively, you can use this small tool to determine the crc32 hash. | ||
31 | simply pass the string you want to evaluate as argument to this program, | ||
32 | e.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 | |||
42 | unsigned 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 | |||
54 | int 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 @@ | |||
1 | This 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) | |||
117 | Medion MD4220 ??? (*) | 117 | Medion MD4220 ??? (*) |
118 | Samsung P35 vbetool needed (6) | 118 | Samsung P35 vbetool needed (6) |
119 | Sharp PC-AR10 (ATI rage) none (1) | 119 | Sharp PC-AR10 (ATI rage) none (1) |
120 | Sony Vaio PCG-C1VRX/K s3_bios (2) | ||
120 | Sony Vaio PCG-F403 ??? (*) | 121 | Sony Vaio PCG-F403 ??? (*) |
121 | Sony Vaio PCG-N505SN ??? (*) | 122 | Sony Vaio PCG-N505SN ??? (*) |
122 | Sony Vaio vgn-s260 X or boot-radeon can init it (5) | 123 | Sony 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 | |||
297 | 0x0c45 0x602a | 297 | 0x0c45 0x602a |
298 | 0x0c45 0x602b | 298 | 0x0c45 0x602b |
299 | 0x0c45 0x602c | 299 | 0x0c45 0x602c |
300 | 0x0c45 0x602d | ||
300 | 0x0c45 0x6030 | 301 | 0x0c45 0x6030 |
301 | 0x0c45 0x6080 | 302 | 0x0c45 0x6080 |
302 | 0x0c45 0x6082 | 303 | 0x0c45 0x6082 |
@@ -333,6 +334,7 @@ Model Manufacturer | |||
333 | ----- ------------ | 334 | ----- ------------ |
334 | HV7131D Hynix Semiconductor, Inc. | 335 | HV7131D Hynix Semiconductor, Inc. |
335 | MI-0343 Micron Technology, Inc. | 336 | MI-0343 Micron Technology, Inc. |
337 | OV7630 OmniVision Technologies, Inc. | ||
336 | PAS106B PixArt Imaging, Inc. | 338 | PAS106B PixArt Imaging, Inc. |
337 | PAS202BCB PixArt Imaging, Inc. | 339 | PAS202BCB PixArt Imaging, Inc. |
338 | TAS5110C1B Taiwan Advanced Sensor Corporation | 340 | TAS5110C1B 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 | ||
138 | This format is obviously deficient. For example, the setup packet for control | 152 | This format may be changed in the future. |
139 | transfers is not delivered. This will change in the future. | ||
140 | 153 | ||
141 | Examples: | 154 | Examples: |
142 | 155 | ||
143 | An input control transfer to get a port status: | 156 | An input control transfer to get a port status. |
144 | 157 | ||
145 | d74ff9a0 2640288196 S Ci:001:00 -115 4 < | 158 | d5ea89a0 3575914555 S Ci:001:00 s a3 00 0000 0003 0004 4 < |
146 | d74ff9a0 2640288202 C Ci:001:00 0 4 = 01010100 | 159 | d5ea89a0 3575914560 C Ci:001:00 0 4 = 01050000 |
147 | 160 | ||
148 | An output bulk transfer to send a SCSI command 0x5E in a 31-byte Bulk wrapper | 161 | An output bulk transfer to send a SCSI command 0x5E in a 31-byte Bulk wrapper |
149 | to a storage device at address 5: | 162 | to 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"> | 7 | V4L original API</a> |
8 | <H3>Devices</H3> | 8 | </td><td> |
9 | Video4Linux provides the following sets of device files. These live on the | 9 | Obsoleted by V4L2 API |
10 | character device formerly known as "/dev/bttv". /dev/bttv should be a | 10 | </td></tr><tr><td> |
11 | symlink to /dev/video0 for most people. | 11 | <A HREF=http://www.linuxtv.org/downloads/video4linux/API/V4L2_API.html> |
12 | <P> | 12 | V4L2 API</a> |
13 | <TABLE> | 13 | </td><td> |
14 | <TR><TH>Device Name</TH><TH>Minor Range</TH><TH>Function</TH> | 14 | Should 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> | ||
21 | Video4Linux programs open and scan the devices to find what they are looking | ||
22 | for. Capability queries define what each interface supports. The | ||
23 | described API is only defined for video capture cards. The relevant subset | ||
24 | applies to radio cards. Teletext interfaces talk the existing VTX API. | ||
25 | <P> | ||
26 | <H3>Capability Query Ioctl</H3> | ||
27 | The <B>VIDIOCGCAP</B> ioctl call is used to obtain the capability | ||
28 | information for a video device. The <b>struct video_capability</b> object | ||
29 | passed to the ioctl is completed and returned. It contains the following | ||
30 | information | ||
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> | ||
43 | The type field lists the capability flags for the device. These are | ||
44 | as 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> | ||
60 | The minimum and maximum sizes listed for a capture device do not imply all | ||
61 | that all height/width ratios or sizes within the range are possible. A | ||
62 | request to set a size will be honoured by the largest available capture | ||
63 | size whose capture is no large than the requested rectangle in either | ||
64 | direction. For example the quickcam has 3 fixed settings. | ||
65 | <P> | ||
66 | <H3>Frame Buffer</H3> | ||
67 | Capture cards that drop data directly onto the frame buffer must be told the | ||
68 | base address of the frame buffer, its size and organisation. This is a | ||
69 | privileged ioctl and one that eventually X itself should set. | ||
70 | <P> | ||
71 | The <b>VIDIOCSFBUF</b> ioctl sets the frame buffer parameters for a capture | ||
72 | card. If the card does not do direct writes to the frame buffer then this | ||
73 | ioctl will be unsupported. The <b>VIDIOCGFBUF</b> ioctl returns the | ||
74 | currently 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> | ||
85 | Note that these values reflect the physical layout of the frame buffer. | ||
86 | The visible area may be smaller. In fact under XFree86 this is commonly the | ||
87 | case. XFree86 DGA can provide the parameters required to set up this ioctl. | ||
88 | Setting the base address to NULL indicates there is no physical frame buffer | ||
89 | access. | ||
90 | <P> | ||
91 | <H3>Capture Windows</H3> | ||
92 | The capture area is described by a <b>struct video_window</b>. This defines | ||
93 | a 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> | ||
96 | indicates that a suitable set of parameters have been chosen. They do not | ||
97 | indicate that exactly what was requested was granted. The program should | ||
98 | call <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> | ||
112 | Clipping rectangles are passed as an array. Each clip consists of the following | ||
113 | fields 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> | ||
122 | Merely setting the window does not enable capturing. Overlay capturing | ||
123 | (i.e. PCI-PCI transfer to the frame buffer of the video card) | ||
124 | is activated by passing the <b>VIDIOCCAPTURE</b> ioctl a value of 1, and | ||
125 | disabled by passing it a value of 0. | ||
126 | <P> | ||
127 | Some capture devices can capture a subfield of the image they actually see. | ||
128 | This is indicated when VIDEO_TYPE_SUBCAPTURE is defined. | ||
129 | The video_capture describes the time and special subfields to capture. | ||
130 | The 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> | ||
140 | The 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> | ||
149 | Each video4linux video or audio device captures from one or more | ||
150 | source <b>channels</b>. Each channel can be queries with the | ||
151 | <b>VDIOCGCHAN</b> ioctl call. Before invoking this function the caller | ||
152 | must set the channel field to the channel that is being queried. On return | ||
153 | the <b>struct video_channel</b> is filled in with information about the | ||
154 | nature of the channel itself. | ||
155 | <P> | ||
156 | The <b>VIDIOCSCHAN</b> ioctl takes an integer argument and switches the | ||
157 | capture to this input. It is not defined whether parameters such as colour | ||
158 | settings or tuning are maintained across a channel switch. The caller should | ||
159 | maintain settings as desired for each channel. (This is reasonable as | ||
160 | different video inputs may have different properties). | ||
161 | <P> | ||
162 | The <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 | ||
167 | on 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> | ||
174 | The 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> | ||
182 | The 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> | ||
190 | The image properties of the picture can be queried with the <b>VIDIOCGPICT</b> | ||
191 | ioctl which fills in a <b>struct video_picture</b>. The <b>VIDIOCSPICT</b> | ||
192 | ioctl allows values to be changed. All values except for the palette type | ||
193 | are scaled between 0-65535. | ||
194 | <P> | ||
195 | The <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> | ||
207 | The 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> | ||
227 | Each video input channel can have one or more tuners associated with it. Many | ||
228 | devices will not have tuners. TV cards and radio cards will have one or more | ||
229 | tuners attached. | ||
230 | <P> | ||
231 | Tuners are described by a <b>struct video_tuner</b> which can be obtained by | ||
232 | the <b>VIDIOCGTUNER</b> ioctl. Fill in the tuner number in the structure | ||
233 | then pass the structure to the ioctl to have the data filled in. The | ||
234 | tuner can be switched using <b>VIDIOCSTUNER</b> which takes an integer argument | ||
235 | giving 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> | ||
247 | The 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> | ||
260 | The 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> | ||
269 | Tuning 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 | ||
271 | frequency is obtained as an unsigned long via the <b>VIDIOCGFREQ</b> ioctl and | ||
272 | set by the <b>VIDIOCSFREQ</b> ioctl. | ||
273 | <P> | ||
274 | <H3>Audio</H3> | ||
275 | TV and Radio devices have one or more audio inputs that may be selected. | ||
276 | The 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> | ||
279 | The 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> | ||
293 | The 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> | ||
304 | The 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> | ||
314 | Each call to the <b>read</b> syscall returns the next available image | ||
315 | from the device. It is up to the caller to set format and size (using | ||
316 | the VIDIOCSPICT and VIDIOCSWIN ioctls) and then to pass a suitable | ||
317 | size buffer and length to the function. Not all devices will support | ||
318 | read operations. | ||
319 | <P> | ||
320 | A second way to handle image capture is via the mmap interface if supported. | ||
321 | To use the mmap interface a user first sets the desired image size and depth | ||
322 | properties. Next the VIDIOCGMBUF ioctl is issued. This reports the size | ||
323 | of buffer to mmap and the offset within the buffer for each frame. The | ||
324 | number of frames supported is device dependent and may only be one. | ||
325 | <P> | ||
326 | The 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> | ||
334 | Once the mmap has been made the VIDIOCMCAPTURE ioctl starts the | ||
335 | capture to a frame using the format and image size specified in the | ||
336 | video_mmap (which should match or be below the initial query size). | ||
337 | When the VIDIOCMCAPTURE ioctl returns the frame is <em>not</em> | ||
338 | captured yet, the driver just instructed the hardware to start the | ||
339 | capture. The application has to use the VIDIOCSYNC ioctl to wait | ||
340 | until the capture of a frame is finished. VIDIOCSYNC takes the frame | ||
341 | number you want to wait for as argument. | ||
342 | <p> | ||
343 | It is allowed to call VIDIOCMCAPTURE multiple times (with different | ||
344 | frame numbers in video_mmap->frame of course) and thus have multiple | ||
345 | outstanding capture requests. A simple way do to double-buffering | ||
346 | using this feature looks like this: | ||
347 | <pre> | ||
348 | /* setup everything */ | ||
349 | VIDIOCMCAPTURE(0) | ||
350 | while (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> | ||
359 | Note that you are <em>not</em> limited to only two frames. The API | ||
360 | allows up to 32 frames, the VIDIOCGMBUF ioctl returns the number of | ||
361 | frames the driver granted. Thus it is possible to build deeper queues | ||
362 | to avoid loosing frames on load peaks. | ||
363 | <p> | ||
364 | While capturing to memory the driver will make a "best effort" attempt | ||
365 | to capture to screen as well if requested. This normally means all | ||
366 | frames that "miss" memory mapped capture will go to the display. | ||
367 | <P> | ||
368 | A final ioctl exists to allow a device to obtain related devices if a | ||
369 | driver has multiple components (for example video0 may not be associated | ||
370 | with vbi0 which would cause an intercast display program to make a bad | ||
371 | mistake). The VIDIOCGUNIT ioctl reports the unit numbers of the associated | ||
372 | devices 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> | ||
383 | For radio devices that support it, it is possible to receive Radio Data | ||
384 | System (RDS) data by means of a read() on the device. The data is packed in | ||
385 | groups 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 | ||
390 | an uncorrectable error occurred during reception of this block.</TD></TR> | ||
391 | <TR><TD> </TD><TD>Bit 6:</TD><TD>Corrected bit. Indicates that | ||
392 | an error was corrected for this data block.</TD></TR> | ||
393 | <TR><TD> </TD><TD>Bits 5-3:</TD><TD>Received Offset. Indicates the | ||
394 | offset received by the sync system.</TD></TR> | ||
395 | <TR><TD> </TD><TD>Bits 2-0:</TD><TD>Offset Name. Indicates the | ||
396 | offset 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 @@ | |||
1 | card=0 - *** UNKNOWN/GENERIC *** | 1 | card=0 - *** UNKNOWN/GENERIC *** |
2 | card=1 - MIRO PCTV | 2 | card=1 - MIRO PCTV |
3 | card=2 - Hauppauge (bt848) | 3 | card=2 - Hauppauge (bt848) |
4 | card=3 - STB, Gateway P/N 6000699 (bt848) | 4 | card=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 | |||
13 | card=12 - ASUS PVR-416 | 13 | card=12 - ASUS PVR-416 |
14 | card=13 - MSI TV-@nywhere | 14 | card=13 - MSI TV-@nywhere |
15 | card=14 - KWorld/VStream XPert DVB-T | 15 | card=14 - KWorld/VStream XPert DVB-T |
16 | card=15 - DVICO FusionHDTV DVB-T1 | 16 | card=15 - DViCO FusionHDTV DVB-T1 |
17 | card=16 - KWorld LTV883RF | 17 | card=16 - KWorld LTV883RF |
18 | card=17 - DViCO - FusionHDTV 3 Gold | 18 | card=17 - DViCO FusionHDTV 3 Gold-Q |
19 | card=18 - Hauppauge Nova-T DVB-T | 19 | card=18 - Hauppauge Nova-T DVB-T |
20 | card=19 - Conexant DVB-T reference design | 20 | card=19 - Conexant DVB-T reference design |
21 | card=20 - Provideo PV259 | 21 | card=20 - Provideo PV259 |
22 | card=21 - DVICO FusionHDTV DVB-T Plus | 22 | card=21 - DViCO FusionHDTV DVB-T Plus |
23 | card=22 - digitalnow DNTV Live! DVB-T | 23 | card=22 - digitalnow DNTV Live! DVB-T |
24 | card=23 - pcHDTV HD3000 HDTV | 24 | card=23 - pcHDTV HD3000 HDTV |
25 | card=24 - Hauppauge WinTV 28xxx (Roslyn) models | 25 | card=24 - Hauppauge WinTV 28xxx (Roslyn) models |
26 | card=25 - Digital-Logic MICROSPACE Entertainment Center (MEC) | 26 | card=25 - Digital-Logic MICROSPACE Entertainment Center (MEC) |
27 | card=26 - IODATA GV/BCTV7E | 27 | card=26 - IODATA GV/BCTV7E |
28 | card=27 - PixelView PlayTV Ultra Pro (Stereo) | 28 | card=27 - PixelView PlayTV Ultra Pro (Stereo) |
29 | card=28 - DViCO - FusionHDTV 3 Gold-T | 29 | card=28 - DViCO FusionHDTV 3 Gold-T |
30 | card=29 - ADS Tech Instant TV DVB-T PCI | ||
31 | card=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 | |||
56 | tuner=55 - LG PAL (TAPE series) | 56 | tuner=55 - LG PAL (TAPE series) |
57 | tuner=56 - Philips PAL/SECAM multi (FQ1216AME MK4) | 57 | tuner=56 - Philips PAL/SECAM multi (FQ1216AME MK4) |
58 | tuner=57 - Philips FQ1236A MK4 | 58 | tuner=57 - Philips FQ1236A MK4 |
59 | tuner=58 - Ymec TVision TVF-8531MF | 59 | tuner=58 - Ymec TVision TVF-8531MF/8831MF/8731MF |
60 | tuner=59 - Ymec TVision TVF-5533MF | 60 | tuner=59 - Ymec TVision TVF-5533MF |
61 | tuner=60 - Thomson DDT 7611 (ATSC/NTSC) | 61 | tuner=60 - Thomson DDT 7611 (ATSC/NTSC) |
62 | tuner=61 - Tena TNF9533-D/IF/TNF9533-B/DF | ||
63 | tuner=62 - Philips TEA5767HN FM Radio | ||
64 | tuner=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 | ||
60 | Some 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 | ||
61 | Credits | 70 | Credits |
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 | |||
20 | decoders, EEPROMs, teletext decoders ... | 20 | decoders, EEPROMs, teletext decoders ... |
21 | 21 | ||
22 | 22 | ||
23 | Unsupported Cards: | 23 | Unsupported Cards: |
24 | ------------------ | 24 | ------------------ |
25 | 25 | ||
26 | Cards with Zoran (ZR) or Philips (SAA) or ISA are not supported by | 26 | Cards with Zoran (ZR) or Philips (SAA) or ISA are not supported by |
@@ -50,11 +50,11 @@ Bt848a/Bt849 single crytal operation support possible!!! | |||
50 | Miro/Pinnacle PCTV | 50 | Miro/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! | |||
70 | Hauppauge Win/TV pci | 70 | Hauppauge Win/TV pci |
71 | -------------------- | 71 | -------------------- |
72 | 72 | ||
73 | There are many different versions of the Hauppauge cards with different | 73 | There are many different versions of the Hauppauge cards with different |
74 | tuners (TV+Radio ...), teletext decoders. | 74 | tuners (TV+Radio ...), teletext decoders. |
75 | Note that even cards with same model numbers have (depending on the revision) | 75 | Note that even cards with same model numbers have (depending on the revision) |
76 | different chips on it. | 76 | different 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 | ||
82 | e.g.: | 82 | e.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 | ||
101 | Askey CPH-Series | 101 | Askey 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 | ||
311 | Provideo | 311 | Provideo |
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 | ||
532 | IODATA (jp) | 532 | IODATA (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 | ||
545 | www.sigmacom.co.kr | 545 | www.sigmacom.co.kr |
546 | ------------------ | 546 | ------------------ |
547 | Sigma Cyber TV II | 547 | Sigma Cyber TV II |
548 | 548 | ||
549 | www.sasem.co.kr | 549 | www.sasem.co.kr |
550 | --------------- | 550 | --------------- |
551 | Litte OnAir TV | 551 | Litte OnAir TV |
552 | 552 | ||
553 | hama | 553 | hama |
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 | ||
639 | Jetway (www.jetway.com.tw) | 639 | Jetway (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 | ||
644 | Galaxis | 644 | Galaxis |
@@ -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 | ||
744 | Matrix-Vision | 744 | Matrix-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 | ||
768 | Asonic (www.asonic.com.cn) (website down) | 768 | Asonic (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 | ||
805 | JTT/ Justy Corp.http://www.justy.co.jp/ (www.jtt.com.jp website down) | 805 | JTT/ 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 | ||
809 | ADS www.adstech.com | 809 | ADS 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 | ||
814 | AVEC www.prochips.com | 814 | AVEC 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 | ||
879 | www.sknet-web.co.jp | 879 | www.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 | ||
893 | VCR (http://www.vcrinc.com/) | 893 | VCR (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 | ||
922 | www.euresys.com | 922 | www.euresys.com |
923 | PICOLO series | 923 | PICOLO series |
924 | 924 | ||
925 | PMC/Pace | 925 | PMC/Pace |
926 | www.pacecom.co.uk website closed | 926 | www.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 | ||
37 | 0x47 is the sync byte for MPEG-2 transport stream packets. | ||
38 | Datasheet incorrectly states to use 47 decimal. 188 is the length. | ||
39 | All DVB compliant frontends output packets with this start code. | ||
40 | |||
37 | ================================================================================= | 41 | ================================================================================= |