diff options
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/BUG-HUNTING | 113 | ||||
-rw-r--r-- | Documentation/dvb/get_dvb_firmware | 2 | ||||
-rw-r--r-- | Documentation/filesystems/isofs.txt | 4 | ||||
-rw-r--r-- | Documentation/filesystems/jfs.txt | 2 | ||||
-rw-r--r-- | Documentation/filesystems/vfat.txt | 6 | ||||
-rw-r--r-- | Documentation/networking/e100.txt | 158 | ||||
-rw-r--r-- | Documentation/networking/e1000.txt | 620 | ||||
-rw-r--r-- | Documentation/sound/alsa/ALSA-Configuration.txt | 71 | ||||
-rw-r--r-- | Documentation/sound/alsa/Audiophile-Usb.txt | 333 | ||||
-rw-r--r-- | Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl | 6 | ||||
-rw-r--r-- | Documentation/spinlocks.txt | 2 |
11 files changed, 1017 insertions, 300 deletions
diff --git a/Documentation/BUG-HUNTING b/Documentation/BUG-HUNTING index ca29242dbc38..65b97e1dbf70 100644 --- a/Documentation/BUG-HUNTING +++ b/Documentation/BUG-HUNTING | |||
@@ -1,3 +1,56 @@ | |||
1 | Table of contents | ||
2 | ================= | ||
3 | |||
4 | Last updated: 20 December 2005 | ||
5 | |||
6 | Contents | ||
7 | ======== | ||
8 | |||
9 | - Introduction | ||
10 | - Devices not appearing | ||
11 | - Finding patch that caused a bug | ||
12 | -- Finding using git-bisect | ||
13 | -- Finding it the old way | ||
14 | - Fixing the bug | ||
15 | |||
16 | Introduction | ||
17 | ============ | ||
18 | |||
19 | Always try the latest kernel from kernel.org and build from source. If you are | ||
20 | not confident in doing that please report the bug to your distribution vendor | ||
21 | instead of to a kernel developer. | ||
22 | |||
23 | Finding bugs is not always easy. Have a go though. If you can't find it don't | ||
24 | give up. Report as much as you have found to the relevant maintainer. See | ||
25 | MAINTAINERS for who that is for the subsystem you have worked on. | ||
26 | |||
27 | Before you submit a bug report read REPORTING-BUGS. | ||
28 | |||
29 | Devices not appearing | ||
30 | ===================== | ||
31 | |||
32 | Often this is caused by udev. Check that first before blaming it on the | ||
33 | kernel. | ||
34 | |||
35 | Finding patch that caused a bug | ||
36 | =============================== | ||
37 | |||
38 | |||
39 | |||
40 | Finding using git-bisect | ||
41 | ------------------------ | ||
42 | |||
43 | Using the provided tools with git makes finding bugs easy provided the bug is | ||
44 | reproducible. | ||
45 | |||
46 | Steps to do it: | ||
47 | - start using git for the kernel source | ||
48 | - read the man page for git-bisect | ||
49 | - have fun | ||
50 | |||
51 | Finding it the old way | ||
52 | ---------------------- | ||
53 | |||
1 | [Sat Mar 2 10:32:33 PST 1996 KERNEL_BUG-HOWTO lm@sgi.com (Larry McVoy)] | 54 | [Sat Mar 2 10:32:33 PST 1996 KERNEL_BUG-HOWTO lm@sgi.com (Larry McVoy)] |
2 | 55 | ||
3 | This is how to track down a bug if you know nothing about kernel hacking. | 56 | This is how to track down a bug if you know nothing about kernel hacking. |
@@ -90,3 +143,63 @@ it does work and it lets non-hackers help fix bugs. And it is cool | |||
90 | because Linux snapshots will let you do this - something that you can't | 143 | because Linux snapshots will let you do this - something that you can't |
91 | do with vendor supplied releases. | 144 | do with vendor supplied releases. |
92 | 145 | ||
146 | Fixing the bug | ||
147 | ============== | ||
148 | |||
149 | Nobody is going to tell you how to fix bugs. Seriously. You need to work it | ||
150 | out. But below are some hints on how to use the tools. | ||
151 | |||
152 | To debug a kernel, use objdump and look for the hex offset from the crash | ||
153 | output to find the valid line of code/assembler. Without debug symbols, you | ||
154 | will see the assembler code for the routine shown, but if your kernel has | ||
155 | debug symbols the C code will also be available. (Debug symbols can be enabled | ||
156 | in the kernel hacking menu of the menu configuration.) For example: | ||
157 | |||
158 | objdump -r -S -l --disassemble net/dccp/ipv4.o | ||
159 | |||
160 | NB.: you need to be at the top level of the kernel tree for this to pick up | ||
161 | your C files. | ||
162 | |||
163 | If you don't have access to the code you can also debug on some crash dumps | ||
164 | e.g. crash dump output as shown by Dave Miller. | ||
165 | |||
166 | > EIP is at ip_queue_xmit+0x14/0x4c0 | ||
167 | > ... | ||
168 | > Code: 44 24 04 e8 6f 05 00 00 e9 e8 fe ff ff 8d 76 00 8d bc 27 00 00 | ||
169 | > 00 00 55 57 56 53 81 ec bc 00 00 00 8b ac 24 d0 00 00 00 8b 5d 08 | ||
170 | > <8b> 83 3c 01 00 00 89 44 24 14 8b 45 28 85 c0 89 44 24 18 0f 85 | ||
171 | > | ||
172 | > Put the bytes into a "foo.s" file like this: | ||
173 | > | ||
174 | > .text | ||
175 | > .globl foo | ||
176 | > foo: | ||
177 | > .byte .... /* bytes from Code: part of OOPS dump */ | ||
178 | > | ||
179 | > Compile it with "gcc -c -o foo.o foo.s" then look at the output of | ||
180 | > "objdump --disassemble foo.o". | ||
181 | > | ||
182 | > Output: | ||
183 | > | ||
184 | > ip_queue_xmit: | ||
185 | > push %ebp | ||
186 | > push %edi | ||
187 | > push %esi | ||
188 | > push %ebx | ||
189 | > sub $0xbc, %esp | ||
190 | > mov 0xd0(%esp), %ebp ! %ebp = arg0 (skb) | ||
191 | > mov 0x8(%ebp), %ebx ! %ebx = skb->sk | ||
192 | > mov 0x13c(%ebx), %eax ! %eax = inet_sk(sk)->opt | ||
193 | |||
194 | Another very useful option of the Kernel Hacking section in menuconfig is | ||
195 | Debug memory allocations. This will help you see whether data has been | ||
196 | initialised and not set before use etc. To see the values that get assigned | ||
197 | with this look at mm/slab.c and search for POISON_INUSE. When using this an | ||
198 | Oops will often show the poisoned data instead of zero which is the default. | ||
199 | |||
200 | Once you have worked out a fix please submit it upstream. After all open | ||
201 | source is about sharing what you do and don't you want to be recognised for | ||
202 | your genius? | ||
203 | |||
204 | Please do read Documentation/SubmittingPatches though to help your code get | ||
205 | accepted. | ||
diff --git a/Documentation/dvb/get_dvb_firmware b/Documentation/dvb/get_dvb_firmware index bb55f49f2745..15fc8fbef67e 100644 --- a/Documentation/dvb/get_dvb_firmware +++ b/Documentation/dvb/get_dvb_firmware | |||
@@ -246,7 +246,7 @@ sub vp7041 { | |||
246 | } | 246 | } |
247 | 247 | ||
248 | sub dibusb { | 248 | sub dibusb { |
249 | my $url = "http://www.linuxtv.org/downloads/firmware/dvb-dibusb-5.0.0.11.fw"; | 249 | my $url = "http://www.linuxtv.org/downloads/firmware/dvb-usb-dibusb-5.0.0.11.fw"; |
250 | my $outfile = "dvb-dibusb-5.0.0.11.fw"; | 250 | my $outfile = "dvb-dibusb-5.0.0.11.fw"; |
251 | my $hash = "fa490295a527360ca16dcdf3224ca243"; | 251 | my $hash = "fa490295a527360ca16dcdf3224ca243"; |
252 | 252 | ||
diff --git a/Documentation/filesystems/isofs.txt b/Documentation/filesystems/isofs.txt index 424585ff6ea1..758e50401c16 100644 --- a/Documentation/filesystems/isofs.txt +++ b/Documentation/filesystems/isofs.txt | |||
@@ -9,9 +9,9 @@ when using discs encoded using Microsoft's Joliet extensions. | |||
9 | iocharset=name Character set to use for converting from Unicode to | 9 | iocharset=name Character set to use for converting from Unicode to |
10 | ASCII. Joliet filenames are stored in Unicode format, but | 10 | ASCII. Joliet filenames are stored in Unicode format, but |
11 | Unix for the most part doesn't know how to deal with Unicode. | 11 | Unix for the most part doesn't know how to deal with Unicode. |
12 | There is also an option of doing UTF8 translations with the | 12 | There is also an option of doing UTF-8 translations with the |
13 | utf8 option. | 13 | utf8 option. |
14 | utf8 Encode Unicode names in UTF8 format. Default is no. | 14 | utf8 Encode Unicode names in UTF-8 format. Default is no. |
15 | 15 | ||
16 | Mount options unique to the isofs filesystem. | 16 | Mount options unique to the isofs filesystem. |
17 | block=512 Set the block size for the disk to 512 bytes | 17 | block=512 Set the block size for the disk to 512 bytes |
diff --git a/Documentation/filesystems/jfs.txt b/Documentation/filesystems/jfs.txt index 3e992daf99ad..bae128663748 100644 --- a/Documentation/filesystems/jfs.txt +++ b/Documentation/filesystems/jfs.txt | |||
@@ -6,7 +6,7 @@ The following mount options are supported: | |||
6 | 6 | ||
7 | iocharset=name Character set to use for converting from Unicode to | 7 | iocharset=name Character set to use for converting from Unicode to |
8 | ASCII. The default is to do no conversion. Use | 8 | ASCII. The default is to do no conversion. Use |
9 | iocharset=utf8 for UTF8 translations. This requires | 9 | iocharset=utf8 for UTF-8 translations. This requires |
10 | CONFIG_NLS_UTF8 to be set in the kernel .config file. | 10 | CONFIG_NLS_UTF8 to be set in the kernel .config file. |
11 | iocharset=none specifies the default behavior explicitly. | 11 | iocharset=none specifies the default behavior explicitly. |
12 | 12 | ||
diff --git a/Documentation/filesystems/vfat.txt b/Documentation/filesystems/vfat.txt index 5ead20c6c744..2001abbc60e6 100644 --- a/Documentation/filesystems/vfat.txt +++ b/Documentation/filesystems/vfat.txt | |||
@@ -28,16 +28,16 @@ iocharset=name -- Character set to use for converting between the | |||
28 | know how to deal with Unicode. | 28 | know how to deal with Unicode. |
29 | By default, FAT_DEFAULT_IOCHARSET setting is used. | 29 | By default, FAT_DEFAULT_IOCHARSET setting is used. |
30 | 30 | ||
31 | There is also an option of doing UTF8 translations | 31 | There is also an option of doing UTF-8 translations |
32 | with the utf8 option. | 32 | with the utf8 option. |
33 | 33 | ||
34 | NOTE: "iocharset=utf8" is not recommended. If unsure, | 34 | NOTE: "iocharset=utf8" is not recommended. If unsure, |
35 | you should consider the following option instead. | 35 | you should consider the following option instead. |
36 | 36 | ||
37 | utf8=<bool> -- UTF8 is the filesystem safe version of Unicode that | 37 | utf8=<bool> -- UTF-8 is the filesystem safe version of Unicode that |
38 | is used by the console. It can be be enabled for the | 38 | is used by the console. It can be be enabled for the |
39 | filesystem with this option. If 'uni_xlate' gets set, | 39 | filesystem with this option. If 'uni_xlate' gets set, |
40 | UTF8 gets disabled. | 40 | UTF-8 gets disabled. |
41 | 41 | ||
42 | uni_xlate=<bool> -- Translate unhandled Unicode characters to special | 42 | uni_xlate=<bool> -- Translate unhandled Unicode characters to special |
43 | escaped sequences. This would let you backup and | 43 | escaped sequences. This would let you backup and |
diff --git a/Documentation/networking/e100.txt b/Documentation/networking/e100.txt index 4ef9f7cd5dc3..944aa55e79f8 100644 --- a/Documentation/networking/e100.txt +++ b/Documentation/networking/e100.txt | |||
@@ -1,16 +1,17 @@ | |||
1 | Linux* Base Driver for the Intel(R) PRO/100 Family of Adapters | 1 | Linux* Base Driver for the Intel(R) PRO/100 Family of Adapters |
2 | ============================================================== | 2 | ============================================================== |
3 | 3 | ||
4 | November 17, 2004 | 4 | November 15, 2005 |
5 | |||
6 | 5 | ||
7 | Contents | 6 | Contents |
8 | ======== | 7 | ======== |
9 | 8 | ||
10 | - In This Release | 9 | - In This Release |
11 | - Identifying Your Adapter | 10 | - Identifying Your Adapter |
11 | - Building and Installation | ||
12 | - Driver Configuration Parameters | 12 | - Driver Configuration Parameters |
13 | - Additional Configurations | 13 | - Additional Configurations |
14 | - Known Issues | ||
14 | - Support | 15 | - Support |
15 | 16 | ||
16 | 17 | ||
@@ -18,18 +19,30 @@ In This Release | |||
18 | =============== | 19 | =============== |
19 | 20 | ||
20 | This file describes the Linux* Base Driver for the Intel(R) PRO/100 Family of | 21 | This file describes the Linux* Base Driver for the Intel(R) PRO/100 Family of |
21 | Adapters, version 3.3.x. This driver supports 2.4.x and 2.6.x kernels. | 22 | Adapters. This driver includes support for Itanium(R)2-based systems. |
23 | |||
24 | For questions related to hardware requirements, refer to the documentation | ||
25 | supplied with your Intel PRO/100 adapter. | ||
26 | |||
27 | The following features are now available in supported kernels: | ||
28 | - Native VLANs | ||
29 | - Channel Bonding (teaming) | ||
30 | - SNMP | ||
31 | |||
32 | Channel Bonding documentation can be found in the Linux kernel source: | ||
33 | /Documentation/networking/bonding.txt | ||
34 | |||
22 | 35 | ||
23 | Identifying Your Adapter | 36 | Identifying Your Adapter |
24 | ======================== | 37 | ======================== |
25 | 38 | ||
26 | For more information on how to identify your adapter, go to the Adapter & | 39 | For more information on how to identify your adapter, go to the Adapter & |
27 | Driver ID Guide at: | 40 | Driver ID Guide at: |
28 | 41 | ||
29 | http://support.intel.com/support/network/adapter/pro100/21397.htm | 42 | http://support.intel.com/support/network/adapter/pro100/21397.htm |
30 | 43 | ||
31 | For the latest Intel network drivers for Linux, refer to the following | 44 | For the latest Intel network drivers for Linux, refer to the following |
32 | website. In the search field, enter your adapter name or type, or use the | 45 | website. In the search field, enter your adapter name or type, or use the |
33 | networking link on the left to search for your adapter: | 46 | networking link on the left to search for your adapter: |
34 | 47 | ||
35 | http://downloadfinder.intel.com/scripts-df/support_intel.asp | 48 | http://downloadfinder.intel.com/scripts-df/support_intel.asp |
@@ -40,73 +53,75 @@ Driver Configuration Parameters | |||
40 | The default value for each parameter is generally the recommended setting, | 53 | The default value for each parameter is generally the recommended setting, |
41 | unless otherwise noted. | 54 | unless otherwise noted. |
42 | 55 | ||
43 | Rx Descriptors: Number of receive descriptors. A receive descriptor is a data | 56 | Rx Descriptors: Number of receive descriptors. A receive descriptor is a data |
44 | structure that describes a receive buffer and its attributes to the network | 57 | structure that describes a receive buffer and its attributes to the network |
45 | controller. The data in the descriptor is used by the controller to write | 58 | controller. The data in the descriptor is used by the controller to write |
46 | data from the controller to host memory. In the 3.0.x driver the valid | 59 | data from the controller to host memory. In the 3.x.x driver the valid range |
47 | range for this parameter is 64-256. The default value is 64. This parameter | 60 | for this parameter is 64-256. The default value is 64. This parameter can be |
48 | can be changed using the command | 61 | changed using the command: |
49 | 62 | ||
50 | ethtool -G eth? rx n, where n is the number of desired rx descriptors. | 63 | ethtool -G eth? rx n, where n is the number of desired rx descriptors. |
51 | 64 | ||
52 | Tx Descriptors: Number of transmit descriptors. A transmit descriptor is a | 65 | Tx Descriptors: Number of transmit descriptors. A transmit descriptor is a data |
53 | data structure that describes a transmit buffer and its attributes to the | 66 | structure that describes a transmit buffer and its attributes to the network |
54 | network controller. The data in the descriptor is used by the controller to | 67 | controller. The data in the descriptor is used by the controller to read |
55 | read data from the host memory to the controller. In the 3.0.x driver the | 68 | data from the host memory to the controller. In the 3.x.x driver the valid |
56 | valid range for this parameter is 64-256. The default value is 64. This | 69 | range for this parameter is 64-256. The default value is 64. This parameter |
57 | parameter can be changed using the command | 70 | can be changed using the command: |
58 | 71 | ||
59 | ethtool -G eth? tx n, where n is the number of desired tx descriptors. | 72 | ethtool -G eth? tx n, where n is the number of desired tx descriptors. |
60 | 73 | ||
61 | Speed/Duplex: The driver auto-negotiates the link speed and duplex settings by | 74 | Speed/Duplex: The driver auto-negotiates the link speed and duplex settings by |
62 | default. Ethtool can be used as follows to force speed/duplex. | 75 | default. Ethtool can be used as follows to force speed/duplex. |
63 | 76 | ||
64 | ethtool -s eth? autoneg off speed {10|100} duplex {full|half} | 77 | ethtool -s eth? autoneg off speed {10|100} duplex {full|half} |
65 | 78 | ||
66 | NOTE: setting the speed/duplex to incorrect values will cause the link to | 79 | NOTE: setting the speed/duplex to incorrect values will cause the link to |
67 | fail. | 80 | fail. |
68 | 81 | ||
69 | Event Log Message Level: The driver uses the message level flag to log events | 82 | Event Log Message Level: The driver uses the message level flag to log events |
70 | to syslog. The message level can be set at driver load time. It can also be | 83 | to syslog. The message level can be set at driver load time. It can also be |
71 | set using the command | 84 | set using the command: |
72 | 85 | ||
73 | ethtool -s eth? msglvl n | 86 | ethtool -s eth? msglvl n |
74 | 87 | ||
88 | |||
75 | Additional Configurations | 89 | Additional Configurations |
76 | ========================= | 90 | ========================= |
77 | 91 | ||
78 | Configuring the Driver on Different Distributions | 92 | Configuring the Driver on Different Distributions |
79 | ------------------------------------------------- | 93 | ------------------------------------------------- |
80 | 94 | ||
81 | Configuring a network driver to load properly when the system is started is | 95 | Configuring a network driver to load properly when the system is started is |
82 | distribution dependent. Typically, the configuration process involves adding | 96 | distribution dependent. Typically, the configuration process involves adding |
83 | an alias line to /etc/modules.conf as well as editing other system startup | 97 | an alias line to /etc/modules.conf or /etc/modprobe.conf as well as editing |
84 | scripts and/or configuration files. Many popular Linux distributions ship | 98 | other system startup scripts and/or configuration files. Many popular Linux |
85 | with tools to make these changes for you. To learn the proper way to | 99 | distributions ship with tools to make these changes for you. To learn the |
86 | configure a network device for your system, refer to your distribution | 100 | proper way to configure a network device for your system, refer to your |
87 | documentation. If during this process you are asked for the driver or module | 101 | distribution documentation. If during this process you are asked for the |
88 | name, the name for the Linux Base Driver for the Intel PRO/100 Family of | 102 | driver or module name, the name for the Linux Base Driver for the Intel |
89 | Adapters is e100. | 103 | PRO/100 Family of Adapters is e100. |
90 | 104 | ||
91 | As an example, if you install the e100 driver for two PRO/100 adapters | 105 | As an example, if you install the e100 driver for two PRO/100 adapters |
92 | (eth0 and eth1), add the following to modules.conf: | 106 | (eth0 and eth1), add the following to modules.conf or modprobe.conf: |
93 | 107 | ||
94 | alias eth0 e100 | 108 | alias eth0 e100 |
95 | alias eth1 e100 | 109 | alias eth1 e100 |
96 | 110 | ||
97 | Viewing Link Messages | 111 | Viewing Link Messages |
98 | --------------------- | 112 | --------------------- |
99 | In order to see link messages and other Intel driver information on your | 113 | In order to see link messages and other Intel driver information on your |
100 | console, you must set the dmesg level up to six. This can be done by | 114 | console, you must set the dmesg level up to six. This can be done by |
101 | entering the following on the command line before loading the e100 driver: | 115 | entering the following on the command line before loading the e100 driver: |
102 | 116 | ||
103 | dmesg -n 8 | 117 | dmesg -n 8 |
104 | 118 | ||
105 | If you wish to see all messages issued by the driver, including debug | 119 | If you wish to see all messages issued by the driver, including debug |
106 | messages, set the dmesg level to eight. | 120 | messages, set the dmesg level to eight. |
107 | 121 | ||
108 | NOTE: This setting is not saved across reboots. | 122 | NOTE: This setting is not saved across reboots. |
109 | 123 | ||
124 | |||
110 | Ethtool | 125 | Ethtool |
111 | ------- | 126 | ------- |
112 | 127 | ||
@@ -114,29 +129,27 @@ Additional Configurations | |||
114 | diagnostics, as well as displaying statistical information. Ethtool | 129 | diagnostics, as well as displaying statistical information. Ethtool |
115 | version 1.6 or later is required for this functionality. | 130 | version 1.6 or later is required for this functionality. |
116 | 131 | ||
117 | The latest release of ethtool can be found at: | 132 | The latest release of ethtool can be found from |
118 | http://sf.net/projects/gkernel. | 133 | http://sourceforge.net/projects/gkernel. |
119 | 134 | ||
120 | NOTE: This driver uses mii support from the kernel. As a result, when | 135 | NOTE: Ethtool 1.6 only supports a limited set of ethtool options. Support |
121 | there is no link, ethtool will report speed/duplex to be 10/half. | 136 | for a more complete ethtool feature set can be enabled by upgrading |
137 | ethtool to ethtool-1.8.1. | ||
122 | 138 | ||
123 | NOTE: Ethtool 1.6 only supports a limited set of ethtool options. Support | ||
124 | for a more complete ethtool feature set can be enabled by upgrading | ||
125 | ethtool to ethtool-1.8.1. | ||
126 | 139 | ||
127 | Enabling Wake on LAN* (WoL) | 140 | Enabling Wake on LAN* (WoL) |
128 | --------------------------- | 141 | --------------------------- |
129 | WoL is provided through the Ethtool* utility. Ethtool is included with Red | 142 | WoL is provided through the Ethtool* utility. Ethtool is included with Red |
130 | Hat* 8.0. For other Linux distributions, download and install Ethtool from | 143 | Hat* 8.0. For other Linux distributions, download and install Ethtool from |
131 | the following website: http://sourceforge.net/projects/gkernel. | 144 | the following website: http://sourceforge.net/projects/gkernel. |
132 | 145 | ||
133 | For instructions on enabling WoL with Ethtool, refer to the Ethtool man | 146 | For instructions on enabling WoL with Ethtool, refer to the Ethtool man page. |
134 | page. | ||
135 | 147 | ||
136 | WoL will be enabled on the system during the next shut down or reboot. For | 148 | WoL will be enabled on the system during the next shut down or reboot. For |
137 | this driver version, in order to enable WoL, the e100 driver must be | 149 | this driver version, in order to enable WoL, the e100 driver must be |
138 | loaded when shutting down or rebooting the system. | 150 | loaded when shutting down or rebooting the system. |
139 | 151 | ||
152 | |||
140 | NAPI | 153 | NAPI |
141 | ---- | 154 | ---- |
142 | 155 | ||
@@ -144,6 +157,25 @@ Additional Configurations | |||
144 | 157 | ||
145 | See www.cyberus.ca/~hadi/usenix-paper.tgz for more information on NAPI. | 158 | See www.cyberus.ca/~hadi/usenix-paper.tgz for more information on NAPI. |
146 | 159 | ||
160 | Multiple Interfaces on Same Ethernet Broadcast Network | ||
161 | ------------------------------------------------------ | ||
162 | |||
163 | Due to the default ARP behavior on Linux, it is not possible to have | ||
164 | one system on two IP networks in the same Ethernet broadcast domain | ||
165 | (non-partitioned switch) behave as expected. All Ethernet interfaces | ||
166 | will respond to IP traffic for any IP address assigned to the system. | ||
167 | This results in unbalanced receive traffic. | ||
168 | |||
169 | If you have multiple interfaces in a server, either turn on ARP | ||
170 | filtering by | ||
171 | |||
172 | (1) entering: echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter | ||
173 | (this only works if your kernel's version is higher than 2.4.5), or | ||
174 | |||
175 | (2) installing the interfaces in separate broadcast domains (either | ||
176 | in different switches or in a switch partitioned to VLANs). | ||
177 | |||
178 | |||
147 | Support | 179 | Support |
148 | ======= | 180 | ======= |
149 | 181 | ||
@@ -151,20 +183,24 @@ For general information, go to the Intel support website at: | |||
151 | 183 | ||
152 | http://support.intel.com | 184 | http://support.intel.com |
153 | 185 | ||
186 | or the Intel Wired Networking project hosted by Sourceforge at: | ||
187 | |||
188 | http://sourceforge.net/projects/e1000 | ||
189 | |||
154 | If an issue is identified with the released source code on the supported | 190 | If an issue is identified with the released source code on the supported |
155 | kernel with a supported adapter, email the specific information related to | 191 | kernel with a supported adapter, email the specific information related to the |
156 | the issue to linux.nics@intel.com. | 192 | issue to e1000-devel@lists.sourceforge.net. |
157 | 193 | ||
158 | 194 | ||
159 | License | 195 | License |
160 | ======= | 196 | ======= |
161 | 197 | ||
162 | This software program is released under the terms of a license agreement | 198 | This software program is released under the terms of a license agreement |
163 | between you ('Licensee') and Intel. Do not use or load this software or any | 199 | between you ('Licensee') and Intel. Do not use or load this software or any |
164 | associated materials (collectively, the 'Software') until you have carefully | 200 | associated materials (collectively, the 'Software') until you have carefully |
165 | read the full terms and conditions of the LICENSE located in this software | 201 | read the full terms and conditions of the file COPYING located in this software |
166 | package. By loading or using the Software, you agree to the terms of this | 202 | package. By loading or using the Software, you agree to the terms of this |
167 | Agreement. If you do not agree with the terms of this Agreement, do not | 203 | Agreement. If you do not agree with the terms of this Agreement, do not install |
168 | install or use the Software. | 204 | or use the Software. |
169 | 205 | ||
170 | * Other names and brands may be claimed as the property of others. | 206 | * Other names and brands may be claimed as the property of others. |
diff --git a/Documentation/networking/e1000.txt b/Documentation/networking/e1000.txt index 2ebd4058d46d..71fe15af356c 100644 --- a/Documentation/networking/e1000.txt +++ b/Documentation/networking/e1000.txt | |||
@@ -1,7 +1,7 @@ | |||
1 | Linux* Base Driver for the Intel(R) PRO/1000 Family of Adapters | 1 | Linux* Base Driver for the Intel(R) PRO/1000 Family of Adapters |
2 | =============================================================== | 2 | =============================================================== |
3 | 3 | ||
4 | November 17, 2004 | 4 | November 15, 2005 |
5 | 5 | ||
6 | 6 | ||
7 | Contents | 7 | Contents |
@@ -20,254 +20,316 @@ In This Release | |||
20 | =============== | 20 | =============== |
21 | 21 | ||
22 | This file describes the Linux* Base Driver for the Intel(R) PRO/1000 Family | 22 | This file describes the Linux* Base Driver for the Intel(R) PRO/1000 Family |
23 | of Adapters, version 5.x.x. | 23 | of Adapters. This driver includes support for Itanium(R)2-based systems. |
24 | 24 | ||
25 | For questions related to hardware requirements, refer to the documentation | 25 | For questions related to hardware requirements, refer to the documentation |
26 | supplied with your Intel PRO/1000 adapter. All hardware requirements listed | 26 | supplied with your Intel PRO/1000 adapter. All hardware requirements listed |
27 | apply to use with Linux. | 27 | apply to use with Linux. |
28 | 28 | ||
29 | Native VLANs are now available with supported kernels. | 29 | The following features are now available in supported kernels: |
30 | - Native VLANs | ||
31 | - Channel Bonding (teaming) | ||
32 | - SNMP | ||
33 | |||
34 | Channel Bonding documentation can be found in the Linux kernel source: | ||
35 | /Documentation/networking/bonding.txt | ||
36 | |||
37 | The driver information previously displayed in the /proc filesystem is not | ||
38 | supported in this release. Alternatively, you can use ethtool (version 1.6 | ||
39 | or later), lspci, and ifconfig to obtain the same information. | ||
40 | |||
41 | Instructions on updating ethtool can be found in the section "Additional | ||
42 | Configurations" later in this document. | ||
43 | |||
30 | 44 | ||
31 | Identifying Your Adapter | 45 | Identifying Your Adapter |
32 | ======================== | 46 | ======================== |
33 | 47 | ||
34 | For more information on how to identify your adapter, go to the Adapter & | 48 | For more information on how to identify your adapter, go to the Adapter & |
35 | Driver ID Guide at: | 49 | Driver ID Guide at: |
36 | 50 | ||
37 | http://support.intel.com/support/network/adapter/pro100/21397.htm | 51 | http://support.intel.com/support/network/adapter/pro100/21397.htm |
38 | 52 | ||
39 | For the latest Intel network drivers for Linux, refer to the following | 53 | For the latest Intel network drivers for Linux, refer to the following |
40 | website. In the search field, enter your adapter name or type, or use the | 54 | website. In the search field, enter your adapter name or type, or use the |
41 | networking link on the left to search for your adapter: | 55 | networking link on the left to search for your adapter: |
42 | 56 | ||
43 | http://downloadfinder.intel.com/scripts-df/support_intel.asp | 57 | http://downloadfinder.intel.com/scripts-df/support_intel.asp |
44 | 58 | ||
45 | Command Line Parameters | ||
46 | ======================= | ||
47 | 59 | ||
48 | If the driver is built as a module, the following optional parameters are | 60 | Command Line Parameters ======================= |
49 | used by entering them on the command line with the modprobe or insmod command | 61 | |
50 | using this syntax: | 62 | If the driver is built as a module, the following optional parameters |
63 | are used by entering them on the command line with the modprobe or insmod | ||
64 | command using this syntax: | ||
51 | 65 | ||
52 | modprobe e1000 [<option>=<VAL1>,<VAL2>,...] | 66 | modprobe e1000 [<option>=<VAL1>,<VAL2>,...] |
53 | 67 | ||
54 | insmod e1000 [<option>=<VAL1>,<VAL2>,...] | 68 | insmod e1000 [<option>=<VAL1>,<VAL2>,...] |
55 | 69 | ||
56 | For example, with two PRO/1000 PCI adapters, entering: | 70 | For example, with two PRO/1000 PCI adapters, entering: |
57 | 71 | ||
58 | insmod e1000 TxDescriptors=80,128 | 72 | insmod e1000 TxDescriptors=80,128 |
59 | 73 | ||
60 | loads the e1000 driver with 80 TX descriptors for the first adapter and 128 TX | 74 | loads the e1000 driver with 80 TX descriptors for the first adapter and 128 |
61 | descriptors for the second adapter. | 75 | TX descriptors for the second adapter. |
62 | 76 | ||
63 | The default value for each parameter is generally the recommended setting, | 77 | The default value for each parameter is generally the recommended setting, |
64 | unless otherwise noted. Also, if the driver is statically built into the | 78 | unless otherwise noted. |
65 | kernel, the driver is loaded with the default values for all the parameters. | 79 | |
66 | Ethtool can be used to change some of the parameters at runtime. | 80 | NOTES: For more information about the AutoNeg, Duplex, and Speed |
81 | parameters, see the "Speed and Duplex Configuration" section in | ||
82 | this document. | ||
67 | 83 | ||
68 | NOTES: For more information about the AutoNeg, Duplex, and Speed | 84 | For more information about the InterruptThrottleRate, |
69 | parameters, see the "Speed and Duplex Configuration" section in | 85 | RxIntDelay, TxIntDelay, RxAbsIntDelay, and TxAbsIntDelay |
70 | this document. | 86 | parameters, see the application note at: |
87 | http://www.intel.com/design/network/applnots/ap450.htm | ||
71 | 88 | ||
72 | For more information about the InterruptThrottleRate, RxIntDelay, | 89 | A descriptor describes a data buffer and attributes related to |
73 | TxIntDelay, RxAbsIntDelay, and TxAbsIntDelay parameters, see the | 90 | the data buffer. This information is accessed by the hardware. |
74 | application note at: | ||
75 | http://www.intel.com/design/network/applnots/ap450.htm | ||
76 | 91 | ||
77 | A descriptor describes a data buffer and attributes related to the | ||
78 | data buffer. This information is accessed by the hardware. | ||
79 | 92 | ||
80 | AutoNeg (adapters using copper connections only) | 93 | AutoNeg |
81 | Valid Range: 0x01-0x0F, 0x20-0x2F | 94 | ------- |
95 | (Supported only on adapters with copper connections) | ||
96 | Valid Range: 0x01-0x0F, 0x20-0x2F | ||
82 | Default Value: 0x2F | 97 | Default Value: 0x2F |
83 | This parameter is a bit mask that specifies which speed and duplex | 98 | |
84 | settings the board advertises. When this parameter is used, the Speed and | 99 | This parameter is a bit mask that specifies which speed and duplex |
85 | Duplex parameters must not be specified. | 100 | settings the board advertises. When this parameter is used, the Speed |
86 | NOTE: Refer to the Speed and Duplex section of this readme for more | 101 | and Duplex parameters must not be specified. |
87 | information on the AutoNeg parameter. | 102 | |
88 | 103 | NOTE: Refer to the Speed and Duplex section of this readme for more | |
89 | Duplex (adapters using copper connections only) | 104 | information on the AutoNeg parameter. |
90 | Valid Range: 0-2 (0=auto-negotiate, 1=half, 2=full) | 105 | |
106 | |||
107 | Duplex | ||
108 | ------ | ||
109 | (Supported only on adapters with copper connections) | ||
110 | Valid Range: 0-2 (0=auto-negotiate, 1=half, 2=full) | ||
91 | Default Value: 0 | 111 | Default Value: 0 |
92 | Defines the direction in which data is allowed to flow. Can be either one | 112 | |
93 | or two-directional. If both Duplex and the link partner are set to auto- | 113 | Defines the direction in which data is allowed to flow. Can be either |
94 | negotiate, the board auto-detects the correct duplex. If the link partner | 114 | one or two-directional. If both Duplex and the link partner are set to |
95 | is forced (either full or half), Duplex defaults to half-duplex. | 115 | auto-negotiate, the board auto-detects the correct duplex. If the link |
116 | partner is forced (either full or half), Duplex defaults to half-duplex. | ||
117 | |||
96 | 118 | ||
97 | FlowControl | 119 | FlowControl |
98 | Valid Range: 0-3 (0=none, 1=Rx only, 2=Tx only, 3=Rx&Tx) | 120 | ---------- |
99 | Default: Read flow control settings from the EEPROM | 121 | Valid Range: 0-3 (0=none, 1=Rx only, 2=Tx only, 3=Rx&Tx) |
100 | This parameter controls the automatic generation(Tx) and response(Rx) to | 122 | Default Value: Reads flow control settings from the EEPROM |
101 | Ethernet PAUSE frames. | 123 | |
124 | This parameter controls the automatic generation(Tx) and response(Rx) | ||
125 | to Ethernet PAUSE frames. | ||
126 | |||
102 | 127 | ||
103 | InterruptThrottleRate | 128 | InterruptThrottleRate |
104 | Valid Range: 100-100000 (0=off, 1=dynamic) | 129 | --------------------- |
130 | (not supported on Intel 82542, 82543 or 82544-based adapters) | ||
131 | Valid Range: 100-100000 (0=off, 1=dynamic) | ||
105 | Default Value: 8000 | 132 | Default Value: 8000 |
106 | This value represents the maximum number of interrupts per second the | 133 | |
107 | controller generates. InterruptThrottleRate is another setting used in | 134 | This value represents the maximum number of interrupts per second the |
108 | interrupt moderation. Dynamic mode uses a heuristic algorithm to adjust | 135 | controller generates. InterruptThrottleRate is another setting used in |
109 | InterruptThrottleRate based on the current traffic load. | 136 | interrupt moderation. Dynamic mode uses a heuristic algorithm to adjust |
110 | Un-supported Adapters: InterruptThrottleRate is NOT supported by 82542, 82543 | 137 | InterruptThrottleRate based on the current traffic load. |
111 | or 82544-based adapters. | 138 | |
112 | 139 | NOTE: InterruptThrottleRate takes precedence over the TxAbsIntDelay and | |
113 | NOTE: InterruptThrottleRate takes precedence over the TxAbsIntDelay and | 140 | RxAbsIntDelay parameters. In other words, minimizing the receive |
114 | RxAbsIntDelay parameters. In other words, minimizing the receive | 141 | and/or transmit absolute delays does not force the controller to |
115 | and/or transmit absolute delays does not force the controller to | 142 | generate more interrupts than what the Interrupt Throttle Rate |
116 | generate more interrupts than what the Interrupt Throttle Rate | 143 | allows. |
117 | allows. | 144 | |
118 | CAUTION: If you are using the Intel PRO/1000 CT Network Connection | 145 | CAUTION: If you are using the Intel PRO/1000 CT Network Connection |
119 | (controller 82547), setting InterruptThrottleRate to a value | 146 | (controller 82547), setting InterruptThrottleRate to a value |
120 | greater than 75,000, may hang (stop transmitting) adapters under | 147 | greater than 75,000, may hang (stop transmitting) adapters |
121 | certain network conditions. If this occurs a NETDEV WATCHDOG | 148 | under certain network conditions. If this occurs a NETDEV |
122 | message is logged in the system event log. In addition, the | 149 | WATCHDOG message is logged in the system event log. In |
123 | controller is automatically reset, restoring the network | 150 | addition, the controller is automatically reset, restoring |
124 | connection. To eliminate the potential for the hang, ensure | 151 | the network connection. To eliminate the potential for the |
125 | that InterruptThrottleRate is set no greater than 75,000 and is | 152 | hang, ensure that InterruptThrottleRate is set no greater |
126 | not set to 0. | 153 | than 75,000 and is not set to 0. |
127 | NOTE: When e1000 is loaded with default settings and multiple adapters are | 154 | |
128 | in use simultaneously, the CPU utilization may increase non-linearly. | 155 | NOTE: When e1000 is loaded with default settings and multiple adapters |
129 | In order to limit the CPU utilization without impacting the overall | 156 | are in use simultaneously, the CPU utilization may increase non- |
130 | throughput, we recommend that you load the driver as follows: | 157 | linearly. In order to limit the CPU utilization without impacting |
131 | 158 | the overall throughput, we recommend that you load the driver as | |
132 | insmod e1000.o InterruptThrottleRate=3000,3000,3000 | 159 | follows: |
133 | 160 | ||
134 | This sets the InterruptThrottleRate to 3000 interrupts/sec for the | 161 | insmod e1000.o InterruptThrottleRate=3000,3000,3000 |
135 | first, second, and third instances of the driver. The range of 2000 to | 162 | |
136 | 3000 interrupts per second works on a majority of systems and is a | 163 | This sets the InterruptThrottleRate to 3000 interrupts/sec for |
137 | good starting point, but the optimal value will be platform-specific. | 164 | the first, second, and third instances of the driver. The range |
138 | If CPU utilization is not a concern, use RX_POLLING (NAPI) and default | 165 | of 2000 to 3000 interrupts per second works on a majority of |
139 | driver settings. | 166 | systems and is a good starting point, but the optimal value will |
167 | be platform-specific. If CPU utilization is not a concern, use | ||
168 | RX_POLLING (NAPI) and default driver settings. | ||
169 | |||
140 | 170 | ||
141 | RxDescriptors | 171 | RxDescriptors |
142 | Valid Range: 80-256 for 82542 and 82543-based adapters | 172 | ------------- |
143 | 80-4096 for all other supported adapters | 173 | Valid Range: 80-256 for 82542 and 82543-based adapters |
174 | 80-4096 for all other supported adapters | ||
144 | Default Value: 256 | 175 | Default Value: 256 |
145 | This value is the number of receive descriptors allocated by the driver. | ||
146 | Increasing this value allows the driver to buffer more incoming packets. | ||
147 | Each descriptor is 16 bytes. A receive buffer is allocated for each | ||
148 | descriptor and can either be 2048 or 4096 bytes long, depending on the MTU | ||
149 | 176 | ||
150 | setting. An incoming packet can span one or more receive descriptors. | 177 | This value specifies the number of receive descriptors allocated by the |
151 | The maximum MTU size is 16110. | 178 | driver. Increasing this value allows the driver to buffer more incoming |
179 | packets. Each descriptor is 16 bytes. A receive buffer is also | ||
180 | allocated for each descriptor and is 2048. | ||
152 | 181 | ||
153 | NOTE: MTU designates the frame size. It only needs to be set for Jumbo | ||
154 | Frames. | ||
155 | NOTE: Depending on the available system resources, the request for a | ||
156 | higher number of receive descriptors may be denied. In this case, | ||
157 | use a lower number. | ||
158 | 182 | ||
159 | RxIntDelay | 183 | RxIntDelay |
160 | Valid Range: 0-65535 (0=off) | 184 | ---------- |
185 | Valid Range: 0-65535 (0=off) | ||
161 | Default Value: 0 | 186 | Default Value: 0 |
162 | This value delays the generation of receive interrupts in units of 1.024 | 187 | |
163 | microseconds. Receive interrupt reduction can improve CPU efficiency if | 188 | This value delays the generation of receive interrupts in units of 1.024 |
164 | properly tuned for specific network traffic. Increasing this value adds | 189 | microseconds. Receive interrupt reduction can improve CPU efficiency if |
165 | extra latency to frame reception and can end up decreasing the throughput | 190 | properly tuned for specific network traffic. Increasing this value adds |
166 | of TCP traffic. If the system is reporting dropped receives, this value | 191 | extra latency to frame reception and can end up decreasing the throughput |
167 | may be set too high, causing the driver to run out of available receive | 192 | of TCP traffic. If the system is reporting dropped receives, this value |
168 | descriptors. | 193 | may be set too high, causing the driver to run out of available receive |
169 | 194 | descriptors. | |
170 | CAUTION: When setting RxIntDelay to a value other than 0, adapters may | 195 | |
171 | hang (stop transmitting) under certain network conditions. If | 196 | CAUTION: When setting RxIntDelay to a value other than 0, adapters may |
172 | this occurs a NETDEV WATCHDOG message is logged in the system | 197 | hang (stop transmitting) under certain network conditions. If |
173 | event log. In addition, the controller is automatically reset, | 198 | this occurs a NETDEV WATCHDOG message is logged in the system |
174 | restoring the network connection. To eliminate the potential for | 199 | event log. In addition, the controller is automatically reset, |
175 | the hang ensure that RxIntDelay is set to 0. | 200 | restoring the network connection. To eliminate the potential |
176 | 201 | for the hang ensure that RxIntDelay is set to 0. | |
177 | RxAbsIntDelay (82540, 82545 and later adapters only) | 202 | |
178 | Valid Range: 0-65535 (0=off) | 203 | |
204 | RxAbsIntDelay | ||
205 | ------------- | ||
206 | (This parameter is supported only on 82540, 82545 and later adapters.) | ||
207 | Valid Range: 0-65535 (0=off) | ||
179 | Default Value: 128 | 208 | Default Value: 128 |
180 | This value, in units of 1.024 microseconds, limits the delay in which a | 209 | |
181 | receive interrupt is generated. Useful only if RxIntDelay is non-zero, | 210 | This value, in units of 1.024 microseconds, limits the delay in which a |
182 | this value ensures that an interrupt is generated after the initial | 211 | receive interrupt is generated. Useful only if RxIntDelay is non-zero, |
183 | packet is received within the set amount of time. Proper tuning, | 212 | this value ensures that an interrupt is generated after the initial |
184 | along with RxIntDelay, may improve traffic throughput in specific network | 213 | packet is received within the set amount of time. Proper tuning, |
185 | conditions. | 214 | along with RxIntDelay, may improve traffic throughput in specific network |
186 | 215 | conditions. | |
187 | Speed (adapters using copper connections only) | 216 | |
217 | |||
218 | Speed | ||
219 | ----- | ||
220 | (This parameter is supported only on adapters with copper connections.) | ||
188 | Valid Settings: 0, 10, 100, 1000 | 221 | Valid Settings: 0, 10, 100, 1000 |
189 | Default Value: 0 (auto-negotiate at all supported speeds) | 222 | Default Value: 0 (auto-negotiate at all supported speeds) |
190 | Speed forces the line speed to the specified value in megabits per second | 223 | |
191 | (Mbps). If this parameter is not specified or is set to 0 and the link | 224 | Speed forces the line speed to the specified value in megabits per second |
192 | partner is set to auto-negotiate, the board will auto-detect the correct | 225 | (Mbps). If this parameter is not specified or is set to 0 and the link |
193 | speed. Duplex should also be set when Speed is set to either 10 or 100. | 226 | partner is set to auto-negotiate, the board will auto-detect the correct |
227 | speed. Duplex should also be set when Speed is set to either 10 or 100. | ||
228 | |||
194 | 229 | ||
195 | TxDescriptors | 230 | TxDescriptors |
196 | Valid Range: 80-256 for 82542 and 82543-based adapters | 231 | ------------- |
197 | 80-4096 for all other supported adapters | 232 | Valid Range: 80-256 for 82542 and 82543-based adapters |
233 | 80-4096 for all other supported adapters | ||
198 | Default Value: 256 | 234 | Default Value: 256 |
199 | This value is the number of transmit descriptors allocated by the driver. | ||
200 | Increasing this value allows the driver to queue more transmits. Each | ||
201 | descriptor is 16 bytes. | ||
202 | 235 | ||
203 | NOTE: Depending on the available system resources, the request for a | 236 | This value is the number of transmit descriptors allocated by the driver. |
204 | higher number of transmit descriptors may be denied. In this case, | 237 | Increasing this value allows the driver to queue more transmits. Each |
205 | use a lower number. | 238 | descriptor is 16 bytes. |
239 | |||
240 | NOTE: Depending on the available system resources, the request for a | ||
241 | higher number of transmit descriptors may be denied. In this case, | ||
242 | use a lower number. | ||
243 | |||
206 | 244 | ||
207 | TxIntDelay | 245 | TxIntDelay |
208 | Valid Range: 0-65535 (0=off) | 246 | ---------- |
247 | Valid Range: 0-65535 (0=off) | ||
209 | Default Value: 64 | 248 | Default Value: 64 |
210 | This value delays the generation of transmit interrupts in units of | 249 | |
211 | 1.024 microseconds. Transmit interrupt reduction can improve CPU | 250 | This value delays the generation of transmit interrupts in units of |
212 | efficiency if properly tuned for specific network traffic. If the | 251 | 1.024 microseconds. Transmit interrupt reduction can improve CPU |
213 | system is reporting dropped transmits, this value may be set too high | 252 | efficiency if properly tuned for specific network traffic. If the |
214 | causing the driver to run out of available transmit descriptors. | 253 | system is reporting dropped transmits, this value may be set too high |
215 | 254 | causing the driver to run out of available transmit descriptors. | |
216 | TxAbsIntDelay (82540, 82545 and later adapters only) | 255 | |
217 | Valid Range: 0-65535 (0=off) | 256 | |
257 | TxAbsIntDelay | ||
258 | ------------- | ||
259 | (This parameter is supported only on 82540, 82545 and later adapters.) | ||
260 | Valid Range: 0-65535 (0=off) | ||
218 | Default Value: 64 | 261 | Default Value: 64 |
219 | This value, in units of 1.024 microseconds, limits the delay in which a | 262 | |
220 | transmit interrupt is generated. Useful only if TxIntDelay is non-zero, | 263 | This value, in units of 1.024 microseconds, limits the delay in which a |
221 | this value ensures that an interrupt is generated after the initial | 264 | transmit interrupt is generated. Useful only if TxIntDelay is non-zero, |
222 | packet is sent on the wire within the set amount of time. Proper tuning, | 265 | this value ensures that an interrupt is generated after the initial |
223 | along with TxIntDelay, may improve traffic throughput in specific | 266 | packet is sent on the wire within the set amount of time. Proper tuning, |
224 | network conditions. | 267 | along with TxIntDelay, may improve traffic throughput in specific |
225 | 268 | network conditions. | |
226 | XsumRX (not available on the 82542-based adapter) | 269 | |
227 | Valid Range: 0-1 | 270 | XsumRX |
271 | ------ | ||
272 | (This parameter is NOT supported on the 82542-based adapter.) | ||
273 | Valid Range: 0-1 | ||
228 | Default Value: 1 | 274 | Default Value: 1 |
229 | A value of '1' indicates that the driver should enable IP checksum | 275 | |
230 | offload for received packets (both UDP and TCP) to the adapter hardware. | 276 | A value of '1' indicates that the driver should enable IP checksum |
277 | offload for received packets (both UDP and TCP) to the adapter hardware. | ||
278 | |||
231 | 279 | ||
232 | Speed and Duplex Configuration | 280 | Speed and Duplex Configuration |
233 | ============================== | 281 | ============================== |
234 | 282 | ||
235 | Three keywords are used to control the speed and duplex configuration. These | 283 | Three keywords are used to control the speed and duplex configuration. |
236 | keywords are Speed, Duplex, and AutoNeg. | 284 | These keywords are Speed, Duplex, and AutoNeg. |
237 | 285 | ||
238 | If the board uses a fiber interface, these keywords are ignored, and the | 286 | If the board uses a fiber interface, these keywords are ignored, and the |
239 | fiber interface board only links at 1000 Mbps full-duplex. | 287 | fiber interface board only links at 1000 Mbps full-duplex. |
240 | 288 | ||
241 | For copper-based boards, the keywords interact as follows: | 289 | For copper-based boards, the keywords interact as follows: |
242 | 290 | ||
243 | The default operation is auto-negotiate. The board advertises all supported | 291 | The default operation is auto-negotiate. The board advertises all |
244 | speed and duplex combinations, and it links at the highest common speed and | 292 | supported speed and duplex combinations, and it links at the highest |
245 | duplex mode IF the link partner is set to auto-negotiate. | 293 | common speed and duplex mode IF the link partner is set to auto-negotiate. |
246 | 294 | ||
247 | If Speed = 1000, limited auto-negotiation is enabled and only 1000 Mbps is | 295 | If Speed = 1000, limited auto-negotiation is enabled and only 1000 Mbps |
248 | advertised (The 1000BaseT spec requires auto-negotiation.) | 296 | is advertised (The 1000BaseT spec requires auto-negotiation.) |
249 | 297 | ||
250 | If Speed = 10 or 100, then both Speed and Duplex should be set. Auto- | 298 | If Speed = 10 or 100, then both Speed and Duplex should be set. Auto- |
251 | negotiation is disabled, and the AutoNeg parameter is ignored. Partner SHOULD | 299 | negotiation is disabled, and the AutoNeg parameter is ignored. Partner |
252 | also be forced. | 300 | SHOULD also be forced. |
301 | |||
302 | The AutoNeg parameter is used when more control is required over the | ||
303 | auto-negotiation process. It should be used when you wish to control which | ||
304 | speed and duplex combinations are advertised during the auto-negotiation | ||
305 | process. | ||
306 | |||
307 | The parameter may be specified as either a decimal or hexidecimal value as | ||
308 | determined by the bitmap below. | ||
253 | 309 | ||
254 | The AutoNeg parameter is used when more control is required over the auto- | 310 | Bit position 7 6 5 4 3 2 1 0 |
255 | negotiation process. When this parameter is used, Speed and Duplex parameters | 311 | Decimal Value 128 64 32 16 8 4 2 1 |
256 | must not be specified. The following table describes supported values for the | 312 | Hex value 80 40 20 10 8 4 2 1 |
257 | AutoNeg parameter: | 313 | Speed (Mbps) N/A N/A 1000 N/A 100 100 10 10 |
314 | Duplex Full Full Half Full Half | ||
258 | 315 | ||
259 | Speed (Mbps) 1000 100 100 10 10 | 316 | Some examples of using AutoNeg: |
260 | Duplex Full Full Half Full Half | ||
261 | Value (in base 16) 0x20 0x08 0x04 0x02 0x01 | ||
262 | 317 | ||
263 | Example: insmod e1000 AutoNeg=0x03, loads e1000 and specifies (10 full duplex, | 318 | modprobe e1000 AutoNeg=0x01 (Restricts autonegotiation to 10 Half) |
264 | 10 half duplex) for negotiation with the peer. | 319 | modprobe e1000 AutoNeg=1 (Same as above) |
320 | modprobe e1000 AutoNeg=0x02 (Restricts autonegotiation to 10 Full) | ||
321 | modprobe e1000 AutoNeg=0x03 (Restricts autonegotiation to 10 Half or 10 Full) | ||
322 | modprobe e1000 AutoNeg=0x04 (Restricts autonegotiation to 100 Half) | ||
323 | modprobe e1000 AutoNeg=0x05 (Restricts autonegotiation to 10 Half or 100 | ||
324 | Half) | ||
325 | modprobe e1000 AutoNeg=0x020 (Restricts autonegotiation to 1000 Full) | ||
326 | modprobe e1000 AutoNeg=32 (Same as above) | ||
265 | 327 | ||
266 | Note that setting AutoNeg does not guarantee that the board will link at the | 328 | Note that when this parameter is used, Speed and Duplex must not be specified. |
267 | highest specified speed or duplex mode, but the board will link at the | 329 | |
268 | highest possible speed/duplex of the link partner IF the link partner is also | 330 | If the link partner is forced to a specific speed and duplex, then this |
269 | set to auto-negotiate. If the link partner is forced speed/duplex, the | 331 | parameter should not be used. Instead, use the Speed and Duplex parameters |
270 | adapter MUST be forced to the same speed/duplex. | 332 | previously mentioned to force the adapter to the same speed and duplex. |
271 | 333 | ||
272 | 334 | ||
273 | Additional Configurations | 335 | Additional Configurations |
@@ -276,19 +338,19 @@ Additional Configurations | |||
276 | Configuring the Driver on Different Distributions | 338 | Configuring the Driver on Different Distributions |
277 | ------------------------------------------------- | 339 | ------------------------------------------------- |
278 | 340 | ||
279 | Configuring a network driver to load properly when the system is started is | 341 | Configuring a network driver to load properly when the system is started |
280 | distribution dependent. Typically, the configuration process involves adding | 342 | is distribution dependent. Typically, the configuration process involves |
281 | an alias line to /etc/modules.conf as well as editing other system startup | 343 | adding an alias line to /etc/modules.conf or /etc/modprobe.conf as well |
282 | scripts and/or configuration files. Many popular Linux distributions ship | 344 | as editing other system startup scripts and/or configuration files. Many |
283 | with tools to make these changes for you. To learn the proper way to | 345 | popular Linux distributions ship with tools to make these changes for you. |
284 | configure a network device for your system, refer to your distribution | 346 | To learn the proper way to configure a network device for your system, |
285 | documentation. If during this process you are asked for the driver or module | 347 | refer to your distribution documentation. If during this process you are |
286 | name, the name for the Linux Base Driver for the Intel PRO/1000 Family of | 348 | asked for the driver or module name, the name for the Linux Base Driver |
287 | Adapters is e1000. | 349 | for the Intel PRO/1000 Family of Adapters is e1000. |
288 | 350 | ||
289 | As an example, if you install the e1000 driver for two PRO/1000 adapters | 351 | As an example, if you install the e1000 driver for two PRO/1000 adapters |
290 | (eth0 and eth1) and set the speed and duplex to 10full and 100half, add the | 352 | (eth0 and eth1) and set the speed and duplex to 10full and 100half, add |
291 | following to modules.conf: | 353 | the following to modules.conf or or modprobe.conf: |
292 | 354 | ||
293 | alias eth0 e1000 | 355 | alias eth0 e1000 |
294 | alias eth1 e1000 | 356 | alias eth1 e1000 |
@@ -297,9 +359,9 @@ Additional Configurations | |||
297 | Viewing Link Messages | 359 | Viewing Link Messages |
298 | --------------------- | 360 | --------------------- |
299 | 361 | ||
300 | Link messages will not be displayed to the console if the distribution is | 362 | Link messages will not be displayed to the console if the distribution is |
301 | restricting system messages. In order to see network driver link messages on | 363 | restricting system messages. In order to see network driver link messages |
302 | your console, set dmesg to eight by entering the following: | 364 | on your console, set dmesg to eight by entering the following: |
303 | 365 | ||
304 | dmesg -n 8 | 366 | dmesg -n 8 |
305 | 367 | ||
@@ -308,22 +370,42 @@ Additional Configurations | |||
308 | Jumbo Frames | 370 | Jumbo Frames |
309 | ------------ | 371 | ------------ |
310 | 372 | ||
311 | The driver supports Jumbo Frames for all adapters except 82542-based | 373 | The driver supports Jumbo Frames for all adapters except 82542 and |
312 | adapters. Jumbo Frames support is enabled by changing the MTU to a value | 374 | 82573-based adapters. Jumbo Frames support is enabled by changing the |
313 | larger than the default of 1500. Use the ifconfig command to increase the | 375 | MTU to a value larger than the default of 1500. Use the ifconfig command |
314 | MTU size. For example: | 376 | to increase the MTU size. For example: |
377 | |||
378 | ifconfig eth<x> mtu 9000 up | ||
379 | |||
380 | This setting is not saved across reboots. It can be made permanent if | ||
381 | you add: | ||
382 | |||
383 | MTU=9000 | ||
315 | 384 | ||
316 | ifconfig ethx mtu 9000 up | 385 | to the file /etc/sysconfig/network-scripts/ifcfg-eth<x>. This example |
386 | applies to the Red Hat distributions; other distributions may store this | ||
387 | setting in a different location. | ||
317 | 388 | ||
318 | The maximum MTU setting for Jumbo Frames is 16110. This value coincides | 389 | Notes: |
319 | with the maximum Jumbo Frames size of 16128. | ||
320 | 390 | ||
321 | NOTE: Jumbo Frames are supported at 1000 Mbps only. Using Jumbo Frames at | 391 | - To enable Jumbo Frames, increase the MTU size on the interface beyond |
322 | 10 or 100 Mbps may result in poor performance or loss of link. | 392 | 1500. |
393 | - The maximum MTU setting for Jumbo Frames is 16110. This value coincides | ||
394 | with the maximum Jumbo Frames size of 16128. | ||
395 | - Using Jumbo Frames at 10 or 100 Mbps may result in poor performance or | ||
396 | loss of link. | ||
397 | - Some Intel gigabit adapters that support Jumbo Frames have a frame size | ||
398 | limit of 9238 bytes, with a corresponding MTU size limit of 9216 bytes. | ||
399 | The adapters with this limitation are based on the Intel 82571EB and | ||
400 | 82572EI controllers, which correspond to these product names: | ||
401 | Intel® PRO/1000 PT Dual Port Server Adapter | ||
402 | Intel® PRO/1000 PF Dual Port Server Adapter | ||
403 | Intel® PRO/1000 PT Server Adapter | ||
404 | Intel® PRO/1000 PT Desktop Adapter | ||
405 | Intel® PRO/1000 PF Server Adapter | ||
323 | 406 | ||
407 | - The Intel PRO/1000 PM Network Connection does not support jumbo frames. | ||
324 | 408 | ||
325 | NOTE: MTU designates the frame size. To enable Jumbo Frames, increase the | ||
326 | MTU size on the interface beyond 1500. | ||
327 | 409 | ||
328 | Ethtool | 410 | Ethtool |
329 | ------- | 411 | ------- |
@@ -333,32 +415,41 @@ Additional Configurations | |||
333 | version 1.6 or later is required for this functionality. | 415 | version 1.6 or later is required for this functionality. |
334 | 416 | ||
335 | The latest release of ethtool can be found from | 417 | The latest release of ethtool can be found from |
336 | http://sf.net/projects/gkernel. | 418 | http://sourceforge.net/projects/gkernel. |
337 | 419 | ||
338 | NOTE: Ethtool 1.6 only supports a limited set of ethtool options. Support | 420 | NOTE: Ethtool 1.6 only supports a limited set of ethtool options. Support |
339 | for a more complete ethtool feature set can be enabled by upgrading | 421 | for a more complete ethtool feature set can be enabled by upgrading |
340 | ethtool to ethtool-1.8.1. | 422 | ethtool to ethtool-1.8.1. |
341 | 423 | ||
342 | Enabling Wake on LAN* (WoL) | 424 | Enabling Wake on LAN* (WoL) |
343 | --------------------------- | 425 | --------------------------- |
344 | 426 | ||
345 | WoL is configured through the Ethtool* utility. Ethtool is included with | 427 | WoL is configured through the Ethtool* utility. Ethtool is included with |
346 | all versions of Red Hat after Red Hat 7.2. For other Linux distributions, | 428 | all versions of Red Hat after Red Hat 7.2. For other Linux distributions, |
347 | download and install Ethtool from the following website: | 429 | download and install Ethtool from the following website: |
348 | http://sourceforge.net/projects/gkernel. | 430 | http://sourceforge.net/projects/gkernel. |
349 | 431 | ||
350 | For instructions on enabling WoL with Ethtool, refer to the website listed | 432 | For instructions on enabling WoL with Ethtool, refer to the website listed |
351 | above. | 433 | above. |
352 | 434 | ||
353 | WoL will be enabled on the system during the next shut down or reboot. | 435 | WoL will be enabled on the system during the next shut down or reboot. |
354 | For this driver version, in order to enable WoL, the e1000 driver must be | 436 | For this driver version, in order to enable WoL, the e1000 driver must be |
355 | loaded when shutting down or rebooting the system. | 437 | loaded when shutting down or rebooting the system. |
356 | 438 | ||
357 | NAPI | 439 | NAPI |
358 | ---- | 440 | ---- |
359 | 441 | ||
360 | NAPI (Rx polling mode) is supported in the e1000 driver. NAPI is enabled | 442 | NAPI (Rx polling mode) is supported in the e1000 driver. NAPI is enabled |
361 | or disabled based on the configuration of the kernel. | 443 | or disabled based on the configuration of the kernel. To override |
444 | the default, use the following compile-time flags. | ||
445 | |||
446 | To enable NAPI, compile the driver module, passing in a configuration option: | ||
447 | |||
448 | make CFLAGS_EXTRA=-DE1000_NAPI install | ||
449 | |||
450 | To disable NAPI, compile the driver module, passing in a configuration option: | ||
451 | |||
452 | make CFLAGS_EXTRA=-DE1000_NO_NAPI install | ||
362 | 453 | ||
363 | See www.cyberus.ca/~hadi/usenix-paper.tgz for more information on NAPI. | 454 | See www.cyberus.ca/~hadi/usenix-paper.tgz for more information on NAPI. |
364 | 455 | ||
@@ -369,10 +460,85 @@ Known Issues | |||
369 | Jumbo Frames System Requirement | 460 | Jumbo Frames System Requirement |
370 | ------------------------------- | 461 | ------------------------------- |
371 | 462 | ||
372 | Memory allocation failures have been observed on Linux systems with 64 MB | 463 | Memory allocation failures have been observed on Linux systems with 64 MB |
373 | of RAM or less that are running Jumbo Frames. If you are using Jumbo Frames, | 464 | of RAM or less that are running Jumbo Frames. If you are using Jumbo |
374 | your system may require more than the advertised minimum requirement of 64 MB | 465 | Frames, your system may require more than the advertised minimum |
375 | of system memory. | 466 | requirement of 64 MB of system memory. |
467 | |||
468 | Performance Degradation with Jumbo Frames | ||
469 | ----------------------------------------- | ||
470 | |||
471 | Degradation in throughput performance may be observed in some Jumbo frames | ||
472 | environments. If this is observed, increasing the application's socket | ||
473 | buffer size and/or increasing the /proc/sys/net/ipv4/tcp_*mem entry values | ||
474 | may help. See the specific application manual and | ||
475 | /usr/src/linux*/Documentation/ | ||
476 | networking/ip-sysctl.txt for more details. | ||
477 | |||
478 | Jumbo frames on Foundry BigIron 8000 switch | ||
479 | ------------------------------------------- | ||
480 | There is a known issue using Jumbo frames when connected to a Foundry | ||
481 | BigIron 8000 switch. This is a 3rd party limitation. If you experience | ||
482 | loss of packets, lower the MTU size. | ||
483 | |||
484 | Multiple Interfaces on Same Ethernet Broadcast Network | ||
485 | ------------------------------------------------------ | ||
486 | |||
487 | Due to the default ARP behavior on Linux, it is not possible to have | ||
488 | one system on two IP networks in the same Ethernet broadcast domain | ||
489 | (non-partitioned switch) behave as expected. All Ethernet interfaces | ||
490 | will respond to IP traffic for any IP address assigned to the system. | ||
491 | This results in unbalanced receive traffic. | ||
492 | |||
493 | If you have multiple interfaces in a server, either turn on ARP | ||
494 | filtering by entering: | ||
495 | |||
496 | echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter | ||
497 | (this only works if your kernel's version is higher than 2.4.5), | ||
498 | |||
499 | NOTE: This setting is not saved across reboots. The configuration | ||
500 | change can be made permanent by adding the line: | ||
501 | net.ipv4.conf.all.arp_filter = 1 | ||
502 | to the file /etc/sysctl.conf | ||
503 | |||
504 | or, | ||
505 | |||
506 | install the interfaces in separate broadcast domains (either in | ||
507 | different switches or in a switch partitioned to VLANs). | ||
508 | |||
509 | 82541/82547 can't link or are slow to link with some link partners | ||
510 | ----------------------------------------------------------------- | ||
511 | |||
512 | There is a known compatibility issue with 82541/82547 and some | ||
513 | low-end switches where the link will not be established, or will | ||
514 | be slow to establish. In particular, these switches are known to | ||
515 | be incompatible with 82541/82547: | ||
516 | |||
517 | Planex FXG-08TE | ||
518 | I-O Data ETG-SH8 | ||
519 | |||
520 | To workaround this issue, the driver can be compiled with an override | ||
521 | of the PHY's master/slave setting. Forcing master or forcing slave | ||
522 | mode will improve time-to-link. | ||
523 | |||
524 | # make EXTRA_CFLAGS=-DE1000_MASTER_SLAVE=<n> | ||
525 | |||
526 | Where <n> is: | ||
527 | |||
528 | 0 = Hardware default | ||
529 | 1 = Master mode | ||
530 | 2 = Slave mode | ||
531 | 3 = Auto master/slave | ||
532 | |||
533 | Disable rx flow control with ethtool | ||
534 | ------------------------------------ | ||
535 | |||
536 | In order to disable receive flow control using ethtool, you must turn | ||
537 | off auto-negotiation on the same command line. | ||
538 | |||
539 | For example: | ||
540 | |||
541 | ethtool -A eth? autoneg off rx off | ||
376 | 542 | ||
377 | 543 | ||
378 | Support | 544 | Support |
@@ -382,20 +548,24 @@ For general information, go to the Intel support website at: | |||
382 | 548 | ||
383 | http://support.intel.com | 549 | http://support.intel.com |
384 | 550 | ||
551 | or the Intel Wired Networking project hosted by Sourceforge at: | ||
552 | |||
553 | http://sourceforge.net/projects/e1000 | ||
554 | |||
385 | If an issue is identified with the released source code on the supported | 555 | If an issue is identified with the released source code on the supported |
386 | kernel with a supported adapter, email the specific information related to | 556 | kernel with a supported adapter, email the specific information related |
387 | the issue to linux.nics@intel.com. | 557 | to the issue to e1000-devel@lists.sourceforge.net |
388 | 558 | ||
389 | 559 | ||
390 | License | 560 | License |
391 | ======= | 561 | ======= |
392 | 562 | ||
393 | This software program is released under the terms of a license agreement | 563 | This software program is released under the terms of a license agreement |
394 | between you ('Licensee') and Intel. Do not use or load this software or any | 564 | between you ('Licensee') and Intel. Do not use or load this software or any |
395 | associated materials (collectively, the 'Software') until you have carefully | 565 | associated materials (collectively, the 'Software') until you have carefully |
396 | read the full terms and conditions of the LICENSE located in this software | 566 | read the full terms and conditions of the file COPYING located in this software |
397 | package. By loading or using the Software, you agree to the terms of this | 567 | package. By loading or using the Software, you agree to the terms of this |
398 | Agreement. If you do not agree with the terms of this Agreement, do not | 568 | Agreement. If you do not agree with the terms of this Agreement, do not |
399 | install or use the Software. | 569 | install or use the Software. |
400 | 570 | ||
401 | * Other names and brands may be claimed as the property of others. | 571 | * Other names and brands may be claimed as the property of others. |
diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt index 36b511c7cade..1def6049784c 100644 --- a/Documentation/sound/alsa/ALSA-Configuration.txt +++ b/Documentation/sound/alsa/ALSA-Configuration.txt | |||
@@ -513,6 +513,8 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
513 | 513 | ||
514 | This module supports multiple cards and autoprobe. | 514 | This module supports multiple cards and autoprobe. |
515 | 515 | ||
516 | The power-management is supported. | ||
517 | |||
516 | Module snd-ens1371 | 518 | Module snd-ens1371 |
517 | ------------------ | 519 | ------------------ |
518 | 520 | ||
@@ -526,6 +528,8 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
526 | 528 | ||
527 | This module supports multiple cards and autoprobe. | 529 | This module supports multiple cards and autoprobe. |
528 | 530 | ||
531 | The power-management is supported. | ||
532 | |||
529 | Module snd-es968 | 533 | Module snd-es968 |
530 | ---------------- | 534 | ---------------- |
531 | 535 | ||
@@ -671,6 +675,8 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
671 | 675 | ||
672 | model - force the model name | 676 | model - force the model name |
673 | position_fix - Fix DMA pointer (0 = auto, 1 = none, 2 = POSBUF, 3 = FIFO size) | 677 | position_fix - Fix DMA pointer (0 = auto, 1 = none, 2 = POSBUF, 3 = FIFO size) |
678 | single_cmd - Use single immediate commands to communicate with | ||
679 | codecs (for debugging only) | ||
674 | 680 | ||
675 | This module supports one card and autoprobe. | 681 | This module supports one card and autoprobe. |
676 | 682 | ||
@@ -694,13 +700,34 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
694 | asus 3-jack | 700 | asus 3-jack |
695 | uniwill 3-jack | 701 | uniwill 3-jack |
696 | F1734 2-jack | 702 | F1734 2-jack |
703 | lg LG laptop (m1 express dual) | ||
697 | test for testing/debugging purpose, almost all controls can be | 704 | test for testing/debugging purpose, almost all controls can be |
698 | adjusted. Appearing only when compiled with | 705 | adjusted. Appearing only when compiled with |
699 | $CONFIG_SND_DEBUG=y | 706 | $CONFIG_SND_DEBUG=y |
707 | auto auto-config reading BIOS (default) | ||
700 | 708 | ||
701 | ALC260 | 709 | ALC260 |
702 | hp HP machines | 710 | hp HP machines |
703 | fujitsu Fujitsu S7020 | 711 | fujitsu Fujitsu S7020 |
712 | acer Acer TravelMate | ||
713 | basic fixed pin assignment (old default model) | ||
714 | auto auto-config reading BIOS (default) | ||
715 | |||
716 | ALC262 | ||
717 | fujitsu Fujitsu Laptop | ||
718 | basic fixed pin assignment w/o SPDIF | ||
719 | auto auto-config reading BIOS (default) | ||
720 | |||
721 | ALC882/883/885 | ||
722 | 3stack-dig 3-jack with SPDIF I/O | ||
723 | 6stck-dig 6-jack digital with SPDIF I/O | ||
724 | auto auto-config reading BIOS (default) | ||
725 | |||
726 | ALC861 | ||
727 | 3stack 3-jack | ||
728 | 3stack-dig 3-jack with SPDIF I/O | ||
729 | 6stack-dig 6-jack with SPDIF I/O | ||
730 | auto auto-config reading BIOS (default) | ||
704 | 731 | ||
705 | CMI9880 | 732 | CMI9880 |
706 | minimal 3-jack in back | 733 | minimal 3-jack in back |
@@ -710,6 +737,28 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
710 | allout 5-jack in back, 2-jack in front, SPDIF out | 737 | allout 5-jack in back, 2-jack in front, SPDIF out |
711 | auto auto-config reading BIOS (default) | 738 | auto auto-config reading BIOS (default) |
712 | 739 | ||
740 | AD1981 | ||
741 | basic 3-jack (default) | ||
742 | hp HP nx6320 | ||
743 | |||
744 | AD1986A | ||
745 | 6stack 6-jack, separate surrounds (default) | ||
746 | 3stack 3-stack, shared surrounds | ||
747 | laptop 2-channel only (FSC V2060, Samsung M50) | ||
748 | laptop-eapd 2-channel with EAPD (Samsung R65, ASUS A6J) | ||
749 | |||
750 | AD1988 | ||
751 | 6stack 6-jack | ||
752 | 6stack-dig ditto with SPDIF | ||
753 | 3stack 3-jack | ||
754 | 3stack-dig ditto with SPDIF | ||
755 | laptop 3-jack with hp-jack automute | ||
756 | laptop-dig ditto with SPDIF | ||
757 | auto auto-confgi reading BIOS (default) | ||
758 | |||
759 | STAC7661(?) | ||
760 | vaio Setup for VAIO FE550G/SZ110 | ||
761 | |||
713 | If the default configuration doesn't work and one of the above | 762 | If the default configuration doesn't work and one of the above |
714 | matches with your device, report it together with the PCI | 763 | matches with your device, report it together with the PCI |
715 | subsystem ID (output of "lspci -nv") to ALSA BTS or alsa-devel | 764 | subsystem ID (output of "lspci -nv") to ALSA BTS or alsa-devel |
@@ -723,6 +772,17 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
723 | (Usually SD_LPLIB register is more accurate than the | 772 | (Usually SD_LPLIB register is more accurate than the |
724 | position buffer.) | 773 | position buffer.) |
725 | 774 | ||
775 | NB: If you get many "azx_get_response timeout" messages at | ||
776 | loading, it's likely a problem of interrupts (e.g. ACPI irq | ||
777 | routing). Try to boot with options like "pci=noacpi". Also, you | ||
778 | can try "single_cmd=1" module option. This will switch the | ||
779 | communication method between HDA controller and codecs to the | ||
780 | single immediate commands instead of CORB/RIRB. Basically, the | ||
781 | single command mode is provided only for BIOS, and you won't get | ||
782 | unsolicited events, too. But, at least, this works independently | ||
783 | from the irq. Remember this is a last resort, and should be | ||
784 | avoided as much as possible... | ||
785 | |||
726 | The power-management is supported. | 786 | The power-management is supported. |
727 | 787 | ||
728 | Module snd-hdsp | 788 | Module snd-hdsp |
@@ -802,6 +862,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
802 | ------------------ | 862 | ------------------ |
803 | 863 | ||
804 | Module for Envy24HT (VT/ICE1724), Envy24PT (VT1720) based PCI sound cards. | 864 | Module for Envy24HT (VT/ICE1724), Envy24PT (VT1720) based PCI sound cards. |
865 | * MidiMan M Audio Revolution 5.1 | ||
805 | * MidiMan M Audio Revolution 7.1 | 866 | * MidiMan M Audio Revolution 7.1 |
806 | * AMP Ltd AUDIO2000 | 867 | * AMP Ltd AUDIO2000 |
807 | * TerraTec Aureon 5.1 Sky | 868 | * TerraTec Aureon 5.1 Sky |
@@ -810,6 +871,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
810 | * TerraTec Phase 22 | 871 | * TerraTec Phase 22 |
811 | * TerraTec Phase 28 | 872 | * TerraTec Phase 28 |
812 | * AudioTrak Prodigy 7.1 | 873 | * AudioTrak Prodigy 7.1 |
874 | * AudioTrak Prodigy 7.1LT | ||
813 | * AudioTrak Prodigy 192 | 875 | * AudioTrak Prodigy 192 |
814 | * Pontis MS300 | 876 | * Pontis MS300 |
815 | * Albatron K8X800 Pro II | 877 | * Albatron K8X800 Pro II |
@@ -820,9 +882,9 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
820 | * Shuttle SN25P | 882 | * Shuttle SN25P |
821 | 883 | ||
822 | model - Use the given board model, one of the following: | 884 | model - Use the given board model, one of the following: |
823 | revo71, amp2000, prodigy71, prodigy192, aureon51, | 885 | revo51, revo71, amp2000, prodigy71, prodigy71lt, |
824 | aureon71, universe, k8x800, phase22, phase28, ms300, | 886 | prodigy192, aureon51, aureon71, universe, |
825 | av710 | 887 | k8x800, phase22, phase28, ms300, av710 |
826 | 888 | ||
827 | This module supports multiple cards and autoprobe. | 889 | This module supports multiple cards and autoprobe. |
828 | 890 | ||
@@ -1353,6 +1415,9 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
1353 | 1415 | ||
1354 | vid - Vendor ID for the device (optional) | 1416 | vid - Vendor ID for the device (optional) |
1355 | pid - Product ID for the device (optional) | 1417 | pid - Product ID for the device (optional) |
1418 | device_setup - Device specific magic number (optional) | ||
1419 | - Influence depends on the device | ||
1420 | - Default: 0x0000 | ||
1356 | 1421 | ||
1357 | This module supports multiple devices, autoprobe and hotplugging. | 1422 | This module supports multiple devices, autoprobe and hotplugging. |
1358 | 1423 | ||
diff --git a/Documentation/sound/alsa/Audiophile-Usb.txt b/Documentation/sound/alsa/Audiophile-Usb.txt new file mode 100644 index 000000000000..4692c8e77dc1 --- /dev/null +++ b/Documentation/sound/alsa/Audiophile-Usb.txt | |||
@@ -0,0 +1,333 @@ | |||
1 | Guide to using M-Audio Audiophile USB with ALSA and Jack v1.2 | ||
2 | ======================================================== | ||
3 | |||
4 | Thibault Le Meur <Thibault.LeMeur@supelec.fr> | ||
5 | |||
6 | This document is a guide to using the M-Audio Audiophile USB (tm) device with | ||
7 | ALSA and JACK. | ||
8 | |||
9 | 1 - Audiophile USB Specs and correct usage | ||
10 | ========================================== | ||
11 | This part is a reminder of important facts about the functions and limitations | ||
12 | of the device. | ||
13 | |||
14 | The device has 4 audio interfaces, and 2 MIDI ports: | ||
15 | * Analog Stereo Input (Ai) | ||
16 | - This port supports 2 pairs of line-level audio inputs (1/4" TS and RCA) | ||
17 | - When the 1/4" TS (jack) connectors are connected, the RCA connectors | ||
18 | are disabled | ||
19 | * Analog Stereo Output (Ao) | ||
20 | * Digital Stereo Input (Di) | ||
21 | * Digital Stereo Output (Do) | ||
22 | * Midi In (Mi) | ||
23 | * Midi Out (Mo) | ||
24 | |||
25 | The internal DAC/ADC has the following caracteristics: | ||
26 | * sample depth of 16 or 24 bits | ||
27 | * sample rate from 8kHz to 96kHz | ||
28 | * Two ports can't use different sample depths at the same time.Moreover, the | ||
29 | Audiophile USB documentation gives the following Warning: "Please exit any | ||
30 | audio application running before switching between bit depths" | ||
31 | |||
32 | Due to the USB 1.1 bandwidth limitation, a limited number of interfaces can be | ||
33 | activated at the same time depending on the audio mode selected: | ||
34 | * 16-bit/48kHz ==> 4 channels in/ 4 channels out | ||
35 | - Ai+Ao+Di+Do | ||
36 | * 24-bit/48kHz ==> 4 channels in/2 channels out, | ||
37 | or 2 channels in/4 channels out | ||
38 | - Ai+Ao+Do or Ai+Di+Ao or Ai+Di+Do or Di+Ao+Do | ||
39 | * 24-bit/96kHz ==> 2 channels in, or 2 channels out (half duplex only) | ||
40 | - Ai or Ao or Di or Do | ||
41 | |||
42 | Important facts about the Digital interface: | ||
43 | -------------------------------------------- | ||
44 | * The Do port additionnaly supports surround-encoded AC-3 and DTS passthrough, | ||
45 | though I haven't tested it under linux | ||
46 | - Note that in this setup only the Do interface can be enabled | ||
47 | * Apart from recording an audio digital stream, enabling the Di port is a way | ||
48 | to synchronize the device to an external sample clock | ||
49 | - As a consequence, the Di port must be enable only if an active Digital | ||
50 | source is connected | ||
51 | - Enabling Di when no digital source is connected can result in a | ||
52 | synchronization error (for instance sound played at an odd sample rate) | ||
53 | |||
54 | |||
55 | 2 - Audiophile USB support in ALSA | ||
56 | ================================== | ||
57 | |||
58 | 2.1 - MIDI ports | ||
59 | ---------------- | ||
60 | The Audiophile USB MIDI ports will be automatically supported once the | ||
61 | following modules have been loaded: | ||
62 | * snd-usb-audio | ||
63 | * snd-seq | ||
64 | * snd-seq-midi | ||
65 | |||
66 | No additionnal setting is required. | ||
67 | |||
68 | 2.2 - Audio ports | ||
69 | ----------------- | ||
70 | |||
71 | Audio functions of the Audiophile USB device are handled by the snd-usb-audio | ||
72 | module. This module can work in a default mode (without any device-specific | ||
73 | parameter), or in an advanced mode with the device-specific parameter called | ||
74 | "device_setup". | ||
75 | |||
76 | 2.2.1 - Default Alsa driver mode | ||
77 | |||
78 | The default behaviour of the snd-usb-audio driver is to parse the device | ||
79 | capabilities at startup and enable all functions inside the device (including | ||
80 | all ports at any sample rates and any sample depths supported). This approach | ||
81 | has the advantage to let the driver easily switch from sample rates/depths | ||
82 | automatically according to the need of the application claiming the device. | ||
83 | |||
84 | In this case the Audiophile ports are mapped to alsa pcm devices in the | ||
85 | following way (I suppose the device's index is 1): | ||
86 | * hw:1,0 is Ao in playback and Di in capture | ||
87 | * hw:1,1 is Do in playback and Ai in capture | ||
88 | * hw:1,2 is Do in AC3/DTS passthrough mode | ||
89 | |||
90 | You must note as well that the device uses Big Endian byte encoding so that | ||
91 | supported audio format are S16_BE for 16-bit depth modes and S24_3BE for | ||
92 | 24-bits depth mode. One exception is the hw:1,2 port which is Little Endian | ||
93 | compliant and thus uses S16_LE. | ||
94 | |||
95 | Examples: | ||
96 | * playing a S24_3BE encoded raw file to the Ao port | ||
97 | % aplay -D hw:1,0 -c2 -t raw -r48000 -fS24_3BE test.raw | ||
98 | * recording a S24_3BE encoded raw file from the Ai port | ||
99 | % arecord -D hw:1,1 -c2 -t raw -r48000 -fS24_3BE test.raw | ||
100 | * playing a S16_BE encoded raw file to the Do port | ||
101 | % aplay -D hw:1,1 -c2 -t raw -r48000 -fS16_BE test.raw | ||
102 | |||
103 | If you're happy with the default Alsa driver setup and don't experience any | ||
104 | issue with this mode, then you can skip the following chapter. | ||
105 | |||
106 | 2.2.2 - Advanced module setup | ||
107 | |||
108 | Due to the hardware constraints described above, the device initialization made | ||
109 | by the Alsa driver in default mode may result in a corrupted state of the | ||
110 | device. For instance, a particularly annoying issue is that the sound captured | ||
111 | from the Ai port sounds distorted (as if boosted with an excessive high volume | ||
112 | gain). | ||
113 | |||
114 | For people having this problem, the snd-usb-audio module has a new module | ||
115 | parameter called "device_setup". | ||
116 | |||
117 | 2.2.2.1 - Initializing the working mode of the Audiohile USB | ||
118 | |||
119 | As far as the Audiohile USB device is concerned, this value let the user | ||
120 | specify: | ||
121 | * the sample depth | ||
122 | * the sample rate | ||
123 | * whether the Di port is used or not | ||
124 | |||
125 | Here is a list of supported device_setup values for this device: | ||
126 | * device_setup=0x00 (or omitted) | ||
127 | - Alsa driver default mode | ||
128 | - maintains backward compatibility with setups that do not use this | ||
129 | parameter by not introducing any change | ||
130 | - results sometimes in corrupted sound as decribed earlier | ||
131 | * device_setup=0x01 | ||
132 | - 16bits 48kHz mode with Di disabled | ||
133 | - Ai,Ao,Do can be used at the same time | ||
134 | - hw:1,0 is not available in capture mode | ||
135 | - hw:1,2 is not available | ||
136 | * device_setup=0x11 | ||
137 | - 16bits 48kHz mode with Di enabled | ||
138 | - Ai,Ao,Di,Do can be used at the same time | ||
139 | - hw:1,0 is available in capture mode | ||
140 | - hw:1,2 is not available | ||
141 | * device_setup=0x09 | ||
142 | - 24bits 48kHz mode with Di disabled | ||
143 | - Ai,Ao,Do can be used at the same time | ||
144 | - hw:1,0 is not available in capture mode | ||
145 | - hw:1,2 is not available | ||
146 | * device_setup=0x19 | ||
147 | - 24bits 48kHz mode with Di enabled | ||
148 | - 3 ports from {Ai,Ao,Di,Do} can be used at the same time | ||
149 | - hw:1,0 is available in capture mode and an active digital source must be | ||
150 | connected to Di | ||
151 | - hw:1,2 is not available | ||
152 | * device_setup=0x0D or 0x10 | ||
153 | - 24bits 96kHz mode | ||
154 | - Di is enabled by default for this mode but does not need to be connected | ||
155 | to an active source | ||
156 | - Only 1 port from {Ai,Ao,Di,Do} can be used at the same time | ||
157 | - hw:1,0 is available in captured mode | ||
158 | - hw:1,2 is not available | ||
159 | * device_setup=0x03 | ||
160 | - 16bits 48kHz mode with only the Do port enabled | ||
161 | - AC3 with DTS passthru (not tested) | ||
162 | - Caution with this setup the Do port is mapped to the pcm device hw:1,0 | ||
163 | |||
164 | 2.2.2.2 - Setting and switching configurations with the device_setup parameter | ||
165 | |||
166 | The parameter can be given: | ||
167 | * By manually probing the device (as root): | ||
168 | # modprobe -r snd-usb-audio | ||
169 | # modprobe snd-usb-audio index=1 device_setup=0x09 | ||
170 | * Or while configuring the modules options in your modules configuration file | ||
171 | - For Fedora distributions, edit the /etc/modprobe.conf file: | ||
172 | alias snd-card-1 snd-usb-audio | ||
173 | options snd-usb-audio index=1 device_setup=0x09 | ||
174 | |||
175 | IMPORTANT NOTE WHEN SWITCHING CONFIGURATION: | ||
176 | ------------------------------------------- | ||
177 | * You may need to _first_ intialize the module with the correct device_setup | ||
178 | parameter and _only_after_ turn on the Audiophile USB device | ||
179 | * This is especially true when switching the sample depth: | ||
180 | - first trun off the device | ||
181 | - de-register the snd-usb-audio module | ||
182 | - change the device_setup parameter (by either manually reprobing the module | ||
183 | or changing modprobe.conf) | ||
184 | - turn on the device | ||
185 | |||
186 | 2.2.2.3 - Audiophile USB's device_setup structure | ||
187 | |||
188 | If you want to understand the device_setup magic numbers for the Audiophile | ||
189 | USB, you need some very basic understanding of binary computation. However, | ||
190 | this is not required to use the parameter and you may skip thi section. | ||
191 | |||
192 | The device_setup is one byte long and its structure is the following: | ||
193 | |||
194 | +---+---+---+---+---+---+---+---+ | ||
195 | | b7| b6| b5| b4| b3| b2| b1| b0| | ||
196 | +---+---+---+---+---+---+---+---+ | ||
197 | | 0 | 0 | 0 | Di|24B|96K|DTS|SET| | ||
198 | +---+---+---+---+---+---+---+---+ | ||
199 | |||
200 | Where: | ||
201 | * b0 is the "SET" bit | ||
202 | - it MUST be set if device_setup is initialized | ||
203 | * b1 is the "DTS" bit | ||
204 | - it is set only for Digital output with DTS/AC3 | ||
205 | - this setup is not tested | ||
206 | * b2 is the Rate selection flag | ||
207 | - When set to "1" the rate range is 48.1-96kHz | ||
208 | - Otherwise the sample rate range is 8-48kHz | ||
209 | * b3 is the bit depth selection flag | ||
210 | - When set to "1" samples are 24bits long | ||
211 | - Otherwise they are 16bits long | ||
212 | - Note that b2 implies b3 as the 96kHz mode is only supported for 24 bits | ||
213 | samples | ||
214 | * b4 is the Digital input flag | ||
215 | - When set to "1" the device assumes that an active digital source is | ||
216 | connected | ||
217 | - You shouldn't enable Di if no source is seen on the port (this leads to | ||
218 | synchronization issues) | ||
219 | - b4 is implied by b2 (since only one port is enabled at a time no synch | ||
220 | error can occur) | ||
221 | * b5 to b7 are reserved for future uses, and must be set to "0" | ||
222 | - might become Ao, Do, Ai, for b7, b6, b4 respectively | ||
223 | |||
224 | Caution: | ||
225 | * there is no check on the value you will give to device_setup | ||
226 | - for instance choosing 0x05 (16bits 96kHz) will fail back to 0x09 since | ||
227 | b2 implies b3. But _there_will_be_no_warning_ in /var/log/messages | ||
228 | * Hardware constraints due to the USB bus limitation aren't checked | ||
229 | - choosing b2 will prepare all interfaces for 24bits/96kHz but you'll | ||
230 | only be able to use one at the same time | ||
231 | |||
232 | 2.2.3 - USB implementation details for this device | ||
233 | |||
234 | You may safely skip this section if you're not interrested in driver | ||
235 | development. | ||
236 | |||
237 | This section describes some internals aspect of the device and summarize the | ||
238 | data I got by usb-snooping the windows and linux drivers. | ||
239 | |||
240 | The M-Audio Audiophile USB has 7 USB Interfaces: | ||
241 | a "USB interface": | ||
242 | * USB Interface nb.0 | ||
243 | * USB Interface nb.1 | ||
244 | - Audio Control function | ||
245 | * USB Interface nb.2 | ||
246 | - Analog Output | ||
247 | * USB Interface nb.3 | ||
248 | - Digital Output | ||
249 | * USB Interface nb.4 | ||
250 | - Analog Input | ||
251 | * USB Interface nb.5 | ||
252 | - Digital Input | ||
253 | * USB Interface nb.6 | ||
254 | - MIDI interface compliant with the MIDIMAN quirk | ||
255 | |||
256 | Each interface has 5 altsettings (AltSet 1,2,3,4,5) except: | ||
257 | * Interface 3 (Digital Out) has an extra Alset nb.6 | ||
258 | * Interface 5 (Digital In) does not have Alset nb.3 and 5 | ||
259 | |||
260 | Here is a short description of the AltSettings capabilities: | ||
261 | * AltSettings 1 corresponds to | ||
262 | - 24-bit depth, 48.1-96kHz sample mode | ||
263 | - Adaptive playback (Ao and Do), Synch capture (Ai), or Asynch capture (Di) | ||
264 | * AltSettings 2 corresponds to | ||
265 | - 24-bit depth, 8-48kHz sample mode | ||
266 | - Asynch capture and playback (Ao,Ai,Do,Di) | ||
267 | * AltSettings 3 corresponds to | ||
268 | - 24-bit depth, 8-48kHz sample mode | ||
269 | - Synch capture (Ai) and Adaptive playback (Ao,Do) | ||
270 | * AltSettings 4 corresponds to | ||
271 | - 16-bit depth, 8-48kHz sample mode | ||
272 | - Asynch capture and playback (Ao,Ai,Do,Di) | ||
273 | * AltSettings 5 corresponds to | ||
274 | - 16-bit depth, 8-48kHz sample mode | ||
275 | - Synch capture (Ai) and Adaptive playback (Ao,Do) | ||
276 | * AltSettings 6 corresponds to | ||
277 | - 16-bit depth, 8-48kHz sample mode | ||
278 | - Synch playback (Do), audio format type III IEC1937_AC-3 | ||
279 | |||
280 | In order to ensure a correct intialization of the device, the driver | ||
281 | _must_know_ how the device will be used: | ||
282 | * if DTS is choosen, only Interface 2 with AltSet nb.6 must be | ||
283 | registered | ||
284 | * if 96KHz only AltSets nb.1 of each interface must be selected | ||
285 | * if samples are using 24bits/48KHz then AltSet 2 must me used if | ||
286 | Digital input is connected, and only AltSet nb.3 if Digital input | ||
287 | is not connected | ||
288 | * if samples are using 16bits/48KHz then AltSet 4 must me used if | ||
289 | Digital input is connected, and only AltSet nb.5 if Digital input | ||
290 | is not connected | ||
291 | |||
292 | When device_setup is given as a parameter to the snd-usb-audio module, the | ||
293 | parse_audio_enpoint function uses a quirk called | ||
294 | "audiophile_skip_setting_quirk" in order to prevent AltSettings not | ||
295 | corresponding to device_setup from being registered in the driver. | ||
296 | |||
297 | 3 - Audiophile USB and Jack support | ||
298 | =================================== | ||
299 | |||
300 | This section deals with support of the Audiophile USB device in Jack. | ||
301 | The main issue regarding this support is that the device is Big Endian | ||
302 | compliant. | ||
303 | |||
304 | 3.1 - Using the plug alsa plugin | ||
305 | -------------------------------- | ||
306 | |||
307 | Jack doesn't directly support big endian devices. Thus, one way to have support | ||
308 | for this device with Alsa is to use the Alsa "plug" converter. | ||
309 | |||
310 | For instance here is one way to run Jack with 2 playback channels on Ao and 2 | ||
311 | capture channels from Ai: | ||
312 | % jackd -R -dalsa -dplughw:1 -r48000 -p256 -n2 -D -Cplughw:1,1 | ||
313 | |||
314 | |||
315 | However you may see the following warning message: | ||
316 | "You appear to be using the ALSA software "plug" layer, probably a result of | ||
317 | using the "default" ALSA device. This is less efficient than it could be. | ||
318 | Consider using a hardware device instead rather than using the plug layer." | ||
319 | |||
320 | |||
321 | 3.2 - Patching alsa to use direct pcm device | ||
322 | ------------------------------------------- | ||
323 | A patch for Jack by Andreas Steinmetz adds support for Big Endian devices. | ||
324 | However it has not been included in the CVS tree. | ||
325 | |||
326 | You can find it at the following URL: | ||
327 | http://sourceforge.net/tracker/index.php?func=detail&aid=1289682&group_id=39687& | ||
328 | atid=425939 | ||
329 | |||
330 | After having applied the patch you can run jackd with the following command | ||
331 | line: | ||
332 | % jackd -R -dalsa -Phw:1,0 -r48000 -p128 -n2 -D -Chw:1,1 | ||
333 | |||
diff --git a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl b/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl index 4251085d38d3..6dc9d9f622ca 100644 --- a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl +++ b/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl | |||
@@ -1834,7 +1834,7 @@ | |||
1834 | mychip_set_sample_format(chip, runtime->format); | 1834 | mychip_set_sample_format(chip, runtime->format); |
1835 | mychip_set_sample_rate(chip, runtime->rate); | 1835 | mychip_set_sample_rate(chip, runtime->rate); |
1836 | mychip_set_channels(chip, runtime->channels); | 1836 | mychip_set_channels(chip, runtime->channels); |
1837 | mychip_set_dma_setup(chip, runtime->dma_area, | 1837 | mychip_set_dma_setup(chip, runtime->dma_addr, |
1838 | chip->buffer_size, | 1838 | chip->buffer_size, |
1839 | chip->period_size); | 1839 | chip->period_size); |
1840 | return 0; | 1840 | return 0; |
@@ -3388,7 +3388,7 @@ struct _snd_pcm_runtime { | |||
3388 | .name = "PCM Playback Switch", | 3388 | .name = "PCM Playback Switch", |
3389 | .index = 0, | 3389 | .index = 0, |
3390 | .access = SNDRV_CTL_ELEM_ACCESS_READWRITE, | 3390 | .access = SNDRV_CTL_ELEM_ACCESS_READWRITE, |
3391 | .private_values = 0xffff, | 3391 | .private_value = 0xffff, |
3392 | .info = my_control_info, | 3392 | .info = my_control_info, |
3393 | .get = my_control_get, | 3393 | .get = my_control_get, |
3394 | .put = my_control_put | 3394 | .put = my_control_put |
@@ -3449,7 +3449,7 @@ struct _snd_pcm_runtime { | |||
3449 | </para> | 3449 | </para> |
3450 | 3450 | ||
3451 | <para> | 3451 | <para> |
3452 | The <structfield>private_values</structfield> field contains | 3452 | The <structfield>private_value</structfield> field contains |
3453 | an arbitrary long integer value for this record. When using | 3453 | an arbitrary long integer value for this record. When using |
3454 | generic <structfield>info</structfield>, | 3454 | generic <structfield>info</structfield>, |
3455 | <structfield>get</structfield> and | 3455 | <structfield>get</structfield> and |
diff --git a/Documentation/spinlocks.txt b/Documentation/spinlocks.txt index c2122996631e..a661d684768e 100644 --- a/Documentation/spinlocks.txt +++ b/Documentation/spinlocks.txt | |||
@@ -9,7 +9,7 @@ removed soon. So for any new code dynamic initialization should be used: | |||
9 | static int __init xxx_init(void) | 9 | static int __init xxx_init(void) |
10 | { | 10 | { |
11 | spin_lock_init(&xxx_lock); | 11 | spin_lock_init(&xxx_lock); |
12 | rw_lock_init(&xxx_rw_lock); | 12 | rwlock_init(&xxx_rw_lock); |
13 | ... | 13 | ... |
14 | } | 14 | } |
15 | 15 | ||