diff options
Diffstat (limited to 'Documentation')
25 files changed, 773 insertions, 1051 deletions
diff --git a/Documentation/Changes b/Documentation/Changes index fe5ae0f55020..b02f476c2973 100644 --- a/Documentation/Changes +++ b/Documentation/Changes | |||
@@ -15,24 +15,6 @@ and therefore owes credit to the same people as that file (Jared Mauch, | |||
15 | Axel Boldt, Alessandro Sigala, and countless other users all over the | 15 | Axel Boldt, Alessandro Sigala, and countless other users all over the |
16 | 'net). | 16 | 'net). |
17 | 17 | ||
18 | The latest revision of this document, in various formats, can always | ||
19 | be found at <http://cyberbuzz.gatech.edu/kaboom/linux/Changes-2.4/>. | ||
20 | |||
21 | Feel free to translate this document. If you do so, please send me a | ||
22 | URL to your translation for inclusion in future revisions of this | ||
23 | document. | ||
24 | |||
25 | Smotrite file <http://oblom.rnc.ru/linux/kernel/Changes.ru>, yavlyaushisya | ||
26 | russkim perevodom dannogo documenta. | ||
27 | |||
28 | Visite <http://www2.adi.uam.es/~ender/tecnico/> para obtener la traducción | ||
29 | al español de este documento en varios formatos. | ||
30 | |||
31 | Eine deutsche Version dieser Datei finden Sie unter | ||
32 | <http://www.stefan-winter.de/Changes-2.4.0.txt>. | ||
33 | |||
34 | Chris Ricker (kaboom@gatech.edu or chris.ricker@genetics.utah.edu). | ||
35 | |||
36 | Current Minimal Requirements | 18 | Current Minimal Requirements |
37 | ============================ | 19 | ============================ |
38 | 20 | ||
diff --git a/Documentation/DocBook/Makefile b/Documentation/DocBook/Makefile index 1c955883cf58..2975291e296a 100644 --- a/Documentation/DocBook/Makefile +++ b/Documentation/DocBook/Makefile | |||
@@ -9,7 +9,7 @@ | |||
9 | DOCBOOKS := wanbook.xml z8530book.xml mcabook.xml videobook.xml \ | 9 | DOCBOOKS := wanbook.xml z8530book.xml mcabook.xml videobook.xml \ |
10 | kernel-hacking.xml kernel-locking.xml deviceiobook.xml \ | 10 | kernel-hacking.xml kernel-locking.xml deviceiobook.xml \ |
11 | procfs-guide.xml writing_usb_driver.xml \ | 11 | procfs-guide.xml writing_usb_driver.xml \ |
12 | sis900.xml kernel-api.xml journal-api.xml lsm.xml usb.xml \ | 12 | kernel-api.xml journal-api.xml lsm.xml usb.xml \ |
13 | gadget.xml libata.xml mtdnand.xml librs.xml rapidio.xml | 13 | gadget.xml libata.xml mtdnand.xml librs.xml rapidio.xml |
14 | 14 | ||
15 | ### | 15 | ### |
diff --git a/Documentation/DocBook/sis900.tmpl b/Documentation/DocBook/sis900.tmpl deleted file mode 100644 index 6c2cbac93c3f..000000000000 --- a/Documentation/DocBook/sis900.tmpl +++ /dev/null | |||
@@ -1,585 +0,0 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" | ||
3 | "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []> | ||
4 | |||
5 | <book id="SiS900Guide"> | ||
6 | |||
7 | <bookinfo> | ||
8 | |||
9 | <title>SiS 900/7016 Fast Ethernet Device Driver</title> | ||
10 | |||
11 | <authorgroup> | ||
12 | <author> | ||
13 | <firstname>Ollie</firstname> | ||
14 | <surname>Lho</surname> | ||
15 | </author> | ||
16 | |||
17 | <author> | ||
18 | <firstname>Lei Chun</firstname> | ||
19 | <surname>Chang</surname> | ||
20 | </author> | ||
21 | </authorgroup> | ||
22 | |||
23 | <edition>Document Revision: 0.3 for SiS900 driver v1.06 & v1.07</edition> | ||
24 | <pubdate>November 16, 2000</pubdate> | ||
25 | |||
26 | <copyright> | ||
27 | <year>1999</year> | ||
28 | <holder>Silicon Integrated System Corp.</holder> | ||
29 | </copyright> | ||
30 | |||
31 | <legalnotice> | ||
32 | <para> | ||
33 | This program is free software; you can redistribute it and/or modify | ||
34 | it under the terms of the GNU General Public License as published by | ||
35 | the Free Software Foundation; either version 2 of the License, or | ||
36 | (at your option) any later version. | ||
37 | </para> | ||
38 | |||
39 | <para> | ||
40 | This program is distributed in the hope that it will be useful, | ||
41 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
42 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
43 | GNU General Public License for more details. | ||
44 | </para> | ||
45 | |||
46 | <para> | ||
47 | You should have received a copy of the GNU General Public License | ||
48 | along with this program; if not, write to the Free Software | ||
49 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
50 | </para> | ||
51 | </legalnotice> | ||
52 | |||
53 | <abstract> | ||
54 | <para> | ||
55 | This document gives some information on installation and usage of SiS 900/7016 | ||
56 | device driver under Linux. | ||
57 | </para> | ||
58 | </abstract> | ||
59 | |||
60 | </bookinfo> | ||
61 | |||
62 | <toc></toc> | ||
63 | |||
64 | <chapter id="intro"> | ||
65 | <title>Introduction</title> | ||
66 | |||
67 | <para> | ||
68 | This document describes the revision 1.06 and 1.07 of SiS 900/7016 Fast Ethernet | ||
69 | device driver under Linux. The driver is developed by Silicon Integrated | ||
70 | System Corp. and distributed freely under the GNU General Public License (GPL). | ||
71 | The driver can be compiled as a loadable module and used under Linux kernel | ||
72 | version 2.2.x. (rev. 1.06) | ||
73 | With minimal changes, the driver can also be used under 2.3.x and 2.4.x kernel | ||
74 | (rev. 1.07), please see | ||
75 | <xref linkend="install"/>. If you are intended to | ||
76 | use the driver for earlier kernels, you are on your own. | ||
77 | </para> | ||
78 | |||
79 | <para> | ||
80 | The driver is tested with usual TCP/IP applications including | ||
81 | FTP, Telnet, Netscape etc. and is used constantly by the developers. | ||
82 | </para> | ||
83 | |||
84 | <para> | ||
85 | Please send all comments/fixes/questions to | ||
86 | <ulink url="mailto:lcchang@sis.com.tw">Lei-Chun Chang</ulink>. | ||
87 | </para> | ||
88 | </chapter> | ||
89 | |||
90 | <chapter id="changes"> | ||
91 | <title>Changes</title> | ||
92 | |||
93 | <para> | ||
94 | Changes made in Revision 1.07 | ||
95 | |||
96 | <orderedlist> | ||
97 | <listitem> | ||
98 | <para> | ||
99 | Separation of sis900.c and sis900.h in order to move most | ||
100 | constant definition to sis900.h (many of those constants were | ||
101 | corrected) | ||
102 | </para> | ||
103 | </listitem> | ||
104 | |||
105 | <listitem> | ||
106 | <para> | ||
107 | Clean up PCI detection, the pci-scan from Donald Becker were not used, | ||
108 | just simple pci_find_*. | ||
109 | </para> | ||
110 | </listitem> | ||
111 | |||
112 | <listitem> | ||
113 | <para> | ||
114 | MII detection is modified to support multiple mii transceiver. | ||
115 | </para> | ||
116 | </listitem> | ||
117 | |||
118 | <listitem> | ||
119 | <para> | ||
120 | Bugs in read_eeprom, mdio_* were removed. | ||
121 | </para> | ||
122 | </listitem> | ||
123 | |||
124 | <listitem> | ||
125 | <para> | ||
126 | Lot of sis900 irrelevant comments were removed/changed and | ||
127 | more comments were added to reflect the real situation. | ||
128 | </para> | ||
129 | </listitem> | ||
130 | |||
131 | <listitem> | ||
132 | <para> | ||
133 | Clean up of physical/virtual address space mess in buffer | ||
134 | descriptors. | ||
135 | </para> | ||
136 | </listitem> | ||
137 | |||
138 | <listitem> | ||
139 | <para> | ||
140 | Better transmit/receive error handling. | ||
141 | </para> | ||
142 | </listitem> | ||
143 | |||
144 | <listitem> | ||
145 | <para> | ||
146 | The driver now uses zero-copy single buffer management | ||
147 | scheme to improve performance. | ||
148 | </para> | ||
149 | </listitem> | ||
150 | |||
151 | <listitem> | ||
152 | <para> | ||
153 | Names of variables were changed to be more consistent. | ||
154 | </para> | ||
155 | </listitem> | ||
156 | |||
157 | <listitem> | ||
158 | <para> | ||
159 | Clean up of auo-negotiation and timer code. | ||
160 | </para> | ||
161 | </listitem> | ||
162 | |||
163 | <listitem> | ||
164 | <para> | ||
165 | Automatic detection and change of PHY on the fly. | ||
166 | </para> | ||
167 | </listitem> | ||
168 | |||
169 | <listitem> | ||
170 | <para> | ||
171 | Bug in mac probing fixed. | ||
172 | </para> | ||
173 | </listitem> | ||
174 | |||
175 | <listitem> | ||
176 | <para> | ||
177 | Fix 630E equalier problem by modifying the equalizer workaround rule. | ||
178 | </para> | ||
179 | </listitem> | ||
180 | |||
181 | <listitem> | ||
182 | <para> | ||
183 | Support for ICS1893 10/100 Interated PHYceiver. | ||
184 | </para> | ||
185 | </listitem> | ||
186 | |||
187 | <listitem> | ||
188 | <para> | ||
189 | Support for media select by ifconfig. | ||
190 | </para> | ||
191 | </listitem> | ||
192 | |||
193 | <listitem> | ||
194 | <para> | ||
195 | Added kernel-doc extratable documentation. | ||
196 | </para> | ||
197 | </listitem> | ||
198 | |||
199 | </orderedlist> | ||
200 | </para> | ||
201 | </chapter> | ||
202 | |||
203 | <chapter id="tested"> | ||
204 | <title>Tested Environment</title> | ||
205 | |||
206 | <para> | ||
207 | This driver is developed on the following hardware | ||
208 | |||
209 | <itemizedlist> | ||
210 | <listitem> | ||
211 | |||
212 | <para> | ||
213 | Intel Celeron 500 with SiS 630 (rev 02) chipset | ||
214 | </para> | ||
215 | </listitem> | ||
216 | <listitem> | ||
217 | |||
218 | <para> | ||
219 | SiS 900 (rev 01) and SiS 7016/7014 Fast Ethernet Card | ||
220 | </para> | ||
221 | </listitem> | ||
222 | |||
223 | </itemizedlist> | ||
224 | |||
225 | and tested with these software environments | ||
226 | |||
227 | <itemizedlist> | ||
228 | <listitem> | ||
229 | |||
230 | <para> | ||
231 | Red Hat Linux version 6.2 | ||
232 | </para> | ||
233 | </listitem> | ||
234 | <listitem> | ||
235 | |||
236 | <para> | ||
237 | Linux kernel version 2.4.0 | ||
238 | </para> | ||
239 | </listitem> | ||
240 | <listitem> | ||
241 | |||
242 | <para> | ||
243 | Netscape version 4.6 | ||
244 | </para> | ||
245 | </listitem> | ||
246 | <listitem> | ||
247 | |||
248 | <para> | ||
249 | NcFTP 3.0.0 beta 18 | ||
250 | </para> | ||
251 | </listitem> | ||
252 | <listitem> | ||
253 | |||
254 | <para> | ||
255 | Samba version 2.0.3 | ||
256 | </para> | ||
257 | </listitem> | ||
258 | |||
259 | </itemizedlist> | ||
260 | |||
261 | </para> | ||
262 | |||
263 | </chapter> | ||
264 | |||
265 | <chapter id="files"> | ||
266 | <title>Files in This Package</title> | ||
267 | |||
268 | <para> | ||
269 | In the package you can find these files: | ||
270 | </para> | ||
271 | |||
272 | <para> | ||
273 | <variablelist> | ||
274 | |||
275 | <varlistentry> | ||
276 | <term>sis900.c</term> | ||
277 | <listitem> | ||
278 | <para> | ||
279 | Driver source file in C | ||
280 | </para> | ||
281 | </listitem> | ||
282 | </varlistentry> | ||
283 | |||
284 | <varlistentry> | ||
285 | <term>sis900.h</term> | ||
286 | <listitem> | ||
287 | <para> | ||
288 | Header file for sis900.c | ||
289 | </para> | ||
290 | </listitem> | ||
291 | </varlistentry> | ||
292 | |||
293 | <varlistentry> | ||
294 | <term>sis900.sgml</term> | ||
295 | <listitem> | ||
296 | <para> | ||
297 | DocBook SGML source of the document | ||
298 | </para> | ||
299 | </listitem> | ||
300 | </varlistentry> | ||
301 | |||
302 | <varlistentry> | ||
303 | <term>sis900.txt</term> | ||
304 | <listitem> | ||
305 | <para> | ||
306 | Driver document in plain text | ||
307 | </para> | ||
308 | </listitem> | ||
309 | </varlistentry> | ||
310 | |||
311 | </variablelist> | ||
312 | </para> | ||
313 | </chapter> | ||
314 | |||
315 | <chapter id="install"> | ||
316 | <title>Installation</title> | ||
317 | |||
318 | <para> | ||
319 | Silicon Integrated System Corp. is cooperating closely with core Linux Kernel | ||
320 | developers. The revisions of SiS 900 driver are distributed by the usuall channels | ||
321 | for kernel tar files and patches. Those kernel tar files for official kernel and | ||
322 | patches for kernel pre-release can be download at | ||
323 | <ulink url="http://ftp.kernel.org/pub/linux/kernel/">official kernel ftp site</ulink> | ||
324 | and its mirrors. | ||
325 | The 1.06 revision can be found in kernel version later than 2.3.15 and pre-2.2.14, | ||
326 | and 1.07 revision can be found in kernel version 2.4.0. | ||
327 | If you have no prior experience in networking under Linux, please read | ||
328 | <ulink url="http://www.tldp.org/">Ethernet HOWTO</ulink> and | ||
329 | <ulink url="http://www.tldp.org/">Networking HOWTO</ulink> available from | ||
330 | Linux Documentation Project (LDP). | ||
331 | </para> | ||
332 | |||
333 | <para> | ||
334 | The driver is bundled in release later than 2.2.11 and 2.3.15 so this | ||
335 | is the most easy case. | ||
336 | Be sure you have the appropriate packages for compiling kernel source. | ||
337 | Those packages are listed in Document/Changes in kernel source | ||
338 | distribution. If you have to install the driver other than those bundled | ||
339 | in kernel release, you should have your driver file | ||
340 | <filename>sis900.c</filename> and <filename>sis900.h</filename> | ||
341 | copied into <filename class="directory">/usr/src/linux/drivers/net/</filename> first. | ||
342 | There are two alternative ways to install the driver | ||
343 | </para> | ||
344 | |||
345 | <sect1> | ||
346 | <title>Building the driver as loadable module</title> | ||
347 | |||
348 | <para> | ||
349 | To build the driver as a loadable kernel module you have to reconfigure | ||
350 | the kernel to activate network support by | ||
351 | </para> | ||
352 | |||
353 | <para><screen> | ||
354 | make menuconfig | ||
355 | </screen></para> | ||
356 | |||
357 | <para> | ||
358 | Choose <quote>Loadable module support ---></quote>, | ||
359 | then select <quote>Enable loadable module support</quote>. | ||
360 | </para> | ||
361 | |||
362 | <para> | ||
363 | Choose <quote>Network Device Support ---></quote>, select | ||
364 | <quote>Ethernet (10 or 100Mbit)</quote>. | ||
365 | Then select <quote>EISA, VLB, PCI and on board controllers</quote>, | ||
366 | and choose <quote>SiS 900/7016 PCI Fast Ethernet Adapter support</quote> | ||
367 | to <quote>M</quote>. | ||
368 | </para> | ||
369 | |||
370 | <para> | ||
371 | After reconfiguring the kernel, you can make the driver module by | ||
372 | </para> | ||
373 | |||
374 | <para><screen> | ||
375 | make modules | ||
376 | </screen></para> | ||
377 | |||
378 | <para> | ||
379 | The driver should be compiled with no errors. After compiling the driver, | ||
380 | the driver can be installed to proper place by | ||
381 | </para> | ||
382 | |||
383 | <para><screen> | ||
384 | make modules_install | ||
385 | </screen></para> | ||
386 | |||
387 | <para> | ||
388 | Load the driver into kernel by | ||
389 | </para> | ||
390 | |||
391 | <para><screen> | ||
392 | insmod sis900 | ||
393 | </screen></para> | ||
394 | |||
395 | <para> | ||
396 | When loading the driver into memory, some information message can be view by | ||
397 | </para> | ||
398 | |||
399 | <para> | ||
400 | <screen> | ||
401 | dmesg | ||
402 | </screen> | ||
403 | |||
404 | or | ||
405 | |||
406 | <screen> | ||
407 | cat /var/log/message | ||
408 | </screen> | ||
409 | </para> | ||
410 | |||
411 | <para> | ||
412 | If the driver is loaded properly you will have messages similar to this: | ||
413 | </para> | ||
414 | |||
415 | <para><screen> | ||
416 | sis900.c: v1.07.06 11/07/2000 | ||
417 | eth0: SiS 900 PCI Fast Ethernet at 0xd000, IRQ 10, 00:00:e8:83:7f:a4. | ||
418 | eth0: SiS 900 Internal MII PHY transceiver found at address 1. | ||
419 | eth0: Using SiS 900 Internal MII PHY as default | ||
420 | </screen></para> | ||
421 | |||
422 | <para> | ||
423 | showing the version of the driver and the results of probing routine. | ||
424 | </para> | ||
425 | |||
426 | <para> | ||
427 | Once the driver is loaded, network can be brought up by | ||
428 | </para> | ||
429 | |||
430 | <para><screen> | ||
431 | /sbin/ifconfig eth0 IPADDR broadcast BROADCAST netmask NETMASK media TYPE | ||
432 | </screen></para> | ||
433 | |||
434 | <para> | ||
435 | where IPADDR, BROADCAST, NETMASK are your IP address, broadcast address and | ||
436 | netmask respectively. TYPE is used to set medium type used by the device. | ||
437 | Typical values are "10baseT"(twisted-pair 10Mbps Ethernet) or "100baseT" | ||
438 | (twisted-pair 100Mbps Ethernet). For more information on how to configure | ||
439 | network interface, please refer to | ||
440 | <ulink url="http://www.tldp.org/">Networking HOWTO</ulink>. | ||
441 | </para> | ||
442 | |||
443 | <para> | ||
444 | The link status is also shown by kernel messages. For example, after the | ||
445 | network interface is activated, you may have the message: | ||
446 | </para> | ||
447 | |||
448 | <para><screen> | ||
449 | eth0: Media Link On 100mbps full-duplex | ||
450 | </screen></para> | ||
451 | |||
452 | <para> | ||
453 | If you try to unplug the twist pair (TP) cable you will get | ||
454 | </para> | ||
455 | |||
456 | <para><screen> | ||
457 | eth0: Media Link Off | ||
458 | </screen></para> | ||
459 | |||
460 | <para> | ||
461 | indicating that the link is failed. | ||
462 | </para> | ||
463 | </sect1> | ||
464 | |||
465 | <sect1> | ||
466 | <title>Building the driver into kernel</title> | ||
467 | |||
468 | <para> | ||
469 | If you want to make the driver into kernel, choose <quote>Y</quote> | ||
470 | rather than <quote>M</quote> on | ||
471 | <quote>SiS 900/7016 PCI Fast Ethernet Adapter support</quote> | ||
472 | when configuring the kernel. Build the kernel image in the usual way | ||
473 | </para> | ||
474 | |||
475 | <para><screen> | ||
476 | make clean | ||
477 | |||
478 | make bzlilo | ||
479 | </screen></para> | ||
480 | |||
481 | <para> | ||
482 | Next time the system reboot, you have the driver in memory. | ||
483 | </para> | ||
484 | |||
485 | </sect1> | ||
486 | </chapter> | ||
487 | |||
488 | <chapter id="problems"> | ||
489 | <title>Known Problems and Bugs</title> | ||
490 | |||
491 | <para> | ||
492 | There are some known problems and bugs. If you find any other bugs please | ||
493 | mail to <ulink url="mailto:lcchang@sis.com.tw">lcchang@sis.com.tw</ulink> | ||
494 | |||
495 | <orderedlist> | ||
496 | |||
497 | <listitem> | ||
498 | <para> | ||
499 | AM79C901 HomePNA PHY is not thoroughly tested, there may be some | ||
500 | bugs in the <quote>on the fly</quote> change of transceiver. | ||
501 | </para> | ||
502 | </listitem> | ||
503 | |||
504 | <listitem> | ||
505 | <para> | ||
506 | A bug is hidden somewhere in the receive buffer management code, | ||
507 | the bug causes NULL pointer reference in the kernel. This fault is | ||
508 | caught before bad things happen and reported with the message: | ||
509 | |||
510 | <computeroutput> | ||
511 | eth0: NULL pointer encountered in Rx ring, skipping | ||
512 | </computeroutput> | ||
513 | |||
514 | which can be viewed with <literal remap="tt">dmesg</literal> or | ||
515 | <literal remap="tt">cat /var/log/message</literal>. | ||
516 | </para> | ||
517 | </listitem> | ||
518 | |||
519 | <listitem> | ||
520 | <para> | ||
521 | The media type change from 10Mbps to 100Mbps twisted-pair ethernet | ||
522 | by ifconfig causes the media link down. | ||
523 | </para> | ||
524 | </listitem> | ||
525 | |||
526 | </orderedlist> | ||
527 | </para> | ||
528 | </chapter> | ||
529 | |||
530 | <chapter id="RHistory"> | ||
531 | <title>Revision History</title> | ||
532 | |||
533 | <para> | ||
534 | <itemizedlist> | ||
535 | |||
536 | <listitem> | ||
537 | <para> | ||
538 | November 13, 2000, Revision 1.07, seventh release, 630E problem fixed | ||
539 | and further clean up. | ||
540 | </para> | ||
541 | </listitem> | ||
542 | |||
543 | <listitem> | ||
544 | <para> | ||
545 | November 4, 1999, Revision 1.06, Second release, lots of clean up | ||
546 | and optimization. | ||
547 | </para> | ||
548 | </listitem> | ||
549 | |||
550 | <listitem> | ||
551 | <para> | ||
552 | August 8, 1999, Revision 1.05, Initial Public Release | ||
553 | </para> | ||
554 | </listitem> | ||
555 | |||
556 | </itemizedlist> | ||
557 | </para> | ||
558 | </chapter> | ||
559 | |||
560 | <chapter id="acknowledgements"> | ||
561 | <title>Acknowledgements</title> | ||
562 | |||
563 | <para> | ||
564 | This driver was originally derived form | ||
565 | <ulink url="mailto:becker@cesdis1.gsfc.nasa.gov">Donald Becker</ulink>'s | ||
566 | <ulink url="ftp://cesdis.gsfc.nasa.gov/pub/linux/drivers/kern-2.3/pci-skeleton.c" | ||
567 | >pci-skeleton</ulink> and | ||
568 | <ulink url="ftp://cesdis.gsfc.nasa.gov/pub/linux/drivers/kern-2.3/rtl8139.c" | ||
569 | >rtl8139</ulink> drivers. Donald also provided various suggestion | ||
570 | regarded with improvements made in revision 1.06. | ||
571 | </para> | ||
572 | |||
573 | <para> | ||
574 | The 1.05 revision was created by | ||
575 | <ulink url="mailto:cmhuang@sis.com.tw">Jim Huang</ulink>, AMD 79c901 | ||
576 | support was added by <ulink url="mailto:lcs@sis.com.tw">Chin-Shan Li</ulink>. | ||
577 | </para> | ||
578 | </chapter> | ||
579 | |||
580 | <chapter id="functions"> | ||
581 | <title>List of Functions</title> | ||
582 | !Idrivers/net/sis900.c | ||
583 | </chapter> | ||
584 | |||
585 | </book> | ||
diff --git a/Documentation/connector/connector.txt b/Documentation/connector/connector.txt index 57a314b14cf8..ad6e0ba7b38c 100644 --- a/Documentation/connector/connector.txt +++ b/Documentation/connector/connector.txt | |||
@@ -69,10 +69,11 @@ Unregisters new callback with connector core. | |||
69 | 69 | ||
70 | struct cb_id *id - unique connector's user identifier. | 70 | struct cb_id *id - unique connector's user identifier. |
71 | 71 | ||
72 | void cn_netlink_send(struct cn_msg *msg, u32 __groups, int gfp_mask); | 72 | int cn_netlink_send(struct cn_msg *msg, u32 __groups, int gfp_mask); |
73 | 73 | ||
74 | Sends message to the specified groups. It can be safely called from | 74 | Sends message to the specified groups. It can be safely called from |
75 | any context, but may silently fail under strong memory pressure. | 75 | softirq context, but may silently fail under strong memory pressure. |
76 | If there are no listeners for given group -ESRCH can be returned. | ||
76 | 77 | ||
77 | struct cn_msg * - message header(with attached data). | 78 | struct cn_msg * - message header(with attached data). |
78 | u32 __group - destination group. | 79 | u32 __group - destination group. |
diff --git a/Documentation/cpusets.txt b/Documentation/cpusets.txt index 990998ee10b6..30c41459953c 100644 --- a/Documentation/cpusets.txt +++ b/Documentation/cpusets.txt | |||
@@ -4,8 +4,9 @@ | |||
4 | Copyright (C) 2004 BULL SA. | 4 | Copyright (C) 2004 BULL SA. |
5 | Written by Simon.Derr@bull.net | 5 | Written by Simon.Derr@bull.net |
6 | 6 | ||
7 | Portions Copyright (c) 2004 Silicon Graphics, Inc. | 7 | Portions Copyright (c) 2004-2006 Silicon Graphics, Inc. |
8 | Modified by Paul Jackson <pj@sgi.com> | 8 | Modified by Paul Jackson <pj@sgi.com> |
9 | Modified by Christoph Lameter <clameter@sgi.com> | ||
9 | 10 | ||
10 | CONTENTS: | 11 | CONTENTS: |
11 | ========= | 12 | ========= |
@@ -90,7 +91,8 @@ This can be especially valuable on: | |||
90 | 91 | ||
91 | These subsets, or "soft partitions" must be able to be dynamically | 92 | These subsets, or "soft partitions" must be able to be dynamically |
92 | adjusted, as the job mix changes, without impacting other concurrently | 93 | adjusted, as the job mix changes, without impacting other concurrently |
93 | executing jobs. | 94 | executing jobs. The location of the running jobs pages may also be moved |
95 | when the memory locations are changed. | ||
94 | 96 | ||
95 | The kernel cpuset patch provides the minimum essential kernel | 97 | The kernel cpuset patch provides the minimum essential kernel |
96 | mechanisms required to efficiently implement such subsets. It | 98 | mechanisms required to efficiently implement such subsets. It |
@@ -102,8 +104,8 @@ memory allocator code. | |||
102 | 1.3 How are cpusets implemented ? | 104 | 1.3 How are cpusets implemented ? |
103 | --------------------------------- | 105 | --------------------------------- |
104 | 106 | ||
105 | Cpusets provide a Linux kernel (2.6.7 and above) mechanism to constrain | 107 | Cpusets provide a Linux kernel mechanism to constrain which CPUs and |
106 | which CPUs and Memory Nodes are used by a process or set of processes. | 108 | Memory Nodes are used by a process or set of processes. |
107 | 109 | ||
108 | The Linux kernel already has a pair of mechanisms to specify on which | 110 | The Linux kernel already has a pair of mechanisms to specify on which |
109 | CPUs a task may be scheduled (sched_setaffinity) and on which Memory | 111 | CPUs a task may be scheduled (sched_setaffinity) and on which Memory |
@@ -371,22 +373,17 @@ cpusets memory placement policy 'mems' subsequently changes. | |||
371 | If the cpuset flag file 'memory_migrate' is set true, then when | 373 | If the cpuset flag file 'memory_migrate' is set true, then when |
372 | tasks are attached to that cpuset, any pages that task had | 374 | tasks are attached to that cpuset, any pages that task had |
373 | allocated to it on nodes in its previous cpuset are migrated | 375 | allocated to it on nodes in its previous cpuset are migrated |
374 | to the tasks new cpuset. Depending on the implementation, | 376 | to the tasks new cpuset. The relative placement of the page within |
375 | this migration may either be done by swapping the page out, | 377 | the cpuset is preserved during these migration operations if possible. |
376 | so that the next time the page is referenced, it will be paged | 378 | For example if the page was on the second valid node of the prior cpuset |
377 | into the tasks new cpuset, usually on the node where it was | 379 | then the page will be placed on the second valid node of the new cpuset. |
378 | referenced, or this migration may be done by directly copying | 380 | |
379 | the pages from the tasks previous cpuset to the new cpuset, | ||
380 | where possible to the same node, relative to the new cpuset, | ||
381 | as the node that held the page, relative to the old cpuset. | ||
382 | Also if 'memory_migrate' is set true, then if that cpusets | 381 | Also if 'memory_migrate' is set true, then if that cpusets |
383 | 'mems' file is modified, pages allocated to tasks in that | 382 | 'mems' file is modified, pages allocated to tasks in that |
384 | cpuset, that were on nodes in the previous setting of 'mems', | 383 | cpuset, that were on nodes in the previous setting of 'mems', |
385 | will be moved to nodes in the new setting of 'mems.' Again, | 384 | will be moved to nodes in the new setting of 'mems.' |
386 | depending on the implementation, this might be done by swapping, | 385 | Pages that were not in the tasks prior cpuset, or in the cpusets |
387 | or by direct copying. In either case, pages that were not in | 386 | prior 'mems' setting, will not be moved. |
388 | the tasks prior cpuset, or in the cpusets prior 'mems' setting, | ||
389 | will not be moved. | ||
390 | 387 | ||
391 | There is an exception to the above. If hotplug functionality is used | 388 | There is an exception to the above. If hotplug functionality is used |
392 | to remove all the CPUs that are currently assigned to a cpuset, | 389 | to remove all the CPUs that are currently assigned to a cpuset, |
@@ -434,16 +431,6 @@ and then start a subshell 'sh' in that cpuset: | |||
434 | # The next line should display '/Charlie' | 431 | # The next line should display '/Charlie' |
435 | cat /proc/self/cpuset | 432 | cat /proc/self/cpuset |
436 | 433 | ||
437 | In the case that a change of cpuset includes wanting to move already | ||
438 | allocated memory pages, consider further the work of IWAMOTO | ||
439 | Toshihiro <iwamoto@valinux.co.jp> for page remapping and memory | ||
440 | hotremoval, which can be found at: | ||
441 | |||
442 | http://people.valinux.co.jp/~iwamoto/mh.html | ||
443 | |||
444 | The integration of cpusets with such memory migration is not yet | ||
445 | available. | ||
446 | |||
447 | In the future, a C library interface to cpusets will likely be | 434 | In the future, a C library interface to cpusets will likely be |
448 | available. For now, the only way to query or modify cpusets is | 435 | available. For now, the only way to query or modify cpusets is |
449 | via the cpuset file system, using the various cd, mkdir, echo, cat, | 436 | via the cpuset file system, using the various cd, mkdir, echo, cat, |
diff --git a/Documentation/dvb/avermedia.txt b/Documentation/dvb/avermedia.txt index 068070ff13cd..8bab8461a4af 100644 --- a/Documentation/dvb/avermedia.txt +++ b/Documentation/dvb/avermedia.txt | |||
@@ -1,4 +1,3 @@ | |||
1 | |||
2 | HOWTO: Get An Avermedia DVB-T working under Linux | 1 | HOWTO: Get An Avermedia DVB-T working under Linux |
3 | ______________________________________________ | 2 | ______________________________________________ |
4 | 3 | ||
@@ -137,11 +136,8 @@ Getting the card going | |||
137 | To power up the card, load the following modules in the | 136 | To power up the card, load the following modules in the |
138 | following order: | 137 | following order: |
139 | 138 | ||
140 | * insmod dvb-core.o | 139 | * modprobe bttv (normally loaded automatically) |
141 | * modprobe bttv.o | 140 | * modprobe dvb-bt8xx (or place dvb-bt8xx in /etc/modules) |
142 | * insmod bt878.o | ||
143 | * insmod dvb-bt8xx.o | ||
144 | * insmod sp887x.o | ||
145 | 141 | ||
146 | Insertion of these modules into the running kernel will | 142 | Insertion of these modules into the running kernel will |
147 | activate the appropriate DVB device nodes. It is then possible | 143 | activate the appropriate DVB device nodes. It is then possible |
@@ -302,4 +298,4 @@ Further Update | |||
302 | Many thanks to Nigel Pearson for the updates to this document | 298 | Many thanks to Nigel Pearson for the updates to this document |
303 | since the recent revision of the driver. | 299 | since the recent revision of the driver. |
304 | 300 | ||
305 | January 29th 2004 | 301 | February 14th 2006 |
diff --git a/Documentation/dvb/bt8xx.txt b/Documentation/dvb/bt8xx.txt index 52ed462061df..4e7614e606c5 100644 --- a/Documentation/dvb/bt8xx.txt +++ b/Documentation/dvb/bt8xx.txt | |||
@@ -1,118 +1,78 @@ | |||
1 | How to get the Nebula, PCTV, FusionHDTV Lite and Twinhan DST cards working | 1 | How to get the bt8xx cards 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 as the PCI interface, and require the bttv driver |
8 | options below for the DST card. | 8 | for accessing the i2c bus and the gpio pins of the bt8xx chipset. |
9 | Please see Documentation/dvb/cards.txt => o Cards based on the Conexant Bt8xx PCI bridge: | ||
9 | 10 | ||
10 | 1) General informations | 11 | Compiling kernel please enable: |
11 | ======================= | 12 | a.)"Device drivers" => "Multimedia devices" => "Video For Linux" => "BT848 Video For Linux" |
12 | 13 | b.)"Device drivers" => "Multimedia devices" => "Digital Video Broadcasting Devices" | |
13 | These drivers require the bttv driver to provide the means to access | 14 | => "DVB for Linux" "DVB Core Support" "Bt8xx based PCI Cards" |
14 | the i2c bus and the gpio pins of the bt8xx chipset. | ||
15 | |||
16 | Because of this, you need to enable | ||
17 | "Device drivers" => "Multimedia devices" | ||
18 | => "Video For Linux" => "BT848 Video For Linux" | ||
19 | |||
20 | Furthermore you need to enable | ||
21 | "Device drivers" => "Multimedia devices" => "Digital Video Broadcasting Devices" | ||
22 | => "DVB for Linux" "DVB Core Support" "BT8xx based PCI cards" | ||
23 | 15 | ||
24 | 2) Loading Modules | 16 | 2) Loading Modules |
25 | ================== | 17 | ================== |
26 | 18 | ||
27 | In general you need to load the bttv driver, which will handle the gpio and | 19 | In default cases bttv is loaded automatically. |
28 | i2c communication for us, plus the common dvb-bt8xx device driver. | 20 | To load the backend either place dvb-bt8xx in etc/modules, or apply manually: |
29 | The frontends for Nebula (nxt6000), Pinnacle PCTV (cx24110), TwinHan (dst), | ||
30 | FusionHDTV DVB-T Lite (mt352) and FusionHDTV5 Lite (lgdt330x) are loaded | ||
31 | automatically by the dvb-bt8xx device driver. | ||
32 | |||
33 | 3a) Nebula / Pinnacle PCTV / FusionHDTV Lite | ||
34 | --------------------------------------------- | ||
35 | |||
36 | $ modprobe bttv (normally bttv is being loaded automatically by kmod) | ||
37 | $ modprobe dvb-bt8xx | ||
38 | |||
39 | (or just place dvb-bt8xx in /etc/modules for automatic loading) | ||
40 | |||
41 | |||
42 | 3b) TwinHan and Clones | ||
43 | -------------------------- | ||
44 | 21 | ||
45 | $ modprobe bttv card=0x71 | 22 | $ modprobe dvb-bt8xx |
46 | $ modprobe dvb-bt8xx | ||
47 | $ modprobe dst | ||
48 | 23 | ||
49 | The value 0x71 will override the PCI type detection for dvb-bt8xx, | 24 | All frontends will be loaded automatically. |
50 | which is necessary for TwinHan cards. Omission of this parameter might result | 25 | People running udev please see Documentation/dvb/udev.txt. |
51 | in a system lockup. | ||
52 | 26 | ||
53 | If you're having an older card (blue color PCB) and card=0x71 locks up | 27 | In the following cases overriding the PCI type detection for dvb-bt8xx might be necessary: |
54 | your machine, try using 0x68, too. If that does not work, ask on the | ||
55 | mailing list. | ||
56 | 28 | ||
57 | The DST module takes a couple of useful parameters. | 29 | 2a) Running TwinHan and Clones |
30 | ------------------------------ | ||
58 | 31 | ||
59 | verbose takes values 0 to 4. These values control the verbosity level, | 32 | $ modprobe bttv card=113 |
60 | and can be used to debug also. | 33 | $ modprobe dvb-bt8xx |
34 | $ modprobe dst | ||
61 | 35 | ||
62 | verbose=0 means complete disabling of messages | 36 | Useful parameters for verbosity level and debugging the dst module: |
63 | 1 only error messages are displayed | ||
64 | 2 notifications are also displayed | ||
65 | 3 informational messages are also displayed | ||
66 | 4 debug setting | ||
67 | 37 | ||
68 | dst_addons takes values 0 and 0x20. A value of 0 means it is a FTA card. | 38 | verbose=0: messages are disabled |
69 | 0x20 means it has a Conditional Access slot. | 39 | 1: only error messages are displayed |
40 | 2: notifications are displayed | ||
41 | 3: other useful messages are displayed | ||
42 | 4: debug setting | ||
43 | dst_addons=0: card is a free to air (FTA) card only | ||
44 | 0x20: card has a conditional access slot for scrambled channels | ||
70 | 45 | ||
71 | The autodetected values are determined by the cards 'response string' | 46 | The autodetected values are determined by the cards' "response string". |
72 | which you can see in your logs e.g. | 47 | In your logs see f. ex.: dst_get_device_id: Recognize [DSTMCI]. |
48 | For bug reports please send in a complete log with verbose=4 activated. | ||
49 | Please also see Documentation/dvb/ci.txt. | ||
73 | 50 | ||
74 | dst_get_device_id: Recognise [DSTMCI] | 51 | 2b) Running multiple cards |
75 | |||
76 | If you need to sent in bug reports on the dst, please do send in a complete | ||
77 | log with the verbose=4 module parameter. For general usage, the default setting | ||
78 | of verbose=1 is ideal. | ||
79 | |||
80 | |||
81 | 4) Multiple cards | ||
82 | -------------------------- | 52 | -------------------------- |
83 | 53 | ||
84 | If you happen to be running multiple cards, it would be advisable to load | 54 | Examples of card ID's: |
85 | the bttv module with the card id. This would help to solve any module loading | ||
86 | problems that you might face. | ||
87 | |||
88 | For example, if you have a Twinhan and Clones card along with a FusionHDTV5 Lite | ||
89 | 55 | ||
90 | $ modprobe bttv card=0x71 card=0x87 | 56 | Pinnacle PCTV Sat: 94 |
91 | 57 | Nebula Electronics Digi TV: 104 | |
92 | Here the order of the card id is important and should be the same as that of the | 58 | pcHDTV HD-2000 TV: 112 |
93 | physical order of the cards. Here card=0x71 represents the Twinhan and clones | 59 | Twinhan DST and clones: 113 |
94 | and card=0x87 represents Fusion HDTV5 Lite. These arguments can also be | 60 | Avermedia AverTV DVB-T 771: 123 |
95 | specified in decimal, rather than hex: | 61 | Avermedia AverTV DVB-T 761: 124 |
62 | DViCO FusionHDTV DVB-T Lite: 128 | ||
63 | DViCO FusionHDTV 5 Lite: 135 | ||
96 | 64 | ||
65 | Notice: The order of the card ID should be uprising: | ||
66 | Example: | ||
97 | $ modprobe bttv card=113 card=135 | 67 | $ modprobe bttv card=113 card=135 |
68 | $ modprobe dvb-bt8xx | ||
98 | 69 | ||
99 | Some examples of card-id's | 70 | For a full list of card ID's please see Documentation/video4linux/CARDLIST.bttv. |
100 | 71 | In case of further problems send questions to the mailing list: www.linuxdvb.org. | |
101 | Pinnacle Sat 0x5e (94) | ||
102 | Nebula Digi TV 0x68 (104) | ||
103 | PC HDTV 0x70 (112) | ||
104 | Twinhan 0x71 (113) | ||
105 | FusionHDTV DVB-T Lite 0x80 (128) | ||
106 | FusionHDTV5 Lite 0x87 (135) | ||
107 | |||
108 | For a full list of card-id's, see the V4L Documentation within the kernel | ||
109 | source: linux/Documentation/video4linux/CARDLIST.bttv | ||
110 | |||
111 | If you have problems with this please do ask on the mailing list. | ||
112 | 72 | ||
113 | -- | ||
114 | Authors: Richard Walker, | 73 | Authors: Richard Walker, |
115 | Jamie Honan, | 74 | Jamie Honan, |
116 | Michael Hunold, | 75 | Michael Hunold, |
117 | Manu Abraham, | 76 | Manu Abraham, |
77 | Uwe Bugla, | ||
118 | Michael Krufky | 78 | Michael Krufky |
diff --git a/Documentation/dvb/get_dvb_firmware b/Documentation/dvb/get_dvb_firmware index 75c28a174092..bb55f49f2745 100644 --- a/Documentation/dvb/get_dvb_firmware +++ b/Documentation/dvb/get_dvb_firmware | |||
@@ -21,8 +21,9 @@ | |||
21 | use File::Temp qw/ tempdir /; | 21 | use File::Temp qw/ tempdir /; |
22 | use IO::Handle; | 22 | use IO::Handle; |
23 | 23 | ||
24 | @components = ( "sp8870", "sp887x", "tda10045", "tda10046", "av7110", "dec2000t", | 24 | @components = ( "sp8870", "sp887x", "tda10045", "tda10046", |
25 | "dec2540t", "dec3000s", "vp7041", "dibusb", "nxt2002", "nxt2004", | 25 | "tda10046lifeview", "av7110", "dec2000t", "dec2540t", |
26 | "dec3000s", "vp7041", "dibusb", "nxt2002", "nxt2004", | ||
26 | "or51211", "or51132_qam", "or51132_vsb", "bluebird"); | 27 | "or51211", "or51132_qam", "or51132_vsb", "bluebird"); |
27 | 28 | ||
28 | # Check args | 29 | # Check args |
@@ -126,6 +127,24 @@ sub tda10046 { | |||
126 | $outfile; | 127 | $outfile; |
127 | } | 128 | } |
128 | 129 | ||
130 | sub tda10046lifeview { | ||
131 | my $sourcefile = "Drv_2.11.02.zip"; | ||
132 | my $url = "http://www.lifeview.com.tw/drivers/pci_card/FlyDVB-T/$sourcefile"; | ||
133 | my $hash = "1ea24dee4eea8fe971686981f34fd2e0"; | ||
134 | my $outfile = "dvb-fe-tda10046.fw"; | ||
135 | my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1); | ||
136 | |||
137 | checkstandard(); | ||
138 | |||
139 | wgetfile($sourcefile, $url); | ||
140 | unzip($sourcefile, $tmpdir); | ||
141 | extract("$tmpdir/LVHybrid.sys", 0x8b088, 24602, "$tmpdir/fwtmp"); | ||
142 | verify("$tmpdir/fwtmp", $hash); | ||
143 | copy("$tmpdir/fwtmp", $outfile); | ||
144 | |||
145 | $outfile; | ||
146 | } | ||
147 | |||
129 | sub av7110 { | 148 | sub av7110 { |
130 | my $sourcefile = "dvb-ttpci-01.fw-261d"; | 149 | my $sourcefile = "dvb-ttpci-01.fw-261d"; |
131 | my $url = "http://www.linuxtv.org/downloads/firmware/$sourcefile"; | 150 | my $url = "http://www.linuxtv.org/downloads/firmware/$sourcefile"; |
diff --git a/Documentation/dvb/readme.txt b/Documentation/dvb/readme.txt index f5c50b22de3b..0b0380c91990 100644 --- a/Documentation/dvb/readme.txt +++ b/Documentation/dvb/readme.txt | |||
@@ -20,11 +20,23 @@ http://linuxtv.org/downloads/ | |||
20 | 20 | ||
21 | What's inside this directory: | 21 | What's inside this directory: |
22 | 22 | ||
23 | "avermedia.txt" | ||
24 | contains detailed information about the | ||
25 | Avermedia DVB-T cards. See also "bt8xx.txt". | ||
26 | |||
27 | "bt8xx.txt" | ||
28 | contains detailed information about the | ||
29 | various bt8xx based "budget" DVB cards. | ||
30 | |||
23 | "cards.txt" | 31 | "cards.txt" |
24 | contains a list of supported hardware. | 32 | contains a list of supported hardware. |
25 | 33 | ||
34 | "ci.txt" | ||
35 | contains detailed information about the | ||
36 | CI module as part from TwinHan cards and Clones. | ||
37 | |||
26 | "contributors.txt" | 38 | "contributors.txt" |
27 | is the who-is-who of DVB development | 39 | is the who-is-who of DVB development. |
28 | 40 | ||
29 | "faq.txt" | 41 | "faq.txt" |
30 | contains frequently asked questions and their answers. | 42 | contains frequently asked questions and their answers. |
@@ -34,19 +46,17 @@ script to download and extract firmware for those devices | |||
34 | that require it. | 46 | that require it. |
35 | 47 | ||
36 | "ttusb-dec.txt" | 48 | "ttusb-dec.txt" |
37 | contains detailed informations about the | 49 | contains detailed information about the |
38 | TT DEC2000/DEC3000 USB DVB hardware. | 50 | TT DEC2000/DEC3000 USB DVB hardware. |
39 | 51 | ||
40 | "bt8xx.txt" | ||
41 | contains detailed installation instructions for the | ||
42 | various bt8xx based "budget" DVB cards | ||
43 | (Nebula, Pinnacle PCTV, Twinhan DST) | ||
44 | |||
45 | "README.dibusb" | ||
46 | contains detailed information about adapters | ||
47 | based on DiBcom reference design. | ||
48 | |||
49 | "udev.txt" | 52 | "udev.txt" |
50 | how to get DVB and udev up and running. | 53 | how to get DVB and udev up and running. |
51 | 54 | ||
55 | "README.dvb-usb" | ||
56 | contains detailed information about the DVB USB cards. | ||
57 | |||
58 | "README.flexcop" | ||
59 | contains detailed information about the | ||
60 | Technisat- and Flexcop B2C2 drivers. | ||
61 | |||
52 | Good luck and have fun! | 62 | Good luck and have fun! |
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt index 81bc51369f59..afeaf6218ea2 100644 --- a/Documentation/feature-removal-schedule.txt +++ b/Documentation/feature-removal-schedule.txt | |||
@@ -151,6 +151,13 @@ Who: Ralf Baechle <ralf@linux-mips.org> | |||
151 | 151 | ||
152 | --------------------------- | 152 | --------------------------- |
153 | 153 | ||
154 | What: eepro100 network driver | ||
155 | When: January 2007 | ||
156 | Why: replaced by the e100 driver | ||
157 | Who: Adrian Bunk <bunk@stusta.de> | ||
158 | |||
159 | --------------------------- | ||
160 | |||
154 | What: Legacy /proc/pci interface (PCI_LEGACY_PROC) | 161 | What: Legacy /proc/pci interface (PCI_LEGACY_PROC) |
155 | When: March 2006 | 162 | When: March 2006 |
156 | Why: deprecated since 2.5.53 in favor of lspci(8) | 163 | Why: deprecated since 2.5.53 in favor of lspci(8) |
@@ -189,3 +196,21 @@ Why: Board specific code doesn't build anymore since ~2.6.0 and no | |||
189 | users have complained indicating there is no more need for these | 196 | users have complained indicating there is no more need for these |
190 | boards. This should really be considered a last call. | 197 | boards. This should really be considered a last call. |
191 | Who: Ralf Baechle <ralf@linux-mips.org> | 198 | Who: Ralf Baechle <ralf@linux-mips.org> |
199 | |||
200 | --------------------------- | ||
201 | |||
202 | What: USB driver API moves to EXPORT_SYMBOL_GPL | ||
203 | When: Febuary 2008 | ||
204 | Files: include/linux/usb.h, drivers/usb/core/driver.c | ||
205 | Why: The USB subsystem has changed a lot over time, and it has been | ||
206 | possible to create userspace USB drivers using usbfs/libusb/gadgetfs | ||
207 | that operate as fast as the USB bus allows. Because of this, the USB | ||
208 | subsystem will not be allowing closed source kernel drivers to | ||
209 | register with it, after this grace period is over. If anyone needs | ||
210 | any help in converting their closed source drivers over to use the | ||
211 | userspace filesystems, please contact the | ||
212 | linux-usb-devel@lists.sourceforge.net mailing list, and the developers | ||
213 | there will be glad to help you out. | ||
214 | Who: Greg Kroah-Hartman <gregkh@suse.de> | ||
215 | |||
216 | --------------------------- | ||
diff --git a/Documentation/networking/00-INDEX b/Documentation/networking/00-INDEX index 5b01d5cc4e95..b1181ce232d9 100644 --- a/Documentation/networking/00-INDEX +++ b/Documentation/networking/00-INDEX | |||
@@ -92,8 +92,6 @@ routing.txt | |||
92 | - the new routing mechanism | 92 | - the new routing mechanism |
93 | shaper.txt | 93 | shaper.txt |
94 | - info on the module that can shape/limit transmitted traffic. | 94 | - info on the module that can shape/limit transmitted traffic. |
95 | sis900.txt | ||
96 | - SiS 900/7016 Fast Ethernet device driver info. | ||
97 | sk98lin.txt | 95 | sk98lin.txt |
98 | - Marvell Yukon Chipset / SysKonnect SK-98xx compliant Gigabit | 96 | - Marvell Yukon Chipset / SysKonnect SK-98xx compliant Gigabit |
99 | Ethernet Adapter family driver info | 97 | Ethernet Adapter family driver info |
diff --git a/Documentation/networking/README.ipw2100 b/Documentation/networking/README.ipw2100 index 3ab40379d1cf..f3fcaa41f774 100644 --- a/Documentation/networking/README.ipw2100 +++ b/Documentation/networking/README.ipw2100 | |||
@@ -3,18 +3,18 @@ Intel(R) PRO/Wireless 2100 Driver for Linux in support of: | |||
3 | 3 | ||
4 | Intel(R) PRO/Wireless 2100 Network Connection | 4 | Intel(R) PRO/Wireless 2100 Network Connection |
5 | 5 | ||
6 | Copyright (C) 2003-2005, Intel Corporation | 6 | Copyright (C) 2003-2006, Intel Corporation |
7 | 7 | ||
8 | README.ipw2100 | 8 | README.ipw2100 |
9 | 9 | ||
10 | Version: 1.1.3 | 10 | Version: git-1.1.5 |
11 | Date : October 17, 2005 | 11 | Date : January 25, 2006 |
12 | 12 | ||
13 | Index | 13 | Index |
14 | ----------------------------------------------- | 14 | ----------------------------------------------- |
15 | 0. IMPORTANT INFORMATION BEFORE USING THIS DRIVER | 15 | 0. IMPORTANT INFORMATION BEFORE USING THIS DRIVER |
16 | 1. Introduction | 16 | 1. Introduction |
17 | 2. Release 1.1.3 Current Features | 17 | 2. Release git-1.1.5 Current Features |
18 | 3. Command Line Parameters | 18 | 3. Command Line Parameters |
19 | 4. Sysfs Helper Files | 19 | 4. Sysfs Helper Files |
20 | 5. Radio Kill Switch | 20 | 5. Radio Kill Switch |
@@ -89,7 +89,7 @@ potential fixes and patches, as well as links to the development mailing list | |||
89 | for the driver project. | 89 | for the driver project. |
90 | 90 | ||
91 | 91 | ||
92 | 2. Release 1.1.3 Current Supported Features | 92 | 2. Release git-1.1.5 Current Supported Features |
93 | ----------------------------------------------- | 93 | ----------------------------------------------- |
94 | - Managed (BSS) and Ad-Hoc (IBSS) | 94 | - Managed (BSS) and Ad-Hoc (IBSS) |
95 | - WEP (shared key and open) | 95 | - WEP (shared key and open) |
@@ -270,7 +270,7 @@ For installation support on the ipw2100 1.1.0 driver on Linux kernels | |||
270 | 9. License | 270 | 9. License |
271 | ----------------------------------------------- | 271 | ----------------------------------------------- |
272 | 272 | ||
273 | Copyright(c) 2003 - 2005 Intel Corporation. All rights reserved. | 273 | Copyright(c) 2003 - 2006 Intel Corporation. All rights reserved. |
274 | 274 | ||
275 | This program is free software; you can redistribute it and/or modify it | 275 | This program is free software; you can redistribute it and/or modify it |
276 | under the terms of the GNU General Public License (version 2) as | 276 | under the terms of the GNU General Public License (version 2) as |
diff --git a/Documentation/networking/README.ipw2200 b/Documentation/networking/README.ipw2200 index c6492d3839fa..acb30c5dcff3 100644 --- a/Documentation/networking/README.ipw2200 +++ b/Documentation/networking/README.ipw2200 | |||
@@ -10,7 +10,7 @@ both hardware adapters listed above. In this document the Intel(R) | |||
10 | PRO/Wireless 2915ABG Driver for Linux will be used to reference the | 10 | PRO/Wireless 2915ABG Driver for Linux will be used to reference the |
11 | unified driver. | 11 | unified driver. |
12 | 12 | ||
13 | Copyright (C) 2004-2005, Intel Corporation | 13 | Copyright (C) 2004-2006, Intel Corporation |
14 | 14 | ||
15 | README.ipw2200 | 15 | README.ipw2200 |
16 | 16 | ||
@@ -26,9 +26,11 @@ Index | |||
26 | 1.2. Module parameters | 26 | 1.2. Module parameters |
27 | 1.3. Wireless Extension Private Methods | 27 | 1.3. Wireless Extension Private Methods |
28 | 1.4. Sysfs Helper Files | 28 | 1.4. Sysfs Helper Files |
29 | 1.5. Supported channels | ||
29 | 2. Ad-Hoc Networking | 30 | 2. Ad-Hoc Networking |
30 | 3. Interacting with Wireless Tools | 31 | 3. Interacting with Wireless Tools |
31 | 3.1. iwconfig mode | 32 | 3.1. iwconfig mode |
33 | 3.2. iwconfig sens | ||
32 | 4. About the Version Numbers | 34 | 4. About the Version Numbers |
33 | 5. Firmware installation | 35 | 5. Firmware installation |
34 | 6. Support | 36 | 6. Support |
@@ -314,6 +316,35 @@ For the device level files, see /sys/bus/pci/drivers/ipw2200: | |||
314 | running ifconfig and is therefore disabled by default. | 316 | running ifconfig and is therefore disabled by default. |
315 | 317 | ||
316 | 318 | ||
319 | 1.5. Supported channels | ||
320 | ----------------------------------------------- | ||
321 | |||
322 | Upon loading the Intel(R) PRO/Wireless 2915ABG Driver for Linux, a | ||
323 | message stating the detected geography code and the number of 802.11 | ||
324 | channels supported by the card will be displayed in the log. | ||
325 | |||
326 | The geography code corresponds to a regulatory domain as shown in the | ||
327 | table below. | ||
328 | |||
329 | Supported channels | ||
330 | Code Geography 802.11bg 802.11a | ||
331 | |||
332 | --- Restricted 11 0 | ||
333 | ZZF Custom US/Canada 11 8 | ||
334 | ZZD Rest of World 13 0 | ||
335 | ZZA Custom USA & Europe & High 11 13 | ||
336 | ZZB Custom NA & Europe 11 13 | ||
337 | ZZC Custom Japan 11 4 | ||
338 | ZZM Custom 11 0 | ||
339 | ZZE Europe 13 19 | ||
340 | ZZJ Custom Japan 14 4 | ||
341 | ZZR Rest of World 14 0 | ||
342 | ZZH High Band 13 4 | ||
343 | ZZG Custom Europe 13 4 | ||
344 | ZZK Europe 13 24 | ||
345 | ZZL Europe 11 13 | ||
346 | |||
347 | |||
317 | 2. Ad-Hoc Networking | 348 | 2. Ad-Hoc Networking |
318 | ----------------------------------------------- | 349 | ----------------------------------------------- |
319 | 350 | ||
@@ -353,6 +384,15 @@ When configuring the mode of the adapter, all run-time configured parameters | |||
353 | are reset to the value used when the module was loaded. This includes | 384 | are reset to the value used when the module was loaded. This includes |
354 | channels, rates, ESSID, etc. | 385 | channels, rates, ESSID, etc. |
355 | 386 | ||
387 | 3.2 iwconfig sens | ||
388 | ----------------------------------------------- | ||
389 | |||
390 | The 'iwconfig ethX sens XX' command will not set the signal sensitivity | ||
391 | threshold, as described in iwconfig documentation, but rather the number | ||
392 | of consecutive missed beacons that will trigger handover, i.e. roaming | ||
393 | to another access point. At the same time, it will set the disassociation | ||
394 | threshold to 3 times the given value. | ||
395 | |||
356 | 396 | ||
357 | 4. About the Version Numbers | 397 | 4. About the Version Numbers |
358 | ----------------------------------------------- | 398 | ----------------------------------------------- |
@@ -408,7 +448,7 @@ For general information and support, go to: | |||
408 | 7. License | 448 | 7. License |
409 | ----------------------------------------------- | 449 | ----------------------------------------------- |
410 | 450 | ||
411 | Copyright(c) 2003 - 2005 Intel Corporation. All rights reserved. | 451 | Copyright(c) 2003 - 2006 Intel Corporation. All rights reserved. |
412 | 452 | ||
413 | This program is free software; you can redistribute it and/or modify it | 453 | This program is free software; you can redistribute it and/or modify it |
414 | under the terms of the GNU General Public License version 2 as | 454 | under the terms of the GNU General Public License version 2 as |
diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt index 26364d06ae92..f12007b80a46 100644 --- a/Documentation/networking/ip-sysctl.txt +++ b/Documentation/networking/ip-sysctl.txt | |||
@@ -355,6 +355,13 @@ somaxconn - INTEGER | |||
355 | Defaults to 128. See also tcp_max_syn_backlog for additional tuning | 355 | Defaults to 128. See also tcp_max_syn_backlog for additional tuning |
356 | for TCP sockets. | 356 | for TCP sockets. |
357 | 357 | ||
358 | tcp_workaround_signed_windows - BOOLEAN | ||
359 | If set, assume no receipt of a window scaling option means the | ||
360 | remote TCP is broken and treats the window as a signed quantity. | ||
361 | If unset, assume the remote TCP is not broken even if we do | ||
362 | not receive a window scaling option from them. | ||
363 | Default: 0 | ||
364 | |||
358 | IP Variables: | 365 | IP Variables: |
359 | 366 | ||
360 | ip_local_port_range - 2 INTEGERS | 367 | ip_local_port_range - 2 INTEGERS |
@@ -619,6 +626,11 @@ arp_ignore - INTEGER | |||
619 | The max value from conf/{all,interface}/arp_ignore is used | 626 | The max value from conf/{all,interface}/arp_ignore is used |
620 | when ARP request is received on the {interface} | 627 | when ARP request is received on the {interface} |
621 | 628 | ||
629 | arp_accept - BOOLEAN | ||
630 | Define behavior when gratuitous arp replies are received: | ||
631 | 0 - drop gratuitous arp frames | ||
632 | 1 - accept gratuitous arp frames | ||
633 | |||
622 | app_solicit - INTEGER | 634 | app_solicit - INTEGER |
623 | The maximum number of probes to send to the user space ARP daemon | 635 | The maximum number of probes to send to the user space ARP daemon |
624 | via netlink before dropping back to multicast probes (see | 636 | via netlink before dropping back to multicast probes (see |
@@ -717,6 +729,33 @@ accept_ra - BOOLEAN | |||
717 | Functional default: enabled if local forwarding is disabled. | 729 | Functional default: enabled if local forwarding is disabled. |
718 | disabled if local forwarding is enabled. | 730 | disabled if local forwarding is enabled. |
719 | 731 | ||
732 | accept_ra_defrtr - BOOLEAN | ||
733 | Learn default router in Router Advertisement. | ||
734 | |||
735 | Functional default: enabled if accept_ra is enabled. | ||
736 | disabled if accept_ra is disabled. | ||
737 | |||
738 | accept_ra_pinfo - BOOLEAN | ||
739 | Learn Prefix Inforamtion in Router Advertisement. | ||
740 | |||
741 | Functional default: enabled if accept_ra is enabled. | ||
742 | disabled if accept_ra is disabled. | ||
743 | |||
744 | accept_ra_rt_info_max_plen - INTEGER | ||
745 | Maximum prefix length of Route Information in RA. | ||
746 | |||
747 | Route Information w/ prefix larger than or equal to this | ||
748 | variable shall be ignored. | ||
749 | |||
750 | Functional default: 0 if accept_ra_rtr_pref is enabled. | ||
751 | -1 if accept_ra_rtr_pref is disabled. | ||
752 | |||
753 | accept_ra_rtr_pref - BOOLEAN | ||
754 | Accept Router Preference in RA. | ||
755 | |||
756 | Functional default: enabled if accept_ra is enabled. | ||
757 | disabled if accept_ra is disabled. | ||
758 | |||
720 | accept_redirects - BOOLEAN | 759 | accept_redirects - BOOLEAN |
721 | Accept Redirects. | 760 | Accept Redirects. |
722 | 761 | ||
@@ -727,8 +766,8 @@ autoconf - BOOLEAN | |||
727 | Autoconfigure addresses using Prefix Information in Router | 766 | Autoconfigure addresses using Prefix Information in Router |
728 | Advertisements. | 767 | Advertisements. |
729 | 768 | ||
730 | Functional default: enabled if accept_ra is enabled. | 769 | Functional default: enabled if accept_ra_pinfo is enabled. |
731 | disabled if accept_ra is disabled. | 770 | disabled if accept_ra_pinfo is disabled. |
732 | 771 | ||
733 | dad_transmits - INTEGER | 772 | dad_transmits - INTEGER |
734 | The amount of Duplicate Address Detection probes to send. | 773 | The amount of Duplicate Address Detection probes to send. |
@@ -771,6 +810,12 @@ mtu - INTEGER | |||
771 | Default Maximum Transfer Unit | 810 | Default Maximum Transfer Unit |
772 | Default: 1280 (IPv6 required minimum) | 811 | Default: 1280 (IPv6 required minimum) |
773 | 812 | ||
813 | router_probe_interval - INTEGER | ||
814 | Minimum interval (in seconds) between Router Probing described | ||
815 | in RFC4191. | ||
816 | |||
817 | Default: 60 | ||
818 | |||
774 | router_solicitation_delay - INTEGER | 819 | router_solicitation_delay - INTEGER |
775 | Number of seconds to wait after interface is brought up | 820 | Number of seconds to wait after interface is brought up |
776 | before sending Router Solicitations. | 821 | before sending Router Solicitations. |
diff --git a/Documentation/networking/sis900.txt b/Documentation/networking/sis900.txt deleted file mode 100644 index bddffd7385ae..000000000000 --- a/Documentation/networking/sis900.txt +++ /dev/null | |||
@@ -1,257 +0,0 @@ | |||
1 | |||
2 | SiS 900/7016 Fast Ethernet Device Driver | ||
3 | |||
4 | Ollie Lho | ||
5 | |||
6 | Lei Chun Chang | ||
7 | |||
8 | Copyright © 1999 by Silicon Integrated System Corp. | ||
9 | |||
10 | This document gives some information on installation and usage of SiS | ||
11 | 900/7016 device driver under Linux. | ||
12 | |||
13 | This program is free software; you can redistribute it and/or modify | ||
14 | it under the terms of the GNU General Public License as published by | ||
15 | the Free Software Foundation; either version 2 of the License, or (at | ||
16 | your option) any later version. | ||
17 | |||
18 | This program is distributed in the hope that it will be useful, but | ||
19 | WITHOUT ANY WARRANTY; without even the implied warranty of | ||
20 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
21 | General Public License for more details. | ||
22 | |||
23 | You should have received a copy of the GNU General Public License | ||
24 | along with this program; if not, write to the Free Software | ||
25 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 | ||
26 | USA | ||
27 | _________________________________________________________________ | ||
28 | |||
29 | Table of Contents | ||
30 | 1. Introduction | ||
31 | 2. Changes | ||
32 | 3. Tested Environment | ||
33 | 4. Files in This Package | ||
34 | 5. Installation | ||
35 | |||
36 | Building the driver as loadable module | ||
37 | Building the driver into kernel | ||
38 | |||
39 | 6. Known Problems and Bugs | ||
40 | 7. Revision History | ||
41 | 8. Acknowledgements | ||
42 | _________________________________________________________________ | ||
43 | |||
44 | Chapter 1. Introduction | ||
45 | |||
46 | This document describes the revision 1.06 and 1.07 of SiS 900/7016 | ||
47 | Fast Ethernet device driver under Linux. The driver is developed by | ||
48 | Silicon Integrated System Corp. and distributed freely under the GNU | ||
49 | General Public License (GPL). The driver can be compiled as a loadable | ||
50 | module and used under Linux kernel version 2.2.x. (rev. 1.06) With | ||
51 | minimal changes, the driver can also be used under 2.3.x and 2.4.x | ||
52 | kernel (rev. 1.07), please see Chapter 5. If you are intended to use | ||
53 | the driver for earlier kernels, you are on your own. | ||
54 | |||
55 | The driver is tested with usual TCP/IP applications including FTP, | ||
56 | Telnet, Netscape etc. and is used constantly by the developers. | ||
57 | |||
58 | Please send all comments/fixes/questions to Lei-Chun Chang. | ||
59 | _________________________________________________________________ | ||
60 | |||
61 | Chapter 2. Changes | ||
62 | |||
63 | Changes made in Revision 1.07 | ||
64 | |||
65 | 1. Separation of sis900.c and sis900.h in order to move most constant | ||
66 | definition to sis900.h (many of those constants were corrected) | ||
67 | 2. Clean up PCI detection, the pci-scan from Donald Becker were not | ||
68 | used, just simple pci_find_*. | ||
69 | 3. MII detection is modified to support multiple mii transceiver. | ||
70 | 4. Bugs in read_eeprom, mdio_* were removed. | ||
71 | 5. Lot of sis900 irrelevant comments were removed/changed and more | ||
72 | comments were added to reflect the real situation. | ||
73 | 6. Clean up of physical/virtual address space mess in buffer | ||
74 | descriptors. | ||
75 | 7. Better transmit/receive error handling. | ||
76 | 8. The driver now uses zero-copy single buffer management scheme to | ||
77 | improve performance. | ||
78 | 9. Names of variables were changed to be more consistent. | ||
79 | 10. Clean up of auo-negotiation and timer code. | ||
80 | 11. Automatic detection and change of PHY on the fly. | ||
81 | 12. Bug in mac probing fixed. | ||
82 | 13. Fix 630E equalier problem by modifying the equalizer workaround | ||
83 | rule. | ||
84 | 14. Support for ICS1893 10/100 Interated PHYceiver. | ||
85 | 15. Support for media select by ifconfig. | ||
86 | 16. Added kernel-doc extratable documentation. | ||
87 | _________________________________________________________________ | ||
88 | |||
89 | Chapter 3. Tested Environment | ||
90 | |||
91 | This driver is developed on the following hardware | ||
92 | |||
93 | * Intel Celeron 500 with SiS 630 (rev 02) chipset | ||
94 | * SiS 900 (rev 01) and SiS 7016/7014 Fast Ethernet Card | ||
95 | |||
96 | and tested with these software environments | ||
97 | |||
98 | * Red Hat Linux version 6.2 | ||
99 | * Linux kernel version 2.4.0 | ||
100 | * Netscape version 4.6 | ||
101 | * NcFTP 3.0.0 beta 18 | ||
102 | * Samba version 2.0.3 | ||
103 | _________________________________________________________________ | ||
104 | |||
105 | Chapter 4. Files in This Package | ||
106 | |||
107 | In the package you can find these files: | ||
108 | |||
109 | sis900.c | ||
110 | Driver source file in C | ||
111 | |||
112 | sis900.h | ||
113 | Header file for sis900.c | ||
114 | |||
115 | sis900.sgml | ||
116 | DocBook SGML source of the document | ||
117 | |||
118 | sis900.txt | ||
119 | Driver document in plain text | ||
120 | _________________________________________________________________ | ||
121 | |||
122 | Chapter 5. Installation | ||
123 | |||
124 | Silicon Integrated System Corp. is cooperating closely with core Linux | ||
125 | Kernel developers. The revisions of SiS 900 driver are distributed by | ||
126 | the usuall channels for kernel tar files and patches. Those kernel tar | ||
127 | files for official kernel and patches for kernel pre-release can be | ||
128 | download at official kernel ftp site and its mirrors. The 1.06 | ||
129 | revision can be found in kernel version later than 2.3.15 and | ||
130 | pre-2.2.14, and 1.07 revision can be found in kernel version 2.4.0. If | ||
131 | you have no prior experience in networking under Linux, please read | ||
132 | Ethernet HOWTO and Networking HOWTO available from Linux Documentation | ||
133 | Project (LDP). | ||
134 | |||
135 | The driver is bundled in release later than 2.2.11 and 2.3.15 so this | ||
136 | is the most easy case. Be sure you have the appropriate packages for | ||
137 | compiling kernel source. Those packages are listed in Document/Changes | ||
138 | in kernel source distribution. If you have to install the driver other | ||
139 | than those bundled in kernel release, you should have your driver file | ||
140 | sis900.c and sis900.h copied into /usr/src/linux/drivers/net/ first. | ||
141 | There are two alternative ways to install the driver | ||
142 | _________________________________________________________________ | ||
143 | |||
144 | Building the driver as loadable module | ||
145 | |||
146 | To build the driver as a loadable kernel module you have to | ||
147 | reconfigure the kernel to activate network support by | ||
148 | |||
149 | make menuconfig | ||
150 | |||
151 | Choose "Loadable module support --->", then select "Enable loadable | ||
152 | module support". | ||
153 | |||
154 | Choose "Network Device Support --->", select "Ethernet (10 or | ||
155 | 100Mbit)". Then select "EISA, VLB, PCI and on board controllers", and | ||
156 | choose "SiS 900/7016 PCI Fast Ethernet Adapter support" to "M". | ||
157 | |||
158 | After reconfiguring the kernel, you can make the driver module by | ||
159 | |||
160 | make modules | ||
161 | |||
162 | The driver should be compiled with no errors. After compiling the | ||
163 | driver, the driver can be installed to proper place by | ||
164 | |||
165 | make modules_install | ||
166 | |||
167 | Load the driver into kernel by | ||
168 | |||
169 | insmod sis900 | ||
170 | |||
171 | When loading the driver into memory, some information message can be | ||
172 | view by | ||
173 | |||
174 | dmesg | ||
175 | |||
176 | or | ||
177 | cat /var/log/message | ||
178 | |||
179 | If the driver is loaded properly you will have messages similar to | ||
180 | this: | ||
181 | |||
182 | sis900.c: v1.07.06 11/07/2000 | ||
183 | eth0: SiS 900 PCI Fast Ethernet at 0xd000, IRQ 10, 00:00:e8:83:7f:a4. | ||
184 | eth0: SiS 900 Internal MII PHY transceiver found at address 1. | ||
185 | eth0: Using SiS 900 Internal MII PHY as default | ||
186 | |||
187 | showing the version of the driver and the results of probing routine. | ||
188 | |||
189 | Once the driver is loaded, network can be brought up by | ||
190 | |||
191 | /sbin/ifconfig eth0 IPADDR broadcast BROADCAST netmask NETMASK media TYPE | ||
192 | |||
193 | where IPADDR, BROADCAST, NETMASK are your IP address, broadcast | ||
194 | address and netmask respectively. TYPE is used to set medium type used | ||
195 | by the device. Typical values are "10baseT"(twisted-pair 10Mbps | ||
196 | Ethernet) or "100baseT" (twisted-pair 100Mbps Ethernet). For more | ||
197 | information on how to configure network interface, please refer to | ||
198 | Networking HOWTO. | ||
199 | |||
200 | The link status is also shown by kernel messages. For example, after | ||
201 | the network interface is activated, you may have the message: | ||
202 | |||
203 | eth0: Media Link On 100mbps full-duplex | ||
204 | |||
205 | If you try to unplug the twist pair (TP) cable you will get | ||
206 | |||
207 | eth0: Media Link Off | ||
208 | |||
209 | indicating that the link is failed. | ||
210 | _________________________________________________________________ | ||
211 | |||
212 | Building the driver into kernel | ||
213 | |||
214 | If you want to make the driver into kernel, choose "Y" rather than "M" | ||
215 | on "SiS 900/7016 PCI Fast Ethernet Adapter support" when configuring | ||
216 | the kernel. Build the kernel image in the usual way | ||
217 | |||
218 | make clean | ||
219 | |||
220 | make bzlilo | ||
221 | |||
222 | Next time the system reboot, you have the driver in memory. | ||
223 | _________________________________________________________________ | ||
224 | |||
225 | Chapter 6. Known Problems and Bugs | ||
226 | |||
227 | There are some known problems and bugs. If you find any other bugs | ||
228 | please mail to lcchang@sis.com.tw | ||
229 | |||
230 | 1. AM79C901 HomePNA PHY is not thoroughly tested, there may be some | ||
231 | bugs in the "on the fly" change of transceiver. | ||
232 | 2. A bug is hidden somewhere in the receive buffer management code, | ||
233 | the bug causes NULL pointer reference in the kernel. This fault is | ||
234 | caught before bad things happen and reported with the message: | ||
235 | eth0: NULL pointer encountered in Rx ring, skipping which can be | ||
236 | viewed with dmesg or cat /var/log/message. | ||
237 | 3. The media type change from 10Mbps to 100Mbps twisted-pair ethernet | ||
238 | by ifconfig causes the media link down. | ||
239 | _________________________________________________________________ | ||
240 | |||
241 | Chapter 7. Revision History | ||
242 | |||
243 | * November 13, 2000, Revision 1.07, seventh release, 630E problem | ||
244 | fixed and further clean up. | ||
245 | * November 4, 1999, Revision 1.06, Second release, lots of clean up | ||
246 | and optimization. | ||
247 | * August 8, 1999, Revision 1.05, Initial Public Release | ||
248 | _________________________________________________________________ | ||
249 | |||
250 | Chapter 8. Acknowledgements | ||
251 | |||
252 | This driver was originally derived form Donald Becker's pci-skeleton | ||
253 | and rtl8139 drivers. Donald also provided various suggestion regarded | ||
254 | with improvements made in revision 1.06. | ||
255 | |||
256 | The 1.05 revision was created by Jim Huang, AMD 79c901 support was | ||
257 | added by Chin-Shan Li. | ||
diff --git a/Documentation/usb/et61x251.txt b/Documentation/usb/et61x251.txt index b44dda407ce2..29340282ab5f 100644 --- a/Documentation/usb/et61x251.txt +++ b/Documentation/usb/et61x251.txt | |||
@@ -176,6 +176,14 @@ Description: Force the application to unmap previously mapped buffer memory | |||
176 | 1 = force memory unmapping (save memory) | 176 | 1 = force memory unmapping (save memory) |
177 | Default: 0 | 177 | Default: 0 |
178 | ------------------------------------------------------------------------------- | 178 | ------------------------------------------------------------------------------- |
179 | Name: frame_timeout | ||
180 | Type: uint array (min = 0, max = 64) | ||
181 | Syntax: <n[,...]> | ||
182 | Description: Timeout for a video frame in seconds. This parameter is | ||
183 | specific for each detected camera. This parameter can be | ||
184 | changed at runtime thanks to the /sys filesystem interface. | ||
185 | Default: 2 | ||
186 | ------------------------------------------------------------------------------- | ||
179 | Name: debug | 187 | Name: debug |
180 | Type: ushort | 188 | Type: ushort |
181 | Syntax: <n> | 189 | Syntax: <n> |
@@ -266,7 +274,7 @@ the V4L2 interface. | |||
266 | 274 | ||
267 | 275 | ||
268 | 10. Notes for V4L2 application developers | 276 | 10. Notes for V4L2 application developers |
269 | ======================================== | 277 | ========================================= |
270 | This driver follows the V4L2 API specifications. In particular, it enforces two | 278 | This driver follows the V4L2 API specifications. In particular, it enforces two |
271 | rules: | 279 | rules: |
272 | 280 | ||
diff --git a/Documentation/usb/sn9c102.txt b/Documentation/usb/sn9c102.txt index c6b76414172c..b957beae5607 100644 --- a/Documentation/usb/sn9c102.txt +++ b/Documentation/usb/sn9c102.txt | |||
@@ -196,6 +196,14 @@ Description: Force the application to unmap previously mapped buffer memory | |||
196 | 1 = force memory unmapping (save memory) | 196 | 1 = force memory unmapping (save memory) |
197 | Default: 0 | 197 | Default: 0 |
198 | ------------------------------------------------------------------------------- | 198 | ------------------------------------------------------------------------------- |
199 | Name: frame_timeout | ||
200 | Type: uint array (min = 0, max = 64) | ||
201 | Syntax: <n[,...]> | ||
202 | Description: Timeout for a video frame in seconds. This parameter is | ||
203 | specific for each detected camera. This parameter can be | ||
204 | changed at runtime thanks to the /sys filesystem interface. | ||
205 | Default: 2 | ||
206 | ------------------------------------------------------------------------------- | ||
199 | Name: debug | 207 | Name: debug |
200 | Type: ushort | 208 | Type: ushort |
201 | Syntax: <n> | 209 | Syntax: <n> |
@@ -321,6 +329,7 @@ Vendor ID Product ID | |||
321 | --------- ---------- | 329 | --------- ---------- |
322 | 0x0c45 0x6001 | 330 | 0x0c45 0x6001 |
323 | 0x0c45 0x6005 | 331 | 0x0c45 0x6005 |
332 | 0x0c45 0x6007 | ||
324 | 0x0c45 0x6009 | 333 | 0x0c45 0x6009 |
325 | 0x0c45 0x600d | 334 | 0x0c45 0x600d |
326 | 0x0c45 0x6024 | 335 | 0x0c45 0x6024 |
@@ -370,6 +379,7 @@ HV7131D Hynix Semiconductor, Inc. | |||
370 | MI-0343 Micron Technology, Inc. | 379 | MI-0343 Micron Technology, Inc. |
371 | OV7630 OmniVision Technologies, Inc. | 380 | OV7630 OmniVision Technologies, Inc. |
372 | PAS106B PixArt Imaging, Inc. | 381 | PAS106B PixArt Imaging, Inc. |
382 | PAS202BCA PixArt Imaging, Inc. | ||
373 | PAS202BCB PixArt Imaging, Inc. | 383 | PAS202BCB PixArt Imaging, Inc. |
374 | TAS5110C1B Taiwan Advanced Sensor Corporation | 384 | TAS5110C1B Taiwan Advanced Sensor Corporation |
375 | TAS5130D1B Taiwan Advanced Sensor Corporation | 385 | TAS5130D1B Taiwan Advanced Sensor Corporation |
@@ -493,6 +503,7 @@ Many thanks to following persons for their contribute (listed in alphabetical | |||
493 | order): | 503 | order): |
494 | 504 | ||
495 | - Luca Capello for the donation of a webcam; | 505 | - Luca Capello for the donation of a webcam; |
506 | - Philippe Coval for having helped testing the PAS202BCA image sensor; | ||
496 | - Joao Rodrigo Fuzaro, Joao Limirio, Claudio Filho and Caio Begotti for the | 507 | - Joao Rodrigo Fuzaro, Joao Limirio, Claudio Filho and Caio Begotti for the |
497 | donation of a webcam; | 508 | donation of a webcam; |
498 | - Jon Hollstrom for the donation of a webcam; | 509 | - Jon Hollstrom for the donation of a webcam; |
diff --git a/Documentation/usb/zc0301.txt b/Documentation/usb/zc0301.txt new file mode 100644 index 000000000000..f55262c6733b --- /dev/null +++ b/Documentation/usb/zc0301.txt | |||
@@ -0,0 +1,254 @@ | |||
1 | |||
2 | ZC0301 Image Processor and Control Chip | ||
3 | Driver for Linux | ||
4 | ======================================= | ||
5 | |||
6 | - Documentation - | ||
7 | |||
8 | |||
9 | Index | ||
10 | ===== | ||
11 | 1. Copyright | ||
12 | 2. Disclaimer | ||
13 | 3. License | ||
14 | 4. Overview and features | ||
15 | 5. Module dependencies | ||
16 | 6. Module loading | ||
17 | 7. Module parameters | ||
18 | 8. Supported devices | ||
19 | 9. Notes for V4L2 application developers | ||
20 | 10. Contact information | ||
21 | 11. Credits | ||
22 | |||
23 | |||
24 | 1. Copyright | ||
25 | ============ | ||
26 | Copyright (C) 2006 by Luca Risolia <luca.risolia@studio.unibo.it> | ||
27 | |||
28 | |||
29 | 2. Disclaimer | ||
30 | ============= | ||
31 | This software is not developed or sponsored by Z-Star Microelectronics Corp. | ||
32 | Trademarks are property of their respective owner. | ||
33 | |||
34 | |||
35 | 3. License | ||
36 | ========== | ||
37 | This program is free software; you can redistribute it and/or modify | ||
38 | it under the terms of the GNU General Public License as published by | ||
39 | the Free Software Foundation; either version 2 of the License, or | ||
40 | (at your option) any later version. | ||
41 | |||
42 | This program is distributed in the hope that it will be useful, | ||
43 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
44 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
45 | GNU General Public License for more details. | ||
46 | |||
47 | You should have received a copy of the GNU General Public License | ||
48 | along with this program; if not, write to the Free Software | ||
49 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
50 | |||
51 | |||
52 | 4. Overview and features | ||
53 | ======================== | ||
54 | This driver supports the video interface of the devices mounting the ZC0301 | ||
55 | Image Processor and Control Chip. | ||
56 | |||
57 | The driver relies on the Video4Linux2 and USB core modules. It has been | ||
58 | designed to run properly on SMP systems as well. | ||
59 | |||
60 | The latest version of the ZC0301 driver can be found at the following URL: | ||
61 | http://www.linux-projects.org/ | ||
62 | |||
63 | Some of the features of the driver are: | ||
64 | |||
65 | - full compliance with the Video4Linux2 API (see also "Notes for V4L2 | ||
66 | application developers" paragraph); | ||
67 | - available mmap or read/poll methods for video streaming through isochronous | ||
68 | data transfers; | ||
69 | - automatic detection of image sensor; | ||
70 | - video format is standard JPEG; | ||
71 | - dynamic driver control thanks to various module parameters (see "Module | ||
72 | parameters" paragraph); | ||
73 | - up to 64 cameras can be handled at the same time; they can be connected and | ||
74 | disconnected from the host many times without turning off the computer, if | ||
75 | the system supports hotplugging; | ||
76 | |||
77 | |||
78 | 5. Module dependencies | ||
79 | ====================== | ||
80 | For it to work properly, the driver needs kernel support for Video4Linux and | ||
81 | USB. | ||
82 | |||
83 | The following options of the kernel configuration file must be enabled and | ||
84 | corresponding modules must be compiled: | ||
85 | |||
86 | # Multimedia devices | ||
87 | # | ||
88 | CONFIG_VIDEO_DEV=m | ||
89 | |||
90 | # USB support | ||
91 | # | ||
92 | CONFIG_USB=m | ||
93 | |||
94 | In addition, depending on the hardware being used, the modules below are | ||
95 | necessary: | ||
96 | |||
97 | # USB Host Controller Drivers | ||
98 | # | ||
99 | CONFIG_USB_EHCI_HCD=m | ||
100 | CONFIG_USB_UHCI_HCD=m | ||
101 | CONFIG_USB_OHCI_HCD=m | ||
102 | |||
103 | The ZC0301 controller also provides a built-in microphone interface. It is | ||
104 | supported by the USB Audio driver thanks to the ALSA API: | ||
105 | |||
106 | # Sound | ||
107 | # | ||
108 | CONFIG_SOUND=y | ||
109 | |||
110 | # Advanced Linux Sound Architecture | ||
111 | # | ||
112 | CONFIG_SND=m | ||
113 | |||
114 | # USB devices | ||
115 | # | ||
116 | CONFIG_SND_USB_AUDIO=m | ||
117 | |||
118 | And finally: | ||
119 | |||
120 | # USB Multimedia devices | ||
121 | # | ||
122 | CONFIG_USB_ZC0301=m | ||
123 | |||
124 | |||
125 | 6. Module loading | ||
126 | ================= | ||
127 | To use the driver, it is necessary to load the "zc0301" module into memory | ||
128 | after every other module required: "videodev", "usbcore" and, depending on | ||
129 | the USB host controller you have, "ehci-hcd", "uhci-hcd" or "ohci-hcd". | ||
130 | |||
131 | Loading can be done as shown below: | ||
132 | |||
133 | [root@localhost home]# modprobe zc0301 | ||
134 | |||
135 | At this point the devices should be recognized. You can invoke "dmesg" to | ||
136 | analyze kernel messages and verify that the loading process has gone well: | ||
137 | |||
138 | [user@localhost home]$ dmesg | ||
139 | |||
140 | |||
141 | 7. Module parameters | ||
142 | ==================== | ||
143 | Module parameters are listed below: | ||
144 | ------------------------------------------------------------------------------- | ||
145 | Name: video_nr | ||
146 | Type: short array (min = 0, max = 64) | ||
147 | Syntax: <-1|n[,...]> | ||
148 | Description: Specify V4L2 minor mode number: | ||
149 | -1 = use next available | ||
150 | n = use minor number n | ||
151 | You can specify up to 64 cameras this way. | ||
152 | For example: | ||
153 | video_nr=-1,2,-1 would assign minor number 2 to the second | ||
154 | registered camera and use auto for the first one and for every | ||
155 | other camera. | ||
156 | Default: -1 | ||
157 | ------------------------------------------------------------------------------- | ||
158 | Name: force_munmap | ||
159 | Type: bool array (min = 0, max = 64) | ||
160 | Syntax: <0|1[,...]> | ||
161 | Description: Force the application to unmap previously mapped buffer memory | ||
162 | before calling any VIDIOC_S_CROP or VIDIOC_S_FMT ioctl's. Not | ||
163 | all the applications support this feature. This parameter is | ||
164 | specific for each detected camera. | ||
165 | 0 = do not force memory unmapping | ||
166 | 1 = force memory unmapping (save memory) | ||
167 | Default: 0 | ||
168 | ------------------------------------------------------------------------------- | ||
169 | Name: frame_timeout | ||
170 | Type: uint array (min = 0, max = 64) | ||
171 | Syntax: <n[,...]> | ||
172 | Description: Timeout for a video frame in seconds. This parameter is | ||
173 | specific for each detected camera. This parameter can be | ||
174 | changed at runtime thanks to the /sys filesystem interface. | ||
175 | Default: 2 | ||
176 | ------------------------------------------------------------------------------- | ||
177 | Name: debug | ||
178 | Type: ushort | ||
179 | Syntax: <n> | ||
180 | Description: Debugging information level, from 0 to 3: | ||
181 | 0 = none (use carefully) | ||
182 | 1 = critical errors | ||
183 | 2 = significant informations | ||
184 | 3 = more verbose messages | ||
185 | Level 3 is useful for testing only, when only one device | ||
186 | is used at the same time. It also shows some more informations | ||
187 | about the hardware being detected. This module parameter can be | ||
188 | changed at runtime thanks to the /sys filesystem interface. | ||
189 | Default: 2 | ||
190 | ------------------------------------------------------------------------------- | ||
191 | |||
192 | |||
193 | 8. Supported devices | ||
194 | ==================== | ||
195 | None of the names of the companies as well as their products will be mentioned | ||
196 | here. They have never collaborated with the author, so no advertising. | ||
197 | |||
198 | From the point of view of a driver, what unambiguously identify a device are | ||
199 | its vendor and product USB identifiers. Below is a list of known identifiers of | ||
200 | devices mounting the ZC0301 Image Processor and Control Chips: | ||
201 | |||
202 | Vendor ID Product ID | ||
203 | --------- ---------- | ||
204 | 0x041e 0x4017 | ||
205 | 0x041e 0x401c | ||
206 | 0x041e 0x401e | ||
207 | 0x041e 0x4034 | ||
208 | 0x041e 0x4035 | ||
209 | 0x046d 0x08ae | ||
210 | 0x0ac8 0x0301 | ||
211 | 0x10fd 0x8050 | ||
212 | |||
213 | The list above does not imply that all those devices work with this driver: up | ||
214 | until now only the ones that mount the following image sensors are supported; | ||
215 | kernel messages will always tell you whether this is the case: | ||
216 | |||
217 | Model Manufacturer | ||
218 | ----- ------------ | ||
219 | PAS202BCB PixArt Imaging, Inc. | ||
220 | |||
221 | |||
222 | 9. Notes for V4L2 application developers | ||
223 | ======================================== | ||
224 | This driver follows the V4L2 API specifications. In particular, it enforces two | ||
225 | rules: | ||
226 | |||
227 | - exactly one I/O method, either "mmap" or "read", is associated with each | ||
228 | file descriptor. Once it is selected, the application must close and reopen the | ||
229 | device to switch to the other I/O method; | ||
230 | |||
231 | - although it is not mandatory, previously mapped buffer memory should always | ||
232 | be unmapped before calling any "VIDIOC_S_CROP" or "VIDIOC_S_FMT" ioctl's. | ||
233 | The same number of buffers as before will be allocated again to match the size | ||
234 | of the new video frames, so you have to map the buffers again before any I/O | ||
235 | attempts on them. | ||
236 | |||
237 | |||
238 | 10. Contact information | ||
239 | ======================= | ||
240 | The author may be contacted by e-mail at <luca.risolia@studio.unibo.it>. | ||
241 | |||
242 | GPG/PGP encrypted e-mail's are accepted. The GPG key ID of the author is | ||
243 | 'FCE635A4'; the public 1024-bit key should be available at any keyserver; | ||
244 | the fingerprint is: '88E8 F32F 7244 68BA 3958 5D40 99DA 5D2A FCE6 35A4'. | ||
245 | |||
246 | |||
247 | 11. Credits | ||
248 | =========== | ||
249 | - Informations about the chip internals needed to enable the I2C protocol have | ||
250 | been taken from the documentation of the ZC030x Video4Linux1 driver written | ||
251 | by Andrew Birkett <andy@nobugs.org>; | ||
252 | - The initialization values of the ZC0301 controller connected to the PAS202BCB | ||
253 | image sensor have been taken from the SPCA5XX driver maintained by | ||
254 | Michel Xhaard <mxhaard@magic.fr>. | ||
diff --git a/Documentation/video4linux/CARDLIST.cx88 b/Documentation/video4linux/CARDLIST.cx88 index 8bea3fbd0548..3b39a91b24bd 100644 --- a/Documentation/video4linux/CARDLIST.cx88 +++ b/Documentation/video4linux/CARDLIST.cx88 | |||
@@ -43,3 +43,5 @@ | |||
43 | 42 -> digitalnow DNTV Live! DVB-T Pro [1822:0025] | 43 | 42 -> digitalnow DNTV Live! DVB-T Pro [1822:0025] |
44 | 43 -> KWorld/VStream XPert DVB-T with cx22702 [17de:08a1] | 44 | 43 -> KWorld/VStream XPert DVB-T with cx22702 [17de:08a1] |
45 | 44 -> DViCO FusionHDTV DVB-T Dual Digital [18ac:db50,18ac:db54] | 45 | 44 -> DViCO FusionHDTV DVB-T Dual Digital [18ac:db50,18ac:db54] |
46 | 45 -> KWorld HardwareMpegTV XPert [17de:0840] | ||
47 | 46 -> DViCO FusionHDTV DVB-T Hybrid [18ac:db40,18ac:db44] | ||
diff --git a/Documentation/video4linux/CARDLIST.em28xx b/Documentation/video4linux/CARDLIST.em28xx index a0c7cad20971..a3026689bbe6 100644 --- a/Documentation/video4linux/CARDLIST.em28xx +++ b/Documentation/video4linux/CARDLIST.em28xx | |||
@@ -8,3 +8,4 @@ | |||
8 | 7 -> Leadtek Winfast USB II (em2800) | 8 | 7 -> Leadtek Winfast USB II (em2800) |
9 | 8 -> Kworld USB2800 (em2800) | 9 | 8 -> Kworld USB2800 (em2800) |
10 | 9 -> Pinnacle Dazzle DVC 90 (em2820/em2840) [2304:0207] | 10 | 9 -> Pinnacle Dazzle DVC 90 (em2820/em2840) [2304:0207] |
11 | 12 -> Kworld PVR TV 2800 RF (em2820/em2840) | ||
diff --git a/Documentation/video4linux/CARDLIST.saa7134 b/Documentation/video4linux/CARDLIST.saa7134 index da4fb890165f..8c7195455963 100644 --- a/Documentation/video4linux/CARDLIST.saa7134 +++ b/Documentation/video4linux/CARDLIST.saa7134 | |||
@@ -83,3 +83,12 @@ | |||
83 | 82 -> MSI TV@Anywhere plus [1462:6231] | 83 | 82 -> MSI TV@Anywhere plus [1462:6231] |
84 | 83 -> Terratec Cinergy 250 PCI TV [153b:1160] | 84 | 83 -> Terratec Cinergy 250 PCI TV [153b:1160] |
85 | 84 -> LifeView FlyDVB Trio [5168:0319] | 85 | 84 -> LifeView FlyDVB Trio [5168:0319] |
86 | 85 -> AverTV DVB-T 777 [1461:2c05] | ||
87 | 86 -> LifeView FlyDVB-T [5168:0301] | ||
88 | 87 -> ADS Instant TV Duo Cardbus PTV331 [0331:1421] | ||
89 | 88 -> Tevion/KWorld DVB-T 220RF [17de:7201] | ||
90 | 89 -> ELSA EX-VISION 700TV [1048:226c] | ||
91 | 90 -> Kworld ATSC110 [17de:7350] | ||
92 | 91 -> AVerMedia A169 B [1461:7360] | ||
93 | 92 -> AVerMedia A169 B1 [1461:6360] | ||
94 | 93 -> Medion 7134 Bridge #2 [16be:0005] | ||
diff --git a/Documentation/video4linux/CARDLIST.tuner b/Documentation/video4linux/CARDLIST.tuner index f6d0cf7b7922..1bcdac67dd8c 100644 --- a/Documentation/video4linux/CARDLIST.tuner +++ b/Documentation/video4linux/CARDLIST.tuner | |||
@@ -64,8 +64,10 @@ tuner=62 - Philips TEA5767HN FM Radio | |||
64 | tuner=63 - Philips FMD1216ME MK3 Hybrid Tuner | 64 | tuner=63 - Philips FMD1216ME MK3 Hybrid Tuner |
65 | tuner=64 - LG TDVS-H062F/TUA6034 | 65 | tuner=64 - LG TDVS-H062F/TUA6034 |
66 | tuner=65 - Ymec TVF66T5-B/DFF | 66 | tuner=65 - Ymec TVF66T5-B/DFF |
67 | tuner=66 - LG NTSC (TALN mini series) | 67 | tuner=66 - LG TALN series |
68 | tuner=67 - Philips TD1316 Hybrid Tuner | 68 | tuner=67 - Philips TD1316 Hybrid Tuner |
69 | tuner=68 - Philips TUV1236D ATSC/NTSC dual in | 69 | tuner=68 - Philips TUV1236D ATSC/NTSC dual in |
70 | tuner=69 - Tena TNF 5335 MF | 70 | tuner=69 - Tena TNF 5335 and similar models |
71 | tuner=70 - Samsung TCPN 2121P30A | 71 | tuner=70 - Samsung TCPN 2121P30A |
72 | tuner=71 - Xceive xc3028 | ||
73 | tuner=72 - Thomson FE6600 | ||
diff --git a/Documentation/video4linux/README.cpia2 b/Documentation/video4linux/README.cpia2 new file mode 100644 index 000000000000..ce8213d28b67 --- /dev/null +++ b/Documentation/video4linux/README.cpia2 | |||
@@ -0,0 +1,130 @@ | |||
1 | $Id: README,v 1.7 2005/08/29 23:39:57 sbertin Exp $ | ||
2 | |||
3 | 1. Introduction | ||
4 | |||
5 | This is a driver for STMicroelectronics's CPiA2 (second generation | ||
6 | Colour Processor Interface ASIC) based cameras. This camera outputs an MJPEG | ||
7 | stream at up to vga size. It implements the Video4Linux interface as much as | ||
8 | possible. Since the V4L interface does not support compressed formats, only | ||
9 | an mjpeg enabled application can be used with the camera. We have modified the | ||
10 | gqcam application to view this stream. | ||
11 | |||
12 | The driver is implemented as two kernel modules. The cpia2 module | ||
13 | contains the camera functions and the V4L interface. The cpia2_usb module | ||
14 | contains usb specific functions. The main reason for this was the size of the | ||
15 | module was getting out of hand, so I separted them. It is not likely that | ||
16 | there will be a parallel port version. | ||
17 | |||
18 | FEATURES: | ||
19 | - Supports cameras with the Vision stv6410 (CIF) and stv6500 (VGA) cmos | ||
20 | sensors. I only have the vga sensor, so can't test the other. | ||
21 | - Image formats: VGA, QVGA, CIF, QCIF, and a number of sizes in between. | ||
22 | VGA and QVGA are the native image sizes for the VGA camera. CIF is done | ||
23 | in the coprocessor by scaling QVGA. All other sizes are done by clipping. | ||
24 | - Palette: YCrCb, compressed with MJPEG. | ||
25 | - Some compression parameters are settable. | ||
26 | - Sensor framerate is adjustable (up to 30 fps CIF, 15 fps VGA). | ||
27 | - Adjust brightness, color, contrast while streaming. | ||
28 | - Flicker control settable for 50 or 60 Hz mains frequency. | ||
29 | |||
30 | 2. Making and installing the stv672 driver modules: | ||
31 | |||
32 | Requirements: | ||
33 | ------------- | ||
34 | This should work with 2.4 (2.4.23 and later) and 2.6 kernels, but has | ||
35 | only been tested on 2.6. Video4Linux must be either compiled into the kernel or | ||
36 | available as a module. Video4Linux2 is automatically detected and made | ||
37 | available at compile time. | ||
38 | |||
39 | Compiling: | ||
40 | ---------- | ||
41 | As root, do a make install. This will compile and install the modules | ||
42 | into the media/video directory in the module tree. For 2.4 kernels, use | ||
43 | Makefile_2.4 (aka do make -f Makefile_2.4 install). | ||
44 | |||
45 | Setup: | ||
46 | ------ | ||
47 | Use 'modprobe cpia2' to load and 'modprobe -r cpia2' to unload. This | ||
48 | may be done automatically by your distribution. | ||
49 | |||
50 | 3. Driver options | ||
51 | |||
52 | Option Description | ||
53 | ------ ----------- | ||
54 | video_nr video device to register (0=/dev/video0, etc) | ||
55 | range -1 to 64. default is -1 (first available) | ||
56 | If you have more than 1 camera, this MUST be -1. | ||
57 | buffer_size Size for each frame buffer in bytes (default 68k) | ||
58 | num_buffers Number of frame buffers (1-32, default 3) | ||
59 | alternate USB Alternate (2-7, default 7) | ||
60 | flicker_freq Frequency for flicker reduction(50 or 60, default 60) | ||
61 | flicker_mode 0 to disable, or 1 to enable flicker reduction. | ||
62 | (default 0). This is only effective if the camera | ||
63 | uses a stv0672 coprocessor. | ||
64 | |||
65 | Setting the options: | ||
66 | -------------------- | ||
67 | If you are using modules, edit /etc/modules.conf and add an options | ||
68 | line like this: | ||
69 | options cpia2 num_buffers=3 buffer_size=65535 | ||
70 | |||
71 | If the driver is compiled into the kernel, at boot time specify them | ||
72 | like this: | ||
73 | cpia2.num_buffers=3 cpia2.buffer_size=65535 | ||
74 | |||
75 | What buffer size should I use? | ||
76 | ------------------------------ | ||
77 | The maximum image size depends on the alternate you choose, and the | ||
78 | frame rate achieved by the camera. If the compression engine is able to | ||
79 | keep up with the frame rate, the maximum image size is given by the table | ||
80 | below. | ||
81 | The compression engine starts out at maximum compression, and will | ||
82 | increase image quality until it is close to the size in the table. As long | ||
83 | as the compression engine can keep up with the frame rate, after a short time | ||
84 | the images will all be about the size in the table, regardless of resolution. | ||
85 | At low alternate settings, the compression engine may not be able to | ||
86 | compress the image enough and will reduce the frame rate by producing larger | ||
87 | images. | ||
88 | The default of 68k should be good for most users. This will handle | ||
89 | any alternate at frame rates down to 15fps. For lower frame rates, it may | ||
90 | be necessary to increase the buffer size to avoid having frames dropped due | ||
91 | to insufficient space. | ||
92 | |||
93 | Image size(bytes) | ||
94 | Alternate bytes/ms 15fps 30fps | ||
95 | 2 128 8533 4267 | ||
96 | 3 384 25600 12800 | ||
97 | 4 640 42667 21333 | ||
98 | 5 768 51200 25600 | ||
99 | 6 896 59733 29867 | ||
100 | 7 1023 68200 34100 | ||
101 | |||
102 | How many buffers should I use? | ||
103 | ------------------------------ | ||
104 | For normal streaming, 3 should give the best results. With only 2, | ||
105 | it is possible for the camera to finish sending one image just after a | ||
106 | program has started reading the other. If this happens, the driver must drop | ||
107 | a frame. The exception to this is if you have a heavily loaded machine. In | ||
108 | this case use 2 buffers. You are probably not reading at the full frame rate. | ||
109 | If the camera can send multiple images before a read finishes, it could | ||
110 | overwrite the third buffer before the read finishes, leading to a corrupt | ||
111 | image. Single and double buffering have extra checks to avoid overwriting. | ||
112 | |||
113 | 4. Using the camera | ||
114 | |||
115 | We are providing a modified gqcam application to view the output. In | ||
116 | order to avoid confusion, here it is called mview. There is also the qx5view | ||
117 | program which can also control the lights on the qx5 microscope. MJPEG Tools | ||
118 | (http://mjpeg.sourceforge.net) can also be used to record from the camera. | ||
119 | |||
120 | 5. Notes to developers: | ||
121 | |||
122 | - This is a driver version stripped of the 2.4 back compatibility | ||
123 | and old MJPEG ioctl API. See cpia2.sf.net for 2.4 support. | ||
124 | |||
125 | 6. Thanks: | ||
126 | |||
127 | - Peter Pregler <Peter_Pregler@email.com>, | ||
128 | Scott J. Bertin <scottbertin@yahoo.com>, and | ||
129 | Jarl Totland <Jarl.Totland@bdc.no> for the original cpia driver, which | ||
130 | this one was modelled from. | ||
diff --git a/Documentation/video4linux/cpia2_overview.txt b/Documentation/video4linux/cpia2_overview.txt new file mode 100644 index 000000000000..a6e53665216b --- /dev/null +++ b/Documentation/video4linux/cpia2_overview.txt | |||
@@ -0,0 +1,38 @@ | |||
1 | Programmer's View of Cpia2 | ||
2 | |||
3 | Cpia2 is the second generation video coprocessor from VLSI Vision Ltd (now a | ||
4 | division of ST Microelectronics). There are two versions. The first is the | ||
5 | STV0672, which is capable of up to 30 frames per second (fps) in frame sizes | ||
6 | up to CIF, and 15 fps for VGA frames. The STV0676 is an improved version, | ||
7 | which can handle up to 30 fps VGA. Both coprocessors can be attached to two | ||
8 | CMOS sensors - the vvl6410 CIF sensor and the vvl6500 VGA sensor. These will | ||
9 | be referred to as the 410 and the 500 sensors, or the CIF and VGA sensors. | ||
10 | |||
11 | The two chipsets operate almost identically. The core is an 8051 processor, | ||
12 | running two different versions of firmware. The 672 runs the VP4 video | ||
13 | processor code, the 676 runs VP5. There are a few differences in register | ||
14 | mappings for the two chips. In these cases, the symbols defined in the | ||
15 | header files are marked with VP4 or VP5 as part of the symbol name. | ||
16 | |||
17 | The cameras appear externally as three sets of registers. Setting register | ||
18 | values is the only way to control the camera. Some settings are | ||
19 | interdependant, such as the sequence required to power up the camera. I will | ||
20 | try to make note of all of these cases. | ||
21 | |||
22 | The register sets are called blocks. Block 0 is the system block. This | ||
23 | section is always powered on when the camera is plugged in. It contains | ||
24 | registers that control housekeeping functions such as powering up the video | ||
25 | processor. The video processor is the VP block. These registers control | ||
26 | how the video from the sensor is processed. Examples are timing registers, | ||
27 | user mode (vga, qvga), scaling, cropping, framerates, and so on. The last | ||
28 | block is the video compressor (VC). The video stream sent from the camera is | ||
29 | compressed as Motion JPEG (JPEGA). The VC controls all of the compression | ||
30 | parameters. Looking at the file cpia2_registers.h, you can get a full view | ||
31 | of these registers and the possible values for most of them. | ||
32 | |||
33 | One or more registers can be set or read by sending a usb control message to | ||
34 | the camera. There are three modes for this. Block mode requests a number | ||
35 | of contiguous registers. Random mode reads or writes random registers with | ||
36 | a tuple structure containing address/value pairs. The repeat mode is only | ||
37 | used by VP4 to load a firmware patch. It contains a starting address and | ||
38 | a sequence of bytes to be written into a gpio port. \ No newline at end of file | ||
diff --git a/Documentation/vm/page_migration b/Documentation/vm/page_migration index c52820fcf500..0dd4ef30c361 100644 --- a/Documentation/vm/page_migration +++ b/Documentation/vm/page_migration | |||
@@ -12,12 +12,18 @@ is running. | |||
12 | 12 | ||
13 | Page migration allows a process to manually relocate the node on which its | 13 | Page migration allows a process to manually relocate the node on which its |
14 | pages are located through the MF_MOVE and MF_MOVE_ALL options while setting | 14 | pages are located through the MF_MOVE and MF_MOVE_ALL options while setting |
15 | a new memory policy. The pages of process can also be relocated | 15 | a new memory policy via mbind(). The pages of process can also be relocated |
16 | from another process using the sys_migrate_pages() function call. The | 16 | from another process using the sys_migrate_pages() function call. The |
17 | migrate_pages function call takes two sets of nodes and moves pages of a | 17 | migrate_pages function call takes two sets of nodes and moves pages of a |
18 | process that are located on the from nodes to the destination nodes. | 18 | process that are located on the from nodes to the destination nodes. |
19 | 19 | Page migration functions are provided by the numactl package by Andi Kleen | |
20 | Manual migration is very useful if for example the scheduler has relocated | 20 | (a version later than 0.9.3 is required. Get it from |
21 | ftp://ftp.suse.com/pub/people/ak). numactl provided libnuma which | ||
22 | provides an interface similar to other numa functionality for page migration. | ||
23 | cat /proc/<pid>/numa_maps allows an easy review of where the pages of | ||
24 | a process are located. See also the numa_maps manpage in the numactl package. | ||
25 | |||
26 | Manual migration is useful if for example the scheduler has relocated | ||
21 | a process to a processor on a distant node. A batch scheduler or an | 27 | a process to a processor on a distant node. A batch scheduler or an |
22 | administrator may detect the situation and move the pages of the process | 28 | administrator may detect the situation and move the pages of the process |
23 | nearer to the new processor. At some point in the future we may have | 29 | nearer to the new processor. At some point in the future we may have |
@@ -25,10 +31,12 @@ some mechanism in the scheduler that will automatically move the pages. | |||
25 | 31 | ||
26 | Larger installations usually partition the system using cpusets into | 32 | Larger installations usually partition the system using cpusets into |
27 | sections of nodes. Paul Jackson has equipped cpusets with the ability to | 33 | sections of nodes. Paul Jackson has equipped cpusets with the ability to |
28 | move pages when a task is moved to another cpuset. This allows automatic | 34 | move pages when a task is moved to another cpuset (See ../cpusets.txt). |
29 | control over locality of a process. If a task is moved to a new cpuset | 35 | Cpusets allows the automation of process locality. If a task is moved to |
30 | then also all its pages are moved with it so that the performance of the | 36 | a new cpuset then also all its pages are moved with it so that the |
31 | process does not sink dramatically (as is the case today). | 37 | performance of the process does not sink dramatically. Also the pages |
38 | of processes in a cpuset are moved if the allowed memory nodes of a | ||
39 | cpuset are changed. | ||
32 | 40 | ||
33 | Page migration allows the preservation of the relative location of pages | 41 | Page migration allows the preservation of the relative location of pages |
34 | within a group of nodes for all migration techniques which will preserve a | 42 | within a group of nodes for all migration techniques which will preserve a |
@@ -37,22 +45,26 @@ process. This is necessary in order to preserve the memory latencies. | |||
37 | Processes will run with similar performance after migration. | 45 | Processes will run with similar performance after migration. |
38 | 46 | ||
39 | Page migration occurs in several steps. First a high level | 47 | Page migration occurs in several steps. First a high level |
40 | description for those trying to use migrate_pages() and then | 48 | description for those trying to use migrate_pages() from the kernel |
41 | a low level description of how the low level details work. | 49 | (for userspace usage see the Andi Kleen's numactl package mentioned above) |
50 | and then a low level description of how the low level details work. | ||
42 | 51 | ||
43 | A. Use of migrate_pages() | 52 | A. In kernel use of migrate_pages() |
44 | ------------------------- | 53 | ----------------------------------- |
45 | 54 | ||
46 | 1. Remove pages from the LRU. | 55 | 1. Remove pages from the LRU. |
47 | 56 | ||
48 | Lists of pages to be migrated are generated by scanning over | 57 | Lists of pages to be migrated are generated by scanning over |
49 | pages and moving them into lists. This is done by | 58 | pages and moving them into lists. This is done by |
50 | calling isolate_lru_page() or __isolate_lru_page(). | 59 | calling isolate_lru_page(). |
51 | Calling isolate_lru_page increases the references to the page | 60 | Calling isolate_lru_page increases the references to the page |
52 | so that it cannot vanish under us. | 61 | so that it cannot vanish while the page migration occurs. |
62 | It also prevents the swapper or other scans to encounter | ||
63 | the page. | ||
53 | 64 | ||
54 | 2. Generate a list of newly allocates page to move the contents | 65 | 2. Generate a list of newly allocates page. These pages will contain the |
55 | of the first list to. | 66 | contents of the pages from the first list after page migration is |
67 | complete. | ||
56 | 68 | ||
57 | 3. The migrate_pages() function is called which attempts | 69 | 3. The migrate_pages() function is called which attempts |
58 | to do the migration. It returns the moved pages in the | 70 | to do the migration. It returns the moved pages in the |
@@ -63,13 +75,17 @@ A. Use of migrate_pages() | |||
63 | 4. The leftover pages of various types are returned | 75 | 4. The leftover pages of various types are returned |
64 | to the LRU using putback_to_lru_pages() or otherwise | 76 | to the LRU using putback_to_lru_pages() or otherwise |
65 | disposed of. The pages will still have the refcount as | 77 | disposed of. The pages will still have the refcount as |
66 | increased by isolate_lru_pages()! | 78 | increased by isolate_lru_pages() if putback_to_lru_pages() is not |
79 | used! The kernel may want to handle the various cases of failures in | ||
80 | different ways. | ||
67 | 81 | ||
68 | B. Operation of migrate_pages() | 82 | B. How migrate_pages() works |
69 | -------------------------------- | 83 | ---------------------------- |
70 | 84 | ||
71 | migrate_pages does several passes over its list of pages. A page is moved | 85 | migrate_pages() does several passes over its list of pages. A page is moved |
72 | if all references to a page are removable at the time. | 86 | if all references to a page are removable at the time. The page has |
87 | already been removed from the LRU via isolate_lru_page() and the refcount | ||
88 | is increased so that the page cannot be freed while page migration occurs. | ||
73 | 89 | ||
74 | Steps: | 90 | Steps: |
75 | 91 | ||
@@ -79,36 +95,40 @@ Steps: | |||
79 | 95 | ||
80 | 3. Make sure that the page has assigned swap cache entry if | 96 | 3. Make sure that the page has assigned swap cache entry if |
81 | it is an anonyous page. The swap cache reference is necessary | 97 | it is an anonyous page. The swap cache reference is necessary |
82 | to preserve the information contain in the page table maps. | 98 | to preserve the information contain in the page table maps while |
99 | page migration occurs. | ||
83 | 100 | ||
84 | 4. Prep the new page that we want to move to. It is locked | 101 | 4. Prep the new page that we want to move to. It is locked |
85 | and set to not being uptodate so that all accesses to the new | 102 | and set to not being uptodate so that all accesses to the new |
86 | page immediately lock while we are moving references. | 103 | page immediately lock while the move is in progress. |
87 | 104 | ||
88 | 5. All the page table references to the page are either dropped (file backed) | 105 | 5. All the page table references to the page are either dropped (file |
89 | or converted to swap references (anonymous pages). This should decrease the | 106 | backed pages) or converted to swap references (anonymous pages). |
90 | reference count. | 107 | This should decrease the reference count. |
91 | 108 | ||
92 | 6. The radix tree lock is taken | 109 | 6. The radix tree lock is taken. This will cause all processes trying |
110 | to reestablish a pte to block on the radix tree spinlock. | ||
93 | 111 | ||
94 | 7. The refcount of the page is examined and we back out if references remain | 112 | 7. The refcount of the page is examined and we back out if references remain |
95 | otherwise we know that we are the only one referencing this page. | 113 | otherwise we know that we are the only one referencing this page. |
96 | 114 | ||
97 | 8. The radix tree is checked and if it does not contain the pointer to this | 115 | 8. The radix tree is checked and if it does not contain the pointer to this |
98 | page then we back out. | 116 | page then we back out because someone else modified the mapping first. |
99 | 117 | ||
100 | 9. The mapping is checked. If the mapping is gone then a truncate action may | 118 | 9. The mapping is checked. If the mapping is gone then a truncate action may |
101 | be in progress and we back out. | 119 | be in progress and we back out. |
102 | 120 | ||
103 | 10. The new page is prepped with some settings from the old page so that accesses | 121 | 10. The new page is prepped with some settings from the old page so that |
104 | to the new page will be discovered to have the correct settings. | 122 | accesses to the new page will be discovered to have the correct settings. |
105 | 123 | ||
106 | 11. The radix tree is changed to point to the new page. | 124 | 11. The radix tree is changed to point to the new page. |
107 | 125 | ||
108 | 12. The reference count of the old page is dropped because the reference has now | 126 | 12. The reference count of the old page is dropped because the radix tree |
109 | been removed. | 127 | reference is gone. |
110 | 128 | ||
111 | 13. The radix tree lock is dropped. | 129 | 13. The radix tree lock is dropped. With that lookups become possible again |
130 | and other processes will move from spinning on the tree lock to sleeping on | ||
131 | the locked new page. | ||
112 | 132 | ||
113 | 14. The page contents are copied to the new page. | 133 | 14. The page contents are copied to the new page. |
114 | 134 | ||
@@ -119,11 +139,37 @@ Steps: | |||
119 | 139 | ||
120 | 17. Queued up writeback on the new page is triggered. | 140 | 17. Queued up writeback on the new page is triggered. |
121 | 141 | ||
122 | 18. If swap pte's were generated for the page then remove them again. | 142 | 18. If swap pte's were generated for the page then replace them with real |
143 | ptes. This will reenable access for processes not blocked by the page lock. | ||
144 | |||
145 | 19. The page locks are dropped from the old and new page. | ||
146 | Processes waiting on the page lock can continue. | ||
147 | |||
148 | 20. The new page is moved to the LRU and can be scanned by the swapper | ||
149 | etc again. | ||
150 | |||
151 | TODO list | ||
152 | --------- | ||
153 | |||
154 | - Page migration requires the use of swap handles to preserve the | ||
155 | information of the anonymous page table entries. This means that swap | ||
156 | space is reserved but never used. The maximum number of swap handles used | ||
157 | is determined by CHUNK_SIZE (see mm/mempolicy.c) per ongoing migration. | ||
158 | Reservation of pages could be avoided by having a special type of swap | ||
159 | handle that does not require swap space and that would only track the page | ||
160 | references. Something like that was proposed by Marcelo Tosatti in the | ||
161 | past (search for migration cache on lkml or linux-mm@kvack.org). | ||
123 | 162 | ||
124 | 19. The locks are dropped from the old and new page. | 163 | - Page migration unmaps ptes for file backed pages and requires page |
164 | faults to reestablish these ptes. This could be optimized by somehow | ||
165 | recording the references before migration and then reestablish them later. | ||
166 | However, there are several locking challenges that have to be overcome | ||
167 | before this is possible. | ||
125 | 168 | ||
126 | 20. The new page is moved to the LRU. | 169 | - Page migration generates read ptes for anonymous pages. Dirty page |
170 | faults are required to make the pages writable again. It may be possible | ||
171 | to generate a pte marked dirty if it is known that the page is dirty and | ||
172 | that this process has the only reference to that page. | ||
127 | 173 | ||
128 | Christoph Lameter, December 19, 2005. | 174 | Christoph Lameter, March 8, 2006. |
129 | 175 | ||