diff options
Diffstat (limited to 'Documentation')
25 files changed, 709 insertions, 28 deletions
diff --git a/Documentation/DocBook/networking.tmpl b/Documentation/DocBook/networking.tmpl index 627707a3cb9d..59ad69a9d777 100644 --- a/Documentation/DocBook/networking.tmpl +++ b/Documentation/DocBook/networking.tmpl | |||
@@ -74,6 +74,14 @@ | |||
74 | !Enet/sunrpc/rpcb_clnt.c | 74 | !Enet/sunrpc/rpcb_clnt.c |
75 | !Enet/sunrpc/clnt.c | 75 | !Enet/sunrpc/clnt.c |
76 | </sect1> | 76 | </sect1> |
77 | <sect1><title>WiMAX</title> | ||
78 | !Enet/wimax/op-msg.c | ||
79 | !Enet/wimax/op-reset.c | ||
80 | !Enet/wimax/op-rfkill.c | ||
81 | !Enet/wimax/stack.c | ||
82 | !Iinclude/net/wimax.h | ||
83 | !Iinclude/linux/wimax.h | ||
84 | </sect1> | ||
77 | </chapter> | 85 | </chapter> |
78 | 86 | ||
79 | <chapter id="netdev"> | 87 | <chapter id="netdev"> |
diff --git a/Documentation/blackfin/00-INDEX b/Documentation/blackfin/00-INDEX index 7cb3b356b249..d6840a91e1e1 100644 --- a/Documentation/blackfin/00-INDEX +++ b/Documentation/blackfin/00-INDEX | |||
@@ -9,3 +9,6 @@ cachefeatures.txt | |||
9 | 9 | ||
10 | Filesystems | 10 | Filesystems |
11 | - Requirements for mounting the root file system. | 11 | - Requirements for mounting the root file system. |
12 | |||
13 | bfin-gpio-note.txt | ||
14 | - Notes in developing/using bfin-gpio driver. | ||
diff --git a/Documentation/blackfin/bfin-gpio-notes.txt b/Documentation/blackfin/bfin-gpio-notes.txt new file mode 100644 index 000000000000..9898c7ded7d3 --- /dev/null +++ b/Documentation/blackfin/bfin-gpio-notes.txt | |||
@@ -0,0 +1,71 @@ | |||
1 | /* | ||
2 | * File: Documentation/blackfin/bfin-gpio-note.txt | ||
3 | * Based on: | ||
4 | * Author: | ||
5 | * | ||
6 | * Created: $Id: bfin-gpio-note.txt 2008-11-24 16:42 grafyang $ | ||
7 | * Description: This file contains the notes in developing/using bfin-gpio. | ||
8 | * | ||
9 | * | ||
10 | * Rev: | ||
11 | * | ||
12 | * Modified: | ||
13 | * Copyright 2004-2008 Analog Devices Inc. | ||
14 | * | ||
15 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ | ||
16 | * | ||
17 | */ | ||
18 | |||
19 | |||
20 | 1. Blackfin GPIO introduction | ||
21 | |||
22 | There are many GPIO pins on Blackfin. Most of these pins are muxed to | ||
23 | multi-functions. They can be configured as peripheral, or just as GPIO, | ||
24 | configured to input with interrupt enabled, or output. | ||
25 | |||
26 | For detailed information, please see "arch/blackfin/kernel/bfin_gpio.c", | ||
27 | or the relevant HRM. | ||
28 | |||
29 | |||
30 | 2. Avoiding resource conflict | ||
31 | |||
32 | Followed function groups are used to avoiding resource conflict, | ||
33 | - Use the pin as peripheral, | ||
34 | int peripheral_request(unsigned short per, const char *label); | ||
35 | int peripheral_request_list(const unsigned short per[], const char *label); | ||
36 | void peripheral_free(unsigned short per); | ||
37 | void peripheral_free_list(const unsigned short per[]); | ||
38 | - Use the pin as GPIO, | ||
39 | int bfin_gpio_request(unsigned gpio, const char *label); | ||
40 | void bfin_gpio_free(unsigned gpio); | ||
41 | - Use the pin as GPIO interrupt, | ||
42 | int bfin_gpio_irq_request(unsigned gpio, const char *label); | ||
43 | void bfin_gpio_irq_free(unsigned gpio); | ||
44 | |||
45 | The request functions will record the function state for a certain pin, | ||
46 | the free functions will clear it's function state. | ||
47 | Once a pin is requested, it can't be requested again before it is freed by | ||
48 | previous caller, otherwise kernel will dump stacks, and the request | ||
49 | function fail. | ||
50 | These functions are wrapped by other functions, most of the users need not | ||
51 | care. | ||
52 | |||
53 | |||
54 | 3. But there are some exceptions | ||
55 | - Kernel permit the identical GPIO be requested both as GPIO and GPIO | ||
56 | interrut. | ||
57 | Some drivers, like gpio-keys, need this behavior. Kernel only print out | ||
58 | warning messages like, | ||
59 | bfin-gpio: GPIO 24 is already reserved by gpio-keys: BTN0, and you are | ||
60 | configuring it as IRQ! | ||
61 | |||
62 | Note: Consider the case that, if there are two drivers need the | ||
63 | identical GPIO, one of them use it as GPIO, the other use it as | ||
64 | GPIO interrupt. This will really cause resource conflict. So if | ||
65 | there is any abnormal driver behavior, please check the bfin-gpio | ||
66 | warning messages. | ||
67 | |||
68 | - Kernel permit the identical GPIO be requested from the same driver twice. | ||
69 | |||
70 | |||
71 | |||
diff --git a/Documentation/dell_rbu.txt b/Documentation/dell_rbu.txt index 2c0d631de0cf..c11b931f8f98 100644 --- a/Documentation/dell_rbu.txt +++ b/Documentation/dell_rbu.txt | |||
@@ -81,8 +81,8 @@ Until this step is completed the driver cannot be unloaded. | |||
81 | Also echoing either mono ,packet or init in to image_type will free up the | 81 | Also echoing either mono ,packet or init in to image_type will free up the |
82 | memory allocated by the driver. | 82 | memory allocated by the driver. |
83 | 83 | ||
84 | If an user by accident executes steps 1 and 3 above without executing step 2; | 84 | If a user by accident executes steps 1 and 3 above without executing step 2; |
85 | it will make the /sys/class/firmware/dell_rbu/ entries to disappear. | 85 | it will make the /sys/class/firmware/dell_rbu/ entries disappear. |
86 | The entries can be recreated by doing the following | 86 | The entries can be recreated by doing the following |
87 | echo init > /sys/devices/platform/dell_rbu/image_type | 87 | echo init > /sys/devices/platform/dell_rbu/image_type |
88 | NOTE: echoing init in image_type does not change it original value. | 88 | NOTE: echoing init in image_type does not change it original value. |
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt index 2193be53e773..5ddbe350487a 100644 --- a/Documentation/feature-removal-schedule.txt +++ b/Documentation/feature-removal-schedule.txt | |||
@@ -318,6 +318,14 @@ Who: Jean Delvare <khali@linux-fr.org> | |||
318 | 318 | ||
319 | --------------------------- | 319 | --------------------------- |
320 | 320 | ||
321 | What: fscher and fscpos drivers | ||
322 | When: June 2009 | ||
323 | Why: Deprecated by the new fschmd driver. | ||
324 | Who: Hans de Goede <hdegoede@redhat.com> | ||
325 | Jean Delvare <khali@linux-fr.org> | ||
326 | |||
327 | --------------------------- | ||
328 | |||
321 | What: SELinux "compat_net" functionality | 329 | What: SELinux "compat_net" functionality |
322 | When: 2.6.30 at the earliest | 330 | When: 2.6.30 at the earliest |
323 | Why: In 2.6.18 the Secmark concept was introduced to replace the "compat_net" | 331 | Why: In 2.6.18 the Secmark concept was introduced to replace the "compat_net" |
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt index 32e94635484f..d105eb45282a 100644 --- a/Documentation/filesystems/proc.txt +++ b/Documentation/filesystems/proc.txt | |||
@@ -140,6 +140,7 @@ Table 1-1: Process specific entries in /proc | |||
140 | statm Process memory status information | 140 | statm Process memory status information |
141 | status Process status in human readable form | 141 | status Process status in human readable form |
142 | wchan If CONFIG_KALLSYMS is set, a pre-decoded wchan | 142 | wchan If CONFIG_KALLSYMS is set, a pre-decoded wchan |
143 | stack Report full stack trace, enable via CONFIG_STACKTRACE | ||
143 | smaps Extension based on maps, the rss size for each mapped file | 144 | smaps Extension based on maps, the rss size for each mapped file |
144 | .............................................................................. | 145 | .............................................................................. |
145 | 146 | ||
diff --git a/Documentation/hwmon/abituguru-datasheet b/Documentation/hwmon/abituguru-datasheet index aef5a9b36846..4d184f2db0ea 100644 --- a/Documentation/hwmon/abituguru-datasheet +++ b/Documentation/hwmon/abituguru-datasheet | |||
@@ -74,7 +74,7 @@ a sensor. | |||
74 | Notice that some banks have both a read and a write address this is how the | 74 | Notice that some banks have both a read and a write address this is how the |
75 | uGuru determines if a read from or a write to the bank is taking place, thus | 75 | uGuru determines if a read from or a write to the bank is taking place, thus |
76 | when reading you should always use the read address and when writing the | 76 | when reading you should always use the read address and when writing the |
77 | write address. The write address is always one (1) more then the read address. | 77 | write address. The write address is always one (1) more than the read address. |
78 | 78 | ||
79 | 79 | ||
80 | uGuru ready | 80 | uGuru ready |
@@ -224,7 +224,7 @@ Bit 3: Beep if alarm (RW) | |||
224 | Bit 4: 1 if alarm cause measured temp is over the warning threshold (R) | 224 | Bit 4: 1 if alarm cause measured temp is over the warning threshold (R) |
225 | Bit 5: 1 if alarm cause measured volt is over the max threshold (R) | 225 | Bit 5: 1 if alarm cause measured volt is over the max threshold (R) |
226 | Bit 6: 1 if alarm cause measured volt is under the min threshold (R) | 226 | Bit 6: 1 if alarm cause measured volt is under the min threshold (R) |
227 | Bit 7: Volt sensor: Shutdown if alarm persist for more then 4 seconds (RW) | 227 | Bit 7: Volt sensor: Shutdown if alarm persist for more than 4 seconds (RW) |
228 | Temp sensor: Shutdown if temp is over the shutdown threshold (RW) | 228 | Temp sensor: Shutdown if temp is over the shutdown threshold (RW) |
229 | 229 | ||
230 | * This bit is only honored/used by the uGuru if a temp sensor is connected | 230 | * This bit is only honored/used by the uGuru if a temp sensor is connected |
@@ -293,7 +293,7 @@ Byte 0: | |||
293 | Alarm behaviour for the selected sensor. A 1 enables the described behaviour. | 293 | Alarm behaviour for the selected sensor. A 1 enables the described behaviour. |
294 | Bit 0: Give an alarm if measured rpm is under the min threshold (RW) | 294 | Bit 0: Give an alarm if measured rpm is under the min threshold (RW) |
295 | Bit 3: Beep if alarm (RW) | 295 | Bit 3: Beep if alarm (RW) |
296 | Bit 7: Shutdown if alarm persist for more then 4 seconds (RW) | 296 | Bit 7: Shutdown if alarm persist for more than 4 seconds (RW) |
297 | 297 | ||
298 | Byte 1: | 298 | Byte 1: |
299 | min threshold (scale as bank 0x26) | 299 | min threshold (scale as bank 0x26) |
diff --git a/Documentation/hwmon/f71882fg b/Documentation/hwmon/f71882fg new file mode 100644 index 000000000000..a8321267b5b6 --- /dev/null +++ b/Documentation/hwmon/f71882fg | |||
@@ -0,0 +1,89 @@ | |||
1 | Kernel driver f71882fg | ||
2 | ====================== | ||
3 | |||
4 | Supported chips: | ||
5 | * Fintek F71882FG and F71883FG | ||
6 | Prefix: 'f71882fg' | ||
7 | Addresses scanned: none, address read from Super I/O config space | ||
8 | Datasheet: Available from the Fintek website | ||
9 | * Fintek F71862FG and F71863FG | ||
10 | Prefix: 'f71862fg' | ||
11 | Addresses scanned: none, address read from Super I/O config space | ||
12 | Datasheet: Available from the Fintek website | ||
13 | * Fintek F8000 | ||
14 | Prefix: 'f8000' | ||
15 | Addresses scanned: none, address read from Super I/O config space | ||
16 | Datasheet: Not public | ||
17 | |||
18 | Author: Hans de Goede <hdegoede@redhat.com> | ||
19 | |||
20 | |||
21 | Description | ||
22 | ----------- | ||
23 | |||
24 | Fintek F718xxFG/F8000 Super I/O chips include complete hardware monitoring | ||
25 | capabilities. They can monitor up to 9 voltages (3 for the F8000), 4 fans and | ||
26 | 3 temperature sensors. | ||
27 | |||
28 | These chips also have fan controlling features, using either DC or PWM, in | ||
29 | three different modes (one manual, two automatic). | ||
30 | |||
31 | The driver assumes that no more than one chip is present, which seems | ||
32 | reasonable. | ||
33 | |||
34 | |||
35 | Monitoring | ||
36 | ---------- | ||
37 | |||
38 | The Voltage, Fan and Temperature Monitoring uses the standard sysfs | ||
39 | interface as documented in sysfs-interface, without any exceptions. | ||
40 | |||
41 | |||
42 | Fan Control | ||
43 | ----------- | ||
44 | |||
45 | Both PWM (pulse-width modulation) and DC fan speed control methods are | ||
46 | supported. The right one to use depends on external circuitry on the | ||
47 | motherboard, so the driver assumes that the BIOS set the method | ||
48 | properly. | ||
49 | |||
50 | There are 2 modes to specify the speed of the fan, PWM duty cycle (or DC | ||
51 | voltage) mode, where 0-100% duty cycle (0-100% of 12V) is specified. And RPM | ||
52 | mode where the actual RPM of the fan (as measured) is controlled and the speed | ||
53 | gets specified as 0-100% of the fan#_full_speed file. | ||
54 | |||
55 | Since both modes work in a 0-100% (mapped to 0-255) scale, there isn't a | ||
56 | whole lot of a difference when modifying fan control settings. The only | ||
57 | important difference is that in RPM mode the 0-100% controls the fan speed | ||
58 | between 0-100% of fan#_full_speed. It is assumed that if the BIOS programs | ||
59 | RPM mode, it will also set fan#_full_speed properly, if it does not then | ||
60 | fan control will not work properly, unless you set a sane fan#_full_speed | ||
61 | value yourself. | ||
62 | |||
63 | Switching between these modes requires re-initializing a whole bunch of | ||
64 | registers, so the mode which the BIOS has set is kept. The mode is | ||
65 | printed when loading the driver. | ||
66 | |||
67 | Three different fan control modes are supported; the mode number is written | ||
68 | to the pwm#_enable file. Note that not all modes are supported on all | ||
69 | chips, and some modes may only be available in RPM / PWM mode on the F8000. | ||
70 | Writing an unsupported mode will result in an invalid parameter error. | ||
71 | |||
72 | * 1: Manual mode | ||
73 | You ask for a specific PWM duty cycle / DC voltage or a specific % of | ||
74 | fan#_full_speed by writing to the pwm# file. This mode is only | ||
75 | available on the F8000 if the fan channel is in RPM mode. | ||
76 | |||
77 | * 2: Normal auto mode | ||
78 | You can define a number of temperature/fan speed trip points, which % the | ||
79 | fan should run at at this temp and which temp a fan should follow using the | ||
80 | standard sysfs interface. The number and type of trip points is chip | ||
81 | depended, see which files are available in sysfs. | ||
82 | Fan/PWM channel 3 of the F8000 is always in this mode! | ||
83 | |||
84 | * 3: Thermostat mode (Only available on the F8000 when in duty cycle mode) | ||
85 | The fan speed is regulated to keep the temp the fan is mapped to between | ||
86 | temp#_auto_point2_temp and temp#_auto_point3_temp. | ||
87 | |||
88 | Both of the automatic modes require that pwm1 corresponds to fan1, pwm2 to | ||
89 | fan2 and pwm3 to fan3. | ||
diff --git a/Documentation/hwmon/it87 b/Documentation/hwmon/it87 index 042c0415140b..659315d98e00 100644 --- a/Documentation/hwmon/it87 +++ b/Documentation/hwmon/it87 | |||
@@ -26,6 +26,10 @@ Supported chips: | |||
26 | Datasheet: Publicly available at the ITE website | 26 | Datasheet: Publicly available at the ITE website |
27 | http://www.ite.com.tw/product_info/file/pc/IT8718F_V0.2.zip | 27 | http://www.ite.com.tw/product_info/file/pc/IT8718F_V0.2.zip |
28 | http://www.ite.com.tw/product_info/file/pc/IT8718F_V0%203_(for%20C%20version).zip | 28 | http://www.ite.com.tw/product_info/file/pc/IT8718F_V0%203_(for%20C%20version).zip |
29 | * IT8720F | ||
30 | Prefix: 'it8720' | ||
31 | Addresses scanned: from Super I/O config space (8 I/O ports) | ||
32 | Datasheet: Not yet publicly available. | ||
29 | * SiS950 [clone of IT8705F] | 33 | * SiS950 [clone of IT8705F] |
30 | Prefix: 'it87' | 34 | Prefix: 'it87' |
31 | Addresses scanned: from Super I/O config space (8 I/O ports) | 35 | Addresses scanned: from Super I/O config space (8 I/O ports) |
@@ -71,7 +75,7 @@ Description | |||
71 | ----------- | 75 | ----------- |
72 | 76 | ||
73 | This driver implements support for the IT8705F, IT8712F, IT8716F, | 77 | This driver implements support for the IT8705F, IT8712F, IT8716F, |
74 | IT8718F, IT8726F and SiS950 chips. | 78 | IT8718F, IT8720F, IT8726F and SiS950 chips. |
75 | 79 | ||
76 | These chips are 'Super I/O chips', supporting floppy disks, infrared ports, | 80 | These chips are 'Super I/O chips', supporting floppy disks, infrared ports, |
77 | joysticks and other miscellaneous stuff. For hardware monitoring, they | 81 | joysticks and other miscellaneous stuff. For hardware monitoring, they |
@@ -84,19 +88,19 @@ the IT8716F and late IT8712F have 6. They are shared with other functions | |||
84 | though, so the functionality may not be available on a given system. | 88 | though, so the functionality may not be available on a given system. |
85 | The driver dumbly assume it is there. | 89 | The driver dumbly assume it is there. |
86 | 90 | ||
87 | The IT8718F also features VID inputs (up to 8 pins) but the value is | 91 | The IT8718F and IT8720F also features VID inputs (up to 8 pins) but the value |
88 | stored in the Super-I/O configuration space. Due to technical limitations, | 92 | is stored in the Super-I/O configuration space. Due to technical limitations, |
89 | this value can currently only be read once at initialization time, so | 93 | this value can currently only be read once at initialization time, so |
90 | the driver won't notice and report changes in the VID value. The two | 94 | the driver won't notice and report changes in the VID value. The two |
91 | upper VID bits share their pins with voltage inputs (in5 and in6) so you | 95 | upper VID bits share their pins with voltage inputs (in5 and in6) so you |
92 | can't have both on a given board. | 96 | can't have both on a given board. |
93 | 97 | ||
94 | The IT8716F, IT8718F and later IT8712F revisions have support for | 98 | The IT8716F, IT8718F, IT8720F and later IT8712F revisions have support for |
95 | 2 additional fans. The additional fans are supported by the driver. | 99 | 2 additional fans. The additional fans are supported by the driver. |
96 | 100 | ||
97 | The IT8716F and IT8718F, and late IT8712F and IT8705F also have optional | 101 | The IT8716F, IT8718F and IT8720F, and late IT8712F and IT8705F also have |
98 | 16-bit tachometer counters for fans 1 to 3. This is better (no more fan | 102 | optional 16-bit tachometer counters for fans 1 to 3. This is better (no more |
99 | clock divider mess) but not compatible with the older chips and | 103 | fan clock divider mess) but not compatible with the older chips and |
100 | revisions. The 16-bit tachometer mode is enabled by the driver when one | 104 | revisions. The 16-bit tachometer mode is enabled by the driver when one |
101 | of the above chips is detected. | 105 | of the above chips is detected. |
102 | 106 | ||
@@ -122,7 +126,7 @@ zero'; this is important for negative voltage measurements. All voltage | |||
122 | inputs can measure voltages between 0 and 4.08 volts, with a resolution of | 126 | inputs can measure voltages between 0 and 4.08 volts, with a resolution of |
123 | 0.016 volt. The battery voltage in8 does not have limit registers. | 127 | 0.016 volt. The battery voltage in8 does not have limit registers. |
124 | 128 | ||
125 | The VID lines (IT8712F/IT8716F/IT8718F) encode the core voltage value: | 129 | The VID lines (IT8712F/IT8716F/IT8718F/IT8720F) encode the core voltage value: |
126 | the voltage level your processor should work with. This is hardcoded by | 130 | the voltage level your processor should work with. This is hardcoded by |
127 | the mainboard and/or processor itself. It is a value in volts. | 131 | the mainboard and/or processor itself. It is a value in volts. |
128 | 132 | ||
diff --git a/Documentation/hwmon/lm70 b/Documentation/hwmon/lm70 index 2bdd3feebf53..0d240291e3cc 100644 --- a/Documentation/hwmon/lm70 +++ b/Documentation/hwmon/lm70 | |||
@@ -1,9 +1,11 @@ | |||
1 | Kernel driver lm70 | 1 | Kernel driver lm70 |
2 | ================== | 2 | ================== |
3 | 3 | ||
4 | Supported chip: | 4 | Supported chips: |
5 | * National Semiconductor LM70 | 5 | * National Semiconductor LM70 |
6 | Datasheet: http://www.national.com/pf/LM/LM70.html | 6 | Datasheet: http://www.national.com/pf/LM/LM70.html |
7 | * Texas Instruments TMP121/TMP123 | ||
8 | Information: http://focus.ti.com/docs/prod/folders/print/tmp121.html | ||
7 | 9 | ||
8 | Author: | 10 | Author: |
9 | Kaiwan N Billimoria <kaiwan@designergraphix.com> | 11 | Kaiwan N Billimoria <kaiwan@designergraphix.com> |
@@ -25,6 +27,14 @@ complement digital temperature (sent via the SIO line), is available in the | |||
25 | driver for interpretation. This driver makes use of the kernel's in-core | 27 | driver for interpretation. This driver makes use of the kernel's in-core |
26 | SPI support. | 28 | SPI support. |
27 | 29 | ||
30 | As a real (in-tree) example of this "SPI protocol driver" interfacing | ||
31 | with a "SPI master controller driver", see drivers/spi/spi_lm70llp.c | ||
32 | and its associated documentation. | ||
33 | |||
34 | The TMP121/TMP123 are very similar; main differences are 4 wire SPI inter- | ||
35 | face (read only) and 13-bit temperature data (0.0625 degrees celsius reso- | ||
36 | lution). | ||
37 | |||
28 | Thanks to | 38 | Thanks to |
29 | --------- | 39 | --------- |
30 | Jean Delvare <khali@linux-fr.org> for mentoring the hwmon-side driver | 40 | Jean Delvare <khali@linux-fr.org> for mentoring the hwmon-side driver |
diff --git a/Documentation/hwmon/lm85 b/Documentation/hwmon/lm85 index 400620741290..a13680871bc7 100644 --- a/Documentation/hwmon/lm85 +++ b/Documentation/hwmon/lm85 | |||
@@ -164,7 +164,7 @@ configured individually according to the following options. | |||
164 | temperature. (PWM value from 0 to 255) | 164 | temperature. (PWM value from 0 to 255) |
165 | 165 | ||
166 | * pwm#_auto_pwm_minctl - this flags selects for temp#_auto_temp_off temperature | 166 | * pwm#_auto_pwm_minctl - this flags selects for temp#_auto_temp_off temperature |
167 | the bahaviour of fans. Write 1 to let fans spinning at | 167 | the behaviour of fans. Write 1 to let fans spinning at |
168 | pwm#_auto_pwm_min or write 0 to let them off. | 168 | pwm#_auto_pwm_min or write 0 to let them off. |
169 | 169 | ||
170 | NOTE: It has been reported that there is a bug in the LM85 that causes the flag | 170 | NOTE: It has been reported that there is a bug in the LM85 that causes the flag |
diff --git a/Documentation/hwmon/ltc4245 b/Documentation/hwmon/ltc4245 new file mode 100644 index 000000000000..bae7a3adc5d8 --- /dev/null +++ b/Documentation/hwmon/ltc4245 | |||
@@ -0,0 +1,81 @@ | |||
1 | Kernel driver ltc4245 | ||
2 | ===================== | ||
3 | |||
4 | Supported chips: | ||
5 | * Linear Technology LTC4245 | ||
6 | Prefix: 'ltc4245' | ||
7 | Addresses scanned: 0x20-0x3f | ||
8 | Datasheet: | ||
9 | http://www.linear.com/pc/downloadDocument.do?navId=H0,C1,C1003,C1006,C1140,P19392,D13517 | ||
10 | |||
11 | Author: Ira W. Snyder <iws@ovro.caltech.edu> | ||
12 | |||
13 | |||
14 | Description | ||
15 | ----------- | ||
16 | |||
17 | The LTC4245 controller allows a board to be safely inserted and removed | ||
18 | from a live backplane in multiple supply systems such as CompactPCI and | ||
19 | PCI Express. | ||
20 | |||
21 | |||
22 | Usage Notes | ||
23 | ----------- | ||
24 | |||
25 | This driver does not probe for LTC4245 devices, due to the fact that some | ||
26 | of the possible addresses are unfriendly to probing. You will need to use | ||
27 | the "force" parameter to tell the driver where to find the device. | ||
28 | |||
29 | Example: the following will load the driver for an LTC4245 at address 0x23 | ||
30 | on I2C bus #1: | ||
31 | $ modprobe ltc4245 force=1,0x23 | ||
32 | |||
33 | |||
34 | Sysfs entries | ||
35 | ------------- | ||
36 | |||
37 | The LTC4245 has built-in limits for over and under current warnings. This | ||
38 | makes it very likely that the reference circuit will be used. | ||
39 | |||
40 | This driver uses the values in the datasheet to change the register values | ||
41 | into the values specified in the sysfs-interface document. The current readings | ||
42 | rely on the sense resistors listed in Table 2: "Sense Resistor Values". | ||
43 | |||
44 | in1_input 12v input voltage (mV) | ||
45 | in2_input 5v input voltage (mV) | ||
46 | in3_input 3v input voltage (mV) | ||
47 | in4_input Vee (-12v) input voltage (mV) | ||
48 | |||
49 | in1_min_alarm 12v input undervoltage alarm | ||
50 | in2_min_alarm 5v input undervoltage alarm | ||
51 | in3_min_alarm 3v input undervoltage alarm | ||
52 | in4_min_alarm Vee (-12v) input undervoltage alarm | ||
53 | |||
54 | curr1_input 12v current (mA) | ||
55 | curr2_input 5v current (mA) | ||
56 | curr3_input 3v current (mA) | ||
57 | curr4_input Vee (-12v) current (mA) | ||
58 | |||
59 | curr1_max_alarm 12v overcurrent alarm | ||
60 | curr2_max_alarm 5v overcurrent alarm | ||
61 | curr3_max_alarm 3v overcurrent alarm | ||
62 | curr4_max_alarm Vee (-12v) overcurrent alarm | ||
63 | |||
64 | in5_input 12v output voltage (mV) | ||
65 | in6_input 5v output voltage (mV) | ||
66 | in7_input 3v output voltage (mV) | ||
67 | in8_input Vee (-12v) output voltage (mV) | ||
68 | |||
69 | in5_min_alarm 12v output undervoltage alarm | ||
70 | in6_min_alarm 5v output undervoltage alarm | ||
71 | in7_min_alarm 3v output undervoltage alarm | ||
72 | in8_min_alarm Vee (-12v) output undervoltage alarm | ||
73 | |||
74 | in9_input GPIO #1 voltage data | ||
75 | in10_input GPIO #2 voltage data | ||
76 | in11_input GPIO #3 voltage data | ||
77 | |||
78 | power1_input 12v power usage (mW) | ||
79 | power2_input 5v power usage (mW) | ||
80 | power3_input 3v power usage (mW) | ||
81 | power4_input Vee (-12v) power usage (mW) | ||
diff --git a/Documentation/kbuild/kbuild.txt b/Documentation/kbuild/kbuild.txt index 51771847e816..923f9ddee8f6 100644 --- a/Documentation/kbuild/kbuild.txt +++ b/Documentation/kbuild/kbuild.txt | |||
@@ -124,3 +124,10 @@ KBUILD_EXTRA_SYMBOLS | |||
124 | -------------------------------------------------- | 124 | -------------------------------------------------- |
125 | For modules use symbols from another modules. | 125 | For modules use symbols from another modules. |
126 | See more details in modules.txt. | 126 | See more details in modules.txt. |
127 | |||
128 | ALLSOURCE_ARCHS | ||
129 | -------------------------------------------------- | ||
130 | For tags/TAGS/cscope targets, you can specify more than one archs | ||
131 | to be included in the databases, separated by blankspace. e.g. | ||
132 | |||
133 | $ make ALLSOURCE_ARCHS="x86 mips arm" tags | ||
diff --git a/Documentation/kbuild/modules.txt b/Documentation/kbuild/modules.txt index 1821c077b435..b1096da953c8 100644 --- a/Documentation/kbuild/modules.txt +++ b/Documentation/kbuild/modules.txt | |||
@@ -253,7 +253,7 @@ following files: | |||
253 | 253 | ||
254 | # Module specific targets | 254 | # Module specific targets |
255 | genbin: | 255 | genbin: |
256 | echo "X" > 8123_bin_shipped | 256 | echo "X" > 8123_bin.o_shipped |
257 | 257 | ||
258 | 258 | ||
259 | In example 2, we are down to two fairly simple files and for simple | 259 | In example 2, we are down to two fairly simple files and for simple |
@@ -279,7 +279,7 @@ following files: | |||
279 | 279 | ||
280 | # Module specific targets | 280 | # Module specific targets |
281 | genbin: | 281 | genbin: |
282 | echo "X" > 8123_bin_shipped | 282 | echo "X" > 8123_bin.o_shipped |
283 | 283 | ||
284 | endif | 284 | endif |
285 | 285 | ||
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 0072fabb1dd1..532eacbbed62 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -91,6 +91,7 @@ parameter is applicable: | |||
91 | SUSPEND System suspend states are enabled. | 91 | SUSPEND System suspend states are enabled. |
92 | FTRACE Function tracing enabled. | 92 | FTRACE Function tracing enabled. |
93 | TS Appropriate touchscreen support is enabled. | 93 | TS Appropriate touchscreen support is enabled. |
94 | UMS USB Mass Storage support is enabled. | ||
94 | USB USB support is enabled. | 95 | USB USB support is enabled. |
95 | USBHID USB Human Interface Device support is enabled. | 96 | USBHID USB Human Interface Device support is enabled. |
96 | V4L Video For Linux support is enabled. | 97 | V4L Video For Linux support is enabled. |
@@ -2387,6 +2388,41 @@ and is between 256 and 4096 characters. It is defined in the file | |||
2387 | usbhid.mousepoll= | 2388 | usbhid.mousepoll= |
2388 | [USBHID] The interval which mice are to be polled at. | 2389 | [USBHID] The interval which mice are to be polled at. |
2389 | 2390 | ||
2391 | usb-storage.delay_use= | ||
2392 | [UMS] The delay in seconds before a new device is | ||
2393 | scanned for Logical Units (default 5). | ||
2394 | |||
2395 | usb-storage.quirks= | ||
2396 | [UMS] A list of quirks entries to supplement or | ||
2397 | override the built-in unusual_devs list. List | ||
2398 | entries are separated by commas. Each entry has | ||
2399 | the form VID:PID:Flags where VID and PID are Vendor | ||
2400 | and Product ID values (4-digit hex numbers) and | ||
2401 | Flags is a set of characters, each corresponding | ||
2402 | to a common usb-storage quirk flag as follows: | ||
2403 | a = SANE_SENSE (collect more than 18 bytes | ||
2404 | of sense data); | ||
2405 | c = FIX_CAPACITY (decrease the reported | ||
2406 | device capacity by one sector); | ||
2407 | h = CAPACITY_HEURISTICS (decrease the | ||
2408 | reported device capacity by one | ||
2409 | sector if the number is odd); | ||
2410 | i = IGNORE_DEVICE (don't bind to this | ||
2411 | device); | ||
2412 | l = NOT_LOCKABLE (don't try to lock and | ||
2413 | unlock ejectable media); | ||
2414 | m = MAX_SECTORS_64 (don't transfer more | ||
2415 | than 64 sectors = 32 KB at a time); | ||
2416 | o = CAPACITY_OK (accept the capacity | ||
2417 | reported by the device); | ||
2418 | r = IGNORE_RESIDUE (the device reports | ||
2419 | bogus residue values); | ||
2420 | s = SINGLE_LUN (the device has only one | ||
2421 | Logical Unit); | ||
2422 | w = NO_WP_DETECT (don't test whether the | ||
2423 | medium is write-protected). | ||
2424 | Example: quirks=0419:aaf5:rl,0421:0433:rc | ||
2425 | |||
2390 | add_efi_memmap [EFI; x86-32,X86-64] Include EFI memory map in | 2426 | add_efi_memmap [EFI; x86-32,X86-64] Include EFI memory map in |
2391 | kernel's map of available physical RAM. | 2427 | kernel's map of available physical RAM. |
2392 | 2428 | ||
diff --git a/Documentation/laptops/thinkpad-acpi.txt b/Documentation/laptops/thinkpad-acpi.txt index 71f0fe1fc1b0..898b4987bb80 100644 --- a/Documentation/laptops/thinkpad-acpi.txt +++ b/Documentation/laptops/thinkpad-acpi.txt | |||
@@ -1475,7 +1475,7 @@ Sysfs interface changelog: | |||
1475 | 1475 | ||
1476 | 0x020100: Marker for thinkpad-acpi with hot key NVRAM polling | 1476 | 0x020100: Marker for thinkpad-acpi with hot key NVRAM polling |
1477 | support. If you must, use it to know you should not | 1477 | support. If you must, use it to know you should not |
1478 | start an userspace NVRAM poller (allows to detect when | 1478 | start a userspace NVRAM poller (allows to detect when |
1479 | NVRAM is compiled out by the user because it is | 1479 | NVRAM is compiled out by the user because it is |
1480 | unneeded/undesired in the first place). | 1480 | unneeded/undesired in the first place). |
1481 | 0x020101: Marker for thinkpad-acpi with hot key NVRAM polling | 1481 | 0x020101: Marker for thinkpad-acpi with hot key NVRAM polling |
diff --git a/Documentation/networking/rxrpc.txt b/Documentation/networking/rxrpc.txt index c3669a3fb4af..60d05eb77c64 100644 --- a/Documentation/networking/rxrpc.txt +++ b/Documentation/networking/rxrpc.txt | |||
@@ -540,7 +540,7 @@ A client would issue an operation by: | |||
540 | MSG_MORE should be set in msghdr::msg_flags on all but the last part of | 540 | MSG_MORE should be set in msghdr::msg_flags on all but the last part of |
541 | the request. Multiple requests may be made simultaneously. | 541 | the request. Multiple requests may be made simultaneously. |
542 | 542 | ||
543 | If a call is intended to go to a destination other then the default | 543 | If a call is intended to go to a destination other than the default |
544 | specified through connect(), then msghdr::msg_name should be set on the | 544 | specified through connect(), then msghdr::msg_name should be set on the |
545 | first request message of that call. | 545 | first request message of that call. |
546 | 546 | ||
diff --git a/Documentation/networking/tuntap.txt b/Documentation/networking/tuntap.txt index 839cbb71388b..c0aab985bad9 100644 --- a/Documentation/networking/tuntap.txt +++ b/Documentation/networking/tuntap.txt | |||
@@ -118,7 +118,7 @@ As mentioned above, main purpose of TUN/TAP driver is tunneling. | |||
118 | It is used by VTun (http://vtun.sourceforge.net). | 118 | It is used by VTun (http://vtun.sourceforge.net). |
119 | 119 | ||
120 | Another interesting application using TUN/TAP is pipsecd | 120 | Another interesting application using TUN/TAP is pipsecd |
121 | (http://perso.enst.fr/~beyssac/pipsec/), an userspace IPSec | 121 | (http://perso.enst.fr/~beyssac/pipsec/), a userspace IPSec |
122 | implementation that can use complete kernel routing (unlike FreeS/WAN). | 122 | implementation that can use complete kernel routing (unlike FreeS/WAN). |
123 | 123 | ||
124 | 3. How does Virtual network device actually work ? | 124 | 3. How does Virtual network device actually work ? |
diff --git a/Documentation/scsi/ChangeLog.lpfc b/Documentation/scsi/ChangeLog.lpfc index ae3f962a7cfc..ff19a52fe004 100644 --- a/Documentation/scsi/ChangeLog.lpfc +++ b/Documentation/scsi/ChangeLog.lpfc | |||
@@ -733,7 +733,7 @@ Changes from 20040920 to 20041018 | |||
733 | I/O completion path a little more, especially taking care of | 733 | I/O completion path a little more, especially taking care of |
734 | fast-pathing the non-error case. Also removes tons of dead | 734 | fast-pathing the non-error case. Also removes tons of dead |
735 | members and defines from lpfc_scsi.h - e.g. lpfc_target is down | 735 | members and defines from lpfc_scsi.h - e.g. lpfc_target is down |
736 | to nothing more then the lpfc_nodelist pointer. | 736 | to nothing more than the lpfc_nodelist pointer. |
737 | * Added binary sysfs file to issue mbox commands | 737 | * Added binary sysfs file to issue mbox commands |
738 | * Replaced #if __BIG_ENDIAN with #if __BIG_ENDIAN_BITFIELD for | 738 | * Replaced #if __BIG_ENDIAN with #if __BIG_ENDIAN_BITFIELD for |
739 | compatibility with the user space applications. | 739 | compatibility with the user space applications. |
diff --git a/Documentation/scsi/ChangeLog.ncr53c8xx b/Documentation/scsi/ChangeLog.ncr53c8xx index a9f721aeb11c..8b278c10edfd 100644 --- a/Documentation/scsi/ChangeLog.ncr53c8xx +++ b/Documentation/scsi/ChangeLog.ncr53c8xx | |||
@@ -19,7 +19,7 @@ Sun Sep 24 21:30 2000 Gerard Roudier (groudier@club-internet.fr) | |||
19 | 19 | ||
20 | Wed Jul 26 23:30 2000 Gerard Roudier (groudier@club-internet.fr) | 20 | Wed Jul 26 23:30 2000 Gerard Roudier (groudier@club-internet.fr) |
21 | * version ncr53c8xx-3.4.1 | 21 | * version ncr53c8xx-3.4.1 |
22 | - Provide OpenFirmare path through the proc FS on PPC. | 22 | - Provide OpenFirmware path through the proc FS on PPC. |
23 | - Remove trailing argument #2 from a couple of #undefs. | 23 | - Remove trailing argument #2 from a couple of #undefs. |
24 | 24 | ||
25 | Sun Jul 09 16:30 2000 Gerard Roudier (groudier@club-internet.fr) | 25 | Sun Jul 09 16:30 2000 Gerard Roudier (groudier@club-internet.fr) |
diff --git a/Documentation/scsi/ChangeLog.sym53c8xx b/Documentation/scsi/ChangeLog.sym53c8xx index ef985ec348e6..02ffbc1e8a84 100644 --- a/Documentation/scsi/ChangeLog.sym53c8xx +++ b/Documentation/scsi/ChangeLog.sym53c8xx | |||
@@ -81,7 +81,7 @@ Sun Sep 24 21:30 2000 Gerard Roudier (groudier@club-internet.fr) | |||
81 | 81 | ||
82 | Wed Jul 26 23:30 2000 Gerard Roudier (groudier@club-internet.fr) | 82 | Wed Jul 26 23:30 2000 Gerard Roudier (groudier@club-internet.fr) |
83 | * version sym53c8xx-1.7.1 | 83 | * version sym53c8xx-1.7.1 |
84 | - Provide OpenFirmare path through the proc FS on PPC. | 84 | - Provide OpenFirmware path through the proc FS on PPC. |
85 | - Download of on-chip SRAM using memcpy_toio() doesn't work | 85 | - Download of on-chip SRAM using memcpy_toio() doesn't work |
86 | on PPC. Restore previous method (MEMORY MOVE from SCRIPTS). | 86 | on PPC. Restore previous method (MEMORY MOVE from SCRIPTS). |
87 | - Remove trailing argument #2 from a couple of #undefs. | 87 | - Remove trailing argument #2 from a couple of #undefs. |
diff --git a/Documentation/spi/spi-lm70llp b/Documentation/spi/spi-lm70llp index 154bd02220b9..34a9cfd746bd 100644 --- a/Documentation/spi/spi-lm70llp +++ b/Documentation/spi/spi-lm70llp | |||
@@ -13,10 +13,20 @@ Description | |||
13 | This driver provides glue code connecting a National Semiconductor LM70 LLP | 13 | This driver provides glue code connecting a National Semiconductor LM70 LLP |
14 | temperature sensor evaluation board to the kernel's SPI core subsystem. | 14 | temperature sensor evaluation board to the kernel's SPI core subsystem. |
15 | 15 | ||
16 | This is a SPI master controller driver. It can be used in conjunction with | ||
17 | (layered under) the LM70 logical driver (a "SPI protocol driver"). | ||
16 | In effect, this driver turns the parallel port interface on the eval board | 18 | In effect, this driver turns the parallel port interface on the eval board |
17 | into a SPI bus with a single device, which will be driven by the generic | 19 | into a SPI bus with a single device, which will be driven by the generic |
18 | LM70 driver (drivers/hwmon/lm70.c). | 20 | LM70 driver (drivers/hwmon/lm70.c). |
19 | 21 | ||
22 | |||
23 | Hardware Interfacing | ||
24 | -------------------- | ||
25 | The schematic for this particular board (the LM70EVAL-LLP) is | ||
26 | available (on page 4) here: | ||
27 | |||
28 | http://www.national.com/appinfo/tempsensors/files/LM70LLPEVALmanual.pdf | ||
29 | |||
20 | The hardware interfacing on the LM70 LLP eval board is as follows: | 30 | The hardware interfacing on the LM70 LLP eval board is as follows: |
21 | 31 | ||
22 | Parallel LM70 LLP | 32 | Parallel LM70 LLP |
diff --git a/Documentation/usb/power-management.txt b/Documentation/usb/power-management.txt index e48ea1d51010..ad642615ad4c 100644 --- a/Documentation/usb/power-management.txt +++ b/Documentation/usb/power-management.txt | |||
@@ -313,11 +313,13 @@ three of the methods listed above. In addition, a driver indicates | |||
313 | that it supports autosuspend by setting the .supports_autosuspend flag | 313 | that it supports autosuspend by setting the .supports_autosuspend flag |
314 | in its usb_driver structure. It is then responsible for informing the | 314 | in its usb_driver structure. It is then responsible for informing the |
315 | USB core whenever one of its interfaces becomes busy or idle. The | 315 | USB core whenever one of its interfaces becomes busy or idle. The |
316 | driver does so by calling these three functions: | 316 | driver does so by calling these five functions: |
317 | 317 | ||
318 | int usb_autopm_get_interface(struct usb_interface *intf); | 318 | int usb_autopm_get_interface(struct usb_interface *intf); |
319 | void usb_autopm_put_interface(struct usb_interface *intf); | 319 | void usb_autopm_put_interface(struct usb_interface *intf); |
320 | int usb_autopm_set_interface(struct usb_interface *intf); | 320 | int usb_autopm_set_interface(struct usb_interface *intf); |
321 | int usb_autopm_get_interface_async(struct usb_interface *intf); | ||
322 | void usb_autopm_put_interface_async(struct usb_interface *intf); | ||
321 | 323 | ||
322 | The functions work by maintaining a counter in the usb_interface | 324 | The functions work by maintaining a counter in the usb_interface |
323 | structure. When intf->pm_usage_count is > 0 then the interface is | 325 | structure. When intf->pm_usage_count is > 0 then the interface is |
@@ -330,10 +332,12 @@ associated with the device itself rather than any of its interfaces. | |||
330 | This field is used only by the USB core.) | 332 | This field is used only by the USB core.) |
331 | 333 | ||
332 | The driver owns intf->pm_usage_count; it can modify the value however | 334 | The driver owns intf->pm_usage_count; it can modify the value however |
333 | and whenever it likes. A nice aspect of the usb_autopm_* routines is | 335 | and whenever it likes. A nice aspect of the non-async usb_autopm_* |
334 | that the changes they make are protected by the usb_device structure's | 336 | routines is that the changes they make are protected by the usb_device |
335 | PM mutex (udev->pm_mutex); however drivers may change pm_usage_count | 337 | structure's PM mutex (udev->pm_mutex); however drivers may change |
336 | without holding the mutex. | 338 | pm_usage_count without holding the mutex. Drivers using the async |
339 | routines are responsible for their own synchronization and mutual | ||
340 | exclusion. | ||
337 | 341 | ||
338 | usb_autopm_get_interface() increments pm_usage_count and | 342 | usb_autopm_get_interface() increments pm_usage_count and |
339 | attempts an autoresume if the new value is > 0 and the | 343 | attempts an autoresume if the new value is > 0 and the |
@@ -348,6 +352,14 @@ without holding the mutex. | |||
348 | is suspended, and it attempts an autosuspend if the value is | 352 | is suspended, and it attempts an autosuspend if the value is |
349 | <= 0 and the device isn't suspended. | 353 | <= 0 and the device isn't suspended. |
350 | 354 | ||
355 | usb_autopm_get_interface_async() and | ||
356 | usb_autopm_put_interface_async() do almost the same things as | ||
357 | their non-async counterparts. The differences are: they do | ||
358 | not acquire the PM mutex, and they use a workqueue to do their | ||
359 | jobs. As a result they can be called in an atomic context, | ||
360 | such as an URB's completion handler, but when they return the | ||
361 | device will not generally not yet be in the desired state. | ||
362 | |||
351 | There also are a couple of utility routines drivers can use: | 363 | There also are a couple of utility routines drivers can use: |
352 | 364 | ||
353 | usb_autopm_enable() sets pm_usage_cnt to 0 and then calls | 365 | usb_autopm_enable() sets pm_usage_cnt to 0 and then calls |
diff --git a/Documentation/wimax/README.i2400m b/Documentation/wimax/README.i2400m new file mode 100644 index 000000000000..7dffd8919cb0 --- /dev/null +++ b/Documentation/wimax/README.i2400m | |||
@@ -0,0 +1,260 @@ | |||
1 | |||
2 | Driver for the Intel Wireless Wimax Connection 2400m | ||
3 | |||
4 | (C) 2008 Intel Corporation < linux-wimax@intel.com > | ||
5 | |||
6 | This provides a driver for the Intel Wireless WiMAX Connection 2400m | ||
7 | and a basic Linux kernel WiMAX stack. | ||
8 | |||
9 | 1. Requirements | ||
10 | |||
11 | * Linux installation with Linux kernel 2.6.22 or newer (if building | ||
12 | from a separate tree) | ||
13 | * Intel i2400m Echo Peak or Baxter Peak; this includes the Intel | ||
14 | Wireless WiMAX/WiFi Link 5x50 series. | ||
15 | * build tools: | ||
16 | + Linux kernel development package for the target kernel; to | ||
17 | build against your currently running kernel, you need to have | ||
18 | the kernel development package corresponding to the running | ||
19 | image installed (usually if your kernel is named | ||
20 | linux-VERSION, the development package is called | ||
21 | linux-dev-VERSION or linux-headers-VERSION). | ||
22 | + GNU C Compiler, make | ||
23 | |||
24 | 2. Compilation and installation | ||
25 | |||
26 | 2.1. Compilation of the drivers included in the kernel | ||
27 | |||
28 | Configure the kernel; to enable the WiMAX drivers select Drivers > | ||
29 | Networking Drivers > WiMAX device support. Enable all of them as | ||
30 | modules (easier). | ||
31 | |||
32 | If USB or SDIO are not enabled in the kernel configuration, the options | ||
33 | to build the i2400m USB or SDIO drivers will not show. Enable said | ||
34 | subsystems and go back to the WiMAX menu to enable the drivers. | ||
35 | |||
36 | Compile and install your kernel as usual. | ||
37 | |||
38 | 2.2. Compilation of the drivers distributed as an standalone module | ||
39 | |||
40 | To compile | ||
41 | |||
42 | $ cd source/directory | ||
43 | $ make | ||
44 | |||
45 | Once built you can load and unload using the provided load.sh script; | ||
46 | load.sh will load the modules, load.sh u will unload them. | ||
47 | |||
48 | To install in the default kernel directories (and enable auto loading | ||
49 | when the device is plugged): | ||
50 | |||
51 | $ make install | ||
52 | $ depmod -a | ||
53 | |||
54 | If your kernel development files are located in a non standard | ||
55 | directory or if you want to build for a kernel that is not the | ||
56 | currently running one, set KDIR to the right location: | ||
57 | |||
58 | $ make KDIR=/path/to/kernel/dev/tree | ||
59 | |||
60 | For more information, please contact linux-wimax@intel.com. | ||
61 | |||
62 | 3. Installing the firmware | ||
63 | |||
64 | The firmware can be obtained from http://linuxwimax.org or might have | ||
65 | been supplied with your hardware. | ||
66 | |||
67 | It has to be installed in the target system: | ||
68 | * | ||
69 | $ cp FIRMWAREFILE.sbcf /lib/firmware/i2400m-fw-BUSTYPE-1.3.sbcf | ||
70 | |||
71 | * NOTE: if your firmware came in an .rpm or .deb file, just install | ||
72 | it as normal, with the rpm (rpm -i FIRMWARE.rpm) or dpkg | ||
73 | (dpkg -i FIRMWARE.deb) commands. No further action is needed. | ||
74 | * BUSTYPE will be usb or sdio, depending on the hardware you have. | ||
75 | Each hardware type comes with its own firmware and will not work | ||
76 | with other types. | ||
77 | |||
78 | 4. Design | ||
79 | |||
80 | This package contains two major parts: a WiMAX kernel stack and a | ||
81 | driver for the Intel i2400m. | ||
82 | |||
83 | The WiMAX stack is designed to provide for common WiMAX control | ||
84 | services to current and future WiMAX devices from any vendor; please | ||
85 | see README.wimax for details. | ||
86 | |||
87 | The i2400m kernel driver is broken up in two main parts: the bus | ||
88 | generic driver and the bus-specific drivers. The bus generic driver | ||
89 | forms the drivercore and contain no knowledge of the actual method we | ||
90 | use to connect to the device. The bus specific drivers are just the | ||
91 | glue to connect the bus-generic driver and the device. Currently only | ||
92 | USB and SDIO are supported. See drivers/net/wimax/i2400m/i2400m.h for | ||
93 | more information. | ||
94 | |||
95 | The bus generic driver is logically broken up in two parts: OS-glue and | ||
96 | hardware-glue. The OS-glue interfaces with Linux. The hardware-glue | ||
97 | interfaces with the device on using an interface provided by the | ||
98 | bus-specific driver. The reason for this breakup is to be able to | ||
99 | easily reuse the hardware-glue to write drivers for other OSes; note | ||
100 | the hardware glue part is written as a native Linux driver; no | ||
101 | abstraction layers are used, so to port to another OS, the Linux kernel | ||
102 | API calls should be replaced with the target OS's. | ||
103 | |||
104 | 5. Usage | ||
105 | |||
106 | To load the driver, follow the instructions in the install section; | ||
107 | once the driver is loaded, plug in the device (unless it is permanently | ||
108 | plugged in). The driver will enumerate the device, upload the firmware | ||
109 | and output messages in the kernel log (dmesg, /var/log/messages or | ||
110 | /var/log/kern.log) such as: | ||
111 | |||
112 | ... | ||
113 | i2400m_usb 5-4:1.0: firmware interface version 8.0.0 | ||
114 | i2400m_usb 5-4:1.0: WiMAX interface wmx0 (00:1d:e1:01:94:2c) ready | ||
115 | |||
116 | At this point the device is ready to work. | ||
117 | |||
118 | Current versions require the Intel WiMAX Network Service in userspace | ||
119 | to make things work. See the network service's README for instructions | ||
120 | on how to scan, connect and disconnect. | ||
121 | |||
122 | 5.1. Module parameters | ||
123 | |||
124 | Module parameters can be set at kernel or module load time or by | ||
125 | echoing values: | ||
126 | |||
127 | $ echo VALUE > /sys/module/MODULENAME/parameters/PARAMETERNAME | ||
128 | |||
129 | To make changes permanent, for example, for the i2400m module, you can | ||
130 | also create a file named /etc/modprobe.d/i2400m containing: | ||
131 | |||
132 | options i2400m idle_mode_disabled=1 | ||
133 | |||
134 | To find which parameters are supported by a module, run: | ||
135 | |||
136 | $ modinfo path/to/module.ko | ||
137 | |||
138 | During kernel bootup (if the driver is linked in the kernel), specify | ||
139 | the following to the kernel command line: | ||
140 | |||
141 | i2400m.PARAMETER=VALUE | ||
142 | |||
143 | 5.1.1. i2400m: idle_mode_disabled | ||
144 | |||
145 | The i2400m module supports a parameter to disable idle mode. This | ||
146 | parameter, once set, will take effect only when the device is | ||
147 | reinitialized by the driver (eg: following a reset or a reconnect). | ||
148 | |||
149 | 5.2. Debug operations: debugfs entries | ||
150 | |||
151 | The driver will register debugfs entries that allow the user to tweak | ||
152 | debug settings. There are three main container directories where | ||
153 | entries are placed, which correspond to the three blocks a i2400m WiMAX | ||
154 | driver has: | ||
155 | * /sys/kernel/debug/wimax:DEVNAME/ for the generic WiMAX stack | ||
156 | controls | ||
157 | * /sys/kernel/debug/wimax:DEVNAME/i2400m for the i2400m generic | ||
158 | driver controls | ||
159 | * /sys/kernel/debug/wimax:DEVNAME/i2400m-usb (or -sdio) for the | ||
160 | bus-specific i2400m-usb or i2400m-sdio controls). | ||
161 | |||
162 | Of course, if debugfs is mounted in a directory other than | ||
163 | /sys/kernel/debug, those paths will change. | ||
164 | |||
165 | 5.2.1. Increasing debug output | ||
166 | |||
167 | The files named *dl_* indicate knobs for controlling the debug output | ||
168 | of different submodules: | ||
169 | * | ||
170 | # find /sys/kernel/debug/wimax\:wmx0 -name \*dl_\* | ||
171 | /sys/kernel/debug/wimax:wmx0/i2400m-usb/dl_tx | ||
172 | /sys/kernel/debug/wimax:wmx0/i2400m-usb/dl_rx | ||
173 | /sys/kernel/debug/wimax:wmx0/i2400m-usb/dl_notif | ||
174 | /sys/kernel/debug/wimax:wmx0/i2400m-usb/dl_fw | ||
175 | /sys/kernel/debug/wimax:wmx0/i2400m-usb/dl_usb | ||
176 | /sys/kernel/debug/wimax:wmx0/i2400m/dl_tx | ||
177 | /sys/kernel/debug/wimax:wmx0/i2400m/dl_rx | ||
178 | /sys/kernel/debug/wimax:wmx0/i2400m/dl_rfkill | ||
179 | /sys/kernel/debug/wimax:wmx0/i2400m/dl_netdev | ||
180 | /sys/kernel/debug/wimax:wmx0/i2400m/dl_fw | ||
181 | /sys/kernel/debug/wimax:wmx0/i2400m/dl_debugfs | ||
182 | /sys/kernel/debug/wimax:wmx0/i2400m/dl_driver | ||
183 | /sys/kernel/debug/wimax:wmx0/i2400m/dl_control | ||
184 | /sys/kernel/debug/wimax:wmx0/wimax_dl_stack | ||
185 | /sys/kernel/debug/wimax:wmx0/wimax_dl_op_rfkill | ||
186 | /sys/kernel/debug/wimax:wmx0/wimax_dl_op_reset | ||
187 | /sys/kernel/debug/wimax:wmx0/wimax_dl_op_msg | ||
188 | /sys/kernel/debug/wimax:wmx0/wimax_dl_id_table | ||
189 | /sys/kernel/debug/wimax:wmx0/wimax_dl_debugfs | ||
190 | |||
191 | By reading the file you can obtain the current value of said debug | ||
192 | level; by writing to it, you can set it. | ||
193 | |||
194 | To increase the debug level of, for example, the i2400m's generic TX | ||
195 | engine, just write: | ||
196 | |||
197 | $ echo 3 > /sys/kernel/debug/wimax:wmx0/i2400m/dl_tx | ||
198 | |||
199 | Increasing numbers yield increasing debug information; for details of | ||
200 | what is printed and the available levels, check the source. The code | ||
201 | uses 0 for disabled and increasing values until 8. | ||
202 | |||
203 | 5.2.2. RX and TX statistics | ||
204 | |||
205 | The i2400m/rx_stats and i2400m/tx_stats provide statistics about the | ||
206 | data reception/delivery from the device: | ||
207 | |||
208 | $ cat /sys/kernel/debug/wimax:wmx0/i2400m/rx_stats | ||
209 | 45 1 3 34 3104 48 480 | ||
210 | |||
211 | The numbers reported are | ||
212 | * packets/RX-buffer: total, min, max | ||
213 | * RX-buffers: total RX buffers received, accumulated RX buffer size | ||
214 | in bytes, min size received, max size received | ||
215 | |||
216 | Thus, to find the average buffer size received, divide accumulated | ||
217 | RX-buffer / total RX-buffers. | ||
218 | |||
219 | To clear the statistics back to 0, write anything to the rx_stats file: | ||
220 | |||
221 | $ echo 1 > /sys/kernel/debug/wimax:wmx0/i2400m_rx_stats | ||
222 | |||
223 | Likewise for TX. | ||
224 | |||
225 | Note the packets this debug file refers to are not network packet, but | ||
226 | packets in the sense of the device-specific protocol for communication | ||
227 | to the host. See drivers/net/wimax/i2400m/tx.c. | ||
228 | |||
229 | 5.2.3. Tracing messages received from user space | ||
230 | |||
231 | To echo messages received from user space into the trace pipe that the | ||
232 | i2400m driver creates, set the debug file i2400m/trace_msg_from_user to | ||
233 | 1: | ||
234 | * | ||
235 | $ echo 1 > /sys/kernel/debug/wimax:wmx0/i2400m/trace_msg_from_user | ||
236 | |||
237 | 5.2.4. Performing a device reset | ||
238 | |||
239 | By writing a 0, a 1 or a 2 to the file | ||
240 | /sys/kernel/debug/wimax:wmx0/reset, the driver performs a warm (without | ||
241 | disconnecting from the bus), cold (disconnecting from the bus) or bus | ||
242 | (bus specific) reset on the device. | ||
243 | |||
244 | 5.2.5. Asking the device to enter power saving mode | ||
245 | |||
246 | By writing any value to the /sys/kernel/debug/wimax:wmx0 file, the | ||
247 | device will attempt to enter power saving mode. | ||
248 | |||
249 | 6. Troubleshooting | ||
250 | |||
251 | 6.1. Driver complains about 'i2400m-fw-usb-1.2.sbcf: request failed' | ||
252 | |||
253 | If upon connecting the device, the following is output in the kernel | ||
254 | log: | ||
255 | |||
256 | i2400m_usb 5-4:1.0: fw i2400m-fw-usb-1.3.sbcf: request failed: -2 | ||
257 | |||
258 | This means that the driver cannot locate the firmware file named | ||
259 | /lib/firmware/i2400m-fw-usb-1.2.sbcf. Check that the file is present in | ||
260 | the right location. | ||
diff --git a/Documentation/wimax/README.wimax b/Documentation/wimax/README.wimax new file mode 100644 index 000000000000..b78c4378084e --- /dev/null +++ b/Documentation/wimax/README.wimax | |||
@@ -0,0 +1,81 @@ | |||
1 | |||
2 | Linux kernel WiMAX stack | ||
3 | |||
4 | (C) 2008 Intel Corporation < linux-wimax@intel.com > | ||
5 | |||
6 | This provides a basic Linux kernel WiMAX stack to provide a common | ||
7 | control API for WiMAX devices, usable from kernel and user space. | ||
8 | |||
9 | 1. Design | ||
10 | |||
11 | The WiMAX stack is designed to provide for common WiMAX control | ||
12 | services to current and future WiMAX devices from any vendor. | ||
13 | |||
14 | Because currently there is only one and we don't know what would be the | ||
15 | common services, the APIs it currently provides are very minimal. | ||
16 | However, it is done in such a way that it is easily extensible to | ||
17 | accommodate future requirements. | ||
18 | |||
19 | The stack works by embedding a struct wimax_dev in your device's | ||
20 | control structures. This provides a set of callbacks that the WiMAX | ||
21 | stack will call in order to implement control operations requested by | ||
22 | the user. As well, the stack provides API functions that the driver | ||
23 | calls to notify about changes of state in the device. | ||
24 | |||
25 | The stack exports the API calls needed to control the device to user | ||
26 | space using generic netlink as a marshalling mechanism. You can access | ||
27 | them using your own code or use the wrappers provided for your | ||
28 | convenience in libwimax (in the wimax-tools package). | ||
29 | |||
30 | For detailed information on the stack, please see | ||
31 | include/linux/wimax.h. | ||
32 | |||
33 | 2. Usage | ||
34 | |||
35 | For usage in a driver (registration, API, etc) please refer to the | ||
36 | instructions in the header file include/linux/wimax.h. | ||
37 | |||
38 | When a device is registered with the WiMAX stack, a set of debugfs | ||
39 | files will appear in /sys/kernel/debug/wimax:wmxX can tweak for | ||
40 | control. | ||
41 | |||
42 | 2.1. Obtaining debug information: debugfs entries | ||
43 | |||
44 | The WiMAX stack is compiled, by default, with debug messages that can | ||
45 | be used to diagnose issues. By default, said messages are disabled. | ||
46 | |||
47 | The drivers will register debugfs entries that allow the user to tweak | ||
48 | debug settings. | ||
49 | |||
50 | Each driver, when registering with the stack, will cause a debugfs | ||
51 | directory named wimax:DEVICENAME to be created; optionally, it might | ||
52 | create more subentries below it. | ||
53 | |||
54 | 2.1.1. Increasing debug output | ||
55 | |||
56 | The files named *dl_* indicate knobs for controlling the debug output | ||
57 | of different submodules of the WiMAX stack: | ||
58 | * | ||
59 | # find /sys/kernel/debug/wimax\:wmx0 -name \*dl_\* | ||
60 | /sys/kernel/debug/wimax:wmx0/wimax_dl_stack | ||
61 | /sys/kernel/debug/wimax:wmx0/wimax_dl_op_rfkill | ||
62 | /sys/kernel/debug/wimax:wmx0/wimax_dl_op_reset | ||
63 | /sys/kernel/debug/wimax:wmx0/wimax_dl_op_msg | ||
64 | /sys/kernel/debug/wimax:wmx0/wimax_dl_id_table | ||
65 | /sys/kernel/debug/wimax:wmx0/wimax_dl_debugfs | ||
66 | /sys/kernel/debug/wimax:wmx0/.... # other driver specific files | ||
67 | |||
68 | NOTE: Of course, if debugfs is mounted in a directory other than | ||
69 | /sys/kernel/debug, those paths will change. | ||
70 | |||
71 | By reading the file you can obtain the current value of said debug | ||
72 | level; by writing to it, you can set it. | ||
73 | |||
74 | To increase the debug level of, for example, the id-table submodule, | ||
75 | just write: | ||
76 | |||
77 | $ echo 3 > /sys/kernel/debug/wimax:wmx0/wimax_dl_id_table | ||
78 | |||
79 | Increasing numbers yield increasing debug information; for details of | ||
80 | what is printed and the available levels, check the source. The code | ||
81 | uses 0 for disabled and increasing values until 8. | ||