aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/00-INDEX6
-rw-r--r--Documentation/DMA-API.txt3
-rw-r--r--Documentation/DocBook/Makefile2
-rw-r--r--Documentation/DocBook/deviceiobook.tmpl2
-rw-r--r--Documentation/DocBook/kernel-api.tmpl18
-rw-r--r--Documentation/DocBook/kernel-hacking.tmpl4
-rw-r--r--Documentation/DocBook/mcabook.tmpl2
-rw-r--r--Documentation/DocBook/mtdnand.tmpl5
-rw-r--r--Documentation/DocBook/s390-drivers.tmpl149
-rw-r--r--Documentation/MSI-HOWTO.txt69
-rw-r--r--Documentation/feature-removal-schedule.txt14
-rw-r--r--Documentation/filesystems/00-INDEX4
-rw-r--r--Documentation/filesystems/locks.txt (renamed from Documentation/locks.txt)10
-rw-r--r--Documentation/filesystems/mandatory-locking.txt (renamed from Documentation/mandatory.txt)21
-rw-r--r--Documentation/filesystems/ntfs.txt4
-rw-r--r--Documentation/hwmon/coretemp2
-rw-r--r--Documentation/hwmon/dme173733
-rw-r--r--Documentation/hwmon/f71805f7
-rw-r--r--Documentation/hwmon/it873
-rw-r--r--Documentation/hwmon/lm7810
-rw-r--r--Documentation/hwmon/lm93126
-rw-r--r--Documentation/hwmon/sysfs-interface131
-rw-r--r--Documentation/hwmon/w83791d96
-rw-r--r--Documentation/i2c/busses/i2c-i8013
-rw-r--r--Documentation/i2c/chips/pcf85748
-rw-r--r--Documentation/i2c/dev-interface11
-rw-r--r--Documentation/i2c/i2c-stub18
-rw-r--r--Documentation/ja_JP/HOWTO84
-rw-r--r--Documentation/kernel-parameters.txt37
-rw-r--r--Documentation/kobject.txt22
-rw-r--r--Documentation/networking/bonding.txt33
-rw-r--r--Documentation/networking/proc_net_tcp.txt5
-rw-r--r--Documentation/s390/00-INDEX26
-rw-r--r--Documentation/s390/CommonIO51
-rw-r--r--Documentation/s390/cds.txt8
-rw-r--r--Documentation/sched-design-CFS.txt67
-rw-r--r--Documentation/scsi/00-INDEX34
-rw-r--r--Documentation/scsi/ChangeLog.arcmsr17
-rw-r--r--Documentation/scsi/aacraid.txt8
-rw-r--r--Documentation/scsi/advansys.txt243
-rw-r--r--Documentation/sparc/sbus_drivers.txt4
-rw-r--r--Documentation/usb/authorization.txt92
-rw-r--r--Documentation/usb/power-management.txt517
-rw-r--r--Documentation/usb/usb-serial.txt11
-rw-r--r--Documentation/usb/usbmon.txt9
45 files changed, 1586 insertions, 443 deletions
diff --git a/Documentation/00-INDEX b/Documentation/00-INDEX
index 43e89b1537d9..cc10ce7dc339 100644
--- a/Documentation/00-INDEX
+++ b/Documentation/00-INDEX
@@ -145,7 +145,7 @@ fb/
145feature-removal-schedule.txt 145feature-removal-schedule.txt
146 - list of files and features that are going to be removed. 146 - list of files and features that are going to be removed.
147filesystems/ 147filesystems/
148 - directory with info on the various filesystems that Linux supports. 148 - info on the vfs and the various filesystems that Linux supports.
149firmware_class/ 149firmware_class/
150 - request_firmware() hotplug interface info. 150 - request_firmware() hotplug interface info.
151floppy.txt 151floppy.txt
@@ -230,8 +230,6 @@ local_ops.txt
230 - semantics and behavior of local atomic operations. 230 - semantics and behavior of local atomic operations.
231lockdep-design.txt 231lockdep-design.txt
232 - documentation on the runtime locking correctness validator. 232 - documentation on the runtime locking correctness validator.
233locks.txt
234 - info on file locking implementations, flock() vs. fcntl(), etc.
235logo.gif 233logo.gif
236 - full colour GIF image of Linux logo (penguin - Tux). 234 - full colour GIF image of Linux logo (penguin - Tux).
237logo.txt 235logo.txt
@@ -240,8 +238,6 @@ m68k/
240 - directory with info about Linux on Motorola 68k architecture. 238 - directory with info about Linux on Motorola 68k architecture.
241magic-number.txt 239magic-number.txt
242 - list of magic numbers used to mark/protect kernel data structures. 240 - list of magic numbers used to mark/protect kernel data structures.
243mandatory.txt
244 - info on the Linux implementation of Sys V mandatory file locking.
245mca.txt 241mca.txt
246 - info on supporting Micro Channel Architecture (e.g. PS/2) systems. 242 - info on supporting Micro Channel Architecture (e.g. PS/2) systems.
247md.txt 243md.txt
diff --git a/Documentation/DMA-API.txt b/Documentation/DMA-API.txt
index cc7a8c39fb6f..b939ebb62871 100644
--- a/Documentation/DMA-API.txt
+++ b/Documentation/DMA-API.txt
@@ -68,6 +68,9 @@ size and dma_handle must all be the same as those passed into the
68consistent allocate. cpu_addr must be the virtual address returned by 68consistent allocate. cpu_addr must be the virtual address returned by
69the consistent allocate. 69the consistent allocate.
70 70
71Note that unlike their sibling allocation calls, these routines
72may only be called with IRQs enabled.
73
71 74
72Part Ib - Using small dma-coherent buffers 75Part Ib - Using small dma-coherent buffers
73------------------------------------------ 76------------------------------------------
diff --git a/Documentation/DocBook/Makefile b/Documentation/DocBook/Makefile
index 08687e45e19d..1a7f53068ec2 100644
--- a/Documentation/DocBook/Makefile
+++ b/Documentation/DocBook/Makefile
@@ -11,7 +11,7 @@ DOCBOOKS := wanbook.xml z8530book.xml mcabook.xml videobook.xml \
11 procfs-guide.xml writing_usb_driver.xml \ 11 procfs-guide.xml writing_usb_driver.xml \
12 kernel-api.xml filesystems.xml lsm.xml usb.xml \ 12 kernel-api.xml filesystems.xml lsm.xml usb.xml \
13 gadget.xml libata.xml mtdnand.xml librs.xml rapidio.xml \ 13 gadget.xml libata.xml mtdnand.xml librs.xml rapidio.xml \
14 genericirq.xml 14 genericirq.xml s390-drivers.xml
15 15
16### 16###
17# The build process is as follows (targets): 17# The build process is as follows (targets):
diff --git a/Documentation/DocBook/deviceiobook.tmpl b/Documentation/DocBook/deviceiobook.tmpl
index c917de681ccd..361c884d860d 100644
--- a/Documentation/DocBook/deviceiobook.tmpl
+++ b/Documentation/DocBook/deviceiobook.tmpl
@@ -316,7 +316,7 @@ CPU B: spin_unlock_irqrestore(&dev_lock, flags)
316 316
317 <chapter id="pubfunctions"> 317 <chapter id="pubfunctions">
318 <title>Public Functions Provided</title> 318 <title>Public Functions Provided</title>
319!Iinclude/asm-i386/io.h 319!Iinclude/asm-x86/io_32.h
320!Elib/iomap.c 320!Elib/iomap.c
321 </chapter> 321 </chapter>
322 322
diff --git a/Documentation/DocBook/kernel-api.tmpl b/Documentation/DocBook/kernel-api.tmpl
index e5da4f2b7c22..230cbf753782 100644
--- a/Documentation/DocBook/kernel-api.tmpl
+++ b/Documentation/DocBook/kernel-api.tmpl
@@ -45,8 +45,8 @@
45 </sect1> 45 </sect1>
46 46
47 <sect1><title>Atomic and pointer manipulation</title> 47 <sect1><title>Atomic and pointer manipulation</title>
48!Iinclude/asm-i386/atomic.h 48!Iinclude/asm-x86/atomic_32.h
49!Iinclude/asm-i386/unaligned.h 49!Iinclude/asm-x86/unaligned_32.h
50 </sect1> 50 </sect1>
51 51
52 <sect1><title>Delaying, scheduling, and timer routines</title> 52 <sect1><title>Delaying, scheduling, and timer routines</title>
@@ -119,7 +119,7 @@ X!Ilib/string.c
119!Elib/string.c 119!Elib/string.c
120 </sect1> 120 </sect1>
121 <sect1><title>Bit Operations</title> 121 <sect1><title>Bit Operations</title>
122!Iinclude/asm-i386/bitops.h 122!Iinclude/asm-x86/bitops_32.h
123 </sect1> 123 </sect1>
124 </chapter> 124 </chapter>
125 125
@@ -155,8 +155,8 @@ X!Ilib/string.c
155!Emm/slab.c 155!Emm/slab.c
156 </sect1> 156 </sect1>
157 <sect1><title>User Space Memory Access</title> 157 <sect1><title>User Space Memory Access</title>
158!Iinclude/asm-i386/uaccess.h 158!Iinclude/asm-x86/uaccess_32.h
159!Earch/i386/lib/usercopy.c 159!Earch/x86/lib/usercopy_32.c
160 </sect1> 160 </sect1>
161 <sect1><title>More Memory Management Functions</title> 161 <sect1><title>More Memory Management Functions</title>
162!Emm/readahead.c 162!Emm/readahead.c
@@ -293,7 +293,7 @@ X!Ekernel/module.c
293 </sect1> 293 </sect1>
294 294
295 <sect1><title>MTRR Handling</title> 295 <sect1><title>MTRR Handling</title>
296!Earch/i386/kernel/cpu/mtrr/main.c 296!Earch/x86/kernel/cpu/mtrr/main.c
297 </sect1> 297 </sect1>
298 298
299 <sect1><title>PCI Support Library</title> 299 <sect1><title>PCI Support Library</title>
@@ -316,14 +316,14 @@ X!Edrivers/pci/hotplug.c
316 <sect1><title>MCA Architecture</title> 316 <sect1><title>MCA Architecture</title>
317 <sect2><title>MCA Device Functions</title> 317 <sect2><title>MCA Device Functions</title>
318 <para> 318 <para>
319 Refer to the file arch/i386/kernel/mca.c for more information. 319 Refer to the file arch/x86/kernel/mca_32.c for more information.
320 </para> 320 </para>
321<!-- FIXME: Removed for now since no structured comments in source 321<!-- FIXME: Removed for now since no structured comments in source
322X!Earch/i386/kernel/mca.c 322X!Earch/x86/kernel/mca_32.c
323--> 323-->
324 </sect2> 324 </sect2>
325 <sect2><title>MCA Bus DMA</title> 325 <sect2><title>MCA Bus DMA</title>
326!Iinclude/asm-i386/mca_dma.h 326!Iinclude/asm-x86/mca_dma.h
327 </sect2> 327 </sect2>
328 </sect1> 328 </sect1>
329 </chapter> 329 </chapter>
diff --git a/Documentation/DocBook/kernel-hacking.tmpl b/Documentation/DocBook/kernel-hacking.tmpl
index 582032eea872..4c63e5864160 100644
--- a/Documentation/DocBook/kernel-hacking.tmpl
+++ b/Documentation/DocBook/kernel-hacking.tmpl
@@ -1239,7 +1239,7 @@ static struct block_device_operations opt_fops = {
1239 </para> 1239 </para>
1240 1240
1241 <para> 1241 <para>
1242 <filename>include/asm-i386/delay.h:</filename> 1242 <filename>include/asm-x86/delay_32.h:</filename>
1243 </para> 1243 </para>
1244 <programlisting> 1244 <programlisting>
1245#define ndelay(n) (__builtin_constant_p(n) ? \ 1245#define ndelay(n) (__builtin_constant_p(n) ? \
@@ -1265,7 +1265,7 @@ static struct block_device_operations opt_fops = {
1265</programlisting> 1265</programlisting>
1266 1266
1267 <para> 1267 <para>
1268 <filename>include/asm-i386/uaccess.h:</filename> 1268 <filename>include/asm-x86/uaccess_32.h:</filename>
1269 </para> 1269 </para>
1270 1270
1271 <programlisting> 1271 <programlisting>
diff --git a/Documentation/DocBook/mcabook.tmpl b/Documentation/DocBook/mcabook.tmpl
index 42a760cd7467..529a53dc1389 100644
--- a/Documentation/DocBook/mcabook.tmpl
+++ b/Documentation/DocBook/mcabook.tmpl
@@ -101,7 +101,7 @@
101 101
102 <chapter id="dmafunctions"> 102 <chapter id="dmafunctions">
103 <title>DMA Functions Provided</title> 103 <title>DMA Functions Provided</title>
104!Iinclude/asm-i386/mca_dma.h 104!Iinclude/asm-x86/mca_dma.h
105 </chapter> 105 </chapter>
106 106
107</book> 107</book>
diff --git a/Documentation/DocBook/mtdnand.tmpl b/Documentation/DocBook/mtdnand.tmpl
index a8c8cce50633..6fbc41d98c1e 100644
--- a/Documentation/DocBook/mtdnand.tmpl
+++ b/Documentation/DocBook/mtdnand.tmpl
@@ -275,16 +275,13 @@ int __init board_init (void)
275 int err = 0; 275 int err = 0;
276 276
277 /* Allocate memory for MTD device structure and private data */ 277 /* Allocate memory for MTD device structure and private data */
278 board_mtd = kmalloc (sizeof(struct mtd_info) + sizeof (struct nand_chip), GFP_KERNEL); 278 board_mtd = kzalloc(sizeof(struct mtd_info) + sizeof(struct nand_chip), GFP_KERNEL);
279 if (!board_mtd) { 279 if (!board_mtd) {
280 printk ("Unable to allocate NAND MTD device structure.\n"); 280 printk ("Unable to allocate NAND MTD device structure.\n");
281 err = -ENOMEM; 281 err = -ENOMEM;
282 goto out; 282 goto out;
283 } 283 }
284 284
285 /* Initialize structures */
286 memset ((char *) board_mtd, 0, sizeof(struct mtd_info) + sizeof(struct nand_chip));
287
288 /* map physical adress */ 285 /* map physical adress */
289 baseaddr = (unsigned long)ioremap(CHIP_PHYSICAL_ADDRESS, 1024); 286 baseaddr = (unsigned long)ioremap(CHIP_PHYSICAL_ADDRESS, 1024);
290 if(!baseaddr){ 287 if(!baseaddr){
diff --git a/Documentation/DocBook/s390-drivers.tmpl b/Documentation/DocBook/s390-drivers.tmpl
new file mode 100644
index 000000000000..254e769282a4
--- /dev/null
+++ b/Documentation/DocBook/s390-drivers.tmpl
@@ -0,0 +1,149 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
3 "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []>
4
5<book id="s390drivers">
6 <bookinfo>
7 <title>Writing s390 channel device drivers</title>
8
9 <authorgroup>
10 <author>
11 <firstname>Cornelia</firstname>
12 <surname>Huck</surname>
13 <affiliation>
14 <address>
15 <email>cornelia.huck@de.ibm.com</email>
16 </address>
17 </affiliation>
18 </author>
19 </authorgroup>
20
21 <copyright>
22 <year>2007</year>
23 <holder>IBM Corp.</holder>
24 </copyright>
25
26 <legalnotice>
27 <para>
28 This documentation is free software; you can redistribute
29 it and/or modify it under the terms of the GNU General Public
30 License as published by the Free Software Foundation; either
31 version 2 of the License, or (at your option) any later
32 version.
33 </para>
34
35 <para>
36 This program is distributed in the hope that it will be
37 useful, but WITHOUT ANY WARRANTY; without even the implied
38 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
39 See the GNU General Public License for more details.
40 </para>
41
42 <para>
43 You should have received a copy of the GNU General Public
44 License along with this program; if not, write to the Free
45 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
46 MA 02111-1307 USA
47 </para>
48
49 <para>
50 For more details see the file COPYING in the source
51 distribution of Linux.
52 </para>
53 </legalnotice>
54 </bookinfo>
55
56<toc></toc>
57
58 <chapter id="intro">
59 <title>Introduction</title>
60 <para>
61 This document describes the interfaces available for device drivers that
62 drive s390 based channel attached devices. This includes interfaces for
63 interaction with the hardware and interfaces for interacting with the
64 common driver core. Those interfaces are provided by the s390 common I/O
65 layer.
66 </para>
67 <para>
68 The document assumes a familarity with the technical terms associated
69 with the s390 channel I/O architecture. For a description of this
70 architecture, please refer to the "z/Architecture: Principles of
71 Operation", IBM publication no. SA22-7832.
72 </para>
73 <para>
74 While most I/O devices on a s390 system are typically driven through the
75 channel I/O mechanism described here, there are various other methods
76 (like the diag interface). These are out of the scope of this document.
77 </para>
78 <para>
79 Some additional information can also be found in the kernel source
80 under Documentation/s390/driver-model.txt.
81 </para>
82 </chapter>
83 <chapter id="ccw">
84 <title>The ccw bus</title>
85 <para>
86 The ccw bus typically contains the majority of devices available to
87 a s390 system. Named after the channel command word (ccw), the basic
88 command structure used to address its devices, the ccw bus contains
89 so-called channel attached devices. They are addressed via subchannels,
90 visible on the css bus. A device driver, however, will never interact
91 with the subchannel directly, but only via the device on the ccw bus,
92 the ccw device.
93 </para>
94 <sect1 id="channelIO">
95 <title>I/O functions for channel-attached devices</title>
96 <para>
97 Some hardware structures have been translated into C structures for use
98 by the common I/O layer and device drivers. For more information on
99 the hardware structures represented here, please consult the Principles
100 of Operation.
101 </para>
102!Iinclude/asm-s390/cio.h
103 </sect1>
104 <sect1 id="ccwdev">
105 <title>ccw devices</title>
106 <para>
107 Devices that want to initiate channel I/O need to attach to the ccw bus.
108 Interaction with the driver core is done via the common I/O layer, which
109 provides the abstractions of ccw devices and ccw device drivers.
110 </para>
111 <para>
112 The functions that initiate or terminate channel I/O all act upon a
113 ccw device structure. Device drivers must not bypass those functions
114 or strange side effects may happen.
115 </para>
116!Iinclude/asm-s390/ccwdev.h
117!Edrivers/s390/cio/device.c
118!Edrivers/s390/cio/device_ops.c
119 </sect1>
120 <sect1 id="cmf">
121 <title>The channel-measurement facility</title>
122 <para>
123 The channel-measurement facility provides a means to collect
124 measurement data which is made available by the channel subsystem
125 for each channel attached device.
126 </para>
127!Iinclude/asm-s390/cmb.h
128!Edrivers/s390/cio/cmf.c
129 </sect1>
130 </chapter>
131
132 <chapter id="ccwgroup">
133 <title>The ccwgroup bus</title>
134 <para>
135 The ccwgroup bus only contains artificial devices, created by the user.
136 Many networking devices (e.g. qeth) are in fact composed of several
137 ccw devices (like read, write and data channel for qeth). The
138 ccwgroup bus provides a mechanism to create a meta-device which
139 contains those ccw devices as slave devices and can be associated
140 with the netdevice.
141 </para>
142 <sect1 id="ccwgroupdevices">
143 <title>ccw group devices</title>
144!Iinclude/asm-s390/ccwgroup.h
145!Edrivers/s390/cio/ccwgroup.c
146 </sect1>
147 </chapter>
148
149</book>
diff --git a/Documentation/MSI-HOWTO.txt b/Documentation/MSI-HOWTO.txt
index 0d8240774fca..a51f693c1541 100644
--- a/Documentation/MSI-HOWTO.txt
+++ b/Documentation/MSI-HOWTO.txt
@@ -241,68 +241,7 @@ address space of the MSI-X table/MSI-X PBA. Otherwise, the PCI subsystem
241will fail enabling MSI-X on its hardware device when it calls the function 241will fail enabling MSI-X on its hardware device when it calls the function
242pci_enable_msix(). 242pci_enable_msix().
243 243
2445.3.2 Handling MSI-X allocation 2445.3.2 API pci_enable_msix
245
246Determining the number of MSI-X vectors allocated to a function is
247dependent on the number of MSI capable devices and MSI-X capable
248devices populated in the system. The policy of allocating MSI-X
249vectors to a function is defined as the following:
250
251#of MSI-X vectors allocated to a function = (x - y)/z where
252
253x = The number of available PCI vector resources by the time
254 the device driver calls pci_enable_msix(). The PCI vector
255 resources is the sum of the number of unassigned vectors
256 (new) and the number of released vectors when any MSI/MSI-X
257 device driver switches its hardware device back to a legacy
258 mode or is hot-removed. The number of unassigned vectors
259 may exclude some vectors reserved, as defined in parameter
260 NR_HP_RESERVED_VECTORS, for the case where the system is
261 capable of supporting hot-add/hot-remove operations. Users
262 may change the value defined in NR_HR_RESERVED_VECTORS to
263 meet their specific needs.
264
265y = The number of MSI capable devices populated in the system.
266 This policy ensures that each MSI capable device has its
267 vector reserved to avoid the case where some MSI-X capable
268 drivers may attempt to claim all available vector resources.
269
270z = The number of MSI-X capable devices populated in the system.
271 This policy ensures that maximum (x - y) is distributed
272 evenly among MSI-X capable devices.
273
274Note that the PCI subsystem scans y and z during a bus enumeration.
275When the PCI subsystem completes configuring MSI/MSI-X capability
276structure of a device as requested by its device driver, y/z is
277decremented accordingly.
278
2795.3.3 Handling MSI-X shortages
280
281For the case where fewer MSI-X vectors are allocated to a function
282than requested, the function pci_enable_msix() will return the
283maximum number of MSI-X vectors available to the caller. A device
284driver may re-send its request with fewer or equal vectors indicated
285in the return. For example, if a device driver requests 5 vectors, but
286the number of available vectors is 3 vectors, a value of 3 will be
287returned as a result of pci_enable_msix() call. A function could be
288designed for its driver to use only 3 MSI-X table entries as
289different combinations as ABC--, A-B-C, A--CB, etc. Note that this
290patch does not support multiple entries with the same vector. Such
291attempt by a device driver to use 5 MSI-X table entries with 3 vectors
292as ABBCC, AABCC, BCCBA, etc will result as a failure by the function
293pci_enable_msix(). Below are the reasons why supporting multiple
294entries with the same vector is an undesirable solution.
295
296 - The PCI subsystem cannot determine the entry that
297 generated the message to mask/unmask MSI while handling
298 software driver ISR. Attempting to walk through all MSI-X
299 table entries (2048 max) to mask/unmask any match vector
300 is an undesirable solution.
301
302 - Walking through all MSI-X table entries (2048 max) to handle
303 SMP affinity of any match vector is an undesirable solution.
304
3055.3.4 API pci_enable_msix
306 245
307int pci_enable_msix(struct pci_dev *dev, struct msix_entry *entries, int nvec) 246int pci_enable_msix(struct pci_dev *dev, struct msix_entry *entries, int nvec)
308 247
@@ -339,7 +278,7 @@ a failure. This failure may be a result of duplicate entries
339specified in second argument, or a result of no available vector, 278specified in second argument, or a result of no available vector,
340or a result of failing to initialize MSI-X table entries. 279or a result of failing to initialize MSI-X table entries.
341 280
3425.3.5 API pci_disable_msix 2815.3.3 API pci_disable_msix
343 282
344void pci_disable_msix(struct pci_dev *dev) 283void pci_disable_msix(struct pci_dev *dev)
345 284
@@ -349,7 +288,7 @@ always call free_irq() on all MSI-X vectors it has done request_irq()
349on before calling this API. Failure to do so results in a BUG_ON() and 288on before calling this API. Failure to do so results in a BUG_ON() and
350a device will be left with MSI-X enabled and leaks its vectors. 289a device will be left with MSI-X enabled and leaks its vectors.
351 290
3525.3.6 MSI-X mode vs. legacy mode diagram 2915.3.4 MSI-X mode vs. legacy mode diagram
353 292
354The below diagram shows the events which switch the interrupt 293The below diagram shows the events which switch the interrupt
355mode on the MSI-X capable device function between MSI-X mode and 294mode on the MSI-X capable device function between MSI-X mode and
@@ -407,7 +346,7 @@ between MSI mod MSI-X mode during a run-time.
407MSI/MSI-X support requires support from both system hardware and 346MSI/MSI-X support requires support from both system hardware and
408individual hardware device functions. 347individual hardware device functions.
409 348
4105.5.1 System hardware support 3495.5.1 Required x86 hardware support
411 350
412Since the target of MSI address is the local APIC CPU, enabling 351Since the target of MSI address is the local APIC CPU, enabling
413MSI/MSI-X support in the Linux kernel is dependent on whether existing 352MSI/MSI-X support in the Linux kernel is dependent on whether existing
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt
index 63df2262d41a..fb8258ebc577 100644
--- a/Documentation/feature-removal-schedule.txt
+++ b/Documentation/feature-removal-schedule.txt
@@ -205,20 +205,6 @@ Who: Len Brown <len.brown@intel.com>
205 205
206--------------------------- 206---------------------------
207 207
208What: Compaq touchscreen device emulation
209When: Oct 2007
210Files: drivers/input/tsdev.c
211Why: The code says it was obsolete when it was written in 2001.
212 tslib is a userspace library which does anything tsdev can do and
213 much more besides in userspace where this code belongs. There is no
214 longer any need for tsdev and applications should have converted to
215 use tslib by now.
216 The name "tsdev" is also extremely confusing and lots of people have
217 it loaded when they don't need/use it.
218Who: Richard Purdie <rpurdie@rpsys.net>
219
220---------------------------
221
222What: i2c-ixp2000, i2c-ixp4xx and scx200_i2c drivers 208What: i2c-ixp2000, i2c-ixp4xx and scx200_i2c drivers
223When: September 2007 209When: September 2007
224Why: Obsolete. The new i2c-gpio driver replaces all hardware-specific 210Why: Obsolete. The new i2c-gpio driver replaces all hardware-specific
diff --git a/Documentation/filesystems/00-INDEX b/Documentation/filesystems/00-INDEX
index 59db1bca7027..599593a17067 100644
--- a/Documentation/filesystems/00-INDEX
+++ b/Documentation/filesystems/00-INDEX
@@ -52,6 +52,10 @@ isofs.txt
52 - info and mount options for the ISO 9660 (CDROM) filesystem. 52 - info and mount options for the ISO 9660 (CDROM) filesystem.
53jfs.txt 53jfs.txt
54 - info and mount options for the JFS filesystem. 54 - info and mount options for the JFS filesystem.
55locks.txt
56 - info on file locking implementations, flock() vs. fcntl(), etc.
57mandatory-locking.txt
58 - info on the Linux implementation of Sys V mandatory file locking.
55ncpfs.txt 59ncpfs.txt
56 - info on Novell Netware(tm) filesystem using NCP protocol. 60 - info on Novell Netware(tm) filesystem using NCP protocol.
57ntfs.txt 61ntfs.txt
diff --git a/Documentation/locks.txt b/Documentation/filesystems/locks.txt
index e3b402ef33bd..fab857accbd6 100644
--- a/Documentation/locks.txt
+++ b/Documentation/filesystems/locks.txt
@@ -53,11 +53,11 @@ fcntl(), with all the problems that implies.
531.3 Mandatory Locking As A Mount Option 531.3 Mandatory Locking As A Mount Option
54--------------------------------------- 54---------------------------------------
55 55
56Mandatory locking, as described in 'Documentation/mandatory.txt' was prior 56Mandatory locking, as described in 'Documentation/filesystems/mandatory.txt'
57to this release a general configuration option that was valid for all 57was prior to this release a general configuration option that was valid for
58mounted filesystems. This had a number of inherent dangers, not the least 58all mounted filesystems. This had a number of inherent dangers, not the
59of which was the ability to freeze an NFS server by asking it to read a 59least of which was the ability to freeze an NFS server by asking it to read
60file for which a mandatory lock existed. 60a file for which a mandatory lock existed.
61 61
62From this release of the kernel, mandatory locking can be turned on and off 62From this release of the kernel, mandatory locking can be turned on and off
63on a per-filesystem basis, using the mount options 'mand' and 'nomand'. 63on a per-filesystem basis, using the mount options 'mand' and 'nomand'.
diff --git a/Documentation/mandatory.txt b/Documentation/filesystems/mandatory-locking.txt
index bc449d49eee5..0979d1d2ca8b 100644
--- a/Documentation/mandatory.txt
+++ b/Documentation/filesystems/mandatory-locking.txt
@@ -3,7 +3,26 @@
3 Andy Walker <andy@lysaker.kvaerner.no> 3 Andy Walker <andy@lysaker.kvaerner.no>
4 4
5 15 April 1996 5 15 April 1996
6 6 (Updated September 2007)
7
80. Why you should avoid mandatory locking
9-----------------------------------------
10
11The Linux implementation is prey to a number of difficult-to-fix race
12conditions which in practice make it not dependable:
13
14 - The write system call checks for a mandatory lock only once
15 at its start. It is therefore possible for a lock request to
16 be granted after this check but before the data is modified.
17 A process may then see file data change even while a mandatory
18 lock was held.
19 - Similarly, an exclusive lock may be granted on a file after
20 the kernel has decided to proceed with a read, but before the
21 read has actually completed, and the reading process may see
22 the file data in a state which should not have been visible
23 to it.
24 - Similar races make the claimed mutual exclusion between lock
25 and mmap similarly unreliable.
7 26
81. What is mandatory locking? 271. What is mandatory locking?
9------------------------------ 28------------------------------
diff --git a/Documentation/filesystems/ntfs.txt b/Documentation/filesystems/ntfs.txt
index 8ee10ec88293..e79ee2db183a 100644
--- a/Documentation/filesystems/ntfs.txt
+++ b/Documentation/filesystems/ntfs.txt
@@ -407,7 +407,7 @@ raiddev /dev/md0
407 device /dev/hda5 407 device /dev/hda5
408 raid-disk 0 408 raid-disk 0
409 device /dev/hdb1 409 device /dev/hdb1
410 raid-disl 1 410 raid-disk 1
411 411
412For linear raid, just change the raid-level above to "raid-level linear", for 412For linear raid, just change the raid-level above to "raid-level linear", for
413mirrors, change it to "raid-level 1", and for stripe sets with parity, change 413mirrors, change it to "raid-level 1", and for stripe sets with parity, change
@@ -457,6 +457,8 @@ ChangeLog
457 457
458Note, a technical ChangeLog aimed at kernel hackers is in fs/ntfs/ChangeLog. 458Note, a technical ChangeLog aimed at kernel hackers is in fs/ntfs/ChangeLog.
459 459
4602.1.29:
461 - Fix a deadlock when mounting read-write.
4602.1.28: 4622.1.28:
461 - Fix a deadlock. 463 - Fix a deadlock.
4622.1.27: 4642.1.27:
diff --git a/Documentation/hwmon/coretemp b/Documentation/hwmon/coretemp
index 870cda9416e9..170bf862437b 100644
--- a/Documentation/hwmon/coretemp
+++ b/Documentation/hwmon/coretemp
@@ -4,7 +4,7 @@ Kernel driver coretemp
4Supported chips: 4Supported chips:
5 * All Intel Core family 5 * All Intel Core family
6 Prefix: 'coretemp' 6 Prefix: 'coretemp'
7 CPUID: family 0x6, models 0xe, 0xf 7 CPUID: family 0x6, models 0xe, 0xf, 0x16
8 Datasheet: Intel 64 and IA-32 Architectures Software Developer's Manual 8 Datasheet: Intel 64 and IA-32 Architectures Software Developer's Manual
9 Volume 3A: System Programming Guide 9 Volume 3A: System Programming Guide
10 10
diff --git a/Documentation/hwmon/dme1737 b/Documentation/hwmon/dme1737
index 1a0f3d64ab80..8f446070e64a 100644
--- a/Documentation/hwmon/dme1737
+++ b/Documentation/hwmon/dme1737
@@ -6,6 +6,10 @@ Supported chips:
6 Prefix: 'dme1737' 6 Prefix: 'dme1737'
7 Addresses scanned: I2C 0x2c, 0x2d, 0x2e 7 Addresses scanned: I2C 0x2c, 0x2d, 0x2e
8 Datasheet: Provided by SMSC upon request and under NDA 8 Datasheet: Provided by SMSC upon request and under NDA
9 * SMSC SCH3112, SCH3114, SCH3116
10 Prefix: 'sch311x'
11 Addresses scanned: none, address read from Super-I/O config space
12 Datasheet: http://www.nuhorizons.com/FeaturedProducts/Volume1/SMSC/311x.pdf
9 13
10Authors: 14Authors:
11 Juerg Haefliger <juergh@gmail.com> 15 Juerg Haefliger <juergh@gmail.com>
@@ -27,16 +31,25 @@ Description
27----------- 31-----------
28 32
29This driver implements support for the hardware monitoring capabilities of the 33This driver implements support for the hardware monitoring capabilities of the
30SMSC DME1737 and Asus A8000 (which are the same) Super-I/O chips. This chip 34SMSC DME1737 and Asus A8000 (which are the same) and SMSC SCH311x Super-I/O
31features monitoring of 3 temp sensors temp[1-3] (2 remote diodes and 1 35chips. These chips feature monitoring of 3 temp sensors temp[1-3] (2 remote
32internal), 7 voltages in[0-6] (6 external and 1 internal) and 6 fan speeds 36diodes and 1 internal), 7 voltages in[0-6] (6 external and 1 internal) and up
33fan[1-6]. Additionally, the chip implements 5 PWM outputs pwm[1-3,5-6] for 37to 6 fan speeds fan[1-6]. Additionally, the chips implement up to 5 PWM
34controlling fan speeds both manually and automatically. 38outputs pwm[1-3,5-6] for controlling fan speeds both manually and
35 39automatically.
36Fan[3-6] and pwm[3,5-6] are optional features and their availability is 40
37dependent on the configuration of the chip. The driver will detect which 41For the DME1737 and A8000, fan[1-2] and pwm[1-2] are always present. Fan[3-6]
38features are present during initialization and create the sysfs attributes 42and pwm[3,5-6] are optional features and their availability depends on the
39accordingly. 43configuration of the chip. The driver will detect which features are present
44during initialization and create the sysfs attributes accordingly.
45
46For the SCH311x, fan[1-3] and pwm[1-3] are always present and fan[4-6] and
47pwm[5-6] don't exist.
48
49The hardware monitoring features of the DME1737 and A8000 are only accessible
50via SMBus, while the SCH311x only provides access via the ISA bus. The driver
51will therefore register itself as an I2C client driver if it detects a DME1737
52or A8000 and as a platform driver if it detects a SCH311x chip.
40 53
41 54
42Voltage Monitoring 55Voltage Monitoring
diff --git a/Documentation/hwmon/f71805f b/Documentation/hwmon/f71805f
index 94e0d2cbd3d2..f0d55976740a 100644
--- a/Documentation/hwmon/f71805f
+++ b/Documentation/hwmon/f71805f
@@ -6,6 +6,10 @@ Supported chips:
6 Prefix: 'f71805f' 6 Prefix: 'f71805f'
7 Addresses scanned: none, address read from Super I/O config space 7 Addresses scanned: none, address read from Super I/O config space
8 Datasheet: Available from the Fintek website 8 Datasheet: Available from the Fintek website
9 * Fintek F71806F/FG
10 Prefix: 'f71872f'
11 Addresses scanned: none, address read from Super I/O config space
12 Datasheet: Available from the Fintek website
9 * Fintek F71872F/FG 13 * Fintek F71872F/FG
10 Prefix: 'f71872f' 14 Prefix: 'f71872f'
11 Addresses scanned: none, address read from Super I/O config space 15 Addresses scanned: none, address read from Super I/O config space
@@ -38,6 +42,9 @@ The Fintek F71872F/FG Super I/O chip is almost the same, with two
38additional internal voltages monitored (VSB and battery). It also features 42additional internal voltages monitored (VSB and battery). It also features
396 VID inputs. The VID inputs are not yet supported by this driver. 436 VID inputs. The VID inputs are not yet supported by this driver.
40 44
45The Fintek F71806F/FG Super-I/O chip is essentially the same as the
46F71872F/FG, and is undistinguishable therefrom.
47
41The driver assumes that no more than one chip is present, which seems 48The driver assumes that no more than one chip is present, which seems
42reasonable. 49reasonable.
43 50
diff --git a/Documentation/hwmon/it87 b/Documentation/hwmon/it87
index 81ecc7e41c50..5b704a40256b 100644
--- a/Documentation/hwmon/it87
+++ b/Documentation/hwmon/it87
@@ -90,7 +90,8 @@ upper VID bits share their pins with voltage inputs (in5 and in6) so you
90can't have both on a given board. 90can't have both on a given board.
91 91
92The IT8716F, IT8718F and later IT8712F revisions have support for 92The IT8716F, IT8718F and later IT8712F revisions have support for
932 additional fans. They are not yet supported by the driver. 932 additional fans. They are supported by the driver for the IT8716F and
94IT8718F but not for the IT8712F
94 95
95The IT8716F and IT8718F, and late IT8712F and IT8705F also have optional 96The IT8716F and IT8718F, and late IT8712F and IT8705F also have optional
9616-bit tachometer counters for fans 1 to 3. This is better (no more fan 9716-bit tachometer counters for fans 1 to 3. This is better (no more fan
diff --git a/Documentation/hwmon/lm78 b/Documentation/hwmon/lm78
index fd5dc7a19f0e..dfc318a60fd4 100644
--- a/Documentation/hwmon/lm78
+++ b/Documentation/hwmon/lm78
@@ -56,16 +56,6 @@ should work with. This is hardcoded by the mainboard and/or processor itself.
56It is a value in volts. When it is unconnected, you will often find the 56It is a value in volts. When it is unconnected, you will often find the
57value 3.50 V here. 57value 3.50 V here.
58 58
59In addition to the alarms described above, there are a couple of additional
60ones. There is a BTI alarm, which gets triggered when an external chip has
61crossed its limits. Usually, this is connected to all LM75 chips; if at
62least one crosses its limits, this bit gets set. The CHAS alarm triggers
63if your computer case is open. The FIFO alarms should never trigger; it
64indicates an internal error. The SMI_IN alarm indicates some other chip
65has triggered an SMI interrupt. As we do not use SMI interrupts at all,
66this condition usually indicates there is a problem with some other
67device.
68
69If an alarm triggers, it will remain triggered until the hardware register 59If an alarm triggers, it will remain triggered until the hardware register
70is read at least once. This means that the cause for the alarm may 60is read at least once. This means that the cause for the alarm may
71already have disappeared! Note that in the current implementation, all 61already have disappeared! Note that in the current implementation, all
diff --git a/Documentation/hwmon/lm93 b/Documentation/hwmon/lm93
index 4e4a1dc1d2da..ac711f357faf 100644
--- a/Documentation/hwmon/lm93
+++ b/Documentation/hwmon/lm93
@@ -7,7 +7,7 @@ Supported chips:
7 Addresses scanned: I2C 0x2c-0x2e 7 Addresses scanned: I2C 0x2c-0x2e
8 Datasheet: http://www.national.com/ds.cgi/LM/LM93.pdf 8 Datasheet: http://www.national.com/ds.cgi/LM/LM93.pdf
9 9
10Author: 10Authors:
11 Mark M. Hoffman <mhoffman@lightlink.com> 11 Mark M. Hoffman <mhoffman@lightlink.com>
12 Ported to 2.6 by Eric J. Bowersox <ericb@aspsys.com> 12 Ported to 2.6 by Eric J. Bowersox <ericb@aspsys.com>
13 Adapted to 2.6.20 by Carsten Emde <ce@osadl.org> 13 Adapted to 2.6.20 by Carsten Emde <ce@osadl.org>
@@ -16,7 +16,6 @@ Author:
16Module Parameters 16Module Parameters
17----------------- 17-----------------
18 18
19(specific to LM93)
20* init: integer 19* init: integer
21 Set to non-zero to force some initializations (default is 0). 20 Set to non-zero to force some initializations (default is 0).
22* disable_block: integer 21* disable_block: integer
@@ -37,30 +36,13 @@ Module Parameters
37 I.e. this parameter controls the VID pin input thresholds; if your VID 36 I.e. this parameter controls the VID pin input thresholds; if your VID
38 inputs are not working, try changing this. The default value is "0". 37 inputs are not working, try changing this. The default value is "0".
39 38
40(common among sensor drivers)
41* force: short array (min = 1, max = 48)
42 List of adapter,address pairs to assume to be present. Autodetection
43 of the target device will still be attempted. Use one of the more
44 specific force directives below if this doesn't detect the device.
45* force_lm93: short array (min = 1, max = 48)
46 List of adapter,address pairs which are unquestionably assumed to contain
47 a 'lm93' chip
48* ignore: short array (min = 1, max = 48)
49 List of adapter,address pairs not to scan
50* ignore_range: short array (min = 1, max = 48)
51 List of adapter,start-addr,end-addr triples not to scan
52* probe: short array (min = 1, max = 48)
53 List of adapter,address pairs to scan additionally
54* probe_range: short array (min = 1, max = 48)
55 List of adapter,start-addr,end-addr triples to scan additionally
56
57 39
58Hardware Description 40Hardware Description
59-------------------- 41--------------------
60 42
61(from the datasheet) 43(from the datasheet)
62 44
63The LM93, hardware monitor, has a two wire digital interface compatible with 45The LM93 hardware monitor has a two wire digital interface compatible with
64SMBus 2.0. Using an 8-bit ADC, the LM93 measures the temperature of two remote 46SMBus 2.0. Using an 8-bit ADC, the LM93 measures the temperature of two remote
65diode connected transistors as well as its own die and 16 power supply 47diode connected transistors as well as its own die and 16 power supply
66voltages. To set fan speed, the LM93 has two PWM outputs that are each 48voltages. To set fan speed, the LM93 has two PWM outputs that are each
@@ -69,18 +51,12 @@ table based. The LM93 includes a digital filter that can be invoked to smooth
69temperature readings for better control of fan speed. The LM93 has four 51temperature readings for better control of fan speed. The LM93 has four
70tachometer inputs to measure fan speed. Limit and status registers for all 52tachometer inputs to measure fan speed. Limit and status registers for all
71measured values are included. The LM93 builds upon the functionality of 53measured values are included. The LM93 builds upon the functionality of
72previous motherboard management ASICs and uses some of the LM85 s features 54previous motherboard management ASICs and uses some of the LM85's features
73(i.e. smart tachometer mode). It also adds measurement and control support 55(i.e. smart tachometer mode). It also adds measurement and control support
74for dynamic Vccp monitoring and PROCHOT. It is designed to monitor a dual 56for dynamic Vccp monitoring and PROCHOT. It is designed to monitor a dual
75processor Xeon class motherboard with a minimum of external components. 57processor Xeon class motherboard with a minimum of external components.
76 58
77 59
78Driver Description
79------------------
80
81This driver implements support for the National Semiconductor LM93.
82
83
84User Interface 60User Interface
85-------------- 61--------------
86 62
@@ -101,7 +77,7 @@ These intervals can be found in the sysfs files prochot1_interval and
101prochot2_interval. The values in these files specify the intervals for 77prochot2_interval. The values in these files specify the intervals for
102#P1_PROCHOT and #P2_PROCHOT, respectively. Selecting a value not in this 78#P1_PROCHOT and #P2_PROCHOT, respectively. Selecting a value not in this
103list will cause the driver to use the next largest interval. The available 79list will cause the driver to use the next largest interval. The available
104intervals are: 80intervals are (in seconds):
105 81
106#PROCHOT intervals: 0.73, 1.46, 2.9, 5.8, 11.7, 23.3, 46.6, 93.2, 186, 372 82#PROCHOT intervals: 0.73, 1.46, 2.9, 5.8, 11.7, 23.3, 46.6, 93.2, 186, 372
107 83
@@ -111,12 +87,12 @@ assert #P2_PROCHOT, and vice-versa. This mode is enabled by writing a
111non-zero integer to the sysfs file prochot_short. 87non-zero integer to the sysfs file prochot_short.
112 88
113The LM93 can also override the #PROCHOT pins by driving a PWM signal onto 89The LM93 can also override the #PROCHOT pins by driving a PWM signal onto
114one or both of them. When overridden, the signal has a period of 3.56 mS, 90one or both of them. When overridden, the signal has a period of 3.56 ms,
115a minimum pulse width of 5 clocks (at 22.5kHz => 6.25% duty cycle), and 91a minimum pulse width of 5 clocks (at 22.5kHz => 6.25% duty cycle), and
116a maximum pulse width of 80 clocks (at 22.5kHz => 99.88% duty cycle). 92a maximum pulse width of 80 clocks (at 22.5kHz => 99.88% duty cycle).
117 93
118The sysfs files prochot1_override and prochot2_override contain boolean 94The sysfs files prochot1_override and prochot2_override contain boolean
119intgers which enable or disable the override function for #P1_PROCHOT and 95integers which enable or disable the override function for #P1_PROCHOT and
120#P2_PROCHOT, respectively. The sysfs file prochot_override_duty_cycle 96#P2_PROCHOT, respectively. The sysfs file prochot_override_duty_cycle
121contains a value controlling the duty cycle for the PWM signal used when 97contains a value controlling the duty cycle for the PWM signal used when
122the override function is enabled. This value ranges from 0 to 15, with 0 98the override function is enabled. This value ranges from 0 to 15, with 0
@@ -166,7 +142,7 @@ frequency values are constrained by the hardware. Selecting a value which is
166not available will cause the driver to use the next largest value. Also note 142not available will cause the driver to use the next largest value. Also note
167that this parameter has implications for the Smart Tach Mode (see above). 143that this parameter has implications for the Smart Tach Mode (see above).
168 144
169PWM Output Frequencies: 12, 36, 48, 60, 72, 84, 96, 22500 (h/w default) 145PWM Output Frequencies (in Hz): 12, 36, 48, 60, 72, 84, 96, 22500 (default)
170 146
171Automatic PWM: 147Automatic PWM:
172 148
@@ -178,7 +154,7 @@ individual control sources to which the PWM output is bound.
178The eight control sources are: temp1-temp4 (aka "zones" in the datasheet), 154The eight control sources are: temp1-temp4 (aka "zones" in the datasheet),
179#PROCHOT 1 & 2, and #VRDHOT 1 & 2. The bindings are expressed as a bitmask 155#PROCHOT 1 & 2, and #VRDHOT 1 & 2. The bindings are expressed as a bitmask
180in the sysfs files pwm<n>_auto_channels, where a "1" enables the binding, and 156in the sysfs files pwm<n>_auto_channels, where a "1" enables the binding, and
181 a "0" disables it. The h/w default is 0x0f (all temperatures bound). 157a "0" disables it. The h/w default is 0x0f (all temperatures bound).
182 158
183 0x01 - Temp 1 159 0x01 - Temp 1
184 0x02 - Temp 2 160 0x02 - Temp 2
@@ -324,89 +300,3 @@ LM93 Unique sysfs Files
324 300
325 gpio input state of 8 GPIO pins; read-only 301 gpio input state of 8 GPIO pins; read-only
326 302
327
328Sample Configuration File
329-------------------------
330
331Here is a sample LM93 chip config for sensors.conf:
332
333---------- cut here ----------
334chip "lm93-*"
335
336# VOLTAGE INPUTS
337
338 # labels and scaling based on datasheet recommendations
339 label in1 "+12V1"
340 compute in1 @ * 12.945, @ / 12.945
341 set in1_min 12 * 0.90
342 set in1_max 12 * 1.10
343
344 label in2 "+12V2"
345 compute in2 @ * 12.945, @ / 12.945
346 set in2_min 12 * 0.90
347 set in2_max 12 * 1.10
348
349 label in3 "+12V3"
350 compute in3 @ * 12.945, @ / 12.945
351 set in3_min 12 * 0.90
352 set in3_max 12 * 1.10
353
354 label in4 "FSB_Vtt"
355
356 label in5 "3GIO"
357
358 label in6 "ICH_Core"
359
360 label in7 "Vccp1"
361
362 label in8 "Vccp2"
363
364 label in9 "+3.3V"
365 set in9_min 3.3 * 0.90
366 set in9_max 3.3 * 1.10
367
368 label in10 "+5V"
369 set in10_min 5.0 * 0.90
370 set in10_max 5.0 * 1.10
371
372 label in11 "SCSI_Core"
373
374 label in12 "Mem_Core"
375
376 label in13 "Mem_Vtt"
377
378 label in14 "Gbit_Core"
379
380 # Assuming R1/R2 = 4.1143, and 3.3V reference
381 # -12V = (4.1143 + 1) * (@ - 3.3) + 3.3
382 label in15 "-12V"
383 compute in15 @ * 5.1143 - 13.57719, (@ + 13.57719) / 5.1143
384 set in15_min -12 * 0.90
385 set in15_max -12 * 1.10
386
387 label in16 "+3.3VSB"
388 set in16_min 3.3 * 0.90
389 set in16_max 3.3 * 1.10
390
391# TEMPERATURE INPUTS
392
393 label temp1 "CPU1"
394 label temp2 "CPU2"
395 label temp3 "LM93"
396
397# TACHOMETER INPUTS
398
399 label fan1 "Fan1"
400 set fan1_min 3000
401 label fan2 "Fan2"
402 set fan2_min 3000
403 label fan3 "Fan3"
404 set fan3_min 3000
405 label fan4 "Fan4"
406 set fan4_min 3000
407
408# PWM OUTPUTS
409
410 label pwm1 "CPU1"
411 label pwm2 "CPU2"
412
diff --git a/Documentation/hwmon/sysfs-interface b/Documentation/hwmon/sysfs-interface
index b3a9e1b9dbda..a17b692d2679 100644
--- a/Documentation/hwmon/sysfs-interface
+++ b/Documentation/hwmon/sysfs-interface
@@ -67,6 +67,10 @@ between readings to be caught and alarmed. The exact definition of an
67alarm (for example, whether a threshold must be met or must be exceeded 67alarm (for example, whether a threshold must be met or must be exceeded
68to cause an alarm) is chip-dependent. 68to cause an alarm) is chip-dependent.
69 69
70When setting values of hwmon sysfs attributes, the string representation of
71the desired value must be written, note that strings which are not a number
72are interpreted as 0! For more on how written strings are interpreted see the
73"sysfs attribute writes interpretation" section at the end of this file.
70 74
71------------------------------------------------------------------------- 75-------------------------------------------------------------------------
72 76
@@ -78,8 +82,21 @@ RW read/write value
78Read/write values may be read-only for some chips, depending on the 82Read/write values may be read-only for some chips, depending on the
79hardware implementation. 83hardware implementation.
80 84
81All entries are optional, and should only be created in a given driver 85All entries (except name) are optional, and should only be created in a
82if the chip has the feature. 86given driver if the chip has the feature.
87
88
89********
90* Name *
91********
92
93name The chip name.
94 This should be a short, lowercase string, not containing
95 spaces nor dashes, representing the chip name. This is
96 the only mandatory attribute.
97 I2C devices get this attribute created automatically.
98 RO
99
83 100
84************ 101************
85* Voltages * 102* Voltages *
@@ -104,18 +121,17 @@ in[0-*]_input Voltage input value.
104 by the chip driver, and must be done by the application. 121 by the chip driver, and must be done by the application.
105 However, some drivers (notably lm87 and via686a) 122 However, some drivers (notably lm87 and via686a)
106 do scale, because of internal resistors built into a chip. 123 do scale, because of internal resistors built into a chip.
107 These drivers will output the actual voltage. 124 These drivers will output the actual voltage. Rule of
108 125 thumb: drivers should report the voltage values at the
109 Typical usage: 126 "pins" of the chip.
110 in0_* CPU #1 voltage (not scaled) 127
111 in1_* CPU #2 voltage (not scaled) 128in[0-*]_label Suggested voltage channel label.
112 in2_* 3.3V nominal (not scaled) 129 Text string
113 in3_* 5.0V nominal (scaled) 130 Should only be created if the driver has hints about what
114 in4_* 12.0V nominal (scaled) 131 this voltage channel is being used for, and user-space
115 in5_* -12.0V nominal (scaled) 132 doesn't. In all other cases, the label is provided by
116 in6_* -5.0V nominal (scaled) 133 user-space.
117 in7_* varies 134 RO
118 in8_* varies
119 135
120cpu[0-*]_vid CPU core reference voltage. 136cpu[0-*]_vid CPU core reference voltage.
121 Unit: millivolt 137 Unit: millivolt
@@ -159,6 +175,13 @@ fan[1-*]_target
159 Only makes sense if the chip supports closed-loop fan speed 175 Only makes sense if the chip supports closed-loop fan speed
160 control based on the measured fan speed. 176 control based on the measured fan speed.
161 177
178fan[1-*]_label Suggested fan channel label.
179 Text string
180 Should only be created if the driver has hints about what
181 this fan channel is being used for, and user-space doesn't.
182 In all other cases, the label is provided by user-space.
183 RO
184
162Also see the Alarms section for status flags associated with fans. 185Also see the Alarms section for status flags associated with fans.
163 186
164 187
@@ -219,12 +242,12 @@ temp[1-*]_auto_point[1-*]_temp_hyst
219**************** 242****************
220 243
221temp[1-*]_type Sensor type selection. 244temp[1-*]_type Sensor type selection.
222 Integers 1 to 6 or thermistor Beta value (typically 3435) 245 Integers 1 to 6
223 RW 246 RW
224 1: PII/Celeron Diode 247 1: PII/Celeron Diode
225 2: 3904 transistor 248 2: 3904 transistor
226 3: thermal diode 249 3: thermal diode
227 4: thermistor (default/unknown Beta) 250 4: thermistor
228 5: AMD AMDSI 251 5: AMD AMDSI
229 6: Intel PECI 252 6: Intel PECI
230 Not all types are supported by all chips 253 Not all types are supported by all chips
@@ -260,18 +283,19 @@ temp[1-*]_crit_hyst
260 from the critical value. 283 from the critical value.
261 RW 284 RW
262 285
263temp[1-4]_offset 286temp[1-*]_offset
264 Temperature offset which is added to the temperature reading 287 Temperature offset which is added to the temperature reading
265 by the chip. 288 by the chip.
266 Unit: millidegree Celsius 289 Unit: millidegree Celsius
267 Read/Write value. 290 Read/Write value.
268 291
269 If there are multiple temperature sensors, temp1_* is 292temp[1-*]_label Suggested temperature channel label.
270 generally the sensor inside the chip itself, 293 Text string
271 reported as "motherboard temperature". temp2_* to 294 Should only be created if the driver has hints about what
272 temp4_* are generally sensors external to the chip 295 this temperature channel is being used for, and user-space
273 itself, for example the thermal diode inside the CPU or 296 doesn't. In all other cases, the label is provided by
274 a thermistor nearby. 297 user-space.
298 RO
275 299
276Some chips measure temperature using external thermistors and an ADC, and 300Some chips measure temperature using external thermistors and an ADC, and
277report the temperature measurement as a voltage. Converting this voltage 301report the temperature measurement as a voltage. Converting this voltage
@@ -393,14 +417,53 @@ beep_mask Bitmask for beep.
393 RW 417 RW
394 418
395 419
396********* 420sysfs attribute writes interpretation
397* Other * 421-------------------------------------
398********* 422
399 423hwmon sysfs attributes always contain numbers, so the first thing to do is to
400eeprom Raw EEPROM data in binary form. 424convert the input to a number, there are 2 ways todo this depending whether
401 RO 425the number can be negative or not:
402 426unsigned long u = simple_strtoul(buf, NULL, 10);
403pec Enable or disable PEC (SMBus only) 427long s = simple_strtol(buf, NULL, 10);
404 0: disable 428
405 1: enable 429With buf being the buffer with the user input being passed by the kernel.
406 RW 430Notice that we do not use the second argument of strto[u]l, and thus cannot
431tell when 0 is returned, if this was really 0 or is caused by invalid input.
432This is done deliberately as checking this everywhere would add a lot of
433code to the kernel.
434
435Notice that it is important to always store the converted value in an
436unsigned long or long, so that no wrap around can happen before any further
437checking.
438
439After the input string is converted to an (unsigned) long, the value should be
440checked if its acceptable. Be careful with further conversions on the value
441before checking it for validity, as these conversions could still cause a wrap
442around before the check. For example do not multiply the result, and only
443add/subtract if it has been divided before the add/subtract.
444
445What to do if a value is found to be invalid, depends on the type of the
446sysfs attribute that is being set. If it is a continuous setting like a
447tempX_max or inX_max attribute, then the value should be clamped to its
448limits using SENSORS_LIMIT(value, min_limit, max_limit). If it is not
449continuous like for example a tempX_type, then when an invalid value is
450written, -EINVAL should be returned.
451
452Example1, temp1_max, register is a signed 8 bit value (-128 - 127 degrees):
453
454 long v = simple_strtol(buf, NULL, 10) / 1000;
455 v = SENSORS_LIMIT(v, -128, 127);
456 /* write v to register */
457
458Example2, fan divider setting, valid values 2, 4 and 8:
459
460 unsigned long v = simple_strtoul(buf, NULL, 10);
461
462 switch (v) {
463 case 2: v = 1; break;
464 case 4: v = 2; break;
465 case 8: v = 3; break;
466 default:
467 return -EINVAL;
468 }
469 /* write v to register */
diff --git a/Documentation/hwmon/w83791d b/Documentation/hwmon/w83791d
index db9881df88a5..f153b2f6d62c 100644
--- a/Documentation/hwmon/w83791d
+++ b/Documentation/hwmon/w83791d
@@ -75,46 +75,64 @@ Voltage sensors (also known as IN sensors) report their values in millivolts.
75An alarm is triggered if the voltage has crossed a programmable minimum 75An alarm is triggered if the voltage has crossed a programmable minimum
76or maximum limit. 76or maximum limit.
77 77
78The bit ordering for the alarm "realtime status register" and the 78The w83791d has a global bit used to enable beeping from the speaker when an
79"beep enable registers" are different. 79alarm is triggered as well as a bitmask to enable or disable the beep for
80 80specific alarms. You need both the global beep enable bit and the
81in0 (VCORE) : alarms: 0x000001 beep_enable: 0x000001 81corresponding beep bit to be on for a triggered alarm to sound a beep.
82in1 (VINR0) : alarms: 0x000002 beep_enable: 0x002000 <== mismatch 82
83in2 (+3.3VIN): alarms: 0x000004 beep_enable: 0x000004 83The sysfs interface to the gloabal enable is via the sysfs beep_enable file.
84in3 (5VDD) : alarms: 0x000008 beep_enable: 0x000008 84This file is used for both legacy and new code.
85in4 (+12VIN) : alarms: 0x000100 beep_enable: 0x000100 85
86in5 (-12VIN) : alarms: 0x000200 beep_enable: 0x000200 86The sysfs interface to the beep bitmask has migrated from the original legacy
87in6 (-5VIN) : alarms: 0x000400 beep_enable: 0x000400 87method of a single sysfs beep_mask file to a newer method using multiple
88in7 (VSB) : alarms: 0x080000 beep_enable: 0x010000 <== mismatch 88*_beep files as described in .../Documentation/hwmon/sysfs-interface.
89in8 (VBAT) : alarms: 0x100000 beep_enable: 0x020000 <== mismatch 89
90in9 (VINR1) : alarms: 0x004000 beep_enable: 0x004000 90A similar change has occured for the bitmap corresponding to the alarms. The
91temp1 : alarms: 0x000010 beep_enable: 0x000010 91original legacy method used a single sysfs alarms file containing a bitmap
92temp2 : alarms: 0x000020 beep_enable: 0x000020 92of triggered alarms. The newer method uses multiple sysfs *_alarm files
93temp3 : alarms: 0x002000 beep_enable: 0x000002 <== mismatch 93(again following the pattern described in sysfs-interface).
94fan1 : alarms: 0x000040 beep_enable: 0x000040 94
95fan2 : alarms: 0x000080 beep_enable: 0x000080 95Since both methods read and write the underlying hardware, they can be used
96fan3 : alarms: 0x000800 beep_enable: 0x000800 96interchangeably and changes in one will automatically be reflected by
97fan4 : alarms: 0x200000 beep_enable: 0x200000 97the other. If you use the legacy bitmask method, your user-space code is
98fan5 : alarms: 0x400000 beep_enable: 0x400000 98responsible for handling the fact that the alarms and beep_mask bitmaps
99tart1 : alarms: 0x010000 beep_enable: 0x040000 <== mismatch 99are not the same (see the table below).
100tart2 : alarms: 0x020000 beep_enable: 0x080000 <== mismatch 100
101tart3 : alarms: 0x040000 beep_enable: 0x100000 <== mismatch 101NOTE: All new code should be written to use the newer sysfs-interface
102case_open : alarms: 0x001000 beep_enable: 0x001000 102specification as that avoids bitmap problems and is the preferred interface
103user_enable : alarms: -------- beep_enable: 0x800000 103going forward.
104 104
105*** NOTE: It is the responsibility of user-space code to handle the fact 105The driver reads the hardware chip values at most once every three seconds.
106that the beep enable and alarm bits are in different positions when using that 106User mode code requesting values more often will receive cached values.
107feature of the chip. 107
108 108Alarms bitmap vs. beep_mask bitmask
109When an alarm goes off, you can be warned by a beeping signal through your 109------------------------------------
110computer speaker. It is possible to enable all beeping globally, or only 110For legacy code using the alarms and beep_mask files:
111the beeping for some alarms. 111
112 112in0 (VCORE) : alarms: 0x000001 beep_mask: 0x000001
113The driver only reads the chip values each 3 seconds; reading them more 113in1 (VINR0) : alarms: 0x000002 beep_mask: 0x002000 <== mismatch
114often will do no harm, but will return 'old' values. 114in2 (+3.3VIN): alarms: 0x000004 beep_mask: 0x000004
115in3 (5VDD) : alarms: 0x000008 beep_mask: 0x000008
116in4 (+12VIN) : alarms: 0x000100 beep_mask: 0x000100
117in5 (-12VIN) : alarms: 0x000200 beep_mask: 0x000200
118in6 (-5VIN) : alarms: 0x000400 beep_mask: 0x000400
119in7 (VSB) : alarms: 0x080000 beep_mask: 0x010000 <== mismatch
120in8 (VBAT) : alarms: 0x100000 beep_mask: 0x020000 <== mismatch
121in9 (VINR1) : alarms: 0x004000 beep_mask: 0x004000
122temp1 : alarms: 0x000010 beep_mask: 0x000010
123temp2 : alarms: 0x000020 beep_mask: 0x000020
124temp3 : alarms: 0x002000 beep_mask: 0x000002 <== mismatch
125fan1 : alarms: 0x000040 beep_mask: 0x000040
126fan2 : alarms: 0x000080 beep_mask: 0x000080
127fan3 : alarms: 0x000800 beep_mask: 0x000800
128fan4 : alarms: 0x200000 beep_mask: 0x200000
129fan5 : alarms: 0x400000 beep_mask: 0x400000
130tart1 : alarms: 0x010000 beep_mask: 0x040000 <== mismatch
131tart2 : alarms: 0x020000 beep_mask: 0x080000 <== mismatch
132tart3 : alarms: 0x040000 beep_mask: 0x100000 <== mismatch
133case_open : alarms: 0x001000 beep_mask: 0x001000
134global_enable: alarms: -------- beep_mask: 0x800000 (modified via beep_enable)
115 135
116W83791D TODO: 136W83791D TODO:
117--------------- 137---------------
118Provide a patch for per-file alarms and beep enables as defined in the hwmon
119 documentation (Documentation/hwmon/sysfs-interface)
120Provide a patch for smart-fan control (still need appropriate motherboard/fans) 138Provide a patch for smart-fan control (still need appropriate motherboard/fans)
diff --git a/Documentation/i2c/busses/i2c-i801 b/Documentation/i2c/busses/i2c-i801
index fe6406f2f9a6..fde4420e3f75 100644
--- a/Documentation/i2c/busses/i2c-i801
+++ b/Documentation/i2c/busses/i2c-i801
@@ -13,7 +13,8 @@ Supported adapters:
13 * Intel 631xESB/632xESB (ESB2) 13 * Intel 631xESB/632xESB (ESB2)
14 * Intel 82801H (ICH8) 14 * Intel 82801H (ICH8)
15 * Intel ICH9 15 * Intel ICH9
16 Datasheets: Publicly available at the Intel website 16 * Intel Tolapai
17 Datasheets: Publicly available at the Intel website
17 18
18Authors: 19Authors:
19 Frodo Looijaard <frodol@dds.nl>, 20 Frodo Looijaard <frodol@dds.nl>,
diff --git a/Documentation/i2c/chips/pcf8574 b/Documentation/i2c/chips/pcf8574
index 2752c8ce3167..5c1ad1376b62 100644
--- a/Documentation/i2c/chips/pcf8574
+++ b/Documentation/i2c/chips/pcf8574
@@ -62,8 +62,6 @@ if the corresponding output is set as 1, otherwise the current output
62value, that is to say 0. 62value, that is to say 0.
63 63
64The write file is read/write. Writing a value outputs it on the I/O 64The write file is read/write. Writing a value outputs it on the I/O
65port. Reading returns the last written value. 65port. Reading returns the last written value. As it is not possible
66 66to read this value from the chip, you need to write at least once to
67On module initialization the chip is configured as eight inputs (all 67this file before you can read back from it.
68outputs to 1), so you can connect any circuit to the PCF8574(A) without
69being afraid of short-circuit.
diff --git a/Documentation/i2c/dev-interface b/Documentation/i2c/dev-interface
index b849ad636583..9dd79123ddd9 100644
--- a/Documentation/i2c/dev-interface
+++ b/Documentation/i2c/dev-interface
@@ -90,12 +90,15 @@ ioctl(file,I2C_SLAVE,long addr)
90 90
91ioctl(file,I2C_TENBIT,long select) 91ioctl(file,I2C_TENBIT,long select)
92 Selects ten bit addresses if select not equals 0, selects normal 7 bit 92 Selects ten bit addresses if select not equals 0, selects normal 7 bit
93 addresses if select equals 0. Default 0. 93 addresses if select equals 0. Default 0. This request is only valid
94 if the adapter has I2C_FUNC_10BIT_ADDR.
94 95
95ioctl(file,I2C_PEC,long select) 96ioctl(file,I2C_PEC,long select)
96 Selects SMBus PEC (packet error checking) generation and verification 97 Selects SMBus PEC (packet error checking) generation and verification
97 if select not equals 0, disables if select equals 0. Default 0. 98 if select not equals 0, disables if select equals 0. Default 0.
98 Used only for SMBus transactions. 99 Used only for SMBus transactions. This request only has an effect if the
100 the adapter has I2C_FUNC_SMBUS_PEC; it is still safe if not, it just
101 doesn't have any effect.
99 102
100ioctl(file,I2C_FUNCS,unsigned long *funcs) 103ioctl(file,I2C_FUNCS,unsigned long *funcs)
101 Gets the adapter functionality and puts it in *funcs. 104 Gets the adapter functionality and puts it in *funcs.
@@ -103,8 +106,10 @@ ioctl(file,I2C_FUNCS,unsigned long *funcs)
103ioctl(file,I2C_RDWR,struct i2c_rdwr_ioctl_data *msgset) 106ioctl(file,I2C_RDWR,struct i2c_rdwr_ioctl_data *msgset)
104 107
105 Do combined read/write transaction without stop in between. 108 Do combined read/write transaction without stop in between.
106 The argument is a pointer to a struct i2c_rdwr_ioctl_data { 109 Only valid if the adapter has I2C_FUNC_I2C. The argument is
110 a pointer to a
107 111
112 struct i2c_rdwr_ioctl_data {
108 struct i2c_msg *msgs; /* ptr to array of simple messages */ 113 struct i2c_msg *msgs; /* ptr to array of simple messages */
109 int nmsgs; /* number of messages to exchange */ 114 int nmsgs; /* number of messages to exchange */
110 } 115 }
diff --git a/Documentation/i2c/i2c-stub b/Documentation/i2c/i2c-stub
index 9cc081e69764..89e69ad3436c 100644
--- a/Documentation/i2c/i2c-stub
+++ b/Documentation/i2c/i2c-stub
@@ -6,13 +6,14 @@ This module is a very simple fake I2C/SMBus driver. It implements four
6types of SMBus commands: write quick, (r/w) byte, (r/w) byte data, and 6types of SMBus commands: write quick, (r/w) byte, (r/w) byte data, and
7(r/w) word data. 7(r/w) word data.
8 8
9You need to provide a chip address as a module parameter when loading 9You need to provide chip addresses as a module parameter when loading this
10this driver, which will then only react to SMBus commands to this address. 10driver, which will then only react to SMBus commands to these addresses.
11 11
12No hardware is needed nor associated with this module. It will accept write 12No hardware is needed nor associated with this module. It will accept write
13quick commands to one address; it will respond to the other commands (also 13quick commands to the specified addresses; it will respond to the other
14to one address) by reading from or writing to an array in memory. It will 14commands (also to the specified addresses) by reading from or writing to
15also spam the kernel logs for every command it handles. 15arrays in memory. It will also spam the kernel logs for every command it
16handles.
16 17
17A pointer register with auto-increment is implemented for all byte 18A pointer register with auto-increment is implemented for all byte
18operations. This allows for continuous byte reads like those supported by 19operations. This allows for continuous byte reads like those supported by
@@ -26,8 +27,8 @@ The typical use-case is like this:
26 27
27PARAMETERS: 28PARAMETERS:
28 29
29int chip_addr: 30int chip_addr[10]:
30 The SMBus address to emulate a chip at. 31 The SMBus addresses to emulate chips at.
31 32
32CAVEATS: 33CAVEATS:
33 34
@@ -41,9 +42,6 @@ If the hardware for your driver has banked registers (e.g. Winbond sensors
41chips) this module will not work well - although it could be extended to 42chips) this module will not work well - although it could be extended to
42support that pretty easily. 43support that pretty easily.
43 44
44Only one chip address is supported - although this module could be
45extended to support more.
46
47If you spam it hard enough, printk can be lossy. This module really wants 45If you spam it hard enough, printk can be lossy. This module really wants
48something like relayfs. 46something like relayfs.
49 47
diff --git a/Documentation/ja_JP/HOWTO b/Documentation/ja_JP/HOWTO
index 9f08dab1e75b..d9d832c010ef 100644
--- a/Documentation/ja_JP/HOWTO
+++ b/Documentation/ja_JP/HOWTO
@@ -1,4 +1,4 @@
1NOTE: 1NOTE:
2This is a version of Documentation/HOWTO translated into Japanese. 2This is a version of Documentation/HOWTO translated into Japanese.
3This document is maintained by Tsugikazu Shibata <tshibata@ab.jp.nec.com> 3This document is maintained by Tsugikazu Shibata <tshibata@ab.jp.nec.com>
4and the JF Project team <www.linux.or.jp/JF>. 4and the JF Project team <www.linux.or.jp/JF>.
@@ -11,14 +11,14 @@ for non English (read: Japanese) speakers and is not intended as a
11fork. So if you have any comments or updates for this file, please try 11fork. So if you have any comments or updates for this file, please try
12to update the original English file first. 12to update the original English file first.
13 13
14Last Updated: 2007/07/18 14Last Updated: 2007/09/23
15================================== 15==================================
16ã“ã‚Œã¯ã€ 16ã“ã‚Œã¯ã€
17linux-2.6.22/Documentation/HOWTO 17linux-2.6.23/Documentation/HOWTO
18ã®å’Œè¨³ã§ã™ã€‚ 18ã®å’Œè¨³ã§ã™ã€‚
19 19
20翻訳団体: JF プロジェクト < http://www.linux.or.jp/JF/ > 20翻訳団体: JF プロジェクト < http://www.linux.or.jp/JF/ >
21翻訳日: 2007/07/16 21翻訳日: 2007/09/19
22翻訳者: Tsugikazu Shibata <tshibata at ab dot jp dot nec dot com> 22翻訳者: Tsugikazu Shibata <tshibata at ab dot jp dot nec dot com>
23校正者: æ¾å€‰ã•ã‚“ <nbh--mats at nifty dot com> 23校正者: æ¾å€‰ã•ã‚“ <nbh--mats at nifty dot com>
24 å°æž— é›…å…¸ã•ã‚“ (Masanori Kobayasi) <zap03216 at nifty dot ne dot jp> 24 å°æž— é›…å…¸ã•ã‚“ (Masanori Kobayasi) <zap03216 at nifty dot ne dot jp>
@@ -27,6 +27,7 @@ linux-2.6.22/Documentation/HOWTO
27 野å£ã•ã‚“ (Kenji Noguchi) <tokyo246 at gmail dot com> 27 野å£ã•ã‚“ (Kenji Noguchi) <tokyo246 at gmail dot com>
28 河内ã•ã‚“ (Takayoshi Kochi) <t-kochi at bq dot jp dot nec dot com> 28 河内ã•ã‚“ (Takayoshi Kochi) <t-kochi at bq dot jp dot nec dot com>
29 岩本ã•ã‚“ (iwamoto) <iwamoto.kn at ncos dot nec dot co dot jp> 29 岩本ã•ã‚“ (iwamoto) <iwamoto.kn at ncos dot nec dot co dot jp>
30 内田ã•ã‚“ (Satoshi Uchida) <s-uchida at ap dot jp dot nec dot com>
30================================== 31==================================
31 32
32Linux カーãƒãƒ«é–‹ç™ºã®ã‚„ã‚Šæ–¹ 33Linux カーãƒãƒ«é–‹ç™ºã®ã‚„ã‚Šæ–¹
@@ -40,7 +41,7 @@ Linux カーãƒãƒ«é–‹ç™ºã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã¨å…±ã«æ´»å‹•ã™ã‚‹ã‚„り方を学ã
40手助ã‘ã«ãªã‚Šã¾ã™ã€‚ 41手助ã‘ã«ãªã‚Šã¾ã™ã€‚
41 42
42ã‚‚ã—ã€ã“ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã®ã©ã“ã‹ãŒå¤ããªã£ã¦ã„ãŸå ´åˆã«ã¯ã€ã“ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ 43ã‚‚ã—ã€ã“ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã®ã©ã“ã‹ãŒå¤ããªã£ã¦ã„ãŸå ´åˆã«ã¯ã€ã“ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³
43トã®æœ€å¾Œã«ãƒªã‚¹ãƒˆã—ãŸãƒ¡ãƒ³ãƒ†ãƒŠãƒ¼ã«ãƒ‘ッãƒã‚’é€ã£ã¦ãã ã•ã„。 44トã®æœ€å¾Œã«ãƒªã‚¹ãƒˆã—ãŸãƒ¡ãƒ³ãƒ†ãƒŠã«ãƒ‘ッãƒã‚’é€ã£ã¦ãã ã•ã„。
44 45
45ã¯ã˜ã‚ã« 46ã¯ã˜ã‚ã«
46--------- 47---------
@@ -59,7 +60,7 @@ Linux カーãƒãƒ«é–‹ç™ºã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã¨å…±ã«æ´»å‹•ã™ã‚‹ã‚„り方を学ã
59ãƒãƒ«é–‹ç™ºè€…ã«ã¯å¿…è¦ã§ã™ã€‚アーキテクãƒãƒ£å‘ã‘ã®ä½Žãƒ¬ãƒ™ãƒ«éƒ¨åˆ†ã®é–‹ç™ºã‚’ã™ã‚‹ã® 60ãƒãƒ«é–‹ç™ºè€…ã«ã¯å¿…è¦ã§ã™ã€‚アーキテクãƒãƒ£å‘ã‘ã®ä½Žãƒ¬ãƒ™ãƒ«éƒ¨åˆ†ã®é–‹ç™ºã‚’ã™ã‚‹ã®
60ã§ãªã‘ã‚Œã°ã€(ã©ã‚“ãªã‚¢ãƒ¼ã‚­ãƒ†ã‚¯ãƒãƒ£ã§ã‚‚)アセンブリ(訳注: 言語)ã¯å¿…è¦ã‚ã‚Š 61ã§ãªã‘ã‚Œã°ã€(ã©ã‚“ãªã‚¢ãƒ¼ã‚­ãƒ†ã‚¯ãƒãƒ£ã§ã‚‚)アセンブリ(訳注: 言語)ã¯å¿…è¦ã‚ã‚Š
61ã¾ã›ã‚“。以下ã®æœ¬ã¯ã€C 言語ã®å分ãªçŸ¥è­˜ã‚„何年もã®çµŒé¨“ã«å–ã£ã¦ä»£ã‚ã‚‹ã‚‚ã® 62ã¾ã›ã‚“。以下ã®æœ¬ã¯ã€C 言語ã®å分ãªçŸ¥è­˜ã‚„何年もã®çµŒé¨“ã«å–ã£ã¦ä»£ã‚ã‚‹ã‚‚ã®
62ã§ã¯ã‚ã‚Šã¾ã›ã‚“ãŒã€å°‘ãªãã¨ã‚‚リファレンスã¨ã—ã¦ã¯ã„ã„本ã§ã™ã€‚ 63ã§ã¯ã‚ã‚Šã¾ã›ã‚“ãŒã€å°‘ãªãã¨ã‚‚リファレンスã¨ã—ã¦ã¯è‰¯ã„本ã§ã™ã€‚
63 - "The C Programming Language" by Kernighan and Ritchie [Prentice Hall] 64 - "The C Programming Language" by Kernighan and Ritchie [Prentice Hall]
64 -『プログラミング言語C第2版ã€(B.W. カーニãƒãƒ³/D.M. リッãƒãƒ¼è‘— 石田晴久訳) [共立出版] 65 -『プログラミング言語C第2版ã€(B.W. カーニãƒãƒ³/D.M. リッãƒãƒ¼è‘— 石田晴久訳) [共立出版]
65 - "Practical C Programming" by Steve Oualline [O'Reilly] 66 - "Practical C Programming" by Steve Oualline [O'Reilly]
@@ -76,7 +77,7 @@ Linux カーãƒãƒ«é–‹ç™ºã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã¨å…±ã«æ´»å‹•ã™ã‚‹ã‚„り方を学ã
76ã¨ãã©ãã€ã‚«ãƒ¼ãƒãƒ«ãŒãƒ„ールãƒã‚§ã‚¤ãƒ³ã‚„ C 言語拡張ã«ç½®ã„ã¦ã„ã‚‹å‰æãŒã©ã† 77ã¨ãã©ãã€ã‚«ãƒ¼ãƒãƒ«ãŒãƒ„ールãƒã‚§ã‚¤ãƒ³ã‚„ C 言語拡張ã«ç½®ã„ã¦ã„ã‚‹å‰æãŒã©ã†
77ãªã£ã¦ã„ã‚‹ã®ã‹ã‚ã‹ã‚Šã«ãã„ã“ã¨ãŒã‚ã‚Šã€ã¾ãŸã€æ®‹å¿µãªã“ã¨ã«æ±ºå®šçš„ãªãƒªãƒ•ã‚¡ 78ãªã£ã¦ã„ã‚‹ã®ã‹ã‚ã‹ã‚Šã«ãã„ã“ã¨ãŒã‚ã‚Šã€ã¾ãŸã€æ®‹å¿µãªã“ã¨ã«æ±ºå®šçš„ãªãƒªãƒ•ã‚¡
78レンスã¯å­˜åœ¨ã—ã¾ã›ã‚“。情報を得るã«ã¯ã€gcc ã® info ページ( info gcc )ã‚’ 79レンスã¯å­˜åœ¨ã—ã¾ã›ã‚“。情報を得るã«ã¯ã€gcc ã® info ページ( info gcc )ã‚’
79ã¿ã¦ãã ã•ã„。 80見ã¦ãã ã•ã„。
80 81
81ã‚ãªãŸã¯æ—¢å­˜ã®é–‹ç™ºã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã¨ä¸€ç·’ã«ä½œæ¥­ã™ã‚‹æ–¹æ³•ã‚’å­¦ã¼ã†ã¨ã—ã¦ã„ã‚‹ã“ 82ã‚ãªãŸã¯æ—¢å­˜ã®é–‹ç™ºã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã¨ä¸€ç·’ã«ä½œæ¥­ã™ã‚‹æ–¹æ³•ã‚’å­¦ã¼ã†ã¨ã—ã¦ã„ã‚‹ã“
82ã¨ã«ç•™æ„ã—ã¦ãã ã•ã„。ãã®ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã¯ã€ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã€ã‚¹ã‚¿ã‚¤ãƒ«ã€ 83ã¨ã«ç•™æ„ã—ã¦ãã ã•ã„。ãã®ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã¯ã€ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã€ã‚¹ã‚¿ã‚¤ãƒ«ã€
@@ -92,7 +93,7 @@ Linux カーãƒãƒ«é–‹ç™ºã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã¨å…±ã«æ´»å‹•ã™ã‚‹ã‚„り方を学ã
92 93
93Linux カーãƒãƒ«ã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã¯ GPL ライセンスã®ä¸‹ã§ãƒªãƒªãƒ¼ã‚¹ã•ã‚Œã¦ã„ã¾ 94Linux カーãƒãƒ«ã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã¯ GPL ライセンスã®ä¸‹ã§ãƒªãƒªãƒ¼ã‚¹ã•ã‚Œã¦ã„ã¾
94ã™ã€‚ライセンスã®è©³ç´°ã«ã¤ã„ã¦ã¯ã€ã‚½ãƒ¼ã‚¹ãƒ„リーã®ãƒ¡ã‚¤ãƒ³ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«å­˜åœ¨ 95ã™ã€‚ライセンスã®è©³ç´°ã«ã¤ã„ã¦ã¯ã€ã‚½ãƒ¼ã‚¹ãƒ„リーã®ãƒ¡ã‚¤ãƒ³ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«å­˜åœ¨
95ã™ã‚‹ã€COPYING ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’ã¿ã¦ãã ã•ã„。もã—ライセンスã«ã¤ã„ã¦ã•ã‚‰ã«è³ª 96ã™ã‚‹ã€COPYING ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’見ã¦ãã ã•ã„。もã—ライセンスã«ã¤ã„ã¦ã•ã‚‰ã«è³ª
96å•ãŒã‚ã‚Œã°ã€Linux Kernel メーリングリストã«è³ªå•ã™ã‚‹ã®ã§ã¯ãªãã€ã©ã†ãž 97å•ãŒã‚ã‚Œã°ã€Linux Kernel メーリングリストã«è³ªå•ã™ã‚‹ã®ã§ã¯ãªãã€ã©ã†ãž
97法律家ã«ç›¸è«‡ã—ã¦ãã ã•ã„。メーリングリストã®äººé”ã¯æ³•å¾‹å®¶ã§ã¯ãªãã€æ³•çš„ 98法律家ã«ç›¸è«‡ã—ã¦ãã ã•ã„。メーリングリストã®äººé”ã¯æ³•å¾‹å®¶ã§ã¯ãªãã€æ³•çš„
98å•é¡Œã«ã¤ã„ã¦ã¯å½¼ã‚‰ã®å£°æ˜Žã¯ã‚ã¦ã«ã™ã‚‹ã¹ãã§ã¯ã‚ã‚Šã¾ã›ã‚“。 99å•é¡Œã«ã¤ã„ã¦ã¯å½¼ã‚‰ã®å£°æ˜Žã¯ã‚ã¦ã«ã™ã‚‹ã¹ãã§ã¯ã‚ã‚Šã¾ã›ã‚“。
@@ -109,7 +110,8 @@ Linux カーãƒãƒ«ã‚½ãƒ¼ã‚¹ãƒ„リーã¯å¹…広ã„範囲ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’å
109æ–°ã—ã„ドキュメントファイルも追加ã™ã‚‹ã“ã¨ã‚’勧ã‚ã¾ã™ã€‚ 110æ–°ã—ã„ドキュメントファイルも追加ã™ã‚‹ã“ã¨ã‚’勧ã‚ã¾ã™ã€‚
110カーãƒãƒ«ã®å¤‰æ›´ãŒã€ã‚«ãƒ¼ãƒãƒ«ãŒãƒ¦ãƒ¼ã‚¶ç©ºé–“ã«å…¬é–‹ã—ã¦ã„るインターフェイス㮠111カーãƒãƒ«ã®å¤‰æ›´ãŒã€ã‚«ãƒ¼ãƒãƒ«ãŒãƒ¦ãƒ¼ã‚¶ç©ºé–“ã«å…¬é–‹ã—ã¦ã„るインターフェイスã®
111変更を引ãèµ·ã“ã™å ´åˆã€ãã®å¤‰æ›´ã‚’説明ã™ã‚‹ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãƒšãƒ¼ã‚¸ã®ãƒ‘ッãƒã‚„情報 112変更を引ãèµ·ã“ã™å ´åˆã€ãã®å¤‰æ›´ã‚’説明ã™ã‚‹ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãƒšãƒ¼ã‚¸ã®ãƒ‘ッãƒã‚„情報
112をマニュアルページã®ãƒ¡ãƒ³ãƒ†ãƒŠ mtk-manpages@gmx.net ã«é€ã‚‹ã“ã¨ã‚’勧ã‚ã¾ã™ã€‚ 113をマニュアルページã®ãƒ¡ãƒ³ãƒ†ãƒŠ mtk-manpages@gmx.net ã«é€ã‚‹ã“ã¨ã‚’勧ã‚ã¾
114ã™ã€‚
113 115
114以下ã¯ã‚«ãƒ¼ãƒãƒ«ã‚½ãƒ¼ã‚¹ãƒ„リーã«å«ã¾ã‚Œã¦ã„る読んã§ãŠãã¹ãファイルã®ä¸€è¦§ã§ 116以下ã¯ã‚«ãƒ¼ãƒãƒ«ã‚½ãƒ¼ã‚¹ãƒ„リーã«å«ã¾ã‚Œã¦ã„る読んã§ãŠãã¹ãファイルã®ä¸€è¦§ã§
115ã™- 117ã™-
@@ -117,7 +119,7 @@ Linux カーãƒãƒ«ã‚½ãƒ¼ã‚¹ãƒ„リーã¯å¹…広ã„範囲ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’å
117 README 119 README
118 ã“ã®ãƒ•ã‚¡ã‚¤ãƒ«ã¯ Linuxカーãƒãƒ«ã®ç°¡å˜ãªèƒŒæ™¯ã¨ã‚«ãƒ¼ãƒãƒ«ã‚’設定(訳注 120 ã“ã®ãƒ•ã‚¡ã‚¤ãƒ«ã¯ Linuxカーãƒãƒ«ã®ç°¡å˜ãªèƒŒæ™¯ã¨ã‚«ãƒ¼ãƒãƒ«ã‚’設定(訳注
119 configure )ã—ã€ç”Ÿæˆ(訳注 build )ã™ã‚‹ãŸã‚ã«å¿…è¦ãªã“ã¨ã¯ä½•ã‹ãŒæ›¸ã‹ã‚Œ 121 configure )ã—ã€ç”Ÿæˆ(訳注 build )ã™ã‚‹ãŸã‚ã«å¿…è¦ãªã“ã¨ã¯ä½•ã‹ãŒæ›¸ã‹ã‚Œ
120 ã¦ã„ã¾ã™ã€‚カーãƒãƒ«ã«é–¢ã—ã¦åˆã‚ã¦ã®äººã¯ã“ã“ã‹ã‚‰ã‚¹ã‚¿ãƒ¼ãƒˆã™ã‚‹ã¨ã‚ˆã„㧠122 ã¦ã„ã¾ã™ã€‚カーãƒãƒ«ã«é–¢ã—ã¦åˆã‚ã¦ã®äººã¯ã“ã“ã‹ã‚‰ã‚¹ã‚¿ãƒ¼ãƒˆã™ã‚‹ã¨è‰¯ã„ã§
121 ã—ょã†ã€‚ 123 ã—ょã†ã€‚
122 124
123 Documentation/Changes 125 Documentation/Changes
@@ -128,7 +130,7 @@ Linux カーãƒãƒ«ã‚½ãƒ¼ã‚¹ãƒ„リーã¯å¹…広ã„範囲ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’å
128 Documentation/CodingStyle 130 Documentation/CodingStyle
129 ã“れ㯠Linux カーãƒãƒ«ã®ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã‚¹ã‚¿ã‚¤ãƒ«ã¨èƒŒæ™¯ã«ã‚ã‚‹ç†ç”±ã‚’記述 131 ã“れ㯠Linux カーãƒãƒ«ã®ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã‚¹ã‚¿ã‚¤ãƒ«ã¨èƒŒæ™¯ã«ã‚ã‚‹ç†ç”±ã‚’記述
130 ã—ã¦ã„ã¾ã™ã€‚å…¨ã¦ã®æ–°ã—ã„コードã¯ã“ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã«ã‚るガイドライン 132 ã—ã¦ã„ã¾ã™ã€‚å…¨ã¦ã®æ–°ã—ã„コードã¯ã“ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã«ã‚るガイドライン
131 ã«å¾“ã£ã¦ã„ã‚‹ã“ã¨ã‚’期待ã•ã‚Œã¦ã„ã¾ã™ã€‚大部分ã®ãƒ¡ãƒ³ãƒ†ãƒŠãƒ¼ã¯ã“れらã®ãƒ«ãƒ¼ 133 ã«å¾“ã£ã¦ã„ã‚‹ã“ã¨ã‚’期待ã•ã‚Œã¦ã„ã¾ã™ã€‚大部分ã®ãƒ¡ãƒ³ãƒ†ãƒŠã¯ã“れらã®ãƒ«ãƒ¼
132 ルã«å¾“ã£ã¦ã„ã‚‹ã‚‚ã®ã ã‘ã‚’å—ã‘付ã‘ã€å¤šãã®äººã¯æ­£ã—ã„スタイルã®ã‚³ãƒ¼ãƒ‰ 134 ルã«å¾“ã£ã¦ã„ã‚‹ã‚‚ã®ã ã‘ã‚’å—ã‘付ã‘ã€å¤šãã®äººã¯æ­£ã—ã„スタイルã®ã‚³ãƒ¼ãƒ‰
133 ã ã‘をレビューã—ã¾ã™ã€‚ 135 ã ã‘をレビューã—ã¾ã™ã€‚
134 136
@@ -168,16 +170,16 @@ Linux カーãƒãƒ«ã‚½ãƒ¼ã‚¹ãƒ„リーã¯å¹…広ã„範囲ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’å
168 支æ´ã—ã¦ãã ã•ã„。 170 支æ´ã—ã¦ãã ã•ã„。
169 171
170 Documentation/ManagementStyle 172 Documentation/ManagementStyle
171 ã“ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã¯ Linux カーãƒãƒ«ã®ãƒ¡ãƒ³ãƒ†ãƒŠãƒ¼é”ãŒã©ã†è¡Œå‹•ã™ã‚‹ã‹ã€ 173 ã“ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã¯ Linux カーãƒãƒ«ã®ãƒ¡ãƒ³ãƒ†ãƒŠé”ãŒã©ã†è¡Œå‹•ã™ã‚‹ã‹ã€
172 彼らã®æ‰‹æ³•ã®èƒŒæ™¯ã«ã‚る共有ã•ã‚Œã¦ã„る精神ã«ã¤ã„ã¦è¨˜è¿°ã—ã¦ã„ã¾ã™ã€‚ã“ 174 彼らã®æ‰‹æ³•ã®èƒŒæ™¯ã«ã‚る共有ã•ã‚Œã¦ã„る精神ã«ã¤ã„ã¦è¨˜è¿°ã—ã¦ã„ã¾ã™ã€‚ã“
173 ã‚Œã¯ã‚«ãƒ¼ãƒãƒ«é–‹ç™ºã®åˆå¿ƒè€…ãªã‚‰ï¼ˆã‚‚ã—ãã¯ã€å˜ã«èˆˆå‘³ãŒã‚ã‚‹ã ã‘ã®äººã§ã‚‚) 175 ã‚Œã¯ã‚«ãƒ¼ãƒãƒ«é–‹ç™ºã®åˆå¿ƒè€…ãªã‚‰ï¼ˆã‚‚ã—ãã¯ã€å˜ã«èˆˆå‘³ãŒã‚ã‚‹ã ã‘ã®äººã§ã‚‚)
174 é‡è¦ã§ã™ã€‚ãªãœãªã‚‰ã“ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã¯ã€ã‚«ãƒ¼ãƒãƒ«ãƒ¡ãƒ³ãƒ†ãƒŠãƒ¼é”ã®ç‹¬ç‰¹ãª 176 é‡è¦ã§ã™ã€‚ãªãœãªã‚‰ã“ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã¯ã€ã‚«ãƒ¼ãƒãƒ«ãƒ¡ãƒ³ãƒ†ãƒŠé”ã®ç‹¬ç‰¹ãª
175 行動ã«ã¤ã„ã¦ã®å¤šãã®èª¤è§£ã‚„混乱を解消ã™ã‚‹ã‹ã‚‰ã§ã™ã€‚ 177 行動ã«ã¤ã„ã¦ã®å¤šãã®èª¤è§£ã‚„混乱を解消ã™ã‚‹ã‹ã‚‰ã§ã™ã€‚
176 178
177 Documentation/stable_kernel_rules.txt 179 Documentation/stable_kernel_rules.txt
178 ã“ã®ãƒ•ã‚¡ã‚¤ãƒ«ã¯ã©ã®ã‚ˆã†ã« stable カーãƒãƒ«ã®ãƒªãƒªãƒ¼ã‚¹ãŒè¡Œã‚れるã‹ã®ãƒ«ãƒ¼ 180 ã“ã®ãƒ•ã‚¡ã‚¤ãƒ«ã¯ã©ã®ã‚ˆã†ã« stable カーãƒãƒ«ã®ãƒªãƒªãƒ¼ã‚¹ãŒè¡Œã‚れるã‹ã®ãƒ«ãƒ¼
179 ルãŒè¨˜è¿°ã•ã‚Œã¦ã„ã¾ã™ã€‚ãã—ã¦ã“れらã®ãƒªãƒªãƒ¼ã‚¹ã®ä¸­ã®ã©ã“ã‹ã§å¤‰æ›´ã‚’å– 181 ルãŒè¨˜è¿°ã•ã‚Œã¦ã„ã¾ã™ã€‚ãã—ã¦ã“れらã®ãƒªãƒªãƒ¼ã‚¹ã®ä¸­ã®ã©ã“ã‹ã§å¤‰æ›´ã‚’å–
180 り入れã¦ã‚‚らã„ãŸã„å ´åˆã«ä½•ã‚’ã™ã‚Œã°ã„ã„ã‹ãŒç¤ºã•ã‚Œã¦ã„ã¾ã™ã€‚ 182 り入れã¦ã‚‚らã„ãŸã„å ´åˆã«ä½•ã‚’ã™ã‚Œã°è‰¯ã„ã‹ãŒç¤ºã•ã‚Œã¦ã„ã¾ã™ã€‚
181 183
182 Documentation/kernel-docs.txt 184 Documentation/kernel-docs.txt
183  カーãƒãƒ«é–‹ç™ºã«ä»˜éšã™ã‚‹å¤–部ドキュメントã®ãƒªã‚¹ãƒˆã§ã™ã€‚ã‚‚ã—ã‚ãªãŸãŒ 185  カーãƒãƒ«é–‹ç™ºã«ä»˜éšã™ã‚‹å¤–部ドキュメントã®ãƒªã‚¹ãƒˆã§ã™ã€‚ã‚‚ã—ã‚ãªãŸãŒ
@@ -218,9 +220,9 @@ web サイトã«ã¯ã€ã‚³ãƒ¼ãƒ‰ã®æ§‹æˆã€ã‚µãƒ–システムã€ç¾åœ¨å­˜åœ¨ã™ã
218ã“ã“ã«ã¯ã€ã¾ãŸã€ã‚«ãƒ¼ãƒãƒ«ã®ã‚³ãƒ³ãƒ‘イルã®ã‚„り方やパッãƒã®å½“ã¦æ–¹ãªã©ã®é–“接 220ã“ã“ã«ã¯ã€ã¾ãŸã€ã‚«ãƒ¼ãƒãƒ«ã®ã‚³ãƒ³ãƒ‘イルã®ã‚„り方やパッãƒã®å½“ã¦æ–¹ãªã©ã®é–“接
219çš„ãªåŸºæœ¬æƒ…報も記述ã•ã‚Œã¦ã„ã¾ã™ã€‚ 221çš„ãªåŸºæœ¬æƒ…報も記述ã•ã‚Œã¦ã„ã¾ã™ã€‚
220 222
221ã‚ãªãŸãŒã©ã“ã‹ã‚‰ã‚¹ã‚¿ãƒ¼ãƒˆã—ã¦ã‚ˆã„ã‹ã‚ã‹ã‚‰ãªã„ãŒã€Linux カーãƒãƒ«é–‹ç™ºã‚³ãƒŸãƒ¥ 223ã‚ãªãŸãŒã©ã“ã‹ã‚‰ã‚¹ã‚¿ãƒ¼ãƒˆã—ã¦è‰¯ã„ã‹ã‚ã‹ã‚‰ãªã„ãŒã€Linux カーãƒãƒ«é–‹ç™ºã‚³ãƒŸãƒ¥
222ニティã«å‚加ã—ã¦ä½•ã‹ã™ã‚‹ã“ã¨ã‚’ã•ãŒã—ã¦ã„ã‚‹å ´åˆã«ã¯ã€Linux kernel 224ニティã«å‚加ã—ã¦ä½•ã‹ã™ã‚‹ã“ã¨ã‚’ã•ãŒã—ã¦ã„ã‚‹å ´åˆã«ã¯ã€Linux kernel
223Janitor's プロジェクトã«ã„ã‘ã°ã‚ˆã„ã§ã—ょㆠ- 225Janitor's プロジェクトã«ã„ã‘ã°è‰¯ã„ã§ã—ょㆠ-
224 http://janitor.kernelnewbies.org/ 226 http://janitor.kernelnewbies.org/
225ã“ã“ã¯ãã®ã‚ˆã†ãªã‚¹ã‚¿ãƒ¼ãƒˆã‚’ã™ã‚‹ã®ã«ã†ã£ã¦ã¤ã‘ã®å ´æ‰€ã§ã™ã€‚ã“ã“ã«ã¯ã€ 227ã“ã“ã¯ãã®ã‚ˆã†ãªã‚¹ã‚¿ãƒ¼ãƒˆã‚’ã™ã‚‹ã®ã«ã†ã£ã¦ã¤ã‘ã®å ´æ‰€ã§ã™ã€‚ã“ã“ã«ã¯ã€
226Linux カーãƒãƒ«ã‚½ãƒ¼ã‚¹ãƒ„リーã®ä¸­ã«å«ã¾ã‚Œã‚‹ã€ãã‚Œã„ã«ã—ã€ä¿®æ­£ã—ãªã‘ã‚Œã°ãª 228Linux カーãƒãƒ«ã‚½ãƒ¼ã‚¹ãƒ„リーã®ä¸­ã«å«ã¾ã‚Œã‚‹ã€ãã‚Œã„ã«ã—ã€ä¿®æ­£ã—ãªã‘ã‚Œã°ãª
@@ -243,7 +245,7 @@ Linux カーãƒãƒ«ã‚½ãƒ¼ã‚¹ãƒ„リーã®ä¸­ã«å«ã¾ã‚Œã‚‹ã€ãã‚Œã„ã«ã—ã€ä¿
243自己å‚照方å¼ã§ã€ç´¢å¼•ãŒã¤ã„㟠web å½¢å¼ã§ã€ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã‚’å‚ç…§ã™ã‚‹ã“ã¨ãŒ 245自己å‚照方å¼ã§ã€ç´¢å¼•ãŒã¤ã„㟠web å½¢å¼ã§ã€ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã‚’å‚ç…§ã™ã‚‹ã“ã¨ãŒ
244ã§ãã¾ã™ã€‚ã“ã®æœ€æ–°ã®ç´ æ™´ã—ã„カーãƒãƒ«ã‚³ãƒ¼ãƒ‰ã®ãƒªãƒã‚¸ãƒˆãƒªã¯ä»¥ä¸‹ã§è¦‹ã¤ã‹ã‚Š 246ã§ãã¾ã™ã€‚ã“ã®æœ€æ–°ã®ç´ æ™´ã—ã„カーãƒãƒ«ã‚³ãƒ¼ãƒ‰ã®ãƒªãƒã‚¸ãƒˆãƒªã¯ä»¥ä¸‹ã§è¦‹ã¤ã‹ã‚Š
245ã¾ã™- 247ã¾ã™-
246 http://sosdg.org/~coywolf/lxr/ 248 http://sosdg.org/~qiyong/lxr/
247 249
248開発プロセス 250開発プロセス
249----------------------- 251-----------------------
@@ -265,9 +267,9 @@ Linux カーãƒãƒ«ã®é–‹ç™ºãƒ—ロセスã¯ç¾åœ¨å¹¾ã¤ã‹ã®ç•°ãªã‚‹ãƒ¡ã‚¤ãƒ³ã‚
265以下ã®ã¨ãŠã‚Š- 267以下ã®ã¨ãŠã‚Š-
266 268
267 - æ–°ã—ã„カーãƒãƒ«ãŒãƒªãƒªãƒ¼ã‚¹ã•ã‚ŒãŸç›´å¾Œã«ã€2週間ã®ç‰¹åˆ¥æœŸé–“ãŒè¨­ã‘られ〠269 - æ–°ã—ã„カーãƒãƒ«ãŒãƒªãƒªãƒ¼ã‚¹ã•ã‚ŒãŸç›´å¾Œã«ã€2週間ã®ç‰¹åˆ¥æœŸé–“ãŒè¨­ã‘られã€
268 ã“ã®æœŸé–“中ã«ã€ãƒ¡ãƒ³ãƒ†ãƒŠãƒ¼é”㯠Linus ã«å¤§ããªå·®åˆ†ã‚’é€ã‚‹ã“ã¨ãŒã§ãã¾ 270 ã“ã®æœŸé–“中ã«ã€ãƒ¡ãƒ³ãƒ†ãƒŠé”㯠Linus ã«å¤§ããªå·®åˆ†ã‚’é€ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
269 ã™ã€‚ã“ã®ã‚ˆã†ãªå·®åˆ†ã¯é€šå¸¸ -mm カーãƒãƒ«ã«æ•°é€±é–“å«ã¾ã‚Œã¦ããŸãƒ‘ッãƒã§ 271 ã“ã®ã‚ˆã†ãªå·®åˆ†ã¯é€šå¸¸ -mm カーãƒãƒ«ã«æ•°é€±é–“å«ã¾ã‚Œã¦ããŸãƒ‘ッãƒã§ã™ã€‚
270 ã™ã€‚ 大ããªå¤‰æ›´ã¯ git(カーãƒãƒ«ã®ã‚½ãƒ¼ã‚¹ç®¡ç†ãƒ„ールã€è©³ç´°ã¯ 272 大ããªå¤‰æ›´ã¯ git(カーãƒãƒ«ã®ã‚½ãƒ¼ã‚¹ç®¡ç†ãƒ„ールã€è©³ç´°ã¯
271 http://git.or.cz/ å‚ç…§) を使ã£ã¦é€ã‚‹ã®ãŒå¥½ã¾ã—ã„ã‚„ã‚Šæ–¹ã§ã™ãŒã€ãƒ‘ッ 273 http://git.or.cz/ å‚ç…§) を使ã£ã¦é€ã‚‹ã®ãŒå¥½ã¾ã—ã„ã‚„ã‚Šæ–¹ã§ã™ãŒã€ãƒ‘ッ
272 ãƒãƒ•ã‚¡ã‚¤ãƒ«ã®å½¢å¼ã®ã¾ã¾é€ã‚‹ã®ã§ã‚‚å分ã§ã™ã€‚ 274 ãƒãƒ•ã‚¡ã‚¤ãƒ«ã®å½¢å¼ã®ã¾ã¾é€ã‚‹ã®ã§ã‚‚å分ã§ã™ã€‚
273 275
@@ -285,6 +287,10 @@ Linux カーãƒãƒ«ã®é–‹ç™ºãƒ—ロセスã¯ç¾åœ¨å¹¾ã¤ã‹ã®ç•°ãªã‚‹ãƒ¡ã‚¤ãƒ³ã‚
285 ã«å®‰å®šã—ãŸçŠ¶æ…‹ã«ã‚ã‚‹ã¨åˆ¤æ–­ã—ãŸã¨ãã«ãƒªãƒªãƒ¼ã‚¹ã•ã‚Œã¾ã™ã€‚目標ã¯æ¯Žé€±æ–° 287 ã«å®‰å®šã—ãŸçŠ¶æ…‹ã«ã‚ã‚‹ã¨åˆ¤æ–­ã—ãŸã¨ãã«ãƒªãƒªãƒ¼ã‚¹ã•ã‚Œã¾ã™ã€‚目標ã¯æ¯Žé€±æ–°
286 ã—ã„ -rc カーãƒãƒ«ã‚’リリースã™ã‚‹ã“ã¨ã§ã™ã€‚ 288 ã—ã„ -rc カーãƒãƒ«ã‚’リリースã™ã‚‹ã“ã¨ã§ã™ã€‚
287 289
290 - 以下㮠URL ã§å„ -rc リリースã«å­˜åœ¨ã™ã‚‹æ—¢çŸ¥ã®å¾Œæˆ»ã‚Šå•é¡Œã®ãƒªã‚¹ãƒˆ
291 ãŒè¿½è·¡ã•ã‚Œã¾ã™-
292 http://kernelnewbies.org/known_regressions
293
288 - ã“ã®ãƒ—ロセスã¯ã‚«ãƒ¼ãƒãƒ«ãŒ 「準備ãŒã§ããŸã€ã¨è€ƒãˆã‚‰ã‚Œã‚‹ã¾ã§ç¶™ç¶šã—ã¾ 294 - ã“ã®ãƒ—ロセスã¯ã‚«ãƒ¼ãƒãƒ«ãŒ 「準備ãŒã§ããŸã€ã¨è€ƒãˆã‚‰ã‚Œã‚‹ã¾ã§ç¶™ç¶šã—ã¾
289 ã™ã€‚ã“ã®ãƒ—ロセスã¯ã ã„ãŸã„ 6週間継続ã—ã¾ã™ã€‚ 295 ã™ã€‚ã“ã®ãƒ—ロセスã¯ã ã„ãŸã„ 6週間継続ã—ã¾ã™ã€‚
290 296
@@ -331,8 +337,8 @@ Andrew ã¯å€‹åˆ¥ã®ã‚µãƒ–システムカーãƒãƒ«ãƒ„リーã¨ãƒ‘ッãƒã‚’å…¨ã¦é
331linux-kernel メーリングリストã§åŽé›†ã•ã‚ŒãŸå¤šæ•°ã®ãƒ‘ッãƒã¨åŒæ™‚ã«ä¸€ã¤ã«ã¾ 337linux-kernel メーリングリストã§åŽé›†ã•ã‚ŒãŸå¤šæ•°ã®ãƒ‘ッãƒã¨åŒæ™‚ã«ä¸€ã¤ã«ã¾
332ã¨ã‚ã¾ã™ã€‚ 338ã¨ã‚ã¾ã™ã€‚
333ã“ã®ãƒ„リーã¯æ–°æ©Ÿèƒ½ã¨ãƒ‘ッãƒãŒæ¤œè¨¼ã•ã‚Œã‚‹å ´ã¨ãªã‚Šã¾ã™ã€‚ã‚る期間ã®é–“パッム339ã“ã®ãƒ„リーã¯æ–°æ©Ÿèƒ½ã¨ãƒ‘ッãƒãŒæ¤œè¨¼ã•ã‚Œã‚‹å ´ã¨ãªã‚Šã¾ã™ã€‚ã‚る期間ã®é–“パッãƒ
334㌠-mm ã«å…¥ã£ã¦ä¾¡å€¤ã‚’証明ã•ã‚ŒãŸã‚‰ã€Andrew やサブシステムメンテナãŒã€ãƒ¡ 340㌠-mm ã«å…¥ã£ã¦ä¾¡å€¤ã‚’証明ã•ã‚ŒãŸã‚‰ã€Andrew やサブシステムメンテナãŒã€
335インラインã¸å…¥ã‚Œã‚‹ã‚ˆã†ã« Linus ã«ãƒ—ッシュã—ã¾ã™ã€‚ 341メインラインã¸å…¥ã‚Œã‚‹ã‚ˆã†ã« Linus ã«ãƒ—ッシュã—ã¾ã™ã€‚
336 342
337メインカーãƒãƒ«ãƒ„リーã«å«ã‚ã‚‹ãŸã‚ã« Linus ã«é€ã‚‹å‰ã«ã€ã™ã¹ã¦ã®æ–°ã—ã„パッ 343メインカーãƒãƒ«ãƒ„リーã«å«ã‚ã‚‹ãŸã‚ã« Linus ã«é€ã‚‹å‰ã«ã€ã™ã¹ã¦ã®æ–°ã—ã„パッ
338ãƒãŒ -mm ツリーã§ãƒ†ã‚¹ãƒˆã•ã‚Œã‚‹ã“ã¨ãŒå¼·ã推奨ã•ã‚Œã¾ã™ã€‚ 344ãƒãŒ -mm ツリーã§ãƒ†ã‚¹ãƒˆã•ã‚Œã‚‹ã“ã¨ãŒå¼·ã推奨ã•ã‚Œã¾ã™ã€‚
@@ -460,7 +466,7 @@ MAINTAINERS ファイルã«ãƒªã‚¹ãƒˆãŒã‚ã‚Šã¾ã™ã®ã§å‚ç…§ã—ã¦ãã ã•ã
460ã›ã‚“- 466ã›ã‚“-
461彼らã¯ã‚ãªãŸã®ãƒ‘ッãƒã®è¡Œæ¯Žã«ã‚³ãƒ¡ãƒ³ãƒˆã‚’入れãŸã„ã®ã§ã€ãã®ãŸã‚ã«ã¯ãã†ã™ 467彼らã¯ã‚ãªãŸã®ãƒ‘ッãƒã®è¡Œæ¯Žã«ã‚³ãƒ¡ãƒ³ãƒˆã‚’入れãŸã„ã®ã§ã€ãã®ãŸã‚ã«ã¯ãã†ã™
462ã‚‹ã—ã‹ã‚ã‚Šã¾ã›ã‚“。ã‚ãªãŸã®ãƒ¡ãƒ¼ãƒ«ãƒ—ログラムãŒç©ºç™½ã‚„タブを圧縮ã—ãªã„よㆠ468ã‚‹ã—ã‹ã‚ã‚Šã¾ã›ã‚“。ã‚ãªãŸã®ãƒ¡ãƒ¼ãƒ«ãƒ—ログラムãŒç©ºç™½ã‚„タブを圧縮ã—ãªã„よã†
463ã«ç¢ºèªã—ãŸæ–¹ãŒã„ã„ã§ã™ã€‚最åˆã®è‰¯ã„テストã¨ã—ã¦ã¯ã€è‡ªåˆ†ã«ãƒ¡ãƒ¼ãƒ«ã‚’é€ã£ã¦ 469ã«ç¢ºèªã—ãŸæ–¹ãŒè‰¯ã„ã§ã™ã€‚最åˆã®è‰¯ã„テストã¨ã—ã¦ã¯ã€è‡ªåˆ†ã«ãƒ¡ãƒ¼ãƒ«ã‚’é€ã£ã¦
464ã¿ã¦ã€ãã®ãƒ‘ッãƒã‚’自分ã§å½“ã¦ã¦ã¿ã‚‹ã“ã¨ã§ã™ã€‚ã‚‚ã—ãã‚ŒãŒã†ã¾ãè¡Œã‹ãªã„㪠470ã¿ã¦ã€ãã®ãƒ‘ッãƒã‚’自分ã§å½“ã¦ã¦ã¿ã‚‹ã“ã¨ã§ã™ã€‚ã‚‚ã—ãã‚ŒãŒã†ã¾ãè¡Œã‹ãªã„ãª
465らã€ã‚ãªãŸã®ãƒ¡ãƒ¼ãƒ«ãƒ—ログラムを直ã—ã¦ã‚‚らã†ã‹ã€æ­£ã—ãå‹•ãよã†ã«å¤‰ãˆã‚‹ã¹ 471らã€ã‚ãªãŸã®ãƒ¡ãƒ¼ãƒ«ãƒ—ログラムを直ã—ã¦ã‚‚らã†ã‹ã€æ­£ã—ãå‹•ãよã†ã«å¤‰ãˆã‚‹ã¹
466ãã§ã™ã€‚ 472ãã§ã™ã€‚
@@ -507,14 +513,14 @@ MAINTAINERS ファイルã«ãƒªã‚¹ãƒˆãŒã‚ã‚Šã¾ã™ã®ã§å‚ç…§ã—ã¦ãã ã•ã
507ã¨ã‚‚普通ã®ã“ã¨ã§ã™ã€‚ã“ã‚Œã¯ã‚ãªãŸã®ãƒ‘ッãƒãŒå—ã‘入れられãªã„ã¨ã„ã†ã“ã¨ã§ 513ã¨ã‚‚普通ã®ã“ã¨ã§ã™ã€‚ã“ã‚Œã¯ã‚ãªãŸã®ãƒ‘ッãƒãŒå—ã‘入れられãªã„ã¨ã„ã†ã“ã¨ã§
508㯠*ã‚ã‚Šã¾ã›ã‚“*ã€ãã—ã¦ã‚ãªãŸè‡ªèº«ã«å対ã™ã‚‹ã“ã¨ã‚’æ„味ã™ã‚‹ã®ã§ã‚‚ *ã‚ã‚Šã¾ 514㯠*ã‚ã‚Šã¾ã›ã‚“*ã€ãã—ã¦ã‚ãªãŸè‡ªèº«ã«å対ã™ã‚‹ã“ã¨ã‚’æ„味ã™ã‚‹ã®ã§ã‚‚ *ã‚ã‚Šã¾
509ã›ã‚“*。å˜ã«è‡ªåˆ†ã®ãƒ‘ッãƒã«å¯¾ã—ã¦æŒ‡æ‘˜ã•ã‚ŒãŸå•é¡Œã‚’å…¨ã¦ä¿®æ­£ã—ã¦å†é€ã™ã‚Œã° 515ã›ã‚“*。å˜ã«è‡ªåˆ†ã®ãƒ‘ッãƒã«å¯¾ã—ã¦æŒ‡æ‘˜ã•ã‚ŒãŸå•é¡Œã‚’å…¨ã¦ä¿®æ­£ã—ã¦å†é€ã™ã‚Œã°
510ã„ã„ã®ã§ã™ã€‚ 516良ã„ã®ã§ã™ã€‚
511 517
512 518
513カーãƒãƒ«ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã¨ä¼æ¥­çµ„ç¹”ã®ã¡ãŒã„ 519カーãƒãƒ«ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã¨ä¼æ¥­çµ„ç¹”ã®ã¡ãŒã„
514----------------------------------------------------------------- 520-----------------------------------------------------------------
515 521
516カーãƒãƒ«ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã¯å¤§éƒ¨åˆ†ã®ä¼çµ±çš„ãªä¼šç¤¾ã®é–‹ç™ºç’°å¢ƒã¨ã¯ç•°ã£ãŸã‚„り方㧠522カーãƒãƒ«ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã¯å¤§éƒ¨åˆ†ã®ä¼çµ±çš„ãªä¼šç¤¾ã®é–‹ç™ºç’°å¢ƒã¨ã¯ç•°ã£ãŸã‚„ã‚Šæ–¹ã§
517å‹•ã„ã¦ã„ã¾ã™ã€‚以下ã¯å•é¡Œã‚’é¿ã‘ã‚‹ãŸã‚ã«ã§ãã‚‹ã¨ã‚ˆã„ã“ã¨ã®ã®ãƒªã‚¹ãƒˆã§ã™- 523å‹•ã„ã¦ã„ã¾ã™ã€‚以下ã¯å•é¡Œã‚’é¿ã‘ã‚‹ãŸã‚ã«ã§ãã‚‹ã¨è‰¯ã„ã“ã¨ã®ãƒªã‚¹ãƒˆã§ã™-
518 524
519 ã‚ãªãŸã®æ案ã™ã‚‹å¤‰æ›´ã«ã¤ã„ã¦è¨€ã†ã¨ãã®ã†ã¾ã„言ã„方: 525 ã‚ãªãŸã®æ案ã™ã‚‹å¤‰æ›´ã«ã¤ã„ã¦è¨€ã†ã¨ãã®ã†ã¾ã„言ã„方:
520 526
@@ -525,7 +531,7 @@ MAINTAINERS ファイルã«ãƒªã‚¹ãƒˆãŒã‚ã‚Šã¾ã™ã®ã§å‚ç…§ã—ã¦ãã ã•ã
525 - "以下ã¯ä¸€é€£ã®å°ã•ãªãƒ‘ッãƒç¾¤ã§ã™ãŒ..." 531 - "以下ã¯ä¸€é€£ã®å°ã•ãªãƒ‘ッãƒç¾¤ã§ã™ãŒ..."
526 - "ã“ã‚Œã¯å…¸åž‹çš„ãªãƒžã‚·ãƒ³ã§ã®æ€§èƒ½ã‚’å‘上ã•ã›ã¾ã™.." 532 - "ã“ã‚Œã¯å…¸åž‹çš„ãªãƒžã‚·ãƒ³ã§ã®æ€§èƒ½ã‚’å‘上ã•ã›ã¾ã™.."
527 533
528 ã‚„ã‚ãŸæ–¹ãŒã„ã„悪ã„言ã„方: 534 ã‚„ã‚ãŸæ–¹ãŒè‰¯ã„悪ã„言ã„方:
529 535
530 - ã“ã®ã‚„り方㧠AIX/ptx/Solaris ã§ã¯ã§ããŸã®ã§ã€ã§ãã‚‹ã¯ãšã  536 - ã“ã®ã‚„り方㧠AIX/ptx/Solaris ã§ã¯ã§ããŸã®ã§ã€ã§ãã‚‹ã¯ãšã 
531 - ç§ã¯ã“れを20å¹´ã‚‚ã®é–“ã‚„ã£ã¦ããŸã€ã ã‹ã‚‰ 537 - ç§ã¯ã“れを20å¹´ã‚‚ã®é–“ã‚„ã£ã¦ããŸã€ã ã‹ã‚‰
@@ -575,10 +581,10 @@ Linux カーãƒãƒ«ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã¯ã€ä¸€åº¦ã«å¤§é‡ã®ã‚³ãƒ¼ãƒ‰ã®å¡Šã‚’å–
575 581
5761) å°ã•ã„パッãƒã¯ã‚ãªãŸã®ãƒ‘ッãƒãŒé©ç”¨ã•ã‚Œã‚‹è¦‹è¾¼ã¿ã‚’大ããã—ã¾ã™ã€ã‚«ãƒ¼ 5821) å°ã•ã„パッãƒã¯ã‚ãªãŸã®ãƒ‘ッãƒãŒé©ç”¨ã•ã‚Œã‚‹è¦‹è¾¼ã¿ã‚’大ããã—ã¾ã™ã€ã‚«ãƒ¼
577 ãƒãƒ«ã®äººé”ã¯ãƒ‘ッãƒãŒæ­£ã—ã„ã‹ã©ã†ã‹ã‚’確èªã™ã‚‹æ™‚間や労力をã‹ã‘ãªã„ã‹ 583 ãƒãƒ«ã®äººé”ã¯ãƒ‘ッãƒãŒæ­£ã—ã„ã‹ã©ã†ã‹ã‚’確èªã™ã‚‹æ™‚間や労力をã‹ã‘ãªã„ã‹
578 らã§ã™ã€‚5è¡Œã®ãƒ‘ッãƒã¯ãƒ¡ãƒ³ãƒ†ãƒŠãŒãŸã£ãŸ1秒見るã ã‘ã§é©ç”¨ã§ãã¾ã™ã€‚ã— 584 らã§ã™ã€‚5è¡Œã®ãƒ‘ッãƒã¯ãƒ¡ãƒ³ãƒ†ãƒŠãŒãŸã£ãŸ1秒見るã ã‘ã§é©ç”¨ã§ãã¾ã™ã€‚
579 ã‹ã—ã€500è¡Œã®ãƒ‘ッãƒã¯ã€æ­£ã—ã„ã“ã¨ã‚’レビューã™ã‚‹ã®ã«æ•°æ™‚é–“ã‹ã‹ã‚‹ã‹ã‚‚ 585 ã—ã‹ã—ã€500è¡Œã®ãƒ‘ッãƒã¯ã€æ­£ã—ã„ã“ã¨ã‚’レビューã™ã‚‹ã®ã«æ•°æ™‚é–“ã‹ã‹ã‚‹ã‹
580 ã—ã‚Œã¾ã›ã‚“(時間ã¯ãƒ‘ッãƒã®ã‚µã‚¤ã‚ºãªã©ã«ã‚ˆã‚ŠæŒ‡æ•°é–¢æ•°ã«æ¯”例ã—ã¦ã‹ã‹ã‚Šã¾ 586 ã‚‚ã—ã‚Œã¾ã›ã‚“(時間ã¯ãƒ‘ッãƒã®ã‚µã‚¤ã‚ºãªã©ã«ã‚ˆã‚ŠæŒ‡æ•°é–¢æ•°ã«æ¯”例ã—ã¦ã‹ã‹ã‚Š
581 ã™) 587 ã¾ã™)
582 588
583 å°ã•ã„パッãƒã¯ä½•ã‹ã‚ã£ãŸã¨ãã«ãƒ‡ãƒãƒƒã‚°ã‚‚ã¨ã¦ã‚‚ç°¡å˜ã«ãªã‚Šã¾ã™ã€‚パッ 589 å°ã•ã„パッãƒã¯ä½•ã‹ã‚ã£ãŸã¨ãã«ãƒ‡ãƒãƒƒã‚°ã‚‚ã¨ã¦ã‚‚ç°¡å˜ã«ãªã‚Šã¾ã™ã€‚パッ
584 ãƒã‚’1個1個å–り除ãã®ã¯ã€ã¨ã¦ã‚‚大ããªãƒ‘ッãƒã‚’当ã¦ãŸå¾Œã«(ã‹ã¤ã€ä½•ã‹ãŠ 590 ãƒã‚’1個1個å–り除ãã®ã¯ã€ã¨ã¦ã‚‚大ããªãƒ‘ッãƒã‚’当ã¦ãŸå¾Œã«(ã‹ã¤ã€ä½•ã‹ãŠ
@@ -587,23 +593,23 @@ Linux カーãƒãƒ«ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã¯ã€ä¸€åº¦ã«å¤§é‡ã®ã‚³ãƒ¼ãƒ‰ã®å¡Šã‚’å–
5872) å°ã•ã„パッãƒã‚’é€ã‚‹ã ã‘ã§ãªãã€é€ã‚‹ã¾ãˆã«ã€æ›¸ãç›´ã—ã¦ã€ã‚·ãƒ³ãƒ—ルã«ã™ 5932) å°ã•ã„パッãƒã‚’é€ã‚‹ã ã‘ã§ãªãã€é€ã‚‹ã¾ãˆã«ã€æ›¸ãç›´ã—ã¦ã€ã‚·ãƒ³ãƒ—ルã«ã™
588 ã‚‹(ã‚‚ã—ãã¯ã€å˜ã«é †ç•ªã‚’変ãˆã‚‹ã ã‘ã§ã‚‚)ã“ã¨ã‚‚ã€ã¨ã¦ã‚‚é‡è¦ã§ã™ã€‚ 594 ã‚‹(ã‚‚ã—ãã¯ã€å˜ã«é †ç•ªã‚’変ãˆã‚‹ã ã‘ã§ã‚‚)ã“ã¨ã‚‚ã€ã¨ã¦ã‚‚é‡è¦ã§ã™ã€‚
589 595
590以下ã¯ã‚«ãƒ¼ãƒãƒ«é–‹ç™ºè€…ã® Al Viro ã®ãŸã¨ãˆè©±ã—ã§ã™ï¼š 596以下ã¯ã‚«ãƒ¼ãƒãƒ«é–‹ç™ºè€…ã® Al Viro ã®ãŸã¨ãˆè©±ã§ã™ï¼š
591 597
592 "生徒ã®æ•°å­¦ã®å®¿é¡Œã‚’採点ã™ã‚‹å…ˆç”Ÿã®ã“ã¨ã‚’考ãˆã¦ã¿ã¦ãã ã•ã„ã€å…ˆ 598 "生徒ã®æ•°å­¦ã®å®¿é¡Œã‚’採点ã™ã‚‹å…ˆç”Ÿã®ã“ã¨ã‚’考ãˆã¦ã¿ã¦ãã ã•ã„ã€å…ˆ
593 生ã¯ç”Ÿå¾’ãŒè§£ã«åˆ°é”ã™ã‚‹ã¾ã§ã®è©¦è¡ŒéŒ¯èª¤ã‚’ã¿ãŸã„ã¨ã¯æ€ã‚ãªã„ã§ã—ょ 599 生ã¯ç”Ÿå¾’ãŒè§£ã«åˆ°é”ã™ã‚‹ã¾ã§ã®è©¦è¡ŒéŒ¯èª¤ã‚’見ãŸã„ã¨ã¯æ€ã‚ãªã„ã§ã—ょ
594 ã†ã€‚先生ã¯ç°¡æ½”ãªæœ€é«˜ã®è§£ã‚’ã¿ãŸã„ã®ã§ã™ã€‚良ã„生徒ã¯ã“れを知ã£ã¦ 600 ã†ã€‚先生ã¯ç°¡æ½”ãªæœ€é«˜ã®è§£ã‚’見ãŸã„ã®ã§ã™ã€‚良ã„生徒ã¯ã“れを知ã£ã¦
595 ãŠã‚Šã€ãã—ã¦æœ€çµ‚解ã®å‰ã®ä¸­é–“作業をæ出ã™ã‚‹ã“ã¨ã¯æ±ºã—ã¦ãªã„ã®ã§ 601 ãŠã‚Šã€ãã—ã¦æœ€çµ‚解ã®å‰ã®ä¸­é–“作業をæ出ã™ã‚‹ã“ã¨ã¯æ±ºã—ã¦ãªã„ã®ã§
596 ã™" 602 ã™"
597 603
598 カーãƒãƒ«é–‹ç™ºã§ã‚‚ã“ã‚Œã¯åŒã˜ã§ã™ã€‚メンテナーé”ã¨ãƒ¬ãƒ“ューアé”ã¯ã€ 604 カーãƒãƒ«é–‹ç™ºã§ã‚‚ã“ã‚Œã¯åŒã˜ã§ã™ã€‚メンテナé”ã¨ãƒ¬ãƒ“ューアé”ã¯ã€
599 å•é¡Œã‚’解決ã™ã‚‹è§£ã®èƒŒå¾Œã«ãªã‚‹æ€è€ƒãƒ—ロセスをã¿ãŸã„ã¨ã¯æ€ã„ã¾ã›ã‚“。 605 å•é¡Œã‚’解決ã™ã‚‹è§£ã®èƒŒå¾Œã«ãªã‚‹æ€è€ƒãƒ—ロセスを見ãŸã„ã¨ã¯æ€ã„ã¾ã›ã‚“。
600 彼らã¯å˜ç´”ã§ã‚ã–ã‚„ã‹ãªè§£æ±ºæ–¹æ³•ã‚’ã¿ãŸã„ã®ã§ã™ã€‚ 606 彼らã¯å˜ç´”ã§ã‚ã–ã‚„ã‹ãªè§£æ±ºæ–¹æ³•ã‚’見ãŸã„ã®ã§ã™ã€‚
601 607
602ã‚ã–ã‚„ã‹ãªè§£ã‚’説明ã™ã‚‹ã®ã¨ã€ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã¨å…±ã«ä»•äº‹ã‚’ã—ã€æœªè§£æ±ºã®ä»•äº‹ã‚’ 608ã‚ã–ã‚„ã‹ãªè§£ã‚’説明ã™ã‚‹ã®ã¨ã€ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã¨å…±ã«ä»•äº‹ã‚’ã—ã€æœªè§£æ±ºã®ä»•äº‹ã‚’
603è­°è«–ã™ã‚‹ã“ã¨ã®ãƒãƒ©ãƒ³ã‚¹ã‚’キープã™ã‚‹ã®ã¯é›£ã—ã„ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。 609è­°è«–ã™ã‚‹ã“ã¨ã®ãƒãƒ©ãƒ³ã‚¹ã‚’キープã™ã‚‹ã®ã¯é›£ã—ã„ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。
604ã§ã™ã‹ã‚‰ã€é–‹ç™ºãƒ—ロセスã®æ—©æœŸæ®µéšŽã§æ”¹å–„ã®ãŸã‚ã®ãƒ•ã‚£ãƒ¼ãƒ‰ãƒãƒƒã‚¯ã‚’もらã†ã‚ˆ 610ã§ã™ã‹ã‚‰ã€é–‹ç™ºãƒ—ロセスã®æ—©æœŸæ®µéšŽã§æ”¹å–„ã®ãŸã‚ã®ãƒ•ã‚£ãƒ¼ãƒ‰ãƒãƒƒã‚¯ã‚’もらã†ã‚ˆ
605ã†ã«ã™ã‚‹ã®ã‚‚ã„ã„ã§ã™ãŒã€å¤‰æ›´ç‚¹ã‚’å°ã•ã„部分ã«åˆ†å‰²ã—ã¦å…¨ä½“ã§ã¯ã¾ã å®Œæˆã— 611ã†ã«ã™ã‚‹ã®ã‚‚良ã„ã§ã™ãŒã€å¤‰æ›´ç‚¹ã‚’å°ã•ã„部分ã«åˆ†å‰²ã—ã¦å…¨ä½“ã§ã¯ã¾ã å®Œæˆã—
606ã¦ã„ãªã„仕事を(部分的ã«)å–り込んã§ã‚‚らãˆã‚‹ã‚ˆã†ã«ã™ã‚‹ã“ã¨ã‚‚ã„ã„ã“ã¨ã§ã™ã€‚ 612ã¦ã„ãªã„仕事を(部分的ã«)å–り込んã§ã‚‚らãˆã‚‹ã‚ˆã†ã«ã™ã‚‹ã“ã¨ã‚‚良ã„ã“ã¨ã§ã™ã€‚
607 613
608ã¾ãŸã€ã§ã上ãŒã£ã¦ã„ãªã„ã‚‚ã®ã‚„ã€"å°†æ¥ç›´ã™" よã†ãªãƒ‘ッãƒã‚’ã€æœ¬æµã«å«ã‚ 614ã¾ãŸã€ã§ã上ãŒã£ã¦ã„ãªã„ã‚‚ã®ã‚„ã€"å°†æ¥ç›´ã™" よã†ãªãƒ‘ッãƒã‚’ã€æœ¬æµã«å«ã‚
609ã¦ã‚‚らã†ã‚ˆã†ã«é€ã£ã¦ã‚‚ã€ãã‚Œã¯å—ã‘付ã‘られãªã„ã“ã¨ã‚’ç†è§£ã—ã¦ãã ã•ã„。 615ã¦ã‚‚らã†ã‚ˆã†ã«é€ã£ã¦ã‚‚ã€ãã‚Œã¯å—ã‘付ã‘られãªã„ã“ã¨ã‚’ç†è§£ã—ã¦ãã ã•ã„。
@@ -629,7 +635,7 @@ Linux カーãƒãƒ«ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã¯ã€ä¸€åº¦ã«å¤§é‡ã®ã‚³ãƒ¼ãƒ‰ã®å¡Šã‚’å–
629 - テストçµæžœ 635 - テストçµæžœ
630 636
631ã“ã‚Œã«ã¤ã„ã¦å…¨ã¦ãŒã©ã®ã‚ˆã†ã«ã‚ã‚‹ã¹ãã‹ã«ã¤ã„ã¦ã®è©³ç´°ã¯ã€ä»¥ä¸‹ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ 637ã“ã‚Œã«ã¤ã„ã¦å…¨ã¦ãŒã©ã®ã‚ˆã†ã«ã‚ã‚‹ã¹ãã‹ã«ã¤ã„ã¦ã®è©³ç´°ã¯ã€ä»¥ä¸‹ã®ãƒ‰ã‚­ãƒ¥ãƒ¡
632ント㮠ChangeLog セクションをã¿ã¦ãã ã•ã„- 638ント㮠ChangeLog セクションを見ã¦ãã ã•ã„-
633 "The Perfect Patch" 639 "The Perfect Patch"
634 http://www.zip.com.au/~akpm/linux/patches/stuff/tpp.txt 640 http://www.zip.com.au/~akpm/linux/patches/stuff/tpp.txt
635 641
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index a57c1f216b21..085e4a095eaa 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -68,6 +68,7 @@ parameter is applicable:
68 PARIDE The ParIDE (parallel port IDE) subsystem is enabled. 68 PARIDE The ParIDE (parallel port IDE) subsystem is enabled.
69 PARISC The PA-RISC architecture is enabled. 69 PARISC The PA-RISC architecture is enabled.
70 PCI PCI bus support is enabled. 70 PCI PCI bus support is enabled.
71 PCIE PCI Express support is enabled.
71 PCMCIA The PCMCIA subsystem is enabled. 72 PCMCIA The PCMCIA subsystem is enabled.
72 PNP Plug & Play support is enabled. 73 PNP Plug & Play support is enabled.
73 PPC PowerPC architecture is enabled. 74 PPC PowerPC architecture is enabled.
@@ -864,6 +865,10 @@ and is between 256 and 4096 characters. It is defined in the file
864 lasi= [HW,SCSI] PARISC LASI driver for the 53c700 chip 865 lasi= [HW,SCSI] PARISC LASI driver for the 53c700 chip
865 Format: addr:<io>,irq:<irq> 866 Format: addr:<io>,irq:<irq>
866 867
868 libata.noacpi [LIBATA] Disables use of ACPI in libata suspend/resume
869 when set.
870 Format: <int>
871
867 load_ramdisk= [RAM] List of ramdisks to load from floppy 872 load_ramdisk= [RAM] List of ramdisks to load from floppy
868 See Documentation/ramdisk.txt. 873 See Documentation/ramdisk.txt.
869 874
@@ -1009,6 +1014,10 @@ and is between 256 and 4096 characters. It is defined in the file
1009 meye.*= [HW] Set MotionEye Camera parameters 1014 meye.*= [HW] Set MotionEye Camera parameters
1010 See Documentation/video4linux/meye.txt. 1015 See Documentation/video4linux/meye.txt.
1011 1016
1017 mfgpt_irq= [IA-32] Specify the IRQ to use for the
1018 Multi-Function General Purpose Timers on AMD Geode
1019 platforms.
1020
1012 mga= [HW,DRM] 1021 mga= [HW,DRM]
1013 1022
1014 mousedev.tap_time= 1023 mousedev.tap_time=
@@ -1074,16 +1083,19 @@ and is between 256 and 4096 characters. It is defined in the file
1074 [NFS] set the maximum lifetime for idmapper cache 1083 [NFS] set the maximum lifetime for idmapper cache
1075 entries. 1084 entries.
1076 1085
1086 nfs.enable_ino64=
1087 [NFS] enable 64-bit inode numbers.
1088 If zero, the NFS client will fake up a 32-bit inode
1089 number for the readdir() and stat() syscalls instead
1090 of returning the full 64-bit number.
1091 The default is to return 64-bit inode numbers.
1092
1077 nmi_watchdog= [KNL,BUGS=X86-32] Debugging features for SMP kernels 1093 nmi_watchdog= [KNL,BUGS=X86-32] Debugging features for SMP kernels
1078 1094
1079 no387 [BUGS=X86-32] Tells the kernel to use the 387 maths 1095 no387 [BUGS=X86-32] Tells the kernel to use the 387 maths
1080 emulation library even if a 387 maths coprocessor 1096 emulation library even if a 387 maths coprocessor
1081 is present. 1097 is present.
1082 1098
1083 noacpi [LIBATA] Disables use of ACPI in libata suspend/resume
1084 when set.
1085 Format: <int>
1086
1087 noaliencache [MM, NUMA, SLAB] Disables the allocation of alien 1099 noaliencache [MM, NUMA, SLAB] Disables the allocation of alien
1088 caches in the slab allocator. Saves per-node memory, 1100 caches in the slab allocator. Saves per-node memory,
1089 but will impact performance. 1101 but will impact performance.
@@ -1160,6 +1172,9 @@ and is between 256 and 4096 characters. It is defined in the file
1160 1172
1161 nomce [X86-32] Machine Check Exception 1173 nomce [X86-32] Machine Check Exception
1162 1174
1175 nomfgpt [X86-32] Disable Multi-Function General Purpose
1176 Timer usage (for AMD Geode machines).
1177
1163 noreplace-paravirt [X86-32,PV_OPS] Don't patch paravirt_ops 1178 noreplace-paravirt [X86-32,PV_OPS] Don't patch paravirt_ops
1164 1179
1165 noreplace-smp [X86-32,SMP] Don't replace SMP instructions 1180 noreplace-smp [X86-32,SMP] Don't replace SMP instructions
@@ -1270,6 +1285,11 @@ and is between 256 and 4096 characters. It is defined in the file
1270 Mechanism 1. 1285 Mechanism 1.
1271 conf2 [X86-32] Force use of PCI Configuration 1286 conf2 [X86-32] Force use of PCI Configuration
1272 Mechanism 2. 1287 Mechanism 2.
1288 noaer [PCIE] If the PCIEAER kernel config parameter is
1289 enabled, this kernel boot option can be used to
1290 disable the use of PCIE advanced error reporting.
1291 nodomains [PCI] Disable support for multiple PCI
1292 root domains (aka PCI segments, in ACPI-speak).
1273 nommconf [X86-32,X86_64] Disable use of MMCONFIG for PCI 1293 nommconf [X86-32,X86_64] Disable use of MMCONFIG for PCI
1274 Configuration 1294 Configuration
1275 nomsi [MSI] If the PCI_MSI kernel config parameter is 1295 nomsi [MSI] If the PCI_MSI kernel config parameter is
@@ -1314,6 +1334,8 @@ and is between 256 and 4096 characters. It is defined in the file
1314 IRQ routing is enabled. 1334 IRQ routing is enabled.
1315 noacpi [X86-32] Do not use ACPI for IRQ routing 1335 noacpi [X86-32] Do not use ACPI for IRQ routing
1316 or for PCI scanning. 1336 or for PCI scanning.
1337 use_crs [X86-32] Use _CRS for PCI resource
1338 allocation.
1317 routeirq Do IRQ routing for all PCI devices. 1339 routeirq Do IRQ routing for all PCI devices.
1318 This is normally done in pci_enable_device(), 1340 This is normally done in pci_enable_device(),
1319 so this option is a temporary workaround 1341 so this option is a temporary workaround
@@ -1430,6 +1452,10 @@ and is between 256 and 4096 characters. It is defined in the file
1430 pt. [PARIDE] 1452 pt. [PARIDE]
1431 See Documentation/paride.txt. 1453 See Documentation/paride.txt.
1432 1454
1455 pty.legacy_count=
1456 [KNL] Number of legacy pty's. Overwrites compiled-in
1457 default number.
1458
1433 quiet [KNL] Disable most log messages 1459 quiet [KNL] Disable most log messages
1434 1460
1435 r128= [HW,DRM] 1461 r128= [HW,DRM]
@@ -1864,9 +1890,6 @@ and is between 256 and 4096 characters. It is defined in the file
1864 Format: 1890 Format:
1865 <io>,<irq>,<dma>,<dma2>,<sb_io>,<sb_irq>,<sb_dma>,<mpu_io>,<mpu_irq> 1891 <io>,<irq>,<dma>,<dma2>,<sb_io>,<sb_irq>,<sb_dma>,<mpu_io>,<mpu_irq>
1866 1892
1867 tsdev.xres= [TS] Horizontal screen resolution.
1868 tsdev.yres= [TS] Vertical screen resolution.
1869
1870 turbografx.map[2|3]= [HW,JOY] 1893 turbografx.map[2|3]= [HW,JOY]
1871 TurboGraFX parallel port interface 1894 TurboGraFX parallel port interface
1872 Format: 1895 Format:
diff --git a/Documentation/kobject.txt b/Documentation/kobject.txt
index 8ee49ee7c963..ca86a885ad8f 100644
--- a/Documentation/kobject.txt
+++ b/Documentation/kobject.txt
@@ -54,7 +54,6 @@ embedded in larger data structures and replace fields they duplicate.
54 54
55struct kobject { 55struct kobject {
56 const char * k_name; 56 const char * k_name;
57 char name[KOBJ_NAME_LEN];
58 struct kref kref; 57 struct kref kref;
59 struct list_head entry; 58 struct list_head entry;
60 struct kobject * parent; 59 struct kobject * parent;
@@ -223,18 +222,15 @@ decl_subsys(devices, &ktype_device, &device_uevent_ops);
223is equivalent to doing: 222is equivalent to doing:
224 223
225struct kset devices_subsys = { 224struct kset devices_subsys = {
226 .kobj = {
227 .name = "devices",
228 },
229 .ktype = &ktype_devices, 225 .ktype = &ktype_devices,
230 .uevent_ops = &device_uevent_ops, 226 .uevent_ops = &device_uevent_ops,
231}; 227};
232 228kobject_set_name(&devices_subsys, name);
233 229
234The objects that are registered with a subsystem that use the 230The objects that are registered with a subsystem that use the
235subsystem's default list must have their kset ptr set properly. These 231subsystem's default list must have their kset ptr set properly. These
236objects may have embedded kobjects or ksets. The 232objects may have embedded kobjects or ksets. The
237following helpers make setting the kset easier: 233following helper makes setting the kset easier:
238 234
239 235
240kobj_set_kset_s(obj,subsys) 236kobj_set_kset_s(obj,subsys)
@@ -242,22 +238,8 @@ kobj_set_kset_s(obj,subsys)
242- Assumes that obj->kobj exists, and is a struct kobject. 238- Assumes that obj->kobj exists, and is a struct kobject.
243- Sets the kset of that kobject to the kset <subsys>. 239- Sets the kset of that kobject to the kset <subsys>.
244 240
245
246kset_set_kset_s(obj,subsys)
247
248- Assumes that obj->kset exists, and is a struct kset.
249- Sets the kset of the embedded kobject to the kset <subsys>.
250
251subsys_set_kset(obj,subsys)
252
253- Assumes obj->subsys exists, and is a struct subsystem.
254- Sets obj->subsys.kset.kobj.kset to the subsystem's embedded kset.
255
256void subsystem_init(struct kset *s);
257int subsystem_register(struct kset *s); 241int subsystem_register(struct kset *s);
258void subsystem_unregister(struct kset *s); 242void subsystem_unregister(struct kset *s);
259struct kset *subsys_get(struct kset *s);
260void kset_put(struct kset *s);
261 243
262These are just wrappers around the respective kset_* functions. 244These are just wrappers around the respective kset_* functions.
263 245
diff --git a/Documentation/networking/bonding.txt b/Documentation/networking/bonding.txt
index 1da566630831..11340625e363 100644
--- a/Documentation/networking/bonding.txt
+++ b/Documentation/networking/bonding.txt
@@ -281,6 +281,39 @@ downdelay
281 will be rounded down to the nearest multiple. The default 281 will be rounded down to the nearest multiple. The default
282 value is 0. 282 value is 0.
283 283
284fail_over_mac
285
286 Specifies whether active-backup mode should set all slaves to
287 the same MAC address (the traditional behavior), or, when
288 enabled, change the bond's MAC address when changing the
289 active interface (i.e., fail over the MAC address itself).
290
291 Fail over MAC is useful for devices that cannot ever alter
292 their MAC address, or for devices that refuse incoming
293 broadcasts with their own source MAC (which interferes with
294 the ARP monitor).
295
296 The down side of fail over MAC is that every device on the
297 network must be updated via gratuitous ARP, vs. just updating
298 a switch or set of switches (which often takes place for any
299 traffic, not just ARP traffic, if the switch snoops incoming
300 traffic to update its tables) for the traditional method. If
301 the gratuitous ARP is lost, communication may be disrupted.
302
303 When fail over MAC is used in conjuction with the mii monitor,
304 devices which assert link up prior to being able to actually
305 transmit and receive are particularly susecptible to loss of
306 the gratuitous ARP, and an appropriate updelay setting may be
307 required.
308
309 A value of 0 disables fail over MAC, and is the default. A
310 value of 1 enables fail over MAC. This option is enabled
311 automatically if the first slave added cannot change its MAC
312 address. This option may be modified via sysfs only when no
313 slaves are present in the bond.
314
315 This option was added in bonding version 3.2.0.
316
284lacp_rate 317lacp_rate
285 318
286 Option specifying the rate in which we'll ask our link partner 319 Option specifying the rate in which we'll ask our link partner
diff --git a/Documentation/networking/proc_net_tcp.txt b/Documentation/networking/proc_net_tcp.txt
index 5e21f7cb6383..4a79209e77a7 100644
--- a/Documentation/networking/proc_net_tcp.txt
+++ b/Documentation/networking/proc_net_tcp.txt
@@ -1,8 +1,9 @@
1This document describes the interfaces /proc/net/tcp and /proc/net/tcp6. 1This document describes the interfaces /proc/net/tcp and /proc/net/tcp6.
2Note that these interfaces are deprecated in favor of tcp_diag.
2 3
3These /proc interfaces provide information about currently active TCP 4These /proc interfaces provide information about currently active TCP
4connections, and are implemented by tcp_get_info() in net/ipv4/tcp_ipv4.c and 5connections, and are implemented by tcp4_seq_show() in net/ipv4/tcp_ipv4.c
5tcp6_get_info() in net/ipv6/tcp_ipv6.c, respectively. 6and tcp6_seq_show() in net/ipv6/tcp_ipv6.c, respectively.
6 7
7It will first list all listening TCP sockets, and next list all established 8It will first list all listening TCP sockets, and next list all established
8TCP connections. A typical entry of /proc/net/tcp would look like this (split 9TCP connections. A typical entry of /proc/net/tcp would look like this (split
diff --git a/Documentation/s390/00-INDEX b/Documentation/s390/00-INDEX
new file mode 100644
index 000000000000..3a2b96302ecc
--- /dev/null
+++ b/Documentation/s390/00-INDEX
@@ -0,0 +1,26 @@
100-INDEX
2 - this file.
33270.ChangeLog
4 - ChangeLog for the UTS Global 3270-support patch (outdated).
53270.txt
6 - how to use the IBM 3270 display system support.
7cds.txt
8 - s390 common device support (common I/O layer).
9CommonIO
10 - common I/O layer command line parameters, procfs and debugfs entries
11config3270.sh
12 - example configuration for 3270 devices.
13DASD
14 - information on the DASD disk device driver.
15Debugging390.txt
16 - hints for debugging on s390 systems.
17driver-model.txt
18 - information on s390 devices and the driver model.
19monreader.txt
20 - information on accessing the z/VM monitor stream from Linux.
21s390dbf.txt
22 - information on using the s390 debug feature.
23TAPE
24 - information on the driver for channel-attached tapes.
25zfcpdump
26 - information on the s390 SCSI dump tool.
diff --git a/Documentation/s390/CommonIO b/Documentation/s390/CommonIO
index 22f82f21bc60..86320aa3fb0b 100644
--- a/Documentation/s390/CommonIO
+++ b/Documentation/s390/CommonIO
@@ -1,5 +1,5 @@
1S/390 common I/O-Layer - command line parameters and /proc entries 1S/390 common I/O-Layer - command line parameters, procfs and debugfs entries
2================================================================== 2============================================================================
3 3
4Command line parameters 4Command line parameters
5----------------------- 5-----------------------
@@ -7,9 +7,9 @@ Command line parameters
7* cio_msg = yes | no 7* cio_msg = yes | no
8 8
9 Determines whether information on found devices and sensed device 9 Determines whether information on found devices and sensed device
10 characteristics should be shown during startup, i. e. messages of the types 10 characteristics should be shown during startup or when new devices are
11 "Detected device 0.0.4711 on subchannel 0.0.0042" and "SenseID: Device 11 found, i. e. messages of the types "Detected device 0.0.4711 on subchannel
12 0.0.4711 reports: ...". 12 0.0.0042" and "SenseID: Device 0.0.4711 reports: ...".
13 13
14 Default is off. 14 Default is off.
15 15
@@ -26,8 +26,10 @@ Command line parameters
26 An ignored device can be un-ignored later; see the "/proc entries"-section for 26 An ignored device can be un-ignored later; see the "/proc entries"-section for
27 details. 27 details.
28 28
29 The devices must be given either as bus ids (0.0.abcd) or as hexadecimal 29 The devices must be given either as bus ids (0.x.abcd) or as hexadecimal
30 device numbers (0xabcd or abcd, for 2.4 backward compatibility). 30 device numbers (0xabcd or abcd, for 2.4 backward compatibility). If you
31 give a device number 0xabcd, it will be interpreted as 0.0.abcd.
32
31 You can use the 'all' keyword to ignore all devices. 33 You can use the 'all' keyword to ignore all devices.
32 The '!' operator will cause the I/O-layer to _not_ ignore a device. 34 The '!' operator will cause the I/O-layer to _not_ ignore a device.
33 The command line is parsed from left to right. 35 The command line is parsed from left to right.
@@ -81,31 +83,36 @@ Command line parameters
81 will add 0.0.a000-0.0.accc and 0.0.af00-0.0.afff to the list of ignored 83 will add 0.0.a000-0.0.accc and 0.0.af00-0.0.afff to the list of ignored
82 devices. 84 devices.
83 85
84 The devices can be specified either by bus id (0.0.abcd) or, for 2.4 backward 86 The devices can be specified either by bus id (0.x.abcd) or, for 2.4 backward
85 compatibility, by the device number in hexadecimal (0xabcd or abcd). 87 compatibility, by the device number in hexadecimal (0xabcd or abcd). Device
88 numbers given as 0xabcd will be interpreted as 0.0.abcd.
89
90* For some of the information present in the /proc filesystem in 2.4 (namely,
91 /proc/subchannels and /proc/chpids), see driver-model.txt.
92 Information formerly in /proc/irq_count is now in /proc/interrupts.
93
86 94
95debugfs entries
96---------------
87 97
88* /proc/s390dbf/cio_*/ (S/390 debug feature) 98* /sys/kernel/debug/s390dbf/cio_*/ (S/390 debug feature)
89 99
90 Some views generated by the debug feature to hold various debug outputs. 100 Some views generated by the debug feature to hold various debug outputs.
91 101
92 - /proc/s390dbf/cio_crw/sprintf 102 - /sys/kernel/debug/s390dbf/cio_crw/sprintf
93 Messages from the processing of pending channel report words (machine check 103 Messages from the processing of pending channel report words (machine check
94 handling), which will also show when CONFIG_DEBUG_CRW is defined. 104 handling).
95 105
96 - /proc/s390dbf/cio_msg/sprintf 106 - /sys/kernel/debug/s390dbf/cio_msg/sprintf
97 Various debug messages from the common I/O-layer; generally, messages which 107 Various debug messages from the common I/O-layer, including messages
98 will also show when CONFIG_DEBUG_IO is defined. 108 printed when cio_msg=yes.
99 109
100 - /proc/s390dbf/cio_trace/hex_ascii 110 - /sys/kernel/debug/s390dbf/cio_trace/hex_ascii
101 Logs the calling of functions in the common I/O-layer and, if applicable, 111 Logs the calling of functions in the common I/O-layer and, if applicable,
102 which subchannel they were called for, as well as dumps of some data 112 which subchannel they were called for, as well as dumps of some data
103 structures (like irb in an error case). 113 structures (like irb in an error case).
104 114
105 The level of logging can be changed to be more or less verbose by piping to 115 The level of logging can be changed to be more or less verbose by piping to
106 /proc/s390dbf/cio_*/level a number between 0 and 6; see the documentation on 116 /sys/kernel/debug/s390dbf/cio_*/level a number between 0 and 6; see the
107 the S/390 debug feature (Documentation/s390/s390dbf.txt) for details. 117 documentation on the S/390 debug feature (Documentation/s390/s390dbf.txt)
108 118 for details.
109* For some of the information present in the /proc filesystem in 2.4 (namely,
110 /proc/subchannels and /proc/chpids), see driver-model.txt.
111 Information formerly in /proc/irq_count is now in /proc/interrupts.
diff --git a/Documentation/s390/cds.txt b/Documentation/s390/cds.txt
index 58919d6a593a..3081927cc2d6 100644
--- a/Documentation/s390/cds.txt
+++ b/Documentation/s390/cds.txt
@@ -286,10 +286,10 @@ first:
286 timeout value 286 timeout value
287-EIO: the common I/O layer terminated the request due to an error state 287-EIO: the common I/O layer terminated the request due to an error state
288 288
289If the concurrent sense flag in the extended status word in the irb is set, the 289If the concurrent sense flag in the extended status word (esw) in the irb is
290field irb->scsw.count describes the number of device specific sense bytes 290set, the field erw.scnt in the esw describes the number of device specific
291available in the extended control word irb->scsw.ecw[0]. No device sensing by 291sense bytes available in the extended control word irb->scsw.ecw[]. No device
292the device driver itself is required. 292sensing by the device driver itself is required.
293 293
294The device interrupt handler can use the following definitions to investigate 294The device interrupt handler can use the following definitions to investigate
295the primary unit check source coded in sense byte 0 : 295the primary unit check source coded in sense byte 0 :
diff --git a/Documentation/sched-design-CFS.txt b/Documentation/sched-design-CFS.txt
index 84901e7c0508..88bcb8767335 100644
--- a/Documentation/sched-design-CFS.txt
+++ b/Documentation/sched-design-CFS.txt
@@ -117,3 +117,70 @@ Some implementation details:
117 iterators of the scheduling modules are used. The balancing code got 117 iterators of the scheduling modules are used. The balancing code got
118 quite a bit simpler as a result. 118 quite a bit simpler as a result.
119 119
120
121Group scheduler extension to CFS
122================================
123
124Normally the scheduler operates on individual tasks and strives to provide
125fair CPU time to each task. Sometimes, it may be desirable to group tasks
126and provide fair CPU time to each such task group. For example, it may
127be desirable to first provide fair CPU time to each user on the system
128and then to each task belonging to a user.
129
130CONFIG_FAIR_GROUP_SCHED strives to achieve exactly that. It lets
131SCHED_NORMAL/BATCH tasks be be grouped and divides CPU time fairly among such
132groups. At present, there are two (mutually exclusive) mechanisms to group
133tasks for CPU bandwidth control purpose:
134
135 - Based on user id (CONFIG_FAIR_USER_SCHED)
136 In this option, tasks are grouped according to their user id.
137 - Based on "cgroup" pseudo filesystem (CONFIG_FAIR_CGROUP_SCHED)
138 This options lets the administrator create arbitrary groups
139 of tasks, using the "cgroup" pseudo filesystem. See
140 Documentation/cgroups.txt for more information about this
141 filesystem.
142
143Only one of these options to group tasks can be chosen and not both.
144
145Group scheduler tunables:
146
147When CONFIG_FAIR_USER_SCHED is defined, a directory is created in sysfs for
148each new user and a "cpu_share" file is added in that directory.
149
150 # cd /sys/kernel/uids
151 # cat 512/cpu_share # Display user 512's CPU share
152 1024
153 # echo 2048 > 512/cpu_share # Modify user 512's CPU share
154 # cat 512/cpu_share # Display user 512's CPU share
155 2048
156 #
157
158CPU bandwidth between two users are divided in the ratio of their CPU shares.
159For ex: if you would like user "root" to get twice the bandwidth of user
160"guest", then set the cpu_share for both the users such that "root"'s
161cpu_share is twice "guest"'s cpu_share
162
163
164When CONFIG_FAIR_CGROUP_SCHED is defined, a "cpu.shares" file is created
165for each group created using the pseudo filesystem. See example steps
166below to create task groups and modify their CPU share using the "cgroups"
167pseudo filesystem
168
169 # mkdir /dev/cpuctl
170 # mount -t cgroup -ocpu none /dev/cpuctl
171 # cd /dev/cpuctl
172
173 # mkdir multimedia # create "multimedia" group of tasks
174 # mkdir browser # create "browser" group of tasks
175
176 # #Configure the multimedia group to receive twice the CPU bandwidth
177 # #that of browser group
178
179 # echo 2048 > multimedia/cpu.shares
180 # echo 1024 > browser/cpu.shares
181
182 # firefox & # Launch firefox and move it to "browser" group
183 # echo <firefox_pid> > browser/tasks
184
185 # #Launch gmplayer (or your favourite movie player)
186 # echo <movie_player_pid> > multimedia/tasks
diff --git a/Documentation/scsi/00-INDEX b/Documentation/scsi/00-INDEX
index 12354830c6b0..aa1f7e927834 100644
--- a/Documentation/scsi/00-INDEX
+++ b/Documentation/scsi/00-INDEX
@@ -2,14 +2,20 @@
2 - this file 2 - this file
353c700.txt 353c700.txt
4 - info on driver for 53c700 based adapters 4 - info on driver for 53c700 based adapters
5AM53C974.txt
6 - info on driver for AM53c974 based adapters
7BusLogic.txt 5BusLogic.txt
8 - info on driver for adapters with BusLogic chips 6 - info on driver for adapters with BusLogic chips
9ChangeLog 7ChangeLog.1992-1997
10 - Changes to scsi files, if not listed elsewhere 8 - Changes to scsi files, if not listed elsewhere
9ChangeLog.arcmsr
10 - Changes to driver for ARECA's SATA RAID controller cards
11ChangeLog.ips 11ChangeLog.ips
12 - IBM ServeRAID driver Changelog 12 - IBM ServeRAID driver Changelog
13ChangeLog.lpfc
14 - Changes to lpfc driver
15ChangeLog.megaraid
16 - Changes to LSI megaraid controller.
17ChangeLog.megaraid_sas
18 - Changes to serial attached scsi version of LSI megaraid controller.
13ChangeLog.ncr53c8xx 19ChangeLog.ncr53c8xx
14 - Changes to ncr53c8xx driver 20 - Changes to ncr53c8xx driver
15ChangeLog.sym53c8xx 21ChangeLog.sym53c8xx
@@ -20,26 +26,44 @@ FlashPoint.txt
20 - info on driver for BusLogic FlashPoint adapters 26 - info on driver for BusLogic FlashPoint adapters
21LICENSE.FlashPoint 27LICENSE.FlashPoint
22 - Licence of the Flashpoint driver 28 - Licence of the Flashpoint driver
29LICENSE.qla2xxx
30 - License for QLogic Linux Fibre Channel HBA Driver firmware.
23Mylex.txt 31Mylex.txt
24 - info on driver for Mylex adapters 32 - info on driver for Mylex adapters
25NinjaSCSI.txt 33NinjaSCSI.txt
26 - info on WorkBiT NinjaSCSI-32/32Bi driver 34 - info on WorkBiT NinjaSCSI-32/32Bi driver
35aacraid.txt
36 - Driver supporting Adaptec RAID controllers
27aha152x.txt 37aha152x.txt
28 - info on driver for Adaptec AHA152x based adapters 38 - info on driver for Adaptec AHA152x based adapters
39aic79xx.txt
40 - Adaptec Ultra320 SCSI host adapters
29aic7xxx.txt 41aic7xxx.txt
30 - info on driver for Adaptec controllers 42 - info on driver for Adaptec controllers
31aic7xxx_old.txt 43aic7xxx_old.txt
32 - info on driver for Adaptec controllers, old generation 44 - info on driver for Adaptec controllers, old generation
45arcmsr_spec.txt
46 - ARECA FIRMWARE SPEC (for IOP331 adapter)
47dc395x.txt
48 - README file for the dc395x SCSI driver
33dpti.txt 49dpti.txt
34 - info on driver for DPT SmartRAID and Adaptec I2O RAID based adapters 50 - info on driver for DPT SmartRAID and Adaptec I2O RAID based adapters
35dtc3x80.txt 51dtc3x80.txt
36 - info on driver for DTC 2x80 based adapters 52 - info on driver for DTC 2x80 based adapters
37g_NCR5380.txt 53g_NCR5380.txt
38 - info on driver for NCR5380 and NCR53c400 based adapters 54 - info on driver for NCR5380 and NCR53c400 based adapters
55hptiop.txt
56 - HIGHPOINT ROCKETRAID 3xxx RAID DRIVER
39ibmmca.txt 57ibmmca.txt
40 - info on driver for IBM adapters with MCA bus 58 - info on driver for IBM adapters with MCA bus
41in2000.txt 59in2000.txt
42 - info on in2000 driver 60 - info on in2000 driver
61libsas.txt
62 - Serial Attached SCSI management layer.
63lpfc.txt
64 - LPFC driver release notes
65megaraid.txt
66 - Common Management Module, shared code handling ioctls for LSI drivers
43ncr53c7xx.txt 67ncr53c7xx.txt
44 - info on driver for NCR53c7xx based adapters 68 - info on driver for NCR53c7xx based adapters
45ncr53c8xx.txt 69ncr53c8xx.txt
@@ -50,6 +74,8 @@ ppa.txt
50 - info on driver for IOmega zip drive 74 - info on driver for IOmega zip drive
51qlogicfas.txt 75qlogicfas.txt
52 - info on driver for QLogic FASxxx based adapters 76 - info on driver for QLogic FASxxx based adapters
77scsi-changer.txt
78 - README for the SCSI media changer driver
53scsi-generic.txt 79scsi-generic.txt
54 - info on the sg driver for generic (non-disk/CD/tape) SCSI devices. 80 - info on the sg driver for generic (non-disk/CD/tape) SCSI devices.
55scsi.txt 81scsi.txt
@@ -58,6 +84,8 @@ scsi_mid_low_api.txt
58 - info on API between SCSI layer and low level drivers 84 - info on API between SCSI layer and low level drivers
59scsi_eh.txt 85scsi_eh.txt
60 - info on SCSI midlayer error handling infrastructure 86 - info on SCSI midlayer error handling infrastructure
87scsi_fc_transport.txt
88 - SCSI Fiber Channel Tansport
61st.txt 89st.txt
62 - info on scsi tape driver 90 - info on scsi tape driver
63sym53c500_cs.txt 91sym53c500_cs.txt
diff --git a/Documentation/scsi/ChangeLog.arcmsr b/Documentation/scsi/ChangeLog.arcmsr
index 162c47fdf45f..cd8403a33ee6 100644
--- a/Documentation/scsi/ChangeLog.arcmsr
+++ b/Documentation/scsi/ChangeLog.arcmsr
@@ -53,4 +53,19 @@
53** for linux standard list 53** for linux standard list
54** enable usage of pci message signal interrupt 54** enable usage of pci message signal interrupt
55** follow Randy.Danlup kindness suggestion cleanup this code 55** follow Randy.Danlup kindness suggestion cleanup this code
56************************************************************************** \ No newline at end of file 56** 1.20.00.14 05/02/2007 Erich Chen & Nick Cheng
57** 1.implement PCI-Express error recovery function and AER capability
58** 2.implement the selection of ARCMSR_MAX_XFER_SECTORS_B=4096
59** if firmware version is newer than 1.42
60** 3.modify arcmsr_iop_reset to improve the ability
61** 4.modify the ISR, arcmsr_interrupt routine,to prevent the
62** inconsistency with sg_mod driver if application directly calls
63** the arcmsr driver w/o passing through scsi mid layer
64** specially thanks to Yanmin Zhang's openhanded help about AER
65** 1.20.00.15 08/30/2007 Erich Chen & Nick Cheng
66** 1. support ARC1200/1201/1202 SATA RAID adapter, which is named
67** ACB_ADAPTER_TYPE_B
68** 2. modify the arcmsr_pci_slot_reset function
69** 3. modify the arcmsr_pci_ers_disconnect_forepart function
70** 4. modify the arcmsr_pci_ers_need_reset_forepart function
71**************************************************************************
diff --git a/Documentation/scsi/aacraid.txt b/Documentation/scsi/aacraid.txt
index cc12b55d4b3d..a8257840695a 100644
--- a/Documentation/scsi/aacraid.txt
+++ b/Documentation/scsi/aacraid.txt
@@ -38,10 +38,8 @@ Supported Cards/Chipsets
38 9005:0286:9005:02ac Adaptec 1800 (Typhoon44) 38 9005:0286:9005:02ac Adaptec 1800 (Typhoon44)
39 9005:0285:9005:02b5 Adaptec 5445 (Voodoo44) 39 9005:0285:9005:02b5 Adaptec 5445 (Voodoo44)
40 9005:0285:15d9:02b5 SMC AOC-USAS-S4i 40 9005:0285:15d9:02b5 SMC AOC-USAS-S4i
41 9005:0285:15d9:02c9 SMC AOC-USAS-S4iR
42 9005:0285:9005:02b6 Adaptec 5805 (Voodoo80) 41 9005:0285:9005:02b6 Adaptec 5805 (Voodoo80)
43 9005:0285:15d9:02b6 SMC AOC-USAS-S8i 42 9005:0285:15d9:02b6 SMC AOC-USAS-S8i
44 9005:0285:15d9:02ca SMC AOC-USAS-S8iR
45 9005:0285:9005:02b7 Adaptec 5085 (Voodoo08) 43 9005:0285:9005:02b7 Adaptec 5085 (Voodoo08)
46 9005:0285:9005:02bb Adaptec 3405 (Marauder40LP) 44 9005:0285:9005:02bb Adaptec 3405 (Marauder40LP)
47 9005:0285:9005:02bc Adaptec 3805 (Marauder80LP) 45 9005:0285:9005:02bc Adaptec 3805 (Marauder80LP)
@@ -50,9 +48,14 @@ Supported Cards/Chipsets
50 9005:0285:9005:02be Adaptec 31605 (Marauder160) 48 9005:0285:9005:02be Adaptec 31605 (Marauder160)
51 9005:0285:9005:02c3 Adaptec 51205 (Voodoo120) 49 9005:0285:9005:02c3 Adaptec 51205 (Voodoo120)
52 9005:0285:9005:02c4 Adaptec 51605 (Voodoo160) 50 9005:0285:9005:02c4 Adaptec 51605 (Voodoo160)
51 9005:0285:15d9:02c9 SMC AOC-USAS-S4iR
52 9005:0285:15d9:02ca SMC AOC-USAS-S8iR
53 9005:0285:9005:02ce Adaptec 51245 (Voodoo124) 53 9005:0285:9005:02ce Adaptec 51245 (Voodoo124)
54 9005:0285:9005:02cf Adaptec 51645 (Voodoo164) 54 9005:0285:9005:02cf Adaptec 51645 (Voodoo164)
55 9005:0285:9005:02d0 Adaptec 52445 (Voodoo244) 55 9005:0285:9005:02d0 Adaptec 52445 (Voodoo244)
56 9005:0285:9005:02d1 Adaptec 5405 (Voodoo40)
57 9005:0285:15d9:02d2 SMC AOC-USAS-S8i-LP
58 9005:0285:15d9:02d3 SMC AOC-USAS-S8iR-LP
56 1011:0046:9005:0364 Adaptec 5400S (Mustang) 59 1011:0046:9005:0364 Adaptec 5400S (Mustang)
57 9005:0287:9005:0800 Adaptec Themisto (Jupiter) 60 9005:0287:9005:0800 Adaptec Themisto (Jupiter)
58 9005:0200:9005:0200 Adaptec Themisto (Jupiter) 61 9005:0200:9005:0200 Adaptec Themisto (Jupiter)
@@ -103,6 +106,7 @@ Supported Cards/Chipsets
103 9005:0285:108e:7aac SUN STK RAID REM (Voodoo44 Coyote) 106 9005:0285:108e:7aac SUN STK RAID REM (Voodoo44 Coyote)
104 9005:0285:108e:0286 SUN STK RAID INT (Cougar) 107 9005:0285:108e:0286 SUN STK RAID INT (Cougar)
105 9005:0285:108e:0287 SUN STK RAID EXT (Prometheus) 108 9005:0285:108e:0287 SUN STK RAID EXT (Prometheus)
109 9005:0285:108e:7aae SUN STK RAID EM (Narvi)
106 110
107People 111People
108------------------------- 112-------------------------
diff --git a/Documentation/scsi/advansys.txt b/Documentation/scsi/advansys.txt
new file mode 100644
index 000000000000..4a3db62b7424
--- /dev/null
+++ b/Documentation/scsi/advansys.txt
@@ -0,0 +1,243 @@
1AdvanSys (Advanced System Products, Inc.) manufactures the following
2RISC-based, Bus-Mastering, Fast (10 Mhz) and Ultra (20 Mhz) Narrow
3(8-bit transfer) SCSI Host Adapters for the ISA, EISA, VL, and PCI
4buses and RISC-based, Bus-Mastering, Ultra (20 Mhz) Wide (16-bit
5transfer) SCSI Host Adapters for the PCI bus.
6
7The CDB counts below indicate the number of SCSI CDB (Command
8Descriptor Block) requests that can be stored in the RISC chip
9cache and board LRAM. A CDB is a single SCSI command. The driver
10detect routine will display the number of CDBs available for each
11adapter detected. The number of CDBs used by the driver can be
12lowered in the BIOS by changing the 'Host Queue Size' adapter setting.
13
14Laptop Products:
15 ABP-480 - Bus-Master CardBus (16 CDB)
16
17Connectivity Products:
18 ABP510/5150 - Bus-Master ISA (240 CDB)
19 ABP5140 - Bus-Master ISA PnP (16 CDB)
20 ABP5142 - Bus-Master ISA PnP with floppy (16 CDB)
21 ABP902/3902 - Bus-Master PCI (16 CDB)
22 ABP3905 - Bus-Master PCI (16 CDB)
23 ABP915 - Bus-Master PCI (16 CDB)
24 ABP920 - Bus-Master PCI (16 CDB)
25 ABP3922 - Bus-Master PCI (16 CDB)
26 ABP3925 - Bus-Master PCI (16 CDB)
27 ABP930 - Bus-Master PCI (16 CDB)
28 ABP930U - Bus-Master PCI Ultra (16 CDB)
29 ABP930UA - Bus-Master PCI Ultra (16 CDB)
30 ABP960 - Bus-Master PCI MAC/PC (16 CDB)
31 ABP960U - Bus-Master PCI MAC/PC Ultra (16 CDB)
32
33Single Channel Products:
34 ABP542 - Bus-Master ISA with floppy (240 CDB)
35 ABP742 - Bus-Master EISA (240 CDB)
36 ABP842 - Bus-Master VL (240 CDB)
37 ABP940 - Bus-Master PCI (240 CDB)
38 ABP940U - Bus-Master PCI Ultra (240 CDB)
39 ABP940UA/3940UA - Bus-Master PCI Ultra (240 CDB)
40 ABP970 - Bus-Master PCI MAC/PC (240 CDB)
41 ABP970U - Bus-Master PCI MAC/PC Ultra (240 CDB)
42 ABP3960UA - Bus-Master PCI MAC/PC Ultra (240 CDB)
43 ABP940UW/3940UW - Bus-Master PCI Ultra-Wide (253 CDB)
44 ABP970UW - Bus-Master PCI MAC/PC Ultra-Wide (253 CDB)
45 ABP3940U2W - Bus-Master PCI LVD/Ultra2-Wide (253 CDB)
46
47Multi-Channel Products:
48 ABP752 - Dual Channel Bus-Master EISA (240 CDB Per Channel)
49 ABP852 - Dual Channel Bus-Master VL (240 CDB Per Channel)
50 ABP950 - Dual Channel Bus-Master PCI (240 CDB Per Channel)
51 ABP950UW - Dual Channel Bus-Master PCI Ultra-Wide (253 CDB Per Channel)
52 ABP980 - Four Channel Bus-Master PCI (240 CDB Per Channel)
53 ABP980U - Four Channel Bus-Master PCI Ultra (240 CDB Per Channel)
54 ABP980UA/3980UA - Four Channel Bus-Master PCI Ultra (16 CDB Per Chan.)
55 ABP3950U2W - Bus-Master PCI LVD/Ultra2-Wide and Ultra-Wide (253 CDB)
56 ABP3950U3W - Bus-Master PCI Dual LVD2/Ultra3-Wide (253 CDB)
57
58Driver Compile Time Options and Debugging
59
60The following constants can be defined in the source file.
61
621. ADVANSYS_ASSERT - Enable driver assertions (Def: Enabled)
63
64 Enabling this option adds assertion logic statements to the
65 driver. If an assertion fails a message will be displayed to
66 the console, but the system will continue to operate. Any
67 assertions encountered should be reported to the person
68 responsible for the driver. Assertion statements may proactively
69 detect problems with the driver and facilitate fixing these
70 problems. Enabling assertions will add a small overhead to the
71 execution of the driver.
72
732. ADVANSYS_DEBUG - Enable driver debugging (Def: Disabled)
74
75 Enabling this option adds tracing functions to the driver and the
76 ability to set a driver tracing level at boot time. This option is
77 very useful for debugging the driver, but it will add to the size
78 of the driver execution image and add overhead to the execution of
79 the driver.
80
81 The amount of debugging output can be controlled with the global
82 variable 'asc_dbglvl'. The higher the number the more output. By
83 default the debug level is 0.
84
85 If the driver is loaded at boot time and the LILO Driver Option
86 is included in the system, the debug level can be changed by
87 specifying a 5th (ASC_NUM_IOPORT_PROBE + 1) I/O Port. The
88 first three hex digits of the pseudo I/O Port must be set to
89 'deb' and the fourth hex digit specifies the debug level: 0 - F.
90 The following command line will look for an adapter at 0x330
91 and set the debug level to 2.
92
93 linux advansys=0x330,0,0,0,0xdeb2
94
95 If the driver is built as a loadable module this variable can be
96 defined when the driver is loaded. The following insmod command
97 will set the debug level to one.
98
99 insmod advansys.o asc_dbglvl=1
100
101 Debugging Message Levels:
102 0: Errors Only
103 1: High-Level Tracing
104 2-N: Verbose Tracing
105
106 To enable debug output to console, please make sure that:
107
108 a. System and kernel logging is enabled (syslogd, klogd running).
109 b. Kernel messages are routed to console output. Check
110 /etc/syslog.conf for an entry similar to this:
111
112 kern.* /dev/console
113
114 c. klogd is started with the appropriate -c parameter
115 (e.g. klogd -c 8)
116
117 This will cause printk() messages to be be displayed on the
118 current console. Refer to the klogd(8) and syslogd(8) man pages
119 for details.
120
121 Alternatively you can enable printk() to console with this
122 program. However, this is not the 'official' way to do this.
123 Debug output is logged in /var/log/messages.
124
125 main()
126 {
127 syscall(103, 7, 0, 0);
128 }
129
130 Increasing LOG_BUF_LEN in kernel/printk.c to something like
131 40960 allows more debug messages to be buffered in the kernel
132 and written to the console or log file.
133
1343. ADVANSYS_STATS - Enable statistics (Def: Enabled)
135
136 Enabling this option adds statistics collection and display
137 through /proc to the driver. The information is useful for
138 monitoring driver and device performance. It will add to the
139 size of the driver execution image and add minor overhead to
140 the execution of the driver.
141
142 Statistics are maintained on a per adapter basis. Driver entry
143 point call counts and transfer size counts are maintained.
144 Statistics are only available for kernels greater than or equal
145 to v1.3.0 with the CONFIG_PROC_FS (/proc) file system configured.
146
147 AdvanSys SCSI adapter files have the following path name format:
148
149 /proc/scsi/advansys/{0,1,2,3,...}
150
151 This information can be displayed with cat. For example:
152
153 cat /proc/scsi/advansys/0
154
155 When ADVANSYS_STATS is not defined the AdvanSys /proc files only
156 contain adapter and device configuration information.
157
158Driver LILO Option
159
160If init/main.c is modified as described in the 'Directions for Adding
161the AdvanSys Driver to Linux' section (B.4.) above, the driver will
162recognize the 'advansys' LILO command line and /etc/lilo.conf option.
163This option can be used to either disable I/O port scanning or to limit
164scanning to 1 - 4 I/O ports. Regardless of the option setting EISA and
165PCI boards will still be searched for and detected. This option only
166affects searching for ISA and VL boards.
167
168Examples:
169 1. Eliminate I/O port scanning:
170 boot: linux advansys=
171 or
172 boot: linux advansys=0x0
173 2. Limit I/O port scanning to one I/O port:
174 boot: linux advansys=0x110
175 3. Limit I/O port scanning to four I/O ports:
176 boot: linux advansys=0x110,0x210,0x230,0x330
177
178For a loadable module the same effect can be achieved by setting
179the 'asc_iopflag' variable and 'asc_ioport' array when loading
180the driver, e.g.
181
182 insmod advansys.o asc_iopflag=1 asc_ioport=0x110,0x330
183
184If ADVANSYS_DEBUG is defined a 5th (ASC_NUM_IOPORT_PROBE + 1)
185I/O Port may be added to specify the driver debug level. Refer to
186the 'Driver Compile Time Options and Debugging' section above for
187more information.
188
189Credits (Chronological Order)
190
191Bob Frey <bfrey@turbolinux.com.cn> wrote the AdvanSys SCSI driver
192and maintained it up to 3.3F. He continues to answer questions
193and help maintain the driver.
194
195Nathan Hartwell <mage@cdc3.cdc.net> provided the directions and
196basis for the Linux v1.3.X changes which were included in the
1971.2 release.
198
199Thomas E Zerucha <zerucha@shell.portal.com> pointed out a bug
200in advansys_biosparam() which was fixed in the 1.3 release.
201
202Erik Ratcliffe <erik@caldera.com> has done testing of the
203AdvanSys driver in the Caldera releases.
204
205Rik van Riel <H.H.vanRiel@fys.ruu.nl> provided a patch to
206AscWaitTixISRDone() which he found necessary to make the
207driver work with a SCSI-1 disk.
208
209Mark Moran <mmoran@mmoran.com> has helped test Ultra-Wide
210support in the 3.1A driver.
211
212Doug Gilbert <dgilbert@interlog.com> has made changes and
213suggestions to improve the driver and done a lot of testing.
214
215Ken Mort <ken@mort.net> reported a DEBUG compile bug fixed
216in 3.2K.
217
218Tom Rini <trini@kernel.crashing.org> provided the CONFIG_ISA
219patch and helped with PowerPC wide and narrow board support.
220
221Philip Blundell <philb@gnu.org> provided an
222advansys_interrupts_enabled patch.
223
224Dave Jones <dave@denial.force9.co.uk> reported the compiler
225warnings generated when CONFIG_PROC_FS was not defined in
226the 3.2M driver.
227
228Jerry Quinn <jlquinn@us.ibm.com> fixed PowerPC support (endian
229problems) for wide cards.
230
231Bryan Henderson <bryanh@giraffe-data.com> helped debug narrow
232card error handling.
233
234Manuel Veloso <veloso@pobox.com> worked hard on PowerPC narrow
235board support and fixed a bug in AscGetEEPConfig().
236
237Arnaldo Carvalho de Melo <acme@conectiva.com.br> made
238save_flags/restore_flags changes.
239
240Andy Kellner <AKellner@connectcom.net> continued the Advansys SCSI
241driver development for ConnectCom (Version > 3.3F).
242
243Ken Witherow for extensive testing during the development of version 3.4.
diff --git a/Documentation/sparc/sbus_drivers.txt b/Documentation/sparc/sbus_drivers.txt
index 8418d35484fc..eb1e28ad8822 100644
--- a/Documentation/sparc/sbus_drivers.txt
+++ b/Documentation/sparc/sbus_drivers.txt
@@ -67,10 +67,12 @@ probe in an SBUS driver under Linux:
67 MODULE_DEVICE_TABLE(of, mydevice_match); 67 MODULE_DEVICE_TABLE(of, mydevice_match);
68 68
69 static struct of_platform_driver mydevice_driver = { 69 static struct of_platform_driver mydevice_driver = {
70 .name = "mydevice",
71 .match_table = mydevice_match, 70 .match_table = mydevice_match,
72 .probe = mydevice_probe, 71 .probe = mydevice_probe,
73 .remove = __devexit_p(mydevice_remove), 72 .remove = __devexit_p(mydevice_remove),
73 .driver = {
74 .name = "mydevice",
75 },
74 }; 76 };
75 77
76 static int __init mydevice_init(void) 78 static int __init mydevice_init(void)
diff --git a/Documentation/usb/authorization.txt b/Documentation/usb/authorization.txt
new file mode 100644
index 000000000000..2af400609498
--- /dev/null
+++ b/Documentation/usb/authorization.txt
@@ -0,0 +1,92 @@
1
2Authorizing (or not) your USB devices to connect to the system
3
4(C) 2007 Inaky Perez-Gonzalez <inaky@linux.intel.com> Intel Corporation
5
6This feature allows you to control if a USB device can be used (or
7not) in a system. This feature will allow you to implement a lock-down
8of USB devices, fully controlled by user space.
9
10As of now, when a USB device is connected it is configured and
11it's interfaces inmediately made available to the users. With this
12modification, only if root authorizes the device to be configured will
13then it be possible to use it.
14
15Usage:
16
17Authorize a device to connect:
18
19$ echo 1 > /sys/usb/devices/DEVICE/authorized
20
21Deauthorize a device:
22
23$ echo 0 > /sys/usb/devices/DEVICE/authorized
24
25Set new devices connected to hostX to be deauthorized by default (ie:
26lock down):
27
28$ echo 0 > /sys/bus/devices/usbX/authorized_default
29
30Remove the lock down:
31
32$ echo 1 > /sys/bus/devices/usbX/authorized_default
33
34By default, Wired USB devices are authorized by default to
35connect. Wireless USB hosts deauthorize by default all new connected
36devices (this is so because we need to do an authentication phase
37before authorizing).
38
39
40Example system lockdown (lame)
41-----------------------
42
43Imagine you want to implement a lockdown so only devices of type XYZ
44can be connected (for example, it is a kiosk machine with a visible
45USB port):
46
47boot up
48rc.local ->
49
50 for host in /sys/bus/devices/usb*
51 do
52 echo 0 > $host/authorized_default
53 done
54
55Hookup an script to udev, for new USB devices
56
57 if device_is_my_type $DEV
58 then
59 echo 1 > $device_path/authorized
60 done
61
62
63Now, device_is_my_type() is where the juice for a lockdown is. Just
64checking if the class, type and protocol match something is the worse
65security verification you can make (or the best, for someone willing
66to break it). If you need something secure, use crypto and Certificate
67Authentication or stuff like that. Something simple for an storage key
68could be:
69
70function device_is_my_type()
71{
72 echo 1 > authorized # temporarily authorize it
73 # FIXME: make sure none can mount it
74 mount DEVICENODE /mntpoint
75 sum=$(md5sum /mntpoint/.signature)
76 if [ $sum = $(cat /etc/lockdown/keysum) ]
77 then
78 echo "We are good, connected"
79 umount /mntpoint
80 # Other stuff so others can use it
81 else
82 echo 0 > authorized
83 fi
84}
85
86
87Of course, this is lame, you'd want to do a real certificate
88verification stuff with PKI, so you don't depend on a shared secret,
89etc, but you get the idea. Anybody with access to a device gadget kit
90can fake descriptors and device info. Don't trust that. You are
91welcome.
92
diff --git a/Documentation/usb/power-management.txt b/Documentation/usb/power-management.txt
new file mode 100644
index 000000000000..97842deec471
--- /dev/null
+++ b/Documentation/usb/power-management.txt
@@ -0,0 +1,517 @@
1 Power Management for USB
2
3 Alan Stern <stern@rowland.harvard.edu>
4
5 October 5, 2007
6
7
8
9 What is Power Management?
10 -------------------------
11
12Power Management (PM) is the practice of saving energy by suspending
13parts of a computer system when they aren't being used. While a
14component is "suspended" it is in a nonfunctional low-power state; it
15might even be turned off completely. A suspended component can be
16"resumed" (returned to a functional full-power state) when the kernel
17needs to use it. (There also are forms of PM in which components are
18placed in a less functional but still usable state instead of being
19suspended; an example would be reducing the CPU's clock rate. This
20document will not discuss those other forms.)
21
22When the parts being suspended include the CPU and most of the rest of
23the system, we speak of it as a "system suspend". When a particular
24device is turned off while the system as a whole remains running, we
25call it a "dynamic suspend" (also known as a "runtime suspend" or
26"selective suspend"). This document concentrates mostly on how
27dynamic PM is implemented in the USB subsystem, although system PM is
28covered to some extent (see Documentation/power/*.txt for more
29information about system PM).
30
31Note: Dynamic PM support for USB is present only if the kernel was
32built with CONFIG_USB_SUSPEND enabled. System PM support is present
33only if the kernel was built with CONFIG_SUSPEND or CONFIG_HIBERNATION
34enabled.
35
36
37 What is Remote Wakeup?
38 ----------------------
39
40When a device has been suspended, it generally doesn't resume until
41the computer tells it to. Likewise, if the entire computer has been
42suspended, it generally doesn't resume until the user tells it to, say
43by pressing a power button or opening the cover.
44
45However some devices have the capability of resuming by themselves, or
46asking the kernel to resume them, or even telling the entire computer
47to resume. This capability goes by several names such as "Wake On
48LAN"; we will refer to it generically as "remote wakeup". When a
49device is enabled for remote wakeup and it is suspended, it may resume
50itself (or send a request to be resumed) in response to some external
51event. Examples include a suspended keyboard resuming when a key is
52pressed, or a suspended USB hub resuming when a device is plugged in.
53
54
55 When is a USB device idle?
56 --------------------------
57
58A device is idle whenever the kernel thinks it's not busy doing
59anything important and thus is a candidate for being suspended. The
60exact definition depends on the device's driver; drivers are allowed
61to declare that a device isn't idle even when there's no actual
62communication taking place. (For example, a hub isn't considered idle
63unless all the devices plugged into that hub are already suspended.)
64In addition, a device isn't considered idle so long as a program keeps
65its usbfs file open, whether or not any I/O is going on.
66
67If a USB device has no driver, its usbfs file isn't open, and it isn't
68being accessed through sysfs, then it definitely is idle.
69
70
71 Forms of dynamic PM
72 -------------------
73
74Dynamic suspends can occur in two ways: manual and automatic.
75"Manual" means that the user has told the kernel to suspend a device,
76whereas "automatic" means that the kernel has decided all by itself to
77suspend a device. Automatic suspend is called "autosuspend" for
78short. In general, a device won't be autosuspended unless it has been
79idle for some minimum period of time, the so-called idle-delay time.
80
81Of course, nothing the kernel does on its own initiative should
82prevent the computer or its devices from working properly. If a
83device has been autosuspended and a program tries to use it, the
84kernel will automatically resume the device (autoresume). For the
85same reason, an autosuspended device will usually have remote wakeup
86enabled, if the device supports remote wakeup.
87
88It is worth mentioning that many USB drivers don't support
89autosuspend. In fact, at the time of this writing (Linux 2.6.23) the
90only drivers which do support it are the hub driver, kaweth, asix,
91usblp, usblcd, and usb-skeleton (which doesn't count). If a
92non-supporting driver is bound to a device, the device won't be
93autosuspended. In effect, the kernel pretends the device is never
94idle.
95
96We can categorize power management events in two broad classes:
97external and internal. External events are those triggered by some
98agent outside the USB stack: system suspend/resume (triggered by
99userspace), manual dynamic suspend/resume (also triggered by
100userspace), and remote wakeup (triggered by the device). Internal
101events are those triggered within the USB stack: autosuspend and
102autoresume.
103
104
105 The user interface for dynamic PM
106 ---------------------------------
107
108The user interface for controlling dynamic PM is located in the power/
109subdirectory of each USB device's sysfs directory, that is, in
110/sys/bus/usb/devices/.../power/ where "..." is the device's ID. The
111relevant attribute files are: wakeup, level, and autosuspend.
112
113 power/wakeup
114
115 This file is empty if the device does not support
116 remote wakeup. Otherwise the file contains either the
117 word "enabled" or the word "disabled", and you can
118 write those words to the file. The setting determines
119 whether or not remote wakeup will be enabled when the
120 device is next suspended. (If the setting is changed
121 while the device is suspended, the change won't take
122 effect until the following suspend.)
123
124 power/level
125
126 This file contains one of three words: "on", "auto",
127 or "suspend". You can write those words to the file
128 to change the device's setting.
129
130 "on" means that the device should be resumed and
131 autosuspend is not allowed. (Of course, system
132 suspends are still allowed.)
133
134 "auto" is the normal state in which the kernel is
135 allowed to autosuspend and autoresume the device.
136
137 "suspend" means that the device should remain
138 suspended, and autoresume is not allowed. (But remote
139 wakeup may still be allowed, since it is controlled
140 separately by the power/wakeup attribute.)
141
142 power/autosuspend
143
144 This file contains an integer value, which is the
145 number of seconds the device should remain idle before
146 the kernel will autosuspend it (the idle-delay time).
147 The default is 2. 0 means to autosuspend as soon as
148 the device becomes idle, and -1 means never to
149 autosuspend. You can write a number to the file to
150 change the autosuspend idle-delay time.
151
152Writing "-1" to power/autosuspend and writing "on" to power/level do
153essentially the same thing -- they both prevent the device from being
154autosuspended. Yes, this is a redundancy in the API.
155
156(In 2.6.21 writing "0" to power/autosuspend would prevent the device
157from being autosuspended; the behavior was changed in 2.6.22. The
158power/autosuspend attribute did not exist prior to 2.6.21, and the
159power/level attribute did not exist prior to 2.6.22.)
160
161
162 Changing the default idle-delay time
163 ------------------------------------
164
165The default autosuspend idle-delay time is controlled by a module
166parameter in usbcore. You can specify the value when usbcore is
167loaded. For example, to set it to 5 seconds instead of 2 you would
168do:
169
170 modprobe usbcore autosuspend=5
171
172Equivalently, you could add to /etc/modprobe.conf a line saying:
173
174 options usbcore autosuspend=5
175
176Some distributions load the usbcore module very early during the boot
177process, by means of a program or script running from an initramfs
178image. To alter the parameter value you would have to rebuild that
179image.
180
181If usbcore is compiled into the kernel rather than built as a loadable
182module, you can add
183
184 usbcore.autosuspend=5
185
186to the kernel's boot command line.
187
188Finally, the parameter value can be changed while the system is
189running. If you do:
190
191 echo 5 >/sys/module/usbcore/parameters/autosuspend
192
193then each new USB device will have its autosuspend idle-delay
194initialized to 5. (The idle-delay values for already existing devices
195will not be affected.)
196
197Setting the initial default idle-delay to -1 will prevent any
198autosuspend of any USB device. This is a simple alternative to
199disabling CONFIG_USB_SUSPEND and rebuilding the kernel, and it has the
200added benefit of allowing you to enable autosuspend for selected
201devices.
202
203
204 Warnings
205 --------
206
207The USB specification states that all USB devices must support power
208management. Nevertheless, the sad fact is that many devices do not
209support it very well. You can suspend them all right, but when you
210try to resume them they disconnect themselves from the USB bus or
211they stop working entirely. This seems to be especially prevalent
212among printers and scanners, but plenty of other types of device have
213the same deficiency.
214
215For this reason, by default the kernel disables autosuspend (the
216power/level attribute is initialized to "on") for all devices other
217than hubs. Hubs, at least, appear to be reasonably well-behaved in
218this regard.
219
220(In 2.6.21 and 2.6.22 this wasn't the case. Autosuspend was enabled
221by default for almost all USB devices. A number of people experienced
222problems as a result.)
223
224This means that non-hub devices won't be autosuspended unless the user
225or a program explicitly enables it. As of this writing there aren't
226any widespread programs which will do this; we hope that in the near
227future device managers such as HAL will take on this added
228responsibility. In the meantime you can always carry out the
229necessary operations by hand or add them to a udev script. You can
230also change the idle-delay time; 2 seconds is not the best choice for
231every device.
232
233Sometimes it turns out that even when a device does work okay with
234autosuspend there are still problems. For example, there are
235experimental patches adding autosuspend support to the usbhid driver,
236which manages keyboards and mice, among other things. Tests with a
237number of keyboards showed that typing on a suspended keyboard, while
238causing the keyboard to do a remote wakeup all right, would
239nonetheless frequently result in lost keystrokes. Tests with mice
240showed that some of them would issue a remote-wakeup request in
241response to button presses but not to motion, and some in response to
242neither.
243
244The kernel will not prevent you from enabling autosuspend on devices
245that can't handle it. It is even possible in theory to damage a
246device by suspending it at the wrong time -- for example, suspending a
247USB hard disk might cause it to spin down without parking the heads.
248(Highly unlikely, but possible.) Take care.
249
250
251 The driver interface for Power Management
252 -----------------------------------------
253
254The requirements for a USB driver to support external power management
255are pretty modest; the driver need only define
256
257 .suspend
258 .resume
259 .reset_resume
260
261methods in its usb_driver structure, and the reset_resume method is
262optional. The methods' jobs are quite simple:
263
264 The suspend method is called to warn the driver that the
265 device is going to be suspended. If the driver returns a
266 negative error code, the suspend will be aborted. Normally
267 the driver will return 0, in which case it must cancel all
268 outstanding URBs (usb_kill_urb()) and not submit any more.
269
270 The resume method is called to tell the driver that the
271 device has been resumed and the driver can return to normal
272 operation. URBs may once more be submitted.
273
274 The reset_resume method is called to tell the driver that
275 the device has been resumed and it also has been reset.
276 The driver should redo any necessary device initialization,
277 since the device has probably lost most or all of its state
278 (although the interfaces will be in the same altsettings as
279 before the suspend).
280
281The reset_resume method is used by the USB Persist facility (see
282Documentation/usb/persist.txt) and it can also be used under certain
283circumstances when CONFIG_USB_PERSIST is not enabled. Currently, if a
284device is reset during a resume and the driver does not have a
285reset_resume method, the driver won't receive any notification about
286the resume. Later kernels will call the driver's disconnect method;
2872.6.23 doesn't do this.
288
289USB drivers are bound to interfaces, so their suspend and resume
290methods get called when the interfaces are suspended or resumed. In
291principle one might want to suspend some interfaces on a device (i.e.,
292force the drivers for those interface to stop all activity) without
293suspending the other interfaces. The USB core doesn't allow this; all
294interfaces are suspended when the device itself is suspended and all
295interfaces are resumed when the device is resumed. It isn't possible
296to suspend or resume some but not all of a device's interfaces. The
297closest you can come is to unbind the interfaces' drivers.
298
299
300 The driver interface for autosuspend and autoresume
301 ---------------------------------------------------
302
303To support autosuspend and autoresume, a driver should implement all
304three of the methods listed above. In addition, a driver indicates
305that it supports autosuspend by setting the .supports_autosuspend flag
306in its usb_driver structure. It is then responsible for informing the
307USB core whenever one of its interfaces becomes busy or idle. The
308driver does so by calling these three functions:
309
310 int usb_autopm_get_interface(struct usb_interface *intf);
311 void usb_autopm_put_interface(struct usb_interface *intf);
312 int usb_autopm_set_interface(struct usb_interface *intf);
313
314The functions work by maintaining a counter in the usb_interface
315structure. When intf->pm_usage_count is > 0 then the interface is
316deemed to be busy, and the kernel will not autosuspend the interface's
317device. When intf->pm_usage_count is <= 0 then the interface is
318considered to be idle, and the kernel may autosuspend the device.
319
320(There is a similar pm_usage_count field in struct usb_device,
321associated with the device itself rather than any of its interfaces.
322This field is used only by the USB core.)
323
324The driver owns intf->pm_usage_count; it can modify the value however
325and whenever it likes. A nice aspect of the usb_autopm_* routines is
326that the changes they make are protected by the usb_device structure's
327PM mutex (udev->pm_mutex); however drivers may change pm_usage_count
328without holding the mutex.
329
330 usb_autopm_get_interface() increments pm_usage_count and
331 attempts an autoresume if the new value is > 0 and the
332 device is suspended.
333
334 usb_autopm_put_interface() decrements pm_usage_count and
335 attempts an autosuspend if the new value is <= 0 and the
336 device isn't suspended.
337
338 usb_autopm_set_interface() leaves pm_usage_count alone.
339 It attempts an autoresume if the value is > 0 and the device
340 is suspended, and it attempts an autosuspend if the value is
341 <= 0 and the device isn't suspended.
342
343There also are a couple of utility routines drivers can use:
344
345 usb_autopm_enable() sets pm_usage_cnt to 1 and then calls
346 usb_autopm_set_interface(), which will attempt an autoresume.
347
348 usb_autopm_disable() sets pm_usage_cnt to 0 and then calls
349 usb_autopm_set_interface(), which will attempt an autosuspend.
350
351The conventional usage pattern is that a driver calls
352usb_autopm_get_interface() in its open routine and
353usb_autopm_put_interface() in its close or release routine. But
354other patterns are possible.
355
356The autosuspend attempts mentioned above will often fail for one
357reason or another. For example, the power/level attribute might be
358set to "on", or another interface in the same device might not be
359idle. This is perfectly normal. If the reason for failure was that
360the device hasn't been idle for long enough, a delayed workqueue
361routine is automatically set up to carry out the operation when the
362autosuspend idle-delay has expired.
363
364Autoresume attempts also can fail. This will happen if power/level is
365set to "suspend" or if the device doesn't manage to resume properly.
366Unlike autosuspend, there's no delay for an autoresume.
367
368
369 Other parts of the driver interface
370 -----------------------------------
371
372Sometimes a driver needs to make sure that remote wakeup is enabled
373during autosuspend. For example, there's not much point
374autosuspending a keyboard if the user can't cause the keyboard to do a
375remote wakeup by typing on it. If the driver sets
376intf->needs_remote_wakeup to 1, the kernel won't autosuspend the
377device if remote wakeup isn't available or has been disabled through
378the power/wakeup attribute. (If the device is already autosuspended,
379though, setting this flag won't cause the kernel to autoresume it.
380Normally a driver would set this flag in its probe method, at which
381time the device is guaranteed not to be autosuspended.)
382
383The usb_autopm_* routines have to run in a sleepable process context;
384they must not be called from an interrupt handler or while holding a
385spinlock. In fact, the entire autosuspend mechanism is not well geared
386toward interrupt-driven operation. However there is one thing a
387driver can do in an interrupt handler:
388
389 usb_mark_last_busy(struct usb_device *udev);
390
391This sets udev->last_busy to the current time. udev->last_busy is the
392field used for idle-delay calculations; updating it will cause any
393pending autosuspend to be moved back. The usb_autopm_* routines will
394also set the last_busy field to the current time.
395
396Calling urb_mark_last_busy() from within an URB completion handler is
397subject to races: The kernel may have just finished deciding the
398device has been idle for long enough but not yet gotten around to
399calling the driver's suspend method. The driver would have to be
400responsible for synchronizing its suspend method with its URB
401completion handler and causing the autosuspend to fail with -EBUSY if
402an URB had completed too recently.
403
404External suspend calls should never be allowed to fail in this way,
405only autosuspend calls. The driver can tell them apart by checking
406udev->auto_pm; this flag will be set to 1 for internal PM events
407(autosuspend or autoresume) and 0 for external PM events.
408
409Many of the ingredients in the autosuspend framework are oriented
410towards interfaces: The usb_interface structure contains the
411pm_usage_cnt field, and the usb_autopm_* routines take an interface
412pointer as their argument. But somewhat confusingly, a few of the
413pieces (usb_mark_last_busy() and udev->auto_pm) use the usb_device
414structure instead. Drivers need to keep this straight; they can call
415interface_to_usbdev() to find the device structure for a given
416interface.
417
418
419 Locking requirements
420 --------------------
421
422All three suspend/resume methods are always called while holding the
423usb_device's PM mutex. For external events -- but not necessarily for
424autosuspend or autoresume -- the device semaphore (udev->dev.sem) will
425also be held. This implies that external suspend/resume events are
426mutually exclusive with calls to probe, disconnect, pre_reset, and
427post_reset; the USB core guarantees that this is true of internal
428suspend/resume events as well.
429
430If a driver wants to block all suspend/resume calls during some
431critical section, it can simply acquire udev->pm_mutex.
432Alternatively, if the critical section might call some of the
433usb_autopm_* routines, the driver can avoid deadlock by doing:
434
435 down(&udev->dev.sem);
436 rc = usb_autopm_get_interface(intf);
437
438and at the end of the critical section:
439
440 if (!rc)
441 usb_autopm_put_interface(intf);
442 up(&udev->dev.sem);
443
444Holding the device semaphore will block all external PM calls, and the
445usb_autopm_get_interface() will prevent any internal PM calls, even if
446it fails. (Exercise: Why?)
447
448The rules for locking order are:
449
450 Never acquire any device semaphore while holding any PM mutex.
451
452 Never acquire udev->pm_mutex while holding the PM mutex for
453 a device that isn't a descendant of udev.
454
455In other words, PM mutexes should only be acquired going up the device
456tree, and they should be acquired only after locking all the device
457semaphores you need to hold. These rules don't matter to drivers very
458much; they usually affect just the USB core.
459
460Still, drivers do need to be careful. For example, many drivers use a
461private mutex to synchronize their normal I/O activities with their
462disconnect method. Now if the driver supports autosuspend then it
463must call usb_autopm_put_interface() from somewhere -- maybe from its
464close method. It should make the call while holding the private mutex,
465since a driver shouldn't call any of the usb_autopm_* functions for an
466interface from which it has been unbound.
467
468But the usb_autpm_* routines always acquire the device's PM mutex, and
469consequently the locking order has to be: private mutex first, PM
470mutex second. Since the suspend method is always called with the PM
471mutex held, it mustn't try to acquire the private mutex. It has to
472synchronize with the driver's I/O activities in some other way.
473
474
475 Interaction between dynamic PM and system PM
476 --------------------------------------------
477
478Dynamic power management and system power management can interact in
479a couple of ways.
480
481Firstly, a device may already be manually suspended or autosuspended
482when a system suspend occurs. Since system suspends are supposed to
483be as transparent as possible, the device should remain suspended
484following the system resume. The 2.6.23 kernel obeys this principle
485for manually suspended devices but not for autosuspended devices; they
486do get resumed when the system wakes up. (Presumably they will be
487autosuspended again after their idle-delay time expires.) In later
488kernels this behavior will be fixed.
489
490(There is an exception. If a device would undergo a reset-resume
491instead of a normal resume, and the device is enabled for remote
492wakeup, then the reset-resume takes place even if the device was
493already suspended when the system suspend began. The justification is
494that a reset-resume is a kind of remote-wakeup event. Or to put it
495another way, a device which needs a reset won't be able to generate
496normal remote-wakeup signals, so it ought to be resumed immediately.)
497
498Secondly, a dynamic power-management event may occur as a system
499suspend is underway. The window for this is short, since system
500suspends don't take long (a few seconds usually), but it can happen.
501For example, a suspended device may send a remote-wakeup signal while
502the system is suspending. The remote wakeup may succeed, which would
503cause the system suspend to abort. If the remote wakeup doesn't
504succeed, it may still remain active and thus cause the system to
505resume as soon as the system suspend is complete. Or the remote
506wakeup may fail and get lost. Which outcome occurs depends on timing
507and on the hardware and firmware design.
508
509More interestingly, a device might undergo a manual resume or
510autoresume during system suspend. With current kernels this shouldn't
511happen, because manual resumes must be initiated by userspace and
512autoresumes happen in response to I/O requests, but all user processes
513and I/O should be quiescent during a system suspend -- thanks to the
514freezer. However there are plans to do away with the freezer, which
515would mean these things would become possible. If and when this comes
516about, the USB core will carefully arrange matters so that either type
517of resume will block until the entire system has resumed.
diff --git a/Documentation/usb/usb-serial.txt b/Documentation/usb/usb-serial.txt
index 5b635ae84944..4e0b62b8566f 100644
--- a/Documentation/usb/usb-serial.txt
+++ b/Documentation/usb/usb-serial.txt
@@ -428,6 +428,17 @@ Options supported:
428 See http://www.uuhaus.de/linux/palmconnect.html for up-to-date 428 See http://www.uuhaus.de/linux/palmconnect.html for up-to-date
429 information on this driver. 429 information on this driver.
430 430
431Winchiphead CH341 Driver
432
433 This driver is for the Winchiphead CH341 USB-RS232 Converter. This chip
434 also implements an IEEE 1284 parallel port, I2C and SPI, but that is not
435 supported by the driver. The protocol was analyzed from the behaviour
436 of the Windows driver, no datasheet is available at present.
437 The manufacturer's website: http://www.winchiphead.com/.
438 For any questions or problems with this driver, please contact
439 frank@kingswood-consulting.co.uk.
440
441
431Generic Serial driver 442Generic Serial driver
432 443
433 If your device is not one of the above listed devices, compatible with 444 If your device is not one of the above listed devices, compatible with
diff --git a/Documentation/usb/usbmon.txt b/Documentation/usb/usbmon.txt
index 53ae866ae37b..2917ce4ffdc4 100644
--- a/Documentation/usb/usbmon.txt
+++ b/Documentation/usb/usbmon.txt
@@ -34,9 +34,12 @@ if usbmon is built into the kernel.
34Verify that bus sockets are present. 34Verify that bus sockets are present.
35 35
36# ls /sys/kernel/debug/usbmon 36# ls /sys/kernel/debug/usbmon
371s 1t 1u 2s 2t 2u 3s 3t 3u 4s 4t 4u 370s 0t 0u 1s 1t 1u 2s 2t 2u 3s 3t 3u 4s 4t 4u
38# 38#
39 39
40Now you can choose to either use the sockets numbered '0' (to capture packets on
41all buses), and skip to step #3, or find the bus used by your device with step #2.
42
402. Find which bus connects to the desired device 432. Find which bus connects to the desired device
41 44
42Run "cat /proc/bus/usb/devices", and find the T-line which corresponds to 45Run "cat /proc/bus/usb/devices", and find the T-line which corresponds to
@@ -56,6 +59,10 @@ Bus=03 means it's bus 3.
56 59
57# cat /sys/kernel/debug/usbmon/3u > /tmp/1.mon.out 60# cat /sys/kernel/debug/usbmon/3u > /tmp/1.mon.out
58 61
62to listen on a single bus, otherwise, to listen on all buses, type:
63
64# cat /sys/kernel/debug/usbmon/0u > /tmp/1.mon.out
65
59This process will be reading until killed. Naturally, the output can be 66This process will be reading until killed. Naturally, the output can be
60redirected to a desirable location. This is preferred, because it is going 67redirected to a desirable location. This is preferred, because it is going
61to be quite long. 68to be quite long.