diff options
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/ABI/testing/sysfs-bus-pci | 12 | ||||
-rw-r--r-- | Documentation/ABI/testing/sysfs-tty | 9 | ||||
-rw-r--r-- | Documentation/block/00-INDEX | 10 | ||||
-rw-r--r-- | Documentation/block/cfq-iosched.txt | 77 | ||||
-rw-r--r-- | Documentation/block/queue-sysfs.txt | 64 | ||||
-rw-r--r-- | Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.txt | 8 | ||||
-rw-r--r-- | Documentation/devicetree/bindings/tty/serial/nxp-lpc32xx-hsuart.txt | 14 | ||||
-rw-r--r-- | Documentation/devicetree/bindings/tty/serial/of-serial.txt | 2 | ||||
-rw-r--r-- | Documentation/feature-removal-schedule.txt | 2 | ||||
-rw-r--r-- | Documentation/serial/00-INDEX | 2 | ||||
-rw-r--r-- | Documentation/serial/computone.txt | 520 | ||||
-rw-r--r-- | Documentation/watchdog/src/watchdog-test.c | 2 |
12 files changed, 192 insertions, 530 deletions
diff --git a/Documentation/ABI/testing/sysfs-bus-pci b/Documentation/ABI/testing/sysfs-bus-pci index 34f51100f029..dff1f48d252d 100644 --- a/Documentation/ABI/testing/sysfs-bus-pci +++ b/Documentation/ABI/testing/sysfs-bus-pci | |||
@@ -210,3 +210,15 @@ Users: | |||
210 | firmware assigned instance number of the PCI | 210 | firmware assigned instance number of the PCI |
211 | device that can help in understanding the firmware | 211 | device that can help in understanding the firmware |
212 | intended order of the PCI device. | 212 | intended order of the PCI device. |
213 | |||
214 | What: /sys/bus/pci/devices/.../d3cold_allowed | ||
215 | Date: July 2012 | ||
216 | Contact: Huang Ying <ying.huang@intel.com> | ||
217 | Description: | ||
218 | d3cold_allowed is bit to control whether the corresponding PCI | ||
219 | device can be put into D3Cold state. If it is cleared, the | ||
220 | device will never be put into D3Cold state. If it is set, the | ||
221 | device may be put into D3Cold state if other requirements are | ||
222 | satisfied too. Reading this attribute will show the current | ||
223 | value of d3cold_allowed bit. Writing this attribute will set | ||
224 | the value of d3cold_allowed bit. | ||
diff --git a/Documentation/ABI/testing/sysfs-tty b/Documentation/ABI/testing/sysfs-tty index b138b663bf54..0c430150d929 100644 --- a/Documentation/ABI/testing/sysfs-tty +++ b/Documentation/ABI/testing/sysfs-tty | |||
@@ -17,3 +17,12 @@ Description: | |||
17 | device, like 'tty1'. | 17 | device, like 'tty1'. |
18 | The file supports poll() to detect virtual | 18 | The file supports poll() to detect virtual |
19 | console switches. | 19 | console switches. |
20 | |||
21 | What: /sys/class/tty/ttyS0/uartclk | ||
22 | Date: Sep 2012 | ||
23 | Contact: Tomas Hlavacek <tmshlvck@gmail.com> | ||
24 | Description: | ||
25 | Shows the current uartclk value associated with the | ||
26 | UART port in serial_core, that is bound to TTY like ttyS0. | ||
27 | uartclk = 16 * baud_base | ||
28 | |||
diff --git a/Documentation/block/00-INDEX b/Documentation/block/00-INDEX index d111e3b23db0..d18ecd827c40 100644 --- a/Documentation/block/00-INDEX +++ b/Documentation/block/00-INDEX | |||
@@ -3,15 +3,21 @@ | |||
3 | biodoc.txt | 3 | biodoc.txt |
4 | - Notes on the Generic Block Layer Rewrite in Linux 2.5 | 4 | - Notes on the Generic Block Layer Rewrite in Linux 2.5 |
5 | capability.txt | 5 | capability.txt |
6 | - Generic Block Device Capability (/sys/block/<disk>/capability) | 6 | - Generic Block Device Capability (/sys/block/<device>/capability) |
7 | cfq-iosched.txt | ||
8 | - CFQ IO scheduler tunables | ||
9 | data-integrity.txt | ||
10 | - Block data integrity | ||
7 | deadline-iosched.txt | 11 | deadline-iosched.txt |
8 | - Deadline IO scheduler tunables | 12 | - Deadline IO scheduler tunables |
9 | ioprio.txt | 13 | ioprio.txt |
10 | - Block io priorities (in CFQ scheduler) | 14 | - Block io priorities (in CFQ scheduler) |
15 | queue-sysfs.txt | ||
16 | - Queue's sysfs entries | ||
11 | request.txt | 17 | request.txt |
12 | - The members of struct request (in include/linux/blkdev.h) | 18 | - The members of struct request (in include/linux/blkdev.h) |
13 | stat.txt | 19 | stat.txt |
14 | - Block layer statistics in /sys/block/<dev>/stat | 20 | - Block layer statistics in /sys/block/<device>/stat |
15 | switching-sched.txt | 21 | switching-sched.txt |
16 | - Switching I/O schedulers at runtime | 22 | - Switching I/O schedulers at runtime |
17 | writeback_cache_control.txt | 23 | writeback_cache_control.txt |
diff --git a/Documentation/block/cfq-iosched.txt b/Documentation/block/cfq-iosched.txt index 6d670f570451..d89b4fe724d7 100644 --- a/Documentation/block/cfq-iosched.txt +++ b/Documentation/block/cfq-iosched.txt | |||
@@ -1,3 +1,14 @@ | |||
1 | CFQ (Complete Fairness Queueing) | ||
2 | =============================== | ||
3 | |||
4 | The main aim of CFQ scheduler is to provide a fair allocation of the disk | ||
5 | I/O bandwidth for all the processes which requests an I/O operation. | ||
6 | |||
7 | CFQ maintains the per process queue for the processes which request I/O | ||
8 | operation(syncronous requests). In case of asynchronous requests, all the | ||
9 | requests from all the processes are batched together according to their | ||
10 | process's I/O priority. | ||
11 | |||
1 | CFQ ioscheduler tunables | 12 | CFQ ioscheduler tunables |
2 | ======================== | 13 | ======================== |
3 | 14 | ||
@@ -25,6 +36,72 @@ there are multiple spindles behind single LUN (Host based hardware RAID | |||
25 | controller or for storage arrays), setting slice_idle=0 might end up in better | 36 | controller or for storage arrays), setting slice_idle=0 might end up in better |
26 | throughput and acceptable latencies. | 37 | throughput and acceptable latencies. |
27 | 38 | ||
39 | back_seek_max | ||
40 | ------------- | ||
41 | This specifies, given in Kbytes, the maximum "distance" for backward seeking. | ||
42 | The distance is the amount of space from the current head location to the | ||
43 | sectors that are backward in terms of distance. | ||
44 | |||
45 | This parameter allows the scheduler to anticipate requests in the "backward" | ||
46 | direction and consider them as being the "next" if they are within this | ||
47 | distance from the current head location. | ||
48 | |||
49 | back_seek_penalty | ||
50 | ----------------- | ||
51 | This parameter is used to compute the cost of backward seeking. If the | ||
52 | backward distance of request is just 1/back_seek_penalty from a "front" | ||
53 | request, then the seeking cost of two requests is considered equivalent. | ||
54 | |||
55 | So scheduler will not bias toward one or the other request (otherwise scheduler | ||
56 | will bias toward front request). Default value of back_seek_penalty is 2. | ||
57 | |||
58 | fifo_expire_async | ||
59 | ----------------- | ||
60 | This parameter is used to set the timeout of asynchronous requests. Default | ||
61 | value of this is 248ms. | ||
62 | |||
63 | fifo_expire_sync | ||
64 | ---------------- | ||
65 | This parameter is used to set the timeout of synchronous requests. Default | ||
66 | value of this is 124ms. In case to favor synchronous requests over asynchronous | ||
67 | one, this value should be decreased relative to fifo_expire_async. | ||
68 | |||
69 | slice_async | ||
70 | ----------- | ||
71 | This parameter is same as of slice_sync but for asynchronous queue. The | ||
72 | default value is 40ms. | ||
73 | |||
74 | slice_async_rq | ||
75 | -------------- | ||
76 | This parameter is used to limit the dispatching of asynchronous request to | ||
77 | device request queue in queue's slice time. The maximum number of request that | ||
78 | are allowed to be dispatched also depends upon the io priority. Default value | ||
79 | for this is 2. | ||
80 | |||
81 | slice_sync | ||
82 | ---------- | ||
83 | When a queue is selected for execution, the queues IO requests are only | ||
84 | executed for a certain amount of time(time_slice) before switching to another | ||
85 | queue. This parameter is used to calculate the time slice of synchronous | ||
86 | queue. | ||
87 | |||
88 | time_slice is computed using the below equation:- | ||
89 | time_slice = slice_sync + (slice_sync/5 * (4 - prio)). To increase the | ||
90 | time_slice of synchronous queue, increase the value of slice_sync. Default | ||
91 | value is 100ms. | ||
92 | |||
93 | quantum | ||
94 | ------- | ||
95 | This specifies the number of request dispatched to the device queue. In a | ||
96 | queue's time slice, a request will not be dispatched if the number of request | ||
97 | in the device exceeds this parameter. This parameter is used for synchronous | ||
98 | request. | ||
99 | |||
100 | In case of storage with several disk, this setting can limit the parallel | ||
101 | processing of request. Therefore, increasing the value can imporve the | ||
102 | performace although this can cause the latency of some I/O to increase due | ||
103 | to more number of requests. | ||
104 | |||
28 | CFQ IOPS Mode for group scheduling | 105 | CFQ IOPS Mode for group scheduling |
29 | =================================== | 106 | =================================== |
30 | Basic CFQ design is to provide priority based time slices. Higher priority | 107 | Basic CFQ design is to provide priority based time slices. Higher priority |
diff --git a/Documentation/block/queue-sysfs.txt b/Documentation/block/queue-sysfs.txt index 6518a55273e7..e54ac1d53403 100644 --- a/Documentation/block/queue-sysfs.txt +++ b/Documentation/block/queue-sysfs.txt | |||
@@ -9,20 +9,71 @@ These files are the ones found in the /sys/block/xxx/queue/ directory. | |||
9 | Files denoted with a RO postfix are readonly and the RW postfix means | 9 | Files denoted with a RO postfix are readonly and the RW postfix means |
10 | read-write. | 10 | read-write. |
11 | 11 | ||
12 | add_random (RW) | ||
13 | ---------------- | ||
14 | This file allows to trun off the disk entropy contribution. Default | ||
15 | value of this file is '1'(on). | ||
16 | |||
17 | discard_granularity (RO) | ||
18 | ----------------------- | ||
19 | This shows the size of internal allocation of the device in bytes, if | ||
20 | reported by the device. A value of '0' means device does not support | ||
21 | the discard functionality. | ||
22 | |||
23 | discard_max_bytes (RO) | ||
24 | ---------------------- | ||
25 | Devices that support discard functionality may have internal limits on | ||
26 | the number of bytes that can be trimmed or unmapped in a single operation. | ||
27 | The discard_max_bytes parameter is set by the device driver to the maximum | ||
28 | number of bytes that can be discarded in a single operation. Discard | ||
29 | requests issued to the device must not exceed this limit. A discard_max_bytes | ||
30 | value of 0 means that the device does not support discard functionality. | ||
31 | |||
32 | discard_zeroes_data (RO) | ||
33 | ------------------------ | ||
34 | When read, this file will show if the discarded block are zeroed by the | ||
35 | device or not. If its value is '1' the blocks are zeroed otherwise not. | ||
36 | |||
12 | hw_sector_size (RO) | 37 | hw_sector_size (RO) |
13 | ------------------- | 38 | ------------------- |
14 | This is the hardware sector size of the device, in bytes. | 39 | This is the hardware sector size of the device, in bytes. |
15 | 40 | ||
41 | iostats (RW) | ||
42 | ------------- | ||
43 | This file is used to control (on/off) the iostats accounting of the | ||
44 | disk. | ||
45 | |||
46 | logical_block_size (RO) | ||
47 | ----------------------- | ||
48 | This is the logcal block size of the device, in bytes. | ||
49 | |||
16 | max_hw_sectors_kb (RO) | 50 | max_hw_sectors_kb (RO) |
17 | ---------------------- | 51 | ---------------------- |
18 | This is the maximum number of kilobytes supported in a single data transfer. | 52 | This is the maximum number of kilobytes supported in a single data transfer. |
19 | 53 | ||
54 | max_integrity_segments (RO) | ||
55 | --------------------------- | ||
56 | When read, this file shows the max limit of integrity segments as | ||
57 | set by block layer which a hardware controller can handle. | ||
58 | |||
20 | max_sectors_kb (RW) | 59 | max_sectors_kb (RW) |
21 | ------------------- | 60 | ------------------- |
22 | This is the maximum number of kilobytes that the block layer will allow | 61 | This is the maximum number of kilobytes that the block layer will allow |
23 | for a filesystem request. Must be smaller than or equal to the maximum | 62 | for a filesystem request. Must be smaller than or equal to the maximum |
24 | size allowed by the hardware. | 63 | size allowed by the hardware. |
25 | 64 | ||
65 | max_segments (RO) | ||
66 | ----------------- | ||
67 | Maximum number of segments of the device. | ||
68 | |||
69 | max_segment_size (RO) | ||
70 | --------------------- | ||
71 | Maximum segment size of the device. | ||
72 | |||
73 | minimum_io_size (RO) | ||
74 | -------------------- | ||
75 | This is the smallest preferred io size reported by the device. | ||
76 | |||
26 | nomerges (RW) | 77 | nomerges (RW) |
27 | ------------- | 78 | ------------- |
28 | This enables the user to disable the lookup logic involved with IO | 79 | This enables the user to disable the lookup logic involved with IO |
@@ -45,11 +96,24 @@ per-block-cgroup request pool. IOW, if there are N block cgroups, | |||
45 | each request queue may have upto N request pools, each independently | 96 | each request queue may have upto N request pools, each independently |
46 | regulated by nr_requests. | 97 | regulated by nr_requests. |
47 | 98 | ||
99 | optimal_io_size (RO) | ||
100 | -------------------- | ||
101 | This is the optimal io size reported by the device. | ||
102 | |||
103 | physical_block_size (RO) | ||
104 | ------------------------ | ||
105 | This is the physical block size of device, in bytes. | ||
106 | |||
48 | read_ahead_kb (RW) | 107 | read_ahead_kb (RW) |
49 | ------------------ | 108 | ------------------ |
50 | Maximum number of kilobytes to read-ahead for filesystems on this block | 109 | Maximum number of kilobytes to read-ahead for filesystems on this block |
51 | device. | 110 | device. |
52 | 111 | ||
112 | rotational (RW) | ||
113 | --------------- | ||
114 | This file is used to stat if the device is of rotational type or | ||
115 | non-rotational type. | ||
116 | |||
53 | rq_affinity (RW) | 117 | rq_affinity (RW) |
54 | ---------------- | 118 | ---------------- |
55 | If this option is '1', the block layer will migrate request completions to the | 119 | If this option is '1', the block layer will migrate request completions to the |
diff --git a/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.txt b/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.txt index 70cd49b1caa8..1dd622546d06 100644 --- a/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.txt +++ b/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.txt | |||
@@ -10,8 +10,8 @@ Required properties: | |||
10 | - compatible : Should be "fsl,<chip>-esdhc" | 10 | - compatible : Should be "fsl,<chip>-esdhc" |
11 | 11 | ||
12 | Optional properties: | 12 | Optional properties: |
13 | - fsl,cd-internal : Indicate to use controller internal card detection | 13 | - fsl,cd-controller : Indicate to use controller internal card detection |
14 | - fsl,wp-internal : Indicate to use controller internal write protection | 14 | - fsl,wp-controller : Indicate to use controller internal write protection |
15 | 15 | ||
16 | Examples: | 16 | Examples: |
17 | 17 | ||
@@ -19,8 +19,8 @@ esdhc@70004000 { | |||
19 | compatible = "fsl,imx51-esdhc"; | 19 | compatible = "fsl,imx51-esdhc"; |
20 | reg = <0x70004000 0x4000>; | 20 | reg = <0x70004000 0x4000>; |
21 | interrupts = <1>; | 21 | interrupts = <1>; |
22 | fsl,cd-internal; | 22 | fsl,cd-controller; |
23 | fsl,wp-internal; | 23 | fsl,wp-controller; |
24 | }; | 24 | }; |
25 | 25 | ||
26 | esdhc@70008000 { | 26 | esdhc@70008000 { |
diff --git a/Documentation/devicetree/bindings/tty/serial/nxp-lpc32xx-hsuart.txt b/Documentation/devicetree/bindings/tty/serial/nxp-lpc32xx-hsuart.txt new file mode 100644 index 000000000000..0d439dfc1aa5 --- /dev/null +++ b/Documentation/devicetree/bindings/tty/serial/nxp-lpc32xx-hsuart.txt | |||
@@ -0,0 +1,14 @@ | |||
1 | * NXP LPC32xx SoC High Speed UART | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: Should be "nxp,lpc3220-hsuart" | ||
5 | - reg: Should contain registers location and length | ||
6 | - interrupts: Should contain interrupt | ||
7 | |||
8 | Example: | ||
9 | |||
10 | uart1: serial@40014000 { | ||
11 | compatible = "nxp,lpc3220-hsuart"; | ||
12 | reg = <0x40014000 0x1000>; | ||
13 | interrupts = <26 0>; | ||
14 | }; | ||
diff --git a/Documentation/devicetree/bindings/tty/serial/of-serial.txt b/Documentation/devicetree/bindings/tty/serial/of-serial.txt index 0847fdeee11a..ba385f2e0ddc 100644 --- a/Documentation/devicetree/bindings/tty/serial/of-serial.txt +++ b/Documentation/devicetree/bindings/tty/serial/of-serial.txt | |||
@@ -25,6 +25,8 @@ Optional properties: | |||
25 | accesses to the UART (e.g. TI davinci). | 25 | accesses to the UART (e.g. TI davinci). |
26 | - used-by-rtas : set to indicate that the port is in use by the OpenFirmware | 26 | - used-by-rtas : set to indicate that the port is in use by the OpenFirmware |
27 | RTAS and should not be registered. | 27 | RTAS and should not be registered. |
28 | - no-loopback-test: set to indicate that the port does not implements loopback | ||
29 | test mode | ||
28 | 30 | ||
29 | Example: | 31 | Example: |
30 | 32 | ||
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt index afaff312bf41..f4d8c7105fcd 100644 --- a/Documentation/feature-removal-schedule.txt +++ b/Documentation/feature-removal-schedule.txt | |||
@@ -579,7 +579,7 @@ Why: KVM tracepoints provide mostly equivalent information in a much more | |||
579 | ---------------------------- | 579 | ---------------------------- |
580 | 580 | ||
581 | What: at91-mci driver ("CONFIG_MMC_AT91") | 581 | What: at91-mci driver ("CONFIG_MMC_AT91") |
582 | When: 3.7 | 582 | When: 3.8 |
583 | Why: There are two mci drivers: at91-mci and atmel-mci. The PDC support | 583 | Why: There are two mci drivers: at91-mci and atmel-mci. The PDC support |
584 | was added to atmel-mci as a first step to support more chips. | 584 | was added to atmel-mci as a first step to support more chips. |
585 | Then at91-mci was kept only for old IP versions (on at91rm9200 and | 585 | Then at91-mci was kept only for old IP versions (on at91rm9200 and |
diff --git a/Documentation/serial/00-INDEX b/Documentation/serial/00-INDEX index e09468ad3cb1..f7b0c7dc25ef 100644 --- a/Documentation/serial/00-INDEX +++ b/Documentation/serial/00-INDEX | |||
@@ -2,8 +2,6 @@ | |||
2 | - this file. | 2 | - this file. |
3 | README.cycladesZ | 3 | README.cycladesZ |
4 | - info on Cyclades-Z firmware loading. | 4 | - info on Cyclades-Z firmware loading. |
5 | computone.txt | ||
6 | - info on Computone Intelliport II/Plus Multiport Serial Driver. | ||
7 | digiepca.txt | 5 | digiepca.txt |
8 | - info on Digi Intl. {PC,PCI,EISA}Xx and Xem series cards. | 6 | - info on Digi Intl. {PC,PCI,EISA}Xx and Xem series cards. |
9 | hayes-esp.txt | 7 | hayes-esp.txt |
diff --git a/Documentation/serial/computone.txt b/Documentation/serial/computone.txt deleted file mode 100644 index a6a1158ea2ba..000000000000 --- a/Documentation/serial/computone.txt +++ /dev/null | |||
@@ -1,520 +0,0 @@ | |||
1 | NOTE: This is an unmaintained driver. It is not guaranteed to work due to | ||
2 | changes made in the tty layer in 2.6. If you wish to take over maintenance of | ||
3 | this driver, contact Michael Warfield <mhw@wittsend.com>. | ||
4 | |||
5 | Changelog: | ||
6 | ---------- | ||
7 | 11-01-2001: Original Document | ||
8 | |||
9 | 10-29-2004: Minor misspelling & format fix, update status of driver. | ||
10 | James Nelson <james4765@gmail.com> | ||
11 | |||
12 | Computone Intelliport II/Plus Multiport Serial Driver | ||
13 | ----------------------------------------------------- | ||
14 | |||
15 | Release Notes For Linux Kernel 2.2 and higher. | ||
16 | These notes are for the drivers which have already been integrated into the | ||
17 | kernel and have been tested on Linux kernels 2.0, 2.2, 2.3, and 2.4. | ||
18 | |||
19 | Version: 1.2.14 | ||
20 | Date: 11/01/2001 | ||
21 | Historical Author: Andrew Manison <amanison@america.net> | ||
22 | Primary Author: Doug McNash | ||
23 | |||
24 | This file assumes that you are using the Computone drivers which are | ||
25 | integrated into the kernel sources. For updating the drivers or installing | ||
26 | drivers into kernels which do not already have Computone drivers, please | ||
27 | refer to the instructions in the README.computone file in the driver patch. | ||
28 | |||
29 | |||
30 | 1. INTRODUCTION | ||
31 | |||
32 | This driver supports the entire family of Intelliport II/Plus controllers | ||
33 | with the exception of the MicroChannel controllers. It does not support | ||
34 | products previous to the Intelliport II. | ||
35 | |||
36 | This driver was developed on the v2.0.x Linux tree and has been tested up | ||
37 | to v2.4.14; it will probably not work with earlier v1.X kernels,. | ||
38 | |||
39 | |||
40 | 2. QUICK INSTALLATION | ||
41 | |||
42 | Hardware - If you have an ISA card, find a free interrupt and io port. | ||
43 | List those in use with `cat /proc/interrupts` and | ||
44 | `cat /proc/ioports`. Set the card dip switches to a free | ||
45 | address. You may need to configure your BIOS to reserve an | ||
46 | irq for an ISA card. PCI and EISA parameters are set | ||
47 | automagically. Insert card into computer with the power off | ||
48 | before or after drivers installation. | ||
49 | |||
50 | Note the hardware address from the Computone ISA cards installed into | ||
51 | the system. These are required for editing ip2.c or editing | ||
52 | /etc/modprobe.d/*.conf, or for specification on the modprobe | ||
53 | command line. | ||
54 | |||
55 | Note that the /etc/modules.conf should be used for older (pre-2.6) | ||
56 | kernels. | ||
57 | |||
58 | Software - | ||
59 | |||
60 | Module installation: | ||
61 | |||
62 | a) Determine free irq/address to use if any (configure BIOS if need be) | ||
63 | b) Run "make config" or "make menuconfig" or "make xconfig" | ||
64 | Select (m) module for CONFIG_COMPUTONE under character | ||
65 | devices. CONFIG_PCI and CONFIG_MODULES also may need to be set. | ||
66 | c) Set address on ISA cards then: | ||
67 | edit /usr/src/linux/drivers/char/ip2.c if needed | ||
68 | or | ||
69 | edit config file in /etc/modprobe.d/ if needed (module). | ||
70 | or both to match this setting. | ||
71 | d) Run "make modules" | ||
72 | e) Run "make modules_install" | ||
73 | f) Run "/sbin/depmod -a" | ||
74 | g) install driver using `modprobe ip2 <options>` (options listed below) | ||
75 | h) run ip2mkdev (either the script below or the binary version) | ||
76 | |||
77 | |||
78 | Kernel installation: | ||
79 | |||
80 | a) Determine free irq/address to use if any (configure BIOS if need be) | ||
81 | b) Run "make config" or "make menuconfig" or "make xconfig" | ||
82 | Select (y) kernel for CONFIG_COMPUTONE under character | ||
83 | devices. CONFIG_PCI may need to be set if you have PCI bus. | ||
84 | c) Set address on ISA cards then: | ||
85 | edit /usr/src/linux/drivers/char/ip2.c | ||
86 | (Optional - may be specified on kernel command line now) | ||
87 | d) Run "make zImage" or whatever target you prefer. | ||
88 | e) mv /usr/src/linux/arch/x86/boot/zImage to /boot. | ||
89 | f) Add new config for this kernel into /etc/lilo.conf, run "lilo" | ||
90 | or copy to a floppy disk and boot from that floppy disk. | ||
91 | g) Reboot using this kernel | ||
92 | h) run ip2mkdev (either the script below or the binary version) | ||
93 | |||
94 | Kernel command line options: | ||
95 | |||
96 | When compiling the driver into the kernel, io and irq may be | ||
97 | compiled into the driver by editing ip2.c and setting the values for | ||
98 | io and irq in the appropriate array. An alternative is to specify | ||
99 | a command line parameter to the kernel at boot up. | ||
100 | |||
101 | ip2=io0,irq0,io1,irq1,io2,irq2,io3,irq3 | ||
102 | |||
103 | Note that this order is very different from the specifications for the | ||
104 | modload parameters which have separate IRQ and IO specifiers. | ||
105 | |||
106 | The io port also selects PCI (1) and EISA (2) boards. | ||
107 | |||
108 | io=0 No board | ||
109 | io=1 PCI board | ||
110 | io=2 EISA board | ||
111 | else ISA board io address | ||
112 | |||
113 | You only need to specify the boards which are present. | ||
114 | |||
115 | Examples: | ||
116 | |||
117 | 2 PCI boards: | ||
118 | |||
119 | ip2=1,0,1,0 | ||
120 | |||
121 | 1 ISA board at 0x310 irq 5: | ||
122 | |||
123 | ip2=0x310,5 | ||
124 | |||
125 | This can be added to and "append" option in lilo.conf similar to this: | ||
126 | |||
127 | append="ip2=1,0,1,0" | ||
128 | |||
129 | |||
130 | 3. INSTALLATION | ||
131 | |||
132 | Previously, the driver sources were packaged with a set of patch files | ||
133 | to update the character drivers' makefile and configuration file, and other | ||
134 | kernel source files. A build script (ip2build) was included which applies | ||
135 | the patches if needed, and build any utilities needed. | ||
136 | What you receive may be a single patch file in conventional kernel | ||
137 | patch format build script. That form can also be applied by | ||
138 | running patch -p1 < ThePatchFile. Otherwise run ip2build. | ||
139 | |||
140 | The driver can be installed as a module (recommended) or built into the | ||
141 | kernel. This is selected as for other drivers through the `make config` | ||
142 | command from the root of the Linux source tree. If the driver is built | ||
143 | into the kernel you will need to edit the file ip2.c to match the boards | ||
144 | you are installing. See that file for instructions. If the driver is | ||
145 | installed as a module the configuration can also be specified on the | ||
146 | modprobe command line as follows: | ||
147 | |||
148 | modprobe ip2 irq=irq1,irq2,irq3,irq4 io=addr1,addr2,addr3,addr4 | ||
149 | |||
150 | where irqnum is one of the valid Intelliport II interrupts (3,4,5,7,10,11, | ||
151 | 12,15) and addr1-4 are the base addresses for up to four controllers. If | ||
152 | the irqs are not specified the driver uses the default in ip2.c (which | ||
153 | selects polled mode). If no base addresses are specified the defaults in | ||
154 | ip2.c are used. If you are autoloading the driver module with kerneld or | ||
155 | kmod the base addresses and interrupt number must also be set in ip2.c | ||
156 | and recompile or just insert and options line in /etc/modprobe.d/*.conf or both. | ||
157 | The options line is equivalent to the command line and takes precedence over | ||
158 | what is in ip2.c. | ||
159 | |||
160 | config sample to put /etc/modprobe.d/*.conf: | ||
161 | options ip2 io=1,0x328 irq=1,10 | ||
162 | alias char-major-71 ip2 | ||
163 | alias char-major-72 ip2 | ||
164 | alias char-major-73 ip2 | ||
165 | |||
166 | The equivalent in ip2.c: | ||
167 | |||
168 | static int io[IP2_MAX_BOARDS]= { 1, 0x328, 0, 0 }; | ||
169 | static int irq[IP2_MAX_BOARDS] = { 1, 10, -1, -1 }; | ||
170 | |||
171 | The equivalent for the kernel command line (in lilo.conf): | ||
172 | |||
173 | append="ip2=1,1,0x328,10" | ||
174 | |||
175 | |||
176 | Note: Both io and irq should be updated to reflect YOUR system. An "io" | ||
177 | address of 1 or 2 indicates a PCI or EISA card in the board table. | ||
178 | The PCI or EISA irq will be assigned automatically. | ||
179 | |||
180 | Specifying an invalid or in-use irq will default the driver into | ||
181 | running in polled mode for that card. If all irq entries are 0 then | ||
182 | all cards will operate in polled mode. | ||
183 | |||
184 | If you select the driver as part of the kernel run : | ||
185 | |||
186 | make zlilo (or whatever you do to create a bootable kernel) | ||
187 | |||
188 | If you selected a module run : | ||
189 | |||
190 | make modules && make modules_install | ||
191 | |||
192 | The utility ip2mkdev (see 5 and 7 below) creates all the device nodes | ||
193 | required by the driver. For a device to be created it must be configured | ||
194 | in the driver and the board must be installed. Only devices corresponding | ||
195 | to real IntelliPort II ports are created. With multiple boards and expansion | ||
196 | boxes this will leave gaps in the sequence of device names. ip2mkdev uses | ||
197 | Linux tty naming conventions: ttyF0 - ttyF255 for normal devices, and | ||
198 | cuf0 - cuf255 for callout devices. | ||
199 | |||
200 | |||
201 | 4. USING THE DRIVERS | ||
202 | |||
203 | As noted above, the driver implements the ports in accordance with Linux | ||
204 | conventions, and the devices should be interchangeable with the standard | ||
205 | serial devices. (This is a key point for problem reporting: please make | ||
206 | sure that what you are trying do works on the ttySx/cuax ports first; then | ||
207 | tell us what went wrong with the ip2 ports!) | ||
208 | |||
209 | Higher speeds can be obtained using the setserial utility which remaps | ||
210 | 38,400 bps (extb) to 57,600 bps, 115,200 bps, or a custom speed. | ||
211 | Intelliport II installations using the PowerPort expansion module can | ||
212 | use the custom speed setting to select the highest speeds: 153,600 bps, | ||
213 | 230,400 bps, 307,200 bps, 460,800bps and 921,600 bps. The base for | ||
214 | custom baud rate configuration is fixed at 921,600 for cards/expansion | ||
215 | modules with ST654's and 115200 for those with Cirrus CD1400's. This | ||
216 | corresponds to the maximum bit rates those chips are capable. | ||
217 | For example if the baud base is 921600 and the baud divisor is 18 then | ||
218 | the custom rate is 921600/18 = 51200 bps. See the setserial man page for | ||
219 | complete details. Of course if stty accepts the higher rates now you can | ||
220 | use that as well as the standard ioctls(). | ||
221 | |||
222 | |||
223 | 5. ip2mkdev and assorted utilities... | ||
224 | |||
225 | Several utilities, including the source for a binary ip2mkdev utility are | ||
226 | available under .../drivers/char/ip2. These can be build by changing to | ||
227 | that directory and typing "make" after the kernel has be built. If you do | ||
228 | not wish to compile the binary utilities, the shell script below can be | ||
229 | cut out and run as "ip2mkdev" to create the necessary device files. To | ||
230 | use the ip2mkdev script, you must have procfs enabled and the proc file | ||
231 | system mounted on /proc. | ||
232 | |||
233 | |||
234 | 6. NOTES | ||
235 | |||
236 | This is a release version of the driver, but it is impossible to test it | ||
237 | in all configurations of Linux. If there is any anomalous behaviour that | ||
238 | does not match the standard serial port's behaviour please let us know. | ||
239 | |||
240 | |||
241 | 7. ip2mkdev shell script | ||
242 | |||
243 | Previously, this script was simply attached here. It is now attached as a | ||
244 | shar archive to make it easier to extract the script from the documentation. | ||
245 | To create the ip2mkdev shell script change to a convenient directory (/tmp | ||
246 | works just fine) and run the following command: | ||
247 | |||
248 | unshar Documentation/serial/computone.txt | ||
249 | (This file) | ||
250 | |||
251 | You should now have a file ip2mkdev in your current working directory with | ||
252 | permissions set to execute. Running that script with then create the | ||
253 | necessary devices for the Computone boards, interfaces, and ports which | ||
254 | are present on you system at the time it is run. | ||
255 | |||
256 | |||
257 | #!/bin/sh | ||
258 | # This is a shell archive (produced by GNU sharutils 4.2.1). | ||
259 | # To extract the files from this archive, save it to some FILE, remove | ||
260 | # everything before the `!/bin/sh' line above, then type `sh FILE'. | ||
261 | # | ||
262 | # Made on 2001-10-29 10:32 EST by <mhw@alcove.wittsend.com>. | ||
263 | # Source directory was `/home2/src/tmp'. | ||
264 | # | ||
265 | # Existing files will *not* be overwritten unless `-c' is specified. | ||
266 | # | ||
267 | # This shar contains: | ||
268 | # length mode name | ||
269 | # ------ ---------- ------------------------------------------ | ||
270 | # 4251 -rwxr-xr-x ip2mkdev | ||
271 | # | ||
272 | save_IFS="${IFS}" | ||
273 | IFS="${IFS}:" | ||
274 | gettext_dir=FAILED | ||
275 | locale_dir=FAILED | ||
276 | first_param="$1" | ||
277 | for dir in $PATH | ||
278 | do | ||
279 | if test "$gettext_dir" = FAILED && test -f $dir/gettext \ | ||
280 | && ($dir/gettext --version >/dev/null 2>&1) | ||
281 | then | ||
282 | set `$dir/gettext --version 2>&1` | ||
283 | if test "$3" = GNU | ||
284 | then | ||
285 | gettext_dir=$dir | ||
286 | fi | ||
287 | fi | ||
288 | if test "$locale_dir" = FAILED && test -f $dir/shar \ | ||
289 | && ($dir/shar --print-text-domain-dir >/dev/null 2>&1) | ||
290 | then | ||
291 | locale_dir=`$dir/shar --print-text-domain-dir` | ||
292 | fi | ||
293 | done | ||
294 | IFS="$save_IFS" | ||
295 | if test "$locale_dir" = FAILED || test "$gettext_dir" = FAILED | ||
296 | then | ||
297 | echo=echo | ||
298 | else | ||
299 | TEXTDOMAINDIR=$locale_dir | ||
300 | export TEXTDOMAINDIR | ||
301 | TEXTDOMAIN=sharutils | ||
302 | export TEXTDOMAIN | ||
303 | echo="$gettext_dir/gettext -s" | ||
304 | fi | ||
305 | if touch -am -t 200112312359.59 $$.touch >/dev/null 2>&1 && test ! -f 200112312359.59 -a -f $$.touch; then | ||
306 | shar_touch='touch -am -t $1$2$3$4$5$6.$7 "$8"' | ||
307 | elif touch -am 123123592001.59 $$.touch >/dev/null 2>&1 && test ! -f 123123592001.59 -a ! -f 123123592001.5 -a -f $$.touch; then | ||
308 | shar_touch='touch -am $3$4$5$6$1$2.$7 "$8"' | ||
309 | elif touch -am 1231235901 $$.touch >/dev/null 2>&1 && test ! -f 1231235901 -a -f $$.touch; then | ||
310 | shar_touch='touch -am $3$4$5$6$2 "$8"' | ||
311 | else | ||
312 | shar_touch=: | ||
313 | echo | ||
314 | $echo 'WARNING: not restoring timestamps. Consider getting and' | ||
315 | $echo "installing GNU \`touch', distributed in GNU File Utilities..." | ||
316 | echo | ||
317 | fi | ||
318 | rm -f 200112312359.59 123123592001.59 123123592001.5 1231235901 $$.touch | ||
319 | # | ||
320 | if mkdir _sh17581; then | ||
321 | $echo 'x -' 'creating lock directory' | ||
322 | else | ||
323 | $echo 'failed to create lock directory' | ||
324 | exit 1 | ||
325 | fi | ||
326 | # ============= ip2mkdev ============== | ||
327 | if test -f 'ip2mkdev' && test "$first_param" != -c; then | ||
328 | $echo 'x -' SKIPPING 'ip2mkdev' '(file already exists)' | ||
329 | else | ||
330 | $echo 'x -' extracting 'ip2mkdev' '(text)' | ||
331 | sed 's/^X//' << 'SHAR_EOF' > 'ip2mkdev' && | ||
332 | #!/bin/sh - | ||
333 | # | ||
334 | # ip2mkdev | ||
335 | # | ||
336 | # Make or remove devices as needed for Computone Intelliport drivers | ||
337 | # | ||
338 | # First rule! If the dev file exists and you need it, don't mess | ||
339 | # with it. That prevents us from screwing up open ttys, ownership | ||
340 | # and permissions on a running system! | ||
341 | # | ||
342 | # This script will NOT remove devices that no longer exist if their | ||
343 | # board or interface box has been removed. If you want to get rid | ||
344 | # of them, you can manually do an "rm -f /dev/ttyF* /dev/cuaf*" | ||
345 | # before running this script. Running this script will then recreate | ||
346 | # all the valid devices. | ||
347 | # | ||
348 | # Michael H. Warfield | ||
349 | # /\/\|=mhw=|\/\/ | ||
350 | # mhw@wittsend.com | ||
351 | # | ||
352 | # Updated 10/29/2000 for version 1.2.13 naming convention | ||
353 | # under devfs. /\/\|=mhw=|\/\/ | ||
354 | # | ||
355 | # Updated 03/09/2000 for devfs support in ip2 drivers. /\/\|=mhw=|\/\/ | ||
356 | # | ||
357 | X | ||
358 | if test -d /dev/ip2 ; then | ||
359 | # This is devfs mode... We don't do anything except create symlinks | ||
360 | # from the real devices to the old names! | ||
361 | X cd /dev | ||
362 | X echo "Creating symbolic links to devfs devices" | ||
363 | X for i in `ls ip2` ; do | ||
364 | X if test ! -L ip2$i ; then | ||
365 | X # Remove it incase it wasn't a symlink (old device) | ||
366 | X rm -f ip2$i | ||
367 | X ln -s ip2/$i ip2$i | ||
368 | X fi | ||
369 | X done | ||
370 | X for i in `( cd tts ; ls F* )` ; do | ||
371 | X if test ! -L tty$i ; then | ||
372 | X # Remove it incase it wasn't a symlink (old device) | ||
373 | X rm -f tty$i | ||
374 | X ln -s tts/$i tty$i | ||
375 | X fi | ||
376 | X done | ||
377 | X for i in `( cd cua ; ls F* )` ; do | ||
378 | X DEVNUMBER=`expr $i : 'F\(.*\)'` | ||
379 | X if test ! -L cuf$DEVNUMBER ; then | ||
380 | X # Remove it incase it wasn't a symlink (old device) | ||
381 | X rm -f cuf$DEVNUMBER | ||
382 | X ln -s cua/$i cuf$DEVNUMBER | ||
383 | X fi | ||
384 | X done | ||
385 | X exit 0 | ||
386 | fi | ||
387 | X | ||
388 | if test ! -f /proc/tty/drivers | ||
389 | then | ||
390 | X echo "\ | ||
391 | Unable to check driver status. | ||
392 | Make sure proc file system is mounted." | ||
393 | X | ||
394 | X exit 255 | ||
395 | fi | ||
396 | X | ||
397 | if test ! -f /proc/tty/driver/ip2 | ||
398 | then | ||
399 | X echo "\ | ||
400 | Unable to locate ip2 proc file. | ||
401 | Attempting to load driver" | ||
402 | X | ||
403 | X if /sbin/insmod ip2 | ||
404 | X then | ||
405 | X if test ! -f /proc/tty/driver/ip2 | ||
406 | X then | ||
407 | X echo "\ | ||
408 | Unable to locate ip2 proc file after loading driver. | ||
409 | Driver initialization failure or driver version error. | ||
410 | " | ||
411 | X exit 255 | ||
412 | X fi | ||
413 | X else | ||
414 | X echo "Unable to load ip2 driver." | ||
415 | X exit 255 | ||
416 | X fi | ||
417 | fi | ||
418 | X | ||
419 | # Ok... So we got the driver loaded and we can locate the procfs files. | ||
420 | # Next we need our major numbers. | ||
421 | X | ||
422 | TTYMAJOR=`sed -e '/^ip2/!d' -e '/\/dev\/tt/!d' -e 's/.*tt[^ ]*[ ]*\([0-9]*\)[ ]*.*/\1/' < /proc/tty/drivers` | ||
423 | CUAMAJOR=`sed -e '/^ip2/!d' -e '/\/dev\/cu/!d' -e 's/.*cu[^ ]*[ ]*\([0-9]*\)[ ]*.*/\1/' < /proc/tty/drivers` | ||
424 | BRDMAJOR=`sed -e '/^Driver: /!d' -e 's/.*IMajor=\([0-9]*\)[ ]*.*/\1/' < /proc/tty/driver/ip2` | ||
425 | X | ||
426 | echo "\ | ||
427 | TTYMAJOR = $TTYMAJOR | ||
428 | CUAMAJOR = $CUAMAJOR | ||
429 | BRDMAJOR = $BRDMAJOR | ||
430 | " | ||
431 | X | ||
432 | # Ok... Now we should know our major numbers, if appropriate... | ||
433 | # Now we need our boards and start the device loops. | ||
434 | X | ||
435 | grep '^Board [0-9]:' /proc/tty/driver/ip2 | while read token number type alltherest | ||
436 | do | ||
437 | X # The test for blank "type" will catch the stats lead-in lines | ||
438 | X # if they exist in the file | ||
439 | X if test "$type" = "vacant" -o "$type" = "Vacant" -o "$type" = "" | ||
440 | X then | ||
441 | X continue | ||
442 | X fi | ||
443 | X | ||
444 | X BOARDNO=`expr "$number" : '\([0-9]\):'` | ||
445 | X PORTS=`expr "$alltherest" : '.*ports=\([0-9]*\)' | tr ',' ' '` | ||
446 | X MINORS=`expr "$alltherest" : '.*minors=\([0-9,]*\)' | tr ',' ' '` | ||
447 | X | ||
448 | X if test "$BOARDNO" = "" -o "$PORTS" = "" | ||
449 | X then | ||
450 | # This may be a bug. We should at least get this much information | ||
451 | X echo "Unable to process board line" | ||
452 | X continue | ||
453 | X fi | ||
454 | X | ||
455 | X if test "$MINORS" = "" | ||
456 | X then | ||
457 | # Silently skip this one. This board seems to have no boxes | ||
458 | X continue | ||
459 | X fi | ||
460 | X | ||
461 | X echo "board $BOARDNO: $type ports = $PORTS; port numbers = $MINORS" | ||
462 | X | ||
463 | X if test "$BRDMAJOR" != "" | ||
464 | X then | ||
465 | X BRDMINOR=`expr $BOARDNO \* 4` | ||
466 | X STSMINOR=`expr $BRDMINOR + 1` | ||
467 | X if test ! -c /dev/ip2ipl$BOARDNO ; then | ||
468 | X mknod /dev/ip2ipl$BOARDNO c $BRDMAJOR $BRDMINOR | ||
469 | X fi | ||
470 | X if test ! -c /dev/ip2stat$BOARDNO ; then | ||
471 | X mknod /dev/ip2stat$BOARDNO c $BRDMAJOR $STSMINOR | ||
472 | X fi | ||
473 | X fi | ||
474 | X | ||
475 | X if test "$TTYMAJOR" != "" | ||
476 | X then | ||
477 | X PORTNO=$BOARDBASE | ||
478 | X | ||
479 | X for PORTNO in $MINORS | ||
480 | X do | ||
481 | X if test ! -c /dev/ttyF$PORTNO ; then | ||
482 | X # We got the hardware but no device - make it | ||
483 | X mknod /dev/ttyF$PORTNO c $TTYMAJOR $PORTNO | ||
484 | X fi | ||
485 | X done | ||
486 | X fi | ||
487 | X | ||
488 | X if test "$CUAMAJOR" != "" | ||
489 | X then | ||
490 | X PORTNO=$BOARDBASE | ||
491 | X | ||
492 | X for PORTNO in $MINORS | ||
493 | X do | ||
494 | X if test ! -c /dev/cuf$PORTNO ; then | ||
495 | X # We got the hardware but no device - make it | ||
496 | X mknod /dev/cuf$PORTNO c $CUAMAJOR $PORTNO | ||
497 | X fi | ||
498 | X done | ||
499 | X fi | ||
500 | done | ||
501 | X | ||
502 | Xexit 0 | ||
503 | SHAR_EOF | ||
504 | (set 20 01 10 29 10 32 01 'ip2mkdev'; eval "$shar_touch") && | ||
505 | chmod 0755 'ip2mkdev' || | ||
506 | $echo 'restore of' 'ip2mkdev' 'failed' | ||
507 | if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ | ||
508 | && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then | ||
509 | md5sum -c << SHAR_EOF >/dev/null 2>&1 \ | ||
510 | || $echo 'ip2mkdev:' 'MD5 check failed' | ||
511 | cb5717134509f38bad9fde6b1f79b4a4 ip2mkdev | ||
512 | SHAR_EOF | ||
513 | else | ||
514 | shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'ip2mkdev'`" | ||
515 | test 4251 -eq "$shar_count" || | ||
516 | $echo 'ip2mkdev:' 'original size' '4251,' 'current size' "$shar_count!" | ||
517 | fi | ||
518 | fi | ||
519 | rm -fr _sh17581 | ||
520 | exit 0 | ||
diff --git a/Documentation/watchdog/src/watchdog-test.c b/Documentation/watchdog/src/watchdog-test.c index 73ff5cc93e05..3da822967ee0 100644 --- a/Documentation/watchdog/src/watchdog-test.c +++ b/Documentation/watchdog/src/watchdog-test.c | |||
@@ -31,7 +31,7 @@ static void keep_alive(void) | |||
31 | * or "-e" to enable the card. | 31 | * or "-e" to enable the card. |
32 | */ | 32 | */ |
33 | 33 | ||
34 | void term(int sig) | 34 | static void term(int sig) |
35 | { | 35 | { |
36 | close(fd); | 36 | close(fd); |
37 | fprintf(stderr, "Stopping watchdog ticks...\n"); | 37 | fprintf(stderr, "Stopping watchdog ticks...\n"); |