diff options
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/filesystems/proc.txt | 1 | ||||
-rw-r--r-- | Documentation/networking/README.ipw2100 | 246 | ||||
-rw-r--r-- | Documentation/networking/README.ipw2200 | 300 | ||||
-rw-r--r-- | Documentation/power/swsusp-dmcrypt.txt | 138 | ||||
-rw-r--r-- | Documentation/power/swsusp.txt | 7 | ||||
-rw-r--r-- | Documentation/power/video.txt | 9 | ||||
-rw-r--r-- | Documentation/serial/driver | 15 | ||||
-rw-r--r-- | Documentation/vm/locking | 15 | ||||
-rw-r--r-- | Documentation/watchdog/watchdog-api.txt | 20 |
9 files changed, 731 insertions, 20 deletions
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt index 6c98f2bd421e..5024ba7a592c 100644 --- a/Documentation/filesystems/proc.txt +++ b/Documentation/filesystems/proc.txt | |||
@@ -133,6 +133,7 @@ Table 1-1: Process specific entries in /proc | |||
133 | statm Process memory status information | 133 | statm Process memory status information |
134 | status Process status in human readable form | 134 | status Process status in human readable form |
135 | wchan If CONFIG_KALLSYMS is set, a pre-decoded wchan | 135 | wchan If CONFIG_KALLSYMS is set, a pre-decoded wchan |
136 | smaps Extension based on maps, presenting the rss size for each mapped file | ||
136 | .............................................................................. | 137 | .............................................................................. |
137 | 138 | ||
138 | For example, to get the status information of a process, all you have to do is | 139 | For example, to get the status information of a process, all you have to do is |
diff --git a/Documentation/networking/README.ipw2100 b/Documentation/networking/README.ipw2100 new file mode 100644 index 000000000000..2046948b020d --- /dev/null +++ b/Documentation/networking/README.ipw2100 | |||
@@ -0,0 +1,246 @@ | |||
1 | |||
2 | =========================== | ||
3 | Intel(R) PRO/Wireless 2100 Network Connection Driver for Linux | ||
4 | README.ipw2100 | ||
5 | |||
6 | March 14, 2005 | ||
7 | |||
8 | =========================== | ||
9 | Index | ||
10 | --------------------------- | ||
11 | 0. Introduction | ||
12 | 1. Release 1.1.0 Current Features | ||
13 | 2. Command Line Parameters | ||
14 | 3. Sysfs Helper Files | ||
15 | 4. Radio Kill Switch | ||
16 | 5. Dynamic Firmware | ||
17 | 6. Power Management | ||
18 | 7. Support | ||
19 | 8. License | ||
20 | |||
21 | |||
22 | =========================== | ||
23 | 0. Introduction | ||
24 | ------------ ----- ----- ---- --- -- - | ||
25 | |||
26 | This document provides a brief overview of the features supported by the | ||
27 | IPW2100 driver project. The main project website, where the latest | ||
28 | development version of the driver can be found, is: | ||
29 | |||
30 | http://ipw2100.sourceforge.net | ||
31 | |||
32 | There you can find the not only the latest releases, but also information about | ||
33 | potential fixes and patches, as well as links to the development mailing list | ||
34 | for the driver project. | ||
35 | |||
36 | |||
37 | =========================== | ||
38 | 1. Release 1.1.0 Current Supported Features | ||
39 | --------------------------- | ||
40 | - Managed (BSS) and Ad-Hoc (IBSS) | ||
41 | - WEP (shared key and open) | ||
42 | - Wireless Tools support | ||
43 | - 802.1x (tested with XSupplicant 1.0.1) | ||
44 | |||
45 | Enabled (but not supported) features: | ||
46 | - Monitor/RFMon mode | ||
47 | - WPA/WPA2 | ||
48 | |||
49 | The distinction between officially supported and enabled is a reflection | ||
50 | on the amount of validation and interoperability testing that has been | ||
51 | performed on a given feature. | ||
52 | |||
53 | |||
54 | =========================== | ||
55 | 2. Command Line Parameters | ||
56 | --------------------------- | ||
57 | |||
58 | If the driver is built as a module, the following optional parameters are used | ||
59 | by entering them on the command line with the modprobe command using this | ||
60 | syntax: | ||
61 | |||
62 | modprobe ipw2100 [<option>=<VAL1><,VAL2>...] | ||
63 | |||
64 | For example, to disable the radio on driver loading, enter: | ||
65 | |||
66 | modprobe ipw2100 disable=1 | ||
67 | |||
68 | The ipw2100 driver supports the following module parameters: | ||
69 | |||
70 | Name Value Example: | ||
71 | debug 0x0-0xffffffff debug=1024 | ||
72 | mode 0,1,2 mode=1 /* AdHoc */ | ||
73 | channel int channel=3 /* Only valid in AdHoc or Monitor */ | ||
74 | associate boolean associate=0 /* Do NOT auto associate */ | ||
75 | disable boolean disable=1 /* Do not power the HW */ | ||
76 | |||
77 | |||
78 | =========================== | ||
79 | 3. Sysfs Helper Files | ||
80 | --------------------------- | ||
81 | |||
82 | There are several ways to control the behavior of the driver. Many of the | ||
83 | general capabilities are exposed through the Wireless Tools (iwconfig). There | ||
84 | are a few capabilities that are exposed through entries in the Linux Sysfs. | ||
85 | |||
86 | |||
87 | ----- Driver Level ------ | ||
88 | For the driver level files, look in /sys/bus/pci/drivers/ipw2100/ | ||
89 | |||
90 | debug_level | ||
91 | |||
92 | This controls the same global as the 'debug' module parameter. For | ||
93 | information on the various debugging levels available, run the 'dvals' | ||
94 | script found in the driver source directory. | ||
95 | |||
96 | NOTE: 'debug_level' is only enabled if CONFIG_IPW2100_DEBUG is turn | ||
97 | on. | ||
98 | |||
99 | ----- Device Level ------ | ||
100 | For the device level files look in | ||
101 | |||
102 | /sys/bus/pci/drivers/ipw2100/{PCI-ID}/ | ||
103 | |||
104 | For example: | ||
105 | /sys/bus/pci/drivers/ipw2100/0000:02:01.0 | ||
106 | |||
107 | For the device level files, see /sys/bus/pci/drivers/ipw2100: | ||
108 | |||
109 | rf_kill | ||
110 | read - | ||
111 | 0 = RF kill not enabled (radio on) | ||
112 | 1 = SW based RF kill active (radio off) | ||
113 | 2 = HW based RF kill active (radio off) | ||
114 | 3 = Both HW and SW RF kill active (radio off) | ||
115 | write - | ||
116 | 0 = If SW based RF kill active, turn the radio back on | ||
117 | 1 = If radio is on, activate SW based RF kill | ||
118 | |||
119 | NOTE: If you enable the SW based RF kill and then toggle the HW | ||
120 | based RF kill from ON -> OFF -> ON, the radio will NOT come back on | ||
121 | |||
122 | |||
123 | =========================== | ||
124 | 4. Radio Kill Switch | ||
125 | --------------------------- | ||
126 | Most laptops provide the ability for the user to physically disable the radio. | ||
127 | Some vendors have implemented this as a physical switch that requires no | ||
128 | software to turn the radio off and on. On other laptops, however, the switch | ||
129 | is controlled through a button being pressed and a software driver then making | ||
130 | calls to turn the radio off and on. This is referred to as a "software based | ||
131 | RF kill switch" | ||
132 | |||
133 | See the Sysfs helper file 'rf_kill' for determining the state of the RF switch | ||
134 | on your system. | ||
135 | |||
136 | |||
137 | =========================== | ||
138 | 5. Dynamic Firmware | ||
139 | --------------------------- | ||
140 | As the firmware is licensed under a restricted use license, it can not be | ||
141 | included within the kernel sources. To enable the IPW2100 you will need a | ||
142 | firmware image to load into the wireless NIC's processors. | ||
143 | |||
144 | You can obtain these images from <http://ipw2100.sf.net/firmware.php>. | ||
145 | |||
146 | See INSTALL for instructions on installing the firmware. | ||
147 | |||
148 | |||
149 | =========================== | ||
150 | 6. Power Management | ||
151 | --------------------------- | ||
152 | The IPW2100 supports the configuration of the Power Save Protocol | ||
153 | through a private wireless extension interface. The IPW2100 supports | ||
154 | the following different modes: | ||
155 | |||
156 | off No power management. Radio is always on. | ||
157 | on Automatic power management | ||
158 | 1-5 Different levels of power management. The higher the | ||
159 | number the greater the power savings, but with an impact to | ||
160 | packet latencies. | ||
161 | |||
162 | Power management works by powering down the radio after a certain | ||
163 | interval of time has passed where no packets are passed through the | ||
164 | radio. Once powered down, the radio remains in that state for a given | ||
165 | period of time. For higher power savings, the interval between last | ||
166 | packet processed to sleep is shorter and the sleep period is longer. | ||
167 | |||
168 | When the radio is asleep, the access point sending data to the station | ||
169 | must buffer packets at the AP until the station wakes up and requests | ||
170 | any buffered packets. If you have an AP that does not correctly support | ||
171 | the PSP protocol you may experience packet loss or very poor performance | ||
172 | while power management is enabled. If this is the case, you will need | ||
173 | to try and find a firmware update for your AP, or disable power | ||
174 | management (via `iwconfig eth1 power off`) | ||
175 | |||
176 | To configure the power level on the IPW2100 you use a combination of | ||
177 | iwconfig and iwpriv. iwconfig is used to turn power management on, off, | ||
178 | and set it to auto. | ||
179 | |||
180 | iwconfig eth1 power off Disables radio power down | ||
181 | iwconfig eth1 power on Enables radio power management to | ||
182 | last set level (defaults to AUTO) | ||
183 | iwpriv eth1 set_power 0 Sets power level to AUTO and enables | ||
184 | power management if not previously | ||
185 | enabled. | ||
186 | iwpriv eth1 set_power 1-5 Set the power level as specified, | ||
187 | enabling power management if not | ||
188 | previously enabled. | ||
189 | |||
190 | You can view the current power level setting via: | ||
191 | |||
192 | iwpriv eth1 get_power | ||
193 | |||
194 | It will return the current period or timeout that is configured as a string | ||
195 | in the form of xxxx/yyyy (z) where xxxx is the timeout interval (amount of | ||
196 | time after packet processing), yyyy is the period to sleep (amount of time to | ||
197 | wait before powering the radio and querying the access point for buffered | ||
198 | packets), and z is the 'power level'. If power management is turned off the | ||
199 | xxxx/yyyy will be replaced with 'off' -- the level reported will be the active | ||
200 | level if `iwconfig eth1 power on` is invoked. | ||
201 | |||
202 | |||
203 | =========================== | ||
204 | 7. Support | ||
205 | --------------------------- | ||
206 | |||
207 | For general development information and support, | ||
208 | go to: | ||
209 | |||
210 | http://ipw2100.sf.net/ | ||
211 | |||
212 | The ipw2100 1.1.0 driver and firmware can be downloaded from: | ||
213 | |||
214 | http://support.intel.com | ||
215 | |||
216 | For installation support on the ipw2100 1.1.0 driver on Linux kernels | ||
217 | 2.6.8 or greater, email support is available from: | ||
218 | |||
219 | http://supportmail.intel.com | ||
220 | |||
221 | =========================== | ||
222 | 8. License | ||
223 | --------------------------- | ||
224 | |||
225 | Copyright(c) 2003 - 2005 Intel Corporation. All rights reserved. | ||
226 | |||
227 | This program is free software; you can redistribute it and/or modify it | ||
228 | under the terms of the GNU General Public License (version 2) as | ||
229 | published by the Free Software Foundation. | ||
230 | |||
231 | This program is distributed in the hope that it will be useful, but WITHOUT | ||
232 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
233 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | ||
234 | more details. | ||
235 | |||
236 | You should have received a copy of the GNU General Public License along with | ||
237 | this program; if not, write to the Free Software Foundation, Inc., 59 | ||
238 | Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||
239 | |||
240 | The full GNU General Public License is included in this distribution in the | ||
241 | file called LICENSE. | ||
242 | |||
243 | License Contact Information: | ||
244 | James P. Ketrenos <ipw2100-admin@linux.intel.com> | ||
245 | Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 | ||
246 | |||
diff --git a/Documentation/networking/README.ipw2200 b/Documentation/networking/README.ipw2200 new file mode 100644 index 000000000000..6916080c5f03 --- /dev/null +++ b/Documentation/networking/README.ipw2200 | |||
@@ -0,0 +1,300 @@ | |||
1 | |||
2 | Intel(R) PRO/Wireless 2915ABG Driver for Linux in support of: | ||
3 | |||
4 | Intel(R) PRO/Wireless 2200BG Network Connection | ||
5 | Intel(R) PRO/Wireless 2915ABG Network Connection | ||
6 | |||
7 | Note: The Intel(R) PRO/Wireless 2915ABG Driver for Linux and Intel(R) | ||
8 | PRO/Wireless 2200BG Driver for Linux is a unified driver that works on | ||
9 | both hardware adapters listed above. In this document the Intel(R) | ||
10 | PRO/Wireless 2915ABG Driver for Linux will be used to reference the | ||
11 | unified driver. | ||
12 | |||
13 | Copyright (C) 2004-2005, Intel Corporation | ||
14 | |||
15 | README.ipw2200 | ||
16 | |||
17 | Version: 1.0.0 | ||
18 | Date : January 31, 2005 | ||
19 | |||
20 | |||
21 | Index | ||
22 | ----------------------------------------------- | ||
23 | 1. Introduction | ||
24 | 1.1. Overview of features | ||
25 | 1.2. Module parameters | ||
26 | 1.3. Wireless Extension Private Methods | ||
27 | 1.4. Sysfs Helper Files | ||
28 | 2. About the Version Numbers | ||
29 | 3. Support | ||
30 | 4. License | ||
31 | |||
32 | |||
33 | 1. Introduction | ||
34 | ----------------------------------------------- | ||
35 | The following sections attempt to provide a brief introduction to using | ||
36 | the Intel(R) PRO/Wireless 2915ABG Driver for Linux. | ||
37 | |||
38 | This document is not meant to be a comprehensive manual on | ||
39 | understanding or using wireless technologies, but should be sufficient | ||
40 | to get you moving without wires on Linux. | ||
41 | |||
42 | For information on building and installing the driver, see the INSTALL | ||
43 | file. | ||
44 | |||
45 | |||
46 | 1.1. Overview of Features | ||
47 | ----------------------------------------------- | ||
48 | The current release (1.0.0) supports the following features: | ||
49 | |||
50 | + BSS mode (Infrastructure, Managed) | ||
51 | + IBSS mode (Ad-Hoc) | ||
52 | + WEP (OPEN and SHARED KEY mode) | ||
53 | + 802.1x EAP via wpa_supplicant and xsupplicant | ||
54 | + Wireless Extension support | ||
55 | + Full B and G rate support (2200 and 2915) | ||
56 | + Full A rate support (2915 only) | ||
57 | + Transmit power control | ||
58 | + S state support (ACPI suspend/resume) | ||
59 | + long/short preamble support | ||
60 | |||
61 | |||
62 | |||
63 | 1.2. Command Line Parameters | ||
64 | ----------------------------------------------- | ||
65 | |||
66 | Like many modules used in the Linux kernel, the Intel(R) PRO/Wireless | ||
67 | 2915ABG Driver for Linux allows certain configuration options to be | ||
68 | provided as module parameters. The most common way to specify a module | ||
69 | parameter is via the command line. | ||
70 | |||
71 | The general form is: | ||
72 | |||
73 | % modprobe ipw2200 parameter=value | ||
74 | |||
75 | Where the supported parameter are: | ||
76 | |||
77 | associate | ||
78 | Set to 0 to disable the auto scan-and-associate functionality of the | ||
79 | driver. If disabled, the driver will not attempt to scan | ||
80 | for and associate to a network until it has been configured with | ||
81 | one or more properties for the target network, for example configuring | ||
82 | the network SSID. Default is 1 (auto-associate) | ||
83 | |||
84 | Example: % modprobe ipw2200 associate=0 | ||
85 | |||
86 | auto_create | ||
87 | Set to 0 to disable the auto creation of an Ad-Hoc network | ||
88 | matching the channel and network name parameters provided. | ||
89 | Default is 1. | ||
90 | |||
91 | channel | ||
92 | channel number for association. The normal method for setting | ||
93 | the channel would be to use the standard wireless tools | ||
94 | (i.e. `iwconfig eth1 channel 10`), but it is useful sometimes | ||
95 | to set this while debugging. Channel 0 means 'ANY' | ||
96 | |||
97 | debug | ||
98 | If using a debug build, this is used to control the amount of debug | ||
99 | info is logged. See the 'dval' and 'load' script for more info on | ||
100 | how to use this (the dval and load scripts are provided as part | ||
101 | of the ipw2200 development snapshot releases available from the | ||
102 | SourceForge project at http://ipw2200.sf.net) | ||
103 | |||
104 | mode | ||
105 | Can be used to set the default mode of the adapter. | ||
106 | 0 = Managed, 1 = Ad-Hoc | ||
107 | |||
108 | |||
109 | 1.3. Wireless Extension Private Methods | ||
110 | ----------------------------------------------- | ||
111 | |||
112 | As an interface designed to handle generic hardware, there are certain | ||
113 | capabilities not exposed through the normal Wireless Tool interface. As | ||
114 | such, a provision is provided for a driver to declare custom, or | ||
115 | private, methods. The Intel(R) PRO/Wireless 2915ABG Driver for Linux | ||
116 | defines several of these to configure various settings. | ||
117 | |||
118 | The general form of using the private wireless methods is: | ||
119 | |||
120 | % iwpriv $IFNAME method parameters | ||
121 | |||
122 | Where $IFNAME is the interface name the device is registered with | ||
123 | (typically eth1, customized via one of the various network interface | ||
124 | name managers, such as ifrename) | ||
125 | |||
126 | The supported private methods are: | ||
127 | |||
128 | get_mode | ||
129 | Can be used to report out which IEEE mode the driver is | ||
130 | configured to support. Example: | ||
131 | |||
132 | % iwpriv eth1 get_mode | ||
133 | eth1 get_mode:802.11bg (6) | ||
134 | |||
135 | set_mode | ||
136 | Can be used to configure which IEEE mode the driver will | ||
137 | support. | ||
138 | |||
139 | Usage: | ||
140 | % iwpriv eth1 set_mode {mode} | ||
141 | Where {mode} is a number in the range 1-7: | ||
142 | 1 802.11a (2915 only) | ||
143 | 2 802.11b | ||
144 | 3 802.11ab (2915 only) | ||
145 | 4 802.11g | ||
146 | 5 802.11ag (2915 only) | ||
147 | 6 802.11bg | ||
148 | 7 802.11abg (2915 only) | ||
149 | |||
150 | get_preamble | ||
151 | Can be used to report configuration of preamble length. | ||
152 | |||
153 | set_preamble | ||
154 | Can be used to set the configuration of preamble length: | ||
155 | |||
156 | Usage: | ||
157 | % iwpriv eth1 set_preamble {mode} | ||
158 | Where {mode} is one of: | ||
159 | 1 Long preamble only | ||
160 | 0 Auto (long or short based on connection) | ||
161 | |||
162 | |||
163 | 1.4. Sysfs Helper Files: | ||
164 | ----------------------------------------------- | ||
165 | |||
166 | The Linux kernel provides a pseudo file system that can be used to | ||
167 | access various components of the operating system. The Intel(R) | ||
168 | PRO/Wireless 2915ABG Driver for Linux exposes several configuration | ||
169 | parameters through this mechanism. | ||
170 | |||
171 | An entry in the sysfs can support reading and/or writing. You can | ||
172 | typically query the contents of a sysfs entry through the use of cat, | ||
173 | and can set the contents via echo. For example: | ||
174 | |||
175 | % cat /sys/bus/pci/drivers/ipw2200/debug_level | ||
176 | |||
177 | Will report the current debug level of the driver's logging subsystem | ||
178 | (only available if CONFIG_IPW_DEBUG was configured when the driver was | ||
179 | built). | ||
180 | |||
181 | You can set the debug level via: | ||
182 | |||
183 | % echo $VALUE > /sys/bus/pci/drivers/ipw2200/debug_level | ||
184 | |||
185 | Where $VALUE would be a number in the case of this sysfs entry. The | ||
186 | input to sysfs files does not have to be a number. For example, the | ||
187 | firmware loader used by hotplug utilizes sysfs entries for transferring | ||
188 | the firmware image from user space into the driver. | ||
189 | |||
190 | The Intel(R) PRO/Wireless 2915ABG Driver for Linux exposes sysfs entries | ||
191 | at two levels -- driver level, which apply to all instances of the | ||
192 | driver (in the event that there are more than one device installed) and | ||
193 | device level, which applies only to the single specific instance. | ||
194 | |||
195 | |||
196 | 1.4.1 Driver Level Sysfs Helper Files | ||
197 | ----------------------------------------------- | ||
198 | |||
199 | For the driver level files, look in /sys/bus/pci/drivers/ipw2200/ | ||
200 | |||
201 | debug_level | ||
202 | |||
203 | This controls the same global as the 'debug' module parameter | ||
204 | |||
205 | |||
206 | 1.4.2 Device Level Sysfs Helper Files | ||
207 | ----------------------------------------------- | ||
208 | |||
209 | For the device level files, look in | ||
210 | |||
211 | /sys/bus/pci/drivers/ipw2200/{PCI-ID}/ | ||
212 | |||
213 | For example: | ||
214 | /sys/bus/pci/drivers/ipw2200/0000:02:01.0 | ||
215 | |||
216 | For the device level files, see /sys/bus/pci/[drivers/ipw2200: | ||
217 | |||
218 | rf_kill | ||
219 | read - | ||
220 | 0 = RF kill not enabled (radio on) | ||
221 | 1 = SW based RF kill active (radio off) | ||
222 | 2 = HW based RF kill active (radio off) | ||
223 | 3 = Both HW and SW RF kill active (radio off) | ||
224 | write - | ||
225 | 0 = If SW based RF kill active, turn the radio back on | ||
226 | 1 = If radio is on, activate SW based RF kill | ||
227 | |||
228 | NOTE: If you enable the SW based RF kill and then toggle the HW | ||
229 | based RF kill from ON -> OFF -> ON, the radio will NOT come back on | ||
230 | |||
231 | ucode | ||
232 | read-only access to the ucode version number | ||
233 | |||
234 | |||
235 | 2. About the Version Numbers | ||
236 | ----------------------------------------------- | ||
237 | |||
238 | Due to the nature of open source development projects, there are | ||
239 | frequently changes being incorporated that have not gone through | ||
240 | a complete validation process. These changes are incorporated into | ||
241 | development snapshot releases. | ||
242 | |||
243 | Releases are numbered with a three level scheme: | ||
244 | |||
245 | major.minor.development | ||
246 | |||
247 | Any version where the 'development' portion is 0 (for example | ||
248 | 1.0.0, 1.1.0, etc.) indicates a stable version that will be made | ||
249 | available for kernel inclusion. | ||
250 | |||
251 | Any version where the 'development' portion is not a 0 (for | ||
252 | example 1.0.1, 1.1.5, etc.) indicates a development version that is | ||
253 | being made available for testing and cutting edge users. The stability | ||
254 | and functionality of the development releases are not know. We make | ||
255 | efforts to try and keep all snapshots reasonably stable, but due to the | ||
256 | frequency of their release, and the desire to get those releases | ||
257 | available as quickly as possible, unknown anomalies should be expected. | ||
258 | |||
259 | The major version number will be incremented when significant changes | ||
260 | are made to the driver. Currently, there are no major changes planned. | ||
261 | |||
262 | |||
263 | 3. Support | ||
264 | ----------------------------------------------- | ||
265 | |||
266 | For installation support of the 1.0.0 version, you can contact | ||
267 | http://supportmail.intel.com, or you can use the open source project | ||
268 | support. | ||
269 | |||
270 | For general information and support, go to: | ||
271 | |||
272 | http://ipw2200.sf.net/ | ||
273 | |||
274 | |||
275 | 4. License | ||
276 | ----------------------------------------------- | ||
277 | |||
278 | Copyright(c) 2003 - 2005 Intel Corporation. All rights reserved. | ||
279 | |||
280 | This program is free software; you can redistribute it and/or modify it | ||
281 | under the terms of the GNU General Public License version 2 as | ||
282 | published by the Free Software Foundation. | ||
283 | |||
284 | This program is distributed in the hope that it will be useful, but WITHOUT | ||
285 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
286 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | ||
287 | more details. | ||
288 | |||
289 | You should have received a copy of the GNU General Public License along with | ||
290 | this program; if not, write to the Free Software Foundation, Inc., 59 | ||
291 | Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||
292 | |||
293 | The full GNU General Public License is included in this distribution in the | ||
294 | file called LICENSE. | ||
295 | |||
296 | Contact Information: | ||
297 | James P. Ketrenos <ipw2100-admin@linux.intel.com> | ||
298 | Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 | ||
299 | |||
300 | |||
diff --git a/Documentation/power/swsusp-dmcrypt.txt b/Documentation/power/swsusp-dmcrypt.txt new file mode 100644 index 000000000000..59931b46ff7e --- /dev/null +++ b/Documentation/power/swsusp-dmcrypt.txt | |||
@@ -0,0 +1,138 @@ | |||
1 | Author: Andreas Steinmetz <ast@domdv.de> | ||
2 | |||
3 | |||
4 | How to use dm-crypt and swsusp together: | ||
5 | ======================================== | ||
6 | |||
7 | Some prerequisites: | ||
8 | You know how dm-crypt works. If not, visit the following web page: | ||
9 | http://www.saout.de/misc/dm-crypt/ | ||
10 | You have read Documentation/power/swsusp.txt and understand it. | ||
11 | You did read Documentation/initrd.txt and know how an initrd works. | ||
12 | You know how to create or how to modify an initrd. | ||
13 | |||
14 | Now your system is properly set up, your disk is encrypted except for | ||
15 | the swap device(s) and the boot partition which may contain a mini | ||
16 | system for crypto setup and/or rescue purposes. You may even have | ||
17 | an initrd that does your current crypto setup already. | ||
18 | |||
19 | At this point you want to encrypt your swap, too. Still you want to | ||
20 | be able to suspend using swsusp. This, however, means that you | ||
21 | have to be able to either enter a passphrase or that you read | ||
22 | the key(s) from an external device like a pcmcia flash disk | ||
23 | or an usb stick prior to resume. So you need an initrd, that sets | ||
24 | up dm-crypt and then asks swsusp to resume from the encrypted | ||
25 | swap device. | ||
26 | |||
27 | The most important thing is that you set up dm-crypt in such | ||
28 | a way that the swap device you suspend to/resume from has | ||
29 | always the same major/minor within the initrd as well as | ||
30 | within your running system. The easiest way to achieve this is | ||
31 | to always set up this swap device first with dmsetup, so that | ||
32 | it will always look like the following: | ||
33 | |||
34 | brw------- 1 root root 254, 0 Jul 28 13:37 /dev/mapper/swap0 | ||
35 | |||
36 | Now set up your kernel to use /dev/mapper/swap0 as the default | ||
37 | resume partition, so your kernel .config contains: | ||
38 | |||
39 | CONFIG_PM_STD_PARTITION="/dev/mapper/swap0" | ||
40 | |||
41 | Prepare your boot loader to use the initrd you will create or | ||
42 | modify. For lilo the simplest setup looks like the following | ||
43 | lines: | ||
44 | |||
45 | image=/boot/vmlinuz | ||
46 | initrd=/boot/initrd.gz | ||
47 | label=linux | ||
48 | append="root=/dev/ram0 init=/linuxrc rw" | ||
49 | |||
50 | Finally you need to create or modify your initrd. Lets assume | ||
51 | you create an initrd that reads the required dm-crypt setup | ||
52 | from a pcmcia flash disk card. The card is formatted with an ext2 | ||
53 | fs which resides on /dev/hde1 when the card is inserted. The | ||
54 | card contains at least the encrypted swap setup in a file | ||
55 | named "swapkey". /etc/fstab of your initrd contains something | ||
56 | like the following: | ||
57 | |||
58 | /dev/hda1 /mnt ext3 ro 0 0 | ||
59 | none /proc proc defaults,noatime,nodiratime 0 0 | ||
60 | none /sys sysfs defaults,noatime,nodiratime 0 0 | ||
61 | |||
62 | /dev/hda1 contains an unencrypted mini system that sets up all | ||
63 | of your crypto devices, again by reading the setup from the | ||
64 | pcmcia flash disk. What follows now is a /linuxrc for your | ||
65 | initrd that allows you to resume from encrypted swap and that | ||
66 | continues boot with your mini system on /dev/hda1 if resume | ||
67 | does not happen: | ||
68 | |||
69 | #!/bin/sh | ||
70 | PATH=/sbin:/bin:/usr/sbin:/usr/bin | ||
71 | mount /proc | ||
72 | mount /sys | ||
73 | mapped=0 | ||
74 | noresume=`grep -c noresume /proc/cmdline` | ||
75 | if [ "$*" != "" ] | ||
76 | then | ||
77 | noresume=1 | ||
78 | fi | ||
79 | dmesg -n 1 | ||
80 | /sbin/cardmgr -q | ||
81 | for i in 1 2 3 4 5 6 7 8 9 0 | ||
82 | do | ||
83 | if [ -f /proc/ide/hde/media ] | ||
84 | then | ||
85 | usleep 500000 | ||
86 | mount -t ext2 -o ro /dev/hde1 /mnt | ||
87 | if [ -f /mnt/swapkey ] | ||
88 | then | ||
89 | dmsetup create swap0 /mnt/swapkey > /dev/null 2>&1 && mapped=1 | ||
90 | fi | ||
91 | umount /mnt | ||
92 | break | ||
93 | fi | ||
94 | usleep 500000 | ||
95 | done | ||
96 | killproc /sbin/cardmgr | ||
97 | dmesg -n 6 | ||
98 | if [ $mapped = 1 ] | ||
99 | then | ||
100 | if [ $noresume != 0 ] | ||
101 | then | ||
102 | mkswap /dev/mapper/swap0 > /dev/null 2>&1 | ||
103 | fi | ||
104 | echo 254:0 > /sys/power/resume | ||
105 | dmsetup remove swap0 | ||
106 | fi | ||
107 | umount /sys | ||
108 | mount /mnt | ||
109 | umount /proc | ||
110 | cd /mnt | ||
111 | pivot_root . mnt | ||
112 | mount /proc | ||
113 | umount -l /mnt | ||
114 | umount /proc | ||
115 | exec chroot . /sbin/init $* < dev/console > dev/console 2>&1 | ||
116 | |||
117 | Please don't mind the weird loop above, busybox's msh doesn't know | ||
118 | the let statement. Now, what is happening in the script? | ||
119 | First we have to decide if we want to try to resume, or not. | ||
120 | We will not resume if booting with "noresume" or any parameters | ||
121 | for init like "single" or "emergency" as boot parameters. | ||
122 | |||
123 | Then we need to set up dmcrypt with the setup data from the | ||
124 | pcmcia flash disk. If this succeeds we need to reset the swap | ||
125 | device if we don't want to resume. The line "echo 254:0 > /sys/power/resume" | ||
126 | then attempts to resume from the first device mapper device. | ||
127 | Note that it is important to set the device in /sys/power/resume, | ||
128 | regardless if resuming or not, otherwise later suspend will fail. | ||
129 | If resume starts, script execution terminates here. | ||
130 | |||
131 | Otherwise we just remove the encrypted swap device and leave it to the | ||
132 | mini system on /dev/hda1 to set the whole crypto up (it is up to | ||
133 | you to modify this to your taste). | ||
134 | |||
135 | What then follows is the well known process to change the root | ||
136 | file system and continue booting from there. I prefer to unmount | ||
137 | the initrd prior to continue booting but it is up to you to modify | ||
138 | this. | ||
diff --git a/Documentation/power/swsusp.txt b/Documentation/power/swsusp.txt index 7a6b78966459..ddf907fbcc05 100644 --- a/Documentation/power/swsusp.txt +++ b/Documentation/power/swsusp.txt | |||
@@ -311,3 +311,10 @@ As a rule of thumb use encrypted swap to protect your data while your | |||
311 | system is shut down or suspended. Additionally use the encrypted | 311 | system is shut down or suspended. Additionally use the encrypted |
312 | suspend image to prevent sensitive data from being stolen after | 312 | suspend image to prevent sensitive data from being stolen after |
313 | resume. | 313 | resume. |
314 | |||
315 | Q: Why we cannot suspend to a swap file? | ||
316 | |||
317 | A: Because accessing swap file needs the filesystem mounted, and | ||
318 | filesystem might do something wrong (like replaying the journal) | ||
319 | during mount. [Probably could be solved by modifying every filesystem | ||
320 | to support some kind of "really read-only!" option. Patches welcome.] | ||
diff --git a/Documentation/power/video.txt b/Documentation/power/video.txt index 7a4a5036d123..1a44e8acb54c 100644 --- a/Documentation/power/video.txt +++ b/Documentation/power/video.txt | |||
@@ -46,6 +46,12 @@ There are a few types of systems where video works after S3 resume: | |||
46 | POSTing bios works. Ole Rohne has patch to do just that at | 46 | POSTing bios works. Ole Rohne has patch to do just that at |
47 | http://dev.gentoo.org/~marineam/patch-radeonfb-2.6.11-rc2-mm2. | 47 | http://dev.gentoo.org/~marineam/patch-radeonfb-2.6.11-rc2-mm2. |
48 | 48 | ||
49 | (8) on some systems, you can use the video_post utility mentioned here: | ||
50 | http://bugzilla.kernel.org/show_bug.cgi?id=3670. Do echo 3 > /sys/power/state | ||
51 | && /usr/sbin/video_post - which will initialize the display in console mode. | ||
52 | If you are in X, you can switch to a virtual terminal and back to X using | ||
53 | CTRL+ALT+F1 - CTRL+ALT+F7 to get the display working in graphical mode again. | ||
54 | |||
49 | Now, if you pass acpi_sleep=something, and it does not work with your | 55 | Now, if you pass acpi_sleep=something, and it does not work with your |
50 | bios, you'll get a hard crash during resume. Be careful. Also it is | 56 | bios, you'll get a hard crash during resume. Be careful. Also it is |
51 | safest to do your experiments with plain old VGA console. The vesafb | 57 | safest to do your experiments with plain old VGA console. The vesafb |
@@ -64,7 +70,8 @@ Model hack (or "how to do it") | |||
64 | ------------------------------------------------------------------------------ | 70 | ------------------------------------------------------------------------------ |
65 | Acer Aspire 1406LC ole's late BIOS init (7), turn off DRI | 71 | Acer Aspire 1406LC ole's late BIOS init (7), turn off DRI |
66 | Acer TM 242FX vbetool (6) | 72 | Acer TM 242FX vbetool (6) |
67 | Acer TM C300 vga=normal (only suspend on console, not in X), vbetool (6) | 73 | Acer TM C110 video_post (8) |
74 | Acer TM C300 vga=normal (only suspend on console, not in X), vbetool (6) or video_post (8) | ||
68 | Acer TM 4052LCi s3_bios (2) | 75 | Acer TM 4052LCi s3_bios (2) |
69 | Acer TM 636Lci s3_bios vga=normal (2) | 76 | Acer TM 636Lci s3_bios vga=normal (2) |
70 | Acer TM 650 (Radeon M7) vga=normal plus boot-radeon (5) gets text console back | 77 | Acer TM 650 (Radeon M7) vga=normal plus boot-radeon (5) gets text console back |
diff --git a/Documentation/serial/driver b/Documentation/serial/driver index ac7eabbf662a..87856d3cfb67 100644 --- a/Documentation/serial/driver +++ b/Documentation/serial/driver | |||
@@ -111,24 +111,17 @@ hardware. | |||
111 | Interrupts: locally disabled. | 111 | Interrupts: locally disabled. |
112 | This call must not sleep | 112 | This call must not sleep |
113 | 113 | ||
114 | stop_tx(port,tty_stop) | 114 | stop_tx(port) |
115 | Stop transmitting characters. This might be due to the CTS | 115 | Stop transmitting characters. This might be due to the CTS |
116 | line becoming inactive or the tty layer indicating we want | 116 | line becoming inactive or the tty layer indicating we want |
117 | to stop transmission. | 117 | to stop transmission due to an XOFF character. |
118 | |||
119 | tty_stop: 1 if this call is due to the TTY layer issuing a | ||
120 | TTY stop to the driver (equiv to rs_stop). | ||
121 | 118 | ||
122 | Locking: port->lock taken. | 119 | Locking: port->lock taken. |
123 | Interrupts: locally disabled. | 120 | Interrupts: locally disabled. |
124 | This call must not sleep | 121 | This call must not sleep |
125 | 122 | ||
126 | start_tx(port,tty_start) | 123 | start_tx(port) |
127 | start transmitting characters. (incidentally, nonempty will | 124 | start transmitting characters. |
128 | always be nonzero, and shouldn't be used - it will be dropped). | ||
129 | |||
130 | tty_start: 1 if this call was due to the TTY layer issuing | ||
131 | a TTY start to the driver (equiv to rs_start) | ||
132 | 125 | ||
133 | Locking: port->lock taken. | 126 | Locking: port->lock taken. |
134 | Interrupts: locally disabled. | 127 | Interrupts: locally disabled. |
diff --git a/Documentation/vm/locking b/Documentation/vm/locking index c3ef09ae3bb1..f366fa956179 100644 --- a/Documentation/vm/locking +++ b/Documentation/vm/locking | |||
@@ -83,19 +83,18 @@ single address space optimization, so that the zap_page_range (from | |||
83 | vmtruncate) does not lose sending ipi's to cloned threads that might | 83 | vmtruncate) does not lose sending ipi's to cloned threads that might |
84 | be spawned underneath it and go to user mode to drag in pte's into tlbs. | 84 | be spawned underneath it and go to user mode to drag in pte's into tlbs. |
85 | 85 | ||
86 | swap_list_lock/swap_device_lock | 86 | swap_lock |
87 | ------------------------------- | 87 | -------------- |
88 | The swap devices are chained in priority order from the "swap_list" header. | 88 | The swap devices are chained in priority order from the "swap_list" header. |
89 | The "swap_list" is used for the round-robin swaphandle allocation strategy. | 89 | The "swap_list" is used for the round-robin swaphandle allocation strategy. |
90 | The #free swaphandles is maintained in "nr_swap_pages". These two together | 90 | The #free swaphandles is maintained in "nr_swap_pages". These two together |
91 | are protected by the swap_list_lock. | 91 | are protected by the swap_lock. |
92 | 92 | ||
93 | The swap_device_lock, which is per swap device, protects the reference | 93 | The swap_lock also protects all the device reference counts on the |
94 | counts on the corresponding swaphandles, maintained in the "swap_map" | 94 | corresponding swaphandles, maintained in the "swap_map" array, and the |
95 | array, and the "highest_bit" and "lowest_bit" fields. | 95 | "highest_bit" and "lowest_bit" fields. |
96 | 96 | ||
97 | Both of these are spinlocks, and are never acquired from intr level. The | 97 | The swap_lock is a spinlock, and is never acquired from intr level. |
98 | locking hierarchy is swap_list_lock -> swap_device_lock. | ||
99 | 98 | ||
100 | To prevent races between swap space deletion or async readahead swapins | 99 | To prevent races between swap space deletion or async readahead swapins |
101 | deciding whether a swap handle is being used, ie worthy of being read in | 100 | deciding whether a swap handle is being used, ie worthy of being read in |
diff --git a/Documentation/watchdog/watchdog-api.txt b/Documentation/watchdog/watchdog-api.txt index 28388aa700c6..c5beb548cfc4 100644 --- a/Documentation/watchdog/watchdog-api.txt +++ b/Documentation/watchdog/watchdog-api.txt | |||
@@ -228,6 +228,26 @@ advantechwdt.c -- Advantech Single Board Computer | |||
228 | The GETSTATUS call returns if the device is open or not. | 228 | The GETSTATUS call returns if the device is open or not. |
229 | [FIXME -- silliness again?] | 229 | [FIXME -- silliness again?] |
230 | 230 | ||
231 | booke_wdt.c -- PowerPC BookE Watchdog Timer | ||
232 | |||
233 | Timeout default varies according to frequency, supports | ||
234 | SETTIMEOUT | ||
235 | |||
236 | Watchdog can not be turned off, CONFIG_WATCHDOG_NOWAYOUT | ||
237 | does not make sense | ||
238 | |||
239 | GETSUPPORT returns the watchdog_info struct, and | ||
240 | GETSTATUS returns the supported options. GETBOOTSTATUS | ||
241 | returns a 1 if the last reset was caused by the | ||
242 | watchdog and a 0 otherwise. This watchdog can not be | ||
243 | disabled once it has been started. The wdt_period kernel | ||
244 | parameter selects which bit of the time base changing | ||
245 | from 0->1 will trigger the watchdog exception. Changing | ||
246 | the timeout from the ioctl calls will change the | ||
247 | wdt_period as defined above. Finally if you would like to | ||
248 | replace the default Watchdog Handler you can implement the | ||
249 | WatchdogHandler() function in your own code. | ||
250 | |||
231 | eurotechwdt.c -- Eurotech CPU-1220/1410 | 251 | eurotechwdt.c -- Eurotech CPU-1220/1410 |
232 | 252 | ||
233 | The timeout can be set using the SETTIMEOUT ioctl and defaults | 253 | The timeout can be set using the SETTIMEOUT ioctl and defaults |