diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-12-12 17:42:48 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-12-12 17:42:48 -0500 |
commit | 823e334ecd247dd49ca2c5c90414435d77135340 (patch) | |
tree | 3e015dacfcf51fc0d0dba5541084363843e64358 | |
parent | 6ce4436c9cbe903af935291aa219fd6f4c85722d (diff) | |
parent | 9b64c09bb960b4ccae2a42e204cd70f83b115e3d (diff) |
Merge tag 'docs-for-linus' of git://git.lwn.net/linux-2.6
Pull documentation update from Jonathan Corbet:
"Here's my set of accumulated documentation changes for 3.19.
It includes a couple of additions to the coding style document, some
fixes for minor build problems within the documentation tree, the
relocation of the kselftest docs, and various tweaks and additions.
A couple of changes reach outside of Documentation/; they only make
trivial comment changes and I did my best to get the required acks.
Complete with a shiny signed tag this time around"
* tag 'docs-for-linus' of git://git.lwn.net/linux-2.6:
kobject: grammar fix
Input: xpad - update docs to reflect current state
Documentation: Build mic/mpssd only for x86_64
cgroups: Documentation: fix wrong cgroupfs paths
Documentation/email-clients.txt: add info about Claws Mail
CodingStyle: add some more error handling guidelines
kselftest: Move the docs to the Documentation dir
Documentation: fix formatting to make 's' happy
Documentation: power: Fix typo in Documentation/power
Documentation: vm: Add 1GB large page support information
ipv4: add kernel parameter tcpmhash_entries
Documentation: Fix a typo in mailbox.txt
treewide: Fix typo in Documentation/DocBook/device-drivers
CodingStyle: Add a chapter on conditional compilation
-rw-r--r-- | Documentation/CodingStyle | 70 | ||||
-rw-r--r-- | Documentation/cgroups/cgroups.txt | 4 | ||||
-rw-r--r-- | Documentation/email-clients.txt | 11 | ||||
-rw-r--r-- | Documentation/filesystems/proc.txt | 2 | ||||
-rw-r--r-- | Documentation/input/xpad.txt | 123 | ||||
-rw-r--r-- | Documentation/kernel-parameters.txt | 7 | ||||
-rw-r--r-- | Documentation/kobject.txt | 2 | ||||
-rw-r--r-- | Documentation/kselftest.txt (renamed from tools/testing/selftests/README.txt) | 30 | ||||
-rw-r--r-- | Documentation/mailbox.txt | 2 | ||||
-rw-r--r-- | Documentation/mic/mpssd/Makefile | 2 | ||||
-rw-r--r-- | Documentation/power/runtime_pm.txt | 6 | ||||
-rw-r--r-- | Documentation/power/suspend-and-interrupts.txt | 2 | ||||
-rw-r--r-- | Documentation/power/userland-swsusp.txt | 2 | ||||
-rw-r--r-- | Documentation/vm/hugetlbpage.txt | 4 | ||||
-rw-r--r-- | drivers/dma-buf/fence.c | 2 | ||||
-rw-r--r-- | include/linux/fence.h | 4 | ||||
-rw-r--r-- | include/linux/i2c.h | 2 |
17 files changed, 202 insertions, 73 deletions
diff --git a/Documentation/CodingStyle b/Documentation/CodingStyle index 3171822c22a5..618a33c940df 100644 --- a/Documentation/CodingStyle +++ b/Documentation/CodingStyle | |||
@@ -392,7 +392,12 @@ The goto statement comes in handy when a function exits from multiple | |||
392 | locations and some common work such as cleanup has to be done. If there is no | 392 | locations and some common work such as cleanup has to be done. If there is no |
393 | cleanup needed then just return directly. | 393 | cleanup needed then just return directly. |
394 | 394 | ||
395 | The rationale is: | 395 | Choose label names which say what the goto does or why the goto exists. An |
396 | example of a good name could be "out_buffer:" if the goto frees "buffer". Avoid | ||
397 | using GW-BASIC names like "err1:" and "err2:". Also don't name them after the | ||
398 | goto location like "err_kmalloc_failed:" | ||
399 | |||
400 | The rationale for using gotos is: | ||
396 | 401 | ||
397 | - unconditional statements are easier to understand and follow | 402 | - unconditional statements are easier to understand and follow |
398 | - nesting is reduced | 403 | - nesting is reduced |
@@ -403,9 +408,10 @@ The rationale is: | |||
403 | int fun(int a) | 408 | int fun(int a) |
404 | { | 409 | { |
405 | int result = 0; | 410 | int result = 0; |
406 | char *buffer = kmalloc(SIZE); | 411 | char *buffer; |
407 | 412 | ||
408 | if (buffer == NULL) | 413 | buffer = kmalloc(SIZE, GFP_KERNEL); |
414 | if (!buffer) | ||
409 | return -ENOMEM; | 415 | return -ENOMEM; |
410 | 416 | ||
411 | if (condition1) { | 417 | if (condition1) { |
@@ -413,14 +419,25 @@ int fun(int a) | |||
413 | ... | 419 | ... |
414 | } | 420 | } |
415 | result = 1; | 421 | result = 1; |
416 | goto out; | 422 | goto out_buffer; |
417 | } | 423 | } |
418 | ... | 424 | ... |
419 | out: | 425 | out_buffer: |
420 | kfree(buffer); | 426 | kfree(buffer); |
421 | return result; | 427 | return result; |
422 | } | 428 | } |
423 | 429 | ||
430 | A common type of bug to be aware of it "one err bugs" which look like this: | ||
431 | |||
432 | err: | ||
433 | kfree(foo->bar); | ||
434 | kfree(foo); | ||
435 | return ret; | ||
436 | |||
437 | The bug in this code is that on some exit paths "foo" is NULL. Normally the | ||
438 | fix for this is to split it up into two error labels "err_bar:" and "err_foo:". | ||
439 | |||
440 | |||
424 | Chapter 8: Commenting | 441 | Chapter 8: Commenting |
425 | 442 | ||
426 | Comments are good, but there is also a danger of over-commenting. NEVER | 443 | Comments are good, but there is also a danger of over-commenting. NEVER |
@@ -845,6 +862,49 @@ next instruction in the assembly output: | |||
845 | : /* outputs */ : /* inputs */ : /* clobbers */); | 862 | : /* outputs */ : /* inputs */ : /* clobbers */); |
846 | 863 | ||
847 | 864 | ||
865 | Chapter 20: Conditional Compilation | ||
866 | |||
867 | Wherever possible, don't use preprocessor conditionals (#if, #ifdef) in .c | ||
868 | files; doing so makes code harder to read and logic harder to follow. Instead, | ||
869 | use such conditionals in a header file defining functions for use in those .c | ||
870 | files, providing no-op stub versions in the #else case, and then call those | ||
871 | functions unconditionally from .c files. The compiler will avoid generating | ||
872 | any code for the stub calls, producing identical results, but the logic will | ||
873 | remain easy to follow. | ||
874 | |||
875 | Prefer to compile out entire functions, rather than portions of functions or | ||
876 | portions of expressions. Rather than putting an ifdef in an expression, factor | ||
877 | out part or all of the expression into a separate helper function and apply the | ||
878 | conditional to that function. | ||
879 | |||
880 | If you have a function or variable which may potentially go unused in a | ||
881 | particular configuration, and the compiler would warn about its definition | ||
882 | going unused, mark the definition as __maybe_unused rather than wrapping it in | ||
883 | a preprocessor conditional. (However, if a function or variable *always* goes | ||
884 | unused, delete it.) | ||
885 | |||
886 | Within code, where possible, use the IS_ENABLED macro to convert a Kconfig | ||
887 | symbol into a C boolean expression, and use it in a normal C conditional: | ||
888 | |||
889 | if (IS_ENABLED(CONFIG_SOMETHING)) { | ||
890 | ... | ||
891 | } | ||
892 | |||
893 | The compiler will constant-fold the conditional away, and include or exclude | ||
894 | the block of code just as with an #ifdef, so this will not add any runtime | ||
895 | overhead. However, this approach still allows the C compiler to see the code | ||
896 | inside the block, and check it for correctness (syntax, types, symbol | ||
897 | references, etc). Thus, you still have to use an #ifdef if the code inside the | ||
898 | block references symbols that will not exist if the condition is not met. | ||
899 | |||
900 | At the end of any non-trivial #if or #ifdef block (more than a few lines), | ||
901 | place a comment after the #endif on the same line, noting the conditional | ||
902 | expression used. For instance: | ||
903 | |||
904 | #ifdef CONFIG_SOMETHING | ||
905 | ... | ||
906 | #endif /* CONFIG_SOMETHING */ | ||
907 | |||
848 | 908 | ||
849 | Appendix I: References | 909 | Appendix I: References |
850 | 910 | ||
diff --git a/Documentation/cgroups/cgroups.txt b/Documentation/cgroups/cgroups.txt index 10c949b293e4..f935fac1e73b 100644 --- a/Documentation/cgroups/cgroups.txt +++ b/Documentation/cgroups/cgroups.txt | |||
@@ -312,10 +312,10 @@ the "cpuset" cgroup subsystem, the steps are something like: | |||
312 | 2) mkdir /sys/fs/cgroup/cpuset | 312 | 2) mkdir /sys/fs/cgroup/cpuset |
313 | 3) mount -t cgroup -ocpuset cpuset /sys/fs/cgroup/cpuset | 313 | 3) mount -t cgroup -ocpuset cpuset /sys/fs/cgroup/cpuset |
314 | 4) Create the new cgroup by doing mkdir's and write's (or echo's) in | 314 | 4) Create the new cgroup by doing mkdir's and write's (or echo's) in |
315 | the /sys/fs/cgroup virtual file system. | 315 | the /sys/fs/cgroup/cpuset virtual file system. |
316 | 5) Start a task that will be the "founding father" of the new job. | 316 | 5) Start a task that will be the "founding father" of the new job. |
317 | 6) Attach that task to the new cgroup by writing its PID to the | 317 | 6) Attach that task to the new cgroup by writing its PID to the |
318 | /sys/fs/cgroup/cpuset/tasks file for that cgroup. | 318 | /sys/fs/cgroup/cpuset tasks file for that cgroup. |
319 | 7) fork, exec or clone the job tasks from this founding father task. | 319 | 7) fork, exec or clone the job tasks from this founding father task. |
320 | 320 | ||
321 | For example, the following sequence of commands will setup a cgroup | 321 | For example, the following sequence of commands will setup a cgroup |
diff --git a/Documentation/email-clients.txt b/Documentation/email-clients.txt index 9af538be3751..eede6088f978 100644 --- a/Documentation/email-clients.txt +++ b/Documentation/email-clients.txt | |||
@@ -77,6 +77,17 @@ should appear, and then pressing CTRL-R let you specify the patch file | |||
77 | to insert into the message. | 77 | to insert into the message. |
78 | 78 | ||
79 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 79 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
80 | Claws Mail (GUI) | ||
81 | |||
82 | Works. Some people use this successfully for patches. | ||
83 | |||
84 | To insert a patch use Message->Insert File (CTRL+i) or an external editor. | ||
85 | |||
86 | If the inserted patch has to be edited in the Claws composition window | ||
87 | "Auto wrapping" in Configuration->Preferences->Compose->Wrapping should be | ||
88 | disabled. | ||
89 | |||
90 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
80 | Evolution (GUI) | 91 | Evolution (GUI) |
81 | 92 | ||
82 | Some people use this successfully for patches. | 93 | Some people use this successfully for patches. |
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt index eb8a10e22f7c..aae9dd13c91f 100644 --- a/Documentation/filesystems/proc.txt +++ b/Documentation/filesystems/proc.txt | |||
@@ -1272,7 +1272,7 @@ softirq. | |||
1272 | 1272 | ||
1273 | 1273 | ||
1274 | 1.9 Ext4 file system parameters | 1274 | 1.9 Ext4 file system parameters |
1275 | ------------------------------ | 1275 | ------------------------------- |
1276 | 1276 | ||
1277 | Information about mounted ext4 file systems can be found in | 1277 | Information about mounted ext4 file systems can be found in |
1278 | /proc/fs/ext4. Each mounted filesystem will have a directory in | 1278 | /proc/fs/ext4. Each mounted filesystem will have a directory in |
diff --git a/Documentation/input/xpad.txt b/Documentation/input/xpad.txt index 7cc9a436e6a1..d1b23f295db4 100644 --- a/Documentation/input/xpad.txt +++ b/Documentation/input/xpad.txt | |||
@@ -1,18 +1,22 @@ | |||
1 | xpad - Linux USB driver for X-Box gamepads | 1 | xpad - Linux USB driver for Xbox compatible controllers |
2 | 2 | ||
3 | This is the very first release of a driver for X-Box gamepads. | 3 | This driver exposes all first-party and third-party Xbox compatible |
4 | Basically, this was hacked away in just a few hours, so don't expect | 4 | controllers. It has a long history and has enjoyed considerable usage |
5 | miracles. | 5 | as Window's xinput library caused most PC games to focus on Xbox |
6 | controller compatibility. | ||
6 | 7 | ||
7 | In particular, there is currently NO support for the rumble pack. | 8 | Due to backwards compatibility all buttons are reported as digital. |
8 | You won't find many ff-aware linux applications anyway. | 9 | This only effects Original Xbox controllers. All later controller models |
10 | have only digital face buttons. | ||
11 | |||
12 | Rumble is supported on some models of Xbox 360 controllers but not of | ||
13 | Original Xbox controllers nor on Xbox One controllers. As of writing | ||
14 | the Xbox One's rumble protocol has not been reverse engineered but in | ||
15 | the future could be supported. | ||
9 | 16 | ||
10 | 17 | ||
11 | 0. Notes | 18 | 0. Notes |
12 | -------- | 19 | -------- |
13 | |||
14 | Driver updated for kernel 2.6.17.11. (Based on a patch for 2.6.11.4.) | ||
15 | |||
16 | The number of buttons/axes reported varies based on 3 things: | 20 | The number of buttons/axes reported varies based on 3 things: |
17 | - if you are using a known controller | 21 | - if you are using a known controller |
18 | - if you are using a known dance pad | 22 | - if you are using a known dance pad |
@@ -20,12 +24,16 @@ The number of buttons/axes reported varies based on 3 things: | |||
20 | module configuration for "Map D-PAD to buttons rather than axes for unknown | 24 | module configuration for "Map D-PAD to buttons rather than axes for unknown |
21 | pads" (module option dpad_to_buttons) | 25 | pads" (module option dpad_to_buttons) |
22 | 26 | ||
23 | If you set dpad_to_buttons to 0 and you are using an unknown device (one | 27 | If you set dpad_to_buttons to N and you are using an unknown device |
24 | not listed below), the driver will map the directional pad to axes (X/Y), | 28 | the driver will map the directional pad to axes (X/Y). |
25 | if you said N it will map the d-pad to buttons, which is needed for dance | 29 | If you said Y it will map the d-pad to buttons, which is needed for dance |
26 | style games to function correctly. The default is Y. | 30 | style games to function correctly. The default is Y. |
31 | |||
32 | dpad_to_buttons has no effect for known pads. A erroneous commit message | ||
33 | claimed dpad_to_buttons could be used to force behavior on known devices. | ||
34 | This is not true. Both dpad_to_buttons and triggers_to_buttons only affect | ||
35 | unknown controllers. | ||
27 | 36 | ||
28 | dpad_to_buttons has no effect for known pads. | ||
29 | 37 | ||
30 | 0.1 Normal Controllers | 38 | 0.1 Normal Controllers |
31 | ---------------------- | 39 | ---------------------- |
@@ -80,17 +88,29 @@ to the list of supported devices, ensuring that it will work out of the | |||
80 | box in the future. | 88 | box in the future. |
81 | 89 | ||
82 | 90 | ||
83 | 1. USB adapter | 91 | 1. USB adapters |
84 | -------------- | 92 | -------------- |
93 | All generations of Xbox controllers speak USB over the wire. | ||
94 | - Original Xbox controllers use a proprietary connector and require adapters. | ||
95 | - Wireless Xbox 360 controllers require a 'Xbox 360 Wireless Gaming Receiver | ||
96 | for Windows' | ||
97 | - Wired Xbox 360 controllers use standard USB connectors. | ||
98 | - Xbox One controllers can be wireless but speak Wi-Fi Direct and are not | ||
99 | yet supported. | ||
100 | - Xbox One controllers can be wired and use standard Micro-USB connectors. | ||
101 | |||
85 | 102 | ||
86 | Before you can actually use the driver, you need to get yourself an | 103 | |
87 | adapter cable to connect the X-Box controller to your Linux-Box. You | 104 | 1.1 Original Xbox USB adapters |
88 | can buy these online fairly cheap, or build your own. | 105 | -------------- |
106 | Using this driver with an Original Xbox controller requires an | ||
107 | adapter cable to break out the proprietary connector's pins to USB. | ||
108 | You can buy these online fairly cheap, or build your own. | ||
89 | 109 | ||
90 | Such a cable is pretty easy to build. The Controller itself is a USB | 110 | Such a cable is pretty easy to build. The Controller itself is a USB |
91 | compound device (a hub with three ports for two expansion slots and | 111 | compound device (a hub with three ports for two expansion slots and |
92 | the controller device) with the only difference in a nonstandard connector | 112 | the controller device) with the only difference in a nonstandard connector |
93 | (5 pins vs. 4 on standard USB connector). | 113 | (5 pins vs. 4 on standard USB 1.0 connectors). |
94 | 114 | ||
95 | You just need to solder a USB connector onto the cable and keep the | 115 | You just need to solder a USB connector onto the cable and keep the |
96 | yellow wire unconnected. The other pins have the same order on both | 116 | yellow wire unconnected. The other pins have the same order on both |
@@ -102,26 +122,41 @@ original one. You can buy an extension cable and cut that instead. That way, | |||
102 | you can still use the controller with your X-Box, if you have one ;) | 122 | you can still use the controller with your X-Box, if you have one ;) |
103 | 123 | ||
104 | 124 | ||
125 | |||
105 | 2. Driver Installation | 126 | 2. Driver Installation |
106 | ---------------------- | 127 | ---------------------- |
107 | 128 | ||
108 | Once you have the adapter cable and the controller is connected, you need | 129 | Once you have the adapter cable, if needed, and the controller connected |
109 | to load your USB subsystem and should cat /proc/bus/usb/devices. | 130 | the xpad module should be auto loaded. To confirm you can cat |
110 | There should be an entry like the one at the end [4]. | 131 | /proc/bus/usb/devices. There should be an entry like the one at the end [4]. |
132 | |||
133 | |||
111 | 134 | ||
112 | Currently (as of version 0.0.6), the following devices are included: | 135 | 3. Supported Controllers |
113 | original Microsoft XBOX controller (US), vendor=0x045e, product=0x0202 | 136 | ------------------------ |
114 | smaller Microsoft XBOX controller (US), vendor=0x045e, product=0x0289 | 137 | For a full list of supported controllers and associated vendor and product |
138 | IDs see the xpad_device[] array[6]. | ||
139 | |||
140 | As of the historic version 0.0.6 (2006-10-10) the following devices | ||
141 | were supported: | ||
142 | original Microsoft XBOX controller (US), vendor=0x045e, product=0x0202 | ||
143 | smaller Microsoft XBOX controller (US), vendor=0x045e, product=0x0289 | ||
115 | original Microsoft XBOX controller (Japan), vendor=0x045e, product=0x0285 | 144 | original Microsoft XBOX controller (Japan), vendor=0x045e, product=0x0285 |
116 | InterAct PowerPad Pro (Germany), vendor=0x05fd, product=0x107a | 145 | InterAct PowerPad Pro (Germany), vendor=0x05fd, product=0x107a |
117 | RedOctane Xbox Dance Pad (US), vendor=0x0c12, product=0x8809 | 146 | RedOctane Xbox Dance Pad (US), vendor=0x0c12, product=0x8809 |
147 | |||
148 | Unrecognized models of Xbox controllers should function as Generic | ||
149 | Xbox controllers. Unrecognized Dance Pad controllers require setting | ||
150 | the module option 'dpad_to_buttons'. | ||
151 | |||
152 | If you have an unrecognized controller please see 0.3 - Unknown Controllers | ||
118 | 153 | ||
119 | The driver should work with xbox pads not listed above as well, however | ||
120 | you will need to do something extra for dance pads to work. | ||
121 | 154 | ||
122 | If you have a controller not listed above, see 0.3 - Unknown Controllers | 155 | 4. Manual Testing |
156 | ----------------- | ||
157 | To test this driver's functionality you may use 'jstest'. | ||
123 | 158 | ||
124 | If you compiled and installed the driver, test the functionality: | 159 | For example: |
125 | > modprobe xpad | 160 | > modprobe xpad |
126 | > modprobe joydev | 161 | > modprobe joydev |
127 | > jstest /dev/js0 | 162 | > jstest /dev/js0 |
@@ -134,7 +169,8 @@ show 20 inputs (6 axes, 14 buttons). | |||
134 | It works? Voila, you're done ;) | 169 | It works? Voila, you're done ;) |
135 | 170 | ||
136 | 171 | ||
137 | 3. Thanks | 172 | |
173 | 5. Thanks | ||
138 | --------- | 174 | --------- |
139 | 175 | ||
140 | I have to thank ITO Takayuki for the detailed info on his site | 176 | I have to thank ITO Takayuki for the detailed info on his site |
@@ -145,14 +181,14 @@ His useful info and both the usb-skeleton as well as the iforce input driver | |||
145 | the basic functionality. | 181 | the basic functionality. |
146 | 182 | ||
147 | 183 | ||
148 | 4. References | ||
149 | ------------- | ||
150 | 184 | ||
151 | 1. http://euc.jp/periphs/xbox-controller.ja.html (ITO Takayuki) | 185 | 6. References |
152 | 2. http://xpad.xbox-scene.com/ | 186 | ------------- |
153 | 3. http://www.markosweb.com/www/xboxhackz.com/ | ||
154 | 187 | ||
155 | 4. /proc/bus/usb/devices - dump from InterAct PowerPad Pro (Germany): | 188 | [1]: http://euc.jp/periphs/xbox-controller.ja.html (ITO Takayuki) |
189 | [2]: http://xpad.xbox-scene.com/ | ||
190 | [3]: http://www.markosweb.com/www/xboxhackz.com/ | ||
191 | [4]: /proc/bus/usb/devices - dump from InterAct PowerPad Pro (Germany): | ||
156 | 192 | ||
157 | T: Bus=01 Lev=03 Prnt=04 Port=00 Cnt=01 Dev#= 5 Spd=12 MxCh= 0 | 193 | T: Bus=01 Lev=03 Prnt=04 Port=00 Cnt=01 Dev#= 5 Spd=12 MxCh= 0 |
158 | D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=32 #Cfgs= 1 | 194 | D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=32 #Cfgs= 1 |
@@ -162,7 +198,7 @@ I: If#= 0 Alt= 0 #EPs= 2 Cls=58(unk. ) Sub=42 Prot=00 Driver=(none) | |||
162 | E: Ad=81(I) Atr=03(Int.) MxPS= 32 Ivl= 10ms | 198 | E: Ad=81(I) Atr=03(Int.) MxPS= 32 Ivl= 10ms |
163 | E: Ad=02(O) Atr=03(Int.) MxPS= 32 Ivl= 10ms | 199 | E: Ad=02(O) Atr=03(Int.) MxPS= 32 Ivl= 10ms |
164 | 200 | ||
165 | 5. /proc/bus/usb/devices - dump from Redoctane Xbox Dance Pad (US): | 201 | [5]: /proc/bus/usb/devices - dump from Redoctane Xbox Dance Pad (US): |
166 | 202 | ||
167 | T: Bus=01 Lev=02 Prnt=09 Port=00 Cnt=01 Dev#= 10 Spd=12 MxCh= 0 | 203 | T: Bus=01 Lev=02 Prnt=09 Port=00 Cnt=01 Dev#= 10 Spd=12 MxCh= 0 |
168 | D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 | 204 | D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 |
@@ -173,7 +209,12 @@ I: If#= 0 Alt= 0 #EPs= 2 Cls=58(unk. ) Sub=42 Prot=00 Driver=xpad | |||
173 | E: Ad=82(I) Atr=03(Int.) MxPS= 32 Ivl=4ms | 209 | E: Ad=82(I) Atr=03(Int.) MxPS= 32 Ivl=4ms |
174 | E: Ad=02(O) Atr=03(Int.) MxPS= 32 Ivl=4ms | 210 | E: Ad=02(O) Atr=03(Int.) MxPS= 32 Ivl=4ms |
175 | 211 | ||
176 | -- | 212 | [6]: http://lxr.free-electrons.com/ident?i=xpad_device |
213 | |||
214 | |||
215 | |||
216 | 7. Historic Edits | ||
217 | ----------------- | ||
177 | Marko Friedemann <mfr@bmx-chemnitz.de> | 218 | Marko Friedemann <mfr@bmx-chemnitz.de> |
178 | 2002-07-16 | 219 | 2002-07-16 |
179 | - original doc | 220 | - original doc |
@@ -181,3 +222,5 @@ Marko Friedemann <mfr@bmx-chemnitz.de> | |||
181 | Dominic Cerquetti <binary1230@yahoo.com> | 222 | Dominic Cerquetti <binary1230@yahoo.com> |
182 | 2005-03-19 | 223 | 2005-03-19 |
183 | - added stuff for dance pads, new d-pad->axes mappings | 224 | - added stuff for dance pads, new d-pad->axes mappings |
225 | |||
226 | Later changes may be viewed with 'git log Documentation/input/xpad.txt' | ||
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index eacb2e0397ae..43ecdcd39df2 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -3434,6 +3434,13 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
3434 | neutralize any effect of /proc/sys/kernel/sysrq. | 3434 | neutralize any effect of /proc/sys/kernel/sysrq. |
3435 | Useful for debugging. | 3435 | Useful for debugging. |
3436 | 3436 | ||
3437 | tcpmhash_entries= [KNL,NET] | ||
3438 | Set the number of tcp_metrics_hash slots. | ||
3439 | Default value is 8192 or 16384 depending on total | ||
3440 | ram pages. This is used to specify the TCP metrics | ||
3441 | cache size. See Documentation/networking/ip-sysctl.txt | ||
3442 | "tcp_no_metrics_save" section for more details. | ||
3443 | |||
3437 | tdfx= [HW,DRM] | 3444 | tdfx= [HW,DRM] |
3438 | 3445 | ||
3439 | test_suspend= [SUSPEND][,N] | 3446 | test_suspend= [SUSPEND][,N] |
diff --git a/Documentation/kobject.txt b/Documentation/kobject.txt index f87241dfed87..1be59a3a521c 100644 --- a/Documentation/kobject.txt +++ b/Documentation/kobject.txt | |||
@@ -173,7 +173,7 @@ This should be done only after any attributes or children of the kobject | |||
173 | have been initialized properly, as userspace will instantly start to look | 173 | have been initialized properly, as userspace will instantly start to look |
174 | for them when this call happens. | 174 | for them when this call happens. |
175 | 175 | ||
176 | When the kobject is removed from the kernel (details on how to do that is | 176 | When the kobject is removed from the kernel (details on how to do that are |
177 | below), the uevent for KOBJ_REMOVE will be automatically created by the | 177 | below), the uevent for KOBJ_REMOVE will be automatically created by the |
178 | kobject core, so the caller does not have to worry about doing that by | 178 | kobject core, so the caller does not have to worry about doing that by |
179 | hand. | 179 | hand. |
diff --git a/tools/testing/selftests/README.txt b/Documentation/kselftest.txt index 2660d5ff9179..a87d840bacfe 100644 --- a/tools/testing/selftests/README.txt +++ b/Documentation/kselftest.txt | |||
@@ -15,37 +15,45 @@ Running the selftests (hotplug tests are run in limited mode) | |||
15 | ============================================================= | 15 | ============================================================= |
16 | 16 | ||
17 | To build the tests: | 17 | To build the tests: |
18 | |||
19 | $ make -C tools/testing/selftests | 18 | $ make -C tools/testing/selftests |
20 | 19 | ||
21 | 20 | ||
22 | To run the tests: | 21 | To run the tests: |
23 | |||
24 | $ make -C tools/testing/selftests run_tests | 22 | $ make -C tools/testing/selftests run_tests |
25 | 23 | ||
24 | To build and run the tests with a single command, use: | ||
25 | $ make kselftest | ||
26 | |||
26 | - note that some tests will require root privileges. | 27 | - note that some tests will require root privileges. |
27 | 28 | ||
28 | To run only tests targeted for a single subsystem: (including | ||
29 | hotplug targets in limited mode) | ||
30 | 29 | ||
31 | $ make -C tools/testing/selftests TARGETS=cpu-hotplug run_tests | 30 | Running a subset of selftests |
31 | ======================================== | ||
32 | You can use the "TARGETS" variable on the make command line to specify | ||
33 | single test to run, or a list of tests to run. | ||
34 | |||
35 | To run only tests targeted for a single subsystem: | ||
36 | $ make -C tools/testing/selftests TARGETS=ptrace run_tests | ||
37 | |||
38 | You can specify multiple tests to build and run: | ||
39 | $ make TARGETS="size timers" kselftest | ||
40 | |||
41 | See the top-level tools/testing/selftests/Makefile for the list of all | ||
42 | possible targets. | ||
32 | 43 | ||
33 | See the top-level tools/testing/selftests/Makefile for the list of all possible | ||
34 | targets. | ||
35 | 44 | ||
36 | Running the full range hotplug selftests | 45 | Running the full range hotplug selftests |
37 | ======================================== | 46 | ======================================== |
38 | 47 | ||
39 | To build the tests: | 48 | To build the hotplug tests: |
40 | |||
41 | $ make -C tools/testing/selftests hotplug | 49 | $ make -C tools/testing/selftests hotplug |
42 | 50 | ||
43 | To run the tests: | 51 | To run the hotplug tests: |
44 | |||
45 | $ make -C tools/testing/selftests run_hotplug | 52 | $ make -C tools/testing/selftests run_hotplug |
46 | 53 | ||
47 | - note that some tests will require root privileges. | 54 | - note that some tests will require root privileges. |
48 | 55 | ||
56 | |||
49 | Contributing new tests | 57 | Contributing new tests |
50 | ====================== | 58 | ====================== |
51 | 59 | ||
diff --git a/Documentation/mailbox.txt b/Documentation/mailbox.txt index 60f43ff629aa..1092ad9578da 100644 --- a/Documentation/mailbox.txt +++ b/Documentation/mailbox.txt | |||
@@ -53,7 +53,7 @@ static void message_from_remote(struct mbox_client *cl, void *mssg) | |||
53 | { | 53 | { |
54 | struct demo_client *dc = container_of(mbox_client, | 54 | struct demo_client *dc = container_of(mbox_client, |
55 | struct demo_client, cl); | 55 | struct demo_client, cl); |
56 | if (dc->aysnc) { | 56 | if (dc->async) { |
57 | if (is_an_ack(mssg)) { | 57 | if (is_an_ack(mssg)) { |
58 | /* An ACK to our last sample sent */ | 58 | /* An ACK to our last sample sent */ |
59 | return; /* Or do something else here */ | 59 | return; /* Or do something else here */ |
diff --git a/Documentation/mic/mpssd/Makefile b/Documentation/mic/mpssd/Makefile index 0f3156888048..f47fe6ba7300 100644 --- a/Documentation/mic/mpssd/Makefile +++ b/Documentation/mic/mpssd/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # List of programs to build | 1 | # List of programs to build |
2 | hostprogs-y := mpssd | 2 | hostprogs-$(CONFIG_X86_64) := mpssd |
3 | 3 | ||
4 | mpssd-objs := mpssd.o sysfs.o | 4 | mpssd-objs := mpssd.o sysfs.o |
5 | 5 | ||
diff --git a/Documentation/power/runtime_pm.txt b/Documentation/power/runtime_pm.txt index f32ce5419573..0e5ea26b255a 100644 --- a/Documentation/power/runtime_pm.txt +++ b/Documentation/power/runtime_pm.txt | |||
@@ -229,13 +229,13 @@ defined in include/linux/pm.h: | |||
229 | - if set, the value of child_count is ignored (but still updated) | 229 | - if set, the value of child_count is ignored (but still updated) |
230 | 230 | ||
231 | unsigned int disable_depth; | 231 | unsigned int disable_depth; |
232 | - used for disabling the helper funcions (they work normally if this is | 232 | - used for disabling the helper functions (they work normally if this is |
233 | equal to zero); the initial value of it is 1 (i.e. runtime PM is | 233 | equal to zero); the initial value of it is 1 (i.e. runtime PM is |
234 | initially disabled for all devices) | 234 | initially disabled for all devices) |
235 | 235 | ||
236 | int runtime_error; | 236 | int runtime_error; |
237 | - if set, there was a fatal error (one of the callbacks returned error code | 237 | - if set, there was a fatal error (one of the callbacks returned error code |
238 | as described in Section 2), so the helper funtions will not work until | 238 | as described in Section 2), so the helper functions will not work until |
239 | this flag is cleared; this is the error code returned by the failing | 239 | this flag is cleared; this is the error code returned by the failing |
240 | callback | 240 | callback |
241 | 241 | ||
@@ -524,7 +524,7 @@ pm_runtime_put_sync_autosuspend() | |||
524 | 5. Runtime PM Initialization, Device Probing and Removal | 524 | 5. Runtime PM Initialization, Device Probing and Removal |
525 | 525 | ||
526 | Initially, the runtime PM is disabled for all devices, which means that the | 526 | Initially, the runtime PM is disabled for all devices, which means that the |
527 | majority of the runtime PM helper funtions described in Section 4 will return | 527 | majority of the runtime PM helper functions described in Section 4 will return |
528 | -EAGAIN until pm_runtime_enable() is called for the device. | 528 | -EAGAIN until pm_runtime_enable() is called for the device. |
529 | 529 | ||
530 | In addition to that, the initial runtime PM status of all devices is | 530 | In addition to that, the initial runtime PM status of all devices is |
diff --git a/Documentation/power/suspend-and-interrupts.txt b/Documentation/power/suspend-and-interrupts.txt index 69663640dea5..2f9c5a5fcb25 100644 --- a/Documentation/power/suspend-and-interrupts.txt +++ b/Documentation/power/suspend-and-interrupts.txt | |||
@@ -77,7 +77,7 @@ Calling enable_irq_wake() causes suspend_device_irqs() to treat the given IRQ | |||
77 | in a special way. Namely, the IRQ remains enabled, by on the first interrupt | 77 | in a special way. Namely, the IRQ remains enabled, by on the first interrupt |
78 | it will be disabled, marked as pending and "suspended" so that it will be | 78 | it will be disabled, marked as pending and "suspended" so that it will be |
79 | re-enabled by resume_device_irqs() during the subsequent system resume. Also | 79 | re-enabled by resume_device_irqs() during the subsequent system resume. Also |
80 | the PM core is notified about the event which casues the system suspend in | 80 | the PM core is notified about the event which causes the system suspend in |
81 | progress to be aborted (that doesn't have to happen immediately, but at one | 81 | progress to be aborted (that doesn't have to happen immediately, but at one |
82 | of the points where the suspend thread looks for pending wakeup events). | 82 | of the points where the suspend thread looks for pending wakeup events). |
83 | 83 | ||
diff --git a/Documentation/power/userland-swsusp.txt b/Documentation/power/userland-swsusp.txt index 0e870825c1b9..bbfcd1bbedc5 100644 --- a/Documentation/power/userland-swsusp.txt +++ b/Documentation/power/userland-swsusp.txt | |||
@@ -99,7 +99,7 @@ SNAPSHOT_S2RAM - suspend to RAM; using this call causes the kernel to | |||
99 | The device's read() operation can be used to transfer the snapshot image from | 99 | The device's read() operation can be used to transfer the snapshot image from |
100 | the kernel. It has the following limitations: | 100 | the kernel. It has the following limitations: |
101 | - you cannot read() more than one virtual memory page at a time | 101 | - you cannot read() more than one virtual memory page at a time |
102 | - read()s across page boundaries are impossible (ie. if ypu read() 1/2 of | 102 | - read()s across page boundaries are impossible (ie. if you read() 1/2 of |
103 | a page in the previous call, you will only be able to read() | 103 | a page in the previous call, you will only be able to read() |
104 | _at_ _most_ 1/2 of the page in the next call) | 104 | _at_ _most_ 1/2 of the page in the next call) |
105 | 105 | ||
diff --git a/Documentation/vm/hugetlbpage.txt b/Documentation/vm/hugetlbpage.txt index b64e0af9cc56..f2d3a100fe38 100644 --- a/Documentation/vm/hugetlbpage.txt +++ b/Documentation/vm/hugetlbpage.txt | |||
@@ -1,8 +1,8 @@ | |||
1 | 1 | ||
2 | The intent of this file is to give a brief summary of hugetlbpage support in | 2 | The intent of this file is to give a brief summary of hugetlbpage support in |
3 | the Linux kernel. This support is built on top of multiple page size support | 3 | the Linux kernel. This support is built on top of multiple page size support |
4 | that is provided by most modern architectures. For example, i386 | 4 | that is provided by most modern architectures. For example, x86 CPUs normally |
5 | architecture supports 4K and 4M (2M in PAE mode) page sizes, ia64 | 5 | support 4K and 2M (1G if architecturally supported) page sizes, ia64 |
6 | architecture supports multiple page sizes 4K, 8K, 64K, 256K, 1M, 4M, 16M, | 6 | architecture supports multiple page sizes 4K, 8K, 64K, 256K, 1M, 4M, 16M, |
7 | 256M and ppc64 supports 4K and 16M. A TLB is a cache of virtual-to-physical | 7 | 256M and ppc64 supports 4K and 16M. A TLB is a cache of virtual-to-physical |
8 | translations. Typically this is a very scarce resource on processor. | 8 | translations. Typically this is a very scarce resource on processor. |
diff --git a/drivers/dma-buf/fence.c b/drivers/dma-buf/fence.c index 7bb9d65d9a2c..e5541117b3e9 100644 --- a/drivers/dma-buf/fence.c +++ b/drivers/dma-buf/fence.c | |||
@@ -283,7 +283,7 @@ EXPORT_SYMBOL(fence_add_callback); | |||
283 | * @cb: [in] the callback to remove | 283 | * @cb: [in] the callback to remove |
284 | * | 284 | * |
285 | * Remove a previously queued callback from the fence. This function returns | 285 | * Remove a previously queued callback from the fence. This function returns |
286 | * true if the callback is succesfully removed, or false if the fence has | 286 | * true if the callback is successfully removed, or false if the fence has |
287 | * already been signaled. | 287 | * already been signaled. |
288 | * | 288 | * |
289 | * *WARNING*: | 289 | * *WARNING*: |
diff --git a/include/linux/fence.h b/include/linux/fence.h index d174585b874b..39efee130d2b 100644 --- a/include/linux/fence.h +++ b/include/linux/fence.h | |||
@@ -128,8 +128,8 @@ struct fence_cb { | |||
128 | * from irq context, so normal spinlocks can be used. | 128 | * from irq context, so normal spinlocks can be used. |
129 | * | 129 | * |
130 | * A return value of false indicates the fence already passed, | 130 | * A return value of false indicates the fence already passed, |
131 | * or some failure occured that made it impossible to enable | 131 | * or some failure occurred that made it impossible to enable |
132 | * signaling. True indicates succesful enabling. | 132 | * signaling. True indicates successful enabling. |
133 | * | 133 | * |
134 | * fence->status may be set in enable_signaling, but only when false is | 134 | * fence->status may be set in enable_signaling, but only when false is |
135 | * returned. | 135 | * returned. |
diff --git a/include/linux/i2c.h b/include/linux/i2c.h index b556e0ab946f..70ee0d3a2be3 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h | |||
@@ -359,7 +359,7 @@ i2c_register_board_info(int busnum, struct i2c_board_info const *info, | |||
359 | * to name two of the most common. | 359 | * to name two of the most common. |
360 | * | 360 | * |
361 | * The return codes from the @master_xfer field should indicate the type of | 361 | * The return codes from the @master_xfer field should indicate the type of |
362 | * error code that occured during the transfer, as documented in the kernel | 362 | * error code that occurred during the transfer, as documented in the kernel |
363 | * Documentation file Documentation/i2c/fault-codes. | 363 | * Documentation file Documentation/i2c/fault-codes. |
364 | */ | 364 | */ |
365 | struct i2c_algorithm { | 365 | struct i2c_algorithm { |