diff options
author | Len Brown <len.brown@intel.com> | 2005-09-03 02:44:09 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2005-09-03 02:44:09 -0400 |
commit | 129521dcc94f781890f8f668219ab79f0073ff9f (patch) | |
tree | 9f70707c88da65577f38814fe37b24c4b4957d64 /Documentation | |
parent | 824b558bbe2c298b165cdb54c33718994dda30bb (diff) | |
parent | f505380ba7b98ec97bf25300c2a58aeae903530b (diff) |
Merge linux-2.6 into linux-acpi-2.6 test
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/feature-removal-schedule.txt | 12 | ||||
-rw-r--r-- | Documentation/networking/README.ipw2100 | 246 | ||||
-rw-r--r-- | Documentation/networking/README.ipw2200 | 300 | ||||
-rw-r--r-- | Documentation/networking/cxgb.txt | 352 | ||||
-rw-r--r-- | Documentation/serial/driver | 15 | ||||
-rw-r--r-- | Documentation/sound/alsa/ALSA-Configuration.txt | 1 | ||||
-rw-r--r-- | Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl | 15 |
7 files changed, 926 insertions, 15 deletions
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt index 8b1430b46655..0665cb12bd66 100644 --- a/Documentation/feature-removal-schedule.txt +++ b/Documentation/feature-removal-schedule.txt | |||
@@ -135,3 +135,15 @@ Why: With the 16-bit PCMCIA subsystem now behaving (almost) like a | |||
135 | pcmciautils package available at | 135 | pcmciautils package available at |
136 | http://kernel.org/pub/linux/utils/kernel/pcmcia/ | 136 | http://kernel.org/pub/linux/utils/kernel/pcmcia/ |
137 | Who: Dominik Brodowski <linux@brodo.de> | 137 | Who: Dominik Brodowski <linux@brodo.de> |
138 | |||
139 | --------------------------- | ||
140 | |||
141 | What: ip_queue and ip6_queue (old ipv4-only and ipv6-only netfilter queue) | ||
142 | When: December 2005 | ||
143 | Why: This interface has been obsoleted by the new layer3-independent | ||
144 | "nfnetlink_queue". The Kernel interface is compatible, so the old | ||
145 | ip[6]tables "QUEUE" targets still work and will transparently handle | ||
146 | all packets into nfnetlink queue number 0. Userspace users will have | ||
147 | to link against API-compatible library on top of libnfnetlink_queue | ||
148 | instead of the current 'libipq'. | ||
149 | Who: Harald Welte <laforge@netfilter.org> | ||
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/networking/cxgb.txt b/Documentation/networking/cxgb.txt new file mode 100644 index 000000000000..76324638626b --- /dev/null +++ b/Documentation/networking/cxgb.txt | |||
@@ -0,0 +1,352 @@ | |||
1 | Chelsio N210 10Gb Ethernet Network Controller | ||
2 | |||
3 | Driver Release Notes for Linux | ||
4 | |||
5 | Version 2.1.1 | ||
6 | |||
7 | June 20, 2005 | ||
8 | |||
9 | CONTENTS | ||
10 | ======== | ||
11 | INTRODUCTION | ||
12 | FEATURES | ||
13 | PERFORMANCE | ||
14 | DRIVER MESSAGES | ||
15 | KNOWN ISSUES | ||
16 | SUPPORT | ||
17 | |||
18 | |||
19 | INTRODUCTION | ||
20 | ============ | ||
21 | |||
22 | This document describes the Linux driver for Chelsio 10Gb Ethernet Network | ||
23 | Controller. This driver supports the Chelsio N210 NIC and is backward | ||
24 | compatible with the Chelsio N110 model 10Gb NICs. | ||
25 | |||
26 | |||
27 | FEATURES | ||
28 | ======== | ||
29 | |||
30 | Adaptive Interrupts (adaptive-rx) | ||
31 | --------------------------------- | ||
32 | |||
33 | This feature provides an adaptive algorithm that adjusts the interrupt | ||
34 | coalescing parameters, allowing the driver to dynamically adapt the latency | ||
35 | settings to achieve the highest performance during various types of network | ||
36 | load. | ||
37 | |||
38 | The interface used to control this feature is ethtool. Please see the | ||
39 | ethtool manpage for additional usage information. | ||
40 | |||
41 | By default, adaptive-rx is disabled. | ||
42 | To enable adaptive-rx: | ||
43 | |||
44 | ethtool -C <interface> adaptive-rx on | ||
45 | |||
46 | To disable adaptive-rx, use ethtool: | ||
47 | |||
48 | ethtool -C <interface> adaptive-rx off | ||
49 | |||
50 | After disabling adaptive-rx, the timer latency value will be set to 50us. | ||
51 | You may set the timer latency after disabling adaptive-rx: | ||
52 | |||
53 | ethtool -C <interface> rx-usecs <microseconds> | ||
54 | |||
55 | An example to set the timer latency value to 100us on eth0: | ||
56 | |||
57 | ethtool -C eth0 rx-usecs 100 | ||
58 | |||
59 | You may also provide a timer latency value while disabling adpative-rx: | ||
60 | |||
61 | ethtool -C <interface> adaptive-rx off rx-usecs <microseconds> | ||
62 | |||
63 | If adaptive-rx is disabled and a timer latency value is specified, the timer | ||
64 | will be set to the specified value until changed by the user or until | ||
65 | adaptive-rx is enabled. | ||
66 | |||
67 | To view the status of the adaptive-rx and timer latency values: | ||
68 | |||
69 | ethtool -c <interface> | ||
70 | |||
71 | |||
72 | TCP Segmentation Offloading (TSO) Support | ||
73 | ----------------------------------------- | ||
74 | |||
75 | This feature, also known as "large send", enables a system's protocol stack | ||
76 | to offload portions of outbound TCP processing to a network interface card | ||
77 | thereby reducing system CPU utilization and enhancing performance. | ||
78 | |||
79 | The interface used to control this feature is ethtool version 1.8 or higher. | ||
80 | Please see the ethtool manpage for additional usage information. | ||
81 | |||
82 | By default, TSO is enabled. | ||
83 | To disable TSO: | ||
84 | |||
85 | ethtool -K <interface> tso off | ||
86 | |||
87 | To enable TSO: | ||
88 | |||
89 | ethtool -K <interface> tso on | ||
90 | |||
91 | To view the status of TSO: | ||
92 | |||
93 | ethtool -k <interface> | ||
94 | |||
95 | |||
96 | PERFORMANCE | ||
97 | =========== | ||
98 | |||
99 | The following information is provided as an example of how to change system | ||
100 | parameters for "performance tuning" an what value to use. You may or may not | ||
101 | want to change these system parameters, depending on your server/workstation | ||
102 | application. Doing so is not warranted in any way by Chelsio Communications, | ||
103 | and is done at "YOUR OWN RISK". Chelsio will not be held responsible for loss | ||
104 | of data or damage to equipment. | ||
105 | |||
106 | Your distribution may have a different way of doing things, or you may prefer | ||
107 | a different method. These commands are shown only to provide an example of | ||
108 | what to do and are by no means definitive. | ||
109 | |||
110 | Making any of the following system changes will only last until you reboot | ||
111 | your system. You may want to write a script that runs at boot-up which | ||
112 | includes the optimal settings for your system. | ||
113 | |||
114 | Setting PCI Latency Timer: | ||
115 | setpci -d 1425:* 0x0c.l=0x0000F800 | ||
116 | |||
117 | Disabling TCP timestamp: | ||
118 | sysctl -w net.ipv4.tcp_timestamps=0 | ||
119 | |||
120 | Disabling SACK: | ||
121 | sysctl -w net.ipv4.tcp_sack=0 | ||
122 | |||
123 | Setting large number of incoming connection requests: | ||
124 | sysctl -w net.ipv4.tcp_max_syn_backlog=3000 | ||
125 | |||
126 | Setting maximum receive socket buffer size: | ||
127 | sysctl -w net.core.rmem_max=1024000 | ||
128 | |||
129 | Setting maximum send socket buffer size: | ||
130 | sysctl -w net.core.wmem_max=1024000 | ||
131 | |||
132 | Set smp_affinity (on a multiprocessor system) to a single CPU: | ||
133 | echo 1 > /proc/irq/<interrupt_number>/smp_affinity | ||
134 | |||
135 | Setting default receive socket buffer size: | ||
136 | sysctl -w net.core.rmem_default=524287 | ||
137 | |||
138 | Setting default send socket buffer size: | ||
139 | sysctl -w net.core.wmem_default=524287 | ||
140 | |||
141 | Setting maximum option memory buffers: | ||
142 | sysctl -w net.core.optmem_max=524287 | ||
143 | |||
144 | Setting maximum backlog (# of unprocessed packets before kernel drops): | ||
145 | sysctl -w net.core.netdev_max_backlog=300000 | ||
146 | |||
147 | Setting TCP read buffers (min/default/max): | ||
148 | sysctl -w net.ipv4.tcp_rmem="10000000 10000000 10000000" | ||
149 | |||
150 | Setting TCP write buffers (min/pressure/max): | ||
151 | sysctl -w net.ipv4.tcp_wmem="10000000 10000000 10000000" | ||
152 | |||
153 | Setting TCP buffer space (min/pressure/max): | ||
154 | sysctl -w net.ipv4.tcp_mem="10000000 10000000 10000000" | ||
155 | |||
156 | TCP window size for single connections: | ||
157 | The receive buffer (RX_WINDOW) size must be at least as large as the | ||
158 | Bandwidth-Delay Product of the communication link between the sender and | ||
159 | receiver. Due to the variations of RTT, you may want to increase the buffer | ||
160 | size up to 2 times the Bandwidth-Delay Product. Reference page 289 of | ||
161 | "TCP/IP Illustrated, Volume 1, The Protocols" by W. Richard Stevens. | ||
162 | At 10Gb speeds, use the following formula: | ||
163 | RX_WINDOW >= 1.25MBytes * RTT(in milliseconds) | ||
164 | Example for RTT with 100us: RX_WINDOW = (1,250,000 * 0.1) = 125,000 | ||
165 | RX_WINDOW sizes of 256KB - 512KB should be sufficient. | ||
166 | Setting the min, max, and default receive buffer (RX_WINDOW) size: | ||
167 | sysctl -w net.ipv4.tcp_rmem="<min> <default> <max>" | ||
168 | |||
169 | TCP window size for multiple connections: | ||
170 | The receive buffer (RX_WINDOW) size may be calculated the same as single | ||
171 | connections, but should be divided by the number of connections. The | ||
172 | smaller window prevents congestion and facilitates better pacing, | ||
173 | especially if/when MAC level flow control does not work well or when it is | ||
174 | not supported on the machine. Experimentation may be necessary to attain | ||
175 | the correct value. This method is provided as a starting point fot the | ||
176 | correct receive buffer size. | ||
177 | Setting the min, max, and default receive buffer (RX_WINDOW) size is | ||
178 | performed in the same manner as single connection. | ||
179 | |||
180 | |||
181 | DRIVER MESSAGES | ||
182 | =============== | ||
183 | |||
184 | The following messages are the most common messages logged by syslog. These | ||
185 | may be found in /var/log/messages. | ||
186 | |||
187 | Driver up: | ||
188 | Chelsio Network Driver - version 2.1.1 | ||
189 | |||
190 | NIC detected: | ||
191 | eth#: Chelsio N210 1x10GBaseX NIC (rev #), PCIX 133MHz/64-bit | ||
192 | |||
193 | Link up: | ||
194 | eth#: link is up at 10 Gbps, full duplex | ||
195 | |||
196 | Link down: | ||
197 | eth#: link is down | ||
198 | |||
199 | |||
200 | KNOWN ISSUES | ||
201 | ============ | ||
202 | |||
203 | These issues have been identified during testing. The following information | ||
204 | is provided as a workaround to the problem. In some cases, this problem is | ||
205 | inherent to Linux or to a particular Linux Distribution and/or hardware | ||
206 | platform. | ||
207 | |||
208 | 1. Large number of TCP retransmits on a multiprocessor (SMP) system. | ||
209 | |||
210 | On a system with multiple CPUs, the interrupt (IRQ) for the network | ||
211 | controller may be bound to more than one CPU. This will cause TCP | ||
212 | retransmits if the packet data were to be split across different CPUs | ||
213 | and re-assembled in a different order than expected. | ||
214 | |||
215 | To eliminate the TCP retransmits, set smp_affinity on the particular | ||
216 | interrupt to a single CPU. You can locate the interrupt (IRQ) used on | ||
217 | the N110/N210 by using ifconfig: | ||
218 | ifconfig <dev_name> | grep Interrupt | ||
219 | Set the smp_affinity to a single CPU: | ||
220 | echo 1 > /proc/irq/<interrupt_number>/smp_affinity | ||
221 | |||
222 | It is highly suggested that you do not run the irqbalance daemon on your | ||
223 | system, as this will change any smp_affinity setting you have applied. | ||
224 | The irqbalance daemon runs on a 10 second interval and binds interrupts | ||
225 | to the least loaded CPU determined by the daemon. To disable this daemon: | ||
226 | chkconfig --level 2345 irqbalance off | ||
227 | |||
228 | By default, some Linux distributions enable the kernel feature, | ||
229 | irqbalance, which performs the same function as the daemon. To disable | ||
230 | this feature, add the following line to your bootloader: | ||
231 | noirqbalance | ||
232 | |||
233 | Example using the Grub bootloader: | ||
234 | title Red Hat Enterprise Linux AS (2.4.21-27.ELsmp) | ||
235 | root (hd0,0) | ||
236 | kernel /vmlinuz-2.4.21-27.ELsmp ro root=/dev/hda3 noirqbalance | ||
237 | initrd /initrd-2.4.21-27.ELsmp.img | ||
238 | |||
239 | 2. After running insmod, the driver is loaded and the incorrect network | ||
240 | interface is brought up without running ifup. | ||
241 | |||
242 | When using 2.4.x kernels, including RHEL kernels, the Linux kernel | ||
243 | invokes a script named "hotplug". This script is primarily used to | ||
244 | automatically bring up USB devices when they are plugged in, however, | ||
245 | the script also attempts to automatically bring up a network interface | ||
246 | after loading the kernel module. The hotplug script does this by scanning | ||
247 | the ifcfg-eth# config files in /etc/sysconfig/network-scripts, looking | ||
248 | for HWADDR=<mac_address>. | ||
249 | |||
250 | If the hotplug script does not find the HWADDRR within any of the | ||
251 | ifcfg-eth# files, it will bring up the device with the next available | ||
252 | interface name. If this interface is already configured for a different | ||
253 | network card, your new interface will have incorrect IP address and | ||
254 | network settings. | ||
255 | |||
256 | To solve this issue, you can add the HWADDR=<mac_address> key to the | ||
257 | interface config file of your network controller. | ||
258 | |||
259 | To disable this "hotplug" feature, you may add the driver (module name) | ||
260 | to the "blacklist" file located in /etc/hotplug. It has been noted that | ||
261 | this does not work for network devices because the net.agent script | ||
262 | does not use the blacklist file. Simply remove, or rename, the net.agent | ||
263 | script located in /etc/hotplug to disable this feature. | ||
264 | |||
265 | 3. Transport Protocol (TP) hangs when running heavy multi-connection traffic | ||
266 | on an AMD Opteron system with HyperTransport PCI-X Tunnel chipset. | ||
267 | |||
268 | If your AMD Opteron system uses the AMD-8131 HyperTransport PCI-X Tunnel | ||
269 | chipset, you may experience the "133-Mhz Mode Split Completion Data | ||
270 | Corruption" bug identified by AMD while using a 133Mhz PCI-X card on the | ||
271 | bus PCI-X bus. | ||
272 | |||
273 | AMD states, "Under highly specific conditions, the AMD-8131 PCI-X Tunnel | ||
274 | can provide stale data via split completion cycles to a PCI-X card that | ||
275 | is operating at 133 Mhz", causing data corruption. | ||
276 | |||
277 | AMD's provides three workarounds for this problem, however, Chelsio | ||
278 | recommends the first option for best performance with this bug: | ||
279 | |||
280 | For 133Mhz secondary bus operation, limit the transaction length and | ||
281 | the number of outstanding transactions, via BIOS configuration | ||
282 | programming of the PCI-X card, to the following: | ||
283 | |||
284 | Data Length (bytes): 1k | ||
285 | Total allowed outstanding transactions: 2 | ||
286 | |||
287 | Please refer to AMD 8131-HT/PCI-X Errata 26310 Rev 3.08 August 2004, | ||
288 | section 56, "133-MHz Mode Split Completion Data Corruption" for more | ||
289 | details with this bug and workarounds suggested by AMD. | ||
290 | |||
291 | It may be possible to work outside AMD's recommended PCI-X settings, try | ||
292 | increasing the Data Length to 2k bytes for increased performance. If you | ||
293 | have issues with these settings, please revert to the "safe" settings | ||
294 | and duplicate the problem before submitting a bug or asking for support. | ||
295 | |||
296 | NOTE: The default setting on most systems is 8 outstanding transactions | ||
297 | and 2k bytes data length. | ||
298 | |||
299 | 4. On multiprocessor systems, it has been noted that an application which | ||
300 | is handling 10Gb networking can switch between CPUs causing degraded | ||
301 | and/or unstable performance. | ||
302 | |||
303 | If running on an SMP system and taking performance measurements, it | ||
304 | is suggested you either run the latest netperf-2.4.0+ or use a binding | ||
305 | tool such as Tim Hockin's procstate utilities (runon) | ||
306 | <http://www.hockin.org/~thockin/procstate/>. | ||
307 | |||
308 | Binding netserver and netperf (or other applications) to particular | ||
309 | CPUs will have a significant difference in performance measurements. | ||
310 | You may need to experiment which CPU to bind the application to in | ||
311 | order to achieve the best performance for your system. | ||
312 | |||
313 | If you are developing an application designed for 10Gb networking, | ||
314 | please keep in mind you may want to look at kernel functions | ||
315 | sched_setaffinity & sched_getaffinity to bind your application. | ||
316 | |||
317 | If you are just running user-space applications such as ftp, telnet, | ||
318 | etc., you may want to try the runon tool provided by Tim Hockin's | ||
319 | procstate utility. You could also try binding the interface to a | ||
320 | particular CPU: runon 0 ifup eth0 | ||
321 | |||
322 | |||
323 | SUPPORT | ||
324 | ======= | ||
325 | |||
326 | If you have problems with the software or hardware, please contact our | ||
327 | customer support team via email at support@chelsio.com or check our website | ||
328 | at http://www.chelsio.com | ||
329 | |||
330 | =============================================================================== | ||
331 | |||
332 | Chelsio Communications | ||
333 | 370 San Aleso Ave. | ||
334 | Suite 100 | ||
335 | Sunnyvale, CA 94085 | ||
336 | http://www.chelsio.com | ||
337 | |||
338 | This program is free software; you can redistribute it and/or modify | ||
339 | it under the terms of the GNU General Public License, version 2, as | ||
340 | published by the Free Software Foundation. | ||
341 | |||
342 | You should have received a copy of the GNU General Public License along | ||
343 | with this program; if not, write to the Free Software Foundation, Inc., | ||
344 | 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||
345 | |||
346 | THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED | ||
347 | WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF | ||
348 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | ||
349 | |||
350 | Copyright (c) 2003-2005 Chelsio Communications. All rights reserved. | ||
351 | |||
352 | =============================================================================== | ||
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/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt index a18ecb92b356..5c49ba07e709 100644 --- a/Documentation/sound/alsa/ALSA-Configuration.txt +++ b/Documentation/sound/alsa/ALSA-Configuration.txt | |||
@@ -132,6 +132,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
132 | mpu_irq - IRQ # for MPU-401 UART (PnP setup) | 132 | mpu_irq - IRQ # for MPU-401 UART (PnP setup) |
133 | dma1 - first DMA # for AD1816A chip (PnP setup) | 133 | dma1 - first DMA # for AD1816A chip (PnP setup) |
134 | dma2 - second DMA # for AD1816A chip (PnP setup) | 134 | dma2 - second DMA # for AD1816A chip (PnP setup) |
135 | clockfreq - Clock frequency for AD1816A chip (default = 0, 33000Hz) | ||
135 | 136 | ||
136 | Module supports up to 8 cards, autoprobe and PnP. | 137 | Module supports up to 8 cards, autoprobe and PnP. |
137 | 138 | ||
diff --git a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl b/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl index db0b7d2dc477..0475478c2484 100644 --- a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl +++ b/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl | |||
@@ -3422,10 +3422,17 @@ struct _snd_pcm_runtime { | |||
3422 | 3422 | ||
3423 | <para> | 3423 | <para> |
3424 | The <structfield>iface</structfield> field specifies the type of | 3424 | The <structfield>iface</structfield> field specifies the type of |
3425 | the control, | 3425 | the control, <constant>SNDRV_CTL_ELEM_IFACE_XXX</constant>, which |
3426 | <constant>SNDRV_CTL_ELEM_IFACE_XXX</constant>. There are | 3426 | is usually <constant>MIXER</constant>. |
3427 | <constant>MIXER</constant>, <constant>PCM</constant>, | 3427 | Use <constant>CARD</constant> for global controls that are not |
3428 | <constant>CARD</constant>, etc. | 3428 | logically part of the mixer. |
3429 | If the control is closely associated with some specific device on | ||
3430 | the sound card, use <constant>HWDEP</constant>, | ||
3431 | <constant>PCM</constant>, <constant>RAWMIDI</constant>, | ||
3432 | <constant>TIMER</constant>, or <constant>SEQUENCER</constant>, and | ||
3433 | specify the device number with the | ||
3434 | <structfield>device</structfield> and | ||
3435 | <structfield>subdevice</structfield> fields. | ||
3429 | </para> | 3436 | </para> |
3430 | 3437 | ||
3431 | <para> | 3438 | <para> |