diff options
author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2008-04-01 00:22:26 -0400 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2008-04-01 00:22:26 -0400 |
commit | 399f486286f44d55c4fff0e9cc5d712f2b443489 (patch) | |
tree | 0c2820b3e04232eaa96f08c1057b87728fb3e7a4 /Documentation | |
parent | 481419ec9fbdf3f4ec5389c7e91a81b4a7ebee8d (diff) | |
parent | a9edadbf790d72adf6ebed476cb5caf7743e7e4a (diff) |
Merge master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 into for-linus
Diffstat (limited to 'Documentation')
23 files changed, 222 insertions, 180 deletions
diff --git a/Documentation/00-INDEX b/Documentation/00-INDEX index 042073f656e5..fc8e7c7d182f 100644 --- a/Documentation/00-INDEX +++ b/Documentation/00-INDEX | |||
@@ -225,8 +225,6 @@ kprobes.txt | |||
225 | - documents the kernel probes debugging feature. | 225 | - documents the kernel probes debugging feature. |
226 | kref.txt | 226 | kref.txt |
227 | - docs on adding reference counters (krefs) to kernel objects. | 227 | - docs on adding reference counters (krefs) to kernel objects. |
228 | laptop-mode.txt | ||
229 | - how to conserve battery power using laptop-mode. | ||
230 | laptops/ | 228 | laptops/ |
231 | - directory with laptop related info and laptop driver documentation. | 229 | - directory with laptop related info and laptop driver documentation. |
232 | ldm.txt | 230 | ldm.txt |
@@ -301,12 +299,8 @@ pcmcia/ | |||
301 | - info on the Linux PCMCIA driver. | 299 | - info on the Linux PCMCIA driver. |
302 | pi-futex.txt | 300 | pi-futex.txt |
303 | - documentation on lightweight PI-futexes. | 301 | - documentation on lightweight PI-futexes. |
304 | pm.txt | ||
305 | - info on Linux power management support. | ||
306 | pnp.txt | 302 | pnp.txt |
307 | - Linux Plug and Play documentation. | 303 | - Linux Plug and Play documentation. |
308 | power_supply_class.txt | ||
309 | - Tells userspace about battery, UPS, AC or DC power supply properties | ||
310 | power/ | 304 | power/ |
311 | - directory with info on Linux PCI power management. | 305 | - directory with info on Linux PCI power management. |
312 | powerpc/ | 306 | powerpc/ |
diff --git a/Documentation/acpi/dsdt-override.txt b/Documentation/acpi/dsdt-override.txt index 5008f256a2db..febbb1ba4d23 100644 --- a/Documentation/acpi/dsdt-override.txt +++ b/Documentation/acpi/dsdt-override.txt | |||
@@ -1,15 +1,7 @@ | |||
1 | Linux supports two methods of overriding the BIOS DSDT: | 1 | Linux supports a method of overriding the BIOS DSDT: |
2 | 2 | ||
3 | CONFIG_ACPI_CUSTOM_DSDT builds the image into the kernel. | 3 | CONFIG_ACPI_CUSTOM_DSDT builds the image into the kernel. |
4 | 4 | ||
5 | CONFIG_ACPI_CUSTOM_DSDT_INITRD adds the image to the initrd. | 5 | When to use this method is described in detail on the |
6 | |||
7 | When to use these methods is described in detail on the | ||
8 | Linux/ACPI home page: | 6 | Linux/ACPI home page: |
9 | http://www.lesswatts.org/projects/acpi/overridingDSDT.php | 7 | http://www.lesswatts.org/projects/acpi/overridingDSDT.php |
10 | |||
11 | Note that if both options are used, the DSDT supplied | ||
12 | by the INITRD method takes precedence. | ||
13 | |||
14 | Documentation/initramfs-add-dsdt.sh is provided for convenience | ||
15 | for use with the CONFIG_ACPI_CUSTOM_DSDT_INITRD method. | ||
diff --git a/Documentation/acpi/initramfs-add-dsdt.sh b/Documentation/acpi/initramfs-add-dsdt.sh deleted file mode 100755 index 17ef6e838e14..000000000000 --- a/Documentation/acpi/initramfs-add-dsdt.sh +++ /dev/null | |||
@@ -1,43 +0,0 @@ | |||
1 | #!/bin/bash | ||
2 | # Adds a DSDT file to the initrd (if it's an initramfs) | ||
3 | # first argument is the name of archive | ||
4 | # second argument is the name of the file to add | ||
5 | # The file will be copied as /DSDT.aml | ||
6 | |||
7 | # 20060126: fix "Premature end of file" with some old cpio (Roland Robic) | ||
8 | # 20060205: this time it should really work | ||
9 | |||
10 | # check the arguments | ||
11 | if [ $# -ne 2 ]; then | ||
12 | program_name=$(basename $0) | ||
13 | echo "\ | ||
14 | $program_name: too few arguments | ||
15 | Usage: $program_name initrd-name.img DSDT-to-add.aml | ||
16 | Adds a DSDT file to an initrd (in initramfs format) | ||
17 | |||
18 | initrd-name.img: filename of the initrd in initramfs format | ||
19 | DSDT-to-add.aml: filename of the DSDT file to add | ||
20 | " 1>&2 | ||
21 | exit 1 | ||
22 | fi | ||
23 | |||
24 | # we should check it's an initramfs | ||
25 | |||
26 | tempcpio=$(mktemp -d) | ||
27 | # cleanup on exit, hangup, interrupt, quit, termination | ||
28 | trap 'rm -rf $tempcpio' 0 1 2 3 15 | ||
29 | |||
30 | # extract the archive | ||
31 | gunzip -c "$1" > "$tempcpio"/initramfs.cpio || exit 1 | ||
32 | |||
33 | # copy the DSDT file at the root of the directory so that we can call it "/DSDT.aml" | ||
34 | cp -f "$2" "$tempcpio"/DSDT.aml | ||
35 | |||
36 | # add the file | ||
37 | cd "$tempcpio" | ||
38 | (echo DSDT.aml | cpio --quiet -H newc -o -A -O "$tempcpio"/initramfs.cpio) || exit 1 | ||
39 | cd "$OLDPWD" | ||
40 | |||
41 | # re-compress the archive | ||
42 | gzip -c "$tempcpio"/initramfs.cpio > "$1" | ||
43 | |||
diff --git a/Documentation/fb/cmap_xfbdev.txt b/Documentation/fb/cmap_xfbdev.txt new file mode 100644 index 000000000000..55e1f0a3d2b4 --- /dev/null +++ b/Documentation/fb/cmap_xfbdev.txt | |||
@@ -0,0 +1,53 @@ | |||
1 | Understanding fbdev's cmap | ||
2 | -------------------------- | ||
3 | |||
4 | These notes explain how X's dix layer uses fbdev's cmap structures. | ||
5 | |||
6 | *. example of relevant structures in fbdev as used for a 3-bit grayscale cmap | ||
7 | struct fb_var_screeninfo { | ||
8 | .bits_per_pixel = 8, | ||
9 | .grayscale = 1, | ||
10 | .red = { 4, 3, 0 }, | ||
11 | .green = { 0, 0, 0 }, | ||
12 | .blue = { 0, 0, 0 }, | ||
13 | } | ||
14 | struct fb_fix_screeninfo { | ||
15 | .visual = FB_VISUAL_STATIC_PSEUDOCOLOR, | ||
16 | } | ||
17 | for (i = 0; i < 8; i++) | ||
18 | info->cmap.red[i] = (((2*i)+1)*(0xFFFF))/16; | ||
19 | memcpy(info->cmap.green, info->cmap.red, sizeof(u16)*8); | ||
20 | memcpy(info->cmap.blue, info->cmap.red, sizeof(u16)*8); | ||
21 | |||
22 | *. X11 apps do something like the following when trying to use grayscale. | ||
23 | for (i=0; i < 8; i++) { | ||
24 | char colorspec[64]; | ||
25 | memset(colorspec,0,64); | ||
26 | sprintf(colorspec, "rgb:%x/%x/%x", i*36,i*36,i*36); | ||
27 | if (!XParseColor(outputDisplay, testColormap, colorspec, &wantedColor)) | ||
28 | printf("Can't get color %s\n",colorspec); | ||
29 | XAllocColor(outputDisplay, testColormap, &wantedColor); | ||
30 | grays[i] = wantedColor; | ||
31 | } | ||
32 | There's also named equivalents like gray1..x provided you have an rgb.txt. | ||
33 | |||
34 | Somewhere in X's callchain, this results in a call to X code that handles the | ||
35 | colormap. For example, Xfbdev hits the following: | ||
36 | |||
37 | xc-011010/programs/Xserver/dix/colormap.c: | ||
38 | |||
39 | FindBestPixel(pentFirst, size, prgb, channel) | ||
40 | |||
41 | dr = (long) pent->co.local.red - prgb->red; | ||
42 | dg = (long) pent->co.local.green - prgb->green; | ||
43 | db = (long) pent->co.local.blue - prgb->blue; | ||
44 | sq = dr * dr; | ||
45 | UnsignedToBigNum (sq, &sum); | ||
46 | BigNumAdd (&sum, &temp, &sum); | ||
47 | |||
48 | co.local.red are entries that were brought in through FBIOGETCMAP which come | ||
49 | directly from the info->cmap.red that was listed above. The prgb is the rgb | ||
50 | that the app wants to match to. The above code is doing what looks like a least | ||
51 | squares matching function. That's why the cmap entries can't be set to the left | ||
52 | hand side boundaries of a color range. | ||
53 | |||
diff --git a/Documentation/fb/metronomefb.txt b/Documentation/fb/metronomefb.txt new file mode 100644 index 000000000000..b9a2e7b7e838 --- /dev/null +++ b/Documentation/fb/metronomefb.txt | |||
@@ -0,0 +1,38 @@ | |||
1 | Metronomefb | ||
2 | ----------- | ||
3 | Maintained by Jaya Kumar <jayakumar.lkml.gmail.com> | ||
4 | Last revised: Nov 20, 2007 | ||
5 | |||
6 | Metronomefb is a driver for the Metronome display controller. The controller | ||
7 | is from E-Ink Corporation. It is intended to be used to drive the E-Ink | ||
8 | Vizplex display media. E-Ink hosts some details of this controller and the | ||
9 | display media here http://www.e-ink.com/products/matrix/metronome.html . | ||
10 | |||
11 | Metronome is interfaced to the host CPU through the AMLCD interface. The | ||
12 | host CPU generates the control information and the image in a framebuffer | ||
13 | which is then delivered to the AMLCD interface by a host specific method. | ||
14 | Currently, that's implemented for the PXA's LCDC controller. The display and | ||
15 | error status are each pulled through individual GPIOs. | ||
16 | |||
17 | Metronomefb was written for the PXA255/gumstix/lyre combination and | ||
18 | therefore currently has board set specific code in it. If other boards based on | ||
19 | other architectures are available, then the host specific code can be separated | ||
20 | and abstracted out. | ||
21 | |||
22 | Metronomefb requires waveform information which is delivered via the AMLCD | ||
23 | interface to the metronome controller. The waveform information is expected to | ||
24 | be delivered from userspace via the firmware class interface. The waveform file | ||
25 | can be compressed as long as your udev or hotplug script is aware of the need | ||
26 | to uncompress it before delivering it. metronomefb will ask for waveform.wbf | ||
27 | which would typically go into /lib/firmware/waveform.wbf depending on your | ||
28 | udev/hotplug setup. I have only tested with a single waveform file which was | ||
29 | originally labeled 23P01201_60_WT0107_MTC. I do not know what it stands for. | ||
30 | Caution should be exercised when manipulating the waveform as there may be | ||
31 | a possibility that it could have some permanent effects on the display media. | ||
32 | I neither have access to nor know exactly what the waveform does in terms of | ||
33 | the physical media. | ||
34 | |||
35 | Metronomefb uses the deferred IO interface so that it can provide a memory | ||
36 | mappable frame buffer. It has been tested with tinyx (Xfbdev). It is known | ||
37 | to work at this time with xeyes, xclock, xloadimage, xpdf. | ||
38 | |||
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt index c1d1fd0c299b..bf0e3df8e7a1 100644 --- a/Documentation/feature-removal-schedule.txt +++ b/Documentation/feature-removal-schedule.txt | |||
@@ -172,16 +172,6 @@ Who: Len Brown <len.brown@intel.com> | |||
172 | 172 | ||
173 | --------------------------- | 173 | --------------------------- |
174 | 174 | ||
175 | What: ide-tape driver | ||
176 | When: July 2008 | ||
177 | Files: drivers/ide/ide-tape.c | ||
178 | Why: This driver might not have any users anymore and maintaining it for no | ||
179 | reason is an effort no one wants to make. | ||
180 | Who: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>, Borislav Petkov | ||
181 | <petkovbb@googlemail.com> | ||
182 | |||
183 | --------------------------- | ||
184 | |||
185 | What: libata spindown skipping and warning | 175 | What: libata spindown skipping and warning |
186 | When: Dec 2008 | 176 | When: Dec 2008 |
187 | Why: Some halt(8) implementations synchronize caches for and spin | 177 | Why: Some halt(8) implementations synchronize caches for and spin |
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt index 5681e2fa1496..518ebe609e2b 100644 --- a/Documentation/filesystems/proc.txt +++ b/Documentation/filesystems/proc.txt | |||
@@ -1506,13 +1506,13 @@ laptop_mode | |||
1506 | ----------- | 1506 | ----------- |
1507 | 1507 | ||
1508 | laptop_mode is a knob that controls "laptop mode". All the things that are | 1508 | laptop_mode is a knob that controls "laptop mode". All the things that are |
1509 | controlled by this knob are discussed in Documentation/laptop-mode.txt. | 1509 | controlled by this knob are discussed in Documentation/laptops/laptop-mode.txt. |
1510 | 1510 | ||
1511 | block_dump | 1511 | block_dump |
1512 | ---------- | 1512 | ---------- |
1513 | 1513 | ||
1514 | block_dump enables block I/O debugging when set to a nonzero value. More | 1514 | block_dump enables block I/O debugging when set to a nonzero value. More |
1515 | information on block I/O debugging is in Documentation/laptop-mode.txt. | 1515 | information on block I/O debugging is in Documentation/laptops/laptop-mode.txt. |
1516 | 1516 | ||
1517 | swap_token_timeout | 1517 | swap_token_timeout |
1518 | ------------------ | 1518 | ------------------ |
diff --git a/Documentation/hw_random.txt b/Documentation/hw_random.txt index bb58c36b5845..690f52550c80 100644 --- a/Documentation/hw_random.txt +++ b/Documentation/hw_random.txt | |||
@@ -1,33 +1,26 @@ | |||
1 | Hardware driver for Intel/AMD/VIA Random Number Generators (RNG) | ||
2 | Copyright 2000,2001 Jeff Garzik <jgarzik@pobox.com> | ||
3 | Copyright 2000,2001 Philipp Rumpf <prumpf@mandrakesoft.com> | ||
4 | |||
5 | Introduction: | 1 | Introduction: |
6 | 2 | ||
7 | The hw_random device driver is software that makes use of a | 3 | The hw_random framework is software that makes use of a |
8 | special hardware feature on your CPU or motherboard, | 4 | special hardware feature on your CPU or motherboard, |
9 | a Random Number Generator (RNG). | 5 | a Random Number Generator (RNG). The software has two parts: |
6 | a core providing the /dev/hw_random character device and its | ||
7 | sysfs support, plus a hardware-specific driver that plugs | ||
8 | into that core. | ||
10 | 9 | ||
11 | In order to make effective use of this device driver, you | 10 | To make the most effective use of these mechanisms, you |
12 | should download the support software as well. Download the | 11 | should download the support software as well. Download the |
13 | latest version of the "rng-tools" package from the | 12 | latest version of the "rng-tools" package from the |
14 | hw_random driver's official Web site: | 13 | hw_random driver's official Web site: |
15 | 14 | ||
16 | http://sourceforge.net/projects/gkernel/ | 15 | http://sourceforge.net/projects/gkernel/ |
17 | 16 | ||
18 | About the Intel RNG hardware, from the firmware hub datasheet: | 17 | Those tools use /dev/hw_random to fill the kernel entropy pool, |
19 | 18 | which is used internally and exported by the /dev/urandom and | |
20 | The Firmware Hub integrates a Random Number Generator (RNG) | 19 | /dev/random special files. |
21 | using thermal noise generated from inherently random quantum | ||
22 | mechanical properties of silicon. When not generating new random | ||
23 | bits the RNG circuitry will enter a low power state. Intel will | ||
24 | provide a binary software driver to give third party software | ||
25 | access to our RNG for use as a security feature. At this time, | ||
26 | the RNG is only to be used with a system in an OS-present state. | ||
27 | 20 | ||
28 | Theory of operation: | 21 | Theory of operation: |
29 | 22 | ||
30 | Character driver. Using the standard open() | 23 | CHARACTER DEVICE. Using the standard open() |
31 | and read() system calls, you can read random data from | 24 | and read() system calls, you can read random data from |
32 | the hardware RNG device. This data is NOT CHECKED by any | 25 | the hardware RNG device. This data is NOT CHECKED by any |
33 | fitness tests, and could potentially be bogus (if the | 26 | fitness tests, and could potentially be bogus (if the |
@@ -36,9 +29,37 @@ Theory of operation: | |||
36 | a security-conscious person would run fitness tests on the | 29 | a security-conscious person would run fitness tests on the |
37 | data before assuming it is truly random. | 30 | data before assuming it is truly random. |
38 | 31 | ||
39 | /dev/hwrandom is char device major 10, minor 183. | 32 | The rng-tools package uses such tests in "rngd", and lets you |
33 | run them by hand with a "rngtest" utility. | ||
34 | |||
35 | /dev/hw_random is char device major 10, minor 183. | ||
36 | |||
37 | CLASS DEVICE. There is a /sys/class/misc/hw_random node with | ||
38 | two unique attributes, "rng_available" and "rng_current". The | ||
39 | "rng_available" attribute lists the hardware-specific drivers | ||
40 | available, while "rng_current" lists the one which is currently | ||
41 | connected to /dev/hw_random. If your system has more than one | ||
42 | RNG available, you may change the one used by writing a name from | ||
43 | the list in "rng_available" into "rng_current". | ||
44 | |||
45 | ========================================================================== | ||
46 | |||
47 | Hardware driver for Intel/AMD/VIA Random Number Generators (RNG) | ||
48 | Copyright 2000,2001 Jeff Garzik <jgarzik@pobox.com> | ||
49 | Copyright 2000,2001 Philipp Rumpf <prumpf@mandrakesoft.com> | ||
50 | |||
51 | |||
52 | About the Intel RNG hardware, from the firmware hub datasheet: | ||
53 | |||
54 | The Firmware Hub integrates a Random Number Generator (RNG) | ||
55 | using thermal noise generated from inherently random quantum | ||
56 | mechanical properties of silicon. When not generating new random | ||
57 | bits the RNG circuitry will enter a low power state. Intel will | ||
58 | provide a binary software driver to give third party software | ||
59 | access to our RNG for use as a security feature. At this time, | ||
60 | the RNG is only to be used with a system in an OS-present state. | ||
40 | 61 | ||
41 | Driver notes: | 62 | Intel RNG Driver notes: |
42 | 63 | ||
43 | * FIXME: support poll(2) | 64 | * FIXME: support poll(2) |
44 | 65 | ||
diff --git a/Documentation/i386/IO-APIC.txt b/Documentation/i386/IO-APIC.txt index f95166645d29..30b4c714fbe1 100644 --- a/Documentation/i386/IO-APIC.txt +++ b/Documentation/i386/IO-APIC.txt | |||
@@ -70,7 +70,7 @@ Every PCI card emits a PCI IRQ, which can be INTA, INTB, INTC or INTD: | |||
70 | 70 | ||
71 | These INTA-D PCI IRQs are always 'local to the card', their real meaning | 71 | These INTA-D PCI IRQs are always 'local to the card', their real meaning |
72 | depends on which slot they are in. If you look at the daisy chaining diagram, | 72 | depends on which slot they are in. If you look at the daisy chaining diagram, |
73 | a card in slot4, issuing INTA IRQ, it will end up as a signal on PIRQ2 of | 73 | a card in slot4, issuing INTA IRQ, it will end up as a signal on PIRQ4 of |
74 | the PCI chipset. Most cards issue INTA, this creates optimal distribution | 74 | the PCI chipset. Most cards issue INTA, this creates optimal distribution |
75 | between the PIRQ lines. (distributing IRQ sources properly is not a | 75 | between the PIRQ lines. (distributing IRQ sources properly is not a |
76 | necessity, PCI IRQs can be shared at will, but it's a good for performance | 76 | necessity, PCI IRQs can be shared at will, but it's a good for performance |
diff --git a/Documentation/ide/ide.txt b/Documentation/ide/ide.txt index e3b3425328b6..818676aad45a 100644 --- a/Documentation/ide/ide.txt +++ b/Documentation/ide/ide.txt | |||
@@ -105,7 +105,7 @@ Drives are normally found by auto-probing and/or examining the CMOS/BIOS data. | |||
105 | For really weird situations, the apparent (fdisk) geometry can also be specified | 105 | For really weird situations, the apparent (fdisk) geometry can also be specified |
106 | on the kernel "command line" using LILO. The format of such lines is: | 106 | on the kernel "command line" using LILO. The format of such lines is: |
107 | 107 | ||
108 | hdx=cyls,heads,sects,wpcom,irq | 108 | hdx=cyls,heads,sects |
109 | or hdx=cdrom | 109 | or hdx=cdrom |
110 | 110 | ||
111 | where hdx can be any of hda through hdh, Three values are required | 111 | where hdx can be any of hda through hdh, Three values are required |
@@ -214,9 +214,9 @@ driver using the "options=" keyword to insmod, while replacing any ',' with | |||
214 | Summary of ide driver parameters for kernel command line | 214 | Summary of ide driver parameters for kernel command line |
215 | -------------------------------------------------------- | 215 | -------------------------------------------------------- |
216 | 216 | ||
217 | "hdx=" is recognized for all "x" from "a" to "h", such as "hdc". | 217 | "hdx=" is recognized for all "x" from "a" to "u", such as "hdc". |
218 | 218 | ||
219 | "idex=" is recognized for all "x" from "0" to "3", such as "ide1". | 219 | "idex=" is recognized for all "x" from "0" to "9", such as "ide1". |
220 | 220 | ||
221 | "hdx=noprobe" : drive may be present, but do not probe for it | 221 | "hdx=noprobe" : drive may be present, but do not probe for it |
222 | 222 | ||
@@ -228,13 +228,6 @@ Summary of ide driver parameters for kernel command line | |||
228 | 228 | ||
229 | "hdx=cyl,head,sect" : disk drive is present, with specified geometry | 229 | "hdx=cyl,head,sect" : disk drive is present, with specified geometry |
230 | 230 | ||
231 | "hdx=remap" : remap access of sector 0 to sector 1 (for EZDrive) | ||
232 | |||
233 | "hdx=remap63" : remap the drive: add 63 to all sector numbers | ||
234 | (for DM OnTrack) | ||
235 | |||
236 | "idex=noautotune" : driver will NOT attempt to tune interface speed | ||
237 | |||
238 | "hdx=autotune" : driver will attempt to tune interface speed | 231 | "hdx=autotune" : driver will attempt to tune interface speed |
239 | to the fastest PIO mode supported, | 232 | to the fastest PIO mode supported, |
240 | if possible for this drive only. | 233 | if possible for this drive only. |
@@ -244,10 +237,6 @@ Summary of ide driver parameters for kernel command line | |||
244 | 237 | ||
245 | "hdx=nodma" : disallow DMA | 238 | "hdx=nodma" : disallow DMA |
246 | 239 | ||
247 | "hdx=scsi" : the return of the ide-scsi flag, this is useful for | ||
248 | allowing ide-floppy, ide-tape, and ide-cdrom|writers | ||
249 | to use ide-scsi emulation on a device specific option. | ||
250 | |||
251 | "idebus=xx" : inform IDE driver of VESA/PCI bus speed in MHz, | 240 | "idebus=xx" : inform IDE driver of VESA/PCI bus speed in MHz, |
252 | where "xx" is between 20 and 66 inclusive, | 241 | where "xx" is between 20 and 66 inclusive, |
253 | used when tuning chipset PIO modes. | 242 | used when tuning chipset PIO modes. |
@@ -282,10 +271,6 @@ Summary of ide driver parameters for kernel command line | |||
282 | 271 | ||
283 | "ide=reverse" : formerly called to pci sub-system, but now local. | 272 | "ide=reverse" : formerly called to pci sub-system, but now local. |
284 | 273 | ||
285 | The following are valid ONLY on ide0, which usually corresponds | ||
286 | to the first ATA interface found on the particular host, and the defaults for | ||
287 | the base,ctl ports must not be altered. | ||
288 | |||
289 | "ide=doubler" : probe/support IDE doublers on Amiga | 274 | "ide=doubler" : probe/support IDE doublers on Amiga |
290 | 275 | ||
291 | There may be more options than shown -- use the source, Luke! | 276 | There may be more options than shown -- use the source, Luke! |
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 09118a045942..508e2a2c9864 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -138,7 +138,7 @@ and is between 256 and 4096 characters. It is defined in the file | |||
138 | strict -- Be less tolerant of platforms that are not | 138 | strict -- Be less tolerant of platforms that are not |
139 | strictly ACPI specification compliant. | 139 | strictly ACPI specification compliant. |
140 | 140 | ||
141 | See also Documentation/pm.txt, pci=noacpi | 141 | See also Documentation/power/pm.txt, pci=noacpi |
142 | 142 | ||
143 | acpi_apic_instance= [ACPI, IOAPIC] | 143 | acpi_apic_instance= [ACPI, IOAPIC] |
144 | Format: <int> | 144 | Format: <int> |
@@ -177,9 +177,6 @@ and is between 256 and 4096 characters. It is defined in the file | |||
177 | 177 | ||
178 | acpi_no_auto_ssdt [HW,ACPI] Disable automatic loading of SSDT | 178 | acpi_no_auto_ssdt [HW,ACPI] Disable automatic loading of SSDT |
179 | 179 | ||
180 | acpi_no_initrd_override [KNL,ACPI] | ||
181 | Disable loading custom ACPI tables from the initramfs | ||
182 | |||
183 | acpi_os_name= [HW,ACPI] Tell ACPI BIOS the name of the OS | 180 | acpi_os_name= [HW,ACPI] Tell ACPI BIOS the name of the OS |
184 | Format: To spoof as Windows 98: ="Microsoft Windows" | 181 | Format: To spoof as Windows 98: ="Microsoft Windows" |
185 | 182 | ||
@@ -1133,6 +1130,10 @@ and is between 256 and 4096 characters. It is defined in the file | |||
1133 | memmap=nn[KMG]$ss[KMG] | 1130 | memmap=nn[KMG]$ss[KMG] |
1134 | [KNL,ACPI] Mark specific memory as reserved. | 1131 | [KNL,ACPI] Mark specific memory as reserved. |
1135 | Region of memory to be used, from ss to ss+nn. | 1132 | Region of memory to be used, from ss to ss+nn. |
1133 | Example: Exclude memory from 0x18690000-0x1869ffff | ||
1134 | memmap=64K$0x18690000 | ||
1135 | or | ||
1136 | memmap=0x10000$0x18690000 | ||
1136 | 1137 | ||
1137 | meye.*= [HW] Set MotionEye Camera parameters | 1138 | meye.*= [HW] Set MotionEye Camera parameters |
1138 | See Documentation/video4linux/meye.txt. | 1139 | See Documentation/video4linux/meye.txt. |
diff --git a/Documentation/laptops/00-INDEX b/Documentation/laptops/00-INDEX index 729c2c062e10..ee5692b26dd4 100644 --- a/Documentation/laptops/00-INDEX +++ b/Documentation/laptops/00-INDEX | |||
@@ -2,6 +2,8 @@ | |||
2 | - This file | 2 | - This file |
3 | acer-wmi.txt | 3 | acer-wmi.txt |
4 | - information on the Acer Laptop WMI Extras driver. | 4 | - information on the Acer Laptop WMI Extras driver. |
5 | laptop-mode.txt | ||
6 | - how to conserve battery power using laptop-mode. | ||
5 | sony-laptop.txt | 7 | sony-laptop.txt |
6 | - Sony Notebook Control Driver (SNC) Readme. | 8 | - Sony Notebook Control Driver (SNC) Readme. |
7 | sonypi.txt | 9 | sonypi.txt |
diff --git a/Documentation/laptops/acer-wmi.txt b/Documentation/laptops/acer-wmi.txt index b06696329cff..23df051dbf69 100644 --- a/Documentation/laptops/acer-wmi.txt +++ b/Documentation/laptops/acer-wmi.txt | |||
@@ -48,7 +48,7 @@ DSDT. | |||
48 | 48 | ||
49 | To send me the DSDT, as root/sudo: | 49 | To send me the DSDT, as root/sudo: |
50 | 50 | ||
51 | cat /sys/firmware/acpi/DSDT > dsdt | 51 | cat /sys/firmware/acpi/tables/DSDT > dsdt |
52 | 52 | ||
53 | And send me the resulting 'dsdt' file. | 53 | And send me the resulting 'dsdt' file. |
54 | 54 | ||
@@ -169,7 +169,7 @@ can be added to acer-wmi. | |||
169 | 169 | ||
170 | The LED is exposed through the LED subsystem, and can be found in: | 170 | The LED is exposed through the LED subsystem, and can be found in: |
171 | 171 | ||
172 | /sys/devices/platform/acer-wmi/leds/acer-mail:green/ | 172 | /sys/devices/platform/acer-wmi/leds/acer-wmi::mail/ |
173 | 173 | ||
174 | The mail LED is autodetected, so if you don't have one, the LED device won't | 174 | The mail LED is autodetected, so if you don't have one, the LED device won't |
175 | be registered. | 175 | be registered. |
diff --git a/Documentation/laptop-mode.txt b/Documentation/laptops/laptop-mode.txt index eeedee11c8c2..eeedee11c8c2 100644 --- a/Documentation/laptop-mode.txt +++ b/Documentation/laptops/laptop-mode.txt | |||
diff --git a/Documentation/lguest/lguest.c b/Documentation/lguest/lguest.c index bec5a32e4095..4c1fc65a8b3d 100644 --- a/Documentation/lguest/lguest.c +++ b/Documentation/lguest/lguest.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /*P:100 This is the Launcher code, a simple program which lays out the | 1 | /*P:100 This is the Launcher code, a simple program which lays out the |
2 | * "physical" memory for the new Guest by mapping the kernel image and the | 2 | * "physical" memory for the new Guest by mapping the kernel image and |
3 | * virtual devices, then reads repeatedly from /dev/lguest to run the Guest. | 3 | * the virtual devices, then opens /dev/lguest to tell the kernel |
4 | :*/ | 4 | * about the Guest and control it. :*/ |
5 | #define _LARGEFILE64_SOURCE | 5 | #define _LARGEFILE64_SOURCE |
6 | #define _GNU_SOURCE | 6 | #define _GNU_SOURCE |
7 | #include <stdio.h> | 7 | #include <stdio.h> |
@@ -43,7 +43,7 @@ | |||
43 | #include "linux/virtio_console.h" | 43 | #include "linux/virtio_console.h" |
44 | #include "linux/virtio_ring.h" | 44 | #include "linux/virtio_ring.h" |
45 | #include "asm-x86/bootparam.h" | 45 | #include "asm-x86/bootparam.h" |
46 | /*L:110 We can ignore the 38 include files we need for this program, but I do | 46 | /*L:110 We can ignore the 39 include files we need for this program, but I do |
47 | * want to draw attention to the use of kernel-style types. | 47 | * want to draw attention to the use of kernel-style types. |
48 | * | 48 | * |
49 | * As Linus said, "C is a Spartan language, and so should your naming be." I | 49 | * As Linus said, "C is a Spartan language, and so should your naming be." I |
@@ -320,7 +320,7 @@ static unsigned long map_elf(int elf_fd, const Elf32_Ehdr *ehdr) | |||
320 | err(1, "Reading program headers"); | 320 | err(1, "Reading program headers"); |
321 | 321 | ||
322 | /* Try all the headers: there are usually only three. A read-only one, | 322 | /* Try all the headers: there are usually only three. A read-only one, |
323 | * a read-write one, and a "note" section which isn't loadable. */ | 323 | * a read-write one, and a "note" section which we don't load. */ |
324 | for (i = 0; i < ehdr->e_phnum; i++) { | 324 | for (i = 0; i < ehdr->e_phnum; i++) { |
325 | /* If this isn't a loadable segment, we ignore it */ | 325 | /* If this isn't a loadable segment, we ignore it */ |
326 | if (phdr[i].p_type != PT_LOAD) | 326 | if (phdr[i].p_type != PT_LOAD) |
@@ -387,7 +387,7 @@ static unsigned long load_kernel(int fd) | |||
387 | if (memcmp(hdr.e_ident, ELFMAG, SELFMAG) == 0) | 387 | if (memcmp(hdr.e_ident, ELFMAG, SELFMAG) == 0) |
388 | return map_elf(fd, &hdr); | 388 | return map_elf(fd, &hdr); |
389 | 389 | ||
390 | /* Otherwise we assume it's a bzImage, and try to unpack it */ | 390 | /* Otherwise we assume it's a bzImage, and try to load it. */ |
391 | return load_bzimage(fd); | 391 | return load_bzimage(fd); |
392 | } | 392 | } |
393 | 393 | ||
@@ -433,12 +433,12 @@ static unsigned long load_initrd(const char *name, unsigned long mem) | |||
433 | return len; | 433 | return len; |
434 | } | 434 | } |
435 | 435 | ||
436 | /* Once we know how much memory we have, we can construct simple linear page | 436 | /* Once we know how much memory we have we can construct simple linear page |
437 | * tables which set virtual == physical which will get the Guest far enough | 437 | * tables which set virtual == physical which will get the Guest far enough |
438 | * into the boot to create its own. | 438 | * into the boot to create its own. |
439 | * | 439 | * |
440 | * We lay them out of the way, just below the initrd (which is why we need to | 440 | * We lay them out of the way, just below the initrd (which is why we need to |
441 | * know its size). */ | 441 | * know its size here). */ |
442 | static unsigned long setup_pagetables(unsigned long mem, | 442 | static unsigned long setup_pagetables(unsigned long mem, |
443 | unsigned long initrd_size) | 443 | unsigned long initrd_size) |
444 | { | 444 | { |
@@ -850,7 +850,8 @@ static void handle_console_output(int fd, struct virtqueue *vq) | |||
850 | * | 850 | * |
851 | * Handling output for network is also simple: we get all the output buffers | 851 | * Handling output for network is also simple: we get all the output buffers |
852 | * and write them (ignoring the first element) to this device's file descriptor | 852 | * and write them (ignoring the first element) to this device's file descriptor |
853 | * (stdout). */ | 853 | * (/dev/net/tun). |
854 | */ | ||
854 | static void handle_net_output(int fd, struct virtqueue *vq) | 855 | static void handle_net_output(int fd, struct virtqueue *vq) |
855 | { | 856 | { |
856 | unsigned int head, out, in; | 857 | unsigned int head, out, in; |
@@ -924,7 +925,7 @@ static void enable_fd(int fd, struct virtqueue *vq) | |||
924 | write(waker_fd, &vq->dev->fd, sizeof(vq->dev->fd)); | 925 | write(waker_fd, &vq->dev->fd, sizeof(vq->dev->fd)); |
925 | } | 926 | } |
926 | 927 | ||
927 | /* Resetting a device is fairly easy. */ | 928 | /* When the Guest asks us to reset a device, it's is fairly easy. */ |
928 | static void reset_device(struct device *dev) | 929 | static void reset_device(struct device *dev) |
929 | { | 930 | { |
930 | struct virtqueue *vq; | 931 | struct virtqueue *vq; |
@@ -1003,8 +1004,8 @@ static void handle_input(int fd) | |||
1003 | if (select(devices.max_infd+1, &fds, NULL, NULL, &poll) == 0) | 1004 | if (select(devices.max_infd+1, &fds, NULL, NULL, &poll) == 0) |
1004 | break; | 1005 | break; |
1005 | 1006 | ||
1006 | /* Otherwise, call the device(s) which have readable | 1007 | /* Otherwise, call the device(s) which have readable file |
1007 | * file descriptors and a method of handling them. */ | 1008 | * descriptors and a method of handling them. */ |
1008 | for (i = devices.dev; i; i = i->next) { | 1009 | for (i = devices.dev; i; i = i->next) { |
1009 | if (i->handle_input && FD_ISSET(i->fd, &fds)) { | 1010 | if (i->handle_input && FD_ISSET(i->fd, &fds)) { |
1010 | int dev_fd; | 1011 | int dev_fd; |
@@ -1015,8 +1016,7 @@ static void handle_input(int fd) | |||
1015 | * should no longer service it. Networking and | 1016 | * should no longer service it. Networking and |
1016 | * console do this when there's no input | 1017 | * console do this when there's no input |
1017 | * buffers to deliver into. Console also uses | 1018 | * buffers to deliver into. Console also uses |
1018 | * it when it discovers that stdin is | 1019 | * it when it discovers that stdin is closed. */ |
1019 | * closed. */ | ||
1020 | FD_CLR(i->fd, &devices.infds); | 1020 | FD_CLR(i->fd, &devices.infds); |
1021 | /* Tell waker to ignore it too, by sending a | 1021 | /* Tell waker to ignore it too, by sending a |
1022 | * negative fd number (-1, since 0 is a valid | 1022 | * negative fd number (-1, since 0 is a valid |
@@ -1033,7 +1033,8 @@ static void handle_input(int fd) | |||
1033 | * | 1033 | * |
1034 | * All devices need a descriptor so the Guest knows it exists, and a "struct | 1034 | * All devices need a descriptor so the Guest knows it exists, and a "struct |
1035 | * device" so the Launcher can keep track of it. We have common helper | 1035 | * device" so the Launcher can keep track of it. We have common helper |
1036 | * routines to allocate and manage them. */ | 1036 | * routines to allocate and manage them. |
1037 | */ | ||
1037 | 1038 | ||
1038 | /* The layout of the device page is a "struct lguest_device_desc" followed by a | 1039 | /* The layout of the device page is a "struct lguest_device_desc" followed by a |
1039 | * number of virtqueue descriptors, then two sets of feature bits, then an | 1040 | * number of virtqueue descriptors, then two sets of feature bits, then an |
@@ -1078,7 +1079,7 @@ static void add_virtqueue(struct device *dev, unsigned int num_descs, | |||
1078 | struct virtqueue **i, *vq = malloc(sizeof(*vq)); | 1079 | struct virtqueue **i, *vq = malloc(sizeof(*vq)); |
1079 | void *p; | 1080 | void *p; |
1080 | 1081 | ||
1081 | /* First we need some pages for this virtqueue. */ | 1082 | /* First we need some memory for this virtqueue. */ |
1082 | pages = (vring_size(num_descs, getpagesize()) + getpagesize() - 1) | 1083 | pages = (vring_size(num_descs, getpagesize()) + getpagesize() - 1) |
1083 | / getpagesize(); | 1084 | / getpagesize(); |
1084 | p = get_pages(pages); | 1085 | p = get_pages(pages); |
@@ -1122,7 +1123,7 @@ static void add_virtqueue(struct device *dev, unsigned int num_descs, | |||
1122 | } | 1123 | } |
1123 | 1124 | ||
1124 | /* The first half of the feature bitmask is for us to advertise features. The | 1125 | /* The first half of the feature bitmask is for us to advertise features. The |
1125 | * second half if for the Guest to accept features. */ | 1126 | * second half is for the Guest to accept features. */ |
1126 | static void add_feature(struct device *dev, unsigned bit) | 1127 | static void add_feature(struct device *dev, unsigned bit) |
1127 | { | 1128 | { |
1128 | u8 *features = get_feature_bits(dev); | 1129 | u8 *features = get_feature_bits(dev); |
@@ -1151,7 +1152,9 @@ static void set_config(struct device *dev, unsigned len, const void *conf) | |||
1151 | } | 1152 | } |
1152 | 1153 | ||
1153 | /* This routine does all the creation and setup of a new device, including | 1154 | /* This routine does all the creation and setup of a new device, including |
1154 | * calling new_dev_desc() to allocate the descriptor and device memory. */ | 1155 | * calling new_dev_desc() to allocate the descriptor and device memory. |
1156 | * | ||
1157 | * See what I mean about userspace being boring? */ | ||
1155 | static struct device *new_device(const char *name, u16 type, int fd, | 1158 | static struct device *new_device(const char *name, u16 type, int fd, |
1156 | bool (*handle_input)(int, struct device *)) | 1159 | bool (*handle_input)(int, struct device *)) |
1157 | { | 1160 | { |
@@ -1383,7 +1386,6 @@ struct vblk_info | |||
1383 | * Launcher triggers interrupt to Guest. */ | 1386 | * Launcher triggers interrupt to Guest. */ |
1384 | int done_fd; | 1387 | int done_fd; |
1385 | }; | 1388 | }; |
1386 | /*:*/ | ||
1387 | 1389 | ||
1388 | /*L:210 | 1390 | /*L:210 |
1389 | * The Disk | 1391 | * The Disk |
@@ -1493,7 +1495,10 @@ static int io_thread(void *_dev) | |||
1493 | while (read(vblk->workpipe[0], &c, 1) == 1) { | 1495 | while (read(vblk->workpipe[0], &c, 1) == 1) { |
1494 | /* We acknowledge each request immediately to reduce latency, | 1496 | /* We acknowledge each request immediately to reduce latency, |
1495 | * rather than waiting until we've done them all. I haven't | 1497 | * rather than waiting until we've done them all. I haven't |
1496 | * measured to see if it makes any difference. */ | 1498 | * measured to see if it makes any difference. |
1499 | * | ||
1500 | * That would be an interesting test, wouldn't it? You could | ||
1501 | * also try having more than one I/O thread. */ | ||
1497 | while (service_io(dev)) | 1502 | while (service_io(dev)) |
1498 | write(vblk->done_fd, &c, 1); | 1503 | write(vblk->done_fd, &c, 1); |
1499 | } | 1504 | } |
@@ -1501,7 +1506,7 @@ static int io_thread(void *_dev) | |||
1501 | } | 1506 | } |
1502 | 1507 | ||
1503 | /* Now we've seen the I/O thread, we return to the Launcher to see what happens | 1508 | /* Now we've seen the I/O thread, we return to the Launcher to see what happens |
1504 | * when the thread tells us it's completed some I/O. */ | 1509 | * when that thread tells us it's completed some I/O. */ |
1505 | static bool handle_io_finish(int fd, struct device *dev) | 1510 | static bool handle_io_finish(int fd, struct device *dev) |
1506 | { | 1511 | { |
1507 | char c; | 1512 | char c; |
@@ -1573,11 +1578,12 @@ static void setup_block_file(const char *filename) | |||
1573 | * more work. */ | 1578 | * more work. */ |
1574 | pipe(vblk->workpipe); | 1579 | pipe(vblk->workpipe); |
1575 | 1580 | ||
1576 | /* Create stack for thread and run it */ | 1581 | /* Create stack for thread and run it. Since stack grows upwards, we |
1582 | * point the stack pointer to the end of this region. */ | ||
1577 | stack = malloc(32768); | 1583 | stack = malloc(32768); |
1578 | /* SIGCHLD - We dont "wait" for our cloned thread, so prevent it from | 1584 | /* SIGCHLD - We dont "wait" for our cloned thread, so prevent it from |
1579 | * becoming a zombie. */ | 1585 | * becoming a zombie. */ |
1580 | if (clone(io_thread, stack + 32768, CLONE_VM | SIGCHLD, dev) == -1) | 1586 | if (clone(io_thread, stack + 32768, CLONE_VM | SIGCHLD, dev) == -1) |
1581 | err(1, "Creating clone"); | 1587 | err(1, "Creating clone"); |
1582 | 1588 | ||
1583 | /* We don't need to keep the I/O thread's end of the pipes open. */ | 1589 | /* We don't need to keep the I/O thread's end of the pipes open. */ |
@@ -1587,14 +1593,14 @@ static void setup_block_file(const char *filename) | |||
1587 | verbose("device %u: virtblock %llu sectors\n", | 1593 | verbose("device %u: virtblock %llu sectors\n", |
1588 | devices.device_num, le64_to_cpu(conf.capacity)); | 1594 | devices.device_num, le64_to_cpu(conf.capacity)); |
1589 | } | 1595 | } |
1590 | /* That's the end of device setup. :*/ | 1596 | /* That's the end of device setup. */ |
1591 | 1597 | ||
1592 | /* Reboot */ | 1598 | /*L:230 Reboot is pretty easy: clean up and exec() the Launcher afresh. */ |
1593 | static void __attribute__((noreturn)) restart_guest(void) | 1599 | static void __attribute__((noreturn)) restart_guest(void) |
1594 | { | 1600 | { |
1595 | unsigned int i; | 1601 | unsigned int i; |
1596 | 1602 | ||
1597 | /* Closing pipes causes the waker thread and io_threads to die, and | 1603 | /* Closing pipes causes the Waker thread and io_threads to die, and |
1598 | * closing /dev/lguest cleans up the Guest. Since we don't track all | 1604 | * closing /dev/lguest cleans up the Guest. Since we don't track all |
1599 | * open fds, we simply close everything beyond stderr. */ | 1605 | * open fds, we simply close everything beyond stderr. */ |
1600 | for (i = 3; i < FD_SETSIZE; i++) | 1606 | for (i = 3; i < FD_SETSIZE; i++) |
@@ -1603,7 +1609,7 @@ static void __attribute__((noreturn)) restart_guest(void) | |||
1603 | err(1, "Could not exec %s", main_args[0]); | 1609 | err(1, "Could not exec %s", main_args[0]); |
1604 | } | 1610 | } |
1605 | 1611 | ||
1606 | /*L:220 Finally we reach the core of the Launcher, which runs the Guest, serves | 1612 | /*L:220 Finally we reach the core of the Launcher which runs the Guest, serves |
1607 | * its input and output, and finally, lays it to rest. */ | 1613 | * its input and output, and finally, lays it to rest. */ |
1608 | static void __attribute__((noreturn)) run_guest(int lguest_fd) | 1614 | static void __attribute__((noreturn)) run_guest(int lguest_fd) |
1609 | { | 1615 | { |
@@ -1644,7 +1650,7 @@ static void __attribute__((noreturn)) run_guest(int lguest_fd) | |||
1644 | err(1, "Resetting break"); | 1650 | err(1, "Resetting break"); |
1645 | } | 1651 | } |
1646 | } | 1652 | } |
1647 | /* | 1653 | /*L:240 |
1648 | * This is the end of the Launcher. The good news: we are over halfway | 1654 | * This is the end of the Launcher. The good news: we are over halfway |
1649 | * through! The bad news: the most fiendish part of the code still lies ahead | 1655 | * through! The bad news: the most fiendish part of the code still lies ahead |
1650 | * of us. | 1656 | * of us. |
@@ -1691,8 +1697,8 @@ int main(int argc, char *argv[]) | |||
1691 | * device receive input from a file descriptor, we keep an fdset | 1697 | * device receive input from a file descriptor, we keep an fdset |
1692 | * (infds) and the maximum fd number (max_infd) with the head of the | 1698 | * (infds) and the maximum fd number (max_infd) with the head of the |
1693 | * list. We also keep a pointer to the last device. Finally, we keep | 1699 | * list. We also keep a pointer to the last device. Finally, we keep |
1694 | * the next interrupt number to hand out (1: remember that 0 is used by | 1700 | * the next interrupt number to use for devices (1: remember that 0 is |
1695 | * the timer). */ | 1701 | * used by the timer). */ |
1696 | FD_ZERO(&devices.infds); | 1702 | FD_ZERO(&devices.infds); |
1697 | devices.max_infd = -1; | 1703 | devices.max_infd = -1; |
1698 | devices.lastdev = NULL; | 1704 | devices.lastdev = NULL; |
@@ -1793,8 +1799,8 @@ int main(int argc, char *argv[]) | |||
1793 | lguest_fd = tell_kernel(pgdir, start); | 1799 | lguest_fd = tell_kernel(pgdir, start); |
1794 | 1800 | ||
1795 | /* We fork off a child process, which wakes the Launcher whenever one | 1801 | /* We fork off a child process, which wakes the Launcher whenever one |
1796 | * of the input file descriptors needs attention. Otherwise we would | 1802 | * of the input file descriptors needs attention. We call this the |
1797 | * run the Guest until it tries to output something. */ | 1803 | * Waker, and we'll cover it in a moment. */ |
1798 | waker_fd = setup_waker(lguest_fd); | 1804 | waker_fd = setup_waker(lguest_fd); |
1799 | 1805 | ||
1800 | /* Finally, run the Guest. This doesn't return. */ | 1806 | /* Finally, run the Guest. This doesn't return. */ |
diff --git a/Documentation/lguest/lguest.txt b/Documentation/lguest/lguest.txt index 722d4e7fbebe..29510dc51510 100644 --- a/Documentation/lguest/lguest.txt +++ b/Documentation/lguest/lguest.txt | |||
@@ -1,6 +1,7 @@ | |||
1 | Rusty's Remarkably Unreliable Guide to Lguest | 1 | __ |
2 | - or, A Young Coder's Illustrated Hypervisor | 2 | (___()'`; Rusty's Remarkably Unreliable Guide to Lguest |
3 | http://lguest.ozlabs.org | 3 | /, /` - or, A Young Coder's Illustrated Hypervisor |
4 | \\"--\\ http://lguest.ozlabs.org | ||
4 | 5 | ||
5 | Lguest is designed to be a minimal hypervisor for the Linux kernel, for | 6 | Lguest is designed to be a minimal hypervisor for the Linux kernel, for |
6 | Linux developers and users to experiment with virtualization with the | 7 | Linux developers and users to experiment with virtualization with the |
@@ -41,12 +42,16 @@ Running Lguest: | |||
41 | CONFIG_PHYSICAL_ALIGN=0x100000) | 42 | CONFIG_PHYSICAL_ALIGN=0x100000) |
42 | 43 | ||
43 | "Device Drivers": | 44 | "Device Drivers": |
45 | "Block devices" | ||
46 | "Virtio block driver (EXPERIMENTAL)" = M/Y | ||
44 | "Network device support" | 47 | "Network device support" |
45 | "Universal TUN/TAP device driver support" = M/Y | 48 | "Universal TUN/TAP device driver support" = M/Y |
46 | (CONFIG_TUN=m) | 49 | "Virtio network driver (EXPERIMENTAL)" = M/Y |
47 | "Virtualization" | 50 | (CONFIG_VIRTIO_BLK=m, CONFIG_VIRTIO_NET=m and CONFIG_TUN=m) |
48 | "Linux hypervisor example code" = M/Y | 51 | |
49 | (CONFIG_LGUEST=m) | 52 | "Virtualization" |
53 | "Linux hypervisor example code" = M/Y | ||
54 | (CONFIG_LGUEST=m) | ||
50 | 55 | ||
51 | - A tool called "lguest" is available in this directory: type "make" | 56 | - A tool called "lguest" is available in this directory: type "make" |
52 | to build it. If you didn't build your kernel in-tree, use "make | 57 | to build it. If you didn't build your kernel in-tree, use "make |
diff --git a/Documentation/mca.txt b/Documentation/mca.txt index aabce4ad90f9..510375d4209a 100644 --- a/Documentation/mca.txt +++ b/Documentation/mca.txt | |||
@@ -143,14 +143,7 @@ MCA Device Drivers | |||
143 | 143 | ||
144 | Currently, there are a number of MCA-specific device drivers. | 144 | Currently, there are a number of MCA-specific device drivers. |
145 | 145 | ||
146 | 1) PS/2 ESDI | 146 | 1) PS/2 SCSI |
147 | drivers/block/ps2esdi.c | ||
148 | include/linux/ps2esdi.h | ||
149 | Uses major number 36, and should use /dev files /dev/eda, /dev/edb. | ||
150 | Supports two drives, but only one controller. May use the | ||
151 | command-line args "ed=cyl,head,sec" and "tp720". | ||
152 | |||
153 | 2) PS/2 SCSI | ||
154 | drivers/scsi/ibmmca.c | 147 | drivers/scsi/ibmmca.c |
155 | drivers/scsi/ibmmca.h | 148 | drivers/scsi/ibmmca.h |
156 | The driver for the IBM SCSI subsystem. Includes both integrated | 149 | The driver for the IBM SCSI subsystem. Includes both integrated |
@@ -159,25 +152,25 @@ Currently, there are a number of MCA-specific device drivers. | |||
159 | machine with a front-panel display (i.e. model 95), you can use | 152 | machine with a front-panel display (i.e. model 95), you can use |
160 | "ibmmcascsi=display" to enable a drive activity indicator. | 153 | "ibmmcascsi=display" to enable a drive activity indicator. |
161 | 154 | ||
162 | 3) 3c523 | 155 | 2) 3c523 |
163 | drivers/net/3c523.c | 156 | drivers/net/3c523.c |
164 | drivers/net/3c523.h | 157 | drivers/net/3c523.h |
165 | 3Com 3c523 Etherlink/MC ethernet driver. | 158 | 3Com 3c523 Etherlink/MC ethernet driver. |
166 | 159 | ||
167 | 4) SMC Ultra/MCA and IBM Adapter/A | 160 | 3) SMC Ultra/MCA and IBM Adapter/A |
168 | drivers/net/smc-mca.c | 161 | drivers/net/smc-mca.c |
169 | drivers/net/smc-mca.h | 162 | drivers/net/smc-mca.h |
170 | Driver for the MCA version of the SMC Ultra and various other | 163 | Driver for the MCA version of the SMC Ultra and various other |
171 | OEM'ed and work-alike cards (Elite, Adapter/A, etc). | 164 | OEM'ed and work-alike cards (Elite, Adapter/A, etc). |
172 | 165 | ||
173 | 5) NE/2 | 166 | 4) NE/2 |
174 | driver/net/ne2.c | 167 | driver/net/ne2.c |
175 | driver/net/ne2.h | 168 | driver/net/ne2.h |
176 | The NE/2 is the MCA version of the NE2000. This may not work | 169 | The NE/2 is the MCA version of the NE2000. This may not work |
177 | with clones that have a different adapter id than the original | 170 | with clones that have a different adapter id than the original |
178 | NE/2. | 171 | NE/2. |
179 | 172 | ||
180 | 6) Future Domain MCS-600/700, OEM'd IBM Fast SCSI Adapter/A and | 173 | 5) Future Domain MCS-600/700, OEM'd IBM Fast SCSI Adapter/A and |
181 | Reply Sound Blaster/SCSI (SCSI part) | 174 | Reply Sound Blaster/SCSI (SCSI part) |
182 | Better support for these cards than the driver for ISA. | 175 | Better support for these cards than the driver for ISA. |
183 | Supports multiple cards with IRQ sharing. | 176 | Supports multiple cards with IRQ sharing. |
diff --git a/Documentation/nmi_watchdog.txt b/Documentation/nmi_watchdog.txt index c025a4561c10..757c729ee42e 100644 --- a/Documentation/nmi_watchdog.txt +++ b/Documentation/nmi_watchdog.txt | |||
@@ -23,8 +23,7 @@ kernel debugging options, such as Kernel Stack Meter or Kernel Tracer, | |||
23 | may implicitly disable the NMI watchdog.] | 23 | may implicitly disable the NMI watchdog.] |
24 | 24 | ||
25 | For x86-64, the needed APIC is always compiled in, and the NMI watchdog is | 25 | For x86-64, the needed APIC is always compiled in, and the NMI watchdog is |
26 | always enabled with I/O-APIC mode (nmi_watchdog=1). Currently, local APIC | 26 | always enabled with I/O-APIC mode (nmi_watchdog=1). |
27 | mode (nmi_watchdog=2) does not work on x86-64. | ||
28 | 27 | ||
29 | Using local APIC (nmi_watchdog=2) needs the first performance register, so | 28 | Using local APIC (nmi_watchdog=2) needs the first performance register, so |
30 | you can't use it for other purposes (such as high precision performance | 29 | you can't use it for other purposes (such as high precision performance |
diff --git a/Documentation/power/00-INDEX b/Documentation/power/00-INDEX index 8db4e41a052d..a55d7f1c836d 100644 --- a/Documentation/power/00-INDEX +++ b/Documentation/power/00-INDEX | |||
@@ -14,6 +14,12 @@ notifiers.txt | |||
14 | - Registering suspend notifiers in device drivers | 14 | - Registering suspend notifiers in device drivers |
15 | pci.txt | 15 | pci.txt |
16 | - How the PCI Subsystem Does Power Management | 16 | - How the PCI Subsystem Does Power Management |
17 | pm.txt | ||
18 | - info on Linux power management support. | ||
19 | pm_qos_interface.txt | ||
20 | - info on Linux PM Quality of Service interface | ||
21 | power_supply_class.txt | ||
22 | - Tells userspace about battery, UPS, AC or DC power supply properties | ||
17 | s2ram.txt | 23 | s2ram.txt |
18 | - How to get suspend to ram working (and debug it when it isn't) | 24 | - How to get suspend to ram working (and debug it when it isn't) |
19 | states.txt | 25 | states.txt |
diff --git a/Documentation/pm.txt b/Documentation/power/pm.txt index da8589a0e07d..be841507e43f 100644 --- a/Documentation/pm.txt +++ b/Documentation/power/pm.txt | |||
@@ -108,7 +108,7 @@ void pm_unregister_all(pm_callback cback); | |||
108 | * EINVAL if the request is not supported | 108 | * EINVAL if the request is not supported |
109 | * EBUSY if the device is now busy and cannot handle the request | 109 | * EBUSY if the device is now busy and cannot handle the request |
110 | * ENOMEM if the device was unable to handle the request due to memory | 110 | * ENOMEM if the device was unable to handle the request due to memory |
111 | * | 111 | * |
112 | * Details: The device request callback will be called before the | 112 | * Details: The device request callback will be called before the |
113 | * device/system enters a suspend state (ACPI D1-D3) or | 113 | * device/system enters a suspend state (ACPI D1-D3) or |
114 | * or after the device/system resumes from suspend (ACPI D0). | 114 | * or after the device/system resumes from suspend (ACPI D0). |
diff --git a/Documentation/pm_qos_interface.txt b/Documentation/power/pm_qos_interface.txt index 49adb1a33514..49adb1a33514 100644 --- a/Documentation/pm_qos_interface.txt +++ b/Documentation/power/pm_qos_interface.txt | |||
diff --git a/Documentation/power_supply_class.txt b/Documentation/power/power_supply_class.txt index a8686e5a6857..a8686e5a6857 100644 --- a/Documentation/power_supply_class.txt +++ b/Documentation/power/power_supply_class.txt | |||
diff --git a/Documentation/thermal/sysfs-api.txt b/Documentation/thermal/sysfs-api.txt index ba9c2da5a8c2..d9f28be75403 100644 --- a/Documentation/thermal/sysfs-api.txt +++ b/Documentation/thermal/sysfs-api.txt | |||
@@ -143,10 +143,10 @@ type Strings which represent the thermal zone type. | |||
143 | This is given by thermal zone driver as part of registration. | 143 | This is given by thermal zone driver as part of registration. |
144 | Eg: "ACPI thermal zone" indicates it's a ACPI thermal device | 144 | Eg: "ACPI thermal zone" indicates it's a ACPI thermal device |
145 | RO | 145 | RO |
146 | Optional | 146 | Required |
147 | 147 | ||
148 | temp Current temperature as reported by thermal zone (sensor) | 148 | temp Current temperature as reported by thermal zone (sensor) |
149 | Unit: degree Celsius | 149 | Unit: millidegree Celsius |
150 | RO | 150 | RO |
151 | Required | 151 | Required |
152 | 152 | ||
@@ -163,7 +163,7 @@ mode One of the predefined values in [kernel, user] | |||
163 | charge of the thermal management. | 163 | charge of the thermal management. |
164 | 164 | ||
165 | trip_point_[0-*]_temp The temperature above which trip point will be fired | 165 | trip_point_[0-*]_temp The temperature above which trip point will be fired |
166 | Unit: degree Celsius | 166 | Unit: millidegree Celsius |
167 | RO | 167 | RO |
168 | Optional | 168 | Optional |
169 | 169 | ||
@@ -193,7 +193,7 @@ type String which represents the type of device | |||
193 | eg. For memory controller device on intel_menlow platform: | 193 | eg. For memory controller device on intel_menlow platform: |
194 | this should be "Memory controller" | 194 | this should be "Memory controller" |
195 | RO | 195 | RO |
196 | Optional | 196 | Required |
197 | 197 | ||
198 | max_state The maximum permissible cooling state of this cooling device. | 198 | max_state The maximum permissible cooling state of this cooling device. |
199 | RO | 199 | RO |
@@ -219,16 +219,16 @@ the sys I/F structure will be built like this: | |||
219 | 219 | ||
220 | |thermal_zone1: | 220 | |thermal_zone1: |
221 | |-----type: ACPI thermal zone | 221 | |-----type: ACPI thermal zone |
222 | |-----temp: 37 | 222 | |-----temp: 37000 |
223 | |-----mode: kernel | 223 | |-----mode: kernel |
224 | |-----trip_point_0_temp: 100 | 224 | |-----trip_point_0_temp: 100000 |
225 | |-----trip_point_0_type: critical | 225 | |-----trip_point_0_type: critical |
226 | |-----trip_point_1_temp: 80 | 226 | |-----trip_point_1_temp: 80000 |
227 | |-----trip_point_1_type: passive | 227 | |-----trip_point_1_type: passive |
228 | |-----trip_point_2_temp: 70 | 228 | |-----trip_point_2_temp: 70000 |
229 | |-----trip_point_2_type: active[0] | 229 | |-----trip_point_2_type: active0 |
230 | |-----trip_point_3_temp: 60 | 230 | |-----trip_point_3_temp: 60000 |
231 | |-----trip_point_3_type: active[1] | 231 | |-----trip_point_3_type: active1 |
232 | |-----cdev0: --->/sys/class/thermal/cooling_device0 | 232 | |-----cdev0: --->/sys/class/thermal/cooling_device0 |
233 | |-----cdev0_trip_point: 1 /* cdev0 can be used for passive */ | 233 | |-----cdev0_trip_point: 1 /* cdev0 can be used for passive */ |
234 | |-----cdev1: --->/sys/class/thermal/cooling_device3 | 234 | |-----cdev1: --->/sys/class/thermal/cooling_device3 |