diff options
Diffstat (limited to 'Documentation')
21 files changed, 804 insertions, 88 deletions
diff --git a/Documentation/ABI/testing/sysfs-class-bdi b/Documentation/ABI/testing/sysfs-class-bdi new file mode 100644 index 000000000000..5ac1e01bbd48 --- /dev/null +++ b/Documentation/ABI/testing/sysfs-class-bdi | |||
@@ -0,0 +1,46 @@ | |||
1 | What: /sys/class/bdi/<bdi>/ | ||
2 | Date: January 2008 | ||
3 | Contact: Peter Zijlstra <a.p.zijlstra@chello.nl> | ||
4 | Description: | ||
5 | |||
6 | Provide a place in sysfs for the backing_dev_info object. This allows | ||
7 | setting and retrieving various BDI specific variables. | ||
8 | |||
9 | The <bdi> identifier can be either of the following: | ||
10 | |||
11 | MAJOR:MINOR | ||
12 | |||
13 | Device number for block devices, or value of st_dev on | ||
14 | non-block filesystems which provide their own BDI, such as NFS | ||
15 | and FUSE. | ||
16 | |||
17 | default | ||
18 | |||
19 | The default backing dev, used for non-block device backed | ||
20 | filesystems which do not provide their own BDI. | ||
21 | |||
22 | Files under /sys/class/bdi/<bdi>/ | ||
23 | --------------------------------- | ||
24 | |||
25 | read_ahead_kb (read-write) | ||
26 | |||
27 | Size of the read-ahead window in kilobytes | ||
28 | |||
29 | min_ratio (read-write) | ||
30 | |||
31 | Under normal circumstances each device is given a part of the | ||
32 | total write-back cache that relates to its current average | ||
33 | writeout speed in relation to the other devices. | ||
34 | |||
35 | The 'min_ratio' parameter allows assigning a minimum | ||
36 | percentage of the write-back cache to a particular device. | ||
37 | For example, this is useful for providing a minimum QoS. | ||
38 | |||
39 | max_ratio (read-write) | ||
40 | |||
41 | Allows limiting a particular device to use not more than the | ||
42 | given percentage of the write-back cache. This is useful in | ||
43 | situations where we want to avoid one device taking all or | ||
44 | most of the write-back cache. For example in case of an NFS | ||
45 | mount that is prone to get stuck, or a FUSE mount which cannot | ||
46 | be trusted to play fair. | ||
diff --git a/Documentation/DocBook/Makefile b/Documentation/DocBook/Makefile index 83966e94cc32..0eb0d027eb32 100644 --- a/Documentation/DocBook/Makefile +++ b/Documentation/DocBook/Makefile | |||
@@ -12,7 +12,7 @@ DOCBOOKS := wanbook.xml z8530book.xml mcabook.xml videobook.xml \ | |||
12 | kernel-api.xml filesystems.xml lsm.xml usb.xml kgdb.xml \ | 12 | kernel-api.xml filesystems.xml lsm.xml usb.xml kgdb.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 s390-drivers.xml uio-howto.xml scsi.xml \ | 14 | genericirq.xml s390-drivers.xml uio-howto.xml scsi.xml \ |
15 | mac80211.xml | 15 | mac80211.xml debugobjects.xml |
16 | 16 | ||
17 | ### | 17 | ### |
18 | # The build process is as follows (targets): | 18 | # The build process is as follows (targets): |
diff --git a/Documentation/DocBook/debugobjects.tmpl b/Documentation/DocBook/debugobjects.tmpl new file mode 100644 index 000000000000..7f5f218015fe --- /dev/null +++ b/Documentation/DocBook/debugobjects.tmpl | |||
@@ -0,0 +1,391 @@ | |||
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="debug-objects-guide"> | ||
6 | <bookinfo> | ||
7 | <title>Debug objects life time</title> | ||
8 | |||
9 | <authorgroup> | ||
10 | <author> | ||
11 | <firstname>Thomas</firstname> | ||
12 | <surname>Gleixner</surname> | ||
13 | <affiliation> | ||
14 | <address> | ||
15 | <email>tglx@linutronix.de</email> | ||
16 | </address> | ||
17 | </affiliation> | ||
18 | </author> | ||
19 | </authorgroup> | ||
20 | |||
21 | <copyright> | ||
22 | <year>2008</year> | ||
23 | <holder>Thomas Gleixner</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 version 2 as published by the Free Software Foundation. | ||
31 | </para> | ||
32 | |||
33 | <para> | ||
34 | This program is distributed in the hope that it will be | ||
35 | useful, but WITHOUT ANY WARRANTY; without even the implied | ||
36 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
37 | See the GNU General Public License for more details. | ||
38 | </para> | ||
39 | |||
40 | <para> | ||
41 | You should have received a copy of the GNU General Public | ||
42 | License along with this program; if not, write to the Free | ||
43 | Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | ||
44 | MA 02111-1307 USA | ||
45 | </para> | ||
46 | |||
47 | <para> | ||
48 | For more details see the file COPYING in the source | ||
49 | distribution of Linux. | ||
50 | </para> | ||
51 | </legalnotice> | ||
52 | </bookinfo> | ||
53 | |||
54 | <toc></toc> | ||
55 | |||
56 | <chapter id="intro"> | ||
57 | <title>Introduction</title> | ||
58 | <para> | ||
59 | debugobjects is a generic infrastructure to track the life time | ||
60 | of kernel objects and validate the operations on those. | ||
61 | </para> | ||
62 | <para> | ||
63 | debugobjects is useful to check for the following error patterns: | ||
64 | <itemizedlist> | ||
65 | <listitem><para>Activation of uninitialized objects</para></listitem> | ||
66 | <listitem><para>Initialization of active objects</para></listitem> | ||
67 | <listitem><para>Usage of freed/destroyed objects</para></listitem> | ||
68 | </itemizedlist> | ||
69 | </para> | ||
70 | <para> | ||
71 | debugobjects is not changing the data structure of the real | ||
72 | object so it can be compiled in with a minimal runtime impact | ||
73 | and enabled on demand with a kernel command line option. | ||
74 | </para> | ||
75 | </chapter> | ||
76 | |||
77 | <chapter id="howto"> | ||
78 | <title>Howto use debugobjects</title> | ||
79 | <para> | ||
80 | A kernel subsystem needs to provide a data structure which | ||
81 | describes the object type and add calls into the debug code at | ||
82 | appropriate places. The data structure to describe the object | ||
83 | type needs at minimum the name of the object type. Optional | ||
84 | functions can and should be provided to fixup detected problems | ||
85 | so the kernel can continue to work and the debug information can | ||
86 | be retrieved from a live system instead of hard core debugging | ||
87 | with serial consoles and stack trace transcripts from the | ||
88 | monitor. | ||
89 | </para> | ||
90 | <para> | ||
91 | The debug calls provided by debugobjects are: | ||
92 | <itemizedlist> | ||
93 | <listitem><para>debug_object_init</para></listitem> | ||
94 | <listitem><para>debug_object_init_on_stack</para></listitem> | ||
95 | <listitem><para>debug_object_activate</para></listitem> | ||
96 | <listitem><para>debug_object_deactivate</para></listitem> | ||
97 | <listitem><para>debug_object_destroy</para></listitem> | ||
98 | <listitem><para>debug_object_free</para></listitem> | ||
99 | </itemizedlist> | ||
100 | Each of these functions takes the address of the real object and | ||
101 | a pointer to the object type specific debug description | ||
102 | structure. | ||
103 | </para> | ||
104 | <para> | ||
105 | Each detected error is reported in the statistics and a limited | ||
106 | number of errors are printk'ed including a full stack trace. | ||
107 | </para> | ||
108 | <para> | ||
109 | The statistics are available via debugfs/debug_objects/stats. | ||
110 | They provide information about the number of warnings and the | ||
111 | number of successful fixups along with information about the | ||
112 | usage of the internal tracking objects and the state of the | ||
113 | internal tracking objects pool. | ||
114 | </para> | ||
115 | </chapter> | ||
116 | <chapter id="debugfunctions"> | ||
117 | <title>Debug functions</title> | ||
118 | <sect1 id="prototypes"> | ||
119 | <title>Debug object function reference</title> | ||
120 | !Elib/debugobjects.c | ||
121 | </sect1> | ||
122 | <sect1 id="debug_object_init"> | ||
123 | <title>debug_object_init</title> | ||
124 | <para> | ||
125 | This function is called whenever the initialization function | ||
126 | of a real object is called. | ||
127 | </para> | ||
128 | <para> | ||
129 | When the real object is already tracked by debugobjects it is | ||
130 | checked, whether the object can be initialized. Initializing | ||
131 | is not allowed for active and destroyed objects. When | ||
132 | debugobjects detects an error, then it calls the fixup_init | ||
133 | function of the object type description structure if provided | ||
134 | by the caller. The fixup function can correct the problem | ||
135 | before the real initialization of the object happens. E.g. it | ||
136 | can deactivate an active object in order to prevent damage to | ||
137 | the subsystem. | ||
138 | </para> | ||
139 | <para> | ||
140 | When the real object is not yet tracked by debugobjects, | ||
141 | debugobjects allocates a tracker object for the real object | ||
142 | and sets the tracker object state to ODEBUG_STATE_INIT. It | ||
143 | verifies that the object is not on the callers stack. If it is | ||
144 | on the callers stack then a limited number of warnings | ||
145 | including a full stack trace is printk'ed. The calling code | ||
146 | must use debug_object_init_on_stack() and remove the object | ||
147 | before leaving the function which allocated it. See next | ||
148 | section. | ||
149 | </para> | ||
150 | </sect1> | ||
151 | |||
152 | <sect1 id="debug_object_init_on_stack"> | ||
153 | <title>debug_object_init_on_stack</title> | ||
154 | <para> | ||
155 | This function is called whenever the initialization function | ||
156 | of a real object which resides on the stack is called. | ||
157 | </para> | ||
158 | <para> | ||
159 | When the real object is already tracked by debugobjects it is | ||
160 | checked, whether the object can be initialized. Initializing | ||
161 | is not allowed for active and destroyed objects. When | ||
162 | debugobjects detects an error, then it calls the fixup_init | ||
163 | function of the object type description structure if provided | ||
164 | by the caller. The fixup function can correct the problem | ||
165 | before the real initialization of the object happens. E.g. it | ||
166 | can deactivate an active object in order to prevent damage to | ||
167 | the subsystem. | ||
168 | </para> | ||
169 | <para> | ||
170 | When the real object is not yet tracked by debugobjects | ||
171 | debugobjects allocates a tracker object for the real object | ||
172 | and sets the tracker object state to ODEBUG_STATE_INIT. It | ||
173 | verifies that the object is on the callers stack. | ||
174 | </para> | ||
175 | <para> | ||
176 | An object which is on the stack must be removed from the | ||
177 | tracker by calling debug_object_free() before the function | ||
178 | which allocates the object returns. Otherwise we keep track of | ||
179 | stale objects. | ||
180 | </para> | ||
181 | </sect1> | ||
182 | |||
183 | <sect1 id="debug_object_activate"> | ||
184 | <title>debug_object_activate</title> | ||
185 | <para> | ||
186 | This function is called whenever the activation function of a | ||
187 | real object is called. | ||
188 | </para> | ||
189 | <para> | ||
190 | When the real object is already tracked by debugobjects it is | ||
191 | checked, whether the object can be activated. Activating is | ||
192 | not allowed for active and destroyed objects. When | ||
193 | debugobjects detects an error, then it calls the | ||
194 | fixup_activate function of the object type description | ||
195 | structure if provided by the caller. The fixup function can | ||
196 | correct the problem before the real activation of the object | ||
197 | happens. E.g. it can deactivate an active object in order to | ||
198 | prevent damage to the subsystem. | ||
199 | </para> | ||
200 | <para> | ||
201 | When the real object is not yet tracked by debugobjects then | ||
202 | the fixup_activate function is called if available. This is | ||
203 | necessary to allow the legitimate activation of statically | ||
204 | allocated and initialized objects. The fixup function checks | ||
205 | whether the object is valid and calls the debug_objects_init() | ||
206 | function to initialize the tracking of this object. | ||
207 | </para> | ||
208 | <para> | ||
209 | When the activation is legitimate, then the state of the | ||
210 | associated tracker object is set to ODEBUG_STATE_ACTIVE. | ||
211 | </para> | ||
212 | </sect1> | ||
213 | |||
214 | <sect1 id="debug_object_deactivate"> | ||
215 | <title>debug_object_deactivate</title> | ||
216 | <para> | ||
217 | This function is called whenever the deactivation function of | ||
218 | a real object is called. | ||
219 | </para> | ||
220 | <para> | ||
221 | When the real object is tracked by debugobjects it is checked, | ||
222 | whether the object can be deactivated. Deactivating is not | ||
223 | allowed for untracked or destroyed objects. | ||
224 | </para> | ||
225 | <para> | ||
226 | When the deactivation is legitimate, then the state of the | ||
227 | associated tracker object is set to ODEBUG_STATE_INACTIVE. | ||
228 | </para> | ||
229 | </sect1> | ||
230 | |||
231 | <sect1 id="debug_object_destroy"> | ||
232 | <title>debug_object_destroy</title> | ||
233 | <para> | ||
234 | This function is called to mark an object destroyed. This is | ||
235 | useful to prevent the usage of invalid objects, which are | ||
236 | still available in memory: either statically allocated objects | ||
237 | or objects which are freed later. | ||
238 | </para> | ||
239 | <para> | ||
240 | When the real object is tracked by debugobjects it is checked, | ||
241 | whether the object can be destroyed. Destruction is not | ||
242 | allowed for active and destroyed objects. When debugobjects | ||
243 | detects an error, then it calls the fixup_destroy function of | ||
244 | the object type description structure if provided by the | ||
245 | caller. The fixup function can correct the problem before the | ||
246 | real destruction of the object happens. E.g. it can deactivate | ||
247 | an active object in order to prevent damage to the subsystem. | ||
248 | </para> | ||
249 | <para> | ||
250 | When the destruction is legitimate, then the state of the | ||
251 | associated tracker object is set to ODEBUG_STATE_DESTROYED. | ||
252 | </para> | ||
253 | </sect1> | ||
254 | |||
255 | <sect1 id="debug_object_free"> | ||
256 | <title>debug_object_free</title> | ||
257 | <para> | ||
258 | This function is called before an object is freed. | ||
259 | </para> | ||
260 | <para> | ||
261 | When the real object is tracked by debugobjects it is checked, | ||
262 | whether the object can be freed. Free is not allowed for | ||
263 | active objects. When debugobjects detects an error, then it | ||
264 | calls the fixup_free function of the object type description | ||
265 | structure if provided by the caller. The fixup function can | ||
266 | correct the problem before the real free of the object | ||
267 | happens. E.g. it can deactivate an active object in order to | ||
268 | prevent damage to the subsystem. | ||
269 | </para> | ||
270 | <para> | ||
271 | Note that debug_object_free removes the object from the | ||
272 | tracker. Later usage of the object is detected by the other | ||
273 | debug checks. | ||
274 | </para> | ||
275 | </sect1> | ||
276 | </chapter> | ||
277 | <chapter id="fixupfunctions"> | ||
278 | <title>Fixup functions</title> | ||
279 | <sect1 id="debug_obj_descr"> | ||
280 | <title>Debug object type description structure</title> | ||
281 | !Iinclude/linux/debugobjects.h | ||
282 | </sect1> | ||
283 | <sect1 id="fixup_init"> | ||
284 | <title>fixup_init</title> | ||
285 | <para> | ||
286 | This function is called from the debug code whenever a problem | ||
287 | in debug_object_init is detected. The function takes the | ||
288 | address of the object and the state which is currently | ||
289 | recorded in the tracker. | ||
290 | </para> | ||
291 | <para> | ||
292 | Called from debug_object_init when the object state is: | ||
293 | <itemizedlist> | ||
294 | <listitem><para>ODEBUG_STATE_ACTIVE</para></listitem> | ||
295 | </itemizedlist> | ||
296 | </para> | ||
297 | <para> | ||
298 | The function returns 1 when the fixup was successful, | ||
299 | otherwise 0. The return value is used to update the | ||
300 | statistics. | ||
301 | </para> | ||
302 | <para> | ||
303 | Note, that the function needs to call the debug_object_init() | ||
304 | function again, after the damage has been repaired in order to | ||
305 | keep the state consistent. | ||
306 | </para> | ||
307 | </sect1> | ||
308 | |||
309 | <sect1 id="fixup_activate"> | ||
310 | <title>fixup_activate</title> | ||
311 | <para> | ||
312 | This function is called from the debug code whenever a problem | ||
313 | in debug_object_activate is detected. | ||
314 | </para> | ||
315 | <para> | ||
316 | Called from debug_object_activate when the object state is: | ||
317 | <itemizedlist> | ||
318 | <listitem><para>ODEBUG_STATE_NOTAVAILABLE</para></listitem> | ||
319 | <listitem><para>ODEBUG_STATE_ACTIVE</para></listitem> | ||
320 | </itemizedlist> | ||
321 | </para> | ||
322 | <para> | ||
323 | The function returns 1 when the fixup was successful, | ||
324 | otherwise 0. The return value is used to update the | ||
325 | statistics. | ||
326 | </para> | ||
327 | <para> | ||
328 | Note that the function needs to call the debug_object_activate() | ||
329 | function again after the damage has been repaired in order to | ||
330 | keep the state consistent. | ||
331 | </para> | ||
332 | <para> | ||
333 | The activation of statically initialized objects is a special | ||
334 | case. When debug_object_activate() has no tracked object for | ||
335 | this object address then fixup_activate() is called with | ||
336 | object state ODEBUG_STATE_NOTAVAILABLE. The fixup function | ||
337 | needs to check whether this is a legitimate case of a | ||
338 | statically initialized object or not. In case it is it calls | ||
339 | debug_object_init() and debug_object_activate() to make the | ||
340 | object known to the tracker and marked active. In this case | ||
341 | the function should return 0 because this is not a real fixup. | ||
342 | </para> | ||
343 | </sect1> | ||
344 | |||
345 | <sect1 id="fixup_destroy"> | ||
346 | <title>fixup_destroy</title> | ||
347 | <para> | ||
348 | This function is called from the debug code whenever a problem | ||
349 | in debug_object_destroy is detected. | ||
350 | </para> | ||
351 | <para> | ||
352 | Called from debug_object_destroy when the object state is: | ||
353 | <itemizedlist> | ||
354 | <listitem><para>ODEBUG_STATE_ACTIVE</para></listitem> | ||
355 | </itemizedlist> | ||
356 | </para> | ||
357 | <para> | ||
358 | The function returns 1 when the fixup was successful, | ||
359 | otherwise 0. The return value is used to update the | ||
360 | statistics. | ||
361 | </para> | ||
362 | </sect1> | ||
363 | <sect1 id="fixup_free"> | ||
364 | <title>fixup_free</title> | ||
365 | <para> | ||
366 | This function is called from the debug code whenever a problem | ||
367 | in debug_object_free is detected. Further it can be called | ||
368 | from the debug checks in kfree/vfree, when an active object is | ||
369 | detected from the debug_check_no_obj_freed() sanity checks. | ||
370 | </para> | ||
371 | <para> | ||
372 | Called from debug_object_free() or debug_check_no_obj_freed() | ||
373 | when the object state is: | ||
374 | <itemizedlist> | ||
375 | <listitem><para>ODEBUG_STATE_ACTIVE</para></listitem> | ||
376 | </itemizedlist> | ||
377 | </para> | ||
378 | <para> | ||
379 | The function returns 1 when the fixup was successful, | ||
380 | otherwise 0. The return value is used to update the | ||
381 | statistics. | ||
382 | </para> | ||
383 | </sect1> | ||
384 | </chapter> | ||
385 | <chapter id="bugs"> | ||
386 | <title>Known Bugs And Assumptions</title> | ||
387 | <para> | ||
388 | None (knock on wood). | ||
389 | </para> | ||
390 | </chapter> | ||
391 | </book> | ||
diff --git a/Documentation/DocBook/kgdb.tmpl b/Documentation/DocBook/kgdb.tmpl index 97618bed4d65..028a8444d95e 100644 --- a/Documentation/DocBook/kgdb.tmpl +++ b/Documentation/DocBook/kgdb.tmpl | |||
@@ -72,7 +72,7 @@ | |||
72 | kgdb is a source level debugger for linux kernel. It is used along | 72 | kgdb is a source level debugger for linux kernel. It is used along |
73 | with gdb to debug a linux kernel. The expectation is that gdb can | 73 | with gdb to debug a linux kernel. The expectation is that gdb can |
74 | be used to "break in" to the kernel to inspect memory, variables | 74 | be used to "break in" to the kernel to inspect memory, variables |
75 | and look through a cal stack information similar to what an | 75 | and look through call stack information similar to what an |
76 | application developer would use gdb for. It is possible to place | 76 | application developer would use gdb for. It is possible to place |
77 | breakpoints in kernel code and perform some limited execution | 77 | breakpoints in kernel code and perform some limited execution |
78 | stepping. | 78 | stepping. |
@@ -93,8 +93,10 @@ | |||
93 | <chapter id="CompilingAKernel"> | 93 | <chapter id="CompilingAKernel"> |
94 | <title>Compiling a kernel</title> | 94 | <title>Compiling a kernel</title> |
95 | <para> | 95 | <para> |
96 | To enable <symbol>CONFIG_KGDB</symbol>, look under the "Kernel debugging" | 96 | To enable <symbol>CONFIG_KGDB</symbol> you should first turn on |
97 | and then select "KGDB: kernel debugging with remote gdb". | 97 | "Prompt for development and/or incomplete code/drivers" |
98 | (CONFIG_EXPERIMENTAL) in "General setup", then under the | ||
99 | "Kernel debugging" select "KGDB: kernel debugging with remote gdb". | ||
98 | </para> | 100 | </para> |
99 | <para> | 101 | <para> |
100 | Next you should choose one of more I/O drivers to interconnect debugging | 102 | Next you should choose one of more I/O drivers to interconnect debugging |
diff --git a/Documentation/DocBook/rapidio.tmpl b/Documentation/DocBook/rapidio.tmpl index b9e143e28c64..54eb26b57372 100644 --- a/Documentation/DocBook/rapidio.tmpl +++ b/Documentation/DocBook/rapidio.tmpl | |||
@@ -133,7 +133,6 @@ | |||
133 | !Idrivers/rapidio/rio-sysfs.c | 133 | !Idrivers/rapidio/rio-sysfs.c |
134 | </sect1> | 134 | </sect1> |
135 | <sect1 id="PPC32_support"><title>PPC32 support</title> | 135 | <sect1 id="PPC32_support"><title>PPC32 support</title> |
136 | !Iarch/powerpc/kernel/rio.c | ||
137 | !Earch/powerpc/sysdev/fsl_rio.c | 136 | !Earch/powerpc/sysdev/fsl_rio.c |
138 | !Iarch/powerpc/sysdev/fsl_rio.c | 137 | !Iarch/powerpc/sysdev/fsl_rio.c |
139 | </sect1> | 138 | </sect1> |
diff --git a/Documentation/braille-console.txt b/Documentation/braille-console.txt new file mode 100644 index 000000000000..000b0fbdc105 --- /dev/null +++ b/Documentation/braille-console.txt | |||
@@ -0,0 +1,34 @@ | |||
1 | Linux Braille Console | ||
2 | |||
3 | To get early boot messages on a braille device (before userspace screen | ||
4 | readers can start), you first need to compile the support for the usual serial | ||
5 | console (see serial-console.txt), and for braille device (in Device Drivers - | ||
6 | Accessibility). | ||
7 | |||
8 | Then you need to specify a console=brl, option on the kernel command line, the | ||
9 | format is: | ||
10 | |||
11 | console=brl,serial_options... | ||
12 | |||
13 | where serial_options... are the same as described in serial-console.txt | ||
14 | |||
15 | So for instance you can use console=brl,ttyS0 if the braille device is connected | ||
16 | to the first serial port, and console=brl,ttyS0,115200 to override the baud rate | ||
17 | to 115200, etc. | ||
18 | |||
19 | By default, the braille device will just show the last kernel message (console | ||
20 | mode). To review previous messages, press the Insert key to switch to the VT | ||
21 | review mode. In review mode, the arrow keys permit to browse in the VT content, | ||
22 | page up/down keys go at the top/bottom of the screen, and the home key goes back | ||
23 | to the cursor, hence providing very basic screen reviewing facility. | ||
24 | |||
25 | Sound feedback can be obtained by adding the braille_console.sound=1 kernel | ||
26 | parameter. | ||
27 | |||
28 | For simplicity, only one braille console can be enabled, other uses of | ||
29 | console=brl,... will be discarded. Also note that it does not interfere with | ||
30 | the console selection mecanism described in serial-console.txt | ||
31 | |||
32 | For now, only the VisioBraille device is supported. | ||
33 | |||
34 | Samuel Thibault <samuel.thibault@ens-lyon.org> | ||
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt index 599fe55bf297..3c35d452b1a9 100644 --- a/Documentation/feature-removal-schedule.txt +++ b/Documentation/feature-removal-schedule.txt | |||
@@ -138,6 +138,24 @@ Who: Kay Sievers <kay.sievers@suse.de> | |||
138 | 138 | ||
139 | --------------------------- | 139 | --------------------------- |
140 | 140 | ||
141 | What: find_task_by_pid | ||
142 | When: 2.6.26 | ||
143 | Why: With pid namespaces, calling this funciton will return the | ||
144 | wrong task when called from inside a namespace. | ||
145 | |||
146 | The best way to save a task pid and find a task by this | ||
147 | pid later, is to find this task's struct pid pointer (or get | ||
148 | it directly from the task) and call pid_task() later. | ||
149 | |||
150 | If someone really needs to get a task by its pid_t, then | ||
151 | he most likely needs the find_task_by_vpid() to get the | ||
152 | task from the same namespace as the current task is in, but | ||
153 | this may be not so in general. | ||
154 | |||
155 | Who: Pavel Emelyanov <xemul@openvz.org> | ||
156 | |||
157 | --------------------------- | ||
158 | |||
141 | What: ACPI procfs interface | 159 | What: ACPI procfs interface |
142 | When: July 2008 | 160 | When: July 2008 |
143 | Why: ACPI sysfs conversion should be finished by January 2008. | 161 | Why: ACPI sysfs conversion should be finished by January 2008. |
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt index 2a99116edc47..dbc3c6a3650f 100644 --- a/Documentation/filesystems/proc.txt +++ b/Documentation/filesystems/proc.txt | |||
@@ -463,11 +463,17 @@ SwapTotal: 0 kB | |||
463 | SwapFree: 0 kB | 463 | SwapFree: 0 kB |
464 | Dirty: 968 kB | 464 | Dirty: 968 kB |
465 | Writeback: 0 kB | 465 | Writeback: 0 kB |
466 | AnonPages: 861800 kB | ||
466 | Mapped: 280372 kB | 467 | Mapped: 280372 kB |
467 | Slab: 684068 kB | 468 | Slab: 284364 kB |
469 | SReclaimable: 159856 kB | ||
470 | SUnreclaim: 124508 kB | ||
471 | PageTables: 24448 kB | ||
472 | NFS_Unstable: 0 kB | ||
473 | Bounce: 0 kB | ||
474 | WritebackTmp: 0 kB | ||
468 | CommitLimit: 7669796 kB | 475 | CommitLimit: 7669796 kB |
469 | Committed_AS: 100056 kB | 476 | Committed_AS: 100056 kB |
470 | PageTables: 24448 kB | ||
471 | VmallocTotal: 112216 kB | 477 | VmallocTotal: 112216 kB |
472 | VmallocUsed: 428 kB | 478 | VmallocUsed: 428 kB |
473 | VmallocChunk: 111088 kB | 479 | VmallocChunk: 111088 kB |
@@ -503,8 +509,17 @@ VmallocChunk: 111088 kB | |||
503 | on the disk | 509 | on the disk |
504 | Dirty: Memory which is waiting to get written back to the disk | 510 | Dirty: Memory which is waiting to get written back to the disk |
505 | Writeback: Memory which is actively being written back to the disk | 511 | Writeback: Memory which is actively being written back to the disk |
512 | AnonPages: Non-file backed pages mapped into userspace page tables | ||
506 | Mapped: files which have been mmaped, such as libraries | 513 | Mapped: files which have been mmaped, such as libraries |
507 | Slab: in-kernel data structures cache | 514 | Slab: in-kernel data structures cache |
515 | SReclaimable: Part of Slab, that might be reclaimed, such as caches | ||
516 | SUnreclaim: Part of Slab, that cannot be reclaimed on memory pressure | ||
517 | PageTables: amount of memory dedicated to the lowest level of page | ||
518 | tables. | ||
519 | NFS_Unstable: NFS pages sent to the server, but not yet committed to stable | ||
520 | storage | ||
521 | Bounce: Memory used for block device "bounce buffers" | ||
522 | WritebackTmp: Memory used by FUSE for temporary writeback buffers | ||
508 | CommitLimit: Based on the overcommit ratio ('vm.overcommit_ratio'), | 523 | CommitLimit: Based on the overcommit ratio ('vm.overcommit_ratio'), |
509 | this is the total amount of memory currently available to | 524 | this is the total amount of memory currently available to |
510 | be allocated on the system. This limit is only adhered to | 525 | be allocated on the system. This limit is only adhered to |
@@ -531,8 +546,6 @@ Committed_AS: The amount of memory presently allocated on the system. | |||
531 | above) will not be permitted. This is useful if one needs | 546 | above) will not be permitted. This is useful if one needs |
532 | to guarantee that processes will not fail due to lack of | 547 | to guarantee that processes will not fail due to lack of |
533 | memory once that memory has been successfully allocated. | 548 | memory once that memory has been successfully allocated. |
534 | PageTables: amount of memory dedicated to the lowest level of page | ||
535 | tables. | ||
536 | VmallocTotal: total size of vmalloc memory area | 549 | VmallocTotal: total size of vmalloc memory area |
537 | VmallocUsed: amount of vmalloc area which is used | 550 | VmallocUsed: amount of vmalloc area which is used |
538 | VmallocChunk: largest contigious block of vmalloc area which is free | 551 | VmallocChunk: largest contigious block of vmalloc area which is free |
diff --git a/Documentation/hwmon/w83l785ts b/Documentation/hwmon/w83l785ts index 1841cedc25b2..bd1fa9d4468d 100644 --- a/Documentation/hwmon/w83l785ts +++ b/Documentation/hwmon/w83l785ts | |||
@@ -33,7 +33,8 @@ Known Issues | |||
33 | ------------ | 33 | ------------ |
34 | 34 | ||
35 | On some systems (Asus), the BIOS is known to interfere with the driver | 35 | On some systems (Asus), the BIOS is known to interfere with the driver |
36 | and cause read errors. The driver will retry a given number of times | 36 | and cause read errors. Or maybe the W83L785TS-S chip is simply unreliable, |
37 | we don't really know. The driver will retry a given number of times | ||
37 | (5 by default) and then give up, returning the old value (or 0 if | 38 | (5 by default) and then give up, returning the old value (or 0 if |
38 | there is no old value). It seems to work well enough so that you should | 39 | there is no old value). It seems to work well enough so that you should |
39 | not notice anything. Thanks to James Bolt for helping test this feature. | 40 | not notice anything. Thanks to James Bolt for helping test this feature. |
diff --git a/Documentation/i2c/writing-clients b/Documentation/i2c/writing-clients index bfb0a5520817..ee75cbace28d 100644 --- a/Documentation/i2c/writing-clients +++ b/Documentation/i2c/writing-clients | |||
@@ -164,7 +164,8 @@ I2C device drivers using this binding model work just like any other | |||
164 | kind of driver in Linux: they provide a probe() method to bind to | 164 | kind of driver in Linux: they provide a probe() method to bind to |
165 | those devices, and a remove() method to unbind. | 165 | those devices, and a remove() method to unbind. |
166 | 166 | ||
167 | static int foo_probe(struct i2c_client *client); | 167 | static int foo_probe(struct i2c_client *client, |
168 | const struct i2c_device_id *id); | ||
168 | static int foo_remove(struct i2c_client *client); | 169 | static int foo_remove(struct i2c_client *client); |
169 | 170 | ||
170 | Remember that the i2c_driver does not create those client handles. The | 171 | Remember that the i2c_driver does not create those client handles. The |
diff --git a/Documentation/kbuild/kconfig-language.txt b/Documentation/kbuild/kconfig-language.txt index 00b950d1c193..c412c245848f 100644 --- a/Documentation/kbuild/kconfig-language.txt +++ b/Documentation/kbuild/kconfig-language.txt | |||
@@ -377,27 +377,3 @@ config FOO | |||
377 | 377 | ||
378 | limits FOO to module (=m) or disabled (=n). | 378 | limits FOO to module (=m) or disabled (=n). |
379 | 379 | ||
380 | |||
381 | Build limited by a third config symbol which may be =y or =m | ||
382 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
383 | A common idiom that we see (and sometimes have problems with) is this: | ||
384 | |||
385 | When option C in B (module or subsystem) uses interfaces from A (module | ||
386 | or subsystem), and both A and B are tristate (could be =y or =m if they | ||
387 | were independent of each other, but they aren't), then we need to limit | ||
388 | C such that it cannot be built statically if A is built as a loadable | ||
389 | module. (C already depends on B, so there is no dependency issue to | ||
390 | take care of here.) | ||
391 | |||
392 | If A is linked statically into the kernel image, C can be built | ||
393 | statically or as loadable module(s). However, if A is built as loadable | ||
394 | module(s), then C must be restricted to loadable module(s) also. This | ||
395 | can be expressed in kconfig language as: | ||
396 | |||
397 | config C | ||
398 | depends on A = y || A = B | ||
399 | |||
400 | or for real examples, use this command in a kernel tree: | ||
401 | |||
402 | $ find . -name Kconfig\* | xargs grep -ns "depends on.*=.*||.*=" | grep -v orig | ||
403 | |||
diff --git a/Documentation/kdump/kdump.txt b/Documentation/kdump/kdump.txt index d0ac72cc19ff..b8e52c0355d3 100644 --- a/Documentation/kdump/kdump.txt +++ b/Documentation/kdump/kdump.txt | |||
@@ -245,6 +245,8 @@ The syntax is: | |||
245 | crashkernel=<range1>:<size1>[,<range2>:<size2>,...][@offset] | 245 | crashkernel=<range1>:<size1>[,<range2>:<size2>,...][@offset] |
246 | range=start-[end] | 246 | range=start-[end] |
247 | 247 | ||
248 | 'start' is inclusive and 'end' is exclusive. | ||
249 | |||
248 | For example: | 250 | For example: |
249 | 251 | ||
250 | crashkernel=512M-2G:64M,2G-:128M | 252 | crashkernel=512M-2G:64M,2G-:128M |
@@ -253,10 +255,11 @@ This would mean: | |||
253 | 255 | ||
254 | 1) if the RAM is smaller than 512M, then don't reserve anything | 256 | 1) if the RAM is smaller than 512M, then don't reserve anything |
255 | (this is the "rescue" case) | 257 | (this is the "rescue" case) |
256 | 2) if the RAM size is between 512M and 2G, then reserve 64M | 258 | 2) if the RAM size is between 512M and 2G (exclusive), then reserve 64M |
257 | 3) if the RAM size is larger than 2G, then reserve 128M | 259 | 3) if the RAM size is larger than 2G, then reserve 128M |
258 | 260 | ||
259 | 261 | ||
262 | |||
260 | Boot into System Kernel | 263 | Boot into System Kernel |
261 | ======================= | 264 | ======================= |
262 | 265 | ||
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 15d8216a9345..cdd5b934f43e 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -496,6 +496,11 @@ and is between 256 and 4096 characters. It is defined in the file | |||
496 | switching to the matching ttyS device later. The | 496 | switching to the matching ttyS device later. The |
497 | options are the same as for ttyS, above. | 497 | options are the same as for ttyS, above. |
498 | 498 | ||
499 | If the device connected to the port is not a TTY but a braille | ||
500 | device, prepend "brl," before the device type, for instance | ||
501 | console=brl,ttyS0 | ||
502 | For now, only VisioBraille is supported. | ||
503 | |||
499 | earlycon= [KNL] Output early console device and options. | 504 | earlycon= [KNL] Output early console device and options. |
500 | uart[8250],io,<addr>[,options] | 505 | uart[8250],io,<addr>[,options] |
501 | uart[8250],mmio,<addr>[,options] | 506 | uart[8250],mmio,<addr>[,options] |
@@ -556,6 +561,8 @@ and is between 256 and 4096 characters. It is defined in the file | |||
556 | 1 will print _a lot_ more information - normally | 561 | 1 will print _a lot_ more information - normally |
557 | only useful to kernel developers. | 562 | only useful to kernel developers. |
558 | 563 | ||
564 | debug_objects [KNL] Enable object debugging | ||
565 | |||
559 | decnet.addr= [HW,NET] | 566 | decnet.addr= [HW,NET] |
560 | Format: <area>[,<node>] | 567 | Format: <area>[,<node>] |
561 | See also Documentation/networking/decnet.txt. | 568 | See also Documentation/networking/decnet.txt. |
@@ -1087,9 +1094,6 @@ and is between 256 and 4096 characters. It is defined in the file | |||
1087 | mac5380= [HW,SCSI] Format: | 1094 | mac5380= [HW,SCSI] Format: |
1088 | <can_queue>,<cmd_per_lun>,<sg_tablesize>,<hostid>,<use_tags> | 1095 | <can_queue>,<cmd_per_lun>,<sg_tablesize>,<hostid>,<use_tags> |
1089 | 1096 | ||
1090 | mac53c9x= [HW,SCSI] Format: | ||
1091 | <num_esps>,<disconnect>,<nosync>,<can_queue>,<cmd_per_lun>,<sg_tablesize>,<hostid>,<use_tags> | ||
1092 | |||
1093 | machvec= [IA64] Force the use of a particular machine-vector | 1097 | machvec= [IA64] Force the use of a particular machine-vector |
1094 | (machvec) in a generic kernel. | 1098 | (machvec) in a generic kernel. |
1095 | Example: machvec=hpzx1_swiotlb | 1099 | Example: machvec=hpzx1_swiotlb |
diff --git a/Documentation/laptops/thinkpad-acpi.txt b/Documentation/laptops/thinkpad-acpi.txt index 76cb428435da..01c6c3d8a7e3 100644 --- a/Documentation/laptops/thinkpad-acpi.txt +++ b/Documentation/laptops/thinkpad-acpi.txt | |||
@@ -1,7 +1,7 @@ | |||
1 | ThinkPad ACPI Extras Driver | 1 | ThinkPad ACPI Extras Driver |
2 | 2 | ||
3 | Version 0.19 | 3 | Version 0.20 |
4 | January 06th, 2008 | 4 | April 09th, 2008 |
5 | 5 | ||
6 | Borislav Deianov <borislav@users.sf.net> | 6 | Borislav Deianov <borislav@users.sf.net> |
7 | Henrique de Moraes Holschuh <hmh@hmh.eng.br> | 7 | Henrique de Moraes Holschuh <hmh@hmh.eng.br> |
@@ -18,6 +18,11 @@ This driver used to be named ibm-acpi until kernel 2.6.21 and release | |||
18 | moved to the drivers/misc tree and renamed to thinkpad-acpi for kernel | 18 | moved to the drivers/misc tree and renamed to thinkpad-acpi for kernel |
19 | 2.6.22, and release 0.14. | 19 | 2.6.22, and release 0.14. |
20 | 20 | ||
21 | The driver is named "thinkpad-acpi". In some places, like module | ||
22 | names, "thinkpad_acpi" is used because of userspace issues. | ||
23 | |||
24 | "tpacpi" is used as a shorthand where "thinkpad-acpi" would be too | ||
25 | long due to length limitations on some Linux kernel versions. | ||
21 | 26 | ||
22 | Status | 27 | Status |
23 | ------ | 28 | ------ |
@@ -571,6 +576,47 @@ netlink interface and the input layer interface, and don't bother at all | |||
571 | with hotkey_report_mode. | 576 | with hotkey_report_mode. |
572 | 577 | ||
573 | 578 | ||
579 | Brightness hotkey notes: | ||
580 | |||
581 | These are the current sane choices for brightness key mapping in | ||
582 | thinkpad-acpi: | ||
583 | |||
584 | For IBM and Lenovo models *without* ACPI backlight control (the ones on | ||
585 | which thinkpad-acpi will autoload its backlight interface by default, | ||
586 | and on which ACPI video does not export a backlight interface): | ||
587 | |||
588 | 1. Don't enable or map the brightness hotkeys in thinkpad-acpi, as | ||
589 | these older firmware versions unfortunately won't respect the hotkey | ||
590 | mask for brightness keys anyway, and always reacts to them. This | ||
591 | usually work fine, unless X.org drivers are doing something to block | ||
592 | the BIOS. In that case, use (3) below. This is the default mode of | ||
593 | operation. | ||
594 | |||
595 | 2. Enable the hotkeys, but map them to something else that is NOT | ||
596 | KEY_BRIGHTNESS_UP/DOWN or any other keycode that would cause | ||
597 | userspace to try to change the backlight level, and use that as an | ||
598 | on-screen-display hint. | ||
599 | |||
600 | 3. IF AND ONLY IF X.org drivers find a way to block the firmware from | ||
601 | automatically changing the brightness, enable the hotkeys and map | ||
602 | them to KEY_BRIGHTNESS_UP and KEY_BRIGHTNESS_DOWN, and feed that to | ||
603 | something that calls xbacklight. thinkpad-acpi will not be able to | ||
604 | change brightness in that case either, so you should disable its | ||
605 | backlight interface. | ||
606 | |||
607 | For Lenovo models *with* ACPI backlight control: | ||
608 | |||
609 | 1. Load up ACPI video and use that. ACPI video will report ACPI | ||
610 | events for brightness change keys. Do not mess with thinkpad-acpi | ||
611 | defaults in this case. thinkpad-acpi should not have anything to do | ||
612 | with backlight events in a scenario where ACPI video is loaded: | ||
613 | brightness hotkeys must be disabled, and the backlight interface is | ||
614 | to be kept disabled as well. This is the default mode of operation. | ||
615 | |||
616 | 2. Do *NOT* load up ACPI video, enable the hotkeys in thinkpad-acpi, | ||
617 | and map them to KEY_BRIGHTNESS_UP and KEY_BRIGHTNESS_DOWN. Process | ||
618 | these keys on userspace somehow (e.g. by calling xbacklight). | ||
619 | |||
574 | Bluetooth | 620 | Bluetooth |
575 | --------- | 621 | --------- |
576 | 622 | ||
@@ -647,16 +693,31 @@ while others are still having problems. For more information: | |||
647 | 693 | ||
648 | https://bugs.freedesktop.org/show_bug.cgi?id=2000 | 694 | https://bugs.freedesktop.org/show_bug.cgi?id=2000 |
649 | 695 | ||
650 | ThinkLight control -- /proc/acpi/ibm/light | 696 | ThinkLight control |
651 | ------------------------------------------ | 697 | ------------------ |
698 | |||
699 | procfs: /proc/acpi/ibm/light | ||
700 | sysfs attributes: as per LED class, for the "tpacpi::thinklight" LED | ||
652 | 701 | ||
653 | The current status of the ThinkLight can be found in this file. A few | 702 | procfs notes: |
654 | models which do not make the status available will show it as | 703 | |
655 | "unknown". The available commands are: | 704 | The ThinkLight status can be read and set through the procfs interface. A |
705 | few models which do not make the status available will show the ThinkLight | ||
706 | status as "unknown". The available commands are: | ||
656 | 707 | ||
657 | echo on > /proc/acpi/ibm/light | 708 | echo on > /proc/acpi/ibm/light |
658 | echo off > /proc/acpi/ibm/light | 709 | echo off > /proc/acpi/ibm/light |
659 | 710 | ||
711 | sysfs notes: | ||
712 | |||
713 | The ThinkLight sysfs interface is documented by the LED class | ||
714 | documentation, in Documentation/leds-class.txt. The ThinkLight LED name | ||
715 | is "tpacpi::thinklight". | ||
716 | |||
717 | Due to limitations in the sysfs LED class, if the status of the thinklight | ||
718 | cannot be read or if it is unknown, thinkpad-acpi will report it as "off". | ||
719 | It is impossible to know if the status returned through sysfs is valid. | ||
720 | |||
660 | Docking / undocking -- /proc/acpi/ibm/dock | 721 | Docking / undocking -- /proc/acpi/ibm/dock |
661 | ------------------------------------------ | 722 | ------------------------------------------ |
662 | 723 | ||
@@ -815,28 +876,63 @@ The cmos command interface is prone to firmware split-brain problems, as | |||
815 | in newer ThinkPads it is just a compatibility layer. Do not use it, it is | 876 | in newer ThinkPads it is just a compatibility layer. Do not use it, it is |
816 | exported just as a debug tool. | 877 | exported just as a debug tool. |
817 | 878 | ||
818 | LED control -- /proc/acpi/ibm/led | 879 | LED control |
819 | --------------------------------- | 880 | ----------- |
881 | |||
882 | procfs: /proc/acpi/ibm/led | ||
883 | sysfs attributes: as per LED class, see below for names | ||
884 | |||
885 | Some of the LED indicators can be controlled through this feature. On | ||
886 | some older ThinkPad models, it is possible to query the status of the | ||
887 | LED indicators as well. Newer ThinkPads cannot query the real status | ||
888 | of the LED indicators. | ||
820 | 889 | ||
821 | Some of the LED indicators can be controlled through this feature. The | 890 | procfs notes: |
822 | available commands are: | 891 | |
892 | The available commands are: | ||
823 | 893 | ||
824 | echo '<led number> on' >/proc/acpi/ibm/led | 894 | echo '<LED number> on' >/proc/acpi/ibm/led |
825 | echo '<led number> off' >/proc/acpi/ibm/led | 895 | echo '<LED number> off' >/proc/acpi/ibm/led |
826 | echo '<led number> blink' >/proc/acpi/ibm/led | 896 | echo '<LED number> blink' >/proc/acpi/ibm/led |
827 | 897 | ||
828 | The <led number> range is 0 to 7. The set of LEDs that can be | 898 | The <LED number> range is 0 to 7. The set of LEDs that can be |
829 | controlled varies from model to model. Here is the mapping on the X40: | 899 | controlled varies from model to model. Here is the common ThinkPad |
900 | mapping: | ||
830 | 901 | ||
831 | 0 - power | 902 | 0 - power |
832 | 1 - battery (orange) | 903 | 1 - battery (orange) |
833 | 2 - battery (green) | 904 | 2 - battery (green) |
834 | 3 - UltraBase | 905 | 3 - UltraBase/dock |
835 | 4 - UltraBay | 906 | 4 - UltraBay |
907 | 5 - UltraBase battery slot | ||
908 | 6 - (unknown) | ||
836 | 7 - standby | 909 | 7 - standby |
837 | 910 | ||
838 | All of the above can be turned on and off and can be made to blink. | 911 | All of the above can be turned on and off and can be made to blink. |
839 | 912 | ||
913 | sysfs notes: | ||
914 | |||
915 | The ThinkPad LED sysfs interface is described in detail by the LED class | ||
916 | documentation, in Documentation/leds-class.txt. | ||
917 | |||
918 | The leds are named (in LED ID order, from 0 to 7): | ||
919 | "tpacpi::power", "tpacpi:orange:batt", "tpacpi:green:batt", | ||
920 | "tpacpi::dock_active", "tpacpi::bay_active", "tpacpi::dock_batt", | ||
921 | "tpacpi::unknown_led", "tpacpi::standby". | ||
922 | |||
923 | Due to limitations in the sysfs LED class, if the status of the LED | ||
924 | indicators cannot be read due to an error, thinkpad-acpi will report it as | ||
925 | a brightness of zero (same as LED off). | ||
926 | |||
927 | If the thinkpad firmware doesn't support reading the current status, | ||
928 | trying to read the current LED brightness will just return whatever | ||
929 | brightness was last written to that attribute. | ||
930 | |||
931 | These LEDs can blink using hardware acceleration. To request that a | ||
932 | ThinkPad indicator LED should blink in hardware accelerated mode, use the | ||
933 | "timer" trigger, and leave the delay_on and delay_off parameters set to | ||
934 | zero (to request hardware acceleration autodetection). | ||
935 | |||
840 | ACPI sounds -- /proc/acpi/ibm/beep | 936 | ACPI sounds -- /proc/acpi/ibm/beep |
841 | ---------------------------------- | 937 | ---------------------------------- |
842 | 938 | ||
@@ -1090,6 +1186,15 @@ it there will be the following attributes: | |||
1090 | dim the display. | 1186 | dim the display. |
1091 | 1187 | ||
1092 | 1188 | ||
1189 | WARNING: | ||
1190 | |||
1191 | Whatever you do, do NOT ever call thinkpad-acpi backlight-level change | ||
1192 | interface and the ACPI-based backlight level change interface | ||
1193 | (available on newer BIOSes, and driven by the Linux ACPI video driver) | ||
1194 | at the same time. The two will interact in bad ways, do funny things, | ||
1195 | and maybe reduce the life of the backlight lamps by needlessly kicking | ||
1196 | its level up and down at every change. | ||
1197 | |||
1093 | Volume control -- /proc/acpi/ibm/volume | 1198 | Volume control -- /proc/acpi/ibm/volume |
1094 | --------------------------------------- | 1199 | --------------------------------------- |
1095 | 1200 | ||
diff --git a/Documentation/lguest/lguest.c b/Documentation/lguest/lguest.c index 4c1fc65a8b3d..3be8ab2a886a 100644 --- a/Documentation/lguest/lguest.c +++ b/Documentation/lguest/lguest.c | |||
@@ -131,6 +131,9 @@ struct device | |||
131 | /* Any queues attached to this device */ | 131 | /* Any queues attached to this device */ |
132 | struct virtqueue *vq; | 132 | struct virtqueue *vq; |
133 | 133 | ||
134 | /* Handle status being finalized (ie. feature bits stable). */ | ||
135 | void (*ready)(struct device *me); | ||
136 | |||
134 | /* Device-specific data. */ | 137 | /* Device-specific data. */ |
135 | void *priv; | 138 | void *priv; |
136 | }; | 139 | }; |
@@ -925,24 +928,40 @@ static void enable_fd(int fd, struct virtqueue *vq) | |||
925 | write(waker_fd, &vq->dev->fd, sizeof(vq->dev->fd)); | 928 | write(waker_fd, &vq->dev->fd, sizeof(vq->dev->fd)); |
926 | } | 929 | } |
927 | 930 | ||
928 | /* When the Guest asks us to reset a device, it's is fairly easy. */ | 931 | /* When the Guest tells us they updated the status field, we handle it. */ |
929 | static void reset_device(struct device *dev) | 932 | static void update_device_status(struct device *dev) |
930 | { | 933 | { |
931 | struct virtqueue *vq; | 934 | struct virtqueue *vq; |
932 | 935 | ||
933 | verbose("Resetting device %s\n", dev->name); | 936 | /* This is a reset. */ |
934 | /* Clear the status. */ | 937 | if (dev->desc->status == 0) { |
935 | dev->desc->status = 0; | 938 | verbose("Resetting device %s\n", dev->name); |
936 | 939 | ||
937 | /* Clear any features they've acked. */ | 940 | /* Clear any features they've acked. */ |
938 | memset(get_feature_bits(dev) + dev->desc->feature_len, 0, | 941 | memset(get_feature_bits(dev) + dev->desc->feature_len, 0, |
939 | dev->desc->feature_len); | 942 | dev->desc->feature_len); |
940 | 943 | ||
941 | /* Zero out the virtqueues. */ | 944 | /* Zero out the virtqueues. */ |
942 | for (vq = dev->vq; vq; vq = vq->next) { | 945 | for (vq = dev->vq; vq; vq = vq->next) { |
943 | memset(vq->vring.desc, 0, | 946 | memset(vq->vring.desc, 0, |
944 | vring_size(vq->config.num, getpagesize())); | 947 | vring_size(vq->config.num, getpagesize())); |
945 | vq->last_avail_idx = 0; | 948 | vq->last_avail_idx = 0; |
949 | } | ||
950 | } else if (dev->desc->status & VIRTIO_CONFIG_S_FAILED) { | ||
951 | warnx("Device %s configuration FAILED", dev->name); | ||
952 | } else if (dev->desc->status & VIRTIO_CONFIG_S_DRIVER_OK) { | ||
953 | unsigned int i; | ||
954 | |||
955 | verbose("Device %s OK: offered", dev->name); | ||
956 | for (i = 0; i < dev->desc->feature_len; i++) | ||
957 | verbose(" %08x", get_feature_bits(dev)[i]); | ||
958 | verbose(", accepted"); | ||
959 | for (i = 0; i < dev->desc->feature_len; i++) | ||
960 | verbose(" %08x", get_feature_bits(dev) | ||
961 | [dev->desc->feature_len+i]); | ||
962 | |||
963 | if (dev->ready) | ||
964 | dev->ready(dev); | ||
946 | } | 965 | } |
947 | } | 966 | } |
948 | 967 | ||
@@ -954,9 +973,9 @@ static void handle_output(int fd, unsigned long addr) | |||
954 | 973 | ||
955 | /* Check each device and virtqueue. */ | 974 | /* Check each device and virtqueue. */ |
956 | for (i = devices.dev; i; i = i->next) { | 975 | for (i = devices.dev; i; i = i->next) { |
957 | /* Notifications to device descriptors reset the device. */ | 976 | /* Notifications to device descriptors update device status. */ |
958 | if (from_guest_phys(addr) == i->desc) { | 977 | if (from_guest_phys(addr) == i->desc) { |
959 | reset_device(i); | 978 | update_device_status(i); |
960 | return; | 979 | return; |
961 | } | 980 | } |
962 | 981 | ||
@@ -1170,6 +1189,7 @@ static struct device *new_device(const char *name, u16 type, int fd, | |||
1170 | dev->handle_input = handle_input; | 1189 | dev->handle_input = handle_input; |
1171 | dev->name = name; | 1190 | dev->name = name; |
1172 | dev->vq = NULL; | 1191 | dev->vq = NULL; |
1192 | dev->ready = NULL; | ||
1173 | 1193 | ||
1174 | /* Append to device list. Prepending to a single-linked list is | 1194 | /* Append to device list. Prepending to a single-linked list is |
1175 | * easier, but the user expects the devices to be arranged on the bus | 1195 | * easier, but the user expects the devices to be arranged on the bus |
@@ -1398,7 +1418,7 @@ static bool service_io(struct device *dev) | |||
1398 | struct vblk_info *vblk = dev->priv; | 1418 | struct vblk_info *vblk = dev->priv; |
1399 | unsigned int head, out_num, in_num, wlen; | 1419 | unsigned int head, out_num, in_num, wlen; |
1400 | int ret; | 1420 | int ret; |
1401 | struct virtio_blk_inhdr *in; | 1421 | u8 *in; |
1402 | struct virtio_blk_outhdr *out; | 1422 | struct virtio_blk_outhdr *out; |
1403 | struct iovec iov[dev->vq->vring.num]; | 1423 | struct iovec iov[dev->vq->vring.num]; |
1404 | off64_t off; | 1424 | off64_t off; |
@@ -1416,7 +1436,7 @@ static bool service_io(struct device *dev) | |||
1416 | head, out_num, in_num); | 1436 | head, out_num, in_num); |
1417 | 1437 | ||
1418 | out = convert(&iov[0], struct virtio_blk_outhdr); | 1438 | out = convert(&iov[0], struct virtio_blk_outhdr); |
1419 | in = convert(&iov[out_num+in_num-1], struct virtio_blk_inhdr); | 1439 | in = convert(&iov[out_num+in_num-1], u8); |
1420 | off = out->sector * 512; | 1440 | off = out->sector * 512; |
1421 | 1441 | ||
1422 | /* The block device implements "barriers", where the Guest indicates | 1442 | /* The block device implements "barriers", where the Guest indicates |
@@ -1430,7 +1450,7 @@ static bool service_io(struct device *dev) | |||
1430 | * It'd be nice if we supported eject, for example, but we don't. */ | 1450 | * It'd be nice if we supported eject, for example, but we don't. */ |
1431 | if (out->type & VIRTIO_BLK_T_SCSI_CMD) { | 1451 | if (out->type & VIRTIO_BLK_T_SCSI_CMD) { |
1432 | fprintf(stderr, "Scsi commands unsupported\n"); | 1452 | fprintf(stderr, "Scsi commands unsupported\n"); |
1433 | in->status = VIRTIO_BLK_S_UNSUPP; | 1453 | *in = VIRTIO_BLK_S_UNSUPP; |
1434 | wlen = sizeof(*in); | 1454 | wlen = sizeof(*in); |
1435 | } else if (out->type & VIRTIO_BLK_T_OUT) { | 1455 | } else if (out->type & VIRTIO_BLK_T_OUT) { |
1436 | /* Write */ | 1456 | /* Write */ |
@@ -1453,7 +1473,7 @@ static bool service_io(struct device *dev) | |||
1453 | errx(1, "Write past end %llu+%u", off, ret); | 1473 | errx(1, "Write past end %llu+%u", off, ret); |
1454 | } | 1474 | } |
1455 | wlen = sizeof(*in); | 1475 | wlen = sizeof(*in); |
1456 | in->status = (ret >= 0 ? VIRTIO_BLK_S_OK : VIRTIO_BLK_S_IOERR); | 1476 | *in = (ret >= 0 ? VIRTIO_BLK_S_OK : VIRTIO_BLK_S_IOERR); |
1457 | } else { | 1477 | } else { |
1458 | /* Read */ | 1478 | /* Read */ |
1459 | 1479 | ||
@@ -1466,10 +1486,10 @@ static bool service_io(struct device *dev) | |||
1466 | verbose("READ from sector %llu: %i\n", out->sector, ret); | 1486 | verbose("READ from sector %llu: %i\n", out->sector, ret); |
1467 | if (ret >= 0) { | 1487 | if (ret >= 0) { |
1468 | wlen = sizeof(*in) + ret; | 1488 | wlen = sizeof(*in) + ret; |
1469 | in->status = VIRTIO_BLK_S_OK; | 1489 | *in = VIRTIO_BLK_S_OK; |
1470 | } else { | 1490 | } else { |
1471 | wlen = sizeof(*in); | 1491 | wlen = sizeof(*in); |
1472 | in->status = VIRTIO_BLK_S_IOERR; | 1492 | *in = VIRTIO_BLK_S_IOERR; |
1473 | } | 1493 | } |
1474 | } | 1494 | } |
1475 | 1495 | ||
diff --git a/Documentation/powerpc/mpc52xx-device-tree-bindings.txt b/Documentation/powerpc/mpc52xx-device-tree-bindings.txt index 5e03610e186f..6f12f1c79c0c 100644 --- a/Documentation/powerpc/mpc52xx-device-tree-bindings.txt +++ b/Documentation/powerpc/mpc52xx-device-tree-bindings.txt | |||
@@ -186,6 +186,12 @@ Recommended soc5200 child nodes; populate as needed for your board | |||
186 | name device_type compatible Description | 186 | name device_type compatible Description |
187 | ---- ----------- ---------- ----------- | 187 | ---- ----------- ---------- ----------- |
188 | gpt@<addr> gpt fsl,mpc5200-gpt General purpose timers | 188 | gpt@<addr> gpt fsl,mpc5200-gpt General purpose timers |
189 | gpt@<addr> gpt fsl,mpc5200-gpt-gpio General purpose | ||
190 | timers in GPIO mode | ||
191 | gpio@<addr> fsl,mpc5200-gpio MPC5200 simple gpio | ||
192 | controller | ||
193 | gpio@<addr> fsl,mpc5200-gpio-wkup MPC5200 wakeup gpio | ||
194 | controller | ||
189 | rtc@<addr> rtc mpc5200-rtc Real time clock | 195 | rtc@<addr> rtc mpc5200-rtc Real time clock |
190 | mscan@<addr> mscan mpc5200-mscan CAN bus controller | 196 | mscan@<addr> mscan mpc5200-mscan CAN bus controller |
191 | pci@<addr> pci mpc5200-pci PCI bridge | 197 | pci@<addr> pci mpc5200-pci PCI bridge |
@@ -225,6 +231,23 @@ PSC in i2s mode: The mpc5200 and mpc5200b PSCs are not compatible when in | |||
225 | i2s mode. An 'mpc5200b-psc-i2s' node cannot include 'mpc5200-psc-i2s' in the | 231 | i2s mode. An 'mpc5200b-psc-i2s' node cannot include 'mpc5200-psc-i2s' in the |
226 | compatible field. | 232 | compatible field. |
227 | 233 | ||
234 | 7) GPIO controller nodes | ||
235 | Each GPIO controller node should have the empty property gpio-controller and | ||
236 | #gpio-cells set to 2. First cell is the GPIO number which is interpreted | ||
237 | according to the bit numbers in the GPIO control registers. The second cell | ||
238 | is for flags which is currently unsused. | ||
239 | |||
240 | 8) FEC nodes | ||
241 | The FEC node can specify one of the following properties to configure | ||
242 | the MII link: | ||
243 | "fsl,7-wire-mode" - An empty property that specifies the link uses 7-wire | ||
244 | mode instead of MII | ||
245 | "current-speed" - Specifies that the MII should be configured for a fixed | ||
246 | speed. This property should contain two cells. The | ||
247 | first cell specifies the speed in Mbps and the second | ||
248 | should be '0' for half duplex and '1' for full duplex | ||
249 | "phy-handle" - Contains a phandle to an Ethernet PHY. | ||
250 | |||
228 | IV - Extra Notes | 251 | IV - Extra Notes |
229 | ================ | 252 | ================ |
230 | 253 | ||
diff --git a/Documentation/scsi/ChangeLog.megaraid_sas b/Documentation/scsi/ChangeLog.megaraid_sas index 91c81db0ba71..716fcc1cafb5 100644 --- a/Documentation/scsi/ChangeLog.megaraid_sas +++ b/Documentation/scsi/ChangeLog.megaraid_sas | |||
@@ -1,3 +1,25 @@ | |||
1 | 1 Release Date : Mon. March 10 11:02:31 PDT 2008 - | ||
2 | (emaild-id:megaraidlinux@lsi.com) | ||
3 | Sumant Patro | ||
4 | Bo Yang | ||
5 | |||
6 | 2 Current Version : 00.00.03.20-RC1 | ||
7 | 3 Older Version : 00.00.03.16 | ||
8 | |||
9 | 1. Rollback the sense info implementation | ||
10 | Sense buffer ptr data type in the ioctl path is reverted back | ||
11 | to u32 * as in previous versions of driver. | ||
12 | |||
13 | 2. Fixed the driver frame count. | ||
14 | When Driver sent wrong frame count to firmware. As this | ||
15 | particular command is sent to drive, FW is seeing continuous | ||
16 | chip resets and so the command will timeout. | ||
17 | |||
18 | 3. Add the new controller(1078DE) support to the driver | ||
19 | and Increase the max_wait to 60 from 10 in the controller | ||
20 | operational status. With this max_wait increase, driver will | ||
21 | make sure the FW will finish the pending cmd for KDUMP case. | ||
22 | |||
1 | 1 Release Date : Thur. Nov. 07 16:30:43 PST 2007 - | 23 | 1 Release Date : Thur. Nov. 07 16:30:43 PST 2007 - |
2 | (emaild-id:megaraidlinux@lsi.com) | 24 | (emaild-id:megaraidlinux@lsi.com) |
3 | Sumant Patro | 25 | Sumant Patro |
diff --git a/Documentation/thermal/sysfs-api.txt b/Documentation/thermal/sysfs-api.txt index d9f28be75403..70d68ce8640a 100644 --- a/Documentation/thermal/sysfs-api.txt +++ b/Documentation/thermal/sysfs-api.txt | |||
@@ -108,10 +108,12 @@ and throttle appropriate devices. | |||
108 | RO read only value | 108 | RO read only value |
109 | RW read/write value | 109 | RW read/write value |
110 | 110 | ||
111 | All thermal sysfs attributes will be represented under /sys/class/thermal | 111 | Thermal sysfs attributes will be represented under /sys/class/thermal. |
112 | Hwmon sysfs I/F extension is also available under /sys/class/hwmon | ||
113 | if hwmon is compiled in or built as a module. | ||
112 | 114 | ||
113 | Thermal zone device sys I/F, created once it's registered: | 115 | Thermal zone device sys I/F, created once it's registered: |
114 | |thermal_zone[0-*]: | 116 | /sys/class/thermal/thermal_zone[0-*]: |
115 | |-----type: Type of the thermal zone | 117 | |-----type: Type of the thermal zone |
116 | |-----temp: Current temperature | 118 | |-----temp: Current temperature |
117 | |-----mode: Working mode of the thermal zone | 119 | |-----mode: Working mode of the thermal zone |
@@ -119,7 +121,7 @@ Thermal zone device sys I/F, created once it's registered: | |||
119 | |-----trip_point_[0-*]_type: Trip point type | 121 | |-----trip_point_[0-*]_type: Trip point type |
120 | 122 | ||
121 | Thermal cooling device sys I/F, created once it's registered: | 123 | Thermal cooling device sys I/F, created once it's registered: |
122 | |cooling_device[0-*]: | 124 | /sys/class/thermal/cooling_device[0-*]: |
123 | |-----type : Type of the cooling device(processor/fan/...) | 125 | |-----type : Type of the cooling device(processor/fan/...) |
124 | |-----max_state: Maximum cooling state of the cooling device | 126 | |-----max_state: Maximum cooling state of the cooling device |
125 | |-----cur_state: Current cooling state of the cooling device | 127 | |-----cur_state: Current cooling state of the cooling device |
@@ -130,10 +132,19 @@ They represent the relationship between a thermal zone and its associated coolin | |||
130 | They are created/removed for each | 132 | They are created/removed for each |
131 | thermal_zone_bind_cooling_device/thermal_zone_unbind_cooling_device successful execution. | 133 | thermal_zone_bind_cooling_device/thermal_zone_unbind_cooling_device successful execution. |
132 | 134 | ||
133 | |thermal_zone[0-*] | 135 | /sys/class/thermal/thermal_zone[0-*] |
134 | |-----cdev[0-*]: The [0-*]th cooling device in the current thermal zone | 136 | |-----cdev[0-*]: The [0-*]th cooling device in the current thermal zone |
135 | |-----cdev[0-*]_trip_point: Trip point that cdev[0-*] is associated with | 137 | |-----cdev[0-*]_trip_point: Trip point that cdev[0-*] is associated with |
136 | 138 | ||
139 | Besides the thermal zone device sysfs I/F and cooling device sysfs I/F, | ||
140 | the generic thermal driver also creates a hwmon sysfs I/F for each _type_ of | ||
141 | thermal zone device. E.g. the generic thermal driver registers one hwmon class device | ||
142 | and build the associated hwmon sysfs I/F for all the registered ACPI thermal zones. | ||
143 | /sys/class/hwmon/hwmon[0-*]: | ||
144 | |-----name: The type of the thermal zone devices. | ||
145 | |-----temp[1-*]_input: The current temperature of thermal zone [1-*]. | ||
146 | |-----temp[1-*]_critical: The critical trip point of thermal zone [1-*]. | ||
147 | Please read Documentation/hwmon/sysfs-interface for additional information. | ||
137 | 148 | ||
138 | *************************** | 149 | *************************** |
139 | * Thermal zone attributes * | 150 | * Thermal zone attributes * |
@@ -141,7 +152,10 @@ thermal_zone_bind_cooling_device/thermal_zone_unbind_cooling_device successful e | |||
141 | 152 | ||
142 | type Strings which represent the thermal zone type. | 153 | type Strings which represent the thermal zone type. |
143 | This is given by thermal zone driver as part of registration. | 154 | This is given by thermal zone driver as part of registration. |
144 | Eg: "ACPI thermal zone" indicates it's a ACPI thermal device | 155 | Eg: "acpitz" indicates it's an ACPI thermal device. |
156 | In order to keep it consistent with hwmon sys attribute, | ||
157 | this should be a short, lowercase string, | ||
158 | not containing spaces nor dashes. | ||
145 | RO | 159 | RO |
146 | Required | 160 | Required |
147 | 161 | ||
@@ -218,7 +232,7 @@ the sys I/F structure will be built like this: | |||
218 | /sys/class/thermal: | 232 | /sys/class/thermal: |
219 | 233 | ||
220 | |thermal_zone1: | 234 | |thermal_zone1: |
221 | |-----type: ACPI thermal zone | 235 | |-----type: acpitz |
222 | |-----temp: 37000 | 236 | |-----temp: 37000 |
223 | |-----mode: kernel | 237 | |-----mode: kernel |
224 | |-----trip_point_0_temp: 100000 | 238 | |-----trip_point_0_temp: 100000 |
@@ -243,3 +257,10 @@ the sys I/F structure will be built like this: | |||
243 | |-----type: Fan | 257 | |-----type: Fan |
244 | |-----max_state: 2 | 258 | |-----max_state: 2 |
245 | |-----cur_state: 0 | 259 | |-----cur_state: 0 |
260 | |||
261 | /sys/class/hwmon: | ||
262 | |||
263 | |hwmon0: | ||
264 | |-----name: acpitz | ||
265 | |-----temp1_input: 37000 | ||
266 | |-----temp1_crit: 100000 | ||
diff --git a/Documentation/video4linux/CARDLIST.saa7134 b/Documentation/video4linux/CARDLIST.saa7134 index 44d84dd15ad6..67937df1e974 100644 --- a/Documentation/video4linux/CARDLIST.saa7134 +++ b/Documentation/video4linux/CARDLIST.saa7134 | |||
@@ -128,7 +128,7 @@ | |||
128 | 127 -> Beholder BeholdTV 507 FM/RDS / BeholdTV 509 FM [0000:5071,0000:507B,5ace:5070,5ace:5090] | 128 | 127 -> Beholder BeholdTV 507 FM/RDS / BeholdTV 509 FM [0000:5071,0000:507B,5ace:5070,5ace:5090] |
129 | 128 -> Beholder BeholdTV Columbus TVFM [0000:5201] | 129 | 128 -> Beholder BeholdTV Columbus TVFM [0000:5201] |
130 | 129 -> Beholder BeholdTV 607 / BeholdTV 609 [5ace:6070,5ace:6071,5ace:6072,5ace:6073,5ace:6090,5ace:6091,5ace:6092,5ace:6093] | 130 | 129 -> Beholder BeholdTV 607 / BeholdTV 609 [5ace:6070,5ace:6071,5ace:6072,5ace:6073,5ace:6090,5ace:6091,5ace:6092,5ace:6093] |
131 | 130 -> Beholder BeholdTV M6 / BeholdTV M6 Extra [5ace:6190,5ace:6193] | 131 | 130 -> Beholder BeholdTV M6 / BeholdTV M6 Extra [5ace:6190,5ace:6193,5ace:6191] |
132 | 131 -> Twinhan Hybrid DTV-DVB 3056 PCI [1822:0022] | 132 | 131 -> Twinhan Hybrid DTV-DVB 3056 PCI [1822:0022] |
133 | 132 -> Genius TVGO AM11MCE | 133 | 132 -> Genius TVGO AM11MCE |
134 | 133 -> NXP Snake DVB-S reference design | 134 | 133 -> NXP Snake DVB-S reference design |
@@ -140,3 +140,4 @@ | |||
140 | 139 -> Compro VideoMate T750 [185b:c900] | 140 | 139 -> Compro VideoMate T750 [185b:c900] |
141 | 140 -> Avermedia DVB-S Pro A700 [1461:a7a1] | 141 | 140 -> Avermedia DVB-S Pro A700 [1461:a7a1] |
142 | 141 -> Avermedia DVB-S Hybrid+FM A700 [1461:a7a2] | 142 | 141 -> Avermedia DVB-S Hybrid+FM A700 [1461:a7a2] |
143 | 142 -> Beholder BeholdTV H6 [5ace:6290] | ||
diff --git a/Documentation/video4linux/cx18.txt b/Documentation/video4linux/cx18.txt new file mode 100644 index 000000000000..077d56ec3f3d --- /dev/null +++ b/Documentation/video4linux/cx18.txt | |||
@@ -0,0 +1,34 @@ | |||
1 | Some notes regarding the cx18 driver for the Conexant CX23418 MPEG | ||
2 | encoder chip: | ||
3 | |||
4 | 1) The only hardware currently supported is the Hauppauge HVR-1600. | ||
5 | |||
6 | 2) Some people have problems getting the i2c bus to work. Cause unknown. | ||
7 | The symptom is that the eeprom cannot be read and the card is | ||
8 | unusable. | ||
9 | |||
10 | 3) The audio from the analog tuner is mono only. Probably caused by | ||
11 | incorrect audio register information in the datasheet. We are | ||
12 | waiting for updated information from Conexant. | ||
13 | |||
14 | 4) VBI (raw or sliced) has not yet been implemented. | ||
15 | |||
16 | 5) MPEG indexing is not yet implemented. | ||
17 | |||
18 | 6) The driver is still a bit rough around the edges, this should | ||
19 | improve over time. | ||
20 | |||
21 | |||
22 | Firmware: | ||
23 | |||
24 | The firmware needs to be extracted from the Windows Hauppauge HVR-1600 | ||
25 | driver, available here: | ||
26 | |||
27 | http://hauppauge.lightpath.net/software/install_cd/hauppauge_cd_3.4d1.zip | ||
28 | |||
29 | Unzip, then copy the following files to the firmware directory | ||
30 | and rename them as follows: | ||
31 | |||
32 | Drivers/Driver18/hcw18apu.rom -> v4l-cx23418-apu.fw | ||
33 | Drivers/Driver18/hcw18enc.rom -> v4l-cx23418-cpu.fw | ||
34 | Drivers/Driver18/hcw18mlC.rom -> v4l-cx23418-dig.fw | ||
diff --git a/Documentation/vm/slabinfo.c b/Documentation/vm/slabinfo.c index d3ce295bffac..e4230ed16ee7 100644 --- a/Documentation/vm/slabinfo.c +++ b/Documentation/vm/slabinfo.c | |||
@@ -38,7 +38,7 @@ struct slabinfo { | |||
38 | unsigned long alloc_from_partial, alloc_slab, free_slab, alloc_refill; | 38 | unsigned long alloc_from_partial, alloc_slab, free_slab, alloc_refill; |
39 | unsigned long cpuslab_flush, deactivate_full, deactivate_empty; | 39 | unsigned long cpuslab_flush, deactivate_full, deactivate_empty; |
40 | unsigned long deactivate_to_head, deactivate_to_tail; | 40 | unsigned long deactivate_to_head, deactivate_to_tail; |
41 | unsigned long deactivate_remote_frees; | 41 | unsigned long deactivate_remote_frees, order_fallback; |
42 | int numa[MAX_NODES]; | 42 | int numa[MAX_NODES]; |
43 | int numa_partial[MAX_NODES]; | 43 | int numa_partial[MAX_NODES]; |
44 | } slabinfo[MAX_SLABS]; | 44 | } slabinfo[MAX_SLABS]; |
@@ -293,7 +293,7 @@ int line = 0; | |||
293 | void first_line(void) | 293 | void first_line(void) |
294 | { | 294 | { |
295 | if (show_activity) | 295 | if (show_activity) |
296 | printf("Name Objects Alloc Free %%Fast\n"); | 296 | printf("Name Objects Alloc Free %%Fast Fallb O\n"); |
297 | else | 297 | else |
298 | printf("Name Objects Objsize Space " | 298 | printf("Name Objects Objsize Space " |
299 | "Slabs/Part/Cpu O/S O %%Fr %%Ef Flg\n"); | 299 | "Slabs/Part/Cpu O/S O %%Fr %%Ef Flg\n"); |
@@ -573,11 +573,12 @@ void slabcache(struct slabinfo *s) | |||
573 | total_alloc = s->alloc_fastpath + s->alloc_slowpath; | 573 | total_alloc = s->alloc_fastpath + s->alloc_slowpath; |
574 | total_free = s->free_fastpath + s->free_slowpath; | 574 | total_free = s->free_fastpath + s->free_slowpath; |
575 | 575 | ||
576 | printf("%-21s %8ld %8ld %8ld %3ld %3ld \n", | 576 | printf("%-21s %8ld %10ld %10ld %3ld %3ld %5ld %1d\n", |
577 | s->name, s->objects, | 577 | s->name, s->objects, |
578 | total_alloc, total_free, | 578 | total_alloc, total_free, |
579 | total_alloc ? (s->alloc_fastpath * 100 / total_alloc) : 0, | 579 | total_alloc ? (s->alloc_fastpath * 100 / total_alloc) : 0, |
580 | total_free ? (s->free_fastpath * 100 / total_free) : 0); | 580 | total_free ? (s->free_fastpath * 100 / total_free) : 0, |
581 | s->order_fallback, s->order); | ||
581 | } | 582 | } |
582 | else | 583 | else |
583 | printf("%-21s %8ld %7d %8s %14s %4d %1d %3ld %3ld %s\n", | 584 | printf("%-21s %8ld %7d %8s %14s %4d %1d %3ld %3ld %s\n", |
@@ -1188,6 +1189,7 @@ void read_slab_dir(void) | |||
1188 | slab->deactivate_to_head = get_obj("deactivate_to_head"); | 1189 | slab->deactivate_to_head = get_obj("deactivate_to_head"); |
1189 | slab->deactivate_to_tail = get_obj("deactivate_to_tail"); | 1190 | slab->deactivate_to_tail = get_obj("deactivate_to_tail"); |
1190 | slab->deactivate_remote_frees = get_obj("deactivate_remote_frees"); | 1191 | slab->deactivate_remote_frees = get_obj("deactivate_remote_frees"); |
1192 | slab->order_fallback = get_obj("order_fallback"); | ||
1191 | chdir(".."); | 1193 | chdir(".."); |
1192 | if (slab->name[0] == ':') | 1194 | if (slab->name[0] == ':') |
1193 | alias_targets++; | 1195 | alias_targets++; |