aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/00-INDEX2
-rw-r--r--Documentation/ManagementStyle2
-rw-r--r--Documentation/SubmittingPatches2
-rw-r--r--Documentation/feature-removal-schedule.txt8
-rw-r--r--Documentation/filesystems/00-INDEX2
-rw-r--r--Documentation/filesystems/ocfs2.txt13
-rw-r--r--Documentation/input/iforce-protocol.txt508
-rw-r--r--Documentation/kernel-parameters.txt3
-rw-r--r--Documentation/networking/00-INDEX3
-rw-r--r--Documentation/networking/multiqueue.txt10
-rw-r--r--Documentation/networking/sk98lin.txt568
-rw-r--r--Documentation/thinkpad-acpi.txt96
-rw-r--r--Documentation/video4linux/cx2341x/fw-encoder-api.txt4
13 files changed, 933 insertions, 288 deletions
diff --git a/Documentation/00-INDEX b/Documentation/00-INDEX
index 8b0563633442..43e89b1537d9 100644
--- a/Documentation/00-INDEX
+++ b/Documentation/00-INDEX
@@ -134,8 +134,6 @@ dvb/
134 - info on Linux Digital Video Broadcast (DVB) subsystem. 134 - info on Linux Digital Video Broadcast (DVB) subsystem.
135early-userspace/ 135early-userspace/
136 - info about initramfs, klibc, and userspace early during boot. 136 - info about initramfs, klibc, and userspace early during boot.
137ecryptfs.txt
138 - docs on eCryptfs: stacked cryptographic filesystem for Linux.
139eisa.txt 137eisa.txt
140 - info on EISA bus support. 138 - info on EISA bus support.
141exception.txt 139exception.txt
diff --git a/Documentation/ManagementStyle b/Documentation/ManagementStyle
index cbbebfb51ffe..49a8efa5afeb 100644
--- a/Documentation/ManagementStyle
+++ b/Documentation/ManagementStyle
@@ -166,7 +166,7 @@ To solve this problem, you really only have two options:
166The option of being unfailingly polite really doesn't exist. Nobody will 166The option of being unfailingly polite really doesn't exist. Nobody will
167trust somebody who is so clearly hiding his true character. 167trust somebody who is so clearly hiding his true character.
168 168
169(*) Paul Simon sang "Fifty Ways to Lose Your Lover", because quite 169(*) Paul Simon sang "Fifty Ways to Leave Your Lover", because quite
170frankly, "A Million Ways to Tell a Developer He Is a D*ckhead" doesn't 170frankly, "A Million Ways to Tell a Developer He Is a D*ckhead" doesn't
171scan nearly as well. But I'm sure he thought about it. 171scan nearly as well. But I'm sure he thought about it.
172 172
diff --git a/Documentation/SubmittingPatches b/Documentation/SubmittingPatches
index 397575880dc4..a30dd4480ad4 100644
--- a/Documentation/SubmittingPatches
+++ b/Documentation/SubmittingPatches
@@ -126,7 +126,7 @@ the reviewers time and will get your patch rejected, probably
126without even being read. 126without even being read.
127 127
128At a minimum you should check your patches with the patch style 128At a minimum you should check your patches with the patch style
129checker prior to submission (scripts/patchcheck.pl). You should 129checker prior to submission (scripts/checkpatch.pl). You should
130be able to justify all violations that remain in your patch. 130be able to justify all violations that remain in your patch.
131 131
132 132
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt
index b9a3fdc1cc5a..00928d2ecfb2 100644
--- a/Documentation/feature-removal-schedule.txt
+++ b/Documentation/feature-removal-schedule.txt
@@ -298,3 +298,11 @@ Why: All mthca hardware also supports MSI-X, which provides
298Who: Roland Dreier <rolandd@cisco.com> 298Who: Roland Dreier <rolandd@cisco.com>
299 299
300--------------------------- 300---------------------------
301
302What: sk98lin network driver
303When: Feburary 2008
304Why: In kernel tree version of driver is unmaintained. Sk98lin driver
305 replaced by the skge driver.
306Who: Stephen Hemminger <shemminger@linux-foundation.org>
307
308---------------------------
diff --git a/Documentation/filesystems/00-INDEX b/Documentation/filesystems/00-INDEX
index 571785887a4f..59db1bca7027 100644
--- a/Documentation/filesystems/00-INDEX
+++ b/Documentation/filesystems/00-INDEX
@@ -32,6 +32,8 @@ directory-locking
32 - info about the locking scheme used for directory operations. 32 - info about the locking scheme used for directory operations.
33dlmfs.txt 33dlmfs.txt
34 - info on the userspace interface to the OCFS2 DLM. 34 - info on the userspace interface to the OCFS2 DLM.
35ecryptfs.txt
36 - docs on eCryptfs: stacked cryptographic filesystem for Linux.
35ext2.txt 37ext2.txt
36 - info, mount options and specifications for the Ext2 filesystem. 38 - info, mount options and specifications for the Ext2 filesystem.
37ext3.txt 39ext3.txt
diff --git a/Documentation/filesystems/ocfs2.txt b/Documentation/filesystems/ocfs2.txt
index 8ccf0c1b58ed..ed55238023a9 100644
--- a/Documentation/filesystems/ocfs2.txt
+++ b/Documentation/filesystems/ocfs2.txt
@@ -28,11 +28,7 @@ Manish Singh <manish.singh@oracle.com>
28Caveats 28Caveats
29======= 29=======
30Features which OCFS2 does not support yet: 30Features which OCFS2 does not support yet:
31 - sparse files
32 - extended attributes 31 - extended attributes
33 - shared writable mmap
34 - loopback is supported, but data written will not
35 be cluster coherent.
36 - quotas 32 - quotas
37 - cluster aware flock 33 - cluster aware flock
38 - cluster aware lockf 34 - cluster aware lockf
@@ -57,3 +53,12 @@ nointr Do not allow signals to interrupt cluster
57atime_quantum=60(*) OCFS2 will not update atime unless this number 53atime_quantum=60(*) OCFS2 will not update atime unless this number
58 of seconds has passed since the last update. 54 of seconds has passed since the last update.
59 Set to zero to always update atime. 55 Set to zero to always update atime.
56data=ordered (*) All data are forced directly out to the main file
57 system prior to its metadata being committed to the
58 journal.
59data=writeback Data ordering is not preserved, data may be written
60 into the main file system after its metadata has been
61 committed to the journal.
62preferred_slot=0(*) During mount, try to use this filesystem slot first. If
63 it is in use by another node, the first empty one found
64 will be chosen. Invalid values will be ignored.
diff --git a/Documentation/input/iforce-protocol.txt b/Documentation/input/iforce-protocol.txt
index 95df4ca70e71..8777d2d321e3 100644
--- a/Documentation/input/iforce-protocol.txt
+++ b/Documentation/input/iforce-protocol.txt
@@ -1,254 +1,254 @@
1** Introduction 1** Introduction
2This document describes what I managed to discover about the protocol used to 2This document describes what I managed to discover about the protocol used to
3specify force effects to I-Force 2.0 devices. None of this information comes 3specify force effects to I-Force 2.0 devices. None of this information comes
4from Immerse. That's why you should not trust what is written in this 4from Immerse. That's why you should not trust what is written in this
5document. This document is intended to help understanding the protocol. 5document. This document is intended to help understanding the protocol.
6This is not a reference. Comments and corrections are welcome. To contact me, 6This is not a reference. Comments and corrections are welcome. To contact me,
7send an email to: deneux@ifrance.com 7send an email to: deneux@ifrance.com
8 8
9** WARNING ** 9** WARNING **
10I may not be held responsible for any dammage or harm caused if you try to 10I may not be held responsible for any dammage or harm caused if you try to
11send data to your I-Force device based on what you read in this document. 11send data to your I-Force device based on what you read in this document.
12 12
13** Preliminary Notes: 13** Preliminary Notes:
14All values are hexadecimal with big-endian encoding (msb on the left). Beware, 14All values are hexadecimal with big-endian encoding (msb on the left). Beware,
15values inside packets are encoded using little-endian. Bytes whose roles are 15values inside packets are encoded using little-endian. Bytes whose roles are
16unknown are marked ??? Information that needs deeper inspection is marked (?) 16unknown are marked ??? Information that needs deeper inspection is marked (?)
17 17
18** General form of a packet ** 18** General form of a packet **
19This is how packets look when the device uses the rs232 to communicate. 19This is how packets look when the device uses the rs232 to communicate.
202B OP LEN DATA CS 202B OP LEN DATA CS
21CS is the checksum. It is equal to the exclusive or of all bytes. 21CS is the checksum. It is equal to the exclusive or of all bytes.
22 22
23When using USB: 23When using USB:
24OP DATA 24OP DATA
25The 2B, LEN and CS fields have disappeared, probably because USB handles frames and 25The 2B, LEN and CS fields have disappeared, probably because USB handles frames and
26data corruption is handled or unsignificant. 26data corruption is handled or unsignificant.
27 27
28First, I describe effects that are sent by the device to the computer 28First, I describe effects that are sent by the device to the computer
29 29
30** Device input state 30** Device input state
31This packet is used to indicate the state of each button and the value of each 31This packet is used to indicate the state of each button and the value of each
32axis 32axis
33OP= 01 for a joystick, 03 for a wheel 33OP= 01 for a joystick, 03 for a wheel
34LEN= Varies from device to device 34LEN= Varies from device to device
3500 X-Axis lsb 3500 X-Axis lsb
3601 X-Axis msb 3601 X-Axis msb
3702 Y-Axis lsb, or gas pedal for a wheel 3702 Y-Axis lsb, or gas pedal for a wheel
3803 Y-Axis msb, or brake pedal for a wheel 3803 Y-Axis msb, or brake pedal for a wheel
3904 Throttle 3904 Throttle
4005 Buttons 4005 Buttons
4106 Lower 4 bits: Buttons 4106 Lower 4 bits: Buttons
42 Upper 4 bits: Hat 42 Upper 4 bits: Hat
4307 Rudder 4307 Rudder
44 44
45** Device effects states 45** Device effects states
46OP= 02 46OP= 02
47LEN= Varies 47LEN= Varies
4800 ? Bit 1 (Value 2) is the value of the deadman switch 4800 ? Bit 1 (Value 2) is the value of the deadman switch
4901 Bit 8 is set if the effect is playing. Bits 0 to 7 are the effect id. 4901 Bit 8 is set if the effect is playing. Bits 0 to 7 are the effect id.
5002 ?? 5002 ??
5103 Address of parameter block changed (lsb) 5103 Address of parameter block changed (lsb)
5204 Address of parameter block changed (msb) 5204 Address of parameter block changed (msb)
5305 Address of second parameter block changed (lsb) 5305 Address of second parameter block changed (lsb)
54... depending on the number of parameter blocks updated 54... depending on the number of parameter blocks updated
55 55
56** Force effect ** 56** Force effect **
57OP= 01 57OP= 01
58LEN= 0e 58LEN= 0e
5900 Channel (when playing several effects at the same time, each must be assigned a channel) 5900 Channel (when playing several effects at the same time, each must be assigned a channel)
6001 Wave form 6001 Wave form
61 Val 00 Constant 61 Val 00 Constant
62 Val 20 Square 62 Val 20 Square
63 Val 21 Triangle 63 Val 21 Triangle
64 Val 22 Sine 64 Val 22 Sine
65 Val 23 Sawtooth up 65 Val 23 Sawtooth up
66 Val 24 Sawtooth down 66 Val 24 Sawtooth down
67 Val 40 Spring (Force = f(pos)) 67 Val 40 Spring (Force = f(pos))
68 Val 41 Friction (Force = f(velocity)) and Inertia (Force = f(acceleration)) 68 Val 41 Friction (Force = f(velocity)) and Inertia (Force = f(acceleration))
69 69
70 70
7102 Axes affected and trigger 7102 Axes affected and trigger
72 Bits 4-7: Val 2 = effect along one axis. Byte 05 indicates direction 72 Bits 4-7: Val 2 = effect along one axis. Byte 05 indicates direction
73 Val 4 = X axis only. Byte 05 must contain 5a 73 Val 4 = X axis only. Byte 05 must contain 5a
74 Val 8 = Y axis only. Byte 05 must contain b4 74 Val 8 = Y axis only. Byte 05 must contain b4
75 Val c = X and Y axes. Bytes 05 must contain 60 75 Val c = X and Y axes. Bytes 05 must contain 60
76 Bits 0-3: Val 0 = No trigger 76 Bits 0-3: Val 0 = No trigger
77 Val x+1 = Button x triggers the effect 77 Val x+1 = Button x triggers the effect
78 When the whole byte is 0, cancel the previously set trigger 78 When the whole byte is 0, cancel the previously set trigger
79 79
8003-04 Duration of effect (little endian encoding, in ms) 8003-04 Duration of effect (little endian encoding, in ms)
81 81
8205 Direction of effect, if applicable. Else, see 02 for value to assign. 8205 Direction of effect, if applicable. Else, see 02 for value to assign.
83 83
8406-07 Minimum time between triggering. 8406-07 Minimum time between triggering.
85 85
8608-09 Address of periodicity or magnitude parameters 8608-09 Address of periodicity or magnitude parameters
870a-0b Address of attack and fade parameters, or ffff if none. 870a-0b Address of attack and fade parameters, or ffff if none.
88*or* 88*or*
8908-09 Address of interactive parameters for X-axis, or ffff if not applicable 8908-09 Address of interactive parameters for X-axis, or ffff if not applicable
900a-0b Address of interactive parameters for Y-axis, or ffff if not applicable 900a-0b Address of interactive parameters for Y-axis, or ffff if not applicable
91 91
920c-0d Delay before execution of effect (little endian encoding, in ms) 920c-0d Delay before execution of effect (little endian encoding, in ms)
93 93
94 94
95** Time based parameters ** 95** Time based parameters **
96 96
97*** Attack and fade *** 97*** Attack and fade ***
98OP= 02 98OP= 02
99LEN= 08 99LEN= 08
10000-01 Address where to store the parameteres 10000-01 Address where to store the parameteres
10102-03 Duration of attack (little endian encoding, in ms) 10102-03 Duration of attack (little endian encoding, in ms)
10204 Level at end of attack. Signed byte. 10204 Level at end of attack. Signed byte.
10305-06 Duration of fade. 10305-06 Duration of fade.
10407 Level at end of fade. 10407 Level at end of fade.
105 105
106*** Magnitude *** 106*** Magnitude ***
107OP= 03 107OP= 03
108LEN= 03 108LEN= 03
10900-01 Address 10900-01 Address
11002 Level. Signed byte. 11002 Level. Signed byte.
111 111
112*** Periodicity *** 112*** Periodicity ***
113OP= 04 113OP= 04
114LEN= 07 114LEN= 07
11500-01 Address 11500-01 Address
11602 Magnitude. Signed byte. 11602 Magnitude. Signed byte.
11703 Offset. Signed byte. 11703 Offset. Signed byte.
11804 Phase. Val 00 = 0 deg, Val 40 = 90 degs. 11804 Phase. Val 00 = 0 deg, Val 40 = 90 degs.
11905-06 Period (little endian encoding, in ms) 11905-06 Period (little endian encoding, in ms)
120 120
121** Interactive parameters ** 121** Interactive parameters **
122OP= 05 122OP= 05
123LEN= 0a 123LEN= 0a
12400-01 Address 12400-01 Address
12502 Positive Coeff 12502 Positive Coeff
12603 Negative Coeff 12603 Negative Coeff
12704+05 Offset (center) 12704+05 Offset (center)
12806+07 Dead band (Val 01F4 = 5000 (decimal)) 12806+07 Dead band (Val 01F4 = 5000 (decimal))
12908 Positive saturation (Val 0a = 1000 (decimal) Val 64 = 10000 (decimal)) 12908 Positive saturation (Val 0a = 1000 (decimal) Val 64 = 10000 (decimal))
13009 Negative saturation 13009 Negative saturation
131 131
132The encoding is a bit funny here: For coeffs, these are signed values. The 132The encoding is a bit funny here: For coeffs, these are signed values. The
133maximum value is 64 (100 decimal), the min is 9c. 133maximum value is 64 (100 decimal), the min is 9c.
134For the offset, the minimum value is FE0C, the maximum value is 01F4. 134For the offset, the minimum value is FE0C, the maximum value is 01F4.
135For the deadband, the minimum value is 0, the max is 03E8. 135For the deadband, the minimum value is 0, the max is 03E8.
136 136
137** Controls ** 137** Controls **
138OP= 41 138OP= 41
139LEN= 03 139LEN= 03
14000 Channel 14000 Channel
14101 Start/Stop 14101 Start/Stop
142 Val 00: Stop 142 Val 00: Stop
143 Val 01: Start and play once. 143 Val 01: Start and play once.
144 Val 41: Start and play n times (See byte 02 below) 144 Val 41: Start and play n times (See byte 02 below)
14502 Number of iterations n. 14502 Number of iterations n.
146 146
147** Init ** 147** Init **
148 148
149*** Querying features *** 149*** Querying features ***
150OP= ff 150OP= ff
151Query command. Length varies according to the query type. 151Query command. Length varies according to the query type.
152The general format of this packet is: 152The general format of this packet is:
153ff 01 QUERY [INDEX] CHECKSUM 153ff 01 QUERY [INDEX] CHECKSUM
154reponses are of the same form: 154reponses are of the same form:
155FF LEN QUERY VALUE_QUERIED CHECKSUM2 155FF LEN QUERY VALUE_QUERIED CHECKSUM2
156where LEN = 1 + length(VALUE_QUERIED) 156where LEN = 1 + length(VALUE_QUERIED)
157 157
158**** Query ram size **** 158**** Query ram size ****
159QUERY = 42 ('B'uffer size) 159QUERY = 42 ('B'uffer size)
160The device should reply with the same packet plus two additionnal bytes 160The device should reply with the same packet plus two additionnal bytes
161containing the size of the memory: 161containing the size of the memory:
162ff 03 42 03 e8 CS would mean that the device has 1000 bytes of ram available. 162ff 03 42 03 e8 CS would mean that the device has 1000 bytes of ram available.
163 163
164**** Query number of effects **** 164**** Query number of effects ****
165QUERY = 4e ('N'umber of effects) 165QUERY = 4e ('N'umber of effects)
166The device should respond by sending the number of effects that can be played 166The device should respond by sending the number of effects that can be played
167at the same time (one byte) 167at the same time (one byte)
168ff 02 4e 14 CS would stand for 20 effects. 168ff 02 4e 14 CS would stand for 20 effects.
169 169
170**** Vendor's id **** 170**** Vendor's id ****
171QUERY = 4d ('M'anufacturer) 171QUERY = 4d ('M'anufacturer)
172Query the vendors'id (2 bytes) 172Query the vendors'id (2 bytes)
173 173
174**** Product id ***** 174**** Product id *****
175QUERY = 50 ('P'roduct) 175QUERY = 50 ('P'roduct)
176Query the product id (2 bytes) 176Query the product id (2 bytes)
177 177
178**** Open device **** 178**** Open device ****
179QUERY = 4f ('O'pen) 179QUERY = 4f ('O'pen)
180No data returned. 180No data returned.
181 181
182**** Close device ***** 182**** Close device *****
183QUERY = 43 ('C')lose 183QUERY = 43 ('C')lose
184No data returned. 184No data returned.
185 185
186**** Query effect **** 186**** Query effect ****
187QUERY = 45 ('E') 187QUERY = 45 ('E')
188Send effect type. 188Send effect type.
189Returns nonzero if supported (2 bytes) 189Returns nonzero if supported (2 bytes)
190 190
191**** Firmware Version **** 191**** Firmware Version ****
192QUERY = 56 ('V'ersion) 192QUERY = 56 ('V'ersion)
193Sends back 3 bytes - major, minor, subminor 193Sends back 3 bytes - major, minor, subminor
194 194
195*** Initialisation of the device *** 195*** Initialisation of the device ***
196 196
197**** Set Control **** 197**** Set Control ****
198!!! Device dependent, can be different on different models !!! 198!!! Device dependent, can be different on different models !!!
199OP= 40 <idx> <val> [<val>] 199OP= 40 <idx> <val> [<val>]
200LEN= 2 or 3 200LEN= 2 or 3
20100 Idx 20100 Idx
202 Idx 00 Set dead zone (0..2048) 202 Idx 00 Set dead zone (0..2048)
203 Idx 01 Ignore Deadman sensor (0..1) 203 Idx 01 Ignore Deadman sensor (0..1)
204 Idx 02 Enable comm watchdog (0..1) 204 Idx 02 Enable comm watchdog (0..1)
205 Idx 03 Set the strength of the spring (0..100) 205 Idx 03 Set the strength of the spring (0..100)
206 Idx 04 Enable or disable the spring (0/1) 206 Idx 04 Enable or disable the spring (0/1)
207 Idx 05 Set axis saturation threshold (0..2048) 207 Idx 05 Set axis saturation threshold (0..2048)
208 208
209**** Set Effect State **** 209**** Set Effect State ****
210OP= 42 <val> 210OP= 42 <val>
211LEN= 1 211LEN= 1
21200 State 21200 State
213 Bit 3 Pause force feedback 213 Bit 3 Pause force feedback
214 Bit 2 Enable force feedback 214 Bit 2 Enable force feedback
215 Bit 0 Stop all effects 215 Bit 0 Stop all effects
216 216
217**** Set overall gain **** 217**** Set overall gain ****
218OP= 43 <val> 218OP= 43 <val>
219LEN= 1 219LEN= 1
22000 Gain 22000 Gain
221 Val 00 = 0% 221 Val 00 = 0%
222 Val 40 = 50% 222 Val 40 = 50%
223 Val 80 = 100% 223 Val 80 = 100%
224 224
225** Parameter memory ** 225** Parameter memory **
226 226
227Each device has a certain amount of memory to store parameters of effects. 227Each device has a certain amount of memory to store parameters of effects.
228The amount of RAM may vary, I encountered values from 200 to 1000 bytes. Below 228The amount of RAM may vary, I encountered values from 200 to 1000 bytes. Below
229is the amount of memory apparently needed for every set of parameters: 229is the amount of memory apparently needed for every set of parameters:
230 - period : 0c 230 - period : 0c
231 - magnitude : 02 231 - magnitude : 02
232 - attack and fade : 0e 232 - attack and fade : 0e
233 - interactive : 08 233 - interactive : 08
234 234
235** Appendix: How to study the protocol ? ** 235** Appendix: How to study the protocol ? **
236 236
2371. Generate effects using the force editor provided with the DirectX SDK, or use Immersion Studio (freely available at their web site in the developer section: www.immersion.com) 2371. Generate effects using the force editor provided with the DirectX SDK, or use Immersion Studio (freely available at their web site in the developer section: www.immersion.com)
2382. Start a soft spying RS232 or USB (depending on where you connected your joystick/wheel). I used ComPortSpy from fCoder (alpha version!) 2382. Start a soft spying RS232 or USB (depending on where you connected your joystick/wheel). I used ComPortSpy from fCoder (alpha version!)
2393. Play the effect, and watch what happens on the spy screen. 2393. Play the effect, and watch what happens on the spy screen.
240 240
241A few words about ComPortSpy: 241A few words about ComPortSpy:
242At first glance, this soft seems, hum, well... buggy. In fact, data appear with a few seconds latency. Personnaly, I restart it every time I play an effect. 242At first glance, this soft seems, hum, well... buggy. In fact, data appear with a few seconds latency. Personnaly, I restart it every time I play an effect.
243Remember it's free (as in free beer) and alpha! 243Remember it's free (as in free beer) and alpha!
244 244
245** URLS ** 245** URLS **
246Check www.immerse.com for Immersion Studio, and www.fcoder.com for ComPortSpy. 246Check www.immerse.com for Immersion Studio, and www.fcoder.com for ComPortSpy.
247 247
248** Author of this document ** 248** Author of this document **
249Johann Deneux <deneux@ifrance.com> 249Johann Deneux <deneux@ifrance.com>
250Home page at http://www.esil.univ-mrs.fr/~jdeneux/projects/ff/ 250Home page at http://www.esil.univ-mrs.fr/~jdeneux/projects/ff/
251 251
252Additions by Vojtech Pavlik. 252Additions by Vojtech Pavlik.
253 253
254I-Force is trademark of Immersion Corp. 254I-Force is trademark of Immersion Corp.
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index b41cde31d112..4d175c751246 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -468,9 +468,6 @@ and is between 256 and 4096 characters. It is defined in the file
468 Format: 468 Format:
469 <first_slot>,<last_slot>,<port>,<enum_bit>[,<debug>] 469 <first_slot>,<last_slot>,<port>,<enum_bit>[,<debug>]
470 470
471 cpia_pp= [HW,PPT]
472 Format: { parport<nr> | auto | none }
473
474 crashkernel=nn[KMG]@ss[KMG] 471 crashkernel=nn[KMG]@ss[KMG]
475 [KNL] Reserve a chunk of physical memory to 472 [KNL] Reserve a chunk of physical memory to
476 hold a kernel to switch to with kexec on panic. 473 hold a kernel to switch to with kexec on panic.
diff --git a/Documentation/networking/00-INDEX b/Documentation/networking/00-INDEX
index d63f480afb74..153d84d281e6 100644
--- a/Documentation/networking/00-INDEX
+++ b/Documentation/networking/00-INDEX
@@ -96,6 +96,9 @@ routing.txt
96 - the new routing mechanism 96 - the new routing mechanism
97shaper.txt 97shaper.txt
98 - info on the module that can shape/limit transmitted traffic. 98 - info on the module that can shape/limit transmitted traffic.
99sk98lin.txt
100 - Marvell Yukon Chipset / SysKonnect SK-98xx compliant Gigabit
101 Ethernet Adapter family driver info
99skfp.txt 102skfp.txt
100 - SysKonnect FDDI (SK-5xxx, Compaq Netelligent) driver info. 103 - SysKonnect FDDI (SK-5xxx, Compaq Netelligent) driver info.
101smc9.txt 104smc9.txt
diff --git a/Documentation/networking/multiqueue.txt b/Documentation/networking/multiqueue.txt
index 00b60cce2224..ea5a42e8f79f 100644
--- a/Documentation/networking/multiqueue.txt
+++ b/Documentation/networking/multiqueue.txt
@@ -58,9 +58,13 @@ software, so it's a straight round-robin qdisc. It uses the same syntax and
58classification priomap that sch_prio uses, so it should be intuitive to 58classification priomap that sch_prio uses, so it should be intuitive to
59configure for people who've used sch_prio. 59configure for people who've used sch_prio.
60 60
61The PRIO qdisc naturally plugs into a multiqueue device. If PRIO has been 61In order to utilitize the multiqueue features of the qdiscs, the network
62built with NET_SCH_PRIO_MQ, then upon load, it will make sure the number of 62device layer needs to enable multiple queue support. This can be done by
63bands requested is equal to the number of queues on the hardware. If they 63selecting NETDEVICES_MULTIQUEUE under Drivers.
64
65The PRIO qdisc naturally plugs into a multiqueue device. If
66NETDEVICES_MULTIQUEUE is selected, then on qdisc load, the number of
67bands requested is compared to the number of queues on the hardware. If they
64are equal, it sets a one-to-one mapping up between the queues and bands. If 68are equal, it sets a one-to-one mapping up between the queues and bands. If
65they're not equal, it will not load the qdisc. This is the same behavior 69they're not equal, it will not load the qdisc. This is the same behavior
66for RR. Once the association is made, any skb that is classified will have 70for RR. Once the association is made, any skb that is classified will have
diff --git a/Documentation/networking/sk98lin.txt b/Documentation/networking/sk98lin.txt
new file mode 100644
index 000000000000..8590a954df1d
--- /dev/null
+++ b/Documentation/networking/sk98lin.txt
@@ -0,0 +1,568 @@
1(C)Copyright 1999-2004 Marvell(R).
2All rights reserved
3===========================================================================
4
5sk98lin.txt created 13-Feb-2004
6
7Readme File for sk98lin v6.23
8Marvell Yukon/SysKonnect SK-98xx Gigabit Ethernet Adapter family driver for LINUX
9
10This file contains
11 1 Overview
12 2 Required Files
13 3 Installation
14 3.1 Driver Installation
15 3.2 Inclusion of adapter at system start
16 4 Driver Parameters
17 4.1 Per-Port Parameters
18 4.2 Adapter Parameters
19 5 Large Frame Support
20 6 VLAN and Link Aggregation Support (IEEE 802.1, 802.1q, 802.3ad)
21 7 Troubleshooting
22
23===========================================================================
24
25
261 Overview
27===========
28
29The sk98lin driver supports the Marvell Yukon and SysKonnect
30SK-98xx/SK-95xx compliant Gigabit Ethernet Adapter on Linux. It has
31been tested with Linux on Intel/x86 machines.
32***
33
34
352 Required Files
36=================
37
38The linux kernel source.
39No additional files required.
40***
41
42
433 Installation
44===============
45
46It is recommended to download the latest version of the driver from the
47SysKonnect web site www.syskonnect.com. If you have downloaded the latest
48driver, the Linux kernel has to be patched before the driver can be
49installed. For details on how to patch a Linux kernel, refer to the
50patch.txt file.
51
523.1 Driver Installation
53------------------------
54
55The following steps describe the actions that are required to install
56the driver and to start it manually. These steps should be carried
57out for the initial driver setup. Once confirmed to be ok, they can
58be included in the system start.
59
60NOTE 1: To perform the following tasks you need 'root' access.
61
62NOTE 2: In case of problems, please read the section "Troubleshooting"
63 below.
64
65The driver can either be integrated into the kernel or it can be compiled
66as a module. Select the appropriate option during the kernel
67configuration.
68
69Compile/use the driver as a module
70----------------------------------
71To compile the driver, go to the directory /usr/src/linux and
72execute the command "make menuconfig" or "make xconfig" and proceed as
73follows:
74
75To integrate the driver permanently into the kernel, proceed as follows:
76
771. Select the menu "Network device support" and then "Ethernet(1000Mbit)"
782. Mark "Marvell Yukon Chipset / SysKonnect SK-98xx family support"
79 with (*)
803. Build a new kernel when the configuration of the above options is
81 finished.
824. Install the new kernel.
835. Reboot your system.
84
85To use the driver as a module, proceed as follows:
86
871. Enable 'loadable module support' in the kernel.
882. For automatic driver start, enable the 'Kernel module loader'.
893. Select the menu "Network device support" and then "Ethernet(1000Mbit)"
904. Mark "Marvell Yukon Chipset / SysKonnect SK-98xx family support"
91 with (M)
925. Execute the command "make modules".
936. Execute the command "make modules_install".
94 The appropriate modules will be installed.
957. Reboot your system.
96
97
98Load the module manually
99------------------------
100To load the module manually, proceed as follows:
101
1021. Enter "modprobe sk98lin".
1032. If a Marvell Yukon or SysKonnect SK-98xx adapter is installed in
104 your computer and you have a /proc file system, execute the command:
105 "ls /proc/net/sk98lin/"
106 This should produce an output containing a line with the following
107 format:
108 eth0 eth1 ...
109 which indicates that your adapter has been found and initialized.
110
111 NOTE 1: If you have more than one Marvell Yukon or SysKonnect SK-98xx
112 adapter installed, the adapters will be listed as 'eth0',
113 'eth1', 'eth2', etc.
114 For each adapter, repeat steps 3 and 4 below.
115
116 NOTE 2: If you have other Ethernet adapters installed, your Marvell
117 Yukon or SysKonnect SK-98xx adapter will be mapped to the
118 next available number, e.g. 'eth1'. The mapping is executed
119 automatically.
120 The module installation message (displayed either in a system
121 log file or on the console) prints a line for each adapter
122 found containing the corresponding 'ethX'.
123
1243. Select an IP address and assign it to the respective adapter by
125 entering:
126 ifconfig eth0 <ip-address>
127 With this command, the adapter is connected to the Ethernet.
128
129 SK-98xx Gigabit Ethernet Server Adapters: The yellow LED on the adapter
130 is now active, the link status LED of the primary port is active and
131 the link status LED of the secondary port (on dual port adapters) is
132 blinking (if the ports are connected to a switch or hub).
133 SK-98xx V2.0 Gigabit Ethernet Adapters: The link status LED is active.
134 In addition, you will receive a status message on the console stating
135 "ethX: network connection up using port Y" and showing the selected
136 connection parameters (x stands for the ethernet device number
137 (0,1,2, etc), y stands for the port name (A or B)).
138
139 NOTE: If you are in doubt about IP addresses, ask your network
140 administrator for assistance.
141
1424. Your adapter should now be fully operational.
143 Use 'ping <otherstation>' to verify the connection to other computers
144 on your network.
1455. To check the adapter configuration view /proc/net/sk98lin/[devicename].
146 For example by executing:
147 "cat /proc/net/sk98lin/eth0"
148
149Unload the module
150-----------------
151To stop and unload the driver modules, proceed as follows:
152
1531. Execute the command "ifconfig eth0 down".
1542. Execute the command "rmmod sk98lin".
155
1563.2 Inclusion of adapter at system start
157-----------------------------------------
158
159Since a large number of different Linux distributions are
160available, we are unable to describe a general installation procedure
161for the driver module.
162Because the driver is now integrated in the kernel, installation should
163be easy, using the standard mechanism of your distribution.
164Refer to the distribution's manual for installation of ethernet adapters.
165
166***
167
1684 Driver Parameters
169====================
170
171Parameters can be set at the command line after the module has been
172loaded with the command 'modprobe'.
173In some distributions, the configuration tools are able to pass parameters
174to the driver module.
175
176If you use the kernel module loader, you can set driver parameters
177in the file /etc/modprobe.conf (or /etc/modules.conf in 2.4 or earlier).
178To set the driver parameters in this file, proceed as follows:
179
1801. Insert a line of the form :
181 options sk98lin ...
182 For "...", the same syntax is required as described for the command
183 line parameters of modprobe below.
1842. To activate the new parameters, either reboot your computer
185 or
186 unload and reload the driver.
187 The syntax of the driver parameters is:
188
189 modprobe sk98lin parameter=value1[,value2[,value3...]]
190
191 where value1 refers to the first adapter, value2 to the second etc.
192
193NOTE: All parameters are case sensitive. Write them exactly as shown
194 below.
195
196Example:
197Suppose you have two adapters. You want to set auto-negotiation
198on the first adapter to ON and on the second adapter to OFF.
199You also want to set DuplexCapabilities on the first adapter
200to FULL, and on the second adapter to HALF.
201Then, you must enter:
202
203 modprobe sk98lin AutoNeg_A=On,Off DupCap_A=Full,Half
204
205NOTE: The number of adapters that can be configured this way is
206 limited in the driver (file skge.c, constant SK_MAX_CARD_PARAM).
207 The current limit is 16. If you happen to install
208 more adapters, adjust this and recompile.
209
210
2114.1 Per-Port Parameters
212------------------------
213
214These settings are available for each port on the adapter.
215In the following description, '?' stands for the port for
216which you set the parameter (A or B).
217
218Speed
219-----
220Parameter: Speed_?
221Values: 10, 100, 1000, Auto
222Default: Auto
223
224This parameter is used to set the speed capabilities. It is only valid
225for the SK-98xx V2.0 copper adapters.
226Usually, the speed is negotiated between the two ports during link
227establishment. If this fails, a port can be forced to a specific setting
228with this parameter.
229
230Auto-Negotiation
231----------------
232Parameter: AutoNeg_?
233Values: On, Off, Sense
234Default: On
235
236The "Sense"-mode automatically detects whether the link partner supports
237auto-negotiation or not.
238
239Duplex Capabilities
240-------------------
241Parameter: DupCap_?
242Values: Half, Full, Both
243Default: Both
244
245This parameters is only relevant if auto-negotiation for this port is
246not set to "Sense". If auto-negotiation is set to "On", all three values
247are possible. If it is set to "Off", only "Full" and "Half" are allowed.
248This parameter is useful if your link partner does not support all
249possible combinations.
250
251Flow Control
252------------
253Parameter: FlowCtrl_?
254Values: Sym, SymOrRem, LocSend, None
255Default: SymOrRem
256
257This parameter can be used to set the flow control capabilities the
258port reports during auto-negotiation. It can be set for each port
259individually.
260Possible modes:
261 -- Sym = Symmetric: both link partners are allowed to send
262 PAUSE frames
263 -- SymOrRem = SymmetricOrRemote: both or only remote partner
264 are allowed to send PAUSE frames
265 -- LocSend = LocalSend: only local link partner is allowed
266 to send PAUSE frames
267 -- None = no link partner is allowed to send PAUSE frames
268
269NOTE: This parameter is ignored if auto-negotiation is set to "Off".
270
271Role in Master-Slave-Negotiation (1000Base-T only)
272--------------------------------------------------
273Parameter: Role_?
274Values: Auto, Master, Slave
275Default: Auto
276
277This parameter is only valid for the SK-9821 and SK-9822 adapters.
278For two 1000Base-T ports to communicate, one must take the role of the
279master (providing timing information), while the other must be the
280slave. Usually, this is negotiated between the two ports during link
281establishment. If this fails, a port can be forced to a specific setting
282with this parameter.
283
284
2854.2 Adapter Parameters
286-----------------------
287
288Connection Type (SK-98xx V2.0 copper adapters only)
289---------------
290Parameter: ConType
291Values: Auto, 100FD, 100HD, 10FD, 10HD
292Default: Auto
293
294The parameter 'ConType' is a combination of all five per-port parameters
295within one single parameter. This simplifies the configuration of both ports
296of an adapter card! The different values of this variable reflect the most
297meaningful combinations of port parameters.
298
299The following table shows the values of 'ConType' and the corresponding
300combinations of the per-port parameters:
301
302 ConType | DupCap AutoNeg FlowCtrl Role Speed
303 ----------+------------------------------------------------------
304 Auto | Both On SymOrRem Auto Auto
305 100FD | Full Off None Auto (ignored) 100
306 100HD | Half Off None Auto (ignored) 100
307 10FD | Full Off None Auto (ignored) 10
308 10HD | Half Off None Auto (ignored) 10
309
310Stating any other port parameter together with this 'ConType' variable
311will result in a merged configuration of those settings. This due to
312the fact, that the per-port parameters (e.g. Speed_? ) have a higher
313priority than the combined variable 'ConType'.
314
315NOTE: This parameter is always used on both ports of the adapter card.
316
317Interrupt Moderation
318--------------------
319Parameter: Moderation
320Values: None, Static, Dynamic
321Default: None
322
323Interrupt moderation is employed to limit the maximum number of interrupts
324the driver has to serve. That is, one or more interrupts (which indicate any
325transmit or receive packet to be processed) are queued until the driver
326processes them. When queued interrupts are to be served, is determined by the
327'IntsPerSec' parameter, which is explained later below.
328
329Possible modes:
330
331 -- None - No interrupt moderation is applied on the adapter card.
332 Therefore, each transmit or receive interrupt is served immediately
333 as soon as it appears on the interrupt line of the adapter card.
334
335 -- Static - Interrupt moderation is applied on the adapter card.
336 All transmit and receive interrupts are queued until a complete
337 moderation interval ends. If such a moderation interval ends, all
338 queued interrupts are processed in one big bunch without any delay.
339 The term 'static' reflects the fact, that interrupt moderation is
340 always enabled, regardless how much network load is currently
341 passing via a particular interface. In addition, the duration of
342 the moderation interval has a fixed length that never changes while
343 the driver is operational.
344
345 -- Dynamic - Interrupt moderation might be applied on the adapter card,
346 depending on the load of the system. If the driver detects that the
347 system load is too high, the driver tries to shield the system against
348 too much network load by enabling interrupt moderation. If - at a later
349 time - the CPU utilization decreases again (or if the network load is
350 negligible) the interrupt moderation will automatically be disabled.
351
352Interrupt moderation should be used when the driver has to handle one or more
353interfaces with a high network load, which - as a consequence - leads also to a
354high CPU utilization. When moderation is applied in such high network load
355situations, CPU load might be reduced by 20-30%.
356
357NOTE: The drawback of using interrupt moderation is an increase of the round-
358trip-time (RTT), due to the queueing and serving of interrupts at dedicated
359moderation times.
360
361Interrupts per second
362---------------------
363Parameter: IntsPerSec
364Values: 30...40000 (interrupts per second)
365Default: 2000
366
367This parameter is only used if either static or dynamic interrupt moderation
368is used on a network adapter card. Using this parameter if no moderation is
369applied will lead to no action performed.
370
371This parameter determines the length of any interrupt moderation interval.
372Assuming that static interrupt moderation is to be used, an 'IntsPerSec'
373parameter value of 2000 will lead to an interrupt moderation interval of
374500 microseconds.
375
376NOTE: The duration of the moderation interval is to be chosen with care.
377At first glance, selecting a very long duration (e.g. only 100 interrupts per
378second) seems to be meaningful, but the increase of packet-processing delay
379is tremendous. On the other hand, selecting a very short moderation time might
380compensate the use of any moderation being applied.
381
382
383Preferred Port
384--------------
385Parameter: PrefPort
386Values: A, B
387Default: A
388
389This is used to force the preferred port to A or B (on dual-port network
390adapters). The preferred port is the one that is used if both are detected
391as fully functional.
392
393RLMT Mode (Redundant Link Management Technology)
394------------------------------------------------
395Parameter: RlmtMode
396Values: CheckLinkState,CheckLocalPort, CheckSeg, DualNet
397Default: CheckLinkState
398
399RLMT monitors the status of the port. If the link of the active port
400fails, RLMT switches immediately to the standby link. The virtual link is
401maintained as long as at least one 'physical' link is up.
402
403Possible modes:
404
405 -- CheckLinkState - Check link state only: RLMT uses the link state
406 reported by the adapter hardware for each individual port to
407 determine whether a port can be used for all network traffic or
408 not.
409
410 -- CheckLocalPort - In this mode, RLMT monitors the network path
411 between the two ports of an adapter by regularly exchanging packets
412 between them. This mode requires a network configuration in which
413 the two ports are able to "see" each other (i.e. there must not be
414 any router between the ports).
415
416 -- CheckSeg - Check local port and segmentation: This mode supports the
417 same functions as the CheckLocalPort mode and additionally checks
418 network segmentation between the ports. Therefore, this mode is only
419 to be used if Gigabit Ethernet switches are installed on the network
420 that have been configured to use the Spanning Tree protocol.
421
422 -- DualNet - In this mode, ports A and B are used as separate devices.
423 If you have a dual port adapter, port A will be configured as eth0
424 and port B as eth1. Both ports can be used independently with
425 distinct IP addresses. The preferred port setting is not used.
426 RLMT is turned off.
427
428NOTE: RLMT modes CLP and CLPSS are designed to operate in configurations
429 where a network path between the ports on one adapter exists.
430 Moreover, they are not designed to work where adapters are connected
431 back-to-back.
432***
433
434
4355 Large Frame Support
436======================
437
438The driver supports large frames (also called jumbo frames). Using large
439frames can result in an improved throughput if transferring large amounts
440of data.
441To enable large frames, set the MTU (maximum transfer unit) of the
442interface to the desired value (up to 9000), execute the following
443command:
444 ifconfig eth0 mtu 9000
445This will only work if you have two adapters connected back-to-back
446or if you use a switch that supports large frames. When using a switch,
447it should be configured to allow large frames and auto-negotiation should
448be set to OFF. The setting must be configured on all adapters that can be
449reached by the large frames. If one adapter is not set to receive large
450frames, it will simply drop them.
451
452You can switch back to the standard ethernet frame size by executing the
453following command:
454 ifconfig eth0 mtu 1500
455
456To permanently configure this setting, add a script with the 'ifconfig'
457line to the system startup sequence (named something like "S99sk98lin"
458in /etc/rc.d/rc2.d).
459***
460
461
4626 VLAN and Link Aggregation Support (IEEE 802.1, 802.1q, 802.3ad)
463==================================================================
464
465The Marvell Yukon/SysKonnect Linux drivers are able to support VLAN and
466Link Aggregation according to IEEE standards 802.1, 802.1q, and 802.3ad.
467These features are only available after installation of open source
468modules available on the Internet:
469For VLAN go to: http://www.candelatech.com/~greear/vlan.html
470For Link Aggregation go to: http://www.st.rim.or.jp/~yumo
471
472NOTE: SysKonnect GmbH does not offer any support for these open source
473 modules and does not take the responsibility for any kind of
474 failures or problems arising in connection with these modules.
475
476NOTE: Configuring Link Aggregation on a SysKonnect dual link adapter may
477 cause problems when unloading the driver.
478
479
4807 Troubleshooting
481==================
482
483If any problems occur during the installation process, check the
484following list:
485
486
487Problem: The SK-98xx adapter cannot be found by the driver.
488Solution: In /proc/pci search for the following entry:
489 'Ethernet controller: SysKonnect SK-98xx ...'
490 If this entry exists, the SK-98xx or SK-98xx V2.0 adapter has
491 been found by the system and should be operational.
492 If this entry does not exist or if the file '/proc/pci' is not
493 found, there may be a hardware problem or the PCI support may
494 not be enabled in your kernel.
495 The adapter can be checked using the diagnostics program which
496 is available on the SysKonnect web site:
497 www.syskonnect.com
498
499 Some COMPAQ machines have problems dealing with PCI under Linux.
500 This problem is described in the 'PCI howto' document
501 (included in some distributions or available from the
502 web, e.g. at 'www.linux.org').
503
504
505Problem: Programs such as 'ifconfig' or 'route' cannot be found or the
506 error message 'Operation not permitted' is displayed.
507Reason: You are not logged in as user 'root'.
508Solution: Logout and login as 'root' or change to 'root' via 'su'.
509
510
511Problem: Upon use of the command 'ping <address>' the message
512 "ping: sendto: Network is unreachable" is displayed.
513Reason: Your route is not set correctly.
514Solution: If you are using RedHat, you probably forgot to set up the
515 route in the 'network configuration'.
516 Check the existing routes with the 'route' command and check
517 if an entry for 'eth0' exists, and if so, if it is set correctly.
518
519
520Problem: The driver can be started, the adapter is connected to the
521 network, but you cannot receive or transmit any packets;
522 e.g. 'ping' does not work.
523Reason: There is an incorrect route in your routing table.
524Solution: Check the routing table with the command 'route' and read the
525 manual help pages dealing with routes (enter 'man route').
526
527NOTE: Although the 2.2.x kernel versions generate the routing entry
528 automatically, problems of this kind may occur here as well. We've
529 come across a situation in which the driver started correctly at
530 system start, but after the driver has been removed and reloaded,
531 the route of the adapter's network pointed to the 'dummy0'device
532 and had to be corrected manually.
533
534
535Problem: Your computer should act as a router between multiple
536 IP subnetworks (using multiple adapters), but computers in
537 other subnetworks cannot be reached.
538Reason: Either the router's kernel is not configured for IP forwarding
539 or the routing table and gateway configuration of at least one
540 computer is not working.
541
542Problem: Upon driver start, the following error message is displayed:
543 "eth0: -- ERROR --
544 Class: internal Software error
545 Nr: 0xcc
546 Msg: SkGeInitPort() cannot init running ports"
547Reason: You are using a driver compiled for single processor machines
548 on a multiprocessor machine with SMP (Symmetric MultiProcessor)
549 kernel.
550Solution: Configure your kernel appropriately and recompile the kernel or
551 the modules.
552
553
554
555If your problem is not listed here, please contact SysKonnect's technical
556support for help (linux@syskonnect.de).
557When contacting our technical support, please ensure that the following
558information is available:
559- System Manufacturer and HW Informations (CPU, Memory... )
560- PCI-Boards in your system
561- Distribution
562- Kernel version
563- Driver version
564***
565
566
567
568***End of Readme File***
diff --git a/Documentation/thinkpad-acpi.txt b/Documentation/thinkpad-acpi.txt
index eb2f5986e1eb..60953d6c919d 100644
--- a/Documentation/thinkpad-acpi.txt
+++ b/Documentation/thinkpad-acpi.txt
@@ -1,7 +1,7 @@
1 ThinkPad ACPI Extras Driver 1 ThinkPad ACPI Extras Driver
2 2
3 Version 0.15 3 Version 0.16
4 July 1st, 2007 4 August 2nd, 2007
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>
@@ -161,20 +161,22 @@ system. Enabling the hotkey functionality of thinkpad-acpi signals the
161firmware that such a driver is present, and modifies how the ThinkPad 161firmware that such a driver is present, and modifies how the ThinkPad
162firmware will behave in many situations. 162firmware will behave in many situations.
163 163
164The driver enables the hot key feature automatically when loaded. The
165feature can later be disabled and enabled back at runtime. The driver
166will also restore the hot key feature to its previous state and mask
167when it is unloaded.
168
164When the hotkey feature is enabled and the hot key mask is set (see 169When the hotkey feature is enabled and the hot key mask is set (see
165below), the various hot keys either generate ACPI events in the 170below), the driver will report HKEY events in the following format:
166following format:
167 171
168 ibm/hotkey HKEY 00000080 0000xxxx 172 ibm/hotkey HKEY 00000080 0000xxxx
169 173
170or events over the input layer. The input layer support accepts the 174Some of these events refer to hot key presses, but not all.
171standard IOCTLs to remap the keycodes assigned to each hotkey.
172 175
173When the input device is open, the driver will suppress any ACPI hot key 176The driver will generate events over the input layer for hot keys and
174events that get translated into a meaningful input layer event, in order 177radio switches, and over the ACPI netlink layer for other events. The
175to avoid sending duplicate events to userspace. Hot keys that are 178input layer support accepts the standard IOCTLs to remap the keycodes
176mapped to KEY_RESERVED in the keymap are not translated, and will always 179assigned to each hot key.
177generate an ACPI ibm/hotkey HKEY event, and no input layer events.
178 180
179The hot key bit mask allows some control over which hot keys generate 181The hot key bit mask allows some control over which hot keys generate
180events. If a key is "masked" (bit set to 0 in the mask), the firmware 182events. If a key is "masked" (bit set to 0 in the mask), the firmware
@@ -256,6 +258,20 @@ sysfs notes:
256 disabled" postition, and 1 if the switch is in the 258 disabled" postition, and 1 if the switch is in the
257 "radios enabled" position. 259 "radios enabled" position.
258 260
261 hotkey_report_mode:
262 Returns the state of the procfs ACPI event report mode
263 filter for hot keys. If it is set to 1 (the default),
264 all hot key presses are reported both through the input
265 layer and also as ACPI events through procfs (but not
266 through netlink). If it is set to 2, hot key presses
267 are reported only through the input layer.
268
269 This attribute is read-only in kernels 2.6.23 or later,
270 and read-write on earlier kernels.
271
272 May return -EPERM (write access locked out by module
273 parameter) or -EACCES (read-only).
274
259input layer notes: 275input layer notes:
260 276
261A Hot key is mapped to a single input layer EV_KEY event, possibly 277A Hot key is mapped to a single input layer EV_KEY event, possibly
@@ -393,21 +409,63 @@ unknown by the driver if the ThinkPad firmware triggered these events on
393hot key press or release, but the firmware will do it for either one, not 409hot key press or release, but the firmware will do it for either one, not
394both. 410both.
395 411
396If a key is mapped to KEY_RESERVED, it generates no input events at all, 412If a key is mapped to KEY_RESERVED, it generates no input events at all.
397and it may generate a legacy thinkpad-acpi ACPI hotkey event.
398
399If a key is mapped to KEY_UNKNOWN, it generates an input event that 413If a key is mapped to KEY_UNKNOWN, it generates an input event that
400includes an scan code, and it may also generate a legacy thinkpad-acpi 414includes an scan code. If a key is mapped to anything else, it will
401ACPI hotkey event. 415generate input device EV_KEY events.
402
403If a key is mapped to anything else, it will only generate legacy
404thinkpad-acpi ACPI hotkey events if nobody has opened the input device.
405 416
406Non hot-key ACPI HKEY event map: 417Non hot-key ACPI HKEY event map:
4070x5001 Lid closed 4180x5001 Lid closed
4080x5002 Lid opened 4190x5002 Lid opened
4090x7000 Radio Switch may have changed state 4200x7000 Radio Switch may have changed state
410 421
422The above events are not propagated by the driver, except for legacy
423compatibility purposes when hotkey_report_mode is set to 1.
424
425Compatibility notes:
426
427ibm-acpi and thinkpad-acpi 0.15 (mainline kernels before 2.6.23) never
428supported the input layer, and sent events over the procfs ACPI event
429interface.
430
431To avoid sending duplicate events over the input layer and the ACPI
432event interface, thinkpad-acpi 0.16 implements a module parameter
433(hotkey_report_mode), and also a sysfs device attribute with the same
434name.
435
436Make no mistake here: userspace is expected to switch to using the input
437layer interface of thinkpad-acpi, together with the ACPI netlink event
438interface in kernels 2.6.23 and later, or with the ACPI procfs event
439interface in kernels 2.6.22 and earlier.
440
441If no hotkey_report_mode module parameter is specified (or it is set to
442zero), the driver defaults to mode 1 (see below), and on kernels 2.6.22
443and earlier, also allows one to change the hotkey_report_mode through
444sysfs. In kernels 2.6.23 and later, where the netlink ACPI event
445interface is available, hotkey_report_mode cannot be changed through
446sysfs (it is read-only).
447
448If the hotkey_report_mode module parameter is set to 1 or 2, it cannot
449be changed later through sysfs (any writes will return -EPERM to signal
450that hotkey_report_mode was locked. On 2.6.23 and later, where
451hotkey_report_mode cannot be changed at all, writes will return -EACES).
452
453hotkey_report_mode set to 1 makes the driver export through the procfs
454ACPI event interface all hot key presses (which are *also* sent to the
455input layer). This is a legacy compatibility behaviour, and it is also
456the default mode of operation for the driver.
457
458hotkey_report_mode set to 2 makes the driver filter out the hot key
459presses from the procfs ACPI event interface, so these events will only
460be sent through the input layer. Userspace that has been updated to use
461the thinkpad-acpi input layer interface should set hotkey_report_mode to
4622.
463
464Hot key press events are never sent to the ACPI netlink event interface.
465Really up-to-date userspace under kernel 2.6.23 and later is to use the
466netlink interface and the input layer interface, and don't bother at all
467with hotkey_report_mode.
468
411 469
412Bluetooth 470Bluetooth
413--------- 471---------
diff --git a/Documentation/video4linux/cx2341x/fw-encoder-api.txt b/Documentation/video4linux/cx2341x/fw-encoder-api.txt
index 5dd3109a8b3f..5a27af2ee1c6 100644
--- a/Documentation/video4linux/cx2341x/fw-encoder-api.txt
+++ b/Documentation/video4linux/cx2341x/fw-encoder-api.txt
@@ -407,8 +407,10 @@ Description
407 u32 length; // Length of this frame 407 u32 length; // Length of this frame
408 u32 offset_low; // Offset in the file of the 408 u32 offset_low; // Offset in the file of the
409 u32 offset_high; // start of this frame 409 u32 offset_high; // start of this frame
410 u32 mask1; // Bits 0-1 are the type mask: 410 u32 mask1; // Bits 0-2 are the type mask:
411 // 1=I, 2=P, 4=B 411 // 1=I, 2=P, 4=B
412 // 0=End of Program Index, other fields
413 // are invalid.
412 u32 pts; // The PTS of the frame 414 u32 pts; // The PTS of the frame
413 u32 mask2; // Bit 0 is bit 32 of the pts. 415 u32 mask2; // Bit 0 is bit 32 of the pts.
414 }; 416 };