aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/DocBook
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/DocBook')
-rw-r--r--Documentation/DocBook/gadget.tmpl2
-rw-r--r--Documentation/DocBook/kernel-locking.tmpl123
-rw-r--r--Documentation/DocBook/usb.tmpl28
3 files changed, 93 insertions, 60 deletions
diff --git a/Documentation/DocBook/gadget.tmpl b/Documentation/DocBook/gadget.tmpl
index e7fc96433408..6996d977bf8f 100644
--- a/Documentation/DocBook/gadget.tmpl
+++ b/Documentation/DocBook/gadget.tmpl
@@ -52,7 +52,7 @@
52 52
53<toc></toc> 53<toc></toc>
54 54
55<chapter><title>Introduction</title> 55<chapter id="intro"><title>Introduction</title>
56 56
57<para>This document presents a Linux-USB "Gadget" 57<para>This document presents a Linux-USB "Gadget"
58kernel mode 58kernel mode
diff --git a/Documentation/DocBook/kernel-locking.tmpl b/Documentation/DocBook/kernel-locking.tmpl
index 644c3884fab9..0a441f73261a 100644
--- a/Documentation/DocBook/kernel-locking.tmpl
+++ b/Documentation/DocBook/kernel-locking.tmpl
@@ -551,10 +551,12 @@
551 <function>spin_lock_irqsave()</function>, which is a superset 551 <function>spin_lock_irqsave()</function>, which is a superset
552 of all other spinlock primitives. 552 of all other spinlock primitives.
553 </para> 553 </para>
554
554 <table> 555 <table>
555<title>Table of Locking Requirements</title> 556<title>Table of Locking Requirements</title>
556<tgroup cols="11"> 557<tgroup cols="11">
557<tbody> 558<tbody>
559
558<row> 560<row>
559<entry></entry> 561<entry></entry>
560<entry>IRQ Handler A</entry> 562<entry>IRQ Handler A</entry>
@@ -576,97 +578,128 @@
576 578
577<row> 579<row>
578<entry>IRQ Handler B</entry> 580<entry>IRQ Handler B</entry>
579<entry>spin_lock_irqsave</entry> 581<entry>SLIS</entry>
580<entry>None</entry> 582<entry>None</entry>
581</row> 583</row>
582 584
583<row> 585<row>
584<entry>Softirq A</entry> 586<entry>Softirq A</entry>
585<entry>spin_lock_irq</entry> 587<entry>SLI</entry>
586<entry>spin_lock_irq</entry> 588<entry>SLI</entry>
587<entry>spin_lock</entry> 589<entry>SL</entry>
588</row> 590</row>
589 591
590<row> 592<row>
591<entry>Softirq B</entry> 593<entry>Softirq B</entry>
592<entry>spin_lock_irq</entry> 594<entry>SLI</entry>
593<entry>spin_lock_irq</entry> 595<entry>SLI</entry>
594<entry>spin_lock</entry> 596<entry>SL</entry>
595<entry>spin_lock</entry> 597<entry>SL</entry>
596</row> 598</row>
597 599
598<row> 600<row>
599<entry>Tasklet A</entry> 601<entry>Tasklet A</entry>
600<entry>spin_lock_irq</entry> 602<entry>SLI</entry>
601<entry>spin_lock_irq</entry> 603<entry>SLI</entry>
602<entry>spin_lock</entry> 604<entry>SL</entry>
603<entry>spin_lock</entry> 605<entry>SL</entry>
604<entry>None</entry> 606<entry>None</entry>
605</row> 607</row>
606 608
607<row> 609<row>
608<entry>Tasklet B</entry> 610<entry>Tasklet B</entry>
609<entry>spin_lock_irq</entry> 611<entry>SLI</entry>
610<entry>spin_lock_irq</entry> 612<entry>SLI</entry>
611<entry>spin_lock</entry> 613<entry>SL</entry>
612<entry>spin_lock</entry> 614<entry>SL</entry>
613<entry>spin_lock</entry> 615<entry>SL</entry>
614<entry>None</entry> 616<entry>None</entry>
615</row> 617</row>
616 618
617<row> 619<row>
618<entry>Timer A</entry> 620<entry>Timer A</entry>
619<entry>spin_lock_irq</entry> 621<entry>SLI</entry>
620<entry>spin_lock_irq</entry> 622<entry>SLI</entry>
621<entry>spin_lock</entry> 623<entry>SL</entry>
622<entry>spin_lock</entry> 624<entry>SL</entry>
623<entry>spin_lock</entry> 625<entry>SL</entry>
624<entry>spin_lock</entry> 626<entry>SL</entry>
625<entry>None</entry> 627<entry>None</entry>
626</row> 628</row>
627 629
628<row> 630<row>
629<entry>Timer B</entry> 631<entry>Timer B</entry>
630<entry>spin_lock_irq</entry> 632<entry>SLI</entry>
631<entry>spin_lock_irq</entry> 633<entry>SLI</entry>
632<entry>spin_lock</entry> 634<entry>SL</entry>
633<entry>spin_lock</entry> 635<entry>SL</entry>
634<entry>spin_lock</entry> 636<entry>SL</entry>
635<entry>spin_lock</entry> 637<entry>SL</entry>
636<entry>spin_lock</entry> 638<entry>SL</entry>
637<entry>None</entry> 639<entry>None</entry>
638</row> 640</row>
639 641
640<row> 642<row>
641<entry>User Context A</entry> 643<entry>User Context A</entry>
642<entry>spin_lock_irq</entry> 644<entry>SLI</entry>
643<entry>spin_lock_irq</entry> 645<entry>SLI</entry>
644<entry>spin_lock_bh</entry> 646<entry>SLBH</entry>
645<entry>spin_lock_bh</entry> 647<entry>SLBH</entry>
646<entry>spin_lock_bh</entry> 648<entry>SLBH</entry>
647<entry>spin_lock_bh</entry> 649<entry>SLBH</entry>
648<entry>spin_lock_bh</entry> 650<entry>SLBH</entry>
649<entry>spin_lock_bh</entry> 651<entry>SLBH</entry>
650<entry>None</entry> 652<entry>None</entry>
651</row> 653</row>
652 654
653<row> 655<row>
654<entry>User Context B</entry> 656<entry>User Context B</entry>
657<entry>SLI</entry>
658<entry>SLI</entry>
659<entry>SLBH</entry>
660<entry>SLBH</entry>
661<entry>SLBH</entry>
662<entry>SLBH</entry>
663<entry>SLBH</entry>
664<entry>SLBH</entry>
665<entry>DI</entry>
666<entry>None</entry>
667</row>
668
669</tbody>
670</tgroup>
671</table>
672
673 <table>
674<title>Legend for Locking Requirements Table</title>
675<tgroup cols="2">
676<tbody>
677
678<row>
679<entry>SLIS</entry>
680<entry>spin_lock_irqsave</entry>
681</row>
682<row>
683<entry>SLI</entry>
655<entry>spin_lock_irq</entry> 684<entry>spin_lock_irq</entry>
656<entry>spin_lock_irq</entry> 685</row>
657<entry>spin_lock_bh</entry> 686<row>
658<entry>spin_lock_bh</entry> 687<entry>SL</entry>
659<entry>spin_lock_bh</entry> 688<entry>spin_lock</entry>
660<entry>spin_lock_bh</entry> 689</row>
661<entry>spin_lock_bh</entry> 690<row>
691<entry>SLBH</entry>
662<entry>spin_lock_bh</entry> 692<entry>spin_lock_bh</entry>
693</row>
694<row>
695<entry>DI</entry>
663<entry>down_interruptible</entry> 696<entry>down_interruptible</entry>
664<entry>None</entry>
665</row> 697</row>
666 698
667</tbody> 699</tbody>
668</tgroup> 700</tgroup>
669</table> 701</table>
702
670</sect1> 703</sect1>
671</chapter> 704</chapter>
672 705
diff --git a/Documentation/DocBook/usb.tmpl b/Documentation/DocBook/usb.tmpl
index a2ebd651b05a..af293606fbe3 100644
--- a/Documentation/DocBook/usb.tmpl
+++ b/Documentation/DocBook/usb.tmpl
@@ -185,7 +185,7 @@
185 185
186 </chapter> 186 </chapter>
187 187
188<chapter><title>USB-Standard Types</title> 188<chapter id="types"><title>USB-Standard Types</title>
189 189
190 <para>In <filename>&lt;linux/usb/ch9.h&gt;</filename> you will find 190 <para>In <filename>&lt;linux/usb/ch9.h&gt;</filename> you will find
191 the USB data types defined in chapter 9 of the USB specification. 191 the USB data types defined in chapter 9 of the USB specification.
@@ -197,7 +197,7 @@
197 197
198 </chapter> 198 </chapter>
199 199
200<chapter><title>Host-Side Data Types and Macros</title> 200<chapter id="hostside"><title>Host-Side Data Types and Macros</title>
201 201
202 <para>The host side API exposes several layers to drivers, some of 202 <para>The host side API exposes several layers to drivers, some of
203 which are more necessary than others. 203 which are more necessary than others.
@@ -211,7 +211,7 @@
211 211
212 </chapter> 212 </chapter>
213 213
214 <chapter><title>USB Core APIs</title> 214 <chapter id="usbcore"><title>USB Core APIs</title>
215 215
216 <para>There are two basic I/O models in the USB API. 216 <para>There are two basic I/O models in the USB API.
217 The most elemental one is asynchronous: drivers submit requests 217 The most elemental one is asynchronous: drivers submit requests
@@ -248,7 +248,7 @@
248!Edrivers/usb/core/hub.c 248!Edrivers/usb/core/hub.c
249 </chapter> 249 </chapter>
250 250
251 <chapter><title>Host Controller APIs</title> 251 <chapter id="hcd"><title>Host Controller APIs</title>
252 252
253 <para>These APIs are only for use by host controller drivers, 253 <para>These APIs are only for use by host controller drivers,
254 most of which implement standard register interfaces such as 254 most of which implement standard register interfaces such as
@@ -285,7 +285,7 @@
285!Idrivers/usb/core/buffer.c 285!Idrivers/usb/core/buffer.c
286 </chapter> 286 </chapter>
287 287
288 <chapter> 288 <chapter id="usbfs">
289 <title>The USB Filesystem (usbfs)</title> 289 <title>The USB Filesystem (usbfs)</title>
290 290
291 <para>This chapter presents the Linux <emphasis>usbfs</emphasis>. 291 <para>This chapter presents the Linux <emphasis>usbfs</emphasis>.
@@ -317,7 +317,7 @@
317 not it has a kernel driver. 317 not it has a kernel driver.
318 </para> 318 </para>
319 319
320 <sect1> 320 <sect1 id="usbfs-files">
321 <title>What files are in "usbfs"?</title> 321 <title>What files are in "usbfs"?</title>
322 322
323 <para>Conventionally mounted at 323 <para>Conventionally mounted at
@@ -356,7 +356,7 @@
356 356
357 </sect1> 357 </sect1>
358 358
359 <sect1> 359 <sect1 id="usbfs-fstab">
360 <title>Mounting and Access Control</title> 360 <title>Mounting and Access Control</title>
361 361
362 <para>There are a number of mount options for usbfs, which will 362 <para>There are a number of mount options for usbfs, which will
@@ -439,7 +439,7 @@
439 439
440 </sect1> 440 </sect1>
441 441
442 <sect1> 442 <sect1 id="usbfs-devices">
443 <title>/proc/bus/usb/devices</title> 443 <title>/proc/bus/usb/devices</title>
444 444
445 <para>This file is handy for status viewing tools in user 445 <para>This file is handy for status viewing tools in user
@@ -473,7 +473,7 @@ for (;;) {
473 </para> 473 </para>
474 </sect1> 474 </sect1>
475 475
476 <sect1> 476 <sect1 id="usbfs-bbbddd">
477 <title>/proc/bus/usb/BBB/DDD</title> 477 <title>/proc/bus/usb/BBB/DDD</title>
478 478
479 <para>Use these files in one of these basic ways: 479 <para>Use these files in one of these basic ways:
@@ -510,7 +510,7 @@ for (;;) {
510 </sect1> 510 </sect1>
511 511
512 512
513 <sect1> 513 <sect1 id="usbfs-lifecycle">
514 <title>Life Cycle of User Mode Drivers</title> 514 <title>Life Cycle of User Mode Drivers</title>
515 515
516 <para>Such a driver first needs to find a device file 516 <para>Such a driver first needs to find a device file
@@ -565,7 +565,7 @@ for (;;) {
565 565
566 </sect1> 566 </sect1>
567 567
568 <sect1><title>The ioctl() Requests</title> 568 <sect1 id="usbfs-ioctl"><title>The ioctl() Requests</title>
569 569
570 <para>To use these ioctls, you need to include the following 570 <para>To use these ioctls, you need to include the following
571 headers in your userspace program: 571 headers in your userspace program:
@@ -604,7 +604,7 @@ for (;;) {
604 </para> 604 </para>
605 605
606 606
607 <sect2> 607 <sect2 id="usbfs-mgmt">
608 <title>Management/Status Requests</title> 608 <title>Management/Status Requests</title>
609 609
610 <para>A number of usbfs requests don't deal very directly 610 <para>A number of usbfs requests don't deal very directly
@@ -736,7 +736,7 @@ usbdev_ioctl (int fd, int ifno, unsigned request, void *param)
736 736
737 </sect2> 737 </sect2>
738 738
739 <sect2> 739 <sect2 id="usbfs-sync">
740 <title>Synchronous I/O Support</title> 740 <title>Synchronous I/O Support</title>
741 741
742 <para>Synchronous requests involve the kernel blocking 742 <para>Synchronous requests involve the kernel blocking
@@ -865,7 +865,7 @@ usbdev_ioctl (int fd, int ifno, unsigned request, void *param)
865 </variablelist> 865 </variablelist>
866 </sect2> 866 </sect2>
867 867
868 <sect2> 868 <sect2 id="usbfs-async">
869 <title>Asynchronous I/O Support</title> 869 <title>Asynchronous I/O Support</title>
870 870
871 <para>As mentioned above, there are situations where it may be 871 <para>As mentioned above, there are situations where it may be