diff options
Diffstat (limited to 'Documentation')
25 files changed, 636 insertions, 256 deletions
diff --git a/Documentation/DocBook/deviceiobook.tmpl b/Documentation/DocBook/deviceiobook.tmpl index c917de681cc..361c884d860 100644 --- a/Documentation/DocBook/deviceiobook.tmpl +++ b/Documentation/DocBook/deviceiobook.tmpl | |||
@@ -316,7 +316,7 @@ CPU B: spin_unlock_irqrestore(&dev_lock, flags) | |||
316 | 316 | ||
317 | <chapter id="pubfunctions"> | 317 | <chapter id="pubfunctions"> |
318 | <title>Public Functions Provided</title> | 318 | <title>Public Functions Provided</title> |
319 | !Iinclude/asm-i386/io.h | 319 | !Iinclude/asm-x86/io_32.h |
320 | !Elib/iomap.c | 320 | !Elib/iomap.c |
321 | </chapter> | 321 | </chapter> |
322 | 322 | ||
diff --git a/Documentation/DocBook/kernel-api.tmpl b/Documentation/DocBook/kernel-api.tmpl index e5da4f2b7c2..230cbf75378 100644 --- a/Documentation/DocBook/kernel-api.tmpl +++ b/Documentation/DocBook/kernel-api.tmpl | |||
@@ -45,8 +45,8 @@ | |||
45 | </sect1> | 45 | </sect1> |
46 | 46 | ||
47 | <sect1><title>Atomic and pointer manipulation</title> | 47 | <sect1><title>Atomic and pointer manipulation</title> |
48 | !Iinclude/asm-i386/atomic.h | 48 | !Iinclude/asm-x86/atomic_32.h |
49 | !Iinclude/asm-i386/unaligned.h | 49 | !Iinclude/asm-x86/unaligned_32.h |
50 | </sect1> | 50 | </sect1> |
51 | 51 | ||
52 | <sect1><title>Delaying, scheduling, and timer routines</title> | 52 | <sect1><title>Delaying, scheduling, and timer routines</title> |
@@ -119,7 +119,7 @@ X!Ilib/string.c | |||
119 | !Elib/string.c | 119 | !Elib/string.c |
120 | </sect1> | 120 | </sect1> |
121 | <sect1><title>Bit Operations</title> | 121 | <sect1><title>Bit Operations</title> |
122 | !Iinclude/asm-i386/bitops.h | 122 | !Iinclude/asm-x86/bitops_32.h |
123 | </sect1> | 123 | </sect1> |
124 | </chapter> | 124 | </chapter> |
125 | 125 | ||
@@ -155,8 +155,8 @@ X!Ilib/string.c | |||
155 | !Emm/slab.c | 155 | !Emm/slab.c |
156 | </sect1> | 156 | </sect1> |
157 | <sect1><title>User Space Memory Access</title> | 157 | <sect1><title>User Space Memory Access</title> |
158 | !Iinclude/asm-i386/uaccess.h | 158 | !Iinclude/asm-x86/uaccess_32.h |
159 | !Earch/i386/lib/usercopy.c | 159 | !Earch/x86/lib/usercopy_32.c |
160 | </sect1> | 160 | </sect1> |
161 | <sect1><title>More Memory Management Functions</title> | 161 | <sect1><title>More Memory Management Functions</title> |
162 | !Emm/readahead.c | 162 | !Emm/readahead.c |
@@ -293,7 +293,7 @@ X!Ekernel/module.c | |||
293 | </sect1> | 293 | </sect1> |
294 | 294 | ||
295 | <sect1><title>MTRR Handling</title> | 295 | <sect1><title>MTRR Handling</title> |
296 | !Earch/i386/kernel/cpu/mtrr/main.c | 296 | !Earch/x86/kernel/cpu/mtrr/main.c |
297 | </sect1> | 297 | </sect1> |
298 | 298 | ||
299 | <sect1><title>PCI Support Library</title> | 299 | <sect1><title>PCI Support Library</title> |
@@ -316,14 +316,14 @@ X!Edrivers/pci/hotplug.c | |||
316 | <sect1><title>MCA Architecture</title> | 316 | <sect1><title>MCA Architecture</title> |
317 | <sect2><title>MCA Device Functions</title> | 317 | <sect2><title>MCA Device Functions</title> |
318 | <para> | 318 | <para> |
319 | Refer to the file arch/i386/kernel/mca.c for more information. | 319 | Refer to the file arch/x86/kernel/mca_32.c for more information. |
320 | </para> | 320 | </para> |
321 | <!-- FIXME: Removed for now since no structured comments in source | 321 | <!-- FIXME: Removed for now since no structured comments in source |
322 | X!Earch/i386/kernel/mca.c | 322 | X!Earch/x86/kernel/mca_32.c |
323 | --> | 323 | --> |
324 | </sect2> | 324 | </sect2> |
325 | <sect2><title>MCA Bus DMA</title> | 325 | <sect2><title>MCA Bus DMA</title> |
326 | !Iinclude/asm-i386/mca_dma.h | 326 | !Iinclude/asm-x86/mca_dma.h |
327 | </sect2> | 327 | </sect2> |
328 | </sect1> | 328 | </sect1> |
329 | </chapter> | 329 | </chapter> |
diff --git a/Documentation/DocBook/kernel-hacking.tmpl b/Documentation/DocBook/kernel-hacking.tmpl index 582032eea87..4c63e586416 100644 --- a/Documentation/DocBook/kernel-hacking.tmpl +++ b/Documentation/DocBook/kernel-hacking.tmpl | |||
@@ -1239,7 +1239,7 @@ static struct block_device_operations opt_fops = { | |||
1239 | </para> | 1239 | </para> |
1240 | 1240 | ||
1241 | <para> | 1241 | <para> |
1242 | <filename>include/asm-i386/delay.h:</filename> | 1242 | <filename>include/asm-x86/delay_32.h:</filename> |
1243 | </para> | 1243 | </para> |
1244 | <programlisting> | 1244 | <programlisting> |
1245 | #define ndelay(n) (__builtin_constant_p(n) ? \ | 1245 | #define ndelay(n) (__builtin_constant_p(n) ? \ |
@@ -1265,7 +1265,7 @@ static struct block_device_operations opt_fops = { | |||
1265 | </programlisting> | 1265 | </programlisting> |
1266 | 1266 | ||
1267 | <para> | 1267 | <para> |
1268 | <filename>include/asm-i386/uaccess.h:</filename> | 1268 | <filename>include/asm-x86/uaccess_32.h:</filename> |
1269 | </para> | 1269 | </para> |
1270 | 1270 | ||
1271 | <programlisting> | 1271 | <programlisting> |
diff --git a/Documentation/DocBook/mcabook.tmpl b/Documentation/DocBook/mcabook.tmpl index 42a760cd746..529a53dc138 100644 --- a/Documentation/DocBook/mcabook.tmpl +++ b/Documentation/DocBook/mcabook.tmpl | |||
@@ -101,7 +101,7 @@ | |||
101 | 101 | ||
102 | <chapter id="dmafunctions"> | 102 | <chapter id="dmafunctions"> |
103 | <title>DMA Functions Provided</title> | 103 | <title>DMA Functions Provided</title> |
104 | !Iinclude/asm-i386/mca_dma.h | 104 | !Iinclude/asm-x86/mca_dma.h |
105 | </chapter> | 105 | </chapter> |
106 | 106 | ||
107 | </book> | 107 | </book> |
diff --git a/Documentation/DocBook/mtdnand.tmpl b/Documentation/DocBook/mtdnand.tmpl index a8c8cce5063..6fbc41d98c1 100644 --- a/Documentation/DocBook/mtdnand.tmpl +++ b/Documentation/DocBook/mtdnand.tmpl | |||
@@ -275,16 +275,13 @@ int __init board_init (void) | |||
275 | int err = 0; | 275 | int err = 0; |
276 | 276 | ||
277 | /* Allocate memory for MTD device structure and private data */ | 277 | /* Allocate memory for MTD device structure and private data */ |
278 | board_mtd = kmalloc (sizeof(struct mtd_info) + sizeof (struct nand_chip), GFP_KERNEL); | 278 | board_mtd = kzalloc(sizeof(struct mtd_info) + sizeof(struct nand_chip), GFP_KERNEL); |
279 | if (!board_mtd) { | 279 | if (!board_mtd) { |
280 | printk ("Unable to allocate NAND MTD device structure.\n"); | 280 | printk ("Unable to allocate NAND MTD device structure.\n"); |
281 | err = -ENOMEM; | 281 | err = -ENOMEM; |
282 | goto out; | 282 | goto out; |
283 | } | 283 | } |
284 | 284 | ||
285 | /* Initialize structures */ | ||
286 | memset ((char *) board_mtd, 0, sizeof(struct mtd_info) + sizeof(struct nand_chip)); | ||
287 | |||
288 | /* map physical adress */ | 285 | /* map physical adress */ |
289 | baseaddr = (unsigned long)ioremap(CHIP_PHYSICAL_ADDRESS, 1024); | 286 | baseaddr = (unsigned long)ioremap(CHIP_PHYSICAL_ADDRESS, 1024); |
290 | if(!baseaddr){ | 287 | if(!baseaddr){ |
diff --git a/Documentation/hwmon/coretemp b/Documentation/hwmon/coretemp index 870cda9416e..170bf862437 100644 --- a/Documentation/hwmon/coretemp +++ b/Documentation/hwmon/coretemp | |||
@@ -4,7 +4,7 @@ Kernel driver coretemp | |||
4 | Supported chips: | 4 | Supported chips: |
5 | * All Intel Core family | 5 | * All Intel Core family |
6 | Prefix: 'coretemp' | 6 | Prefix: 'coretemp' |
7 | CPUID: family 0x6, models 0xe, 0xf | 7 | CPUID: family 0x6, models 0xe, 0xf, 0x16 |
8 | Datasheet: Intel 64 and IA-32 Architectures Software Developer's Manual | 8 | Datasheet: Intel 64 and IA-32 Architectures Software Developer's Manual |
9 | Volume 3A: System Programming Guide | 9 | Volume 3A: System Programming Guide |
10 | 10 | ||
diff --git a/Documentation/hwmon/dme1737 b/Documentation/hwmon/dme1737 index 1a0f3d64ab8..8f446070e64 100644 --- a/Documentation/hwmon/dme1737 +++ b/Documentation/hwmon/dme1737 | |||
@@ -6,6 +6,10 @@ Supported chips: | |||
6 | Prefix: 'dme1737' | 6 | Prefix: 'dme1737' |
7 | Addresses scanned: I2C 0x2c, 0x2d, 0x2e | 7 | Addresses scanned: I2C 0x2c, 0x2d, 0x2e |
8 | Datasheet: Provided by SMSC upon request and under NDA | 8 | Datasheet: Provided by SMSC upon request and under NDA |
9 | * SMSC SCH3112, SCH3114, SCH3116 | ||
10 | Prefix: 'sch311x' | ||
11 | Addresses scanned: none, address read from Super-I/O config space | ||
12 | Datasheet: http://www.nuhorizons.com/FeaturedProducts/Volume1/SMSC/311x.pdf | ||
9 | 13 | ||
10 | Authors: | 14 | Authors: |
11 | Juerg Haefliger <juergh@gmail.com> | 15 | Juerg Haefliger <juergh@gmail.com> |
@@ -27,16 +31,25 @@ Description | |||
27 | ----------- | 31 | ----------- |
28 | 32 | ||
29 | This driver implements support for the hardware monitoring capabilities of the | 33 | This driver implements support for the hardware monitoring capabilities of the |
30 | SMSC DME1737 and Asus A8000 (which are the same) Super-I/O chips. This chip | 34 | SMSC DME1737 and Asus A8000 (which are the same) and SMSC SCH311x Super-I/O |
31 | features monitoring of 3 temp sensors temp[1-3] (2 remote diodes and 1 | 35 | chips. These chips feature monitoring of 3 temp sensors temp[1-3] (2 remote |
32 | internal), 7 voltages in[0-6] (6 external and 1 internal) and 6 fan speeds | 36 | diodes and 1 internal), 7 voltages in[0-6] (6 external and 1 internal) and up |
33 | fan[1-6]. Additionally, the chip implements 5 PWM outputs pwm[1-3,5-6] for | 37 | to 6 fan speeds fan[1-6]. Additionally, the chips implement up to 5 PWM |
34 | controlling fan speeds both manually and automatically. | 38 | outputs pwm[1-3,5-6] for controlling fan speeds both manually and |
35 | 39 | automatically. | |
36 | Fan[3-6] and pwm[3,5-6] are optional features and their availability is | 40 | |
37 | dependent on the configuration of the chip. The driver will detect which | 41 | For the DME1737 and A8000, fan[1-2] and pwm[1-2] are always present. Fan[3-6] |
38 | features are present during initialization and create the sysfs attributes | 42 | and pwm[3,5-6] are optional features and their availability depends on the |
39 | accordingly. | 43 | configuration of the chip. The driver will detect which features are present |
44 | during initialization and create the sysfs attributes accordingly. | ||
45 | |||
46 | For the SCH311x, fan[1-3] and pwm[1-3] are always present and fan[4-6] and | ||
47 | pwm[5-6] don't exist. | ||
48 | |||
49 | The hardware monitoring features of the DME1737 and A8000 are only accessible | ||
50 | via SMBus, while the SCH311x only provides access via the ISA bus. The driver | ||
51 | will therefore register itself as an I2C client driver if it detects a DME1737 | ||
52 | or A8000 and as a platform driver if it detects a SCH311x chip. | ||
40 | 53 | ||
41 | 54 | ||
42 | Voltage Monitoring | 55 | Voltage Monitoring |
diff --git a/Documentation/hwmon/f71805f b/Documentation/hwmon/f71805f index 94e0d2cbd3d..f0d55976740 100644 --- a/Documentation/hwmon/f71805f +++ b/Documentation/hwmon/f71805f | |||
@@ -6,6 +6,10 @@ Supported chips: | |||
6 | Prefix: 'f71805f' | 6 | Prefix: 'f71805f' |
7 | Addresses scanned: none, address read from Super I/O config space | 7 | Addresses scanned: none, address read from Super I/O config space |
8 | Datasheet: Available from the Fintek website | 8 | Datasheet: Available from the Fintek website |
9 | * Fintek F71806F/FG | ||
10 | Prefix: 'f71872f' | ||
11 | Addresses scanned: none, address read from Super I/O config space | ||
12 | Datasheet: Available from the Fintek website | ||
9 | * Fintek F71872F/FG | 13 | * Fintek F71872F/FG |
10 | Prefix: 'f71872f' | 14 | Prefix: 'f71872f' |
11 | Addresses scanned: none, address read from Super I/O config space | 15 | Addresses scanned: none, address read from Super I/O config space |
@@ -38,6 +42,9 @@ The Fintek F71872F/FG Super I/O chip is almost the same, with two | |||
38 | additional internal voltages monitored (VSB and battery). It also features | 42 | additional internal voltages monitored (VSB and battery). It also features |
39 | 6 VID inputs. The VID inputs are not yet supported by this driver. | 43 | 6 VID inputs. The VID inputs are not yet supported by this driver. |
40 | 44 | ||
45 | The Fintek F71806F/FG Super-I/O chip is essentially the same as the | ||
46 | F71872F/FG, and is undistinguishable therefrom. | ||
47 | |||
41 | The driver assumes that no more than one chip is present, which seems | 48 | The driver assumes that no more than one chip is present, which seems |
42 | reasonable. | 49 | reasonable. |
43 | 50 | ||
diff --git a/Documentation/hwmon/it87 b/Documentation/hwmon/it87 index 81ecc7e41c5..5b704a40256 100644 --- a/Documentation/hwmon/it87 +++ b/Documentation/hwmon/it87 | |||
@@ -90,7 +90,8 @@ upper VID bits share their pins with voltage inputs (in5 and in6) so you | |||
90 | can't have both on a given board. | 90 | can't have both on a given board. |
91 | 91 | ||
92 | The IT8716F, IT8718F and later IT8712F revisions have support for | 92 | The IT8716F, IT8718F and later IT8712F revisions have support for |
93 | 2 additional fans. They are not yet supported by the driver. | 93 | 2 additional fans. They are supported by the driver for the IT8716F and |
94 | IT8718F but not for the IT8712F | ||
94 | 95 | ||
95 | The IT8716F and IT8718F, and late IT8712F and IT8705F also have optional | 96 | The IT8716F and IT8718F, and late IT8712F and IT8705F also have optional |
96 | 16-bit tachometer counters for fans 1 to 3. This is better (no more fan | 97 | 16-bit tachometer counters for fans 1 to 3. This is better (no more fan |
diff --git a/Documentation/hwmon/lm78 b/Documentation/hwmon/lm78 index fd5dc7a19f0..dfc318a60fd 100644 --- a/Documentation/hwmon/lm78 +++ b/Documentation/hwmon/lm78 | |||
@@ -56,16 +56,6 @@ should work with. This is hardcoded by the mainboard and/or processor itself. | |||
56 | It is a value in volts. When it is unconnected, you will often find the | 56 | It is a value in volts. When it is unconnected, you will often find the |
57 | value 3.50 V here. | 57 | value 3.50 V here. |
58 | 58 | ||
59 | In addition to the alarms described above, there are a couple of additional | ||
60 | ones. There is a BTI alarm, which gets triggered when an external chip has | ||
61 | crossed its limits. Usually, this is connected to all LM75 chips; if at | ||
62 | least one crosses its limits, this bit gets set. The CHAS alarm triggers | ||
63 | if your computer case is open. The FIFO alarms should never trigger; it | ||
64 | indicates an internal error. The SMI_IN alarm indicates some other chip | ||
65 | has triggered an SMI interrupt. As we do not use SMI interrupts at all, | ||
66 | this condition usually indicates there is a problem with some other | ||
67 | device. | ||
68 | |||
69 | If an alarm triggers, it will remain triggered until the hardware register | 59 | If an alarm triggers, it will remain triggered until the hardware register |
70 | is read at least once. This means that the cause for the alarm may | 60 | is read at least once. This means that the cause for the alarm may |
71 | already have disappeared! Note that in the current implementation, all | 61 | already have disappeared! Note that in the current implementation, all |
diff --git a/Documentation/hwmon/lm93 b/Documentation/hwmon/lm93 index 4e4a1dc1d2d..ac711f357fa 100644 --- a/Documentation/hwmon/lm93 +++ b/Documentation/hwmon/lm93 | |||
@@ -7,7 +7,7 @@ Supported chips: | |||
7 | Addresses scanned: I2C 0x2c-0x2e | 7 | Addresses scanned: I2C 0x2c-0x2e |
8 | Datasheet: http://www.national.com/ds.cgi/LM/LM93.pdf | 8 | Datasheet: http://www.national.com/ds.cgi/LM/LM93.pdf |
9 | 9 | ||
10 | Author: | 10 | Authors: |
11 | Mark M. Hoffman <mhoffman@lightlink.com> | 11 | Mark M. Hoffman <mhoffman@lightlink.com> |
12 | Ported to 2.6 by Eric J. Bowersox <ericb@aspsys.com> | 12 | Ported to 2.6 by Eric J. Bowersox <ericb@aspsys.com> |
13 | Adapted to 2.6.20 by Carsten Emde <ce@osadl.org> | 13 | Adapted to 2.6.20 by Carsten Emde <ce@osadl.org> |
@@ -16,7 +16,6 @@ Author: | |||
16 | Module Parameters | 16 | Module Parameters |
17 | ----------------- | 17 | ----------------- |
18 | 18 | ||
19 | (specific to LM93) | ||
20 | * init: integer | 19 | * init: integer |
21 | Set to non-zero to force some initializations (default is 0). | 20 | Set to non-zero to force some initializations (default is 0). |
22 | * disable_block: integer | 21 | * disable_block: integer |
@@ -37,30 +36,13 @@ Module Parameters | |||
37 | I.e. this parameter controls the VID pin input thresholds; if your VID | 36 | I.e. this parameter controls the VID pin input thresholds; if your VID |
38 | inputs are not working, try changing this. The default value is "0". | 37 | inputs are not working, try changing this. The default value is "0". |
39 | 38 | ||
40 | (common among sensor drivers) | ||
41 | * force: short array (min = 1, max = 48) | ||
42 | List of adapter,address pairs to assume to be present. Autodetection | ||
43 | of the target device will still be attempted. Use one of the more | ||
44 | specific force directives below if this doesn't detect the device. | ||
45 | * force_lm93: short array (min = 1, max = 48) | ||
46 | List of adapter,address pairs which are unquestionably assumed to contain | ||
47 | a 'lm93' chip | ||
48 | * ignore: short array (min = 1, max = 48) | ||
49 | List of adapter,address pairs not to scan | ||
50 | * ignore_range: short array (min = 1, max = 48) | ||
51 | List of adapter,start-addr,end-addr triples not to scan | ||
52 | * probe: short array (min = 1, max = 48) | ||
53 | List of adapter,address pairs to scan additionally | ||
54 | * probe_range: short array (min = 1, max = 48) | ||
55 | List of adapter,start-addr,end-addr triples to scan additionally | ||
56 | |||
57 | 39 | ||
58 | Hardware Description | 40 | Hardware Description |
59 | -------------------- | 41 | -------------------- |
60 | 42 | ||
61 | (from the datasheet) | 43 | (from the datasheet) |
62 | 44 | ||
63 | The LM93, hardware monitor, has a two wire digital interface compatible with | 45 | The LM93 hardware monitor has a two wire digital interface compatible with |
64 | SMBus 2.0. Using an 8-bit ADC, the LM93 measures the temperature of two remote | 46 | SMBus 2.0. Using an 8-bit ADC, the LM93 measures the temperature of two remote |
65 | diode connected transistors as well as its own die and 16 power supply | 47 | diode connected transistors as well as its own die and 16 power supply |
66 | voltages. To set fan speed, the LM93 has two PWM outputs that are each | 48 | voltages. To set fan speed, the LM93 has two PWM outputs that are each |
@@ -69,18 +51,12 @@ table based. The LM93 includes a digital filter that can be invoked to smooth | |||
69 | temperature readings for better control of fan speed. The LM93 has four | 51 | temperature readings for better control of fan speed. The LM93 has four |
70 | tachometer inputs to measure fan speed. Limit and status registers for all | 52 | tachometer inputs to measure fan speed. Limit and status registers for all |
71 | measured values are included. The LM93 builds upon the functionality of | 53 | measured values are included. The LM93 builds upon the functionality of |
72 | previous motherboard management ASICs and uses some of the LM85 s features | 54 | previous motherboard management ASICs and uses some of the LM85's features |
73 | (i.e. smart tachometer mode). It also adds measurement and control support | 55 | (i.e. smart tachometer mode). It also adds measurement and control support |
74 | for dynamic Vccp monitoring and PROCHOT. It is designed to monitor a dual | 56 | for dynamic Vccp monitoring and PROCHOT. It is designed to monitor a dual |
75 | processor Xeon class motherboard with a minimum of external components. | 57 | processor Xeon class motherboard with a minimum of external components. |
76 | 58 | ||
77 | 59 | ||
78 | Driver Description | ||
79 | ------------------ | ||
80 | |||
81 | This driver implements support for the National Semiconductor LM93. | ||
82 | |||
83 | |||
84 | User Interface | 60 | User Interface |
85 | -------------- | 61 | -------------- |
86 | 62 | ||
@@ -101,7 +77,7 @@ These intervals can be found in the sysfs files prochot1_interval and | |||
101 | prochot2_interval. The values in these files specify the intervals for | 77 | prochot2_interval. The values in these files specify the intervals for |
102 | #P1_PROCHOT and #P2_PROCHOT, respectively. Selecting a value not in this | 78 | #P1_PROCHOT and #P2_PROCHOT, respectively. Selecting a value not in this |
103 | list will cause the driver to use the next largest interval. The available | 79 | list will cause the driver to use the next largest interval. The available |
104 | intervals are: | 80 | intervals are (in seconds): |
105 | 81 | ||
106 | #PROCHOT intervals: 0.73, 1.46, 2.9, 5.8, 11.7, 23.3, 46.6, 93.2, 186, 372 | 82 | #PROCHOT intervals: 0.73, 1.46, 2.9, 5.8, 11.7, 23.3, 46.6, 93.2, 186, 372 |
107 | 83 | ||
@@ -111,12 +87,12 @@ assert #P2_PROCHOT, and vice-versa. This mode is enabled by writing a | |||
111 | non-zero integer to the sysfs file prochot_short. | 87 | non-zero integer to the sysfs file prochot_short. |
112 | 88 | ||
113 | The LM93 can also override the #PROCHOT pins by driving a PWM signal onto | 89 | The LM93 can also override the #PROCHOT pins by driving a PWM signal onto |
114 | one or both of them. When overridden, the signal has a period of 3.56 mS, | 90 | one or both of them. When overridden, the signal has a period of 3.56 ms, |
115 | a minimum pulse width of 5 clocks (at 22.5kHz => 6.25% duty cycle), and | 91 | a minimum pulse width of 5 clocks (at 22.5kHz => 6.25% duty cycle), and |
116 | a maximum pulse width of 80 clocks (at 22.5kHz => 99.88% duty cycle). | 92 | a maximum pulse width of 80 clocks (at 22.5kHz => 99.88% duty cycle). |
117 | 93 | ||
118 | The sysfs files prochot1_override and prochot2_override contain boolean | 94 | The sysfs files prochot1_override and prochot2_override contain boolean |
119 | intgers which enable or disable the override function for #P1_PROCHOT and | 95 | integers which enable or disable the override function for #P1_PROCHOT and |
120 | #P2_PROCHOT, respectively. The sysfs file prochot_override_duty_cycle | 96 | #P2_PROCHOT, respectively. The sysfs file prochot_override_duty_cycle |
121 | contains a value controlling the duty cycle for the PWM signal used when | 97 | contains a value controlling the duty cycle for the PWM signal used when |
122 | the override function is enabled. This value ranges from 0 to 15, with 0 | 98 | the override function is enabled. This value ranges from 0 to 15, with 0 |
@@ -166,7 +142,7 @@ frequency values are constrained by the hardware. Selecting a value which is | |||
166 | not available will cause the driver to use the next largest value. Also note | 142 | not available will cause the driver to use the next largest value. Also note |
167 | that this parameter has implications for the Smart Tach Mode (see above). | 143 | that this parameter has implications for the Smart Tach Mode (see above). |
168 | 144 | ||
169 | PWM Output Frequencies: 12, 36, 48, 60, 72, 84, 96, 22500 (h/w default) | 145 | PWM Output Frequencies (in Hz): 12, 36, 48, 60, 72, 84, 96, 22500 (default) |
170 | 146 | ||
171 | Automatic PWM: | 147 | Automatic PWM: |
172 | 148 | ||
@@ -178,7 +154,7 @@ individual control sources to which the PWM output is bound. | |||
178 | The eight control sources are: temp1-temp4 (aka "zones" in the datasheet), | 154 | The eight control sources are: temp1-temp4 (aka "zones" in the datasheet), |
179 | #PROCHOT 1 & 2, and #VRDHOT 1 & 2. The bindings are expressed as a bitmask | 155 | #PROCHOT 1 & 2, and #VRDHOT 1 & 2. The bindings are expressed as a bitmask |
180 | in the sysfs files pwm<n>_auto_channels, where a "1" enables the binding, and | 156 | in the sysfs files pwm<n>_auto_channels, where a "1" enables the binding, and |
181 | a "0" disables it. The h/w default is 0x0f (all temperatures bound). | 157 | a "0" disables it. The h/w default is 0x0f (all temperatures bound). |
182 | 158 | ||
183 | 0x01 - Temp 1 | 159 | 0x01 - Temp 1 |
184 | 0x02 - Temp 2 | 160 | 0x02 - Temp 2 |
@@ -324,89 +300,3 @@ LM93 Unique sysfs Files | |||
324 | 300 | ||
325 | gpio input state of 8 GPIO pins; read-only | 301 | gpio input state of 8 GPIO pins; read-only |
326 | 302 | ||
327 | |||
328 | Sample Configuration File | ||
329 | ------------------------- | ||
330 | |||
331 | Here is a sample LM93 chip config for sensors.conf: | ||
332 | |||
333 | ---------- cut here ---------- | ||
334 | chip "lm93-*" | ||
335 | |||
336 | # VOLTAGE INPUTS | ||
337 | |||
338 | # labels and scaling based on datasheet recommendations | ||
339 | label in1 "+12V1" | ||
340 | compute in1 @ * 12.945, @ / 12.945 | ||
341 | set in1_min 12 * 0.90 | ||
342 | set in1_max 12 * 1.10 | ||
343 | |||
344 | label in2 "+12V2" | ||
345 | compute in2 @ * 12.945, @ / 12.945 | ||
346 | set in2_min 12 * 0.90 | ||
347 | set in2_max 12 * 1.10 | ||
348 | |||
349 | label in3 "+12V3" | ||
350 | compute in3 @ * 12.945, @ / 12.945 | ||
351 | set in3_min 12 * 0.90 | ||
352 | set in3_max 12 * 1.10 | ||
353 | |||
354 | label in4 "FSB_Vtt" | ||
355 | |||
356 | label in5 "3GIO" | ||
357 | |||
358 | label in6 "ICH_Core" | ||
359 | |||
360 | label in7 "Vccp1" | ||
361 | |||
362 | label in8 "Vccp2" | ||
363 | |||
364 | label in9 "+3.3V" | ||
365 | set in9_min 3.3 * 0.90 | ||
366 | set in9_max 3.3 * 1.10 | ||
367 | |||
368 | label in10 "+5V" | ||
369 | set in10_min 5.0 * 0.90 | ||
370 | set in10_max 5.0 * 1.10 | ||
371 | |||
372 | label in11 "SCSI_Core" | ||
373 | |||
374 | label in12 "Mem_Core" | ||
375 | |||
376 | label in13 "Mem_Vtt" | ||
377 | |||
378 | label in14 "Gbit_Core" | ||
379 | |||
380 | # Assuming R1/R2 = 4.1143, and 3.3V reference | ||
381 | # -12V = (4.1143 + 1) * (@ - 3.3) + 3.3 | ||
382 | label in15 "-12V" | ||
383 | compute in15 @ * 5.1143 - 13.57719, (@ + 13.57719) / 5.1143 | ||
384 | set in15_min -12 * 0.90 | ||
385 | set in15_max -12 * 1.10 | ||
386 | |||
387 | label in16 "+3.3VSB" | ||
388 | set in16_min 3.3 * 0.90 | ||
389 | set in16_max 3.3 * 1.10 | ||
390 | |||
391 | # TEMPERATURE INPUTS | ||
392 | |||
393 | label temp1 "CPU1" | ||
394 | label temp2 "CPU2" | ||
395 | label temp3 "LM93" | ||
396 | |||
397 | # TACHOMETER INPUTS | ||
398 | |||
399 | label fan1 "Fan1" | ||
400 | set fan1_min 3000 | ||
401 | label fan2 "Fan2" | ||
402 | set fan2_min 3000 | ||
403 | label fan3 "Fan3" | ||
404 | set fan3_min 3000 | ||
405 | label fan4 "Fan4" | ||
406 | set fan4_min 3000 | ||
407 | |||
408 | # PWM OUTPUTS | ||
409 | |||
410 | label pwm1 "CPU1" | ||
411 | label pwm2 "CPU2" | ||
412 | |||
diff --git a/Documentation/hwmon/sysfs-interface b/Documentation/hwmon/sysfs-interface index b3a9e1b9dbd..a17b692d267 100644 --- a/Documentation/hwmon/sysfs-interface +++ b/Documentation/hwmon/sysfs-interface | |||
@@ -67,6 +67,10 @@ between readings to be caught and alarmed. The exact definition of an | |||
67 | alarm (for example, whether a threshold must be met or must be exceeded | 67 | alarm (for example, whether a threshold must be met or must be exceeded |
68 | to cause an alarm) is chip-dependent. | 68 | to cause an alarm) is chip-dependent. |
69 | 69 | ||
70 | When setting values of hwmon sysfs attributes, the string representation of | ||
71 | the desired value must be written, note that strings which are not a number | ||
72 | are interpreted as 0! For more on how written strings are interpreted see the | ||
73 | "sysfs attribute writes interpretation" section at the end of this file. | ||
70 | 74 | ||
71 | ------------------------------------------------------------------------- | 75 | ------------------------------------------------------------------------- |
72 | 76 | ||
@@ -78,8 +82,21 @@ RW read/write value | |||
78 | Read/write values may be read-only for some chips, depending on the | 82 | Read/write values may be read-only for some chips, depending on the |
79 | hardware implementation. | 83 | hardware implementation. |
80 | 84 | ||
81 | All entries are optional, and should only be created in a given driver | 85 | All entries (except name) are optional, and should only be created in a |
82 | if the chip has the feature. | 86 | given driver if the chip has the feature. |
87 | |||
88 | |||
89 | ******** | ||
90 | * Name * | ||
91 | ******** | ||
92 | |||
93 | name The chip name. | ||
94 | This should be a short, lowercase string, not containing | ||
95 | spaces nor dashes, representing the chip name. This is | ||
96 | the only mandatory attribute. | ||
97 | I2C devices get this attribute created automatically. | ||
98 | RO | ||
99 | |||
83 | 100 | ||
84 | ************ | 101 | ************ |
85 | * Voltages * | 102 | * Voltages * |
@@ -104,18 +121,17 @@ in[0-*]_input Voltage input value. | |||
104 | by the chip driver, and must be done by the application. | 121 | by the chip driver, and must be done by the application. |
105 | However, some drivers (notably lm87 and via686a) | 122 | However, some drivers (notably lm87 and via686a) |
106 | do scale, because of internal resistors built into a chip. | 123 | do scale, because of internal resistors built into a chip. |
107 | These drivers will output the actual voltage. | 124 | These drivers will output the actual voltage. Rule of |
108 | 125 | thumb: drivers should report the voltage values at the | |
109 | Typical usage: | 126 | "pins" of the chip. |
110 | in0_* CPU #1 voltage (not scaled) | 127 | |
111 | in1_* CPU #2 voltage (not scaled) | 128 | in[0-*]_label Suggested voltage channel label. |
112 | in2_* 3.3V nominal (not scaled) | 129 | Text string |
113 | in3_* 5.0V nominal (scaled) | 130 | Should only be created if the driver has hints about what |
114 | in4_* 12.0V nominal (scaled) | 131 | this voltage channel is being used for, and user-space |
115 | in5_* -12.0V nominal (scaled) | 132 | doesn't. In all other cases, the label is provided by |
116 | in6_* -5.0V nominal (scaled) | 133 | user-space. |
117 | in7_* varies | 134 | RO |
118 | in8_* varies | ||
119 | 135 | ||
120 | cpu[0-*]_vid CPU core reference voltage. | 136 | cpu[0-*]_vid CPU core reference voltage. |
121 | Unit: millivolt | 137 | Unit: millivolt |
@@ -159,6 +175,13 @@ fan[1-*]_target | |||
159 | Only makes sense if the chip supports closed-loop fan speed | 175 | Only makes sense if the chip supports closed-loop fan speed |
160 | control based on the measured fan speed. | 176 | control based on the measured fan speed. |
161 | 177 | ||
178 | fan[1-*]_label Suggested fan channel label. | ||
179 | Text string | ||
180 | Should only be created if the driver has hints about what | ||
181 | this fan channel is being used for, and user-space doesn't. | ||
182 | In all other cases, the label is provided by user-space. | ||
183 | RO | ||
184 | |||
162 | Also see the Alarms section for status flags associated with fans. | 185 | Also see the Alarms section for status flags associated with fans. |
163 | 186 | ||
164 | 187 | ||
@@ -219,12 +242,12 @@ temp[1-*]_auto_point[1-*]_temp_hyst | |||
219 | **************** | 242 | **************** |
220 | 243 | ||
221 | temp[1-*]_type Sensor type selection. | 244 | temp[1-*]_type Sensor type selection. |
222 | Integers 1 to 6 or thermistor Beta value (typically 3435) | 245 | Integers 1 to 6 |
223 | RW | 246 | RW |
224 | 1: PII/Celeron Diode | 247 | 1: PII/Celeron Diode |
225 | 2: 3904 transistor | 248 | 2: 3904 transistor |
226 | 3: thermal diode | 249 | 3: thermal diode |
227 | 4: thermistor (default/unknown Beta) | 250 | 4: thermistor |
228 | 5: AMD AMDSI | 251 | 5: AMD AMDSI |
229 | 6: Intel PECI | 252 | 6: Intel PECI |
230 | Not all types are supported by all chips | 253 | Not all types are supported by all chips |
@@ -260,18 +283,19 @@ temp[1-*]_crit_hyst | |||
260 | from the critical value. | 283 | from the critical value. |
261 | RW | 284 | RW |
262 | 285 | ||
263 | temp[1-4]_offset | 286 | temp[1-*]_offset |
264 | Temperature offset which is added to the temperature reading | 287 | Temperature offset which is added to the temperature reading |
265 | by the chip. | 288 | by the chip. |
266 | Unit: millidegree Celsius | 289 | Unit: millidegree Celsius |
267 | Read/Write value. | 290 | Read/Write value. |
268 | 291 | ||
269 | If there are multiple temperature sensors, temp1_* is | 292 | temp[1-*]_label Suggested temperature channel label. |
270 | generally the sensor inside the chip itself, | 293 | Text string |
271 | reported as "motherboard temperature". temp2_* to | 294 | Should only be created if the driver has hints about what |
272 | temp4_* are generally sensors external to the chip | 295 | this temperature channel is being used for, and user-space |
273 | itself, for example the thermal diode inside the CPU or | 296 | doesn't. In all other cases, the label is provided by |
274 | a thermistor nearby. | 297 | user-space. |
298 | RO | ||
275 | 299 | ||
276 | Some chips measure temperature using external thermistors and an ADC, and | 300 | Some chips measure temperature using external thermistors and an ADC, and |
277 | report the temperature measurement as a voltage. Converting this voltage | 301 | report the temperature measurement as a voltage. Converting this voltage |
@@ -393,14 +417,53 @@ beep_mask Bitmask for beep. | |||
393 | RW | 417 | RW |
394 | 418 | ||
395 | 419 | ||
396 | ********* | 420 | sysfs attribute writes interpretation |
397 | * Other * | 421 | ------------------------------------- |
398 | ********* | 422 | |
399 | 423 | hwmon sysfs attributes always contain numbers, so the first thing to do is to | |
400 | eeprom Raw EEPROM data in binary form. | 424 | convert the input to a number, there are 2 ways todo this depending whether |
401 | RO | 425 | the number can be negative or not: |
402 | 426 | unsigned long u = simple_strtoul(buf, NULL, 10); | |
403 | pec Enable or disable PEC (SMBus only) | 427 | long s = simple_strtol(buf, NULL, 10); |
404 | 0: disable | 428 | |
405 | 1: enable | 429 | With buf being the buffer with the user input being passed by the kernel. |
406 | RW | 430 | Notice that we do not use the second argument of strto[u]l, and thus cannot |
431 | tell when 0 is returned, if this was really 0 or is caused by invalid input. | ||
432 | This is done deliberately as checking this everywhere would add a lot of | ||
433 | code to the kernel. | ||
434 | |||
435 | Notice that it is important to always store the converted value in an | ||
436 | unsigned long or long, so that no wrap around can happen before any further | ||
437 | checking. | ||
438 | |||
439 | After the input string is converted to an (unsigned) long, the value should be | ||
440 | checked if its acceptable. Be careful with further conversions on the value | ||
441 | before checking it for validity, as these conversions could still cause a wrap | ||
442 | around before the check. For example do not multiply the result, and only | ||
443 | add/subtract if it has been divided before the add/subtract. | ||
444 | |||
445 | What to do if a value is found to be invalid, depends on the type of the | ||
446 | sysfs attribute that is being set. If it is a continuous setting like a | ||
447 | tempX_max or inX_max attribute, then the value should be clamped to its | ||
448 | limits using SENSORS_LIMIT(value, min_limit, max_limit). If it is not | ||
449 | continuous like for example a tempX_type, then when an invalid value is | ||
450 | written, -EINVAL should be returned. | ||
451 | |||
452 | Example1, temp1_max, register is a signed 8 bit value (-128 - 127 degrees): | ||
453 | |||
454 | long v = simple_strtol(buf, NULL, 10) / 1000; | ||
455 | v = SENSORS_LIMIT(v, -128, 127); | ||
456 | /* write v to register */ | ||
457 | |||
458 | Example2, fan divider setting, valid values 2, 4 and 8: | ||
459 | |||
460 | unsigned long v = simple_strtoul(buf, NULL, 10); | ||
461 | |||
462 | switch (v) { | ||
463 | case 2: v = 1; break; | ||
464 | case 4: v = 2; break; | ||
465 | case 8: v = 3; break; | ||
466 | default: | ||
467 | return -EINVAL; | ||
468 | } | ||
469 | /* write v to register */ | ||
diff --git a/Documentation/hwmon/w83791d b/Documentation/hwmon/w83791d index db9881df88a..f153b2f6d62 100644 --- a/Documentation/hwmon/w83791d +++ b/Documentation/hwmon/w83791d | |||
@@ -75,46 +75,64 @@ Voltage sensors (also known as IN sensors) report their values in millivolts. | |||
75 | An alarm is triggered if the voltage has crossed a programmable minimum | 75 | An alarm is triggered if the voltage has crossed a programmable minimum |
76 | or maximum limit. | 76 | or maximum limit. |
77 | 77 | ||
78 | The bit ordering for the alarm "realtime status register" and the | 78 | The w83791d has a global bit used to enable beeping from the speaker when an |
79 | "beep enable registers" are different. | 79 | alarm is triggered as well as a bitmask to enable or disable the beep for |
80 | 80 | specific alarms. You need both the global beep enable bit and the | |
81 | in0 (VCORE) : alarms: 0x000001 beep_enable: 0x000001 | 81 | corresponding beep bit to be on for a triggered alarm to sound a beep. |
82 | in1 (VINR0) : alarms: 0x000002 beep_enable: 0x002000 <== mismatch | 82 | |
83 | in2 (+3.3VIN): alarms: 0x000004 beep_enable: 0x000004 | 83 | The sysfs interface to the gloabal enable is via the sysfs beep_enable file. |
84 | in3 (5VDD) : alarms: 0x000008 beep_enable: 0x000008 | 84 | This file is used for both legacy and new code. |
85 | in4 (+12VIN) : alarms: 0x000100 beep_enable: 0x000100 | 85 | |
86 | in5 (-12VIN) : alarms: 0x000200 beep_enable: 0x000200 | 86 | The sysfs interface to the beep bitmask has migrated from the original legacy |
87 | in6 (-5VIN) : alarms: 0x000400 beep_enable: 0x000400 | 87 | method of a single sysfs beep_mask file to a newer method using multiple |
88 | in7 (VSB) : alarms: 0x080000 beep_enable: 0x010000 <== mismatch | 88 | *_beep files as described in .../Documentation/hwmon/sysfs-interface. |
89 | in8 (VBAT) : alarms: 0x100000 beep_enable: 0x020000 <== mismatch | 89 | |
90 | in9 (VINR1) : alarms: 0x004000 beep_enable: 0x004000 | 90 | A similar change has occured for the bitmap corresponding to the alarms. The |
91 | temp1 : alarms: 0x000010 beep_enable: 0x000010 | 91 | original legacy method used a single sysfs alarms file containing a bitmap |
92 | temp2 : alarms: 0x000020 beep_enable: 0x000020 | 92 | of triggered alarms. The newer method uses multiple sysfs *_alarm files |
93 | temp3 : alarms: 0x002000 beep_enable: 0x000002 <== mismatch | 93 | (again following the pattern described in sysfs-interface). |
94 | fan1 : alarms: 0x000040 beep_enable: 0x000040 | 94 | |
95 | fan2 : alarms: 0x000080 beep_enable: 0x000080 | 95 | Since both methods read and write the underlying hardware, they can be used |
96 | fan3 : alarms: 0x000800 beep_enable: 0x000800 | 96 | interchangeably and changes in one will automatically be reflected by |
97 | fan4 : alarms: 0x200000 beep_enable: 0x200000 | 97 | the other. If you use the legacy bitmask method, your user-space code is |
98 | fan5 : alarms: 0x400000 beep_enable: 0x400000 | 98 | responsible for handling the fact that the alarms and beep_mask bitmaps |
99 | tart1 : alarms: 0x010000 beep_enable: 0x040000 <== mismatch | 99 | are not the same (see the table below). |
100 | tart2 : alarms: 0x020000 beep_enable: 0x080000 <== mismatch | 100 | |
101 | tart3 : alarms: 0x040000 beep_enable: 0x100000 <== mismatch | 101 | NOTE: All new code should be written to use the newer sysfs-interface |
102 | case_open : alarms: 0x001000 beep_enable: 0x001000 | 102 | specification as that avoids bitmap problems and is the preferred interface |
103 | user_enable : alarms: -------- beep_enable: 0x800000 | 103 | going forward. |
104 | 104 | ||
105 | *** NOTE: It is the responsibility of user-space code to handle the fact | 105 | The driver reads the hardware chip values at most once every three seconds. |
106 | that the beep enable and alarm bits are in different positions when using that | 106 | User mode code requesting values more often will receive cached values. |
107 | feature of the chip. | 107 | |
108 | 108 | Alarms bitmap vs. beep_mask bitmask | |
109 | When an alarm goes off, you can be warned by a beeping signal through your | 109 | ------------------------------------ |
110 | computer speaker. It is possible to enable all beeping globally, or only | 110 | For legacy code using the alarms and beep_mask files: |
111 | the beeping for some alarms. | 111 | |
112 | 112 | in0 (VCORE) : alarms: 0x000001 beep_mask: 0x000001 | |
113 | The driver only reads the chip values each 3 seconds; reading them more | 113 | in1 (VINR0) : alarms: 0x000002 beep_mask: 0x002000 <== mismatch |
114 | often will do no harm, but will return 'old' values. | 114 | in2 (+3.3VIN): alarms: 0x000004 beep_mask: 0x000004 |
115 | in3 (5VDD) : alarms: 0x000008 beep_mask: 0x000008 | ||
116 | in4 (+12VIN) : alarms: 0x000100 beep_mask: 0x000100 | ||
117 | in5 (-12VIN) : alarms: 0x000200 beep_mask: 0x000200 | ||
118 | in6 (-5VIN) : alarms: 0x000400 beep_mask: 0x000400 | ||
119 | in7 (VSB) : alarms: 0x080000 beep_mask: 0x010000 <== mismatch | ||
120 | in8 (VBAT) : alarms: 0x100000 beep_mask: 0x020000 <== mismatch | ||
121 | in9 (VINR1) : alarms: 0x004000 beep_mask: 0x004000 | ||
122 | temp1 : alarms: 0x000010 beep_mask: 0x000010 | ||
123 | temp2 : alarms: 0x000020 beep_mask: 0x000020 | ||
124 | temp3 : alarms: 0x002000 beep_mask: 0x000002 <== mismatch | ||
125 | fan1 : alarms: 0x000040 beep_mask: 0x000040 | ||
126 | fan2 : alarms: 0x000080 beep_mask: 0x000080 | ||
127 | fan3 : alarms: 0x000800 beep_mask: 0x000800 | ||
128 | fan4 : alarms: 0x200000 beep_mask: 0x200000 | ||
129 | fan5 : alarms: 0x400000 beep_mask: 0x400000 | ||
130 | tart1 : alarms: 0x010000 beep_mask: 0x040000 <== mismatch | ||
131 | tart2 : alarms: 0x020000 beep_mask: 0x080000 <== mismatch | ||
132 | tart3 : alarms: 0x040000 beep_mask: 0x100000 <== mismatch | ||
133 | case_open : alarms: 0x001000 beep_mask: 0x001000 | ||
134 | global_enable: alarms: -------- beep_mask: 0x800000 (modified via beep_enable) | ||
115 | 135 | ||
116 | W83791D TODO: | 136 | W83791D TODO: |
117 | --------------- | 137 | --------------- |
118 | Provide a patch for per-file alarms and beep enables as defined in the hwmon | ||
119 | documentation (Documentation/hwmon/sysfs-interface) | ||
120 | Provide a patch for smart-fan control (still need appropriate motherboard/fans) | 138 | Provide a patch for smart-fan control (still need appropriate motherboard/fans) |
diff --git a/Documentation/i2c/busses/i2c-i801 b/Documentation/i2c/busses/i2c-i801 index fe6406f2f9a..fde4420e3f7 100644 --- a/Documentation/i2c/busses/i2c-i801 +++ b/Documentation/i2c/busses/i2c-i801 | |||
@@ -13,7 +13,8 @@ Supported adapters: | |||
13 | * Intel 631xESB/632xESB (ESB2) | 13 | * Intel 631xESB/632xESB (ESB2) |
14 | * Intel 82801H (ICH8) | 14 | * Intel 82801H (ICH8) |
15 | * Intel ICH9 | 15 | * Intel ICH9 |
16 | Datasheets: Publicly available at the Intel website | 16 | * Intel Tolapai |
17 | Datasheets: Publicly available at the Intel website | ||
17 | 18 | ||
18 | Authors: | 19 | Authors: |
19 | Frodo Looijaard <frodol@dds.nl>, | 20 | Frodo Looijaard <frodol@dds.nl>, |
diff --git a/Documentation/i2c/chips/pcf8574 b/Documentation/i2c/chips/pcf8574 index 2752c8ce316..5c1ad1376b6 100644 --- a/Documentation/i2c/chips/pcf8574 +++ b/Documentation/i2c/chips/pcf8574 | |||
@@ -62,8 +62,6 @@ if the corresponding output is set as 1, otherwise the current output | |||
62 | value, that is to say 0. | 62 | value, that is to say 0. |
63 | 63 | ||
64 | The write file is read/write. Writing a value outputs it on the I/O | 64 | The write file is read/write. Writing a value outputs it on the I/O |
65 | port. Reading returns the last written value. | 65 | port. Reading returns the last written value. As it is not possible |
66 | 66 | to read this value from the chip, you need to write at least once to | |
67 | On module initialization the chip is configured as eight inputs (all | 67 | this file before you can read back from it. |
68 | outputs to 1), so you can connect any circuit to the PCF8574(A) without | ||
69 | being afraid of short-circuit. | ||
diff --git a/Documentation/i2c/dev-interface b/Documentation/i2c/dev-interface index b849ad63658..9dd79123ddd 100644 --- a/Documentation/i2c/dev-interface +++ b/Documentation/i2c/dev-interface | |||
@@ -90,12 +90,15 @@ ioctl(file,I2C_SLAVE,long addr) | |||
90 | 90 | ||
91 | ioctl(file,I2C_TENBIT,long select) | 91 | ioctl(file,I2C_TENBIT,long select) |
92 | Selects ten bit addresses if select not equals 0, selects normal 7 bit | 92 | Selects ten bit addresses if select not equals 0, selects normal 7 bit |
93 | addresses if select equals 0. Default 0. | 93 | addresses if select equals 0. Default 0. This request is only valid |
94 | if the adapter has I2C_FUNC_10BIT_ADDR. | ||
94 | 95 | ||
95 | ioctl(file,I2C_PEC,long select) | 96 | ioctl(file,I2C_PEC,long select) |
96 | Selects SMBus PEC (packet error checking) generation and verification | 97 | Selects SMBus PEC (packet error checking) generation and verification |
97 | if select not equals 0, disables if select equals 0. Default 0. | 98 | if select not equals 0, disables if select equals 0. Default 0. |
98 | Used only for SMBus transactions. | 99 | Used only for SMBus transactions. This request only has an effect if the |
100 | the adapter has I2C_FUNC_SMBUS_PEC; it is still safe if not, it just | ||
101 | doesn't have any effect. | ||
99 | 102 | ||
100 | ioctl(file,I2C_FUNCS,unsigned long *funcs) | 103 | ioctl(file,I2C_FUNCS,unsigned long *funcs) |
101 | Gets the adapter functionality and puts it in *funcs. | 104 | Gets the adapter functionality and puts it in *funcs. |
@@ -103,8 +106,10 @@ ioctl(file,I2C_FUNCS,unsigned long *funcs) | |||
103 | ioctl(file,I2C_RDWR,struct i2c_rdwr_ioctl_data *msgset) | 106 | ioctl(file,I2C_RDWR,struct i2c_rdwr_ioctl_data *msgset) |
104 | 107 | ||
105 | Do combined read/write transaction without stop in between. | 108 | Do combined read/write transaction without stop in between. |
106 | The argument is a pointer to a struct i2c_rdwr_ioctl_data { | 109 | Only valid if the adapter has I2C_FUNC_I2C. The argument is |
110 | a pointer to a | ||
107 | 111 | ||
112 | struct i2c_rdwr_ioctl_data { | ||
108 | struct i2c_msg *msgs; /* ptr to array of simple messages */ | 113 | struct i2c_msg *msgs; /* ptr to array of simple messages */ |
109 | int nmsgs; /* number of messages to exchange */ | 114 | int nmsgs; /* number of messages to exchange */ |
110 | } | 115 | } |
diff --git a/Documentation/i2c/i2c-stub b/Documentation/i2c/i2c-stub index 9cc081e6976..89e69ad3436 100644 --- a/Documentation/i2c/i2c-stub +++ b/Documentation/i2c/i2c-stub | |||
@@ -6,13 +6,14 @@ This module is a very simple fake I2C/SMBus driver. It implements four | |||
6 | types of SMBus commands: write quick, (r/w) byte, (r/w) byte data, and | 6 | types of SMBus commands: write quick, (r/w) byte, (r/w) byte data, and |
7 | (r/w) word data. | 7 | (r/w) word data. |
8 | 8 | ||
9 | You need to provide a chip address as a module parameter when loading | 9 | You need to provide chip addresses as a module parameter when loading this |
10 | this driver, which will then only react to SMBus commands to this address. | 10 | driver, which will then only react to SMBus commands to these addresses. |
11 | 11 | ||
12 | No hardware is needed nor associated with this module. It will accept write | 12 | No hardware is needed nor associated with this module. It will accept write |
13 | quick commands to one address; it will respond to the other commands (also | 13 | quick commands to the specified addresses; it will respond to the other |
14 | to one address) by reading from or writing to an array in memory. It will | 14 | commands (also to the specified addresses) by reading from or writing to |
15 | also spam the kernel logs for every command it handles. | 15 | arrays in memory. It will also spam the kernel logs for every command it |
16 | handles. | ||
16 | 17 | ||
17 | A pointer register with auto-increment is implemented for all byte | 18 | A pointer register with auto-increment is implemented for all byte |
18 | operations. This allows for continuous byte reads like those supported by | 19 | operations. This allows for continuous byte reads like those supported by |
@@ -26,8 +27,8 @@ The typical use-case is like this: | |||
26 | 27 | ||
27 | PARAMETERS: | 28 | PARAMETERS: |
28 | 29 | ||
29 | int chip_addr: | 30 | int chip_addr[10]: |
30 | The SMBus address to emulate a chip at. | 31 | The SMBus addresses to emulate chips at. |
31 | 32 | ||
32 | CAVEATS: | 33 | CAVEATS: |
33 | 34 | ||
@@ -41,9 +42,6 @@ If the hardware for your driver has banked registers (e.g. Winbond sensors | |||
41 | chips) this module will not work well - although it could be extended to | 42 | chips) this module will not work well - although it could be extended to |
42 | support that pretty easily. | 43 | support that pretty easily. |
43 | 44 | ||
44 | Only one chip address is supported - although this module could be | ||
45 | extended to support more. | ||
46 | |||
47 | If you spam it hard enough, printk can be lossy. This module really wants | 45 | If you spam it hard enough, printk can be lossy. This module really wants |
48 | something like relayfs. | 46 | something like relayfs. |
49 | 47 | ||
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 01d5c3c5691..085e4a095ea 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -1083,6 +1083,13 @@ and is between 256 and 4096 characters. It is defined in the file | |||
1083 | [NFS] set the maximum lifetime for idmapper cache | 1083 | [NFS] set the maximum lifetime for idmapper cache |
1084 | entries. | 1084 | entries. |
1085 | 1085 | ||
1086 | nfs.enable_ino64= | ||
1087 | [NFS] enable 64-bit inode numbers. | ||
1088 | If zero, the NFS client will fake up a 32-bit inode | ||
1089 | number for the readdir() and stat() syscalls instead | ||
1090 | of returning the full 64-bit number. | ||
1091 | The default is to return 64-bit inode numbers. | ||
1092 | |||
1086 | nmi_watchdog= [KNL,BUGS=X86-32] Debugging features for SMP kernels | 1093 | nmi_watchdog= [KNL,BUGS=X86-32] Debugging features for SMP kernels |
1087 | 1094 | ||
1088 | no387 [BUGS=X86-32] Tells the kernel to use the 387 maths | 1095 | no387 [BUGS=X86-32] Tells the kernel to use the 387 maths |
diff --git a/Documentation/networking/bonding.txt b/Documentation/networking/bonding.txt index 1da56663083..11340625e36 100644 --- a/Documentation/networking/bonding.txt +++ b/Documentation/networking/bonding.txt | |||
@@ -281,6 +281,39 @@ downdelay | |||
281 | will be rounded down to the nearest multiple. The default | 281 | will be rounded down to the nearest multiple. The default |
282 | value is 0. | 282 | value is 0. |
283 | 283 | ||
284 | fail_over_mac | ||
285 | |||
286 | Specifies whether active-backup mode should set all slaves to | ||
287 | the same MAC address (the traditional behavior), or, when | ||
288 | enabled, change the bond's MAC address when changing the | ||
289 | active interface (i.e., fail over the MAC address itself). | ||
290 | |||
291 | Fail over MAC is useful for devices that cannot ever alter | ||
292 | their MAC address, or for devices that refuse incoming | ||
293 | broadcasts with their own source MAC (which interferes with | ||
294 | the ARP monitor). | ||
295 | |||
296 | The down side of fail over MAC is that every device on the | ||
297 | network must be updated via gratuitous ARP, vs. just updating | ||
298 | a switch or set of switches (which often takes place for any | ||
299 | traffic, not just ARP traffic, if the switch snoops incoming | ||
300 | traffic to update its tables) for the traditional method. If | ||
301 | the gratuitous ARP is lost, communication may be disrupted. | ||
302 | |||
303 | When fail over MAC is used in conjuction with the mii monitor, | ||
304 | devices which assert link up prior to being able to actually | ||
305 | transmit and receive are particularly susecptible to loss of | ||
306 | the gratuitous ARP, and an appropriate updelay setting may be | ||
307 | required. | ||
308 | |||
309 | A value of 0 disables fail over MAC, and is the default. A | ||
310 | value of 1 enables fail over MAC. This option is enabled | ||
311 | automatically if the first slave added cannot change its MAC | ||
312 | address. This option may be modified via sysfs only when no | ||
313 | slaves are present in the bond. | ||
314 | |||
315 | This option was added in bonding version 3.2.0. | ||
316 | |||
284 | lacp_rate | 317 | lacp_rate |
285 | 318 | ||
286 | Option specifying the rate in which we'll ask our link partner | 319 | Option specifying the rate in which we'll ask our link partner |
diff --git a/Documentation/sched-design-CFS.txt b/Documentation/sched-design-CFS.txt index 84901e7c050..88bcb876733 100644 --- a/Documentation/sched-design-CFS.txt +++ b/Documentation/sched-design-CFS.txt | |||
@@ -117,3 +117,70 @@ Some implementation details: | |||
117 | iterators of the scheduling modules are used. The balancing code got | 117 | iterators of the scheduling modules are used. The balancing code got |
118 | quite a bit simpler as a result. | 118 | quite a bit simpler as a result. |
119 | 119 | ||
120 | |||
121 | Group scheduler extension to CFS | ||
122 | ================================ | ||
123 | |||
124 | Normally the scheduler operates on individual tasks and strives to provide | ||
125 | fair CPU time to each task. Sometimes, it may be desirable to group tasks | ||
126 | and provide fair CPU time to each such task group. For example, it may | ||
127 | be desirable to first provide fair CPU time to each user on the system | ||
128 | and then to each task belonging to a user. | ||
129 | |||
130 | CONFIG_FAIR_GROUP_SCHED strives to achieve exactly that. It lets | ||
131 | SCHED_NORMAL/BATCH tasks be be grouped and divides CPU time fairly among such | ||
132 | groups. At present, there are two (mutually exclusive) mechanisms to group | ||
133 | tasks for CPU bandwidth control purpose: | ||
134 | |||
135 | - Based on user id (CONFIG_FAIR_USER_SCHED) | ||
136 | In this option, tasks are grouped according to their user id. | ||
137 | - Based on "cgroup" pseudo filesystem (CONFIG_FAIR_CGROUP_SCHED) | ||
138 | This options lets the administrator create arbitrary groups | ||
139 | of tasks, using the "cgroup" pseudo filesystem. See | ||
140 | Documentation/cgroups.txt for more information about this | ||
141 | filesystem. | ||
142 | |||
143 | Only one of these options to group tasks can be chosen and not both. | ||
144 | |||
145 | Group scheduler tunables: | ||
146 | |||
147 | When CONFIG_FAIR_USER_SCHED is defined, a directory is created in sysfs for | ||
148 | each new user and a "cpu_share" file is added in that directory. | ||
149 | |||
150 | # cd /sys/kernel/uids | ||
151 | # cat 512/cpu_share # Display user 512's CPU share | ||
152 | 1024 | ||
153 | # echo 2048 > 512/cpu_share # Modify user 512's CPU share | ||
154 | # cat 512/cpu_share # Display user 512's CPU share | ||
155 | 2048 | ||
156 | # | ||
157 | |||
158 | CPU bandwidth between two users are divided in the ratio of their CPU shares. | ||
159 | For ex: if you would like user "root" to get twice the bandwidth of user | ||
160 | "guest", then set the cpu_share for both the users such that "root"'s | ||
161 | cpu_share is twice "guest"'s cpu_share | ||
162 | |||
163 | |||
164 | When CONFIG_FAIR_CGROUP_SCHED is defined, a "cpu.shares" file is created | ||
165 | for each group created using the pseudo filesystem. See example steps | ||
166 | below to create task groups and modify their CPU share using the "cgroups" | ||
167 | pseudo filesystem | ||
168 | |||
169 | # mkdir /dev/cpuctl | ||
170 | # mount -t cgroup -ocpu none /dev/cpuctl | ||
171 | # cd /dev/cpuctl | ||
172 | |||
173 | # mkdir multimedia # create "multimedia" group of tasks | ||
174 | # mkdir browser # create "browser" group of tasks | ||
175 | |||
176 | # #Configure the multimedia group to receive twice the CPU bandwidth | ||
177 | # #that of browser group | ||
178 | |||
179 | # echo 2048 > multimedia/cpu.shares | ||
180 | # echo 1024 > browser/cpu.shares | ||
181 | |||
182 | # firefox & # Launch firefox and move it to "browser" group | ||
183 | # echo <firefox_pid> > browser/tasks | ||
184 | |||
185 | # #Launch gmplayer (or your favourite movie player) | ||
186 | # echo <movie_player_pid> > multimedia/tasks | ||
diff --git a/Documentation/scsi/00-INDEX b/Documentation/scsi/00-INDEX index 12354830c6b..aa1f7e92783 100644 --- a/Documentation/scsi/00-INDEX +++ b/Documentation/scsi/00-INDEX | |||
@@ -2,14 +2,20 @@ | |||
2 | - this file | 2 | - this file |
3 | 53c700.txt | 3 | 53c700.txt |
4 | - info on driver for 53c700 based adapters | 4 | - info on driver for 53c700 based adapters |
5 | AM53C974.txt | ||
6 | - info on driver for AM53c974 based adapters | ||
7 | BusLogic.txt | 5 | BusLogic.txt |
8 | - info on driver for adapters with BusLogic chips | 6 | - info on driver for adapters with BusLogic chips |
9 | ChangeLog | 7 | ChangeLog.1992-1997 |
10 | - Changes to scsi files, if not listed elsewhere | 8 | - Changes to scsi files, if not listed elsewhere |
9 | ChangeLog.arcmsr | ||
10 | - Changes to driver for ARECA's SATA RAID controller cards | ||
11 | ChangeLog.ips | 11 | ChangeLog.ips |
12 | - IBM ServeRAID driver Changelog | 12 | - IBM ServeRAID driver Changelog |
13 | ChangeLog.lpfc | ||
14 | - Changes to lpfc driver | ||
15 | ChangeLog.megaraid | ||
16 | - Changes to LSI megaraid controller. | ||
17 | ChangeLog.megaraid_sas | ||
18 | - Changes to serial attached scsi version of LSI megaraid controller. | ||
13 | ChangeLog.ncr53c8xx | 19 | ChangeLog.ncr53c8xx |
14 | - Changes to ncr53c8xx driver | 20 | - Changes to ncr53c8xx driver |
15 | ChangeLog.sym53c8xx | 21 | ChangeLog.sym53c8xx |
@@ -20,26 +26,44 @@ FlashPoint.txt | |||
20 | - info on driver for BusLogic FlashPoint adapters | 26 | - info on driver for BusLogic FlashPoint adapters |
21 | LICENSE.FlashPoint | 27 | LICENSE.FlashPoint |
22 | - Licence of the Flashpoint driver | 28 | - Licence of the Flashpoint driver |
29 | LICENSE.qla2xxx | ||
30 | - License for QLogic Linux Fibre Channel HBA Driver firmware. | ||
23 | Mylex.txt | 31 | Mylex.txt |
24 | - info on driver for Mylex adapters | 32 | - info on driver for Mylex adapters |
25 | NinjaSCSI.txt | 33 | NinjaSCSI.txt |
26 | - info on WorkBiT NinjaSCSI-32/32Bi driver | 34 | - info on WorkBiT NinjaSCSI-32/32Bi driver |
35 | aacraid.txt | ||
36 | - Driver supporting Adaptec RAID controllers | ||
27 | aha152x.txt | 37 | aha152x.txt |
28 | - info on driver for Adaptec AHA152x based adapters | 38 | - info on driver for Adaptec AHA152x based adapters |
39 | aic79xx.txt | ||
40 | - Adaptec Ultra320 SCSI host adapters | ||
29 | aic7xxx.txt | 41 | aic7xxx.txt |
30 | - info on driver for Adaptec controllers | 42 | - info on driver for Adaptec controllers |
31 | aic7xxx_old.txt | 43 | aic7xxx_old.txt |
32 | - info on driver for Adaptec controllers, old generation | 44 | - info on driver for Adaptec controllers, old generation |
45 | arcmsr_spec.txt | ||
46 | - ARECA FIRMWARE SPEC (for IOP331 adapter) | ||
47 | dc395x.txt | ||
48 | - README file for the dc395x SCSI driver | ||
33 | dpti.txt | 49 | dpti.txt |
34 | - info on driver for DPT SmartRAID and Adaptec I2O RAID based adapters | 50 | - info on driver for DPT SmartRAID and Adaptec I2O RAID based adapters |
35 | dtc3x80.txt | 51 | dtc3x80.txt |
36 | - info on driver for DTC 2x80 based adapters | 52 | - info on driver for DTC 2x80 based adapters |
37 | g_NCR5380.txt | 53 | g_NCR5380.txt |
38 | - info on driver for NCR5380 and NCR53c400 based adapters | 54 | - info on driver for NCR5380 and NCR53c400 based adapters |
55 | hptiop.txt | ||
56 | - HIGHPOINT ROCKETRAID 3xxx RAID DRIVER | ||
39 | ibmmca.txt | 57 | ibmmca.txt |
40 | - info on driver for IBM adapters with MCA bus | 58 | - info on driver for IBM adapters with MCA bus |
41 | in2000.txt | 59 | in2000.txt |
42 | - info on in2000 driver | 60 | - info on in2000 driver |
61 | libsas.txt | ||
62 | - Serial Attached SCSI management layer. | ||
63 | lpfc.txt | ||
64 | - LPFC driver release notes | ||
65 | megaraid.txt | ||
66 | - Common Management Module, shared code handling ioctls for LSI drivers | ||
43 | ncr53c7xx.txt | 67 | ncr53c7xx.txt |
44 | - info on driver for NCR53c7xx based adapters | 68 | - info on driver for NCR53c7xx based adapters |
45 | ncr53c8xx.txt | 69 | ncr53c8xx.txt |
@@ -50,6 +74,8 @@ ppa.txt | |||
50 | - info on driver for IOmega zip drive | 74 | - info on driver for IOmega zip drive |
51 | qlogicfas.txt | 75 | qlogicfas.txt |
52 | - info on driver for QLogic FASxxx based adapters | 76 | - info on driver for QLogic FASxxx based adapters |
77 | scsi-changer.txt | ||
78 | - README for the SCSI media changer driver | ||
53 | scsi-generic.txt | 79 | scsi-generic.txt |
54 | - info on the sg driver for generic (non-disk/CD/tape) SCSI devices. | 80 | - info on the sg driver for generic (non-disk/CD/tape) SCSI devices. |
55 | scsi.txt | 81 | scsi.txt |
@@ -58,6 +84,8 @@ scsi_mid_low_api.txt | |||
58 | - info on API between SCSI layer and low level drivers | 84 | - info on API between SCSI layer and low level drivers |
59 | scsi_eh.txt | 85 | scsi_eh.txt |
60 | - info on SCSI midlayer error handling infrastructure | 86 | - info on SCSI midlayer error handling infrastructure |
87 | scsi_fc_transport.txt | ||
88 | - SCSI Fiber Channel Tansport | ||
61 | st.txt | 89 | st.txt |
62 | - info on scsi tape driver | 90 | - info on scsi tape driver |
63 | sym53c500_cs.txt | 91 | sym53c500_cs.txt |
diff --git a/Documentation/scsi/ChangeLog.arcmsr b/Documentation/scsi/ChangeLog.arcmsr index 162c47fdf45..cd8403a33ee 100644 --- a/Documentation/scsi/ChangeLog.arcmsr +++ b/Documentation/scsi/ChangeLog.arcmsr | |||
@@ -53,4 +53,19 @@ | |||
53 | ** for linux standard list | 53 | ** for linux standard list |
54 | ** enable usage of pci message signal interrupt | 54 | ** enable usage of pci message signal interrupt |
55 | ** follow Randy.Danlup kindness suggestion cleanup this code | 55 | ** follow Randy.Danlup kindness suggestion cleanup this code |
56 | ************************************************************************** \ No newline at end of file | 56 | ** 1.20.00.14 05/02/2007 Erich Chen & Nick Cheng |
57 | ** 1.implement PCI-Express error recovery function and AER capability | ||
58 | ** 2.implement the selection of ARCMSR_MAX_XFER_SECTORS_B=4096 | ||
59 | ** if firmware version is newer than 1.42 | ||
60 | ** 3.modify arcmsr_iop_reset to improve the ability | ||
61 | ** 4.modify the ISR, arcmsr_interrupt routine,to prevent the | ||
62 | ** inconsistency with sg_mod driver if application directly calls | ||
63 | ** the arcmsr driver w/o passing through scsi mid layer | ||
64 | ** specially thanks to Yanmin Zhang's openhanded help about AER | ||
65 | ** 1.20.00.15 08/30/2007 Erich Chen & Nick Cheng | ||
66 | ** 1. support ARC1200/1201/1202 SATA RAID adapter, which is named | ||
67 | ** ACB_ADAPTER_TYPE_B | ||
68 | ** 2. modify the arcmsr_pci_slot_reset function | ||
69 | ** 3. modify the arcmsr_pci_ers_disconnect_forepart function | ||
70 | ** 4. modify the arcmsr_pci_ers_need_reset_forepart function | ||
71 | ************************************************************************** | ||
diff --git a/Documentation/scsi/aacraid.txt b/Documentation/scsi/aacraid.txt index cc12b55d4b3..a8257840695 100644 --- a/Documentation/scsi/aacraid.txt +++ b/Documentation/scsi/aacraid.txt | |||
@@ -38,10 +38,8 @@ Supported Cards/Chipsets | |||
38 | 9005:0286:9005:02ac Adaptec 1800 (Typhoon44) | 38 | 9005:0286:9005:02ac Adaptec 1800 (Typhoon44) |
39 | 9005:0285:9005:02b5 Adaptec 5445 (Voodoo44) | 39 | 9005:0285:9005:02b5 Adaptec 5445 (Voodoo44) |
40 | 9005:0285:15d9:02b5 SMC AOC-USAS-S4i | 40 | 9005:0285:15d9:02b5 SMC AOC-USAS-S4i |
41 | 9005:0285:15d9:02c9 SMC AOC-USAS-S4iR | ||
42 | 9005:0285:9005:02b6 Adaptec 5805 (Voodoo80) | 41 | 9005:0285:9005:02b6 Adaptec 5805 (Voodoo80) |
43 | 9005:0285:15d9:02b6 SMC AOC-USAS-S8i | 42 | 9005:0285:15d9:02b6 SMC AOC-USAS-S8i |
44 | 9005:0285:15d9:02ca SMC AOC-USAS-S8iR | ||
45 | 9005:0285:9005:02b7 Adaptec 5085 (Voodoo08) | 43 | 9005:0285:9005:02b7 Adaptec 5085 (Voodoo08) |
46 | 9005:0285:9005:02bb Adaptec 3405 (Marauder40LP) | 44 | 9005:0285:9005:02bb Adaptec 3405 (Marauder40LP) |
47 | 9005:0285:9005:02bc Adaptec 3805 (Marauder80LP) | 45 | 9005:0285:9005:02bc Adaptec 3805 (Marauder80LP) |
@@ -50,9 +48,14 @@ Supported Cards/Chipsets | |||
50 | 9005:0285:9005:02be Adaptec 31605 (Marauder160) | 48 | 9005:0285:9005:02be Adaptec 31605 (Marauder160) |
51 | 9005:0285:9005:02c3 Adaptec 51205 (Voodoo120) | 49 | 9005:0285:9005:02c3 Adaptec 51205 (Voodoo120) |
52 | 9005:0285:9005:02c4 Adaptec 51605 (Voodoo160) | 50 | 9005:0285:9005:02c4 Adaptec 51605 (Voodoo160) |
51 | 9005:0285:15d9:02c9 SMC AOC-USAS-S4iR | ||
52 | 9005:0285:15d9:02ca SMC AOC-USAS-S8iR | ||
53 | 9005:0285:9005:02ce Adaptec 51245 (Voodoo124) | 53 | 9005:0285:9005:02ce Adaptec 51245 (Voodoo124) |
54 | 9005:0285:9005:02cf Adaptec 51645 (Voodoo164) | 54 | 9005:0285:9005:02cf Adaptec 51645 (Voodoo164) |
55 | 9005:0285:9005:02d0 Adaptec 52445 (Voodoo244) | 55 | 9005:0285:9005:02d0 Adaptec 52445 (Voodoo244) |
56 | 9005:0285:9005:02d1 Adaptec 5405 (Voodoo40) | ||
57 | 9005:0285:15d9:02d2 SMC AOC-USAS-S8i-LP | ||
58 | 9005:0285:15d9:02d3 SMC AOC-USAS-S8iR-LP | ||
56 | 1011:0046:9005:0364 Adaptec 5400S (Mustang) | 59 | 1011:0046:9005:0364 Adaptec 5400S (Mustang) |
57 | 9005:0287:9005:0800 Adaptec Themisto (Jupiter) | 60 | 9005:0287:9005:0800 Adaptec Themisto (Jupiter) |
58 | 9005:0200:9005:0200 Adaptec Themisto (Jupiter) | 61 | 9005:0200:9005:0200 Adaptec Themisto (Jupiter) |
@@ -103,6 +106,7 @@ Supported Cards/Chipsets | |||
103 | 9005:0285:108e:7aac SUN STK RAID REM (Voodoo44 Coyote) | 106 | 9005:0285:108e:7aac SUN STK RAID REM (Voodoo44 Coyote) |
104 | 9005:0285:108e:0286 SUN STK RAID INT (Cougar) | 107 | 9005:0285:108e:0286 SUN STK RAID INT (Cougar) |
105 | 9005:0285:108e:0287 SUN STK RAID EXT (Prometheus) | 108 | 9005:0285:108e:0287 SUN STK RAID EXT (Prometheus) |
109 | 9005:0285:108e:7aae SUN STK RAID EM (Narvi) | ||
106 | 110 | ||
107 | People | 111 | People |
108 | ------------------------- | 112 | ------------------------- |
diff --git a/Documentation/scsi/advansys.txt b/Documentation/scsi/advansys.txt new file mode 100644 index 00000000000..4a3db62b742 --- /dev/null +++ b/Documentation/scsi/advansys.txt | |||
@@ -0,0 +1,243 @@ | |||
1 | AdvanSys (Advanced System Products, Inc.) manufactures the following | ||
2 | RISC-based, Bus-Mastering, Fast (10 Mhz) and Ultra (20 Mhz) Narrow | ||
3 | (8-bit transfer) SCSI Host Adapters for the ISA, EISA, VL, and PCI | ||
4 | buses and RISC-based, Bus-Mastering, Ultra (20 Mhz) Wide (16-bit | ||
5 | transfer) SCSI Host Adapters for the PCI bus. | ||
6 | |||
7 | The CDB counts below indicate the number of SCSI CDB (Command | ||
8 | Descriptor Block) requests that can be stored in the RISC chip | ||
9 | cache and board LRAM. A CDB is a single SCSI command. The driver | ||
10 | detect routine will display the number of CDBs available for each | ||
11 | adapter detected. The number of CDBs used by the driver can be | ||
12 | lowered in the BIOS by changing the 'Host Queue Size' adapter setting. | ||
13 | |||
14 | Laptop Products: | ||
15 | ABP-480 - Bus-Master CardBus (16 CDB) | ||
16 | |||
17 | Connectivity Products: | ||
18 | ABP510/5150 - Bus-Master ISA (240 CDB) | ||
19 | ABP5140 - Bus-Master ISA PnP (16 CDB) | ||
20 | ABP5142 - Bus-Master ISA PnP with floppy (16 CDB) | ||
21 | ABP902/3902 - Bus-Master PCI (16 CDB) | ||
22 | ABP3905 - Bus-Master PCI (16 CDB) | ||
23 | ABP915 - Bus-Master PCI (16 CDB) | ||
24 | ABP920 - Bus-Master PCI (16 CDB) | ||
25 | ABP3922 - Bus-Master PCI (16 CDB) | ||
26 | ABP3925 - Bus-Master PCI (16 CDB) | ||
27 | ABP930 - Bus-Master PCI (16 CDB) | ||
28 | ABP930U - Bus-Master PCI Ultra (16 CDB) | ||
29 | ABP930UA - Bus-Master PCI Ultra (16 CDB) | ||
30 | ABP960 - Bus-Master PCI MAC/PC (16 CDB) | ||
31 | ABP960U - Bus-Master PCI MAC/PC Ultra (16 CDB) | ||
32 | |||
33 | Single Channel Products: | ||
34 | ABP542 - Bus-Master ISA with floppy (240 CDB) | ||
35 | ABP742 - Bus-Master EISA (240 CDB) | ||
36 | ABP842 - Bus-Master VL (240 CDB) | ||
37 | ABP940 - Bus-Master PCI (240 CDB) | ||
38 | ABP940U - Bus-Master PCI Ultra (240 CDB) | ||
39 | ABP940UA/3940UA - Bus-Master PCI Ultra (240 CDB) | ||
40 | ABP970 - Bus-Master PCI MAC/PC (240 CDB) | ||
41 | ABP970U - Bus-Master PCI MAC/PC Ultra (240 CDB) | ||
42 | ABP3960UA - Bus-Master PCI MAC/PC Ultra (240 CDB) | ||
43 | ABP940UW/3940UW - Bus-Master PCI Ultra-Wide (253 CDB) | ||
44 | ABP970UW - Bus-Master PCI MAC/PC Ultra-Wide (253 CDB) | ||
45 | ABP3940U2W - Bus-Master PCI LVD/Ultra2-Wide (253 CDB) | ||
46 | |||
47 | Multi-Channel Products: | ||
48 | ABP752 - Dual Channel Bus-Master EISA (240 CDB Per Channel) | ||
49 | ABP852 - Dual Channel Bus-Master VL (240 CDB Per Channel) | ||
50 | ABP950 - Dual Channel Bus-Master PCI (240 CDB Per Channel) | ||
51 | ABP950UW - Dual Channel Bus-Master PCI Ultra-Wide (253 CDB Per Channel) | ||
52 | ABP980 - Four Channel Bus-Master PCI (240 CDB Per Channel) | ||
53 | ABP980U - Four Channel Bus-Master PCI Ultra (240 CDB Per Channel) | ||
54 | ABP980UA/3980UA - Four Channel Bus-Master PCI Ultra (16 CDB Per Chan.) | ||
55 | ABP3950U2W - Bus-Master PCI LVD/Ultra2-Wide and Ultra-Wide (253 CDB) | ||
56 | ABP3950U3W - Bus-Master PCI Dual LVD2/Ultra3-Wide (253 CDB) | ||
57 | |||
58 | Driver Compile Time Options and Debugging | ||
59 | |||
60 | The following constants can be defined in the source file. | ||
61 | |||
62 | 1. ADVANSYS_ASSERT - Enable driver assertions (Def: Enabled) | ||
63 | |||
64 | Enabling this option adds assertion logic statements to the | ||
65 | driver. If an assertion fails a message will be displayed to | ||
66 | the console, but the system will continue to operate. Any | ||
67 | assertions encountered should be reported to the person | ||
68 | responsible for the driver. Assertion statements may proactively | ||
69 | detect problems with the driver and facilitate fixing these | ||
70 | problems. Enabling assertions will add a small overhead to the | ||
71 | execution of the driver. | ||
72 | |||
73 | 2. ADVANSYS_DEBUG - Enable driver debugging (Def: Disabled) | ||
74 | |||
75 | Enabling this option adds tracing functions to the driver and the | ||
76 | ability to set a driver tracing level at boot time. This option is | ||
77 | very useful for debugging the driver, but it will add to the size | ||
78 | of the driver execution image and add overhead to the execution of | ||
79 | the driver. | ||
80 | |||
81 | The amount of debugging output can be controlled with the global | ||
82 | variable 'asc_dbglvl'. The higher the number the more output. By | ||
83 | default the debug level is 0. | ||
84 | |||
85 | If the driver is loaded at boot time and the LILO Driver Option | ||
86 | is included in the system, the debug level can be changed by | ||
87 | specifying a 5th (ASC_NUM_IOPORT_PROBE + 1) I/O Port. The | ||
88 | first three hex digits of the pseudo I/O Port must be set to | ||
89 | 'deb' and the fourth hex digit specifies the debug level: 0 - F. | ||
90 | The following command line will look for an adapter at 0x330 | ||
91 | and set the debug level to 2. | ||
92 | |||
93 | linux advansys=0x330,0,0,0,0xdeb2 | ||
94 | |||
95 | If the driver is built as a loadable module this variable can be | ||
96 | defined when the driver is loaded. The following insmod command | ||
97 | will set the debug level to one. | ||
98 | |||
99 | insmod advansys.o asc_dbglvl=1 | ||
100 | |||
101 | Debugging Message Levels: | ||
102 | 0: Errors Only | ||
103 | 1: High-Level Tracing | ||
104 | 2-N: Verbose Tracing | ||
105 | |||
106 | To enable debug output to console, please make sure that: | ||
107 | |||
108 | a. System and kernel logging is enabled (syslogd, klogd running). | ||
109 | b. Kernel messages are routed to console output. Check | ||
110 | /etc/syslog.conf for an entry similar to this: | ||
111 | |||
112 | kern.* /dev/console | ||
113 | |||
114 | c. klogd is started with the appropriate -c parameter | ||
115 | (e.g. klogd -c 8) | ||
116 | |||
117 | This will cause printk() messages to be be displayed on the | ||
118 | current console. Refer to the klogd(8) and syslogd(8) man pages | ||
119 | for details. | ||
120 | |||
121 | Alternatively you can enable printk() to console with this | ||
122 | program. However, this is not the 'official' way to do this. | ||
123 | Debug output is logged in /var/log/messages. | ||
124 | |||
125 | main() | ||
126 | { | ||
127 | syscall(103, 7, 0, 0); | ||
128 | } | ||
129 | |||
130 | Increasing LOG_BUF_LEN in kernel/printk.c to something like | ||
131 | 40960 allows more debug messages to be buffered in the kernel | ||
132 | and written to the console or log file. | ||
133 | |||
134 | 3. ADVANSYS_STATS - Enable statistics (Def: Enabled) | ||
135 | |||
136 | Enabling this option adds statistics collection and display | ||
137 | through /proc to the driver. The information is useful for | ||
138 | monitoring driver and device performance. It will add to the | ||
139 | size of the driver execution image and add minor overhead to | ||
140 | the execution of the driver. | ||
141 | |||
142 | Statistics are maintained on a per adapter basis. Driver entry | ||
143 | point call counts and transfer size counts are maintained. | ||
144 | Statistics are only available for kernels greater than or equal | ||
145 | to v1.3.0 with the CONFIG_PROC_FS (/proc) file system configured. | ||
146 | |||
147 | AdvanSys SCSI adapter files have the following path name format: | ||
148 | |||
149 | /proc/scsi/advansys/{0,1,2,3,...} | ||
150 | |||
151 | This information can be displayed with cat. For example: | ||
152 | |||
153 | cat /proc/scsi/advansys/0 | ||
154 | |||
155 | When ADVANSYS_STATS is not defined the AdvanSys /proc files only | ||
156 | contain adapter and device configuration information. | ||
157 | |||
158 | Driver LILO Option | ||
159 | |||
160 | If init/main.c is modified as described in the 'Directions for Adding | ||
161 | the AdvanSys Driver to Linux' section (B.4.) above, the driver will | ||
162 | recognize the 'advansys' LILO command line and /etc/lilo.conf option. | ||
163 | This option can be used to either disable I/O port scanning or to limit | ||
164 | scanning to 1 - 4 I/O ports. Regardless of the option setting EISA and | ||
165 | PCI boards will still be searched for and detected. This option only | ||
166 | affects searching for ISA and VL boards. | ||
167 | |||
168 | Examples: | ||
169 | 1. Eliminate I/O port scanning: | ||
170 | boot: linux advansys= | ||
171 | or | ||
172 | boot: linux advansys=0x0 | ||
173 | 2. Limit I/O port scanning to one I/O port: | ||
174 | boot: linux advansys=0x110 | ||
175 | 3. Limit I/O port scanning to four I/O ports: | ||
176 | boot: linux advansys=0x110,0x210,0x230,0x330 | ||
177 | |||
178 | For a loadable module the same effect can be achieved by setting | ||
179 | the 'asc_iopflag' variable and 'asc_ioport' array when loading | ||
180 | the driver, e.g. | ||
181 | |||
182 | insmod advansys.o asc_iopflag=1 asc_ioport=0x110,0x330 | ||
183 | |||
184 | If ADVANSYS_DEBUG is defined a 5th (ASC_NUM_IOPORT_PROBE + 1) | ||
185 | I/O Port may be added to specify the driver debug level. Refer to | ||
186 | the 'Driver Compile Time Options and Debugging' section above for | ||
187 | more information. | ||
188 | |||
189 | Credits (Chronological Order) | ||
190 | |||
191 | Bob Frey <bfrey@turbolinux.com.cn> wrote the AdvanSys SCSI driver | ||
192 | and maintained it up to 3.3F. He continues to answer questions | ||
193 | and help maintain the driver. | ||
194 | |||
195 | Nathan Hartwell <mage@cdc3.cdc.net> provided the directions and | ||
196 | basis for the Linux v1.3.X changes which were included in the | ||
197 | 1.2 release. | ||
198 | |||
199 | Thomas E Zerucha <zerucha@shell.portal.com> pointed out a bug | ||
200 | in advansys_biosparam() which was fixed in the 1.3 release. | ||
201 | |||
202 | Erik Ratcliffe <erik@caldera.com> has done testing of the | ||
203 | AdvanSys driver in the Caldera releases. | ||
204 | |||
205 | Rik van Riel <H.H.vanRiel@fys.ruu.nl> provided a patch to | ||
206 | AscWaitTixISRDone() which he found necessary to make the | ||
207 | driver work with a SCSI-1 disk. | ||
208 | |||
209 | Mark Moran <mmoran@mmoran.com> has helped test Ultra-Wide | ||
210 | support in the 3.1A driver. | ||
211 | |||
212 | Doug Gilbert <dgilbert@interlog.com> has made changes and | ||
213 | suggestions to improve the driver and done a lot of testing. | ||
214 | |||
215 | Ken Mort <ken@mort.net> reported a DEBUG compile bug fixed | ||
216 | in 3.2K. | ||
217 | |||
218 | Tom Rini <trini@kernel.crashing.org> provided the CONFIG_ISA | ||
219 | patch and helped with PowerPC wide and narrow board support. | ||
220 | |||
221 | Philip Blundell <philb@gnu.org> provided an | ||
222 | advansys_interrupts_enabled patch. | ||
223 | |||
224 | Dave Jones <dave@denial.force9.co.uk> reported the compiler | ||
225 | warnings generated when CONFIG_PROC_FS was not defined in | ||
226 | the 3.2M driver. | ||
227 | |||
228 | Jerry Quinn <jlquinn@us.ibm.com> fixed PowerPC support (endian | ||
229 | problems) for wide cards. | ||
230 | |||
231 | Bryan Henderson <bryanh@giraffe-data.com> helped debug narrow | ||
232 | card error handling. | ||
233 | |||
234 | Manuel Veloso <veloso@pobox.com> worked hard on PowerPC narrow | ||
235 | board support and fixed a bug in AscGetEEPConfig(). | ||
236 | |||
237 | Arnaldo Carvalho de Melo <acme@conectiva.com.br> made | ||
238 | save_flags/restore_flags changes. | ||
239 | |||
240 | Andy Kellner <AKellner@connectcom.net> continued the Advansys SCSI | ||
241 | driver development for ConnectCom (Version > 3.3F). | ||
242 | |||
243 | Ken Witherow for extensive testing during the development of version 3.4. | ||
diff --git a/Documentation/sparc/sbus_drivers.txt b/Documentation/sparc/sbus_drivers.txt index 8418d35484f..eb1e28ad882 100644 --- a/Documentation/sparc/sbus_drivers.txt +++ b/Documentation/sparc/sbus_drivers.txt | |||
@@ -67,10 +67,12 @@ probe in an SBUS driver under Linux: | |||
67 | MODULE_DEVICE_TABLE(of, mydevice_match); | 67 | MODULE_DEVICE_TABLE(of, mydevice_match); |
68 | 68 | ||
69 | static struct of_platform_driver mydevice_driver = { | 69 | static struct of_platform_driver mydevice_driver = { |
70 | .name = "mydevice", | ||
71 | .match_table = mydevice_match, | 70 | .match_table = mydevice_match, |
72 | .probe = mydevice_probe, | 71 | .probe = mydevice_probe, |
73 | .remove = __devexit_p(mydevice_remove), | 72 | .remove = __devexit_p(mydevice_remove), |
73 | .driver = { | ||
74 | .name = "mydevice", | ||
75 | }, | ||
74 | }; | 76 | }; |
75 | 77 | ||
76 | static int __init mydevice_init(void) | 78 | static int __init mydevice_init(void) |