diff options
Diffstat (limited to 'Documentation')
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/ | |||
145 | feature-removal-schedule.txt | 145 | feature-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. |
147 | filesystems/ | 147 | filesystems/ |
148 | - directory with info on the various filesystems that Linux supports. | 148 | - info on the vfs and the various filesystems that Linux supports. |
149 | firmware_class/ | 149 | firmware_class/ |
150 | - request_firmware() hotplug interface info. | 150 | - request_firmware() hotplug interface info. |
151 | floppy.txt | 151 | floppy.txt |
@@ -230,8 +230,6 @@ local_ops.txt | |||
230 | - semantics and behavior of local atomic operations. | 230 | - semantics and behavior of local atomic operations. |
231 | lockdep-design.txt | 231 | lockdep-design.txt |
232 | - documentation on the runtime locking correctness validator. | 232 | - documentation on the runtime locking correctness validator. |
233 | locks.txt | ||
234 | - info on file locking implementations, flock() vs. fcntl(), etc. | ||
235 | logo.gif | 233 | logo.gif |
236 | - full colour GIF image of Linux logo (penguin - Tux). | 234 | - full colour GIF image of Linux logo (penguin - Tux). |
237 | logo.txt | 235 | logo.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. |
241 | magic-number.txt | 239 | magic-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. |
243 | mandatory.txt | ||
244 | - info on the Linux implementation of Sys V mandatory file locking. | ||
245 | mca.txt | 241 | mca.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. |
247 | md.txt | 243 | md.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 | |||
68 | consistent allocate. cpu_addr must be the virtual address returned by | 68 | consistent allocate. cpu_addr must be the virtual address returned by |
69 | the consistent allocate. | 69 | the consistent allocate. |
70 | 70 | ||
71 | Note that unlike their sibling allocation calls, these routines | ||
72 | may only be called with IRQs enabled. | ||
73 | |||
71 | 74 | ||
72 | Part Ib - Using small dma-coherent buffers | 75 | Part 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 |
322 | X!Earch/i386/kernel/mca.c | 322 | X!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 | |||
241 | will fail enabling MSI-X on its hardware device when it calls the function | 241 | will fail enabling MSI-X on its hardware device when it calls the function |
242 | pci_enable_msix(). | 242 | pci_enable_msix(). |
243 | 243 | ||
244 | 5.3.2 Handling MSI-X allocation | 244 | 5.3.2 API pci_enable_msix |
245 | |||
246 | Determining the number of MSI-X vectors allocated to a function is | ||
247 | dependent on the number of MSI capable devices and MSI-X capable | ||
248 | devices populated in the system. The policy of allocating MSI-X | ||
249 | vectors to a function is defined as the following: | ||
250 | |||
251 | #of MSI-X vectors allocated to a function = (x - y)/z where | ||
252 | |||
253 | x = 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 | |||
265 | y = 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 | |||
270 | z = 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 | |||
274 | Note that the PCI subsystem scans y and z during a bus enumeration. | ||
275 | When the PCI subsystem completes configuring MSI/MSI-X capability | ||
276 | structure of a device as requested by its device driver, y/z is | ||
277 | decremented accordingly. | ||
278 | |||
279 | 5.3.3 Handling MSI-X shortages | ||
280 | |||
281 | For the case where fewer MSI-X vectors are allocated to a function | ||
282 | than requested, the function pci_enable_msix() will return the | ||
283 | maximum number of MSI-X vectors available to the caller. A device | ||
284 | driver may re-send its request with fewer or equal vectors indicated | ||
285 | in the return. For example, if a device driver requests 5 vectors, but | ||
286 | the number of available vectors is 3 vectors, a value of 3 will be | ||
287 | returned as a result of pci_enable_msix() call. A function could be | ||
288 | designed for its driver to use only 3 MSI-X table entries as | ||
289 | different combinations as ABC--, A-B-C, A--CB, etc. Note that this | ||
290 | patch does not support multiple entries with the same vector. Such | ||
291 | attempt by a device driver to use 5 MSI-X table entries with 3 vectors | ||
292 | as ABBCC, AABCC, BCCBA, etc will result as a failure by the function | ||
293 | pci_enable_msix(). Below are the reasons why supporting multiple | ||
294 | entries 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 | |||
305 | 5.3.4 API pci_enable_msix | ||
306 | 245 | ||
307 | int pci_enable_msix(struct pci_dev *dev, struct msix_entry *entries, int nvec) | 246 | int 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 | |||
339 | specified in second argument, or a result of no available vector, | 278 | specified in second argument, or a result of no available vector, |
340 | or a result of failing to initialize MSI-X table entries. | 279 | or a result of failing to initialize MSI-X table entries. |
341 | 280 | ||
342 | 5.3.5 API pci_disable_msix | 281 | 5.3.3 API pci_disable_msix |
343 | 282 | ||
344 | void pci_disable_msix(struct pci_dev *dev) | 283 | void 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() | |||
349 | on before calling this API. Failure to do so results in a BUG_ON() and | 288 | on before calling this API. Failure to do so results in a BUG_ON() and |
350 | a device will be left with MSI-X enabled and leaks its vectors. | 289 | a device will be left with MSI-X enabled and leaks its vectors. |
351 | 290 | ||
352 | 5.3.6 MSI-X mode vs. legacy mode diagram | 291 | 5.3.4 MSI-X mode vs. legacy mode diagram |
353 | 292 | ||
354 | The below diagram shows the events which switch the interrupt | 293 | The below diagram shows the events which switch the interrupt |
355 | mode on the MSI-X capable device function between MSI-X mode and | 294 | mode 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. | |||
407 | MSI/MSI-X support requires support from both system hardware and | 346 | MSI/MSI-X support requires support from both system hardware and |
408 | individual hardware device functions. | 347 | individual hardware device functions. |
409 | 348 | ||
410 | 5.5.1 System hardware support | 349 | 5.5.1 Required x86 hardware support |
411 | 350 | ||
412 | Since the target of MSI address is the local APIC CPU, enabling | 351 | Since the target of MSI address is the local APIC CPU, enabling |
413 | MSI/MSI-X support in the Linux kernel is dependent on whether existing | 352 | MSI/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 | ||
208 | What: Compaq touchscreen device emulation | ||
209 | When: Oct 2007 | ||
210 | Files: drivers/input/tsdev.c | ||
211 | Why: 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. | ||
218 | Who: Richard Purdie <rpurdie@rpsys.net> | ||
219 | |||
220 | --------------------------- | ||
221 | |||
222 | What: i2c-ixp2000, i2c-ixp4xx and scx200_i2c drivers | 208 | What: i2c-ixp2000, i2c-ixp4xx and scx200_i2c drivers |
223 | When: September 2007 | 209 | When: September 2007 |
224 | Why: Obsolete. The new i2c-gpio driver replaces all hardware-specific | 210 | Why: 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. |
53 | jfs.txt | 53 | jfs.txt |
54 | - info and mount options for the JFS filesystem. | 54 | - info and mount options for the JFS filesystem. |
55 | locks.txt | ||
56 | - info on file locking implementations, flock() vs. fcntl(), etc. | ||
57 | mandatory-locking.txt | ||
58 | - info on the Linux implementation of Sys V mandatory file locking. | ||
55 | ncpfs.txt | 59 | ncpfs.txt |
56 | - info on Novell Netware(tm) filesystem using NCP protocol. | 60 | - info on Novell Netware(tm) filesystem using NCP protocol. |
57 | ntfs.txt | 61 | ntfs.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. | |||
53 | 1.3 Mandatory Locking As A Mount Option | 53 | 1.3 Mandatory Locking As A Mount Option |
54 | --------------------------------------- | 54 | --------------------------------------- |
55 | 55 | ||
56 | Mandatory locking, as described in 'Documentation/mandatory.txt' was prior | 56 | Mandatory locking, as described in 'Documentation/filesystems/mandatory.txt' |
57 | to this release a general configuration option that was valid for all | 57 | was prior to this release a general configuration option that was valid for |
58 | mounted filesystems. This had a number of inherent dangers, not the least | 58 | all mounted filesystems. This had a number of inherent dangers, not the |
59 | of which was the ability to freeze an NFS server by asking it to read a | 59 | least of which was the ability to freeze an NFS server by asking it to read |
60 | file for which a mandatory lock existed. | 60 | a file for which a mandatory lock existed. |
61 | 61 | ||
62 | From this release of the kernel, mandatory locking can be turned on and off | 62 | From this release of the kernel, mandatory locking can be turned on and off |
63 | on a per-filesystem basis, using the mount options 'mand' and 'nomand'. | 63 | on 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 | |||
8 | 0. Why you should avoid mandatory locking | ||
9 | ----------------------------------------- | ||
10 | |||
11 | The Linux implementation is prey to a number of difficult-to-fix race | ||
12 | conditions 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 | ||
8 | 1. What is mandatory locking? | 27 | 1. 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 | ||
412 | For linear raid, just change the raid-level above to "raid-level linear", for | 412 | For linear raid, just change the raid-level above to "raid-level linear", for |
413 | mirrors, change it to "raid-level 1", and for stripe sets with parity, change | 413 | mirrors, change it to "raid-level 1", and for stripe sets with parity, change |
@@ -457,6 +457,8 @@ ChangeLog | |||
457 | 457 | ||
458 | Note, a technical ChangeLog aimed at kernel hackers is in fs/ntfs/ChangeLog. | 458 | Note, a technical ChangeLog aimed at kernel hackers is in fs/ntfs/ChangeLog. |
459 | 459 | ||
460 | 2.1.29: | ||
461 | - Fix a deadlock when mounting read-write. | ||
460 | 2.1.28: | 462 | 2.1.28: |
461 | - Fix a deadlock. | 463 | - Fix a deadlock. |
462 | 2.1.27: | 464 | 2.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 | |||
4 | Supported chips: | 4 | Supported 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 | ||
10 | Authors: | 14 | Authors: |
11 | Juerg Haefliger <juergh@gmail.com> | 15 | Juerg Haefliger <juergh@gmail.com> |
@@ -27,16 +31,25 @@ Description | |||
27 | ----------- | 31 | ----------- |
28 | 32 | ||
29 | This driver implements support for the hardware monitoring capabilities of the | 33 | This driver implements support for the hardware monitoring capabilities of the |
30 | SMSC DME1737 and Asus A8000 (which are the same) Super-I/O chips. This chip | 34 | SMSC DME1737 and Asus A8000 (which are the same) and SMSC SCH311x Super-I/O |
31 | features monitoring of 3 temp sensors temp[1-3] (2 remote diodes and 1 | 35 | chips. These chips feature monitoring of 3 temp sensors temp[1-3] (2 remote |
32 | internal), 7 voltages in[0-6] (6 external and 1 internal) and 6 fan speeds | 36 | diodes and 1 internal), 7 voltages in[0-6] (6 external and 1 internal) and up |
33 | fan[1-6]. Additionally, the chip implements 5 PWM outputs pwm[1-3,5-6] for | 37 | to 6 fan speeds fan[1-6]. Additionally, the chips implement up to 5 PWM |
34 | controlling fan speeds both manually and automatically. | 38 | outputs pwm[1-3,5-6] for controlling fan speeds both manually and |
35 | 39 | automatically. | |
36 | Fan[3-6] and pwm[3,5-6] are optional features and their availability is | 40 | |
37 | dependent on the configuration of the chip. The driver will detect which | 41 | For the DME1737 and A8000, fan[1-2] and pwm[1-2] are always present. Fan[3-6] |
38 | features are present during initialization and create the sysfs attributes | 42 | and pwm[3,5-6] are optional features and their availability depends on the |
39 | accordingly. | 43 | configuration of the chip. The driver will detect which features are present |
44 | during initialization and create the sysfs attributes accordingly. | ||
45 | |||
46 | For the SCH311x, fan[1-3] and pwm[1-3] are always present and fan[4-6] and | ||
47 | pwm[5-6] don't exist. | ||
48 | |||
49 | The hardware monitoring features of the DME1737 and A8000 are only accessible | ||
50 | via SMBus, while the SCH311x only provides access via the ISA bus. The driver | ||
51 | will therefore register itself as an I2C client driver if it detects a DME1737 | ||
52 | or A8000 and as a platform driver if it detects a SCH311x chip. | ||
40 | 53 | ||
41 | 54 | ||
42 | Voltage Monitoring | 55 | Voltage 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 | |||
38 | additional internal voltages monitored (VSB and battery). It also features | 42 | additional internal voltages monitored (VSB and battery). It also features |
39 | 6 VID inputs. The VID inputs are not yet supported by this driver. | 43 | 6 VID inputs. The VID inputs are not yet supported by this driver. |
40 | 44 | ||
45 | The Fintek F71806F/FG Super-I/O chip is essentially the same as the | ||
46 | F71872F/FG, and is undistinguishable therefrom. | ||
47 | |||
41 | The driver assumes that no more than one chip is present, which seems | 48 | The driver assumes that no more than one chip is present, which seems |
42 | reasonable. | 49 | reasonable. |
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 | |||
90 | can't have both on a given board. | 90 | can't have both on a given board. |
91 | 91 | ||
92 | The IT8716F, IT8718F and later IT8712F revisions have support for | 92 | The IT8716F, IT8718F and later IT8712F revisions have support for |
93 | 2 additional fans. They are not yet supported by the driver. | 93 | 2 additional fans. They are supported by the driver for the IT8716F and |
94 | IT8718F but not for the IT8712F | ||
94 | 95 | ||
95 | The IT8716F and IT8718F, and late IT8712F and IT8705F also have optional | 96 | The IT8716F and IT8718F, and late IT8712F and IT8705F also have optional |
96 | 16-bit tachometer counters for fans 1 to 3. This is better (no more fan | 97 | 16-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. | |||
56 | It is a value in volts. When it is unconnected, you will often find the | 56 | It is a value in volts. When it is unconnected, you will often find the |
57 | value 3.50 V here. | 57 | value 3.50 V here. |
58 | 58 | ||
59 | In addition to the alarms described above, there are a couple of additional | ||
60 | ones. There is a BTI alarm, which gets triggered when an external chip has | ||
61 | crossed its limits. Usually, this is connected to all LM75 chips; if at | ||
62 | least one crosses its limits, this bit gets set. The CHAS alarm triggers | ||
63 | if your computer case is open. The FIFO alarms should never trigger; it | ||
64 | indicates an internal error. The SMI_IN alarm indicates some other chip | ||
65 | has triggered an SMI interrupt. As we do not use SMI interrupts at all, | ||
66 | this condition usually indicates there is a problem with some other | ||
67 | device. | ||
68 | |||
69 | If an alarm triggers, it will remain triggered until the hardware register | 59 | If an alarm triggers, it will remain triggered until the hardware register |
70 | is read at least once. This means that the cause for the alarm may | 60 | is read at least once. This means that the cause for the alarm may |
71 | already have disappeared! Note that in the current implementation, all | 61 | already 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 | ||
10 | Author: | 10 | Authors: |
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: | |||
16 | Module Parameters | 16 | Module 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 | ||
58 | Hardware Description | 40 | Hardware Description |
59 | -------------------- | 41 | -------------------- |
60 | 42 | ||
61 | (from the datasheet) | 43 | (from the datasheet) |
62 | 44 | ||
63 | The LM93, hardware monitor, has a two wire digital interface compatible with | 45 | The LM93 hardware monitor has a two wire digital interface compatible with |
64 | SMBus 2.0. Using an 8-bit ADC, the LM93 measures the temperature of two remote | 46 | SMBus 2.0. Using an 8-bit ADC, the LM93 measures the temperature of two remote |
65 | diode connected transistors as well as its own die and 16 power supply | 47 | diode connected transistors as well as its own die and 16 power supply |
66 | voltages. To set fan speed, the LM93 has two PWM outputs that are each | 48 | voltages. 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 | |||
69 | temperature readings for better control of fan speed. The LM93 has four | 51 | temperature readings for better control of fan speed. The LM93 has four |
70 | tachometer inputs to measure fan speed. Limit and status registers for all | 52 | tachometer inputs to measure fan speed. Limit and status registers for all |
71 | measured values are included. The LM93 builds upon the functionality of | 53 | measured values are included. The LM93 builds upon the functionality of |
72 | previous motherboard management ASICs and uses some of the LM85 s features | 54 | previous 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 |
74 | for dynamic Vccp monitoring and PROCHOT. It is designed to monitor a dual | 56 | for dynamic Vccp monitoring and PROCHOT. It is designed to monitor a dual |
75 | processor Xeon class motherboard with a minimum of external components. | 57 | processor Xeon class motherboard with a minimum of external components. |
76 | 58 | ||
77 | 59 | ||
78 | Driver Description | ||
79 | ------------------ | ||
80 | |||
81 | This driver implements support for the National Semiconductor LM93. | ||
82 | |||
83 | |||
84 | User Interface | 60 | User Interface |
85 | -------------- | 61 | -------------- |
86 | 62 | ||
@@ -101,7 +77,7 @@ These intervals can be found in the sysfs files prochot1_interval and | |||
101 | prochot2_interval. The values in these files specify the intervals for | 77 | prochot2_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 |
103 | list will cause the driver to use the next largest interval. The available | 79 | list will cause the driver to use the next largest interval. The available |
104 | intervals are: | 80 | intervals 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 | |||
111 | non-zero integer to the sysfs file prochot_short. | 87 | non-zero integer to the sysfs file prochot_short. |
112 | 88 | ||
113 | The LM93 can also override the #PROCHOT pins by driving a PWM signal onto | 89 | The LM93 can also override the #PROCHOT pins by driving a PWM signal onto |
114 | one or both of them. When overridden, the signal has a period of 3.56 mS, | 90 | one or both of them. When overridden, the signal has a period of 3.56 ms, |
115 | a minimum pulse width of 5 clocks (at 22.5kHz => 6.25% duty cycle), and | 91 | a minimum pulse width of 5 clocks (at 22.5kHz => 6.25% duty cycle), and |
116 | a maximum pulse width of 80 clocks (at 22.5kHz => 99.88% duty cycle). | 92 | a maximum pulse width of 80 clocks (at 22.5kHz => 99.88% duty cycle). |
117 | 93 | ||
118 | The sysfs files prochot1_override and prochot2_override contain boolean | 94 | The sysfs files prochot1_override and prochot2_override contain boolean |
119 | intgers which enable or disable the override function for #P1_PROCHOT and | 95 | integers 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 |
121 | contains a value controlling the duty cycle for the PWM signal used when | 97 | contains a value controlling the duty cycle for the PWM signal used when |
122 | the override function is enabled. This value ranges from 0 to 15, with 0 | 98 | the 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 | |||
166 | not available will cause the driver to use the next largest value. Also note | 142 | not available will cause the driver to use the next largest value. Also note |
167 | that this parameter has implications for the Smart Tach Mode (see above). | 143 | that this parameter has implications for the Smart Tach Mode (see above). |
168 | 144 | ||
169 | PWM Output Frequencies: 12, 36, 48, 60, 72, 84, 96, 22500 (h/w default) | 145 | PWM Output Frequencies (in Hz): 12, 36, 48, 60, 72, 84, 96, 22500 (default) |
170 | 146 | ||
171 | Automatic PWM: | 147 | Automatic PWM: |
172 | 148 | ||
@@ -178,7 +154,7 @@ individual control sources to which the PWM output is bound. | |||
178 | The eight control sources are: temp1-temp4 (aka "zones" in the datasheet), | 154 | The 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 |
180 | in the sysfs files pwm<n>_auto_channels, where a "1" enables the binding, and | 156 | in 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). | 157 | a "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 | |||
328 | Sample Configuration File | ||
329 | ------------------------- | ||
330 | |||
331 | Here is a sample LM93 chip config for sensors.conf: | ||
332 | |||
333 | ---------- cut here ---------- | ||
334 | chip "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 | |||
67 | alarm (for example, whether a threshold must be met or must be exceeded | 67 | alarm (for example, whether a threshold must be met or must be exceeded |
68 | to cause an alarm) is chip-dependent. | 68 | to cause an alarm) is chip-dependent. |
69 | 69 | ||
70 | When setting values of hwmon sysfs attributes, the string representation of | ||
71 | the desired value must be written, note that strings which are not a number | ||
72 | are 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 | |||
78 | Read/write values may be read-only for some chips, depending on the | 82 | Read/write values may be read-only for some chips, depending on the |
79 | hardware implementation. | 83 | hardware implementation. |
80 | 84 | ||
81 | All entries are optional, and should only be created in a given driver | 85 | All entries (except name) are optional, and should only be created in a |
82 | if the chip has the feature. | 86 | given driver if the chip has the feature. |
87 | |||
88 | |||
89 | ******** | ||
90 | * Name * | ||
91 | ******** | ||
92 | |||
93 | name 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) | 128 | in[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 | ||
120 | cpu[0-*]_vid CPU core reference voltage. | 136 | cpu[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 | ||
178 | fan[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 | |||
162 | Also see the Alarms section for status flags associated with fans. | 185 | Also 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 | ||
221 | temp[1-*]_type Sensor type selection. | 244 | temp[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 | ||
263 | temp[1-4]_offset | 286 | temp[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 | 292 | temp[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 | ||
276 | Some chips measure temperature using external thermistors and an ADC, and | 300 | Some chips measure temperature using external thermistors and an ADC, and |
277 | report the temperature measurement as a voltage. Converting this voltage | 301 | report 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 | ********* | 420 | sysfs attribute writes interpretation |
397 | * Other * | 421 | ------------------------------------- |
398 | ********* | 422 | |
399 | 423 | hwmon sysfs attributes always contain numbers, so the first thing to do is to | |
400 | eeprom Raw EEPROM data in binary form. | 424 | convert the input to a number, there are 2 ways todo this depending whether |
401 | RO | 425 | the number can be negative or not: |
402 | 426 | unsigned long u = simple_strtoul(buf, NULL, 10); | |
403 | pec Enable or disable PEC (SMBus only) | 427 | long s = simple_strtol(buf, NULL, 10); |
404 | 0: disable | 428 | |
405 | 1: enable | 429 | With buf being the buffer with the user input being passed by the kernel. |
406 | RW | 430 | Notice that we do not use the second argument of strto[u]l, and thus cannot |
431 | tell when 0 is returned, if this was really 0 or is caused by invalid input. | ||
432 | This is done deliberately as checking this everywhere would add a lot of | ||
433 | code to the kernel. | ||
434 | |||
435 | Notice that it is important to always store the converted value in an | ||
436 | unsigned long or long, so that no wrap around can happen before any further | ||
437 | checking. | ||
438 | |||
439 | After the input string is converted to an (unsigned) long, the value should be | ||
440 | checked if its acceptable. Be careful with further conversions on the value | ||
441 | before checking it for validity, as these conversions could still cause a wrap | ||
442 | around before the check. For example do not multiply the result, and only | ||
443 | add/subtract if it has been divided before the add/subtract. | ||
444 | |||
445 | What to do if a value is found to be invalid, depends on the type of the | ||
446 | sysfs attribute that is being set. If it is a continuous setting like a | ||
447 | tempX_max or inX_max attribute, then the value should be clamped to its | ||
448 | limits using SENSORS_LIMIT(value, min_limit, max_limit). If it is not | ||
449 | continuous like for example a tempX_type, then when an invalid value is | ||
450 | written, -EINVAL should be returned. | ||
451 | |||
452 | Example1, 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 | |||
458 | Example2, 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. | |||
75 | An alarm is triggered if the voltage has crossed a programmable minimum | 75 | An alarm is triggered if the voltage has crossed a programmable minimum |
76 | or maximum limit. | 76 | or maximum limit. |
77 | 77 | ||
78 | The bit ordering for the alarm "realtime status register" and the | 78 | The w83791d has a global bit used to enable beeping from the speaker when an |
79 | "beep enable registers" are different. | 79 | alarm is triggered as well as a bitmask to enable or disable the beep for |
80 | 80 | specific alarms. You need both the global beep enable bit and the | |
81 | in0 (VCORE) : alarms: 0x000001 beep_enable: 0x000001 | 81 | corresponding beep bit to be on for a triggered alarm to sound a beep. |
82 | in1 (VINR0) : alarms: 0x000002 beep_enable: 0x002000 <== mismatch | 82 | |
83 | in2 (+3.3VIN): alarms: 0x000004 beep_enable: 0x000004 | 83 | The sysfs interface to the gloabal enable is via the sysfs beep_enable file. |
84 | in3 (5VDD) : alarms: 0x000008 beep_enable: 0x000008 | 84 | This file is used for both legacy and new code. |
85 | in4 (+12VIN) : alarms: 0x000100 beep_enable: 0x000100 | 85 | |
86 | in5 (-12VIN) : alarms: 0x000200 beep_enable: 0x000200 | 86 | The sysfs interface to the beep bitmask has migrated from the original legacy |
87 | in6 (-5VIN) : alarms: 0x000400 beep_enable: 0x000400 | 87 | method of a single sysfs beep_mask file to a newer method using multiple |
88 | in7 (VSB) : alarms: 0x080000 beep_enable: 0x010000 <== mismatch | 88 | *_beep files as described in .../Documentation/hwmon/sysfs-interface. |
89 | in8 (VBAT) : alarms: 0x100000 beep_enable: 0x020000 <== mismatch | 89 | |
90 | in9 (VINR1) : alarms: 0x004000 beep_enable: 0x004000 | 90 | A similar change has occured for the bitmap corresponding to the alarms. The |
91 | temp1 : alarms: 0x000010 beep_enable: 0x000010 | 91 | original legacy method used a single sysfs alarms file containing a bitmap |
92 | temp2 : alarms: 0x000020 beep_enable: 0x000020 | 92 | of triggered alarms. The newer method uses multiple sysfs *_alarm files |
93 | temp3 : alarms: 0x002000 beep_enable: 0x000002 <== mismatch | 93 | (again following the pattern described in sysfs-interface). |
94 | fan1 : alarms: 0x000040 beep_enable: 0x000040 | 94 | |
95 | fan2 : alarms: 0x000080 beep_enable: 0x000080 | 95 | Since both methods read and write the underlying hardware, they can be used |
96 | fan3 : alarms: 0x000800 beep_enable: 0x000800 | 96 | interchangeably and changes in one will automatically be reflected by |
97 | fan4 : alarms: 0x200000 beep_enable: 0x200000 | 97 | the other. If you use the legacy bitmask method, your user-space code is |
98 | fan5 : alarms: 0x400000 beep_enable: 0x400000 | 98 | responsible for handling the fact that the alarms and beep_mask bitmaps |
99 | tart1 : alarms: 0x010000 beep_enable: 0x040000 <== mismatch | 99 | are not the same (see the table below). |
100 | tart2 : alarms: 0x020000 beep_enable: 0x080000 <== mismatch | 100 | |
101 | tart3 : alarms: 0x040000 beep_enable: 0x100000 <== mismatch | 101 | NOTE: All new code should be written to use the newer sysfs-interface |
102 | case_open : alarms: 0x001000 beep_enable: 0x001000 | 102 | specification as that avoids bitmap problems and is the preferred interface |
103 | user_enable : alarms: -------- beep_enable: 0x800000 | 103 | going forward. |
104 | 104 | ||
105 | *** NOTE: It is the responsibility of user-space code to handle the fact | 105 | The driver reads the hardware chip values at most once every three seconds. |
106 | that the beep enable and alarm bits are in different positions when using that | 106 | User mode code requesting values more often will receive cached values. |
107 | feature of the chip. | 107 | |
108 | 108 | Alarms bitmap vs. beep_mask bitmask | |
109 | When an alarm goes off, you can be warned by a beeping signal through your | 109 | ------------------------------------ |
110 | computer speaker. It is possible to enable all beeping globally, or only | 110 | For legacy code using the alarms and beep_mask files: |
111 | the beeping for some alarms. | 111 | |
112 | 112 | in0 (VCORE) : alarms: 0x000001 beep_mask: 0x000001 | |
113 | The driver only reads the chip values each 3 seconds; reading them more | 113 | in1 (VINR0) : alarms: 0x000002 beep_mask: 0x002000 <== mismatch |
114 | often will do no harm, but will return 'old' values. | 114 | in2 (+3.3VIN): alarms: 0x000004 beep_mask: 0x000004 |
115 | in3 (5VDD) : alarms: 0x000008 beep_mask: 0x000008 | ||
116 | in4 (+12VIN) : alarms: 0x000100 beep_mask: 0x000100 | ||
117 | in5 (-12VIN) : alarms: 0x000200 beep_mask: 0x000200 | ||
118 | in6 (-5VIN) : alarms: 0x000400 beep_mask: 0x000400 | ||
119 | in7 (VSB) : alarms: 0x080000 beep_mask: 0x010000 <== mismatch | ||
120 | in8 (VBAT) : alarms: 0x100000 beep_mask: 0x020000 <== mismatch | ||
121 | in9 (VINR1) : alarms: 0x004000 beep_mask: 0x004000 | ||
122 | temp1 : alarms: 0x000010 beep_mask: 0x000010 | ||
123 | temp2 : alarms: 0x000020 beep_mask: 0x000020 | ||
124 | temp3 : alarms: 0x002000 beep_mask: 0x000002 <== mismatch | ||
125 | fan1 : alarms: 0x000040 beep_mask: 0x000040 | ||
126 | fan2 : alarms: 0x000080 beep_mask: 0x000080 | ||
127 | fan3 : alarms: 0x000800 beep_mask: 0x000800 | ||
128 | fan4 : alarms: 0x200000 beep_mask: 0x200000 | ||
129 | fan5 : alarms: 0x400000 beep_mask: 0x400000 | ||
130 | tart1 : alarms: 0x010000 beep_mask: 0x040000 <== mismatch | ||
131 | tart2 : alarms: 0x020000 beep_mask: 0x080000 <== mismatch | ||
132 | tart3 : alarms: 0x040000 beep_mask: 0x100000 <== mismatch | ||
133 | case_open : alarms: 0x001000 beep_mask: 0x001000 | ||
134 | global_enable: alarms: -------- beep_mask: 0x800000 (modified via beep_enable) | ||
115 | 135 | ||
116 | W83791D TODO: | 136 | W83791D TODO: |
117 | --------------- | 137 | --------------- |
118 | Provide a patch for per-file alarms and beep enables as defined in the hwmon | ||
119 | documentation (Documentation/hwmon/sysfs-interface) | ||
120 | Provide a patch for smart-fan control (still need appropriate motherboard/fans) | 138 | Provide 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 | ||
18 | Authors: | 19 | Authors: |
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 | |||
62 | value, that is to say 0. | 62 | value, that is to say 0. |
63 | 63 | ||
64 | The write file is read/write. Writing a value outputs it on the I/O | 64 | The write file is read/write. Writing a value outputs it on the I/O |
65 | port. Reading returns the last written value. | 65 | port. Reading returns the last written value. As it is not possible |
66 | 66 | to read this value from the chip, you need to write at least once to | |
67 | On module initialization the chip is configured as eight inputs (all | 67 | this file before you can read back from it. |
68 | outputs to 1), so you can connect any circuit to the PCF8574(A) without | ||
69 | being 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 | ||
91 | ioctl(file,I2C_TENBIT,long select) | 91 | ioctl(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 | ||
95 | ioctl(file,I2C_PEC,long select) | 96 | ioctl(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 | ||
100 | ioctl(file,I2C_FUNCS,unsigned long *funcs) | 103 | ioctl(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) | |||
103 | ioctl(file,I2C_RDWR,struct i2c_rdwr_ioctl_data *msgset) | 106 | ioctl(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 | |||
6 | types of SMBus commands: write quick, (r/w) byte, (r/w) byte data, and | 6 | types 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 | ||
9 | You need to provide a chip address as a module parameter when loading | 9 | You need to provide chip addresses as a module parameter when loading this |
10 | this driver, which will then only react to SMBus commands to this address. | 10 | driver, which will then only react to SMBus commands to these addresses. |
11 | 11 | ||
12 | No hardware is needed nor associated with this module. It will accept write | 12 | No hardware is needed nor associated with this module. It will accept write |
13 | quick commands to one address; it will respond to the other commands (also | 13 | quick commands to the specified addresses; it will respond to the other |
14 | to one address) by reading from or writing to an array in memory. It will | 14 | commands (also to the specified addresses) by reading from or writing to |
15 | also spam the kernel logs for every command it handles. | 15 | arrays in memory. It will also spam the kernel logs for every command it |
16 | handles. | ||
16 | 17 | ||
17 | A pointer register with auto-increment is implemented for all byte | 18 | A pointer register with auto-increment is implemented for all byte |
18 | operations. This allows for continuous byte reads like those supported by | 19 | operations. This allows for continuous byte reads like those supported by |
@@ -26,8 +27,8 @@ The typical use-case is like this: | |||
26 | 27 | ||
27 | PARAMETERS: | 28 | PARAMETERS: |
28 | 29 | ||
29 | int chip_addr: | 30 | int chip_addr[10]: |
30 | The SMBus address to emulate a chip at. | 31 | The SMBus addresses to emulate chips at. |
31 | 32 | ||
32 | CAVEATS: | 33 | CAVEATS: |
33 | 34 | ||
@@ -41,9 +42,6 @@ If the hardware for your driver has banked registers (e.g. Winbond sensors | |||
41 | chips) this module will not work well - although it could be extended to | 42 | chips) this module will not work well - although it could be extended to |
42 | support that pretty easily. | 43 | support that pretty easily. |
43 | 44 | ||
44 | Only one chip address is supported - although this module could be | ||
45 | extended to support more. | ||
46 | |||
47 | If you spam it hard enough, printk can be lossy. This module really wants | 45 | If you spam it hard enough, printk can be lossy. This module really wants |
48 | something like relayfs. | 46 | something 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 @@ | |||
1 | NOTE: | 1 | NOTE: |
2 | This is a version of Documentation/HOWTO translated into Japanese. | 2 | This is a version of Documentation/HOWTO translated into Japanese. |
3 | This document is maintained by Tsugikazu Shibata <tshibata@ab.jp.nec.com> | 3 | This document is maintained by Tsugikazu Shibata <tshibata@ab.jp.nec.com> |
4 | and the JF Project team <www.linux.or.jp/JF>. | 4 | and 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 | |||
11 | fork. So if you have any comments or updates for this file, please try | 11 | fork. So if you have any comments or updates for this file, please try |
12 | to update the original English file first. | 12 | to update the original English file first. |
13 | 13 | ||
14 | Last Updated: 2007/07/18 | 14 | Last Updated: 2007/09/23 |
15 | ================================== | 15 | ================================== |
16 | ã“ã‚Œã¯ã€ | 16 | ã“ã‚Œã¯ã€ |
17 | linux-2.6.22/Documentation/HOWTO | 17 | linux-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 | ||
32 | Linux カーãƒãƒ«é–‹ç™ºã®ã‚„ã‚Šæ–¹ | 33 | Linux カーãƒãƒ«é–‹ç™ºã®ã‚„ã‚Šæ–¹ |
@@ -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 | -『プãƒã‚°ãƒ©ãƒŸãƒ³ã‚°è¨€èªžï¼£ç¬¬2版ã€(B.W. カーニãƒãƒ³/D.M. リッãƒãƒ¼è‘— 石田晴久訳) [共立出版] | 65 | -『プãƒã‚°ãƒ©ãƒŸãƒ³ã‚°è¨€èªžï¼£ç¬¬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 | ||
93 | Linux カーãƒãƒ«ã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã¯ GPL ライセンスã®ä¸‹ã§ãƒªãƒªãƒ¼ã‚¹ã•ã‚Œã¦ã„ã¾ | 94 | Linux カーãƒãƒ«ã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã¯ 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 |
223 | Janitor's プãƒã‚¸ã‚§ã‚¯ãƒˆã«ã„ã‘ã°ã‚ˆã„ã§ã—ょㆠ- | 225 | Janitor's プãƒã‚¸ã‚§ã‚¯ãƒˆã«ã„ã‘ã°è‰¯ã„ã§ã—ょㆠ- |
224 | http://janitor.kernelnewbies.org/ | 226 | http://janitor.kernelnewbies.org/ |
225 | ã“ã“ã¯ãã®ã‚ˆã†ãªã‚¹ã‚¿ãƒ¼ãƒˆã‚’ã™ã‚‹ã®ã«ã†ã£ã¦ã¤ã‘ã®å ´æ‰€ã§ã™ã€‚ã“ã“ã«ã¯ã€ | 227 | ã“ã“ã¯ãã®ã‚ˆã†ãªã‚¹ã‚¿ãƒ¼ãƒˆã‚’ã™ã‚‹ã®ã«ã†ã£ã¦ã¤ã‘ã®å ´æ‰€ã§ã™ã€‚ã“ã“ã«ã¯ã€ |
226 | Linux カーãƒãƒ«ã‚½ãƒ¼ã‚¹ãƒ„リーã®ä¸ã«å«ã¾ã‚Œã‚‹ã€ãã‚Œã„ã«ã—ã€ä¿®æ£ã—ãªã‘ã‚Œã°ãª | 228 | Linux カーãƒãƒ«ã‚½ãƒ¼ã‚¹ãƒ„リーã®ä¸ã«å«ã¾ã‚Œã‚‹ã€ãã‚Œã„ã«ã—ã€ä¿®æ£ã—ãªã‘ã‚Œã°ãª |
@@ -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 ã¯å€‹åˆ¥ã®ã‚µãƒ–システムカーãƒãƒ«ãƒ„リーã¨ãƒ‘ッãƒã‚’å…¨ã¦é | |||
331 | linux-kernel メーリングリストã§åŽé›†ã•ã‚ŒãŸå¤šæ•°ã®ãƒ‘ッãƒã¨åŒæ™‚ã«ä¸€ã¤ã«ã¾ | 337 | linux-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 | ||
576 | 1) å°ã•ã„パッãƒã¯ã‚ãªãŸã®ãƒ‘ッãƒãŒé©ç”¨ã•ã‚Œã‚‹è¦‹è¾¼ã¿ã‚’大ããã—ã¾ã™ã€ã‚«ãƒ¼ | 582 | 1) å°ã•ã„パッãƒã¯ã‚ãªãŸã®ãƒ‘ッãƒãŒé©ç”¨ã•ã‚Œã‚‹è¦‹è¾¼ã¿ã‚’大ããã—ã¾ã™ã€ã‚«ãƒ¼ |
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 カーãƒãƒ«ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã¯ã€ä¸€åº¦ã«å¤§é‡ã®ã‚³ãƒ¼ãƒ‰ã®å¡Šã‚’å– | |||
587 | 2) å°ã•ã„パッãƒã‚’é€ã‚‹ã ã‘ã§ãªãã€é€ã‚‹ã¾ãˆã«ã€æ›¸ãç›´ã—ã¦ã€ã‚·ãƒ³ãƒ—ルã«ã™ | 593 | 2) å°ã•ã„パッãƒã‚’é€ã‚‹ã ã‘ã§ãªãã€é€ã‚‹ã¾ãˆã«ã€æ›¸ãç›´ã—ã¦ã€ã‚·ãƒ³ãƒ—ルã«ã™ |
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 | ||
55 | struct kobject { | 55 | struct 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); | |||
223 | is equivalent to doing: | 222 | is equivalent to doing: |
224 | 223 | ||
225 | struct kset devices_subsys = { | 224 | struct 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 | 228 | kobject_set_name(&devices_subsys, name); | |
233 | 229 | ||
234 | The objects that are registered with a subsystem that use the | 230 | The objects that are registered with a subsystem that use the |
235 | subsystem's default list must have their kset ptr set properly. These | 231 | subsystem's default list must have their kset ptr set properly. These |
236 | objects may have embedded kobjects or ksets. The | 232 | objects may have embedded kobjects or ksets. The |
237 | following helpers make setting the kset easier: | 233 | following helper makes setting the kset easier: |
238 | 234 | ||
239 | 235 | ||
240 | kobj_set_kset_s(obj,subsys) | 236 | kobj_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 | |||
246 | kset_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 | |||
251 | subsys_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 | |||
256 | void subsystem_init(struct kset *s); | ||
257 | int subsystem_register(struct kset *s); | 241 | int subsystem_register(struct kset *s); |
258 | void subsystem_unregister(struct kset *s); | 242 | void subsystem_unregister(struct kset *s); |
259 | struct kset *subsys_get(struct kset *s); | ||
260 | void kset_put(struct kset *s); | ||
261 | 243 | ||
262 | These are just wrappers around the respective kset_* functions. | 244 | These 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 | ||
284 | fail_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 | |||
284 | lacp_rate | 317 | lacp_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 @@ | |||
1 | This document describes the interfaces /proc/net/tcp and /proc/net/tcp6. | 1 | This document describes the interfaces /proc/net/tcp and /proc/net/tcp6. |
2 | Note that these interfaces are deprecated in favor of tcp_diag. | ||
2 | 3 | ||
3 | These /proc interfaces provide information about currently active TCP | 4 | These /proc interfaces provide information about currently active TCP |
4 | connections, and are implemented by tcp_get_info() in net/ipv4/tcp_ipv4.c and | 5 | connections, and are implemented by tcp4_seq_show() in net/ipv4/tcp_ipv4.c |
5 | tcp6_get_info() in net/ipv6/tcp_ipv6.c, respectively. | 6 | and tcp6_seq_show() in net/ipv6/tcp_ipv6.c, respectively. |
6 | 7 | ||
7 | It will first list all listening TCP sockets, and next list all established | 8 | It will first list all listening TCP sockets, and next list all established |
8 | TCP connections. A typical entry of /proc/net/tcp would look like this (split | 9 | TCP 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 @@ | |||
1 | 00-INDEX | ||
2 | - this file. | ||
3 | 3270.ChangeLog | ||
4 | - ChangeLog for the UTS Global 3270-support patch (outdated). | ||
5 | 3270.txt | ||
6 | - how to use the IBM 3270 display system support. | ||
7 | cds.txt | ||
8 | - s390 common device support (common I/O layer). | ||
9 | CommonIO | ||
10 | - common I/O layer command line parameters, procfs and debugfs entries | ||
11 | config3270.sh | ||
12 | - example configuration for 3270 devices. | ||
13 | DASD | ||
14 | - information on the DASD disk device driver. | ||
15 | Debugging390.txt | ||
16 | - hints for debugging on s390 systems. | ||
17 | driver-model.txt | ||
18 | - information on s390 devices and the driver model. | ||
19 | monreader.txt | ||
20 | - information on accessing the z/VM monitor stream from Linux. | ||
21 | s390dbf.txt | ||
22 | - information on using the s390 debug feature. | ||
23 | TAPE | ||
24 | - information on the driver for channel-attached tapes. | ||
25 | zfcpdump | ||
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 @@ | |||
1 | S/390 common I/O-Layer - command line parameters and /proc entries | 1 | S/390 common I/O-Layer - command line parameters, procfs and debugfs entries |
2 | ================================================================== | 2 | ============================================================================ |
3 | 3 | ||
4 | Command line parameters | 4 | Command 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 | ||
95 | debugfs 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 | ||
289 | If the concurrent sense flag in the extended status word in the irb is set, the | 289 | If the concurrent sense flag in the extended status word (esw) in the irb is |
290 | field irb->scsw.count describes the number of device specific sense bytes | 290 | set, the field erw.scnt in the esw describes the number of device specific |
291 | available in the extended control word irb->scsw.ecw[0]. No device sensing by | 291 | sense bytes available in the extended control word irb->scsw.ecw[]. No device |
292 | the device driver itself is required. | 292 | sensing by the device driver itself is required. |
293 | 293 | ||
294 | The device interrupt handler can use the following definitions to investigate | 294 | The device interrupt handler can use the following definitions to investigate |
295 | the primary unit check source coded in sense byte 0 : | 295 | the 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 | |||
121 | Group scheduler extension to CFS | ||
122 | ================================ | ||
123 | |||
124 | Normally the scheduler operates on individual tasks and strives to provide | ||
125 | fair CPU time to each task. Sometimes, it may be desirable to group tasks | ||
126 | and provide fair CPU time to each such task group. For example, it may | ||
127 | be desirable to first provide fair CPU time to each user on the system | ||
128 | and then to each task belonging to a user. | ||
129 | |||
130 | CONFIG_FAIR_GROUP_SCHED strives to achieve exactly that. It lets | ||
131 | SCHED_NORMAL/BATCH tasks be be grouped and divides CPU time fairly among such | ||
132 | groups. At present, there are two (mutually exclusive) mechanisms to group | ||
133 | tasks 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 | |||
143 | Only one of these options to group tasks can be chosen and not both. | ||
144 | |||
145 | Group scheduler tunables: | ||
146 | |||
147 | When CONFIG_FAIR_USER_SCHED is defined, a directory is created in sysfs for | ||
148 | each 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 | |||
158 | CPU bandwidth between two users are divided in the ratio of their CPU shares. | ||
159 | For 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 | ||
161 | cpu_share is twice "guest"'s cpu_share | ||
162 | |||
163 | |||
164 | When CONFIG_FAIR_CGROUP_SCHED is defined, a "cpu.shares" file is created | ||
165 | for each group created using the pseudo filesystem. See example steps | ||
166 | below to create task groups and modify their CPU share using the "cgroups" | ||
167 | pseudo 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 |
3 | 53c700.txt | 3 | 53c700.txt |
4 | - info on driver for 53c700 based adapters | 4 | - info on driver for 53c700 based adapters |
5 | AM53C974.txt | ||
6 | - info on driver for AM53c974 based adapters | ||
7 | BusLogic.txt | 5 | BusLogic.txt |
8 | - info on driver for adapters with BusLogic chips | 6 | - info on driver for adapters with BusLogic chips |
9 | ChangeLog | 7 | ChangeLog.1992-1997 |
10 | - Changes to scsi files, if not listed elsewhere | 8 | - Changes to scsi files, if not listed elsewhere |
9 | ChangeLog.arcmsr | ||
10 | - Changes to driver for ARECA's SATA RAID controller cards | ||
11 | ChangeLog.ips | 11 | ChangeLog.ips |
12 | - IBM ServeRAID driver Changelog | 12 | - IBM ServeRAID driver Changelog |
13 | ChangeLog.lpfc | ||
14 | - Changes to lpfc driver | ||
15 | ChangeLog.megaraid | ||
16 | - Changes to LSI megaraid controller. | ||
17 | ChangeLog.megaraid_sas | ||
18 | - Changes to serial attached scsi version of LSI megaraid controller. | ||
13 | ChangeLog.ncr53c8xx | 19 | ChangeLog.ncr53c8xx |
14 | - Changes to ncr53c8xx driver | 20 | - Changes to ncr53c8xx driver |
15 | ChangeLog.sym53c8xx | 21 | ChangeLog.sym53c8xx |
@@ -20,26 +26,44 @@ FlashPoint.txt | |||
20 | - info on driver for BusLogic FlashPoint adapters | 26 | - info on driver for BusLogic FlashPoint adapters |
21 | LICENSE.FlashPoint | 27 | LICENSE.FlashPoint |
22 | - Licence of the Flashpoint driver | 28 | - Licence of the Flashpoint driver |
29 | LICENSE.qla2xxx | ||
30 | - License for QLogic Linux Fibre Channel HBA Driver firmware. | ||
23 | Mylex.txt | 31 | Mylex.txt |
24 | - info on driver for Mylex adapters | 32 | - info on driver for Mylex adapters |
25 | NinjaSCSI.txt | 33 | NinjaSCSI.txt |
26 | - info on WorkBiT NinjaSCSI-32/32Bi driver | 34 | - info on WorkBiT NinjaSCSI-32/32Bi driver |
35 | aacraid.txt | ||
36 | - Driver supporting Adaptec RAID controllers | ||
27 | aha152x.txt | 37 | aha152x.txt |
28 | - info on driver for Adaptec AHA152x based adapters | 38 | - info on driver for Adaptec AHA152x based adapters |
39 | aic79xx.txt | ||
40 | - Adaptec Ultra320 SCSI host adapters | ||
29 | aic7xxx.txt | 41 | aic7xxx.txt |
30 | - info on driver for Adaptec controllers | 42 | - info on driver for Adaptec controllers |
31 | aic7xxx_old.txt | 43 | aic7xxx_old.txt |
32 | - info on driver for Adaptec controllers, old generation | 44 | - info on driver for Adaptec controllers, old generation |
45 | arcmsr_spec.txt | ||
46 | - ARECA FIRMWARE SPEC (for IOP331 adapter) | ||
47 | dc395x.txt | ||
48 | - README file for the dc395x SCSI driver | ||
33 | dpti.txt | 49 | dpti.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 |
35 | dtc3x80.txt | 51 | dtc3x80.txt |
36 | - info on driver for DTC 2x80 based adapters | 52 | - info on driver for DTC 2x80 based adapters |
37 | g_NCR5380.txt | 53 | g_NCR5380.txt |
38 | - info on driver for NCR5380 and NCR53c400 based adapters | 54 | - info on driver for NCR5380 and NCR53c400 based adapters |
55 | hptiop.txt | ||
56 | - HIGHPOINT ROCKETRAID 3xxx RAID DRIVER | ||
39 | ibmmca.txt | 57 | ibmmca.txt |
40 | - info on driver for IBM adapters with MCA bus | 58 | - info on driver for IBM adapters with MCA bus |
41 | in2000.txt | 59 | in2000.txt |
42 | - info on in2000 driver | 60 | - info on in2000 driver |
61 | libsas.txt | ||
62 | - Serial Attached SCSI management layer. | ||
63 | lpfc.txt | ||
64 | - LPFC driver release notes | ||
65 | megaraid.txt | ||
66 | - Common Management Module, shared code handling ioctls for LSI drivers | ||
43 | ncr53c7xx.txt | 67 | ncr53c7xx.txt |
44 | - info on driver for NCR53c7xx based adapters | 68 | - info on driver for NCR53c7xx based adapters |
45 | ncr53c8xx.txt | 69 | ncr53c8xx.txt |
@@ -50,6 +74,8 @@ ppa.txt | |||
50 | - info on driver for IOmega zip drive | 74 | - info on driver for IOmega zip drive |
51 | qlogicfas.txt | 75 | qlogicfas.txt |
52 | - info on driver for QLogic FASxxx based adapters | 76 | - info on driver for QLogic FASxxx based adapters |
77 | scsi-changer.txt | ||
78 | - README for the SCSI media changer driver | ||
53 | scsi-generic.txt | 79 | scsi-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. |
55 | scsi.txt | 81 | scsi.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 |
59 | scsi_eh.txt | 85 | scsi_eh.txt |
60 | - info on SCSI midlayer error handling infrastructure | 86 | - info on SCSI midlayer error handling infrastructure |
87 | scsi_fc_transport.txt | ||
88 | - SCSI Fiber Channel Tansport | ||
61 | st.txt | 89 | st.txt |
62 | - info on scsi tape driver | 90 | - info on scsi tape driver |
63 | sym53c500_cs.txt | 91 | sym53c500_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 | ||
107 | People | 111 | People |
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 @@ | |||
1 | AdvanSys (Advanced System Products, Inc.) manufactures the following | ||
2 | RISC-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 | ||
4 | buses and RISC-based, Bus-Mastering, Ultra (20 Mhz) Wide (16-bit | ||
5 | transfer) SCSI Host Adapters for the PCI bus. | ||
6 | |||
7 | The CDB counts below indicate the number of SCSI CDB (Command | ||
8 | Descriptor Block) requests that can be stored in the RISC chip | ||
9 | cache and board LRAM. A CDB is a single SCSI command. The driver | ||
10 | detect routine will display the number of CDBs available for each | ||
11 | adapter detected. The number of CDBs used by the driver can be | ||
12 | lowered in the BIOS by changing the 'Host Queue Size' adapter setting. | ||
13 | |||
14 | Laptop Products: | ||
15 | ABP-480 - Bus-Master CardBus (16 CDB) | ||
16 | |||
17 | Connectivity 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 | |||
33 | Single 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 | |||
47 | Multi-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 | |||
58 | Driver Compile Time Options and Debugging | ||
59 | |||
60 | The following constants can be defined in the source file. | ||
61 | |||
62 | 1. 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 | |||
73 | 2. 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 | |||
134 | 3. 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 | |||
158 | Driver LILO Option | ||
159 | |||
160 | If init/main.c is modified as described in the 'Directions for Adding | ||
161 | the AdvanSys Driver to Linux' section (B.4.) above, the driver will | ||
162 | recognize the 'advansys' LILO command line and /etc/lilo.conf option. | ||
163 | This option can be used to either disable I/O port scanning or to limit | ||
164 | scanning to 1 - 4 I/O ports. Regardless of the option setting EISA and | ||
165 | PCI boards will still be searched for and detected. This option only | ||
166 | affects searching for ISA and VL boards. | ||
167 | |||
168 | Examples: | ||
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 | |||
178 | For a loadable module the same effect can be achieved by setting | ||
179 | the 'asc_iopflag' variable and 'asc_ioport' array when loading | ||
180 | the driver, e.g. | ||
181 | |||
182 | insmod advansys.o asc_iopflag=1 asc_ioport=0x110,0x330 | ||
183 | |||
184 | If ADVANSYS_DEBUG is defined a 5th (ASC_NUM_IOPORT_PROBE + 1) | ||
185 | I/O Port may be added to specify the driver debug level. Refer to | ||
186 | the 'Driver Compile Time Options and Debugging' section above for | ||
187 | more information. | ||
188 | |||
189 | Credits (Chronological Order) | ||
190 | |||
191 | Bob Frey <bfrey@turbolinux.com.cn> wrote the AdvanSys SCSI driver | ||
192 | and maintained it up to 3.3F. He continues to answer questions | ||
193 | and help maintain the driver. | ||
194 | |||
195 | Nathan Hartwell <mage@cdc3.cdc.net> provided the directions and | ||
196 | basis for the Linux v1.3.X changes which were included in the | ||
197 | 1.2 release. | ||
198 | |||
199 | Thomas E Zerucha <zerucha@shell.portal.com> pointed out a bug | ||
200 | in advansys_biosparam() which was fixed in the 1.3 release. | ||
201 | |||
202 | Erik Ratcliffe <erik@caldera.com> has done testing of the | ||
203 | AdvanSys driver in the Caldera releases. | ||
204 | |||
205 | Rik van Riel <H.H.vanRiel@fys.ruu.nl> provided a patch to | ||
206 | AscWaitTixISRDone() which he found necessary to make the | ||
207 | driver work with a SCSI-1 disk. | ||
208 | |||
209 | Mark Moran <mmoran@mmoran.com> has helped test Ultra-Wide | ||
210 | support in the 3.1A driver. | ||
211 | |||
212 | Doug Gilbert <dgilbert@interlog.com> has made changes and | ||
213 | suggestions to improve the driver and done a lot of testing. | ||
214 | |||
215 | Ken Mort <ken@mort.net> reported a DEBUG compile bug fixed | ||
216 | in 3.2K. | ||
217 | |||
218 | Tom Rini <trini@kernel.crashing.org> provided the CONFIG_ISA | ||
219 | patch and helped with PowerPC wide and narrow board support. | ||
220 | |||
221 | Philip Blundell <philb@gnu.org> provided an | ||
222 | advansys_interrupts_enabled patch. | ||
223 | |||
224 | Dave Jones <dave@denial.force9.co.uk> reported the compiler | ||
225 | warnings generated when CONFIG_PROC_FS was not defined in | ||
226 | the 3.2M driver. | ||
227 | |||
228 | Jerry Quinn <jlquinn@us.ibm.com> fixed PowerPC support (endian | ||
229 | problems) for wide cards. | ||
230 | |||
231 | Bryan Henderson <bryanh@giraffe-data.com> helped debug narrow | ||
232 | card error handling. | ||
233 | |||
234 | Manuel Veloso <veloso@pobox.com> worked hard on PowerPC narrow | ||
235 | board support and fixed a bug in AscGetEEPConfig(). | ||
236 | |||
237 | Arnaldo Carvalho de Melo <acme@conectiva.com.br> made | ||
238 | save_flags/restore_flags changes. | ||
239 | |||
240 | Andy Kellner <AKellner@connectcom.net> continued the Advansys SCSI | ||
241 | driver development for ConnectCom (Version > 3.3F). | ||
242 | |||
243 | Ken 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 | |||
2 | Authorizing (or not) your USB devices to connect to the system | ||
3 | |||
4 | (C) 2007 Inaky Perez-Gonzalez <inaky@linux.intel.com> Intel Corporation | ||
5 | |||
6 | This feature allows you to control if a USB device can be used (or | ||
7 | not) in a system. This feature will allow you to implement a lock-down | ||
8 | of USB devices, fully controlled by user space. | ||
9 | |||
10 | As of now, when a USB device is connected it is configured and | ||
11 | it's interfaces inmediately made available to the users. With this | ||
12 | modification, only if root authorizes the device to be configured will | ||
13 | then it be possible to use it. | ||
14 | |||
15 | Usage: | ||
16 | |||
17 | Authorize a device to connect: | ||
18 | |||
19 | $ echo 1 > /sys/usb/devices/DEVICE/authorized | ||
20 | |||
21 | Deauthorize a device: | ||
22 | |||
23 | $ echo 0 > /sys/usb/devices/DEVICE/authorized | ||
24 | |||
25 | Set new devices connected to hostX to be deauthorized by default (ie: | ||
26 | lock down): | ||
27 | |||
28 | $ echo 0 > /sys/bus/devices/usbX/authorized_default | ||
29 | |||
30 | Remove the lock down: | ||
31 | |||
32 | $ echo 1 > /sys/bus/devices/usbX/authorized_default | ||
33 | |||
34 | By default, Wired USB devices are authorized by default to | ||
35 | connect. Wireless USB hosts deauthorize by default all new connected | ||
36 | devices (this is so because we need to do an authentication phase | ||
37 | before authorizing). | ||
38 | |||
39 | |||
40 | Example system lockdown (lame) | ||
41 | ----------------------- | ||
42 | |||
43 | Imagine you want to implement a lockdown so only devices of type XYZ | ||
44 | can be connected (for example, it is a kiosk machine with a visible | ||
45 | USB port): | ||
46 | |||
47 | boot up | ||
48 | rc.local -> | ||
49 | |||
50 | for host in /sys/bus/devices/usb* | ||
51 | do | ||
52 | echo 0 > $host/authorized_default | ||
53 | done | ||
54 | |||
55 | Hookup 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 | |||
63 | Now, device_is_my_type() is where the juice for a lockdown is. Just | ||
64 | checking if the class, type and protocol match something is the worse | ||
65 | security verification you can make (or the best, for someone willing | ||
66 | to break it). If you need something secure, use crypto and Certificate | ||
67 | Authentication or stuff like that. Something simple for an storage key | ||
68 | could be: | ||
69 | |||
70 | function 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 | |||
87 | Of course, this is lame, you'd want to do a real certificate | ||
88 | verification stuff with PKI, so you don't depend on a shared secret, | ||
89 | etc, but you get the idea. Anybody with access to a device gadget kit | ||
90 | can fake descriptors and device info. Don't trust that. You are | ||
91 | welcome. | ||
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 | |||
12 | Power Management (PM) is the practice of saving energy by suspending | ||
13 | parts of a computer system when they aren't being used. While a | ||
14 | component is "suspended" it is in a nonfunctional low-power state; it | ||
15 | might even be turned off completely. A suspended component can be | ||
16 | "resumed" (returned to a functional full-power state) when the kernel | ||
17 | needs to use it. (There also are forms of PM in which components are | ||
18 | placed in a less functional but still usable state instead of being | ||
19 | suspended; an example would be reducing the CPU's clock rate. This | ||
20 | document will not discuss those other forms.) | ||
21 | |||
22 | When the parts being suspended include the CPU and most of the rest of | ||
23 | the system, we speak of it as a "system suspend". When a particular | ||
24 | device is turned off while the system as a whole remains running, we | ||
25 | call it a "dynamic suspend" (also known as a "runtime suspend" or | ||
26 | "selective suspend"). This document concentrates mostly on how | ||
27 | dynamic PM is implemented in the USB subsystem, although system PM is | ||
28 | covered to some extent (see Documentation/power/*.txt for more | ||
29 | information about system PM). | ||
30 | |||
31 | Note: Dynamic PM support for USB is present only if the kernel was | ||
32 | built with CONFIG_USB_SUSPEND enabled. System PM support is present | ||
33 | only if the kernel was built with CONFIG_SUSPEND or CONFIG_HIBERNATION | ||
34 | enabled. | ||
35 | |||
36 | |||
37 | What is Remote Wakeup? | ||
38 | ---------------------- | ||
39 | |||
40 | When a device has been suspended, it generally doesn't resume until | ||
41 | the computer tells it to. Likewise, if the entire computer has been | ||
42 | suspended, it generally doesn't resume until the user tells it to, say | ||
43 | by pressing a power button or opening the cover. | ||
44 | |||
45 | However some devices have the capability of resuming by themselves, or | ||
46 | asking the kernel to resume them, or even telling the entire computer | ||
47 | to resume. This capability goes by several names such as "Wake On | ||
48 | LAN"; we will refer to it generically as "remote wakeup". When a | ||
49 | device is enabled for remote wakeup and it is suspended, it may resume | ||
50 | itself (or send a request to be resumed) in response to some external | ||
51 | event. Examples include a suspended keyboard resuming when a key is | ||
52 | pressed, or a suspended USB hub resuming when a device is plugged in. | ||
53 | |||
54 | |||
55 | When is a USB device idle? | ||
56 | -------------------------- | ||
57 | |||
58 | A device is idle whenever the kernel thinks it's not busy doing | ||
59 | anything important and thus is a candidate for being suspended. The | ||
60 | exact definition depends on the device's driver; drivers are allowed | ||
61 | to declare that a device isn't idle even when there's no actual | ||
62 | communication taking place. (For example, a hub isn't considered idle | ||
63 | unless all the devices plugged into that hub are already suspended.) | ||
64 | In addition, a device isn't considered idle so long as a program keeps | ||
65 | its usbfs file open, whether or not any I/O is going on. | ||
66 | |||
67 | If a USB device has no driver, its usbfs file isn't open, and it isn't | ||
68 | being accessed through sysfs, then it definitely is idle. | ||
69 | |||
70 | |||
71 | Forms of dynamic PM | ||
72 | ------------------- | ||
73 | |||
74 | Dynamic suspends can occur in two ways: manual and automatic. | ||
75 | "Manual" means that the user has told the kernel to suspend a device, | ||
76 | whereas "automatic" means that the kernel has decided all by itself to | ||
77 | suspend a device. Automatic suspend is called "autosuspend" for | ||
78 | short. In general, a device won't be autosuspended unless it has been | ||
79 | idle for some minimum period of time, the so-called idle-delay time. | ||
80 | |||
81 | Of course, nothing the kernel does on its own initiative should | ||
82 | prevent the computer or its devices from working properly. If a | ||
83 | device has been autosuspended and a program tries to use it, the | ||
84 | kernel will automatically resume the device (autoresume). For the | ||
85 | same reason, an autosuspended device will usually have remote wakeup | ||
86 | enabled, if the device supports remote wakeup. | ||
87 | |||
88 | It is worth mentioning that many USB drivers don't support | ||
89 | autosuspend. In fact, at the time of this writing (Linux 2.6.23) the | ||
90 | only drivers which do support it are the hub driver, kaweth, asix, | ||
91 | usblp, usblcd, and usb-skeleton (which doesn't count). If a | ||
92 | non-supporting driver is bound to a device, the device won't be | ||
93 | autosuspended. In effect, the kernel pretends the device is never | ||
94 | idle. | ||
95 | |||
96 | We can categorize power management events in two broad classes: | ||
97 | external and internal. External events are those triggered by some | ||
98 | agent outside the USB stack: system suspend/resume (triggered by | ||
99 | userspace), manual dynamic suspend/resume (also triggered by | ||
100 | userspace), and remote wakeup (triggered by the device). Internal | ||
101 | events are those triggered within the USB stack: autosuspend and | ||
102 | autoresume. | ||
103 | |||
104 | |||
105 | The user interface for dynamic PM | ||
106 | --------------------------------- | ||
107 | |||
108 | The user interface for controlling dynamic PM is located in the power/ | ||
109 | subdirectory of each USB device's sysfs directory, that is, in | ||
110 | /sys/bus/usb/devices/.../power/ where "..." is the device's ID. The | ||
111 | relevant 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 | |||
152 | Writing "-1" to power/autosuspend and writing "on" to power/level do | ||
153 | essentially the same thing -- they both prevent the device from being | ||
154 | autosuspended. Yes, this is a redundancy in the API. | ||
155 | |||
156 | (In 2.6.21 writing "0" to power/autosuspend would prevent the device | ||
157 | from being autosuspended; the behavior was changed in 2.6.22. The | ||
158 | power/autosuspend attribute did not exist prior to 2.6.21, and the | ||
159 | power/level attribute did not exist prior to 2.6.22.) | ||
160 | |||
161 | |||
162 | Changing the default idle-delay time | ||
163 | ------------------------------------ | ||
164 | |||
165 | The default autosuspend idle-delay time is controlled by a module | ||
166 | parameter in usbcore. You can specify the value when usbcore is | ||
167 | loaded. For example, to set it to 5 seconds instead of 2 you would | ||
168 | do: | ||
169 | |||
170 | modprobe usbcore autosuspend=5 | ||
171 | |||
172 | Equivalently, you could add to /etc/modprobe.conf a line saying: | ||
173 | |||
174 | options usbcore autosuspend=5 | ||
175 | |||
176 | Some distributions load the usbcore module very early during the boot | ||
177 | process, by means of a program or script running from an initramfs | ||
178 | image. To alter the parameter value you would have to rebuild that | ||
179 | image. | ||
180 | |||
181 | If usbcore is compiled into the kernel rather than built as a loadable | ||
182 | module, you can add | ||
183 | |||
184 | usbcore.autosuspend=5 | ||
185 | |||
186 | to the kernel's boot command line. | ||
187 | |||
188 | Finally, the parameter value can be changed while the system is | ||
189 | running. If you do: | ||
190 | |||
191 | echo 5 >/sys/module/usbcore/parameters/autosuspend | ||
192 | |||
193 | then each new USB device will have its autosuspend idle-delay | ||
194 | initialized to 5. (The idle-delay values for already existing devices | ||
195 | will not be affected.) | ||
196 | |||
197 | Setting the initial default idle-delay to -1 will prevent any | ||
198 | autosuspend of any USB device. This is a simple alternative to | ||
199 | disabling CONFIG_USB_SUSPEND and rebuilding the kernel, and it has the | ||
200 | added benefit of allowing you to enable autosuspend for selected | ||
201 | devices. | ||
202 | |||
203 | |||
204 | Warnings | ||
205 | -------- | ||
206 | |||
207 | The USB specification states that all USB devices must support power | ||
208 | management. Nevertheless, the sad fact is that many devices do not | ||
209 | support it very well. You can suspend them all right, but when you | ||
210 | try to resume them they disconnect themselves from the USB bus or | ||
211 | they stop working entirely. This seems to be especially prevalent | ||
212 | among printers and scanners, but plenty of other types of device have | ||
213 | the same deficiency. | ||
214 | |||
215 | For this reason, by default the kernel disables autosuspend (the | ||
216 | power/level attribute is initialized to "on") for all devices other | ||
217 | than hubs. Hubs, at least, appear to be reasonably well-behaved in | ||
218 | this regard. | ||
219 | |||
220 | (In 2.6.21 and 2.6.22 this wasn't the case. Autosuspend was enabled | ||
221 | by default for almost all USB devices. A number of people experienced | ||
222 | problems as a result.) | ||
223 | |||
224 | This means that non-hub devices won't be autosuspended unless the user | ||
225 | or a program explicitly enables it. As of this writing there aren't | ||
226 | any widespread programs which will do this; we hope that in the near | ||
227 | future device managers such as HAL will take on this added | ||
228 | responsibility. In the meantime you can always carry out the | ||
229 | necessary operations by hand or add them to a udev script. You can | ||
230 | also change the idle-delay time; 2 seconds is not the best choice for | ||
231 | every device. | ||
232 | |||
233 | Sometimes it turns out that even when a device does work okay with | ||
234 | autosuspend there are still problems. For example, there are | ||
235 | experimental patches adding autosuspend support to the usbhid driver, | ||
236 | which manages keyboards and mice, among other things. Tests with a | ||
237 | number of keyboards showed that typing on a suspended keyboard, while | ||
238 | causing the keyboard to do a remote wakeup all right, would | ||
239 | nonetheless frequently result in lost keystrokes. Tests with mice | ||
240 | showed that some of them would issue a remote-wakeup request in | ||
241 | response to button presses but not to motion, and some in response to | ||
242 | neither. | ||
243 | |||
244 | The kernel will not prevent you from enabling autosuspend on devices | ||
245 | that can't handle it. It is even possible in theory to damage a | ||
246 | device by suspending it at the wrong time -- for example, suspending a | ||
247 | USB 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 | |||
254 | The requirements for a USB driver to support external power management | ||
255 | are pretty modest; the driver need only define | ||
256 | |||
257 | .suspend | ||
258 | .resume | ||
259 | .reset_resume | ||
260 | |||
261 | methods in its usb_driver structure, and the reset_resume method is | ||
262 | optional. 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 | |||
281 | The reset_resume method is used by the USB Persist facility (see | ||
282 | Documentation/usb/persist.txt) and it can also be used under certain | ||
283 | circumstances when CONFIG_USB_PERSIST is not enabled. Currently, if a | ||
284 | device is reset during a resume and the driver does not have a | ||
285 | reset_resume method, the driver won't receive any notification about | ||
286 | the resume. Later kernels will call the driver's disconnect method; | ||
287 | 2.6.23 doesn't do this. | ||
288 | |||
289 | USB drivers are bound to interfaces, so their suspend and resume | ||
290 | methods get called when the interfaces are suspended or resumed. In | ||
291 | principle one might want to suspend some interfaces on a device (i.e., | ||
292 | force the drivers for those interface to stop all activity) without | ||
293 | suspending the other interfaces. The USB core doesn't allow this; all | ||
294 | interfaces are suspended when the device itself is suspended and all | ||
295 | interfaces are resumed when the device is resumed. It isn't possible | ||
296 | to suspend or resume some but not all of a device's interfaces. The | ||
297 | closest you can come is to unbind the interfaces' drivers. | ||
298 | |||
299 | |||
300 | The driver interface for autosuspend and autoresume | ||
301 | --------------------------------------------------- | ||
302 | |||
303 | To support autosuspend and autoresume, a driver should implement all | ||
304 | three of the methods listed above. In addition, a driver indicates | ||
305 | that it supports autosuspend by setting the .supports_autosuspend flag | ||
306 | in its usb_driver structure. It is then responsible for informing the | ||
307 | USB core whenever one of its interfaces becomes busy or idle. The | ||
308 | driver 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 | |||
314 | The functions work by maintaining a counter in the usb_interface | ||
315 | structure. When intf->pm_usage_count is > 0 then the interface is | ||
316 | deemed to be busy, and the kernel will not autosuspend the interface's | ||
317 | device. When intf->pm_usage_count is <= 0 then the interface is | ||
318 | considered to be idle, and the kernel may autosuspend the device. | ||
319 | |||
320 | (There is a similar pm_usage_count field in struct usb_device, | ||
321 | associated with the device itself rather than any of its interfaces. | ||
322 | This field is used only by the USB core.) | ||
323 | |||
324 | The driver owns intf->pm_usage_count; it can modify the value however | ||
325 | and whenever it likes. A nice aspect of the usb_autopm_* routines is | ||
326 | that the changes they make are protected by the usb_device structure's | ||
327 | PM mutex (udev->pm_mutex); however drivers may change pm_usage_count | ||
328 | without 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 | |||
343 | There 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 | |||
351 | The conventional usage pattern is that a driver calls | ||
352 | usb_autopm_get_interface() in its open routine and | ||
353 | usb_autopm_put_interface() in its close or release routine. But | ||
354 | other patterns are possible. | ||
355 | |||
356 | The autosuspend attempts mentioned above will often fail for one | ||
357 | reason or another. For example, the power/level attribute might be | ||
358 | set to "on", or another interface in the same device might not be | ||
359 | idle. This is perfectly normal. If the reason for failure was that | ||
360 | the device hasn't been idle for long enough, a delayed workqueue | ||
361 | routine is automatically set up to carry out the operation when the | ||
362 | autosuspend idle-delay has expired. | ||
363 | |||
364 | Autoresume attempts also can fail. This will happen if power/level is | ||
365 | set to "suspend" or if the device doesn't manage to resume properly. | ||
366 | Unlike autosuspend, there's no delay for an autoresume. | ||
367 | |||
368 | |||
369 | Other parts of the driver interface | ||
370 | ----------------------------------- | ||
371 | |||
372 | Sometimes a driver needs to make sure that remote wakeup is enabled | ||
373 | during autosuspend. For example, there's not much point | ||
374 | autosuspending a keyboard if the user can't cause the keyboard to do a | ||
375 | remote wakeup by typing on it. If the driver sets | ||
376 | intf->needs_remote_wakeup to 1, the kernel won't autosuspend the | ||
377 | device if remote wakeup isn't available or has been disabled through | ||
378 | the power/wakeup attribute. (If the device is already autosuspended, | ||
379 | though, setting this flag won't cause the kernel to autoresume it. | ||
380 | Normally a driver would set this flag in its probe method, at which | ||
381 | time the device is guaranteed not to be autosuspended.) | ||
382 | |||
383 | The usb_autopm_* routines have to run in a sleepable process context; | ||
384 | they must not be called from an interrupt handler or while holding a | ||
385 | spinlock. In fact, the entire autosuspend mechanism is not well geared | ||
386 | toward interrupt-driven operation. However there is one thing a | ||
387 | driver can do in an interrupt handler: | ||
388 | |||
389 | usb_mark_last_busy(struct usb_device *udev); | ||
390 | |||
391 | This sets udev->last_busy to the current time. udev->last_busy is the | ||
392 | field used for idle-delay calculations; updating it will cause any | ||
393 | pending autosuspend to be moved back. The usb_autopm_* routines will | ||
394 | also set the last_busy field to the current time. | ||
395 | |||
396 | Calling urb_mark_last_busy() from within an URB completion handler is | ||
397 | subject to races: The kernel may have just finished deciding the | ||
398 | device has been idle for long enough but not yet gotten around to | ||
399 | calling the driver's suspend method. The driver would have to be | ||
400 | responsible for synchronizing its suspend method with its URB | ||
401 | completion handler and causing the autosuspend to fail with -EBUSY if | ||
402 | an URB had completed too recently. | ||
403 | |||
404 | External suspend calls should never be allowed to fail in this way, | ||
405 | only autosuspend calls. The driver can tell them apart by checking | ||
406 | udev->auto_pm; this flag will be set to 1 for internal PM events | ||
407 | (autosuspend or autoresume) and 0 for external PM events. | ||
408 | |||
409 | Many of the ingredients in the autosuspend framework are oriented | ||
410 | towards interfaces: The usb_interface structure contains the | ||
411 | pm_usage_cnt field, and the usb_autopm_* routines take an interface | ||
412 | pointer as their argument. But somewhat confusingly, a few of the | ||
413 | pieces (usb_mark_last_busy() and udev->auto_pm) use the usb_device | ||
414 | structure instead. Drivers need to keep this straight; they can call | ||
415 | interface_to_usbdev() to find the device structure for a given | ||
416 | interface. | ||
417 | |||
418 | |||
419 | Locking requirements | ||
420 | -------------------- | ||
421 | |||
422 | All three suspend/resume methods are always called while holding the | ||
423 | usb_device's PM mutex. For external events -- but not necessarily for | ||
424 | autosuspend or autoresume -- the device semaphore (udev->dev.sem) will | ||
425 | also be held. This implies that external suspend/resume events are | ||
426 | mutually exclusive with calls to probe, disconnect, pre_reset, and | ||
427 | post_reset; the USB core guarantees that this is true of internal | ||
428 | suspend/resume events as well. | ||
429 | |||
430 | If a driver wants to block all suspend/resume calls during some | ||
431 | critical section, it can simply acquire udev->pm_mutex. | ||
432 | Alternatively, if the critical section might call some of the | ||
433 | usb_autopm_* routines, the driver can avoid deadlock by doing: | ||
434 | |||
435 | down(&udev->dev.sem); | ||
436 | rc = usb_autopm_get_interface(intf); | ||
437 | |||
438 | and at the end of the critical section: | ||
439 | |||
440 | if (!rc) | ||
441 | usb_autopm_put_interface(intf); | ||
442 | up(&udev->dev.sem); | ||
443 | |||
444 | Holding the device semaphore will block all external PM calls, and the | ||
445 | usb_autopm_get_interface() will prevent any internal PM calls, even if | ||
446 | it fails. (Exercise: Why?) | ||
447 | |||
448 | The 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 | |||
455 | In other words, PM mutexes should only be acquired going up the device | ||
456 | tree, and they should be acquired only after locking all the device | ||
457 | semaphores you need to hold. These rules don't matter to drivers very | ||
458 | much; they usually affect just the USB core. | ||
459 | |||
460 | Still, drivers do need to be careful. For example, many drivers use a | ||
461 | private mutex to synchronize their normal I/O activities with their | ||
462 | disconnect method. Now if the driver supports autosuspend then it | ||
463 | must call usb_autopm_put_interface() from somewhere -- maybe from its | ||
464 | close method. It should make the call while holding the private mutex, | ||
465 | since a driver shouldn't call any of the usb_autopm_* functions for an | ||
466 | interface from which it has been unbound. | ||
467 | |||
468 | But the usb_autpm_* routines always acquire the device's PM mutex, and | ||
469 | consequently the locking order has to be: private mutex first, PM | ||
470 | mutex second. Since the suspend method is always called with the PM | ||
471 | mutex held, it mustn't try to acquire the private mutex. It has to | ||
472 | synchronize with the driver's I/O activities in some other way. | ||
473 | |||
474 | |||
475 | Interaction between dynamic PM and system PM | ||
476 | -------------------------------------------- | ||
477 | |||
478 | Dynamic power management and system power management can interact in | ||
479 | a couple of ways. | ||
480 | |||
481 | Firstly, a device may already be manually suspended or autosuspended | ||
482 | when a system suspend occurs. Since system suspends are supposed to | ||
483 | be as transparent as possible, the device should remain suspended | ||
484 | following the system resume. The 2.6.23 kernel obeys this principle | ||
485 | for manually suspended devices but not for autosuspended devices; they | ||
486 | do get resumed when the system wakes up. (Presumably they will be | ||
487 | autosuspended again after their idle-delay time expires.) In later | ||
488 | kernels this behavior will be fixed. | ||
489 | |||
490 | (There is an exception. If a device would undergo a reset-resume | ||
491 | instead of a normal resume, and the device is enabled for remote | ||
492 | wakeup, then the reset-resume takes place even if the device was | ||
493 | already suspended when the system suspend began. The justification is | ||
494 | that a reset-resume is a kind of remote-wakeup event. Or to put it | ||
495 | another way, a device which needs a reset won't be able to generate | ||
496 | normal remote-wakeup signals, so it ought to be resumed immediately.) | ||
497 | |||
498 | Secondly, a dynamic power-management event may occur as a system | ||
499 | suspend is underway. The window for this is short, since system | ||
500 | suspends don't take long (a few seconds usually), but it can happen. | ||
501 | For example, a suspended device may send a remote-wakeup signal while | ||
502 | the system is suspending. The remote wakeup may succeed, which would | ||
503 | cause the system suspend to abort. If the remote wakeup doesn't | ||
504 | succeed, it may still remain active and thus cause the system to | ||
505 | resume as soon as the system suspend is complete. Or the remote | ||
506 | wakeup may fail and get lost. Which outcome occurs depends on timing | ||
507 | and on the hardware and firmware design. | ||
508 | |||
509 | More interestingly, a device might undergo a manual resume or | ||
510 | autoresume during system suspend. With current kernels this shouldn't | ||
511 | happen, because manual resumes must be initiated by userspace and | ||
512 | autoresumes happen in response to I/O requests, but all user processes | ||
513 | and I/O should be quiescent during a system suspend -- thanks to the | ||
514 | freezer. However there are plans to do away with the freezer, which | ||
515 | would mean these things would become possible. If and when this comes | ||
516 | about, the USB core will carefully arrange matters so that either type | ||
517 | of 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 | ||
431 | Winchiphead 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 | |||
431 | Generic Serial driver | 442 | Generic 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. | |||
34 | Verify that bus sockets are present. | 34 | Verify that bus sockets are present. |
35 | 35 | ||
36 | # ls /sys/kernel/debug/usbmon | 36 | # ls /sys/kernel/debug/usbmon |
37 | 1s 1t 1u 2s 2t 2u 3s 3t 3u 4s 4t 4u | 37 | 0s 0t 0u 1s 1t 1u 2s 2t 2u 3s 3t 3u 4s 4t 4u |
38 | # | 38 | # |
39 | 39 | ||
40 | Now you can choose to either use the sockets numbered '0' (to capture packets on | ||
41 | all buses), and skip to step #3, or find the bus used by your device with step #2. | ||
42 | |||
40 | 2. Find which bus connects to the desired device | 43 | 2. Find which bus connects to the desired device |
41 | 44 | ||
42 | Run "cat /proc/bus/usb/devices", and find the T-line which corresponds to | 45 | Run "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 | ||
62 | to 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 | |||
59 | This process will be reading until killed. Naturally, the output can be | 66 | This process will be reading until killed. Naturally, the output can be |
60 | redirected to a desirable location. This is preferred, because it is going | 67 | redirected to a desirable location. This is preferred, because it is going |
61 | to be quite long. | 68 | to be quite long. |