diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2013-02-21 10:16:55 -0500 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2013-02-22 04:07:30 -0500 |
commit | edb15d83a875a1f4b1576188844db5c330c3267d (patch) | |
tree | 74d54eab401b6ccf2a6ad4821227108a8d160f03 /Documentation | |
parent | 8bfc245f9ad7bd4e461179e4e7852ef99b8b6144 (diff) | |
parent | a0b1c42951dd06ec83cc1bc2c9788131d9fefcd8 (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into mips-for-linux-next
Conflicts:
include/linux/ssb/ssb_driver_gige.h
Also resolves a logical merge conflict in drivers/net/ethernet/broadcom/-
bgmac.c due to change of an API.
Diffstat (limited to 'Documentation')
92 files changed, 2209 insertions, 842 deletions
diff --git a/Documentation/ABI/testing/sysfs-bus-event_source-devices-events b/Documentation/ABI/testing/sysfs-bus-event_source-devices-events new file mode 100644 index 000000000000..0adeb524c0d4 --- /dev/null +++ b/Documentation/ABI/testing/sysfs-bus-event_source-devices-events | |||
@@ -0,0 +1,62 @@ | |||
1 | What: /sys/devices/cpu/events/ | ||
2 | /sys/devices/cpu/events/branch-misses | ||
3 | /sys/devices/cpu/events/cache-references | ||
4 | /sys/devices/cpu/events/cache-misses | ||
5 | /sys/devices/cpu/events/stalled-cycles-frontend | ||
6 | /sys/devices/cpu/events/branch-instructions | ||
7 | /sys/devices/cpu/events/stalled-cycles-backend | ||
8 | /sys/devices/cpu/events/instructions | ||
9 | /sys/devices/cpu/events/cpu-cycles | ||
10 | |||
11 | Date: 2013/01/08 | ||
12 | |||
13 | Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> | ||
14 | |||
15 | Description: Generic performance monitoring events | ||
16 | |||
17 | A collection of performance monitoring events that may be | ||
18 | supported by many/most CPUs. These events can be monitored | ||
19 | using the 'perf(1)' tool. | ||
20 | |||
21 | The contents of each file would look like: | ||
22 | |||
23 | event=0xNNNN | ||
24 | |||
25 | where 'N' is a hex digit and the number '0xNNNN' shows the | ||
26 | "raw code" for the perf event identified by the file's | ||
27 | "basename". | ||
28 | |||
29 | |||
30 | What: /sys/devices/cpu/events/PM_LD_MISS_L1 | ||
31 | /sys/devices/cpu/events/PM_LD_REF_L1 | ||
32 | /sys/devices/cpu/events/PM_CYC | ||
33 | /sys/devices/cpu/events/PM_BRU_FIN | ||
34 | /sys/devices/cpu/events/PM_GCT_NOSLOT_CYC | ||
35 | /sys/devices/cpu/events/PM_BRU_MPRED | ||
36 | /sys/devices/cpu/events/PM_INST_CMPL | ||
37 | /sys/devices/cpu/events/PM_CMPLU_STALL | ||
38 | |||
39 | Date: 2013/01/08 | ||
40 | |||
41 | Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> | ||
42 | Linux Powerpc mailing list <linuxppc-dev@ozlabs.org> | ||
43 | |||
44 | Description: POWER-systems specific performance monitoring events | ||
45 | |||
46 | A collection of performance monitoring events that may be | ||
47 | supported by the POWER CPU. These events can be monitored | ||
48 | using the 'perf(1)' tool. | ||
49 | |||
50 | These events may not be supported by other CPUs. | ||
51 | |||
52 | The contents of each file would look like: | ||
53 | |||
54 | event=0xNNNN | ||
55 | |||
56 | where 'N' is a hex digit and the number '0xNNNN' shows the | ||
57 | "raw code" for the perf event identified by the file's | ||
58 | "basename". | ||
59 | |||
60 | Further, multiple terms like 'event=0xNNNN' can be specified | ||
61 | and separated with comma. All available terms are defined in | ||
62 | the /sys/bus/event_source/devices/<dev>/format file. | ||
diff --git a/Documentation/ABI/testing/sysfs-devices-power_resources_D0 b/Documentation/ABI/testing/sysfs-devices-power_resources_D0 new file mode 100644 index 000000000000..73b77a6be196 --- /dev/null +++ b/Documentation/ABI/testing/sysfs-devices-power_resources_D0 | |||
@@ -0,0 +1,13 @@ | |||
1 | What: /sys/devices/.../power_resources_D0/ | ||
2 | Date: January 2013 | ||
3 | Contact: Rafael J. Wysocki <rafael.j.wysocki@intel.com> | ||
4 | Description: | ||
5 | The /sys/devices/.../power_resources_D0/ directory is only | ||
6 | present for device objects representing ACPI device nodes that | ||
7 | use ACPI power resources for power management. | ||
8 | |||
9 | If present, it contains symbolic links to device directories | ||
10 | representing ACPI power resources that need to be turned on for | ||
11 | the given device node to be in ACPI power state D0. The names | ||
12 | of the links are the same as the names of the directories they | ||
13 | point to. | ||
diff --git a/Documentation/ABI/testing/sysfs-devices-power_resources_D1 b/Documentation/ABI/testing/sysfs-devices-power_resources_D1 new file mode 100644 index 000000000000..30c20703fb8c --- /dev/null +++ b/Documentation/ABI/testing/sysfs-devices-power_resources_D1 | |||
@@ -0,0 +1,14 @@ | |||
1 | What: /sys/devices/.../power_resources_D1/ | ||
2 | Date: January 2013 | ||
3 | Contact: Rafael J. Wysocki <rafael.j.wysocki@intel.com> | ||
4 | Description: | ||
5 | The /sys/devices/.../power_resources_D1/ directory is only | ||
6 | present for device objects representing ACPI device nodes that | ||
7 | use ACPI power resources for power management and support ACPI | ||
8 | power state D1. | ||
9 | |||
10 | If present, it contains symbolic links to device directories | ||
11 | representing ACPI power resources that need to be turned on for | ||
12 | the given device node to be in ACPI power state D1. The names | ||
13 | of the links are the same as the names of the directories they | ||
14 | point to. | ||
diff --git a/Documentation/ABI/testing/sysfs-devices-power_resources_D2 b/Documentation/ABI/testing/sysfs-devices-power_resources_D2 new file mode 100644 index 000000000000..fd9d84b421e1 --- /dev/null +++ b/Documentation/ABI/testing/sysfs-devices-power_resources_D2 | |||
@@ -0,0 +1,14 @@ | |||
1 | What: /sys/devices/.../power_resources_D2/ | ||
2 | Date: January 2013 | ||
3 | Contact: Rafael J. Wysocki <rafael.j.wysocki@intel.com> | ||
4 | Description: | ||
5 | The /sys/devices/.../power_resources_D2/ directory is only | ||
6 | present for device objects representing ACPI device nodes that | ||
7 | use ACPI power resources for power management and support ACPI | ||
8 | power state D2. | ||
9 | |||
10 | If present, it contains symbolic links to device directories | ||
11 | representing ACPI power resources that need to be turned on for | ||
12 | the given device node to be in ACPI power state D2. The names | ||
13 | of the links are the same as the names of the directories they | ||
14 | point to. | ||
diff --git a/Documentation/ABI/testing/sysfs-devices-power_resources_D3hot b/Documentation/ABI/testing/sysfs-devices-power_resources_D3hot new file mode 100644 index 000000000000..3df32c20addf --- /dev/null +++ b/Documentation/ABI/testing/sysfs-devices-power_resources_D3hot | |||
@@ -0,0 +1,14 @@ | |||
1 | What: /sys/devices/.../power_resources_D3hot/ | ||
2 | Date: January 2013 | ||
3 | Contact: Rafael J. Wysocki <rafael.j.wysocki@intel.com> | ||
4 | Description: | ||
5 | The /sys/devices/.../power_resources_D3hot/ directory is only | ||
6 | present for device objects representing ACPI device nodes that | ||
7 | use ACPI power resources for power management and support ACPI | ||
8 | power state D3hot. | ||
9 | |||
10 | If present, it contains symbolic links to device directories | ||
11 | representing ACPI power resources that need to be turned on for | ||
12 | the given device node to be in ACPI power state D3hot. The | ||
13 | names of the links are the same as the names of the directories | ||
14 | they point to. | ||
diff --git a/Documentation/ABI/testing/sysfs-devices-power_state b/Documentation/ABI/testing/sysfs-devices-power_state new file mode 100644 index 000000000000..7ad9546748f0 --- /dev/null +++ b/Documentation/ABI/testing/sysfs-devices-power_state | |||
@@ -0,0 +1,20 @@ | |||
1 | What: /sys/devices/.../power_state | ||
2 | Date: January 2013 | ||
3 | Contact: Rafael J. Wysocki <rafael.j.wysocki@intel.com> | ||
4 | Description: | ||
5 | The /sys/devices/.../power_state attribute is only present for | ||
6 | device objects representing ACPI device nodes that provide power | ||
7 | management methods. | ||
8 | |||
9 | If present, it contains a string representing the current ACPI | ||
10 | power state of the given device node. Its possible values, | ||
11 | "D0", "D1", "D2", "D3hot", and "D3cold", reflect the power state | ||
12 | names defined by the ACPI specification (ACPI 4 and above). | ||
13 | |||
14 | If the device node uses shared ACPI power resources, this state | ||
15 | determines a list of power resources required not to be turned | ||
16 | off. However, some power resources needed by the device node in | ||
17 | higher-power (lower-number) states may also be ON because of | ||
18 | some other devices using them at the moment. | ||
19 | |||
20 | This attribute is read-only. | ||
diff --git a/Documentation/ABI/testing/sysfs-devices-real_power_state b/Documentation/ABI/testing/sysfs-devices-real_power_state new file mode 100644 index 000000000000..8b3527c82a7d --- /dev/null +++ b/Documentation/ABI/testing/sysfs-devices-real_power_state | |||
@@ -0,0 +1,23 @@ | |||
1 | What: /sys/devices/.../real_power_state | ||
2 | Date: January 2013 | ||
3 | Contact: Rafael J. Wysocki <rafael.j.wysocki@intel.com> | ||
4 | Description: | ||
5 | The /sys/devices/.../real_power_state attribute is only present | ||
6 | for device objects representing ACPI device nodes that provide | ||
7 | power management methods and use ACPI power resources for power | ||
8 | management. | ||
9 | |||
10 | If present, it contains a string representing the real ACPI | ||
11 | power state of the given device node as returned by the _PSC | ||
12 | control method or inferred from the configuration of power | ||
13 | resources. Its possible values, "D0", "D1", "D2", "D3hot", and | ||
14 | "D3cold", reflect the power state names defined by the ACPI | ||
15 | specification (ACPI 4 and above). | ||
16 | |||
17 | In some situations the value of this attribute may be different | ||
18 | from the value of the /sys/devices/.../power_state attribute for | ||
19 | the same device object. If that happens, some shared power | ||
20 | resources used by the device node are only ON because of some | ||
21 | other devices using them at the moment. | ||
22 | |||
23 | This attribute is read-only. | ||
diff --git a/Documentation/ABI/testing/sysfs-devices-resource_in_use b/Documentation/ABI/testing/sysfs-devices-resource_in_use new file mode 100644 index 000000000000..b4a3bc5922a3 --- /dev/null +++ b/Documentation/ABI/testing/sysfs-devices-resource_in_use | |||
@@ -0,0 +1,12 @@ | |||
1 | What: /sys/devices/.../resource_in_use | ||
2 | Date: January 2013 | ||
3 | Contact: Rafael J. Wysocki <rafael.j.wysocki@intel.com> | ||
4 | Description: | ||
5 | The /sys/devices/.../resource_in_use attribute is only present | ||
6 | for device objects representing ACPI power resources. | ||
7 | |||
8 | If present, it contains a number (0 or 1) representing the | ||
9 | current status of the given power resource (0 means that the | ||
10 | resource is not in use and therefore it has been turned off). | ||
11 | |||
12 | This attribute is read-only. | ||
diff --git a/Documentation/ABI/testing/sysfs-platform-ts5500 b/Documentation/ABI/testing/sysfs-platform-ts5500 new file mode 100644 index 000000000000..c88375a537a1 --- /dev/null +++ b/Documentation/ABI/testing/sysfs-platform-ts5500 | |||
@@ -0,0 +1,47 @@ | |||
1 | What: /sys/devices/platform/ts5500/adc | ||
2 | Date: January 2013 | ||
3 | KernelVersion: 3.7 | ||
4 | Contact: "Savoir-faire Linux Inc." <kernel@savoirfairelinux.com> | ||
5 | Description: | ||
6 | Indicates the presence of an A/D Converter. If it is present, | ||
7 | it will display "1", otherwise "0". | ||
8 | |||
9 | What: /sys/devices/platform/ts5500/ereset | ||
10 | Date: January 2013 | ||
11 | KernelVersion: 3.7 | ||
12 | Contact: "Savoir-faire Linux Inc." <kernel@savoirfairelinux.com> | ||
13 | Description: | ||
14 | Indicates the presence of an external reset. If it is present, | ||
15 | it will display "1", otherwise "0". | ||
16 | |||
17 | What: /sys/devices/platform/ts5500/id | ||
18 | Date: January 2013 | ||
19 | KernelVersion: 3.7 | ||
20 | Contact: "Savoir-faire Linux Inc." <kernel@savoirfairelinux.com> | ||
21 | Description: | ||
22 | Product ID of the TS board. TS-5500 ID is 0x60. | ||
23 | |||
24 | What: /sys/devices/platform/ts5500/jumpers | ||
25 | Date: January 2013 | ||
26 | KernelVersion: 3.7 | ||
27 | Contact: "Savoir-faire Linux Inc." <kernel@savoirfairelinux.com> | ||
28 | Description: | ||
29 | Bitfield showing the jumpers' state. If a jumper is present, | ||
30 | the corresponding bit is set. For instance, 0x0e means jumpers | ||
31 | 2, 3 and 4 are set. | ||
32 | |||
33 | What: /sys/devices/platform/ts5500/rs485 | ||
34 | Date: January 2013 | ||
35 | KernelVersion: 3.7 | ||
36 | Contact: "Savoir-faire Linux Inc." <kernel@savoirfairelinux.com> | ||
37 | Description: | ||
38 | Indicates the presence of the RS485 option. If it is present, | ||
39 | it will display "1", otherwise "0". | ||
40 | |||
41 | What: /sys/devices/platform/ts5500/sram | ||
42 | Date: January 2013 | ||
43 | KernelVersion: 3.7 | ||
44 | Contact: "Savoir-faire Linux Inc." <kernel@savoirfairelinux.com> | ||
45 | Description: | ||
46 | Indicates the presence of the SRAM option. If it is present, | ||
47 | it will display "1", otherwise "0". | ||
diff --git a/Documentation/DocBook/80211.tmpl b/Documentation/DocBook/80211.tmpl index 42e7f030cb16..284ced7a228f 100644 --- a/Documentation/DocBook/80211.tmpl +++ b/Documentation/DocBook/80211.tmpl | |||
@@ -107,8 +107,8 @@ | |||
107 | !Finclude/net/cfg80211.h key_params | 107 | !Finclude/net/cfg80211.h key_params |
108 | !Finclude/net/cfg80211.h survey_info_flags | 108 | !Finclude/net/cfg80211.h survey_info_flags |
109 | !Finclude/net/cfg80211.h survey_info | 109 | !Finclude/net/cfg80211.h survey_info |
110 | !Finclude/net/cfg80211.h beacon_parameters | 110 | !Finclude/net/cfg80211.h cfg80211_beacon_data |
111 | !Finclude/net/cfg80211.h plink_actions | 111 | !Finclude/net/cfg80211.h cfg80211_ap_settings |
112 | !Finclude/net/cfg80211.h station_parameters | 112 | !Finclude/net/cfg80211.h station_parameters |
113 | !Finclude/net/cfg80211.h station_info_flags | 113 | !Finclude/net/cfg80211.h station_info_flags |
114 | !Finclude/net/cfg80211.h rate_info_flags | 114 | !Finclude/net/cfg80211.h rate_info_flags |
diff --git a/Documentation/PCI/MSI-HOWTO.txt b/Documentation/PCI/MSI-HOWTO.txt index 53e6fca146d7..a09178086c30 100644 --- a/Documentation/PCI/MSI-HOWTO.txt +++ b/Documentation/PCI/MSI-HOWTO.txt | |||
@@ -127,15 +127,42 @@ on the number of vectors that can be allocated; pci_enable_msi_block() | |||
127 | returns as soon as it finds any constraint that doesn't allow the | 127 | returns as soon as it finds any constraint that doesn't allow the |
128 | call to succeed. | 128 | call to succeed. |
129 | 129 | ||
130 | 4.2.3 pci_disable_msi | 130 | 4.2.3 pci_enable_msi_block_auto |
131 | |||
132 | int pci_enable_msi_block_auto(struct pci_dev *dev, unsigned int *count) | ||
133 | |||
134 | This variation on pci_enable_msi() call allows a device driver to request | ||
135 | the maximum possible number of MSIs. The MSI specification only allows | ||
136 | interrupts to be allocated in powers of two, up to a maximum of 2^5 (32). | ||
137 | |||
138 | If this function returns a positive number, it indicates that it has | ||
139 | succeeded and the returned value is the number of allocated interrupts. In | ||
140 | this case, the function enables MSI on this device and updates dev->irq to | ||
141 | be the lowest of the new interrupts assigned to it. The other interrupts | ||
142 | assigned to the device are in the range dev->irq to dev->irq + returned | ||
143 | value - 1. | ||
144 | |||
145 | If this function returns a negative number, it indicates an error and | ||
146 | the driver should not attempt to request any more MSI interrupts for | ||
147 | this device. | ||
148 | |||
149 | If the device driver needs to know the number of interrupts the device | ||
150 | supports it can pass the pointer count where that number is stored. The | ||
151 | device driver must decide what action to take if pci_enable_msi_block_auto() | ||
152 | succeeds, but returns a value less than the number of interrupts supported. | ||
153 | If the device driver does not need to know the number of interrupts | ||
154 | supported, it can set the pointer count to NULL. | ||
155 | |||
156 | 4.2.4 pci_disable_msi | ||
131 | 157 | ||
132 | void pci_disable_msi(struct pci_dev *dev) | 158 | void pci_disable_msi(struct pci_dev *dev) |
133 | 159 | ||
134 | This function should be used to undo the effect of pci_enable_msi() or | 160 | This function should be used to undo the effect of pci_enable_msi() or |
135 | pci_enable_msi_block(). Calling it restores dev->irq to the pin-based | 161 | pci_enable_msi_block() or pci_enable_msi_block_auto(). Calling it restores |
136 | interrupt number and frees the previously allocated message signaled | 162 | dev->irq to the pin-based interrupt number and frees the previously |
137 | interrupt(s). The interrupt may subsequently be assigned to another | 163 | allocated message signaled interrupt(s). The interrupt may subsequently be |
138 | device, so drivers should not cache the value of dev->irq. | 164 | assigned to another device, so drivers should not cache the value of |
165 | dev->irq. | ||
139 | 166 | ||
140 | Before calling this function, a device driver must always call free_irq() | 167 | Before calling this function, a device driver must always call free_irq() |
141 | on any interrupt for which it previously called request_irq(). | 168 | on any interrupt for which it previously called request_irq(). |
diff --git a/Documentation/acpi/enumeration.txt b/Documentation/acpi/enumeration.txt index 54469bc81b1c..94a656131885 100644 --- a/Documentation/acpi/enumeration.txt +++ b/Documentation/acpi/enumeration.txt | |||
@@ -63,8 +63,8 @@ from ACPI tables. | |||
63 | Currently the kernel is not able to automatically determine from which ACPI | 63 | Currently the kernel is not able to automatically determine from which ACPI |
64 | device it should make the corresponding platform device so we need to add | 64 | device it should make the corresponding platform device so we need to add |
65 | the ACPI device explicitly to acpi_platform_device_ids list defined in | 65 | the ACPI device explicitly to acpi_platform_device_ids list defined in |
66 | drivers/acpi/scan.c. This limitation is only for the platform devices, SPI | 66 | drivers/acpi/acpi_platform.c. This limitation is only for the platform |
67 | and I2C devices are created automatically as described below. | 67 | devices, SPI and I2C devices are created automatically as described below. |
68 | 68 | ||
69 | SPI serial bus support | 69 | SPI serial bus support |
70 | ~~~~~~~~~~~~~~~~~~~~~~ | 70 | ~~~~~~~~~~~~~~~~~~~~~~ |
diff --git a/Documentation/acpi/scan_handlers.txt b/Documentation/acpi/scan_handlers.txt new file mode 100644 index 000000000000..3246ccf15992 --- /dev/null +++ b/Documentation/acpi/scan_handlers.txt | |||
@@ -0,0 +1,77 @@ | |||
1 | ACPI Scan Handlers | ||
2 | |||
3 | Copyright (C) 2012, Intel Corporation | ||
4 | Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com> | ||
5 | |||
6 | During system initialization and ACPI-based device hot-add, the ACPI namespace | ||
7 | is scanned in search of device objects that generally represent various pieces | ||
8 | of hardware. This causes a struct acpi_device object to be created and | ||
9 | registered with the driver core for every device object in the ACPI namespace | ||
10 | and the hierarchy of those struct acpi_device objects reflects the namespace | ||
11 | layout (i.e. parent device objects in the namespace are represented by parent | ||
12 | struct acpi_device objects and analogously for their children). Those struct | ||
13 | acpi_device objects are referred to as "device nodes" in what follows, but they | ||
14 | should not be confused with struct device_node objects used by the Device Trees | ||
15 | parsing code (although their role is analogous to the role of those objects). | ||
16 | |||
17 | During ACPI-based device hot-remove device nodes representing pieces of hardware | ||
18 | being removed are unregistered and deleted. | ||
19 | |||
20 | The core ACPI namespace scanning code in drivers/acpi/scan.c carries out basic | ||
21 | initialization of device nodes, such as retrieving common configuration | ||
22 | information from the device objects represented by them and populating them with | ||
23 | appropriate data, but some of them require additional handling after they have | ||
24 | been registered. For example, if the given device node represents a PCI host | ||
25 | bridge, its registration should cause the PCI bus under that bridge to be | ||
26 | enumerated and PCI devices on that bus to be registered with the driver core. | ||
27 | Similarly, if the device node represents a PCI interrupt link, it is necessary | ||
28 | to configure that link so that the kernel can use it. | ||
29 | |||
30 | Those additional configuration tasks usually depend on the type of the hardware | ||
31 | component represented by the given device node which can be determined on the | ||
32 | basis of the device node's hardware ID (HID). They are performed by objects | ||
33 | called ACPI scan handlers represented by the following structure: | ||
34 | |||
35 | struct acpi_scan_handler { | ||
36 | const struct acpi_device_id *ids; | ||
37 | struct list_head list_node; | ||
38 | int (*attach)(struct acpi_device *dev, const struct acpi_device_id *id); | ||
39 | void (*detach)(struct acpi_device *dev); | ||
40 | }; | ||
41 | |||
42 | where ids is the list of IDs of device nodes the given handler is supposed to | ||
43 | take care of, list_node is the hook to the global list of ACPI scan handlers | ||
44 | maintained by the ACPI core and the .attach() and .detach() callbacks are | ||
45 | executed, respectively, after registration of new device nodes and before | ||
46 | unregistration of device nodes the handler attached to previously. | ||
47 | |||
48 | The namespace scanning function, acpi_bus_scan(), first registers all of the | ||
49 | device nodes in the given namespace scope with the driver core. Then, it tries | ||
50 | to match a scan handler against each of them using the ids arrays of the | ||
51 | available scan handlers. If a matching scan handler is found, its .attach() | ||
52 | callback is executed for the given device node. If that callback returns 1, | ||
53 | that means that the handler has claimed the device node and is now responsible | ||
54 | for carrying out any additional configuration tasks related to it. It also will | ||
55 | be responsible for preparing the device node for unregistration in that case. | ||
56 | The device node's handler field is then populated with the address of the scan | ||
57 | handler that has claimed it. | ||
58 | |||
59 | If the .attach() callback returns 0, it means that the device node is not | ||
60 | interesting to the given scan handler and may be matched against the next scan | ||
61 | handler in the list. If it returns a (negative) error code, that means that | ||
62 | the namespace scan should be terminated due to a serious error. The error code | ||
63 | returned should then reflect the type of the error. | ||
64 | |||
65 | The namespace trimming function, acpi_bus_trim(), first executes .detach() | ||
66 | callbacks from the scan handlers of all device nodes in the given namespace | ||
67 | scope (if they have scan handlers). Next, it unregisters all of the device | ||
68 | nodes in that scope. | ||
69 | |||
70 | ACPI scan handlers can be added to the list maintained by the ACPI core with the | ||
71 | help of the acpi_scan_add_handler() function taking a pointer to the new scan | ||
72 | handler as an argument. The order in which scan handlers are added to the list | ||
73 | is the order in which they are matched against device nodes during namespace | ||
74 | scans. | ||
75 | |||
76 | All scan handles must be added to the list before acpi_bus_scan() is run for the | ||
77 | first time and they cannot be removed from it. | ||
diff --git a/Documentation/arm64/memory.txt b/Documentation/arm64/memory.txt index d758702fc03c..5f583af0a6e1 100644 --- a/Documentation/arm64/memory.txt +++ b/Documentation/arm64/memory.txt | |||
@@ -35,6 +35,8 @@ ffffffbc00000000 ffffffbdffffffff 8GB vmemmap | |||
35 | 35 | ||
36 | ffffffbe00000000 ffffffbffbbfffff ~8GB [guard, future vmmemap] | 36 | ffffffbe00000000 ffffffbffbbfffff ~8GB [guard, future vmmemap] |
37 | 37 | ||
38 | ffffffbffbc00000 ffffffbffbdfffff 2MB earlyprintk device | ||
39 | |||
38 | ffffffbffbe00000 ffffffbffbe0ffff 64KB PCI I/O space | 40 | ffffffbffbe00000 ffffffbffbe0ffff 64KB PCI I/O space |
39 | 41 | ||
40 | ffffffbbffff0000 ffffffbcffffffff ~2MB [guard] | 42 | ffffffbbffff0000 ffffffbcffffffff ~2MB [guard] |
diff --git a/Documentation/atomic_ops.txt b/Documentation/atomic_ops.txt index 27f2b21a9d5c..d9ca5be9b471 100644 --- a/Documentation/atomic_ops.txt +++ b/Documentation/atomic_ops.txt | |||
@@ -253,6 +253,8 @@ This performs an atomic exchange operation on the atomic variable v, setting | |||
253 | the given new value. It returns the old value that the atomic variable v had | 253 | the given new value. It returns the old value that the atomic variable v had |
254 | just before the operation. | 254 | just before the operation. |
255 | 255 | ||
256 | atomic_xchg requires explicit memory barriers around the operation. | ||
257 | |||
256 | int atomic_cmpxchg(atomic_t *v, int old, int new); | 258 | int atomic_cmpxchg(atomic_t *v, int old, int new); |
257 | 259 | ||
258 | This performs an atomic compare exchange operation on the atomic value v, | 260 | This performs an atomic compare exchange operation on the atomic value v, |
diff --git a/Documentation/cgroups/00-INDEX b/Documentation/cgroups/00-INDEX index f78b90a35ad0..f5635a09c3f6 100644 --- a/Documentation/cgroups/00-INDEX +++ b/Documentation/cgroups/00-INDEX | |||
@@ -4,8 +4,6 @@ blkio-controller.txt | |||
4 | - Description for Block IO Controller, implementation and usage details. | 4 | - Description for Block IO Controller, implementation and usage details. |
5 | cgroups.txt | 5 | cgroups.txt |
6 | - Control Groups definition, implementation details, examples and API. | 6 | - Control Groups definition, implementation details, examples and API. |
7 | cgroup_event_listener.c | ||
8 | - A user program for cgroup listener. | ||
9 | cpuacct.txt | 7 | cpuacct.txt |
10 | - CPU Accounting Controller; account CPU usage for groups of tasks. | 8 | - CPU Accounting Controller; account CPU usage for groups of tasks. |
11 | cpusets.txt | 9 | cpusets.txt |
diff --git a/Documentation/cgroups/cgroup_event_listener.c b/Documentation/cgroups/cgroup_event_listener.c deleted file mode 100644 index 3e082f96dc12..000000000000 --- a/Documentation/cgroups/cgroup_event_listener.c +++ /dev/null | |||
@@ -1,110 +0,0 @@ | |||
1 | /* | ||
2 | * cgroup_event_listener.c - Simple listener of cgroup events | ||
3 | * | ||
4 | * Copyright (C) Kirill A. Shutemov <kirill@shutemov.name> | ||
5 | */ | ||
6 | |||
7 | #include <assert.h> | ||
8 | #include <errno.h> | ||
9 | #include <fcntl.h> | ||
10 | #include <libgen.h> | ||
11 | #include <limits.h> | ||
12 | #include <stdio.h> | ||
13 | #include <string.h> | ||
14 | #include <unistd.h> | ||
15 | |||
16 | #include <sys/eventfd.h> | ||
17 | |||
18 | #define USAGE_STR "Usage: cgroup_event_listener <path-to-control-file> <args>\n" | ||
19 | |||
20 | int main(int argc, char **argv) | ||
21 | { | ||
22 | int efd = -1; | ||
23 | int cfd = -1; | ||
24 | int event_control = -1; | ||
25 | char event_control_path[PATH_MAX]; | ||
26 | char line[LINE_MAX]; | ||
27 | int ret; | ||
28 | |||
29 | if (argc != 3) { | ||
30 | fputs(USAGE_STR, stderr); | ||
31 | return 1; | ||
32 | } | ||
33 | |||
34 | cfd = open(argv[1], O_RDONLY); | ||
35 | if (cfd == -1) { | ||
36 | fprintf(stderr, "Cannot open %s: %s\n", argv[1], | ||
37 | strerror(errno)); | ||
38 | goto out; | ||
39 | } | ||
40 | |||
41 | ret = snprintf(event_control_path, PATH_MAX, "%s/cgroup.event_control", | ||
42 | dirname(argv[1])); | ||
43 | if (ret >= PATH_MAX) { | ||
44 | fputs("Path to cgroup.event_control is too long\n", stderr); | ||
45 | goto out; | ||
46 | } | ||
47 | |||
48 | event_control = open(event_control_path, O_WRONLY); | ||
49 | if (event_control == -1) { | ||
50 | fprintf(stderr, "Cannot open %s: %s\n", event_control_path, | ||
51 | strerror(errno)); | ||
52 | goto out; | ||
53 | } | ||
54 | |||
55 | efd = eventfd(0, 0); | ||
56 | if (efd == -1) { | ||
57 | perror("eventfd() failed"); | ||
58 | goto out; | ||
59 | } | ||
60 | |||
61 | ret = snprintf(line, LINE_MAX, "%d %d %s", efd, cfd, argv[2]); | ||
62 | if (ret >= LINE_MAX) { | ||
63 | fputs("Arguments string is too long\n", stderr); | ||
64 | goto out; | ||
65 | } | ||
66 | |||
67 | ret = write(event_control, line, strlen(line) + 1); | ||
68 | if (ret == -1) { | ||
69 | perror("Cannot write to cgroup.event_control"); | ||
70 | goto out; | ||
71 | } | ||
72 | |||
73 | while (1) { | ||
74 | uint64_t result; | ||
75 | |||
76 | ret = read(efd, &result, sizeof(result)); | ||
77 | if (ret == -1) { | ||
78 | if (errno == EINTR) | ||
79 | continue; | ||
80 | perror("Cannot read from eventfd"); | ||
81 | break; | ||
82 | } | ||
83 | assert(ret == sizeof(result)); | ||
84 | |||
85 | ret = access(event_control_path, W_OK); | ||
86 | if ((ret == -1) && (errno == ENOENT)) { | ||
87 | puts("The cgroup seems to have removed."); | ||
88 | ret = 0; | ||
89 | break; | ||
90 | } | ||
91 | |||
92 | if (ret == -1) { | ||
93 | perror("cgroup.event_control " | ||
94 | "is not accessible any more"); | ||
95 | break; | ||
96 | } | ||
97 | |||
98 | printf("%s %s: crossed\n", argv[1], argv[2]); | ||
99 | } | ||
100 | |||
101 | out: | ||
102 | if (efd >= 0) | ||
103 | close(efd); | ||
104 | if (event_control >= 0) | ||
105 | close(event_control); | ||
106 | if (cfd >= 0) | ||
107 | close(cfd); | ||
108 | |||
109 | return (ret != 0); | ||
110 | } | ||
diff --git a/Documentation/cgroups/memcg_test.txt b/Documentation/cgroups/memcg_test.txt index fc8fa97a09ac..ce94a83a7d9a 100644 --- a/Documentation/cgroups/memcg_test.txt +++ b/Documentation/cgroups/memcg_test.txt | |||
@@ -399,8 +399,7 @@ Under below explanation, we assume CONFIG_MEM_RES_CTRL_SWAP=y. | |||
399 | 399 | ||
400 | 9.10 Memory thresholds | 400 | 9.10 Memory thresholds |
401 | Memory controller implements memory thresholds using cgroups notification | 401 | Memory controller implements memory thresholds using cgroups notification |
402 | API. You can use Documentation/cgroups/cgroup_event_listener.c to test | 402 | API. You can use tools/cgroup/cgroup_event_listener.c to test it. |
403 | it. | ||
404 | 403 | ||
405 | (Shell-A) Create cgroup and run event listener | 404 | (Shell-A) Create cgroup and run event listener |
406 | # mkdir /cgroup/A | 405 | # mkdir /cgroup/A |
diff --git a/Documentation/cpu-freq/cpu-drivers.txt b/Documentation/cpu-freq/cpu-drivers.txt index c436096351f8..72f70b16d299 100644 --- a/Documentation/cpu-freq/cpu-drivers.txt +++ b/Documentation/cpu-freq/cpu-drivers.txt | |||
@@ -111,6 +111,12 @@ policy->governor must contain the "default policy" for | |||
111 | For setting some of these values, the frequency table helpers might be | 111 | For setting some of these values, the frequency table helpers might be |
112 | helpful. See the section 2 for more information on them. | 112 | helpful. See the section 2 for more information on them. |
113 | 113 | ||
114 | SMP systems normally have same clock source for a group of cpus. For these the | ||
115 | .init() would be called only once for the first online cpu. Here the .init() | ||
116 | routine must initialize policy->cpus with mask of all possible cpus (Online + | ||
117 | Offline) that share the clock. Then the core would copy this mask onto | ||
118 | policy->related_cpus and will reset policy->cpus to carry only online cpus. | ||
119 | |||
114 | 120 | ||
115 | 1.3 verify | 121 | 1.3 verify |
116 | ------------ | 122 | ------------ |
diff --git a/Documentation/cpu-freq/user-guide.txt b/Documentation/cpu-freq/user-guide.txt index 04f6b32993e6..ff2f28332cc4 100644 --- a/Documentation/cpu-freq/user-guide.txt +++ b/Documentation/cpu-freq/user-guide.txt | |||
@@ -190,11 +190,11 @@ scaling_max_freq show the current "policy limits" (in | |||
190 | first set scaling_max_freq, then | 190 | first set scaling_max_freq, then |
191 | scaling_min_freq. | 191 | scaling_min_freq. |
192 | 192 | ||
193 | affected_cpus : List of CPUs that require software coordination | 193 | affected_cpus : List of Online CPUs that require software |
194 | of frequency. | 194 | coordination of frequency. |
195 | 195 | ||
196 | related_cpus : List of CPUs that need some sort of frequency | 196 | related_cpus : List of Online + Offline CPUs that need software |
197 | coordination, whether software or hardware. | 197 | coordination of frequency. |
198 | 198 | ||
199 | scaling_driver : Hardware driver for cpufreq. | 199 | scaling_driver : Hardware driver for cpufreq. |
200 | 200 | ||
diff --git a/Documentation/devicetree/bindings/arm/atmel-aic.txt b/Documentation/devicetree/bindings/arm/atmel-aic.txt index 19078bf5cca8..ad031211b5b8 100644 --- a/Documentation/devicetree/bindings/arm/atmel-aic.txt +++ b/Documentation/devicetree/bindings/arm/atmel-aic.txt | |||
@@ -4,7 +4,7 @@ Required properties: | |||
4 | - compatible: Should be "atmel,<chip>-aic" | 4 | - compatible: Should be "atmel,<chip>-aic" |
5 | - interrupt-controller: Identifies the node as an interrupt controller. | 5 | - interrupt-controller: Identifies the node as an interrupt controller. |
6 | - interrupt-parent: For single AIC system, it is an empty property. | 6 | - interrupt-parent: For single AIC system, it is an empty property. |
7 | - #interrupt-cells: The number of cells to define the interrupts. It sould be 3. | 7 | - #interrupt-cells: The number of cells to define the interrupts. It should be 3. |
8 | The first cell is the IRQ number (aka "Peripheral IDentifier" on datasheet). | 8 | The first cell is the IRQ number (aka "Peripheral IDentifier" on datasheet). |
9 | The second cell is used to specify flags: | 9 | The second cell is used to specify flags: |
10 | bits[3:0] trigger type and level flags: | 10 | bits[3:0] trigger type and level flags: |
diff --git a/Documentation/devicetree/bindings/arm/gic.txt b/Documentation/devicetree/bindings/arm/gic.txt index 62eb8df1e08d..3dfb0c0384f5 100644 --- a/Documentation/devicetree/bindings/arm/gic.txt +++ b/Documentation/devicetree/bindings/arm/gic.txt | |||
@@ -42,7 +42,7 @@ Main node required properties: | |||
42 | 42 | ||
43 | Optional | 43 | Optional |
44 | - interrupts : Interrupt source of the parent interrupt controller on | 44 | - interrupts : Interrupt source of the parent interrupt controller on |
45 | secondary GICs, or VGIC maintainance interrupt on primary GIC (see | 45 | secondary GICs, or VGIC maintenance interrupt on primary GIC (see |
46 | below). | 46 | below). |
47 | 47 | ||
48 | - cpu-offset : per-cpu offset within the distributor and cpu interface | 48 | - cpu-offset : per-cpu offset within the distributor and cpu interface |
@@ -74,7 +74,7 @@ Required properties: | |||
74 | virtual interface control register base and size. The 2nd additional | 74 | virtual interface control register base and size. The 2nd additional |
75 | region is the GIC virtual cpu interface register base and size. | 75 | region is the GIC virtual cpu interface register base and size. |
76 | 76 | ||
77 | - interrupts : VGIC maintainance interrupt. | 77 | - interrupts : VGIC maintenance interrupt. |
78 | 78 | ||
79 | Example: | 79 | Example: |
80 | 80 | ||
diff --git a/Documentation/devicetree/bindings/arm/kirkwood.txt b/Documentation/devicetree/bindings/arm/kirkwood.txt new file mode 100644 index 000000000000..98cce9a653eb --- /dev/null +++ b/Documentation/devicetree/bindings/arm/kirkwood.txt | |||
@@ -0,0 +1,27 @@ | |||
1 | Marvell Kirkwood Platforms Device Tree Bindings | ||
2 | ----------------------------------------------- | ||
3 | |||
4 | Boards with a SoC of the Marvell Kirkwood | ||
5 | shall have the following property: | ||
6 | |||
7 | Required root node property: | ||
8 | |||
9 | compatible: must contain "marvell,kirkwood"; | ||
10 | |||
11 | In order to support the kirkwood cpufreq driver, there must be a node | ||
12 | cpus/cpu@0 with three clocks, "cpu_clk", "ddrclk" and "powersave", | ||
13 | where the "powersave" clock is a gating clock used to switch the CPU | ||
14 | between the "cpu_clk" and the "ddrclk". | ||
15 | |||
16 | Example: | ||
17 | |||
18 | cpus { | ||
19 | #address-cells = <1>; | ||
20 | #size-cells = <0>; | ||
21 | |||
22 | cpu@0 { | ||
23 | device_type = "cpu"; | ||
24 | compatible = "marvell,sheeva-88SV131"; | ||
25 | clocks = <&core_clk 1>, <&core_clk 3>, <&gate_clk 11>; | ||
26 | clock-names = "cpu_clk", "ddrclk", "powersave"; | ||
27 | }; | ||
diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt b/Documentation/devicetree/bindings/arm/omap/omap.txt index d0051a750587..f8288ea1b530 100644 --- a/Documentation/devicetree/bindings/arm/omap/omap.txt +++ b/Documentation/devicetree/bindings/arm/omap/omap.txt | |||
@@ -39,16 +39,16 @@ Boards: | |||
39 | - OMAP3 Tobi with Overo : Commercial expansion board with daughter board | 39 | - OMAP3 Tobi with Overo : Commercial expansion board with daughter board |
40 | compatible = "ti,omap3-tobi", "ti,omap3-overo", "ti,omap3" | 40 | compatible = "ti,omap3-tobi", "ti,omap3-overo", "ti,omap3" |
41 | 41 | ||
42 | - OMAP4 SDP : Software Developement Board | 42 | - OMAP4 SDP : Software Development Board |
43 | compatible = "ti,omap4-sdp", "ti,omap4430" | 43 | compatible = "ti,omap4-sdp", "ti,omap4430" |
44 | 44 | ||
45 | - OMAP4 PandaBoard : Low cost community board | 45 | - OMAP4 PandaBoard : Low cost community board |
46 | compatible = "ti,omap4-panda", "ti,omap4430" | 46 | compatible = "ti,omap4-panda", "ti,omap4430" |
47 | 47 | ||
48 | - OMAP3 EVM : Software Developement Board for OMAP35x, AM/DM37x | 48 | - OMAP3 EVM : Software Development Board for OMAP35x, AM/DM37x |
49 | compatible = "ti,omap3-evm", "ti,omap3" | 49 | compatible = "ti,omap3-evm", "ti,omap3" |
50 | 50 | ||
51 | - AM335X EVM : Software Developement Board for AM335x | 51 | - AM335X EVM : Software Development Board for AM335x |
52 | compatible = "ti,am335x-evm", "ti,am33xx", "ti,omap3" | 52 | compatible = "ti,am335x-evm", "ti,am33xx", "ti,omap3" |
53 | 53 | ||
54 | - AM335X Bone : Low cost community board | 54 | - AM335X Bone : Low cost community board |
diff --git a/Documentation/devicetree/bindings/arm/psci.txt b/Documentation/devicetree/bindings/arm/psci.txt new file mode 100644 index 000000000000..433afe9cb590 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/psci.txt | |||
@@ -0,0 +1,55 @@ | |||
1 | * Power State Coordination Interface (PSCI) | ||
2 | |||
3 | Firmware implementing the PSCI functions described in ARM document number | ||
4 | ARM DEN 0022A ("Power State Coordination Interface System Software on ARM | ||
5 | processors") can be used by Linux to initiate various CPU-centric power | ||
6 | operations. | ||
7 | |||
8 | Issue A of the specification describes functions for CPU suspend, hotplug | ||
9 | and migration of secure software. | ||
10 | |||
11 | Functions are invoked by trapping to the privilege level of the PSCI | ||
12 | firmware (specified as part of the binding below) and passing arguments | ||
13 | in a manner similar to that specified by AAPCS: | ||
14 | |||
15 | r0 => 32-bit Function ID / return value | ||
16 | {r1 - r3} => Parameters | ||
17 | |||
18 | Note that the immediate field of the trapping instruction must be set | ||
19 | to #0. | ||
20 | |||
21 | |||
22 | Main node required properties: | ||
23 | |||
24 | - compatible : Must be "arm,psci" | ||
25 | |||
26 | - method : The method of calling the PSCI firmware. Permitted | ||
27 | values are: | ||
28 | |||
29 | "smc" : SMC #0, with the register assignments specified | ||
30 | in this binding. | ||
31 | |||
32 | "hvc" : HVC #0, with the register assignments specified | ||
33 | in this binding. | ||
34 | |||
35 | Main node optional properties: | ||
36 | |||
37 | - cpu_suspend : Function ID for CPU_SUSPEND operation | ||
38 | |||
39 | - cpu_off : Function ID for CPU_OFF operation | ||
40 | |||
41 | - cpu_on : Function ID for CPU_ON operation | ||
42 | |||
43 | - migrate : Function ID for MIGRATE operation | ||
44 | |||
45 | |||
46 | Example: | ||
47 | |||
48 | psci { | ||
49 | compatible = "arm,psci"; | ||
50 | method = "smc"; | ||
51 | cpu_suspend = <0x95c10000>; | ||
52 | cpu_off = <0x95c10001>; | ||
53 | cpu_on = <0x95c10002>; | ||
54 | migrate = <0x95c10003>; | ||
55 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/prima2-clock.txt b/Documentation/devicetree/bindings/clock/prima2-clock.txt new file mode 100644 index 000000000000..5016979c0f78 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/prima2-clock.txt | |||
@@ -0,0 +1,73 @@ | |||
1 | * Clock bindings for CSR SiRFprimaII | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: Should be "sirf,prima2-clkc" | ||
5 | - reg: Address and length of the register set | ||
6 | - interrupts: Should contain clock controller interrupt | ||
7 | - #clock-cells: Should be <1> | ||
8 | |||
9 | The clock consumer should specify the desired clock by having the clock | ||
10 | ID in its "clocks" phandle cell. The following is a full list of prima2 | ||
11 | clocks and IDs. | ||
12 | |||
13 | Clock ID | ||
14 | --------------------------- | ||
15 | rtc 0 | ||
16 | osc 1 | ||
17 | pll1 2 | ||
18 | pll2 3 | ||
19 | pll3 4 | ||
20 | mem 5 | ||
21 | sys 6 | ||
22 | security 7 | ||
23 | dsp 8 | ||
24 | gps 9 | ||
25 | mf 10 | ||
26 | io 11 | ||
27 | cpu 12 | ||
28 | uart0 13 | ||
29 | uart1 14 | ||
30 | uart2 15 | ||
31 | tsc 16 | ||
32 | i2c0 17 | ||
33 | i2c1 18 | ||
34 | spi0 19 | ||
35 | spi1 20 | ||
36 | pwmc 21 | ||
37 | efuse 22 | ||
38 | pulse 23 | ||
39 | dmac0 24 | ||
40 | dmac1 25 | ||
41 | nand 26 | ||
42 | audio 27 | ||
43 | usp0 28 | ||
44 | usp1 29 | ||
45 | usp2 30 | ||
46 | vip 31 | ||
47 | gfx 32 | ||
48 | mm 33 | ||
49 | lcd 34 | ||
50 | vpp 35 | ||
51 | mmc01 36 | ||
52 | mmc23 37 | ||
53 | mmc45 38 | ||
54 | usbpll 39 | ||
55 | usb0 40 | ||
56 | usb1 41 | ||
57 | |||
58 | Examples: | ||
59 | |||
60 | clks: clock-controller@88000000 { | ||
61 | compatible = "sirf,prima2-clkc"; | ||
62 | reg = <0x88000000 0x1000>; | ||
63 | interrupts = <3>; | ||
64 | #clock-cells = <1>; | ||
65 | }; | ||
66 | |||
67 | i2c0: i2c@b00e0000 { | ||
68 | cell-index = <0>; | ||
69 | compatible = "sirf,prima2-i2c"; | ||
70 | reg = <0xb00e0000 0x10000>; | ||
71 | interrupts = <24>; | ||
72 | clocks = <&clks 17>; | ||
73 | }; | ||
diff --git a/Documentation/devicetree/bindings/drm/exynos/g2d.txt b/Documentation/devicetree/bindings/drm/exynos/g2d.txt new file mode 100644 index 000000000000..1eb124d35a99 --- /dev/null +++ b/Documentation/devicetree/bindings/drm/exynos/g2d.txt | |||
@@ -0,0 +1,22 @@ | |||
1 | Samsung 2D Graphic Accelerator using DRM frame work | ||
2 | |||
3 | Samsung FIMG2D is a graphics 2D accelerator which supports Bit Block Transfer. | ||
4 | We set the drawing-context registers for configuring rendering parameters and | ||
5 | then start rendering. | ||
6 | This driver is for SOCs which contain G2D IPs with version 4.1. | ||
7 | |||
8 | Required properties: | ||
9 | -compatible: | ||
10 | should be "samsung,exynos-g2d-41". | ||
11 | -reg: | ||
12 | physical base address of the controller and length | ||
13 | of memory mapped region. | ||
14 | -interrupts: | ||
15 | interrupt combiner values. | ||
16 | |||
17 | Example: | ||
18 | g2d { | ||
19 | compatible = "samsung,exynos-g2d-41"; | ||
20 | reg = <0x10850000 0x1000>; | ||
21 | interrupts = <0 91 0>; | ||
22 | }; | ||
diff --git a/Documentation/devicetree/bindings/i2c/ina209.txt b/Documentation/devicetree/bindings/i2c/ina209.txt new file mode 100644 index 000000000000..9dd2bee80840 --- /dev/null +++ b/Documentation/devicetree/bindings/i2c/ina209.txt | |||
@@ -0,0 +1,18 @@ | |||
1 | ina209 properties | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: Must be "ti,ina209" | ||
5 | - reg: I2C address | ||
6 | |||
7 | Optional properties: | ||
8 | |||
9 | - shunt-resistor | ||
10 | Shunt resistor value in micro-Ohm | ||
11 | |||
12 | Example: | ||
13 | |||
14 | temp-sensor@4c { | ||
15 | compatible = "ti,ina209"; | ||
16 | reg = <0x4c>; | ||
17 | shunt-resistor = <5000>; | ||
18 | }; | ||
diff --git a/Documentation/devicetree/bindings/i2c/max6697.txt b/Documentation/devicetree/bindings/i2c/max6697.txt new file mode 100644 index 000000000000..5f793998e4a4 --- /dev/null +++ b/Documentation/devicetree/bindings/i2c/max6697.txt | |||
@@ -0,0 +1,64 @@ | |||
1 | max6697 properties | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: | ||
5 | Should be one of | ||
6 | maxim,max6581 | ||
7 | maxim,max6602 | ||
8 | maxim,max6622 | ||
9 | maxim,max6636 | ||
10 | maxim,max6689 | ||
11 | maxim,max6693 | ||
12 | maxim,max6694 | ||
13 | maxim,max6697 | ||
14 | maxim,max6698 | ||
15 | maxim,max6699 | ||
16 | - reg: I2C address | ||
17 | |||
18 | Optional properties: | ||
19 | |||
20 | - smbus-timeout-disable | ||
21 | Set to disable SMBus timeout. If not specified, SMBus timeout will be | ||
22 | enabled. | ||
23 | - extended-range-enable | ||
24 | Only valid for MAX6581. Set to enable extended temperature range. | ||
25 | Extended temperature will be disabled if not specified. | ||
26 | - beta-compensation-enable | ||
27 | Only valid for MAX6693 and MX6694. Set to enable beta compensation on | ||
28 | remote temperature channel 1. | ||
29 | Beta compensation will be disabled if not specified. | ||
30 | - alert-mask | ||
31 | Alert bit mask. Alert disabled for bits set. | ||
32 | Select bit 0 for local temperature, bit 1..7 for remote temperatures. | ||
33 | If not specified, alert will be enabled for all channels. | ||
34 | - over-temperature-mask | ||
35 | Over-temperature bit mask. Over-temperature reporting disabled for | ||
36 | bits set. | ||
37 | Select bit 0 for local temperature, bit 1..7 for remote temperatures. | ||
38 | If not specified, over-temperature reporting will be enabled for all | ||
39 | channels. | ||
40 | - resistance-cancellation | ||
41 | Boolean for all chips other than MAX6581. Set to enable resistance | ||
42 | cancellation on remote temperature channel 1. | ||
43 | For MAX6581, resistance cancellation enabled for all channels if | ||
44 | specified as boolean, otherwise as per bit mask specified. | ||
45 | Only supported for remote temperatures (bit 1..7). | ||
46 | If not specified, resistance cancellation will be disabled for all | ||
47 | channels. | ||
48 | - transistor-ideality | ||
49 | For MAX6581 only. Two values; first is bit mask, second is ideality | ||
50 | select value as per MAX6581 data sheet. Select bit 1..7 for remote | ||
51 | channels. | ||
52 | Transistor ideality will be initialized to default (1.008) if not | ||
53 | specified. | ||
54 | |||
55 | Example: | ||
56 | |||
57 | temp-sensor@1a { | ||
58 | compatible = "maxim,max6697"; | ||
59 | reg = <0x1a>; | ||
60 | smbus-timeout-disable; | ||
61 | resistance-cancellation; | ||
62 | alert-mask = <0x72>; | ||
63 | over-temperature-mask = <0x7f>; | ||
64 | }; | ||
diff --git a/Documentation/devicetree/bindings/input/imx-keypad.txt b/Documentation/devicetree/bindings/input/imx-keypad.txt new file mode 100644 index 000000000000..2ebaf7d26843 --- /dev/null +++ b/Documentation/devicetree/bindings/input/imx-keypad.txt | |||
@@ -0,0 +1,53 @@ | |||
1 | * Freescale i.MX Keypad Port(KPP) device tree bindings | ||
2 | |||
3 | The KPP is designed to interface with a keypad matrix with 2-point contact | ||
4 | or 3-point contact keys. The KPP is designed to simplify the software task | ||
5 | of scanning a keypad matrix. The KPP is capable of detecting, debouncing, | ||
6 | and decoding one or multiple keys pressed simultaneously on a keypad. | ||
7 | |||
8 | Required SoC Specific Properties: | ||
9 | - compatible: Should be "fsl,<soc>-kpp". | ||
10 | |||
11 | - reg: Physical base address of the KPP and length of memory mapped | ||
12 | region. | ||
13 | |||
14 | - interrupts: The KPP interrupt number to the CPU(s). | ||
15 | |||
16 | - clocks: The clock provided by the SoC to the KPP. Some SoCs use dummy | ||
17 | clock(The clock for the KPP is provided by the SoCs automatically). | ||
18 | |||
19 | Required Board Specific Properties: | ||
20 | - pinctrl-names: The definition can be found at | ||
21 | pinctrl/pinctrl-bindings.txt. | ||
22 | |||
23 | - pinctrl-0: The definition can be found at | ||
24 | pinctrl/pinctrl-bindings.txt. | ||
25 | |||
26 | - linux,keymap: The definition can be found at | ||
27 | bindings/input/matrix-keymap.txt. | ||
28 | |||
29 | Example: | ||
30 | kpp: kpp@73f94000 { | ||
31 | compatible = "fsl,imx51-kpp", "fsl,imx21-kpp"; | ||
32 | reg = <0x73f94000 0x4000>; | ||
33 | interrupts = <60>; | ||
34 | clocks = <&clks 0>; | ||
35 | pinctrl-names = "default"; | ||
36 | pinctrl-0 = <&pinctrl_kpp_1>; | ||
37 | linux,keymap = <0x00000067 /* KEY_UP */ | ||
38 | 0x0001006c /* KEY_DOWN */ | ||
39 | 0x00020072 /* KEY_VOLUMEDOWN */ | ||
40 | 0x00030066 /* KEY_HOME */ | ||
41 | 0x0100006a /* KEY_RIGHT */ | ||
42 | 0x01010069 /* KEY_LEFT */ | ||
43 | 0x0102001c /* KEY_ENTER */ | ||
44 | 0x01030073 /* KEY_VOLUMEUP */ | ||
45 | 0x02000040 /* KEY_F6 */ | ||
46 | 0x02010042 /* KEY_F8 */ | ||
47 | 0x02020043 /* KEY_F9 */ | ||
48 | 0x02030044 /* KEY_F10 */ | ||
49 | 0x0300003b /* KEY_F1 */ | ||
50 | 0x0301003c /* KEY_F2 */ | ||
51 | 0x0302003d /* KEY_F3 */ | ||
52 | 0x03030074>; /* KEY_POWER */ | ||
53 | }; | ||
diff --git a/Documentation/devicetree/bindings/input/lpc32xx-key.txt b/Documentation/devicetree/bindings/input/lpc32xx-key.txt index 31afd5014c48..bcf62f856358 100644 --- a/Documentation/devicetree/bindings/input/lpc32xx-key.txt +++ b/Documentation/devicetree/bindings/input/lpc32xx-key.txt | |||
@@ -1,19 +1,22 @@ | |||
1 | NXP LPC32xx Key Scan Interface | 1 | NXP LPC32xx Key Scan Interface |
2 | 2 | ||
3 | This binding is based on the matrix-keymap binding with the following | ||
4 | changes: | ||
5 | |||
3 | Required Properties: | 6 | Required Properties: |
4 | - compatible: Should be "nxp,lpc3220-key" | 7 | - compatible: Should be "nxp,lpc3220-key" |
5 | - reg: Physical base address of the controller and length of memory mapped | 8 | - reg: Physical base address of the controller and length of memory mapped |
6 | region. | 9 | region. |
7 | - interrupts: The interrupt number to the cpu. | 10 | - interrupts: The interrupt number to the cpu. |
8 | - keypad,num-rows: Number of rows and columns, e.g. 1: 1x1, 6: 6x6 | ||
9 | - keypad,num-columns: Must be equal to keypad,num-rows since LPC32xx only | ||
10 | supports square matrices | ||
11 | - nxp,debounce-delay-ms: Debounce delay in ms | 11 | - nxp,debounce-delay-ms: Debounce delay in ms |
12 | - nxp,scan-delay-ms: Repeated scan period in ms | 12 | - nxp,scan-delay-ms: Repeated scan period in ms |
13 | - linux,keymap: the key-code to be reported when the key is pressed | 13 | - linux,keymap: the key-code to be reported when the key is pressed |
14 | and released, see also | 14 | and released, see also |
15 | Documentation/devicetree/bindings/input/matrix-keymap.txt | 15 | Documentation/devicetree/bindings/input/matrix-keymap.txt |
16 | 16 | ||
17 | Note: keypad,num-rows and keypad,num-columns are required, and must be equal | ||
18 | since LPC32xx only supports square matrices | ||
19 | |||
17 | Example: | 20 | Example: |
18 | 21 | ||
19 | key@40050000 { | 22 | key@40050000 { |
diff --git a/Documentation/devicetree/bindings/input/matrix-keymap.txt b/Documentation/devicetree/bindings/input/matrix-keymap.txt index 3cd8b98ccd2d..c54919fad17e 100644 --- a/Documentation/devicetree/bindings/input/matrix-keymap.txt +++ b/Documentation/devicetree/bindings/input/matrix-keymap.txt | |||
@@ -9,6 +9,12 @@ Required properties: | |||
9 | row << 24 | column << 16 | key-code | 9 | row << 24 | column << 16 | key-code |
10 | 10 | ||
11 | Optional properties: | 11 | Optional properties: |
12 | Properties for the number of rows and columns are optional because some | ||
13 | drivers will use fixed values for these. | ||
14 | - keypad,num-rows: Number of row lines connected to the keypad controller. | ||
15 | - keypad,num-columns: Number of column lines connected to the keypad | ||
16 | controller. | ||
17 | |||
12 | Some users of this binding might choose to specify secondary keymaps for | 18 | Some users of this binding might choose to specify secondary keymaps for |
13 | cases where there is a modifier key such as a Fn key. Proposed names | 19 | cases where there is a modifier key such as a Fn key. Proposed names |
14 | for said properties are "linux,fn-keymap" or with another descriptive | 20 | for said properties are "linux,fn-keymap" or with another descriptive |
@@ -17,3 +23,5 @@ word for the modifier other from "Fn". | |||
17 | Example: | 23 | Example: |
18 | linux,keymap = < 0x00030012 | 24 | linux,keymap = < 0x00030012 |
19 | 0x0102003a >; | 25 | 0x0102003a >; |
26 | keypad,num-rows = <2>; | ||
27 | keypad,num-columns = <8>; | ||
diff --git a/Documentation/devicetree/bindings/input/nvidia,tegra20-kbc.txt b/Documentation/devicetree/bindings/input/nvidia,tegra20-kbc.txt index 72683be6de35..2995fae7ee47 100644 --- a/Documentation/devicetree/bindings/input/nvidia,tegra20-kbc.txt +++ b/Documentation/devicetree/bindings/input/nvidia,tegra20-kbc.txt | |||
@@ -1,7 +1,18 @@ | |||
1 | * Tegra keyboard controller | 1 | * Tegra keyboard controller |
2 | The key controller has maximum 24 pins to make matrix keypad. Any pin | ||
3 | can be configured as row or column. The maximum column pin can be 8 | ||
4 | and maximum row pins can be 16 for Tegra20/Tegra30. | ||
2 | 5 | ||
3 | Required properties: | 6 | Required properties: |
4 | - compatible: "nvidia,tegra20-kbc" | 7 | - compatible: "nvidia,tegra20-kbc" |
8 | - reg: Register base address of KBC. | ||
9 | - interrupts: Interrupt number for the KBC. | ||
10 | - nvidia,kbc-row-pins: The KBC pins which are configured as row. This is an | ||
11 | array of pin numbers which is used as rows. | ||
12 | - nvidia,kbc-col-pins: The KBC pins which are configured as column. This is an | ||
13 | array of pin numbers which is used as column. | ||
14 | - linux,keymap: The keymap for keys as described in the binding document | ||
15 | devicetree/bindings/input/matrix-keymap.txt. | ||
5 | 16 | ||
6 | Optional properties, in addition to those specified by the shared | 17 | Optional properties, in addition to those specified by the shared |
7 | matrix-keyboard bindings: | 18 | matrix-keyboard bindings: |
@@ -19,5 +30,16 @@ Example: | |||
19 | keyboard: keyboard { | 30 | keyboard: keyboard { |
20 | compatible = "nvidia,tegra20-kbc"; | 31 | compatible = "nvidia,tegra20-kbc"; |
21 | reg = <0x7000e200 0x100>; | 32 | reg = <0x7000e200 0x100>; |
33 | interrupts = <0 85 0x04>; | ||
22 | nvidia,ghost-filter; | 34 | nvidia,ghost-filter; |
35 | nvidia,debounce-delay-ms = <640>; | ||
36 | nvidia,kbc-row-pins = <0 1 2>; /* pin 0, 1, 2 as rows */ | ||
37 | nvidia,kbc-col-pins = <11 12 13>; /* pin 11, 12, 13 as columns */ | ||
38 | linux,keymap = <0x00000074 | ||
39 | 0x00010067 | ||
40 | 0x00020066 | ||
41 | 0x01010068 | ||
42 | 0x02000069 | ||
43 | 0x02010070 | ||
44 | 0x02020071>; | ||
23 | }; | 45 | }; |
diff --git a/Documentation/devicetree/bindings/input/omap-keypad.txt b/Documentation/devicetree/bindings/input/omap-keypad.txt index f2fa5e10493d..34ed1c60ff95 100644 --- a/Documentation/devicetree/bindings/input/omap-keypad.txt +++ b/Documentation/devicetree/bindings/input/omap-keypad.txt | |||
@@ -6,19 +6,16 @@ A key can be placed at each intersection of a unique row and a unique column. | |||
6 | The keypad controller can sense a key-press and key-release and report the | 6 | The keypad controller can sense a key-press and key-release and report the |
7 | event using a interrupt to the cpu. | 7 | event using a interrupt to the cpu. |
8 | 8 | ||
9 | This binding is based on the matrix-keymap binding with the following | ||
10 | changes: | ||
11 | |||
12 | keypad,num-rows and keypad,num-columns are required. | ||
13 | |||
9 | Required SoC Specific Properties: | 14 | Required SoC Specific Properties: |
10 | - compatible: should be one of the following | 15 | - compatible: should be one of the following |
11 | - "ti,omap4-keypad": For controllers compatible with omap4 keypad | 16 | - "ti,omap4-keypad": For controllers compatible with omap4 keypad |
12 | controller. | 17 | controller. |
13 | 18 | ||
14 | Required Board Specific Properties, in addition to those specified by | ||
15 | the shared matrix-keyboard bindings: | ||
16 | - keypad,num-rows: Number of row lines connected to the keypad | ||
17 | controller. | ||
18 | |||
19 | - keypad,num-columns: Number of column lines connected to the | ||
20 | keypad controller. | ||
21 | |||
22 | Optional Properties specific to linux: | 19 | Optional Properties specific to linux: |
23 | - linux,keypad-no-autorepeat: do no enable autorepeat feature. | 20 | - linux,keypad-no-autorepeat: do no enable autorepeat feature. |
24 | 21 | ||
diff --git a/Documentation/devicetree/bindings/input/tca8418_keypad.txt b/Documentation/devicetree/bindings/input/tca8418_keypad.txt index 2a1538f0053f..255185009167 100644 --- a/Documentation/devicetree/bindings/input/tca8418_keypad.txt +++ b/Documentation/devicetree/bindings/input/tca8418_keypad.txt | |||
@@ -1,8 +1,10 @@ | |||
1 | This binding is based on the matrix-keymap binding with the following | ||
2 | changes: | ||
3 | |||
4 | keypad,num-rows and keypad,num-columns are required. | ||
1 | 5 | ||
2 | Required properties: | 6 | Required properties: |
3 | - compatible: "ti,tca8418" | 7 | - compatible: "ti,tca8418" |
4 | - reg: the I2C address | 8 | - reg: the I2C address |
5 | - interrupts: IRQ line number, should trigger on falling edge | 9 | - interrupts: IRQ line number, should trigger on falling edge |
6 | - keypad,num-rows: The number of rows | ||
7 | - keypad,num-columns: The number of columns | ||
8 | - linux,keymap: Keys definitions, see keypad-matrix. | 10 | - linux,keymap: Keys definitions, see keypad-matrix. |
diff --git a/Documentation/devicetree/bindings/gpio/leds-ns2.txt b/Documentation/devicetree/bindings/leds/leds-ns2.txt index aef3aca34d2d..aef3aca34d2d 100644 --- a/Documentation/devicetree/bindings/gpio/leds-ns2.txt +++ b/Documentation/devicetree/bindings/leds/leds-ns2.txt | |||
diff --git a/Documentation/devicetree/bindings/mfd/tps6507x.txt b/Documentation/devicetree/bindings/mfd/tps6507x.txt new file mode 100755 index 000000000000..8fffa3c5ed40 --- /dev/null +++ b/Documentation/devicetree/bindings/mfd/tps6507x.txt | |||
@@ -0,0 +1,91 @@ | |||
1 | TPS6507x Power Management Integrated Circuit | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: "ti,tps6507x" | ||
5 | - reg: I2C slave address | ||
6 | - regulators: This is the list of child nodes that specify the regulator | ||
7 | initialization data for defined regulators. Not all regulators for the | ||
8 | given device need to be present. The definition for each of these nodes | ||
9 | is defined using the standard binding for regulators found at | ||
10 | Documentation/devicetree/bindings/regulator/regulator.txt. | ||
11 | The regulator is matched with the regulator-compatible. | ||
12 | |||
13 | The valid regulator-compatible values are: | ||
14 | tps6507x: vdcdc1, vdcdc2, vdcdc3, vldo1, vldo2 | ||
15 | - xxx-supply: Input voltage supply regulator. | ||
16 | These entries are required if regulators are enabled for a device. | ||
17 | Missing of these properties can cause the regulator registration | ||
18 | fails. | ||
19 | If some of input supply is powered through battery or always-on | ||
20 | supply then also it is require to have these parameters with proper | ||
21 | node handle of always on power supply. | ||
22 | tps6507x: | ||
23 | vindcdc1_2-supply: VDCDC1 and VDCDC2 input. | ||
24 | vindcdc3-supply : VDCDC3 input. | ||
25 | vldo1_2-supply : VLDO1 and VLDO2 input. | ||
26 | |||
27 | Regulator Optional properties: | ||
28 | - defdcdc_default: It's property of DCDC2 and DCDC3 regulators. | ||
29 | 0: If defdcdc pin of DCDC2/DCDC3 is pulled to GND. | ||
30 | 1: If defdcdc pin of DCDC2/DCDC3 is driven HIGH. | ||
31 | If this property is not defined, it defaults to 0 (not enabled). | ||
32 | |||
33 | Example: | ||
34 | |||
35 | pmu: tps6507x@48 { | ||
36 | compatible = "ti,tps6507x"; | ||
37 | reg = <0x48>; | ||
38 | |||
39 | vindcdc1_2-supply = <&vbat>; | ||
40 | vindcdc3-supply = <...>; | ||
41 | vinldo1_2-supply = <...>; | ||
42 | |||
43 | regulators { | ||
44 | #address-cells = <1>; | ||
45 | #size-cells = <0>; | ||
46 | |||
47 | vdcdc1_reg: regulator@0 { | ||
48 | regulator-compatible = "VDCDC1"; | ||
49 | reg = <0>; | ||
50 | regulator-min-microvolt = <3150000>; | ||
51 | regulator-max-microvolt = <3450000>; | ||
52 | regulator-always-on; | ||
53 | regulator-boot-on; | ||
54 | }; | ||
55 | vdcdc2_reg: regulator@1 { | ||
56 | regulator-compatible = "VDCDC2"; | ||
57 | reg = <1>; | ||
58 | regulator-min-microvolt = <1710000>; | ||
59 | regulator-max-microvolt = <3450000>; | ||
60 | regulator-always-on; | ||
61 | regulator-boot-on; | ||
62 | defdcdc_default = <1>; | ||
63 | }; | ||
64 | vdcdc3_reg: regulator@2 { | ||
65 | regulator-compatible = "VDCDC3"; | ||
66 | reg = <2>; | ||
67 | regulator-min-microvolt = <950000> | ||
68 | regulator-max-microvolt = <1350000>; | ||
69 | regulator-always-on; | ||
70 | regulator-boot-on; | ||
71 | defdcdc_default = <1>; | ||
72 | }; | ||
73 | ldo1_reg: regulator@3 { | ||
74 | regulator-compatible = "LDO1"; | ||
75 | reg = <3>; | ||
76 | regulator-min-microvolt = <1710000>; | ||
77 | regulator-max-microvolt = <1890000>; | ||
78 | regulator-always-on; | ||
79 | regulator-boot-on; | ||
80 | }; | ||
81 | ldo2_reg: regulator@4 { | ||
82 | regulator-compatible = "LDO2"; | ||
83 | reg = <4>; | ||
84 | regulator-min-microvolt = <1140000>; | ||
85 | regulator-max-microvolt = <1320000>; | ||
86 | regulator-always-on; | ||
87 | regulator-boot-on; | ||
88 | }; | ||
89 | }; | ||
90 | |||
91 | }; | ||
diff --git a/Documentation/devicetree/bindings/mips/cavium/dma-engine.txt b/Documentation/devicetree/bindings/mips/cavium/dma-engine.txt index cb4291e3b1d1..a5bdff400002 100644 --- a/Documentation/devicetree/bindings/mips/cavium/dma-engine.txt +++ b/Documentation/devicetree/bindings/mips/cavium/dma-engine.txt | |||
@@ -1,7 +1,7 @@ | |||
1 | * DMA Engine. | 1 | * DMA Engine. |
2 | 2 | ||
3 | The Octeon DMA Engine transfers between the Boot Bus and main memory. | 3 | The Octeon DMA Engine transfers between the Boot Bus and main memory. |
4 | The DMA Engine will be refered to by phandle by any device that is | 4 | The DMA Engine will be referred to by phandle by any device that is |
5 | connected to it. | 5 | connected to it. |
6 | 6 | ||
7 | Properties: | 7 | Properties: |
diff --git a/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt b/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt index 792768953330..6d1c0988cfc7 100644 --- a/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt +++ b/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt | |||
@@ -4,18 +4,18 @@ | |||
4 | The Synopsis designware mobile storage host controller is used to interface | 4 | The Synopsis designware mobile storage host controller is used to interface |
5 | a SoC with storage medium such as eMMC or SD/MMC cards. This file documents | 5 | a SoC with storage medium such as eMMC or SD/MMC cards. This file documents |
6 | differences between the core Synopsis dw mshc controller properties described | 6 | differences between the core Synopsis dw mshc controller properties described |
7 | by synposis-dw-mshc.txt and the properties used by the Samsung Exynos specific | 7 | by synopsis-dw-mshc.txt and the properties used by the Samsung Exynos specific |
8 | extensions to the Synopsis Designware Mobile Storage Host Controller. | 8 | extensions to the Synopsis Designware Mobile Storage Host Controller. |
9 | 9 | ||
10 | Required Properties: | 10 | Required Properties: |
11 | 11 | ||
12 | * compatible: should be | 12 | * compatible: should be |
13 | - "samsung,exynos4210-dw-mshc": for controllers with Samsung Exynos4210 | 13 | - "samsung,exynos4210-dw-mshc": for controllers with Samsung Exynos4210 |
14 | specific extentions. | 14 | specific extensions. |
15 | - "samsung,exynos4412-dw-mshc": for controllers with Samsung Exynos4412 | 15 | - "samsung,exynos4412-dw-mshc": for controllers with Samsung Exynos4412 |
16 | specific extentions. | 16 | specific extensions. |
17 | - "samsung,exynos5250-dw-mshc": for controllers with Samsung Exynos5250 | 17 | - "samsung,exynos5250-dw-mshc": for controllers with Samsung Exynos5250 |
18 | specific extentions. | 18 | specific extensions. |
19 | 19 | ||
20 | * samsung,dw-mshc-ciu-div: Specifies the divider value for the card interface | 20 | * samsung,dw-mshc-ciu-div: Specifies the divider value for the card interface |
21 | unit (ciu) clock. This property is applicable only for Exynos5 SoC's and | 21 | unit (ciu) clock. This property is applicable only for Exynos5 SoC's and |
diff --git a/Documentation/devicetree/bindings/mmc/samsung-sdhci.txt b/Documentation/devicetree/bindings/mmc/samsung-sdhci.txt index 97e9e315400d..3b3a1ee055ff 100644 --- a/Documentation/devicetree/bindings/mmc/samsung-sdhci.txt +++ b/Documentation/devicetree/bindings/mmc/samsung-sdhci.txt | |||
@@ -55,5 +55,5 @@ Example: | |||
55 | }; | 55 | }; |
56 | 56 | ||
57 | Note: This example shows both SoC specific and board specific properties | 57 | Note: This example shows both SoC specific and board specific properties |
58 | in a single device node. The properties can be actually be seperated | 58 | in a single device node. The properties can be actually be separated |
59 | into SoC specific node and board specific node. | 59 | into SoC specific node and board specific node. |
diff --git a/Documentation/devicetree/bindings/net/cpsw.txt b/Documentation/devicetree/bindings/net/cpsw.txt index 6ddd0286a9b7..ecfdf756d10f 100644 --- a/Documentation/devicetree/bindings/net/cpsw.txt +++ b/Documentation/devicetree/bindings/net/cpsw.txt | |||
@@ -24,6 +24,8 @@ Required properties: | |||
24 | Optional properties: | 24 | Optional properties: |
25 | - ti,hwmods : Must be "cpgmac0" | 25 | - ti,hwmods : Must be "cpgmac0" |
26 | - no_bd_ram : Must be 0 or 1 | 26 | - no_bd_ram : Must be 0 or 1 |
27 | - dual_emac : Specifies Switch to act as Dual EMAC | ||
28 | - dual_emac_res_vlan : Specifies VID to be used to segregate the ports | ||
27 | 29 | ||
28 | Note: "ti,hwmods" field is used to fetch the base address and irq | 30 | Note: "ti,hwmods" field is used to fetch the base address and irq |
29 | resources from TI, omap hwmod data base during device registration. | 31 | resources from TI, omap hwmod data base during device registration. |
diff --git a/Documentation/devicetree/bindings/pinctrl/allwinner,sunxi-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/allwinner,sunxi-pinctrl.txt new file mode 100644 index 000000000000..dff0e5f995e2 --- /dev/null +++ b/Documentation/devicetree/bindings/pinctrl/allwinner,sunxi-pinctrl.txt | |||
@@ -0,0 +1,60 @@ | |||
1 | * Allwinner A1X Pin Controller | ||
2 | |||
3 | The pins controlled by sunXi pin controller are organized in banks, | ||
4 | each bank has 32 pins. Each pin has 7 multiplexing functions, with | ||
5 | the first two functions being GPIO in and out. The configuration on | ||
6 | the pins includes drive strength and pull-up. | ||
7 | |||
8 | Required properties: | ||
9 | - compatible: "allwinner,<soc>-pinctrl". Supported SoCs for now are: | ||
10 | sun5i-a13. | ||
11 | - reg: Should contain the register physical address and length for the | ||
12 | pin controller. | ||
13 | |||
14 | Please refer to pinctrl-bindings.txt in this directory for details of the | ||
15 | common pinctrl bindings used by client devices. | ||
16 | |||
17 | A pinctrl node should contain at least one subnodes representing the | ||
18 | pinctrl groups available on the machine. Each subnode will list the | ||
19 | pins it needs, and how they should be configured, with regard to muxer | ||
20 | configuration, drive strength and pullups. If one of these options is | ||
21 | not set, its actual value will be unspecified. | ||
22 | |||
23 | Required subnode-properties: | ||
24 | |||
25 | - allwinner,pins: List of strings containing the pin name. | ||
26 | - allwinner,function: Function to mux the pins listed above to. | ||
27 | |||
28 | Optional subnode-properties: | ||
29 | - allwinner,drive: Integer. Represents the current sent to the pin | ||
30 | 0: 10 mA | ||
31 | 1: 20 mA | ||
32 | 2: 30 mA | ||
33 | 3: 40 mA | ||
34 | - allwinner,pull: Integer. | ||
35 | 0: No resistor | ||
36 | 1: Pull-up resistor | ||
37 | 2: Pull-down resistor | ||
38 | |||
39 | Examples: | ||
40 | |||
41 | pinctrl@01c20800 { | ||
42 | compatible = "allwinner,sun5i-a13-pinctrl"; | ||
43 | reg = <0x01c20800 0x400>; | ||
44 | #address-cells = <1>; | ||
45 | #size-cells = <0>; | ||
46 | |||
47 | uart1_pins_a: uart1@0 { | ||
48 | allwinner,pins = "PE10", "PE11"; | ||
49 | allwinner,function = "uart1"; | ||
50 | allwinner,drive = <0>; | ||
51 | allwinner,pull = <0>; | ||
52 | }; | ||
53 | |||
54 | uart1_pins_b: uart1@1 { | ||
55 | allwinner,pins = "PG3", "PG4"; | ||
56 | allwinner,function = "uart1"; | ||
57 | allwinner,drive = <0>; | ||
58 | allwinner,pull = <0>; | ||
59 | }; | ||
60 | }; | ||
diff --git a/Documentation/devicetree/bindings/pinctrl/nvidia,tegra114-pinmux.txt b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra114-pinmux.txt new file mode 100644 index 000000000000..e204d009f16c --- /dev/null +++ b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra114-pinmux.txt | |||
@@ -0,0 +1,120 @@ | |||
1 | NVIDIA Tegra114 pinmux controller | ||
2 | |||
3 | The Tegra114 pinctrl binding is very similar to the Tegra20 and Tegra30 | ||
4 | pinctrl binding, as described in nvidia,tegra20-pinmux.txt and | ||
5 | nvidia,tegra30-pinmux.txt. In fact, this document assumes that binding as | ||
6 | a baseline, and only documents the differences between the two bindings. | ||
7 | |||
8 | Required properties: | ||
9 | - compatible: "nvidia,tegra114-pinmux" | ||
10 | - reg: Should contain the register physical address and length for each of | ||
11 | the pad control and mux registers. The first bank of address must be the | ||
12 | driver strength pad control register address and second bank address must | ||
13 | be pinmux register address. | ||
14 | |||
15 | Tegra114 adds the following optional properties for pin configuration subnodes: | ||
16 | - nvidia,enable-input: Integer. Enable the pin's input path. 0: no, 1: yes. | ||
17 | - nvidia,open-drain: Integer. Enable open drain mode. 0: no, 1: yes. | ||
18 | - nvidia,lock: Integer. Lock the pin configuration against further changes | ||
19 | until reset. 0: no, 1: yes. | ||
20 | - nvidia,io-reset: Integer. Reset the IO path. 0: no, 1: yes. | ||
21 | - nvidia,rcv-sel: Integer. Select VIL/VIH receivers. 0: normal, 1: high. | ||
22 | - nvidia,drive-type: Integer. Valid range 0...3. | ||
23 | |||
24 | As with Tegra20 and Terga30, see the Tegra TRM for complete details regarding | ||
25 | which groups support which functionality. | ||
26 | |||
27 | Valid values for pin and group names are: | ||
28 | |||
29 | per-pin mux groups: | ||
30 | |||
31 | These all support nvidia,function, nvidia,tristate, nvidia,pull, | ||
32 | nvidia,enable-input, nvidia,lock. Some support nvidia,open-drain, | ||
33 | nvidia,io-reset and nvidia,rcv-sel. | ||
34 | |||
35 | ulpi_data0_po1, ulpi_data1_po2, ulpi_data2_po3, ulpi_data3_po4, | ||
36 | ulpi_data4_po5, ulpi_data5_po6, ulpi_data6_po7, ulpi_data7_po0, | ||
37 | ulpi_clk_py0, ulpi_dir_py1, ulpi_nxt_py2, ulpi_stp_py3, dap3_fs_pp0, | ||
38 | dap3_din_pp1, dap3_dout_pp2, dap3_sclk_pp3, pv0, pv1, sdmmc1_clk_pz0, | ||
39 | sdmmc1_cmd_pz1, sdmmc1_dat3_py4, sdmmc1_dat2_py5, sdmmc1_dat1_py6, | ||
40 | sdmmc1_dat0_py7, clk2_out_pw5, clk2_req_pcc5, hdmi_int_pn7, ddc_scl_pv4, | ||
41 | ddc_sda_pv5, uart2_rxd_pc3, uart2_txd_pc2, uart2_rts_n_pj6, | ||
42 | uart2_cts_n_pj5, uart3_txd_pw6, uart3_rxd_pw7, uart3_cts_n_pa1, | ||
43 | uart3_rts_n_pc0, pu0, pu1, pu2, pu3, pu4, pu5, pu6, gen1_i2c_sda_pc5, | ||
44 | gen1_i2c_scl_pc4, dap4_fs_pp4, dap4_din_pp5, dap4_dout_pp6, dap4_sclk_pp7, | ||
45 | clk3_out_pee0, clk3_req_pee1, gmi_wp_n_pc7, gmi_iordy_pi5, gmi_wait_pi7, | ||
46 | gmi_adv_n_pk0, gmi_clk_pk1, gmi_cs0_n_pj0, gmi_cs1_n_pj2, gmi_cs2_n_pk3, | ||
47 | gmi_cs3_n_pk4, gmi_cs4_n_pk2, gmi_cs6_n_pi3, gmi_cs7_n_pi6, gmi_ad0_pg0, | ||
48 | gmi_ad1_pg1, gmi_ad2_pg2, gmi_ad3_pg3, gmi_ad4_pg4, gmi_ad5_pg5, | ||
49 | gmi_ad6_pg6, gmi_ad7_pg7, gmi_ad8_ph0, gmi_ad9_ph1, gmi_ad10_ph2, | ||
50 | gmi_ad11_ph3, gmi_ad12_ph4, gmi_ad13_ph5, gmi_ad14_ph6, gmi_ad15_ph7, | ||
51 | gmi_a16_pj7, gmi_a17_pb0, gmi_a18_pb1, gmi_a19_pk7, gmi_wr_n_pi0, | ||
52 | gmi_oe_n_pi1, gmi_dqs_p_pj3, gmi_rst_n_pi4, gen2_i2c_scl_pt5, | ||
53 | gen2_i2c_sda_pt6, sdmmc4_clk_pcc4, sdmmc4_cmd_pt7, sdmmc4_dat0_paa0, | ||
54 | sdmmc4_dat1_paa1, sdmmc4_dat2_paa2, sdmmc4_dat3_paa3, sdmmc4_dat4_paa4, | ||
55 | sdmmc4_dat5_paa5, sdmmc4_dat6_paa6, sdmmc4_dat7_paa7, cam_mclk_pcc0, | ||
56 | pcc1, pbb0, cam_i2c_scl_pbb1, cam_i2c_sda_pbb2, pbb3, pbb4, pbb5, pbb6, | ||
57 | pbb7, pcc2, pwr_i2c_scl_pz6, pwr_i2c_sda_pz7, kb_row0_pr0, kb_row1_pr1, | ||
58 | kb_row2_pr2, kb_row3_pr3, kb_row4_pr4, kb_row5_pr5, kb_row6_pr6, | ||
59 | kb_row7_pr7, kb_row8_ps0, kb_row9_ps1, kb_row10_ps2, kb_col0_pq0, | ||
60 | kb_col1_pq1, kb_col2_pq2, kb_col3_pq3, kb_col4_pq4, kb_col5_pq5, | ||
61 | kb_col6_pq6, kb_col7_pq7, clk_32k_out_pa0, sys_clk_req_pz5, core_pwr_req, | ||
62 | cpu_pwr_req, pwr_int_n, owr, dap1_fs_pn0, dap1_din_pn1, dap1_dout_pn2, | ||
63 | dap1_sclk_pn3, clk1_req_pee2, clk1_out_pw4, spdif_in_pk6, spdif_out_pk5, | ||
64 | dap2_fs_pa2, dap2_din_pa4, dap2_dout_pa5, dap2_sclk_pa3, dvfs_pwm_px0, | ||
65 | gpio_x1_aud_px1, gpio_x3_aud_px3, dvfs_clk_px2, gpio_x4_aud_px4, | ||
66 | gpio_x5_aud_px5, gpio_x6_aud_px6, gpio_x7_aud_px7, sdmmc3_clk_pa6, | ||
67 | sdmmc3_cmd_pa7, sdmmc3_dat0_pb7, sdmmc3_dat1_pb6, sdmmc3_dat2_pb5, | ||
68 | sdmmc3_dat3_pb4, hdmi_cec_pee3, sdmmc1_wp_n_pv3, sdmmc3_cd_n_pv2, | ||
69 | gpio_w2_aud_pw2, gpio_w3_aud_pw3, usb_vbus_en0_pn4, usb_vbus_en1_pn5, | ||
70 | sdmmc3_clk_lb_in_pee5, sdmmc3_clk_lb_out_pee4, reset_out_n. | ||
71 | |||
72 | drive groups: | ||
73 | |||
74 | These all support nvidia,pull-down-strength, nvidia,pull-up-strength, | ||
75 | nvidia,slew-rate-rising, nvidia,slew-rate-falling. Most but not all | ||
76 | support nvidia,high-speed-mode, nvidia,schmitt, nvidia,low-power-mode | ||
77 | and nvidia,drive-type. | ||
78 | |||
79 | ao1, ao2, at1, at2, at3, at4, at5, cdev1, cdev2, dap1, dap2, dap3, dap4, | ||
80 | dbg, sdio3, spi, uaa, uab, uart2, uart3, sdio1, ddc, gma, gme, gmf, gmg, | ||
81 | gmh, owr, uda. | ||
82 | |||
83 | Example: | ||
84 | |||
85 | pinmux: pinmux { | ||
86 | compatible = "nvidia,tegra114-pinmux"; | ||
87 | reg = <0x70000868 0x148 /* Pad control registers */ | ||
88 | 0x70003000 0x40c>; /* PinMux registers */ | ||
89 | }; | ||
90 | |||
91 | Example board file extract: | ||
92 | |||
93 | pinctrl { | ||
94 | sdmmc4_default: pinmux { | ||
95 | sdmmc4_clk_pcc4 { | ||
96 | nvidia,pins = "sdmmc4_clk_pcc4", | ||
97 | nvidia,function = "sdmmc4"; | ||
98 | nvidia,pull = <0>; | ||
99 | nvidia,tristate = <0>; | ||
100 | }; | ||
101 | sdmmc4_dat0_paa0 { | ||
102 | nvidia,pins = "sdmmc4_dat0_paa0", | ||
103 | "sdmmc4_dat1_paa1", | ||
104 | "sdmmc4_dat2_paa2", | ||
105 | "sdmmc4_dat3_paa3", | ||
106 | "sdmmc4_dat4_paa4", | ||
107 | "sdmmc4_dat5_paa5", | ||
108 | "sdmmc4_dat6_paa6", | ||
109 | "sdmmc4_dat7_paa7"; | ||
110 | nvidia,function = "sdmmc4"; | ||
111 | nvidia,pull = <2>; | ||
112 | nvidia,tristate = <0>; | ||
113 | }; | ||
114 | }; | ||
115 | }; | ||
116 | |||
117 | sdhci@78000400 { | ||
118 | pinctrl-names = "default"; | ||
119 | pinctrl-0 = <&sdmmc4_default>; | ||
120 | }; | ||
diff --git a/Documentation/devicetree/bindings/pinctrl/ste,nomadik.txt b/Documentation/devicetree/bindings/pinctrl/ste,nomadik.txt new file mode 100644 index 000000000000..9a2f3f420526 --- /dev/null +++ b/Documentation/devicetree/bindings/pinctrl/ste,nomadik.txt | |||
@@ -0,0 +1,140 @@ | |||
1 | ST Ericsson Nomadik pinmux controller | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: "stericsson,nmk-pinctrl", "stericsson,nmk-pinctrl-db8540", | ||
5 | "stericsson,nmk-pinctrl-stn8815" | ||
6 | - reg: Should contain the register physical address and length of the PRCMU. | ||
7 | |||
8 | Please refer to pinctrl-bindings.txt in this directory for details of the | ||
9 | common pinctrl bindings used by client devices, including the meaning of the | ||
10 | phrase "pin configuration node". | ||
11 | |||
12 | ST Ericsson's pin configuration nodes act as a container for an arbitrary number of | ||
13 | subnodes. Each of these subnodes represents some desired configuration for a | ||
14 | pin, a group, or a list of pins or groups. This configuration can include the | ||
15 | mux function to select on those pin(s)/group(s), and various pin configuration | ||
16 | parameters, such as input, output, pull up, pull down... | ||
17 | |||
18 | The name of each subnode is not important; all subnodes should be enumerated | ||
19 | and processed purely based on their content. | ||
20 | |||
21 | Required subnode-properties: | ||
22 | - ste,pins : An array of strings. Each string contains the name of a pin or | ||
23 | group. | ||
24 | |||
25 | Optional subnode-properties: | ||
26 | - ste,function: A string containing the name of the function to mux to the | ||
27 | pin or group. | ||
28 | |||
29 | - ste,config: Handle of pin configuration node (e.g. ste,config = <&slpm_in_wkup_pdis>) | ||
30 | |||
31 | - ste,input : <0/1/2> | ||
32 | 0: input with no pull | ||
33 | 1: input with pull up, | ||
34 | 2: input with pull down, | ||
35 | |||
36 | - ste,output: <0/1/2> | ||
37 | 0: output low, | ||
38 | 1: output high, | ||
39 | 2: output (value is not specified). | ||
40 | |||
41 | - ste,sleep: <0/1> | ||
42 | 0: sleep mode disable, | ||
43 | 1: sleep mode enable. | ||
44 | |||
45 | - ste,sleep-input: <0/1/2/3> | ||
46 | 0: sleep input with no pull, | ||
47 | 1: sleep input with pull up, | ||
48 | 2: sleep input with pull down. | ||
49 | 3: sleep input and keep last input configuration (no pull, pull up or pull down). | ||
50 | |||
51 | - ste,sleep-output: <0/1/2> | ||
52 | 0: sleep output low, | ||
53 | 1: sleep output high, | ||
54 | 2: sleep output (value is not specified). | ||
55 | |||
56 | - ste,sleep-gpio: <0/1> | ||
57 | 0: disable sleep gpio mode, | ||
58 | 1: enable sleep gpio mode. | ||
59 | |||
60 | - ste,sleep-wakeup: <0/1> | ||
61 | 0: wake-up detection enabled, | ||
62 | 1: wake-up detection disabled. | ||
63 | |||
64 | - ste,sleep-pull-disable: <0/1> | ||
65 | 0: GPIO pull-up or pull-down resistor is enabled, when pin is an input, | ||
66 | 1: GPIO pull-up and pull-down resistor are disabled. | ||
67 | |||
68 | Example board file extract: | ||
69 | |||
70 | pinctrl@80157000 { | ||
71 | compatible = "stericsson,nmk-pinctrl"; | ||
72 | reg = <0x80157000 0x2000>; | ||
73 | |||
74 | pinctrl-names = "default"; | ||
75 | |||
76 | slpm_in_wkup_pdis: slpm_in_wkup_pdis { | ||
77 | ste,sleep = <1>; | ||
78 | ste,sleep-input = <3>; | ||
79 | ste,sleep-wakeup = <1>; | ||
80 | ste,sleep-pull-disable = <0>; | ||
81 | }; | ||
82 | |||
83 | slpm_out_hi_wkup_pdis: slpm_out_hi_wkup_pdis { | ||
84 | ste,sleep = <1>; | ||
85 | ste,sleep-output = <1>; | ||
86 | ste,sleep-wakeup = <1>; | ||
87 | ste,sleep-pull-disable = <0>; | ||
88 | }; | ||
89 | |||
90 | slpm_out_wkup_pdis: slpm_out_wkup_pdis { | ||
91 | ste,sleep = <1>; | ||
92 | ste,sleep-output = <2>; | ||
93 | ste,sleep-wakeup = <1>; | ||
94 | ste,sleep-pull-disable = <0>; | ||
95 | }; | ||
96 | |||
97 | uart0 { | ||
98 | uart0_default_mux: uart0_mux { | ||
99 | u0_default_mux { | ||
100 | ste,function = "u0"; | ||
101 | ste,pins = "u0_a_1"; | ||
102 | }; | ||
103 | }; | ||
104 | uart0_default_mode: uart0_default { | ||
105 | uart0_default_cfg1 { | ||
106 | ste,pins = "GPIO0", "GPIO2"; | ||
107 | ste,input = <1>; | ||
108 | }; | ||
109 | |||
110 | uart0_default_cfg2 { | ||
111 | ste,pins = "GPIO1", "GPIO3"; | ||
112 | ste,output = <1>; | ||
113 | }; | ||
114 | }; | ||
115 | uart0_sleep_mode: uart0_sleep { | ||
116 | uart0_sleep_cfg1 { | ||
117 | ste,pins = "GPIO0", "GPIO2"; | ||
118 | ste,config = <&slpm_in_wkup_pdis>; | ||
119 | }; | ||
120 | uart0_sleep_cfg2 { | ||
121 | ste,pins = "GPIO1"; | ||
122 | ste,config = <&slpm_out_hi_wkup_pdis>; | ||
123 | }; | ||
124 | uart0_sleep_cfg3 { | ||
125 | ste,pins = "GPIO3"; | ||
126 | ste,config = <&slpm_out_wkup_pdis>; | ||
127 | }; | ||
128 | }; | ||
129 | }; | ||
130 | }; | ||
131 | |||
132 | uart@80120000 { | ||
133 | compatible = "arm,pl011", "arm,primecell"; | ||
134 | reg = <0x80120000 0x1000>; | ||
135 | interrupts = <0 11 0x4>; | ||
136 | |||
137 | pinctrl-names = "default","sleep"; | ||
138 | pinctrl-0 = <&uart0_default_mux>, <&uart0_default_mode>; | ||
139 | pinctrl-1 = <&uart0_sleep_mode>; | ||
140 | }; | ||
diff --git a/Documentation/devicetree/bindings/power_supply/qnap-poweroff.txt b/Documentation/devicetree/bindings/power_supply/qnap-poweroff.txt new file mode 100644 index 000000000000..9a599d27bd75 --- /dev/null +++ b/Documentation/devicetree/bindings/power_supply/qnap-poweroff.txt | |||
@@ -0,0 +1,13 @@ | |||
1 | * QNAP Power Off | ||
2 | |||
3 | QNAP NAS devices have a microcontroller controlling the main power | ||
4 | supply. This microcontroller is connected to UART1 of the Kirkwood and | ||
5 | Orion5x SoCs. Sending the charactor 'A', at 19200 baud, tells the | ||
6 | microcontroller to turn the power off. This driver adds a handler to | ||
7 | pm_power_off which is called to turn the power off. | ||
8 | |||
9 | Required Properties: | ||
10 | - compatible: Should be "qnap,power-off" | ||
11 | |||
12 | - reg: Address and length of the register set for UART1 | ||
13 | - clocks: tclk clock | ||
diff --git a/Documentation/devicetree/bindings/power_supply/restart-poweroff.txt b/Documentation/devicetree/bindings/power_supply/restart-poweroff.txt new file mode 100644 index 000000000000..5776e684afda --- /dev/null +++ b/Documentation/devicetree/bindings/power_supply/restart-poweroff.txt | |||
@@ -0,0 +1,8 @@ | |||
1 | * Restart Power Off | ||
2 | |||
3 | Buffalo Linkstation LS-XHL and LS-CHLv2, and other devices power off | ||
4 | by restarting and letting u-boot keep hold of the machine until the | ||
5 | user presses a button. | ||
6 | |||
7 | Required Properties: | ||
8 | - compatible: Should be "restart-poweroff" | ||
diff --git a/Documentation/devicetree/bindings/powerpc/fsl/srio.txt b/Documentation/devicetree/bindings/powerpc/fsl/srio.txt index b039bcbee134..07abf0f2f440 100644 --- a/Documentation/devicetree/bindings/powerpc/fsl/srio.txt +++ b/Documentation/devicetree/bindings/powerpc/fsl/srio.txt | |||
@@ -8,9 +8,9 @@ Properties: | |||
8 | Definition: Must include "fsl,srio" for IP blocks with IP Block | 8 | Definition: Must include "fsl,srio" for IP blocks with IP Block |
9 | Revision Register (SRIO IPBRR1) Major ID equal to 0x01c0. | 9 | Revision Register (SRIO IPBRR1) Major ID equal to 0x01c0. |
10 | 10 | ||
11 | Optionally, a compatiable string of "fsl,srio-vX.Y" where X is Major | 11 | Optionally, a compatible string of "fsl,srio-vX.Y" where X is Major |
12 | version in IP Block Revision Register and Y is Minor version. If this | 12 | version in IP Block Revision Register and Y is Minor version. If this |
13 | compatiable is provided it should be ordered before "fsl,srio". | 13 | compatible is provided it should be ordered before "fsl,srio". |
14 | 14 | ||
15 | - reg | 15 | - reg |
16 | Usage: required | 16 | Usage: required |
diff --git a/Documentation/devicetree/bindings/regulator/anatop-regulator.txt b/Documentation/devicetree/bindings/regulator/anatop-regulator.txt index 357758cb6e92..758eae24082a 100644 --- a/Documentation/devicetree/bindings/regulator/anatop-regulator.txt +++ b/Documentation/devicetree/bindings/regulator/anatop-regulator.txt | |||
@@ -9,6 +9,11 @@ Required properties: | |||
9 | - anatop-min-voltage: Minimum voltage of this regulator | 9 | - anatop-min-voltage: Minimum voltage of this regulator |
10 | - anatop-max-voltage: Maximum voltage of this regulator | 10 | - anatop-max-voltage: Maximum voltage of this regulator |
11 | 11 | ||
12 | Optional properties: | ||
13 | - anatop-delay-reg-offset: Anatop MFD step time register offset | ||
14 | - anatop-delay-bit-shift: Bit shift for the step time register | ||
15 | - anatop-delay-bit-width: Number of bits used in the step time register | ||
16 | |||
12 | Any property defined as part of the core regulator | 17 | Any property defined as part of the core regulator |
13 | binding, defined in regulator.txt, can also be used. | 18 | binding, defined in regulator.txt, can also be used. |
14 | 19 | ||
@@ -23,6 +28,9 @@ Example: | |||
23 | anatop-reg-offset = <0x140>; | 28 | anatop-reg-offset = <0x140>; |
24 | anatop-vol-bit-shift = <9>; | 29 | anatop-vol-bit-shift = <9>; |
25 | anatop-vol-bit-width = <5>; | 30 | anatop-vol-bit-width = <5>; |
31 | anatop-delay-reg-offset = <0x170>; | ||
32 | anatop-delay-bit-shift = <24>; | ||
33 | anatop-delay-bit-width = <2>; | ||
26 | anatop-min-bit-val = <1>; | 34 | anatop-min-bit-val = <1>; |
27 | anatop-min-voltage = <725000>; | 35 | anatop-min-voltage = <725000>; |
28 | anatop-max-voltage = <1300000>; | 36 | anatop-max-voltage = <1300000>; |
diff --git a/Documentation/devicetree/bindings/regulator/s5m8767-regulator.txt b/Documentation/devicetree/bindings/regulator/s5m8767-regulator.txt new file mode 100644 index 000000000000..a35ff99003a5 --- /dev/null +++ b/Documentation/devicetree/bindings/regulator/s5m8767-regulator.txt | |||
@@ -0,0 +1,152 @@ | |||
1 | * Samsung S5M8767 Voltage and Current Regulator | ||
2 | |||
3 | The Samsung S5M8767 is a multi-function device which includes volatage and | ||
4 | current regulators, rtc, charger controller and other sub-blocks. It is | ||
5 | interfaced to the host controller using a i2c interface. Each sub-block is | ||
6 | addressed by the host system using different i2c slave address. This document | ||
7 | describes the bindings for 'pmic' sub-block of s5m8767. | ||
8 | |||
9 | Required properties: | ||
10 | - compatible: Should be "samsung,s5m8767-pmic". | ||
11 | - reg: Specifies the i2c slave address of the pmic block. It should be 0x66. | ||
12 | |||
13 | - s5m8767,pmic-buck2-dvs-voltage: A set of 8 voltage values in micro-volt (uV) | ||
14 | units for buck2 when changing voltage using gpio dvs. Refer to [1] below | ||
15 | for additional information. | ||
16 | |||
17 | - s5m8767,pmic-buck3-dvs-voltage: A set of 8 voltage values in micro-volt (uV) | ||
18 | units for buck3 when changing voltage using gpio dvs. Refer to [1] below | ||
19 | for additional information. | ||
20 | |||
21 | - s5m8767,pmic-buck4-dvs-voltage: A set of 8 voltage values in micro-volt (uV) | ||
22 | units for buck4 when changing voltage using gpio dvs. Refer to [1] below | ||
23 | for additional information. | ||
24 | |||
25 | - s5m8767,pmic-buck-ds-gpios: GPIO specifiers for three host gpio's used | ||
26 | for selecting GPIO DVS lines. It is one-to-one mapped to dvs gpio lines. | ||
27 | |||
28 | [1] If none of the 's5m8767,pmic-buck[2/3/4]-uses-gpio-dvs' optional | ||
29 | property is specified, the 's5m8767,pmic-buck[2/3/4]-dvs-voltage' | ||
30 | property should specify atleast one voltage level (which would be a | ||
31 | safe operating voltage). | ||
32 | |||
33 | If either of the 's5m8767,pmic-buck[2/3/4]-uses-gpio-dvs' optional | ||
34 | property is specified, then all the eight voltage values for the | ||
35 | 's5m8767,pmic-buck[2/3/4]-dvs-voltage' should be specified. | ||
36 | |||
37 | Optional properties: | ||
38 | - interrupt-parent: Specifies the phandle of the interrupt controller to which | ||
39 | the interrupts from s5m8767 are delivered to. | ||
40 | - interrupts: Interrupt specifiers for two interrupt sources. | ||
41 | - First interrupt specifier is for 'irq1' interrupt. | ||
42 | - Second interrupt specifier is for 'alert' interrupt. | ||
43 | - s5m8767,pmic-buck2-uses-gpio-dvs: 'buck2' can be controlled by gpio dvs. | ||
44 | - s5m8767,pmic-buck3-uses-gpio-dvs: 'buck3' can be controlled by gpio dvs. | ||
45 | - s5m8767,pmic-buck4-uses-gpio-dvs: 'buck4' can be controlled by gpio dvs. | ||
46 | |||
47 | Additional properties required if either of the optional properties are used: | ||
48 | |||
49 | - s5m8767,pmic-buck234-default-dvs-idx: Default voltage setting selected from | ||
50 | the possible 8 options selectable by the dvs gpios. The value of this | ||
51 | property should be between 0 and 7. If not specified or if out of range, the | ||
52 | default value of this property is set to 0. | ||
53 | |||
54 | - s5m8767,pmic-buck-dvs-gpios: GPIO specifiers for three host gpio's used | ||
55 | for dvs. The format of the gpio specifier depends in the gpio controller. | ||
56 | |||
57 | Regulators: The regulators of s5m8767 that have to be instantiated should be | ||
58 | included in a sub-node named 'regulators'. Regulator nodes included in this | ||
59 | sub-node should be of the format as listed below. | ||
60 | |||
61 | regulator_name { | ||
62 | ldo1_reg: LDO1 { | ||
63 | regulator-name = "VDD_ALIVE_1.0V"; | ||
64 | regulator-min-microvolt = <1100000>; | ||
65 | regulator-max-microvolt = <1100000>; | ||
66 | regulator-always-on; | ||
67 | regulator-boot-on; | ||
68 | op_mode = <1>; /* Normal Mode */ | ||
69 | }; | ||
70 | }; | ||
71 | The above regulator entries are defined in regulator bindings documentation | ||
72 | except op_mode description. | ||
73 | - op_mode: describes the different operating modes of the LDO's with | ||
74 | power mode change in SOC. The different possible values are, | ||
75 | 0 - always off mode | ||
76 | 1 - on in normal mode | ||
77 | 2 - low power mode | ||
78 | 3 - suspend mode | ||
79 | |||
80 | The following are the names of the regulators that the s5m8767 pmic block | ||
81 | supports. Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number | ||
82 | as per the datasheet of s5m8767. | ||
83 | |||
84 | - LDOn | ||
85 | - valid values for n are 1 to 28 | ||
86 | - Example: LDO0, LD01, LDO28 | ||
87 | - BUCKn | ||
88 | - valid values for n are 1 to 9. | ||
89 | - Example: BUCK1, BUCK2, BUCK9 | ||
90 | |||
91 | The bindings inside the regulator nodes use the standard regulator bindings | ||
92 | which are documented elsewhere. | ||
93 | |||
94 | Example: | ||
95 | |||
96 | s5m8767_pmic@66 { | ||
97 | compatible = "samsung,s5m8767-pmic"; | ||
98 | reg = <0x66>; | ||
99 | |||
100 | s5m8767,pmic-buck2-uses-gpio-dvs; | ||
101 | s5m8767,pmic-buck3-uses-gpio-dvs; | ||
102 | s5m8767,pmic-buck4-uses-gpio-dvs; | ||
103 | |||
104 | s5m8767,pmic-buck-default-dvs-idx = <0>; | ||
105 | |||
106 | s5m8767,pmic-buck-dvs-gpios = <&gpx0 0 1 0 0>, /* DVS1 */ | ||
107 | <&gpx0 1 1 0 0>, /* DVS2 */ | ||
108 | <&gpx0 2 1 0 0>; /* DVS3 */ | ||
109 | |||
110 | s5m8767,pmic-buck-ds-gpios = <&gpx2 3 1 0 0>, /* SET1 */ | ||
111 | <&gpx2 4 1 0 0>, /* SET2 */ | ||
112 | <&gpx2 5 1 0 0>; /* SET3 */ | ||
113 | |||
114 | s5m8767,pmic-buck2-dvs-voltage = <1350000>, <1300000>, | ||
115 | <1250000>, <1200000>, | ||
116 | <1150000>, <1100000>, | ||
117 | <1000000>, <950000>; | ||
118 | |||
119 | s5m8767,pmic-buck3-dvs-voltage = <1100000>, <1100000>, | ||
120 | <1100000>, <1100000>, | ||
121 | <1000000>, <1000000>, | ||
122 | <1000000>, <1000000>; | ||
123 | |||
124 | s5m8767,pmic-buck4-dvs-voltage = <1200000>, <1200000>, | ||
125 | <1200000>, <1200000>, | ||
126 | <1200000>, <1200000>, | ||
127 | <1200000>, <1200000>; | ||
128 | |||
129 | regulators { | ||
130 | ldo1_reg: LDO1 { | ||
131 | regulator-name = "VDD_ABB_3.3V"; | ||
132 | regulator-min-microvolt = <3300000>; | ||
133 | regulator-max-microvolt = <3300000>; | ||
134 | op_mode = <1>; /* Normal Mode */ | ||
135 | }; | ||
136 | |||
137 | ldo2_reg: LDO2 { | ||
138 | regulator-name = "VDD_ALIVE_1.1V"; | ||
139 | regulator-min-microvolt = <1100000>; | ||
140 | regulator-max-microvolt = <1100000>; | ||
141 | regulator-always-on; | ||
142 | }; | ||
143 | |||
144 | buck1_reg: BUCK1 { | ||
145 | regulator-name = "VDD_MIF_1.2V"; | ||
146 | regulator-min-microvolt = <950000>; | ||
147 | regulator-max-microvolt = <1350000>; | ||
148 | regulator-always-on; | ||
149 | regulator-boot-on; | ||
150 | }; | ||
151 | }; | ||
152 | }; | ||
diff --git a/Documentation/devicetree/bindings/regulator/tps51632-regulator.txt b/Documentation/devicetree/bindings/regulator/tps51632-regulator.txt new file mode 100644 index 000000000000..2f7e44a96414 --- /dev/null +++ b/Documentation/devicetree/bindings/regulator/tps51632-regulator.txt | |||
@@ -0,0 +1,27 @@ | |||
1 | TPS51632 Voltage regulators | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: Must be "ti,tps51632" | ||
5 | - reg: I2C slave address | ||
6 | |||
7 | Optional properties: | ||
8 | - ti,enable-pwm-dvfs: Enable the DVFS voltage control through the PWM interface. | ||
9 | - ti,dvfs-step-20mV: The 20mV step voltage when PWM DVFS enabled. Missing this | ||
10 | will set 10mV step voltage in PWM DVFS mode. In normal mode, the voltage | ||
11 | step is 10mV as per datasheet. | ||
12 | |||
13 | Any property defined as part of the core regulator binding, defined in | ||
14 | regulator.txt, can also be used. | ||
15 | |||
16 | Example: | ||
17 | |||
18 | tps51632 { | ||
19 | compatible = "ti,tps51632"; | ||
20 | reg = <0x43>; | ||
21 | regulator-name = "tps51632-vout"; | ||
22 | regulator-min-microvolt = <500000>; | ||
23 | regulator-max-microvolt = <1500000>; | ||
24 | regulator-boot-on; | ||
25 | ti,enable-pwm-dvfs; | ||
26 | ti,dvfs-step-20mV; | ||
27 | }; | ||
diff --git a/Documentation/devicetree/bindings/regulator/tps62360-regulator.txt b/Documentation/devicetree/bindings/regulator/tps62360-regulator.txt index c8ca6b8f6582..1b20c3dbcdb8 100644 --- a/Documentation/devicetree/bindings/regulator/tps62360-regulator.txt +++ b/Documentation/devicetree/bindings/regulator/tps62360-regulator.txt | |||
@@ -17,9 +17,9 @@ Optional properties: | |||
17 | - ti,vsel1-gpio: Gpio for controlling VSEL1 line. | 17 | - ti,vsel1-gpio: Gpio for controlling VSEL1 line. |
18 | If this property is missing, then assume that there is no GPIO | 18 | If this property is missing, then assume that there is no GPIO |
19 | for vsel1 control. | 19 | for vsel1 control. |
20 | - ti,vsel0-state-high: Inital state of vsel0 input is high. | 20 | - ti,vsel0-state-high: Initial state of vsel0 input is high. |
21 | If this property is missing, then assume the state as low (0). | 21 | If this property is missing, then assume the state as low (0). |
22 | - ti,vsel1-state-high: Inital state of vsel1 input is high. | 22 | - ti,vsel1-state-high: Initial state of vsel1 input is high. |
23 | If this property is missing, then assume the state as low (0). | 23 | If this property is missing, then assume the state as low (0). |
24 | 24 | ||
25 | Any property defined as part of the core regulator binding, defined in | 25 | Any property defined as part of the core regulator binding, defined in |
diff --git a/Documentation/devicetree/bindings/rtc/s3c-rtc.txt b/Documentation/devicetree/bindings/rtc/s3c-rtc.txt index 90ec45fd33ec..7ac7259fe9ea 100644 --- a/Documentation/devicetree/bindings/rtc/s3c-rtc.txt +++ b/Documentation/devicetree/bindings/rtc/s3c-rtc.txt | |||
@@ -7,7 +7,7 @@ Required properties: | |||
7 | - reg: physical base address of the controller and length of memory mapped | 7 | - reg: physical base address of the controller and length of memory mapped |
8 | region. | 8 | region. |
9 | - interrupts: Two interrupt numbers to the cpu should be specified. First | 9 | - interrupts: Two interrupt numbers to the cpu should be specified. First |
10 | interrupt number is the rtc alarm interupt and second interrupt number | 10 | interrupt number is the rtc alarm interrupt and second interrupt number |
11 | is the rtc tick interrupt. The number of cells representing a interrupt | 11 | is the rtc tick interrupt. The number of cells representing a interrupt |
12 | depends on the parent interrupt controller. | 12 | depends on the parent interrupt controller. |
13 | 13 | ||
diff --git a/Documentation/devicetree/bindings/spi/sh-msiof.txt b/Documentation/devicetree/bindings/spi/sh-msiof.txt new file mode 100644 index 000000000000..e6222106ca36 --- /dev/null +++ b/Documentation/devicetree/bindings/spi/sh-msiof.txt | |||
@@ -0,0 +1,12 @@ | |||
1 | Renesas MSIOF spi controller | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : "renesas,sh-msiof" for SuperH or | ||
5 | "renesas,sh-mobile-msiof" for SH Mobile series | ||
6 | - reg : Offset and length of the register set for the device | ||
7 | - interrupts : interrupt line used by MSIOF | ||
8 | |||
9 | Optional properties: | ||
10 | - num-cs : total number of chip-selects | ||
11 | - renesas,tx-fifo-size : Overrides the default tx fifo size given in words | ||
12 | - renesas,rx-fifo-size : Overrides the default rx fifo size given in words | ||
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt index 902b1b1f568e..19e1ef73ab0d 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.txt +++ b/Documentation/devicetree/bindings/vendor-prefixes.txt | |||
@@ -14,6 +14,7 @@ bosch Bosch Sensortec GmbH | |||
14 | brcm Broadcom Corporation | 14 | brcm Broadcom Corporation |
15 | cavium Cavium, Inc. | 15 | cavium Cavium, Inc. |
16 | chrp Common Hardware Reference Platform | 16 | chrp Common Hardware Reference Platform |
17 | cirrus Cirrus Logic, Inc. | ||
17 | cortina Cortina Systems, Inc. | 18 | cortina Cortina Systems, Inc. |
18 | dallas Maxim Integrated Products (formerly Dallas Semiconductor) | 19 | dallas Maxim Integrated Products (formerly Dallas Semiconductor) |
19 | denx Denx Software Engineering | 20 | denx Denx Software Engineering |
@@ -42,6 +43,7 @@ powervr PowerVR (deprecated, use img) | |||
42 | qcom Qualcomm, Inc. | 43 | qcom Qualcomm, Inc. |
43 | ramtron Ramtron International | 44 | ramtron Ramtron International |
44 | realtek Realtek Semiconductor Corp. | 45 | realtek Realtek Semiconductor Corp. |
46 | renesas Renesas Electronics Corporation | ||
45 | samsung Samsung Semiconductor | 47 | samsung Samsung Semiconductor |
46 | sbs Smart Battery System | 48 | sbs Smart Battery System |
47 | schindler Schindler | 49 | schindler Schindler |
@@ -50,8 +52,10 @@ simtek | |||
50 | sirf SiRF Technology, Inc. | 52 | sirf SiRF Technology, Inc. |
51 | snps Synopsys, Inc. | 53 | snps Synopsys, Inc. |
52 | st STMicroelectronics | 54 | st STMicroelectronics |
55 | ste ST-Ericsson | ||
53 | stericsson ST-Ericsson | 56 | stericsson ST-Ericsson |
54 | ti Texas Instruments | 57 | ti Texas Instruments |
58 | toshiba Toshiba Corporation | ||
55 | via VIA Technologies, Inc. | 59 | via VIA Technologies, Inc. |
56 | wlf Wolfson Microelectronics | 60 | wlf Wolfson Microelectronics |
57 | wm Wondermedia Technologies, Inc. | 61 | wm Wondermedia Technologies, Inc. |
diff --git a/Documentation/devicetree/bindings/watchdog/samsung-wdt.txt b/Documentation/devicetree/bindings/watchdog/samsung-wdt.txt index 79ead8263ae4..ce0d8e78ed8f 100644 --- a/Documentation/devicetree/bindings/watchdog/samsung-wdt.txt +++ b/Documentation/devicetree/bindings/watchdog/samsung-wdt.txt | |||
@@ -2,7 +2,7 @@ | |||
2 | 2 | ||
3 | The Samsung's Watchdog controller is used for resuming system operation | 3 | The Samsung's Watchdog controller is used for resuming system operation |
4 | after a preset amount of time during which the WDT reset event has not | 4 | after a preset amount of time during which the WDT reset event has not |
5 | occured. | 5 | occurred. |
6 | 6 | ||
7 | Required properties: | 7 | Required properties: |
8 | - compatible : should be "samsung,s3c2410-wdt" | 8 | - compatible : should be "samsung,s3c2410-wdt" |
diff --git a/Documentation/hwmon/coretemp b/Documentation/hwmon/coretemp index 3374c085678d..fec5a9bf755f 100644 --- a/Documentation/hwmon/coretemp +++ b/Documentation/hwmon/coretemp | |||
@@ -66,6 +66,7 @@ Process Processor TjMax(C) | |||
66 | i5 3470T 91 | 66 | i5 3470T 91 |
67 | 67 | ||
68 | 32nm Core i3/i5/i7 Processors | 68 | 32nm Core i3/i5/i7 Processors |
69 | i7 2600 98 | ||
69 | i7 660UM/640/620, 640LM/620, 620M, 610E 105 | 70 | i7 660UM/640/620, 640LM/620, 620M, 610E 105 |
70 | i5 540UM/520/430, 540M/520/450/430 105 | 71 | i5 540UM/520/430, 540M/520/450/430 105 |
71 | i3 330E, 370M/350/330 90 rPGA, 105 BGA | 72 | i3 330E, 370M/350/330 90 rPGA, 105 BGA |
@@ -79,7 +80,10 @@ Process Processor TjMax(C) | |||
79 | P4505/P4500 90 | 80 | P4505/P4500 90 |
80 | 81 | ||
81 | 32nm Atom Processors | 82 | 32nm Atom Processors |
83 | S1260/1220 95 | ||
84 | S1240 102 | ||
82 | Z2460 90 | 85 | Z2460 90 |
86 | Z2760 90 | ||
83 | D2700/2550/2500 100 | 87 | D2700/2550/2500 100 |
84 | N2850/2800/2650/2600 100 | 88 | N2850/2800/2650/2600 100 |
85 | 89 | ||
@@ -98,6 +102,7 @@ Process Processor TjMax(C) | |||
98 | 102 | ||
99 | 45nm Atom Processors | 103 | 45nm Atom Processors |
100 | D525/510/425/410 100 | 104 | D525/510/425/410 100 |
105 | K525/510/425/410 100 | ||
101 | Z670/650 90 | 106 | Z670/650 90 |
102 | Z560/550/540/530P/530/520PT/520/515/510PT/510P 90 | 107 | Z560/550/540/530P/530/520PT/520/515/510PT/510P 90 |
103 | Z510/500 90 | 108 | Z510/500 90 |
@@ -107,7 +112,11 @@ Process Processor TjMax(C) | |||
107 | 330/230 125 | 112 | 330/230 125 |
108 | E680/660/640/620 90 | 113 | E680/660/640/620 90 |
109 | E680T/660T/640T/620T 110 | 114 | E680T/660T/640T/620T 110 |
115 | E665C/645C 90 | ||
116 | E665CT/645CT 110 | ||
110 | CE4170/4150/4110 110 | 117 | CE4170/4150/4110 110 |
118 | CE4200 series unknown | ||
119 | CE5300 series unknown | ||
111 | 120 | ||
112 | 45nm Core2 Processors | 121 | 45nm Core2 Processors |
113 | Solo ULV SU3500/3300 100 | 122 | Solo ULV SU3500/3300 100 |
diff --git a/Documentation/hwmon/ina209 b/Documentation/hwmon/ina209 new file mode 100644 index 000000000000..672501de4509 --- /dev/null +++ b/Documentation/hwmon/ina209 | |||
@@ -0,0 +1,93 @@ | |||
1 | Kernel driver ina209 | ||
2 | ===================== | ||
3 | |||
4 | Supported chips: | ||
5 | * Burr-Brown / Texas Instruments INA209 | ||
6 | Prefix: 'ina209' | ||
7 | Addresses scanned: - | ||
8 | Datasheet: | ||
9 | http://www.ti.com/lit/gpn/ina209 | ||
10 | |||
11 | Author: Paul Hays <Paul.Hays@cattail.ca> | ||
12 | Author: Ira W. Snyder <iws@ovro.caltech.edu> | ||
13 | Author: Guenter Roeck <linux@roeck-us.net> | ||
14 | |||
15 | |||
16 | Description | ||
17 | ----------- | ||
18 | |||
19 | The TI / Burr-Brown INA209 monitors voltage, current, and power on the high side | ||
20 | of a D.C. power supply. It can perform measurements and calculations in the | ||
21 | background to supply readings at any time. It includes a programmable | ||
22 | calibration multiplier to scale the displayed current and power values. | ||
23 | |||
24 | |||
25 | Sysfs entries | ||
26 | ------------- | ||
27 | |||
28 | The INA209 chip is highly configurable both via hardwiring and via | ||
29 | the I2C bus. See the datasheet for details. | ||
30 | |||
31 | This tries to expose most monitoring features of the hardware via | ||
32 | sysfs. It does not support every feature of this chip. | ||
33 | |||
34 | |||
35 | in0_input shunt voltage (mV) | ||
36 | in0_input_highest shunt voltage historical maximum reading (mV) | ||
37 | in0_input_lowest shunt voltage historical minimum reading (mV) | ||
38 | in0_reset_history reset shunt voltage history | ||
39 | in0_max shunt voltage max alarm limit (mV) | ||
40 | in0_min shunt voltage min alarm limit (mV) | ||
41 | in0_crit_max shunt voltage crit max alarm limit (mV) | ||
42 | in0_crit_min shunt voltage crit min alarm limit (mV) | ||
43 | in0_max_alarm shunt voltage max alarm limit exceeded | ||
44 | in0_min_alarm shunt voltage min alarm limit exceeded | ||
45 | in0_crit_max_alarm shunt voltage crit max alarm limit exceeded | ||
46 | in0_crit_min_alarm shunt voltage crit min alarm limit exceeded | ||
47 | |||
48 | in1_input bus voltage (mV) | ||
49 | in1_input_highest bus voltage historical maximum reading (mV) | ||
50 | in1_input_lowest bus voltage historical minimum reading (mV) | ||
51 | in1_reset_history reset bus voltage history | ||
52 | in1_max bus voltage max alarm limit (mV) | ||
53 | in1_min bus voltage min alarm limit (mV) | ||
54 | in1_crit_max bus voltage crit max alarm limit (mV) | ||
55 | in1_crit_min bus voltage crit min alarm limit (mV) | ||
56 | in1_max_alarm bus voltage max alarm limit exceeded | ||
57 | in1_min_alarm bus voltage min alarm limit exceeded | ||
58 | in1_crit_max_alarm bus voltage crit max alarm limit exceeded | ||
59 | in1_crit_min_alarm bus voltage crit min alarm limit exceeded | ||
60 | |||
61 | power1_input power measurement (uW) | ||
62 | power1_input_highest power historical maximum reading (uW) | ||
63 | power1_reset_history reset power history | ||
64 | power1_max power max alarm limit (uW) | ||
65 | power1_crit power crit alarm limit (uW) | ||
66 | power1_max_alarm power max alarm limit exceeded | ||
67 | power1_crit_alarm power crit alarm limit exceeded | ||
68 | |||
69 | curr1_input current measurement (mA) | ||
70 | |||
71 | update_interval data conversion time; affects number of samples used | ||
72 | to average results for shunt and bus voltages. | ||
73 | |||
74 | General Remarks | ||
75 | --------------- | ||
76 | |||
77 | The power and current registers in this chip require that the calibration | ||
78 | register is programmed correctly before they are used. Normally this is expected | ||
79 | to be done in the BIOS. In the absence of BIOS programming, the shunt resistor | ||
80 | voltage can be provided using platform data. The driver uses platform data from | ||
81 | the ina2xx driver for this purpose. If calibration register data is not provided | ||
82 | via platform data, the driver checks if the calibration register has been | ||
83 | programmed (ie has a value not equal to zero). If so, this value is retained. | ||
84 | Otherwise, a default value reflecting a shunt resistor value of 10 mOhm is | ||
85 | programmed into the calibration register. | ||
86 | |||
87 | |||
88 | Output Pins | ||
89 | ----------- | ||
90 | |||
91 | Output pin programming is a board feature which depends on the BIOS. It is | ||
92 | outside the scope of a hardware monitoring driver to enable or disable output | ||
93 | pins. | ||
diff --git a/Documentation/hwmon/it87 b/Documentation/hwmon/it87 index 8386aadc0a82..c263740f0cba 100644 --- a/Documentation/hwmon/it87 +++ b/Documentation/hwmon/it87 | |||
@@ -30,6 +30,14 @@ Supported chips: | |||
30 | Prefix: 'it8728' | 30 | Prefix: 'it8728' |
31 | Addresses scanned: from Super I/O config space (8 I/O ports) | 31 | Addresses scanned: from Super I/O config space (8 I/O ports) |
32 | Datasheet: Not publicly available | 32 | Datasheet: Not publicly available |
33 | * IT8771E | ||
34 | Prefix: 'it8771' | ||
35 | Addresses scanned: from Super I/O config space (8 I/O ports) | ||
36 | Datasheet: Not publicly available | ||
37 | * IT8772E | ||
38 | Prefix: 'it8772' | ||
39 | Addresses scanned: from Super I/O config space (8 I/O ports) | ||
40 | Datasheet: Not publicly available | ||
33 | * IT8782F | 41 | * IT8782F |
34 | Prefix: 'it8782' | 42 | Prefix: 'it8782' |
35 | Addresses scanned: from Super I/O config space (8 I/O ports) | 43 | Addresses scanned: from Super I/O config space (8 I/O ports) |
@@ -83,8 +91,8 @@ Description | |||
83 | ----------- | 91 | ----------- |
84 | 92 | ||
85 | This driver implements support for the IT8705F, IT8712F, IT8716F, | 93 | This driver implements support for the IT8705F, IT8712F, IT8716F, |
86 | IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8758E, IT8781F, IT8782F, | 94 | IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8758E, IT8771E, IT8772E, |
87 | IT8783E/F, and SiS950 chips. | 95 | IT8782F, IT8783E/F, and SiS950 chips. |
88 | 96 | ||
89 | These chips are 'Super I/O chips', supporting floppy disks, infrared ports, | 97 | These chips are 'Super I/O chips', supporting floppy disks, infrared ports, |
90 | joysticks and other miscellaneous stuff. For hardware monitoring, they | 98 | joysticks and other miscellaneous stuff. For hardware monitoring, they |
@@ -118,8 +126,8 @@ The IT8726F is just bit enhanced IT8716F with additional hardware | |||
118 | for AMD power sequencing. Therefore the chip will appear as IT8716F | 126 | for AMD power sequencing. Therefore the chip will appear as IT8716F |
119 | to userspace applications. | 127 | to userspace applications. |
120 | 128 | ||
121 | The IT8728F is considered compatible with the IT8721F, until a datasheet | 129 | The IT8728F, IT8771E, and IT8772E are considered compatible with the IT8721F, |
122 | becomes available (hopefully.) | 130 | until a datasheet becomes available (hopefully.) |
123 | 131 | ||
124 | Temperatures are measured in degrees Celsius. An alarm is triggered once | 132 | Temperatures are measured in degrees Celsius. An alarm is triggered once |
125 | when the Overtemperature Shutdown limit is crossed. | 133 | when the Overtemperature Shutdown limit is crossed. |
diff --git a/Documentation/hwmon/jc42 b/Documentation/hwmon/jc42 index 66ecb9fc8246..165077121238 100644 --- a/Documentation/hwmon/jc42 +++ b/Documentation/hwmon/jc42 | |||
@@ -17,12 +17,13 @@ Supported chips: | |||
17 | * Maxim MAX6604 | 17 | * Maxim MAX6604 |
18 | Datasheets: | 18 | Datasheets: |
19 | http://datasheets.maxim-ic.com/en/ds/MAX6604.pdf | 19 | http://datasheets.maxim-ic.com/en/ds/MAX6604.pdf |
20 | * Microchip MCP9804, MCP9805, MCP98242, MCP98243, MCP9843 | 20 | * Microchip MCP9804, MCP9805, MCP98242, MCP98243, MCP98244, MCP9843 |
21 | Datasheets: | 21 | Datasheets: |
22 | http://ww1.microchip.com/downloads/en/DeviceDoc/22203C.pdf | 22 | http://ww1.microchip.com/downloads/en/DeviceDoc/22203C.pdf |
23 | http://ww1.microchip.com/downloads/en/DeviceDoc/21977b.pdf | 23 | http://ww1.microchip.com/downloads/en/DeviceDoc/21977b.pdf |
24 | http://ww1.microchip.com/downloads/en/DeviceDoc/21996a.pdf | 24 | http://ww1.microchip.com/downloads/en/DeviceDoc/21996a.pdf |
25 | http://ww1.microchip.com/downloads/en/DeviceDoc/22153c.pdf | 25 | http://ww1.microchip.com/downloads/en/DeviceDoc/22153c.pdf |
26 | http://ww1.microchip.com/downloads/en/DeviceDoc/22327A.pdf | ||
26 | * NXP Semiconductors SE97, SE97B, SE98, SE98A | 27 | * NXP Semiconductors SE97, SE97B, SE98, SE98A |
27 | Datasheets: | 28 | Datasheets: |
28 | http://www.nxp.com/documents/data_sheet/SE97.pdf | 29 | http://www.nxp.com/documents/data_sheet/SE97.pdf |
diff --git a/Documentation/hwmon/lm73 b/Documentation/hwmon/lm73 new file mode 100644 index 000000000000..8af059dcb642 --- /dev/null +++ b/Documentation/hwmon/lm73 | |||
@@ -0,0 +1,90 @@ | |||
1 | Kernel driver lm73 | ||
2 | ================== | ||
3 | |||
4 | Supported chips: | ||
5 | * Texas Instruments LM73 | ||
6 | Prefix: 'lm73' | ||
7 | Addresses scanned: I2C 0x48, 0x49, 0x4a, 0x4c, 0x4d, and 0x4e | ||
8 | Datasheet: Publicly available at the Texas Instruments website | ||
9 | http://www.ti.com/product/lm73 | ||
10 | |||
11 | Author: Guillaume Ligneul <guillaume.ligneul@gmail.com> | ||
12 | Documentation: Chris Verges <kg4ysn@gmail.com> | ||
13 | |||
14 | |||
15 | Description | ||
16 | ----------- | ||
17 | |||
18 | The LM73 is a digital temperature sensor. All temperature values are | ||
19 | given in degrees Celsius. | ||
20 | |||
21 | Measurement Resolution Support | ||
22 | ------------------------------ | ||
23 | |||
24 | The LM73 supports four resolutions, defined in terms of degrees C per | ||
25 | LSB: 0.25, 0.125, 0.0625, and 0.3125. Changing the resolution mode | ||
26 | affects the conversion time of the LM73's analog-to-digital converter. | ||
27 | From userspace, the desired resolution can be specified as a function of | ||
28 | conversion time via the 'update_interval' sysfs attribute for the | ||
29 | device. This attribute will normalize ranges of input values to the | ||
30 | maximum times defined for the resolution in the datasheet. | ||
31 | |||
32 | Resolution Conv. Time Input Range | ||
33 | (C/LSB) (msec) (msec) | ||
34 | -------------------------------------- | ||
35 | 0.25 14 0..14 | ||
36 | 0.125 28 15..28 | ||
37 | 0.0625 56 29..56 | ||
38 | 0.03125 112 57..infinity | ||
39 | -------------------------------------- | ||
40 | |||
41 | The following examples show how the 'update_interval' attribute can be | ||
42 | used to change the conversion time: | ||
43 | |||
44 | $ echo 0 > update_interval | ||
45 | $ cat update_interval | ||
46 | 14 | ||
47 | $ cat temp1_input | ||
48 | 24250 | ||
49 | |||
50 | $ echo 22 > update_interval | ||
51 | $ cat update_interval | ||
52 | 28 | ||
53 | $ cat temp1_input | ||
54 | 24125 | ||
55 | |||
56 | $ echo 56 > update_interval | ||
57 | $ cat update_interval | ||
58 | 56 | ||
59 | $ cat temp1_input | ||
60 | 24062 | ||
61 | |||
62 | $ echo 85 > update_interval | ||
63 | $ cat update_interval | ||
64 | 112 | ||
65 | $ cat temp1_input | ||
66 | 24031 | ||
67 | |||
68 | As shown here, the lm73 driver automatically adjusts any user input for | ||
69 | 'update_interval' via a step function. Reading back the | ||
70 | 'update_interval' value after a write operation will confirm the | ||
71 | conversion time actively in use. | ||
72 | |||
73 | Mathematically, the resolution can be derived from the conversion time | ||
74 | via the following function: | ||
75 | |||
76 | g(x) = 0.250 * [log(x/14) / log(2)] | ||
77 | |||
78 | where 'x' is the output from 'update_interval' and 'g(x)' is the | ||
79 | resolution in degrees C per LSB. | ||
80 | |||
81 | Alarm Support | ||
82 | ------------- | ||
83 | |||
84 | The LM73 features a simple over-temperature alarm mechanism. This | ||
85 | feature is exposed via the sysfs attributes. | ||
86 | |||
87 | The attributes 'temp1_max_alarm' and 'temp1_min_alarm' are flags | ||
88 | provided by the LM73 that indicate whether the measured temperature has | ||
89 | passed the 'temp1_max' and 'temp1_min' thresholds, respectively. These | ||
90 | values _must_ be read to clear the registers on the LM73. | ||
diff --git a/Documentation/hwmon/max34440 b/Documentation/hwmon/max34440 index 04482226db20..47651ff341ae 100644 --- a/Documentation/hwmon/max34440 +++ b/Documentation/hwmon/max34440 | |||
@@ -16,6 +16,16 @@ Supported chips: | |||
16 | Prefixes: 'max34446' | 16 | Prefixes: 'max34446' |
17 | Addresses scanned: - | 17 | Addresses scanned: - |
18 | Datasheet: http://datasheets.maxim-ic.com/en/ds/MAX34446.pdf | 18 | Datasheet: http://datasheets.maxim-ic.com/en/ds/MAX34446.pdf |
19 | * Maxim MAX34460 | ||
20 | PMBus 12-Channel Voltage Monitor & Sequencer | ||
21 | Prefix: 'max34460' | ||
22 | Addresses scanned: - | ||
23 | Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX34460.pdf | ||
24 | * Maxim MAX34461 | ||
25 | PMBus 16-Channel Voltage Monitor & Sequencer | ||
26 | Prefix: 'max34461' | ||
27 | Addresses scanned: - | ||
28 | Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX34461.pdf | ||
19 | 29 | ||
20 | Author: Guenter Roeck <guenter.roeck@ericsson.com> | 30 | Author: Guenter Roeck <guenter.roeck@ericsson.com> |
21 | 31 | ||
@@ -26,6 +36,9 @@ Description | |||
26 | This driver supports hardware montoring for Maxim MAX34440 PMBus 6-Channel | 36 | This driver supports hardware montoring for Maxim MAX34440 PMBus 6-Channel |
27 | Power-Supply Manager, MAX34441 PMBus 5-Channel Power-Supply Manager | 37 | Power-Supply Manager, MAX34441 PMBus 5-Channel Power-Supply Manager |
28 | and Intelligent Fan Controller, and MAX34446 PMBus Power-Supply Data Logger. | 38 | and Intelligent Fan Controller, and MAX34446 PMBus Power-Supply Data Logger. |
39 | It also supports the MAX34460 and MAX34461 PMBus Voltage Monitor & Sequencers. | ||
40 | The MAX34460 supports 12 voltage channels, and the MAX34461 supports 16 voltage | ||
41 | channels. | ||
29 | 42 | ||
30 | The driver is a client driver to the core PMBus driver. Please see | 43 | The driver is a client driver to the core PMBus driver. Please see |
31 | Documentation/hwmon/pmbus for details on PMBus client drivers. | 44 | Documentation/hwmon/pmbus for details on PMBus client drivers. |
@@ -109,3 +122,6 @@ temp[1-8]_reset_history Write any value to reset history. | |||
109 | 122 | ||
110 | temp7 and temp8 attributes only exist for MAX34440. | 123 | temp7 and temp8 attributes only exist for MAX34440. |
111 | MAX34446 only supports temp[1-3]. | 124 | MAX34446 only supports temp[1-3]. |
125 | |||
126 | MAX34460 supports attribute groups in[1-12] and temp[1-5]. | ||
127 | MAX34461 supports attribute groups in[1-16] and temp[1-5]. | ||
diff --git a/Documentation/hwmon/max6697 b/Documentation/hwmon/max6697 new file mode 100644 index 000000000000..6594177ededa --- /dev/null +++ b/Documentation/hwmon/max6697 | |||
@@ -0,0 +1,58 @@ | |||
1 | Kernel driver max6697 | ||
2 | ===================== | ||
3 | |||
4 | Supported chips: | ||
5 | * Maxim MAX6581 | ||
6 | Prefix: 'max6581' | ||
7 | Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX6581.pdf | ||
8 | * Maxim MAX6602 | ||
9 | Prefix: 'max6602' | ||
10 | Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX6602.pdf | ||
11 | * Maxim MAX6622 | ||
12 | Prefix: 'max6622' | ||
13 | Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX6622.pdf | ||
14 | * Maxim MAX6636 | ||
15 | Prefix: 'max6636' | ||
16 | Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX6636.pdf | ||
17 | * Maxim MAX6689 | ||
18 | Prefix: 'max6689' | ||
19 | Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX6689.pdf | ||
20 | * Maxim MAX6693 | ||
21 | Prefix: 'max6693' | ||
22 | Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX6693.pdf | ||
23 | * Maxim MAX6694 | ||
24 | Prefix: 'max6694' | ||
25 | Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX6694.pdf | ||
26 | * Maxim MAX6697 | ||
27 | Prefix: 'max6697' | ||
28 | Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX6697.pdf | ||
29 | * Maxim MAX6698 | ||
30 | Prefix: 'max6698' | ||
31 | Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX6698.pdf | ||
32 | * Maxim MAX6699 | ||
33 | Prefix: 'max6699' | ||
34 | Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX6699.pdf | ||
35 | |||
36 | Author: | ||
37 | Guenter Roeck <linux@roeck-us.net> | ||
38 | |||
39 | Description | ||
40 | ----------- | ||
41 | |||
42 | This driver implements support for several MAX6697 compatible temperature sensor | ||
43 | chips. The chips support one local temperature sensor plus four, six, or seven | ||
44 | remote temperature sensors. Remote temperature sensors are diode-connected | ||
45 | thermal transitors, except for MAX6698 which supports three diode-connected | ||
46 | thermal transistors plus three thermistors in addition to the local temperature | ||
47 | sensor. | ||
48 | |||
49 | The driver provides the following sysfs attributes. temp1 is the local (chip) | ||
50 | temperature, temp[2..n] are remote temperatures. The actually supported | ||
51 | per-channel attributes are chip type and channel dependent. | ||
52 | |||
53 | tempX_input RO temperature | ||
54 | tempX_max RW temperature maximum threshold | ||
55 | tempX_max_alarm RO temperature maximum threshold alarm | ||
56 | tempX_crit RW temperature critical threshold | ||
57 | tempX_crit_alarm RO temperature critical threshold alarm | ||
58 | tempX_fault RO temperature diode fault (remote sensors only) | ||
diff --git a/Documentation/hwmon/sysfs-interface b/Documentation/hwmon/sysfs-interface index 1f4dd855a299..79f8257dd790 100644 --- a/Documentation/hwmon/sysfs-interface +++ b/Documentation/hwmon/sysfs-interface | |||
@@ -722,14 +722,14 @@ add/subtract if it has been divided before the add/subtract. | |||
722 | What to do if a value is found to be invalid, depends on the type of the | 722 | What to do if a value is found to be invalid, depends on the type of the |
723 | sysfs attribute that is being set. If it is a continuous setting like a | 723 | sysfs attribute that is being set. If it is a continuous setting like a |
724 | tempX_max or inX_max attribute, then the value should be clamped to its | 724 | tempX_max or inX_max attribute, then the value should be clamped to its |
725 | limits using SENSORS_LIMIT(value, min_limit, max_limit). If it is not | 725 | limits using clamp_val(value, min_limit, max_limit). If it is not continuous |
726 | continuous like for example a tempX_type, then when an invalid value is | 726 | like for example a tempX_type, then when an invalid value is written, |
727 | written, -EINVAL should be returned. | 727 | -EINVAL should be returned. |
728 | 728 | ||
729 | Example1, temp1_max, register is a signed 8 bit value (-128 - 127 degrees): | 729 | Example1, temp1_max, register is a signed 8 bit value (-128 - 127 degrees): |
730 | 730 | ||
731 | long v = simple_strtol(buf, NULL, 10) / 1000; | 731 | long v = simple_strtol(buf, NULL, 10) / 1000; |
732 | v = SENSORS_LIMIT(v, -128, 127); | 732 | v = clamp_val(v, -128, 127); |
733 | /* write v to register */ | 733 | /* write v to register */ |
734 | 734 | ||
735 | Example2, fan divider setting, valid values 2, 4 and 8: | 735 | Example2, fan divider setting, valid values 2, 4 and 8: |
diff --git a/Documentation/hwmon/zl6100 b/Documentation/hwmon/zl6100 index a995b41724fd..3d924b6b59e9 100644 --- a/Documentation/hwmon/zl6100 +++ b/Documentation/hwmon/zl6100 | |||
@@ -121,12 +121,26 @@ in1_max_alarm Input voltage high alarm. | |||
121 | in1_lcrit_alarm Input voltage critical low alarm. | 121 | in1_lcrit_alarm Input voltage critical low alarm. |
122 | in1_crit_alarm Input voltage critical high alarm. | 122 | in1_crit_alarm Input voltage critical high alarm. |
123 | 123 | ||
124 | in2_label "vout1" | 124 | in2_label "vmon" |
125 | in2_input Measured output voltage. | 125 | in2_input Measured voltage on VMON (ZL2004) or VDRV (ZL9101M, |
126 | in2_lcrit Critical minimum output Voltage. | 126 | ZL9117M) pin. Reported voltage is 16x the voltage on the |
127 | in2_crit Critical maximum output voltage. | 127 | pin (adjusted internally by the chip). |
128 | in2_lcrit_alarm Critical output voltage critical low alarm. | 128 | in2_lcrit Critical minumum VMON/VDRV Voltage. |
129 | in2_crit_alarm Critical output voltage critical high alarm. | 129 | in2_crit Critical maximum VMON/VDRV voltage. |
130 | in2_lcrit_alarm VMON/VDRV voltage critical low alarm. | ||
131 | in2_crit_alarm VMON/VDRV voltage critical high alarm. | ||
132 | |||
133 | vmon attributes are supported on ZL2004, ZL9101M, | ||
134 | and ZL9117M only. | ||
135 | |||
136 | inX_label "vout1" | ||
137 | inX_input Measured output voltage. | ||
138 | inX_lcrit Critical minimum output Voltage. | ||
139 | inX_crit Critical maximum output voltage. | ||
140 | inX_lcrit_alarm Critical output voltage critical low alarm. | ||
141 | inX_crit_alarm Critical output voltage critical high alarm. | ||
142 | |||
143 | X is 3 for ZL2004, ZL9101M, and ZL9117M, 2 otherwise. | ||
130 | 144 | ||
131 | curr1_label "iout1" | 145 | curr1_label "iout1" |
132 | curr1_input Measured output current. | 146 | curr1_input Measured output current. |
diff --git a/Documentation/ioctl/ioctl-number.txt b/Documentation/ioctl/ioctl-number.txt index 2152b0e7237d..3210540f8bd3 100644 --- a/Documentation/ioctl/ioctl-number.txt +++ b/Documentation/ioctl/ioctl-number.txt | |||
@@ -179,7 +179,7 @@ Code Seq#(hex) Include File Comments | |||
179 | 'V' C0 media/davinci/vpfe_capture.h conflict! | 179 | 'V' C0 media/davinci/vpfe_capture.h conflict! |
180 | 'V' C0 media/si4713.h conflict! | 180 | 'V' C0 media/si4713.h conflict! |
181 | 'W' 00-1F linux/watchdog.h conflict! | 181 | 'W' 00-1F linux/watchdog.h conflict! |
182 | 'W' 00-1F linux/wanrouter.h conflict! | 182 | 'W' 00-1F linux/wanrouter.h conflict! (pre 3.9) |
183 | 'W' 00-3F sound/asound.h conflict! | 183 | 'W' 00-3F sound/asound.h conflict! |
184 | 'X' all fs/xfs/xfs_fs.h conflict! | 184 | 'X' all fs/xfs/xfs_fs.h conflict! |
185 | and fs/xfs/linux-2.6/xfs_ioctl32.h | 185 | and fs/xfs/linux-2.6/xfs_ioctl32.h |
diff --git a/Documentation/kbuild/makefiles.txt b/Documentation/kbuild/makefiles.txt index 14c3f4f1b617..5198b742fde1 100644 --- a/Documentation/kbuild/makefiles.txt +++ b/Documentation/kbuild/makefiles.txt | |||
@@ -1186,6 +1186,29 @@ When kbuild executes, the following steps are followed (roughly): | |||
1186 | clean-files += *.dtb | 1186 | clean-files += *.dtb |
1187 | DTC_FLAGS ?= -p 1024 | 1187 | DTC_FLAGS ?= -p 1024 |
1188 | 1188 | ||
1189 | dtc_cpp | ||
1190 | This is just like dtc as describe above, except that the C pre- | ||
1191 | processor is invoked upon the .dtsp file before compiling the result | ||
1192 | with dtc. | ||
1193 | |||
1194 | In order for build dependencies to work, all files compiled using | ||
1195 | dtc_cpp must use the C pre-processor's #include functionality and not | ||
1196 | dtc's /include/ functionality. | ||
1197 | |||
1198 | Using the C pre-processor allows use of #define to create named | ||
1199 | constants. In turn, the #defines will typically appear in a header | ||
1200 | file, which may be shared with regular C code. Since the dtc language | ||
1201 | represents a data structure rather than code in C syntax, similar | ||
1202 | restrictions are placed on a header file included by a device tree | ||
1203 | file as for a header file included by an assembly language file. | ||
1204 | In particular, the C pre-processor is passed -x assembler-with-cpp, | ||
1205 | which sets macro __ASSEMBLY__. __DTS__ is also set. These allow header | ||
1206 | files to restrict their content to that compatible with device tree | ||
1207 | source. | ||
1208 | |||
1209 | A central rule exists to create $(obj)/%.dtb from $(src)/%.dtsp; | ||
1210 | architecture Makefiles do no need to explicitly write out that rule. | ||
1211 | |||
1189 | --- 6.8 Custom kbuild commands | 1212 | --- 6.8 Custom kbuild commands |
1190 | 1213 | ||
1191 | When kbuild is executing with KBUILD_VERBOSE=0, then only a shorthand | 1214 | When kbuild is executing with KBUILD_VERBOSE=0, then only a shorthand |
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 6c723811c0a0..4c5b3f993bbb 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -1039,16 +1039,11 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
1039 | Claim all unknown PCI IDE storage controllers. | 1039 | Claim all unknown PCI IDE storage controllers. |
1040 | 1040 | ||
1041 | idle= [X86] | 1041 | idle= [X86] |
1042 | Format: idle=poll, idle=mwait, idle=halt, idle=nomwait | 1042 | Format: idle=poll, idle=halt, idle=nomwait |
1043 | Poll forces a polling idle loop that can slightly | 1043 | Poll forces a polling idle loop that can slightly |
1044 | improve the performance of waking up a idle CPU, but | 1044 | improve the performance of waking up a idle CPU, but |
1045 | will use a lot of power and make the system run hot. | 1045 | will use a lot of power and make the system run hot. |
1046 | Not recommended. | 1046 | Not recommended. |
1047 | idle=mwait: On systems which support MONITOR/MWAIT but | ||
1048 | the kernel chose to not use it because it doesn't save | ||
1049 | as much power as a normal idle loop, use the | ||
1050 | MONITOR/MWAIT idle loop anyways. Performance should be | ||
1051 | the same as idle=poll. | ||
1052 | idle=halt: Halt is forced to be used for CPU idle. | 1047 | idle=halt: Halt is forced to be used for CPU idle. |
1053 | In such case C2/C3 won't be used again. | 1048 | In such case C2/C3 won't be used again. |
1054 | idle=nomwait: Disable mwait for CPU C-states | 1049 | idle=nomwait: Disable mwait for CPU C-states |
@@ -1131,6 +1126,11 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
1131 | 0 disables intel_idle and fall back on acpi_idle. | 1126 | 0 disables intel_idle and fall back on acpi_idle. |
1132 | 1 to 6 specify maximum depth of C-state. | 1127 | 1 to 6 specify maximum depth of C-state. |
1133 | 1128 | ||
1129 | intel_pstate= [X86] | ||
1130 | disable | ||
1131 | Do not enable intel_pstate as the default | ||
1132 | scaling driver for the supported processors | ||
1133 | |||
1134 | intremap= [X86-64, Intel-IOMMU] | 1134 | intremap= [X86-64, Intel-IOMMU] |
1135 | on enable Interrupt Remapping (default) | 1135 | on enable Interrupt Remapping (default) |
1136 | off disable Interrupt Remapping | 1136 | off disable Interrupt Remapping |
@@ -1886,10 +1886,6 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
1886 | wfi(ARM) instruction doesn't work correctly and not to | 1886 | wfi(ARM) instruction doesn't work correctly and not to |
1887 | use it. This is also useful when using JTAG debugger. | 1887 | use it. This is also useful when using JTAG debugger. |
1888 | 1888 | ||
1889 | no-hlt [BUGS=X86-32] Tells the kernel that the hlt | ||
1890 | instruction doesn't work correctly and not to | ||
1891 | use it. | ||
1892 | |||
1893 | no_file_caps Tells the kernel not to honor file capabilities. The | 1889 | no_file_caps Tells the kernel not to honor file capabilities. The |
1894 | only way then for a file to be executed with privilege | 1890 | only way then for a file to be executed with privilege |
1895 | is to be setuid root or executed by root. | 1891 | is to be setuid root or executed by root. |
diff --git a/Documentation/magic-number.txt b/Documentation/magic-number.txt index 82761a31d64d..76d80a64bbe1 100644 --- a/Documentation/magic-number.txt +++ b/Documentation/magic-number.txt | |||
@@ -122,7 +122,7 @@ SLAB_C_MAGIC 0x4f17a36d kmem_cache mm/slab.c | |||
122 | COW_MAGIC 0x4f4f4f4d cow_header_v1 arch/um/drivers/ubd_user.c | 122 | COW_MAGIC 0x4f4f4f4d cow_header_v1 arch/um/drivers/ubd_user.c |
123 | I810_CARD_MAGIC 0x5072696E i810_card sound/oss/i810_audio.c | 123 | I810_CARD_MAGIC 0x5072696E i810_card sound/oss/i810_audio.c |
124 | TRIDENT_CARD_MAGIC 0x5072696E trident_card sound/oss/trident.c | 124 | TRIDENT_CARD_MAGIC 0x5072696E trident_card sound/oss/trident.c |
125 | ROUTER_MAGIC 0x524d4157 wan_device include/linux/wanrouter.h | 125 | ROUTER_MAGIC 0x524d4157 wan_device [in wanrouter.h pre 3.9] |
126 | SCC_MAGIC 0x52696368 gs_port drivers/char/scc.h | 126 | SCC_MAGIC 0x52696368 gs_port drivers/char/scc.h |
127 | SAVEKMSG_MAGIC1 0x53415645 savekmsg arch/*/amiga/config.c | 127 | SAVEKMSG_MAGIC1 0x53415645 savekmsg arch/*/amiga/config.c |
128 | GDA_MAGIC 0x58464552 gda arch/mips/include/asm/sn/gda.h | 128 | GDA_MAGIC 0x58464552 gda arch/mips/include/asm/sn/gda.h |
diff --git a/Documentation/memory-barriers.txt b/Documentation/memory-barriers.txt index 3c4e1b3b80a1..fa5d8a9ae205 100644 --- a/Documentation/memory-barriers.txt +++ b/Documentation/memory-barriers.txt | |||
@@ -1685,6 +1685,7 @@ explicit lock operations, described later). These include: | |||
1685 | 1685 | ||
1686 | xchg(); | 1686 | xchg(); |
1687 | cmpxchg(); | 1687 | cmpxchg(); |
1688 | atomic_xchg(); | ||
1688 | atomic_cmpxchg(); | 1689 | atomic_cmpxchg(); |
1689 | atomic_inc_return(); | 1690 | atomic_inc_return(); |
1690 | atomic_dec_return(); | 1691 | atomic_dec_return(); |
diff --git a/Documentation/networking/00-INDEX b/Documentation/networking/00-INDEX index 2cc3c7733a2f..258d9b92c36f 100644 --- a/Documentation/networking/00-INDEX +++ b/Documentation/networking/00-INDEX | |||
@@ -52,8 +52,6 @@ de4x5.txt | |||
52 | - the Digital EtherWORKS DE4?? and DE5?? PCI Ethernet driver | 52 | - the Digital EtherWORKS DE4?? and DE5?? PCI Ethernet driver |
53 | decnet.txt | 53 | decnet.txt |
54 | - info on using the DECnet networking layer in Linux. | 54 | - info on using the DECnet networking layer in Linux. |
55 | depca.txt | ||
56 | - the Digital DEPCA/EtherWORKS DE1?? and DE2?? LANCE Ethernet driver | ||
57 | dl2k.txt | 55 | dl2k.txt |
58 | - README for D-Link DL2000-based Gigabit Ethernet Adapters (dl2k.ko). | 56 | - README for D-Link DL2000-based Gigabit Ethernet Adapters (dl2k.ko). |
59 | dm9000.txt | 57 | dm9000.txt |
@@ -72,8 +70,6 @@ e1000e.txt | |||
72 | - README for the Intel Gigabit Ethernet Driver (e1000e). | 70 | - README for the Intel Gigabit Ethernet Driver (e1000e). |
73 | eql.txt | 71 | eql.txt |
74 | - serial IP load balancing | 72 | - serial IP load balancing |
75 | ewrk3.txt | ||
76 | - the Digital EtherWORKS 3 DE203/4/5 Ethernet driver | ||
77 | fib_trie.txt | 73 | fib_trie.txt |
78 | - Level Compressed Trie (LC-trie) notes: a structure for routing. | 74 | - Level Compressed Trie (LC-trie) notes: a structure for routing. |
79 | filter.txt | 75 | filter.txt |
@@ -126,8 +122,6 @@ ltpc.txt | |||
126 | - the Apple or Farallon LocalTalk PC card driver | 122 | - the Apple or Farallon LocalTalk PC card driver |
127 | mac80211-injection.txt | 123 | mac80211-injection.txt |
128 | - HOWTO use packet injection with mac80211 | 124 | - HOWTO use packet injection with mac80211 |
129 | multicast.txt | ||
130 | - Behaviour of cards under Multicast | ||
131 | multiqueue.txt | 125 | multiqueue.txt |
132 | - HOWTO for multiqueue network device support. | 126 | - HOWTO for multiqueue network device support. |
133 | netconsole.txt | 127 | netconsole.txt |
diff --git a/Documentation/networking/DLINK.txt b/Documentation/networking/DLINK.txt deleted file mode 100644 index 55d24433d151..000000000000 --- a/Documentation/networking/DLINK.txt +++ /dev/null | |||
@@ -1,203 +0,0 @@ | |||
1 | Released 1994-06-13 | ||
2 | |||
3 | |||
4 | CONTENTS: | ||
5 | |||
6 | 1. Introduction. | ||
7 | 2. License. | ||
8 | 3. Files in this release. | ||
9 | 4. Installation. | ||
10 | 5. Problems and tuning. | ||
11 | 6. Using the drivers with earlier releases. | ||
12 | 7. Acknowledgments. | ||
13 | |||
14 | |||
15 | 1. INTRODUCTION. | ||
16 | |||
17 | This is a set of Ethernet drivers for the D-Link DE-600/DE-620 | ||
18 | pocket adapters, for the parallel port on a Linux based machine. | ||
19 | Some adapter "clones" will also work. Xircom is _not_ a clone... | ||
20 | These drivers _can_ be used as loadable modules, | ||
21 | and were developed for use on Linux 1.1.13 and above. | ||
22 | For use on Linux 1.0.X, or earlier releases, see below. | ||
23 | |||
24 | I have used these drivers for NFS, ftp, telnet and X-clients on | ||
25 | remote machines. Transmissions with ftp seems to work as | ||
26 | good as can be expected (i.e. > 80k bytes/sec) from a | ||
27 | parallel port...:-) Receive speeds will be about 60-80% of this. | ||
28 | Depending on your machine, somewhat higher speeds can be achieved. | ||
29 | |||
30 | All comments/fixes to Bjorn Ekwall (bj0rn@blox.se). | ||
31 | |||
32 | |||
33 | 2. LICENSE. | ||
34 | |||
35 | This program is free software; you can redistribute it | ||
36 | and/or modify it under the terms of the GNU General Public | ||
37 | License as published by the Free Software Foundation; either | ||
38 | version 2, or (at your option) any later version. | ||
39 | |||
40 | This program is distributed in the hope that it will be | ||
41 | useful, but WITHOUT ANY WARRANTY; without even the implied | ||
42 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||
43 | PURPOSE. See the GNU General Public License for more | ||
44 | details. | ||
45 | |||
46 | You should have received a copy of the GNU General Public | ||
47 | License along with this program; if not, write to the Free | ||
48 | Software Foundation, Inc., 675 Mass Ave, Cambridge, MA | ||
49 | 02139, USA. | ||
50 | |||
51 | |||
52 | 3. FILES IN THIS RELEASE. | ||
53 | |||
54 | README.DLINK This file. | ||
55 | de600.c The Source (may it be with You :-) for the DE-600 | ||
56 | de620.c ditto for the DE-620 | ||
57 | de620.h Macros for de620.c | ||
58 | |||
59 | If you are upgrading from the d-link tar release, there will | ||
60 | also be a "dlink-patches" file that will patch Linux 1.1.18: | ||
61 | linux/drivers/net/Makefile | ||
62 | linux/drivers/net/CONFIG | ||
63 | linux/drivers/net/MODULES | ||
64 | linux/drivers/net/Space.c | ||
65 | linux/config.in | ||
66 | Apply the patch by: | ||
67 | "cd /usr/src; patch -p0 < linux/drivers/net/dlink-patches" | ||
68 | The old source, "linux/drivers/net/d_link.c", can be removed. | ||
69 | |||
70 | |||
71 | 4. INSTALLATION. | ||
72 | |||
73 | o Get the latest net binaries, according to current net.wisdom. | ||
74 | |||
75 | o Read the NET-2 and Ethernet HOWTOs and modify your setup. | ||
76 | |||
77 | o If your parallel port has a strange address or irq, | ||
78 | modify "linux/drivers/net/CONFIG" accordingly, or adjust | ||
79 | the parameters in the "tuning" section in the sources. | ||
80 | |||
81 | If you are going to use the drivers as loadable modules, do _not_ | ||
82 | enable them while doing "make config", but instead make sure that | ||
83 | the drivers are included in "linux/drivers/net/MODULES". | ||
84 | |||
85 | If you are _not_ going to use the driver(s) as loadable modules, | ||
86 | but instead have them included in the kernel, remember to enable | ||
87 | the drivers while doing "make config". | ||
88 | |||
89 | o To include networking and DE600/DE620 support in your kernel: | ||
90 | # cd /linux | ||
91 | (as modules:) | ||
92 | # make config (answer yes on CONFIG_NET and CONFIG_INET) | ||
93 | (else included in the kernel:) | ||
94 | # make config (answer yes on CONFIG _NET, _INET and _DE600 or _DE620) | ||
95 | # make clean | ||
96 | # make zImage (or whatever magic you usually do) | ||
97 | |||
98 | o I use lilo to boot multiple kernels, so that I at least | ||
99 | can have one working kernel :-). If you do too, append | ||
100 | these lines to /etc/lilo/config: | ||
101 | |||
102 | image = /linux/zImage | ||
103 | label = newlinux | ||
104 | root = /dev/hda2 (or whatever YOU have...) | ||
105 | |||
106 | # /etc/lilo/install | ||
107 | |||
108 | o Do "sync" and reboot the new kernel with a D-Link | ||
109 | DE-600/DE-620 pocket adapter connected. | ||
110 | |||
111 | o The adapter can be configured with ifconfig eth? | ||
112 | where the actual number is decided by the kernel | ||
113 | when the drivers are initialized. | ||
114 | |||
115 | |||
116 | 5. "PROBLEMS" AND TUNING, | ||
117 | |||
118 | o If you see error messages from the driver, and if the traffic | ||
119 | stops on the adapter, try to do "ifconfig" and "route" once | ||
120 | more, just as in "rc.inet1". This should take care of most | ||
121 | problems, including effects from power loss, or adapters that | ||
122 | aren't connected to the printer port in some way or another. | ||
123 | You can somewhat change the behaviour by enabling/disabling | ||
124 | the macro SHUTDOWN_WHEN_LOST in the "tuning" section. | ||
125 | For the DE-600 there is another macro, CHECK_LOST_DE600, | ||
126 | that you might want to read about in the "tuning" section. | ||
127 | |||
128 | o Some machines have trouble handling the parallel port and | ||
129 | the adapter at high speed. If you experience problems: | ||
130 | |||
131 | DE-600: | ||
132 | - The adapter is not recognized at boot, i.e. an Ethernet | ||
133 | address of 00:80:c8:... is not shown, try to add another | ||
134 | "; SLOW_DOWN_IO" | ||
135 | at DE600_SLOW_DOWN in the "tuning" section. As a last resort, | ||
136 | uncomment: "#define REALLY_SLOW_IO" (see <asm/io.h> for hints). | ||
137 | |||
138 | - You experience "timeout" messages: first try to add another | ||
139 | "; SLOW_DOWN_IO" | ||
140 | at DE600_SLOW_DOWN in the "tuning" section, _then_ try to | ||
141 | increase the value (original value: 5) at | ||
142 | "if (tickssofar < 5)" near line 422. | ||
143 | |||
144 | DE-620: | ||
145 | - Your parallel port might be "sluggish". To cater for | ||
146 | this, there are the macros LOWSPEED and READ_DELAY/WRITE_DELAY | ||
147 | in the "tuning" section. Your first step should be to enable | ||
148 | LOWSPEED, and after that you can "tune" the XXX_DELAY values. | ||
149 | |||
150 | o If the adapter _is_ recognized at boot but you get messages | ||
151 | about "Network Unreachable", then the problem is probably | ||
152 | _not_ with the driver. Check your net configuration instead | ||
153 | (ifconfig and route) in "rc.inet1". | ||
154 | |||
155 | o There is some rudimentary support for debugging, look at | ||
156 | the source. Use "-DDE600_DEBUG=3" or "-DDE620_DEBUG=3" | ||
157 | when compiling, or include it in "linux/drivers/net/CONFIG". | ||
158 | IF YOU HAVE PROBLEMS YOU CAN'T SOLVE: PLEASE COMPILE THE DRIVER | ||
159 | WITH DEBUGGING ENABLED, AND SEND ME THE RESULTING OUTPUT! | ||
160 | |||
161 | |||
162 | 6. USING THE DRIVERS WITH EARLIER RELEASES. | ||
163 | |||
164 | The later 1.1.X releases of the Linux kernel include some | ||
165 | changes in the networking layer (a.k.a. NET3). This affects | ||
166 | these drivers in a few places. The hints that follow are | ||
167 | _not_ tested by me, since I don't have the disk space to keep | ||
168 | all releases on-line. | ||
169 | Known needed changes to date: | ||
170 | - release patchfile: some patches will fail, but they should | ||
171 | be easy to apply "by hand", since they are trivial. | ||
172 | (Space.c: d_link_init() is now called de600_probe()) | ||
173 | - de600.c: change "mark_bh(NET_BH)" to "mark_bh(INET_BH)". | ||
174 | - de620.c: (maybe) change the code around "netif_rx(skb);" to be | ||
175 | similar to the code around "dev_rint(...)" in de600.c | ||
176 | |||
177 | |||
178 | 7. ACKNOWLEDGMENTS. | ||
179 | |||
180 | These drivers wouldn't have been done without the base | ||
181 | (and support) from Ross Biro, and D-Link Systems Inc. | ||
182 | The driver relies upon GPL-ed source from D-Link Systems Inc. | ||
183 | and from Russel Nelson at Crynwr Software <nelson@crynwr.com>. | ||
184 | |||
185 | Additional input also from: | ||
186 | Donald Becker <becker@super.org>, Alan Cox <A.Cox@swansea.ac.uk> | ||
187 | and Fred N. van Kempen <waltje@uWalt.NL.Mugnet.ORG> | ||
188 | |||
189 | DE-600 alpha release primary victim^H^H^H^H^H^Htester: | ||
190 | - Erik Proper <erikp@cs.kun.nl>. | ||
191 | Good input also from several users, most notably | ||
192 | - Mark Burton <markb@ordern.demon.co.uk>. | ||
193 | |||
194 | DE-620 alpha release victims^H^H^H^H^H^H^Htesters: | ||
195 | - J. Joshua Kopper <kopper@rtsg.mot.com> | ||
196 | - Olav Kvittem <Olav.Kvittem@uninett.no> | ||
197 | - Germano Caronni <caronni@nessie.cs.id.ethz.ch> | ||
198 | - Jeremy Fitzhardinge <jeremy@suite.sw.oz.au> | ||
199 | |||
200 | |||
201 | Happy hacking! | ||
202 | |||
203 | Bjorn Ekwall == bj0rn@blox.se | ||
diff --git a/Documentation/networking/LICENSE.qlcnic b/Documentation/networking/LICENSE.qlcnic index e7fb2c6023bc..2ae3b64983ab 100644 --- a/Documentation/networking/LICENSE.qlcnic +++ b/Documentation/networking/LICENSE.qlcnic | |||
@@ -1,4 +1,4 @@ | |||
1 | Copyright (c) 2009-2011 QLogic Corporation | 1 | Copyright (c) 2009-2013 QLogic Corporation |
2 | QLogic Linux qlcnic NIC Driver | 2 | QLogic Linux qlcnic NIC Driver |
3 | 3 | ||
4 | You may modify and redistribute the device driver code under the | 4 | You may modify and redistribute the device driver code under the |
diff --git a/Documentation/networking/cs89x0.txt b/Documentation/networking/cs89x0.txt index c725d33b316f..0e190180eec8 100644 --- a/Documentation/networking/cs89x0.txt +++ b/Documentation/networking/cs89x0.txt | |||
@@ -36,7 +36,6 @@ TABLE OF CONTENTS | |||
36 | 4.1 Compiling the Driver as a Loadable Module | 36 | 4.1 Compiling the Driver as a Loadable Module |
37 | 4.2 Compiling the driver to support memory mode | 37 | 4.2 Compiling the driver to support memory mode |
38 | 4.3 Compiling the driver to support Rx DMA | 38 | 4.3 Compiling the driver to support Rx DMA |
39 | 4.4 Compiling the Driver into the Kernel | ||
40 | 39 | ||
41 | 5.0 TESTING AND TROUBLESHOOTING | 40 | 5.0 TESTING AND TROUBLESHOOTING |
42 | 5.1 Known Defects and Limitations | 41 | 5.1 Known Defects and Limitations |
@@ -364,84 +363,6 @@ The compile-time optionality for DMA was removed in the 2.3 kernel | |||
364 | series. DMA support is now unconditionally part of the driver. It is | 363 | series. DMA support is now unconditionally part of the driver. It is |
365 | enabled by the 'use_dma=1' module option. | 364 | enabled by the 'use_dma=1' module option. |
366 | 365 | ||
367 | 4.4 COMPILING THE DRIVER INTO THE KERNEL | ||
368 | |||
369 | If your Linux distribution already has support for the cs89x0 driver | ||
370 | then simply copy the source file to the /usr/src/linux/drivers/net | ||
371 | directory to replace the original ones and run the make utility to | ||
372 | rebuild the kernel. See Step 3 for rebuilding the kernel. | ||
373 | |||
374 | If your Linux does not include the cs89x0 driver, you need to edit three | ||
375 | configuration files, copy the source file to the /usr/src/linux/drivers/net | ||
376 | directory, and then run the make utility to rebuild the kernel. | ||
377 | |||
378 | 1. Edit the following configuration files by adding the statements as | ||
379 | indicated. (When possible, try to locate the added text to the section of the | ||
380 | file containing similar statements). | ||
381 | |||
382 | |||
383 | a.) In /usr/src/linux/drivers/net/Config.in, add: | ||
384 | |||
385 | tristate 'CS89x0 support' CONFIG_CS89x0 | ||
386 | |||
387 | Example: | ||
388 | |||
389 | if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then | ||
390 | tristate 'ICL EtherTeam 16i/32 support' CONFIG_ETH16I | ||
391 | fi | ||
392 | |||
393 | tristate 'CS89x0 support' CONFIG_CS89x0 | ||
394 | |||
395 | tristate 'NE2000/NE1000 support' CONFIG_NE2000 | ||
396 | if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then | ||
397 | tristate 'NI5210 support' CONFIG_NI52 | ||
398 | |||
399 | |||
400 | b.) In /usr/src/linux/drivers/net/Makefile, add the following lines: | ||
401 | |||
402 | ifeq ($(CONFIG_CS89x0),y) | ||
403 | L_OBJS += cs89x0.o | ||
404 | else | ||
405 | ifeq ($(CONFIG_CS89x0),m) | ||
406 | M_OBJS += cs89x0.o | ||
407 | endif | ||
408 | endif | ||
409 | |||
410 | |||
411 | c.) In /linux/drivers/net/Space.c file, add the line: | ||
412 | |||
413 | extern int cs89x0_probe(struct device *dev); | ||
414 | |||
415 | |||
416 | Example: | ||
417 | |||
418 | extern int ultra_probe(struct device *dev); | ||
419 | extern int wd_probe(struct device *dev); | ||
420 | extern int el2_probe(struct device *dev); | ||
421 | |||
422 | extern int cs89x0_probe(struct device *dev); | ||
423 | |||
424 | extern int ne_probe(struct device *dev); | ||
425 | extern int hp_probe(struct device *dev); | ||
426 | extern int hp_plus_probe(struct device *dev); | ||
427 | |||
428 | |||
429 | Also add: | ||
430 | |||
431 | #ifdef CONFIG_CS89x0 | ||
432 | { cs89x0_probe,0 }, | ||
433 | #endif | ||
434 | |||
435 | |||
436 | 2.) Copy the driver source files (cs89x0.c and cs89x0.h) | ||
437 | into the /usr/src/linux/drivers/net directory. | ||
438 | |||
439 | |||
440 | 3.) Go to /usr/src/linux directory and run 'make config' followed by 'make' | ||
441 | (or make bzImage) to rebuild the kernel. | ||
442 | |||
443 | 4.) Use the DOS 'setup' utility to disable plug and play on the NIC. | ||
444 | |||
445 | 366 | ||
446 | 5.0 TESTING AND TROUBLESHOOTING | 367 | 5.0 TESTING AND TROUBLESHOOTING |
447 | =============================================================================== | 368 | =============================================================================== |
diff --git a/Documentation/networking/depca.txt b/Documentation/networking/depca.txt deleted file mode 100644 index 24c6b26e5658..000000000000 --- a/Documentation/networking/depca.txt +++ /dev/null | |||
@@ -1,92 +0,0 @@ | |||
1 | |||
2 | DE10x | ||
3 | ===== | ||
4 | |||
5 | Memory Addresses: | ||
6 | |||
7 | SW1 SW2 SW3 SW4 | ||
8 | 64K on on on on d0000 dbfff | ||
9 | off on on on c0000 cbfff | ||
10 | off off on on e0000 ebfff | ||
11 | |||
12 | 32K on on off on d8000 dbfff | ||
13 | off on off on c8000 cbfff | ||
14 | off off off on e8000 ebfff | ||
15 | |||
16 | DBR ROM on on dc000 dffff | ||
17 | off on cc000 cffff | ||
18 | off off ec000 effff | ||
19 | |||
20 | Note that the 2K mode is set by SW3/SW4 on/off or off/off. Address | ||
21 | assignment is through the RBSA register. | ||
22 | |||
23 | I/O Address: | ||
24 | SW5 | ||
25 | 0x300 on | ||
26 | 0x200 off | ||
27 | |||
28 | Remote Boot: | ||
29 | SW6 | ||
30 | Disable on | ||
31 | Enable off | ||
32 | |||
33 | Remote Boot Timeout: | ||
34 | SW7 | ||
35 | 2.5min on | ||
36 | 30s off | ||
37 | |||
38 | IRQ: | ||
39 | SW8 SW9 SW10 SW11 SW12 | ||
40 | 2 on off off off off | ||
41 | 3 off on off off off | ||
42 | 4 off off on off off | ||
43 | 5 off off off on off | ||
44 | 7 off off off off on | ||
45 | |||
46 | DE20x | ||
47 | ===== | ||
48 | |||
49 | Memory Size: | ||
50 | |||
51 | SW3 SW4 | ||
52 | 64K on on | ||
53 | 32K off on | ||
54 | 2K on off | ||
55 | 2K off off | ||
56 | |||
57 | Start Addresses: | ||
58 | |||
59 | SW1 SW2 SW3 SW4 | ||
60 | 64K on on on on c0000 cffff | ||
61 | on off on on d0000 dffff | ||
62 | off on on on e0000 effff | ||
63 | |||
64 | 32K on on off off c8000 cffff | ||
65 | on off off off d8000 dffff | ||
66 | off on off off e8000 effff | ||
67 | |||
68 | Illegal off off - - - - | ||
69 | |||
70 | I/O Address: | ||
71 | SW5 | ||
72 | 0x300 on | ||
73 | 0x200 off | ||
74 | |||
75 | Remote Boot: | ||
76 | SW6 | ||
77 | Disable on | ||
78 | Enable off | ||
79 | |||
80 | Remote Boot Timeout: | ||
81 | SW7 | ||
82 | 2.5min on | ||
83 | 30s off | ||
84 | |||
85 | IRQ: | ||
86 | SW8 SW9 SW10 SW11 SW12 | ||
87 | 5 on off off off off | ||
88 | 9 off on off off off | ||
89 | 10 off off on off off | ||
90 | 11 off off off on off | ||
91 | 15 off off off off on | ||
92 | |||
diff --git a/Documentation/networking/ewrk3.txt b/Documentation/networking/ewrk3.txt deleted file mode 100644 index 90e9e5f16e6b..000000000000 --- a/Documentation/networking/ewrk3.txt +++ /dev/null | |||
@@ -1,46 +0,0 @@ | |||
1 | The EtherWORKS 3 driver in this distribution is designed to work with all | ||
2 | kernels > 1.1.33 (approx) and includes tools in the 'ewrk3tools' | ||
3 | subdirectory to allow set up of the card, similar to the MSDOS | ||
4 | 'NICSETUP.EXE' tools provided on the DOS drivers disk (type 'make' in that | ||
5 | subdirectory to make the tools). | ||
6 | |||
7 | The supported cards are DE203, DE204 and DE205. All other cards are NOT | ||
8 | supported - refer to 'depca.c' for running the LANCE based network cards and | ||
9 | 'de4x5.c' for the DIGITAL Semiconductor PCI chip based adapters from | ||
10 | Digital. | ||
11 | |||
12 | The ability to load this driver as a loadable module has been included and | ||
13 | used extensively during the driver development (to save those long reboot | ||
14 | sequences). To utilise this ability, you have to do 8 things: | ||
15 | |||
16 | 0) have a copy of the loadable modules code installed on your system. | ||
17 | 1) copy ewrk3.c from the /linux/drivers/net directory to your favourite | ||
18 | temporary directory. | ||
19 | 2) edit the source code near line 1898 to reflect the I/O address and | ||
20 | IRQ you're using. | ||
21 | 3) compile ewrk3.c, but include -DMODULE in the command line to ensure | ||
22 | that the correct bits are compiled (see end of source code). | ||
23 | 4) if you are wanting to add a new card, goto 5. Otherwise, recompile a | ||
24 | kernel with the ewrk3 configuration turned off and reboot. | ||
25 | 5) insmod ewrk3.o | ||
26 | [Alan Cox: Changed this so you can insmod ewrk3.o irq=x io=y] | ||
27 | [Adam Kropelin: Multiple cards now supported by irq=x1,x2 io=y1,y2] | ||
28 | 6) run the net startup bits for your new eth?? interface manually | ||
29 | (usually /etc/rc.inet[12] at boot time). | ||
30 | 7) enjoy! | ||
31 | |||
32 | Note that autoprobing is not allowed in loadable modules - the system is | ||
33 | already up and running and you're messing with interrupts. | ||
34 | |||
35 | To unload a module, turn off the associated interface | ||
36 | 'ifconfig eth?? down' then 'rmmod ewrk3'. | ||
37 | |||
38 | The performance we've achieved so far has been measured through the 'ttcp' | ||
39 | tool at 975kB/s. This measures the total TCP stack performance which | ||
40 | includes the card, so don't expect to get much nearer the 1.25MB/s | ||
41 | theoretical Ethernet rate. | ||
42 | |||
43 | |||
44 | Enjoy! | ||
45 | |||
46 | Dave | ||
diff --git a/Documentation/networking/filter.txt b/Documentation/networking/filter.txt index bbf2005270b5..cdb3e40b9d14 100644 --- a/Documentation/networking/filter.txt +++ b/Documentation/networking/filter.txt | |||
@@ -17,12 +17,12 @@ creating filters. | |||
17 | 17 | ||
18 | LSF is much simpler than BPF. One does not have to worry about | 18 | LSF is much simpler than BPF. One does not have to worry about |
19 | devices or anything like that. You simply create your filter | 19 | devices or anything like that. You simply create your filter |
20 | code, send it to the kernel via the SO_ATTACH_FILTER ioctl and | 20 | code, send it to the kernel via the SO_ATTACH_FILTER option and |
21 | if your filter code passes the kernel check on it, you then | 21 | if your filter code passes the kernel check on it, you then |
22 | immediately begin filtering data on that socket. | 22 | immediately begin filtering data on that socket. |
23 | 23 | ||
24 | You can also detach filters from your socket via the | 24 | You can also detach filters from your socket via the |
25 | SO_DETACH_FILTER ioctl. This will probably not be used much | 25 | SO_DETACH_FILTER option. This will probably not be used much |
26 | since when you close a socket that has a filter on it the | 26 | since when you close a socket that has a filter on it the |
27 | filter is automagically removed. The other less common case | 27 | filter is automagically removed. The other less common case |
28 | may be adding a different filter on the same socket where you had another | 28 | may be adding a different filter on the same socket where you had another |
@@ -31,12 +31,19 @@ the old one and placing your new one in its place, assuming your | |||
31 | filter has passed the checks, otherwise if it fails the old filter | 31 | filter has passed the checks, otherwise if it fails the old filter |
32 | will remain on that socket. | 32 | will remain on that socket. |
33 | 33 | ||
34 | SO_LOCK_FILTER option allows to lock the filter attached to a | ||
35 | socket. Once set, a filter cannot be removed or changed. This allows | ||
36 | one process to setup a socket, attach a filter, lock it then drop | ||
37 | privileges and be assured that the filter will be kept until the | ||
38 | socket is closed. | ||
39 | |||
34 | Examples | 40 | Examples |
35 | ======== | 41 | ======== |
36 | 42 | ||
37 | Ioctls- | 43 | Ioctls- |
38 | setsockopt(sockfd, SOL_SOCKET, SO_ATTACH_FILTER, &Filter, sizeof(Filter)); | 44 | setsockopt(sockfd, SOL_SOCKET, SO_ATTACH_FILTER, &Filter, sizeof(Filter)); |
39 | setsockopt(sockfd, SOL_SOCKET, SO_DETACH_FILTER, &value, sizeof(value)); | 45 | setsockopt(sockfd, SOL_SOCKET, SO_DETACH_FILTER, &value, sizeof(value)); |
46 | setsockopt(sockfd, SOL_SOCKET, SO_LOCK_FILTER, &value, sizeof(value)); | ||
40 | 47 | ||
41 | See the BSD bpf.4 manpage and the BSD Packet Filter paper written by | 48 | See the BSD bpf.4 manpage and the BSD Packet Filter paper written by |
42 | Steven McCanne and Van Jacobson of Lawrence Berkeley Laboratory. | 49 | Steven McCanne and Van Jacobson of Lawrence Berkeley Laboratory. |
diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt index dbca66182089..dc2dc87d2557 100644 --- a/Documentation/networking/ip-sysctl.txt +++ b/Documentation/networking/ip-sysctl.txt | |||
@@ -26,6 +26,11 @@ route/max_size - INTEGER | |||
26 | Maximum number of routes allowed in the kernel. Increase | 26 | Maximum number of routes allowed in the kernel. Increase |
27 | this when using large numbers of interfaces and/or routes. | 27 | this when using large numbers of interfaces and/or routes. |
28 | 28 | ||
29 | neigh/default/gc_thresh1 - INTEGER | ||
30 | Minimum number of entries to keep. Garbage collector will not | ||
31 | purge entries if there are fewer than this number. | ||
32 | Default: 256 | ||
33 | |||
29 | neigh/default/gc_thresh3 - INTEGER | 34 | neigh/default/gc_thresh3 - INTEGER |
30 | Maximum number of neighbor entries allowed. Increase this | 35 | Maximum number of neighbor entries allowed. Increase this |
31 | when using large numbers of interfaces and when communicating | 36 | when using large numbers of interfaces and when communicating |
@@ -125,17 +130,6 @@ somaxconn - INTEGER | |||
125 | Defaults to 128. See also tcp_max_syn_backlog for additional tuning | 130 | Defaults to 128. See also tcp_max_syn_backlog for additional tuning |
126 | for TCP sockets. | 131 | for TCP sockets. |
127 | 132 | ||
128 | tcp_abc - INTEGER | ||
129 | Controls Appropriate Byte Count (ABC) defined in RFC3465. | ||
130 | ABC is a way of increasing congestion window (cwnd) more slowly | ||
131 | in response to partial acknowledgments. | ||
132 | Possible values are: | ||
133 | 0 increase cwnd once per acknowledgment (no ABC) | ||
134 | 1 increase cwnd once per acknowledgment of full sized segment | ||
135 | 2 allow increase cwnd by two if acknowledgment is | ||
136 | of two segments to compensate for delayed acknowledgments. | ||
137 | Default: 0 (off) | ||
138 | |||
139 | tcp_abort_on_overflow - BOOLEAN | 133 | tcp_abort_on_overflow - BOOLEAN |
140 | If listening service is too slow to accept new connections, | 134 | If listening service is too slow to accept new connections, |
141 | reset them. Default state is FALSE. It means that if overflow | 135 | reset them. Default state is FALSE. It means that if overflow |
@@ -214,7 +208,8 @@ tcp_ecn - INTEGER | |||
214 | congestion before having to drop packets. | 208 | congestion before having to drop packets. |
215 | Possible values are: | 209 | Possible values are: |
216 | 0 Disable ECN. Neither initiate nor accept ECN. | 210 | 0 Disable ECN. Neither initiate nor accept ECN. |
217 | 1 Always request ECN on outgoing connection attempts. | 211 | 1 Enable ECN when requested by incoming connections and |
212 | also request ECN on outgoing connection attempts. | ||
218 | 2 Enable ECN when requested by incoming connections | 213 | 2 Enable ECN when requested by incoming connections |
219 | but do not request ECN on outgoing connections. | 214 | but do not request ECN on outgoing connections. |
220 | Default: 2 | 215 | Default: 2 |
diff --git a/Documentation/networking/multicast.txt b/Documentation/networking/multicast.txt deleted file mode 100644 index b06c8c69266f..000000000000 --- a/Documentation/networking/multicast.txt +++ /dev/null | |||
@@ -1,63 +0,0 @@ | |||
1 | Behaviour of Cards Under Multicast | ||
2 | ================================== | ||
3 | |||
4 | This is how they currently behave, not what the hardware can do--for example, | ||
5 | the Lance driver doesn't use its filter, even though the code for loading | ||
6 | it is in the DEC Lance-based driver. | ||
7 | |||
8 | The following are requirements for multicasting | ||
9 | ----------------------------------------------- | ||
10 | AppleTalk Multicast hardware filtering not important but | ||
11 | avoid cards only doing promisc | ||
12 | IP-Multicast Multicast hardware filters really help | ||
13 | IP-MRoute AllMulti hardware filters are of no help | ||
14 | |||
15 | |||
16 | Board Multicast AllMulti Promisc Filter | ||
17 | ------------------------------------------------------------------------ | ||
18 | 3c501 YES YES YES Software | ||
19 | 3c503 YES YES YES Hardware | ||
20 | 3c505 YES NO YES Hardware | ||
21 | 3c507 NO NO NO N/A | ||
22 | 3c509 YES YES YES Software | ||
23 | 3c59x YES YES YES Software | ||
24 | ac3200 YES YES YES Hardware | ||
25 | apricot YES PROMISC YES Hardware | ||
26 | arcnet NO NO NO N/A | ||
27 | at1700 PROMISC PROMISC YES Software | ||
28 | atp PROMISC PROMISC YES Software | ||
29 | cs89x0 YES YES YES Software | ||
30 | de4x5 YES YES YES Hardware | ||
31 | de600 NO NO NO N/A | ||
32 | de620 PROMISC PROMISC YES Software | ||
33 | depca YES PROMISC YES Hardware | ||
34 | dmfe YES YES YES Software(*) | ||
35 | e2100 YES YES YES Hardware | ||
36 | eepro YES PROMISC YES Hardware | ||
37 | eexpress NO NO NO N/A | ||
38 | ewrk3 YES PROMISC YES Hardware | ||
39 | hp-plus YES YES YES Hardware | ||
40 | hp YES YES YES Hardware | ||
41 | hp100 YES YES YES Hardware | ||
42 | ibmtr NO NO NO N/A | ||
43 | ioc3-eth YES YES YES Hardware | ||
44 | lance YES YES YES Software(#) | ||
45 | ne YES YES YES Hardware | ||
46 | ni52 <------------------ Buggy ------------------> | ||
47 | ni65 YES YES YES Software(#) | ||
48 | seeq NO NO NO N/A | ||
49 | sgiseek <------------------ Buggy ------------------> | ||
50 | smc-ultra YES YES YES Hardware | ||
51 | sunlance YES YES YES Hardware | ||
52 | tulip YES YES YES Hardware | ||
53 | wavelan YES PROMISC YES Hardware | ||
54 | wd YES YES YES Hardware | ||
55 | xirc2ps_cs YES YES YES Hardware | ||
56 | znet YES YES YES Software | ||
57 | |||
58 | |||
59 | PROMISC = This multicast mode is in fact promiscuous mode. Avoid using | ||
60 | cards who go PROMISC on any multicast in a multicast kernel. | ||
61 | |||
62 | (#) = Hardware multicast support is not used yet. | ||
63 | (*) = Hardware support for Davicom 9132 chipset only. | ||
diff --git a/Documentation/networking/netconsole.txt b/Documentation/networking/netconsole.txt index 2e9e0ae2cd45..a5d574a9ae09 100644 --- a/Documentation/networking/netconsole.txt +++ b/Documentation/networking/netconsole.txt | |||
@@ -1,9 +1,10 @@ | |||
1 | 1 | ||
2 | started by Ingo Molnar <mingo@redhat.com>, 2001.09.17 | 2 | started by Ingo Molnar <mingo@redhat.com>, 2001.09.17 |
3 | 2.6 port and netpoll api by Matt Mackall <mpm@selenic.com>, Sep 9 2003 | 3 | 2.6 port and netpoll api by Matt Mackall <mpm@selenic.com>, Sep 9 2003 |
4 | IPv6 support by Cong Wang <xiyou.wangcong@gmail.com>, Jan 1 2013 | ||
4 | 5 | ||
5 | Please send bug reports to Matt Mackall <mpm@selenic.com> | 6 | Please send bug reports to Matt Mackall <mpm@selenic.com> |
6 | and Satyam Sharma <satyam.sharma@gmail.com> | 7 | Satyam Sharma <satyam.sharma@gmail.com>, and Cong Wang <xiyou.wangcong@gmail.com> |
7 | 8 | ||
8 | Introduction: | 9 | Introduction: |
9 | ============= | 10 | ============= |
@@ -41,6 +42,10 @@ Examples: | |||
41 | 42 | ||
42 | insmod netconsole netconsole=@/,@10.0.0.2/ | 43 | insmod netconsole netconsole=@/,@10.0.0.2/ |
43 | 44 | ||
45 | or using IPv6 | ||
46 | |||
47 | insmod netconsole netconsole=@/,@fd00:1:2:3::1/ | ||
48 | |||
44 | It also supports logging to multiple remote agents by specifying | 49 | It also supports logging to multiple remote agents by specifying |
45 | parameters for the multiple agents separated by semicolons and the | 50 | parameters for the multiple agents separated by semicolons and the |
46 | complete string enclosed in "quotes", thusly: | 51 | complete string enclosed in "quotes", thusly: |
diff --git a/Documentation/networking/nf_conntrack-sysctl.txt b/Documentation/networking/nf_conntrack-sysctl.txt new file mode 100644 index 000000000000..70da5086153d --- /dev/null +++ b/Documentation/networking/nf_conntrack-sysctl.txt | |||
@@ -0,0 +1,176 @@ | |||
1 | /proc/sys/net/netfilter/nf_conntrack_* Variables: | ||
2 | |||
3 | nf_conntrack_acct - BOOLEAN | ||
4 | 0 - disabled (default) | ||
5 | not 0 - enabled | ||
6 | |||
7 | Enable connection tracking flow accounting. 64-bit byte and packet | ||
8 | counters per flow are added. | ||
9 | |||
10 | nf_conntrack_buckets - INTEGER (read-only) | ||
11 | Size of hash table. If not specified as parameter during module | ||
12 | loading, the default size is calculated by dividing total memory | ||
13 | by 16384 to determine the number of buckets but the hash table will | ||
14 | never have fewer than 32 or more than 16384 buckets. | ||
15 | |||
16 | nf_conntrack_checksum - BOOLEAN | ||
17 | 0 - disabled | ||
18 | not 0 - enabled (default) | ||
19 | |||
20 | Verify checksum of incoming packets. Packets with bad checksums are | ||
21 | in INVALID state. If this is enabled, such packets will not be | ||
22 | considered for connection tracking. | ||
23 | |||
24 | nf_conntrack_count - INTEGER (read-only) | ||
25 | Number of currently allocated flow entries. | ||
26 | |||
27 | nf_conntrack_events - BOOLEAN | ||
28 | 0 - disabled | ||
29 | not 0 - enabled (default) | ||
30 | |||
31 | If this option is enabled, the connection tracking code will | ||
32 | provide userspace with connection tracking events via ctnetlink. | ||
33 | |||
34 | nf_conntrack_events_retry_timeout - INTEGER (seconds) | ||
35 | default 15 | ||
36 | |||
37 | This option is only relevant when "reliable connection tracking | ||
38 | events" are used. Normally, ctnetlink is "lossy", that is, | ||
39 | events are normally dropped when userspace listeners can't keep up. | ||
40 | |||
41 | Userspace can request "reliable event mode". When this mode is | ||
42 | active, the conntrack will only be destroyed after the event was | ||
43 | delivered. If event delivery fails, the kernel periodically | ||
44 | re-tries to send the event to userspace. | ||
45 | |||
46 | This is the maximum interval the kernel should use when re-trying | ||
47 | to deliver the destroy event. | ||
48 | |||
49 | A higher number means there will be fewer delivery retries and it | ||
50 | will take longer for a backlog to be processed. | ||
51 | |||
52 | nf_conntrack_expect_max - INTEGER | ||
53 | Maximum size of expectation table. Default value is | ||
54 | nf_conntrack_buckets / 256. Minimum is 1. | ||
55 | |||
56 | nf_conntrack_frag6_high_thresh - INTEGER | ||
57 | default 262144 | ||
58 | |||
59 | Maximum memory used to reassemble IPv6 fragments. When | ||
60 | nf_conntrack_frag6_high_thresh bytes of memory is allocated for this | ||
61 | purpose, the fragment handler will toss packets until | ||
62 | nf_conntrack_frag6_low_thresh is reached. | ||
63 | |||
64 | nf_conntrack_frag6_low_thresh - INTEGER | ||
65 | default 196608 | ||
66 | |||
67 | See nf_conntrack_frag6_low_thresh | ||
68 | |||
69 | nf_conntrack_frag6_timeout - INTEGER (seconds) | ||
70 | default 60 | ||
71 | |||
72 | Time to keep an IPv6 fragment in memory. | ||
73 | |||
74 | nf_conntrack_generic_timeout - INTEGER (seconds) | ||
75 | default 600 | ||
76 | |||
77 | Default for generic timeout. This refers to layer 4 unknown/unsupported | ||
78 | protocols. | ||
79 | |||
80 | nf_conntrack_helper - BOOLEAN | ||
81 | 0 - disabled | ||
82 | not 0 - enabled (default) | ||
83 | |||
84 | Enable automatic conntrack helper assignment. | ||
85 | |||
86 | nf_conntrack_icmp_timeout - INTEGER (seconds) | ||
87 | default 30 | ||
88 | |||
89 | Default for ICMP timeout. | ||
90 | |||
91 | nf_conntrack_icmpv6_timeout - INTEGER (seconds) | ||
92 | default 30 | ||
93 | |||
94 | Default for ICMP6 timeout. | ||
95 | |||
96 | nf_conntrack_log_invalid - INTEGER | ||
97 | 0 - disable (default) | ||
98 | 1 - log ICMP packets | ||
99 | 6 - log TCP packets | ||
100 | 17 - log UDP packets | ||
101 | 33 - log DCCP packets | ||
102 | 41 - log ICMPv6 packets | ||
103 | 136 - log UDPLITE packets | ||
104 | 255 - log packets of any protocol | ||
105 | |||
106 | Log invalid packets of a type specified by value. | ||
107 | |||
108 | nf_conntrack_max - INTEGER | ||
109 | Size of connection tracking table. Default value is | ||
110 | nf_conntrack_buckets value * 4. | ||
111 | |||
112 | nf_conntrack_tcp_be_liberal - BOOLEAN | ||
113 | 0 - disabled (default) | ||
114 | not 0 - enabled | ||
115 | |||
116 | Be conservative in what you do, be liberal in what you accept from others. | ||
117 | If it's non-zero, we mark only out of window RST segments as INVALID. | ||
118 | |||
119 | nf_conntrack_tcp_loose - BOOLEAN | ||
120 | 0 - disabled | ||
121 | not 0 - enabled (default) | ||
122 | |||
123 | If it is set to zero, we disable picking up already established | ||
124 | connections. | ||
125 | |||
126 | nf_conntrack_tcp_max_retrans - INTEGER | ||
127 | default 3 | ||
128 | |||
129 | Maximum number of packets that can be retransmitted without | ||
130 | received an (acceptable) ACK from the destination. If this number | ||
131 | is reached, a shorter timer will be started. | ||
132 | |||
133 | nf_conntrack_tcp_timeout_close - INTEGER (seconds) | ||
134 | default 10 | ||
135 | |||
136 | nf_conntrack_tcp_timeout_close_wait - INTEGER (seconds) | ||
137 | default 60 | ||
138 | |||
139 | nf_conntrack_tcp_timeout_established - INTEGER (seconds) | ||
140 | default 432000 (5 days) | ||
141 | |||
142 | nf_conntrack_tcp_timeout_fin_wait - INTEGER (seconds) | ||
143 | default 120 | ||
144 | |||
145 | nf_conntrack_tcp_timeout_last_ack - INTEGER (seconds) | ||
146 | default 30 | ||
147 | |||
148 | nf_conntrack_tcp_timeout_max_retrans - INTEGER (seconds) | ||
149 | default 300 | ||
150 | |||
151 | nf_conntrack_tcp_timeout_syn_recv - INTEGER (seconds) | ||
152 | default 60 | ||
153 | |||
154 | nf_conntrack_tcp_timeout_syn_sent - INTEGER (seconds) | ||
155 | default 120 | ||
156 | |||
157 | nf_conntrack_tcp_timeout_time_wait - INTEGER (seconds) | ||
158 | default 120 | ||
159 | |||
160 | nf_conntrack_tcp_timeout_unacknowledged - INTEGER (seconds) | ||
161 | default 300 | ||
162 | |||
163 | nf_conntrack_timestamp - BOOLEAN | ||
164 | 0 - disabled (default) | ||
165 | not 0 - enabled | ||
166 | |||
167 | Enable connection tracking flow timestamping. | ||
168 | |||
169 | nf_conntrack_udp_timeout - INTEGER (seconds) | ||
170 | default 30 | ||
171 | |||
172 | nf_conntrack_udp_timeout_stream2 - INTEGER (seconds) | ||
173 | default 180 | ||
174 | |||
175 | This extended timeout will be used in case there is an UDP stream | ||
176 | detected. | ||
diff --git a/Documentation/networking/operstates.txt b/Documentation/networking/operstates.txt index 1a77a3cfae54..97694572338b 100644 --- a/Documentation/networking/operstates.txt +++ b/Documentation/networking/operstates.txt | |||
@@ -88,6 +88,10 @@ set this flag. On netif_carrier_off(), the scheduler stops sending | |||
88 | packets. The name 'carrier' and the inversion are historical, think of | 88 | packets. The name 'carrier' and the inversion are historical, think of |
89 | it as lower layer. | 89 | it as lower layer. |
90 | 90 | ||
91 | Note that for certain kind of soft-devices, which are not managing any | ||
92 | real hardware, there is possible to set this bit from userpsace. | ||
93 | One should use TVL IFLA_CARRIER to do so. | ||
94 | |||
91 | netif_carrier_ok() can be used to query that bit. | 95 | netif_carrier_ok() can be used to query that bit. |
92 | 96 | ||
93 | __LINK_STATE_DORMANT, maps to IFF_DORMANT: | 97 | __LINK_STATE_DORMANT, maps to IFF_DORMANT: |
diff --git a/Documentation/networking/phy.txt b/Documentation/networking/phy.txt index 95e5f5985a2a..d5b1a3935245 100644 --- a/Documentation/networking/phy.txt +++ b/Documentation/networking/phy.txt | |||
@@ -103,7 +103,7 @@ Letting the PHY Abstraction Layer do Everything | |||
103 | 103 | ||
104 | Now, to connect, just call this function: | 104 | Now, to connect, just call this function: |
105 | 105 | ||
106 | phydev = phy_connect(dev, phy_name, &adjust_link, flags, interface); | 106 | phydev = phy_connect(dev, phy_name, &adjust_link, interface); |
107 | 107 | ||
108 | phydev is a pointer to the phy_device structure which represents the PHY. If | 108 | phydev is a pointer to the phy_device structure which represents the PHY. If |
109 | phy_connect is successful, it will return the pointer. dev, here, is the | 109 | phy_connect is successful, it will return the pointer. dev, here, is the |
@@ -113,7 +113,9 @@ Letting the PHY Abstraction Layer do Everything | |||
113 | current state, though the PHY will not yet be truly operational at this | 113 | current state, though the PHY will not yet be truly operational at this |
114 | point. | 114 | point. |
115 | 115 | ||
116 | flags is a u32 which can optionally contain phy-specific flags. | 116 | PHY-specific flags should be set in phydev->dev_flags prior to the call |
117 | to phy_connect() such that the underlying PHY driver can check for flags | ||
118 | and perform specific operations based on them. | ||
117 | This is useful if the system has put hardware restrictions on | 119 | This is useful if the system has put hardware restrictions on |
118 | the PHY/controller, of which the PHY needs to be aware. | 120 | the PHY/controller, of which the PHY needs to be aware. |
119 | 121 | ||
@@ -185,11 +187,10 @@ Doing it all yourself | |||
185 | start, or disables then frees them for stop. | 187 | start, or disables then frees them for stop. |
186 | 188 | ||
187 | struct phy_device * phy_attach(struct net_device *dev, const char *phy_id, | 189 | struct phy_device * phy_attach(struct net_device *dev, const char *phy_id, |
188 | u32 flags, phy_interface_t interface); | 190 | phy_interface_t interface); |
189 | 191 | ||
190 | Attaches a network device to a particular PHY, binding the PHY to a generic | 192 | Attaches a network device to a particular PHY, binding the PHY to a generic |
191 | driver if none was found during bus initialization. Passes in | 193 | driver if none was found during bus initialization. |
192 | any phy-specific flags as needed. | ||
193 | 194 | ||
194 | int phy_start_aneg(struct phy_device *phydev); | 195 | int phy_start_aneg(struct phy_device *phydev); |
195 | 196 | ||
diff --git a/Documentation/nfc/nfc-hci.txt b/Documentation/nfc/nfc-hci.txt index 89a339c9b079..0686c9e211c2 100644 --- a/Documentation/nfc/nfc-hci.txt +++ b/Documentation/nfc/nfc-hci.txt | |||
@@ -17,10 +17,12 @@ HCI | |||
17 | HCI registers as an nfc device with NFC Core. Requests coming from userspace are | 17 | HCI registers as an nfc device with NFC Core. Requests coming from userspace are |
18 | routed through netlink sockets to NFC Core and then to HCI. From this point, | 18 | routed through netlink sockets to NFC Core and then to HCI. From this point, |
19 | they are translated in a sequence of HCI commands sent to the HCI layer in the | 19 | they are translated in a sequence of HCI commands sent to the HCI layer in the |
20 | host controller (the chip). The sending context blocks while waiting for the | 20 | host controller (the chip). Commands can be executed synchronously (the sending |
21 | response to arrive. | 21 | context blocks waiting for response) or asynchronously (the response is returned |
22 | from HCI Rx context). | ||
22 | HCI events can also be received from the host controller. They will be handled | 23 | HCI events can also be received from the host controller. They will be handled |
23 | and a translation will be forwarded to NFC Core as needed. | 24 | and a translation will be forwarded to NFC Core as needed. There are hooks to |
25 | let the HCI driver handle proprietary events or override standard behavior. | ||
24 | HCI uses 2 execution contexts: | 26 | HCI uses 2 execution contexts: |
25 | - one for executing commands : nfc_hci_msg_tx_work(). Only one command | 27 | - one for executing commands : nfc_hci_msg_tx_work(). Only one command |
26 | can be executing at any given moment. | 28 | can be executing at any given moment. |
@@ -33,6 +35,8 @@ The Session initialization is an HCI standard which must unfortunately | |||
33 | support proprietary gates. This is the reason why the driver will pass a list | 35 | support proprietary gates. This is the reason why the driver will pass a list |
34 | of proprietary gates that must be part of the session. HCI will ensure all | 36 | of proprietary gates that must be part of the session. HCI will ensure all |
35 | those gates have pipes connected when the hci device is set up. | 37 | those gates have pipes connected when the hci device is set up. |
38 | In case the chip supports pre-opened gates and pseudo-static pipes, the driver | ||
39 | can pass that information to HCI core. | ||
36 | 40 | ||
37 | HCI Gates and Pipes | 41 | HCI Gates and Pipes |
38 | ------------------- | 42 | ------------------- |
@@ -46,6 +50,13 @@ without knowing the pipe connected to it. | |||
46 | Driver interface | 50 | Driver interface |
47 | ---------------- | 51 | ---------------- |
48 | 52 | ||
53 | A driver is generally written in two parts : the physical link management and | ||
54 | the HCI management. This makes it easier to maintain a driver for a chip that | ||
55 | can be connected using various phy (i2c, spi, ...) | ||
56 | |||
57 | HCI Management | ||
58 | -------------- | ||
59 | |||
49 | A driver would normally register itself with HCI and provide the following | 60 | A driver would normally register itself with HCI and provide the following |
50 | entry points: | 61 | entry points: |
51 | 62 | ||
@@ -53,58 +64,113 @@ struct nfc_hci_ops { | |||
53 | int (*open)(struct nfc_hci_dev *hdev); | 64 | int (*open)(struct nfc_hci_dev *hdev); |
54 | void (*close)(struct nfc_hci_dev *hdev); | 65 | void (*close)(struct nfc_hci_dev *hdev); |
55 | int (*hci_ready) (struct nfc_hci_dev *hdev); | 66 | int (*hci_ready) (struct nfc_hci_dev *hdev); |
56 | int (*xmit)(struct nfc_hci_dev *hdev, struct sk_buff *skb); | 67 | int (*xmit) (struct nfc_hci_dev *hdev, struct sk_buff *skb); |
57 | int (*start_poll)(struct nfc_hci_dev *hdev, u32 protocols); | 68 | int (*start_poll) (struct nfc_hci_dev *hdev, |
58 | int (*target_from_gate)(struct nfc_hci_dev *hdev, u8 gate, | 69 | u32 im_protocols, u32 tm_protocols); |
59 | struct nfc_target *target); | 70 | int (*dep_link_up)(struct nfc_hci_dev *hdev, struct nfc_target *target, |
71 | u8 comm_mode, u8 *gb, size_t gb_len); | ||
72 | int (*dep_link_down)(struct nfc_hci_dev *hdev); | ||
73 | int (*target_from_gate) (struct nfc_hci_dev *hdev, u8 gate, | ||
74 | struct nfc_target *target); | ||
60 | int (*complete_target_discovered) (struct nfc_hci_dev *hdev, u8 gate, | 75 | int (*complete_target_discovered) (struct nfc_hci_dev *hdev, u8 gate, |
61 | struct nfc_target *target); | 76 | struct nfc_target *target); |
62 | int (*data_exchange) (struct nfc_hci_dev *hdev, | 77 | int (*im_transceive) (struct nfc_hci_dev *hdev, |
63 | struct nfc_target *target, | 78 | struct nfc_target *target, struct sk_buff *skb, |
64 | struct sk_buff *skb, struct sk_buff **res_skb); | 79 | data_exchange_cb_t cb, void *cb_context); |
80 | int (*tm_send)(struct nfc_hci_dev *hdev, struct sk_buff *skb); | ||
65 | int (*check_presence)(struct nfc_hci_dev *hdev, | 81 | int (*check_presence)(struct nfc_hci_dev *hdev, |
66 | struct nfc_target *target); | 82 | struct nfc_target *target); |
83 | int (*event_received)(struct nfc_hci_dev *hdev, u8 gate, u8 event, | ||
84 | struct sk_buff *skb); | ||
67 | }; | 85 | }; |
68 | 86 | ||
69 | - open() and close() shall turn the hardware on and off. | 87 | - open() and close() shall turn the hardware on and off. |
70 | - hci_ready() is an optional entry point that is called right after the hci | 88 | - hci_ready() is an optional entry point that is called right after the hci |
71 | session has been set up. The driver can use it to do additional initialization | 89 | session has been set up. The driver can use it to do additional initialization |
72 | that must be performed using HCI commands. | 90 | that must be performed using HCI commands. |
73 | - xmit() shall simply write a frame to the chip. | 91 | - xmit() shall simply write a frame to the physical link. |
74 | - start_poll() is an optional entrypoint that shall set the hardware in polling | 92 | - start_poll() is an optional entrypoint that shall set the hardware in polling |
75 | mode. This must be implemented only if the hardware uses proprietary gates or a | 93 | mode. This must be implemented only if the hardware uses proprietary gates or a |
76 | mechanism slightly different from the HCI standard. | 94 | mechanism slightly different from the HCI standard. |
95 | - dep_link_up() is called after a p2p target has been detected, to finish | ||
96 | the p2p connection setup with hardware parameters that need to be passed back | ||
97 | to nfc core. | ||
98 | - dep_link_down() is called to bring the p2p link down. | ||
77 | - target_from_gate() is an optional entrypoint to return the nfc protocols | 99 | - target_from_gate() is an optional entrypoint to return the nfc protocols |
78 | corresponding to a proprietary gate. | 100 | corresponding to a proprietary gate. |
79 | - complete_target_discovered() is an optional entry point to let the driver | 101 | - complete_target_discovered() is an optional entry point to let the driver |
80 | perform additional proprietary processing necessary to auto activate the | 102 | perform additional proprietary processing necessary to auto activate the |
81 | discovered target. | 103 | discovered target. |
82 | - data_exchange() must be implemented by the driver if proprietary HCI commands | 104 | - im_transceive() must be implemented by the driver if proprietary HCI commands |
83 | are required to send data to the tag. Some tag types will require custom | 105 | are required to send data to the tag. Some tag types will require custom |
84 | commands, others can be written to using the standard HCI commands. The driver | 106 | commands, others can be written to using the standard HCI commands. The driver |
85 | can check the tag type and either do proprietary processing, or return 1 to ask | 107 | can check the tag type and either do proprietary processing, or return 1 to ask |
86 | for standard processing. | 108 | for standard processing. The data exchange command itself must be sent |
109 | asynchronously. | ||
110 | - tm_send() is called to send data in the case of a p2p connection | ||
87 | - check_presence() is an optional entry point that will be called regularly | 111 | - check_presence() is an optional entry point that will be called regularly |
88 | by the core to check that an activated tag is still in the field. If this is | 112 | by the core to check that an activated tag is still in the field. If this is |
89 | not implemented, the core will not be able to push tag_lost events to the user | 113 | not implemented, the core will not be able to push tag_lost events to the user |
90 | space | 114 | space |
115 | - event_received() is called to handle an event coming from the chip. Driver | ||
116 | can handle the event or return 1 to let HCI attempt standard processing. | ||
91 | 117 | ||
92 | On the rx path, the driver is responsible to push incoming HCP frames to HCI | 118 | On the rx path, the driver is responsible to push incoming HCP frames to HCI |
93 | using nfc_hci_recv_frame(). HCI will take care of re-aggregation and handling | 119 | using nfc_hci_recv_frame(). HCI will take care of re-aggregation and handling |
94 | This must be done from a context that can sleep. | 120 | This must be done from a context that can sleep. |
95 | 121 | ||
96 | SHDLC | 122 | PHY Management |
97 | ----- | 123 | -------------- |
124 | |||
125 | The physical link (i2c, ...) management is defined by the following struture: | ||
126 | |||
127 | struct nfc_phy_ops { | ||
128 | int (*write)(void *dev_id, struct sk_buff *skb); | ||
129 | int (*enable)(void *dev_id); | ||
130 | void (*disable)(void *dev_id); | ||
131 | }; | ||
132 | |||
133 | enable(): turn the phy on (power on), make it ready to transfer data | ||
134 | disable(): turn the phy off | ||
135 | write(): Send a data frame to the chip. Note that to enable higher | ||
136 | layers such as an llc to store the frame for re-emission, this function must | ||
137 | not alter the skb. It must also not return a positive result (return 0 for | ||
138 | success, negative for failure). | ||
139 | |||
140 | Data coming from the chip shall be sent directly to nfc_hci_recv_frame(). | ||
141 | |||
142 | LLC | ||
143 | --- | ||
144 | |||
145 | Communication between the CPU and the chip often requires some link layer | ||
146 | protocol. Those are isolated as modules managed by the HCI layer. There are | ||
147 | currently two modules : nop (raw transfert) and shdlc. | ||
148 | A new llc must implement the following functions: | ||
149 | |||
150 | struct nfc_llc_ops { | ||
151 | void *(*init) (struct nfc_hci_dev *hdev, xmit_to_drv_t xmit_to_drv, | ||
152 | rcv_to_hci_t rcv_to_hci, int tx_headroom, | ||
153 | int tx_tailroom, int *rx_headroom, int *rx_tailroom, | ||
154 | llc_failure_t llc_failure); | ||
155 | void (*deinit) (struct nfc_llc *llc); | ||
156 | int (*start) (struct nfc_llc *llc); | ||
157 | int (*stop) (struct nfc_llc *llc); | ||
158 | void (*rcv_from_drv) (struct nfc_llc *llc, struct sk_buff *skb); | ||
159 | int (*xmit_from_hci) (struct nfc_llc *llc, struct sk_buff *skb); | ||
160 | }; | ||
161 | |||
162 | - init() : allocate and init your private storage | ||
163 | - deinit() : cleanup | ||
164 | - start() : establish the logical connection | ||
165 | - stop () : terminate the logical connection | ||
166 | - rcv_from_drv() : handle data coming from the chip, going to HCI | ||
167 | - xmit_from_hci() : handle data sent by HCI, going to the chip | ||
98 | 168 | ||
99 | Most chips use shdlc to ensure integrity and delivery ordering of the HCP | 169 | The llc must be registered with nfc before it can be used. Do that by |
100 | frames between the host controller (the chip) and hosts (entities connected | 170 | calling nfc_llc_register(const char *name, struct nfc_llc_ops *ops); |
101 | to the chip, like the cpu). In order to simplify writing the driver, an shdlc | 171 | |
102 | layer is available for use by the driver. | 172 | Again, note that the llc does not handle the physical link. It is thus very |
103 | When used, the driver actually registers with shdlc, and shdlc will register | 173 | easy to mix any physical link with any llc for a given chip driver. |
104 | with HCI. HCI sees shdlc as the driver and thus send its HCP frames | ||
105 | through shdlc->xmit. | ||
106 | SHDLC adds a new execution context (nfc_shdlc_sm_work()) to run its state | ||
107 | machine and handle both its rx and tx path. | ||
108 | 174 | ||
109 | Included Drivers | 175 | Included Drivers |
110 | ---------------- | 176 | ---------------- |
@@ -117,10 +183,12 @@ Execution Contexts | |||
117 | 183 | ||
118 | The execution contexts are the following: | 184 | The execution contexts are the following: |
119 | - IRQ handler (IRQH): | 185 | - IRQ handler (IRQH): |
120 | fast, cannot sleep. stores incoming frames into an shdlc rx queue | 186 | fast, cannot sleep. sends incoming frames to HCI where they are passed to |
187 | the current llc. In case of shdlc, the frame is queued in shdlc rx queue. | ||
121 | 188 | ||
122 | - SHDLC State Machine worker (SMW) | 189 | - SHDLC State Machine worker (SMW) |
123 | handles shdlc rx & tx queues. Dispatches HCI cmd responses. | 190 | Only when llc_shdlc is used: handles shdlc rx & tx queues. |
191 | Dispatches HCI cmd responses. | ||
124 | 192 | ||
125 | - HCI Tx Cmd worker (MSGTXWQ) | 193 | - HCI Tx Cmd worker (MSGTXWQ) |
126 | Serializes execution of HCI commands. Completes execution in case of response | 194 | Serializes execution of HCI commands. Completes execution in case of response |
@@ -166,6 +234,15 @@ waiting command execution. Response processing involves invoking the completion | |||
166 | callback that was provided by nfc_hci_msg_tx_work() when it sent the command. | 234 | callback that was provided by nfc_hci_msg_tx_work() when it sent the command. |
167 | The completion callback will then wake the syscall context. | 235 | The completion callback will then wake the syscall context. |
168 | 236 | ||
237 | It is also possible to execute the command asynchronously using this API: | ||
238 | |||
239 | static int nfc_hci_execute_cmd_async(struct nfc_hci_dev *hdev, u8 pipe, u8 cmd, | ||
240 | const u8 *param, size_t param_len, | ||
241 | data_exchange_cb_t cb, void *cb_context) | ||
242 | |||
243 | The workflow is the same, except that the API call returns immediately, and | ||
244 | the callback will be called with the result from the SMW context. | ||
245 | |||
169 | Workflow receiving an HCI event or command | 246 | Workflow receiving an HCI event or command |
170 | ------------------------------------------ | 247 | ------------------------------------------ |
171 | 248 | ||
diff --git a/Documentation/nfc/nfc-pn544.txt b/Documentation/nfc/nfc-pn544.txt index 2fcac9f5996e..b36ca14ca2d6 100644 --- a/Documentation/nfc/nfc-pn544.txt +++ b/Documentation/nfc/nfc-pn544.txt | |||
@@ -1,32 +1,15 @@ | |||
1 | Kernel driver for the NXP Semiconductors PN544 Near Field | 1 | Kernel driver for the NXP Semiconductors PN544 Near Field |
2 | Communication chip | 2 | Communication chip |
3 | 3 | ||
4 | Author: Jari Vanhala | ||
5 | Contact: Matti Aaltonen (matti.j.aaltonen at nokia.com) | ||
6 | |||
7 | General | 4 | General |
8 | ------- | 5 | ------- |
9 | 6 | ||
10 | The PN544 is an integrated transmission module for contactless | 7 | The PN544 is an integrated transmission module for contactless |
11 | communication. The driver goes under drives/nfc/ and is compiled as a | 8 | communication. The driver goes under drives/nfc/ and is compiled as a |
12 | module named "pn544". It registers a misc device and creates a device | 9 | module named "pn544". |
13 | file named "/dev/pn544". | ||
14 | 10 | ||
15 | Host Interfaces: I2C, SPI and HSU, this driver supports currently only I2C. | 11 | Host Interfaces: I2C, SPI and HSU, this driver supports currently only I2C. |
16 | 12 | ||
17 | The Interface | ||
18 | ------------- | ||
19 | |||
20 | The driver offers a sysfs interface for a hardware test and an IOCTL | ||
21 | interface for selecting between two operating modes. There are read, | ||
22 | write and poll functions for transferring messages. The two operating | ||
23 | modes are the normal (HCI) mode and the firmware update mode. | ||
24 | |||
25 | PN544 is controlled by sending messages from the userspace to the | ||
26 | chip. The main function of the driver is just to pass those messages | ||
27 | without caring about the message content. | ||
28 | |||
29 | |||
30 | Protocols | 13 | Protocols |
31 | --------- | 14 | --------- |
32 | 15 | ||
@@ -47,68 +30,3 @@ and third (LSB) bytes of the message. The maximum FW message length is | |||
47 | 30 | ||
48 | For the ETSI HCI specification see | 31 | For the ETSI HCI specification see |
49 | http://www.etsi.org/WebSite/Technologies/ProtocolSpecification.aspx | 32 | http://www.etsi.org/WebSite/Technologies/ProtocolSpecification.aspx |
50 | |||
51 | The Hardware Test | ||
52 | ----------------- | ||
53 | |||
54 | The idea of the test is that it can performed by reading from the | ||
55 | corresponding sysfs file. The test is implemented in the board file | ||
56 | and it should test that PN544 can be put into the firmware update | ||
57 | mode. If the test is not implemented the sysfs file does not get | ||
58 | created. | ||
59 | |||
60 | Example: | ||
61 | > cat /sys/module/pn544/drivers/i2c\:pn544/3-002b/nfc_test | ||
62 | 1 | ||
63 | |||
64 | Normal Operation | ||
65 | ---------------- | ||
66 | |||
67 | PN544 is powered up when the device file is opened, otherwise it's | ||
68 | turned off. Only one instance can use the device at a time. | ||
69 | |||
70 | Userspace applications control PN544 with HCI messages. The hardware | ||
71 | sends an interrupt when data is available for reading. Data is | ||
72 | physically read when the read function is called by a userspace | ||
73 | application. Poll() checks the read interrupt state. Configuration and | ||
74 | self testing are also done from the userspace using read and write. | ||
75 | |||
76 | Example platform data: | ||
77 | |||
78 | static int rx71_pn544_nfc_request_resources(struct i2c_client *client) | ||
79 | { | ||
80 | /* Get and setup the HW resources for the device */ | ||
81 | } | ||
82 | |||
83 | static void rx71_pn544_nfc_free_resources(void) | ||
84 | { | ||
85 | /* Release the HW resources */ | ||
86 | } | ||
87 | |||
88 | static void rx71_pn544_nfc_enable(int fw) | ||
89 | { | ||
90 | /* Turn the device on */ | ||
91 | } | ||
92 | |||
93 | static int rx71_pn544_nfc_test(void) | ||
94 | { | ||
95 | /* | ||
96 | * Put the device into the FW update mode | ||
97 | * and then back to the normal mode. | ||
98 | * Check the behavior and return one on success, | ||
99 | * zero on failure. | ||
100 | */ | ||
101 | } | ||
102 | |||
103 | static void rx71_pn544_nfc_disable(void) | ||
104 | { | ||
105 | /* turn the power off */ | ||
106 | } | ||
107 | |||
108 | static struct pn544_nfc_platform_data rx71_nfc_data = { | ||
109 | .request_resources = rx71_pn544_nfc_request_resources, | ||
110 | .free_resources = rx71_pn544_nfc_free_resources, | ||
111 | .enable = rx71_pn544_nfc_enable, | ||
112 | .test = rx71_pn544_nfc_test, | ||
113 | .disable = rx71_pn544_nfc_disable, | ||
114 | }; | ||
diff --git a/Documentation/pinctrl.txt b/Documentation/pinctrl.txt index da40efbef6ec..a2b57e0a1db0 100644 --- a/Documentation/pinctrl.txt +++ b/Documentation/pinctrl.txt | |||
@@ -972,6 +972,18 @@ pinmux core. | |||
972 | Pin control requests from drivers | 972 | Pin control requests from drivers |
973 | ================================= | 973 | ================================= |
974 | 974 | ||
975 | When a device driver is about to probe the device core will automatically | ||
976 | attempt to issue pinctrl_get_select_default() on these devices. | ||
977 | This way driver writers do not need to add any of the boilerplate code | ||
978 | of the type found below. However when doing fine-grained state selection | ||
979 | and not using the "default" state, you may have to do some device driver | ||
980 | handling of the pinctrl handles and states. | ||
981 | |||
982 | So if you just want to put the pins for a certain device into the default | ||
983 | state and be done with it, there is nothing you need to do besides | ||
984 | providing the proper mapping table. The device core will take care of | ||
985 | the rest. | ||
986 | |||
975 | Generally it is discouraged to let individual drivers get and enable pin | 987 | Generally it is discouraged to let individual drivers get and enable pin |
976 | control. So if possible, handle the pin control in platform code or some other | 988 | control. So if possible, handle the pin control in platform code or some other |
977 | place where you have access to all the affected struct device * pointers. In | 989 | place where you have access to all the affected struct device * pointers. In |
@@ -1097,9 +1109,9 @@ situations that can be electrically unpleasant, you will certainly want to | |||
1097 | mux in and bias pins in a certain way before the GPIO subsystems starts to | 1109 | mux in and bias pins in a certain way before the GPIO subsystems starts to |
1098 | deal with them. | 1110 | deal with them. |
1099 | 1111 | ||
1100 | The above can be hidden: using pinctrl hogs, the pin control driver may be | 1112 | The above can be hidden: using the device core, the pinctrl core may be |
1101 | setting up the config and muxing for the pins when it is probing, | 1113 | setting up the config and muxing for the pins right before the device is |
1102 | nevertheless orthogonal to the GPIO subsystem. | 1114 | probing, nevertheless orthogonal to the GPIO subsystem. |
1103 | 1115 | ||
1104 | But there are also situations where it makes sense for the GPIO subsystem | 1116 | But there are also situations where it makes sense for the GPIO subsystem |
1105 | to communicate directly with with the pinctrl subsystem, using the latter | 1117 | to communicate directly with with the pinctrl subsystem, using the latter |
diff --git a/Documentation/power/freezing-of-tasks.txt b/Documentation/power/freezing-of-tasks.txt index 6ec291ea1c78..85894d83b352 100644 --- a/Documentation/power/freezing-of-tasks.txt +++ b/Documentation/power/freezing-of-tasks.txt | |||
@@ -223,3 +223,8 @@ since they ask the freezer to skip freezing this task, since it is anyway | |||
223 | only after the entire suspend/hibernation sequence is complete. | 223 | only after the entire suspend/hibernation sequence is complete. |
224 | So, to summarize, use [un]lock_system_sleep() instead of directly using | 224 | So, to summarize, use [un]lock_system_sleep() instead of directly using |
225 | mutex_[un]lock(&pm_mutex). That would prevent freezing failures. | 225 | mutex_[un]lock(&pm_mutex). That would prevent freezing failures. |
226 | |||
227 | V. Miscellaneous | ||
228 | /sys/power/pm_freeze_timeout controls how long it will cost at most to freeze | ||
229 | all user space processes or all freezable kernel threads, in unit of millisecond. | ||
230 | The default value is 20000, with range of unsigned integer. | ||
diff --git a/Documentation/power/runtime_pm.txt b/Documentation/power/runtime_pm.txt index 03591a750f99..6c9f5d9aa115 100644 --- a/Documentation/power/runtime_pm.txt +++ b/Documentation/power/runtime_pm.txt | |||
@@ -426,6 +426,10 @@ drivers/base/power/runtime.c and include/linux/pm_runtime.h: | |||
426 | 'power.runtime_error' is set or 'power.disable_depth' is greater than | 426 | 'power.runtime_error' is set or 'power.disable_depth' is greater than |
427 | zero) | 427 | zero) |
428 | 428 | ||
429 | bool pm_runtime_active(struct device *dev); | ||
430 | - return true if the device's runtime PM status is 'active' or its | ||
431 | 'power.disable_depth' field is not equal to zero, or false otherwise | ||
432 | |||
429 | bool pm_runtime_suspended(struct device *dev); | 433 | bool pm_runtime_suspended(struct device *dev); |
430 | - return true if the device's runtime PM status is 'suspended' and its | 434 | - return true if the device's runtime PM status is 'suspended' and its |
431 | 'power.disable_depth' field is equal to zero, or false otherwise | 435 | 'power.disable_depth' field is equal to zero, or false otherwise |
diff --git a/Documentation/trace/events-power.txt b/Documentation/trace/events-power.txt index cf794af22855..e1498ff8cf94 100644 --- a/Documentation/trace/events-power.txt +++ b/Documentation/trace/events-power.txt | |||
@@ -17,7 +17,7 @@ Cf. include/trace/events/power.h for the events definitions. | |||
17 | 1. Power state switch events | 17 | 1. Power state switch events |
18 | ============================ | 18 | ============================ |
19 | 19 | ||
20 | 1.1 New trace API | 20 | 1.1 Trace API |
21 | ----------------- | 21 | ----------------- |
22 | 22 | ||
23 | A 'cpu' event class gathers the CPU-related events: cpuidle and | 23 | A 'cpu' event class gathers the CPU-related events: cpuidle and |
@@ -41,31 +41,6 @@ The event which has 'state=4294967295' in the trace is very important to the use | |||
41 | space tools which are using it to detect the end of the current state, and so to | 41 | space tools which are using it to detect the end of the current state, and so to |
42 | correctly draw the states diagrams and to calculate accurate statistics etc. | 42 | correctly draw the states diagrams and to calculate accurate statistics etc. |
43 | 43 | ||
44 | 1.2 DEPRECATED trace API | ||
45 | ------------------------ | ||
46 | |||
47 | A new Kconfig option CONFIG_EVENT_POWER_TRACING_DEPRECATED with the default value of | ||
48 | 'y' has been created. This allows the legacy trace power API to be used conjointly | ||
49 | with the new trace API. | ||
50 | The Kconfig option, the old trace API (in include/trace/events/power.h) and the | ||
51 | old trace points will disappear in a future release (namely 2.6.41). | ||
52 | |||
53 | power_start "type=%lu state=%lu cpu_id=%lu" | ||
54 | power_frequency "type=%lu state=%lu cpu_id=%lu" | ||
55 | power_end "cpu_id=%lu" | ||
56 | |||
57 | The 'type' parameter takes one of those macros: | ||
58 | . POWER_NONE = 0, | ||
59 | . POWER_CSTATE = 1, /* C-State */ | ||
60 | . POWER_PSTATE = 2, /* Frequency change or DVFS */ | ||
61 | |||
62 | The 'state' parameter is set depending on the type: | ||
63 | . Target C-state for type=POWER_CSTATE, | ||
64 | . Target frequency for type=POWER_PSTATE, | ||
65 | |||
66 | power_end is used to indicate the exit of a state, corresponding to the latest | ||
67 | power_start event. | ||
68 | |||
69 | 2. Clocks events | 44 | 2. Clocks events |
70 | ================ | 45 | ================ |
71 | The clock events are used for clock enable/disable and for | 46 | The clock events are used for clock enable/disable and for |
diff --git a/Documentation/trace/ftrace.txt b/Documentation/trace/ftrace.txt index 6f51fed45f2d..53d6a3c51d87 100644 --- a/Documentation/trace/ftrace.txt +++ b/Documentation/trace/ftrace.txt | |||
@@ -1842,6 +1842,89 @@ an error. | |||
1842 | # cat buffer_size_kb | 1842 | # cat buffer_size_kb |
1843 | 85 | 1843 | 85 |
1844 | 1844 | ||
1845 | Snapshot | ||
1846 | -------- | ||
1847 | CONFIG_TRACER_SNAPSHOT makes a generic snapshot feature | ||
1848 | available to all non latency tracers. (Latency tracers which | ||
1849 | record max latency, such as "irqsoff" or "wakeup", can't use | ||
1850 | this feature, since those are already using the snapshot | ||
1851 | mechanism internally.) | ||
1852 | |||
1853 | Snapshot preserves a current trace buffer at a particular point | ||
1854 | in time without stopping tracing. Ftrace swaps the current | ||
1855 | buffer with a spare buffer, and tracing continues in the new | ||
1856 | current (=previous spare) buffer. | ||
1857 | |||
1858 | The following debugfs files in "tracing" are related to this | ||
1859 | feature: | ||
1860 | |||
1861 | snapshot: | ||
1862 | |||
1863 | This is used to take a snapshot and to read the output | ||
1864 | of the snapshot. Echo 1 into this file to allocate a | ||
1865 | spare buffer and to take a snapshot (swap), then read | ||
1866 | the snapshot from this file in the same format as | ||
1867 | "trace" (described above in the section "The File | ||
1868 | System"). Both reads snapshot and tracing are executable | ||
1869 | in parallel. When the spare buffer is allocated, echoing | ||
1870 | 0 frees it, and echoing else (positive) values clear the | ||
1871 | snapshot contents. | ||
1872 | More details are shown in the table below. | ||
1873 | |||
1874 | status\input | 0 | 1 | else | | ||
1875 | --------------+------------+------------+------------+ | ||
1876 | not allocated |(do nothing)| alloc+swap | EINVAL | | ||
1877 | --------------+------------+------------+------------+ | ||
1878 | allocated | free | swap | clear | | ||
1879 | --------------+------------+------------+------------+ | ||
1880 | |||
1881 | Here is an example of using the snapshot feature. | ||
1882 | |||
1883 | # echo 1 > events/sched/enable | ||
1884 | # echo 1 > snapshot | ||
1885 | # cat snapshot | ||
1886 | # tracer: nop | ||
1887 | # | ||
1888 | # entries-in-buffer/entries-written: 71/71 #P:8 | ||
1889 | # | ||
1890 | # _-----=> irqs-off | ||
1891 | # / _----=> need-resched | ||
1892 | # | / _---=> hardirq/softirq | ||
1893 | # || / _--=> preempt-depth | ||
1894 | # ||| / delay | ||
1895 | # TASK-PID CPU# |||| TIMESTAMP FUNCTION | ||
1896 | # | | | |||| | | | ||
1897 | <idle>-0 [005] d... 2440.603828: sched_switch: prev_comm=swapper/5 prev_pid=0 prev_prio=120 prev_state=R ==> next_comm=snapshot-test-2 next_pid=2242 next_prio=120 | ||
1898 | sleep-2242 [005] d... 2440.603846: sched_switch: prev_comm=snapshot-test-2 prev_pid=2242 prev_prio=120 prev_state=R ==> next_comm=kworker/5:1 next_pid=60 next_prio=120 | ||
1899 | [...] | ||
1900 | <idle>-0 [002] d... 2440.707230: sched_switch: prev_comm=swapper/2 prev_pid=0 prev_prio=120 prev_state=R ==> next_comm=snapshot-test-2 next_pid=2229 next_prio=120 | ||
1901 | |||
1902 | # cat trace | ||
1903 | # tracer: nop | ||
1904 | # | ||
1905 | # entries-in-buffer/entries-written: 77/77 #P:8 | ||
1906 | # | ||
1907 | # _-----=> irqs-off | ||
1908 | # / _----=> need-resched | ||
1909 | # | / _---=> hardirq/softirq | ||
1910 | # || / _--=> preempt-depth | ||
1911 | # ||| / delay | ||
1912 | # TASK-PID CPU# |||| TIMESTAMP FUNCTION | ||
1913 | # | | | |||| | | | ||
1914 | <idle>-0 [007] d... 2440.707395: sched_switch: prev_comm=swapper/7 prev_pid=0 prev_prio=120 prev_state=R ==> next_comm=snapshot-test-2 next_pid=2243 next_prio=120 | ||
1915 | snapshot-test-2-2229 [002] d... 2440.707438: sched_switch: prev_comm=snapshot-test-2 prev_pid=2229 prev_prio=120 prev_state=S ==> next_comm=swapper/2 next_pid=0 next_prio=120 | ||
1916 | [...] | ||
1917 | |||
1918 | |||
1919 | If you try to use this snapshot feature when current tracer is | ||
1920 | one of the latency tracers, you will get the following results. | ||
1921 | |||
1922 | # echo wakeup > current_tracer | ||
1923 | # echo 1 > snapshot | ||
1924 | bash: echo: write error: Device or resource busy | ||
1925 | # cat snapshot | ||
1926 | cat: snapshot: Device or resource busy | ||
1927 | |||
1845 | ----------- | 1928 | ----------- |
1846 | 1929 | ||
1847 | More details can be found in the source code, in the | 1930 | More details can be found in the source code, in the |
diff --git a/Documentation/virtual/kvm/api.txt b/Documentation/virtual/kvm/api.txt index a4df5535996b..c25439a58274 100644 --- a/Documentation/virtual/kvm/api.txt +++ b/Documentation/virtual/kvm/api.txt | |||
@@ -293,7 +293,7 @@ kvm_run' (see below). | |||
293 | 4.11 KVM_GET_REGS | 293 | 4.11 KVM_GET_REGS |
294 | 294 | ||
295 | Capability: basic | 295 | Capability: basic |
296 | Architectures: all | 296 | Architectures: all except ARM |
297 | Type: vcpu ioctl | 297 | Type: vcpu ioctl |
298 | Parameters: struct kvm_regs (out) | 298 | Parameters: struct kvm_regs (out) |
299 | Returns: 0 on success, -1 on error | 299 | Returns: 0 on success, -1 on error |
@@ -314,7 +314,7 @@ struct kvm_regs { | |||
314 | 4.12 KVM_SET_REGS | 314 | 4.12 KVM_SET_REGS |
315 | 315 | ||
316 | Capability: basic | 316 | Capability: basic |
317 | Architectures: all | 317 | Architectures: all except ARM |
318 | Type: vcpu ioctl | 318 | Type: vcpu ioctl |
319 | Parameters: struct kvm_regs (in) | 319 | Parameters: struct kvm_regs (in) |
320 | Returns: 0 on success, -1 on error | 320 | Returns: 0 on success, -1 on error |
@@ -600,7 +600,7 @@ struct kvm_fpu { | |||
600 | 4.24 KVM_CREATE_IRQCHIP | 600 | 4.24 KVM_CREATE_IRQCHIP |
601 | 601 | ||
602 | Capability: KVM_CAP_IRQCHIP | 602 | Capability: KVM_CAP_IRQCHIP |
603 | Architectures: x86, ia64 | 603 | Architectures: x86, ia64, ARM |
604 | Type: vm ioctl | 604 | Type: vm ioctl |
605 | Parameters: none | 605 | Parameters: none |
606 | Returns: 0 on success, -1 on error | 606 | Returns: 0 on success, -1 on error |
@@ -608,21 +608,39 @@ Returns: 0 on success, -1 on error | |||
608 | Creates an interrupt controller model in the kernel. On x86, creates a virtual | 608 | Creates an interrupt controller model in the kernel. On x86, creates a virtual |
609 | ioapic, a virtual PIC (two PICs, nested), and sets up future vcpus to have a | 609 | ioapic, a virtual PIC (two PICs, nested), and sets up future vcpus to have a |
610 | local APIC. IRQ routing for GSIs 0-15 is set to both PIC and IOAPIC; GSI 16-23 | 610 | local APIC. IRQ routing for GSIs 0-15 is set to both PIC and IOAPIC; GSI 16-23 |
611 | only go to the IOAPIC. On ia64, a IOSAPIC is created. | 611 | only go to the IOAPIC. On ia64, a IOSAPIC is created. On ARM, a GIC is |
612 | created. | ||
612 | 613 | ||
613 | 614 | ||
614 | 4.25 KVM_IRQ_LINE | 615 | 4.25 KVM_IRQ_LINE |
615 | 616 | ||
616 | Capability: KVM_CAP_IRQCHIP | 617 | Capability: KVM_CAP_IRQCHIP |
617 | Architectures: x86, ia64 | 618 | Architectures: x86, ia64, arm |
618 | Type: vm ioctl | 619 | Type: vm ioctl |
619 | Parameters: struct kvm_irq_level | 620 | Parameters: struct kvm_irq_level |
620 | Returns: 0 on success, -1 on error | 621 | Returns: 0 on success, -1 on error |
621 | 622 | ||
622 | Sets the level of a GSI input to the interrupt controller model in the kernel. | 623 | Sets the level of a GSI input to the interrupt controller model in the kernel. |
623 | Requires that an interrupt controller model has been previously created with | 624 | On some architectures it is required that an interrupt controller model has |
624 | KVM_CREATE_IRQCHIP. Note that edge-triggered interrupts require the level | 625 | been previously created with KVM_CREATE_IRQCHIP. Note that edge-triggered |
625 | to be set to 1 and then back to 0. | 626 | interrupts require the level to be set to 1 and then back to 0. |
627 | |||
628 | ARM can signal an interrupt either at the CPU level, or at the in-kernel irqchip | ||
629 | (GIC), and for in-kernel irqchip can tell the GIC to use PPIs designated for | ||
630 | specific cpus. The irq field is interpreted like this: | ||
631 | |||
632 | bits: | 31 ... 24 | 23 ... 16 | 15 ... 0 | | ||
633 | field: | irq_type | vcpu_index | irq_id | | ||
634 | |||
635 | The irq_type field has the following values: | ||
636 | - irq_type[0]: out-of-kernel GIC: irq_id 0 is IRQ, irq_id 1 is FIQ | ||
637 | - irq_type[1]: in-kernel GIC: SPI, irq_id between 32 and 1019 (incl.) | ||
638 | (the vcpu_index field is ignored) | ||
639 | - irq_type[2]: in-kernel GIC: PPI, irq_id between 16 and 31 (incl.) | ||
640 | |||
641 | (The irq_id field thus corresponds nicely to the IRQ ID in the ARM GIC specs) | ||
642 | |||
643 | In both cases, level is used to raise/lower the line. | ||
626 | 644 | ||
627 | struct kvm_irq_level { | 645 | struct kvm_irq_level { |
628 | union { | 646 | union { |
@@ -1775,6 +1793,27 @@ registers, find a list below: | |||
1775 | PPC | KVM_REG_PPC_VPA_DTL | 128 | 1793 | PPC | KVM_REG_PPC_VPA_DTL | 128 |
1776 | PPC | KVM_REG_PPC_EPCR | 32 | 1794 | PPC | KVM_REG_PPC_EPCR | 32 |
1777 | 1795 | ||
1796 | ARM registers are mapped using the lower 32 bits. The upper 16 of that | ||
1797 | is the register group type, or coprocessor number: | ||
1798 | |||
1799 | ARM core registers have the following id bit patterns: | ||
1800 | 0x4002 0000 0010 <index into the kvm_regs struct:16> | ||
1801 | |||
1802 | ARM 32-bit CP15 registers have the following id bit patterns: | ||
1803 | 0x4002 0000 000F <zero:1> <crn:4> <crm:4> <opc1:4> <opc2:3> | ||
1804 | |||
1805 | ARM 64-bit CP15 registers have the following id bit patterns: | ||
1806 | 0x4003 0000 000F <zero:1> <zero:4> <crm:4> <opc1:4> <zero:3> | ||
1807 | |||
1808 | ARM CCSIDR registers are demultiplexed by CSSELR value: | ||
1809 | 0x4002 0000 0011 00 <csselr:8> | ||
1810 | |||
1811 | ARM 32-bit VFP control registers have the following id bit patterns: | ||
1812 | 0x4002 0000 0012 1 <regno:12> | ||
1813 | |||
1814 | ARM 64-bit FP registers have the following id bit patterns: | ||
1815 | 0x4002 0000 0012 0 <regno:12> | ||
1816 | |||
1778 | 4.69 KVM_GET_ONE_REG | 1817 | 4.69 KVM_GET_ONE_REG |
1779 | 1818 | ||
1780 | Capability: KVM_CAP_ONE_REG | 1819 | Capability: KVM_CAP_ONE_REG |
@@ -2127,6 +2166,50 @@ written, then `n_invalid' invalid entries, invalidating any previously | |||
2127 | valid entries found. | 2166 | valid entries found. |
2128 | 2167 | ||
2129 | 2168 | ||
2169 | 4.77 KVM_ARM_VCPU_INIT | ||
2170 | |||
2171 | Capability: basic | ||
2172 | Architectures: arm | ||
2173 | Type: vcpu ioctl | ||
2174 | Parameters: struct struct kvm_vcpu_init (in) | ||
2175 | Returns: 0 on success; -1 on error | ||
2176 | Errors: | ||
2177 | EINVAL: the target is unknown, or the combination of features is invalid. | ||
2178 | ENOENT: a features bit specified is unknown. | ||
2179 | |||
2180 | This tells KVM what type of CPU to present to the guest, and what | ||
2181 | optional features it should have. This will cause a reset of the cpu | ||
2182 | registers to their initial values. If this is not called, KVM_RUN will | ||
2183 | return ENOEXEC for that vcpu. | ||
2184 | |||
2185 | Note that because some registers reflect machine topology, all vcpus | ||
2186 | should be created before this ioctl is invoked. | ||
2187 | |||
2188 | Possible features: | ||
2189 | - KVM_ARM_VCPU_POWER_OFF: Starts the CPU in a power-off state. | ||
2190 | Depends on KVM_CAP_ARM_PSCI. | ||
2191 | |||
2192 | |||
2193 | 4.78 KVM_GET_REG_LIST | ||
2194 | |||
2195 | Capability: basic | ||
2196 | Architectures: arm | ||
2197 | Type: vcpu ioctl | ||
2198 | Parameters: struct kvm_reg_list (in/out) | ||
2199 | Returns: 0 on success; -1 on error | ||
2200 | Errors: | ||
2201 | E2BIG: the reg index list is too big to fit in the array specified by | ||
2202 | the user (the number required will be written into n). | ||
2203 | |||
2204 | struct kvm_reg_list { | ||
2205 | __u64 n; /* number of registers in reg[] */ | ||
2206 | __u64 reg[0]; | ||
2207 | }; | ||
2208 | |||
2209 | This ioctl returns the guest registers that are supported for the | ||
2210 | KVM_GET_ONE_REG/KVM_SET_ONE_REG calls. | ||
2211 | |||
2212 | |||
2130 | 5. The kvm_run structure | 2213 | 5. The kvm_run structure |
2131 | ------------------------ | 2214 | ------------------------ |
2132 | 2215 | ||
diff --git a/Documentation/x86/boot.txt b/Documentation/x86/boot.txt index e540fd67f767..b443f1de0e5a 100644 --- a/Documentation/x86/boot.txt +++ b/Documentation/x86/boot.txt | |||
@@ -390,6 +390,7 @@ Protocol: 2.00+ | |||
390 | F Special (0xFF = undefined) | 390 | F Special (0xFF = undefined) |
391 | 10 Reserved | 391 | 10 Reserved |
392 | 11 Minimal Linux Bootloader <http://sebastian-plotz.blogspot.de> | 392 | 11 Minimal Linux Bootloader <http://sebastian-plotz.blogspot.de> |
393 | 12 OVMF UEFI virtualization stack | ||
393 | 394 | ||
394 | Please contact <hpa@zytor.com> if you need a bootloader ID | 395 | Please contact <hpa@zytor.com> if you need a bootloader ID |
395 | value assigned. | 396 | value assigned. |
diff --git a/Documentation/zh_CN/magic-number.txt b/Documentation/zh_CN/magic-number.txt index 4263022f5002..2ebe539f5450 100644 --- a/Documentation/zh_CN/magic-number.txt +++ b/Documentation/zh_CN/magic-number.txt | |||
@@ -122,7 +122,7 @@ SLAB_C_MAGIC 0x4f17a36d kmem_cache mm/slab.c | |||
122 | COW_MAGIC 0x4f4f4f4d cow_header_v1 arch/um/drivers/ubd_user.c | 122 | COW_MAGIC 0x4f4f4f4d cow_header_v1 arch/um/drivers/ubd_user.c |
123 | I810_CARD_MAGIC 0x5072696E i810_card sound/oss/i810_audio.c | 123 | I810_CARD_MAGIC 0x5072696E i810_card sound/oss/i810_audio.c |
124 | TRIDENT_CARD_MAGIC 0x5072696E trident_card sound/oss/trident.c | 124 | TRIDENT_CARD_MAGIC 0x5072696E trident_card sound/oss/trident.c |
125 | ROUTER_MAGIC 0x524d4157 wan_device include/linux/wanrouter.h | 125 | ROUTER_MAGIC 0x524d4157 wan_device [in wanrouter.h pre 3.9] |
126 | SCC_MAGIC 0x52696368 gs_port drivers/char/scc.h | 126 | SCC_MAGIC 0x52696368 gs_port drivers/char/scc.h |
127 | SAVEKMSG_MAGIC1 0x53415645 savekmsg arch/*/amiga/config.c | 127 | SAVEKMSG_MAGIC1 0x53415645 savekmsg arch/*/amiga/config.c |
128 | GDA_MAGIC 0x58464552 gda arch/mips/include/asm/sn/gda.h | 128 | GDA_MAGIC 0x58464552 gda arch/mips/include/asm/sn/gda.h |