aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/CodingStyle34
-rw-r--r--Documentation/DocBook/kernel-api.tmpl78
-rw-r--r--Documentation/HOWTO20
-rw-r--r--Documentation/IPMI.txt9
-rw-r--r--Documentation/SubmitChecklist5
-rw-r--r--Documentation/SubmittingDrivers21
-rw-r--r--Documentation/SubmittingPatches39
-rw-r--r--Documentation/accounting/getdelays.c7
-rw-r--r--Documentation/accounting/taskstats-struct.txt161
-rw-r--r--Documentation/cpusets.txt10
-rw-r--r--Documentation/fb/intelfb.txt11
-rw-r--r--Documentation/feature-removal-schedule.txt11
-rw-r--r--Documentation/filesystems/Locking5
-rw-r--r--Documentation/filesystems/proc.txt18
-rw-r--r--Documentation/filesystems/vfs.txt4
-rw-r--r--Documentation/hwmon/it8761
-rw-r--r--Documentation/hwmon/k8temp52
-rw-r--r--Documentation/hwmon/vt1211206
-rw-r--r--Documentation/hwmon/w83627ehf85
-rw-r--r--Documentation/hwmon/w83791d69
-rw-r--r--Documentation/kernel-parameters.txt9
-rw-r--r--Documentation/lockdep-design.txt22
-rw-r--r--Documentation/networking/pktgen.txt16
-rw-r--r--Documentation/rt-mutex-design.txt14
-rw-r--r--Documentation/seclvl.txt97
-rw-r--r--Documentation/video4linux/CARDLIST.cx888
-rw-r--r--Documentation/video4linux/CARDLIST.saa71347
-rw-r--r--Documentation/video4linux/bttv/Insmod-options6
-rw-r--r--Documentation/video4linux/cx2341x/README.hm12116
-rw-r--r--Documentation/video4linux/cx2341x/README.vbi45
-rw-r--r--Documentation/x86_64/boot-options.txt5
31 files changed, 1012 insertions, 239 deletions
diff --git a/Documentation/CodingStyle b/Documentation/CodingStyle
index 6d2412ec91ed..29c18966b050 100644
--- a/Documentation/CodingStyle
+++ b/Documentation/CodingStyle
@@ -532,6 +532,40 @@ appears outweighs the potential value of the hint that tells gcc to do
532something it would have done anyway. 532something it would have done anyway.
533 533
534 534
535 Chapter 16: Function return values and names
536
537Functions can return values of many different kinds, and one of the
538most common is a value indicating whether the function succeeded or
539failed. Such a value can be represented as an error-code integer
540(-Exxx = failure, 0 = success) or a "succeeded" boolean (0 = failure,
541non-zero = success).
542
543Mixing up these two sorts of representations is a fertile source of
544difficult-to-find bugs. If the C language included a strong distinction
545between integers and booleans then the compiler would find these mistakes
546for us... but it doesn't. To help prevent such bugs, always follow this
547convention:
548
549 If the name of a function is an action or an imperative command,
550 the function should return an error-code integer. If the name
551 is a predicate, the function should return a "succeeded" boolean.
552
553For example, "add work" is a command, and the add_work() function returns 0
554for success or -EBUSY for failure. In the same way, "PCI device present" is
555a predicate, and the pci_dev_present() function returns 1 if it succeeds in
556finding a matching device or 0 if it doesn't.
557
558All EXPORTed functions must respect this convention, and so should all
559public functions. Private (static) functions need not, but it is
560recommended that they do.
561
562Functions whose return value is the actual result of a computation, rather
563than an indication of whether the computation succeeded, are not subject to
564this rule. Generally they indicate failure by returning some out-of-range
565result. Typical examples would be functions that return pointers; they use
566NULL or the ERR_PTR mechanism to report failure.
567
568
535 569
536 Appendix I: References 570 Appendix I: References
537 571
diff --git a/Documentation/DocBook/kernel-api.tmpl b/Documentation/DocBook/kernel-api.tmpl
index f8fe882e33dc..6d4b1ef5b6f1 100644
--- a/Documentation/DocBook/kernel-api.tmpl
+++ b/Documentation/DocBook/kernel-api.tmpl
@@ -181,27 +181,6 @@ X!Ilib/string.c
181 </sect1> 181 </sect1>
182 </chapter> 182 </chapter>
183 183
184 <chapter id="proc">
185 <title>The proc filesystem</title>
186
187 <sect1><title>sysctl interface</title>
188!Ekernel/sysctl.c
189 </sect1>
190
191 <sect1><title>proc filesystem interface</title>
192!Ifs/proc/base.c
193 </sect1>
194 </chapter>
195
196 <chapter id="debugfs">
197 <title>The debugfs filesystem</title>
198
199 <sect1><title>debugfs interface</title>
200!Efs/debugfs/inode.c
201!Efs/debugfs/file.c
202 </sect1>
203 </chapter>
204
205 <chapter id="vfs"> 184 <chapter id="vfs">
206 <title>The Linux VFS</title> 185 <title>The Linux VFS</title>
207 <sect1><title>The Filesystem types</title> 186 <sect1><title>The Filesystem types</title>
@@ -234,6 +213,50 @@ X!Ilib/string.c
234 </sect1> 213 </sect1>
235 </chapter> 214 </chapter>
236 215
216 <chapter id="proc">
217 <title>The proc filesystem</title>
218
219 <sect1><title>sysctl interface</title>
220!Ekernel/sysctl.c
221 </sect1>
222
223 <sect1><title>proc filesystem interface</title>
224!Ifs/proc/base.c
225 </sect1>
226 </chapter>
227
228 <chapter id="sysfs">
229 <title>The Filesystem for Exporting Kernel Objects</title>
230!Efs/sysfs/file.c
231!Efs/sysfs/symlink.c
232!Efs/sysfs/bin.c
233 </chapter>
234
235 <chapter id="debugfs">
236 <title>The debugfs filesystem</title>
237
238 <sect1><title>debugfs interface</title>
239!Efs/debugfs/inode.c
240!Efs/debugfs/file.c
241 </sect1>
242 </chapter>
243
244 <chapter id="relayfs">
245 <title>relay interface support</title>
246
247 <para>
248 Relay interface support
249 is designed to provide an efficient mechanism for tools and
250 facilities to relay large amounts of data from kernel space to
251 user space.
252 </para>
253
254 <sect1><title>relay interface</title>
255!Ekernel/relay.c
256!Ikernel/relay.c
257 </sect1>
258 </chapter>
259
237 <chapter id="netcore"> 260 <chapter id="netcore">
238 <title>Linux Networking</title> 261 <title>Linux Networking</title>
239 <sect1><title>Networking Base Types</title> 262 <sect1><title>Networking Base Types</title>
@@ -349,13 +372,6 @@ X!Earch/i386/kernel/mca.c
349 </sect1> 372 </sect1>
350 </chapter> 373 </chapter>
351 374
352 <chapter id="sysfs">
353 <title>The Filesystem for Exporting Kernel Objects</title>
354!Efs/sysfs/file.c
355!Efs/sysfs/symlink.c
356!Efs/sysfs/bin.c
357 </chapter>
358
359 <chapter id="security"> 375 <chapter id="security">
360 <title>Security Framework</title> 376 <title>Security Framework</title>
361!Esecurity/security.c 377!Esecurity/security.c
@@ -386,6 +402,7 @@ X!Iinclude/linux/device.h
386--> 402-->
387!Edrivers/base/driver.c 403!Edrivers/base/driver.c
388!Edrivers/base/core.c 404!Edrivers/base/core.c
405!Edrivers/base/class.c
389!Edrivers/base/firmware_class.c 406!Edrivers/base/firmware_class.c
390!Edrivers/base/transport_class.c 407!Edrivers/base/transport_class.c
391!Edrivers/base/dmapool.c 408!Edrivers/base/dmapool.c
@@ -437,6 +454,11 @@ X!Edrivers/pnp/system.c
437!Eblock/ll_rw_blk.c 454!Eblock/ll_rw_blk.c
438 </chapter> 455 </chapter>
439 456
457 <chapter id="chrdev">
458 <title>Char devices</title>
459!Efs/char_dev.c
460 </chapter>
461
440 <chapter id="miscdev"> 462 <chapter id="miscdev">
441 <title>Miscellaneous Devices</title> 463 <title>Miscellaneous Devices</title>
442!Edrivers/char/misc.c 464!Edrivers/char/misc.c
diff --git a/Documentation/HOWTO b/Documentation/HOWTO
index 1d6560413cc5..d6f3dd1a3464 100644
--- a/Documentation/HOWTO
+++ b/Documentation/HOWTO
@@ -375,6 +375,26 @@ of information is needed by the kernel developers to help track down the
375problem. 375problem.
376 376
377 377
378Managing bug reports
379--------------------
380
381One of the best ways to put into practice your hacking skills is by fixing
382bugs reported by other people. Not only you will help to make the kernel
383more stable, you'll learn to fix real world problems and you will improve
384your skills, and other developers will be aware of your presence. Fixing
385bugs is one of the best ways to earn merit amongst the developers, because
386not many people like wasting time fixing other people's bugs.
387
388To work in the already reported bug reports, go to http://bugzilla.kernel.org.
389If you want to be advised of the future bug reports, you can subscribe to the
390bugme-new mailing list (only new bug reports are mailed here) or to the
391bugme-janitor mailing list (every change in the bugzilla is mailed here)
392
393 http://lists.osdl.org/mailman/listinfo/bugme-new
394 http://lists.osdl.org/mailman/listinfo/bugme-janitors
395
396
397
378Mailing lists 398Mailing lists
379------------- 399-------------
380 400
diff --git a/Documentation/IPMI.txt b/Documentation/IPMI.txt
index 0256805b548f..7756e09ea759 100644
--- a/Documentation/IPMI.txt
+++ b/Documentation/IPMI.txt
@@ -326,9 +326,12 @@ for events, they will all receive all events that come in.
326 326
327For receiving commands, you have to individually register commands you 327For receiving commands, you have to individually register commands you
328want to receive. Call ipmi_register_for_cmd() and supply the netfn 328want to receive. Call ipmi_register_for_cmd() and supply the netfn
329and command name for each command you want to receive. Only one user 329and command name for each command you want to receive. You also
330may be registered for each netfn/cmd, but different users may register 330specify a bitmask of the channels you want to receive the command from
331for different commands. 331(or use IPMI_CHAN_ALL for all channels if you don't care). Only one
332user may be registered for each netfn/cmd/channel, but different users
333may register for different commands, or the same command if the
334channel bitmasks do not overlap.
332 335
333From userland, equivalent IOCTLs are provided to do these functions. 336From userland, equivalent IOCTLs are provided to do these functions.
334 337
diff --git a/Documentation/SubmitChecklist b/Documentation/SubmitChecklist
index a10bfb6ecd9f..7ac61f60037a 100644
--- a/Documentation/SubmitChecklist
+++ b/Documentation/SubmitChecklist
@@ -61,3 +61,8 @@ kernel patches.
61 Documentation/kernel-parameters.txt. 61 Documentation/kernel-parameters.txt.
62 62
6318: All new module parameters are documented with MODULE_PARM_DESC() 6318: All new module parameters are documented with MODULE_PARM_DESC()
64
6519: All new userspace interfaces are documented in Documentation/ABI/.
66 See Documentation/ABI/README for more information.
67
6820: Check that it all passes `make headers_check'.
diff --git a/Documentation/SubmittingDrivers b/Documentation/SubmittingDrivers
index 6bd30fdd0786..58bead05eabb 100644
--- a/Documentation/SubmittingDrivers
+++ b/Documentation/SubmittingDrivers
@@ -59,11 +59,11 @@ Copyright: The copyright owner must agree to use of GPL.
59 are the same person/entity. If not, the name of 59 are the same person/entity. If not, the name of
60 the person/entity authorizing use of GPL should be 60 the person/entity authorizing use of GPL should be
61 listed in case it's necessary to verify the will of 61 listed in case it's necessary to verify the will of
62 the copright owner. 62 the copyright owner.
63 63
64Interfaces: If your driver uses existing interfaces and behaves like 64Interfaces: If your driver uses existing interfaces and behaves like
65 other drivers in the same class it will be much more likely 65 other drivers in the same class it will be much more likely
66 to be accepted than if it invents gratuitous new ones. 66 to be accepted than if it invents gratuitous new ones.
67 If you need to implement a common API over Linux and NT 67 If you need to implement a common API over Linux and NT
68 drivers do it in userspace. 68 drivers do it in userspace.
69 69
@@ -88,7 +88,7 @@ Clarity: It helps if anyone can see how to fix the driver. It helps
88 it will go in the bitbucket. 88 it will go in the bitbucket.
89 89
90Control: In general if there is active maintainance of a driver by 90Control: In general if there is active maintainance of a driver by
91 the author then patches will be redirected to them unless 91 the author then patches will be redirected to them unless
92 they are totally obvious and without need of checking. 92 they are totally obvious and without need of checking.
93 If you want to be the contact and update point for the 93 If you want to be the contact and update point for the
94 driver it is a good idea to state this in the comments, 94 driver it is a good idea to state this in the comments,
@@ -100,7 +100,7 @@ What Criteria Do Not Determine Acceptance
100Vendor: Being the hardware vendor and maintaining the driver is 100Vendor: Being the hardware vendor and maintaining the driver is
101 often a good thing. If there is a stable working driver from 101 often a good thing. If there is a stable working driver from
102 other people already in the tree don't expect 'we are the 102 other people already in the tree don't expect 'we are the
103 vendor' to get your driver chosen. Ideally work with the 103 vendor' to get your driver chosen. Ideally work with the
104 existing driver author to build a single perfect driver. 104 existing driver author to build a single perfect driver.
105 105
106Author: It doesn't matter if a large Linux company wrote the driver, 106Author: It doesn't matter if a large Linux company wrote the driver,
@@ -116,17 +116,13 @@ Linux kernel master tree:
116 ftp.??.kernel.org:/pub/linux/kernel/... 116 ftp.??.kernel.org:/pub/linux/kernel/...
117 ?? == your country code, such as "us", "uk", "fr", etc. 117 ?? == your country code, such as "us", "uk", "fr", etc.
118 118
119Linux kernel mailing list: 119Linux kernel mailing list:
120 linux-kernel@vger.kernel.org 120 linux-kernel@vger.kernel.org
121 [mail majordomo@vger.kernel.org to subscribe] 121 [mail majordomo@vger.kernel.org to subscribe]
122 122
123Linux Device Drivers, Third Edition (covers 2.6.10): 123Linux Device Drivers, Third Edition (covers 2.6.10):
124 http://lwn.net/Kernel/LDD3/ (free version) 124 http://lwn.net/Kernel/LDD3/ (free version)
125 125
126Kernel traffic:
127 Weekly summary of kernel list activity (much easier to read)
128 http://www.kerneltraffic.org/kernel-traffic/
129
130LWN.net: 126LWN.net:
131 Weekly summary of kernel development activity - http://lwn.net/ 127 Weekly summary of kernel development activity - http://lwn.net/
132 2.6 API changes: 128 2.6 API changes:
@@ -145,11 +141,8 @@ KernelNewbies:
145Linux USB project: 141Linux USB project:
146 http://www.linux-usb.org/ 142 http://www.linux-usb.org/
147 143
148How to NOT write kernel driver by arjanv@redhat.com 144How to NOT write kernel driver by Arjan van de Ven:
149 http://people.redhat.com/arjanv/olspaper.pdf 145 http://www.fenrus.org/how-to-not-write-a-device-driver-paper.pdf
150 146
151Kernel Janitor: 147Kernel Janitor:
152 http://janitor.kernelnewbies.org/ 148 http://janitor.kernelnewbies.org/
153
154--
155Last updated on 17 Nov 2005.
diff --git a/Documentation/SubmittingPatches b/Documentation/SubmittingPatches
index d42ab4c9e893..302d148c2e18 100644
--- a/Documentation/SubmittingPatches
+++ b/Documentation/SubmittingPatches
@@ -173,15 +173,15 @@ For small patches you may want to CC the Trivial Patch Monkey
173trivial@kernel.org managed by Adrian Bunk; which collects "trivial" 173trivial@kernel.org managed by Adrian Bunk; which collects "trivial"
174patches. Trivial patches must qualify for one of the following rules: 174patches. Trivial patches must qualify for one of the following rules:
175 Spelling fixes in documentation 175 Spelling fixes in documentation
176 Spelling fixes which could break grep(1). 176 Spelling fixes which could break grep(1)
177 Warning fixes (cluttering with useless warnings is bad) 177 Warning fixes (cluttering with useless warnings is bad)
178 Compilation fixes (only if they are actually correct) 178 Compilation fixes (only if they are actually correct)
179 Runtime fixes (only if they actually fix things) 179 Runtime fixes (only if they actually fix things)
180 Removing use of deprecated functions/macros (eg. check_region). 180 Removing use of deprecated functions/macros (eg. check_region)
181 Contact detail and documentation fixes 181 Contact detail and documentation fixes
182 Non-portable code replaced by portable code (even in arch-specific, 182 Non-portable code replaced by portable code (even in arch-specific,
183 since people copy, as long as it's trivial) 183 since people copy, as long as it's trivial)
184 Any fix by the author/maintainer of the file. (ie. patch monkey 184 Any fix by the author/maintainer of the file (ie. patch monkey
185 in re-transmission mode) 185 in re-transmission mode)
186URL: <http://www.kernel.org/pub/linux/kernel/people/bunk/trivial/> 186URL: <http://www.kernel.org/pub/linux/kernel/people/bunk/trivial/>
187 187
@@ -209,6 +209,19 @@ Exception: If your mailer is mangling patches then someone may ask
209you to re-send them using MIME. 209you to re-send them using MIME.
210 210
211 211
212WARNING: Some mailers like Mozilla send your messages with
213---- message header ----
214Content-Type: text/plain; charset=us-ascii; format=flowed
215---- message header ----
216The problem is that "format=flowed" makes some of the mailers
217on receiving side to replace TABs with spaces and do similar
218changes. Thus the patches from you can look corrupted.
219
220To fix this just make your mozilla defaults/pref/mailnews.js file to look like:
221pref("mailnews.send_plaintext_flowed", false); // RFC 2646=======
222pref("mailnews.display.disable_format_flowed_support", true);
223
224
212 225
2137) E-mail size. 2267) E-mail size.
214 227
@@ -245,13 +258,13 @@ updated change.
245It is quite common for Linus to "drop" your patch without comment. 258It is quite common for Linus to "drop" your patch without comment.
246That's the nature of the system. If he drops your patch, it could be 259That's the nature of the system. If he drops your patch, it could be
247due to 260due to
248* Your patch did not apply cleanly to the latest kernel version 261* Your patch did not apply cleanly to the latest kernel version.
249* Your patch was not sufficiently discussed on linux-kernel. 262* Your patch was not sufficiently discussed on linux-kernel.
250* A style issue (see section 2), 263* A style issue (see section 2).
251* An e-mail formatting issue (re-read this section) 264* An e-mail formatting issue (re-read this section).
252* A technical problem with your change 265* A technical problem with your change.
253* He gets tons of e-mail, and yours got lost in the shuffle 266* He gets tons of e-mail, and yours got lost in the shuffle.
254* You are being annoying (See Figure 1) 267* You are being annoying.
255 268
256When in doubt, solicit comments on linux-kernel mailing list. 269When in doubt, solicit comments on linux-kernel mailing list.
257 270
@@ -476,10 +489,10 @@ SECTION 3 - REFERENCES
476Andrew Morton, "The perfect patch" (tpp). 489Andrew Morton, "The perfect patch" (tpp).
477 <http://www.zip.com.au/~akpm/linux/patches/stuff/tpp.txt> 490 <http://www.zip.com.au/~akpm/linux/patches/stuff/tpp.txt>
478 491
479Jeff Garzik, "Linux kernel patch submission format." 492Jeff Garzik, "Linux kernel patch submission format".
480 <http://linux.yyz.us/patch-format.html> 493 <http://linux.yyz.us/patch-format.html>
481 494
482Greg Kroah-Hartman "How to piss off a kernel subsystem maintainer". 495Greg Kroah-Hartman, "How to piss off a kernel subsystem maintainer".
483 <http://www.kroah.com/log/2005/03/31/> 496 <http://www.kroah.com/log/2005/03/31/>
484 <http://www.kroah.com/log/2005/07/08/> 497 <http://www.kroah.com/log/2005/07/08/>
485 <http://www.kroah.com/log/2005/10/19/> 498 <http://www.kroah.com/log/2005/10/19/>
@@ -488,9 +501,9 @@ Greg Kroah-Hartman "How to piss off a kernel subsystem maintainer".
488NO!!!! No more huge patch bombs to linux-kernel@vger.kernel.org people! 501NO!!!! No more huge patch bombs to linux-kernel@vger.kernel.org people!
489 <http://marc.theaimsgroup.com/?l=linux-kernel&m=112112749912944&w=2> 502 <http://marc.theaimsgroup.com/?l=linux-kernel&m=112112749912944&w=2>
490 503
491Kernel Documentation/CodingStyle 504Kernel Documentation/CodingStyle:
492 <http://sosdg.org/~coywolf/lxr/source/Documentation/CodingStyle> 505 <http://sosdg.org/~coywolf/lxr/source/Documentation/CodingStyle>
493 506
494Linus Torvald's mail on the canonical patch format: 507Linus Torvalds's mail on the canonical patch format:
495 <http://lkml.org/lkml/2005/4/7/183> 508 <http://lkml.org/lkml/2005/4/7/183>
496-- 509--
diff --git a/Documentation/accounting/getdelays.c b/Documentation/accounting/getdelays.c
index 795ca3911cc5..b11792abd6b6 100644
--- a/Documentation/accounting/getdelays.c
+++ b/Documentation/accounting/getdelays.c
@@ -285,7 +285,7 @@ int main(int argc, char *argv[])
285 if (maskset) { 285 if (maskset) {
286 rc = send_cmd(nl_sd, id, mypid, TASKSTATS_CMD_GET, 286 rc = send_cmd(nl_sd, id, mypid, TASKSTATS_CMD_GET,
287 TASKSTATS_CMD_ATTR_REGISTER_CPUMASK, 287 TASKSTATS_CMD_ATTR_REGISTER_CPUMASK,
288 &cpumask, sizeof(cpumask)); 288 &cpumask, strlen(cpumask) + 1);
289 PRINTF("Sent register cpumask, retval %d\n", rc); 289 PRINTF("Sent register cpumask, retval %d\n", rc);
290 if (rc < 0) { 290 if (rc < 0) {
291 printf("error sending register cpumask\n"); 291 printf("error sending register cpumask\n");
@@ -315,7 +315,8 @@ int main(int argc, char *argv[])
315 } 315 }
316 if (msg.n.nlmsg_type == NLMSG_ERROR || 316 if (msg.n.nlmsg_type == NLMSG_ERROR ||
317 !NLMSG_OK((&msg.n), rep_len)) { 317 !NLMSG_OK((&msg.n), rep_len)) {
318 printf("fatal reply error, errno %d\n", errno); 318 struct nlmsgerr *err = NLMSG_DATA(&msg);
319 printf("fatal reply error, errno %d\n", err->error);
319 goto done; 320 goto done;
320 } 321 }
321 322
@@ -383,7 +384,7 @@ done:
383 if (maskset) { 384 if (maskset) {
384 rc = send_cmd(nl_sd, id, mypid, TASKSTATS_CMD_GET, 385 rc = send_cmd(nl_sd, id, mypid, TASKSTATS_CMD_GET,
385 TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK, 386 TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK,
386 &cpumask, sizeof(cpumask)); 387 &cpumask, strlen(cpumask) + 1);
387 printf("Sent deregister mask, retval %d\n", rc); 388 printf("Sent deregister mask, retval %d\n", rc);
388 if (rc < 0) 389 if (rc < 0)
389 err(rc, "error sending deregister cpumask\n"); 390 err(rc, "error sending deregister cpumask\n");
diff --git a/Documentation/accounting/taskstats-struct.txt b/Documentation/accounting/taskstats-struct.txt
new file mode 100644
index 000000000000..661c797eaf79
--- /dev/null
+++ b/Documentation/accounting/taskstats-struct.txt
@@ -0,0 +1,161 @@
1The struct taskstats
2--------------------
3
4This document contains an explanation of the struct taskstats fields.
5
6There are three different groups of fields in the struct taskstats:
7
81) Common and basic accounting fields
9 If CONFIG_TASKSTATS is set, the taskstats inteface is enabled and
10 the common fields and basic accounting fields are collected for
11 delivery at do_exit() of a task.
122) Delay accounting fields
13 These fields are placed between
14 /* Delay accounting fields start */
15 and
16 /* Delay accounting fields end */
17 Their values are collected if CONFIG_TASK_DELAY_ACCT is set.
183) Extended accounting fields
19 These fields are placed between
20 /* Extended accounting fields start */
21 and
22 /* Extended accounting fields end */
23 Their values are collected if CONFIG_TASK_XACCT is set.
24
25Future extension should add fields to the end of the taskstats struct, and
26should not change the relative position of each field within the struct.
27
28
29struct taskstats {
30
311) Common and basic accounting fields:
32 /* The version number of this struct. This field is always set to
33 * TAKSTATS_VERSION, which is defined in <linux/taskstats.h>.
34 * Each time the struct is changed, the value should be incremented.
35 */
36 __u16 version;
37
38 /* The exit code of a task. */
39 __u32 ac_exitcode; /* Exit status */
40
41 /* The accounting flags of a task as defined in <linux/acct.h>
42 * Defined values are AFORK, ASU, ACOMPAT, ACORE, and AXSIG.
43 */
44 __u8 ac_flag; /* Record flags */
45
46 /* The value of task_nice() of a task. */
47 __u8 ac_nice; /* task_nice */
48
49 /* The name of the command that started this task. */
50 char ac_comm[TS_COMM_LEN]; /* Command name */
51
52 /* The scheduling discipline as set in task->policy field. */
53 __u8 ac_sched; /* Scheduling discipline */
54
55 __u8 ac_pad[3];
56 __u32 ac_uid; /* User ID */
57 __u32 ac_gid; /* Group ID */
58 __u32 ac_pid; /* Process ID */
59 __u32 ac_ppid; /* Parent process ID */
60
61 /* The time when a task begins, in [secs] since 1970. */
62 __u32 ac_btime; /* Begin time [sec since 1970] */
63
64 /* The elapsed time of a task, in [usec]. */
65 __u64 ac_etime; /* Elapsed time [usec] */
66
67 /* The user CPU time of a task, in [usec]. */
68 __u64 ac_utime; /* User CPU time [usec] */
69
70 /* The system CPU time of a task, in [usec]. */
71 __u64 ac_stime; /* System CPU time [usec] */
72
73 /* The minor page fault count of a task, as set in task->min_flt. */
74 __u64 ac_minflt; /* Minor Page Fault Count */
75
76 /* The major page fault count of a task, as set in task->maj_flt. */
77 __u64 ac_majflt; /* Major Page Fault Count */
78
79
802) Delay accounting fields:
81 /* Delay accounting fields start
82 *
83 * All values, until the comment "Delay accounting fields end" are
84 * available only if delay accounting is enabled, even though the last
85 * few fields are not delays
86 *
87 * xxx_count is the number of delay values recorded
88 * xxx_delay_total is the corresponding cumulative delay in nanoseconds
89 *
90 * xxx_delay_total wraps around to zero on overflow
91 * xxx_count incremented regardless of overflow
92 */
93
94 /* Delay waiting for cpu, while runnable
95 * count, delay_total NOT updated atomically
96 */
97 __u64 cpu_count;
98 __u64 cpu_delay_total;
99
100 /* Following four fields atomically updated using task->delays->lock */
101
102 /* Delay waiting for synchronous block I/O to complete
103 * does not account for delays in I/O submission
104 */
105 __u64 blkio_count;
106 __u64 blkio_delay_total;
107
108 /* Delay waiting for page fault I/O (swap in only) */
109 __u64 swapin_count;
110 __u64 swapin_delay_total;
111
112 /* cpu "wall-clock" running time
113 * On some architectures, value will adjust for cpu time stolen
114 * from the kernel in involuntary waits due to virtualization.
115 * Value is cumulative, in nanoseconds, without a corresponding count
116 * and wraps around to zero silently on overflow
117 */
118 __u64 cpu_run_real_total;
119
120 /* cpu "virtual" running time
121 * Uses time intervals seen by the kernel i.e. no adjustment
122 * for kernel's involuntary waits due to virtualization.
123 * Value is cumulative, in nanoseconds, without a corresponding count
124 * and wraps around to zero silently on overflow
125 */
126 __u64 cpu_run_virtual_total;
127 /* Delay accounting fields end */
128 /* version 1 ends here */
129
130
1313) Extended accounting fields
132 /* Extended accounting fields start */
133
134 /* Accumulated RSS usage in duration of a task, in MBytes-usecs.
135 * The current rss usage is added to this counter every time
136 * a tick is charged to a task's system time. So, at the end we
137 * will have memory usage multiplied by system time. Thus an
138 * average usage per system time unit can be calculated.
139 */
140 __u64 coremem; /* accumulated RSS usage in MB-usec */
141
142 /* Accumulated virtual memory usage in duration of a task.
143 * Same as acct_rss_mem1 above except that we keep track of VM usage.
144 */
145 __u64 virtmem; /* accumulated VM usage in MB-usec */
146
147 /* High watermark of RSS usage in duration of a task, in KBytes. */
148 __u64 hiwater_rss; /* High-watermark of RSS usage */
149
150 /* High watermark of VM usage in duration of a task, in KBytes. */
151 __u64 hiwater_vm; /* High-water virtual memory usage */
152
153 /* The following four fields are I/O statistics of a task. */
154 __u64 read_char; /* bytes read */
155 __u64 write_char; /* bytes written */
156 __u64 read_syscalls; /* read syscalls */
157 __u64 write_syscalls; /* write syscalls */
158
159 /* Extended accounting fields end */
160
161}
diff --git a/Documentation/cpusets.txt b/Documentation/cpusets.txt
index 76b44290c154..842f0d1ab216 100644
--- a/Documentation/cpusets.txt
+++ b/Documentation/cpusets.txt
@@ -217,11 +217,11 @@ exclusive cpuset. Also, the use of a Linux virtual file system (vfs)
217to represent the cpuset hierarchy provides for a familiar permission 217to represent the cpuset hierarchy provides for a familiar permission
218and name space for cpusets, with a minimum of additional kernel code. 218and name space for cpusets, with a minimum of additional kernel code.
219 219
220The cpus file in the root (top_cpuset) cpuset is read-only. 220The cpus and mems files in the root (top_cpuset) cpuset are
221It automatically tracks the value of cpu_online_map, using a CPU 221read-only. The cpus file automatically tracks the value of
222hotplug notifier. If and when memory nodes can be hotplugged, 222cpu_online_map using a CPU hotplug notifier, and the mems file
223we expect to make the mems file in the root cpuset read-only 223automatically tracks the value of node_online_map using the
224as well, and have it track the value of node_online_map. 224cpuset_track_online_nodes() hook.
225 225
226 226
2271.4 What are exclusive cpusets ? 2271.4 What are exclusive cpusets ?
diff --git a/Documentation/fb/intelfb.txt b/Documentation/fb/intelfb.txt
index c12d39a23c3d..aa0d322db171 100644
--- a/Documentation/fb/intelfb.txt
+++ b/Documentation/fb/intelfb.txt
@@ -1,16 +1,19 @@
1Intel 830M/845G/852GM/855GM/865G/915G Framebuffer driver 1Intel 830M/845G/852GM/855GM/865G/915G/945G Framebuffer driver
2================================================================ 2================================================================
3 3
4A. Introduction 4A. Introduction
5 This is a framebuffer driver for various Intel 810/815 compatible 5 This is a framebuffer driver for various Intel 8xx/9xx compatible
6graphics devices. These would include: 6graphics devices. These would include:
7 7
8 Intel 830M 8 Intel 830M
9 Intel 810E845G 9 Intel 845G
10 Intel 852GM 10 Intel 852GM
11 Intel 855GM 11 Intel 855GM
12 Intel 865G 12 Intel 865G
13 Intel 915G 13 Intel 915G
14 Intel 915GM
15 Intel 945G
16 Intel 945GM
14 17
15B. List of available options 18B. List of available options
16 19
@@ -78,7 +81,7 @@ C. Kernel booting
78Separate each option/option-pair by commas (,) and the option from its value 81Separate each option/option-pair by commas (,) and the option from its value
79with an equals sign (=) as in the following: 82with an equals sign (=) as in the following:
80 83
81video=i810fb:option1,option2=value2 84video=intelfb:option1,option2=value2
82 85
83Sample Usage 86Sample Usage
84------------ 87------------
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt
index 436697cb9388..9364f47c7116 100644
--- a/Documentation/feature-removal-schedule.txt
+++ b/Documentation/feature-removal-schedule.txt
@@ -46,17 +46,8 @@ Who: Jody McIntyre <scjody@modernduck.com>
46 46
47--------------------------- 47---------------------------
48 48
49What: sbp2: module parameter "force_inquiry_hack"
50When: July 2006
51Why: Superceded by parameter "workarounds". Both parameters are meant to be
52 used ad-hoc and for single devices only, i.e. not in modprobe.conf,
53 therefore the impact of this feature replacement should be low.
54Who: Stefan Richter <stefanr@s5r6.in-berlin.de>
55
56---------------------------
57
58What: Video4Linux API 1 ioctls and video_decoder.h from Video devices. 49What: Video4Linux API 1 ioctls and video_decoder.h from Video devices.
59When: July 2006 50When: December 2006
60Why: V4L1 AP1 was replaced by V4L2 API. during migration from 2.4 to 2.6 51Why: V4L1 AP1 was replaced by V4L2 API. during migration from 2.4 to 2.6
61 series. The old API have lots of drawbacks and don't provide enough 52 series. The old API have lots of drawbacks and don't provide enough
62 means to work with all video and audio standards. The newer API is 53 means to work with all video and audio standards. The newer API is
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking
index 247d7f619aa2..eb1a6cad21e6 100644
--- a/Documentation/filesystems/Locking
+++ b/Documentation/filesystems/Locking
@@ -356,10 +356,9 @@ The last two are called only from check_disk_change().
356prototypes: 356prototypes:
357 loff_t (*llseek) (struct file *, loff_t, int); 357 loff_t (*llseek) (struct file *, loff_t, int);
358 ssize_t (*read) (struct file *, char __user *, size_t, loff_t *); 358 ssize_t (*read) (struct file *, char __user *, size_t, loff_t *);
359 ssize_t (*aio_read) (struct kiocb *, char __user *, size_t, loff_t);
360 ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *); 359 ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *);
361 ssize_t (*aio_write) (struct kiocb *, const char __user *, size_t, 360 ssize_t (*aio_read) (struct kiocb *, const struct iovec *, unsigned long, loff_t);
362 loff_t); 361 ssize_t (*aio_write) (struct kiocb *, const struct iovec *, unsigned long, loff_t);
363 int (*readdir) (struct file *, void *, filldir_t); 362 int (*readdir) (struct file *, void *, filldir_t);
364 unsigned int (*poll) (struct file *, struct poll_table_struct *); 363 unsigned int (*poll) (struct file *, struct poll_table_struct *);
365 int (*ioctl) (struct inode *, struct file *, unsigned int, 364 int (*ioctl) (struct inode *, struct file *, unsigned int,
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt
index 7db71d6fba82..7240ee7515de 100644
--- a/Documentation/filesystems/proc.txt
+++ b/Documentation/filesystems/proc.txt
@@ -39,6 +39,8 @@ Table of Contents
39 2.9 Appletalk 39 2.9 Appletalk
40 2.10 IPX 40 2.10 IPX
41 2.11 /proc/sys/fs/mqueue - POSIX message queues filesystem 41 2.11 /proc/sys/fs/mqueue - POSIX message queues filesystem
42 2.12 /proc/<pid>/oom_adj - Adjust the oom-killer score
43 2.13 /proc/<pid>/oom_score - Display current oom-killer score
42 44
43------------------------------------------------------------------------------ 45------------------------------------------------------------------------------
44Preface 46Preface
@@ -1962,6 +1964,22 @@ a queue must be less or equal then msg_max.
1962maximum message size value (it is every message queue's attribute set during 1964maximum message size value (it is every message queue's attribute set during
1963its creation). 1965its creation).
1964 1966
19672.12 /proc/<pid>/oom_adj - Adjust the oom-killer score
1968------------------------------------------------------
1969
1970This file can be used to adjust the score used to select which processes
1971should be killed in an out-of-memory situation. Giving it a high score will
1972increase the likelihood of this process being killed by the oom-killer. Valid
1973values are in the range -16 to +15, plus the special value -17, which disables
1974oom-killing altogether for this process.
1975
19762.13 /proc/<pid>/oom_score - Display current oom-killer score
1977-------------------------------------------------------------
1978
1979------------------------------------------------------------------------------
1980This file can be used to check the current score used by the oom-killer is for
1981any given <pid>. Use it together with /proc/<pid>/oom_adj to tune which
1982process should be killed in an out-of-memory situation.
1965 1983
1966------------------------------------------------------------------------------ 1984------------------------------------------------------------------------------
1967Summary 1985Summary
diff --git a/Documentation/filesystems/vfs.txt b/Documentation/filesystems/vfs.txt
index 1cb7e8be927a..cd07c21b8400 100644
--- a/Documentation/filesystems/vfs.txt
+++ b/Documentation/filesystems/vfs.txt
@@ -699,9 +699,9 @@ This describes how the VFS can manipulate an open file. As of kernel
699struct file_operations { 699struct file_operations {
700 loff_t (*llseek) (struct file *, loff_t, int); 700 loff_t (*llseek) (struct file *, loff_t, int);
701 ssize_t (*read) (struct file *, char __user *, size_t, loff_t *); 701 ssize_t (*read) (struct file *, char __user *, size_t, loff_t *);
702 ssize_t (*aio_read) (struct kiocb *, char __user *, size_t, loff_t);
703 ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *); 702 ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *);
704 ssize_t (*aio_write) (struct kiocb *, const char __user *, size_t, loff_t); 703 ssize_t (*aio_read) (struct kiocb *, const struct iovec *, unsigned long, loff_t);
704 ssize_t (*aio_write) (struct kiocb *, const struct iovec *, unsigned long, loff_t);
705 int (*readdir) (struct file *, void *, filldir_t); 705 int (*readdir) (struct file *, void *, filldir_t);
706 unsigned int (*poll) (struct file *, struct poll_table_struct *); 706 unsigned int (*poll) (struct file *, struct poll_table_struct *);
707 int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long); 707 int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long);
diff --git a/Documentation/hwmon/it87 b/Documentation/hwmon/it87
index 9555be1ed999..e783fd62e308 100644
--- a/Documentation/hwmon/it87
+++ b/Documentation/hwmon/it87
@@ -13,12 +13,25 @@ Supported chips:
13 from Super I/O config space (8 I/O ports) 13 from Super I/O config space (8 I/O ports)
14 Datasheet: Publicly available at the ITE website 14 Datasheet: Publicly available at the ITE website
15 http://www.ite.com.tw/ 15 http://www.ite.com.tw/
16 * IT8716F
17 Prefix: 'it8716'
18 Addresses scanned: from Super I/O config space (8 I/O ports)
19 Datasheet: Publicly available at the ITE website
20 http://www.ite.com.tw/product_info/file/pc/IT8716F_V0.3.ZIP
21 * IT8718F
22 Prefix: 'it8718'
23 Addresses scanned: from Super I/O config space (8 I/O ports)
24 Datasheet: Publicly available at the ITE website
25 http://www.ite.com.tw/product_info/file/pc/IT8718F_V0.2.zip
26 http://www.ite.com.tw/product_info/file/pc/IT8718F_V0%203_(for%20C%20version).zip
16 * SiS950 [clone of IT8705F] 27 * SiS950 [clone of IT8705F]
17 Prefix: 'it87' 28 Prefix: 'it87'
18 Addresses scanned: from Super I/O config space (8 I/O ports) 29 Addresses scanned: from Super I/O config space (8 I/O ports)
19 Datasheet: No longer be available 30 Datasheet: No longer be available
20 31
21Author: Christophe Gauthron <chrisg@0-in.com> 32Authors:
33 Christophe Gauthron <chrisg@0-in.com>
34 Jean Delvare <khali@linux-fr.org>
22 35
23 36
24Module Parameters 37Module Parameters
@@ -43,26 +56,46 @@ Module Parameters
43Description 56Description
44----------- 57-----------
45 58
46This driver implements support for the IT8705F, IT8712F and SiS950 chips. 59This driver implements support for the IT8705F, IT8712F, IT8716F,
47 60IT8718F and SiS950 chips.
48This driver also supports IT8712F, which adds SMBus access, and a VID
49input, used to report the Vcore voltage of the Pentium processor.
50The IT8712F additionally features VID inputs.
51 61
52These chips are 'Super I/O chips', supporting floppy disks, infrared ports, 62These chips are 'Super I/O chips', supporting floppy disks, infrared ports,
53joysticks and other miscellaneous stuff. For hardware monitoring, they 63joysticks and other miscellaneous stuff. For hardware monitoring, they
54include an 'environment controller' with 3 temperature sensors, 3 fan 64include an 'environment controller' with 3 temperature sensors, 3 fan
55rotation speed sensors, 8 voltage sensors, and associated alarms. 65rotation speed sensors, 8 voltage sensors, and associated alarms.
56 66
67The IT8712F and IT8716F additionally feature VID inputs, used to report
68the Vcore voltage of the processor. The early IT8712F have 5 VID pins,
69the IT8716F and late IT8712F have 6. They are shared with other functions
70though, so the functionality may not be available on a given system.
71The driver dumbly assume it is there.
72
73The IT8718F also features VID inputs (up to 8 pins) but the value is
74stored in the Super-I/O configuration space. Due to technical limitations,
75this value can currently only be read once at initialization time, so
76the driver won't notice and report changes in the VID value. The two
77upper VID bits share their pins with voltage inputs (in5 and in6) so you
78can't have both on a given board.
79
80The IT8716F, IT8718F and later IT8712F revisions have support for
812 additional fans. They are not yet supported by the driver.
82
83The IT8716F and IT8718F, and late IT8712F and IT8705F also have optional
8416-bit tachometer counters for fans 1 to 3. This is better (no more fan
85clock divider mess) but not compatible with the older chips and
86revisions. For now, the driver only uses the 16-bit mode on the
87IT8716F and IT8718F.
88
57Temperatures are measured in degrees Celsius. An alarm is triggered once 89Temperatures are measured in degrees Celsius. An alarm is triggered once
58when the Overtemperature Shutdown limit is crossed. 90when the Overtemperature Shutdown limit is crossed.
59 91
60Fan rotation speeds are reported in RPM (rotations per minute). An alarm is 92Fan rotation speeds are reported in RPM (rotations per minute). An alarm is
61triggered if the rotation speed has dropped below a programmable limit. Fan 93triggered if the rotation speed has dropped below a programmable limit. When
62readings can be divided by a programmable divider (1, 2, 4 or 8) to give the 9416-bit tachometer counters aren't used, fan readings can be divided by
63readings more range or accuracy. Not all RPM values can accurately be 95a programmable divider (1, 2, 4 or 8) to give the readings more range or
64represented, so some rounding is done. With a divider of 2, the lowest 96accuracy. With a divider of 2, the lowest representable value is around
65representable value is around 2600 RPM. 972600 RPM. Not all RPM values can accurately be represented, so some rounding
98is done.
66 99
67Voltage sensors (also known as IN sensors) report their values in volts. An 100Voltage sensors (also known as IN sensors) report their values in volts. An
68alarm is triggered if the voltage has crossed a programmable minimum or 101alarm is triggered if the voltage has crossed a programmable minimum or
@@ -71,9 +104,9 @@ zero'; this is important for negative voltage measurements. All voltage
71inputs can measure voltages between 0 and 4.08 volts, with a resolution of 104inputs can measure voltages between 0 and 4.08 volts, with a resolution of
720.016 volt. The battery voltage in8 does not have limit registers. 1050.016 volt. The battery voltage in8 does not have limit registers.
73 106
74The VID lines (IT8712F only) encode the core voltage value: the voltage 107The VID lines (IT8712F/IT8716F/IT8718F) encode the core voltage value:
75level your processor should work with. This is hardcoded by the mainboard 108the voltage level your processor should work with. This is hardcoded by
76and/or processor itself. It is a value in volts. 109the mainboard and/or processor itself. It is a value in volts.
77 110
78If an alarm triggers, it will remain triggered until the hardware register 111If an alarm triggers, it will remain triggered until the hardware register
79is read at least once. This means that the cause for the alarm may already 112is read at least once. This means that the cause for the alarm may already
diff --git a/Documentation/hwmon/k8temp b/Documentation/hwmon/k8temp
new file mode 100644
index 000000000000..bab445ab0f52
--- /dev/null
+++ b/Documentation/hwmon/k8temp
@@ -0,0 +1,52 @@
1Kernel driver k8temp
2====================
3
4Supported chips:
5 * AMD K8 CPU
6 Prefix: 'k8temp'
7 Addresses scanned: PCI space
8 Datasheet: http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/32559.pdf
9
10Author: Rudolf Marek
11Contact: Rudolf Marek <r.marek@sh.cvut.cz>
12
13Description
14-----------
15
16This driver permits reading temperature sensor(s) embedded inside AMD K8 CPUs.
17Official documentation says that it works from revision F of K8 core, but
18in fact it seems to be implemented for all revisions of K8 except the first
19two revisions (SH-B0 and SH-B3).
20
21There can be up to four temperature sensors inside single CPU. The driver
22will auto-detect the sensors and will display only temperatures from
23implemented sensors.
24
25Mapping of /sys files is as follows:
26
27temp1_input - temperature of Core 0 and "place" 0
28temp2_input - temperature of Core 0 and "place" 1
29temp3_input - temperature of Core 1 and "place" 0
30temp4_input - temperature of Core 1 and "place" 1
31
32Temperatures are measured in degrees Celsius and measurement resolution is
331 degree C. It is expected that future CPU will have better resolution. The
34temperature is updated once a second. Valid temperatures are from -49 to
35206 degrees C.
36
37Temperature known as TCaseMax was specified for processors up to revision E.
38This temperature is defined as temperature between heat-spreader and CPU
39case, so the internal CPU temperature supplied by this driver can be higher.
40There is no easy way how to measure the temperature which will correlate
41with TCaseMax temperature.
42
43For newer revisions of CPU (rev F, socket AM2) there is a mathematically
44computed temperature called TControl, which must be lower than TControlMax.
45
46The relationship is following:
47
48temp1_input - TjOffset*2 < TControlMax,
49
50TjOffset is not yet exported by the driver, TControlMax is usually
5170 degrees C. The rule of the thumb -> CPU temperature should not cross
5260 degrees C too much.
diff --git a/Documentation/hwmon/vt1211 b/Documentation/hwmon/vt1211
new file mode 100644
index 000000000000..77fa633b97a8
--- /dev/null
+++ b/Documentation/hwmon/vt1211
@@ -0,0 +1,206 @@
1Kernel driver vt1211
2====================
3
4Supported chips:
5 * VIA VT1211
6 Prefix: 'vt1211'
7 Addresses scanned: none, address read from Super-I/O config space
8 Datasheet: Provided by VIA upon request and under NDA
9
10Authors: Juerg Haefliger <juergh@gmail.com>
11
12This driver is based on the driver for kernel 2.4 by Mark D. Studebaker and
13its port to kernel 2.6 by Lars Ekman.
14
15Thanks to Joseph Chan and Fiona Gatt from VIA for providing documentation and
16technical support.
17
18
19Module Parameters
20-----------------
21
22* uch_config: int Override the BIOS default universal channel (UCH)
23 configuration for channels 1-5.
24 Legal values are in the range of 0-31. Bit 0 maps to
25 UCH1, bit 1 maps to UCH2 and so on. Setting a bit to 1
26 enables the thermal input of that particular UCH and
27 setting a bit to 0 enables the voltage input.
28
29* int_mode: int Override the BIOS default temperature interrupt mode.
30 The only possible value is 0 which forces interrupt
31 mode 0. In this mode, any pending interrupt is cleared
32 when the status register is read but is regenerated as
33 long as the temperature stays above the hysteresis
34 limit.
35
36Be aware that overriding BIOS defaults might cause some unwanted side effects!
37
38
39Description
40-----------
41
42The VIA VT1211 Super-I/O chip includes complete hardware monitoring
43capabilities. It monitors 2 dedicated temperature sensor inputs (temp1 and
44temp2), 1 dedicated voltage (in5) and 2 fans. Additionally, the chip
45implements 5 universal input channels (UCH1-5) that can be individually
46programmed to either monitor a voltage or a temperature.
47
48This chip also provides manual and automatic control of fan speeds (according
49to the datasheet). The driver only supports automatic control since the manual
50mode doesn't seem to work as advertised in the datasheet. In fact I couldn't
51get manual mode to work at all! Be aware that automatic mode hasn't been
52tested very well (due to the fact that my EPIA M10000 doesn't have the fans
53connected to the PWM outputs of the VT1211 :-().
54
55The following table shows the relationship between the vt1211 inputs and the
56sysfs nodes.
57
58Sensor Voltage Mode Temp Mode Default Use (from the datasheet)
59------ ------------ --------- --------------------------------
60Reading 1 temp1 Intel thermal diode
61Reading 3 temp2 Internal thermal diode
62UCH1/Reading2 in0 temp3 NTC type thermistor
63UCH2 in1 temp4 +2.5V
64UCH3 in2 temp5 VccP (processor core)
65UCH4 in3 temp6 +5V
66UCH5 in4 temp7 +12V
67+3.3V in5 Internal VCC (+3.3V)
68
69
70Voltage Monitoring
71------------------
72
73Voltages are sampled by an 8-bit ADC with a LSB of ~10mV. The supported input
74range is thus from 0 to 2.60V. Voltage values outside of this range need
75external scaling resistors. This external scaling needs to be compensated for
76via compute lines in sensors.conf, like:
77
78compute inx @*(1+R1/R2), @/(1+R1/R2)
79
80The board level scaling resistors according to VIA's recommendation are as
81follows. And this is of course totally dependent on the actual board
82implementation :-) You will have to find documentation for your own
83motherboard and edit sensors.conf accordingly.
84
85 Expected
86Voltage R1 R2 Divider Raw Value
87-----------------------------------------------
88+2.5V 2K 10K 1.2 2083 mV
89VccP --- --- 1.0 1400 mV (1)
90+5V 14K 10K 2.4 2083 mV
91+12V 47K 10K 5.7 2105 mV
92+3.3V (int) 2K 3.4K 1.588 3300 mV (2)
93+3.3V (ext) 6.8K 10K 1.68 1964 mV
94
95(1) Depending on the CPU (1.4V is for a VIA C3 Nehemiah).
96(2) R1 and R2 for 3.3V (int) are internal to the VT1211 chip and the driver
97 performs the scaling and returns the properly scaled voltage value.
98
99Each measured voltage has an associated low and high limit which triggers an
100alarm when crossed.
101
102
103Temperature Monitoring
104----------------------
105
106Temperatures are reported in millidegree Celsius. Each measured temperature
107has a high limit which triggers an alarm if crossed. There is an associated
108hysteresis value with each temperature below which the temperature has to drop
109before the alarm is cleared (this is only true for interrupt mode 0). The
110interrupt mode can be forced to 0 in case the BIOS doesn't do it
111automatically. See the 'Module Parameters' section for details.
112
113All temperature channels except temp2 are external. Temp2 is the VT1211
114internal thermal diode and the driver does all the scaling for temp2 and
115returns the temperature in millidegree Celsius. For the external channels
116temp1 and temp3-temp7, scaling depends on the board implementation and needs
117to be performed in userspace via sensors.conf.
118
119Temp1 is an Intel-type thermal diode which requires the following formula to
120convert between sysfs readings and real temperatures:
121
122compute temp1 (@-Offset)/Gain, (@*Gain)+Offset
123
124According to the VIA VT1211 BIOS porting guide, the following gain and offset
125values should be used:
126
127Diode Type Offset Gain
128---------- ------ ----
129Intel CPU 88.638 0.9528
130 65.000 0.9686 *)
131VIA C3 Ezra 83.869 0.9528
132VIA C3 Ezra-T 73.869 0.9528
133
134*) This is the formula from the lm_sensors 2.10.0 sensors.conf file. I don't
135know where it comes from or how it was derived, it's just listed here for
136completeness.
137
138Temp3-temp7 support NTC thermistors. For these channels, the driver returns
139the voltages as seen at the individual pins of UCH1-UCH5. The voltage at the
140pin (Vpin) is formed by a voltage divider made of the thermistor (Rth) and a
141scaling resistor (Rs):
142
143Vpin = 2200 * Rth / (Rs + Rth) (2200 is the ADC max limit of 2200 mV)
144
145The equation for the thermistor is as follows (google it if you want to know
146more about it):
147
148Rth = Ro * exp(B * (1 / T - 1 / To)) (To is 298.15K (25C) and Ro is the
149 nominal resistance at 25C)
150
151Mingling the above two equations and assuming Rs = Ro and B = 3435 yields the
152following formula for sensors.conf:
153
154compute tempx 1 / (1 / 298.15 - (` (2200 / @ - 1)) / 3435) - 273.15,
155 2200 / (1 + (^ (3435 / 298.15 - 3435 / (273.15 + @))))
156
157
158Fan Speed Control
159-----------------
160
161The VT1211 provides 2 programmable PWM outputs to control the speeds of 2
162fans. Writing a 2 to any of the two pwm[1-2]_enable sysfs nodes will put the
163PWM controller in automatic mode. There is only a single controller that
164controls both PWM outputs but each PWM output can be individually enabled and
165disabled.
166
167Each PWM has 4 associated distinct output duty-cycles: full, high, low and
168off. Full and off are internally hard-wired to 255 (100%) and 0 (0%),
169respectively. High and low can be programmed via
170pwm[1-2]_auto_point[2-3]_pwm. Each PWM output can be associated with a
171different thermal input but - and here's the weird part - only one set of
172thermal thresholds exist that controls both PWMs output duty-cycles. The
173thermal thresholds are accessible via pwm[1-2]_auto_point[1-4]_temp. Note
174that even though there are 2 sets of 4 auto points each, they map to the same
175registers in the VT1211 and programming one set is sufficient (actually only
176the first set pwm1_auto_point[1-4]_temp is writable, the second set is
177read-only).
178
179PWM Auto Point PWM Output Duty-Cycle
180------------------------------------------------
181pwm[1-2]_auto_point4_pwm full speed duty-cycle (hard-wired to 255)
182pwm[1-2]_auto_point3_pwm high speed duty-cycle
183pwm[1-2]_auto_point2_pwm low speed duty-cycle
184pwm[1-2]_auto_point1_pwm off duty-cycle (hard-wired to 0)
185
186Temp Auto Point Thermal Threshold
187---------------------------------------------
188pwm[1-2]_auto_point4_temp full speed temp
189pwm[1-2]_auto_point3_temp high speed temp
190pwm[1-2]_auto_point2_temp low speed temp
191pwm[1-2]_auto_point1_temp off temp
192
193Long story short, the controller implements the following algorithm to set the
194PWM output duty-cycle based on the input temperature:
195
196Thermal Threshold Output Duty-Cycle
197 (Rising Temp) (Falling Temp)
198----------------------------------------------------------
199 full speed duty-cycle full speed duty-cycle
200full speed temp
201 high speed duty-cycle full speed duty-cycle
202high speed temp
203 low speed duty-cycle high speed duty-cycle
204low speed temp
205 off duty-cycle low speed duty-cycle
206off temp
diff --git a/Documentation/hwmon/w83627ehf b/Documentation/hwmon/w83627ehf
new file mode 100644
index 000000000000..fae3b781d82d
--- /dev/null
+++ b/Documentation/hwmon/w83627ehf
@@ -0,0 +1,85 @@
1Kernel driver w83627ehf
2=======================
3
4Supported chips:
5 * Winbond W83627EHF/EHG (ISA access ONLY)
6 Prefix: 'w83627ehf'
7 Addresses scanned: ISA address retrieved from Super I/O registers
8 Datasheet: http://www.winbond-usa.com/products/winbond_products/pdfs/PCIC/W83627EHF_%20W83627EHGb.pdf
9
10Authors:
11 Jean Delvare <khali@linux-fr.org>
12 Yuan Mu (Winbond)
13 Rudolf Marek <r.marek@sh.cvut.cz>
14
15Description
16-----------
17
18This driver implements support for the Winbond W83627EHF and W83627EHG
19super I/O chips. We will refer to them collectively as Winbond chips.
20
21The chips implement three temperature sensors, five fan rotation
22speed sensors, ten analog voltage sensors, alarms with beep warnings (control
23unimplemented), and some automatic fan regulation strategies (plus manual
24fan control mode).
25
26Temperatures are measured in degrees Celsius and measurement resolution is 1
27degC for temp1 and 0.5 degC for temp2 and temp3. An alarm is triggered when
28the temperature gets higher than high limit; it stays on until the temperature
29falls below the Hysteresis value.
30
31Fan rotation speeds are reported in RPM (rotations per minute). An alarm is
32triggered if the rotation speed has dropped below a programmable limit. Fan
33readings can be divided by a programmable divider (1, 2, 4, 8, 16, 32, 64 or
34128) to give the readings more range or accuracy. The driver sets the most
35suitable fan divisor itself. Some fans might not be present because they
36share pins with other functions.
37
38Voltage sensors (also known as IN sensors) report their values in millivolts.
39An alarm is triggered if the voltage has crossed a programmable minimum
40or maximum limit.
41
42The driver supports automatic fan control mode known as Thermal Cruise.
43In this mode, the chip attempts to keep the measured temperature in a
44predefined temperature range. If the temperature goes out of range, fan
45is driven slower/faster to reach the predefined range again.
46
47The mode works for fan1-fan4. Mapping of temperatures to pwm outputs is as
48follows:
49
50temp1 -> pwm1
51temp2 -> pwm2
52temp3 -> pwm3
53prog -> pwm4 (the programmable setting is not supported by the driver)
54
55/sys files
56----------
57
58pwm[1-4] - this file stores PWM duty cycle or DC value (fan speed) in range:
59 0 (stop) to 255 (full)
60
61pwm[1-4]_enable - this file controls mode of fan/temperature control:
62 * 1 Manual Mode, write to pwm file any value 0-255 (full speed)
63 * 2 Thermal Cruise
64
65Thermal Cruise mode
66-------------------
67
68If the temperature is in the range defined by:
69
70pwm[1-4]_target - set target temperature, unit millidegree Celcius
71 (range 0 - 127000)
72pwm[1-4]_tolerance - tolerance, unit millidegree Celcius (range 0 - 15000)
73
74there are no changes to fan speed. Once the temperature leaves the interval,
75fan speed increases (temp is higher) or decreases if lower than desired.
76There are defined steps and times, but not exported by the driver yet.
77
78pwm[1-4]_min_output - minimum fan speed (range 1 - 255), when the temperature
79 is below defined range.
80pwm[1-4]_stop_time - how many milliseconds [ms] must elapse to switch
81 corresponding fan off. (when the temperature was below
82 defined range).
83
84Note: last two functions are influenced by other control bits, not yet exported
85 by the driver, so a change might not have any effect.
diff --git a/Documentation/hwmon/w83791d b/Documentation/hwmon/w83791d
index 83a3836289c2..19b2ed739fa1 100644
--- a/Documentation/hwmon/w83791d
+++ b/Documentation/hwmon/w83791d
@@ -5,7 +5,7 @@ Supported chips:
5 * Winbond W83791D 5 * Winbond W83791D
6 Prefix: 'w83791d' 6 Prefix: 'w83791d'
7 Addresses scanned: I2C 0x2c - 0x2f 7 Addresses scanned: I2C 0x2c - 0x2f
8 Datasheet: http://www.winbond-usa.com/products/winbond_products/pdfs/PCIC/W83791Da.pdf 8 Datasheet: http://www.winbond-usa.com/products/winbond_products/pdfs/PCIC/W83791D_W83791Gb.pdf
9 9
10Author: Charles Spirakis <bezaur@gmail.com> 10Author: Charles Spirakis <bezaur@gmail.com>
11 11
@@ -20,6 +20,9 @@ Credits:
20 Chunhao Huang <DZShen@Winbond.com.tw>, 20 Chunhao Huang <DZShen@Winbond.com.tw>,
21 Rudolf Marek <r.marek@sh.cvut.cz> 21 Rudolf Marek <r.marek@sh.cvut.cz>
22 22
23Additional contributors:
24 Sven Anders <anders@anduras.de>
25
23Module Parameters 26Module Parameters
24----------------- 27-----------------
25 28
@@ -46,7 +49,8 @@ Module Parameters
46Description 49Description
47----------- 50-----------
48 51
49This driver implements support for the Winbond W83791D chip. 52This driver implements support for the Winbond W83791D chip. The W83791G
53chip appears to be the same as the W83791D but is lead free.
50 54
51Detection of the chip can sometimes be foiled because it can be in an 55Detection of the chip can sometimes be foiled because it can be in an
52internal state that allows no clean access (Bank with ID register is not 56internal state that allows no clean access (Bank with ID register is not
@@ -71,34 +75,36 @@ Voltage sensors (also known as IN sensors) report their values in millivolts.
71An alarm is triggered if the voltage has crossed a programmable minimum 75An alarm is triggered if the voltage has crossed a programmable minimum
72or maximum limit. 76or maximum limit.
73 77
74Alarms are provided as output from a "realtime status register". The 78The bit ordering for the alarm "realtime status register" and the
75following bits are defined: 79"beep enable registers" are different.
76 80
77bit - alarm on: 81in0 (VCORE) : alarms: 0x000001 beep_enable: 0x000001
780 - Vcore 82in1 (VINR0) : alarms: 0x000002 beep_enable: 0x002000 <== mismatch
791 - VINR0 83in2 (+3.3VIN): alarms: 0x000004 beep_enable: 0x000004
802 - +3.3VIN 84in3 (5VDD) : alarms: 0x000008 beep_enable: 0x000008
813 - 5VDD 85in4 (+12VIN) : alarms: 0x000100 beep_enable: 0x000100
824 - temp1 86in5 (-12VIN) : alarms: 0x000200 beep_enable: 0x000200
835 - temp2 87in6 (-5VIN) : alarms: 0x000400 beep_enable: 0x000400
846 - fan1 88in7 (VSB) : alarms: 0x080000 beep_enable: 0x010000 <== mismatch
857 - fan2 89in8 (VBAT) : alarms: 0x100000 beep_enable: 0x020000 <== mismatch
868 - +12VIN 90in9 (VINR1) : alarms: 0x004000 beep_enable: 0x004000
879 - -12VIN 91temp1 : alarms: 0x000010 beep_enable: 0x000010
8810 - -5VIN 92temp2 : alarms: 0x000020 beep_enable: 0x000020
8911 - fan3 93temp3 : alarms: 0x002000 beep_enable: 0x000002 <== mismatch
9012 - chassis 94fan1 : alarms: 0x000040 beep_enable: 0x000040
9113 - temp3 95fan2 : alarms: 0x000080 beep_enable: 0x000080
9214 - VINR1 96fan3 : alarms: 0x000800 beep_enable: 0x000800
9315 - reserved 97fan4 : alarms: 0x200000 beep_enable: 0x200000
9416 - tart1 98fan5 : alarms: 0x400000 beep_enable: 0x400000
9517 - tart2 99tart1 : alarms: 0x010000 beep_enable: 0x040000 <== mismatch
9618 - tart3 100tart2 : alarms: 0x020000 beep_enable: 0x080000 <== mismatch
9719 - VSB 101tart3 : alarms: 0x040000 beep_enable: 0x100000 <== mismatch
9820 - VBAT 102case_open : alarms: 0x001000 beep_enable: 0x001000
9921 - fan4 103user_enable : alarms: -------- beep_enable: 0x800000
10022 - fan5 104
10123 - reserved 105*** NOTE: It is the responsibility of user-space code to handle the fact
106that the beep enable and alarm bits are in different positions when using that
107feature of the chip.
102 108
103When an alarm goes off, you can be warned by a beeping signal through your 109When an alarm goes off, you can be warned by a beeping signal through your
104computer speaker. It is possible to enable all beeping globally, or only 110computer speaker. It is possible to enable all beeping globally, or only
@@ -109,5 +115,6 @@ often will do no harm, but will return 'old' values.
109 115
110W83791D TODO: 116W83791D TODO:
111--------------- 117---------------
112Provide a patch for per-file alarms as discussed on the mailing list 118Provide a patch for per-file alarms and beep enables as defined in the hwmon
119 documentation (Documentation/hwmon/sysfs-interface)
113Provide a patch for smart-fan control (still need appropriate motherboard/fans) 120Provide a patch for smart-fan control (still need appropriate motherboard/fans)
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 54983246930d..137e993f4329 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -110,6 +110,13 @@ be entered as an environment variable, whereas its absence indicates that
110it will appear as a kernel argument readable via /proc/cmdline by programs 110it will appear as a kernel argument readable via /proc/cmdline by programs
111running once the system is up. 111running once the system is up.
112 112
113The number of kernel parameters is not limited, but the length of the
114complete command line (parameters including spaces etc.) is limited to
115a fixed number of characters. This limit depends on the architecture
116and is between 256 and 4096 characters. It is defined in the file
117./include/asm/setup.h as COMMAND_LINE_SIZE.
118
119
113 53c7xx= [HW,SCSI] Amiga SCSI controllers 120 53c7xx= [HW,SCSI] Amiga SCSI controllers
114 See header of drivers/scsi/53c7xx.c. 121 See header of drivers/scsi/53c7xx.c.
115 See also Documentation/scsi/ncr53c7xx.txt. 122 See also Documentation/scsi/ncr53c7xx.txt.
@@ -1324,7 +1331,7 @@ running once the system is up.
1324 pt. [PARIDE] 1331 pt. [PARIDE]
1325 See Documentation/paride.txt. 1332 See Documentation/paride.txt.
1326 1333
1327 quiet= [KNL] Disable log messages 1334 quiet [KNL] Disable most log messages
1328 1335
1329 r128= [HW,DRM] 1336 r128= [HW,DRM]
1330 1337
diff --git a/Documentation/lockdep-design.txt b/Documentation/lockdep-design.txt
index 00d93605bfd3..55a7e4fa8cc2 100644
--- a/Documentation/lockdep-design.txt
+++ b/Documentation/lockdep-design.txt
@@ -36,6 +36,28 @@ The validator tracks lock-class usage history into 5 separate state bits:
36 36
37- 'ever used' [ == !unused ] 37- 'ever used' [ == !unused ]
38 38
39When locking rules are violated, these 4 state bits are presented in the
40locking error messages, inside curlies. A contrived example:
41
42 modprobe/2287 is trying to acquire lock:
43 (&sio_locks[i].lock){--..}, at: [<c02867fd>] mutex_lock+0x21/0x24
44
45 but task is already holding lock:
46 (&sio_locks[i].lock){--..}, at: [<c02867fd>] mutex_lock+0x21/0x24
47
48
49The bit position indicates hardirq, softirq, hardirq-read,
50softirq-read respectively, and the character displayed in each
51indicates:
52
53 '.' acquired while irqs enabled
54 '+' acquired in irq context
55 '-' acquired in process context with irqs disabled
56 '?' read-acquired both with irqs enabled and in irq context
57
58Unused mutexes cannot be part of the cause of an error.
59
60
39Single-lock state rules: 61Single-lock state rules:
40------------------------ 62------------------------
41 63
diff --git a/Documentation/networking/pktgen.txt b/Documentation/networking/pktgen.txt
index 44f2f769e865..18d385c068fc 100644
--- a/Documentation/networking/pktgen.txt
+++ b/Documentation/networking/pktgen.txt
@@ -100,6 +100,7 @@ Examples:
100 are: IPSRC_RND #IP Source is random (between min/max), 100 are: IPSRC_RND #IP Source is random (between min/max),
101 IPDST_RND, UDPSRC_RND, 101 IPDST_RND, UDPSRC_RND,
102 UDPDST_RND, MACSRC_RND, MACDST_RND 102 UDPDST_RND, MACSRC_RND, MACDST_RND
103 MPLS_RND, VID_RND, SVID_RND
103 104
104 pgset "udp_src_min 9" set UDP source port min, If < udp_src_max, then 105 pgset "udp_src_min 9" set UDP source port min, If < udp_src_max, then
105 cycle through the port range. 106 cycle through the port range.
@@ -125,6 +126,21 @@ Examples:
125 126
126 pgset "mpls 0" turn off mpls (or any invalid argument works too!) 127 pgset "mpls 0" turn off mpls (or any invalid argument works too!)
127 128
129 pgset "vlan_id 77" set VLAN ID 0-4095
130 pgset "vlan_p 3" set priority bit 0-7 (default 0)
131 pgset "vlan_cfi 0" set canonical format identifier 0-1 (default 0)
132
133 pgset "svlan_id 22" set SVLAN ID 0-4095
134 pgset "svlan_p 3" set priority bit 0-7 (default 0)
135 pgset "svlan_cfi 0" set canonical format identifier 0-1 (default 0)
136
137 pgset "vlan_id 9999" > 4095 remove vlan and svlan tags
138 pgset "svlan 9999" > 4095 remove svlan tag
139
140
141 pgset "tos XX" set former IPv4 TOS field (e.g. "tos 28" for AF11 no ECN, default 00)
142 pgset "traffic_class XX" set former IPv6 TRAFFIC CLASS (e.g. "traffic_class B8" for EF no ECN, default 00)
143
128 pgset stop aborts injection. Also, ^C aborts generator. 144 pgset stop aborts injection. Also, ^C aborts generator.
129 145
130 146
diff --git a/Documentation/rt-mutex-design.txt b/Documentation/rt-mutex-design.txt
index c472ffacc2f6..4b736d24da7a 100644
--- a/Documentation/rt-mutex-design.txt
+++ b/Documentation/rt-mutex-design.txt
@@ -333,11 +333,11 @@ cmpxchg is basically the following function performed atomically:
333 333
334unsigned long _cmpxchg(unsigned long *A, unsigned long *B, unsigned long *C) 334unsigned long _cmpxchg(unsigned long *A, unsigned long *B, unsigned long *C)
335{ 335{
336 unsigned long T = *A; 336 unsigned long T = *A;
337 if (*A == *B) { 337 if (*A == *B) {
338 *A = *C; 338 *A = *C;
339 } 339 }
340 return T; 340 return T;
341} 341}
342#define cmpxchg(a,b,c) _cmpxchg(&a,&b,&c) 342#define cmpxchg(a,b,c) _cmpxchg(&a,&b,&c)
343 343
@@ -582,7 +582,7 @@ contention).
582try_to_take_rt_mutex is used every time the task tries to grab a mutex in the 582try_to_take_rt_mutex is used every time the task tries to grab a mutex in the
583slow path. The first thing that is done here is an atomic setting of 583slow path. The first thing that is done here is an atomic setting of
584the "Has Waiters" flag of the mutex's owner field. Yes, this could really 584the "Has Waiters" flag of the mutex's owner field. Yes, this could really
585be false, because if the the mutex has no owner, there are no waiters and 585be false, because if the mutex has no owner, there are no waiters and
586the current task also won't have any waiters. But we don't have the lock 586the current task also won't have any waiters. But we don't have the lock
587yet, so we assume we are going to be a waiter. The reason for this is to 587yet, so we assume we are going to be a waiter. The reason for this is to
588play nice for those architectures that do have CMPXCHG. By setting this flag 588play nice for those architectures that do have CMPXCHG. By setting this flag
@@ -735,7 +735,7 @@ do have CMPXCHG, that check is done in the fast path, but it is still needed
735in the slow path too. If a waiter of a mutex woke up because of a signal 735in the slow path too. If a waiter of a mutex woke up because of a signal
736or timeout between the time the owner failed the fast path CMPXCHG check and 736or timeout between the time the owner failed the fast path CMPXCHG check and
737the grabbing of the wait_lock, the mutex may not have any waiters, thus the 737the grabbing of the wait_lock, the mutex may not have any waiters, thus the
738owner still needs to make this check. If there are no waiters than the mutex 738owner still needs to make this check. If there are no waiters then the mutex
739owner field is set to NULL, the wait_lock is released and nothing more is 739owner field is set to NULL, the wait_lock is released and nothing more is
740needed. 740needed.
741 741
diff --git a/Documentation/seclvl.txt b/Documentation/seclvl.txt
deleted file mode 100644
index 97274d122d0e..000000000000
--- a/Documentation/seclvl.txt
+++ /dev/null
@@ -1,97 +0,0 @@
1BSD Secure Levels Linux Security Module
2Michael A. Halcrow <mike@halcrow.us>
3
4
5Introduction
6
7Under the BSD Secure Levels security model, sets of policies are
8associated with levels. Levels range from -1 to 2, with -1 being the
9weakest and 2 being the strongest. These security policies are
10enforced at the kernel level, so not even the superuser is able to
11disable or circumvent them. This hardens the machine against attackers
12who gain root access to the system.
13
14
15Levels and Policies
16
17Level -1 (Permanently Insecure):
18 - Cannot increase the secure level
19
20Level 0 (Insecure):
21 - Cannot ptrace the init process
22
23Level 1 (Default):
24 - /dev/mem and /dev/kmem are read-only
25 - IMMUTABLE and APPEND extended attributes, if set, may not be unset
26 - Cannot load or unload kernel modules
27 - Cannot write directly to a mounted block device
28 - Cannot perform raw I/O operations
29 - Cannot perform network administrative tasks
30 - Cannot setuid any file
31
32Level 2 (Secure):
33 - Cannot decrement the system time
34 - Cannot write to any block device, whether mounted or not
35 - Cannot unmount any mounted filesystems
36
37
38Compilation
39
40To compile the BSD Secure Levels LSM, seclvl.ko, enable the
41SECURITY_SECLVL configuration option. This is found under Security
42options -> BSD Secure Levels in the kernel configuration menu.
43
44
45Basic Usage
46
47Once the machine is in a running state, with all the necessary modules
48loaded and all the filesystems mounted, you can load the seclvl.ko
49module:
50
51# insmod seclvl.ko
52
53The module defaults to secure level 1, except when compiled directly
54into the kernel, in which case it defaults to secure level 0. To raise
55the secure level to 2, the administrator writes ``2'' to the
56seclvl/seclvl file under the sysfs mount point (assumed to be /sys in
57these examples):
58
59# echo -n "2" > /sys/seclvl/seclvl
60
61Alternatively, you can initialize the module at secure level 2 with
62the initlvl module parameter:
63
64# insmod seclvl.ko initlvl=2
65
66At this point, it is impossible to remove the module or reduce the
67secure level. If the administrator wishes to have the option of doing
68so, he must provide a module parameter, sha1_passwd, that specifies
69the SHA1 hash of the password that can be used to reduce the secure
70level to 0.
71
72To generate this SHA1 hash, the administrator can use OpenSSL:
73
74# echo -n "boogabooga" | openssl sha1
75abeda4e0f33defa51741217592bf595efb8d289c
76
77In order to use password-instigated secure level reduction, the SHA1
78crypto module must be loaded or compiled into the kernel:
79
80# insmod sha1.ko
81
82The administrator can then insmod the seclvl module, including the
83SHA1 hash of the password:
84
85# insmod seclvl.ko
86 sha1_passwd=abeda4e0f33defa51741217592bf595efb8d289c
87
88To reduce the secure level, write the password to seclvl/passwd under
89your sysfs mount point:
90
91# echo -n "boogabooga" > /sys/seclvl/passwd
92
93The September 2004 edition of Sys Admin Magazine has an article about
94the BSD Secure Levels LSM. I encourage you to refer to that article
95for a more in-depth treatment of this security module:
96
97http://www.samag.com/documents/s=9304/sam0409a/0409a.htm
diff --git a/Documentation/video4linux/CARDLIST.cx88 b/Documentation/video4linux/CARDLIST.cx88
index 00d9a1f2a54c..669a09aa5bb4 100644
--- a/Documentation/video4linux/CARDLIST.cx88
+++ b/Documentation/video4linux/CARDLIST.cx88
@@ -7,10 +7,10 @@
7 6 -> AverTV Studio 303 (M126) [1461:000b] 7 6 -> AverTV Studio 303 (M126) [1461:000b]
8 7 -> MSI TV-@nywhere Master [1462:8606] 8 7 -> MSI TV-@nywhere Master [1462:8606]
9 8 -> Leadtek Winfast DV2000 [107d:6620] 9 8 -> Leadtek Winfast DV2000 [107d:6620]
10 9 -> Leadtek PVR 2000 [107d:663b,107d:663C] 10 9 -> Leadtek PVR 2000 [107d:663b,107d:663c,107d:6632]
11 10 -> IODATA GV-VCP3/PCI [10fc:d003] 11 10 -> IODATA GV-VCP3/PCI [10fc:d003]
12 11 -> Prolink PlayTV PVR 12 11 -> Prolink PlayTV PVR
13 12 -> ASUS PVR-416 [1043:4823] 13 12 -> ASUS PVR-416 [1043:4823,1461:c111]
14 13 -> MSI TV-@nywhere 14 13 -> MSI TV-@nywhere
15 14 -> KWorld/VStream XPert DVB-T [17de:08a6] 15 14 -> KWorld/VStream XPert DVB-T [17de:08a6]
16 15 -> DViCO FusionHDTV DVB-T1 [18ac:db00] 16 15 -> DViCO FusionHDTV DVB-T1 [18ac:db00]
@@ -51,3 +51,7 @@
51 50 -> NPG Tech Real TV FM Top 10 [14f1:0842] 51 50 -> NPG Tech Real TV FM Top 10 [14f1:0842]
52 51 -> WinFast DTV2000 H [107d:665e] 52 51 -> WinFast DTV2000 H [107d:665e]
53 52 -> Geniatech DVB-S [14f1:0084] 53 52 -> Geniatech DVB-S [14f1:0084]
54 53 -> Hauppauge WinTV-HVR3000 TriMode Analog/DVB-S/DVB-T [0070:1404]
55 54 -> Norwood Micro TV Tuner
56 55 -> Shenzhen Tungsten Ages Tech TE-DTV-250 / Swann OEM [c180:c980]
57 56 -> Hauppauge WinTV-HVR1300 DVB-T/Hybrid MPEG Encoder [0070:9600,0070:9601,0070:9602]
diff --git a/Documentation/video4linux/CARDLIST.saa7134 b/Documentation/video4linux/CARDLIST.saa7134
index 9068b669f5ee..94cf695b1378 100644
--- a/Documentation/video4linux/CARDLIST.saa7134
+++ b/Documentation/video4linux/CARDLIST.saa7134
@@ -58,7 +58,7 @@
58 57 -> Avermedia AVerTV GO 007 FM [1461:f31f] 58 57 -> Avermedia AVerTV GO 007 FM [1461:f31f]
59 58 -> ADS Tech Instant TV (saa7135) [1421:0350,1421:0351,1421:0370,1421:1370] 59 58 -> ADS Tech Instant TV (saa7135) [1421:0350,1421:0351,1421:0370,1421:1370]
60 59 -> Kworld/Tevion V-Stream Xpert TV PVR7134 60 59 -> Kworld/Tevion V-Stream Xpert TV PVR7134
61 60 -> LifeView/Typhoon FlyDVB-T Duo Cardbus [5168:0502,4e42:0502] 61 60 -> LifeView/Typhoon/Genius FlyDVB-T Duo Cardbus [5168:0502,4e42:0502,1489:0502]
62 61 -> Philips TOUGH DVB-T reference design [1131:2004] 62 61 -> Philips TOUGH DVB-T reference design [1131:2004]
63 62 -> Compro VideoMate TV Gold+II 63 62 -> Compro VideoMate TV Gold+II
64 63 -> Kworld Xpert TV PVR7134 64 63 -> Kworld Xpert TV PVR7134
@@ -83,7 +83,7 @@
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] 86 85 -> AverTV DVB-T 777 [1461:2c05,1461:2c05]
87 86 -> LifeView FlyDVB-T / Genius VideoWonder DVB-T [5168:0301,1489:0301] 87 86 -> LifeView FlyDVB-T / Genius VideoWonder DVB-T [5168:0301,1489:0301]
88 87 -> ADS Instant TV Duo Cardbus PTV331 [0331:1421] 88 87 -> ADS Instant TV Duo Cardbus PTV331 [0331:1421]
89 88 -> Tevion/KWorld DVB-T 220RF [17de:7201] 89 88 -> Tevion/KWorld DVB-T 220RF [17de:7201]
@@ -94,3 +94,6 @@
94 93 -> Medion 7134 Bridge #2 [16be:0005] 94 93 -> Medion 7134 Bridge #2 [16be:0005]
95 94 -> LifeView FlyDVB-T Hybrid Cardbus [5168:3306,5168:3502] 95 94 -> LifeView FlyDVB-T Hybrid Cardbus [5168:3306,5168:3502]
96 95 -> LifeView FlyVIDEO3000 (NTSC) [5169:0138] 96 95 -> LifeView FlyVIDEO3000 (NTSC) [5169:0138]
97 96 -> Medion Md8800 Quadro [16be:0007,16be:0008]
98 97 -> LifeView FlyDVB-S /Acorp TV134DS [5168:0300,4e42:0300]
99 98 -> Proteus Pro 2309 [0919:2003]
diff --git a/Documentation/video4linux/bttv/Insmod-options b/Documentation/video4linux/bttv/Insmod-options
index fc94ff235ffa..bb7c2cac7917 100644
--- a/Documentation/video4linux/bttv/Insmod-options
+++ b/Documentation/video4linux/bttv/Insmod-options
@@ -54,6 +54,12 @@ bttv.o
54 dropouts. 54 dropouts.
55 chroma_agc=0/1 AGC of chroma signal, off by default. 55 chroma_agc=0/1 AGC of chroma signal, off by default.
56 adc_crush=0/1 Luminance ADC crush, on by default. 56 adc_crush=0/1 Luminance ADC crush, on by default.
57 i2c_udelay= Allow reduce I2C speed. Default is 5 usecs
58 (meaning 66,67 Kbps). The default is the
59 maximum supported speed by kernel bitbang
60 algoritm. You may use lower numbers, if I2C
61 messages are lost (16 is known to work on
62 all supported cards).
57 63
58 bttv_gpio=0/1 64 bttv_gpio=0/1
59 gpiomask= 65 gpiomask=
diff --git a/Documentation/video4linux/cx2341x/README.hm12 b/Documentation/video4linux/cx2341x/README.hm12
new file mode 100644
index 000000000000..0e213ed095e6
--- /dev/null
+++ b/Documentation/video4linux/cx2341x/README.hm12
@@ -0,0 +1,116 @@
1The cx23416 can produce (and the cx23415 can also read) raw YUV output. The
2format of a YUV frame is specific to this chip and is called HM12. 'HM' stands
3for 'Hauppauge Macroblock', which is a misnomer as 'Conexant Macroblock' would
4be more accurate.
5
6The format is YUV 4:2:0 which uses 1 Y byte per pixel and 1 U and V byte per
7four pixels.
8
9The data is encoded as two macroblock planes, the first containing the Y
10values, the second containing UV macroblocks.
11
12The Y plane is divided into blocks of 16x16 pixels from left to right
13and from top to bottom. Each block is transmitted in turn, line-by-line.
14
15So the first 16 bytes are the first line of the top-left block, the
16second 16 bytes are the second line of the top-left block, etc. After
17transmitting this block the first line of the block on the right to the
18first block is transmitted, etc.
19
20The UV plane is divided into blocks of 16x8 UV values going from left
21to right, top to bottom. Each block is transmitted in turn, line-by-line.
22
23So the first 16 bytes are the first line of the top-left block and
24contain 8 UV value pairs (16 bytes in total). The second 16 bytes are the
25second line of 8 UV pairs of the top-left block, etc. After transmitting
26this block the first line of the block on the right to the first block is
27transmitted, etc.
28
29The code below is given as an example on how to convert HM12 to separate
30Y, U and V planes. This code assumes frames of 720x576 (PAL) pixels.
31
32The width of a frame is always 720 pixels, regardless of the actual specified
33width.
34
35--------------------------------------------------------------------------
36
37#include <stdio.h>
38#include <stdlib.h>
39#include <string.h>
40
41static unsigned char frame[576*720*3/2];
42static unsigned char framey[576*720];
43static unsigned char frameu[576*720 / 4];
44static unsigned char framev[576*720 / 4];
45
46static void de_macro_y(unsigned char* dst, unsigned char *src, int dstride, int w, int h)
47{
48 unsigned int y, x, i;
49
50 // descramble Y plane
51 // dstride = 720 = w
52 // The Y plane is divided into blocks of 16x16 pixels
53 // Each block in transmitted in turn, line-by-line.
54 for (y = 0; y < h; y += 16) {
55 for (x = 0; x < w; x += 16) {
56 for (i = 0; i < 16; i++) {
57 memcpy(dst + x + (y + i) * dstride, src, 16);
58 src += 16;
59 }
60 }
61 }
62}
63
64static void de_macro_uv(unsigned char *dstu, unsigned char *dstv, unsigned char *src, int dstride, int w, int h)
65{
66 unsigned int y, x, i;
67
68 // descramble U/V plane
69 // dstride = 720 / 2 = w
70 // The U/V values are interlaced (UVUV...).
71 // Again, the UV plane is divided into blocks of 16x16 UV values.
72 // Each block in transmitted in turn, line-by-line.
73 for (y = 0; y < h; y += 16) {
74 for (x = 0; x < w; x += 8) {
75 for (i = 0; i < 16; i++) {
76 int idx = x + (y + i) * dstride;
77
78 dstu[idx+0] = src[0]; dstv[idx+0] = src[1];
79 dstu[idx+1] = src[2]; dstv[idx+1] = src[3];
80 dstu[idx+2] = src[4]; dstv[idx+2] = src[5];
81 dstu[idx+3] = src[6]; dstv[idx+3] = src[7];
82 dstu[idx+4] = src[8]; dstv[idx+4] = src[9];
83 dstu[idx+5] = src[10]; dstv[idx+5] = src[11];
84 dstu[idx+6] = src[12]; dstv[idx+6] = src[13];
85 dstu[idx+7] = src[14]; dstv[idx+7] = src[15];
86 src += 16;
87 }
88 }
89 }
90}
91
92/*************************************************************************/
93int main(int argc, char **argv)
94{
95 FILE *fin;
96 int i;
97
98 if (argc == 1) fin = stdin;
99 else fin = fopen(argv[1], "r");
100
101 if (fin == NULL) {
102 fprintf(stderr, "cannot open input\n");
103 exit(-1);
104 }
105 while (fread(frame, sizeof(frame), 1, fin) == 1) {
106 de_macro_y(framey, frame, 720, 720, 576);
107 de_macro_uv(frameu, framev, frame + 720 * 576, 720 / 2, 720 / 2, 576 / 2);
108 fwrite(framey, sizeof(framey), 1, stdout);
109 fwrite(framev, sizeof(framev), 1, stdout);
110 fwrite(frameu, sizeof(frameu), 1, stdout);
111 }
112 fclose(fin);
113 return 0;
114}
115
116--------------------------------------------------------------------------
diff --git a/Documentation/video4linux/cx2341x/README.vbi b/Documentation/video4linux/cx2341x/README.vbi
new file mode 100644
index 000000000000..5807cf156173
--- /dev/null
+++ b/Documentation/video4linux/cx2341x/README.vbi
@@ -0,0 +1,45 @@
1
2Format of embedded V4L2_MPEG_STREAM_VBI_FMT_IVTV VBI data
3=========================================================
4
5This document describes the V4L2_MPEG_STREAM_VBI_FMT_IVTV format of the VBI data
6embedded in an MPEG-2 program stream. This format is in part dictated by some
7hardware limitations of the ivtv driver (the driver for the Conexant cx23415/6
8chips), in particular a maximum size for the VBI data. Anything longer is cut
9off when the MPEG stream is played back through the cx23415.
10
11The advantage of this format is it is very compact and that all VBI data for
12all lines can be stored while still fitting within the maximum allowed size.
13
14The stream ID of the VBI data is 0xBD. The maximum size of the embedded data is
154 + 43 * 36, which is 4 bytes for a header and 2 * 18 VBI lines with a 1 byte
16header and a 42 bytes payload each. Anything beyond this limit is cut off by
17the cx23415/6 firmware. Besides the data for the VBI lines we also need 36 bits
18for a bitmask determining which lines are captured and 4 bytes for a magic cookie,
19signifying that this data package contains V4L2_MPEG_STREAM_VBI_FMT_IVTV VBI data.
20If all lines are used, then there is no longer room for the bitmask. To solve this
21two different magic numbers were introduced:
22
23'itv0': After this magic number two unsigned longs follow. Bits 0-17 of the first
24unsigned long denote which lines of the first field are captured. Bits 18-31 of
25the first unsigned long and bits 0-3 of the second unsigned long are used for the
26second field.
27
28'ITV0': This magic number assumes all VBI lines are captured, i.e. it implicitly
29implies that the bitmasks are 0xffffffff and 0xf.
30
31After these magic cookies (and the 8 byte bitmask in case of cookie 'itv0') the
32captured VBI lines start:
33
34For each line the least significant 4 bits of the first byte contain the data type.
35Possible values are shown in the table below. The payload is in the following 42
36bytes.
37
38Here is the list of possible data types:
39
40#define IVTV_SLICED_TYPE_TELETEXT 0x1 // Teletext (uses lines 6-22 for PAL)
41#define IVTV_SLICED_TYPE_CC 0x4 // Closed Captions (line 21 NTSC)
42#define IVTV_SLICED_TYPE_WSS 0x5 // Wide Screen Signal (line 23 PAL)
43#define IVTV_SLICED_TYPE_VPS 0x7 // Video Programming System (PAL) (line 16)
44
45Hans Verkuil <hverkuil@xs4all.nl>
diff --git a/Documentation/x86_64/boot-options.txt b/Documentation/x86_64/boot-options.txt
index 4303e0c12476..74b77f9e91bc 100644
--- a/Documentation/x86_64/boot-options.txt
+++ b/Documentation/x86_64/boot-options.txt
@@ -199,6 +199,11 @@ IOMMU
199 allowed overwrite iommu off workarounds for specific chipsets. 199 allowed overwrite iommu off workarounds for specific chipsets.
200 soft Use software bounce buffering (default for Intel machines) 200 soft Use software bounce buffering (default for Intel machines)
201 noaperture Don't touch the aperture for AGP. 201 noaperture Don't touch the aperture for AGP.
202 allowdac Allow DMA >4GB
203 When off all DMA over >4GB is forced through an IOMMU or bounce
204 buffering.
205 nodac Forbid DMA >4GB
206 panic Always panic when IOMMU overflows
202 207
203 swiotlb=pages[,force] 208 swiotlb=pages[,force]
204 209