diff options
Diffstat (limited to 'Documentation')
325 files changed, 9854 insertions, 1785 deletions
diff --git a/Documentation/00-INDEX b/Documentation/00-INDEX index 0c4cc688e89a..38f8444bdd0e 100644 --- a/Documentation/00-INDEX +++ b/Documentation/00-INDEX | |||
@@ -40,7 +40,7 @@ IPMI.txt | |||
40 | IRQ-affinity.txt | 40 | IRQ-affinity.txt |
41 | - how to select which CPU(s) handle which interrupt events on SMP. | 41 | - how to select which CPU(s) handle which interrupt events on SMP. |
42 | IRQ-domain.txt | 42 | IRQ-domain.txt |
43 | - info on inerrupt numbering and setting up IRQ domains. | 43 | - info on interrupt numbering and setting up IRQ domains. |
44 | IRQ.txt | 44 | IRQ.txt |
45 | - description of what an IRQ is. | 45 | - description of what an IRQ is. |
46 | Intel-IOMMU.txt | 46 | Intel-IOMMU.txt |
diff --git a/Documentation/ABI/stable/sysfs-bus-usb b/Documentation/ABI/stable/sysfs-bus-usb new file mode 100644 index 000000000000..2be603c52a24 --- /dev/null +++ b/Documentation/ABI/stable/sysfs-bus-usb | |||
@@ -0,0 +1,142 @@ | |||
1 | What: /sys/bus/usb/devices/.../power/persist | ||
2 | Date: May 2007 | ||
3 | KernelVersion: 2.6.23 | ||
4 | Contact: Alan Stern <stern@rowland.harvard.edu> | ||
5 | Description: | ||
6 | If CONFIG_USB_PERSIST is set, then each USB device directory | ||
7 | will contain a file named power/persist. The file holds a | ||
8 | boolean value (0 or 1) indicating whether or not the | ||
9 | "USB-Persist" facility is enabled for the device. Since the | ||
10 | facility is inherently dangerous, it is disabled by default | ||
11 | for all devices except hubs. For more information, see | ||
12 | Documentation/usb/persist.txt. | ||
13 | |||
14 | What: /sys/bus/usb/devices/.../power/autosuspend | ||
15 | Date: March 2007 | ||
16 | KernelVersion: 2.6.21 | ||
17 | Contact: Alan Stern <stern@rowland.harvard.edu> | ||
18 | Description: | ||
19 | Each USB device directory will contain a file named | ||
20 | power/autosuspend. This file holds the time (in seconds) | ||
21 | the device must be idle before it will be autosuspended. | ||
22 | 0 means the device will be autosuspended as soon as | ||
23 | possible. Negative values will prevent the device from | ||
24 | being autosuspended at all, and writing a negative value | ||
25 | will resume the device if it is already suspended. | ||
26 | |||
27 | The autosuspend delay for newly-created devices is set to | ||
28 | the value of the usbcore.autosuspend module parameter. | ||
29 | |||
30 | What: /sys/bus/usb/device/.../power/connected_duration | ||
31 | Date: January 2008 | ||
32 | KernelVersion: 2.6.25 | ||
33 | Contact: Sarah Sharp <sarah.a.sharp@intel.com> | ||
34 | Description: | ||
35 | If CONFIG_PM_RUNTIME is enabled then this file | ||
36 | is present. When read, it returns the total time (in msec) | ||
37 | that the USB device has been connected to the machine. This | ||
38 | file is read-only. | ||
39 | Users: | ||
40 | PowerTOP <power@bughost.org> | ||
41 | http://www.lesswatts.org/projects/powertop/ | ||
42 | |||
43 | What: /sys/bus/usb/device/.../power/active_duration | ||
44 | Date: January 2008 | ||
45 | KernelVersion: 2.6.25 | ||
46 | Contact: Sarah Sharp <sarah.a.sharp@intel.com> | ||
47 | Description: | ||
48 | If CONFIG_PM_RUNTIME is enabled then this file | ||
49 | is present. When read, it returns the total time (in msec) | ||
50 | that the USB device has been active, i.e. not in a suspended | ||
51 | state. This file is read-only. | ||
52 | |||
53 | Tools can use this file and the connected_duration file to | ||
54 | compute the percentage of time that a device has been active. | ||
55 | For example, | ||
56 | echo $((100 * `cat active_duration` / `cat connected_duration`)) | ||
57 | will give an integer percentage. Note that this does not | ||
58 | account for counter wrap. | ||
59 | Users: | ||
60 | PowerTOP <power@bughost.org> | ||
61 | http://www.lesswatts.org/projects/powertop/ | ||
62 | |||
63 | What: /sys/bus/usb/devices/<busnum>-<port[.port]>...:<config num>-<interface num>/supports_autosuspend | ||
64 | Date: January 2008 | ||
65 | KernelVersion: 2.6.27 | ||
66 | Contact: Sarah Sharp <sarah.a.sharp@intel.com> | ||
67 | Description: | ||
68 | When read, this file returns 1 if the interface driver | ||
69 | for this interface supports autosuspend. It also | ||
70 | returns 1 if no driver has claimed this interface, as an | ||
71 | unclaimed interface will not stop the device from being | ||
72 | autosuspended if all other interface drivers are idle. | ||
73 | The file returns 0 if autosuspend support has not been | ||
74 | added to the driver. | ||
75 | Users: | ||
76 | USB PM tool | ||
77 | git://git.moblin.org/users/sarah/usb-pm-tool/ | ||
78 | |||
79 | What: /sys/bus/usb/device/.../avoid_reset_quirk | ||
80 | Date: December 2009 | ||
81 | Contact: Oliver Neukum <oliver@neukum.org> | ||
82 | Description: | ||
83 | Writing 1 to this file tells the kernel that this | ||
84 | device will morph into another mode when it is reset. | ||
85 | Drivers will not use reset for error handling for | ||
86 | such devices. | ||
87 | Users: | ||
88 | usb_modeswitch | ||
89 | |||
90 | What: /sys/bus/usb/devices/.../devnum | ||
91 | KernelVersion: since at least 2.6.18 | ||
92 | Description: | ||
93 | Device address on the USB bus. | ||
94 | Users: | ||
95 | libusb | ||
96 | |||
97 | What: /sys/bus/usb/devices/.../bConfigurationValue | ||
98 | KernelVersion: since at least 2.6.18 | ||
99 | Description: | ||
100 | bConfigurationValue of the *active* configuration for the | ||
101 | device. Writing 0 or -1 to bConfigurationValue will reset the | ||
102 | active configuration (unconfigure the device). Writing | ||
103 | another value will change the active configuration. | ||
104 | |||
105 | Note that some devices, in violation of the USB spec, have a | ||
106 | configuration with a value equal to 0. Writing 0 to | ||
107 | bConfigurationValue for these devices will install that | ||
108 | configuration, rather then unconfigure the device. | ||
109 | |||
110 | Writing -1 will always unconfigure the device. | ||
111 | Users: | ||
112 | libusb | ||
113 | |||
114 | What: /sys/bus/usb/devices/.../busnum | ||
115 | KernelVersion: 2.6.22 | ||
116 | Description: | ||
117 | Bus-number of the USB-bus the device is connected to. | ||
118 | Users: | ||
119 | libusb | ||
120 | |||
121 | What: /sys/bus/usb/devices/.../descriptors | ||
122 | KernelVersion: 2.6.26 | ||
123 | Description: | ||
124 | Binary file containing cached descriptors of the device. The | ||
125 | binary data consists of the device descriptor followed by the | ||
126 | descriptors for each configuration of the device. | ||
127 | Note that the wTotalLength of the config descriptors can not | ||
128 | be trusted, as the device may have a smaller config descriptor | ||
129 | than it advertises. The bLength field of each (sub) descriptor | ||
130 | can be trusted, and can be used to seek forward one (sub) | ||
131 | descriptor at a time until the next config descriptor is found. | ||
132 | All descriptors read from this file are in bus-endian format | ||
133 | Users: | ||
134 | libusb | ||
135 | |||
136 | What: /sys/bus/usb/devices/.../speed | ||
137 | KernelVersion: since at least 2.6.18 | ||
138 | Description: | ||
139 | Speed the device is connected with to the usb-host in | ||
140 | Mbit / second. IE one of 1.5 / 12 / 480 / 5000. | ||
141 | Users: | ||
142 | libusb | ||
diff --git a/Documentation/ABI/testing/sysfs-block-zram b/Documentation/ABI/testing/sysfs-block-zram index ec93fe33baa6..3f0b9ae61d8c 100644 --- a/Documentation/ABI/testing/sysfs-block-zram +++ b/Documentation/ABI/testing/sysfs-block-zram | |||
@@ -5,20 +5,21 @@ Description: | |||
5 | The disksize file is read-write and specifies the disk size | 5 | The disksize file is read-write and specifies the disk size |
6 | which represents the limit on the *uncompressed* worth of data | 6 | which represents the limit on the *uncompressed* worth of data |
7 | that can be stored in this disk. | 7 | that can be stored in this disk. |
8 | Unit: bytes | ||
8 | 9 | ||
9 | What: /sys/block/zram<id>/initstate | 10 | What: /sys/block/zram<id>/initstate |
10 | Date: August 2010 | 11 | Date: August 2010 |
11 | Contact: Nitin Gupta <ngupta@vflare.org> | 12 | Contact: Nitin Gupta <ngupta@vflare.org> |
12 | Description: | 13 | Description: |
13 | The disksize file is read-only and shows the initialization | 14 | The initstate file is read-only and shows the initialization |
14 | state of the device. | 15 | state of the device. |
15 | 16 | ||
16 | What: /sys/block/zram<id>/reset | 17 | What: /sys/block/zram<id>/reset |
17 | Date: August 2010 | 18 | Date: August 2010 |
18 | Contact: Nitin Gupta <ngupta@vflare.org> | 19 | Contact: Nitin Gupta <ngupta@vflare.org> |
19 | Description: | 20 | Description: |
20 | The disksize file is write-only and allows resetting the | 21 | The reset file is write-only and allows resetting the |
21 | device. The reset operation frees all the memory assocaited | 22 | device. The reset operation frees all the memory associated |
22 | with this device. | 23 | with this device. |
23 | 24 | ||
24 | What: /sys/block/zram<id>/num_reads | 25 | What: /sys/block/zram<id>/num_reads |
@@ -48,7 +49,7 @@ Contact: Nitin Gupta <ngupta@vflare.org> | |||
48 | Description: | 49 | Description: |
49 | The notify_free file is read-only and specifies the number of | 50 | The notify_free file is read-only and specifies the number of |
50 | swap slot free notifications received by this device. These | 51 | swap slot free notifications received by this device. These |
51 | notifications are send to a swap block device when a swap slot | 52 | notifications are sent to a swap block device when a swap slot |
52 | is freed. This statistic is applicable only when this disk is | 53 | is freed. This statistic is applicable only when this disk is |
53 | being used as a swap disk. | 54 | being used as a swap disk. |
54 | 55 | ||
diff --git a/Documentation/ABI/testing/sysfs-bus-iio b/Documentation/ABI/testing/sysfs-bus-iio index dda81ffae5cf..39c8de0e53d0 100644 --- a/Documentation/ABI/testing/sysfs-bus-iio +++ b/Documentation/ABI/testing/sysfs-bus-iio | |||
@@ -351,6 +351,7 @@ Description: | |||
351 | 6kohm_to_gnd: connected to ground via a 6kOhm resistor, | 351 | 6kohm_to_gnd: connected to ground via a 6kOhm resistor, |
352 | 20kohm_to_gnd: connected to ground via a 20kOhm resistor, | 352 | 20kohm_to_gnd: connected to ground via a 20kOhm resistor, |
353 | 100kohm_to_gnd: connected to ground via an 100kOhm resistor, | 353 | 100kohm_to_gnd: connected to ground via an 100kOhm resistor, |
354 | 500kohm_to_gnd: connected to ground via a 500kOhm resistor, | ||
354 | three_state: left floating. | 355 | three_state: left floating. |
355 | For a list of available output power down options read | 356 | For a list of available output power down options read |
356 | outX_powerdown_mode_available. If Y is not present the | 357 | outX_powerdown_mode_available. If Y is not present the |
@@ -792,3 +793,21 @@ Contact: linux-iio@vger.kernel.org | |||
792 | Description: | 793 | Description: |
793 | This attribute is used to read the amount of quadrature error | 794 | This attribute is used to read the amount of quadrature error |
794 | present in the device at a given time. | 795 | present in the device at a given time. |
796 | |||
797 | What: /sys/.../iio:deviceX/in_accelX_power_mode | ||
798 | KernelVersion: 3.11 | ||
799 | Contact: linux-iio@vger.kernel.org | ||
800 | Description: | ||
801 | Specifies the chip power mode. | ||
802 | low_noise: reduce noise level from ADC, | ||
803 | low_power: enable low current consumption. | ||
804 | For a list of available output power modes read | ||
805 | in_accel_power_mode_available. | ||
806 | |||
807 | What: /sys/bus/iio/devices/iio:deviceX/store_eeprom | ||
808 | KernelVersion: 3.4.0 | ||
809 | Contact: linux-iio@vger.kernel.org | ||
810 | Description: | ||
811 | Writing '1' stores the current device configuration into | ||
812 | on-chip EEPROM. After power-up or chip reset the device will | ||
813 | automatically load the saved configuration. | ||
diff --git a/Documentation/ABI/testing/sysfs-bus-iio-frequency-ad9523 b/Documentation/ABI/testing/sysfs-bus-iio-frequency-ad9523 index 2ce9c3f68eee..a91aeabe7b24 100644 --- a/Documentation/ABI/testing/sysfs-bus-iio-frequency-ad9523 +++ b/Documentation/ABI/testing/sysfs-bus-iio-frequency-ad9523 | |||
@@ -18,14 +18,6 @@ Description: | |||
18 | Reading returns either '1' or '0'. '1' means that the | 18 | Reading returns either '1' or '0'. '1' means that the |
19 | pllY is locked. | 19 | pllY is locked. |
20 | 20 | ||
21 | What: /sys/bus/iio/devices/iio:deviceX/store_eeprom | ||
22 | KernelVersion: 3.4.0 | ||
23 | Contact: linux-iio@vger.kernel.org | ||
24 | Description: | ||
25 | Writing '1' stores the current device configuration into | ||
26 | on-chip EEPROM. After power-up or chip reset the device will | ||
27 | automatically load the saved configuration. | ||
28 | |||
29 | What: /sys/bus/iio/devices/iio:deviceX/sync_dividers | 21 | What: /sys/bus/iio/devices/iio:deviceX/sync_dividers |
30 | KernelVersion: 3.4.0 | 22 | KernelVersion: 3.4.0 |
31 | Contact: linux-iio@vger.kernel.org | 23 | Contact: linux-iio@vger.kernel.org |
diff --git a/Documentation/ABI/testing/sysfs-bus-iio-frequency-adf4350 b/Documentation/ABI/testing/sysfs-bus-iio-frequency-adf4350 index d89aded01c5a..1254457a726e 100644 --- a/Documentation/ABI/testing/sysfs-bus-iio-frequency-adf4350 +++ b/Documentation/ABI/testing/sysfs-bus-iio-frequency-adf4350 | |||
@@ -18,4 +18,4 @@ Description: | |||
18 | adjust the reference frequency accordingly. | 18 | adjust the reference frequency accordingly. |
19 | The value written has no effect until out_altvoltageY_frequency | 19 | The value written has no effect until out_altvoltageY_frequency |
20 | is updated. Consider to use out_altvoltageY_powerdown to power | 20 | is updated. Consider to use out_altvoltageY_powerdown to power |
21 | down the PLL and it's RFOut buffers during REFin changes. | 21 | down the PLL and its RFOut buffers during REFin changes. |
diff --git a/Documentation/ABI/testing/sysfs-bus-usb b/Documentation/ABI/testing/sysfs-bus-usb index 9759b8c91332..1430f584b266 100644 --- a/Documentation/ABI/testing/sysfs-bus-usb +++ b/Documentation/ABI/testing/sysfs-bus-usb | |||
@@ -1,81 +1,3 @@ | |||
1 | What: /sys/bus/usb/devices/.../power/autosuspend | ||
2 | Date: March 2007 | ||
3 | KernelVersion: 2.6.21 | ||
4 | Contact: Alan Stern <stern@rowland.harvard.edu> | ||
5 | Description: | ||
6 | Each USB device directory will contain a file named | ||
7 | power/autosuspend. This file holds the time (in seconds) | ||
8 | the device must be idle before it will be autosuspended. | ||
9 | 0 means the device will be autosuspended as soon as | ||
10 | possible. Negative values will prevent the device from | ||
11 | being autosuspended at all, and writing a negative value | ||
12 | will resume the device if it is already suspended. | ||
13 | |||
14 | The autosuspend delay for newly-created devices is set to | ||
15 | the value of the usbcore.autosuspend module parameter. | ||
16 | |||
17 | What: /sys/bus/usb/devices/.../power/persist | ||
18 | Date: May 2007 | ||
19 | KernelVersion: 2.6.23 | ||
20 | Contact: Alan Stern <stern@rowland.harvard.edu> | ||
21 | Description: | ||
22 | If CONFIG_USB_PERSIST is set, then each USB device directory | ||
23 | will contain a file named power/persist. The file holds a | ||
24 | boolean value (0 or 1) indicating whether or not the | ||
25 | "USB-Persist" facility is enabled for the device. Since the | ||
26 | facility is inherently dangerous, it is disabled by default | ||
27 | for all devices except hubs. For more information, see | ||
28 | Documentation/usb/persist.txt. | ||
29 | |||
30 | What: /sys/bus/usb/device/.../power/connected_duration | ||
31 | Date: January 2008 | ||
32 | KernelVersion: 2.6.25 | ||
33 | Contact: Sarah Sharp <sarah.a.sharp@intel.com> | ||
34 | Description: | ||
35 | If CONFIG_PM_RUNTIME is enabled then this file | ||
36 | is present. When read, it returns the total time (in msec) | ||
37 | that the USB device has been connected to the machine. This | ||
38 | file is read-only. | ||
39 | Users: | ||
40 | PowerTOP <power@bughost.org> | ||
41 | http://www.lesswatts.org/projects/powertop/ | ||
42 | |||
43 | What: /sys/bus/usb/device/.../power/active_duration | ||
44 | Date: January 2008 | ||
45 | KernelVersion: 2.6.25 | ||
46 | Contact: Sarah Sharp <sarah.a.sharp@intel.com> | ||
47 | Description: | ||
48 | If CONFIG_PM_RUNTIME is enabled then this file | ||
49 | is present. When read, it returns the total time (in msec) | ||
50 | that the USB device has been active, i.e. not in a suspended | ||
51 | state. This file is read-only. | ||
52 | |||
53 | Tools can use this file and the connected_duration file to | ||
54 | compute the percentage of time that a device has been active. | ||
55 | For example, | ||
56 | echo $((100 * `cat active_duration` / `cat connected_duration`)) | ||
57 | will give an integer percentage. Note that this does not | ||
58 | account for counter wrap. | ||
59 | Users: | ||
60 | PowerTOP <power@bughost.org> | ||
61 | http://www.lesswatts.org/projects/powertop/ | ||
62 | |||
63 | What: /sys/bus/usb/device/<busnum>-<devnum>...:<config num>-<interface num>/supports_autosuspend | ||
64 | Date: January 2008 | ||
65 | KernelVersion: 2.6.27 | ||
66 | Contact: Sarah Sharp <sarah.a.sharp@intel.com> | ||
67 | Description: | ||
68 | When read, this file returns 1 if the interface driver | ||
69 | for this interface supports autosuspend. It also | ||
70 | returns 1 if no driver has claimed this interface, as an | ||
71 | unclaimed interface will not stop the device from being | ||
72 | autosuspended if all other interface drivers are idle. | ||
73 | The file returns 0 if autosuspend support has not been | ||
74 | added to the driver. | ||
75 | Users: | ||
76 | USB PM tool | ||
77 | git://git.moblin.org/users/sarah/usb-pm-tool/ | ||
78 | |||
79 | What: /sys/bus/usb/device/.../authorized | 1 | What: /sys/bus/usb/device/.../authorized |
80 | Date: July 2008 | 2 | Date: July 2008 |
81 | KernelVersion: 2.6.26 | 3 | KernelVersion: 2.6.26 |
@@ -172,17 +94,6 @@ Description: | |||
172 | device IDs, exactly like reading from the entry | 94 | device IDs, exactly like reading from the entry |
173 | "/sys/bus/usb/drivers/.../new_id" | 95 | "/sys/bus/usb/drivers/.../new_id" |
174 | 96 | ||
175 | What: /sys/bus/usb/device/.../avoid_reset_quirk | ||
176 | Date: December 2009 | ||
177 | Contact: Oliver Neukum <oliver@neukum.org> | ||
178 | Description: | ||
179 | Writing 1 to this file tells the kernel that this | ||
180 | device will morph into another mode when it is reset. | ||
181 | Drivers will not use reset for error handling for | ||
182 | such devices. | ||
183 | Users: | ||
184 | usb_modeswitch | ||
185 | |||
186 | What: /sys/bus/usb/devices/.../power/usb2_hardware_lpm | 97 | What: /sys/bus/usb/devices/.../power/usb2_hardware_lpm |
187 | Date: September 2011 | 98 | Date: September 2011 |
188 | Contact: Andiry Xu <andiry.xu@amd.com> | 99 | Contact: Andiry Xu <andiry.xu@amd.com> |
diff --git a/Documentation/ABI/testing/sysfs-class-mtd b/Documentation/ABI/testing/sysfs-class-mtd index 3105644b3bfc..bfd119ace6ad 100644 --- a/Documentation/ABI/testing/sysfs-class-mtd +++ b/Documentation/ABI/testing/sysfs-class-mtd | |||
@@ -128,9 +128,8 @@ KernelVersion: 3.4 | |||
128 | Contact: linux-mtd@lists.infradead.org | 128 | Contact: linux-mtd@lists.infradead.org |
129 | Description: | 129 | Description: |
130 | Maximum number of bit errors that the device is capable of | 130 | Maximum number of bit errors that the device is capable of |
131 | correcting within each region covering an ecc step. This will | 131 | correcting within each region covering an ECC step (see |
132 | always be a non-negative integer. Note that some devices will | 132 | ecc_step_size). This will always be a non-negative integer. |
133 | have multiple ecc steps within each writesize region. | ||
134 | 133 | ||
135 | In the case of devices lacking any ECC capability, it is 0. | 134 | In the case of devices lacking any ECC capability, it is 0. |
136 | 135 | ||
@@ -173,3 +172,15 @@ Description: | |||
173 | This is generally applicable only to NAND flash devices with ECC | 172 | This is generally applicable only to NAND flash devices with ECC |
174 | capability. It is ignored on devices lacking ECC capability; | 173 | capability. It is ignored on devices lacking ECC capability; |
175 | i.e., devices for which ecc_strength is zero. | 174 | i.e., devices for which ecc_strength is zero. |
175 | |||
176 | What: /sys/class/mtd/mtdX/ecc_step_size | ||
177 | Date: May 2013 | ||
178 | KernelVersion: 3.10 | ||
179 | Contact: linux-mtd@lists.infradead.org | ||
180 | Description: | ||
181 | The size of a single region covered by ECC, known as the ECC | ||
182 | step. Devices may have several equally sized ECC steps within | ||
183 | each writesize region. | ||
184 | |||
185 | It will always be a non-negative integer. In the case of | ||
186 | devices lacking any ECC capability, it is 0. | ||
diff --git a/Documentation/ABI/testing/sysfs-fs-f2fs b/Documentation/ABI/testing/sysfs-fs-f2fs new file mode 100644 index 000000000000..31942efcaf0e --- /dev/null +++ b/Documentation/ABI/testing/sysfs-fs-f2fs | |||
@@ -0,0 +1,26 @@ | |||
1 | What: /sys/fs/f2fs/<disk>/gc_max_sleep_time | ||
2 | Date: July 2013 | ||
3 | Contact: "Namjae Jeon" <namjae.jeon@samsung.com> | ||
4 | Description: | ||
5 | Controls the maximun sleep time for gc_thread. Time | ||
6 | is in milliseconds. | ||
7 | |||
8 | What: /sys/fs/f2fs/<disk>/gc_min_sleep_time | ||
9 | Date: July 2013 | ||
10 | Contact: "Namjae Jeon" <namjae.jeon@samsung.com> | ||
11 | Description: | ||
12 | Controls the minimum sleep time for gc_thread. Time | ||
13 | is in milliseconds. | ||
14 | |||
15 | What: /sys/fs/f2fs/<disk>/gc_no_gc_sleep_time | ||
16 | Date: July 2013 | ||
17 | Contact: "Namjae Jeon" <namjae.jeon@samsung.com> | ||
18 | Description: | ||
19 | Controls the default sleep time for gc_thread. Time | ||
20 | is in milliseconds. | ||
21 | |||
22 | What: /sys/fs/f2fs/<disk>/gc_idle | ||
23 | Date: July 2013 | ||
24 | Contact: "Namjae Jeon" <namjae.jeon@samsung.com> | ||
25 | Description: | ||
26 | Controls the victim selection policy for garbage collection. | ||
diff --git a/Documentation/DocBook/80211.tmpl b/Documentation/DocBook/80211.tmpl index 49267ea97568..f403ec3c5c9a 100644 --- a/Documentation/DocBook/80211.tmpl +++ b/Documentation/DocBook/80211.tmpl | |||
@@ -325,6 +325,7 @@ | |||
325 | <title>functions/definitions</title> | 325 | <title>functions/definitions</title> |
326 | !Finclude/net/mac80211.h ieee80211_rx_status | 326 | !Finclude/net/mac80211.h ieee80211_rx_status |
327 | !Finclude/net/mac80211.h mac80211_rx_flags | 327 | !Finclude/net/mac80211.h mac80211_rx_flags |
328 | !Finclude/net/mac80211.h mac80211_tx_info_flags | ||
328 | !Finclude/net/mac80211.h mac80211_tx_control_flags | 329 | !Finclude/net/mac80211.h mac80211_tx_control_flags |
329 | !Finclude/net/mac80211.h mac80211_rate_control_flags | 330 | !Finclude/net/mac80211.h mac80211_rate_control_flags |
330 | !Finclude/net/mac80211.h ieee80211_tx_rate | 331 | !Finclude/net/mac80211.h ieee80211_tx_rate |
diff --git a/Documentation/DocBook/drm.tmpl b/Documentation/DocBook/drm.tmpl index 7d1278e7a434..ed1d6d289022 100644 --- a/Documentation/DocBook/drm.tmpl +++ b/Documentation/DocBook/drm.tmpl | |||
@@ -156,13 +156,6 @@ | |||
156 | </para></listitem> | 156 | </para></listitem> |
157 | </varlistentry> | 157 | </varlistentry> |
158 | <varlistentry> | 158 | <varlistentry> |
159 | <term>DRIVER_USE_MTRR</term> | ||
160 | <listitem><para> | ||
161 | Driver uses MTRR interface for mapping memory, the DRM core will | ||
162 | manage MTRR resources. Deprecated. | ||
163 | </para></listitem> | ||
164 | </varlistentry> | ||
165 | <varlistentry> | ||
166 | <term>DRIVER_PCI_DMA</term> | 159 | <term>DRIVER_PCI_DMA</term> |
167 | <listitem><para> | 160 | <listitem><para> |
168 | Driver is capable of PCI DMA, mapping of PCI DMA buffers to | 161 | Driver is capable of PCI DMA, mapping of PCI DMA buffers to |
@@ -195,28 +188,6 @@ | |||
195 | </para></listitem> | 188 | </para></listitem> |
196 | </varlistentry> | 189 | </varlistentry> |
197 | <varlistentry> | 190 | <varlistentry> |
198 | <term>DRIVER_IRQ_VBL</term> | ||
199 | <listitem><para>Unused. Deprecated.</para></listitem> | ||
200 | </varlistentry> | ||
201 | <varlistentry> | ||
202 | <term>DRIVER_DMA_QUEUE</term> | ||
203 | <listitem><para> | ||
204 | Should be set if the driver queues DMA requests and completes them | ||
205 | asynchronously. Deprecated. | ||
206 | </para></listitem> | ||
207 | </varlistentry> | ||
208 | <varlistentry> | ||
209 | <term>DRIVER_FB_DMA</term> | ||
210 | <listitem><para> | ||
211 | Driver supports DMA to/from the framebuffer, mapping of frambuffer | ||
212 | DMA buffers to userspace will be supported. Deprecated. | ||
213 | </para></listitem> | ||
214 | </varlistentry> | ||
215 | <varlistentry> | ||
216 | <term>DRIVER_IRQ_VBL2</term> | ||
217 | <listitem><para>Unused. Deprecated.</para></listitem> | ||
218 | </varlistentry> | ||
219 | <varlistentry> | ||
220 | <term>DRIVER_GEM</term> | 191 | <term>DRIVER_GEM</term> |
221 | <listitem><para> | 192 | <listitem><para> |
222 | Driver use the GEM memory manager. | 193 | Driver use the GEM memory manager. |
@@ -234,6 +205,12 @@ | |||
234 | Driver implements DRM PRIME buffer sharing. | 205 | Driver implements DRM PRIME buffer sharing. |
235 | </para></listitem> | 206 | </para></listitem> |
236 | </varlistentry> | 207 | </varlistentry> |
208 | <varlistentry> | ||
209 | <term>DRIVER_RENDER</term> | ||
210 | <listitem><para> | ||
211 | Driver supports dedicated render nodes. | ||
212 | </para></listitem> | ||
213 | </varlistentry> | ||
237 | </variablelist> | 214 | </variablelist> |
238 | </sect3> | 215 | </sect3> |
239 | <sect3> | 216 | <sect3> |
@@ -2212,6 +2189,18 @@ void intel_crt_init(struct drm_device *dev) | |||
2212 | !Iinclude/drm/drm_rect.h | 2189 | !Iinclude/drm/drm_rect.h |
2213 | !Edrivers/gpu/drm/drm_rect.c | 2190 | !Edrivers/gpu/drm/drm_rect.c |
2214 | </sect2> | 2191 | </sect2> |
2192 | <sect2> | ||
2193 | <title>Flip-work Helper Reference</title> | ||
2194 | !Pinclude/drm/drm_flip_work.h flip utils | ||
2195 | !Iinclude/drm/drm_flip_work.h | ||
2196 | !Edrivers/gpu/drm/drm_flip_work.c | ||
2197 | </sect2> | ||
2198 | <sect2> | ||
2199 | <title>VMA Offset Manager</title> | ||
2200 | !Pdrivers/gpu/drm/drm_vma_manager.c vma offset manager | ||
2201 | !Edrivers/gpu/drm/drm_vma_manager.c | ||
2202 | !Iinclude/drm/drm_vma_manager.h | ||
2203 | </sect2> | ||
2215 | </sect1> | 2204 | </sect1> |
2216 | 2205 | ||
2217 | <!-- Internals: kms properties --> | 2206 | <!-- Internals: kms properties --> |
@@ -2422,18 +2411,18 @@ void (*postclose) (struct drm_device *, struct drm_file *);</synopsis> | |||
2422 | </abstract> | 2411 | </abstract> |
2423 | <para> | 2412 | <para> |
2424 | The <methodname>firstopen</methodname> method is called by the DRM core | 2413 | The <methodname>firstopen</methodname> method is called by the DRM core |
2425 | when an application opens a device that has no other opened file handle. | 2414 | for legacy UMS (User Mode Setting) drivers only when an application |
2426 | Similarly the <methodname>lastclose</methodname> method is called when | 2415 | opens a device that has no other opened file handle. UMS drivers can |
2427 | the last application holding a file handle opened on the device closes | 2416 | implement it to acquire device resources. KMS drivers can't use the |
2428 | it. Both methods are mostly used for UMS (User Mode Setting) drivers to | 2417 | method and must acquire resources in the <methodname>load</methodname> |
2429 | acquire and release device resources which should be done in the | 2418 | method instead. |
2430 | <methodname>load</methodname> and <methodname>unload</methodname> | ||
2431 | methods for KMS drivers. | ||
2432 | </para> | 2419 | </para> |
2433 | <para> | 2420 | <para> |
2434 | Note that the <methodname>lastclose</methodname> method is also called | 2421 | Similarly the <methodname>lastclose</methodname> method is called when |
2435 | at module unload time or, for hot-pluggable devices, when the device is | 2422 | the last application holding a file handle opened on the device closes |
2436 | unplugged. The <methodname>firstopen</methodname> and | 2423 | it, for both UMS and KMS drivers. Additionally, the method is also |
2424 | called at module unload time or, for hot-pluggable devices, when the | ||
2425 | device is unplugged. The <methodname>firstopen</methodname> and | ||
2437 | <methodname>lastclose</methodname> calls can thus be unbalanced. | 2426 | <methodname>lastclose</methodname> calls can thus be unbalanced. |
2438 | </para> | 2427 | </para> |
2439 | <para> | 2428 | <para> |
@@ -2462,7 +2451,12 @@ void (*postclose) (struct drm_device *, struct drm_file *);</synopsis> | |||
2462 | <para> | 2451 | <para> |
2463 | The <methodname>lastclose</methodname> method should restore CRTC and | 2452 | The <methodname>lastclose</methodname> method should restore CRTC and |
2464 | plane properties to default value, so that a subsequent open of the | 2453 | plane properties to default value, so that a subsequent open of the |
2465 | device will not inherit state from the previous user. | 2454 | device will not inherit state from the previous user. It can also be |
2455 | used to execute delayed power switching state changes, e.g. in | ||
2456 | conjunction with the vga-switcheroo infrastructure. Beyond that KMS | ||
2457 | drivers should not do any further cleanup. Only legacy UMS drivers might | ||
2458 | need to clean up device state so that the vga console or an independent | ||
2459 | fbdev driver could take over. | ||
2466 | </para> | 2460 | </para> |
2467 | </sect2> | 2461 | </sect2> |
2468 | <sect2> | 2462 | <sect2> |
@@ -2498,7 +2492,6 @@ void (*postclose) (struct drm_device *, struct drm_file *);</synopsis> | |||
2498 | <programlisting> | 2492 | <programlisting> |
2499 | .poll = drm_poll, | 2493 | .poll = drm_poll, |
2500 | .read = drm_read, | 2494 | .read = drm_read, |
2501 | .fasync = drm_fasync, | ||
2502 | .llseek = no_llseek, | 2495 | .llseek = no_llseek, |
2503 | </programlisting> | 2496 | </programlisting> |
2504 | </para> | 2497 | </para> |
@@ -2657,6 +2650,69 @@ int (*resume) (struct drm_device *);</synopsis> | |||
2657 | info, since man pages should cover the rest. | 2650 | info, since man pages should cover the rest. |
2658 | </para> | 2651 | </para> |
2659 | 2652 | ||
2653 | <!-- External: render nodes --> | ||
2654 | |||
2655 | <sect1> | ||
2656 | <title>Render nodes</title> | ||
2657 | <para> | ||
2658 | DRM core provides multiple character-devices for user-space to use. | ||
2659 | Depending on which device is opened, user-space can perform a different | ||
2660 | set of operations (mainly ioctls). The primary node is always created | ||
2661 | and called <term>card<num></term>. Additionally, a currently | ||
2662 | unused control node, called <term>controlD<num></term> is also | ||
2663 | created. The primary node provides all legacy operations and | ||
2664 | historically was the only interface used by userspace. With KMS, the | ||
2665 | control node was introduced. However, the planned KMS control interface | ||
2666 | has never been written and so the control node stays unused to date. | ||
2667 | </para> | ||
2668 | <para> | ||
2669 | With the increased use of offscreen renderers and GPGPU applications, | ||
2670 | clients no longer require running compositors or graphics servers to | ||
2671 | make use of a GPU. But the DRM API required unprivileged clients to | ||
2672 | authenticate to a DRM-Master prior to getting GPU access. To avoid this | ||
2673 | step and to grant clients GPU access without authenticating, render | ||
2674 | nodes were introduced. Render nodes solely serve render clients, that | ||
2675 | is, no modesetting or privileged ioctls can be issued on render nodes. | ||
2676 | Only non-global rendering commands are allowed. If a driver supports | ||
2677 | render nodes, it must advertise it via the <term>DRIVER_RENDER</term> | ||
2678 | DRM driver capability. If not supported, the primary node must be used | ||
2679 | for render clients together with the legacy drmAuth authentication | ||
2680 | procedure. | ||
2681 | </para> | ||
2682 | <para> | ||
2683 | If a driver advertises render node support, DRM core will create a | ||
2684 | separate render node called <term>renderD<num></term>. There will | ||
2685 | be one render node per device. No ioctls except PRIME-related ioctls | ||
2686 | will be allowed on this node. Especially <term>GEM_OPEN</term> will be | ||
2687 | explicitly prohibited. Render nodes are designed to avoid the | ||
2688 | buffer-leaks, which occur if clients guess the flink names or mmap | ||
2689 | offsets on the legacy interface. Additionally to this basic interface, | ||
2690 | drivers must mark their driver-dependent render-only ioctls as | ||
2691 | <term>DRM_RENDER_ALLOW</term> so render clients can use them. Driver | ||
2692 | authors must be careful not to allow any privileged ioctls on render | ||
2693 | nodes. | ||
2694 | </para> | ||
2695 | <para> | ||
2696 | With render nodes, user-space can now control access to the render node | ||
2697 | via basic file-system access-modes. A running graphics server which | ||
2698 | authenticates clients on the privileged primary/legacy node is no longer | ||
2699 | required. Instead, a client can open the render node and is immediately | ||
2700 | granted GPU access. Communication between clients (or servers) is done | ||
2701 | via PRIME. FLINK from render node to legacy node is not supported. New | ||
2702 | clients must not use the insecure FLINK interface. | ||
2703 | </para> | ||
2704 | <para> | ||
2705 | Besides dropping all modeset/global ioctls, render nodes also drop the | ||
2706 | DRM-Master concept. There is no reason to associate render clients with | ||
2707 | a DRM-Master as they are independent of any graphics server. Besides, | ||
2708 | they must work without any running master, anyway. | ||
2709 | Drivers must be able to run without a master object if they support | ||
2710 | render nodes. If, on the other hand, a driver requires shared state | ||
2711 | between clients which is visible to user-space and accessible beyond | ||
2712 | open-file boundaries, they cannot support render nodes. | ||
2713 | </para> | ||
2714 | </sect1> | ||
2715 | |||
2660 | <!-- External: vblank handling --> | 2716 | <!-- External: vblank handling --> |
2661 | 2717 | ||
2662 | <sect1> | 2718 | <sect1> |
diff --git a/Documentation/DocBook/media/v4l/controls.xml b/Documentation/DocBook/media/v4l/controls.xml index c2fc9ec1417e..7a3b49b3cc3b 100644 --- a/Documentation/DocBook/media/v4l/controls.xml +++ b/Documentation/DocBook/media/v4l/controls.xml | |||
@@ -722,17 +722,22 @@ for more details.</para> | |||
722 | </section> | 722 | </section> |
723 | 723 | ||
724 | <section id="mpeg-controls"> | 724 | <section id="mpeg-controls"> |
725 | <title>MPEG Control Reference</title> | 725 | <title>Codec Control Reference</title> |
726 | 726 | ||
727 | <para>Below all controls within the MPEG control class are | 727 | <para>Below all controls within the Codec control class are |
728 | described. First the generic controls, then controls specific for | 728 | described. First the generic controls, then controls specific for |
729 | certain hardware.</para> | 729 | certain hardware.</para> |
730 | 730 | ||
731 | <para>Note: These controls are applicable to all codecs and | ||
732 | not just MPEG. The defines are prefixed with V4L2_CID_MPEG/V4L2_MPEG | ||
733 | as the controls were originally made for MPEG codecs and later | ||
734 | extended to cover all encoding formats.</para> | ||
735 | |||
731 | <section> | 736 | <section> |
732 | <title>Generic MPEG Controls</title> | 737 | <title>Generic Codec Controls</title> |
733 | 738 | ||
734 | <table pgwide="1" frame="none" id="mpeg-control-id"> | 739 | <table pgwide="1" frame="none" id="mpeg-control-id"> |
735 | <title>MPEG Control IDs</title> | 740 | <title>Codec Control IDs</title> |
736 | <tgroup cols="4"> | 741 | <tgroup cols="4"> |
737 | <colspec colname="c1" colwidth="1*" /> | 742 | <colspec colname="c1" colwidth="1*" /> |
738 | <colspec colname="c2" colwidth="6*" /> | 743 | <colspec colname="c2" colwidth="6*" /> |
@@ -752,7 +757,7 @@ certain hardware.</para> | |||
752 | <row> | 757 | <row> |
753 | <entry spanname="id"><constant>V4L2_CID_MPEG_CLASS</constant> </entry> | 758 | <entry spanname="id"><constant>V4L2_CID_MPEG_CLASS</constant> </entry> |
754 | <entry>class</entry> | 759 | <entry>class</entry> |
755 | </row><row><entry spanname="descr">The MPEG class | 760 | </row><row><entry spanname="descr">The Codec class |
756 | descriptor. Calling &VIDIOC-QUERYCTRL; for this control will return a | 761 | descriptor. Calling &VIDIOC-QUERYCTRL; for this control will return a |
757 | description of this control class. This description can be used as the | 762 | description of this control class. This description can be used as the |
758 | caption of a Tab page in a GUI, for example.</entry> | 763 | caption of a Tab page in a GUI, for example.</entry> |
@@ -3009,6 +3014,159 @@ in by the application. 0 = do not insert, 1 = insert packets.</entry> | |||
3009 | </tgroup> | 3014 | </tgroup> |
3010 | </table> | 3015 | </table> |
3011 | </section> | 3016 | </section> |
3017 | |||
3018 | <section> | ||
3019 | <title>VPX Control Reference</title> | ||
3020 | |||
3021 | <para>The VPX controls include controls for encoding parameters | ||
3022 | of VPx video codec.</para> | ||
3023 | |||
3024 | <table pgwide="1" frame="none" id="vpx-control-id"> | ||
3025 | <title>VPX Control IDs</title> | ||
3026 | |||
3027 | <tgroup cols="4"> | ||
3028 | <colspec colname="c1" colwidth="1*" /> | ||
3029 | <colspec colname="c2" colwidth="6*" /> | ||
3030 | <colspec colname="c3" colwidth="2*" /> | ||
3031 | <colspec colname="c4" colwidth="6*" /> | ||
3032 | <spanspec namest="c1" nameend="c2" spanname="id" /> | ||
3033 | <spanspec namest="c2" nameend="c4" spanname="descr" /> | ||
3034 | <thead> | ||
3035 | <row> | ||
3036 | <entry spanname="id" align="left">ID</entry> | ||
3037 | <entry align="left">Type</entry> | ||
3038 | </row><row rowsep="1"><entry spanname="descr" align="left">Description</entry> | ||
3039 | </row> | ||
3040 | </thead> | ||
3041 | <tbody valign="top"> | ||
3042 | <row><entry></entry></row> | ||
3043 | |||
3044 | <row><entry></entry></row> | ||
3045 | <row id="v4l2-vpx-num-partitions"> | ||
3046 | <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS</constant></entry> | ||
3047 | <entry>enum v4l2_vp8_num_partitions</entry> | ||
3048 | </row> | ||
3049 | <row><entry spanname="descr">The number of token partitions to use in VP8 encoder. | ||
3050 | Possible values are:</entry> | ||
3051 | </row> | ||
3052 | <row> | ||
3053 | <entrytbl spanname="descr" cols="2"> | ||
3054 | <tbody valign="top"> | ||
3055 | <row> | ||
3056 | <entry><constant>V4L2_CID_MPEG_VIDEO_VPX_1_PARTITION</constant></entry> | ||
3057 | <entry>1 coefficient partition</entry> | ||
3058 | </row> | ||
3059 | <row> | ||
3060 | <entry><constant>V4L2_CID_MPEG_VIDEO_VPX_2_PARTITIONS</constant></entry> | ||
3061 | <entry>2 coefficient partitions</entry> | ||
3062 | </row> | ||
3063 | <row> | ||
3064 | <entry><constant>V4L2_CID_MPEG_VIDEO_VPX_4_PARTITIONS</constant></entry> | ||
3065 | <entry>4 coefficient partitions</entry> | ||
3066 | </row> | ||
3067 | <row> | ||
3068 | <entry><constant>V4L2_CID_MPEG_VIDEO_VPX_8_PARTITIONS</constant></entry> | ||
3069 | <entry>8 coefficient partitions</entry> | ||
3070 | </row> | ||
3071 | </tbody> | ||
3072 | </entrytbl> | ||
3073 | </row> | ||
3074 | |||
3075 | <row><entry></entry></row> | ||
3076 | <row> | ||
3077 | <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4</constant></entry> | ||
3078 | <entry>boolean</entry> | ||
3079 | </row> | ||
3080 | <row><entry spanname="descr">Setting this prevents intra 4x4 mode in the intra mode decision.</entry> | ||
3081 | </row> | ||
3082 | |||
3083 | <row><entry></entry></row> | ||
3084 | <row id="v4l2-vpx-num-ref-frames"> | ||
3085 | <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES</constant></entry> | ||
3086 | <entry>enum v4l2_vp8_num_ref_frames</entry> | ||
3087 | </row> | ||
3088 | <row><entry spanname="descr">The number of reference pictures for encoding P frames. | ||
3089 | Possible values are:</entry> | ||
3090 | </row> | ||
3091 | <row> | ||
3092 | <entrytbl spanname="descr" cols="2"> | ||
3093 | <tbody valign="top"> | ||
3094 | <row> | ||
3095 | <entry><constant>V4L2_CID_MPEG_VIDEO_VPX_1_REF_FRAME</constant></entry> | ||
3096 | <entry>Last encoded frame will be searched</entry> | ||
3097 | </row> | ||
3098 | <row> | ||
3099 | <entry><constant>V4L2_CID_MPEG_VIDEO_VPX_2_REF_FRAME</constant></entry> | ||
3100 | <entry>Two frames will be searched among the last encoded frame, the golden frame | ||
3101 | and the alternate reference (altref) frame. The encoder implementation will decide which two are chosen.</entry> | ||
3102 | </row> | ||
3103 | <row> | ||
3104 | <entry><constant>V4L2_CID_MPEG_VIDEO_VPX_3_REF_FRAME</constant></entry> | ||
3105 | <entry>The last encoded frame, the golden frame and the altref frame will be searched.</entry> | ||
3106 | </row> | ||
3107 | </tbody> | ||
3108 | </entrytbl> | ||
3109 | </row> | ||
3110 | |||
3111 | <row><entry></entry></row> | ||
3112 | <row> | ||
3113 | <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL</constant></entry> | ||
3114 | <entry>integer</entry> | ||
3115 | </row> | ||
3116 | <row><entry spanname="descr">Indicates the loop filter level. The adjustment of the loop | ||
3117 | filter level is done via a delta value against a baseline loop filter value.</entry> | ||
3118 | </row> | ||
3119 | |||
3120 | <row><entry></entry></row> | ||
3121 | <row> | ||
3122 | <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS</constant></entry> | ||
3123 | <entry>integer</entry> | ||
3124 | </row> | ||
3125 | <row><entry spanname="descr">This parameter affects the loop filter. Anything above | ||
3126 | zero weakens the deblocking effect on the loop filter.</entry> | ||
3127 | </row> | ||
3128 | |||
3129 | <row><entry></entry></row> | ||
3130 | <row> | ||
3131 | <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD</constant></entry> | ||
3132 | <entry>integer</entry> | ||
3133 | </row> | ||
3134 | <row><entry spanname="descr">Sets the refresh period for the golden frame. The period is defined | ||
3135 | in number of frames. For a value of 'n', every nth frame starting from the first key frame will be taken as a golden frame. | ||
3136 | For eg. for encoding sequence of 0, 1, 2, 3, 4, 5, 6, 7 where the golden frame refresh period is set as 4, the frames | ||
3137 | 0, 4, 8 etc will be taken as the golden frames as frame 0 is always a key frame.</entry> | ||
3138 | </row> | ||
3139 | |||
3140 | <row><entry></entry></row> | ||
3141 | <row id="v4l2-vpx-golden-frame-sel"> | ||
3142 | <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL</constant></entry> | ||
3143 | <entry>enum v4l2_vp8_golden_frame_sel</entry> | ||
3144 | </row> | ||
3145 | <row><entry spanname="descr">Selects the golden frame for encoding. | ||
3146 | Possible values are:</entry> | ||
3147 | </row> | ||
3148 | <row> | ||
3149 | <entrytbl spanname="descr" cols="2"> | ||
3150 | <tbody valign="top"> | ||
3151 | <row> | ||
3152 | <entry><constant>V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_PREV</constant></entry> | ||
3153 | <entry>Use the (n-2)th frame as a golden frame, current frame index being 'n'.</entry> | ||
3154 | </row> | ||
3155 | <row> | ||
3156 | <entry><constant>V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_REF_PERIOD</constant></entry> | ||
3157 | <entry>Use the previous specific frame indicated by | ||
3158 | V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD as a golden frame.</entry> | ||
3159 | </row> | ||
3160 | </tbody> | ||
3161 | </entrytbl> | ||
3162 | </row> | ||
3163 | |||
3164 | <row><entry></entry></row> | ||
3165 | </tbody> | ||
3166 | </tgroup> | ||
3167 | </table> | ||
3168 | |||
3169 | </section> | ||
3012 | </section> | 3170 | </section> |
3013 | 3171 | ||
3014 | <section id="camera-controls"> | 3172 | <section id="camera-controls"> |
diff --git a/Documentation/DocBook/media/v4l/lirc_device_interface.xml b/Documentation/DocBook/media/v4l/lirc_device_interface.xml index 8d7eb6bf6312..34cada2ca710 100644 --- a/Documentation/DocBook/media/v4l/lirc_device_interface.xml +++ b/Documentation/DocBook/media/v4l/lirc_device_interface.xml | |||
@@ -46,7 +46,9 @@ describing an IR signal are read from the chardev.</para> | |||
46 | values. Pulses and spaces are only marked implicitly by their position. The | 46 | values. Pulses and spaces are only marked implicitly by their position. The |
47 | data must start and end with a pulse, therefore, the data must always include | 47 | data must start and end with a pulse, therefore, the data must always include |
48 | an uneven number of samples. The write function must block until the data has | 48 | an uneven number of samples. The write function must block until the data has |
49 | been transmitted by the hardware.</para> | 49 | been transmitted by the hardware. If more data is provided than the hardware |
50 | can send, the driver returns EINVAL.</para> | ||
51 | |||
50 | </section> | 52 | </section> |
51 | 53 | ||
52 | <section id="lirc_ioctl"> | 54 | <section id="lirc_ioctl"> |
diff --git a/Documentation/DocBook/media/v4l/pixfmt-nv16m.xml b/Documentation/DocBook/media/v4l/pixfmt-nv16m.xml new file mode 100644 index 000000000000..c51d5a4cda09 --- /dev/null +++ b/Documentation/DocBook/media/v4l/pixfmt-nv16m.xml | |||
@@ -0,0 +1,171 @@ | |||
1 | <refentry> | ||
2 | <refmeta> | ||
3 | <refentrytitle>V4L2_PIX_FMT_NV16M ('NM16'), V4L2_PIX_FMT_NV61M ('NM61')</refentrytitle> | ||
4 | &manvol; | ||
5 | </refmeta> | ||
6 | <refnamediv> | ||
7 | <refname id="V4L2-PIX-FMT-NV16M"><constant>V4L2_PIX_FMT_NV16M</constant></refname> | ||
8 | <refname id="V4L2-PIX-FMT-NV61M"><constant>V4L2_PIX_FMT_NV61M</constant></refname> | ||
9 | <refpurpose>Variation of <constant>V4L2_PIX_FMT_NV16</constant> and <constant>V4L2_PIX_FMT_NV61</constant> with planes | ||
10 | non contiguous in memory. </refpurpose> | ||
11 | </refnamediv> | ||
12 | <refsect1> | ||
13 | <title>Description</title> | ||
14 | |||
15 | <para>This is a multi-planar, two-plane version of the YUV 4:2:0 format. | ||
16 | The three components are separated into two sub-images or planes. | ||
17 | <constant>V4L2_PIX_FMT_NV16M</constant> differs from <constant>V4L2_PIX_FMT_NV16 | ||
18 | </constant> in that the two planes are non-contiguous in memory, i.e. the chroma | ||
19 | plane does not necessarily immediately follows the luma plane. | ||
20 | The luminance data occupies the first plane. The Y plane has one byte per pixel. | ||
21 | In the second plane there is chrominance data with alternating chroma samples. | ||
22 | The CbCr plane is the same width and height, in bytes, as the Y plane. | ||
23 | Each CbCr pair belongs to four pixels. For example, | ||
24 | Cb<subscript>0</subscript>/Cr<subscript>0</subscript> belongs to | ||
25 | Y'<subscript>00</subscript>, Y'<subscript>01</subscript>, | ||
26 | Y'<subscript>10</subscript>, Y'<subscript>11</subscript>. | ||
27 | <constant>V4L2_PIX_FMT_NV61M</constant> is the same as <constant>V4L2_PIX_FMT_NV16M</constant> | ||
28 | except the Cb and Cr bytes are swapped, the CrCb plane starts with a Cr byte.</para> | ||
29 | |||
30 | <para><constant>V4L2_PIX_FMT_NV16M</constant> and | ||
31 | <constant>V4L2_PIX_FMT_NV61M</constant> are intended to be used only in drivers | ||
32 | and applications that support the multi-planar API, described in | ||
33 | <xref linkend="planar-apis"/>. </para> | ||
34 | |||
35 | <example> | ||
36 | <title><constant>V4L2_PIX_FMT_NV16M</constant> 4 × 4 pixel image</title> | ||
37 | |||
38 | <formalpara> | ||
39 | <title>Byte Order.</title> | ||
40 | <para>Each cell is one byte. | ||
41 | <informaltable frame="none"> | ||
42 | <tgroup cols="5" align="center"> | ||
43 | <colspec align="left" colwidth="2*" /> | ||
44 | <tbody valign="top"> | ||
45 | <row> | ||
46 | <entry>start0 + 0:</entry> | ||
47 | <entry>Y'<subscript>00</subscript></entry> | ||
48 | <entry>Y'<subscript>01</subscript></entry> | ||
49 | <entry>Y'<subscript>02</subscript></entry> | ||
50 | <entry>Y'<subscript>03</subscript></entry> | ||
51 | </row> | ||
52 | <row> | ||
53 | <entry>start0 + 4:</entry> | ||
54 | <entry>Y'<subscript>10</subscript></entry> | ||
55 | <entry>Y'<subscript>11</subscript></entry> | ||
56 | <entry>Y'<subscript>12</subscript></entry> | ||
57 | <entry>Y'<subscript>13</subscript></entry> | ||
58 | </row> | ||
59 | <row> | ||
60 | <entry>start0 + 8:</entry> | ||
61 | <entry>Y'<subscript>20</subscript></entry> | ||
62 | <entry>Y'<subscript>21</subscript></entry> | ||
63 | <entry>Y'<subscript>22</subscript></entry> | ||
64 | <entry>Y'<subscript>23</subscript></entry> | ||
65 | </row> | ||
66 | <row> | ||
67 | <entry>start0 + 12:</entry> | ||
68 | <entry>Y'<subscript>30</subscript></entry> | ||
69 | <entry>Y'<subscript>31</subscript></entry> | ||
70 | <entry>Y'<subscript>32</subscript></entry> | ||
71 | <entry>Y'<subscript>33</subscript></entry> | ||
72 | </row> | ||
73 | <row> | ||
74 | <entry></entry> | ||
75 | </row> | ||
76 | <row> | ||
77 | <entry>start1 + 0:</entry> | ||
78 | <entry>Cb<subscript>00</subscript></entry> | ||
79 | <entry>Cr<subscript>00</subscript></entry> | ||
80 | <entry>Cb<subscript>02</subscript></entry> | ||
81 | <entry>Cr<subscript>02</subscript></entry> | ||
82 | </row> | ||
83 | <row> | ||
84 | <entry>start1 + 4:</entry> | ||
85 | <entry>Cb<subscript>10</subscript></entry> | ||
86 | <entry>Cr<subscript>10</subscript></entry> | ||
87 | <entry>Cb<subscript>12</subscript></entry> | ||
88 | <entry>Cr<subscript>12</subscript></entry> | ||
89 | </row> | ||
90 | <row> | ||
91 | <entry>start1 + 8:</entry> | ||
92 | <entry>Cb<subscript>20</subscript></entry> | ||
93 | <entry>Cr<subscript>20</subscript></entry> | ||
94 | <entry>Cb<subscript>22</subscript></entry> | ||
95 | <entry>Cr<subscript>22</subscript></entry> | ||
96 | </row> | ||
97 | <row> | ||
98 | <entry>start1 + 12:</entry> | ||
99 | <entry>Cb<subscript>30</subscript></entry> | ||
100 | <entry>Cr<subscript>30</subscript></entry> | ||
101 | <entry>Cb<subscript>32</subscript></entry> | ||
102 | <entry>Cr<subscript>32</subscript></entry> | ||
103 | </row> | ||
104 | </tbody> | ||
105 | </tgroup> | ||
106 | </informaltable> | ||
107 | </para> | ||
108 | </formalpara> | ||
109 | |||
110 | <formalpara> | ||
111 | <title>Color Sample Location.</title> | ||
112 | <para> | ||
113 | <informaltable frame="none"> | ||
114 | <tgroup cols="7" align="center"> | ||
115 | <tbody valign="top"> | ||
116 | <row> | ||
117 | <entry></entry> | ||
118 | <entry>0</entry><entry></entry><entry>1</entry><entry></entry> | ||
119 | <entry>2</entry><entry></entry><entry>3</entry> | ||
120 | </row> | ||
121 | <row> | ||
122 | <entry>0</entry> | ||
123 | <entry>Y</entry><entry></entry><entry>Y</entry><entry></entry> | ||
124 | <entry>Y</entry><entry></entry><entry>Y</entry> | ||
125 | </row> | ||
126 | <row> | ||
127 | <entry></entry> | ||
128 | <entry></entry><entry>C</entry><entry></entry><entry></entry> | ||
129 | <entry></entry><entry>C</entry><entry></entry> | ||
130 | </row> | ||
131 | <row> | ||
132 | <entry>1</entry> | ||
133 | <entry>Y</entry><entry></entry><entry>Y</entry><entry></entry> | ||
134 | <entry>Y</entry><entry></entry><entry>Y</entry> | ||
135 | </row> | ||
136 | <row> | ||
137 | <entry></entry> | ||
138 | <entry></entry><entry>C</entry><entry></entry><entry></entry> | ||
139 | <entry></entry><entry>C</entry><entry></entry> | ||
140 | </row> | ||
141 | <row> | ||
142 | <entry></entry> | ||
143 | </row> | ||
144 | <row> | ||
145 | <entry>2</entry> | ||
146 | <entry>Y</entry><entry></entry><entry>Y</entry><entry></entry> | ||
147 | <entry>Y</entry><entry></entry><entry>Y</entry> | ||
148 | </row> | ||
149 | <row> | ||
150 | <entry></entry> | ||
151 | <entry></entry><entry>C</entry><entry></entry><entry></entry> | ||
152 | <entry></entry><entry>C</entry><entry></entry> | ||
153 | </row> | ||
154 | <row> | ||
155 | <entry>3</entry> | ||
156 | <entry>Y</entry><entry></entry><entry>Y</entry><entry></entry> | ||
157 | <entry>Y</entry><entry></entry><entry>Y</entry> | ||
158 | </row> | ||
159 | <row> | ||
160 | <entry></entry> | ||
161 | <entry></entry><entry>C</entry><entry></entry><entry></entry> | ||
162 | <entry></entry><entry>C</entry><entry></entry> | ||
163 | </row> | ||
164 | </tbody> | ||
165 | </tgroup> | ||
166 | </informaltable> | ||
167 | </para> | ||
168 | </formalpara> | ||
169 | </example> | ||
170 | </refsect1> | ||
171 | </refentry> | ||
diff --git a/Documentation/DocBook/media/v4l/pixfmt.xml b/Documentation/DocBook/media/v4l/pixfmt.xml index 99b8d2ad6e4f..72d72bd67d0a 100644 --- a/Documentation/DocBook/media/v4l/pixfmt.xml +++ b/Documentation/DocBook/media/v4l/pixfmt.xml | |||
@@ -391,9 +391,9 @@ clamp (double x) | |||
391 | else return r; | 391 | else return r; |
392 | } | 392 | } |
393 | 393 | ||
394 | y1 = (255 / 219.0) * (Y1 - 16); | 394 | y1 = (Y1 - 16) / 219.0; |
395 | pb = (255 / 224.0) * (Cb - 128); | 395 | pb = (Cb - 128) / 224.0; |
396 | pr = (255 / 224.0) * (Cr - 128); | 396 | pr = (Cr - 128) / 224.0; |
397 | 397 | ||
398 | r = 1.0 * y1 + 0 * pb + 1.402 * pr; | 398 | r = 1.0 * y1 + 0 * pb + 1.402 * pr; |
399 | g = 1.0 * y1 - 0.344 * pb - 0.714 * pr; | 399 | g = 1.0 * y1 - 0.344 * pb - 0.714 * pr; |
@@ -718,6 +718,7 @@ information.</para> | |||
718 | &sub-nv12m; | 718 | &sub-nv12m; |
719 | &sub-nv12mt; | 719 | &sub-nv12mt; |
720 | &sub-nv16; | 720 | &sub-nv16; |
721 | &sub-nv16m; | ||
721 | &sub-nv24; | 722 | &sub-nv24; |
722 | &sub-m420; | 723 | &sub-m420; |
723 | </section> | 724 | </section> |
diff --git a/Documentation/DocBook/media/v4l/subdev-formats.xml b/Documentation/DocBook/media/v4l/subdev-formats.xml index adc61982df7b..f72c1cc93a9b 100644 --- a/Documentation/DocBook/media/v4l/subdev-formats.xml +++ b/Documentation/DocBook/media/v4l/subdev-formats.xml | |||
@@ -97,31 +97,39 @@ | |||
97 | <colspec colname="id" align="left" /> | 97 | <colspec colname="id" align="left" /> |
98 | <colspec colname="code" align="center"/> | 98 | <colspec colname="code" align="center"/> |
99 | <colspec colname="bit" /> | 99 | <colspec colname="bit" /> |
100 | <colspec colnum="4" colname="b23" align="center" /> | 100 | <colspec colnum="4" colname="b31" align="center" /> |
101 | <colspec colnum="5" colname="b22" align="center" /> | 101 | <colspec colnum="5" colname="b20" align="center" /> |
102 | <colspec colnum="6" colname="b21" align="center" /> | 102 | <colspec colnum="6" colname="b29" align="center" /> |
103 | <colspec colnum="7" colname="b20" align="center" /> | 103 | <colspec colnum="7" colname="b28" align="center" /> |
104 | <colspec colnum="8" colname="b19" align="center" /> | 104 | <colspec colnum="8" colname="b27" align="center" /> |
105 | <colspec colnum="9" colname="b18" align="center" /> | 105 | <colspec colnum="9" colname="b26" align="center" /> |
106 | <colspec colnum="10" colname="b17" align="center" /> | 106 | <colspec colnum="10" colname="b25" align="center" /> |
107 | <colspec colnum="11" colname="b16" align="center" /> | 107 | <colspec colnum="11" colname="b24" align="center" /> |
108 | <colspec colnum="12" colname="b15" align="center" /> | 108 | <colspec colnum="12" colname="b23" align="center" /> |
109 | <colspec colnum="13" colname="b14" align="center" /> | 109 | <colspec colnum="13" colname="b22" align="center" /> |
110 | <colspec colnum="14" colname="b13" align="center" /> | 110 | <colspec colnum="14" colname="b21" align="center" /> |
111 | <colspec colnum="15" colname="b12" align="center" /> | 111 | <colspec colnum="15" colname="b20" align="center" /> |
112 | <colspec colnum="16" colname="b11" align="center" /> | 112 | <colspec colnum="16" colname="b19" align="center" /> |
113 | <colspec colnum="17" colname="b10" align="center" /> | 113 | <colspec colnum="17" colname="b18" align="center" /> |
114 | <colspec colnum="18" colname="b09" align="center" /> | 114 | <colspec colnum="18" colname="b17" align="center" /> |
115 | <colspec colnum="19" colname="b08" align="center" /> | 115 | <colspec colnum="19" colname="b16" align="center" /> |
116 | <colspec colnum="20" colname="b07" align="center" /> | 116 | <colspec colnum="20" colname="b15" align="center" /> |
117 | <colspec colnum="21" colname="b06" align="center" /> | 117 | <colspec colnum="21" colname="b14" align="center" /> |
118 | <colspec colnum="22" colname="b05" align="center" /> | 118 | <colspec colnum="22" colname="b13" align="center" /> |
119 | <colspec colnum="23" colname="b04" align="center" /> | 119 | <colspec colnum="23" colname="b12" align="center" /> |
120 | <colspec colnum="24" colname="b03" align="center" /> | 120 | <colspec colnum="24" colname="b11" align="center" /> |
121 | <colspec colnum="25" colname="b02" align="center" /> | 121 | <colspec colnum="25" colname="b10" align="center" /> |
122 | <colspec colnum="26" colname="b01" align="center" /> | 122 | <colspec colnum="26" colname="b09" align="center" /> |
123 | <colspec colnum="27" colname="b00" align="center" /> | 123 | <colspec colnum="27" colname="b08" align="center" /> |
124 | <spanspec namest="b23" nameend="b00" spanname="b0" /> | 124 | <colspec colnum="28" colname="b07" align="center" /> |
125 | <colspec colnum="29" colname="b06" align="center" /> | ||
126 | <colspec colnum="30" colname="b05" align="center" /> | ||
127 | <colspec colnum="31" colname="b04" align="center" /> | ||
128 | <colspec colnum="32" colname="b03" align="center" /> | ||
129 | <colspec colnum="33" colname="b02" align="center" /> | ||
130 | <colspec colnum="34" colname="b01" align="center" /> | ||
131 | <colspec colnum="35" colname="b00" align="center" /> | ||
132 | <spanspec namest="b31" nameend="b00" spanname="b0" /> | ||
125 | <thead> | 133 | <thead> |
126 | <row> | 134 | <row> |
127 | <entry>Identifier</entry> | 135 | <entry>Identifier</entry> |
@@ -133,6 +141,14 @@ | |||
133 | <entry></entry> | 141 | <entry></entry> |
134 | <entry></entry> | 142 | <entry></entry> |
135 | <entry>Bit</entry> | 143 | <entry>Bit</entry> |
144 | <entry>31</entry> | ||
145 | <entry>30</entry> | ||
146 | <entry>29</entry> | ||
147 | <entry>28</entry> | ||
148 | <entry>27</entry> | ||
149 | <entry>26</entry> | ||
150 | <entry>25</entry> | ||
151 | <entry>24</entry> | ||
136 | <entry>23</entry> | 152 | <entry>23</entry> |
137 | <entry>22</entry> | 153 | <entry>22</entry> |
138 | <entry>21</entry> | 154 | <entry>21</entry> |
@@ -164,7 +180,7 @@ | |||
164 | <entry>V4L2_MBUS_FMT_RGB444_2X8_PADHI_BE</entry> | 180 | <entry>V4L2_MBUS_FMT_RGB444_2X8_PADHI_BE</entry> |
165 | <entry>0x1001</entry> | 181 | <entry>0x1001</entry> |
166 | <entry></entry> | 182 | <entry></entry> |
167 | &dash-ent-16; | 183 | &dash-ent-24; |
168 | <entry>0</entry> | 184 | <entry>0</entry> |
169 | <entry>0</entry> | 185 | <entry>0</entry> |
170 | <entry>0</entry> | 186 | <entry>0</entry> |
@@ -178,7 +194,7 @@ | |||
178 | <entry></entry> | 194 | <entry></entry> |
179 | <entry></entry> | 195 | <entry></entry> |
180 | <entry></entry> | 196 | <entry></entry> |
181 | &dash-ent-16; | 197 | &dash-ent-24; |
182 | <entry>g<subscript>3</subscript></entry> | 198 | <entry>g<subscript>3</subscript></entry> |
183 | <entry>g<subscript>2</subscript></entry> | 199 | <entry>g<subscript>2</subscript></entry> |
184 | <entry>g<subscript>1</subscript></entry> | 200 | <entry>g<subscript>1</subscript></entry> |
@@ -192,7 +208,7 @@ | |||
192 | <entry>V4L2_MBUS_FMT_RGB444_2X8_PADHI_LE</entry> | 208 | <entry>V4L2_MBUS_FMT_RGB444_2X8_PADHI_LE</entry> |
193 | <entry>0x1002</entry> | 209 | <entry>0x1002</entry> |
194 | <entry></entry> | 210 | <entry></entry> |
195 | &dash-ent-16; | 211 | &dash-ent-24; |
196 | <entry>g<subscript>3</subscript></entry> | 212 | <entry>g<subscript>3</subscript></entry> |
197 | <entry>g<subscript>2</subscript></entry> | 213 | <entry>g<subscript>2</subscript></entry> |
198 | <entry>g<subscript>1</subscript></entry> | 214 | <entry>g<subscript>1</subscript></entry> |
@@ -206,7 +222,7 @@ | |||
206 | <entry></entry> | 222 | <entry></entry> |
207 | <entry></entry> | 223 | <entry></entry> |
208 | <entry></entry> | 224 | <entry></entry> |
209 | &dash-ent-16; | 225 | &dash-ent-24; |
210 | <entry>0</entry> | 226 | <entry>0</entry> |
211 | <entry>0</entry> | 227 | <entry>0</entry> |
212 | <entry>0</entry> | 228 | <entry>0</entry> |
@@ -220,7 +236,7 @@ | |||
220 | <entry>V4L2_MBUS_FMT_RGB555_2X8_PADHI_BE</entry> | 236 | <entry>V4L2_MBUS_FMT_RGB555_2X8_PADHI_BE</entry> |
221 | <entry>0x1003</entry> | 237 | <entry>0x1003</entry> |
222 | <entry></entry> | 238 | <entry></entry> |
223 | &dash-ent-16; | 239 | &dash-ent-24; |
224 | <entry>0</entry> | 240 | <entry>0</entry> |
225 | <entry>r<subscript>4</subscript></entry> | 241 | <entry>r<subscript>4</subscript></entry> |
226 | <entry>r<subscript>3</subscript></entry> | 242 | <entry>r<subscript>3</subscript></entry> |
@@ -234,7 +250,7 @@ | |||
234 | <entry></entry> | 250 | <entry></entry> |
235 | <entry></entry> | 251 | <entry></entry> |
236 | <entry></entry> | 252 | <entry></entry> |
237 | &dash-ent-16; | 253 | &dash-ent-24; |
238 | <entry>g<subscript>2</subscript></entry> | 254 | <entry>g<subscript>2</subscript></entry> |
239 | <entry>g<subscript>1</subscript></entry> | 255 | <entry>g<subscript>1</subscript></entry> |
240 | <entry>g<subscript>0</subscript></entry> | 256 | <entry>g<subscript>0</subscript></entry> |
@@ -248,7 +264,7 @@ | |||
248 | <entry>V4L2_MBUS_FMT_RGB555_2X8_PADHI_LE</entry> | 264 | <entry>V4L2_MBUS_FMT_RGB555_2X8_PADHI_LE</entry> |
249 | <entry>0x1004</entry> | 265 | <entry>0x1004</entry> |
250 | <entry></entry> | 266 | <entry></entry> |
251 | &dash-ent-16; | 267 | &dash-ent-24; |
252 | <entry>g<subscript>2</subscript></entry> | 268 | <entry>g<subscript>2</subscript></entry> |
253 | <entry>g<subscript>1</subscript></entry> | 269 | <entry>g<subscript>1</subscript></entry> |
254 | <entry>g<subscript>0</subscript></entry> | 270 | <entry>g<subscript>0</subscript></entry> |
@@ -262,7 +278,7 @@ | |||
262 | <entry></entry> | 278 | <entry></entry> |
263 | <entry></entry> | 279 | <entry></entry> |
264 | <entry></entry> | 280 | <entry></entry> |
265 | &dash-ent-16; | 281 | &dash-ent-24; |
266 | <entry>0</entry> | 282 | <entry>0</entry> |
267 | <entry>r<subscript>4</subscript></entry> | 283 | <entry>r<subscript>4</subscript></entry> |
268 | <entry>r<subscript>3</subscript></entry> | 284 | <entry>r<subscript>3</subscript></entry> |
@@ -276,7 +292,7 @@ | |||
276 | <entry>V4L2_MBUS_FMT_BGR565_2X8_BE</entry> | 292 | <entry>V4L2_MBUS_FMT_BGR565_2X8_BE</entry> |
277 | <entry>0x1005</entry> | 293 | <entry>0x1005</entry> |
278 | <entry></entry> | 294 | <entry></entry> |
279 | &dash-ent-16; | 295 | &dash-ent-24; |
280 | <entry>b<subscript>4</subscript></entry> | 296 | <entry>b<subscript>4</subscript></entry> |
281 | <entry>b<subscript>3</subscript></entry> | 297 | <entry>b<subscript>3</subscript></entry> |
282 | <entry>b<subscript>2</subscript></entry> | 298 | <entry>b<subscript>2</subscript></entry> |
@@ -290,7 +306,7 @@ | |||
290 | <entry></entry> | 306 | <entry></entry> |
291 | <entry></entry> | 307 | <entry></entry> |
292 | <entry></entry> | 308 | <entry></entry> |
293 | &dash-ent-16; | 309 | &dash-ent-24; |
294 | <entry>g<subscript>2</subscript></entry> | 310 | <entry>g<subscript>2</subscript></entry> |
295 | <entry>g<subscript>1</subscript></entry> | 311 | <entry>g<subscript>1</subscript></entry> |
296 | <entry>g<subscript>0</subscript></entry> | 312 | <entry>g<subscript>0</subscript></entry> |
@@ -304,7 +320,7 @@ | |||
304 | <entry>V4L2_MBUS_FMT_BGR565_2X8_LE</entry> | 320 | <entry>V4L2_MBUS_FMT_BGR565_2X8_LE</entry> |
305 | <entry>0x1006</entry> | 321 | <entry>0x1006</entry> |
306 | <entry></entry> | 322 | <entry></entry> |
307 | &dash-ent-16; | 323 | &dash-ent-24; |
308 | <entry>g<subscript>2</subscript></entry> | 324 | <entry>g<subscript>2</subscript></entry> |
309 | <entry>g<subscript>1</subscript></entry> | 325 | <entry>g<subscript>1</subscript></entry> |
310 | <entry>g<subscript>0</subscript></entry> | 326 | <entry>g<subscript>0</subscript></entry> |
@@ -318,7 +334,7 @@ | |||
318 | <entry></entry> | 334 | <entry></entry> |
319 | <entry></entry> | 335 | <entry></entry> |
320 | <entry></entry> | 336 | <entry></entry> |
321 | &dash-ent-16; | 337 | &dash-ent-24; |
322 | <entry>b<subscript>4</subscript></entry> | 338 | <entry>b<subscript>4</subscript></entry> |
323 | <entry>b<subscript>3</subscript></entry> | 339 | <entry>b<subscript>3</subscript></entry> |
324 | <entry>b<subscript>2</subscript></entry> | 340 | <entry>b<subscript>2</subscript></entry> |
@@ -332,7 +348,7 @@ | |||
332 | <entry>V4L2_MBUS_FMT_RGB565_2X8_BE</entry> | 348 | <entry>V4L2_MBUS_FMT_RGB565_2X8_BE</entry> |
333 | <entry>0x1007</entry> | 349 | <entry>0x1007</entry> |
334 | <entry></entry> | 350 | <entry></entry> |
335 | &dash-ent-16; | 351 | &dash-ent-24; |
336 | <entry>r<subscript>4</subscript></entry> | 352 | <entry>r<subscript>4</subscript></entry> |
337 | <entry>r<subscript>3</subscript></entry> | 353 | <entry>r<subscript>3</subscript></entry> |
338 | <entry>r<subscript>2</subscript></entry> | 354 | <entry>r<subscript>2</subscript></entry> |
@@ -346,7 +362,7 @@ | |||
346 | <entry></entry> | 362 | <entry></entry> |
347 | <entry></entry> | 363 | <entry></entry> |
348 | <entry></entry> | 364 | <entry></entry> |
349 | &dash-ent-16; | 365 | &dash-ent-24; |
350 | <entry>g<subscript>2</subscript></entry> | 366 | <entry>g<subscript>2</subscript></entry> |
351 | <entry>g<subscript>1</subscript></entry> | 367 | <entry>g<subscript>1</subscript></entry> |
352 | <entry>g<subscript>0</subscript></entry> | 368 | <entry>g<subscript>0</subscript></entry> |
@@ -360,7 +376,7 @@ | |||
360 | <entry>V4L2_MBUS_FMT_RGB565_2X8_LE</entry> | 376 | <entry>V4L2_MBUS_FMT_RGB565_2X8_LE</entry> |
361 | <entry>0x1008</entry> | 377 | <entry>0x1008</entry> |
362 | <entry></entry> | 378 | <entry></entry> |
363 | &dash-ent-16; | 379 | &dash-ent-24; |
364 | <entry>g<subscript>2</subscript></entry> | 380 | <entry>g<subscript>2</subscript></entry> |
365 | <entry>g<subscript>1</subscript></entry> | 381 | <entry>g<subscript>1</subscript></entry> |
366 | <entry>g<subscript>0</subscript></entry> | 382 | <entry>g<subscript>0</subscript></entry> |
@@ -374,7 +390,7 @@ | |||
374 | <entry></entry> | 390 | <entry></entry> |
375 | <entry></entry> | 391 | <entry></entry> |
376 | <entry></entry> | 392 | <entry></entry> |
377 | &dash-ent-16; | 393 | &dash-ent-24; |
378 | <entry>r<subscript>4</subscript></entry> | 394 | <entry>r<subscript>4</subscript></entry> |
379 | <entry>r<subscript>3</subscript></entry> | 395 | <entry>r<subscript>3</subscript></entry> |
380 | <entry>r<subscript>2</subscript></entry> | 396 | <entry>r<subscript>2</subscript></entry> |
@@ -388,12 +404,7 @@ | |||
388 | <entry>V4L2_MBUS_FMT_RGB666_1X18</entry> | 404 | <entry>V4L2_MBUS_FMT_RGB666_1X18</entry> |
389 | <entry>0x1009</entry> | 405 | <entry>0x1009</entry> |
390 | <entry></entry> | 406 | <entry></entry> |
391 | <entry>-</entry> | 407 | &dash-ent-14; |
392 | <entry>-</entry> | ||
393 | <entry>-</entry> | ||
394 | <entry>-</entry> | ||
395 | <entry>-</entry> | ||
396 | <entry>-</entry> | ||
397 | <entry>r<subscript>5</subscript></entry> | 408 | <entry>r<subscript>5</subscript></entry> |
398 | <entry>r<subscript>4</subscript></entry> | 409 | <entry>r<subscript>4</subscript></entry> |
399 | <entry>r<subscript>3</subscript></entry> | 410 | <entry>r<subscript>3</subscript></entry> |
@@ -417,6 +428,7 @@ | |||
417 | <entry>V4L2_MBUS_FMT_RGB888_1X24</entry> | 428 | <entry>V4L2_MBUS_FMT_RGB888_1X24</entry> |
418 | <entry>0x100a</entry> | 429 | <entry>0x100a</entry> |
419 | <entry></entry> | 430 | <entry></entry> |
431 | &dash-ent-8; | ||
420 | <entry>r<subscript>7</subscript></entry> | 432 | <entry>r<subscript>7</subscript></entry> |
421 | <entry>r<subscript>6</subscript></entry> | 433 | <entry>r<subscript>6</subscript></entry> |
422 | <entry>r<subscript>5</subscript></entry> | 434 | <entry>r<subscript>5</subscript></entry> |
@@ -446,9 +458,7 @@ | |||
446 | <entry>V4L2_MBUS_FMT_RGB888_2X12_BE</entry> | 458 | <entry>V4L2_MBUS_FMT_RGB888_2X12_BE</entry> |
447 | <entry>0x100b</entry> | 459 | <entry>0x100b</entry> |
448 | <entry></entry> | 460 | <entry></entry> |
449 | &dash-ent-10; | 461 | &dash-ent-20; |
450 | <entry>-</entry> | ||
451 | <entry>-</entry> | ||
452 | <entry>r<subscript>7</subscript></entry> | 462 | <entry>r<subscript>7</subscript></entry> |
453 | <entry>r<subscript>6</subscript></entry> | 463 | <entry>r<subscript>6</subscript></entry> |
454 | <entry>r<subscript>5</subscript></entry> | 464 | <entry>r<subscript>5</subscript></entry> |
@@ -466,9 +476,7 @@ | |||
466 | <entry></entry> | 476 | <entry></entry> |
467 | <entry></entry> | 477 | <entry></entry> |
468 | <entry></entry> | 478 | <entry></entry> |
469 | &dash-ent-10; | 479 | &dash-ent-20; |
470 | <entry>-</entry> | ||
471 | <entry>-</entry> | ||
472 | <entry>g<subscript>3</subscript></entry> | 480 | <entry>g<subscript>3</subscript></entry> |
473 | <entry>g<subscript>2</subscript></entry> | 481 | <entry>g<subscript>2</subscript></entry> |
474 | <entry>g<subscript>1</subscript></entry> | 482 | <entry>g<subscript>1</subscript></entry> |
@@ -486,9 +494,7 @@ | |||
486 | <entry>V4L2_MBUS_FMT_RGB888_2X12_LE</entry> | 494 | <entry>V4L2_MBUS_FMT_RGB888_2X12_LE</entry> |
487 | <entry>0x100c</entry> | 495 | <entry>0x100c</entry> |
488 | <entry></entry> | 496 | <entry></entry> |
489 | &dash-ent-10; | 497 | &dash-ent-20; |
490 | <entry>-</entry> | ||
491 | <entry>-</entry> | ||
492 | <entry>g<subscript>3</subscript></entry> | 498 | <entry>g<subscript>3</subscript></entry> |
493 | <entry>g<subscript>2</subscript></entry> | 499 | <entry>g<subscript>2</subscript></entry> |
494 | <entry>g<subscript>1</subscript></entry> | 500 | <entry>g<subscript>1</subscript></entry> |
@@ -506,9 +512,7 @@ | |||
506 | <entry></entry> | 512 | <entry></entry> |
507 | <entry></entry> | 513 | <entry></entry> |
508 | <entry></entry> | 514 | <entry></entry> |
509 | &dash-ent-10; | 515 | &dash-ent-20; |
510 | <entry>-</entry> | ||
511 | <entry>-</entry> | ||
512 | <entry>r<subscript>7</subscript></entry> | 516 | <entry>r<subscript>7</subscript></entry> |
513 | <entry>r<subscript>6</subscript></entry> | 517 | <entry>r<subscript>6</subscript></entry> |
514 | <entry>r<subscript>5</subscript></entry> | 518 | <entry>r<subscript>5</subscript></entry> |
@@ -522,6 +526,43 @@ | |||
522 | <entry>g<subscript>5</subscript></entry> | 526 | <entry>g<subscript>5</subscript></entry> |
523 | <entry>g<subscript>4</subscript></entry> | 527 | <entry>g<subscript>4</subscript></entry> |
524 | </row> | 528 | </row> |
529 | <row id="V4L2-MBUS-FMT-ARGB888-1X32"> | ||
530 | <entry>V4L2_MBUS_FMT_ARGB888_1X32</entry> | ||
531 | <entry>0x100d</entry> | ||
532 | <entry></entry> | ||
533 | <entry>a<subscript>7</subscript></entry> | ||
534 | <entry>a<subscript>6</subscript></entry> | ||
535 | <entry>a<subscript>5</subscript></entry> | ||
536 | <entry>a<subscript>4</subscript></entry> | ||
537 | <entry>a<subscript>3</subscript></entry> | ||
538 | <entry>a<subscript>2</subscript></entry> | ||
539 | <entry>a<subscript>1</subscript></entry> | ||
540 | <entry>a<subscript>0</subscript></entry> | ||
541 | <entry>r<subscript>7</subscript></entry> | ||
542 | <entry>r<subscript>6</subscript></entry> | ||
543 | <entry>r<subscript>5</subscript></entry> | ||
544 | <entry>r<subscript>4</subscript></entry> | ||
545 | <entry>r<subscript>3</subscript></entry> | ||
546 | <entry>r<subscript>2</subscript></entry> | ||
547 | <entry>r<subscript>1</subscript></entry> | ||
548 | <entry>r<subscript>0</subscript></entry> | ||
549 | <entry>g<subscript>7</subscript></entry> | ||
550 | <entry>g<subscript>6</subscript></entry> | ||
551 | <entry>g<subscript>5</subscript></entry> | ||
552 | <entry>g<subscript>4</subscript></entry> | ||
553 | <entry>g<subscript>3</subscript></entry> | ||
554 | <entry>g<subscript>2</subscript></entry> | ||
555 | <entry>g<subscript>1</subscript></entry> | ||
556 | <entry>g<subscript>0</subscript></entry> | ||
557 | <entry>b<subscript>7</subscript></entry> | ||
558 | <entry>b<subscript>6</subscript></entry> | ||
559 | <entry>b<subscript>5</subscript></entry> | ||
560 | <entry>b<subscript>4</subscript></entry> | ||
561 | <entry>b<subscript>3</subscript></entry> | ||
562 | <entry>b<subscript>2</subscript></entry> | ||
563 | <entry>b<subscript>1</subscript></entry> | ||
564 | <entry>b<subscript>0</subscript></entry> | ||
565 | </row> | ||
525 | </tbody> | 566 | </tbody> |
526 | </tgroup> | 567 | </tgroup> |
527 | </table> | 568 | </table> |
@@ -1149,6 +1190,7 @@ | |||
1149 | <listitem><para>y<subscript>x</subscript> for luma component bit number x</para></listitem> | 1190 | <listitem><para>y<subscript>x</subscript> for luma component bit number x</para></listitem> |
1150 | <listitem><para>u<subscript>x</subscript> for blue chroma component bit number x</para></listitem> | 1191 | <listitem><para>u<subscript>x</subscript> for blue chroma component bit number x</para></listitem> |
1151 | <listitem><para>v<subscript>x</subscript> for red chroma component bit number x</para></listitem> | 1192 | <listitem><para>v<subscript>x</subscript> for red chroma component bit number x</para></listitem> |
1193 | <listitem><para>a<subscript>x</subscript> for alpha component bit number x</para></listitem> | ||
1152 | <listitem><para>- for non-available bits (for positions higher than the bus width)</para></listitem> | 1194 | <listitem><para>- for non-available bits (for positions higher than the bus width)</para></listitem> |
1153 | <listitem><para>d for dummy bits</para></listitem> | 1195 | <listitem><para>d for dummy bits</para></listitem> |
1154 | </itemizedlist> | 1196 | </itemizedlist> |
@@ -1159,37 +1201,39 @@ | |||
1159 | <colspec colname="id" align="left" /> | 1201 | <colspec colname="id" align="left" /> |
1160 | <colspec colname="code" align="center"/> | 1202 | <colspec colname="code" align="center"/> |
1161 | <colspec colname="bit" /> | 1203 | <colspec colname="bit" /> |
1162 | <colspec colnum="4" colname="b29" align="center" /> | 1204 | <colspec colnum="4" colname="b31" align="center" /> |
1163 | <colspec colnum="5" colname="b28" align="center" /> | 1205 | <colspec colnum="5" colname="b20" align="center" /> |
1164 | <colspec colnum="6" colname="b27" align="center" /> | 1206 | <colspec colnum="6" colname="b29" align="center" /> |
1165 | <colspec colnum="7" colname="b26" align="center" /> | 1207 | <colspec colnum="7" colname="b28" align="center" /> |
1166 | <colspec colnum="8" colname="b25" align="center" /> | 1208 | <colspec colnum="8" colname="b27" align="center" /> |
1167 | <colspec colnum="9" colname="b24" align="center" /> | 1209 | <colspec colnum="9" colname="b26" align="center" /> |
1168 | <colspec colnum="10" colname="b23" align="center" /> | 1210 | <colspec colnum="10" colname="b25" align="center" /> |
1169 | <colspec colnum="11" colname="b22" align="center" /> | 1211 | <colspec colnum="11" colname="b24" align="center" /> |
1170 | <colspec colnum="12" colname="b21" align="center" /> | 1212 | <colspec colnum="12" colname="b23" align="center" /> |
1171 | <colspec colnum="13" colname="b20" align="center" /> | 1213 | <colspec colnum="13" colname="b22" align="center" /> |
1172 | <colspec colnum="14" colname="b19" align="center" /> | 1214 | <colspec colnum="14" colname="b21" align="center" /> |
1173 | <colspec colnum="15" colname="b18" align="center" /> | 1215 | <colspec colnum="15" colname="b20" align="center" /> |
1174 | <colspec colnum="16" colname="b17" align="center" /> | 1216 | <colspec colnum="16" colname="b19" align="center" /> |
1175 | <colspec colnum="17" colname="b16" align="center" /> | 1217 | <colspec colnum="17" colname="b18" align="center" /> |
1176 | <colspec colnum="18" colname="b15" align="center" /> | 1218 | <colspec colnum="18" colname="b17" align="center" /> |
1177 | <colspec colnum="19" colname="b14" align="center" /> | 1219 | <colspec colnum="19" colname="b16" align="center" /> |
1178 | <colspec colnum="20" colname="b13" align="center" /> | 1220 | <colspec colnum="20" colname="b15" align="center" /> |
1179 | <colspec colnum="21" colname="b12" align="center" /> | 1221 | <colspec colnum="21" colname="b14" align="center" /> |
1180 | <colspec colnum="22" colname="b11" align="center" /> | 1222 | <colspec colnum="22" colname="b13" align="center" /> |
1181 | <colspec colnum="23" colname="b10" align="center" /> | 1223 | <colspec colnum="23" colname="b12" align="center" /> |
1182 | <colspec colnum="24" colname="b09" align="center" /> | 1224 | <colspec colnum="24" colname="b11" align="center" /> |
1183 | <colspec colnum="25" colname="b08" align="center" /> | 1225 | <colspec colnum="25" colname="b10" align="center" /> |
1184 | <colspec colnum="26" colname="b07" align="center" /> | 1226 | <colspec colnum="26" colname="b09" align="center" /> |
1185 | <colspec colnum="27" colname="b06" align="center" /> | 1227 | <colspec colnum="27" colname="b08" align="center" /> |
1186 | <colspec colnum="28" colname="b05" align="center" /> | 1228 | <colspec colnum="28" colname="b07" align="center" /> |
1187 | <colspec colnum="29" colname="b04" align="center" /> | 1229 | <colspec colnum="29" colname="b06" align="center" /> |
1188 | <colspec colnum="30" colname="b03" align="center" /> | 1230 | <colspec colnum="30" colname="b05" align="center" /> |
1189 | <colspec colnum="31" colname="b02" align="center" /> | 1231 | <colspec colnum="31" colname="b04" align="center" /> |
1190 | <colspec colnum="32" colname="b01" align="center" /> | 1232 | <colspec colnum="32" colname="b03" align="center" /> |
1191 | <colspec colnum="33" colname="b00" align="center" /> | 1233 | <colspec colnum="33" colname="b02" align="center" /> |
1192 | <spanspec namest="b29" nameend="b00" spanname="b0" /> | 1234 | <colspec colnum="34" colname="b01" align="center" /> |
1235 | <colspec colnum="35" colname="b00" align="center" /> | ||
1236 | <spanspec namest="b31" nameend="b00" spanname="b0" /> | ||
1193 | <thead> | 1237 | <thead> |
1194 | <row> | 1238 | <row> |
1195 | <entry>Identifier</entry> | 1239 | <entry>Identifier</entry> |
@@ -1201,6 +1245,8 @@ | |||
1201 | <entry></entry> | 1245 | <entry></entry> |
1202 | <entry></entry> | 1246 | <entry></entry> |
1203 | <entry>Bit</entry> | 1247 | <entry>Bit</entry> |
1248 | <entry>31</entry> | ||
1249 | <entry>30</entry> | ||
1204 | <entry>29</entry> | 1250 | <entry>29</entry> |
1205 | <entry>28</entry> | 1251 | <entry>28</entry> |
1206 | <entry>27</entry> | 1252 | <entry>27</entry> |
@@ -1238,10 +1284,7 @@ | |||
1238 | <entry>V4L2_MBUS_FMT_Y8_1X8</entry> | 1284 | <entry>V4L2_MBUS_FMT_Y8_1X8</entry> |
1239 | <entry>0x2001</entry> | 1285 | <entry>0x2001</entry> |
1240 | <entry></entry> | 1286 | <entry></entry> |
1241 | &dash-ent-10; | 1287 | &dash-ent-24; |
1242 | &dash-ent-10; | ||
1243 | <entry>-</entry> | ||
1244 | <entry>-</entry> | ||
1245 | <entry>y<subscript>7</subscript></entry> | 1288 | <entry>y<subscript>7</subscript></entry> |
1246 | <entry>y<subscript>6</subscript></entry> | 1289 | <entry>y<subscript>6</subscript></entry> |
1247 | <entry>y<subscript>5</subscript></entry> | 1290 | <entry>y<subscript>5</subscript></entry> |
@@ -1255,18 +1298,7 @@ | |||
1255 | <entry>V4L2_MBUS_FMT_UV8_1X8</entry> | 1298 | <entry>V4L2_MBUS_FMT_UV8_1X8</entry> |
1256 | <entry>0x2015</entry> | 1299 | <entry>0x2015</entry> |
1257 | <entry></entry> | 1300 | <entry></entry> |
1258 | <entry>-</entry> | 1301 | &dash-ent-24; |
1259 | <entry>-</entry> | ||
1260 | <entry>-</entry> | ||
1261 | <entry>-</entry> | ||
1262 | <entry>-</entry> | ||
1263 | <entry>-</entry> | ||
1264 | <entry>-</entry> | ||
1265 | <entry>-</entry> | ||
1266 | <entry>-</entry> | ||
1267 | <entry>-</entry> | ||
1268 | <entry>-</entry> | ||
1269 | <entry>-</entry> | ||
1270 | <entry>u<subscript>7</subscript></entry> | 1302 | <entry>u<subscript>7</subscript></entry> |
1271 | <entry>u<subscript>6</subscript></entry> | 1303 | <entry>u<subscript>6</subscript></entry> |
1272 | <entry>u<subscript>5</subscript></entry> | 1304 | <entry>u<subscript>5</subscript></entry> |
@@ -1280,18 +1312,7 @@ | |||
1280 | <entry></entry> | 1312 | <entry></entry> |
1281 | <entry></entry> | 1313 | <entry></entry> |
1282 | <entry></entry> | 1314 | <entry></entry> |
1283 | <entry>-</entry> | 1315 | &dash-ent-24; |
1284 | <entry>-</entry> | ||
1285 | <entry>-</entry> | ||
1286 | <entry>-</entry> | ||
1287 | <entry>-</entry> | ||
1288 | <entry>-</entry> | ||
1289 | <entry>-</entry> | ||
1290 | <entry>-</entry> | ||
1291 | <entry>-</entry> | ||
1292 | <entry>-</entry> | ||
1293 | <entry>-</entry> | ||
1294 | <entry>-</entry> | ||
1295 | <entry>v<subscript>7</subscript></entry> | 1316 | <entry>v<subscript>7</subscript></entry> |
1296 | <entry>v<subscript>6</subscript></entry> | 1317 | <entry>v<subscript>6</subscript></entry> |
1297 | <entry>v<subscript>5</subscript></entry> | 1318 | <entry>v<subscript>5</subscript></entry> |
@@ -1305,10 +1326,7 @@ | |||
1305 | <entry>V4L2_MBUS_FMT_UYVY8_1_5X8</entry> | 1326 | <entry>V4L2_MBUS_FMT_UYVY8_1_5X8</entry> |
1306 | <entry>0x2002</entry> | 1327 | <entry>0x2002</entry> |
1307 | <entry></entry> | 1328 | <entry></entry> |
1308 | &dash-ent-10; | 1329 | &dash-ent-24; |
1309 | &dash-ent-10; | ||
1310 | <entry>-</entry> | ||
1311 | <entry>-</entry> | ||
1312 | <entry>u<subscript>7</subscript></entry> | 1330 | <entry>u<subscript>7</subscript></entry> |
1313 | <entry>u<subscript>6</subscript></entry> | 1331 | <entry>u<subscript>6</subscript></entry> |
1314 | <entry>u<subscript>5</subscript></entry> | 1332 | <entry>u<subscript>5</subscript></entry> |
@@ -1322,10 +1340,7 @@ | |||
1322 | <entry></entry> | 1340 | <entry></entry> |
1323 | <entry></entry> | 1341 | <entry></entry> |
1324 | <entry></entry> | 1342 | <entry></entry> |
1325 | &dash-ent-10; | 1343 | &dash-ent-24; |
1326 | &dash-ent-10; | ||
1327 | <entry>-</entry> | ||
1328 | <entry>-</entry> | ||
1329 | <entry>y<subscript>7</subscript></entry> | 1344 | <entry>y<subscript>7</subscript></entry> |
1330 | <entry>y<subscript>6</subscript></entry> | 1345 | <entry>y<subscript>6</subscript></entry> |
1331 | <entry>y<subscript>5</subscript></entry> | 1346 | <entry>y<subscript>5</subscript></entry> |
@@ -1339,10 +1354,7 @@ | |||
1339 | <entry></entry> | 1354 | <entry></entry> |
1340 | <entry></entry> | 1355 | <entry></entry> |
1341 | <entry></entry> | 1356 | <entry></entry> |
1342 | &dash-ent-10; | 1357 | &dash-ent-24; |
1343 | &dash-ent-10; | ||
1344 | <entry>-</entry> | ||
1345 | <entry>-</entry> | ||
1346 | <entry>y<subscript>7</subscript></entry> | 1358 | <entry>y<subscript>7</subscript></entry> |
1347 | <entry>y<subscript>6</subscript></entry> | 1359 | <entry>y<subscript>6</subscript></entry> |
1348 | <entry>y<subscript>5</subscript></entry> | 1360 | <entry>y<subscript>5</subscript></entry> |
@@ -1356,10 +1368,7 @@ | |||
1356 | <entry></entry> | 1368 | <entry></entry> |
1357 | <entry></entry> | 1369 | <entry></entry> |
1358 | <entry></entry> | 1370 | <entry></entry> |
1359 | &dash-ent-10; | 1371 | &dash-ent-24; |
1360 | &dash-ent-10; | ||
1361 | <entry>-</entry> | ||
1362 | <entry>-</entry> | ||
1363 | <entry>v<subscript>7</subscript></entry> | 1372 | <entry>v<subscript>7</subscript></entry> |
1364 | <entry>v<subscript>6</subscript></entry> | 1373 | <entry>v<subscript>6</subscript></entry> |
1365 | <entry>v<subscript>5</subscript></entry> | 1374 | <entry>v<subscript>5</subscript></entry> |
@@ -1373,10 +1382,7 @@ | |||
1373 | <entry></entry> | 1382 | <entry></entry> |
1374 | <entry></entry> | 1383 | <entry></entry> |
1375 | <entry></entry> | 1384 | <entry></entry> |
1376 | &dash-ent-10; | 1385 | &dash-ent-24; |
1377 | &dash-ent-10; | ||
1378 | <entry>-</entry> | ||
1379 | <entry>-</entry> | ||
1380 | <entry>y<subscript>7</subscript></entry> | 1386 | <entry>y<subscript>7</subscript></entry> |
1381 | <entry>y<subscript>6</subscript></entry> | 1387 | <entry>y<subscript>6</subscript></entry> |
1382 | <entry>y<subscript>5</subscript></entry> | 1388 | <entry>y<subscript>5</subscript></entry> |
@@ -1390,10 +1396,7 @@ | |||
1390 | <entry></entry> | 1396 | <entry></entry> |
1391 | <entry></entry> | 1397 | <entry></entry> |
1392 | <entry></entry> | 1398 | <entry></entry> |
1393 | &dash-ent-10; | 1399 | &dash-ent-24; |
1394 | &dash-ent-10; | ||
1395 | <entry>-</entry> | ||
1396 | <entry>-</entry> | ||
1397 | <entry>y<subscript>7</subscript></entry> | 1400 | <entry>y<subscript>7</subscript></entry> |
1398 | <entry>y<subscript>6</subscript></entry> | 1401 | <entry>y<subscript>6</subscript></entry> |
1399 | <entry>y<subscript>5</subscript></entry> | 1402 | <entry>y<subscript>5</subscript></entry> |
@@ -1407,10 +1410,7 @@ | |||
1407 | <entry>V4L2_MBUS_FMT_VYUY8_1_5X8</entry> | 1410 | <entry>V4L2_MBUS_FMT_VYUY8_1_5X8</entry> |
1408 | <entry>0x2003</entry> | 1411 | <entry>0x2003</entry> |
1409 | <entry></entry> | 1412 | <entry></entry> |
1410 | &dash-ent-10; | 1413 | &dash-ent-24; |
1411 | &dash-ent-10; | ||
1412 | <entry>-</entry> | ||
1413 | <entry>-</entry> | ||
1414 | <entry>v<subscript>7</subscript></entry> | 1414 | <entry>v<subscript>7</subscript></entry> |
1415 | <entry>v<subscript>6</subscript></entry> | 1415 | <entry>v<subscript>6</subscript></entry> |
1416 | <entry>v<subscript>5</subscript></entry> | 1416 | <entry>v<subscript>5</subscript></entry> |
@@ -1424,10 +1424,7 @@ | |||
1424 | <entry></entry> | 1424 | <entry></entry> |
1425 | <entry></entry> | 1425 | <entry></entry> |
1426 | <entry></entry> | 1426 | <entry></entry> |
1427 | &dash-ent-10; | 1427 | &dash-ent-24; |
1428 | &dash-ent-10; | ||
1429 | <entry>-</entry> | ||
1430 | <entry>-</entry> | ||
1431 | <entry>y<subscript>7</subscript></entry> | 1428 | <entry>y<subscript>7</subscript></entry> |
1432 | <entry>y<subscript>6</subscript></entry> | 1429 | <entry>y<subscript>6</subscript></entry> |
1433 | <entry>y<subscript>5</subscript></entry> | 1430 | <entry>y<subscript>5</subscript></entry> |
@@ -1441,10 +1438,7 @@ | |||
1441 | <entry></entry> | 1438 | <entry></entry> |
1442 | <entry></entry> | 1439 | <entry></entry> |
1443 | <entry></entry> | 1440 | <entry></entry> |
1444 | &dash-ent-10; | 1441 | &dash-ent-24; |
1445 | &dash-ent-10; | ||
1446 | <entry>-</entry> | ||
1447 | <entry>-</entry> | ||
1448 | <entry>y<subscript>7</subscript></entry> | 1442 | <entry>y<subscript>7</subscript></entry> |
1449 | <entry>y<subscript>6</subscript></entry> | 1443 | <entry>y<subscript>6</subscript></entry> |
1450 | <entry>y<subscript>5</subscript></entry> | 1444 | <entry>y<subscript>5</subscript></entry> |
@@ -1458,10 +1452,7 @@ | |||
1458 | <entry></entry> | 1452 | <entry></entry> |
1459 | <entry></entry> | 1453 | <entry></entry> |
1460 | <entry></entry> | 1454 | <entry></entry> |
1461 | &dash-ent-10; | 1455 | &dash-ent-24; |
1462 | &dash-ent-10; | ||
1463 | <entry>-</entry> | ||
1464 | <entry>-</entry> | ||
1465 | <entry>u<subscript>7</subscript></entry> | 1456 | <entry>u<subscript>7</subscript></entry> |
1466 | <entry>u<subscript>6</subscript></entry> | 1457 | <entry>u<subscript>6</subscript></entry> |
1467 | <entry>u<subscript>5</subscript></entry> | 1458 | <entry>u<subscript>5</subscript></entry> |
@@ -1475,10 +1466,7 @@ | |||
1475 | <entry></entry> | 1466 | <entry></entry> |
1476 | <entry></entry> | 1467 | <entry></entry> |
1477 | <entry></entry> | 1468 | <entry></entry> |
1478 | &dash-ent-10; | 1469 | &dash-ent-24; |
1479 | &dash-ent-10; | ||
1480 | <entry>-</entry> | ||
1481 | <entry>-</entry> | ||
1482 | <entry>y<subscript>7</subscript></entry> | 1470 | <entry>y<subscript>7</subscript></entry> |
1483 | <entry>y<subscript>6</subscript></entry> | 1471 | <entry>y<subscript>6</subscript></entry> |
1484 | <entry>y<subscript>5</subscript></entry> | 1472 | <entry>y<subscript>5</subscript></entry> |
@@ -1492,10 +1480,7 @@ | |||
1492 | <entry></entry> | 1480 | <entry></entry> |
1493 | <entry></entry> | 1481 | <entry></entry> |
1494 | <entry></entry> | 1482 | <entry></entry> |
1495 | &dash-ent-10; | 1483 | &dash-ent-24; |
1496 | &dash-ent-10; | ||
1497 | <entry>-</entry> | ||
1498 | <entry>-</entry> | ||
1499 | <entry>y<subscript>7</subscript></entry> | 1484 | <entry>y<subscript>7</subscript></entry> |
1500 | <entry>y<subscript>6</subscript></entry> | 1485 | <entry>y<subscript>6</subscript></entry> |
1501 | <entry>y<subscript>5</subscript></entry> | 1486 | <entry>y<subscript>5</subscript></entry> |
@@ -1509,10 +1494,7 @@ | |||
1509 | <entry>V4L2_MBUS_FMT_YUYV8_1_5X8</entry> | 1494 | <entry>V4L2_MBUS_FMT_YUYV8_1_5X8</entry> |
1510 | <entry>0x2004</entry> | 1495 | <entry>0x2004</entry> |
1511 | <entry></entry> | 1496 | <entry></entry> |
1512 | &dash-ent-10; | 1497 | &dash-ent-24; |
1513 | &dash-ent-10; | ||
1514 | <entry>-</entry> | ||
1515 | <entry>-</entry> | ||
1516 | <entry>y<subscript>7</subscript></entry> | 1498 | <entry>y<subscript>7</subscript></entry> |
1517 | <entry>y<subscript>6</subscript></entry> | 1499 | <entry>y<subscript>6</subscript></entry> |
1518 | <entry>y<subscript>5</subscript></entry> | 1500 | <entry>y<subscript>5</subscript></entry> |
@@ -1526,10 +1508,7 @@ | |||
1526 | <entry></entry> | 1508 | <entry></entry> |
1527 | <entry></entry> | 1509 | <entry></entry> |
1528 | <entry></entry> | 1510 | <entry></entry> |
1529 | &dash-ent-10; | 1511 | &dash-ent-24; |
1530 | &dash-ent-10; | ||
1531 | <entry>-</entry> | ||
1532 | <entry>-</entry> | ||
1533 | <entry>y<subscript>7</subscript></entry> | 1512 | <entry>y<subscript>7</subscript></entry> |
1534 | <entry>y<subscript>6</subscript></entry> | 1513 | <entry>y<subscript>6</subscript></entry> |
1535 | <entry>y<subscript>5</subscript></entry> | 1514 | <entry>y<subscript>5</subscript></entry> |
@@ -1543,10 +1522,7 @@ | |||
1543 | <entry></entry> | 1522 | <entry></entry> |
1544 | <entry></entry> | 1523 | <entry></entry> |
1545 | <entry></entry> | 1524 | <entry></entry> |
1546 | &dash-ent-10; | 1525 | &dash-ent-24; |
1547 | &dash-ent-10; | ||
1548 | <entry>-</entry> | ||
1549 | <entry>-</entry> | ||
1550 | <entry>u<subscript>7</subscript></entry> | 1526 | <entry>u<subscript>7</subscript></entry> |
1551 | <entry>u<subscript>6</subscript></entry> | 1527 | <entry>u<subscript>6</subscript></entry> |
1552 | <entry>u<subscript>5</subscript></entry> | 1528 | <entry>u<subscript>5</subscript></entry> |
@@ -1560,10 +1536,7 @@ | |||
1560 | <entry></entry> | 1536 | <entry></entry> |
1561 | <entry></entry> | 1537 | <entry></entry> |
1562 | <entry></entry> | 1538 | <entry></entry> |
1563 | &dash-ent-10; | 1539 | &dash-ent-24; |
1564 | &dash-ent-10; | ||
1565 | <entry>-</entry> | ||
1566 | <entry>-</entry> | ||
1567 | <entry>y<subscript>7</subscript></entry> | 1540 | <entry>y<subscript>7</subscript></entry> |
1568 | <entry>y<subscript>6</subscript></entry> | 1541 | <entry>y<subscript>6</subscript></entry> |
1569 | <entry>y<subscript>5</subscript></entry> | 1542 | <entry>y<subscript>5</subscript></entry> |
@@ -1577,10 +1550,7 @@ | |||
1577 | <entry></entry> | 1550 | <entry></entry> |
1578 | <entry></entry> | 1551 | <entry></entry> |
1579 | <entry></entry> | 1552 | <entry></entry> |
1580 | &dash-ent-10; | 1553 | &dash-ent-24; |
1581 | &dash-ent-10; | ||
1582 | <entry>-</entry> | ||
1583 | <entry>-</entry> | ||
1584 | <entry>y<subscript>7</subscript></entry> | 1554 | <entry>y<subscript>7</subscript></entry> |
1585 | <entry>y<subscript>6</subscript></entry> | 1555 | <entry>y<subscript>6</subscript></entry> |
1586 | <entry>y<subscript>5</subscript></entry> | 1556 | <entry>y<subscript>5</subscript></entry> |
@@ -1594,10 +1564,7 @@ | |||
1594 | <entry></entry> | 1564 | <entry></entry> |
1595 | <entry></entry> | 1565 | <entry></entry> |
1596 | <entry></entry> | 1566 | <entry></entry> |
1597 | &dash-ent-10; | 1567 | &dash-ent-24; |
1598 | &dash-ent-10; | ||
1599 | <entry>-</entry> | ||
1600 | <entry>-</entry> | ||
1601 | <entry>v<subscript>7</subscript></entry> | 1568 | <entry>v<subscript>7</subscript></entry> |
1602 | <entry>v<subscript>6</subscript></entry> | 1569 | <entry>v<subscript>6</subscript></entry> |
1603 | <entry>v<subscript>5</subscript></entry> | 1570 | <entry>v<subscript>5</subscript></entry> |
@@ -1611,10 +1578,7 @@ | |||
1611 | <entry>V4L2_MBUS_FMT_YVYU8_1_5X8</entry> | 1578 | <entry>V4L2_MBUS_FMT_YVYU8_1_5X8</entry> |
1612 | <entry>0x2005</entry> | 1579 | <entry>0x2005</entry> |
1613 | <entry></entry> | 1580 | <entry></entry> |
1614 | &dash-ent-10; | 1581 | &dash-ent-24; |
1615 | &dash-ent-10; | ||
1616 | <entry>-</entry> | ||
1617 | <entry>-</entry> | ||
1618 | <entry>y<subscript>7</subscript></entry> | 1582 | <entry>y<subscript>7</subscript></entry> |
1619 | <entry>y<subscript>6</subscript></entry> | 1583 | <entry>y<subscript>6</subscript></entry> |
1620 | <entry>y<subscript>5</subscript></entry> | 1584 | <entry>y<subscript>5</subscript></entry> |
@@ -1628,10 +1592,7 @@ | |||
1628 | <entry></entry> | 1592 | <entry></entry> |
1629 | <entry></entry> | 1593 | <entry></entry> |
1630 | <entry></entry> | 1594 | <entry></entry> |
1631 | &dash-ent-10; | 1595 | &dash-ent-24; |
1632 | &dash-ent-10; | ||
1633 | <entry>-</entry> | ||
1634 | <entry>-</entry> | ||
1635 | <entry>y<subscript>7</subscript></entry> | 1596 | <entry>y<subscript>7</subscript></entry> |
1636 | <entry>y<subscript>6</subscript></entry> | 1597 | <entry>y<subscript>6</subscript></entry> |
1637 | <entry>y<subscript>5</subscript></entry> | 1598 | <entry>y<subscript>5</subscript></entry> |
@@ -1645,10 +1606,7 @@ | |||
1645 | <entry></entry> | 1606 | <entry></entry> |
1646 | <entry></entry> | 1607 | <entry></entry> |
1647 | <entry></entry> | 1608 | <entry></entry> |
1648 | &dash-ent-10; | 1609 | &dash-ent-24; |
1649 | &dash-ent-10; | ||
1650 | <entry>-</entry> | ||
1651 | <entry>-</entry> | ||
1652 | <entry>v<subscript>7</subscript></entry> | 1610 | <entry>v<subscript>7</subscript></entry> |
1653 | <entry>v<subscript>6</subscript></entry> | 1611 | <entry>v<subscript>6</subscript></entry> |
1654 | <entry>v<subscript>5</subscript></entry> | 1612 | <entry>v<subscript>5</subscript></entry> |
@@ -1662,10 +1620,7 @@ | |||
1662 | <entry></entry> | 1620 | <entry></entry> |
1663 | <entry></entry> | 1621 | <entry></entry> |
1664 | <entry></entry> | 1622 | <entry></entry> |
1665 | &dash-ent-10; | 1623 | &dash-ent-24; |
1666 | &dash-ent-10; | ||
1667 | <entry>-</entry> | ||
1668 | <entry>-</entry> | ||
1669 | <entry>y<subscript>7</subscript></entry> | 1624 | <entry>y<subscript>7</subscript></entry> |
1670 | <entry>y<subscript>6</subscript></entry> | 1625 | <entry>y<subscript>6</subscript></entry> |
1671 | <entry>y<subscript>5</subscript></entry> | 1626 | <entry>y<subscript>5</subscript></entry> |
@@ -1679,10 +1634,7 @@ | |||
1679 | <entry></entry> | 1634 | <entry></entry> |
1680 | <entry></entry> | 1635 | <entry></entry> |
1681 | <entry></entry> | 1636 | <entry></entry> |
1682 | &dash-ent-10; | 1637 | &dash-ent-24; |
1683 | &dash-ent-10; | ||
1684 | <entry>-</entry> | ||
1685 | <entry>-</entry> | ||
1686 | <entry>y<subscript>7</subscript></entry> | 1638 | <entry>y<subscript>7</subscript></entry> |
1687 | <entry>y<subscript>6</subscript></entry> | 1639 | <entry>y<subscript>6</subscript></entry> |
1688 | <entry>y<subscript>5</subscript></entry> | 1640 | <entry>y<subscript>5</subscript></entry> |
@@ -1696,10 +1648,7 @@ | |||
1696 | <entry></entry> | 1648 | <entry></entry> |
1697 | <entry></entry> | 1649 | <entry></entry> |
1698 | <entry></entry> | 1650 | <entry></entry> |
1699 | &dash-ent-10; | 1651 | &dash-ent-24; |
1700 | &dash-ent-10; | ||
1701 | <entry>-</entry> | ||
1702 | <entry>-</entry> | ||
1703 | <entry>u<subscript>7</subscript></entry> | 1652 | <entry>u<subscript>7</subscript></entry> |
1704 | <entry>u<subscript>6</subscript></entry> | 1653 | <entry>u<subscript>6</subscript></entry> |
1705 | <entry>u<subscript>5</subscript></entry> | 1654 | <entry>u<subscript>5</subscript></entry> |
@@ -1713,10 +1662,7 @@ | |||
1713 | <entry>V4L2_MBUS_FMT_UYVY8_2X8</entry> | 1662 | <entry>V4L2_MBUS_FMT_UYVY8_2X8</entry> |
1714 | <entry>0x2006</entry> | 1663 | <entry>0x2006</entry> |
1715 | <entry></entry> | 1664 | <entry></entry> |
1716 | &dash-ent-10; | 1665 | &dash-ent-24; |
1717 | &dash-ent-10; | ||
1718 | <entry>-</entry> | ||
1719 | <entry>-</entry> | ||
1720 | <entry>u<subscript>7</subscript></entry> | 1666 | <entry>u<subscript>7</subscript></entry> |
1721 | <entry>u<subscript>6</subscript></entry> | 1667 | <entry>u<subscript>6</subscript></entry> |
1722 | <entry>u<subscript>5</subscript></entry> | 1668 | <entry>u<subscript>5</subscript></entry> |
@@ -1730,10 +1676,7 @@ | |||
1730 | <entry></entry> | 1676 | <entry></entry> |
1731 | <entry></entry> | 1677 | <entry></entry> |
1732 | <entry></entry> | 1678 | <entry></entry> |
1733 | &dash-ent-10; | 1679 | &dash-ent-24; |
1734 | &dash-ent-10; | ||
1735 | <entry>-</entry> | ||
1736 | <entry>-</entry> | ||
1737 | <entry>y<subscript>7</subscript></entry> | 1680 | <entry>y<subscript>7</subscript></entry> |
1738 | <entry>y<subscript>6</subscript></entry> | 1681 | <entry>y<subscript>6</subscript></entry> |
1739 | <entry>y<subscript>5</subscript></entry> | 1682 | <entry>y<subscript>5</subscript></entry> |
@@ -1747,10 +1690,7 @@ | |||
1747 | <entry></entry> | 1690 | <entry></entry> |
1748 | <entry></entry> | 1691 | <entry></entry> |
1749 | <entry></entry> | 1692 | <entry></entry> |
1750 | &dash-ent-10; | 1693 | &dash-ent-24; |
1751 | &dash-ent-10; | ||
1752 | <entry>-</entry> | ||
1753 | <entry>-</entry> | ||
1754 | <entry>v<subscript>7</subscript></entry> | 1694 | <entry>v<subscript>7</subscript></entry> |
1755 | <entry>v<subscript>6</subscript></entry> | 1695 | <entry>v<subscript>6</subscript></entry> |
1756 | <entry>v<subscript>5</subscript></entry> | 1696 | <entry>v<subscript>5</subscript></entry> |
@@ -1764,10 +1704,7 @@ | |||
1764 | <entry></entry> | 1704 | <entry></entry> |
1765 | <entry></entry> | 1705 | <entry></entry> |
1766 | <entry></entry> | 1706 | <entry></entry> |
1767 | &dash-ent-10; | 1707 | &dash-ent-24; |
1768 | &dash-ent-10; | ||
1769 | <entry>-</entry> | ||
1770 | <entry>-</entry> | ||
1771 | <entry>y<subscript>7</subscript></entry> | 1708 | <entry>y<subscript>7</subscript></entry> |
1772 | <entry>y<subscript>6</subscript></entry> | 1709 | <entry>y<subscript>6</subscript></entry> |
1773 | <entry>y<subscript>5</subscript></entry> | 1710 | <entry>y<subscript>5</subscript></entry> |
@@ -1781,10 +1718,7 @@ | |||
1781 | <entry>V4L2_MBUS_FMT_VYUY8_2X8</entry> | 1718 | <entry>V4L2_MBUS_FMT_VYUY8_2X8</entry> |
1782 | <entry>0x2007</entry> | 1719 | <entry>0x2007</entry> |
1783 | <entry></entry> | 1720 | <entry></entry> |
1784 | &dash-ent-10; | 1721 | &dash-ent-24; |
1785 | &dash-ent-10; | ||
1786 | <entry>-</entry> | ||
1787 | <entry>-</entry> | ||
1788 | <entry>v<subscript>7</subscript></entry> | 1722 | <entry>v<subscript>7</subscript></entry> |
1789 | <entry>v<subscript>6</subscript></entry> | 1723 | <entry>v<subscript>6</subscript></entry> |
1790 | <entry>v<subscript>5</subscript></entry> | 1724 | <entry>v<subscript>5</subscript></entry> |
@@ -1798,10 +1732,7 @@ | |||
1798 | <entry></entry> | 1732 | <entry></entry> |
1799 | <entry></entry> | 1733 | <entry></entry> |
1800 | <entry></entry> | 1734 | <entry></entry> |
1801 | &dash-ent-10; | 1735 | &dash-ent-24; |
1802 | &dash-ent-10; | ||
1803 | <entry>-</entry> | ||
1804 | <entry>-</entry> | ||
1805 | <entry>y<subscript>7</subscript></entry> | 1736 | <entry>y<subscript>7</subscript></entry> |
1806 | <entry>y<subscript>6</subscript></entry> | 1737 | <entry>y<subscript>6</subscript></entry> |
1807 | <entry>y<subscript>5</subscript></entry> | 1738 | <entry>y<subscript>5</subscript></entry> |
@@ -1815,10 +1746,7 @@ | |||
1815 | <entry></entry> | 1746 | <entry></entry> |
1816 | <entry></entry> | 1747 | <entry></entry> |
1817 | <entry></entry> | 1748 | <entry></entry> |
1818 | &dash-ent-10; | 1749 | &dash-ent-24; |
1819 | &dash-ent-10; | ||
1820 | <entry>-</entry> | ||
1821 | <entry>-</entry> | ||
1822 | <entry>u<subscript>7</subscript></entry> | 1750 | <entry>u<subscript>7</subscript></entry> |
1823 | <entry>u<subscript>6</subscript></entry> | 1751 | <entry>u<subscript>6</subscript></entry> |
1824 | <entry>u<subscript>5</subscript></entry> | 1752 | <entry>u<subscript>5</subscript></entry> |
@@ -1832,10 +1760,7 @@ | |||
1832 | <entry></entry> | 1760 | <entry></entry> |
1833 | <entry></entry> | 1761 | <entry></entry> |
1834 | <entry></entry> | 1762 | <entry></entry> |
1835 | &dash-ent-10; | 1763 | &dash-ent-24; |
1836 | &dash-ent-10; | ||
1837 | <entry>-</entry> | ||
1838 | <entry>-</entry> | ||
1839 | <entry>y<subscript>7</subscript></entry> | 1764 | <entry>y<subscript>7</subscript></entry> |
1840 | <entry>y<subscript>6</subscript></entry> | 1765 | <entry>y<subscript>6</subscript></entry> |
1841 | <entry>y<subscript>5</subscript></entry> | 1766 | <entry>y<subscript>5</subscript></entry> |
@@ -1849,10 +1774,7 @@ | |||
1849 | <entry>V4L2_MBUS_FMT_YUYV8_2X8</entry> | 1774 | <entry>V4L2_MBUS_FMT_YUYV8_2X8</entry> |
1850 | <entry>0x2008</entry> | 1775 | <entry>0x2008</entry> |
1851 | <entry></entry> | 1776 | <entry></entry> |
1852 | &dash-ent-10; | 1777 | &dash-ent-24; |
1853 | &dash-ent-10; | ||
1854 | <entry>-</entry> | ||
1855 | <entry>-</entry> | ||
1856 | <entry>y<subscript>7</subscript></entry> | 1778 | <entry>y<subscript>7</subscript></entry> |
1857 | <entry>y<subscript>6</subscript></entry> | 1779 | <entry>y<subscript>6</subscript></entry> |
1858 | <entry>y<subscript>5</subscript></entry> | 1780 | <entry>y<subscript>5</subscript></entry> |
@@ -1866,10 +1788,7 @@ | |||
1866 | <entry></entry> | 1788 | <entry></entry> |
1867 | <entry></entry> | 1789 | <entry></entry> |
1868 | <entry></entry> | 1790 | <entry></entry> |
1869 | &dash-ent-10; | 1791 | &dash-ent-24; |
1870 | &dash-ent-10; | ||
1871 | <entry>-</entry> | ||
1872 | <entry>-</entry> | ||
1873 | <entry>u<subscript>7</subscript></entry> | 1792 | <entry>u<subscript>7</subscript></entry> |
1874 | <entry>u<subscript>6</subscript></entry> | 1793 | <entry>u<subscript>6</subscript></entry> |
1875 | <entry>u<subscript>5</subscript></entry> | 1794 | <entry>u<subscript>5</subscript></entry> |
@@ -1883,10 +1802,7 @@ | |||
1883 | <entry></entry> | 1802 | <entry></entry> |
1884 | <entry></entry> | 1803 | <entry></entry> |
1885 | <entry></entry> | 1804 | <entry></entry> |
1886 | &dash-ent-10; | 1805 | &dash-ent-24; |
1887 | &dash-ent-10; | ||
1888 | <entry>-</entry> | ||
1889 | <entry>-</entry> | ||
1890 | <entry>y<subscript>7</subscript></entry> | 1806 | <entry>y<subscript>7</subscript></entry> |
1891 | <entry>y<subscript>6</subscript></entry> | 1807 | <entry>y<subscript>6</subscript></entry> |
1892 | <entry>y<subscript>5</subscript></entry> | 1808 | <entry>y<subscript>5</subscript></entry> |
@@ -1900,10 +1816,7 @@ | |||
1900 | <entry></entry> | 1816 | <entry></entry> |
1901 | <entry></entry> | 1817 | <entry></entry> |
1902 | <entry></entry> | 1818 | <entry></entry> |
1903 | &dash-ent-10; | 1819 | &dash-ent-24; |
1904 | &dash-ent-10; | ||
1905 | <entry>-</entry> | ||
1906 | <entry>-</entry> | ||
1907 | <entry>v<subscript>7</subscript></entry> | 1820 | <entry>v<subscript>7</subscript></entry> |
1908 | <entry>v<subscript>6</subscript></entry> | 1821 | <entry>v<subscript>6</subscript></entry> |
1909 | <entry>v<subscript>5</subscript></entry> | 1822 | <entry>v<subscript>5</subscript></entry> |
@@ -1917,10 +1830,7 @@ | |||
1917 | <entry>V4L2_MBUS_FMT_YVYU8_2X8</entry> | 1830 | <entry>V4L2_MBUS_FMT_YVYU8_2X8</entry> |
1918 | <entry>0x2009</entry> | 1831 | <entry>0x2009</entry> |
1919 | <entry></entry> | 1832 | <entry></entry> |
1920 | &dash-ent-10; | 1833 | &dash-ent-24; |
1921 | &dash-ent-10; | ||
1922 | <entry>-</entry> | ||
1923 | <entry>-</entry> | ||
1924 | <entry>y<subscript>7</subscript></entry> | 1834 | <entry>y<subscript>7</subscript></entry> |
1925 | <entry>y<subscript>6</subscript></entry> | 1835 | <entry>y<subscript>6</subscript></entry> |
1926 | <entry>y<subscript>5</subscript></entry> | 1836 | <entry>y<subscript>5</subscript></entry> |
@@ -1934,10 +1844,7 @@ | |||
1934 | <entry></entry> | 1844 | <entry></entry> |
1935 | <entry></entry> | 1845 | <entry></entry> |
1936 | <entry></entry> | 1846 | <entry></entry> |
1937 | &dash-ent-10; | 1847 | &dash-ent-24; |
1938 | &dash-ent-10; | ||
1939 | <entry>-</entry> | ||
1940 | <entry>-</entry> | ||
1941 | <entry>v<subscript>7</subscript></entry> | 1848 | <entry>v<subscript>7</subscript></entry> |
1942 | <entry>v<subscript>6</subscript></entry> | 1849 | <entry>v<subscript>6</subscript></entry> |
1943 | <entry>v<subscript>5</subscript></entry> | 1850 | <entry>v<subscript>5</subscript></entry> |
@@ -1951,10 +1858,7 @@ | |||
1951 | <entry></entry> | 1858 | <entry></entry> |
1952 | <entry></entry> | 1859 | <entry></entry> |
1953 | <entry></entry> | 1860 | <entry></entry> |
1954 | &dash-ent-10; | 1861 | &dash-ent-24; |
1955 | &dash-ent-10; | ||
1956 | <entry>-</entry> | ||
1957 | <entry>-</entry> | ||
1958 | <entry>y<subscript>7</subscript></entry> | 1862 | <entry>y<subscript>7</subscript></entry> |
1959 | <entry>y<subscript>6</subscript></entry> | 1863 | <entry>y<subscript>6</subscript></entry> |
1960 | <entry>y<subscript>5</subscript></entry> | 1864 | <entry>y<subscript>5</subscript></entry> |
@@ -1968,10 +1872,7 @@ | |||
1968 | <entry></entry> | 1872 | <entry></entry> |
1969 | <entry></entry> | 1873 | <entry></entry> |
1970 | <entry></entry> | 1874 | <entry></entry> |
1971 | &dash-ent-10; | 1875 | &dash-ent-24; |
1972 | &dash-ent-10; | ||
1973 | <entry>-</entry> | ||
1974 | <entry>-</entry> | ||
1975 | <entry>u<subscript>7</subscript></entry> | 1876 | <entry>u<subscript>7</subscript></entry> |
1976 | <entry>u<subscript>6</subscript></entry> | 1877 | <entry>u<subscript>6</subscript></entry> |
1977 | <entry>u<subscript>5</subscript></entry> | 1878 | <entry>u<subscript>5</subscript></entry> |
@@ -1985,8 +1886,7 @@ | |||
1985 | <entry>V4L2_MBUS_FMT_Y10_1X10</entry> | 1886 | <entry>V4L2_MBUS_FMT_Y10_1X10</entry> |
1986 | <entry>0x200a</entry> | 1887 | <entry>0x200a</entry> |
1987 | <entry></entry> | 1888 | <entry></entry> |
1988 | &dash-ent-10; | 1889 | &dash-ent-22; |
1989 | &dash-ent-10; | ||
1990 | <entry>y<subscript>9</subscript></entry> | 1890 | <entry>y<subscript>9</subscript></entry> |
1991 | <entry>y<subscript>8</subscript></entry> | 1891 | <entry>y<subscript>8</subscript></entry> |
1992 | <entry>y<subscript>7</subscript></entry> | 1892 | <entry>y<subscript>7</subscript></entry> |
@@ -2002,8 +1902,7 @@ | |||
2002 | <entry>V4L2_MBUS_FMT_YUYV10_2X10</entry> | 1902 | <entry>V4L2_MBUS_FMT_YUYV10_2X10</entry> |
2003 | <entry>0x200b</entry> | 1903 | <entry>0x200b</entry> |
2004 | <entry></entry> | 1904 | <entry></entry> |
2005 | &dash-ent-10; | 1905 | &dash-ent-22; |
2006 | &dash-ent-10; | ||
2007 | <entry>y<subscript>9</subscript></entry> | 1906 | <entry>y<subscript>9</subscript></entry> |
2008 | <entry>y<subscript>8</subscript></entry> | 1907 | <entry>y<subscript>8</subscript></entry> |
2009 | <entry>y<subscript>7</subscript></entry> | 1908 | <entry>y<subscript>7</subscript></entry> |
@@ -2019,8 +1918,7 @@ | |||
2019 | <entry></entry> | 1918 | <entry></entry> |
2020 | <entry></entry> | 1919 | <entry></entry> |
2021 | <entry></entry> | 1920 | <entry></entry> |
2022 | &dash-ent-10; | 1921 | &dash-ent-22; |
2023 | &dash-ent-10; | ||
2024 | <entry>u<subscript>9</subscript></entry> | 1922 | <entry>u<subscript>9</subscript></entry> |
2025 | <entry>u<subscript>8</subscript></entry> | 1923 | <entry>u<subscript>8</subscript></entry> |
2026 | <entry>u<subscript>7</subscript></entry> | 1924 | <entry>u<subscript>7</subscript></entry> |
@@ -2036,8 +1934,7 @@ | |||
2036 | <entry></entry> | 1934 | <entry></entry> |
2037 | <entry></entry> | 1935 | <entry></entry> |
2038 | <entry></entry> | 1936 | <entry></entry> |
2039 | &dash-ent-10; | 1937 | &dash-ent-22; |
2040 | &dash-ent-10; | ||
2041 | <entry>y<subscript>9</subscript></entry> | 1938 | <entry>y<subscript>9</subscript></entry> |
2042 | <entry>y<subscript>8</subscript></entry> | 1939 | <entry>y<subscript>8</subscript></entry> |
2043 | <entry>y<subscript>7</subscript></entry> | 1940 | <entry>y<subscript>7</subscript></entry> |
@@ -2053,8 +1950,7 @@ | |||
2053 | <entry></entry> | 1950 | <entry></entry> |
2054 | <entry></entry> | 1951 | <entry></entry> |
2055 | <entry></entry> | 1952 | <entry></entry> |
2056 | &dash-ent-10; | 1953 | &dash-ent-22; |
2057 | &dash-ent-10; | ||
2058 | <entry>v<subscript>9</subscript></entry> | 1954 | <entry>v<subscript>9</subscript></entry> |
2059 | <entry>v<subscript>8</subscript></entry> | 1955 | <entry>v<subscript>8</subscript></entry> |
2060 | <entry>v<subscript>7</subscript></entry> | 1956 | <entry>v<subscript>7</subscript></entry> |
@@ -2070,8 +1966,7 @@ | |||
2070 | <entry>V4L2_MBUS_FMT_YVYU10_2X10</entry> | 1966 | <entry>V4L2_MBUS_FMT_YVYU10_2X10</entry> |
2071 | <entry>0x200c</entry> | 1967 | <entry>0x200c</entry> |
2072 | <entry></entry> | 1968 | <entry></entry> |
2073 | &dash-ent-10; | 1969 | &dash-ent-22; |
2074 | &dash-ent-10; | ||
2075 | <entry>y<subscript>9</subscript></entry> | 1970 | <entry>y<subscript>9</subscript></entry> |
2076 | <entry>y<subscript>8</subscript></entry> | 1971 | <entry>y<subscript>8</subscript></entry> |
2077 | <entry>y<subscript>7</subscript></entry> | 1972 | <entry>y<subscript>7</subscript></entry> |
@@ -2087,8 +1982,7 @@ | |||
2087 | <entry></entry> | 1982 | <entry></entry> |
2088 | <entry></entry> | 1983 | <entry></entry> |
2089 | <entry></entry> | 1984 | <entry></entry> |
2090 | &dash-ent-10; | 1985 | &dash-ent-22; |
2091 | &dash-ent-10; | ||
2092 | <entry>v<subscript>9</subscript></entry> | 1986 | <entry>v<subscript>9</subscript></entry> |
2093 | <entry>v<subscript>8</subscript></entry> | 1987 | <entry>v<subscript>8</subscript></entry> |
2094 | <entry>v<subscript>7</subscript></entry> | 1988 | <entry>v<subscript>7</subscript></entry> |
@@ -2104,8 +1998,7 @@ | |||
2104 | <entry></entry> | 1998 | <entry></entry> |
2105 | <entry></entry> | 1999 | <entry></entry> |
2106 | <entry></entry> | 2000 | <entry></entry> |
2107 | &dash-ent-10; | 2001 | &dash-ent-22; |
2108 | &dash-ent-10; | ||
2109 | <entry>y<subscript>9</subscript></entry> | 2002 | <entry>y<subscript>9</subscript></entry> |
2110 | <entry>y<subscript>8</subscript></entry> | 2003 | <entry>y<subscript>8</subscript></entry> |
2111 | <entry>y<subscript>7</subscript></entry> | 2004 | <entry>y<subscript>7</subscript></entry> |
@@ -2121,8 +2014,7 @@ | |||
2121 | <entry></entry> | 2014 | <entry></entry> |
2122 | <entry></entry> | 2015 | <entry></entry> |
2123 | <entry></entry> | 2016 | <entry></entry> |
2124 | &dash-ent-10; | 2017 | &dash-ent-22; |
2125 | &dash-ent-10; | ||
2126 | <entry>u<subscript>9</subscript></entry> | 2018 | <entry>u<subscript>9</subscript></entry> |
2127 | <entry>u<subscript>8</subscript></entry> | 2019 | <entry>u<subscript>8</subscript></entry> |
2128 | <entry>u<subscript>7</subscript></entry> | 2020 | <entry>u<subscript>7</subscript></entry> |
@@ -2138,15 +2030,7 @@ | |||
2138 | <entry>V4L2_MBUS_FMT_Y12_1X12</entry> | 2030 | <entry>V4L2_MBUS_FMT_Y12_1X12</entry> |
2139 | <entry>0x2013</entry> | 2031 | <entry>0x2013</entry> |
2140 | <entry></entry> | 2032 | <entry></entry> |
2141 | &dash-ent-10; | 2033 | &dash-ent-20; |
2142 | <entry>-</entry> | ||
2143 | <entry>-</entry> | ||
2144 | <entry>-</entry> | ||
2145 | <entry>-</entry> | ||
2146 | <entry>-</entry> | ||
2147 | <entry>-</entry> | ||
2148 | <entry>-</entry> | ||
2149 | <entry>-</entry> | ||
2150 | <entry>y<subscript>11</subscript></entry> | 2034 | <entry>y<subscript>11</subscript></entry> |
2151 | <entry>y<subscript>10</subscript></entry> | 2035 | <entry>y<subscript>10</subscript></entry> |
2152 | <entry>y<subscript>9</subscript></entry> | 2036 | <entry>y<subscript>9</subscript></entry> |
@@ -2164,11 +2048,7 @@ | |||
2164 | <entry>V4L2_MBUS_FMT_UYVY8_1X16</entry> | 2048 | <entry>V4L2_MBUS_FMT_UYVY8_1X16</entry> |
2165 | <entry>0x200f</entry> | 2049 | <entry>0x200f</entry> |
2166 | <entry></entry> | 2050 | <entry></entry> |
2167 | &dash-ent-10; | 2051 | &dash-ent-16; |
2168 | <entry>-</entry> | ||
2169 | <entry>-</entry> | ||
2170 | <entry>-</entry> | ||
2171 | <entry>-</entry> | ||
2172 | <entry>u<subscript>7</subscript></entry> | 2052 | <entry>u<subscript>7</subscript></entry> |
2173 | <entry>u<subscript>6</subscript></entry> | 2053 | <entry>u<subscript>6</subscript></entry> |
2174 | <entry>u<subscript>5</subscript></entry> | 2054 | <entry>u<subscript>5</subscript></entry> |
@@ -2190,11 +2070,7 @@ | |||
2190 | <entry></entry> | 2070 | <entry></entry> |
2191 | <entry></entry> | 2071 | <entry></entry> |
2192 | <entry></entry> | 2072 | <entry></entry> |
2193 | &dash-ent-10; | 2073 | &dash-ent-16; |
2194 | <entry>-</entry> | ||
2195 | <entry>-</entry> | ||
2196 | <entry>-</entry> | ||
2197 | <entry>-</entry> | ||
2198 | <entry>v<subscript>7</subscript></entry> | 2074 | <entry>v<subscript>7</subscript></entry> |
2199 | <entry>v<subscript>6</subscript></entry> | 2075 | <entry>v<subscript>6</subscript></entry> |
2200 | <entry>v<subscript>5</subscript></entry> | 2076 | <entry>v<subscript>5</subscript></entry> |
@@ -2216,11 +2092,7 @@ | |||
2216 | <entry>V4L2_MBUS_FMT_VYUY8_1X16</entry> | 2092 | <entry>V4L2_MBUS_FMT_VYUY8_1X16</entry> |
2217 | <entry>0x2010</entry> | 2093 | <entry>0x2010</entry> |
2218 | <entry></entry> | 2094 | <entry></entry> |
2219 | &dash-ent-10; | 2095 | &dash-ent-16; |
2220 | <entry>-</entry> | ||
2221 | <entry>-</entry> | ||
2222 | <entry>-</entry> | ||
2223 | <entry>-</entry> | ||
2224 | <entry>v<subscript>7</subscript></entry> | 2096 | <entry>v<subscript>7</subscript></entry> |
2225 | <entry>v<subscript>6</subscript></entry> | 2097 | <entry>v<subscript>6</subscript></entry> |
2226 | <entry>v<subscript>5</subscript></entry> | 2098 | <entry>v<subscript>5</subscript></entry> |
@@ -2242,11 +2114,7 @@ | |||
2242 | <entry></entry> | 2114 | <entry></entry> |
2243 | <entry></entry> | 2115 | <entry></entry> |
2244 | <entry></entry> | 2116 | <entry></entry> |
2245 | &dash-ent-10; | 2117 | &dash-ent-16; |
2246 | <entry>-</entry> | ||
2247 | <entry>-</entry> | ||
2248 | <entry>-</entry> | ||
2249 | <entry>-</entry> | ||
2250 | <entry>u<subscript>7</subscript></entry> | 2118 | <entry>u<subscript>7</subscript></entry> |
2251 | <entry>u<subscript>6</subscript></entry> | 2119 | <entry>u<subscript>6</subscript></entry> |
2252 | <entry>u<subscript>5</subscript></entry> | 2120 | <entry>u<subscript>5</subscript></entry> |
@@ -2268,11 +2136,7 @@ | |||
2268 | <entry>V4L2_MBUS_FMT_YUYV8_1X16</entry> | 2136 | <entry>V4L2_MBUS_FMT_YUYV8_1X16</entry> |
2269 | <entry>0x2011</entry> | 2137 | <entry>0x2011</entry> |
2270 | <entry></entry> | 2138 | <entry></entry> |
2271 | &dash-ent-10; | 2139 | &dash-ent-16; |
2272 | <entry>-</entry> | ||
2273 | <entry>-</entry> | ||
2274 | <entry>-</entry> | ||
2275 | <entry>-</entry> | ||
2276 | <entry>y<subscript>7</subscript></entry> | 2140 | <entry>y<subscript>7</subscript></entry> |
2277 | <entry>y<subscript>6</subscript></entry> | 2141 | <entry>y<subscript>6</subscript></entry> |
2278 | <entry>y<subscript>5</subscript></entry> | 2142 | <entry>y<subscript>5</subscript></entry> |
@@ -2294,11 +2158,7 @@ | |||
2294 | <entry></entry> | 2158 | <entry></entry> |
2295 | <entry></entry> | 2159 | <entry></entry> |
2296 | <entry></entry> | 2160 | <entry></entry> |
2297 | &dash-ent-10; | 2161 | &dash-ent-16; |
2298 | <entry>-</entry> | ||
2299 | <entry>-</entry> | ||
2300 | <entry>-</entry> | ||
2301 | <entry>-</entry> | ||
2302 | <entry>y<subscript>7</subscript></entry> | 2162 | <entry>y<subscript>7</subscript></entry> |
2303 | <entry>y<subscript>6</subscript></entry> | 2163 | <entry>y<subscript>6</subscript></entry> |
2304 | <entry>y<subscript>5</subscript></entry> | 2164 | <entry>y<subscript>5</subscript></entry> |
@@ -2320,11 +2180,7 @@ | |||
2320 | <entry>V4L2_MBUS_FMT_YVYU8_1X16</entry> | 2180 | <entry>V4L2_MBUS_FMT_YVYU8_1X16</entry> |
2321 | <entry>0x2012</entry> | 2181 | <entry>0x2012</entry> |
2322 | <entry></entry> | 2182 | <entry></entry> |
2323 | &dash-ent-10; | 2183 | &dash-ent-16; |
2324 | <entry>-</entry> | ||
2325 | <entry>-</entry> | ||
2326 | <entry>-</entry> | ||
2327 | <entry>-</entry> | ||
2328 | <entry>y<subscript>7</subscript></entry> | 2184 | <entry>y<subscript>7</subscript></entry> |
2329 | <entry>y<subscript>6</subscript></entry> | 2185 | <entry>y<subscript>6</subscript></entry> |
2330 | <entry>y<subscript>5</subscript></entry> | 2186 | <entry>y<subscript>5</subscript></entry> |
@@ -2346,11 +2202,7 @@ | |||
2346 | <entry></entry> | 2202 | <entry></entry> |
2347 | <entry></entry> | 2203 | <entry></entry> |
2348 | <entry></entry> | 2204 | <entry></entry> |
2349 | &dash-ent-10; | 2205 | &dash-ent-16; |
2350 | <entry>-</entry> | ||
2351 | <entry>-</entry> | ||
2352 | <entry>-</entry> | ||
2353 | <entry>-</entry> | ||
2354 | <entry>y<subscript>7</subscript></entry> | 2206 | <entry>y<subscript>7</subscript></entry> |
2355 | <entry>y<subscript>6</subscript></entry> | 2207 | <entry>y<subscript>6</subscript></entry> |
2356 | <entry>y<subscript>5</subscript></entry> | 2208 | <entry>y<subscript>5</subscript></entry> |
@@ -2372,10 +2224,7 @@ | |||
2372 | <entry>V4L2_MBUS_FMT_YDYUYDYV8_1X16</entry> | 2224 | <entry>V4L2_MBUS_FMT_YDYUYDYV8_1X16</entry> |
2373 | <entry>0x2014</entry> | 2225 | <entry>0x2014</entry> |
2374 | <entry></entry> | 2226 | <entry></entry> |
2375 | <entry>-</entry> | 2227 | &dash-ent-16; |
2376 | <entry>-</entry> | ||
2377 | <entry>-</entry> | ||
2378 | <entry>-</entry> | ||
2379 | <entry>y<subscript>7</subscript></entry> | 2228 | <entry>y<subscript>7</subscript></entry> |
2380 | <entry>y<subscript>6</subscript></entry> | 2229 | <entry>y<subscript>6</subscript></entry> |
2381 | <entry>y<subscript>5</subscript></entry> | 2230 | <entry>y<subscript>5</subscript></entry> |
@@ -2397,10 +2246,7 @@ | |||
2397 | <entry></entry> | 2246 | <entry></entry> |
2398 | <entry></entry> | 2247 | <entry></entry> |
2399 | <entry></entry> | 2248 | <entry></entry> |
2400 | <entry>-</entry> | 2249 | &dash-ent-16; |
2401 | <entry>-</entry> | ||
2402 | <entry>-</entry> | ||
2403 | <entry>-</entry> | ||
2404 | <entry>y<subscript>7</subscript></entry> | 2250 | <entry>y<subscript>7</subscript></entry> |
2405 | <entry>y<subscript>6</subscript></entry> | 2251 | <entry>y<subscript>6</subscript></entry> |
2406 | <entry>y<subscript>5</subscript></entry> | 2252 | <entry>y<subscript>5</subscript></entry> |
@@ -2422,10 +2268,7 @@ | |||
2422 | <entry></entry> | 2268 | <entry></entry> |
2423 | <entry></entry> | 2269 | <entry></entry> |
2424 | <entry></entry> | 2270 | <entry></entry> |
2425 | <entry>-</entry> | 2271 | &dash-ent-16; |
2426 | <entry>-</entry> | ||
2427 | <entry>-</entry> | ||
2428 | <entry>-</entry> | ||
2429 | <entry>y<subscript>7</subscript></entry> | 2272 | <entry>y<subscript>7</subscript></entry> |
2430 | <entry>y<subscript>6</subscript></entry> | 2273 | <entry>y<subscript>6</subscript></entry> |
2431 | <entry>y<subscript>5</subscript></entry> | 2274 | <entry>y<subscript>5</subscript></entry> |
@@ -2447,10 +2290,7 @@ | |||
2447 | <entry></entry> | 2290 | <entry></entry> |
2448 | <entry></entry> | 2291 | <entry></entry> |
2449 | <entry></entry> | 2292 | <entry></entry> |
2450 | <entry>-</entry> | 2293 | &dash-ent-16; |
2451 | <entry>-</entry> | ||
2452 | <entry>-</entry> | ||
2453 | <entry>-</entry> | ||
2454 | <entry>y<subscript>7</subscript></entry> | 2294 | <entry>y<subscript>7</subscript></entry> |
2455 | <entry>y<subscript>6</subscript></entry> | 2295 | <entry>y<subscript>6</subscript></entry> |
2456 | <entry>y<subscript>5</subscript></entry> | 2296 | <entry>y<subscript>5</subscript></entry> |
@@ -2472,7 +2312,7 @@ | |||
2472 | <entry>V4L2_MBUS_FMT_YUYV10_1X20</entry> | 2312 | <entry>V4L2_MBUS_FMT_YUYV10_1X20</entry> |
2473 | <entry>0x200d</entry> | 2313 | <entry>0x200d</entry> |
2474 | <entry></entry> | 2314 | <entry></entry> |
2475 | &dash-ent-10; | 2315 | &dash-ent-12; |
2476 | <entry>y<subscript>9</subscript></entry> | 2316 | <entry>y<subscript>9</subscript></entry> |
2477 | <entry>y<subscript>8</subscript></entry> | 2317 | <entry>y<subscript>8</subscript></entry> |
2478 | <entry>y<subscript>7</subscript></entry> | 2318 | <entry>y<subscript>7</subscript></entry> |
@@ -2498,7 +2338,7 @@ | |||
2498 | <entry></entry> | 2338 | <entry></entry> |
2499 | <entry></entry> | 2339 | <entry></entry> |
2500 | <entry></entry> | 2340 | <entry></entry> |
2501 | &dash-ent-10; | 2341 | &dash-ent-12; |
2502 | <entry>y<subscript>9</subscript></entry> | 2342 | <entry>y<subscript>9</subscript></entry> |
2503 | <entry>y<subscript>8</subscript></entry> | 2343 | <entry>y<subscript>8</subscript></entry> |
2504 | <entry>y<subscript>7</subscript></entry> | 2344 | <entry>y<subscript>7</subscript></entry> |
@@ -2524,7 +2364,7 @@ | |||
2524 | <entry>V4L2_MBUS_FMT_YVYU10_1X20</entry> | 2364 | <entry>V4L2_MBUS_FMT_YVYU10_1X20</entry> |
2525 | <entry>0x200e</entry> | 2365 | <entry>0x200e</entry> |
2526 | <entry></entry> | 2366 | <entry></entry> |
2527 | &dash-ent-10; | 2367 | &dash-ent-12; |
2528 | <entry>y<subscript>9</subscript></entry> | 2368 | <entry>y<subscript>9</subscript></entry> |
2529 | <entry>y<subscript>8</subscript></entry> | 2369 | <entry>y<subscript>8</subscript></entry> |
2530 | <entry>y<subscript>7</subscript></entry> | 2370 | <entry>y<subscript>7</subscript></entry> |
@@ -2550,7 +2390,7 @@ | |||
2550 | <entry></entry> | 2390 | <entry></entry> |
2551 | <entry></entry> | 2391 | <entry></entry> |
2552 | <entry></entry> | 2392 | <entry></entry> |
2553 | &dash-ent-10; | 2393 | &dash-ent-12; |
2554 | <entry>y<subscript>9</subscript></entry> | 2394 | <entry>y<subscript>9</subscript></entry> |
2555 | <entry>y<subscript>8</subscript></entry> | 2395 | <entry>y<subscript>8</subscript></entry> |
2556 | <entry>y<subscript>7</subscript></entry> | 2396 | <entry>y<subscript>7</subscript></entry> |
@@ -2574,8 +2414,10 @@ | |||
2574 | </row> | 2414 | </row> |
2575 | <row id="V4L2-MBUS-FMT-YUV10-1X30"> | 2415 | <row id="V4L2-MBUS-FMT-YUV10-1X30"> |
2576 | <entry>V4L2_MBUS_FMT_YUV10_1X30</entry> | 2416 | <entry>V4L2_MBUS_FMT_YUV10_1X30</entry> |
2577 | <entry>0x2014</entry> | 2417 | <entry>0x2016</entry> |
2578 | <entry></entry> | 2418 | <entry></entry> |
2419 | <entry>-</entry> | ||
2420 | <entry>-</entry> | ||
2579 | <entry>y<subscript>9</subscript></entry> | 2421 | <entry>y<subscript>9</subscript></entry> |
2580 | <entry>y<subscript>8</subscript></entry> | 2422 | <entry>y<subscript>8</subscript></entry> |
2581 | <entry>y<subscript>7</subscript></entry> | 2423 | <entry>y<subscript>7</subscript></entry> |
@@ -2607,6 +2449,43 @@ | |||
2607 | <entry>v<subscript>1</subscript></entry> | 2449 | <entry>v<subscript>1</subscript></entry> |
2608 | <entry>v<subscript>0</subscript></entry> | 2450 | <entry>v<subscript>0</subscript></entry> |
2609 | </row> | 2451 | </row> |
2452 | <row id="V4L2-MBUS-FMT-AYUV8-1X32"> | ||
2453 | <entry>V4L2_MBUS_FMT_AYUV8_1X32</entry> | ||
2454 | <entry>0x2017</entry> | ||
2455 | <entry></entry> | ||
2456 | <entry>a<subscript>7</subscript></entry> | ||
2457 | <entry>a<subscript>6</subscript></entry> | ||
2458 | <entry>a<subscript>5</subscript></entry> | ||
2459 | <entry>a<subscript>4</subscript></entry> | ||
2460 | <entry>a<subscript>3</subscript></entry> | ||
2461 | <entry>a<subscript>2</subscript></entry> | ||
2462 | <entry>a<subscript>1</subscript></entry> | ||
2463 | <entry>a<subscript>0</subscript></entry> | ||
2464 | <entry>y<subscript>7</subscript></entry> | ||
2465 | <entry>y<subscript>6</subscript></entry> | ||
2466 | <entry>y<subscript>5</subscript></entry> | ||
2467 | <entry>y<subscript>4</subscript></entry> | ||
2468 | <entry>y<subscript>3</subscript></entry> | ||
2469 | <entry>y<subscript>2</subscript></entry> | ||
2470 | <entry>y<subscript>1</subscript></entry> | ||
2471 | <entry>y<subscript>0</subscript></entry> | ||
2472 | <entry>u<subscript>7</subscript></entry> | ||
2473 | <entry>u<subscript>6</subscript></entry> | ||
2474 | <entry>u<subscript>5</subscript></entry> | ||
2475 | <entry>u<subscript>4</subscript></entry> | ||
2476 | <entry>u<subscript>3</subscript></entry> | ||
2477 | <entry>u<subscript>2</subscript></entry> | ||
2478 | <entry>u<subscript>1</subscript></entry> | ||
2479 | <entry>u<subscript>0</subscript></entry> | ||
2480 | <entry>v<subscript>7</subscript></entry> | ||
2481 | <entry>v<subscript>6</subscript></entry> | ||
2482 | <entry>v<subscript>5</subscript></entry> | ||
2483 | <entry>v<subscript>4</subscript></entry> | ||
2484 | <entry>v<subscript>3</subscript></entry> | ||
2485 | <entry>v<subscript>2</subscript></entry> | ||
2486 | <entry>v<subscript>1</subscript></entry> | ||
2487 | <entry>v<subscript>0</subscript></entry> | ||
2488 | </row> | ||
2610 | </tbody> | 2489 | </tbody> |
2611 | </tgroup> | 2490 | </tgroup> |
2612 | </table> | 2491 | </table> |
diff --git a/Documentation/DocBook/media/v4l/vidioc-create-bufs.xml b/Documentation/DocBook/media/v4l/vidioc-create-bufs.xml index cd9943672434..9b700a5f4df7 100644 --- a/Documentation/DocBook/media/v4l/vidioc-create-bufs.xml +++ b/Documentation/DocBook/media/v4l/vidioc-create-bufs.xml | |||
@@ -62,18 +62,29 @@ addition to the <constant>VIDIOC_REQBUFS</constant> ioctl, when a tighter | |||
62 | control over buffers is required. This ioctl can be called multiple times to | 62 | control over buffers is required. This ioctl can be called multiple times to |
63 | create buffers of different sizes.</para> | 63 | create buffers of different sizes.</para> |
64 | 64 | ||
65 | <para>To allocate device buffers applications initialize relevant fields of | 65 | <para>To allocate the device buffers applications must initialize the |
66 | the <structname>v4l2_create_buffers</structname> structure. They set the | 66 | relevant fields of the <structname>v4l2_create_buffers</structname> structure. |
67 | <structfield>type</structfield> field in the | 67 | The <structfield>count</structfield> field must be set to the number of |
68 | &v4l2-format; structure, embedded in this | 68 | requested buffers, the <structfield>memory</structfield> field specifies the |
69 | structure, to the respective stream or buffer type. | 69 | requested I/O method and the <structfield>reserved</structfield> array must be |
70 | <structfield>count</structfield> must be set to the number of required buffers. | 70 | zeroed.</para> |
71 | <structfield>memory</structfield> specifies the required I/O method. The | 71 | |
72 | <structfield>format</structfield> field shall typically be filled in using | 72 | <para>The <structfield>format</structfield> field specifies the image format |
73 | either the <constant>VIDIOC_TRY_FMT</constant> or | 73 | that the buffers must be able to handle. The application has to fill in this |
74 | <constant>VIDIOC_G_FMT</constant> ioctl(). Additionally, applications can adjust | 74 | &v4l2-format;. Usually this will be done using the |
75 | <structfield>sizeimage</structfield> fields to fit their specific needs. The | 75 | <constant>VIDIOC_TRY_FMT</constant> or <constant>VIDIOC_G_FMT</constant> ioctl() |
76 | <structfield>reserved</structfield> array must be zeroed.</para> | 76 | to ensure that the requested format is supported by the driver. Unsupported |
77 | formats will result in an error.</para> | ||
78 | |||
79 | <para>The buffers created by this ioctl will have as minimum size the size | ||
80 | defined by the <structfield>format.pix.sizeimage</structfield> field. If the | ||
81 | <structfield>format.pix.sizeimage</structfield> field is less than the minimum | ||
82 | required for the given format, then <structfield>sizeimage</structfield> will be | ||
83 | increased by the driver to that minimum to allocate the buffers. If it is | ||
84 | larger, then the value will be used as-is. The same applies to the | ||
85 | <structfield>sizeimage</structfield> field of the | ||
86 | <structname>v4l2_plane_pix_format</structname> structure in the case of | ||
87 | multiplanar formats.</para> | ||
77 | 88 | ||
78 | <para>When the ioctl is called with a pointer to this structure the driver | 89 | <para>When the ioctl is called with a pointer to this structure the driver |
79 | will attempt to allocate up to the requested number of buffers and store the | 90 | will attempt to allocate up to the requested number of buffers and store the |
@@ -144,9 +155,9 @@ mapped</link> I/O.</para> | |||
144 | <varlistentry> | 155 | <varlistentry> |
145 | <term><errorcode>EINVAL</errorcode></term> | 156 | <term><errorcode>EINVAL</errorcode></term> |
146 | <listitem> | 157 | <listitem> |
147 | <para>The buffer type (<structfield>type</structfield> field) or the | 158 | <para>The buffer type (<structfield>format.type</structfield> field), |
148 | requested I/O method (<structfield>memory</structfield>) is not | 159 | requested I/O method (<structfield>memory</structfield>) or format |
149 | supported.</para> | 160 | (<structfield>format</structfield> field) is not valid.</para> |
150 | </listitem> | 161 | </listitem> |
151 | </varlistentry> | 162 | </varlistentry> |
152 | </variablelist> | 163 | </variablelist> |
diff --git a/Documentation/DocBook/media/v4l/vidioc-g-dv-timings.xml b/Documentation/DocBook/media/v4l/vidioc-g-dv-timings.xml index 72369707bd77..c4336577ff06 100644 --- a/Documentation/DocBook/media/v4l/vidioc-g-dv-timings.xml +++ b/Documentation/DocBook/media/v4l/vidioc-g-dv-timings.xml | |||
@@ -156,19 +156,19 @@ bit 0 (V4L2_DV_VSYNC_POS_POL) is for vertical sync polarity and bit 1 (V4L2_DV_H | |||
156 | <entry>__u32</entry> | 156 | <entry>__u32</entry> |
157 | <entry><structfield>il_vfrontporch</structfield></entry> | 157 | <entry><structfield>il_vfrontporch</structfield></entry> |
158 | <entry>Vertical front porch in lines for the even field (aka field 2) of | 158 | <entry>Vertical front porch in lines for the even field (aka field 2) of |
159 | interlaced field formats.</entry> | 159 | interlaced field formats. Must be 0 for progressive formats.</entry> |
160 | </row> | 160 | </row> |
161 | <row> | 161 | <row> |
162 | <entry>__u32</entry> | 162 | <entry>__u32</entry> |
163 | <entry><structfield>il_vsync</structfield></entry> | 163 | <entry><structfield>il_vsync</structfield></entry> |
164 | <entry>Vertical sync length in lines for the even field (aka field 2) of | 164 | <entry>Vertical sync length in lines for the even field (aka field 2) of |
165 | interlaced field formats.</entry> | 165 | interlaced field formats. Must be 0 for progressive formats.</entry> |
166 | </row> | 166 | </row> |
167 | <row> | 167 | <row> |
168 | <entry>__u32</entry> | 168 | <entry>__u32</entry> |
169 | <entry><structfield>il_vbackporch</structfield></entry> | 169 | <entry><structfield>il_vbackporch</structfield></entry> |
170 | <entry>Vertical back porch in lines for the even field (aka field 2) of | 170 | <entry>Vertical back porch in lines for the even field (aka field 2) of |
171 | interlaced field formats.</entry> | 171 | interlaced field formats. Must be 0 for progressive formats.</entry> |
172 | </row> | 172 | </row> |
173 | <row> | 173 | <row> |
174 | <entry>__u32</entry> | 174 | <entry>__u32</entry> |
diff --git a/Documentation/DocBook/media/v4l/vidioc-g-jpegcomp.xml b/Documentation/DocBook/media/v4l/vidioc-g-jpegcomp.xml index 48748499c097..098ff483802e 100644 --- a/Documentation/DocBook/media/v4l/vidioc-g-jpegcomp.xml +++ b/Documentation/DocBook/media/v4l/vidioc-g-jpegcomp.xml | |||
@@ -92,8 +92,8 @@ to add them.</para> | |||
92 | <entry>int</entry> | 92 | <entry>int</entry> |
93 | <entry><structfield>quality</structfield></entry> | 93 | <entry><structfield>quality</structfield></entry> |
94 | <entry>Deprecated. If <link linkend="jpeg-quality-control"><constant> | 94 | <entry>Deprecated. If <link linkend="jpeg-quality-control"><constant> |
95 | V4L2_CID_JPEG_IMAGE_QUALITY</constant></link> control is exposed by | 95 | V4L2_CID_JPEG_COMPRESSION_QUALITY</constant></link> control is exposed |
96 | a driver applications should use it instead and ignore this field. | 96 | by a driver applications should use it instead and ignore this field. |
97 | </entry> | 97 | </entry> |
98 | </row> | 98 | </row> |
99 | <row> | 99 | <row> |
diff --git a/Documentation/DocBook/media/v4l/vidioc-g-parm.xml b/Documentation/DocBook/media/v4l/vidioc-g-parm.xml index 9058224d1bbf..f4e28e7d4751 100644 --- a/Documentation/DocBook/media/v4l/vidioc-g-parm.xml +++ b/Documentation/DocBook/media/v4l/vidioc-g-parm.xml | |||
@@ -132,7 +132,7 @@ devices.</para> | |||
132 | <row> | 132 | <row> |
133 | <entry>&v4l2-fract;</entry> | 133 | <entry>&v4l2-fract;</entry> |
134 | <entry><structfield>timeperframe</structfield></entry> | 134 | <entry><structfield>timeperframe</structfield></entry> |
135 | <entry><para>This is is the desired period between | 135 | <entry><para>This is the desired period between |
136 | successive frames captured by the driver, in seconds. The | 136 | successive frames captured by the driver, in seconds. The |
137 | field is intended to skip frames on the driver side, saving I/O | 137 | field is intended to skip frames on the driver side, saving I/O |
138 | bandwidth.</para><para>Applications store here the desired frame | 138 | bandwidth.</para><para>Applications store here the desired frame |
@@ -193,7 +193,7 @@ applications must set the array to zero.</entry> | |||
193 | <row> | 193 | <row> |
194 | <entry>&v4l2-fract;</entry> | 194 | <entry>&v4l2-fract;</entry> |
195 | <entry><structfield>timeperframe</structfield></entry> | 195 | <entry><structfield>timeperframe</structfield></entry> |
196 | <entry>This is is the desired period between | 196 | <entry>This is the desired period between |
197 | successive frames output by the driver, in seconds.</entry> | 197 | successive frames output by the driver, in seconds.</entry> |
198 | </row> | 198 | </row> |
199 | <row> | 199 | <row> |
diff --git a/Documentation/DocBook/media_api.tmpl b/Documentation/DocBook/media_api.tmpl index 9c92bb879b6d..4c8d282545a2 100644 --- a/Documentation/DocBook/media_api.tmpl +++ b/Documentation/DocBook/media_api.tmpl | |||
@@ -22,8 +22,14 @@ | |||
22 | 22 | ||
23 | <!-- LinuxTV v4l-dvb repository. --> | 23 | <!-- LinuxTV v4l-dvb repository. --> |
24 | <!ENTITY v4l-dvb "<ulink url='http://linuxtv.org/repo/'>http://linuxtv.org/repo/</ulink>"> | 24 | <!ENTITY v4l-dvb "<ulink url='http://linuxtv.org/repo/'>http://linuxtv.org/repo/</ulink>"> |
25 | <!ENTITY dash-ent-8 "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>"> | ||
25 | <!ENTITY dash-ent-10 "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>"> | 26 | <!ENTITY dash-ent-10 "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>"> |
27 | <!ENTITY dash-ent-12 "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>"> | ||
28 | <!ENTITY dash-ent-14 "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>"> | ||
26 | <!ENTITY dash-ent-16 "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>"> | 29 | <!ENTITY dash-ent-16 "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>"> |
30 | <!ENTITY dash-ent-20 "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>"> | ||
31 | <!ENTITY dash-ent-22 "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>"> | ||
32 | <!ENTITY dash-ent-24 "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>"> | ||
27 | ]> | 33 | ]> |
28 | 34 | ||
29 | <book id="media_api"> | 35 | <book id="media_api"> |
diff --git a/Documentation/DocBook/mtdnand.tmpl b/Documentation/DocBook/mtdnand.tmpl index fe122d6e686f..a248f42a121e 100644 --- a/Documentation/DocBook/mtdnand.tmpl +++ b/Documentation/DocBook/mtdnand.tmpl | |||
@@ -1224,8 +1224,6 @@ in this page</entry> | |||
1224 | #define NAND_BBT_CREATE 0x00000200 | 1224 | #define NAND_BBT_CREATE 0x00000200 |
1225 | /* Search good / bad pattern through all pages of a block */ | 1225 | /* Search good / bad pattern through all pages of a block */ |
1226 | #define NAND_BBT_SCANALLPAGES 0x00000400 | 1226 | #define NAND_BBT_SCANALLPAGES 0x00000400 |
1227 | /* Scan block empty during good / bad block scan */ | ||
1228 | #define NAND_BBT_SCANEMPTY 0x00000800 | ||
1229 | /* Write bbt if neccecary */ | 1227 | /* Write bbt if neccecary */ |
1230 | #define NAND_BBT_WRITE 0x00001000 | 1228 | #define NAND_BBT_WRITE 0x00001000 |
1231 | /* Read and write back block contents when writing bbt */ | 1229 | /* Read and write back block contents when writing bbt */ |
diff --git a/Documentation/IRQ-affinity.txt b/Documentation/IRQ-affinity.txt index 7890fae18529..01a675175a36 100644 --- a/Documentation/IRQ-affinity.txt +++ b/Documentation/IRQ-affinity.txt | |||
@@ -57,8 +57,8 @@ i.e counters for the CPU0-3 did not change. | |||
57 | 57 | ||
58 | Here is an example of limiting that same irq (44) to cpus 1024 to 1031: | 58 | Here is an example of limiting that same irq (44) to cpus 1024 to 1031: |
59 | 59 | ||
60 | [root@moon 44]# echo 1024-1031 > smp_affinity | 60 | [root@moon 44]# echo 1024-1031 > smp_affinity_list |
61 | [root@moon 44]# cat smp_affinity | 61 | [root@moon 44]# cat smp_affinity_list |
62 | 1024-1031 | 62 | 1024-1031 |
63 | 63 | ||
64 | Note that to do this with a bitmask would require 32 bitmasks of zero | 64 | Note that to do this with a bitmask would require 32 bitmasks of zero |
diff --git a/Documentation/RCU/RTFP.txt b/Documentation/RCU/RTFP.txt index 7f40c72a9c51..273e654d7d08 100644 --- a/Documentation/RCU/RTFP.txt +++ b/Documentation/RCU/RTFP.txt | |||
@@ -39,7 +39,7 @@ in read-mostly situations. This algorithm does take pains to avoid | |||
39 | write-side contention and parallelize the other write-side overheads by | 39 | write-side contention and parallelize the other write-side overheads by |
40 | providing a fine-grained locking design, however, it would be interesting | 40 | providing a fine-grained locking design, however, it would be interesting |
41 | to see how much of the performance advantage reported in 1990 remains | 41 | to see how much of the performance advantage reported in 1990 remains |
42 | in 2004. | 42 | today. |
43 | 43 | ||
44 | At about this same time, Adams [Adams91] described ``chaotic relaxation'', | 44 | At about this same time, Adams [Adams91] described ``chaotic relaxation'', |
45 | where the normal barriers between successive iterations of convergent | 45 | where the normal barriers between successive iterations of convergent |
@@ -86,9 +86,9 @@ DYNIX/ptx kernel. The corresponding conference paper appeared in 1998 | |||
86 | [McKenney98]. | 86 | [McKenney98]. |
87 | 87 | ||
88 | In 1999, the Tornado and K42 groups described their "generations" | 88 | In 1999, the Tornado and K42 groups described their "generations" |
89 | mechanism, which quite similar to RCU [Gamsa99]. These operating systems | 89 | mechanism, which is quite similar to RCU [Gamsa99]. These operating |
90 | made pervasive use of RCU in place of "existence locks", which greatly | 90 | systems made pervasive use of RCU in place of "existence locks", which |
91 | simplifies locking hierarchies. | 91 | greatly simplifies locking hierarchies and helps avoid deadlocks. |
92 | 92 | ||
93 | 2001 saw the first RCU presentation involving Linux [McKenney01a] | 93 | 2001 saw the first RCU presentation involving Linux [McKenney01a] |
94 | at OLS. The resulting abundance of RCU patches was presented the | 94 | at OLS. The resulting abundance of RCU patches was presented the |
@@ -106,8 +106,11 @@ these techniques still impose significant read-side overhead in the | |||
106 | form of memory barriers. Researchers at Sun worked along similar lines | 106 | form of memory barriers. Researchers at Sun worked along similar lines |
107 | in the same timeframe [HerlihyLM02]. These techniques can be thought | 107 | in the same timeframe [HerlihyLM02]. These techniques can be thought |
108 | of as inside-out reference counts, where the count is represented by the | 108 | of as inside-out reference counts, where the count is represented by the |
109 | number of hazard pointers referencing a given data structure (rather than | 109 | number of hazard pointers referencing a given data structure rather than |
110 | the more conventional counter field within the data structure itself). | 110 | the more conventional counter field within the data structure itself. |
111 | The key advantage of inside-out reference counts is that they can be | ||
112 | stored in immortal variables, thus allowing races between access and | ||
113 | deletion to be avoided. | ||
111 | 114 | ||
112 | By the same token, RCU can be thought of as a "bulk reference count", | 115 | By the same token, RCU can be thought of as a "bulk reference count", |
113 | where some form of reference counter covers all reference by a given CPU | 116 | where some form of reference counter covers all reference by a given CPU |
@@ -179,7 +182,25 @@ tree using software transactional memory to protect concurrent updates | |||
179 | (strange, but true!) [PhilHoward2011RCUTMRBTree], yet another variant of | 182 | (strange, but true!) [PhilHoward2011RCUTMRBTree], yet another variant of |
180 | RCU-protected resizeable hash tables [Triplett:2011:RPHash], the 3.0 RCU | 183 | RCU-protected resizeable hash tables [Triplett:2011:RPHash], the 3.0 RCU |
181 | trainwreck [PaulEMcKenney2011RCU3.0trainwreck], and Neil Brown's "Meet the | 184 | trainwreck [PaulEMcKenney2011RCU3.0trainwreck], and Neil Brown's "Meet the |
182 | Lockers" LWN article [NeilBrown2011MeetTheLockers]. | 185 | Lockers" LWN article [NeilBrown2011MeetTheLockers]. Some academic |
186 | work looked at debugging uses of RCU [Seyster:2011:RFA:2075416.2075425]. | ||
187 | |||
188 | In 2012, Josh Triplett received his Ph.D. with his dissertation | ||
189 | covering RCU-protected resizable hash tables and the relationship | ||
190 | between memory barriers and read-side traversal order: If the updater | ||
191 | is making changes in the opposite direction from the read-side traveral | ||
192 | order, the updater need only execute a memory-barrier instruction, | ||
193 | but if in the same direction, the updater needs to wait for a grace | ||
194 | period between the individual updates [JoshTriplettPhD]. Also in 2012, | ||
195 | after seventeen years of attempts, an RCU paper made it into a top-flight | ||
196 | academic journal, IEEE Transactions on Parallel and Distributed Systems | ||
197 | [MathieuDesnoyers2012URCU]. A group of researchers in Spain applied | ||
198 | user-level RCU to crowd simulation [GuillermoVigueras2012RCUCrowd], and | ||
199 | another group of researchers in Europe produced a formal description of | ||
200 | RCU based on separation logic [AlexeyGotsman2012VerifyGraceExtended], | ||
201 | which was published in the 2013 European Symposium on Programming | ||
202 | [AlexeyGotsman2013ESOPRCU]. | ||
203 | |||
183 | 204 | ||
184 | 205 | ||
185 | Bibtex Entries | 206 | Bibtex Entries |
@@ -193,13 +214,12 @@ Bibtex Entries | |||
193 | ,volume="5" | 214 | ,volume="5" |
194 | ,number="3" | 215 | ,number="3" |
195 | ,pages="354-382" | 216 | ,pages="354-382" |
196 | ,note="Available: | ||
197 | \url{http://portal.acm.org/citation.cfm?id=320619&dl=GUIDE,} | ||
198 | [Viewed December 3, 2007]" | ||
199 | ,annotation={ | 217 | ,annotation={ |
200 | Use garbage collector to clean up data after everyone is done with it. | 218 | Use garbage collector to clean up data after everyone is done with it. |
201 | . | 219 | . |
202 | Oldest use of something vaguely resembling RCU that I have found. | 220 | Oldest use of something vaguely resembling RCU that I have found. |
221 | http://portal.acm.org/citation.cfm?id=320619&dl=GUIDE, | ||
222 | [Viewed December 3, 2007] | ||
203 | } | 223 | } |
204 | } | 224 | } |
205 | 225 | ||
@@ -309,7 +329,7 @@ for Programming Languages and Operating Systems}" | |||
309 | ,doi = {http://doi.acm.org/10.1145/42392.42399} | 329 | ,doi = {http://doi.acm.org/10.1145/42392.42399} |
310 | ,publisher = {ACM} | 330 | ,publisher = {ACM} |
311 | ,address = {New York, NY, USA} | 331 | ,address = {New York, NY, USA} |
312 | ,annotation= { | 332 | ,annotation={ |
313 | At the top of page 307: "Conflicts with deposits and withdrawals | 333 | At the top of page 307: "Conflicts with deposits and withdrawals |
314 | are necessary if the reported total is to be up to date. They | 334 | are necessary if the reported total is to be up to date. They |
315 | could be avoided by having total return a sum that is slightly | 335 | could be avoided by having total return a sum that is slightly |
@@ -346,8 +366,9 @@ for Programming Languages and Operating Systems}" | |||
346 | } | 366 | } |
347 | } | 367 | } |
348 | 368 | ||
349 | @Book{Adams91 | 369 | # Was Adams91, see also syncrefs.bib. |
350 | ,Author="Gregory R. Adams" | 370 | @Book{Andrews91textbook |
371 | ,Author="Gregory R. Andrews" | ||
351 | ,title="Concurrent Programming, Principles, and Practices" | 372 | ,title="Concurrent Programming, Principles, and Practices" |
352 | ,Publisher="Benjamin Cummins" | 373 | ,Publisher="Benjamin Cummins" |
353 | ,Year="1991" | 374 | ,Year="1991" |
@@ -398,39 +419,39 @@ for Programming Languages and Operating Systems}" | |||
398 | } | 419 | } |
399 | } | 420 | } |
400 | 421 | ||
401 | @conference{Pu95a, | 422 | @conference{Pu95a |
402 | Author = "Calton Pu and Tito Autrey and Andrew Black and Charles Consel and | 423 | ,Author = "Calton Pu and Tito Autrey and Andrew Black and Charles Consel and |
403 | Crispin Cowan and Jon Inouye and Lakshmi Kethana and Jonathan Walpole and | 424 | Crispin Cowan and Jon Inouye and Lakshmi Kethana and Jonathan Walpole and |
404 | Ke Zhang", | 425 | Ke Zhang" |
405 | Title = "Optimistic Incremental Specialization: Streamlining a Commercial | 426 | ,Title = "Optimistic Incremental Specialization: Streamlining a Commercial |
406 | Operating System", | 427 | ,Operating System" |
407 | Booktitle = "15\textsuperscript{th} ACM Symposium on | 428 | ,Booktitle = "15\textsuperscript{th} ACM Symposium on |
408 | Operating Systems Principles (SOSP'95)", | 429 | ,Operating Systems Principles (SOSP'95)" |
409 | address = "Copper Mountain, CO", | 430 | ,address = "Copper Mountain, CO" |
410 | month="December", | 431 | ,month="December" |
411 | year="1995", | 432 | ,year="1995" |
412 | pages="314-321", | 433 | ,pages="314-321" |
413 | annotation=" | 434 | ,annotation={ |
414 | Uses a replugger, but with a flag to signal when people are | 435 | Uses a replugger, but with a flag to signal when people are |
415 | using the resource at hand. Only one reader at a time. | 436 | using the resource at hand. Only one reader at a time. |
416 | " | 437 | } |
417 | } | 438 | } |
418 | 439 | ||
419 | @conference{Cowan96a, | 440 | @conference{Cowan96a |
420 | Author = "Crispin Cowan and Tito Autrey and Charles Krasic and | 441 | ,Author = "Crispin Cowan and Tito Autrey and Charles Krasic and |
421 | Calton Pu and Jonathan Walpole", | 442 | ,Calton Pu and Jonathan Walpole" |
422 | Title = "Fast Concurrent Dynamic Linking for an Adaptive Operating System", | 443 | ,Title = "Fast Concurrent Dynamic Linking for an Adaptive Operating System" |
423 | Booktitle = "International Conference on Configurable Distributed Systems | 444 | ,Booktitle = "International Conference on Configurable Distributed Systems |
424 | (ICCDS'96)", | 445 | (ICCDS'96)" |
425 | address = "Annapolis, MD", | 446 | ,address = "Annapolis, MD" |
426 | month="May", | 447 | ,month="May" |
427 | year="1996", | 448 | ,year="1996" |
428 | pages="108", | 449 | ,pages="108" |
429 | isbn="0-8186-7395-8", | 450 | ,isbn="0-8186-7395-8" |
430 | annotation=" | 451 | ,annotation={ |
431 | Uses a replugger, but with a counter to signal when people are | 452 | Uses a replugger, but with a counter to signal when people are |
432 | using the resource at hand. Allows multiple readers. | 453 | using the resource at hand. Allows multiple readers. |
433 | " | 454 | } |
434 | } | 455 | } |
435 | 456 | ||
436 | @techreport{Slingwine95 | 457 | @techreport{Slingwine95 |
@@ -493,14 +514,13 @@ Problems" | |||
493 | ,Year="1998" | 514 | ,Year="1998" |
494 | ,pages="509-518" | 515 | ,pages="509-518" |
495 | ,Address="Las Vegas, NV" | 516 | ,Address="Las Vegas, NV" |
496 | ,note="Available: | ||
497 | \url{http://www.rdrop.com/users/paulmck/RCU/rclockpdcsproof.pdf} | ||
498 | [Viewed December 3, 2007]" | ||
499 | ,annotation={ | 517 | ,annotation={ |
500 | Describes and analyzes RCU mechanism in DYNIX/ptx. Describes | 518 | Describes and analyzes RCU mechanism in DYNIX/ptx. Describes |
501 | application to linked list update and log-buffer flushing. | 519 | application to linked list update and log-buffer flushing. |
502 | Defines 'quiescent state'. Includes both measured and analytic | 520 | Defines 'quiescent state'. Includes both measured and analytic |
503 | evaluation. | 521 | evaluation. |
522 | http://www.rdrop.com/users/paulmck/RCU/rclockpdcsproof.pdf | ||
523 | [Viewed December 3, 2007] | ||
504 | } | 524 | } |
505 | } | 525 | } |
506 | 526 | ||
@@ -514,13 +534,12 @@ Operating System Design and Implementation}" | |||
514 | ,Year="1999" | 534 | ,Year="1999" |
515 | ,pages="87-100" | 535 | ,pages="87-100" |
516 | ,Address="New Orleans, LA" | 536 | ,Address="New Orleans, LA" |
517 | ,note="Available: | ||
518 | \url{http://www.usenix.org/events/osdi99/full_papers/gamsa/gamsa.pdf} | ||
519 | [Viewed August 30, 2006]" | ||
520 | ,annotation={ | 537 | ,annotation={ |
521 | Use of RCU-like facility in K42/Tornado. Another independent | 538 | Use of RCU-like facility in K42/Tornado. Another independent |
522 | invention of RCU. | 539 | invention of RCU. |
523 | See especially pages 7-9 (Section 5). | 540 | See especially pages 7-9 (Section 5). |
541 | http://www.usenix.org/events/osdi99/full_papers/gamsa/gamsa.pdf | ||
542 | [Viewed August 30, 2006] | ||
524 | } | 543 | } |
525 | } | 544 | } |
526 | 545 | ||
@@ -611,9 +630,9 @@ Orran Krieger and Rusty Russell and Dipankar Sarma and Maneesh Soni" | |||
611 | ,note="Available: | 630 | ,note="Available: |
612 | \url{http://marc.theaimsgroup.com/?l=linux-kernel&m=100259266316456&w=2} | 631 | \url{http://marc.theaimsgroup.com/?l=linux-kernel&m=100259266316456&w=2} |
613 | [Viewed June 23, 2004]" | 632 | [Viewed June 23, 2004]" |
614 | ,annotation=" | 633 | ,annotation={ |
615 | Memory-barrier and Alpha thread. 100 messages, not too bad... | 634 | Memory-barrier and Alpha thread. 100 messages, not too bad... |
616 | " | 635 | } |
617 | } | 636 | } |
618 | 637 | ||
619 | @unpublished{Spraul01 | 638 | @unpublished{Spraul01 |
@@ -624,10 +643,10 @@ Orran Krieger and Rusty Russell and Dipankar Sarma and Maneesh Soni" | |||
624 | ,note="Available: | 643 | ,note="Available: |
625 | \url{http://marc.theaimsgroup.com/?l=linux-kernel&m=100264675012867&w=2} | 644 | \url{http://marc.theaimsgroup.com/?l=linux-kernel&m=100264675012867&w=2} |
626 | [Viewed June 23, 2004]" | 645 | [Viewed June 23, 2004]" |
627 | ,annotation=" | 646 | ,annotation={ |
628 | Suggested burying memory barriers in Linux's list-manipulation | 647 | Suggested burying memory barriers in Linux's list-manipulation |
629 | primitives. | 648 | primitives. |
630 | " | 649 | } |
631 | } | 650 | } |
632 | 651 | ||
633 | @unpublished{LinusTorvalds2001a | 652 | @unpublished{LinusTorvalds2001a |
@@ -638,6 +657,8 @@ Orran Krieger and Rusty Russell and Dipankar Sarma and Maneesh Soni" | |||
638 | ,note="Available: | 657 | ,note="Available: |
639 | \url{http://lkml.org/lkml/2001/10/13/105} | 658 | \url{http://lkml.org/lkml/2001/10/13/105} |
640 | [Viewed August 21, 2004]" | 659 | [Viewed August 21, 2004]" |
660 | ,annotation={ | ||
661 | } | ||
641 | } | 662 | } |
642 | 663 | ||
643 | @unpublished{Blanchard02a | 664 | @unpublished{Blanchard02a |
@@ -657,10 +678,10 @@ Orran Krieger and Rusty Russell and Dipankar Sarma and Maneesh Soni" | |||
657 | ,Month="June" | 678 | ,Month="June" |
658 | ,Year="2002" | 679 | ,Year="2002" |
659 | ,pages="289-300" | 680 | ,pages="289-300" |
660 | ,annotation=" | 681 | ,annotation={ |
661 | Measured scalability of Linux 2.4 kernel's directory-entry cache | 682 | Measured scalability of Linux 2.4 kernel's directory-entry cache |
662 | (dcache), and measured some scalability enhancements. | 683 | (dcache), and measured some scalability enhancements. |
663 | " | 684 | } |
664 | } | 685 | } |
665 | 686 | ||
666 | @Conference{McKenney02a | 687 | @Conference{McKenney02a |
@@ -674,10 +695,10 @@ Andrea Arcangeli and Andi Kleen and Orran Krieger and Rusty Russell" | |||
674 | ,note="Available: | 695 | ,note="Available: |
675 | \url{http://www.linux.org.uk/~ajh/ols2002_proceedings.pdf.gz} | 696 | \url{http://www.linux.org.uk/~ajh/ols2002_proceedings.pdf.gz} |
676 | [Viewed June 23, 2004]" | 697 | [Viewed June 23, 2004]" |
677 | ,annotation=" | 698 | ,annotation={ |
678 | Presented and compared a number of RCU implementations for the | 699 | Presented and compared a number of RCU implementations for the |
679 | Linux kernel. | 700 | Linux kernel. |
680 | " | 701 | } |
681 | } | 702 | } |
682 | 703 | ||
683 | @unpublished{Sarma02a | 704 | @unpublished{Sarma02a |
@@ -688,9 +709,9 @@ Andrea Arcangeli and Andi Kleen and Orran Krieger and Rusty Russell" | |||
688 | ,note="Available: | 709 | ,note="Available: |
689 | \url{http://marc.theaimsgroup.com/?l=linux-kernel&m=102645767914212&w=2} | 710 | \url{http://marc.theaimsgroup.com/?l=linux-kernel&m=102645767914212&w=2} |
690 | [Viewed June 23, 2004]" | 711 | [Viewed June 23, 2004]" |
691 | ,annotation=" | 712 | ,annotation={ |
692 | Compare fastwalk and RCU for dcache. RCU won. | 713 | Compare fastwalk and RCU for dcache. RCU won. |
693 | " | 714 | } |
694 | } | 715 | } |
695 | 716 | ||
696 | @unpublished{Barbieri02 | 717 | @unpublished{Barbieri02 |
@@ -701,9 +722,9 @@ Andrea Arcangeli and Andi Kleen and Orran Krieger and Rusty Russell" | |||
701 | ,note="Available: | 722 | ,note="Available: |
702 | \url{http://marc.theaimsgroup.com/?l=linux-kernel&m=103082050621241&w=2} | 723 | \url{http://marc.theaimsgroup.com/?l=linux-kernel&m=103082050621241&w=2} |
703 | [Viewed: June 23, 2004]" | 724 | [Viewed: June 23, 2004]" |
704 | ,annotation=" | 725 | ,annotation={ |
705 | Suggested RCU for vfs\_shared\_cred. | 726 | Suggested RCU for vfs\_shared\_cred. |
706 | " | 727 | } |
707 | } | 728 | } |
708 | 729 | ||
709 | @unpublished{Dickins02a | 730 | @unpublished{Dickins02a |
@@ -722,10 +743,10 @@ Andrea Arcangeli and Andi Kleen and Orran Krieger and Rusty Russell" | |||
722 | ,note="Available: | 743 | ,note="Available: |
723 | \url{http://marc.theaimsgroup.com/?l=linux-kernel&m=103462075416638&w=2} | 744 | \url{http://marc.theaimsgroup.com/?l=linux-kernel&m=103462075416638&w=2} |
724 | [Viewed June 23, 2004]" | 745 | [Viewed June 23, 2004]" |
725 | ,annotation=" | 746 | ,annotation={ |
726 | Performance of dcache RCU on kernbench for 16x NUMA-Q and 1x, | 747 | Performance of dcache RCU on kernbench for 16x NUMA-Q and 1x, |
727 | 2x, and 4x systems. RCU does no harm, and helps on 16x. | 748 | 2x, and 4x systems. RCU does no harm, and helps on 16x. |
728 | " | 749 | } |
729 | } | 750 | } |
730 | 751 | ||
731 | @unpublished{LinusTorvalds2003a | 752 | @unpublished{LinusTorvalds2003a |
@@ -736,14 +757,14 @@ Andrea Arcangeli and Andi Kleen and Orran Krieger and Rusty Russell" | |||
736 | ,note="Available: | 757 | ,note="Available: |
737 | \url{http://lkml.org/lkml/2003/3/9/205} | 758 | \url{http://lkml.org/lkml/2003/3/9/205} |
738 | [Viewed March 13, 2006]" | 759 | [Viewed March 13, 2006]" |
739 | ,annotation=" | 760 | ,annotation={ |
740 | Linus suggests replacing brlock with RCU and/or seqlocks: | 761 | Linus suggests replacing brlock with RCU and/or seqlocks: |
741 | . | 762 | . |
742 | 'It's entirely possible that the current user could be replaced | 763 | 'It's entirely possible that the current user could be replaced |
743 | by RCU and/or seqlocks, and we could get rid of brlocks entirely.' | 764 | by RCU and/or seqlocks, and we could get rid of brlocks entirely.' |
744 | . | 765 | . |
745 | Steve Hemminger responds by replacing them with RCU. | 766 | Steve Hemminger responds by replacing them with RCU. |
746 | " | 767 | } |
747 | } | 768 | } |
748 | 769 | ||
749 | @article{Appavoo03a | 770 | @article{Appavoo03a |
@@ -758,9 +779,9 @@ B. Rosenburg and M. Stumm and J. Xenidis" | |||
758 | ,volume="42" | 779 | ,volume="42" |
759 | ,number="1" | 780 | ,number="1" |
760 | ,pages="60-76" | 781 | ,pages="60-76" |
761 | ,annotation=" | 782 | ,annotation={ |
762 | Use of RCU to enable hot-swapping for autonomic behavior in K42. | 783 | Use of RCU to enable hot-swapping for autonomic behavior in K42. |
763 | " | 784 | } |
764 | } | 785 | } |
765 | 786 | ||
766 | @unpublished{Seigh03 | 787 | @unpublished{Seigh03 |
@@ -769,9 +790,9 @@ B. Rosenburg and M. Stumm and J. Xenidis" | |||
769 | ,Year="2003" | 790 | ,Year="2003" |
770 | ,Month="March" | 791 | ,Month="March" |
771 | ,note="email correspondence" | 792 | ,note="email correspondence" |
772 | ,annotation=" | 793 | ,annotation={ |
773 | Described the relationship of the VM/XA passive serialization to RCU. | 794 | Described the relationship of the VM/XA passive serialization to RCU. |
774 | " | 795 | } |
775 | } | 796 | } |
776 | 797 | ||
777 | @Conference{Arcangeli03 | 798 | @Conference{Arcangeli03 |
@@ -785,14 +806,12 @@ Dipankar Sarma" | |||
785 | ,year="2003" | 806 | ,year="2003" |
786 | ,month="June" | 807 | ,month="June" |
787 | ,pages="297-310" | 808 | ,pages="297-310" |
788 | ,note="Available: | 809 | ,annotation={ |
789 | \url{http://www.rdrop.com/users/paulmck/RCU/rcu.FREENIX.2003.06.14.pdf} | ||
790 | [Viewed November 21, 2007]" | ||
791 | ,annotation=" | ||
792 | Compared updated RCU implementations for the Linux kernel, and | 810 | Compared updated RCU implementations for the Linux kernel, and |
793 | described System V IPC use of RCU, including order-of-magnitude | 811 | described System V IPC use of RCU, including order-of-magnitude |
794 | performance improvements. | 812 | performance improvements. |
795 | " | 813 | http://www.rdrop.com/users/paulmck/RCU/rcu.FREENIX.2003.06.14.pdf |
814 | } | ||
796 | } | 815 | } |
797 | 816 | ||
798 | @Conference{Soules03a | 817 | @Conference{Soules03a |
@@ -820,10 +839,10 @@ Michal Ostrowski and Bryan Rosenburg and Jimi Xenidis" | |||
820 | ,note="Available: | 839 | ,note="Available: |
821 | \url{http://www.linuxjournal.com/article/6993} | 840 | \url{http://www.linuxjournal.com/article/6993} |
822 | [Viewed November 14, 2007]" | 841 | [Viewed November 14, 2007]" |
823 | ,annotation=" | 842 | ,annotation={ |
824 | Reader-friendly intro to RCU, with the infamous old-man-and-brat | 843 | Reader-friendly intro to RCU, with the infamous old-man-and-brat |
825 | cartoon. | 844 | cartoon. |
826 | " | 845 | } |
827 | } | 846 | } |
828 | 847 | ||
829 | @unpublished{Sarma03a | 848 | @unpublished{Sarma03a |
@@ -832,7 +851,9 @@ Michal Ostrowski and Bryan Rosenburg and Jimi Xenidis" | |||
832 | ,month="December" | 851 | ,month="December" |
833 | ,year="2003" | 852 | ,year="2003" |
834 | ,note="Message ID: 20031222180114.GA2248@in.ibm.com" | 853 | ,note="Message ID: 20031222180114.GA2248@in.ibm.com" |
835 | ,annotation="dipankar/ct.2004.03.27/RCUll.2003.12.22.patch" | 854 | ,annotation={ |
855 | dipankar/ct.2004.03.27/RCUll.2003.12.22.patch | ||
856 | } | ||
836 | } | 857 | } |
837 | 858 | ||
838 | @techreport{Friedberg03a | 859 | @techreport{Friedberg03a |
@@ -844,11 +865,11 @@ Michal Ostrowski and Bryan Rosenburg and Jimi Xenidis" | |||
844 | ,number="US Patent 6,662,184" | 865 | ,number="US Patent 6,662,184" |
845 | ,month="December" | 866 | ,month="December" |
846 | ,pages="112" | 867 | ,pages="112" |
847 | ,annotation=" | 868 | ,annotation={ |
848 | Applies RCU to a wildcard-search Patricia tree in order to permit | 869 | Applies RCU to a wildcard-search Patricia tree in order to permit |
849 | synchronization-free lookup. RCU is used to retain removed nodes | 870 | synchronization-free lookup. RCU is used to retain removed nodes |
850 | for a grace period before freeing them. | 871 | for a grace period before freeing them. |
851 | " | 872 | } |
852 | } | 873 | } |
853 | 874 | ||
854 | @article{McKenney04a | 875 | @article{McKenney04a |
@@ -860,12 +881,11 @@ Michal Ostrowski and Bryan Rosenburg and Jimi Xenidis" | |||
860 | ,volume="1" | 881 | ,volume="1" |
861 | ,number="118" | 882 | ,number="118" |
862 | ,pages="38-46" | 883 | ,pages="38-46" |
863 | ,note="Available: | 884 | ,annotation={ |
864 | \url{http://www.linuxjournal.com/node/7124} | ||
865 | [Viewed December 26, 2010]" | ||
866 | ,annotation=" | ||
867 | Reader friendly intro to dcache and RCU. | 885 | Reader friendly intro to dcache and RCU. |
868 | " | 886 | http://www.linuxjournal.com/node/7124 |
887 | [Viewed December 26, 2010] | ||
888 | } | ||
869 | } | 889 | } |
870 | 890 | ||
871 | @Conference{McKenney04b | 891 | @Conference{McKenney04b |
@@ -879,10 +899,10 @@ Michal Ostrowski and Bryan Rosenburg and Jimi Xenidis" | |||
879 | \url{http://www.linux.org.au/conf/2004/abstracts.html#90} | 899 | \url{http://www.linux.org.au/conf/2004/abstracts.html#90} |
880 | \url{http://www.rdrop.com/users/paulmck/RCU/lockperf.2004.01.17a.pdf} | 900 | \url{http://www.rdrop.com/users/paulmck/RCU/lockperf.2004.01.17a.pdf} |
881 | [Viewed June 23, 2004]" | 901 | [Viewed June 23, 2004]" |
882 | ,annotation=" | 902 | ,annotation={ |
883 | Compares performance of RCU to that of other locking primitives | 903 | Compares performance of RCU to that of other locking primitives |
884 | over a number of CPUs (x86, Opteron, Itanium, and PPC). | 904 | over a number of CPUs (x86, Opteron, Itanium, and PPC). |
885 | " | 905 | } |
886 | } | 906 | } |
887 | 907 | ||
888 | @unpublished{Sarma04a | 908 | @unpublished{Sarma04a |
@@ -891,7 +911,9 @@ Michal Ostrowski and Bryan Rosenburg and Jimi Xenidis" | |||
891 | ,month="March" | 911 | ,month="March" |
892 | ,year="2004" | 912 | ,year="2004" |
893 | ,note="\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=108003746402892&w=2}" | 913 | ,note="\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=108003746402892&w=2}" |
894 | ,annotation="Head of thread: dipankar/2004.03.23/rcu-low-lat.1.patch" | 914 | ,annotation={ |
915 | Head of thread: dipankar/2004.03.23/rcu-low-lat.1.patch | ||
916 | } | ||
895 | } | 917 | } |
896 | 918 | ||
897 | @unpublished{Sarma04b | 919 | @unpublished{Sarma04b |
@@ -900,7 +922,9 @@ Michal Ostrowski and Bryan Rosenburg and Jimi Xenidis" | |||
900 | ,month="March" | 922 | ,month="March" |
901 | ,year="2004" | 923 | ,year="2004" |
902 | ,note="\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=108016474829546&w=2}" | 924 | ,note="\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=108016474829546&w=2}" |
903 | ,annotation="dipankar/rcuth.2004.03.24/rcu-throttle.patch" | 925 | ,annotation={ |
926 | dipankar/rcuth.2004.03.24/rcu-throttle.patch | ||
927 | } | ||
904 | } | 928 | } |
905 | 929 | ||
906 | @unpublished{Spraul04a | 930 | @unpublished{Spraul04a |
@@ -911,9 +935,9 @@ Michal Ostrowski and Bryan Rosenburg and Jimi Xenidis" | |||
911 | ,note="Available: | 935 | ,note="Available: |
912 | \url{http://marc.theaimsgroup.com/?l=linux-kernel&m=108546407726602&w=2} | 936 | \url{http://marc.theaimsgroup.com/?l=linux-kernel&m=108546407726602&w=2} |
913 | [Viewed June 23, 2004]" | 937 | [Viewed June 23, 2004]" |
914 | ,annotation=" | 938 | ,annotation={ |
915 | Hierarchical-bitmap patch for RCU infrastructure. | 939 | Hierarchical-bitmap patch for RCU infrastructure. |
916 | " | 940 | } |
917 | } | 941 | } |
918 | 942 | ||
919 | @unpublished{Steiner04a | 943 | @unpublished{Steiner04a |
@@ -950,10 +974,12 @@ Realtime Applications" | |||
950 | ,year="2004" | 974 | ,year="2004" |
951 | ,month="June" | 975 | ,month="June" |
952 | ,pages="182-191" | 976 | ,pages="182-191" |
953 | ,annotation=" | 977 | ,annotation={ |
954 | Describes and compares a number of modifications to the Linux RCU | 978 | Describes and compares a number of modifications to the Linux RCU |
955 | implementation that make it friendly to realtime applications. | 979 | implementation that make it friendly to realtime applications. |
956 | " | 980 | https://www.usenix.org/conference/2004-usenix-annual-technical-conference/making-rcu-safe-deep-sub-millisecond-response |
981 | [Viewed July 26, 2012] | ||
982 | } | ||
957 | } | 983 | } |
958 | 984 | ||
959 | @phdthesis{PaulEdwardMcKenneyPhD | 985 | @phdthesis{PaulEdwardMcKenneyPhD |
@@ -964,14 +990,13 @@ in Operating System Kernels" | |||
964 | ,school="OGI School of Science and Engineering at | 990 | ,school="OGI School of Science and Engineering at |
965 | Oregon Health and Sciences University" | 991 | Oregon Health and Sciences University" |
966 | ,year="2004" | 992 | ,year="2004" |
967 | ,note="Available: | 993 | ,annotation={ |
968 | \url{http://www.rdrop.com/users/paulmck/RCU/RCUdissertation.2004.07.14e1.pdf} | ||
969 | [Viewed October 15, 2004]" | ||
970 | ,annotation=" | ||
971 | Describes RCU implementations and presents design patterns | 994 | Describes RCU implementations and presents design patterns |
972 | corresponding to common uses of RCU in several operating-system | 995 | corresponding to common uses of RCU in several operating-system |
973 | kernels. | 996 | kernels. |
974 | " | 997 | http://www.rdrop.com/users/paulmck/RCU/RCUdissertation.2004.07.14e1.pdf |
998 | [Viewed October 15, 2004] | ||
999 | } | ||
975 | } | 1000 | } |
976 | 1001 | ||
977 | @unpublished{PaulEMcKenney2004rcu:dereference | 1002 | @unpublished{PaulEMcKenney2004rcu:dereference |
@@ -982,9 +1007,9 @@ Oregon Health and Sciences University" | |||
982 | ,note="Available: | 1007 | ,note="Available: |
983 | \url{http://lkml.org/lkml/2004/8/6/237} | 1008 | \url{http://lkml.org/lkml/2004/8/6/237} |
984 | [Viewed June 8, 2010]" | 1009 | [Viewed June 8, 2010]" |
985 | ,annotation=" | 1010 | ,annotation={ |
986 | Introduce rcu_dereference(). | 1011 | Introduce rcu_dereference(). |
987 | " | 1012 | } |
988 | } | 1013 | } |
989 | 1014 | ||
990 | @unpublished{JimHouston04a | 1015 | @unpublished{JimHouston04a |
@@ -995,11 +1020,11 @@ Oregon Health and Sciences University" | |||
995 | ,note="Available: | 1020 | ,note="Available: |
996 | \url{http://lkml.org/lkml/2004/8/30/87} | 1021 | \url{http://lkml.org/lkml/2004/8/30/87} |
997 | [Viewed February 17, 2005]" | 1022 | [Viewed February 17, 2005]" |
998 | ,annotation=" | 1023 | ,annotation={ |
999 | Uses active code in rcu_read_lock() and rcu_read_unlock() to | 1024 | Uses active code in rcu_read_lock() and rcu_read_unlock() to |
1000 | make RCU happen, allowing RCU to function on CPUs that do not | 1025 | make RCU happen, allowing RCU to function on CPUs that do not |
1001 | receive a scheduling-clock interrupt. | 1026 | receive a scheduling-clock interrupt. |
1002 | " | 1027 | } |
1003 | } | 1028 | } |
1004 | 1029 | ||
1005 | @unpublished{TomHart04a | 1030 | @unpublished{TomHart04a |
@@ -1010,9 +1035,9 @@ Oregon Health and Sciences University" | |||
1010 | ,note="Available: | 1035 | ,note="Available: |
1011 | \url{http://www.cs.toronto.edu/~tomhart/masters_thesis.html} | 1036 | \url{http://www.cs.toronto.edu/~tomhart/masters_thesis.html} |
1012 | [Viewed October 15, 2004]" | 1037 | [Viewed October 15, 2004]" |
1013 | ,annotation=" | 1038 | ,annotation={ |
1014 | Proposes comparing RCU to lock-free methods for the Linux kernel. | 1039 | Proposes comparing RCU to lock-free methods for the Linux kernel. |
1015 | " | 1040 | } |
1016 | } | 1041 | } |
1017 | 1042 | ||
1018 | @unpublished{Vaddagiri04a | 1043 | @unpublished{Vaddagiri04a |
@@ -1023,9 +1048,9 @@ Oregon Health and Sciences University" | |||
1023 | ,note="Available: | 1048 | ,note="Available: |
1024 | \url{http://marc.theaimsgroup.com/?t=109395731700004&r=1&w=2} | 1049 | \url{http://marc.theaimsgroup.com/?t=109395731700004&r=1&w=2} |
1025 | [Viewed October 18, 2004]" | 1050 | [Viewed October 18, 2004]" |
1026 | ,annotation=" | 1051 | ,annotation={ |
1027 | Srivatsa's RCU patch for tcp_ehash lookup. | 1052 | Srivatsa's RCU patch for tcp_ehash lookup. |
1028 | " | 1053 | } |
1029 | } | 1054 | } |
1030 | 1055 | ||
1031 | @unpublished{Thirumalai04a | 1056 | @unpublished{Thirumalai04a |
@@ -1036,9 +1061,9 @@ Oregon Health and Sciences University" | |||
1036 | ,note="Available: | 1061 | ,note="Available: |
1037 | \url{http://marc.theaimsgroup.com/?t=109144217400003&r=1&w=2} | 1062 | \url{http://marc.theaimsgroup.com/?t=109144217400003&r=1&w=2} |
1038 | [Viewed October 18, 2004]" | 1063 | [Viewed October 18, 2004]" |
1039 | ,annotation=" | 1064 | ,annotation={ |
1040 | Ravikiran's lockfree FD patch. | 1065 | Ravikiran's lockfree FD patch. |
1041 | " | 1066 | } |
1042 | } | 1067 | } |
1043 | 1068 | ||
1044 | @unpublished{Thirumalai04b | 1069 | @unpublished{Thirumalai04b |
@@ -1049,9 +1074,9 @@ Oregon Health and Sciences University" | |||
1049 | ,note="Available: | 1074 | ,note="Available: |
1050 | \url{http://marc.theaimsgroup.com/?l=linux-kernel&m=109152521410459&w=2} | 1075 | \url{http://marc.theaimsgroup.com/?l=linux-kernel&m=109152521410459&w=2} |
1051 | [Viewed October 18, 2004]" | 1076 | [Viewed October 18, 2004]" |
1052 | ,annotation=" | 1077 | ,annotation={ |
1053 | Ravikiran's lockfree FD patch. | 1078 | Ravikiran's lockfree FD patch. |
1054 | " | 1079 | } |
1055 | } | 1080 | } |
1056 | 1081 | ||
1057 | @unpublished{PaulEMcKenney2004rcu:assign:pointer | 1082 | @unpublished{PaulEMcKenney2004rcu:assign:pointer |
@@ -1062,9 +1087,9 @@ Oregon Health and Sciences University" | |||
1062 | ,note="Available: | 1087 | ,note="Available: |
1063 | \url{http://lkml.org/lkml/2004/10/23/241} | 1088 | \url{http://lkml.org/lkml/2004/10/23/241} |
1064 | [Viewed June 8, 2010]" | 1089 | [Viewed June 8, 2010]" |
1065 | ,annotation=" | 1090 | ,annotation={ |
1066 | Introduce rcu_assign_pointer(). | 1091 | Introduce rcu_assign_pointer(). |
1067 | " | 1092 | } |
1068 | } | 1093 | } |
1069 | 1094 | ||
1070 | @unpublished{JamesMorris04a | 1095 | @unpublished{JamesMorris04a |
@@ -1073,12 +1098,12 @@ Oregon Health and Sciences University" | |||
1073 | ,day="15" | 1098 | ,day="15" |
1074 | ,month="November" | 1099 | ,month="November" |
1075 | ,year="2004" | 1100 | ,year="2004" |
1076 | ,note="Available: | 1101 | ,note="\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=110054979416004&w=2}" |
1077 | \url{http://marc.theaimsgroup.com/?l=linux-kernel&m=110054979416004&w=2} | 1102 | ,annotation={ |
1078 | [Viewed December 10, 2004]" | ||
1079 | ,annotation=" | ||
1080 | James Morris posts Kaigai Kohei's patch to LKML. | 1103 | James Morris posts Kaigai Kohei's patch to LKML. |
1081 | " | 1104 | [Viewed December 10, 2004] |
1105 | Kaigai's patch is at https://lkml.org/lkml/2004/9/27/52 | ||
1106 | } | ||
1082 | } | 1107 | } |
1083 | 1108 | ||
1084 | @unpublished{JamesMorris04b | 1109 | @unpublished{JamesMorris04b |
@@ -1089,9 +1114,9 @@ Oregon Health and Sciences University" | |||
1089 | ,note="Available: | 1114 | ,note="Available: |
1090 | \url{http://www.livejournal.com/users/james_morris/2153.html} | 1115 | \url{http://www.livejournal.com/users/james_morris/2153.html} |
1091 | [Viewed December 10, 2004]" | 1116 | [Viewed December 10, 2004]" |
1092 | ,annotation=" | 1117 | ,annotation={ |
1093 | RCU helps SELinux performance. ;-) Made LWN. | 1118 | RCU helps SELinux performance. ;-) Made LWN. |
1094 | " | 1119 | } |
1095 | } | 1120 | } |
1096 | 1121 | ||
1097 | @unpublished{PaulMcKenney2005RCUSemantics | 1122 | @unpublished{PaulMcKenney2005RCUSemantics |
@@ -1103,9 +1128,9 @@ Oregon Health and Sciences University" | |||
1103 | ,note="Available: | 1128 | ,note="Available: |
1104 | \url{http://www.rdrop.com/users/paulmck/RCU/rcu-semantics.2005.01.30a.pdf} | 1129 | \url{http://www.rdrop.com/users/paulmck/RCU/rcu-semantics.2005.01.30a.pdf} |
1105 | [Viewed December 6, 2009]" | 1130 | [Viewed December 6, 2009]" |
1106 | ,annotation=" | 1131 | ,annotation={ |
1107 | Early derivation of RCU semantics. | 1132 | Early derivation of RCU semantics. |
1108 | " | 1133 | } |
1109 | } | 1134 | } |
1110 | 1135 | ||
1111 | @unpublished{PaulMcKenney2005e | 1136 | @unpublished{PaulMcKenney2005e |
@@ -1117,10 +1142,10 @@ Oregon Health and Sciences University" | |||
1117 | ,note="Available: | 1142 | ,note="Available: |
1118 | \url{http://lkml.org/lkml/2005/3/17/199} | 1143 | \url{http://lkml.org/lkml/2005/3/17/199} |
1119 | [Viewed September 5, 2005]" | 1144 | [Viewed September 5, 2005]" |
1120 | ,annotation=" | 1145 | ,annotation={ |
1121 | First posting showing how RCU can be safely adapted for | 1146 | First posting showing how RCU can be safely adapted for |
1122 | preemptable RCU read side critical sections. | 1147 | preemptable RCU read side critical sections. |
1123 | " | 1148 | } |
1124 | } | 1149 | } |
1125 | 1150 | ||
1126 | @unpublished{EsbenNeilsen2005a | 1151 | @unpublished{EsbenNeilsen2005a |
@@ -1132,12 +1157,12 @@ Oregon Health and Sciences University" | |||
1132 | ,note="Available: | 1157 | ,note="Available: |
1133 | \url{http://lkml.org/lkml/2005/3/18/122} | 1158 | \url{http://lkml.org/lkml/2005/3/18/122} |
1134 | [Viewed March 30, 2006]" | 1159 | [Viewed March 30, 2006]" |
1135 | ,annotation=" | 1160 | ,annotation={ |
1136 | Esben Neilsen suggests read-side suppression of grace-period | 1161 | Esben Neilsen suggests read-side suppression of grace-period |
1137 | processing for crude-but-workable realtime RCU. The downside | 1162 | processing for crude-but-workable realtime RCU. The downside |
1138 | is indefinite grace periods...But this is OK for experimentation | 1163 | is indefinite grace periods... But this is OK for experimentation |
1139 | and testing. | 1164 | and testing. |
1140 | " | 1165 | } |
1141 | } | 1166 | } |
1142 | 1167 | ||
1143 | @unpublished{TomHart05a | 1168 | @unpublished{TomHart05a |
@@ -1149,10 +1174,10 @@ Data Structures" | |||
1149 | ,note="Available: | 1174 | ,note="Available: |
1150 | \url{ftp://ftp.cs.toronto.edu/csrg-technical-reports/515/} | 1175 | \url{ftp://ftp.cs.toronto.edu/csrg-technical-reports/515/} |
1151 | [Viewed March 4, 2005]" | 1176 | [Viewed March 4, 2005]" |
1152 | ,annotation=" | 1177 | ,annotation={ |
1153 | Comparison of RCU, QBSR, and EBSR. RCU wins for read-mostly | 1178 | Comparison of RCU, QBSR, and EBSR. RCU wins for read-mostly |
1154 | workloads. ;-) | 1179 | workloads. ;-) |
1155 | " | 1180 | } |
1156 | } | 1181 | } |
1157 | 1182 | ||
1158 | @unpublished{JonCorbet2005DeprecateSyncKernel | 1183 | @unpublished{JonCorbet2005DeprecateSyncKernel |
@@ -1164,10 +1189,10 @@ Data Structures" | |||
1164 | ,note="Available: | 1189 | ,note="Available: |
1165 | \url{http://lwn.net/Articles/134484/} | 1190 | \url{http://lwn.net/Articles/134484/} |
1166 | [Viewed May 3, 2005]" | 1191 | [Viewed May 3, 2005]" |
1167 | ,annotation=" | 1192 | ,annotation={ |
1168 | Jon Corbet describes deprecation of synchronize_kernel() | 1193 | Jon Corbet describes deprecation of synchronize_kernel() |
1169 | in favor of synchronize_rcu() and synchronize_sched(). | 1194 | in favor of synchronize_rcu() and synchronize_sched(). |
1170 | " | 1195 | } |
1171 | } | 1196 | } |
1172 | 1197 | ||
1173 | @unpublished{PaulMcKenney05a | 1198 | @unpublished{PaulMcKenney05a |
@@ -1178,10 +1203,10 @@ Data Structures" | |||
1178 | ,note="Available: | 1203 | ,note="Available: |
1179 | \url{http://lkml.org/lkml/2005/5/9/185} | 1204 | \url{http://lkml.org/lkml/2005/5/9/185} |
1180 | [Viewed May 13, 2005]" | 1205 | [Viewed May 13, 2005]" |
1181 | ,annotation=" | 1206 | ,annotation={ |
1182 | First publication of working lock-based deferred free patches | 1207 | First publication of working lock-based deferred free patches |
1183 | for the CONFIG_PREEMPT_RT environment. | 1208 | for the CONFIG_PREEMPT_RT environment. |
1184 | " | 1209 | } |
1185 | } | 1210 | } |
1186 | 1211 | ||
1187 | @conference{PaulMcKenney05b | 1212 | @conference{PaulMcKenney05b |
@@ -1194,10 +1219,10 @@ Data Structures" | |||
1194 | ,note="Available: | 1219 | ,note="Available: |
1195 | \url{http://www.rdrop.com/users/paulmck/RCU/realtimeRCU.2005.04.23a.pdf} | 1220 | \url{http://www.rdrop.com/users/paulmck/RCU/realtimeRCU.2005.04.23a.pdf} |
1196 | [Viewed May 13, 2005]" | 1221 | [Viewed May 13, 2005]" |
1197 | ,annotation=" | 1222 | ,annotation={ |
1198 | Realtime turns into making RCU yet more realtime friendly. | 1223 | Realtime turns into making RCU yet more realtime friendly. |
1199 | http://lca2005.linux.org.au/Papers/Paul%20McKenney/Towards%20Hard%20Realtime%20Response%20from%20the%20Linux%20Kernel/LKS.2005.04.22a.pdf | 1224 | http://lca2005.linux.org.au/Papers/Paul%20McKenney/Towards%20Hard%20Realtime%20Response%20from%20the%20Linux%20Kernel/LKS.2005.04.22a.pdf |
1200 | " | 1225 | } |
1201 | } | 1226 | } |
1202 | 1227 | ||
1203 | @unpublished{PaulEMcKenneyHomePage | 1228 | @unpublished{PaulEMcKenneyHomePage |
@@ -1208,9 +1233,9 @@ Data Structures" | |||
1208 | ,note="Available: | 1233 | ,note="Available: |
1209 | \url{http://www.rdrop.com/users/paulmck/} | 1234 | \url{http://www.rdrop.com/users/paulmck/} |
1210 | [Viewed May 25, 2005]" | 1235 | [Viewed May 25, 2005]" |
1211 | ,annotation=" | 1236 | ,annotation={ |
1212 | Paul McKenney's home page. | 1237 | Paul McKenney's home page. |
1213 | " | 1238 | } |
1214 | } | 1239 | } |
1215 | 1240 | ||
1216 | @unpublished{PaulEMcKenneyRCUPage | 1241 | @unpublished{PaulEMcKenneyRCUPage |
@@ -1221,9 +1246,9 @@ Data Structures" | |||
1221 | ,note="Available: | 1246 | ,note="Available: |
1222 | \url{http://www.rdrop.com/users/paulmck/RCU} | 1247 | \url{http://www.rdrop.com/users/paulmck/RCU} |
1223 | [Viewed May 25, 2005]" | 1248 | [Viewed May 25, 2005]" |
1224 | ,annotation=" | 1249 | ,annotation={ |
1225 | Paul McKenney's RCU page. | 1250 | Paul McKenney's RCU page. |
1226 | " | 1251 | } |
1227 | } | 1252 | } |
1228 | 1253 | ||
1229 | @unpublished{JosephSeigh2005a | 1254 | @unpublished{JosephSeigh2005a |
@@ -1232,10 +1257,10 @@ Data Structures" | |||
1232 | ,month="July" | 1257 | ,month="July" |
1233 | ,year="2005" | 1258 | ,year="2005" |
1234 | ,note="Personal communication" | 1259 | ,note="Personal communication" |
1235 | ,annotation=" | 1260 | ,annotation={ |
1236 | Joe Seigh announcing his atomic-ptr-plus project. | 1261 | Joe Seigh announcing his atomic-ptr-plus project. |
1237 | http://sourceforge.net/projects/atomic-ptr-plus/ | 1262 | http://sourceforge.net/projects/atomic-ptr-plus/ |
1238 | " | 1263 | } |
1239 | } | 1264 | } |
1240 | 1265 | ||
1241 | @unpublished{JosephSeigh2005b | 1266 | @unpublished{JosephSeigh2005b |
@@ -1247,9 +1272,9 @@ Data Structures" | |||
1247 | ,note="Available: | 1272 | ,note="Available: |
1248 | \url{http://sourceforge.net/projects/atomic-ptr-plus/} | 1273 | \url{http://sourceforge.net/projects/atomic-ptr-plus/} |
1249 | [Viewed August 8, 2005]" | 1274 | [Viewed August 8, 2005]" |
1250 | ,annotation=" | 1275 | ,annotation={ |
1251 | Joe Seigh's atomic-ptr-plus project. | 1276 | Joe Seigh's atomic-ptr-plus project. |
1252 | " | 1277 | } |
1253 | } | 1278 | } |
1254 | 1279 | ||
1255 | @unpublished{PaulMcKenney2005c | 1280 | @unpublished{PaulMcKenney2005c |
@@ -1261,9 +1286,9 @@ Data Structures" | |||
1261 | ,note="Available: | 1286 | ,note="Available: |
1262 | \url{http://lkml.org/lkml/2005/8/1/155} | 1287 | \url{http://lkml.org/lkml/2005/8/1/155} |
1263 | [Viewed March 14, 2006]" | 1288 | [Viewed March 14, 2006]" |
1264 | ,annotation=" | 1289 | ,annotation={ |
1265 | First operating counter-based realtime RCU patch posted to LKML. | 1290 | First operating counter-based realtime RCU patch posted to LKML. |
1266 | " | 1291 | } |
1267 | } | 1292 | } |
1268 | 1293 | ||
1269 | @unpublished{PaulMcKenney2005d | 1294 | @unpublished{PaulMcKenney2005d |
@@ -1275,11 +1300,11 @@ Data Structures" | |||
1275 | ,note="Available: | 1300 | ,note="Available: |
1276 | \url{http://lkml.org/lkml/2005/8/8/108} | 1301 | \url{http://lkml.org/lkml/2005/8/8/108} |
1277 | [Viewed March 14, 2006]" | 1302 | [Viewed March 14, 2006]" |
1278 | ,annotation=" | 1303 | ,annotation={ |
1279 | First operating counter-based realtime RCU patch posted to LKML, | 1304 | First operating counter-based realtime RCU patch posted to LKML, |
1280 | but fixed so that various unusual combinations of configuration | 1305 | but fixed so that various unusual combinations of configuration |
1281 | parameters all function properly. | 1306 | parameters all function properly. |
1282 | " | 1307 | } |
1283 | } | 1308 | } |
1284 | 1309 | ||
1285 | @unpublished{PaulMcKenney2005rcutorture | 1310 | @unpublished{PaulMcKenney2005rcutorture |
@@ -1291,9 +1316,25 @@ Data Structures" | |||
1291 | ,note="Available: | 1316 | ,note="Available: |
1292 | \url{http://lkml.org/lkml/2005/10/1/70} | 1317 | \url{http://lkml.org/lkml/2005/10/1/70} |
1293 | [Viewed March 14, 2006]" | 1318 | [Viewed March 14, 2006]" |
1294 | ,annotation=" | 1319 | ,annotation={ |
1295 | First rcutorture patch. | 1320 | First rcutorture patch. |
1296 | " | 1321 | } |
1322 | } | ||
1323 | |||
1324 | @unpublished{DavidSMiller2006HashedLocking | ||
1325 | ,Author="David S. Miller" | ||
1326 | ,Title="Re: [{PATCH}, {RFC}] {RCU} : {OOM} avoidance and lower latency" | ||
1327 | ,month="January" | ||
1328 | ,day="6" | ||
1329 | ,year="2006" | ||
1330 | ,note="Available: | ||
1331 | \url{https://lkml.org/lkml/2006/1/7/22} | ||
1332 | [Viewed February 29, 2012]" | ||
1333 | ,annotation={ | ||
1334 | David Miller's view on hashed arrays of locks: used to really | ||
1335 | like it, but time he saw an opportunity for this technique, | ||
1336 | something else always proved superior. Partitioning or RCU. ;-) | ||
1337 | } | ||
1297 | } | 1338 | } |
1298 | 1339 | ||
1299 | @conference{ThomasEHart2006a | 1340 | @conference{ThomasEHart2006a |
@@ -1309,10 +1350,10 @@ Distributed Processing Symposium" | |||
1309 | ,note="Available: | 1350 | ,note="Available: |
1310 | \url{http://www.rdrop.com/users/paulmck/RCU/hart_ipdps06.pdf} | 1351 | \url{http://www.rdrop.com/users/paulmck/RCU/hart_ipdps06.pdf} |
1311 | [Viewed April 28, 2008]" | 1352 | [Viewed April 28, 2008]" |
1312 | ,annotation=" | 1353 | ,annotation={ |
1313 | Compares QSBR, HPBR, EBR, and lock-free reference counting. | 1354 | Compares QSBR, HPBR, EBR, and lock-free reference counting. |
1314 | http://www.cs.toronto.edu/~tomhart/perflab/ipdps06.tgz | 1355 | http://www.cs.toronto.edu/~tomhart/perflab/ipdps06.tgz |
1315 | " | 1356 | } |
1316 | } | 1357 | } |
1317 | 1358 | ||
1318 | @unpublished{NickPiggin2006radixtree | 1359 | @unpublished{NickPiggin2006radixtree |
@@ -1324,9 +1365,9 @@ Distributed Processing Symposium" | |||
1324 | ,note="Available: | 1365 | ,note="Available: |
1325 | \url{http://lkml.org/lkml/2006/6/20/238} | 1366 | \url{http://lkml.org/lkml/2006/6/20/238} |
1326 | [Viewed March 25, 2008]" | 1367 | [Viewed March 25, 2008]" |
1327 | ,annotation=" | 1368 | ,annotation={ |
1328 | RCU-protected radix tree. | 1369 | RCU-protected radix tree. |
1329 | " | 1370 | } |
1330 | } | 1371 | } |
1331 | 1372 | ||
1332 | @Conference{PaulEMcKenney2006b | 1373 | @Conference{PaulEMcKenney2006b |
@@ -1341,9 +1382,9 @@ Suparna Bhattacharya" | |||
1341 | \url{http://www.linuxsymposium.org/2006/view_abstract.php?content_key=184} | 1382 | \url{http://www.linuxsymposium.org/2006/view_abstract.php?content_key=184} |
1342 | \url{http://www.rdrop.com/users/paulmck/RCU/OLSrtRCU.2006.08.11a.pdf} | 1383 | \url{http://www.rdrop.com/users/paulmck/RCU/OLSrtRCU.2006.08.11a.pdf} |
1343 | [Viewed January 1, 2007]" | 1384 | [Viewed January 1, 2007]" |
1344 | ,annotation=" | 1385 | ,annotation={ |
1345 | Described how to improve the -rt implementation of realtime RCU. | 1386 | Described how to improve the -rt implementation of realtime RCU. |
1346 | " | 1387 | } |
1347 | } | 1388 | } |
1348 | 1389 | ||
1349 | @unpublished{WikipediaRCU | 1390 | @unpublished{WikipediaRCU |
@@ -1354,12 +1395,11 @@ Canis Rufus and Zoicon5 and Anome and Hal Eisen" | |||
1354 | ,month="July" | 1395 | ,month="July" |
1355 | ,day="8" | 1396 | ,day="8" |
1356 | ,year="2006" | 1397 | ,year="2006" |
1357 | ,note="Available: | 1398 | ,note="\url{http://en.wikipedia.org/wiki/Read-copy-update}" |
1358 | \url{http://en.wikipedia.org/wiki/Read-copy-update} | 1399 | ,annotation={ |
1359 | [Viewed August 21, 2006]" | ||
1360 | ,annotation=" | ||
1361 | Wikipedia RCU page as of July 8 2006. | 1400 | Wikipedia RCU page as of July 8 2006. |
1362 | " | 1401 | [Viewed August 21, 2006] |
1402 | } | ||
1363 | } | 1403 | } |
1364 | 1404 | ||
1365 | @Conference{NickPiggin2006LocklessPageCache | 1405 | @Conference{NickPiggin2006LocklessPageCache |
@@ -1372,9 +1412,9 @@ Canis Rufus and Zoicon5 and Anome and Hal Eisen" | |||
1372 | ,note="Available: | 1412 | ,note="Available: |
1373 | \url{http://www.linuxsymposium.org/2006/view_abstract.php?content_key=184} | 1413 | \url{http://www.linuxsymposium.org/2006/view_abstract.php?content_key=184} |
1374 | [Viewed January 11, 2009]" | 1414 | [Viewed January 11, 2009]" |
1375 | ,annotation=" | 1415 | ,annotation={ |
1376 | Uses RCU-protected radix tree for a lockless page cache. | 1416 | Uses RCU-protected radix tree for a lockless page cache. |
1377 | " | 1417 | } |
1378 | } | 1418 | } |
1379 | 1419 | ||
1380 | @unpublished{PaulEMcKenney2006c | 1420 | @unpublished{PaulEMcKenney2006c |
@@ -1388,9 +1428,9 @@ Canis Rufus and Zoicon5 and Anome and Hal Eisen" | |||
1388 | Revised: | 1428 | Revised: |
1389 | \url{http://www.rdrop.com/users/paulmck/RCU/srcu.2007.01.14a.pdf} | 1429 | \url{http://www.rdrop.com/users/paulmck/RCU/srcu.2007.01.14a.pdf} |
1390 | [Viewed August 21, 2006]" | 1430 | [Viewed August 21, 2006]" |
1391 | ,annotation=" | 1431 | ,annotation={ |
1392 | LWN article introducing SRCU. | 1432 | LWN article introducing SRCU. |
1393 | " | 1433 | } |
1394 | } | 1434 | } |
1395 | 1435 | ||
1396 | @unpublished{RobertOlsson2006a | 1436 | @unpublished{RobertOlsson2006a |
@@ -1399,12 +1439,11 @@ Revised: | |||
1399 | ,month="August" | 1439 | ,month="August" |
1400 | ,day="18" | 1440 | ,day="18" |
1401 | ,year="2006" | 1441 | ,year="2006" |
1402 | ,note="Available: | 1442 | ,note="\url{http://www.nada.kth.se/~snilsson/publications/TRASH/trash.pdf}" |
1403 | \url{http://www.nada.kth.se/~snilsson/publications/TRASH/trash.pdf} | 1443 | ,annotation={ |
1404 | [Viewed March 4, 2011]" | ||
1405 | ,annotation=" | ||
1406 | RCU-protected dynamic trie-hash combination. | 1444 | RCU-protected dynamic trie-hash combination. |
1407 | " | 1445 | [Viewed March 4, 2011] |
1446 | } | ||
1408 | } | 1447 | } |
1409 | 1448 | ||
1410 | @unpublished{ChristophHellwig2006RCU2SRCU | 1449 | @unpublished{ChristophHellwig2006RCU2SRCU |
@@ -1426,10 +1465,10 @@ Revised: | |||
1426 | ,note="Available: | 1465 | ,note="Available: |
1427 | \url{http://www.rdrop.com/users/paulmck/RCU/linuxusage.html} | 1466 | \url{http://www.rdrop.com/users/paulmck/RCU/linuxusage.html} |
1428 | [Viewed January 14, 2007]" | 1467 | [Viewed January 14, 2007]" |
1429 | ,annotation=" | 1468 | ,annotation={ |
1430 | Paul McKenney's RCU page showing graphs plotting Linux-kernel | 1469 | Paul McKenney's RCU page showing graphs plotting Linux-kernel |
1431 | usage of RCU. | 1470 | usage of RCU. |
1432 | " | 1471 | } |
1433 | } | 1472 | } |
1434 | 1473 | ||
1435 | @unpublished{PaulEMcKenneyRCUusageRawDataPage | 1474 | @unpublished{PaulEMcKenneyRCUusageRawDataPage |
@@ -1440,10 +1479,10 @@ Revised: | |||
1440 | ,note="Available: | 1479 | ,note="Available: |
1441 | \url{http://www.rdrop.com/users/paulmck/RCU/linuxusage/rculocktab.html} | 1480 | \url{http://www.rdrop.com/users/paulmck/RCU/linuxusage/rculocktab.html} |
1442 | [Viewed January 14, 2007]" | 1481 | [Viewed January 14, 2007]" |
1443 | ,annotation=" | 1482 | ,annotation={ |
1444 | Paul McKenney's RCU page showing Linux usage of RCU in tabular | 1483 | Paul McKenney's RCU page showing Linux usage of RCU in tabular |
1445 | form, with links to corresponding cscope databases. | 1484 | form, with links to corresponding cscope databases. |
1446 | " | 1485 | } |
1447 | } | 1486 | } |
1448 | 1487 | ||
1449 | @unpublished{GauthamShenoy2006RCUrwlock | 1488 | @unpublished{GauthamShenoy2006RCUrwlock |
@@ -1455,13 +1494,13 @@ Revised: | |||
1455 | ,note="Available: | 1494 | ,note="Available: |
1456 | \url{http://lkml.org/lkml/2006/10/26/73} | 1495 | \url{http://lkml.org/lkml/2006/10/26/73} |
1457 | [Viewed January 26, 2009]" | 1496 | [Viewed January 26, 2009]" |
1458 | ,annotation=" | 1497 | ,annotation={ |
1459 | RCU-based reader-writer lock that allows readers to proceed with | 1498 | RCU-based reader-writer lock that allows readers to proceed with |
1460 | no memory barriers or atomic instruction in absence of writers. | 1499 | no memory barriers or atomic instruction in absence of writers. |
1461 | If writer do show up, readers must of course wait as required by | 1500 | If writer do show up, readers must of course wait as required by |
1462 | the semantics of reader-writer locking. This is a recursive | 1501 | the semantics of reader-writer locking. This is a recursive |
1463 | lock. | 1502 | lock. |
1464 | " | 1503 | } |
1465 | } | 1504 | } |
1466 | 1505 | ||
1467 | @unpublished{JensAxboe2006SlowSRCU | 1506 | @unpublished{JensAxboe2006SlowSRCU |
@@ -1474,11 +1513,11 @@ Revised: | |||
1474 | ,note="Available: | 1513 | ,note="Available: |
1475 | \url{http://lkml.org/lkml/2006/11/17/56} | 1514 | \url{http://lkml.org/lkml/2006/11/17/56} |
1476 | [Viewed May 28, 2007]" | 1515 | [Viewed May 28, 2007]" |
1477 | ,annotation=" | 1516 | ,annotation={ |
1478 | SRCU's grace periods are too slow for Jens, even after a | 1517 | SRCU's grace periods are too slow for Jens, even after a |
1479 | factor-of-three speedup. | 1518 | factor-of-three speedup. |
1480 | Sped-up version of SRCU at http://lkml.org/lkml/2006/11/17/359. | 1519 | Sped-up version of SRCU at http://lkml.org/lkml/2006/11/17/359. |
1481 | " | 1520 | } |
1482 | } | 1521 | } |
1483 | 1522 | ||
1484 | @unpublished{OlegNesterov2006QRCU | 1523 | @unpublished{OlegNesterov2006QRCU |
@@ -1491,10 +1530,10 @@ Revised: | |||
1491 | ,note="Available: | 1530 | ,note="Available: |
1492 | \url{http://lkml.org/lkml/2006/11/19/69} | 1531 | \url{http://lkml.org/lkml/2006/11/19/69} |
1493 | [Viewed May 28, 2007]" | 1532 | [Viewed May 28, 2007]" |
1494 | ,annotation=" | 1533 | ,annotation={ |
1495 | First cut of QRCU. Expanded/corrected versions followed. | 1534 | First cut of QRCU. Expanded/corrected versions followed. |
1496 | Used to be OlegNesterov2007QRCU, now time-corrected. | 1535 | Used to be OlegNesterov2007QRCU, now time-corrected. |
1497 | " | 1536 | } |
1498 | } | 1537 | } |
1499 | 1538 | ||
1500 | @unpublished{OlegNesterov2006aQRCU | 1539 | @unpublished{OlegNesterov2006aQRCU |
@@ -1506,10 +1545,10 @@ Revised: | |||
1506 | ,note="Available: | 1545 | ,note="Available: |
1507 | \url{http://lkml.org/lkml/2006/11/29/330} | 1546 | \url{http://lkml.org/lkml/2006/11/29/330} |
1508 | [Viewed November 26, 2008]" | 1547 | [Viewed November 26, 2008]" |
1509 | ,annotation=" | 1548 | ,annotation={ |
1510 | Expanded/corrected version of QRCU. | 1549 | Expanded/corrected version of QRCU. |
1511 | Used to be OlegNesterov2007aQRCU, now time-corrected. | 1550 | Used to be OlegNesterov2007aQRCU, now time-corrected. |
1512 | " | 1551 | } |
1513 | } | 1552 | } |
1514 | 1553 | ||
1515 | @unpublished{EvgeniyPolyakov2006RCUslowdown | 1554 | @unpublished{EvgeniyPolyakov2006RCUslowdown |
@@ -1521,10 +1560,10 @@ Revised: | |||
1521 | ,note="Available: | 1560 | ,note="Available: |
1522 | \url{http://www.ioremap.net/node/41} | 1561 | \url{http://www.ioremap.net/node/41} |
1523 | [Viewed October 28, 2008]" | 1562 | [Viewed October 28, 2008]" |
1524 | ,annotation=" | 1563 | ,annotation={ |
1525 | Using RCU as a pure delay leads to a 2.5x slowdown in skbs in | 1564 | Using RCU as a pure delay leads to a 2.5x slowdown in skbs in |
1526 | the Linux kernel. | 1565 | the Linux kernel. |
1527 | " | 1566 | } |
1528 | } | 1567 | } |
1529 | 1568 | ||
1530 | @inproceedings{ChrisMatthews2006ClusteredObjectsRCU | 1569 | @inproceedings{ChrisMatthews2006ClusteredObjectsRCU |
@@ -1541,7 +1580,8 @@ Revised: | |||
1541 | ,annotation={ | 1580 | ,annotation={ |
1542 | Uses K42's RCU-like functionality to manage clustered-object | 1581 | Uses K42's RCU-like functionality to manage clustered-object |
1543 | lifetimes. | 1582 | lifetimes. |
1544 | }} | 1583 | } |
1584 | } | ||
1545 | 1585 | ||
1546 | @article{DilmaDaSilva2006K42 | 1586 | @article{DilmaDaSilva2006K42 |
1547 | ,author = {Silva, Dilma Da and Krieger, Orran and Wisniewski, Robert W. and Waterland, Amos and Tam, David and Baumann, Andrew} | 1587 | ,author = {Silva, Dilma Da and Krieger, Orran and Wisniewski, Robert W. and Waterland, Amos and Tam, David and Baumann, Andrew} |
@@ -1557,7 +1597,8 @@ Revised: | |||
1557 | ,address = {New York, NY, USA} | 1597 | ,address = {New York, NY, USA} |
1558 | ,annotation={ | 1598 | ,annotation={ |
1559 | Describes relationship of K42 generations to RCU. | 1599 | Describes relationship of K42 generations to RCU. |
1560 | }} | 1600 | } |
1601 | } | ||
1561 | 1602 | ||
1562 | # CoreyMinyard2007list_splice_rcu | 1603 | # CoreyMinyard2007list_splice_rcu |
1563 | @unpublished{CoreyMinyard2007list:splice:rcu | 1604 | @unpublished{CoreyMinyard2007list:splice:rcu |
@@ -1569,9 +1610,9 @@ Revised: | |||
1569 | ,note="Available: | 1610 | ,note="Available: |
1570 | \url{http://lkml.org/lkml/2007/1/3/112} | 1611 | \url{http://lkml.org/lkml/2007/1/3/112} |
1571 | [Viewed May 28, 2007]" | 1612 | [Viewed May 28, 2007]" |
1572 | ,annotation=" | 1613 | ,annotation={ |
1573 | Patch for list_splice_rcu(). | 1614 | Patch for list_splice_rcu(). |
1574 | " | 1615 | } |
1575 | } | 1616 | } |
1576 | 1617 | ||
1577 | @unpublished{PaulEMcKenney2007rcubarrier | 1618 | @unpublished{PaulEMcKenney2007rcubarrier |
@@ -1583,9 +1624,9 @@ Revised: | |||
1583 | ,note="Available: | 1624 | ,note="Available: |
1584 | \url{http://lwn.net/Articles/217484/} | 1625 | \url{http://lwn.net/Articles/217484/} |
1585 | [Viewed November 22, 2007]" | 1626 | [Viewed November 22, 2007]" |
1586 | ,annotation=" | 1627 | ,annotation={ |
1587 | LWN article introducing the rcu_barrier() primitive. | 1628 | LWN article introducing the rcu_barrier() primitive. |
1588 | " | 1629 | } |
1589 | } | 1630 | } |
1590 | 1631 | ||
1591 | @unpublished{PeterZijlstra2007SyncBarrier | 1632 | @unpublished{PeterZijlstra2007SyncBarrier |
@@ -1597,10 +1638,10 @@ Revised: | |||
1597 | ,note="Available: | 1638 | ,note="Available: |
1598 | \url{http://lkml.org/lkml/2007/1/28/34} | 1639 | \url{http://lkml.org/lkml/2007/1/28/34} |
1599 | [Viewed March 27, 2008]" | 1640 | [Viewed March 27, 2008]" |
1600 | ,annotation=" | 1641 | ,annotation={ |
1601 | RCU-like implementation for frequent updaters and rare readers(!). | 1642 | RCU-like implementation for frequent updaters and rare readers(!). |
1602 | Subsumed into QRCU. Maybe... | 1643 | Subsumed into QRCU. Maybe... |
1603 | " | 1644 | } |
1604 | } | 1645 | } |
1605 | 1646 | ||
1606 | @unpublished{PaulEMcKenney2007BoostRCU | 1647 | @unpublished{PaulEMcKenney2007BoostRCU |
@@ -1609,14 +1650,13 @@ Revised: | |||
1609 | ,month="February" | 1650 | ,month="February" |
1610 | ,day="5" | 1651 | ,day="5" |
1611 | ,year="2007" | 1652 | ,year="2007" |
1612 | ,note="Available: | 1653 | ,note="\url{http://lwn.net/Articles/220677/}" |
1613 | \url{http://lwn.net/Articles/220677/} | 1654 | ,annotation={ |
1614 | Revised: | ||
1615 | \url{http://www.rdrop.com/users/paulmck/RCU/RCUbooststate.2007.04.16a.pdf} | ||
1616 | [Viewed September 7, 2007]" | ||
1617 | ,annotation=" | ||
1618 | LWN article introducing RCU priority boosting. | 1655 | LWN article introducing RCU priority boosting. |
1619 | " | 1656 | Revised: |
1657 | http://www.rdrop.com/users/paulmck/RCU/RCUbooststate.2007.04.16a.pdf | ||
1658 | [Viewed September 7, 2007] | ||
1659 | } | ||
1620 | } | 1660 | } |
1621 | 1661 | ||
1622 | @unpublished{PaulMcKenney2007QRCUpatch | 1662 | @unpublished{PaulMcKenney2007QRCUpatch |
@@ -1628,9 +1668,9 @@ Revised: | |||
1628 | ,note="Available: | 1668 | ,note="Available: |
1629 | \url{http://lkml.org/lkml/2007/2/25/18} | 1669 | \url{http://lkml.org/lkml/2007/2/25/18} |
1630 | [Viewed March 27, 2008]" | 1670 | [Viewed March 27, 2008]" |
1631 | ,annotation=" | 1671 | ,annotation={ |
1632 | Patch for QRCU supplying lock-free fast path. | 1672 | Patch for QRCU supplying lock-free fast path. |
1633 | " | 1673 | } |
1634 | } | 1674 | } |
1635 | 1675 | ||
1636 | @article{JonathanAppavoo2007K42RCU | 1676 | @article{JonathanAppavoo2007K42RCU |
@@ -1647,7 +1687,8 @@ Revised: | |||
1647 | ,address = {New York, NY, USA} | 1687 | ,address = {New York, NY, USA} |
1648 | ,annotation={ | 1688 | ,annotation={ |
1649 | Role of RCU in K42. | 1689 | Role of RCU in K42. |
1650 | }} | 1690 | } |
1691 | } | ||
1651 | 1692 | ||
1652 | @conference{RobertOlsson2007Trash | 1693 | @conference{RobertOlsson2007Trash |
1653 | ,Author="Robert Olsson and Stefan Nilsson" | 1694 | ,Author="Robert Olsson and Stefan Nilsson" |
@@ -1658,9 +1699,9 @@ Revised: | |||
1658 | ,note="Available: | 1699 | ,note="Available: |
1659 | \url{http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=4281239} | 1700 | \url{http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=4281239} |
1660 | [Viewed October 1, 2010]" | 1701 | [Viewed October 1, 2010]" |
1661 | ,annotation=" | 1702 | ,annotation={ |
1662 | RCU-protected dynamic trie-hash combination. | 1703 | RCU-protected dynamic trie-hash combination. |
1663 | " | 1704 | } |
1664 | } | 1705 | } |
1665 | 1706 | ||
1666 | @conference{PeterZijlstra2007ConcurrentPagecacheRCU | 1707 | @conference{PeterZijlstra2007ConcurrentPagecacheRCU |
@@ -1673,10 +1714,10 @@ Revised: | |||
1673 | ,note="Available: | 1714 | ,note="Available: |
1674 | \url{http://ols.108.redhat.com/2007/Reprints/zijlstra-Reprint.pdf} | 1715 | \url{http://ols.108.redhat.com/2007/Reprints/zijlstra-Reprint.pdf} |
1675 | [Viewed April 14, 2008]" | 1716 | [Viewed April 14, 2008]" |
1676 | ,annotation=" | 1717 | ,annotation={ |
1677 | Page-cache modifications permitting RCU readers and concurrent | 1718 | Page-cache modifications permitting RCU readers and concurrent |
1678 | updates. | 1719 | updates. |
1679 | " | 1720 | } |
1680 | } | 1721 | } |
1681 | 1722 | ||
1682 | @unpublished{PaulEMcKenney2007whatisRCU | 1723 | @unpublished{PaulEMcKenney2007whatisRCU |
@@ -1701,11 +1742,11 @@ Revised: | |||
1701 | ,note="Available: | 1742 | ,note="Available: |
1702 | \url{http://lwn.net/Articles/243851/} | 1743 | \url{http://lwn.net/Articles/243851/} |
1703 | [Viewed September 8, 2007]" | 1744 | [Viewed September 8, 2007]" |
1704 | ,annotation=" | 1745 | ,annotation={ |
1705 | LWN article describing Promela and spin, and also using Oleg | 1746 | LWN article describing Promela and spin, and also using Oleg |
1706 | Nesterov's QRCU as an example (with Paul McKenney's fastpath). | 1747 | Nesterov's QRCU as an example (with Paul McKenney's fastpath). |
1707 | Merged patch at: http://lkml.org/lkml/2007/2/25/18 | 1748 | Merged patch at: http://lkml.org/lkml/2007/2/25/18 |
1708 | " | 1749 | } |
1709 | } | 1750 | } |
1710 | 1751 | ||
1711 | @unpublished{PaulEMcKenney2007WG21DDOatomics | 1752 | @unpublished{PaulEMcKenney2007WG21DDOatomics |
@@ -1714,12 +1755,12 @@ Revised: | |||
1714 | ,month="August" | 1755 | ,month="August" |
1715 | ,day="3" | 1756 | ,day="3" |
1716 | ,year="2007" | 1757 | ,year="2007" |
1717 | ,note="Preprint: | 1758 | ,note="Available: |
1718 | \url{http://open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2664.htm} | 1759 | \url{http://open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2664.htm} |
1719 | [Viewed December 7, 2009]" | 1760 | [Viewed December 7, 2009]" |
1720 | ,annotation=" | 1761 | ,annotation={ |
1721 | RCU for C++, parts 1 and 2. | 1762 | RCU for C++, parts 1 and 2. |
1722 | " | 1763 | } |
1723 | } | 1764 | } |
1724 | 1765 | ||
1725 | @unpublished{PaulEMcKenney2007WG21DDOannotation | 1766 | @unpublished{PaulEMcKenney2007WG21DDOannotation |
@@ -1728,12 +1769,12 @@ Revised: | |||
1728 | ,month="September" | 1769 | ,month="September" |
1729 | ,day="18" | 1770 | ,day="18" |
1730 | ,year="2008" | 1771 | ,year="2008" |
1731 | ,note="Preprint: | 1772 | ,note="Available: |
1732 | \url{http://open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2782.htm} | 1773 | \url{http://open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2782.htm} |
1733 | [Viewed December 7, 2009]" | 1774 | [Viewed December 7, 2009]" |
1734 | ,annotation=" | 1775 | ,annotation={ |
1735 | RCU for C++, part 2, updated many times. | 1776 | RCU for C++, part 2, updated many times. |
1736 | " | 1777 | } |
1737 | } | 1778 | } |
1738 | 1779 | ||
1739 | @unpublished{PaulEMcKenney2007PreemptibleRCUPatch | 1780 | @unpublished{PaulEMcKenney2007PreemptibleRCUPatch |
@@ -1745,10 +1786,10 @@ Revised: | |||
1745 | ,note="Available: | 1786 | ,note="Available: |
1746 | \url{http://lkml.org/lkml/2007/9/10/213} | 1787 | \url{http://lkml.org/lkml/2007/9/10/213} |
1747 | [Viewed October 25, 2007]" | 1788 | [Viewed October 25, 2007]" |
1748 | ,annotation=" | 1789 | ,annotation={ |
1749 | Final patch for preemptable RCU to -rt. (Later patches were | 1790 | Final patch for preemptable RCU to -rt. (Later patches were |
1750 | to mainline, eventually incorporated.) | 1791 | to mainline, eventually incorporated.) |
1751 | " | 1792 | } |
1752 | } | 1793 | } |
1753 | 1794 | ||
1754 | @unpublished{PaulEMcKenney2007PreemptibleRCU | 1795 | @unpublished{PaulEMcKenney2007PreemptibleRCU |
@@ -1760,9 +1801,9 @@ Revised: | |||
1760 | ,note="Available: | 1801 | ,note="Available: |
1761 | \url{http://lwn.net/Articles/253651/} | 1802 | \url{http://lwn.net/Articles/253651/} |
1762 | [Viewed October 25, 2007]" | 1803 | [Viewed October 25, 2007]" |
1763 | ,annotation=" | 1804 | ,annotation={ |
1764 | LWN article describing the design of preemptible RCU. | 1805 | LWN article describing the design of preemptible RCU. |
1765 | " | 1806 | } |
1766 | } | 1807 | } |
1767 | 1808 | ||
1768 | @article{ThomasEHart2007a | 1809 | @article{ThomasEHart2007a |
@@ -1783,6 +1824,7 @@ Revised: | |||
1783 | } | 1824 | } |
1784 | } | 1825 | } |
1785 | 1826 | ||
1827 | # MathieuDesnoyers2007call_rcu_schedNeeded | ||
1786 | @unpublished{MathieuDesnoyers2007call:rcu:schedNeeded | 1828 | @unpublished{MathieuDesnoyers2007call:rcu:schedNeeded |
1787 | ,Author="Mathieu Desnoyers" | 1829 | ,Author="Mathieu Desnoyers" |
1788 | ,Title="Re: [patch 1/2] {Linux} Kernel Markers - Support Multiple Probes" | 1830 | ,Title="Re: [patch 1/2] {Linux} Kernel Markers - Support Multiple Probes" |
@@ -1792,9 +1834,9 @@ Revised: | |||
1792 | ,note="Available: | 1834 | ,note="Available: |
1793 | \url{http://lkml.org/lkml/2007/12/20/244} | 1835 | \url{http://lkml.org/lkml/2007/12/20/244} |
1794 | [Viewed March 27, 2008]" | 1836 | [Viewed March 27, 2008]" |
1795 | ,annotation=" | 1837 | ,annotation={ |
1796 | Request for call_rcu_sched() and rcu_barrier_sched(). | 1838 | Request for call_rcu_sched() and rcu_barrier_sched(). |
1797 | " | 1839 | } |
1798 | } | 1840 | } |
1799 | 1841 | ||
1800 | 1842 | ||
@@ -1815,11 +1857,11 @@ Revised: | |||
1815 | ,note="Available: | 1857 | ,note="Available: |
1816 | \url{http://lwn.net/Articles/262464/} | 1858 | \url{http://lwn.net/Articles/262464/} |
1817 | [Viewed December 27, 2007]" | 1859 | [Viewed December 27, 2007]" |
1818 | ,annotation=" | 1860 | ,annotation={ |
1819 | Lays out the three basic components of RCU: (1) publish-subscribe, | 1861 | Lays out the three basic components of RCU: (1) publish-subscribe, |
1820 | (2) wait for pre-existing readers to complete, and (2) maintain | 1862 | (2) wait for pre-existing readers to complete, and (2) maintain |
1821 | multiple versions. | 1863 | multiple versions. |
1822 | " | 1864 | } |
1823 | } | 1865 | } |
1824 | 1866 | ||
1825 | @unpublished{PaulEMcKenney2008WhatIsRCUUsage | 1867 | @unpublished{PaulEMcKenney2008WhatIsRCUUsage |
@@ -1831,7 +1873,7 @@ Revised: | |||
1831 | ,note="Available: | 1873 | ,note="Available: |
1832 | \url{http://lwn.net/Articles/263130/} | 1874 | \url{http://lwn.net/Articles/263130/} |
1833 | [Viewed January 4, 2008]" | 1875 | [Viewed January 4, 2008]" |
1834 | ,annotation=" | 1876 | ,annotation={ |
1835 | Lays out six uses of RCU: | 1877 | Lays out six uses of RCU: |
1836 | 1. RCU is a Reader-Writer Lock Replacement | 1878 | 1. RCU is a Reader-Writer Lock Replacement |
1837 | 2. RCU is a Restricted Reference-Counting Mechanism | 1879 | 2. RCU is a Restricted Reference-Counting Mechanism |
@@ -1839,7 +1881,7 @@ Revised: | |||
1839 | 4. RCU is a Poor Man's Garbage Collector | 1881 | 4. RCU is a Poor Man's Garbage Collector |
1840 | 5. RCU is a Way of Providing Existence Guarantees | 1882 | 5. RCU is a Way of Providing Existence Guarantees |
1841 | 6. RCU is a Way of Waiting for Things to Finish | 1883 | 6. RCU is a Way of Waiting for Things to Finish |
1842 | " | 1884 | } |
1843 | } | 1885 | } |
1844 | 1886 | ||
1845 | @unpublished{PaulEMcKenney2008WhatIsRCUAPI | 1887 | @unpublished{PaulEMcKenney2008WhatIsRCUAPI |
@@ -1851,10 +1893,10 @@ Revised: | |||
1851 | ,note="Available: | 1893 | ,note="Available: |
1852 | \url{http://lwn.net/Articles/264090/} | 1894 | \url{http://lwn.net/Articles/264090/} |
1853 | [Viewed January 10, 2008]" | 1895 | [Viewed January 10, 2008]" |
1854 | ,annotation=" | 1896 | ,annotation={ |
1855 | Gives an overview of the Linux-kernel RCU API and a brief annotated RCU | 1897 | Gives an overview of the Linux-kernel RCU API and a brief annotated RCU |
1856 | bibliography. | 1898 | bibliography. |
1857 | " | 1899 | } |
1858 | } | 1900 | } |
1859 | 1901 | ||
1860 | # | 1902 | # |
@@ -1872,10 +1914,10 @@ Revised: | |||
1872 | ,note="Available: | 1914 | ,note="Available: |
1873 | \url{http://lkml.org/lkml/2008/1/29/208} | 1915 | \url{http://lkml.org/lkml/2008/1/29/208} |
1874 | [Viewed March 27, 2008]" | 1916 | [Viewed March 27, 2008]" |
1875 | ,annotation=" | 1917 | ,annotation={ |
1876 | Patch that prevents preemptible RCU from unnecessarily waking | 1918 | Patch that prevents preemptible RCU from unnecessarily waking |
1877 | up dynticks-idle CPUs. | 1919 | up dynticks-idle CPUs. |
1878 | " | 1920 | } |
1879 | } | 1921 | } |
1880 | 1922 | ||
1881 | @unpublished{PaulEMcKenney2008LKMLDependencyOrdering | 1923 | @unpublished{PaulEMcKenney2008LKMLDependencyOrdering |
@@ -1887,9 +1929,9 @@ Revised: | |||
1887 | ,note="Available: | 1929 | ,note="Available: |
1888 | \url{http://lkml.org/lkml/2008/2/2/255} | 1930 | \url{http://lkml.org/lkml/2008/2/2/255} |
1889 | [Viewed October 18, 2008]" | 1931 | [Viewed October 18, 2008]" |
1890 | ,annotation=" | 1932 | ,annotation={ |
1891 | Explanation of compilers violating dependency ordering. | 1933 | Explanation of compilers violating dependency ordering. |
1892 | " | 1934 | } |
1893 | } | 1935 | } |
1894 | 1936 | ||
1895 | @Conference{PaulEMcKenney2008Beijing | 1937 | @Conference{PaulEMcKenney2008Beijing |
@@ -1916,24 +1958,26 @@ lot of {Linux} into your technology!!!" | |||
1916 | ,note="Available: | 1958 | ,note="Available: |
1917 | \url{http://lwn.net/Articles/279077/} | 1959 | \url{http://lwn.net/Articles/279077/} |
1918 | [Viewed April 24, 2008]" | 1960 | [Viewed April 24, 2008]" |
1919 | ,annotation=" | 1961 | ,annotation={ |
1920 | Describes use of Promela and Spin to validate (and fix!) the | 1962 | Describes use of Promela and Spin to validate (and fix!) the |
1921 | dynticks/RCU interface. | 1963 | dynticks/RCU interface. |
1922 | " | 1964 | } |
1923 | } | 1965 | } |
1924 | 1966 | ||
1925 | @article{DinakarGuniguntala2008IBMSysJ | 1967 | @article{DinakarGuniguntala2008IBMSysJ |
1926 | ,author="D. Guniguntala and P. E. McKenney and J. Triplett and J. Walpole" | 1968 | ,author="D. Guniguntala and P. E. McKenney and J. Triplett and J. Walpole" |
1927 | ,title="The read-copy-update mechanism for supporting real-time applications on shared-memory multiprocessor systems with {Linux}" | 1969 | ,title="The read-copy-update mechanism for supporting real-time applications on shared-memory multiprocessor systems with {Linux}" |
1928 | ,Year="2008" | 1970 | ,Year="2008" |
1929 | ,Month="April-June" | 1971 | ,Month="May" |
1930 | ,journal="IBM Systems Journal" | 1972 | ,journal="IBM Systems Journal" |
1931 | ,volume="47" | 1973 | ,volume="47" |
1932 | ,number="2" | 1974 | ,number="2" |
1933 | ,pages="221-236" | 1975 | ,pages="221-236" |
1934 | ,annotation=" | 1976 | ,annotation={ |
1935 | RCU, realtime RCU, sleepable RCU, performance. | 1977 | RCU, realtime RCU, sleepable RCU, performance. |
1936 | " | 1978 | http://www.research.ibm.com/journal/sj/472/guniguntala.pdf |
1979 | [Viewed April 24, 2008] | ||
1980 | } | ||
1937 | } | 1981 | } |
1938 | 1982 | ||
1939 | @unpublished{LaiJiangshan2008NewClassicAlgorithm | 1983 | @unpublished{LaiJiangshan2008NewClassicAlgorithm |
@@ -1945,11 +1989,11 @@ lot of {Linux} into your technology!!!" | |||
1945 | ,note="Available: | 1989 | ,note="Available: |
1946 | \url{http://lkml.org/lkml/2008/6/2/539} | 1990 | \url{http://lkml.org/lkml/2008/6/2/539} |
1947 | [Viewed December 10, 2008]" | 1991 | [Viewed December 10, 2008]" |
1948 | ,annotation=" | 1992 | ,annotation={ |
1949 | Updated RCU classic algorithm. Introduced multi-tailed list | 1993 | Updated RCU classic algorithm. Introduced multi-tailed list |
1950 | for RCU callbacks and also pulling common code into | 1994 | for RCU callbacks and also pulling common code into |
1951 | __call_rcu(). | 1995 | __call_rcu(). |
1952 | " | 1996 | } |
1953 | } | 1997 | } |
1954 | 1998 | ||
1955 | @article{PaulEMcKenney2008RCUOSR | 1999 | @article{PaulEMcKenney2008RCUOSR |
@@ -1966,6 +2010,7 @@ lot of {Linux} into your technology!!!" | |||
1966 | ,address="New York, NY, USA" | 2010 | ,address="New York, NY, USA" |
1967 | ,annotation={ | 2011 | ,annotation={ |
1968 | Linux changed RCU to a far greater degree than RCU has changed Linux. | 2012 | Linux changed RCU to a far greater degree than RCU has changed Linux. |
2013 | http://portal.acm.org/citation.cfm?doid=1400097.1400099 | ||
1969 | } | 2014 | } |
1970 | } | 2015 | } |
1971 | 2016 | ||
@@ -1978,10 +2023,10 @@ lot of {Linux} into your technology!!!" | |||
1978 | ,note="Available: | 2023 | ,note="Available: |
1979 | \url{http://lkml.org/lkml/2008/8/21/336} | 2024 | \url{http://lkml.org/lkml/2008/8/21/336} |
1980 | [Viewed December 8, 2008]" | 2025 | [Viewed December 8, 2008]" |
1981 | ,annotation=" | 2026 | ,annotation={ |
1982 | State-based RCU. One key thing that this patch does is to | 2027 | State-based RCU. One key thing that this patch does is to |
1983 | separate the dynticks handling of NMIs and IRQs. | 2028 | separate the dynticks handling of NMIs and IRQs. |
1984 | " | 2029 | } |
1985 | } | 2030 | } |
1986 | 2031 | ||
1987 | @unpublished{ManfredSpraul2008dyntickIRQNMI | 2032 | @unpublished{ManfredSpraul2008dyntickIRQNMI |
@@ -1993,12 +2038,13 @@ lot of {Linux} into your technology!!!" | |||
1993 | ,note="Available: | 2038 | ,note="Available: |
1994 | \url{http://lkml.org/lkml/2008/9/6/86} | 2039 | \url{http://lkml.org/lkml/2008/9/6/86} |
1995 | [Viewed December 8, 2008]" | 2040 | [Viewed December 8, 2008]" |
1996 | ,annotation=" | 2041 | ,annotation={ |
1997 | Manfred notes a fix required to my attempt to separate irq | 2042 | Manfred notes a fix required to my attempt to separate irq |
1998 | and NMI processing for hierarchical RCU's dynticks interface. | 2043 | and NMI processing for hierarchical RCU's dynticks interface. |
1999 | " | 2044 | } |
2000 | } | 2045 | } |
2001 | 2046 | ||
2047 | # Was PaulEMcKenney2011cyclicRCU | ||
2002 | @techreport{PaulEMcKenney2008cyclicRCU | 2048 | @techreport{PaulEMcKenney2008cyclicRCU |
2003 | ,author="Paul E. McKenney" | 2049 | ,author="Paul E. McKenney" |
2004 | ,title="Efficient Support of Consistent Cyclic Search With Read-Copy Update" | 2050 | ,title="Efficient Support of Consistent Cyclic Search With Read-Copy Update" |
@@ -2008,11 +2054,11 @@ lot of {Linux} into your technology!!!" | |||
2008 | ,number="US Patent 7,426,511" | 2054 | ,number="US Patent 7,426,511" |
2009 | ,month="September" | 2055 | ,month="September" |
2010 | ,pages="23" | 2056 | ,pages="23" |
2011 | ,annotation=" | 2057 | ,annotation={ |
2012 | Maintains an additional level of indirection to allow | 2058 | Maintains an additional level of indirection to allow |
2013 | readers to confine themselves to the desired snapshot of the | 2059 | readers to confine themselves to the desired snapshot of the |
2014 | data structure. Only permits one update at a time. | 2060 | data structure. Only permits one update at a time. |
2015 | " | 2061 | } |
2016 | } | 2062 | } |
2017 | 2063 | ||
2018 | @unpublished{PaulEMcKenney2008HierarchicalRCU | 2064 | @unpublished{PaulEMcKenney2008HierarchicalRCU |
@@ -2021,13 +2067,12 @@ lot of {Linux} into your technology!!!" | |||
2021 | ,month="November" | 2067 | ,month="November" |
2022 | ,day="3" | 2068 | ,day="3" |
2023 | ,year="2008" | 2069 | ,year="2008" |
2024 | ,note="Available: | 2070 | ,note="\url{http://lwn.net/Articles/305782/}" |
2025 | \url{http://lwn.net/Articles/305782/} | 2071 | ,annotation={ |
2026 | [Viewed November 6, 2008]" | ||
2027 | ,annotation=" | ||
2028 | RCU with combining-tree-based grace-period detection, | 2072 | RCU with combining-tree-based grace-period detection, |
2029 | permitting it to handle thousands of CPUs. | 2073 | permitting it to handle thousands of CPUs. |
2030 | " | 2074 | [Viewed November 6, 2008] |
2075 | } | ||
2031 | } | 2076 | } |
2032 | 2077 | ||
2033 | @unpublished{PaulEMcKenney2009BloatwatchRCU | 2078 | @unpublished{PaulEMcKenney2009BloatwatchRCU |
@@ -2039,10 +2084,10 @@ lot of {Linux} into your technology!!!" | |||
2039 | ,note="Available: | 2084 | ,note="Available: |
2040 | \url{http://lkml.org/lkml/2009/1/14/449} | 2085 | \url{http://lkml.org/lkml/2009/1/14/449} |
2041 | [Viewed January 15, 2009]" | 2086 | [Viewed January 15, 2009]" |
2042 | ,annotation=" | 2087 | ,annotation={ |
2043 | Small-footprint implementation of RCU for uniprocessor | 2088 | Small-footprint implementation of RCU for uniprocessor |
2044 | embedded applications -- and also for exposition purposes. | 2089 | embedded applications -- and also for exposition purposes. |
2045 | " | 2090 | } |
2046 | } | 2091 | } |
2047 | 2092 | ||
2048 | @conference{PaulEMcKenney2009MaliciousURCU | 2093 | @conference{PaulEMcKenney2009MaliciousURCU |
@@ -2055,9 +2100,9 @@ lot of {Linux} into your technology!!!" | |||
2055 | ,note="Available: | 2100 | ,note="Available: |
2056 | \url{http://www.rdrop.com/users/paulmck/RCU/urcutorture.2009.01.22a.pdf} | 2101 | \url{http://www.rdrop.com/users/paulmck/RCU/urcutorture.2009.01.22a.pdf} |
2057 | [Viewed February 2, 2009]" | 2102 | [Viewed February 2, 2009]" |
2058 | ,annotation=" | 2103 | ,annotation={ |
2059 | Realtime RCU and torture-testing RCU uses. | 2104 | Realtime RCU and torture-testing RCU uses. |
2060 | " | 2105 | } |
2061 | } | 2106 | } |
2062 | 2107 | ||
2063 | @unpublished{MathieuDesnoyers2009URCU | 2108 | @unpublished{MathieuDesnoyers2009URCU |
@@ -2066,16 +2111,14 @@ lot of {Linux} into your technology!!!" | |||
2066 | ,month="February" | 2111 | ,month="February" |
2067 | ,day="5" | 2112 | ,day="5" |
2068 | ,year="2009" | 2113 | ,year="2009" |
2069 | ,note="Available: | 2114 | ,note="\url{http://lttng.org/urcu}" |
2070 | \url{http://lkml.org/lkml/2009/2/5/572} | 2115 | ,annotation={ |
2071 | \url{http://lttng.org/urcu} | ||
2072 | [Viewed February 20, 2009]" | ||
2073 | ,annotation=" | ||
2074 | Mathieu Desnoyers's user-space RCU implementation. | 2116 | Mathieu Desnoyers's user-space RCU implementation. |
2075 | git://lttng.org/userspace-rcu.git | 2117 | git://lttng.org/userspace-rcu.git |
2076 | http://lttng.org/cgi-bin/gitweb.cgi?p=userspace-rcu.git | 2118 | http://lttng.org/cgi-bin/gitweb.cgi?p=userspace-rcu.git |
2077 | http://lttng.org/urcu | 2119 | http://lttng.org/urcu |
2078 | " | 2120 | http://lkml.org/lkml/2009/2/5/572 |
2121 | } | ||
2079 | } | 2122 | } |
2080 | 2123 | ||
2081 | @unpublished{PaulEMcKenney2009LWNBloatWatchRCU | 2124 | @unpublished{PaulEMcKenney2009LWNBloatWatchRCU |
@@ -2087,9 +2130,24 @@ lot of {Linux} into your technology!!!" | |||
2087 | ,note="Available: | 2130 | ,note="Available: |
2088 | \url{http://lwn.net/Articles/323929/} | 2131 | \url{http://lwn.net/Articles/323929/} |
2089 | [Viewed March 20, 2009]" | 2132 | [Viewed March 20, 2009]" |
2090 | ,annotation=" | 2133 | ,annotation={ |
2091 | Uniprocessor assumptions allow simplified RCU implementation. | 2134 | Uniprocessor assumptions allow simplified RCU implementation. |
2092 | " | 2135 | } |
2136 | } | ||
2137 | |||
2138 | @unpublished{EvgeniyPolyakov2009EllipticsNetwork | ||
2139 | ,Author="Evgeniy Polyakov" | ||
2140 | ,Title="The Elliptics Network" | ||
2141 | ,month="April" | ||
2142 | ,day="17" | ||
2143 | ,year="2009" | ||
2144 | ,note="Available: | ||
2145 | \url{http://www.ioremap.net/projects/elliptics} | ||
2146 | [Viewed April 30, 2009]" | ||
2147 | ,annotation={ | ||
2148 | Distributed hash table with transactions, using elliptic | ||
2149 | hash functions to distribute data. | ||
2150 | } | ||
2093 | } | 2151 | } |
2094 | 2152 | ||
2095 | @unpublished{PaulEMcKenney2009expeditedRCU | 2153 | @unpublished{PaulEMcKenney2009expeditedRCU |
@@ -2101,9 +2159,9 @@ lot of {Linux} into your technology!!!" | |||
2101 | ,note="Available: | 2159 | ,note="Available: |
2102 | \url{http://lkml.org/lkml/2009/6/25/306} | 2160 | \url{http://lkml.org/lkml/2009/6/25/306} |
2103 | [Viewed August 16, 2009]" | 2161 | [Viewed August 16, 2009]" |
2104 | ,annotation=" | 2162 | ,annotation={ |
2105 | First posting of expedited RCU to be accepted into -tip. | 2163 | First posting of expedited RCU to be accepted into -tip. |
2106 | " | 2164 | } |
2107 | } | 2165 | } |
2108 | 2166 | ||
2109 | @unpublished{PaulEMcKenney2009fastRTRCU | 2167 | @unpublished{PaulEMcKenney2009fastRTRCU |
@@ -2115,21 +2173,21 @@ lot of {Linux} into your technology!!!" | |||
2115 | ,note="Available: | 2173 | ,note="Available: |
2116 | \url{http://lkml.org/lkml/2009/7/23/294} | 2174 | \url{http://lkml.org/lkml/2009/7/23/294} |
2117 | [Viewed August 15, 2009]" | 2175 | [Viewed August 15, 2009]" |
2118 | ,annotation=" | 2176 | ,annotation={ |
2119 | First posting of simple and fast preemptable RCU. | 2177 | First posting of simple and fast preemptable RCU. |
2120 | " | 2178 | } |
2121 | } | 2179 | } |
2122 | 2180 | ||
2123 | @InProceedings{JoshTriplett2009RPHash | 2181 | @unpublished{JoshTriplett2009RPHash |
2124 | ,Author="Josh Triplett" | 2182 | ,Author="Josh Triplett" |
2125 | ,Title="Scalable concurrent hash tables via relativistic programming" | 2183 | ,Title="Scalable concurrent hash tables via relativistic programming" |
2126 | ,month="September" | 2184 | ,month="September" |
2127 | ,year="2009" | 2185 | ,year="2009" |
2128 | ,booktitle="Linux Plumbers Conference 2009" | 2186 | ,note="Linux Plumbers Conference presentation" |
2129 | ,annotation=" | 2187 | ,annotation={ |
2130 | RP fun with hash tables. | 2188 | RP fun with hash tables. |
2131 | See also JoshTriplett2010RPHash | 2189 | Superseded by JoshTriplett2010RPHash |
2132 | " | 2190 | } |
2133 | } | 2191 | } |
2134 | 2192 | ||
2135 | @phdthesis{MathieuDesnoyersPhD | 2193 | @phdthesis{MathieuDesnoyersPhD |
@@ -2154,9 +2212,9 @@ lot of {Linux} into your technology!!!" | |||
2154 | ,note="Available: | 2212 | ,note="Available: |
2155 | \url{http://wiki.cs.pdx.edu/rp/} | 2213 | \url{http://wiki.cs.pdx.edu/rp/} |
2156 | [Viewed December 9, 2009]" | 2214 | [Viewed December 9, 2009]" |
2157 | ,annotation=" | 2215 | ,annotation={ |
2158 | Main Relativistic Programming Wiki. | 2216 | Main Relativistic Programming Wiki. |
2159 | " | 2217 | } |
2160 | } | 2218 | } |
2161 | 2219 | ||
2162 | @conference{PaulEMcKenney2009DeterministicRCU | 2220 | @conference{PaulEMcKenney2009DeterministicRCU |
@@ -2180,9 +2238,9 @@ lot of {Linux} into your technology!!!" | |||
2180 | ,note="Available: | 2238 | ,note="Available: |
2181 | \url{http://paulmck.livejournal.com/14639.html} | 2239 | \url{http://paulmck.livejournal.com/14639.html} |
2182 | [Viewed June 4, 2010]" | 2240 | [Viewed June 4, 2010]" |
2183 | ,annotation=" | 2241 | ,annotation={ |
2184 | Day-one bug in Tree RCU that took forever to track down. | 2242 | Day-one bug in Tree RCU that took forever to track down. |
2185 | " | 2243 | } |
2186 | } | 2244 | } |
2187 | 2245 | ||
2188 | @unpublished{MathieuDesnoyers2009defer:rcu | 2246 | @unpublished{MathieuDesnoyers2009defer:rcu |
@@ -2193,10 +2251,10 @@ lot of {Linux} into your technology!!!" | |||
2193 | ,note="Available: | 2251 | ,note="Available: |
2194 | \url{http://lkml.org/lkml/2009/10/18/129} | 2252 | \url{http://lkml.org/lkml/2009/10/18/129} |
2195 | [Viewed December 29, 2009]" | 2253 | [Viewed December 29, 2009]" |
2196 | ,annotation=" | 2254 | ,annotation={ |
2197 | Mathieu proposed defer_rcu() with fixed-size per-thread pool | 2255 | Mathieu proposed defer_rcu() with fixed-size per-thread pool |
2198 | of RCU callbacks. | 2256 | of RCU callbacks. |
2199 | " | 2257 | } |
2200 | } | 2258 | } |
2201 | 2259 | ||
2202 | @unpublished{MathieuDesnoyers2009VerifPrePub | 2260 | @unpublished{MathieuDesnoyers2009VerifPrePub |
@@ -2205,10 +2263,10 @@ lot of {Linux} into your technology!!!" | |||
2205 | ,month="December" | 2263 | ,month="December" |
2206 | ,year="2009" | 2264 | ,year="2009" |
2207 | ,note="Submitted to IEEE TPDS" | 2265 | ,note="Submitted to IEEE TPDS" |
2208 | ,annotation=" | 2266 | ,annotation={ |
2209 | OOMem model for Mathieu's user-level RCU mechanical proof of | 2267 | OOMem model for Mathieu's user-level RCU mechanical proof of |
2210 | correctness. | 2268 | correctness. |
2211 | " | 2269 | } |
2212 | } | 2270 | } |
2213 | 2271 | ||
2214 | @unpublished{MathieuDesnoyers2009URCUPrePub | 2272 | @unpublished{MathieuDesnoyers2009URCUPrePub |
@@ -2216,15 +2274,15 @@ lot of {Linux} into your technology!!!" | |||
2216 | ,Title="User-Level Implementations of Read-Copy Update" | 2274 | ,Title="User-Level Implementations of Read-Copy Update" |
2217 | ,month="December" | 2275 | ,month="December" |
2218 | ,year="2010" | 2276 | ,year="2010" |
2219 | ,url=\url{http://www.computer.org/csdl/trans/td/2012/02/ttd2012020375-abs.html} | 2277 | ,url={\url{http://www.computer.org/csdl/trans/td/2012/02/ttd2012020375-abs.html}} |
2220 | ,annotation=" | 2278 | ,annotation={ |
2221 | RCU overview, desiderata, semi-formal semantics, user-level RCU | 2279 | RCU overview, desiderata, semi-formal semantics, user-level RCU |
2222 | usage scenarios, three classes of RCU implementation, wait-free | 2280 | usage scenarios, three classes of RCU implementation, wait-free |
2223 | RCU updates, RCU grace-period batching, update overhead, | 2281 | RCU updates, RCU grace-period batching, update overhead, |
2224 | http://www.rdrop.com/users/paulmck/RCU/urcu-main-accepted.2011.08.30a.pdf | 2282 | http://www.rdrop.com/users/paulmck/RCU/urcu-main-accepted.2011.08.30a.pdf |
2225 | http://www.rdrop.com/users/paulmck/RCU/urcu-supp-accepted.2011.08.30a.pdf | 2283 | http://www.rdrop.com/users/paulmck/RCU/urcu-supp-accepted.2011.08.30a.pdf |
2226 | Superseded by MathieuDesnoyers2012URCU. | 2284 | Superseded by MathieuDesnoyers2012URCU. |
2227 | " | 2285 | } |
2228 | } | 2286 | } |
2229 | 2287 | ||
2230 | @inproceedings{HariKannan2009DynamicAnalysisRCU | 2288 | @inproceedings{HariKannan2009DynamicAnalysisRCU |
@@ -2240,7 +2298,8 @@ lot of {Linux} into your technology!!!" | |||
2240 | ,address = {New York, NY, USA} | 2298 | ,address = {New York, NY, USA} |
2241 | ,annotation={ | 2299 | ,annotation={ |
2242 | Uses RCU to protect metadata used in dynamic analysis. | 2300 | Uses RCU to protect metadata used in dynamic analysis. |
2243 | }} | 2301 | } |
2302 | } | ||
2244 | 2303 | ||
2245 | @conference{PaulEMcKenney2010SimpleOptRCU | 2304 | @conference{PaulEMcKenney2010SimpleOptRCU |
2246 | ,Author="Paul E. McKenney" | 2305 | ,Author="Paul E. McKenney" |
@@ -2252,10 +2311,10 @@ lot of {Linux} into your technology!!!" | |||
2252 | ,note="Available: | 2311 | ,note="Available: |
2253 | \url{http://www.rdrop.com/users/paulmck/RCU/SimplicityThruOptimization.2010.01.21f.pdf} | 2312 | \url{http://www.rdrop.com/users/paulmck/RCU/SimplicityThruOptimization.2010.01.21f.pdf} |
2254 | [Viewed October 10, 2010]" | 2313 | [Viewed October 10, 2010]" |
2255 | ,annotation=" | 2314 | ,annotation={ |
2256 | TREE_PREEMPT_RCU optimizations greatly simplified the old | 2315 | TREE_PREEMPT_RCU optimizations greatly simplified the old |
2257 | PREEMPT_RCU implementation. | 2316 | PREEMPT_RCU implementation. |
2258 | " | 2317 | } |
2259 | } | 2318 | } |
2260 | 2319 | ||
2261 | @unpublished{PaulEMcKenney2010LockdepRCU | 2320 | @unpublished{PaulEMcKenney2010LockdepRCU |
@@ -2264,12 +2323,11 @@ lot of {Linux} into your technology!!!" | |||
2264 | ,month="February" | 2323 | ,month="February" |
2265 | ,year="2010" | 2324 | ,year="2010" |
2266 | ,day="1" | 2325 | ,day="1" |
2267 | ,note="Available: | 2326 | ,note="\url{https://lwn.net/Articles/371986/}" |
2268 | \url{https://lwn.net/Articles/371986/} | 2327 | ,annotation={ |
2269 | [Viewed June 4, 2010]" | ||
2270 | ,annotation=" | ||
2271 | CONFIG_PROVE_RCU, or at least an early version. | 2328 | CONFIG_PROVE_RCU, or at least an early version. |
2272 | " | 2329 | [Viewed June 4, 2010] |
2330 | } | ||
2273 | } | 2331 | } |
2274 | 2332 | ||
2275 | @unpublished{AviKivity2010KVM2RCU | 2333 | @unpublished{AviKivity2010KVM2RCU |
@@ -2280,10 +2338,10 @@ lot of {Linux} into your technology!!!" | |||
2280 | ,note="Available: | 2338 | ,note="Available: |
2281 | \url{http://www.mail-archive.com/kvm@vger.kernel.org/msg28640.html} | 2339 | \url{http://www.mail-archive.com/kvm@vger.kernel.org/msg28640.html} |
2282 | [Viewed March 20, 2010]" | 2340 | [Viewed March 20, 2010]" |
2283 | ,annotation=" | 2341 | ,annotation={ |
2284 | Use of RCU permits KVM to increase the size of guest OSes from | 2342 | Use of RCU permits KVM to increase the size of guest OSes from |
2285 | 16 CPUs to 64 CPUs. | 2343 | 16 CPUs to 64 CPUs. |
2286 | " | 2344 | } |
2287 | } | 2345 | } |
2288 | 2346 | ||
2289 | @unpublished{HerbertXu2010RCUResizeHash | 2347 | @unpublished{HerbertXu2010RCUResizeHash |
@@ -2297,7 +2355,19 @@ lot of {Linux} into your technology!!!" | |||
2297 | ,annotation={ | 2355 | ,annotation={ |
2298 | Use a pair of list_head structures to support RCU-protected | 2356 | Use a pair of list_head structures to support RCU-protected |
2299 | resizable hash tables. | 2357 | resizable hash tables. |
2300 | }} | 2358 | } |
2359 | } | ||
2360 | |||
2361 | @mastersthesis{AbhinavDuggal2010Masters | ||
2362 | ,author="Abhinav Duggal" | ||
2363 | ,title="Stopping Data Races Using Redflag" | ||
2364 | ,school="Stony Brook University" | ||
2365 | ,year="2010" | ||
2366 | ,annotation={ | ||
2367 | Data-race detector incorporating RCU. | ||
2368 | http://www.filesystems.org/docs/abhinav-thesis/abhinav_thesis.pdf | ||
2369 | } | ||
2370 | } | ||
2301 | 2371 | ||
2302 | @article{JoshTriplett2010RPHash | 2372 | @article{JoshTriplett2010RPHash |
2303 | ,author="Josh Triplett and Paul E. McKenney and Jonathan Walpole" | 2373 | ,author="Josh Triplett and Paul E. McKenney and Jonathan Walpole" |
@@ -2310,7 +2380,8 @@ lot of {Linux} into your technology!!!" | |||
2310 | ,annotation={ | 2380 | ,annotation={ |
2311 | RP fun with hash tables. | 2381 | RP fun with hash tables. |
2312 | http://portal.acm.org/citation.cfm?id=1842733.1842750 | 2382 | http://portal.acm.org/citation.cfm?id=1842733.1842750 |
2313 | }} | 2383 | } |
2384 | } | ||
2314 | 2385 | ||
2315 | @unpublished{PaulEMcKenney2010RCUAPI | 2386 | @unpublished{PaulEMcKenney2010RCUAPI |
2316 | ,Author="Paul E. McKenney" | 2387 | ,Author="Paul E. McKenney" |
@@ -2318,12 +2389,11 @@ lot of {Linux} into your technology!!!" | |||
2318 | ,month="December" | 2389 | ,month="December" |
2319 | ,day="8" | 2390 | ,day="8" |
2320 | ,year="2010" | 2391 | ,year="2010" |
2321 | ,note="Available: | 2392 | ,note="\url{http://lwn.net/Articles/418853/}" |
2322 | \url{http://lwn.net/Articles/418853/} | 2393 | ,annotation={ |
2323 | [Viewed December 8, 2010]" | ||
2324 | ,annotation=" | ||
2325 | Includes updated software-engineering features. | 2394 | Includes updated software-engineering features. |
2326 | " | 2395 | [Viewed December 8, 2010] |
2396 | } | ||
2327 | } | 2397 | } |
2328 | 2398 | ||
2329 | @mastersthesis{AndrejPodzimek2010masters | 2399 | @mastersthesis{AndrejPodzimek2010masters |
@@ -2338,7 +2408,8 @@ lot of {Linux} into your technology!!!" | |||
2338 | Reviews RCU implementations and creates a few for OpenSolaris. | 2408 | Reviews RCU implementations and creates a few for OpenSolaris. |
2339 | Drives quiescent-state detection from RCU read-side primitives, | 2409 | Drives quiescent-state detection from RCU read-side primitives, |
2340 | in a manner roughly similar to that of Jim Houston. | 2410 | in a manner roughly similar to that of Jim Houston. |
2341 | }} | 2411 | } |
2412 | } | ||
2342 | 2413 | ||
2343 | @unpublished{LinusTorvalds2011Linux2:6:38:rc1:NPigginVFS | 2414 | @unpublished{LinusTorvalds2011Linux2:6:38:rc1:NPigginVFS |
2344 | ,Author="Linus Torvalds" | 2415 | ,Author="Linus Torvalds" |
@@ -2358,7 +2429,8 @@ lot of {Linux} into your technology!!!" | |||
2358 | of the most expensive parts of path component lookup, which was the | 2429 | of the most expensive parts of path component lookup, which was the |
2359 | d_lock on every component lookup. So I'm seeing improvements of 30-50% | 2430 | d_lock on every component lookup. So I'm seeing improvements of 30-50% |
2360 | on some seriously pathname-lookup intensive loads." | 2431 | on some seriously pathname-lookup intensive loads." |
2361 | }} | 2432 | } |
2433 | } | ||
2362 | 2434 | ||
2363 | @techreport{JoshTriplett2011RPScalableCorrectOrdering | 2435 | @techreport{JoshTriplett2011RPScalableCorrectOrdering |
2364 | ,author = {Josh Triplett and Philip W. Howard and Paul E. McKenney and Jonathan Walpole} | 2436 | ,author = {Josh Triplett and Philip W. Howard and Paul E. McKenney and Jonathan Walpole} |
@@ -2392,12 +2464,12 @@ lot of {Linux} into your technology!!!" | |||
2392 | ,number="US Patent 7,953,778" | 2464 | ,number="US Patent 7,953,778" |
2393 | ,month="May" | 2465 | ,month="May" |
2394 | ,pages="34" | 2466 | ,pages="34" |
2395 | ,annotation=" | 2467 | ,annotation={ |
2396 | Maintains an array of generation numbers to track in-flight | 2468 | Maintains an array of generation numbers to track in-flight |
2397 | updates and keeps an additional level of indirection to allow | 2469 | updates and keeps an additional level of indirection to allow |
2398 | readers to confine themselves to the desired snapshot of the | 2470 | readers to confine themselves to the desired snapshot of the |
2399 | data structure. | 2471 | data structure. |
2400 | " | 2472 | } |
2401 | } | 2473 | } |
2402 | 2474 | ||
2403 | @inproceedings{Triplett:2011:RPHash | 2475 | @inproceedings{Triplett:2011:RPHash |
@@ -2408,7 +2480,7 @@ lot of {Linux} into your technology!!!" | |||
2408 | ,year = {2011} | 2480 | ,year = {2011} |
2409 | ,pages = {145--158} | 2481 | ,pages = {145--158} |
2410 | ,numpages = {14} | 2482 | ,numpages = {14} |
2411 | ,url={http://www.usenix.org/event/atc11/tech/final_files/atc11_proceedings.pdf} | 2483 | ,url={http://www.usenix.org/event/atc11/tech/final_files/Triplett.pdf} |
2412 | ,publisher = {The USENIX Association} | 2484 | ,publisher = {The USENIX Association} |
2413 | ,address = {Portland, OR USA} | 2485 | ,address = {Portland, OR USA} |
2414 | } | 2486 | } |
@@ -2419,27 +2491,58 @@ lot of {Linux} into your technology!!!" | |||
2419 | ,month="July" | 2491 | ,month="July" |
2420 | ,day="27" | 2492 | ,day="27" |
2421 | ,year="2011" | 2493 | ,year="2011" |
2422 | ,note="Available: | 2494 | ,note="\url{http://lwn.net/Articles/453002/}" |
2423 | \url{http://lwn.net/Articles/453002/} | 2495 | ,annotation={ |
2424 | [Viewed July 27, 2011]" | ||
2425 | ,annotation=" | ||
2426 | Analysis of the RCU trainwreck in Linux kernel 3.0. | 2496 | Analysis of the RCU trainwreck in Linux kernel 3.0. |
2427 | " | 2497 | [Viewed July 27, 2011] |
2498 | } | ||
2428 | } | 2499 | } |
2429 | 2500 | ||
2430 | @unpublished{NeilBrown2011MeetTheLockers | 2501 | @unpublished{NeilBrown2011MeetTheLockers |
2431 | ,Author="Neil Brown" | 2502 | ,Author="Neil Brown" |
2432 | ,Title="Meet the Lockers" | 2503 | ,Title="Meet the {Lockers}" |
2433 | ,month="August" | 2504 | ,month="August" |
2434 | ,day="3" | 2505 | ,day="3" |
2435 | ,year="2011" | 2506 | ,year="2011" |
2436 | ,note="Available: | 2507 | ,note="Available: |
2437 | \url{http://lwn.net/Articles/453685/} | 2508 | \url{http://lwn.net/Articles/453685/} |
2438 | [Viewed September 2, 2011]" | 2509 | [Viewed September 2, 2011]" |
2439 | ,annotation=" | 2510 | ,annotation={ |
2440 | The Locker family as an analogy for locking, reference counting, | 2511 | The Locker family as an analogy for locking, reference counting, |
2441 | RCU, and seqlock. | 2512 | RCU, and seqlock. |
2442 | " | 2513 | } |
2514 | } | ||
2515 | |||
2516 | @inproceedings{Seyster:2011:RFA:2075416.2075425 | ||
2517 | ,author = {Seyster, Justin and Radhakrishnan, Prabakar and Katoch, Samriti and Duggal, Abhinav and Stoller, Scott D. and Zadok, Erez} | ||
2518 | ,title = {Redflag: a framework for analysis of Kernel-level concurrency} | ||
2519 | ,booktitle = {Proceedings of the 11th international conference on Algorithms and architectures for parallel processing - Volume Part I} | ||
2520 | ,series = {ICA3PP'11} | ||
2521 | ,year = {2011} | ||
2522 | ,isbn = {978-3-642-24649-4} | ||
2523 | ,location = {Melbourne, Australia} | ||
2524 | ,pages = {66--79} | ||
2525 | ,numpages = {14} | ||
2526 | ,url = {http://dl.acm.org/citation.cfm?id=2075416.2075425} | ||
2527 | ,acmid = {2075425} | ||
2528 | ,publisher = {Springer-Verlag} | ||
2529 | ,address = {Berlin, Heidelberg} | ||
2530 | } | ||
2531 | |||
2532 | @phdthesis{JoshTriplettPhD | ||
2533 | ,author="Josh Triplett" | ||
2534 | ,title="Relativistic Causal Ordering: A Memory Model for Scalable Concurrent Data Structures" | ||
2535 | ,school="Portland State University" | ||
2536 | ,year="2012" | ||
2537 | ,annotation={ | ||
2538 | RCU-protected hash tables, barriers vs. read-side traversal order. | ||
2539 | . | ||
2540 | If the updater is making changes in the opposite direction from | ||
2541 | the read-side traveral order, the updater need only execute a | ||
2542 | memory-barrier instruction, but if in the same direction, the | ||
2543 | updater needs to wait for a grace period between the individual | ||
2544 | updates. | ||
2545 | } | ||
2443 | } | 2546 | } |
2444 | 2547 | ||
2445 | @article{MathieuDesnoyers2012URCU | 2548 | @article{MathieuDesnoyers2012URCU |
@@ -2459,5 +2562,150 @@ lot of {Linux} into your technology!!!" | |||
2459 | RCU updates, RCU grace-period batching, update overhead, | 2562 | RCU updates, RCU grace-period batching, update overhead, |
2460 | http://www.rdrop.com/users/paulmck/RCU/urcu-main-accepted.2011.08.30a.pdf | 2563 | http://www.rdrop.com/users/paulmck/RCU/urcu-main-accepted.2011.08.30a.pdf |
2461 | http://www.rdrop.com/users/paulmck/RCU/urcu-supp-accepted.2011.08.30a.pdf | 2564 | http://www.rdrop.com/users/paulmck/RCU/urcu-supp-accepted.2011.08.30a.pdf |
2565 | http://www.computer.org/cms/Computer.org/dl/trans/td/2012/02/extras/ttd2012020375s.pdf | ||
2566 | } | ||
2567 | } | ||
2568 | |||
2569 | @inproceedings{AustinClements2012RCULinux:mmapsem | ||
2570 | ,author = {Austin Clements and Frans Kaashoek and Nickolai Zeldovich} | ||
2571 | ,title = {Scalable Address Spaces Using {RCU} Balanced Trees} | ||
2572 | ,booktitle = {Architectural Support for Programming Languages and Operating Systems (ASPLOS 2012)} | ||
2573 | ,month = {March} | ||
2574 | ,year = {2012} | ||
2575 | ,pages = {199--210} | ||
2576 | ,numpages = {12} | ||
2577 | ,publisher = {ACM} | ||
2578 | ,address = {London, UK} | ||
2579 | ,url="http://people.csail.mit.edu/nickolai/papers/clements-bonsai.pdf" | ||
2580 | } | ||
2581 | |||
2582 | @unpublished{PaulEMcKenney2012ELCbattery | ||
2583 | ,Author="Paul E. McKenney" | ||
2584 | ,Title="Making {RCU} Safe For Battery-Powered Devices" | ||
2585 | ,month="February" | ||
2586 | ,day="15" | ||
2587 | ,year="2012" | ||
2588 | ,note="Available: | ||
2589 | \url{http://www.rdrop.com/users/paulmck/RCU/RCUdynticks.2012.02.15b.pdf} | ||
2590 | [Viewed March 1, 2012]" | ||
2591 | ,annotation={ | ||
2592 | RCU_FAST_NO_HZ, round 2. | ||
2593 | } | ||
2594 | } | ||
2595 | |||
2596 | @article{GuillermoVigueras2012RCUCrowd | ||
2597 | ,author = {Vigueras, Guillermo and Ordu\~{n}a, Juan M. and Lozano, Miguel} | ||
2598 | ,day = {25} | ||
2599 | ,doi = {10.1007/s11227-012-0766-x} | ||
2600 | ,issn = {0920-8542} | ||
2601 | ,journal = {The Journal of Supercomputing} | ||
2602 | ,keywords = {linux, simulation} | ||
2603 | ,month = apr | ||
2604 | ,posted-at = {2012-05-03 09:12:04} | ||
2605 | ,priority = {2} | ||
2606 | ,title = {{A Read-Copy Update based parallel server for distributed crowd simulations}} | ||
2607 | ,url = {http://dx.doi.org/10.1007/s11227-012-0766-x} | ||
2608 | ,year = {2012} | ||
2609 | } | ||
2610 | |||
2611 | |||
2612 | @unpublished{JonCorbet2012ACCESS:ONCE | ||
2613 | ,Author="Jon Corbet" | ||
2614 | ,Title="{ACCESS\_ONCE()}" | ||
2615 | ,month="August" | ||
2616 | ,day="1" | ||
2617 | ,year="2012" | ||
2618 | ,note="\url{http://lwn.net/Articles/508991/}" | ||
2619 | ,annotation={ | ||
2620 | A couple of simple specific compiler optimizations that motivate | ||
2621 | ACCESS_ONCE(). | ||
2622 | } | ||
2623 | } | ||
2624 | |||
2625 | @unpublished{AlexeyGotsman2012VerifyGraceExtended | ||
2626 | ,Author="Alexey Gotsman and Noam Rinetzky and Hongseok Yang" | ||
2627 | ,Title="Verifying Highly Concurrent Algorithms with Grace (extended version)" | ||
2628 | ,month="July" | ||
2629 | ,day="10" | ||
2630 | ,year="2012" | ||
2631 | ,note="\url{http://software.imdea.org/~gotsman/papers/recycling-esop13-ext.pdf}" | ||
2632 | ,annotation={ | ||
2633 | Separation-logic formulation of RCU uses. | ||
2634 | } | ||
2635 | } | ||
2636 | |||
2637 | @unpublished{PaulMcKenney2012RCUUsage | ||
2638 | ,Author="Paul E. McKenney and Silas Boyd-Wickizer and Jonathan Walpole" | ||
2639 | ,Title="{RCU} Usage In the Linux Kernel: One Decade Later" | ||
2640 | ,month="September" | ||
2641 | ,day="17" | ||
2642 | ,year="2012" | ||
2643 | ,url=http://rdrop.com/users/paulmck/techreports/survey.2012.09.17a.pdf | ||
2644 | ,note="Technical report paulmck.2012.09.17" | ||
2645 | ,annotation={ | ||
2646 | Overview of the first variant of no-CBs CPUs for RCU. | ||
2647 | } | ||
2648 | } | ||
2649 | |||
2650 | @unpublished{JonCorbet2012NOCB | ||
2651 | ,Author="Jon Corbet" | ||
2652 | ,Title="Relocating RCU callbacks" | ||
2653 | ,month="October" | ||
2654 | ,day="31" | ||
2655 | ,year="2012" | ||
2656 | ,note="\url{http://lwn.net/Articles/522262/}" | ||
2657 | ,annotation={ | ||
2658 | Overview of the first variant of no-CBs CPUs for RCU. | ||
2659 | } | ||
2660 | } | ||
2661 | |||
2662 | @phdthesis{JustinSeyster2012PhD | ||
2663 | ,author="Justin Seyster" | ||
2664 | ,title="Runtime Verification of Kernel-Level Concurrency Using Compiler-Based Instrumentation" | ||
2665 | ,school="Stony Brook University" | ||
2666 | ,year="2012" | ||
2667 | ,annotation={ | ||
2668 | Looking for data races, including those involving RCU. | ||
2669 | Proposal: | ||
2670 | http://www.fsl.cs.sunysb.edu/docs/jseyster-proposal/redflag.pdf | ||
2671 | Dissertation: | ||
2672 | http://www.fsl.cs.sunysb.edu/docs/jseyster-dissertation/redflag.pdf | ||
2673 | } | ||
2674 | } | ||
2675 | |||
2676 | @unpublished{PaulEMcKenney2013RCUUsage | ||
2677 | ,Author="Paul E. McKenney and Silas Boyd-Wickizer and Jonathan Walpole" | ||
2678 | ,Title="{RCU} Usage in the {Linux} Kernel: One Decade Later" | ||
2679 | ,month="February" | ||
2680 | ,day="24" | ||
2681 | ,year="2013" | ||
2682 | ,note="\url{http://rdrop.com/users/paulmck/techreports/RCUUsage.2013.02.24a.pdf}" | ||
2683 | ,annotation={ | ||
2684 | Usage of RCU within the Linux kernel. | ||
2685 | } | ||
2686 | } | ||
2687 | |||
2688 | @inproceedings{AlexeyGotsman2013ESOPRCU | ||
2689 | ,author = {Alexey Gotsman and Noam Rinetzky and Hongseok Yang} | ||
2690 | ,title = {Verifying concurrent memory reclamation algorithms with grace} | ||
2691 | ,booktitle = {ESOP'13: European Symposium on Programming} | ||
2692 | ,year = {2013} | ||
2693 | ,pages = {249--269} | ||
2694 | ,publisher = {Springer} | ||
2695 | ,address = {Rome, Italy} | ||
2696 | ,annotation={ | ||
2697 | http://software.imdea.org/~gotsman/papers/recycling-esop13.pdf | ||
2698 | } | ||
2699 | } | ||
2700 | |||
2701 | @unpublished{PaulEMcKenney2013NoTinyPreempt | ||
2702 | ,Author="Paul E. McKenney" | ||
2703 | ,Title="Simplifying RCU" | ||
2704 | ,month="March" | ||
2705 | ,day="6" | ||
2706 | ,year="2013" | ||
2707 | ,note="\url{http://lwn.net/Articles/541037/}" | ||
2708 | ,annotation={ | ||
2709 | Getting rid of TINY_PREEMPT_RCU. | ||
2462 | } | 2710 | } |
2463 | } | 2711 | } |
diff --git a/Documentation/RCU/rcubarrier.txt b/Documentation/RCU/rcubarrier.txt index 2e319d1b9ef2..b10cfe711e68 100644 --- a/Documentation/RCU/rcubarrier.txt +++ b/Documentation/RCU/rcubarrier.txt | |||
@@ -70,10 +70,14 @@ in realtime kernels in order to avoid excessive scheduling latencies. | |||
70 | 70 | ||
71 | rcu_barrier() | 71 | rcu_barrier() |
72 | 72 | ||
73 | We instead need the rcu_barrier() primitive. This primitive is similar | 73 | We instead need the rcu_barrier() primitive. Rather than waiting for |
74 | to synchronize_rcu(), but instead of waiting solely for a grace | 74 | a grace period to elapse, rcu_barrier() waits for all outstanding RCU |
75 | period to elapse, it also waits for all outstanding RCU callbacks to | 75 | callbacks to complete. Please note that rcu_barrier() does -not- imply |
76 | complete. Pseudo-code using rcu_barrier() is as follows: | 76 | synchronize_rcu(), in particular, if there are no RCU callbacks queued |
77 | anywhere, rcu_barrier() is within its rights to return immediately, | ||
78 | without waiting for a grace period to elapse. | ||
79 | |||
80 | Pseudo-code using rcu_barrier() is as follows: | ||
77 | 81 | ||
78 | 1. Prevent any new RCU callbacks from being posted. | 82 | 1. Prevent any new RCU callbacks from being posted. |
79 | 2. Execute rcu_barrier(). | 83 | 2. Execute rcu_barrier(). |
diff --git a/Documentation/RCU/torture.txt b/Documentation/RCU/torture.txt index d8a502387397..dac02a6219b1 100644 --- a/Documentation/RCU/torture.txt +++ b/Documentation/RCU/torture.txt | |||
@@ -42,6 +42,16 @@ fqs_holdoff Holdoff time (in microseconds) between consecutive calls | |||
42 | fqs_stutter Wait time (in seconds) between consecutive bursts | 42 | fqs_stutter Wait time (in seconds) between consecutive bursts |
43 | of calls to force_quiescent_state(). | 43 | of calls to force_quiescent_state(). |
44 | 44 | ||
45 | gp_normal Make the fake writers use normal synchronous grace-period | ||
46 | primitives. | ||
47 | |||
48 | gp_exp Make the fake writers use expedited synchronous grace-period | ||
49 | primitives. If both gp_normal and gp_exp are set, or | ||
50 | if neither gp_normal nor gp_exp are set, then randomly | ||
51 | choose the primitive so that about 50% are normal and | ||
52 | 50% expedited. By default, neither are set, which | ||
53 | gives best overall test coverage. | ||
54 | |||
45 | irqreader Says to invoke RCU readers from irq level. This is currently | 55 | irqreader Says to invoke RCU readers from irq level. This is currently |
46 | done via timers. Defaults to "1" for variants of RCU that | 56 | done via timers. Defaults to "1" for variants of RCU that |
47 | permit this. (Or, more accurately, variants of RCU that do | 57 | permit this. (Or, more accurately, variants of RCU that do |
diff --git a/Documentation/SubmittingPatches b/Documentation/SubmittingPatches index 6e97e73d87b5..26b1e31d5a13 100644 --- a/Documentation/SubmittingPatches +++ b/Documentation/SubmittingPatches | |||
@@ -109,6 +109,16 @@ probably didn't even receive earlier versions of the patch. | |||
109 | If the patch fixes a logged bug entry, refer to that bug entry by | 109 | If the patch fixes a logged bug entry, refer to that bug entry by |
110 | number and URL. | 110 | number and URL. |
111 | 111 | ||
112 | If you want to refer to a specific commit, don't just refer to the | ||
113 | SHA-1 ID of the commit. Please also include the oneline summary of | ||
114 | the commit, to make it easier for reviewers to know what it is about. | ||
115 | Example: | ||
116 | |||
117 | Commit e21d2170f36602ae2708 ("video: remove unnecessary | ||
118 | platform_set_drvdata()") removed the unnecessary | ||
119 | platform_set_drvdata(), but left the variable "dev" unused, | ||
120 | delete it. | ||
121 | |||
112 | 122 | ||
113 | 3) Separate your changes. | 123 | 3) Separate your changes. |
114 | 124 | ||
diff --git a/Documentation/acpi/enumeration.txt b/Documentation/acpi/enumeration.txt index d9be7a97dff3..aca4e69121b7 100644 --- a/Documentation/acpi/enumeration.txt +++ b/Documentation/acpi/enumeration.txt | |||
@@ -207,7 +207,7 @@ passing those. One idea is to return this in _DSM method like: | |||
207 | Return (Local0) | 207 | Return (Local0) |
208 | } | 208 | } |
209 | 209 | ||
210 | Then the at25 SPI driver can get this configation by calling _DSM on its | 210 | Then the at25 SPI driver can get this configuration by calling _DSM on its |
211 | ACPI handle like: | 211 | ACPI handle like: |
212 | 212 | ||
213 | struct acpi_buffer output = { ACPI_ALLOCATE_BUFFER, NULL }; | 213 | struct acpi_buffer output = { ACPI_ALLOCATE_BUFFER, NULL }; |
@@ -228,19 +228,9 @@ ACPI handle like: | |||
228 | I2C serial bus support | 228 | I2C serial bus support |
229 | ~~~~~~~~~~~~~~~~~~~~~~ | 229 | ~~~~~~~~~~~~~~~~~~~~~~ |
230 | The slaves behind I2C bus controller only need to add the ACPI IDs like | 230 | The slaves behind I2C bus controller only need to add the ACPI IDs like |
231 | with the platform and SPI drivers. However the I2C bus controller driver | 231 | with the platform and SPI drivers. The I2C core automatically enumerates |
232 | needs to call acpi_i2c_register_devices() after it has added the adapter. | 232 | any slave devices behind the controller device once the adapter is |
233 | 233 | registered. | |
234 | An I2C bus (controller) driver does: | ||
235 | |||
236 | ... | ||
237 | ret = i2c_add_numbered_adapter(adapter); | ||
238 | if (ret) | ||
239 | /* handle error */ | ||
240 | |||
241 | of_i2c_register_devices(adapter); | ||
242 | /* Enumerate the slave devices behind this bus via ACPI */ | ||
243 | acpi_i2c_register_devices(adapter); | ||
244 | 234 | ||
245 | Below is an example of how to add ACPI support to the existing mpu3050 | 235 | Below is an example of how to add ACPI support to the existing mpu3050 |
246 | input driver: | 236 | input driver: |
diff --git a/Documentation/aoe/udev.txt b/Documentation/aoe/udev.txt index 8686e789542e..1f06daf03f5b 100644 --- a/Documentation/aoe/udev.txt +++ b/Documentation/aoe/udev.txt | |||
@@ -23,4 +23,4 @@ SUBSYSTEM=="aoe", KERNEL=="revalidate", NAME="etherd/%k", GROUP="disk", MODE="02 | |||
23 | SUBSYSTEM=="aoe", KERNEL=="flush", NAME="etherd/%k", GROUP="disk", MODE="0220" | 23 | SUBSYSTEM=="aoe", KERNEL=="flush", NAME="etherd/%k", GROUP="disk", MODE="0220" |
24 | 24 | ||
25 | # aoe block devices | 25 | # aoe block devices |
26 | KERNEL=="etherd*", NAME="%k", GROUP="disk" | 26 | KERNEL=="etherd*", GROUP="disk" |
diff --git a/Documentation/arm/Booting b/Documentation/arm/Booting index 0c1f475fdf36..371814a36719 100644 --- a/Documentation/arm/Booting +++ b/Documentation/arm/Booting | |||
@@ -18,7 +18,8 @@ following: | |||
18 | 2. Initialise one serial port. | 18 | 2. Initialise one serial port. |
19 | 3. Detect the machine type. | 19 | 3. Detect the machine type. |
20 | 4. Setup the kernel tagged list. | 20 | 4. Setup the kernel tagged list. |
21 | 5. Call the kernel image. | 21 | 5. Load initramfs. |
22 | 6. Call the kernel image. | ||
22 | 23 | ||
23 | 24 | ||
24 | 1. Setup and initialise RAM | 25 | 1. Setup and initialise RAM |
@@ -120,12 +121,27 @@ tagged list. | |||
120 | The boot loader must pass at a minimum the size and location of the | 121 | The boot loader must pass at a minimum the size and location of the |
121 | system memory, and the root filesystem location. The dtb must be | 122 | system memory, and the root filesystem location. The dtb must be |
122 | placed in a region of memory where the kernel decompressor will not | 123 | placed in a region of memory where the kernel decompressor will not |
123 | overwrite it. The recommended placement is in the first 16KiB of RAM | 124 | overwrite it, whilst remaining within the region which will be covered |
124 | with the caveat that it may not be located at physical address 0 since | 125 | by the kernel's low-memory mapping. |
125 | the kernel interprets a value of 0 in r2 to mean neither a tagged list | ||
126 | nor a dtb were passed. | ||
127 | 126 | ||
128 | 5. Calling the kernel image | 127 | A safe location is just above the 128MiB boundary from start of RAM. |
128 | |||
129 | 5. Load initramfs. | ||
130 | ------------------ | ||
131 | |||
132 | Existing boot loaders: OPTIONAL | ||
133 | New boot loaders: OPTIONAL | ||
134 | |||
135 | If an initramfs is in use then, as with the dtb, it must be placed in | ||
136 | a region of memory where the kernel decompressor will not overwrite it | ||
137 | while also with the region which will be covered by the kernel's | ||
138 | low-memory mapping. | ||
139 | |||
140 | A safe location is just above the device tree blob which itself will | ||
141 | be loaded just above the 128MiB boundary from the start of RAM as | ||
142 | recommended above. | ||
143 | |||
144 | 6. Calling the kernel image | ||
129 | --------------------------- | 145 | --------------------------- |
130 | 146 | ||
131 | Existing boot loaders: MANDATORY | 147 | Existing boot loaders: MANDATORY |
@@ -136,11 +152,17 @@ is stored in flash, and is linked correctly to be run from flash, | |||
136 | then it is legal for the boot loader to call the zImage in flash | 152 | then it is legal for the boot loader to call the zImage in flash |
137 | directly. | 153 | directly. |
138 | 154 | ||
139 | The zImage may also be placed in system RAM (at any location) and | 155 | The zImage may also be placed in system RAM and called there. The |
140 | called there. Note that the kernel uses 16K of RAM below the image | 156 | kernel should be placed in the first 128MiB of RAM. It is recommended |
141 | to store page tables. The recommended placement is 32KiB into RAM. | 157 | that it is loaded above 32MiB in order to avoid the need to relocate |
158 | prior to decompression, which will make the boot process slightly | ||
159 | faster. | ||
160 | |||
161 | When booting a raw (non-zImage) kernel the constraints are tighter. | ||
162 | In this case the kernel must be loaded at an offset into system equal | ||
163 | to TEXT_OFFSET - PAGE_OFFSET. | ||
142 | 164 | ||
143 | In either case, the following conditions must be met: | 165 | In any case, the following conditions must be met: |
144 | 166 | ||
145 | - Quiesce all DMA capable devices so that memory does not get | 167 | - Quiesce all DMA capable devices so that memory does not get |
146 | corrupted by bogus network packets or disk data. This will save | 168 | corrupted by bogus network packets or disk data. This will save |
diff --git a/Documentation/arm/OMAP/omap_pm b/Documentation/arm/OMAP/omap_pm index 9012bb039094..4ae915a9f899 100644 --- a/Documentation/arm/OMAP/omap_pm +++ b/Documentation/arm/OMAP/omap_pm | |||
@@ -78,7 +78,7 @@ to NULL. Drivers should use the following idiom: | |||
78 | The most common usage of these functions will probably be to specify | 78 | The most common usage of these functions will probably be to specify |
79 | the maximum time from when an interrupt occurs, to when the device | 79 | the maximum time from when an interrupt occurs, to when the device |
80 | becomes accessible. To accomplish this, driver writers should use the | 80 | becomes accessible. To accomplish this, driver writers should use the |
81 | set_max_mpu_wakeup_lat() function to to constrain the MPU wakeup | 81 | set_max_mpu_wakeup_lat() function to constrain the MPU wakeup |
82 | latency, and the set_max_dev_wakeup_lat() function to constrain the | 82 | latency, and the set_max_dev_wakeup_lat() function to constrain the |
83 | device wakeup latency (from clk_enable() to accessibility). For | 83 | device wakeup latency (from clk_enable() to accessibility). For |
84 | example, | 84 | example, |
diff --git a/Documentation/arm/kernel_mode_neon.txt b/Documentation/arm/kernel_mode_neon.txt new file mode 100644 index 000000000000..525452726d31 --- /dev/null +++ b/Documentation/arm/kernel_mode_neon.txt | |||
@@ -0,0 +1,121 @@ | |||
1 | Kernel mode NEON | ||
2 | ================ | ||
3 | |||
4 | TL;DR summary | ||
5 | ------------- | ||
6 | * Use only NEON instructions, or VFP instructions that don't rely on support | ||
7 | code | ||
8 | * Isolate your NEON code in a separate compilation unit, and compile it with | ||
9 | '-mfpu=neon -mfloat-abi=softfp' | ||
10 | * Put kernel_neon_begin() and kernel_neon_end() calls around the calls into your | ||
11 | NEON code | ||
12 | * Don't sleep in your NEON code, and be aware that it will be executed with | ||
13 | preemption disabled | ||
14 | |||
15 | |||
16 | Introduction | ||
17 | ------------ | ||
18 | It is possible to use NEON instructions (and in some cases, VFP instructions) in | ||
19 | code that runs in kernel mode. However, for performance reasons, the NEON/VFP | ||
20 | register file is not preserved and restored at every context switch or taken | ||
21 | exception like the normal register file is, so some manual intervention is | ||
22 | required. Furthermore, special care is required for code that may sleep [i.e., | ||
23 | may call schedule()], as NEON or VFP instructions will be executed in a | ||
24 | non-preemptible section for reasons outlined below. | ||
25 | |||
26 | |||
27 | Lazy preserve and restore | ||
28 | ------------------------- | ||
29 | The NEON/VFP register file is managed using lazy preserve (on UP systems) and | ||
30 | lazy restore (on both SMP and UP systems). This means that the register file is | ||
31 | kept 'live', and is only preserved and restored when multiple tasks are | ||
32 | contending for the NEON/VFP unit (or, in the SMP case, when a task migrates to | ||
33 | another core). Lazy restore is implemented by disabling the NEON/VFP unit after | ||
34 | every context switch, resulting in a trap when subsequently a NEON/VFP | ||
35 | instruction is issued, allowing the kernel to step in and perform the restore if | ||
36 | necessary. | ||
37 | |||
38 | Any use of the NEON/VFP unit in kernel mode should not interfere with this, so | ||
39 | it is required to do an 'eager' preserve of the NEON/VFP register file, and | ||
40 | enable the NEON/VFP unit explicitly so no exceptions are generated on first | ||
41 | subsequent use. This is handled by the function kernel_neon_begin(), which | ||
42 | should be called before any kernel mode NEON or VFP instructions are issued. | ||
43 | Likewise, the NEON/VFP unit should be disabled again after use to make sure user | ||
44 | mode will hit the lazy restore trap upon next use. This is handled by the | ||
45 | function kernel_neon_end(). | ||
46 | |||
47 | |||
48 | Interruptions in kernel mode | ||
49 | ---------------------------- | ||
50 | For reasons of performance and simplicity, it was decided that there shall be no | ||
51 | preserve/restore mechanism for the kernel mode NEON/VFP register contents. This | ||
52 | implies that interruptions of a kernel mode NEON section can only be allowed if | ||
53 | they are guaranteed not to touch the NEON/VFP registers. For this reason, the | ||
54 | following rules and restrictions apply in the kernel: | ||
55 | * NEON/VFP code is not allowed in interrupt context; | ||
56 | * NEON/VFP code is not allowed to sleep; | ||
57 | * NEON/VFP code is executed with preemption disabled. | ||
58 | |||
59 | If latency is a concern, it is possible to put back to back calls to | ||
60 | kernel_neon_end() and kernel_neon_begin() in places in your code where none of | ||
61 | the NEON registers are live. (Additional calls to kernel_neon_begin() should be | ||
62 | reasonably cheap if no context switch occurred in the meantime) | ||
63 | |||
64 | |||
65 | VFP and support code | ||
66 | -------------------- | ||
67 | Earlier versions of VFP (prior to version 3) rely on software support for things | ||
68 | like IEEE-754 compliant underflow handling etc. When the VFP unit needs such | ||
69 | software assistance, it signals the kernel by raising an undefined instruction | ||
70 | exception. The kernel responds by inspecting the VFP control registers and the | ||
71 | current instruction and arguments, and emulates the instruction in software. | ||
72 | |||
73 | Such software assistance is currently not implemented for VFP instructions | ||
74 | executed in kernel mode. If such a condition is encountered, the kernel will | ||
75 | fail and generate an OOPS. | ||
76 | |||
77 | |||
78 | Separating NEON code from ordinary code | ||
79 | --------------------------------------- | ||
80 | The compiler is not aware of the special significance of kernel_neon_begin() and | ||
81 | kernel_neon_end(), i.e., that it is only allowed to issue NEON/VFP instructions | ||
82 | between calls to these respective functions. Furthermore, GCC may generate NEON | ||
83 | instructions of its own at -O3 level if -mfpu=neon is selected, and even if the | ||
84 | kernel is currently compiled at -O2, future changes may result in NEON/VFP | ||
85 | instructions appearing in unexpected places if no special care is taken. | ||
86 | |||
87 | Therefore, the recommended and only supported way of using NEON/VFP in the | ||
88 | kernel is by adhering to the following rules: | ||
89 | * isolate the NEON code in a separate compilation unit and compile it with | ||
90 | '-mfpu=neon -mfloat-abi=softfp'; | ||
91 | * issue the calls to kernel_neon_begin(), kernel_neon_end() as well as the calls | ||
92 | into the unit containing the NEON code from a compilation unit which is *not* | ||
93 | built with the GCC flag '-mfpu=neon' set. | ||
94 | |||
95 | As the kernel is compiled with '-msoft-float', the above will guarantee that | ||
96 | both NEON and VFP instructions will only ever appear in designated compilation | ||
97 | units at any optimization level. | ||
98 | |||
99 | |||
100 | NEON assembler | ||
101 | -------------- | ||
102 | NEON assembler is supported with no additional caveats as long as the rules | ||
103 | above are followed. | ||
104 | |||
105 | |||
106 | NEON code generated by GCC | ||
107 | -------------------------- | ||
108 | The GCC option -ftree-vectorize (implied by -O3) tries to exploit implicit | ||
109 | parallelism, and generates NEON code from ordinary C source code. This is fully | ||
110 | supported as long as the rules above are followed. | ||
111 | |||
112 | |||
113 | NEON intrinsics | ||
114 | --------------- | ||
115 | NEON intrinsics are also supported. However, as code using NEON intrinsics | ||
116 | relies on the GCC header <arm_neon.h>, (which #includes <stdint.h>), you should | ||
117 | observe the following in addition to the rules above: | ||
118 | * Compile the unit containing the NEON intrinsics with '-ffreestanding' so GCC | ||
119 | uses its builtin version of <stdint.h> (this is a C99 header which the kernel | ||
120 | does not supply); | ||
121 | * Include <arm_neon.h> last, or at least after <linux/types.h> | ||
diff --git a/Documentation/arm64/booting.txt b/Documentation/arm64/booting.txt index 9c4d388daddc..98df4a03807e 100644 --- a/Documentation/arm64/booting.txt +++ b/Documentation/arm64/booting.txt | |||
@@ -45,9 +45,9 @@ sees fit.) | |||
45 | 45 | ||
46 | Requirement: MANDATORY | 46 | Requirement: MANDATORY |
47 | 47 | ||
48 | The device tree blob (dtb) must be no bigger than 2 megabytes in size | 48 | The device tree blob (dtb) must be placed on an 8-byte boundary within |
49 | and placed at a 2-megabyte boundary within the first 512 megabytes from | 49 | the first 512 megabytes from the start of the kernel image and must not |
50 | the start of the kernel image. This is to allow the kernel to map the | 50 | cross a 2-megabyte boundary. This is to allow the kernel to map the |
51 | blob using a single section mapping in the initial page tables. | 51 | blob using a single section mapping in the initial page tables. |
52 | 52 | ||
53 | 53 | ||
@@ -68,13 +68,23 @@ Image target is available instead. | |||
68 | 68 | ||
69 | Requirement: MANDATORY | 69 | Requirement: MANDATORY |
70 | 70 | ||
71 | The decompressed kernel image contains a 32-byte header as follows: | 71 | The decompressed kernel image contains a 64-byte header as follows: |
72 | 72 | ||
73 | u32 magic = 0x14000008; /* branch to stext, little-endian */ | 73 | u32 code0; /* Executable code */ |
74 | u32 res0 = 0; /* reserved */ | 74 | u32 code1; /* Executable code */ |
75 | u64 text_offset; /* Image load offset */ | 75 | u64 text_offset; /* Image load offset */ |
76 | u64 res0 = 0; /* reserved */ | ||
76 | u64 res1 = 0; /* reserved */ | 77 | u64 res1 = 0; /* reserved */ |
77 | u64 res2 = 0; /* reserved */ | 78 | u64 res2 = 0; /* reserved */ |
79 | u64 res3 = 0; /* reserved */ | ||
80 | u64 res4 = 0; /* reserved */ | ||
81 | u32 magic = 0x644d5241; /* Magic number, little endian, "ARM\x64" */ | ||
82 | u32 res5 = 0; /* reserved */ | ||
83 | |||
84 | |||
85 | Header notes: | ||
86 | |||
87 | - code0/code1 are responsible for branching to stext. | ||
78 | 88 | ||
79 | The image must be placed at the specified offset (currently 0x80000) | 89 | The image must be placed at the specified offset (currently 0x80000) |
80 | from the start of the system RAM and called there. The start of the | 90 | from the start of the system RAM and called there. The start of the |
diff --git a/Documentation/arm64/tagged-pointers.txt b/Documentation/arm64/tagged-pointers.txt new file mode 100644 index 000000000000..264e9841563a --- /dev/null +++ b/Documentation/arm64/tagged-pointers.txt | |||
@@ -0,0 +1,34 @@ | |||
1 | Tagged virtual addresses in AArch64 Linux | ||
2 | ========================================= | ||
3 | |||
4 | Author: Will Deacon <will.deacon@arm.com> | ||
5 | Date : 12 June 2013 | ||
6 | |||
7 | This document briefly describes the provision of tagged virtual | ||
8 | addresses in the AArch64 translation system and their potential uses | ||
9 | in AArch64 Linux. | ||
10 | |||
11 | The kernel configures the translation tables so that translations made | ||
12 | via TTBR0 (i.e. userspace mappings) have the top byte (bits 63:56) of | ||
13 | the virtual address ignored by the translation hardware. This frees up | ||
14 | this byte for application use, with the following caveats: | ||
15 | |||
16 | (1) The kernel requires that all user addresses passed to EL1 | ||
17 | are tagged with tag 0x00. This means that any syscall | ||
18 | parameters containing user virtual addresses *must* have | ||
19 | their top byte cleared before trapping to the kernel. | ||
20 | |||
21 | (2) Tags are not guaranteed to be preserved when delivering | ||
22 | signals. This means that signal handlers in applications | ||
23 | making use of tags cannot rely on the tag information for | ||
24 | user virtual addresses being maintained for fields inside | ||
25 | siginfo_t. One exception to this rule is for signals raised | ||
26 | in response to debug exceptions, where the tag information | ||
27 | will be preserved. | ||
28 | |||
29 | (3) Special care should be taken when using tagged pointers, | ||
30 | since it is likely that C compilers will not hazard two | ||
31 | addresses differing only in the upper bits. | ||
32 | |||
33 | The architecture prevents the use of a tagged PC, so the upper byte will | ||
34 | be set to a sign-extension of bit 55 on exception return. | ||
diff --git a/Documentation/block/cfq-iosched.txt b/Documentation/block/cfq-iosched.txt index 9887f0414c16..f3bc72945cbd 100644 --- a/Documentation/block/cfq-iosched.txt +++ b/Documentation/block/cfq-iosched.txt | |||
@@ -69,7 +69,7 @@ one, this value should be decreased relative to fifo_expire_async. | |||
69 | group_idle | 69 | group_idle |
70 | ----------- | 70 | ----------- |
71 | This parameter forces idling at the CFQ group level instead of CFQ | 71 | This parameter forces idling at the CFQ group level instead of CFQ |
72 | queue level. This was introduced after after a bottleneck was observed | 72 | queue level. This was introduced after a bottleneck was observed |
73 | in higher end storage due to idle on sequential queue and allow dispatch | 73 | in higher end storage due to idle on sequential queue and allow dispatch |
74 | from a single queue. The idea with this parameter is that it can be run with | 74 | from a single queue. The idea with this parameter is that it can be run with |
75 | slice_idle=0 and group_idle=8, so that idling does not happen on individual | 75 | slice_idle=0 and group_idle=8, so that idling does not happen on individual |
diff --git a/Documentation/block/cmdline-partition.txt b/Documentation/block/cmdline-partition.txt new file mode 100644 index 000000000000..2bbf4cc40c3f --- /dev/null +++ b/Documentation/block/cmdline-partition.txt | |||
@@ -0,0 +1,39 @@ | |||
1 | Embedded device command line partition | ||
2 | ===================================================================== | ||
3 | |||
4 | Read block device partition table from command line. | ||
5 | The partition used for fixed block device (eMMC) embedded device. | ||
6 | It is no MBR, save storage space. Bootloader can be easily accessed | ||
7 | by absolute address of data on the block device. | ||
8 | Users can easily change the partition. | ||
9 | |||
10 | The format for the command line is just like mtdparts: | ||
11 | |||
12 | blkdevparts=<blkdev-def>[;<blkdev-def>] | ||
13 | <blkdev-def> := <blkdev-id>:<partdef>[,<partdef>] | ||
14 | <partdef> := <size>[@<offset>](part-name) | ||
15 | |||
16 | <blkdev-id> | ||
17 | block device disk name, embedded device used fixed block device, | ||
18 | it's disk name also fixed. such as: mmcblk0, mmcblk1, mmcblk0boot0. | ||
19 | |||
20 | <size> | ||
21 | partition size, in bytes, such as: 512, 1m, 1G. | ||
22 | |||
23 | <offset> | ||
24 | partition start address, in bytes. | ||
25 | |||
26 | (part-name) | ||
27 | partition name, kernel send uevent with "PARTNAME". application can create | ||
28 | a link to block device partition with the name "PARTNAME". | ||
29 | user space application can access partition by partition name. | ||
30 | |||
31 | Example: | ||
32 | eMMC disk name is "mmcblk0" and "mmcblk0boot0" | ||
33 | |||
34 | bootargs: | ||
35 | 'blkdevparts=mmcblk0:1G(data0),1G(data1),-;mmcblk0boot0:1m(boot),-(kernel)' | ||
36 | |||
37 | dmesg: | ||
38 | mmcblk0: p1(data0) p2(data1) p3() | ||
39 | mmcblk0boot0: p1(boot) p2(kernel) | ||
diff --git a/Documentation/cachetlb.txt b/Documentation/cachetlb.txt index 9b728dc17535..d79b008e4a32 100644 --- a/Documentation/cachetlb.txt +++ b/Documentation/cachetlb.txt | |||
@@ -57,7 +57,7 @@ changes occur: | |||
57 | interface must make sure that any previous page table | 57 | interface must make sure that any previous page table |
58 | modifications for the address space 'vma->vm_mm' in the range | 58 | modifications for the address space 'vma->vm_mm' in the range |
59 | 'start' to 'end-1' will be visible to the cpu. That is, after | 59 | 'start' to 'end-1' will be visible to the cpu. That is, after |
60 | running, here will be no entries in the TLB for 'mm' for | 60 | running, there will be no entries in the TLB for 'mm' for |
61 | virtual addresses in the range 'start' to 'end-1'. | 61 | virtual addresses in the range 'start' to 'end-1'. |
62 | 62 | ||
63 | The "vma" is the backing store being used for the region. | 63 | The "vma" is the backing store being used for the region. |
@@ -375,8 +375,8 @@ maps this page at its virtual address. | |||
375 | 375 | ||
376 | void flush_icache_page(struct vm_area_struct *vma, struct page *page) | 376 | void flush_icache_page(struct vm_area_struct *vma, struct page *page) |
377 | All the functionality of flush_icache_page can be implemented in | 377 | All the functionality of flush_icache_page can be implemented in |
378 | flush_dcache_page and update_mmu_cache. In 2.7 the hope is to | 378 | flush_dcache_page and update_mmu_cache. In the future, the hope |
379 | remove this interface completely. | 379 | is to remove this interface completely. |
380 | 380 | ||
381 | The final category of APIs is for I/O to deliberately aliased address | 381 | The final category of APIs is for I/O to deliberately aliased address |
382 | ranges inside the kernel. Such aliases are set up by use of the | 382 | ranges inside the kernel. Such aliases are set up by use of the |
diff --git a/Documentation/clk.txt b/Documentation/clk.txt index 6f68ba0d1e01..3aeb5c440442 100644 --- a/Documentation/clk.txt +++ b/Documentation/clk.txt | |||
@@ -70,6 +70,10 @@ the operations defined in clk.h: | |||
70 | unsigned long parent_rate); | 70 | unsigned long parent_rate); |
71 | long (*round_rate)(struct clk_hw *hw, unsigned long, | 71 | long (*round_rate)(struct clk_hw *hw, unsigned long, |
72 | unsigned long *); | 72 | unsigned long *); |
73 | long (*determine_rate)(struct clk_hw *hw, | ||
74 | unsigned long rate, | ||
75 | unsigned long *best_parent_rate, | ||
76 | struct clk **best_parent_clk); | ||
73 | int (*set_parent)(struct clk_hw *hw, u8 index); | 77 | int (*set_parent)(struct clk_hw *hw, u8 index); |
74 | u8 (*get_parent)(struct clk_hw *hw); | 78 | u8 (*get_parent)(struct clk_hw *hw); |
75 | int (*set_rate)(struct clk_hw *hw, unsigned long); | 79 | int (*set_rate)(struct clk_hw *hw, unsigned long); |
@@ -179,26 +183,28 @@ mandatory, a cell marked as "n" implies that either including that | |||
179 | callback is invalid or otherwise unnecessary. Empty cells are either | 183 | callback is invalid or otherwise unnecessary. Empty cells are either |
180 | optional or must be evaluated on a case-by-case basis. | 184 | optional or must be evaluated on a case-by-case basis. |
181 | 185 | ||
182 | clock hardware characteristics | 186 | clock hardware characteristics |
183 | ----------------------------------------------------------- | 187 | ----------------------------------------------------------- |
184 | | gate | change rate | single parent | multiplexer | root | | 188 | | gate | change rate | single parent | multiplexer | root | |
185 | |------|-------------|---------------|-------------|------| | 189 | |------|-------------|---------------|-------------|------| |
186 | .prepare | | | | | | | 190 | .prepare | | | | | | |
187 | .unprepare | | | | | | | 191 | .unprepare | | | | | | |
188 | | | | | | | | 192 | | | | | | | |
189 | .enable | y | | | | | | 193 | .enable | y | | | | | |
190 | .disable | y | | | | | | 194 | .disable | y | | | | | |
191 | .is_enabled | y | | | | | | 195 | .is_enabled | y | | | | | |
192 | | | | | | | | 196 | | | | | | | |
193 | .recalc_rate | | y | | | | | 197 | .recalc_rate | | y | | | | |
194 | .round_rate | | y | | | | | 198 | .round_rate | | y [1] | | | | |
195 | .set_rate | | y | | | | | 199 | .determine_rate | | y [1] | | | | |
196 | | | | | | | | 200 | .set_rate | | y | | | | |
197 | .set_parent | | | n | y | n | | 201 | | | | | | | |
198 | .get_parent | | | n | y | n | | 202 | .set_parent | | | n | y | n | |
199 | | | | | | | | 203 | .get_parent | | | n | y | n | |
200 | .init | | | | | | | 204 | | | | | | | |
201 | ----------------------------------------------------------- | 205 | .init | | | | | | |
206 | ----------------------------------------------------------- | ||
207 | [1] either one of round_rate or determine_rate is required. | ||
202 | 208 | ||
203 | Finally, register your clock at run-time with a hardware-specific | 209 | Finally, register your clock at run-time with a hardware-specific |
204 | registration function. This function simply populates struct clk_foo's | 210 | registration function. This function simply populates struct clk_foo's |
diff --git a/Documentation/cpu-freq/cpu-drivers.txt b/Documentation/cpu-freq/cpu-drivers.txt index 19fa98e07bf7..40282e617913 100644 --- a/Documentation/cpu-freq/cpu-drivers.txt +++ b/Documentation/cpu-freq/cpu-drivers.txt | |||
@@ -50,8 +50,6 @@ What shall this struct cpufreq_driver contain? | |||
50 | 50 | ||
51 | cpufreq_driver.name - The name of this driver. | 51 | cpufreq_driver.name - The name of this driver. |
52 | 52 | ||
53 | cpufreq_driver.owner - THIS_MODULE; | ||
54 | |||
55 | cpufreq_driver.init - A pointer to the per-CPU initialization | 53 | cpufreq_driver.init - A pointer to the per-CPU initialization |
56 | function. | 54 | function. |
57 | 55 | ||
diff --git a/Documentation/cputopology.txt b/Documentation/cputopology.txt index 902d3151f527..0aad6deb2d96 100644 --- a/Documentation/cputopology.txt +++ b/Documentation/cputopology.txt | |||
@@ -22,7 +22,7 @@ to /proc/cpuinfo. | |||
22 | 22 | ||
23 | 4) /sys/devices/system/cpu/cpuX/topology/thread_siblings: | 23 | 4) /sys/devices/system/cpu/cpuX/topology/thread_siblings: |
24 | 24 | ||
25 | internel kernel map of cpuX's hardware threads within the same | 25 | internal kernel map of cpuX's hardware threads within the same |
26 | core as cpuX | 26 | core as cpuX |
27 | 27 | ||
28 | 5) /sys/devices/system/cpu/cpuX/topology/core_siblings: | 28 | 5) /sys/devices/system/cpu/cpuX/topology/core_siblings: |
diff --git a/Documentation/development-process/2.Process b/Documentation/development-process/2.Process index 4823577c6509..2e0617936e8f 100644 --- a/Documentation/development-process/2.Process +++ b/Documentation/development-process/2.Process | |||
@@ -276,7 +276,7 @@ mainline get there via -mm. | |||
276 | The current -mm patch is available in the "mmotm" (-mm of the moment) | 276 | The current -mm patch is available in the "mmotm" (-mm of the moment) |
277 | directory at: | 277 | directory at: |
278 | 278 | ||
279 | http://userweb.kernel.org/~akpm/mmotm/ | 279 | http://www.ozlabs.org/~akpm/mmotm/ |
280 | 280 | ||
281 | Use of the MMOTM tree is likely to be a frustrating experience, though; | 281 | Use of the MMOTM tree is likely to be a frustrating experience, though; |
282 | there is a definite chance that it will not even compile. | 282 | there is a definite chance that it will not even compile. |
@@ -287,7 +287,7 @@ the mainline is expected to look like after the next merge window closes. | |||
287 | Linux-next trees are announced on the linux-kernel and linux-next mailing | 287 | Linux-next trees are announced on the linux-kernel and linux-next mailing |
288 | lists when they are assembled; they can be downloaded from: | 288 | lists when they are assembled; they can be downloaded from: |
289 | 289 | ||
290 | http://www.kernel.org/pub/linux/kernel/people/sfr/linux-next/ | 290 | http://www.kernel.org/pub/linux/kernel/next/ |
291 | 291 | ||
292 | Some information about linux-next has been gathered at: | 292 | Some information about linux-next has been gathered at: |
293 | 293 | ||
diff --git a/Documentation/device-mapper/cache.txt b/Documentation/device-mapper/cache.txt index e8cdf7241b66..33d45ee0b737 100644 --- a/Documentation/device-mapper/cache.txt +++ b/Documentation/device-mapper/cache.txt | |||
@@ -50,14 +50,16 @@ other parameters detailed later): | |||
50 | which are dirty, and extra hints for use by the policy object. | 50 | which are dirty, and extra hints for use by the policy object. |
51 | This information could be put on the cache device, but having it | 51 | This information could be put on the cache device, but having it |
52 | separate allows the volume manager to configure it differently, | 52 | separate allows the volume manager to configure it differently, |
53 | e.g. as a mirror for extra robustness. | 53 | e.g. as a mirror for extra robustness. This metadata device may only |
54 | be used by a single cache device. | ||
54 | 55 | ||
55 | Fixed block size | 56 | Fixed block size |
56 | ---------------- | 57 | ---------------- |
57 | 58 | ||
58 | The origin is divided up into blocks of a fixed size. This block size | 59 | The origin is divided up into blocks of a fixed size. This block size |
59 | is configurable when you first create the cache. Typically we've been | 60 | is configurable when you first create the cache. Typically we've been |
60 | using block sizes of 256k - 1024k. | 61 | using block sizes of 256KB - 1024KB. The block size must be between 64 |
62 | (32KB) and 2097152 (1GB) and a multiple of 64 (32KB). | ||
61 | 63 | ||
62 | Having a fixed block size simplifies the target a lot. But it is | 64 | Having a fixed block size simplifies the target a lot. But it is |
63 | something of a compromise. For instance, a small part of a block may be | 65 | something of a compromise. For instance, a small part of a block may be |
diff --git a/Documentation/device-mapper/statistics.txt b/Documentation/device-mapper/statistics.txt new file mode 100644 index 000000000000..2a1673adc200 --- /dev/null +++ b/Documentation/device-mapper/statistics.txt | |||
@@ -0,0 +1,186 @@ | |||
1 | DM statistics | ||
2 | ============= | ||
3 | |||
4 | Device Mapper supports the collection of I/O statistics on user-defined | ||
5 | regions of a DM device. If no regions are defined no statistics are | ||
6 | collected so there isn't any performance impact. Only bio-based DM | ||
7 | devices are currently supported. | ||
8 | |||
9 | Each user-defined region specifies a starting sector, length and step. | ||
10 | Individual statistics will be collected for each step-sized area within | ||
11 | the range specified. | ||
12 | |||
13 | The I/O statistics counters for each step-sized area of a region are | ||
14 | in the same format as /sys/block/*/stat or /proc/diskstats (see: | ||
15 | Documentation/iostats.txt). But two extra counters (12 and 13) are | ||
16 | provided: total time spent reading and writing in milliseconds. All | ||
17 | these counters may be accessed by sending the @stats_print message to | ||
18 | the appropriate DM device via dmsetup. | ||
19 | |||
20 | Each region has a corresponding unique identifier, which we call a | ||
21 | region_id, that is assigned when the region is created. The region_id | ||
22 | must be supplied when querying statistics about the region, deleting the | ||
23 | region, etc. Unique region_ids enable multiple userspace programs to | ||
24 | request and process statistics for the same DM device without stepping | ||
25 | on each other's data. | ||
26 | |||
27 | The creation of DM statistics will allocate memory via kmalloc or | ||
28 | fallback to using vmalloc space. At most, 1/4 of the overall system | ||
29 | memory may be allocated by DM statistics. The admin can see how much | ||
30 | memory is used by reading | ||
31 | /sys/module/dm_mod/parameters/stats_current_allocated_bytes | ||
32 | |||
33 | Messages | ||
34 | ======== | ||
35 | |||
36 | @stats_create <range> <step> [<program_id> [<aux_data>]] | ||
37 | |||
38 | Create a new region and return the region_id. | ||
39 | |||
40 | <range> | ||
41 | "-" - whole device | ||
42 | "<start_sector>+<length>" - a range of <length> 512-byte sectors | ||
43 | starting with <start_sector>. | ||
44 | |||
45 | <step> | ||
46 | "<area_size>" - the range is subdivided into areas each containing | ||
47 | <area_size> sectors. | ||
48 | "/<number_of_areas>" - the range is subdivided into the specified | ||
49 | number of areas. | ||
50 | |||
51 | <program_id> | ||
52 | An optional parameter. A name that uniquely identifies | ||
53 | the userspace owner of the range. This groups ranges together | ||
54 | so that userspace programs can identify the ranges they | ||
55 | created and ignore those created by others. | ||
56 | The kernel returns this string back in the output of | ||
57 | @stats_list message, but it doesn't use it for anything else. | ||
58 | |||
59 | <aux_data> | ||
60 | An optional parameter. A word that provides auxiliary data | ||
61 | that is useful to the client program that created the range. | ||
62 | The kernel returns this string back in the output of | ||
63 | @stats_list message, but it doesn't use this value for anything. | ||
64 | |||
65 | @stats_delete <region_id> | ||
66 | |||
67 | Delete the region with the specified id. | ||
68 | |||
69 | <region_id> | ||
70 | region_id returned from @stats_create | ||
71 | |||
72 | @stats_clear <region_id> | ||
73 | |||
74 | Clear all the counters except the in-flight i/o counters. | ||
75 | |||
76 | <region_id> | ||
77 | region_id returned from @stats_create | ||
78 | |||
79 | @stats_list [<program_id>] | ||
80 | |||
81 | List all regions registered with @stats_create. | ||
82 | |||
83 | <program_id> | ||
84 | An optional parameter. | ||
85 | If this parameter is specified, only matching regions | ||
86 | are returned. | ||
87 | If it is not specified, all regions are returned. | ||
88 | |||
89 | Output format: | ||
90 | <region_id>: <start_sector>+<length> <step> <program_id> <aux_data> | ||
91 | |||
92 | @stats_print <region_id> [<starting_line> <number_of_lines>] | ||
93 | |||
94 | Print counters for each step-sized area of a region. | ||
95 | |||
96 | <region_id> | ||
97 | region_id returned from @stats_create | ||
98 | |||
99 | <starting_line> | ||
100 | The index of the starting line in the output. | ||
101 | If omitted, all lines are returned. | ||
102 | |||
103 | <number_of_lines> | ||
104 | The number of lines to include in the output. | ||
105 | If omitted, all lines are returned. | ||
106 | |||
107 | Output format for each step-sized area of a region: | ||
108 | |||
109 | <start_sector>+<length> counters | ||
110 | |||
111 | The first 11 counters have the same meaning as | ||
112 | /sys/block/*/stat or /proc/diskstats. | ||
113 | |||
114 | Please refer to Documentation/iostats.txt for details. | ||
115 | |||
116 | 1. the number of reads completed | ||
117 | 2. the number of reads merged | ||
118 | 3. the number of sectors read | ||
119 | 4. the number of milliseconds spent reading | ||
120 | 5. the number of writes completed | ||
121 | 6. the number of writes merged | ||
122 | 7. the number of sectors written | ||
123 | 8. the number of milliseconds spent writing | ||
124 | 9. the number of I/Os currently in progress | ||
125 | 10. the number of milliseconds spent doing I/Os | ||
126 | 11. the weighted number of milliseconds spent doing I/Os | ||
127 | |||
128 | Additional counters: | ||
129 | 12. the total time spent reading in milliseconds | ||
130 | 13. the total time spent writing in milliseconds | ||
131 | |||
132 | @stats_print_clear <region_id> [<starting_line> <number_of_lines>] | ||
133 | |||
134 | Atomically print and then clear all the counters except the | ||
135 | in-flight i/o counters. Useful when the client consuming the | ||
136 | statistics does not want to lose any statistics (those updated | ||
137 | between printing and clearing). | ||
138 | |||
139 | <region_id> | ||
140 | region_id returned from @stats_create | ||
141 | |||
142 | <starting_line> | ||
143 | The index of the starting line in the output. | ||
144 | If omitted, all lines are printed and then cleared. | ||
145 | |||
146 | <number_of_lines> | ||
147 | The number of lines to process. | ||
148 | If omitted, all lines are printed and then cleared. | ||
149 | |||
150 | @stats_set_aux <region_id> <aux_data> | ||
151 | |||
152 | Store auxiliary data aux_data for the specified region. | ||
153 | |||
154 | <region_id> | ||
155 | region_id returned from @stats_create | ||
156 | |||
157 | <aux_data> | ||
158 | The string that identifies data which is useful to the client | ||
159 | program that created the range. The kernel returns this | ||
160 | string back in the output of @stats_list message, but it | ||
161 | doesn't use this value for anything. | ||
162 | |||
163 | Examples | ||
164 | ======== | ||
165 | |||
166 | Subdivide the DM device 'vol' into 100 pieces and start collecting | ||
167 | statistics on them: | ||
168 | |||
169 | dmsetup message vol 0 @stats_create - /100 | ||
170 | |||
171 | Set the auxillary data string to "foo bar baz" (the escape for each | ||
172 | space must also be escaped, otherwise the shell will consume them): | ||
173 | |||
174 | dmsetup message vol 0 @stats_set_aux 0 foo\\ bar\\ baz | ||
175 | |||
176 | List the statistics: | ||
177 | |||
178 | dmsetup message vol 0 @stats_list | ||
179 | |||
180 | Print the statistics: | ||
181 | |||
182 | dmsetup message vol 0 @stats_print 0 | ||
183 | |||
184 | Delete the statistics: | ||
185 | |||
186 | dmsetup message vol 0 @stats_delete 0 | ||
diff --git a/Documentation/device-mapper/thin-provisioning.txt b/Documentation/device-mapper/thin-provisioning.txt index 30b8b83bd333..50c44cf79b0e 100644 --- a/Documentation/device-mapper/thin-provisioning.txt +++ b/Documentation/device-mapper/thin-provisioning.txt | |||
@@ -99,13 +99,14 @@ Using an existing pool device | |||
99 | $data_block_size $low_water_mark" | 99 | $data_block_size $low_water_mark" |
100 | 100 | ||
101 | $data_block_size gives the smallest unit of disk space that can be | 101 | $data_block_size gives the smallest unit of disk space that can be |
102 | allocated at a time expressed in units of 512-byte sectors. People | 102 | allocated at a time expressed in units of 512-byte sectors. |
103 | primarily interested in thin provisioning may want to use a value such | 103 | $data_block_size must be between 128 (64KB) and 2097152 (1GB) and a |
104 | as 1024 (512KB). People doing lots of snapshotting may want a smaller value | 104 | multiple of 128 (64KB). $data_block_size cannot be changed after the |
105 | such as 128 (64KB). If you are not zeroing newly-allocated data, | 105 | thin-pool is created. People primarily interested in thin provisioning |
106 | a larger $data_block_size in the region of 256000 (128MB) is suggested. | 106 | may want to use a value such as 1024 (512KB). People doing lots of |
107 | $data_block_size must be the same for the lifetime of the | 107 | snapshotting may want a smaller value such as 128 (64KB). If you are |
108 | metadata device. | 108 | not zeroing newly-allocated data, a larger $data_block_size in the |
109 | region of 256000 (128MB) is suggested. | ||
109 | 110 | ||
110 | $low_water_mark is expressed in blocks of size $data_block_size. If | 111 | $low_water_mark is expressed in blocks of size $data_block_size. If |
111 | free space on the data device drops below this level then a dm event | 112 | free space on the data device drops below this level then a dm event |
diff --git a/Documentation/devicetree/bindings/arm/arch_timer.txt b/Documentation/devicetree/bindings/arm/arch_timer.txt index 20746e5abe6f..06fc7602593a 100644 --- a/Documentation/devicetree/bindings/arm/arch_timer.txt +++ b/Documentation/devicetree/bindings/arm/arch_timer.txt | |||
@@ -1,10 +1,14 @@ | |||
1 | * ARM architected timer | 1 | * ARM architected timer |
2 | 2 | ||
3 | ARM cores may have a per-core architected timer, which provides per-cpu timers. | 3 | ARM cores may have a per-core architected timer, which provides per-cpu timers, |
4 | or a memory mapped architected timer, which provides up to 8 frames with a | ||
5 | physical and optional virtual timer per frame. | ||
4 | 6 | ||
5 | The timer is attached to a GIC to deliver its per-processor interrupts. | 7 | The per-core architected timer is attached to a GIC to deliver its |
8 | per-processor interrupts via PPIs. The memory mapped timer is attached to a GIC | ||
9 | to deliver its interrupts via SPIs. | ||
6 | 10 | ||
7 | ** Timer node properties: | 11 | ** CP15 Timer node properties: |
8 | 12 | ||
9 | - compatible : Should at least contain one of | 13 | - compatible : Should at least contain one of |
10 | "arm,armv7-timer" | 14 | "arm,armv7-timer" |
@@ -26,3 +30,52 @@ Example: | |||
26 | <1 10 0xf08>; | 30 | <1 10 0xf08>; |
27 | clock-frequency = <100000000>; | 31 | clock-frequency = <100000000>; |
28 | }; | 32 | }; |
33 | |||
34 | ** Memory mapped timer node properties: | ||
35 | |||
36 | - compatible : Should at least contain "arm,armv7-timer-mem". | ||
37 | |||
38 | - clock-frequency : The frequency of the main counter, in Hz. Optional. | ||
39 | |||
40 | - reg : The control frame base address. | ||
41 | |||
42 | Note that #address-cells, #size-cells, and ranges shall be present to ensure | ||
43 | the CPU can address a frame's registers. | ||
44 | |||
45 | A timer node has up to 8 frame sub-nodes, each with the following properties: | ||
46 | |||
47 | - frame-number: 0 to 7. | ||
48 | |||
49 | - interrupts : Interrupt list for physical and virtual timers in that order. | ||
50 | The virtual timer interrupt is optional. | ||
51 | |||
52 | - reg : The first and second view base addresses in that order. The second view | ||
53 | base address is optional. | ||
54 | |||
55 | - status : "disabled" indicates the frame is not available for use. Optional. | ||
56 | |||
57 | Example: | ||
58 | |||
59 | timer@f0000000 { | ||
60 | compatible = "arm,armv7-timer-mem"; | ||
61 | #address-cells = <1>; | ||
62 | #size-cells = <1>; | ||
63 | ranges; | ||
64 | reg = <0xf0000000 0x1000>; | ||
65 | clock-frequency = <50000000>; | ||
66 | |||
67 | frame@f0001000 { | ||
68 | frame-number = <0> | ||
69 | interrupts = <0 13 0x8>, | ||
70 | <0 14 0x8>; | ||
71 | reg = <0xf0001000 0x1000>, | ||
72 | <0xf0002000 0x1000>; | ||
73 | }; | ||
74 | |||
75 | frame@f0003000 { | ||
76 | frame-number = <1> | ||
77 | interrupts = <0 15 0x8>; | ||
78 | reg = <0xf0003000 0x1000>; | ||
79 | status = "disabled"; | ||
80 | }; | ||
81 | }; | ||
diff --git a/Documentation/devicetree/bindings/arm/atmel-adc.txt b/Documentation/devicetree/bindings/arm/atmel-adc.txt index 16769d9cedd6..723c205cb10d 100644 --- a/Documentation/devicetree/bindings/arm/atmel-adc.txt +++ b/Documentation/devicetree/bindings/arm/atmel-adc.txt | |||
@@ -1,18 +1,15 @@ | |||
1 | * AT91's Analog to Digital Converter (ADC) | 1 | * AT91's Analog to Digital Converter (ADC) |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible: Should be "atmel,at91sam9260-adc" | 4 | - compatible: Should be "atmel,<chip>-adc" |
5 | <chip> can be "at91sam9260", "at91sam9g45" or "at91sam9x5" | ||
5 | - reg: Should contain ADC registers location and length | 6 | - reg: Should contain ADC registers location and length |
6 | - interrupts: Should contain the IRQ line for the ADC | 7 | - interrupts: Should contain the IRQ line for the ADC |
7 | - atmel,adc-channel-base: Offset of the first channel data register | ||
8 | - atmel,adc-channels-used: Bitmask of the channels muxed and enable for this | 8 | - atmel,adc-channels-used: Bitmask of the channels muxed and enable for this |
9 | device | 9 | device |
10 | - atmel,adc-drdy-mask: Mask of the DRDY interruption in the ADC | ||
11 | - atmel,adc-num-channels: Number of channels available in the ADC | 10 | - atmel,adc-num-channels: Number of channels available in the ADC |
12 | - atmel,adc-startup-time: Startup Time of the ADC in microseconds as | 11 | - atmel,adc-startup-time: Startup Time of the ADC in microseconds as |
13 | defined in the datasheet | 12 | defined in the datasheet |
14 | - atmel,adc-status-register: Offset of the Interrupt Status Register | ||
15 | - atmel,adc-trigger-register: Offset of the Trigger Register | ||
16 | - atmel,adc-vref: Reference voltage in millivolts for the conversions | 13 | - atmel,adc-vref: Reference voltage in millivolts for the conversions |
17 | - atmel,adc-res: List of resolution in bits supported by the ADC. List size | 14 | - atmel,adc-res: List of resolution in bits supported by the ADC. List size |
18 | must be two at least. | 15 | must be two at least. |
diff --git a/Documentation/devicetree/bindings/arm/bcm/bcm11351.txt b/Documentation/devicetree/bindings/arm/bcm/bcm11351.txt index fb7b5cd2652f..0ff6560e6094 100644 --- a/Documentation/devicetree/bindings/arm/bcm/bcm11351.txt +++ b/Documentation/devicetree/bindings/arm/bcm/bcm11351.txt | |||
@@ -6,4 +6,5 @@ bcm11351, bcm28145, bcm28155 SoCs) shall have the following properties: | |||
6 | 6 | ||
7 | Required root node property: | 7 | Required root node property: |
8 | 8 | ||
9 | compatible = "bcm,bcm11351"; | 9 | compatible = "brcm,bcm11351"; |
10 | DEPRECATED: compatible = "bcm,bcm11351"; | ||
diff --git a/Documentation/devicetree/bindings/arm/bcm/bcm,kona-timer.txt b/Documentation/devicetree/bindings/arm/bcm/kona-timer.txt index 59fa6e68d4f6..17d88b233d1b 100644 --- a/Documentation/devicetree/bindings/arm/bcm/bcm,kona-timer.txt +++ b/Documentation/devicetree/bindings/arm/bcm/kona-timer.txt | |||
@@ -4,14 +4,15 @@ This timer is used in the following Broadcom SoCs: | |||
4 | BCM11130, BCM11140, BCM11351, BCM28145, BCM28155 | 4 | BCM11130, BCM11140, BCM11351, BCM28145, BCM28155 |
5 | 5 | ||
6 | Required properties: | 6 | Required properties: |
7 | - compatible : "bcm,kona-timer" | 7 | - compatible : "brcm,kona-timer" |
8 | - DEPRECATED: compatible : "bcm,kona-timer" | ||
8 | - reg : Register range for the timer | 9 | - reg : Register range for the timer |
9 | - interrupts : interrupt for the timer | 10 | - interrupts : interrupt for the timer |
10 | - clock-frequency: frequency that the clock operates | 11 | - clock-frequency: frequency that the clock operates |
11 | 12 | ||
12 | Example: | 13 | Example: |
13 | timer@35006000 { | 14 | timer@35006000 { |
14 | compatible = "bcm,kona-timer"; | 15 | compatible = "brcm,kona-timer"; |
15 | reg = <0x35006000 0x1000>; | 16 | reg = <0x35006000 0x1000>; |
16 | interrupts = <0x0 7 0x4>; | 17 | interrupts = <0x0 7 0x4>; |
17 | clock-frequency = <32768>; | 18 | clock-frequency = <32768>; |
diff --git a/Documentation/devicetree/bindings/arm/bcm/kona-wdt.txt b/Documentation/devicetree/bindings/arm/bcm/kona-wdt.txt new file mode 100644 index 000000000000..2b86a00e351d --- /dev/null +++ b/Documentation/devicetree/bindings/arm/bcm/kona-wdt.txt | |||
@@ -0,0 +1,15 @@ | |||
1 | Broadcom Kona Family Watchdog Timer | ||
2 | ----------------------------------- | ||
3 | |||
4 | This watchdog timer is used in the following Broadcom SoCs: | ||
5 | BCM11130, BCM11140, BCM11351, BCM28145, BCM28155 | ||
6 | |||
7 | Required properties: | ||
8 | - compatible = "brcm,bcm11351-wdt", "brcm,kona-wdt"; | ||
9 | - reg: memory address & range | ||
10 | |||
11 | Example: | ||
12 | watchdog@35002f40 { | ||
13 | compatible = "brcm,bcm11351-wdt", "brcm,kona-wdt"; | ||
14 | reg = <0x35002f40 0x6c>; | ||
15 | }; | ||
diff --git a/Documentation/devicetree/bindings/arm/l2cc.txt b/Documentation/devicetree/bindings/arm/l2cc.txt index 69ddf9fad2dc..c0c7626fd0ff 100644 --- a/Documentation/devicetree/bindings/arm/l2cc.txt +++ b/Documentation/devicetree/bindings/arm/l2cc.txt | |||
@@ -16,9 +16,11 @@ Required properties: | |||
16 | performs the same operation). | 16 | performs the same operation). |
17 | "marvell,"aurora-outer-cache: Marvell Controller designed to be | 17 | "marvell,"aurora-outer-cache: Marvell Controller designed to be |
18 | compatible with the ARM one with outer cache mode. | 18 | compatible with the ARM one with outer cache mode. |
19 | "bcm,bcm11351-a2-pl310-cache": For Broadcom bcm11351 chipset where an | 19 | "brcm,bcm11351-a2-pl310-cache": For Broadcom bcm11351 chipset where an |
20 | offset needs to be added to the address before passing down to the L2 | 20 | offset needs to be added to the address before passing down to the L2 |
21 | cache controller | 21 | cache controller |
22 | "bcm,bcm11351-a2-pl310-cache": DEPRECATED by | ||
23 | "brcm,bcm11351-a2-pl310-cache" | ||
22 | - cache-unified : Specifies the cache is a unified cache. | 24 | - cache-unified : Specifies the cache is a unified cache. |
23 | - cache-level : Should be set to 2 for a level 2 cache. | 25 | - cache-level : Should be set to 2 for a level 2 cache. |
24 | - reg : Physical base address and size of cache controller's memory mapped | 26 | - reg : Physical base address and size of cache controller's memory mapped |
diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt b/Documentation/devicetree/bindings/arm/omap/omap.txt index 6d498c758b45..91b7049affa1 100644 --- a/Documentation/devicetree/bindings/arm/omap/omap.txt +++ b/Documentation/devicetree/bindings/arm/omap/omap.txt | |||
@@ -59,3 +59,6 @@ Boards: | |||
59 | 59 | ||
60 | - AM43x EPOS EVM | 60 | - AM43x EPOS EVM |
61 | compatible = "ti,am43x-epos-evm", "ti,am4372", "ti,am43" | 61 | compatible = "ti,am43x-epos-evm", "ti,am4372", "ti,am43" |
62 | |||
63 | - DRA7 EVM: Software Developement Board for DRA7XX | ||
64 | compatible = "ti,dra7-evm", "ti,dra7" | ||
diff --git a/Documentation/devicetree/bindings/arm/ste-u300.txt b/Documentation/devicetree/bindings/arm/ste-u300.txt index 69b5ab0b5f4b..d11d80006a19 100644 --- a/Documentation/devicetree/bindings/arm/ste-u300.txt +++ b/Documentation/devicetree/bindings/arm/ste-u300.txt | |||
@@ -22,7 +22,7 @@ This contains the board-specific information. | |||
22 | - compatible: must be "stericsson,s365". | 22 | - compatible: must be "stericsson,s365". |
23 | - vana15-supply: the regulator supplying the 1.5V to drive the | 23 | - vana15-supply: the regulator supplying the 1.5V to drive the |
24 | board. | 24 | board. |
25 | - syscon: a pointer to the syscon node so we can acccess the | 25 | - syscon: a pointer to the syscon node so we can access the |
26 | syscon registers to set the board as self-powered. | 26 | syscon registers to set the board as self-powered. |
27 | 27 | ||
28 | Example: | 28 | Example: |
diff --git a/Documentation/devicetree/bindings/arm/vexpress-scc.txt b/Documentation/devicetree/bindings/arm/vexpress-scc.txt new file mode 100644 index 000000000000..ae5043e42e5d --- /dev/null +++ b/Documentation/devicetree/bindings/arm/vexpress-scc.txt | |||
@@ -0,0 +1,33 @@ | |||
1 | ARM Versatile Express Serial Configuration Controller | ||
2 | ----------------------------------------------------- | ||
3 | |||
4 | Test chips for ARM Versatile Express platform implement SCC (Serial | ||
5 | Configuration Controller) interface, used to set initial conditions | ||
6 | for the test chip. | ||
7 | |||
8 | In some cases its registers are also mapped in normal address space | ||
9 | and can be used to obtain runtime information about the chip internals | ||
10 | (like silicon temperature sensors) and as interface to other subsystems | ||
11 | like platform configuration control and power management. | ||
12 | |||
13 | Required properties: | ||
14 | |||
15 | - compatible value: "arm,vexpress-scc,<model>", "arm,vexpress-scc"; | ||
16 | where <model> is the full tile model name (as used | ||
17 | in the tile's Technical Reference Manual), | ||
18 | eg. for Coretile Express A15x2 A7x3 (V2P-CA15_A7): | ||
19 | compatible = "arm,vexpress-scc,v2p-ca15_a7", "arm,vexpress-scc"; | ||
20 | |||
21 | Optional properties: | ||
22 | |||
23 | - reg: when the SCC is memory mapped, physical address and size of the | ||
24 | registers window | ||
25 | - interrupts: when the SCC can generate a system-level interrupt | ||
26 | |||
27 | Example: | ||
28 | |||
29 | scc@7fff0000 { | ||
30 | compatible = "arm,vexpress-scc,v2p-ca15_a7", "arm,vexpress-scc"; | ||
31 | reg = <0 0x7fff0000 0 0x1000>; | ||
32 | interrupts = <0 95 4>; | ||
33 | }; | ||
diff --git a/Documentation/devicetree/bindings/arm/vexpress-sysreg.txt b/Documentation/devicetree/bindings/arm/vexpress-sysreg.txt index 9cf3f25544c7..5580e9c4bd85 100644 --- a/Documentation/devicetree/bindings/arm/vexpress-sysreg.txt +++ b/Documentation/devicetree/bindings/arm/vexpress-sysreg.txt | |||
@@ -32,8 +32,8 @@ numbers - see motherboard's TRM for more details. | |||
32 | The node describing a config device must refer to the sysreg node via | 32 | The node describing a config device must refer to the sysreg node via |
33 | "arm,vexpress,config-bridge" phandle (can be also defined in the node's | 33 | "arm,vexpress,config-bridge" phandle (can be also defined in the node's |
34 | parent) and relies on the board topology properties - see main vexpress | 34 | parent) and relies on the board topology properties - see main vexpress |
35 | node documentation for more details. It must must also define the | 35 | node documentation for more details. It must also define the following |
36 | following property: | 36 | property: |
37 | - arm,vexpress-sysreg,func : must contain two cells: | 37 | - arm,vexpress-sysreg,func : must contain two cells: |
38 | - first cell defines function number (eg. 1 for clock generator, | 38 | - first cell defines function number (eg. 1 for clock generator, |
39 | 2 for voltage regulators etc.) | 39 | 2 for voltage regulators etc.) |
diff --git a/Documentation/devicetree/bindings/ata/ahci-platform.txt b/Documentation/devicetree/bindings/ata/ahci-platform.txt index 3ec0c5c4f0e9..89de1564950c 100644 --- a/Documentation/devicetree/bindings/ata/ahci-platform.txt +++ b/Documentation/devicetree/bindings/ata/ahci-platform.txt | |||
@@ -4,27 +4,17 @@ SATA nodes are defined to describe on-chip Serial ATA controllers. | |||
4 | Each SATA controller should have its own node. | 4 | Each SATA controller should have its own node. |
5 | 5 | ||
6 | Required properties: | 6 | Required properties: |
7 | - compatible : compatible list, contains "calxeda,hb-ahci" or "snps,spear-ahci" | 7 | - compatible : compatible list, contains "snps,spear-ahci" |
8 | - interrupts : <interrupt mapping for SATA IRQ> | 8 | - interrupts : <interrupt mapping for SATA IRQ> |
9 | - reg : <registers mapping> | 9 | - reg : <registers mapping> |
10 | 10 | ||
11 | Optional properties: | 11 | Optional properties: |
12 | - calxeda,port-phys: phandle-combophy and lane assignment, which maps each | ||
13 | SATA port to a combophy and a lane within that | ||
14 | combophy | ||
15 | - calxeda,sgpio-gpio: phandle-gpio bank, bit offset, and default on or off, | ||
16 | which indicates that the driver supports SGPIO | ||
17 | indicator lights using the indicated GPIOs | ||
18 | - calxeda,led-order : a u32 array that map port numbers to offsets within the | ||
19 | SGPIO bitstream. | ||
20 | - dma-coherent : Present if dma operations are coherent | 12 | - dma-coherent : Present if dma operations are coherent |
21 | 13 | ||
22 | Example: | 14 | Example: |
23 | sata@ffe08000 { | 15 | sata@ffe08000 { |
24 | compatible = "calxeda,hb-ahci"; | 16 | compatible = "snps,spear-ahci"; |
25 | reg = <0xffe08000 0x1000>; | 17 | reg = <0xffe08000 0x1000>; |
26 | interrupts = <115>; | 18 | interrupts = <115>; |
27 | calxeda,port-phys = <&combophy5 0 &combophy0 0 &combophy0 1 | ||
28 | &combophy0 2 &combophy0 3>; | ||
29 | 19 | ||
30 | }; | 20 | }; |
diff --git a/Documentation/devicetree/bindings/ata/sata_highbank.txt b/Documentation/devicetree/bindings/ata/sata_highbank.txt new file mode 100644 index 000000000000..aa83407cb7a4 --- /dev/null +++ b/Documentation/devicetree/bindings/ata/sata_highbank.txt | |||
@@ -0,0 +1,44 @@ | |||
1 | * Calxeda AHCI SATA Controller | ||
2 | |||
3 | SATA nodes are defined to describe on-chip Serial ATA controllers. | ||
4 | The Calxeda SATA controller mostly conforms to the AHCI interface | ||
5 | with some special extensions to add functionality. | ||
6 | Each SATA controller should have its own node. | ||
7 | |||
8 | Required properties: | ||
9 | - compatible : compatible list, contains "calxeda,hb-ahci" | ||
10 | - interrupts : <interrupt mapping for SATA IRQ> | ||
11 | - reg : <registers mapping> | ||
12 | |||
13 | Optional properties: | ||
14 | - dma-coherent : Present if dma operations are coherent | ||
15 | - calxeda,port-phys : phandle-combophy and lane assignment, which maps each | ||
16 | SATA port to a combophy and a lane within that | ||
17 | combophy | ||
18 | - calxeda,sgpio-gpio: phandle-gpio bank, bit offset, and default on or off, | ||
19 | which indicates that the driver supports SGPIO | ||
20 | indicator lights using the indicated GPIOs | ||
21 | - calxeda,led-order : a u32 array that map port numbers to offsets within the | ||
22 | SGPIO bitstream. | ||
23 | - calxeda,tx-atten : a u32 array that contains TX attenuation override | ||
24 | codes, one per port. The upper 3 bytes are always | ||
25 | 0 and thus ignored. | ||
26 | - calxeda,pre-clocks : a u32 that indicates the number of additional clock | ||
27 | cycles to transmit before sending an SGPIO pattern | ||
28 | - calxeda,post-clocks: a u32 that indicates the number of additional clock | ||
29 | cycles to transmit after sending an SGPIO pattern | ||
30 | |||
31 | Example: | ||
32 | sata@ffe08000 { | ||
33 | compatible = "calxeda,hb-ahci"; | ||
34 | reg = <0xffe08000 0x1000>; | ||
35 | interrupts = <115>; | ||
36 | dma-coherent; | ||
37 | calxeda,port-phys = <&combophy5 0 &combophy0 0 &combophy0 1 | ||
38 | &combophy0 2 &combophy0 3>; | ||
39 | calxeda,sgpio-gpio =<&gpioh 5 1 &gpioh 6 1 &gpioh 7 1>; | ||
40 | calxeda,led-order = <4 0 1 2 3>; | ||
41 | calxeda,tx-atten = <0xff 22 0xff 0xff 23>; | ||
42 | calxeda,pre-clocks = <10>; | ||
43 | calxeda,post-clocks = <0>; | ||
44 | }; | ||
diff --git a/Documentation/devicetree/bindings/bus/imx-weim.txt b/Documentation/devicetree/bindings/bus/imx-weim.txt index cedc2a9c4785..0fd76c405208 100644 --- a/Documentation/devicetree/bindings/bus/imx-weim.txt +++ b/Documentation/devicetree/bindings/bus/imx-weim.txt | |||
@@ -8,7 +8,7 @@ The actual devices are instantiated from the child nodes of a WEIM node. | |||
8 | 8 | ||
9 | Required properties: | 9 | Required properties: |
10 | 10 | ||
11 | - compatible: Should be set to "fsl,imx6q-weim" | 11 | - compatible: Should be set to "fsl,<soc>-weim" |
12 | - reg: A resource specifier for the register space | 12 | - reg: A resource specifier for the register space |
13 | (see the example below) | 13 | (see the example below) |
14 | - clocks: the clock, see the example below. | 14 | - clocks: the clock, see the example below. |
@@ -21,11 +21,18 @@ Required properties: | |||
21 | 21 | ||
22 | Timing property for child nodes. It is mandatory, not optional. | 22 | Timing property for child nodes. It is mandatory, not optional. |
23 | 23 | ||
24 | - fsl,weim-cs-timing: The timing array, contains 6 timing values for the | 24 | - fsl,weim-cs-timing: The timing array, contains timing values for the |
25 | child node. We can get the CS index from the child | 25 | child node. We can get the CS index from the child |
26 | node's "reg" property. This property contains the values | 26 | node's "reg" property. The number of registers depends |
27 | for the registers EIM_CSnGCR1, EIM_CSnGCR2, EIM_CSnRCR1, | 27 | on the selected chip. |
28 | EIM_CSnRCR2, EIM_CSnWCR1, EIM_CSnWCR2 in this order. | 28 | For i.MX1, i.MX21 ("fsl,imx1-weim") there are two |
29 | registers: CSxU, CSxL. | ||
30 | For i.MX25, i.MX27, i.MX31 and i.MX35 ("fsl,imx27-weim") | ||
31 | there are three registers: CSCRxU, CSCRxL, CSCRxA. | ||
32 | For i.MX50, i.MX53 ("fsl,imx50-weim"), | ||
33 | i.MX51 ("fsl,imx51-weim") and i.MX6Q ("fsl,imx6q-weim") | ||
34 | there are six registers: CSxGCR1, CSxGCR2, CSxRCR1, | ||
35 | CSxRCR2, CSxWCR1, CSxWCR2. | ||
29 | 36 | ||
30 | Example for an imx6q-sabreauto board, the NOR flash connected to the WEIM: | 37 | Example for an imx6q-sabreauto board, the NOR flash connected to the WEIM: |
31 | 38 | ||
diff --git a/Documentation/devicetree/bindings/bus/mvebu-mbus.txt b/Documentation/devicetree/bindings/bus/mvebu-mbus.txt new file mode 100644 index 000000000000..7586fb68c072 --- /dev/null +++ b/Documentation/devicetree/bindings/bus/mvebu-mbus.txt | |||
@@ -0,0 +1,276 @@ | |||
1 | |||
2 | * Marvell MBus | ||
3 | |||
4 | Required properties: | ||
5 | |||
6 | - compatible: Should be set to one of the following: | ||
7 | marvell,armada370-mbus | ||
8 | marvell,armadaxp-mbus | ||
9 | marvell,armada370-mbus | ||
10 | marvell,armadaxp-mbus | ||
11 | marvell,kirkwood-mbus | ||
12 | marvell,dove-mbus | ||
13 | marvell,orion5x-88f5281-mbus | ||
14 | marvell,orion5x-88f5182-mbus | ||
15 | marvell,orion5x-88f5181-mbus | ||
16 | marvell,orion5x-88f6183-mbus | ||
17 | marvell,mv78xx0-mbus | ||
18 | |||
19 | - address-cells: Must be '2'. The first cell for the MBus ID encoding, | ||
20 | the second cell for the address offset within the window. | ||
21 | |||
22 | - size-cells: Must be '1'. | ||
23 | |||
24 | - ranges: Must be set up to provide a proper translation for each child. | ||
25 | See the examples below. | ||
26 | |||
27 | - controller: Contains a single phandle referring to the MBus controller | ||
28 | node. This allows to specify the node that contains the | ||
29 | registers that control the MBus, which is typically contained | ||
30 | within the internal register window (see below). | ||
31 | |||
32 | Optional properties: | ||
33 | |||
34 | - pcie-mem-aperture: This optional property contains the aperture for | ||
35 | the memory region of the PCIe driver. | ||
36 | If it's defined, it must encode the base address and | ||
37 | size for the address decoding windows allocated for | ||
38 | the PCIe memory region. | ||
39 | |||
40 | - pcie-io-aperture: Just as explained for the above property, this | ||
41 | optional property contains the aperture for the | ||
42 | I/O region of the PCIe driver. | ||
43 | |||
44 | * Marvell MBus controller | ||
45 | |||
46 | Required properties: | ||
47 | |||
48 | - compatible: Should be set to "marvell,mbus-controller". | ||
49 | |||
50 | - reg: Device's register space. | ||
51 | Two entries are expected (see the examples below): | ||
52 | the first one controls the devices decoding window and | ||
53 | the second one controls the SDRAM decoding window. | ||
54 | |||
55 | Example: | ||
56 | |||
57 | soc { | ||
58 | compatible = "marvell,armada370-mbus", "simple-bus"; | ||
59 | #address-cells = <2>; | ||
60 | #size-cells = <1>; | ||
61 | controller = <&mbusc>; | ||
62 | pcie-mem-aperture = <0xe0000000 0x8000000>; | ||
63 | pcie-io-aperture = <0xe8000000 0x100000>; | ||
64 | |||
65 | internal-regs { | ||
66 | compatible = "simple-bus"; | ||
67 | |||
68 | mbusc: mbus-controller@20000 { | ||
69 | compatible = "marvell,mbus-controller"; | ||
70 | reg = <0x20000 0x100>, <0x20180 0x20>; | ||
71 | }; | ||
72 | |||
73 | /* more children ...*/ | ||
74 | }; | ||
75 | }; | ||
76 | |||
77 | ** MBus address decoding window specification | ||
78 | |||
79 | The MBus children address space is comprised of two cells: the first one for | ||
80 | the window ID and the second one for the offset within the window. | ||
81 | In order to allow to describe valid and non-valid window entries, the | ||
82 | following encoding is used: | ||
83 | |||
84 | 0xSIAA0000 0x00oooooo | ||
85 | |||
86 | Where: | ||
87 | |||
88 | S = 0x0 for a MBus valid window | ||
89 | S = 0xf for a non-valid window (see below) | ||
90 | |||
91 | If S = 0x0, then: | ||
92 | |||
93 | I = 4-bit window target ID | ||
94 | AA = windpw attribute | ||
95 | |||
96 | If S = 0xf, then: | ||
97 | |||
98 | I = don't care | ||
99 | AA = 1 for internal register | ||
100 | |||
101 | Following the above encoding, for each ranges entry for a MBus valid window | ||
102 | (S = 0x0), an address decoding window is allocated. On the other side, | ||
103 | entries for translation that do not correspond to valid windows (S = 0xf) | ||
104 | are skipped. | ||
105 | |||
106 | soc { | ||
107 | compatible = "marvell,armada370-mbus", "simple-bus"; | ||
108 | #address-cells = <2>; | ||
109 | #size-cells = <1>; | ||
110 | controller = <&mbusc>; | ||
111 | |||
112 | ranges = <0xf0010000 0 0 0xd0000000 0x100000 | ||
113 | 0x01e00000 0 0 0xfff00000 0x100000>; | ||
114 | |||
115 | bootrom { | ||
116 | compatible = "marvell,bootrom"; | ||
117 | reg = <0x01e00000 0 0x100000>; | ||
118 | }; | ||
119 | |||
120 | /* other children */ | ||
121 | ... | ||
122 | |||
123 | internal-regs { | ||
124 | compatible = "simple-bus"; | ||
125 | ranges = <0 0xf0010000 0 0x100000>; | ||
126 | |||
127 | mbusc: mbus-controller@20000 { | ||
128 | compatible = "marvell,mbus-controller"; | ||
129 | reg = <0x20000 0x100>, <0x20180 0x20>; | ||
130 | }; | ||
131 | |||
132 | /* more children ...*/ | ||
133 | }; | ||
134 | }; | ||
135 | |||
136 | In the shown example, the translation entry in the 'ranges' property is what | ||
137 | makes the MBus driver create a static decoding window for the corresponding | ||
138 | given child device. Note that the binding does not require child nodes to be | ||
139 | present. Of course, child nodes are needed to probe the devices. | ||
140 | |||
141 | Since each window is identified by its target ID and attribute ID there's | ||
142 | a special macro that can be use to simplify the translation entries: | ||
143 | |||
144 | #define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16)) | ||
145 | |||
146 | Using this macro, the above example would be: | ||
147 | |||
148 | soc { | ||
149 | compatible = "marvell,armada370-mbus", "simple-bus"; | ||
150 | #address-cells = <2>; | ||
151 | #size-cells = <1>; | ||
152 | controller = <&mbusc>; | ||
153 | |||
154 | ranges = < MBUS_ID(0xf0, 0x01) 0 0 0xd0000000 0x100000 | ||
155 | MBUS_ID(0x01, 0xe0) 0 0 0xfff00000 0x100000>; | ||
156 | |||
157 | bootrom { | ||
158 | compatible = "marvell,bootrom"; | ||
159 | reg = <MBUS_ID(0x01, 0xe0) 0 0x100000>; | ||
160 | }; | ||
161 | |||
162 | /* other children */ | ||
163 | ... | ||
164 | |||
165 | internal-regs { | ||
166 | compatible = "simple-bus"; | ||
167 | #address-cells = <1>; | ||
168 | #size-cells = <1>; | ||
169 | ranges = <0 MBUS_ID(0xf0, 0x01) 0 0x100000>; | ||
170 | |||
171 | mbusc: mbus-controller@20000 { | ||
172 | compatible = "marvell,mbus-controller"; | ||
173 | reg = <0x20000 0x100>, <0x20180 0x20>; | ||
174 | }; | ||
175 | |||
176 | /* other children */ | ||
177 | ... | ||
178 | }; | ||
179 | }; | ||
180 | |||
181 | |||
182 | ** About the window base address | ||
183 | |||
184 | Remember the MBus controller allows a great deal of flexibility for choosing | ||
185 | the decoding window base address. When planning the device tree layout it's | ||
186 | possible to choose any address as the base address, provided of course there's | ||
187 | a region large enough available, and with the required alignment. | ||
188 | |||
189 | Yet in other words: there's nothing preventing us from setting a base address | ||
190 | of 0xf0000000, or 0xd0000000 for the NOR device shown above, if such region is | ||
191 | unused. | ||
192 | |||
193 | ** Window allocation policy | ||
194 | |||
195 | The mbus-node ranges property defines a set of mbus windows that are expected | ||
196 | to be set by the operating system and that are guaranteed to be free of overlaps | ||
197 | with one another or with the system memory ranges. | ||
198 | |||
199 | Each entry in the property refers to exactly one window. If the operating system | ||
200 | choses to use a different set of mbus windows, it must ensure that any address | ||
201 | translations performed from downstream devices are adapted accordingly. | ||
202 | |||
203 | The operating system may insert additional mbus windows that do not conflict | ||
204 | with the ones listed in the ranges, e.g. for mapping PCIe devices. | ||
205 | As a special case, the internal register window must be set up by the boot | ||
206 | loader at the address listed in the ranges property, since access to that region | ||
207 | is needed to set up the other windows. | ||
208 | |||
209 | ** Example | ||
210 | |||
211 | See the example below, where a more complete device tree is shown: | ||
212 | |||
213 | soc { | ||
214 | compatible = "marvell,armadaxp-mbus", "simple-bus"; | ||
215 | controller = <&mbusc>; | ||
216 | |||
217 | ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xd0000000 0x100000 /* internal-regs */ | ||
218 | MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000 | ||
219 | MBUS_ID(0x01, 0x2f) 0 0 0xf0000000 0x8000000>; | ||
220 | |||
221 | bootrom { | ||
222 | compatible = "marvell,bootrom"; | ||
223 | reg = <MBUS_ID(0x01, 0x1d) 0 0x100000>; | ||
224 | }; | ||
225 | |||
226 | devbus-bootcs { | ||
227 | status = "okay"; | ||
228 | ranges = <0 MBUS_ID(0x01, 0x2f) 0 0x8000000>; | ||
229 | |||
230 | /* NOR */ | ||
231 | nor { | ||
232 | compatible = "cfi-flash"; | ||
233 | reg = <0 0x8000000>; | ||
234 | bank-width = <2>; | ||
235 | }; | ||
236 | }; | ||
237 | |||
238 | pcie-controller { | ||
239 | compatible = "marvell,armada-xp-pcie"; | ||
240 | status = "okay"; | ||
241 | device_type = "pci"; | ||
242 | |||
243 | #address-cells = <3>; | ||
244 | #size-cells = <2>; | ||
245 | |||
246 | ranges = | ||
247 | <0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000 /* Port 0.0 registers */ | ||
248 | 0x82000000 0 0x42000 MBUS_ID(0xf0, 0x01) 0x42000 0 0x00002000 /* Port 2.0 registers */ | ||
249 | 0x82000000 0 0x44000 MBUS_ID(0xf0, 0x01) 0x44000 0 0x00002000 /* Port 0.1 registers */ | ||
250 | 0x82000000 0 0x48000 MBUS_ID(0xf0, 0x01) 0x48000 0 0x00002000 /* Port 0.2 registers */ | ||
251 | 0x82000000 0 0x4c000 MBUS_ID(0xf0, 0x01) 0x4c000 0 0x00002000 /* Port 0.3 registers */ | ||
252 | 0x82000800 0 0xe0000000 MBUS_ID(0x04, 0xe8) 0xe0000000 0 0x08000000 /* Port 0.0 MEM */ | ||
253 | 0x81000800 0 0 MBUS_ID(0x04, 0xe0) 0xe8000000 0 0x00100000 /* Port 0.0 IO */>; | ||
254 | |||
255 | |||
256 | pcie@1,0 { | ||
257 | /* Port 0, Lane 0 */ | ||
258 | status = "okay"; | ||
259 | }; | ||
260 | }; | ||
261 | |||
262 | internal-regs { | ||
263 | compatible = "simple-bus"; | ||
264 | #address-cells = <1>; | ||
265 | #size-cells = <1>; | ||
266 | ranges = <0 MBUS_ID(0xf0, 0x01) 0 0x100000>; | ||
267 | |||
268 | mbusc: mbus-controller@20000 { | ||
269 | reg = <0x20000 0x100>, <0x20180 0x20>; | ||
270 | }; | ||
271 | |||
272 | interrupt-controller@20000 { | ||
273 | reg = <0x20a00 0x2d0>, <0x21070 0x58>; | ||
274 | }; | ||
275 | }; | ||
276 | }; | ||
diff --git a/Documentation/devicetree/bindings/c6x/dscr.txt b/Documentation/devicetree/bindings/c6x/dscr.txt index d847758f2b20..b0e97144cfb1 100644 --- a/Documentation/devicetree/bindings/c6x/dscr.txt +++ b/Documentation/devicetree/bindings/c6x/dscr.txt | |||
@@ -5,7 +5,7 @@ TI C6X SoCs contain a region of miscellaneous registers which provide various | |||
5 | function for SoC control or status. Details vary considerably among from SoC | 5 | function for SoC control or status. Details vary considerably among from SoC |
6 | to SoC with no two being alike. | 6 | to SoC with no two being alike. |
7 | 7 | ||
8 | In general, the Device State Configuraion Registers (DSCR) will provide one or | 8 | In general, the Device State Configuration Registers (DSCR) will provide one or |
9 | more configuration registers often protected by a lock register where one or | 9 | more configuration registers often protected by a lock register where one or |
10 | more key values must be written to a lock register in order to unlock the | 10 | more key values must be written to a lock register in order to unlock the |
11 | configuration register for writes. These configuration register may be used to | 11 | configuration register for writes. These configuration register may be used to |
diff --git a/Documentation/devicetree/bindings/clock/clk-exynos-audss.txt b/Documentation/devicetree/bindings/clock/clk-exynos-audss.txt index a1201802f90d..75e2e1999f87 100644 --- a/Documentation/devicetree/bindings/clock/clk-exynos-audss.txt +++ b/Documentation/devicetree/bindings/clock/clk-exynos-audss.txt | |||
@@ -2,7 +2,7 @@ | |||
2 | 2 | ||
3 | The Samsung Audio Subsystem clock controller generates and supplies clocks | 3 | The Samsung Audio Subsystem clock controller generates and supplies clocks |
4 | to Audio Subsystem block available in the S5PV210 and Exynos SoCs. The clock | 4 | to Audio Subsystem block available in the S5PV210 and Exynos SoCs. The clock |
5 | binding described here is applicable to all SoC's in Exynos family. | 5 | binding described here is applicable to all SoCs in Exynos family. |
6 | 6 | ||
7 | Required Properties: | 7 | Required Properties: |
8 | 8 | ||
diff --git a/Documentation/devicetree/bindings/clock/exynos4-clock.txt b/Documentation/devicetree/bindings/clock/exynos4-clock.txt index 14d5c2af26f4..c6bf8a6c8f52 100644 --- a/Documentation/devicetree/bindings/clock/exynos4-clock.txt +++ b/Documentation/devicetree/bindings/clock/exynos4-clock.txt | |||
@@ -236,6 +236,7 @@ Exynos4 SoC and this is specified where applicable. | |||
236 | spi0_isp_sclk 380 Exynos4x12 | 236 | spi0_isp_sclk 380 Exynos4x12 |
237 | spi1_isp_sclk 381 Exynos4x12 | 237 | spi1_isp_sclk 381 Exynos4x12 |
238 | uart_isp_sclk 382 Exynos4x12 | 238 | uart_isp_sclk 382 Exynos4x12 |
239 | tmu_apbif 383 | ||
239 | 240 | ||
240 | [Mux Clocks] | 241 | [Mux Clocks] |
241 | 242 | ||
diff --git a/Documentation/devicetree/bindings/clock/exynos5250-clock.txt b/Documentation/devicetree/bindings/clock/exynos5250-clock.txt index 781a6276adf7..24765c146e31 100644 --- a/Documentation/devicetree/bindings/clock/exynos5250-clock.txt +++ b/Documentation/devicetree/bindings/clock/exynos5250-clock.txt | |||
@@ -59,6 +59,9 @@ clock which they consume. | |||
59 | sclk_spi0 154 | 59 | sclk_spi0 154 |
60 | sclk_spi1 155 | 60 | sclk_spi1 155 |
61 | sclk_spi2 156 | 61 | sclk_spi2 156 |
62 | div_i2s1 157 | ||
63 | div_i2s2 158 | ||
64 | sclk_hdmiphy 159 | ||
62 | 65 | ||
63 | 66 | ||
64 | [Peripheral Clock Gates] | 67 | [Peripheral Clock Gates] |
@@ -154,7 +157,16 @@ clock which they consume. | |||
154 | dsim0 341 | 157 | dsim0 341 |
155 | dp 342 | 158 | dp 342 |
156 | mixer 343 | 159 | mixer 343 |
157 | hdmi 345 | 160 | hdmi 344 |
161 | g2d 345 | ||
162 | |||
163 | |||
164 | [Clock Muxes] | ||
165 | |||
166 | Clock ID | ||
167 | ---------------------------- | ||
168 | mout_hdmi 1024 | ||
169 | |||
158 | 170 | ||
159 | Example 1: An example of a clock controller node is listed below. | 171 | Example 1: An example of a clock controller node is listed below. |
160 | 172 | ||
diff --git a/Documentation/devicetree/bindings/clock/exynos5420-clock.txt b/Documentation/devicetree/bindings/clock/exynos5420-clock.txt index 9bcc4b1bff51..32aa34ecad36 100644 --- a/Documentation/devicetree/bindings/clock/exynos5420-clock.txt +++ b/Documentation/devicetree/bindings/clock/exynos5420-clock.txt | |||
@@ -59,6 +59,7 @@ clock which they consume. | |||
59 | sclk_pwm 155 | 59 | sclk_pwm 155 |
60 | sclk_gscl_wa 156 | 60 | sclk_gscl_wa 156 |
61 | sclk_gscl_wb 157 | 61 | sclk_gscl_wb 157 |
62 | sclk_hdmiphy 158 | ||
62 | 63 | ||
63 | [Peripheral Clock Gates] | 64 | [Peripheral Clock Gates] |
64 | 65 | ||
@@ -179,6 +180,17 @@ clock which they consume. | |||
179 | fimc_lite3 495 | 180 | fimc_lite3 495 |
180 | aclk_g3d 500 | 181 | aclk_g3d 500 |
181 | g3d 501 | 182 | g3d 501 |
183 | smmu_mixer 502 | ||
184 | |||
185 | Mux ID | ||
186 | ---------------------------- | ||
187 | |||
188 | mout_hdmi 640 | ||
189 | |||
190 | Divider ID | ||
191 | ---------------------------- | ||
192 | |||
193 | dout_pixel 768 | ||
182 | 194 | ||
183 | Example 1: An example of a clock controller node is listed below. | 195 | Example 1: An example of a clock controller node is listed below. |
184 | 196 | ||
diff --git a/Documentation/devicetree/bindings/clock/imx5-clock.txt b/Documentation/devicetree/bindings/clock/imx5-clock.txt index f46f5625d8ad..4c029a8739d3 100644 --- a/Documentation/devicetree/bindings/clock/imx5-clock.txt +++ b/Documentation/devicetree/bindings/clock/imx5-clock.txt | |||
@@ -197,6 +197,7 @@ clocks and IDs. | |||
197 | spdif0_gate 183 | 197 | spdif0_gate 183 |
198 | spdif1_gate 184 | 198 | spdif1_gate 184 |
199 | spdif_ipg_gate 185 | 199 | spdif_ipg_gate 185 |
200 | ocram 186 | ||
200 | 201 | ||
201 | Examples (for mx53): | 202 | Examples (for mx53): |
202 | 203 | ||
diff --git a/Documentation/devicetree/bindings/clock/imx6q-clock.txt b/Documentation/devicetree/bindings/clock/imx6q-clock.txt index a0e104f0527e..5a90a724b520 100644 --- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt | |||
@@ -209,6 +209,12 @@ clocks and IDs. | |||
209 | pll5_post_div 194 | 209 | pll5_post_div 194 |
210 | pll5_video_div 195 | 210 | pll5_video_div 195 |
211 | eim_slow 196 | 211 | eim_slow 196 |
212 | spdif 197 | ||
213 | cko2_sel 198 | ||
214 | cko2_podf 199 | ||
215 | cko2 200 | ||
216 | cko 201 | ||
217 | vdoa 202 | ||
212 | 218 | ||
213 | Examples: | 219 | Examples: |
214 | 220 | ||
diff --git a/Documentation/devicetree/bindings/clock/samsung,s3c64xx-clock.txt b/Documentation/devicetree/bindings/clock/samsung,s3c64xx-clock.txt new file mode 100644 index 000000000000..fa171dc4bd3c --- /dev/null +++ b/Documentation/devicetree/bindings/clock/samsung,s3c64xx-clock.txt | |||
@@ -0,0 +1,77 @@ | |||
1 | * Samsung S3C64xx Clock Controller | ||
2 | |||
3 | The S3C64xx clock controller generates and supplies clock to various controllers | ||
4 | within the SoC. The clock binding described here is applicable to all SoCs in | ||
5 | the S3C64xx family. | ||
6 | |||
7 | Required Properties: | ||
8 | |||
9 | - compatible: should be one of the following. | ||
10 | - "samsung,s3c6400-clock" - controller compatible with S3C6400 SoC. | ||
11 | - "samsung,s3c6410-clock" - controller compatible with S3C6410 SoC. | ||
12 | |||
13 | - reg: physical base address of the controller and length of memory mapped | ||
14 | region. | ||
15 | |||
16 | - #clock-cells: should be 1. | ||
17 | |||
18 | Each clock is assigned an identifier and client nodes can use this identifier | ||
19 | to specify the clock which they consume. Some of the clocks are available only | ||
20 | on a particular S3C64xx SoC and this is specified where applicable. | ||
21 | |||
22 | All available clocks are defined as preprocessor macros in | ||
23 | dt-bindings/clock/samsung,s3c64xx-clock.h header and can be used in device | ||
24 | tree sources. | ||
25 | |||
26 | External clocks: | ||
27 | |||
28 | There are several clocks that are generated outside the SoC. It is expected | ||
29 | that they are defined using standard clock bindings with following | ||
30 | clock-output-names: | ||
31 | - "fin_pll" - PLL input clock (xtal/extclk) - required, | ||
32 | - "xusbxti" - USB xtal - required, | ||
33 | - "iiscdclk0" - I2S0 codec clock - optional, | ||
34 | - "iiscdclk1" - I2S1 codec clock - optional, | ||
35 | - "iiscdclk2" - I2S2 codec clock - optional, | ||
36 | - "pcmcdclk0" - PCM0 codec clock - optional, | ||
37 | - "pcmcdclk1" - PCM1 codec clock - optional, only S3C6410. | ||
38 | |||
39 | Example: Clock controller node: | ||
40 | |||
41 | clock: clock-controller@7e00f000 { | ||
42 | compatible = "samsung,s3c6410-clock"; | ||
43 | reg = <0x7e00f000 0x1000>; | ||
44 | #clock-cells = <1>; | ||
45 | }; | ||
46 | |||
47 | Example: Required external clocks: | ||
48 | |||
49 | fin_pll: clock-fin-pll { | ||
50 | compatible = "fixed-clock"; | ||
51 | clock-output-names = "fin_pll"; | ||
52 | clock-frequency = <12000000>; | ||
53 | #clock-cells = <0>; | ||
54 | }; | ||
55 | |||
56 | xusbxti: clock-xusbxti { | ||
57 | compatible = "fixed-clock"; | ||
58 | clock-output-names = "xusbxti"; | ||
59 | clock-frequency = <48000000>; | ||
60 | #clock-cells = <0>; | ||
61 | }; | ||
62 | |||
63 | Example: UART controller node that consumes the clock generated by the clock | ||
64 | controller (refer to the standard clock bindings for information about | ||
65 | "clocks" and "clock-names" properties): | ||
66 | |||
67 | uart0: serial@7f005000 { | ||
68 | compatible = "samsung,s3c6400-uart"; | ||
69 | reg = <0x7f005000 0x100>; | ||
70 | interrupt-parent = <&vic1>; | ||
71 | interrupts = <5>; | ||
72 | clock-names = "uart", "clk_uart_baud2", | ||
73 | "clk_uart_baud3"; | ||
74 | clocks = <&clock PCLK_UART0>, <&clocks PCLK_UART0>, | ||
75 | <&clock SCLK_UART>; | ||
76 | status = "disabled"; | ||
77 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/st,nomadik.txt b/Documentation/devicetree/bindings/clock/st,nomadik.txt index 7fc09773de46..40e0cf1f7b99 100644 --- a/Documentation/devicetree/bindings/clock/st,nomadik.txt +++ b/Documentation/devicetree/bindings/clock/st,nomadik.txt | |||
@@ -17,7 +17,7 @@ Optional properties for the SRC node: | |||
17 | - disable-mxtal: if present this will disable the MXTALO, | 17 | - disable-mxtal: if present this will disable the MXTALO, |
18 | i.e. the driver output for the main (~19.2 MHz) chrystal, | 18 | i.e. the driver output for the main (~19.2 MHz) chrystal, |
19 | if the board has its own circuitry for providing this | 19 | if the board has its own circuitry for providing this |
20 | osciallator | 20 | oscillator |
21 | 21 | ||
22 | 22 | ||
23 | PLL nodes: these nodes represent the two PLLs on the system, | 23 | PLL nodes: these nodes represent the two PLLs on the system, |
diff --git a/Documentation/devicetree/bindings/clock/sunxi.txt b/Documentation/devicetree/bindings/clock/sunxi.txt index d495521a79d2..00a5c26454eb 100644 --- a/Documentation/devicetree/bindings/clock/sunxi.txt +++ b/Documentation/devicetree/bindings/clock/sunxi.txt | |||
@@ -8,19 +8,31 @@ Required properties: | |||
8 | - compatible : shall be one of the following: | 8 | - compatible : shall be one of the following: |
9 | "allwinner,sun4i-osc-clk" - for a gatable oscillator | 9 | "allwinner,sun4i-osc-clk" - for a gatable oscillator |
10 | "allwinner,sun4i-pll1-clk" - for the main PLL clock | 10 | "allwinner,sun4i-pll1-clk" - for the main PLL clock |
11 | "allwinner,sun6i-a31-pll1-clk" - for the main PLL clock on A31 | ||
11 | "allwinner,sun4i-cpu-clk" - for the CPU multiplexer clock | 12 | "allwinner,sun4i-cpu-clk" - for the CPU multiplexer clock |
12 | "allwinner,sun4i-axi-clk" - for the AXI clock | 13 | "allwinner,sun4i-axi-clk" - for the AXI clock |
13 | "allwinner,sun4i-axi-gates-clk" - for the AXI gates | 14 | "allwinner,sun4i-axi-gates-clk" - for the AXI gates |
14 | "allwinner,sun4i-ahb-clk" - for the AHB clock | 15 | "allwinner,sun4i-ahb-clk" - for the AHB clock |
15 | "allwinner,sun4i-ahb-gates-clk" - for the AHB gates on A10 | 16 | "allwinner,sun4i-ahb-gates-clk" - for the AHB gates on A10 |
16 | "allwinner,sun5i-a13-ahb-gates-clk" - for the AHB gates on A13 | 17 | "allwinner,sun5i-a13-ahb-gates-clk" - for the AHB gates on A13 |
18 | "allwinner,sun5i-a10s-ahb-gates-clk" - for the AHB gates on A10s | ||
19 | "allwinner,sun7i-a20-ahb-gates-clk" - for the AHB gates on A20 | ||
20 | "allwinner,sun6i-a31-ahb1-mux-clk" - for the AHB1 multiplexer on A31 | ||
21 | "allwinner,sun6i-a31-ahb1-gates-clk" - for the AHB1 gates on A31 | ||
17 | "allwinner,sun4i-apb0-clk" - for the APB0 clock | 22 | "allwinner,sun4i-apb0-clk" - for the APB0 clock |
18 | "allwinner,sun4i-apb0-gates-clk" - for the APB0 gates on A10 | 23 | "allwinner,sun4i-apb0-gates-clk" - for the APB0 gates on A10 |
19 | "allwinner,sun5i-a13-apb0-gates-clk" - for the APB0 gates on A13 | 24 | "allwinner,sun5i-a13-apb0-gates-clk" - for the APB0 gates on A13 |
25 | "allwinner,sun5i-a10s-apb0-gates-clk" - for the APB0 gates on A10s | ||
26 | "allwinner,sun7i-a20-apb0-gates-clk" - for the APB0 gates on A20 | ||
20 | "allwinner,sun4i-apb1-clk" - for the APB1 clock | 27 | "allwinner,sun4i-apb1-clk" - for the APB1 clock |
21 | "allwinner,sun4i-apb1-mux-clk" - for the APB1 clock muxing | 28 | "allwinner,sun4i-apb1-mux-clk" - for the APB1 clock muxing |
22 | "allwinner,sun4i-apb1-gates-clk" - for the APB1 gates on A10 | 29 | "allwinner,sun4i-apb1-gates-clk" - for the APB1 gates on A10 |
23 | "allwinner,sun5i-a13-apb1-gates-clk" - for the APB1 gates on A13 | 30 | "allwinner,sun5i-a13-apb1-gates-clk" - for the APB1 gates on A13 |
31 | "allwinner,sun5i-a10s-apb1-gates-clk" - for the APB1 gates on A10s | ||
32 | "allwinner,sun6i-a31-apb1-gates-clk" - for the APB1 gates on A31 | ||
33 | "allwinner,sun7i-a20-apb1-gates-clk" - for the APB1 gates on A20 | ||
34 | "allwinner,sun6i-a31-apb2-div-clk" - for the APB2 gates on A31 | ||
35 | "allwinner,sun6i-a31-apb2-gates-clk" - for the APB2 gates on A31 | ||
24 | 36 | ||
25 | Required properties for all clocks: | 37 | Required properties for all clocks: |
26 | - reg : shall be the control register address for the clock. | 38 | - reg : shall be the control register address for the clock. |
diff --git a/Documentation/devicetree/bindings/clock/sunxi/sun5i-a10s-gates.txt b/Documentation/devicetree/bindings/clock/sunxi/sun5i-a10s-gates.txt new file mode 100644 index 000000000000..d24279fe1429 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/sunxi/sun5i-a10s-gates.txt | |||
@@ -0,0 +1,75 @@ | |||
1 | Gate clock outputs | ||
2 | ------------------ | ||
3 | |||
4 | * AXI gates ("allwinner,sun4i-axi-gates-clk") | ||
5 | |||
6 | DRAM 0 | ||
7 | |||
8 | * AHB gates ("allwinner,sun5i-a10s-ahb-gates-clk") | ||
9 | |||
10 | USB0 0 | ||
11 | EHCI0 1 | ||
12 | OHCI0 2 | ||
13 | |||
14 | SS 5 | ||
15 | DMA 6 | ||
16 | BIST 7 | ||
17 | MMC0 8 | ||
18 | MMC1 9 | ||
19 | MMC2 10 | ||
20 | |||
21 | NAND 13 | ||
22 | SDRAM 14 | ||
23 | |||
24 | EMAC 17 | ||
25 | TS 18 | ||
26 | |||
27 | SPI0 20 | ||
28 | SPI1 21 | ||
29 | SPI2 22 | ||
30 | |||
31 | GPS 26 | ||
32 | |||
33 | HSTIMER 28 | ||
34 | |||
35 | VE 32 | ||
36 | |||
37 | TVE 34 | ||
38 | |||
39 | LCD 36 | ||
40 | |||
41 | CSI 40 | ||
42 | |||
43 | HDMI 43 | ||
44 | DE_BE 44 | ||
45 | |||
46 | DE_FE 46 | ||
47 | |||
48 | IEP 51 | ||
49 | MALI400 52 | ||
50 | |||
51 | * APB0 gates ("allwinner,sun5i-a10s-apb0-gates-clk") | ||
52 | |||
53 | CODEC 0 | ||
54 | |||
55 | IIS 3 | ||
56 | |||
57 | PIO 5 | ||
58 | IR 6 | ||
59 | |||
60 | KEYPAD 10 | ||
61 | |||
62 | * APB1 gates ("allwinner,sun5i-a10s-apb1-gates-clk") | ||
63 | |||
64 | I2C0 0 | ||
65 | I2C1 1 | ||
66 | I2C2 2 | ||
67 | |||
68 | UART0 16 | ||
69 | UART1 17 | ||
70 | UART2 18 | ||
71 | UART3 19 | ||
72 | |||
73 | Notation: | ||
74 | [*]: The datasheet didn't mention these, but they are present on AW code | ||
75 | [**]: The datasheet had this marked as "NC" but they are used on AW code | ||
diff --git a/Documentation/devicetree/bindings/clock/sunxi/sun6i-a31-gates.txt b/Documentation/devicetree/bindings/clock/sunxi/sun6i-a31-gates.txt new file mode 100644 index 000000000000..fe44932b5c6b --- /dev/null +++ b/Documentation/devicetree/bindings/clock/sunxi/sun6i-a31-gates.txt | |||
@@ -0,0 +1,83 @@ | |||
1 | Gate clock outputs | ||
2 | ------------------ | ||
3 | |||
4 | * AHB1 gates ("allwinner,sun6i-a31-ahb1-gates-clk") | ||
5 | |||
6 | MIPI DSI 1 | ||
7 | |||
8 | SS 5 | ||
9 | DMA 6 | ||
10 | |||
11 | MMC0 8 | ||
12 | MMC1 9 | ||
13 | MMC2 10 | ||
14 | MMC3 11 | ||
15 | |||
16 | NAND1 12 | ||
17 | NAND0 13 | ||
18 | SDRAM 14 | ||
19 | |||
20 | GMAC 17 | ||
21 | TS 18 | ||
22 | HSTIMER 19 | ||
23 | SPI0 20 | ||
24 | SPI1 21 | ||
25 | SPI2 22 | ||
26 | SPI3 23 | ||
27 | USB_OTG 24 | ||
28 | |||
29 | EHCI0 26 | ||
30 | EHCI1 27 | ||
31 | |||
32 | OHCI0 29 | ||
33 | OHCI1 30 | ||
34 | OHCI2 31 | ||
35 | VE 32 | ||
36 | |||
37 | LCD0 36 | ||
38 | LCD1 37 | ||
39 | |||
40 | CSI 40 | ||
41 | |||
42 | HDMI 43 | ||
43 | DE_BE0 44 | ||
44 | DE_BE1 45 | ||
45 | DE_FE1 46 | ||
46 | DE_FE1 47 | ||
47 | |||
48 | MP 50 | ||
49 | |||
50 | GPU 52 | ||
51 | |||
52 | DEU0 55 | ||
53 | DEU1 56 | ||
54 | DRC0 57 | ||
55 | DRC1 58 | ||
56 | |||
57 | * APB1 gates ("allwinner,sun6i-a31-apb1-gates-clk") | ||
58 | |||
59 | CODEC 0 | ||
60 | |||
61 | DIGITAL MIC 4 | ||
62 | PIO 5 | ||
63 | |||
64 | DAUDIO0 12 | ||
65 | DAUDIO1 13 | ||
66 | |||
67 | * APB2 gates ("allwinner,sun6i-a31-apb2-gates-clk") | ||
68 | |||
69 | I2C0 0 | ||
70 | I2C1 1 | ||
71 | I2C2 2 | ||
72 | I2C3 3 | ||
73 | |||
74 | UART0 16 | ||
75 | UART1 17 | ||
76 | UART2 18 | ||
77 | UART3 19 | ||
78 | UART4 20 | ||
79 | UART5 21 | ||
80 | |||
81 | Notation: | ||
82 | [*]: The datasheet didn't mention these, but they are present on AW code | ||
83 | [**]: The datasheet had this marked as "NC" but they are used on AW code | ||
diff --git a/Documentation/devicetree/bindings/clock/sunxi/sun7i-a20-gates.txt b/Documentation/devicetree/bindings/clock/sunxi/sun7i-a20-gates.txt new file mode 100644 index 000000000000..357f4fdc02ef --- /dev/null +++ b/Documentation/devicetree/bindings/clock/sunxi/sun7i-a20-gates.txt | |||
@@ -0,0 +1,98 @@ | |||
1 | Gate clock outputs | ||
2 | ------------------ | ||
3 | |||
4 | * AXI gates ("allwinner,sun4i-axi-gates-clk") | ||
5 | |||
6 | DRAM 0 | ||
7 | |||
8 | * AHB gates ("allwinner,sun7i-a20-ahb-gates-clk") | ||
9 | |||
10 | USB0 0 | ||
11 | EHCI0 1 | ||
12 | OHCI0 2 | ||
13 | EHCI1 3 | ||
14 | OHCI1 4 | ||
15 | SS 5 | ||
16 | DMA 6 | ||
17 | BIST 7 | ||
18 | MMC0 8 | ||
19 | MMC1 9 | ||
20 | MMC2 10 | ||
21 | MMC3 11 | ||
22 | MS 12 | ||
23 | NAND 13 | ||
24 | SDRAM 14 | ||
25 | |||
26 | ACE 16 | ||
27 | EMAC 17 | ||
28 | TS 18 | ||
29 | |||
30 | SPI0 20 | ||
31 | SPI1 21 | ||
32 | SPI2 22 | ||
33 | SPI3 23 | ||
34 | |||
35 | SATA 25 | ||
36 | |||
37 | HSTIMER 28 | ||
38 | |||
39 | VE 32 | ||
40 | TVD 33 | ||
41 | TVE0 34 | ||
42 | TVE1 35 | ||
43 | LCD0 36 | ||
44 | LCD1 37 | ||
45 | |||
46 | CSI0 40 | ||
47 | CSI1 41 | ||
48 | |||
49 | HDMI1 42 | ||
50 | HDMI0 43 | ||
51 | DE_BE0 44 | ||
52 | DE_BE1 45 | ||
53 | DE_FE1 46 | ||
54 | DE_FE1 47 | ||
55 | |||
56 | GMAC 49 | ||
57 | MP 50 | ||
58 | |||
59 | MALI400 52 | ||
60 | |||
61 | * APB0 gates ("allwinner,sun7i-a20-apb0-gates-clk") | ||
62 | |||
63 | CODEC 0 | ||
64 | SPDIF 1 | ||
65 | AC97 2 | ||
66 | IIS0 3 | ||
67 | IIS1 4 | ||
68 | PIO 5 | ||
69 | IR0 6 | ||
70 | IR1 7 | ||
71 | IIS2 8 | ||
72 | |||
73 | KEYPAD 10 | ||
74 | |||
75 | * APB1 gates ("allwinner,sun7i-a20-apb1-gates-clk") | ||
76 | |||
77 | I2C0 0 | ||
78 | I2C1 1 | ||
79 | I2C2 2 | ||
80 | I2C3 3 | ||
81 | CAN 4 | ||
82 | SCR 5 | ||
83 | PS20 6 | ||
84 | PS21 7 | ||
85 | |||
86 | I2C4 15 | ||
87 | UART0 16 | ||
88 | UART1 17 | ||
89 | UART2 18 | ||
90 | UART3 19 | ||
91 | UART4 20 | ||
92 | UART5 21 | ||
93 | UART6 22 | ||
94 | UART7 23 | ||
95 | |||
96 | Notation: | ||
97 | [*]: The datasheet didn't mention these, but they are present on AW code | ||
98 | [**]: The datasheet had this marked as "NC" but they are used on AW code | ||
diff --git a/Documentation/devicetree/bindings/crypto/fsl-sec6.txt b/Documentation/devicetree/bindings/crypto/fsl-sec6.txt new file mode 100644 index 000000000000..c0a20cd972e3 --- /dev/null +++ b/Documentation/devicetree/bindings/crypto/fsl-sec6.txt | |||
@@ -0,0 +1,157 @@ | |||
1 | SEC 6 is as Freescale's Cryptographic Accelerator and Assurance Module (CAAM). | ||
2 | Currently Freescale powerpc chip C29X is embeded with SEC 6. | ||
3 | SEC 6 device tree binding include: | ||
4 | -SEC 6 Node | ||
5 | -Job Ring Node | ||
6 | -Full Example | ||
7 | |||
8 | ===================================================================== | ||
9 | SEC 6 Node | ||
10 | |||
11 | Description | ||
12 | |||
13 | Node defines the base address of the SEC 6 block. | ||
14 | This block specifies the address range of all global | ||
15 | configuration registers for the SEC 6 block. | ||
16 | For example, In C293, we could see three SEC 6 node. | ||
17 | |||
18 | PROPERTIES | ||
19 | |||
20 | - compatible | ||
21 | Usage: required | ||
22 | Value type: <string> | ||
23 | Definition: Must include "fsl,sec-v6.0". | ||
24 | |||
25 | - fsl,sec-era | ||
26 | Usage: optional | ||
27 | Value type: <u32> | ||
28 | Definition: A standard property. Define the 'ERA' of the SEC | ||
29 | device. | ||
30 | |||
31 | - #address-cells | ||
32 | Usage: required | ||
33 | Value type: <u32> | ||
34 | Definition: A standard property. Defines the number of cells | ||
35 | for representing physical addresses in child nodes. | ||
36 | |||
37 | - #size-cells | ||
38 | Usage: required | ||
39 | Value type: <u32> | ||
40 | Definition: A standard property. Defines the number of cells | ||
41 | for representing the size of physical addresses in | ||
42 | child nodes. | ||
43 | |||
44 | - reg | ||
45 | Usage: required | ||
46 | Value type: <prop-encoded-array> | ||
47 | Definition: A standard property. Specifies the physical | ||
48 | address and length of the SEC 6 configuration registers. | ||
49 | |||
50 | - ranges | ||
51 | Usage: required | ||
52 | Value type: <prop-encoded-array> | ||
53 | Definition: A standard property. Specifies the physical address | ||
54 | range of the SEC 6.0 register space (-SNVS not included). A | ||
55 | triplet that includes the child address, parent address, & | ||
56 | length. | ||
57 | |||
58 | Note: All other standard properties (see the ePAPR) are allowed | ||
59 | but are optional. | ||
60 | |||
61 | EXAMPLE | ||
62 | crypto@a0000 { | ||
63 | compatible = "fsl,sec-v6.0"; | ||
64 | fsl,sec-era = <6>; | ||
65 | #address-cells = <1>; | ||
66 | #size-cells = <1>; | ||
67 | reg = <0xa0000 0x20000>; | ||
68 | ranges = <0 0xa0000 0x20000>; | ||
69 | }; | ||
70 | |||
71 | ===================================================================== | ||
72 | Job Ring (JR) Node | ||
73 | |||
74 | Child of the crypto node defines data processing interface to SEC 6 | ||
75 | across the peripheral bus for purposes of processing | ||
76 | cryptographic descriptors. The specified address | ||
77 | range can be made visible to one (or more) cores. | ||
78 | The interrupt defined for this node is controlled within | ||
79 | the address range of this node. | ||
80 | |||
81 | - compatible | ||
82 | Usage: required | ||
83 | Value type: <string> | ||
84 | Definition: Must include "fsl,sec-v6.0-job-ring". | ||
85 | |||
86 | - reg | ||
87 | Usage: required | ||
88 | Value type: <prop-encoded-array> | ||
89 | Definition: Specifies a two JR parameters: an offset from | ||
90 | the parent physical address and the length the JR registers. | ||
91 | |||
92 | - interrupts | ||
93 | Usage: required | ||
94 | Value type: <prop_encoded-array> | ||
95 | Definition: Specifies the interrupts generated by this | ||
96 | device. The value of the interrupts property | ||
97 | consists of one interrupt specifier. The format | ||
98 | of the specifier is defined by the binding document | ||
99 | describing the node's interrupt parent. | ||
100 | |||
101 | EXAMPLE | ||
102 | jr@1000 { | ||
103 | compatible = "fsl,sec-v6.0-job-ring"; | ||
104 | reg = <0x1000 0x1000>; | ||
105 | interrupts = <49 2 0 0>; | ||
106 | }; | ||
107 | |||
108 | =================================================================== | ||
109 | Full Example | ||
110 | |||
111 | Since some chips may contain more than one SEC, the dtsi contains | ||
112 | only the node contents, not the node itself. A chip using the SEC | ||
113 | should include the dtsi inside each SEC node. Example: | ||
114 | |||
115 | In qoriq-sec6.0.dtsi: | ||
116 | |||
117 | compatible = "fsl,sec-v6.0"; | ||
118 | fsl,sec-era = <6>; | ||
119 | #address-cells = <1>; | ||
120 | #size-cells = <1>; | ||
121 | |||
122 | jr@1000 { | ||
123 | compatible = "fsl,sec-v6.0-job-ring", | ||
124 | "fsl,sec-v5.2-job-ring", | ||
125 | "fsl,sec-v5.0-job-ring", | ||
126 | "fsl,sec-v4.4-job-ring", | ||
127 | "fsl,sec-v4.0-job-ring"; | ||
128 | reg = <0x1000 0x1000>; | ||
129 | }; | ||
130 | |||
131 | jr@2000 { | ||
132 | compatible = "fsl,sec-v6.0-job-ring", | ||
133 | "fsl,sec-v5.2-job-ring", | ||
134 | "fsl,sec-v5.0-job-ring", | ||
135 | "fsl,sec-v4.4-job-ring", | ||
136 | "fsl,sec-v4.0-job-ring"; | ||
137 | reg = <0x2000 0x1000>; | ||
138 | }; | ||
139 | |||
140 | In the C293 device tree, we add the include of public property: | ||
141 | |||
142 | crypto@a0000 { | ||
143 | /include/ "qoriq-sec6.0.dtsi" | ||
144 | } | ||
145 | |||
146 | crypto@a0000 { | ||
147 | reg = <0xa0000 0x20000>; | ||
148 | ranges = <0 0xa0000 0x20000>; | ||
149 | |||
150 | jr@1000 { | ||
151 | interrupts = <49 2 0 0>; | ||
152 | }; | ||
153 | |||
154 | jr@2000 { | ||
155 | interrupts = <50 2 0 0>; | ||
156 | }; | ||
157 | }; | ||
diff --git a/Documentation/devicetree/bindings/dma/atmel-dma.txt b/Documentation/devicetree/bindings/dma/atmel-dma.txt index c280a0e6f42d..e1f343c7a34b 100644 --- a/Documentation/devicetree/bindings/dma/atmel-dma.txt +++ b/Documentation/devicetree/bindings/dma/atmel-dma.txt | |||
@@ -18,14 +18,14 @@ dma0: dma@ffffec00 { | |||
18 | 18 | ||
19 | DMA clients connected to the Atmel DMA controller must use the format | 19 | DMA clients connected to the Atmel DMA controller must use the format |
20 | described in the dma.txt file, using a three-cell specifier for each channel: | 20 | described in the dma.txt file, using a three-cell specifier for each channel: |
21 | a phandle plus two interger cells. | 21 | a phandle plus two integer cells. |
22 | The three cells in order are: | 22 | The three cells in order are: |
23 | 23 | ||
24 | 1. A phandle pointing to the DMA controller. | 24 | 1. A phandle pointing to the DMA controller. |
25 | 2. The memory interface (16 most significant bits), the peripheral interface | 25 | 2. The memory interface (16 most significant bits), the peripheral interface |
26 | (16 less significant bits). | 26 | (16 less significant bits). |
27 | 3. Parameters for the at91 DMA configuration register which are device | 27 | 3. Parameters for the at91 DMA configuration register which are device |
28 | dependant: | 28 | dependent: |
29 | - bit 7-0: peripheral identifier for the hardware handshaking interface. The | 29 | - bit 7-0: peripheral identifier for the hardware handshaking interface. The |
30 | identifier can be different for tx and rx. | 30 | identifier can be different for tx and rx. |
31 | - bit 11-8: FIFO configuration. 0 for half FIFO, 1 for ALAP, 1 for ASAP. | 31 | - bit 11-8: FIFO configuration. 0 for half FIFO, 1 for ALAP, 1 for ASAP. |
diff --git a/Documentation/devicetree/bindings/dma/fsl-imx-dma.txt b/Documentation/devicetree/bindings/dma/fsl-imx-dma.txt index 2717ecb47db9..7bd8847d6394 100644 --- a/Documentation/devicetree/bindings/dma/fsl-imx-dma.txt +++ b/Documentation/devicetree/bindings/dma/fsl-imx-dma.txt | |||
@@ -34,7 +34,7 @@ Clients have to specify the DMA requests with phandles in a list. | |||
34 | Required properties: | 34 | Required properties: |
35 | - dmas: List of one or more DMA request specifiers. One DMA request specifier | 35 | - dmas: List of one or more DMA request specifiers. One DMA request specifier |
36 | consists of a phandle to the DMA controller followed by the integer | 36 | consists of a phandle to the DMA controller followed by the integer |
37 | specifiying the request line. | 37 | specifying the request line. |
38 | - dma-names: List of string identifiers for the DMA requests. For the correct | 38 | - dma-names: List of string identifiers for the DMA requests. For the correct |
39 | names, have a look at the specific client driver. | 39 | names, have a look at the specific client driver. |
40 | 40 | ||
diff --git a/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt b/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt index 68cee4f5539f..4fa814d38321 100644 --- a/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt +++ b/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt | |||
@@ -1,7 +1,12 @@ | |||
1 | * Freescale Smart Direct Memory Access (SDMA) Controller for i.MX | 1 | * Freescale Smart Direct Memory Access (SDMA) Controller for i.MX |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible : Should be "fsl,<chip>-sdma" | 4 | - compatible : Should be "fsl,imx31-sdma", "fsl,imx31-to1-sdma", |
5 | "fsl,imx31-to2-sdma", "fsl,imx35-sdma", "fsl,imx35-to1-sdma", | ||
6 | "fsl,imx35-to2-sdma", "fsl,imx51-sdma", "fsl,imx53-sdma" or | ||
7 | "fsl,imx6q-sdma". The -to variants should be preferred since they | ||
8 | allow to determnine the correct ROM script addresses needed for | ||
9 | the driver to work without additional firmware. | ||
5 | - reg : Should contain SDMA registers location and length | 10 | - reg : Should contain SDMA registers location and length |
6 | - interrupts : Should contain SDMA interrupt | 11 | - interrupts : Should contain SDMA interrupt |
7 | - #dma-cells : Must be <3>. | 12 | - #dma-cells : Must be <3>. |
diff --git a/Documentation/devicetree/bindings/dma/k3dma.txt b/Documentation/devicetree/bindings/dma/k3dma.txt new file mode 100644 index 000000000000..23f8d712c3ce --- /dev/null +++ b/Documentation/devicetree/bindings/dma/k3dma.txt | |||
@@ -0,0 +1,46 @@ | |||
1 | * Hisilicon K3 DMA controller | ||
2 | |||
3 | See dma.txt first | ||
4 | |||
5 | Required properties: | ||
6 | - compatible: Should be "hisilicon,k3-dma-1.0" | ||
7 | - reg: Should contain DMA registers location and length. | ||
8 | - interrupts: Should contain one interrupt shared by all channel | ||
9 | - #dma-cells: see dma.txt, should be 1, para number | ||
10 | - dma-channels: physical channels supported | ||
11 | - dma-requests: virtual channels supported, each virtual channel | ||
12 | have specific request line | ||
13 | - clocks: clock required | ||
14 | |||
15 | Example: | ||
16 | |||
17 | Controller: | ||
18 | dma0: dma@fcd02000 { | ||
19 | compatible = "hisilicon,k3-dma-1.0"; | ||
20 | reg = <0xfcd02000 0x1000>; | ||
21 | #dma-cells = <1>; | ||
22 | dma-channels = <16>; | ||
23 | dma-requests = <27>; | ||
24 | interrupts = <0 12 4>; | ||
25 | clocks = <&pclk>; | ||
26 | status = "disable"; | ||
27 | }; | ||
28 | |||
29 | Client: | ||
30 | Use specific request line passing from dmax | ||
31 | For example, i2c0 read channel request line is 18, while write channel use 19 | ||
32 | |||
33 | i2c0: i2c@fcb08000 { | ||
34 | compatible = "snps,designware-i2c"; | ||
35 | dmas = <&dma0 18 /* read channel */ | ||
36 | &dma0 19>; /* write channel */ | ||
37 | dma-names = "rx", "tx"; | ||
38 | }; | ||
39 | |||
40 | i2c1: i2c@fcb09000 { | ||
41 | compatible = "snps,designware-i2c"; | ||
42 | dmas = <&dma0 20 /* read channel */ | ||
43 | &dma0 21>; /* write channel */ | ||
44 | dma-names = "rx", "tx"; | ||
45 | }; | ||
46 | |||
diff --git a/Documentation/devicetree/bindings/dma/shdma.txt b/Documentation/devicetree/bindings/dma/shdma.txt index c15994aa1939..2a3f3b8946b9 100644 --- a/Documentation/devicetree/bindings/dma/shdma.txt +++ b/Documentation/devicetree/bindings/dma/shdma.txt | |||
@@ -22,42 +22,51 @@ Optional properties (currently unused): | |||
22 | * DMA controller | 22 | * DMA controller |
23 | 23 | ||
24 | Required properties: | 24 | Required properties: |
25 | - compatible: should be "renesas,shdma" | 25 | - compatible: should be of the form "renesas,shdma-<soc>", where <soc> should |
26 | be replaced with the desired SoC model, e.g. | ||
27 | "renesas,shdma-r8a73a4" for the system DMAC on r8a73a4 SoC | ||
26 | 28 | ||
27 | Example: | 29 | Example: |
28 | dmac: dma-mux0 { | 30 | dmac: dma-multiplexer@0 { |
29 | compatible = "renesas,shdma-mux"; | 31 | compatible = "renesas,shdma-mux"; |
30 | #dma-cells = <1>; | 32 | #dma-cells = <1>; |
31 | dma-channels = <6>; | 33 | dma-channels = <20>; |
32 | dma-requests = <256>; | 34 | dma-requests = <256>; |
33 | reg = <0 0>; /* Needed for AUXDATA */ | 35 | #address-cells = <2>; |
34 | #address-cells = <1>; | 36 | #size-cells = <2>; |
35 | #size-cells = <1>; | ||
36 | ranges; | 37 | ranges; |
37 | 38 | ||
38 | dma0: shdma@fe008020 { | 39 | dma0: dma-controller@e6700020 { |
39 | compatible = "renesas,shdma"; | 40 | compatible = "renesas,shdma-r8a73a4"; |
40 | reg = <0xfe008020 0x270>, | 41 | reg = <0 0xe6700020 0 0x89e0>; |
41 | <0xfe009000 0xc>; | ||
42 | interrupt-parent = <&gic>; | 42 | interrupt-parent = <&gic>; |
43 | interrupts = <0 34 4 | 43 | interrupts = <0 220 4 |
44 | 0 28 4 | 44 | 0 200 4 |
45 | 0 29 4 | 45 | 0 201 4 |
46 | 0 30 4 | 46 | 0 202 4 |
47 | 0 31 4 | 47 | 0 203 4 |
48 | 0 32 4 | 48 | 0 204 4 |
49 | 0 33 4>; | 49 | 0 205 4 |
50 | 0 206 4 | ||
51 | 0 207 4 | ||
52 | 0 208 4 | ||
53 | 0 209 4 | ||
54 | 0 210 4 | ||
55 | 0 211 4 | ||
56 | 0 212 4 | ||
57 | 0 213 4 | ||
58 | 0 214 4 | ||
59 | 0 215 4 | ||
60 | 0 216 4 | ||
61 | 0 217 4 | ||
62 | 0 218 4 | ||
63 | 0 219 4>; | ||
50 | interrupt-names = "error", | 64 | interrupt-names = "error", |
51 | "ch0", "ch1", "ch2", "ch3", | 65 | "ch0", "ch1", "ch2", "ch3", |
52 | "ch4", "ch5"; | 66 | "ch4", "ch5", "ch6", "ch7", |
53 | }; | 67 | "ch8", "ch9", "ch10", "ch11", |
54 | 68 | "ch12", "ch13", "ch14", "ch15", | |
55 | dma1: shdma@fe018020 { | 69 | "ch16", "ch17", "ch18", "ch19"; |
56 | ... | ||
57 | }; | ||
58 | |||
59 | dma2: shdma@fe028020 { | ||
60 | ... | ||
61 | }; | 70 | }; |
62 | }; | 71 | }; |
63 | 72 | ||
diff --git a/Documentation/devicetree/bindings/dma/ste-dma40.txt b/Documentation/devicetree/bindings/dma/ste-dma40.txt index bea5b73a7390..a8c21c256baa 100644 --- a/Documentation/devicetree/bindings/dma/ste-dma40.txt +++ b/Documentation/devicetree/bindings/dma/ste-dma40.txt | |||
@@ -37,14 +37,14 @@ Each dmas request consists of 4 cells: | |||
37 | 1. A phandle pointing to the DMA controller | 37 | 1. A phandle pointing to the DMA controller |
38 | 2. Device Type | 38 | 2. Device Type |
39 | 3. The DMA request line number (only when 'use fixed channel' is set) | 39 | 3. The DMA request line number (only when 'use fixed channel' is set) |
40 | 4. A 32bit mask specifying; mode, direction and endianess [NB: This list will grow] | 40 | 4. A 32bit mask specifying; mode, direction and endianness [NB: This list will grow] |
41 | 0x00000001: Mode: | 41 | 0x00000001: Mode: |
42 | Logical channel when unset | 42 | Logical channel when unset |
43 | Physical channel when set | 43 | Physical channel when set |
44 | 0x00000002: Direction: | 44 | 0x00000002: Direction: |
45 | Memory to Device when unset | 45 | Memory to Device when unset |
46 | Device to Memory when set | 46 | Device to Memory when set |
47 | 0x00000004: Endianess: | 47 | 0x00000004: Endianness: |
48 | Little endian when unset | 48 | Little endian when unset |
49 | Big endian when set | 49 | Big endian when set |
50 | 0x00000008: Use fixed channel: | 50 | 0x00000008: Use fixed channel: |
diff --git a/Documentation/devicetree/bindings/extcon/extcon-twl.txt b/Documentation/devicetree/bindings/extcon/extcon-palmas.txt index 58f531ab4df3..7dab6a8f4a0e 100644 --- a/Documentation/devicetree/bindings/extcon/extcon-twl.txt +++ b/Documentation/devicetree/bindings/extcon/extcon-palmas.txt | |||
@@ -1,15 +1,15 @@ | |||
1 | EXTCON FOR TWL CHIPS | 1 | EXTCON FOR PALMAS/TWL CHIPS |
2 | 2 | ||
3 | PALMAS USB COMPARATOR | 3 | PALMAS USB COMPARATOR |
4 | Required Properties: | 4 | Required Properties: |
5 | - compatible : Should be "ti,palmas-usb" or "ti,twl6035-usb" | 5 | - compatible : Should be "ti,palmas-usb" or "ti,twl6035-usb" |
6 | - vbus-supply : phandle to the regulator device tree node. | ||
7 | 6 | ||
8 | Optional Properties: | 7 | Optional Properties: |
9 | - ti,wakeup : To enable the wakeup comparator in probe | 8 | - ti,wakeup : To enable the wakeup comparator in probe |
9 | - ti,enable-id-detection: Perform ID detection. | ||
10 | - ti,enable-vbus-detection: Perform VBUS detection. | ||
10 | 11 | ||
11 | palmas-usb { | 12 | palmas-usb { |
12 | compatible = "ti,twl6035-usb", "ti,palmas-usb"; | 13 | compatible = "ti,twl6035-usb", "ti,palmas-usb"; |
13 | vbus-supply = <&smps10_reg>; | ||
14 | ti,wakeup; | 14 | ti,wakeup; |
15 | }; | 15 | }; |
diff --git a/Documentation/devicetree/bindings/gpio/gpio-mcp23s08.txt b/Documentation/devicetree/bindings/gpio/gpio-mcp23s08.txt index 629d0ef17308..daa30174bcc1 100644 --- a/Documentation/devicetree/bindings/gpio/gpio-mcp23s08.txt +++ b/Documentation/devicetree/bindings/gpio/gpio-mcp23s08.txt | |||
@@ -3,10 +3,17 @@ Microchip MCP2308/MCP23S08/MCP23017/MCP23S17 driver for | |||
3 | 3 | ||
4 | Required properties: | 4 | Required properties: |
5 | - compatible : Should be | 5 | - compatible : Should be |
6 | - "mcp,mcp23s08" for 8 GPIO SPI version | 6 | - "mcp,mcp23s08" (DEPRECATED) for 8 GPIO SPI version |
7 | - "mcp,mcp23s17" for 16 GPIO SPI version | 7 | - "mcp,mcp23s17" (DEPRECATED) for 16 GPIO SPI version |
8 | - "mcp,mcp23008" for 8 GPIO I2C version or | 8 | - "mcp,mcp23008" (DEPRECATED) for 8 GPIO I2C version or |
9 | - "mcp,mcp23017" for 16 GPIO I2C version of the chip | 9 | - "mcp,mcp23017" (DEPRECATED) for 16 GPIO I2C version of the chip |
10 | |||
11 | - "microchip,mcp23s08" for 8 GPIO SPI version | ||
12 | - "microchip,mcp23s17" for 16 GPIO SPI version | ||
13 | - "microchip,mcp23008" for 8 GPIO I2C version or | ||
14 | - "microchip,mcp23017" for 16 GPIO I2C version of the chip | ||
15 | NOTE: Do not use the old mcp prefix any more. It is deprecated and will be | ||
16 | removed. | ||
10 | - #gpio-cells : Should be two. | 17 | - #gpio-cells : Should be two. |
11 | - first cell is the pin number | 18 | - first cell is the pin number |
12 | - second cell is used to specify flags. Flags are currently unused. | 19 | - second cell is used to specify flags. Flags are currently unused. |
@@ -15,10 +22,11 @@ Required properties: | |||
15 | SPI uses this to specify the chipselect line which the chip is | 22 | SPI uses this to specify the chipselect line which the chip is |
16 | connected to. The driver and the SPI variant of the chip support | 23 | connected to. The driver and the SPI variant of the chip support |
17 | multiple chips on the same chipselect. Have a look at | 24 | multiple chips on the same chipselect. Have a look at |
18 | mcp,spi-present-mask below. | 25 | microchip,spi-present-mask below. |
19 | 26 | ||
20 | Required device specific properties (only for SPI chips): | 27 | Required device specific properties (only for SPI chips): |
21 | - mcp,spi-present-mask : This is a present flag, that makes only sense for SPI | 28 | - mcp,spi-present-mask (DEPRECATED) |
29 | - microchip,spi-present-mask : This is a present flag, that makes only sense for SPI | ||
22 | chips - as the name suggests. Multiple SPI chips can share the same | 30 | chips - as the name suggests. Multiple SPI chips can share the same |
23 | SPI chipselect. Set a bit in bit0-7 in this mask to 1 if there is a | 31 | SPI chipselect. Set a bit in bit0-7 in this mask to 1 if there is a |
24 | chip connected with the corresponding spi address set. For example if | 32 | chip connected with the corresponding spi address set. For example if |
@@ -26,11 +34,13 @@ Required device specific properties (only for SPI chips): | |||
26 | which is 0x08. mcp23s08 chip variant only supports bits 0-3. It is not | 34 | which is 0x08. mcp23s08 chip variant only supports bits 0-3. It is not |
27 | possible to mix mcp23s08 and mcp23s17 on the same chipselect. Set at | 35 | possible to mix mcp23s08 and mcp23s17 on the same chipselect. Set at |
28 | least one bit to 1 for SPI chips. | 36 | least one bit to 1 for SPI chips. |
37 | NOTE: Do not use the old mcp prefix any more. It is deprecated and will be | ||
38 | removed. | ||
29 | - spi-max-frequency = The maximum frequency this chip is able to handle | 39 | - spi-max-frequency = The maximum frequency this chip is able to handle |
30 | 40 | ||
31 | Example I2C: | 41 | Example I2C: |
32 | gpiom1: gpio@20 { | 42 | gpiom1: gpio@20 { |
33 | compatible = "mcp,mcp23017"; | 43 | compatible = "microchip,mcp23017"; |
34 | gpio-controller; | 44 | gpio-controller; |
35 | #gpio-cells = <2>; | 45 | #gpio-cells = <2>; |
36 | reg = <0x20>; | 46 | reg = <0x20>; |
@@ -38,7 +48,7 @@ gpiom1: gpio@20 { | |||
38 | 48 | ||
39 | Example SPI: | 49 | Example SPI: |
40 | gpiom1: gpio@0 { | 50 | gpiom1: gpio@0 { |
41 | compatible = "mcp,mcp23s17"; | 51 | compatible = "microchip,mcp23s17"; |
42 | gpio-controller; | 52 | gpio-controller; |
43 | #gpio-cells = <2>; | 53 | #gpio-cells = <2>; |
44 | spi-present-mask = <0x01>; | 54 | spi-present-mask = <0x01>; |
diff --git a/Documentation/devicetree/bindings/gpio/gpio-palmas.txt b/Documentation/devicetree/bindings/gpio/gpio-palmas.txt new file mode 100644 index 000000000000..08b5b52a3ae0 --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/gpio-palmas.txt | |||
@@ -0,0 +1,27 @@ | |||
1 | Palmas GPIO controller bindings | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: | ||
5 | - "ti,palams-gpio" for palma series of the GPIO controller | ||
6 | - "ti,tps80036-gpio" for Palma series device TPS80036. | ||
7 | - "ti,tps65913-gpio" for palma series device TPS65913. | ||
8 | - "ti,tps65914-gpio" for palma series device TPS65914. | ||
9 | - #gpio-cells : Should be two. | ||
10 | - first cell is the gpio pin number | ||
11 | - second cell is used to specify the gpio polarity: | ||
12 | 0 = active high | ||
13 | 1 = active low | ||
14 | - gpio-controller : Marks the device node as a GPIO controller. | ||
15 | |||
16 | Note: This gpio node will be sub node of palmas node. | ||
17 | |||
18 | Example: | ||
19 | palmas: tps65913@58 { | ||
20 | ::::::::::: | ||
21 | palmas_gpio: palmas_gpio { | ||
22 | compatible = "ti,palmas-gpio"; | ||
23 | gpio-controller; | ||
24 | #gpio-cells = <2>; | ||
25 | }; | ||
26 | ::::::::::: | ||
27 | }; | ||
diff --git a/Documentation/devicetree/bindings/gpio/gpio-tz1090-pdc.txt b/Documentation/devicetree/bindings/gpio/gpio-tz1090-pdc.txt new file mode 100644 index 000000000000..1fd98ffa8cb7 --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/gpio-tz1090-pdc.txt | |||
@@ -0,0 +1,45 @@ | |||
1 | ImgTec TZ1090 PDC GPIO Controller | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: Compatible property value should be "img,tz1090-pdc-gpio". | ||
5 | |||
6 | - reg: Physical base address of the controller and length of memory mapped | ||
7 | region. This starts at and cover the SOC_GPIO_CONTROL registers. | ||
8 | |||
9 | - gpio-controller: Specifies that the node is a gpio controller. | ||
10 | |||
11 | - #gpio-cells: Should be 2. The syntax of the gpio specifier used by client | ||
12 | nodes should have the following values. | ||
13 | <[phandle of the gpio controller node] | ||
14 | [PDC gpio number] | ||
15 | [gpio flags]> | ||
16 | |||
17 | Values for gpio specifier: | ||
18 | - GPIO number: a value in the range 0 to 6. | ||
19 | - GPIO flags: bit field of flags, as defined in <dt-bindings/gpio/gpio.h>. | ||
20 | Only the following flags are supported: | ||
21 | GPIO_ACTIVE_HIGH | ||
22 | GPIO_ACTIVE_LOW | ||
23 | |||
24 | Optional properties: | ||
25 | - gpio-ranges: Mapping to pin controller pins (as described in | ||
26 | Documentation/devicetree/bindings/gpio/gpio.txt) | ||
27 | |||
28 | - interrupts: Individual syswake interrupts (other GPIOs cannot interrupt) | ||
29 | |||
30 | |||
31 | Example: | ||
32 | |||
33 | pdc_gpios: gpio-controller@02006500 { | ||
34 | gpio-controller; | ||
35 | #gpio-cells = <2>; | ||
36 | |||
37 | compatible = "img,tz1090-pdc-gpio"; | ||
38 | reg = <0x02006500 0x100>; | ||
39 | |||
40 | interrupt-parent = <&pdc>; | ||
41 | interrupts = <8 IRQ_TYPE_NONE>, /* Syswake 0 */ | ||
42 | <9 IRQ_TYPE_NONE>, /* Syswake 1 */ | ||
43 | <10 IRQ_TYPE_NONE>; /* Syswake 2 */ | ||
44 | gpio-ranges = <&pdc_pinctrl 0 0 7>; | ||
45 | }; | ||
diff --git a/Documentation/devicetree/bindings/gpio/gpio-tz1090.txt b/Documentation/devicetree/bindings/gpio/gpio-tz1090.txt new file mode 100644 index 000000000000..174cdf309170 --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/gpio-tz1090.txt | |||
@@ -0,0 +1,88 @@ | |||
1 | ImgTec TZ1090 GPIO Controller | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: Compatible property value should be "img,tz1090-gpio". | ||
5 | |||
6 | - reg: Physical base address of the controller and length of memory mapped | ||
7 | region. | ||
8 | |||
9 | - #address-cells: Should be 1 (for bank subnodes) | ||
10 | |||
11 | - #size-cells: Should be 0 (for bank subnodes) | ||
12 | |||
13 | - Each bank of GPIOs should have a subnode to represent it. | ||
14 | |||
15 | Bank subnode required properties: | ||
16 | - reg: Index of bank in the range 0 to 2. | ||
17 | |||
18 | - gpio-controller: Specifies that the node is a gpio controller. | ||
19 | |||
20 | - #gpio-cells: Should be 2. The syntax of the gpio specifier used by client | ||
21 | nodes should have the following values. | ||
22 | <[phandle of the gpio controller node] | ||
23 | [gpio number within the gpio bank] | ||
24 | [gpio flags]> | ||
25 | |||
26 | Values for gpio specifier: | ||
27 | - GPIO number: a value in the range 0 to 29. | ||
28 | - GPIO flags: bit field of flags, as defined in <dt-bindings/gpio/gpio.h>. | ||
29 | Only the following flags are supported: | ||
30 | GPIO_ACTIVE_HIGH | ||
31 | GPIO_ACTIVE_LOW | ||
32 | |||
33 | Bank subnode optional properties: | ||
34 | - gpio-ranges: Mapping to pin controller pins (as described in | ||
35 | Documentation/devicetree/bindings/gpio/gpio.txt) | ||
36 | |||
37 | - interrupts: Interrupt for the entire bank | ||
38 | |||
39 | - interrupt-controller: Specifies that the node is an interrupt controller | ||
40 | |||
41 | - #interrupt-cells: Should be 2. The syntax of the interrupt specifier used by | ||
42 | client nodes should have the following values. | ||
43 | <[phandle of the interurupt controller] | ||
44 | [gpio number within the gpio bank] | ||
45 | [irq flags]> | ||
46 | |||
47 | Values for irq specifier: | ||
48 | - GPIO number: a value in the range 0 to 29 | ||
49 | - IRQ flags: value to describe edge and level triggering, as defined in | ||
50 | <dt-bindings/interrupt-controller/irq.h>. Only the following flags are | ||
51 | supported: | ||
52 | IRQ_TYPE_EDGE_RISING | ||
53 | IRQ_TYPE_EDGE_FALLING | ||
54 | IRQ_TYPE_EDGE_BOTH | ||
55 | IRQ_TYPE_LEVEL_HIGH | ||
56 | IRQ_TYPE_LEVEL_LOW | ||
57 | |||
58 | |||
59 | |||
60 | Example: | ||
61 | |||
62 | gpios: gpio-controller@02005800 { | ||
63 | #address-cells = <1>; | ||
64 | #size-cells = <0>; | ||
65 | compatible = "img,tz1090-gpio"; | ||
66 | reg = <0x02005800 0x90>; | ||
67 | |||
68 | /* bank 0 with an interrupt */ | ||
69 | gpios0: bank@0 { | ||
70 | #gpio-cells = <2>; | ||
71 | #interrupt-cells = <2>; | ||
72 | reg = <0>; | ||
73 | interrupts = <13 IRQ_TYPE_LEVEL_HIGH>; | ||
74 | gpio-controller; | ||
75 | gpio-ranges = <&pinctrl 0 0 30>; | ||
76 | interrupt-controller; | ||
77 | }; | ||
78 | |||
79 | /* bank 2 without interrupt */ | ||
80 | gpios2: bank@2 { | ||
81 | #gpio-cells = <2>; | ||
82 | reg = <2>; | ||
83 | gpio-controller; | ||
84 | gpio-ranges = <&pinctrl 0 60 30>; | ||
85 | }; | ||
86 | }; | ||
87 | |||
88 | |||
diff --git a/Documentation/devicetree/bindings/gpio/gpio.txt b/Documentation/devicetree/bindings/gpio/gpio.txt index d933af370697..6cec6ff20d2e 100644 --- a/Documentation/devicetree/bindings/gpio/gpio.txt +++ b/Documentation/devicetree/bindings/gpio/gpio.txt | |||
@@ -75,23 +75,36 @@ Example of two SOC GPIO banks defined as gpio-controller nodes: | |||
75 | gpio-controller; | 75 | gpio-controller; |
76 | }; | 76 | }; |
77 | 77 | ||
78 | 2.1) gpio-controller and pinctrl subsystem | 78 | 2.1) gpio- and pin-controller interaction |
79 | ------------------------------------------ | 79 | ----------------------------------------- |
80 | 80 | ||
81 | gpio-controller on a SOC might be tightly coupled with the pinctrl | 81 | Some or all of the GPIOs provided by a GPIO controller may be routed to pins |
82 | subsystem, in the sense that the pins can be used by other functions | 82 | on the package via a pin controller. This allows muxing those pins between |
83 | together with optional gpio feature. | 83 | GPIO and other functions. |
84 | 84 | ||
85 | While the pin allocation is totally managed by the pin ctrl subsystem, | 85 | It is useful to represent which GPIOs correspond to which pins on which pin |
86 | gpio (under gpiolib) is still maintained by gpio drivers. It may happen | 86 | controllers. The gpio-ranges property described below represents this, and |
87 | that different pin ranges in a SoC is managed by different gpio drivers. | 87 | contains information structures as follows: |
88 | 88 | ||
89 | This makes it logical to let gpio drivers announce their pin ranges to | 89 | gpio-range-list ::= <single-gpio-range> [gpio-range-list] |
90 | the pin ctrl subsystem and call 'pinctrl_request_gpio' in order to | 90 | single-gpio-range ::= |
91 | request the corresponding pin before any gpio usage. | 91 | <pinctrl-phandle> <gpio-base> <pinctrl-base> <count> |
92 | gpio-phandle : phandle to pin controller node. | ||
93 | gpio-base : Base GPIO ID in the GPIO controller | ||
94 | pinctrl-base : Base pinctrl pin ID in the pin controller | ||
95 | count : The number of GPIOs/pins in this range | ||
92 | 96 | ||
93 | For this, the gpio controller can use a pinctrl phandle and pins to | 97 | The "pin controller node" mentioned above must conform to the bindings |
94 | announce the pinrange to the pin ctrl subsystem. For example, | 98 | described in ../pinctrl/pinctrl-bindings.txt. |
99 | |||
100 | Previous versions of this binding required all pin controller nodes that | ||
101 | were referenced by any gpio-ranges property to contain a property named | ||
102 | #gpio-range-cells with value <3>. This requirement is now deprecated. | ||
103 | However, that property may still exist in older device trees for | ||
104 | compatibility reasons, and would still be required even in new device | ||
105 | trees that need to be compatible with older software. | ||
106 | |||
107 | Example: | ||
95 | 108 | ||
96 | qe_pio_e: gpio-controller@1460 { | 109 | qe_pio_e: gpio-controller@1460 { |
97 | #gpio-cells = <2>; | 110 | #gpio-cells = <2>; |
@@ -99,16 +112,8 @@ announce the pinrange to the pin ctrl subsystem. For example, | |||
99 | reg = <0x1460 0x18>; | 112 | reg = <0x1460 0x18>; |
100 | gpio-controller; | 113 | gpio-controller; |
101 | gpio-ranges = <&pinctrl1 0 20 10>, <&pinctrl2 10 50 20>; | 114 | gpio-ranges = <&pinctrl1 0 20 10>, <&pinctrl2 10 50 20>; |
115 | }; | ||
102 | 116 | ||
103 | } | 117 | Here, a single GPIO controller has GPIOs 0..9 routed to pin controller |
104 | 118 | pinctrl1's pins 20..29, and GPIOs 10..19 routed to pin controller pinctrl2's | |
105 | where, | 119 | pins 50..59. |
106 | &pinctrl1 and &pinctrl2 is the phandle to the pinctrl DT node. | ||
107 | |||
108 | Next values specify the base pin and number of pins for the range | ||
109 | handled by 'qe_pio_e' gpio. In the given example from base pin 20 to | ||
110 | pin 29 under pinctrl1 with gpio offset 0 and pin 50 to pin 69 under | ||
111 | pinctrl2 with gpio offset 10 is handled by this gpio controller. | ||
112 | |||
113 | The pinctrl node must have "#gpio-range-cells" property to show number of | ||
114 | arguments to pass with phandle from gpio controllers node. | ||
diff --git a/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt b/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt index 9b3f1d4a88d6..66416261e14d 100644 --- a/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt +++ b/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt | |||
@@ -10,8 +10,9 @@ Required properties: | |||
10 | There're three gpio interrupts in arch-pxa, and they're gpio0, | 10 | There're three gpio interrupts in arch-pxa, and they're gpio0, |
11 | gpio1 and gpio_mux. There're only one gpio interrupt in arch-mmp, | 11 | gpio1 and gpio_mux. There're only one gpio interrupt in arch-mmp, |
12 | gpio_mux. | 12 | gpio_mux. |
13 | - interrupt-name : Should be the name of irq resource. Each interrupt | 13 | - interrupt-names : Should be the names of irq resources. Each interrupt |
14 | binds its interrupt-name. | 14 | uses its own interrupt name, so there should be as many interrupt names |
15 | as referenced interrups. | ||
15 | - interrupt-controller : Identifies the node as an interrupt controller. | 16 | - interrupt-controller : Identifies the node as an interrupt controller. |
16 | - #interrupt-cells: Specifies the number of cells needed to encode an | 17 | - #interrupt-cells: Specifies the number of cells needed to encode an |
17 | interrupt source. | 18 | interrupt source. |
@@ -24,7 +25,7 @@ Example: | |||
24 | compatible = "marvell,mmp-gpio"; | 25 | compatible = "marvell,mmp-gpio"; |
25 | reg = <0xd4019000 0x1000>; | 26 | reg = <0xd4019000 0x1000>; |
26 | interrupts = <49>; | 27 | interrupts = <49>; |
27 | interrupt-name = "gpio_mux"; | 28 | interrupt-names = "gpio_mux"; |
28 | gpio-controller; | 29 | gpio-controller; |
29 | #gpio-cells = <1>; | 30 | #gpio-cells = <1>; |
30 | interrupt-controller; | 31 | interrupt-controller; |
diff --git a/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt b/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt index cb3dc7bcd8e6..8655df9440d5 100644 --- a/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt +++ b/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt | |||
@@ -23,6 +23,10 @@ Required Properties: | |||
23 | Please refer to gpio.txt in this directory for details of gpio-ranges property | 23 | Please refer to gpio.txt in this directory for details of gpio-ranges property |
24 | and the common GPIO bindings used by client devices. | 24 | and the common GPIO bindings used by client devices. |
25 | 25 | ||
26 | The GPIO controller also acts as an interrupt controller. It uses the default | ||
27 | two cells specifier as described in Documentation/devicetree/bindings/ | ||
28 | interrupt-controller/interrupts.txt. | ||
29 | |||
26 | Example: R8A7779 (R-Car H1) GPIO controller nodes | 30 | Example: R8A7779 (R-Car H1) GPIO controller nodes |
27 | 31 | ||
28 | gpio0: gpio@ffc40000 { | 32 | gpio0: gpio@ffc40000 { |
@@ -33,6 +37,8 @@ Example: R8A7779 (R-Car H1) GPIO controller nodes | |||
33 | #gpio-cells = <2>; | 37 | #gpio-cells = <2>; |
34 | gpio-controller; | 38 | gpio-controller; |
35 | gpio-ranges = <&pfc 0 0 32>; | 39 | gpio-ranges = <&pfc 0 0 32>; |
40 | interrupt-controller; | ||
41 | #interrupt-cells = <2>; | ||
36 | }; | 42 | }; |
37 | ... | 43 | ... |
38 | gpio6: gpio@ffc46000 { | 44 | gpio6: gpio@ffc46000 { |
@@ -43,4 +49,6 @@ Example: R8A7779 (R-Car H1) GPIO controller nodes | |||
43 | #gpio-cells = <2>; | 49 | #gpio-cells = <2>; |
44 | gpio-controller; | 50 | gpio-controller; |
45 | gpio-ranges = <&pfc 0 192 9>; | 51 | gpio-ranges = <&pfc 0 192 9>; |
52 | interrupt-controller; | ||
53 | #interrupt-cells = <2>; | ||
46 | }; | 54 | }; |
diff --git a/Documentation/devicetree/bindings/gpu/samsung-g2d.txt b/Documentation/devicetree/bindings/gpu/samsung-g2d.txt index 3f454ffc654a..c4f358dafdaa 100644 --- a/Documentation/devicetree/bindings/gpu/samsung-g2d.txt +++ b/Documentation/devicetree/bindings/gpu/samsung-g2d.txt | |||
@@ -11,8 +11,11 @@ Required properties: | |||
11 | 11 | ||
12 | - interrupts : G2D interrupt number to the CPU. | 12 | - interrupts : G2D interrupt number to the CPU. |
13 | - clocks : from common clock binding: handle to G2D clocks. | 13 | - clocks : from common clock binding: handle to G2D clocks. |
14 | - clock-names : from common clock binding: must contain "sclk_fimg2d" and | 14 | - clock-names : names of clocks listed in clocks property, in the same |
15 | "fimg2d", corresponding to entries in the clocks property. | 15 | order, depending on SoC type: |
16 | - for S5PV210 and Exynos4 based SoCs: "fimg2d" and | ||
17 | "sclk_fimg2d" | ||
18 | - for Exynos5250 SoC: "fimg2d". | ||
16 | 19 | ||
17 | Example: | 20 | Example: |
18 | g2d@12800000 { | 21 | g2d@12800000 { |
diff --git a/Documentation/devicetree/bindings/gpu/samsung-rotator.txt b/Documentation/devicetree/bindings/gpu/samsung-rotator.txt new file mode 100644 index 000000000000..82cd1ed0be93 --- /dev/null +++ b/Documentation/devicetree/bindings/gpu/samsung-rotator.txt | |||
@@ -0,0 +1,27 @@ | |||
1 | * Samsung Image Rotator | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : value should be one of the following: | ||
5 | (a) "samsung,exynos4210-rotator" for Rotator IP in Exynos4210 | ||
6 | (b) "samsung,exynos4212-rotator" for Rotator IP in Exynos4212/4412 | ||
7 | (c) "samsung,exynos5250-rotator" for Rotator IP in Exynos5250 | ||
8 | |||
9 | - reg : Physical base address of the IP registers and length of memory | ||
10 | mapped region. | ||
11 | |||
12 | - interrupts : Interrupt specifier for rotator interrupt, according to format | ||
13 | specific to interrupt parent. | ||
14 | |||
15 | - clocks : Clock specifier for rotator clock, according to generic clock | ||
16 | bindings. (See Documentation/devicetree/bindings/clock/exynos*.txt) | ||
17 | |||
18 | - clock-names : Names of clocks. For exynos rotator, it should be "rotator". | ||
19 | |||
20 | Example: | ||
21 | rotator@12810000 { | ||
22 | compatible = "samsung,exynos4210-rotator"; | ||
23 | reg = <0x12810000 0x1000>; | ||
24 | interrupts = <0 83 0>; | ||
25 | clocks = <&clock 278>; | ||
26 | clock-names = "rotator"; | ||
27 | }; | ||
diff --git a/Documentation/devicetree/bindings/hid/hid-over-i2c.txt b/Documentation/devicetree/bindings/hid/hid-over-i2c.txt new file mode 100644 index 000000000000..488edcb264c4 --- /dev/null +++ b/Documentation/devicetree/bindings/hid/hid-over-i2c.txt | |||
@@ -0,0 +1,28 @@ | |||
1 | * HID over I2C Device-Tree bindings | ||
2 | |||
3 | HID over I2C provides support for various Human Interface Devices over the | ||
4 | I2C bus. These devices can be for example touchpads, keyboards, touch screens | ||
5 | or sensors. | ||
6 | |||
7 | The specification has been written by Microsoft and is currently available here: | ||
8 | http://msdn.microsoft.com/en-us/library/windows/hardware/hh852380.aspx | ||
9 | |||
10 | If this binding is used, the kernel module i2c-hid will handle the communication | ||
11 | with the device and the generic hid core layer will handle the protocol. | ||
12 | |||
13 | Required properties: | ||
14 | - compatible: must be "hid-over-i2c" | ||
15 | - reg: i2c slave address | ||
16 | - hid-descr-addr: HID descriptor address | ||
17 | - interrupt-parent: the phandle for the interrupt controller | ||
18 | - interrupts: interrupt line | ||
19 | |||
20 | Example: | ||
21 | |||
22 | i2c-hid-dev@2c { | ||
23 | compatible = "hid-over-i2c"; | ||
24 | reg = <0x2c>; | ||
25 | hid-descr-addr = <0x0020>; | ||
26 | interrupt-parent = <&gpx3>; | ||
27 | interrupts = <3 2>; | ||
28 | }; | ||
diff --git a/Documentation/devicetree/bindings/i2c/i2c-imx.txt b/Documentation/devicetree/bindings/i2c/i2c-imx.txt index 3614242e7732..4a8513e44740 100644 --- a/Documentation/devicetree/bindings/i2c/i2c-imx.txt +++ b/Documentation/devicetree/bindings/i2c/i2c-imx.txt | |||
@@ -1,7 +1,10 @@ | |||
1 | * Freescale Inter IC (I2C) and High Speed Inter IC (HS-I2C) for i.MX | 1 | * Freescale Inter IC (I2C) and High Speed Inter IC (HS-I2C) for i.MX |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible : Should be "fsl,<chip>-i2c" | 4 | - compatible : |
5 | - "fsl,imx1-i2c" for I2C compatible with the one integrated on i.MX1 SoC | ||
6 | - "fsl,imx21-i2c" for I2C compatible with the one integrated on i.MX21 SoC | ||
7 | - "fsl,vf610-i2c" for I2C compatible with the one integrated on Vybrid vf610 SoC | ||
5 | - reg : Should contain I2C/HS-I2C registers location and length | 8 | - reg : Should contain I2C/HS-I2C registers location and length |
6 | - interrupts : Should contain I2C/HS-I2C interrupt | 9 | - interrupts : Should contain I2C/HS-I2C interrupt |
7 | 10 | ||
diff --git a/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt b/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt index 6113f9275f42..82e8f6f17179 100644 --- a/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt +++ b/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt | |||
@@ -5,6 +5,7 @@ Required properties : | |||
5 | 5 | ||
6 | - reg : Offset and length of the register set for the device | 6 | - reg : Offset and length of the register set for the device |
7 | - compatible : Should be "marvell,mv64xxx-i2c" or "allwinner,sun4i-i2c" | 7 | - compatible : Should be "marvell,mv64xxx-i2c" or "allwinner,sun4i-i2c" |
8 | or "marvell,mv78230-i2c" | ||
8 | - interrupts : The interrupt number | 9 | - interrupts : The interrupt number |
9 | 10 | ||
10 | Optional properties : | 11 | Optional properties : |
@@ -20,3 +21,12 @@ Examples: | |||
20 | interrupts = <29>; | 21 | interrupts = <29>; |
21 | clock-frequency = <100000>; | 22 | clock-frequency = <100000>; |
22 | }; | 23 | }; |
24 | |||
25 | For the Armada XP: | ||
26 | |||
27 | i2c@11000 { | ||
28 | compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c"; | ||
29 | reg = <0x11000 0x100>; | ||
30 | interrupts = <29>; | ||
31 | clock-frequency = <100000>; | ||
32 | }; | ||
diff --git a/Documentation/devicetree/bindings/iio/accel/bma180.txt b/Documentation/devicetree/bindings/iio/accel/bma180.txt new file mode 100644 index 000000000000..c5933573e0f6 --- /dev/null +++ b/Documentation/devicetree/bindings/iio/accel/bma180.txt | |||
@@ -0,0 +1,24 @@ | |||
1 | * Bosch BMA180 triaxial acceleration sensor | ||
2 | |||
3 | http://omapworld.com/BMA180_111_1002839.pdf | ||
4 | |||
5 | Required properties: | ||
6 | |||
7 | - compatible : should be "bosch,bma180" | ||
8 | - reg : the I2C address of the sensor | ||
9 | |||
10 | Optional properties: | ||
11 | |||
12 | - interrupt-parent : should be the phandle for the interrupt controller | ||
13 | |||
14 | - interrupts : interrupt mapping for GPIO IRQ, it should by configured with | ||
15 | flags IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_EDGE_RISING | ||
16 | |||
17 | Example: | ||
18 | |||
19 | bma180@40 { | ||
20 | compatible = "bosch,bma180"; | ||
21 | reg = <0x40>; | ||
22 | interrupt-parent = <&gpio6>; | ||
23 | interrupts = <18 (IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_EDGE_RISING)>; | ||
24 | }; | ||
diff --git a/Documentation/devicetree/bindings/iio/adc/nuvoton-nau7802.txt b/Documentation/devicetree/bindings/iio/adc/nuvoton-nau7802.txt new file mode 100644 index 000000000000..e9582e6fe350 --- /dev/null +++ b/Documentation/devicetree/bindings/iio/adc/nuvoton-nau7802.txt | |||
@@ -0,0 +1,18 @@ | |||
1 | * Nuvoton NAU7802 Analog to Digital Converter (ADC) | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: Should be "nuvoton,nau7802" | ||
5 | - reg: Should contain the ADC I2C address | ||
6 | |||
7 | Optional properties: | ||
8 | - nuvoton,vldo: Internal reference voltage in millivolts to be | ||
9 | configured valid values are between 2400 mV and 4500 mV. | ||
10 | - interrupts: IRQ line for the ADC. If not used the driver will use | ||
11 | polling. | ||
12 | |||
13 | Example: | ||
14 | adc2: nau7802@2a { | ||
15 | compatible = "nuvoton,nau7802"; | ||
16 | reg = <0x2a>; | ||
17 | nuvoton,vldo = <3000>; | ||
18 | }; | ||
diff --git a/Documentation/devicetree/bindings/iio/light/apds9300.txt b/Documentation/devicetree/bindings/iio/light/apds9300.txt new file mode 100644 index 000000000000..d6f66c73ddbf --- /dev/null +++ b/Documentation/devicetree/bindings/iio/light/apds9300.txt | |||
@@ -0,0 +1,22 @@ | |||
1 | * Avago APDS9300 ambient light sensor | ||
2 | |||
3 | http://www.avagotech.com/docs/AV02-1077EN | ||
4 | |||
5 | Required properties: | ||
6 | |||
7 | - compatible : should be "avago,apds9300" | ||
8 | - reg : the I2C address of the sensor | ||
9 | |||
10 | Optional properties: | ||
11 | |||
12 | - interrupt-parent : should be the phandle for the interrupt controller | ||
13 | - interrupts : interrupt mapping for GPIO IRQ | ||
14 | |||
15 | Example: | ||
16 | |||
17 | apds9300@39 { | ||
18 | compatible = "avago,apds9300"; | ||
19 | reg = <0x39>; | ||
20 | interrupt-parent = <&gpio2>; | ||
21 | interrupts = <29 8>; | ||
22 | }; | ||
diff --git a/Documentation/devicetree/bindings/input/input-reset.txt b/Documentation/devicetree/bindings/input/input-reset.txt new file mode 100644 index 000000000000..2bb2626fdb78 --- /dev/null +++ b/Documentation/devicetree/bindings/input/input-reset.txt | |||
@@ -0,0 +1,33 @@ | |||
1 | Input: sysrq reset sequence | ||
2 | |||
3 | A simple binding to represent a set of keys as described in | ||
4 | include/uapi/linux/input.h. This is to communicate a sequence of keys to the | ||
5 | sysrq driver. Upon holding the keys for a specified amount of time (if | ||
6 | specified) the system is sync'ed and reset. | ||
7 | |||
8 | Key sequences are global to the system but all the keys in a set must be coming | ||
9 | from the same input device. | ||
10 | |||
11 | The /chosen node should contain a 'linux,sysrq-reset-seq' child node to define | ||
12 | a set of keys. | ||
13 | |||
14 | Required property: | ||
15 | sysrq-reset-seq: array of Linux keycodes, one keycode per cell. | ||
16 | |||
17 | Optional property: | ||
18 | timeout-ms: duration keys must be pressed together in milliseconds before | ||
19 | generating a sysrq. If omitted the system is rebooted immediately when a valid | ||
20 | sequence has been recognized. | ||
21 | |||
22 | Example: | ||
23 | |||
24 | chosen { | ||
25 | linux,sysrq-reset-seq { | ||
26 | keyset = <0x03 | ||
27 | 0x04 | ||
28 | 0x0a>; | ||
29 | timeout-ms = <3000>; | ||
30 | }; | ||
31 | }; | ||
32 | |||
33 | Would represent KEY_2, KEY_3 and KEY_9. | ||
diff --git a/Documentation/devicetree/bindings/input/touchscreen/egalax-ts.txt b/Documentation/devicetree/bindings/input/touchscreen/egalax-ts.txt index df70318a617f..49fa14ed155c 100644 --- a/Documentation/devicetree/bindings/input/touchscreen/egalax-ts.txt +++ b/Documentation/devicetree/bindings/input/touchscreen/egalax-ts.txt | |||
@@ -6,7 +6,7 @@ Required properties: | |||
6 | - interrupt-parent: the phandle for the interrupt controller | 6 | - interrupt-parent: the phandle for the interrupt controller |
7 | - interrupts: touch controller interrupt | 7 | - interrupts: touch controller interrupt |
8 | - wakeup-gpios: the gpio pin to be used for waking up the controller | 8 | - wakeup-gpios: the gpio pin to be used for waking up the controller |
9 | as well as uased as irq pin | 9 | and also used as irq pin |
10 | 10 | ||
11 | Example: | 11 | Example: |
12 | 12 | ||
diff --git a/Documentation/devicetree/bindings/media/i2c/adv7343.txt b/Documentation/devicetree/bindings/media/i2c/adv7343.txt new file mode 100644 index 000000000000..5653bc2428b8 --- /dev/null +++ b/Documentation/devicetree/bindings/media/i2c/adv7343.txt | |||
@@ -0,0 +1,48 @@ | |||
1 | * Analog Devices adv7343 video encoder | ||
2 | |||
3 | The ADV7343 are high speed, digital-to-analog video encoders in a 64-lead LQFP | ||
4 | package. Six high speed, 3.3 V, 11-bit video DACs provide support for composite | ||
5 | (CVBS), S-Video (Y-C), and component (YPrPb/RGB) analog outputs in standard | ||
6 | definition (SD), enhanced definition (ED), or high definition (HD) video | ||
7 | formats. | ||
8 | |||
9 | Required Properties : | ||
10 | - compatible: Must be "adi,adv7343" | ||
11 | |||
12 | Optional Properties : | ||
13 | - adi,power-mode-sleep-mode: on enable the current consumption is reduced to | ||
14 | micro ampere level. All DACs and the internal PLL | ||
15 | circuit are disabled. | ||
16 | - adi,power-mode-pll-ctrl: PLL and oversampling control. This control allows | ||
17 | internal PLL 1 circuit to be powered down and the | ||
18 | oversampling to be switched off. | ||
19 | - ad,adv7343-power-mode-dac: array configuring the power on/off DAC's 1..6, | ||
20 | 0 = OFF and 1 = ON, Default value when this | ||
21 | property is not specified is <0 0 0 0 0 0>. | ||
22 | - ad,adv7343-sd-config-dac-out: array configure SD DAC Output's 1 and 2, 0 = OFF | ||
23 | and 1 = ON, Default value when this property is | ||
24 | not specified is <0 0>. | ||
25 | |||
26 | Example: | ||
27 | |||
28 | i2c0@1c22000 { | ||
29 | ... | ||
30 | ... | ||
31 | |||
32 | adv7343@2a { | ||
33 | compatible = "adi,adv7343"; | ||
34 | reg = <0x2a>; | ||
35 | |||
36 | port { | ||
37 | adv7343_1: endpoint { | ||
38 | adi,power-mode-sleep-mode; | ||
39 | adi,power-mode-pll-ctrl; | ||
40 | /* Use DAC1..3, DAC6 */ | ||
41 | adi,dac-enable = <1 1 1 0 0 1>; | ||
42 | /* Use SD DAC output 1 */ | ||
43 | adi,sd-dac-enable = <1 0>; | ||
44 | }; | ||
45 | }; | ||
46 | }; | ||
47 | ... | ||
48 | }; | ||
diff --git a/Documentation/devicetree/bindings/media/i2c/ths8200.txt b/Documentation/devicetree/bindings/media/i2c/ths8200.txt new file mode 100644 index 000000000000..285f6ae7dfa9 --- /dev/null +++ b/Documentation/devicetree/bindings/media/i2c/ths8200.txt | |||
@@ -0,0 +1,19 @@ | |||
1 | * Texas Instruments THS8200 video encoder | ||
2 | |||
3 | The ths8200 device is a digital to analog converter used in DVD players, video | ||
4 | recorders, set-top boxes. | ||
5 | |||
6 | Required Properties : | ||
7 | - compatible : value must be "ti,ths8200" | ||
8 | |||
9 | Example: | ||
10 | |||
11 | i2c0@1c22000 { | ||
12 | ... | ||
13 | ... | ||
14 | ths8200@5c { | ||
15 | compatible = "ti,ths8200"; | ||
16 | reg = <0x5c>; | ||
17 | }; | ||
18 | ... | ||
19 | }; | ||
diff --git a/Documentation/devicetree/bindings/media/i2c/tvp7002.txt b/Documentation/devicetree/bindings/media/i2c/tvp7002.txt new file mode 100644 index 000000000000..5f28b5d9abcc --- /dev/null +++ b/Documentation/devicetree/bindings/media/i2c/tvp7002.txt | |||
@@ -0,0 +1,53 @@ | |||
1 | * Texas Instruments TV7002 video decoder | ||
2 | |||
3 | The TVP7002 device supports digitizing of video and graphics signal in RGB and | ||
4 | YPbPr color space. | ||
5 | |||
6 | Required Properties : | ||
7 | - compatible : Must be "ti,tvp7002" | ||
8 | |||
9 | Optional Properties: | ||
10 | - hsync-active: HSYNC Polarity configuration for the bus. Default value when | ||
11 | this property is not specified is <0>. | ||
12 | |||
13 | - vsync-active: VSYNC Polarity configuration for the bus. Default value when | ||
14 | this property is not specified is <0>. | ||
15 | |||
16 | - pclk-sample: Clock polarity of the bus. Default value when this property is | ||
17 | not specified is <0>. | ||
18 | |||
19 | - sync-on-green-active: Active state of Sync-on-green signal property of the | ||
20 | endpoint. | ||
21 | 0 = Normal Operation (Active Low, Default) | ||
22 | 1 = Inverted operation | ||
23 | |||
24 | - field-even-active: Active-high Field ID output polarity control of the bus. | ||
25 | Under normal operation, the field ID output is set to logic 1 for an odd field | ||
26 | (field 1) and set to logic 0 for an even field (field 0). | ||
27 | 0 = Normal Operation (Active Low, Default) | ||
28 | 1 = FID output polarity inverted | ||
29 | |||
30 | For further reading of port node refer Documentation/devicetree/bindings/media/ | ||
31 | video-interfaces.txt. | ||
32 | |||
33 | Example: | ||
34 | |||
35 | i2c0@1c22000 { | ||
36 | ... | ||
37 | ... | ||
38 | tvp7002@5c { | ||
39 | compatible = "ti,tvp7002"; | ||
40 | reg = <0x5c>; | ||
41 | |||
42 | port { | ||
43 | tvp7002_1: endpoint { | ||
44 | hsync-active = <1>; | ||
45 | vsync-active = <1>; | ||
46 | pclk-sample = <0>; | ||
47 | sync-on-green-active = <1>; | ||
48 | field-even-active = <0>; | ||
49 | }; | ||
50 | }; | ||
51 | }; | ||
52 | ... | ||
53 | }; | ||
diff --git a/Documentation/devicetree/bindings/media/s5p-mfc.txt b/Documentation/devicetree/bindings/media/s5p-mfc.txt index df37b0230c75..f4181680831b 100644 --- a/Documentation/devicetree/bindings/media/s5p-mfc.txt +++ b/Documentation/devicetree/bindings/media/s5p-mfc.txt | |||
@@ -10,14 +10,15 @@ Required properties: | |||
10 | - compatible : value should be either one among the following | 10 | - compatible : value should be either one among the following |
11 | (a) "samsung,mfc-v5" for MFC v5 present in Exynos4 SoCs | 11 | (a) "samsung,mfc-v5" for MFC v5 present in Exynos4 SoCs |
12 | (b) "samsung,mfc-v6" for MFC v6 present in Exynos5 SoCs | 12 | (b) "samsung,mfc-v6" for MFC v6 present in Exynos5 SoCs |
13 | (b) "samsung,mfc-v7" for MFC v7 present in Exynos5420 SoC | ||
13 | 14 | ||
14 | - reg : Physical base address of the IP registers and length of memory | 15 | - reg : Physical base address of the IP registers and length of memory |
15 | mapped region. | 16 | mapped region. |
16 | 17 | ||
17 | - interrupts : MFC interrupt number to the CPU. | 18 | - interrupts : MFC interrupt number to the CPU. |
18 | - clocks : from common clock binding: handle to mfc clocks. | 19 | - clocks : from common clock binding: handle to mfc clock. |
19 | - clock-names : from common clock binding: must contain "sclk_mfc" and "mfc", | 20 | - clock-names : from common clock binding: must contain "mfc", |
20 | corresponding to entries in the clocks property. | 21 | corresponding to entry in the clocks property. |
21 | 22 | ||
22 | - samsung,mfc-r : Base address of the first memory bank used by MFC | 23 | - samsung,mfc-r : Base address of the first memory bank used by MFC |
23 | for DMA contiguous memory allocation and its size. | 24 | for DMA contiguous memory allocation and its size. |
@@ -37,8 +38,8 @@ mfc: codec@13400000 { | |||
37 | reg = <0x13400000 0x10000>; | 38 | reg = <0x13400000 0x10000>; |
38 | interrupts = <0 94 0>; | 39 | interrupts = <0 94 0>; |
39 | samsung,power-domain = <&pd_mfc>; | 40 | samsung,power-domain = <&pd_mfc>; |
40 | clocks = <&clock 170>, <&clock 273>; | 41 | clocks = <&clock 273>; |
41 | clock-names = "sclk_mfc", "mfc"; | 42 | clock-names = "mfc"; |
42 | }; | 43 | }; |
43 | 44 | ||
44 | Board specific DT entry: | 45 | Board specific DT entry: |
diff --git a/Documentation/devicetree/bindings/media/video-interfaces.txt b/Documentation/devicetree/bindings/media/video-interfaces.txt index e022d2dc4962..ce719f89dd1c 100644 --- a/Documentation/devicetree/bindings/media/video-interfaces.txt +++ b/Documentation/devicetree/bindings/media/video-interfaces.txt | |||
@@ -88,6 +88,8 @@ Optional endpoint properties | |||
88 | - field-even-active: field signal level during the even field data transmission. | 88 | - field-even-active: field signal level during the even field data transmission. |
89 | - pclk-sample: sample data on rising (1) or falling (0) edge of the pixel clock | 89 | - pclk-sample: sample data on rising (1) or falling (0) edge of the pixel clock |
90 | signal. | 90 | signal. |
91 | - sync-on-green-active: active state of Sync-on-green (SoG) signal, 0/1 for | ||
92 | LOW/HIGH respectively. | ||
91 | - data-lanes: an array of physical data lane indexes. Position of an entry | 93 | - data-lanes: an array of physical data lane indexes. Position of an entry |
92 | determines the logical lane number, while the value of an entry indicates | 94 | determines the logical lane number, while the value of an entry indicates |
93 | physical lane, e.g. for 2-lane MIPI CSI-2 bus we could have | 95 | physical lane, e.g. for 2-lane MIPI CSI-2 bus we could have |
diff --git a/Documentation/devicetree/bindings/memory.txt b/Documentation/devicetree/bindings/memory.txt new file mode 100644 index 000000000000..eb2469365593 --- /dev/null +++ b/Documentation/devicetree/bindings/memory.txt | |||
@@ -0,0 +1,168 @@ | |||
1 | *** Memory binding *** | ||
2 | |||
3 | The /memory node provides basic information about the address and size | ||
4 | of the physical memory. This node is usually filled or updated by the | ||
5 | bootloader, depending on the actual memory configuration of the given | ||
6 | hardware. | ||
7 | |||
8 | The memory layout is described by the following node: | ||
9 | |||
10 | / { | ||
11 | #address-cells = <(n)>; | ||
12 | #size-cells = <(m)>; | ||
13 | memory { | ||
14 | device_type = "memory"; | ||
15 | reg = <(baseaddr1) (size1) | ||
16 | (baseaddr2) (size2) | ||
17 | ... | ||
18 | (baseaddrN) (sizeN)>; | ||
19 | }; | ||
20 | ... | ||
21 | }; | ||
22 | |||
23 | A memory node follows the typical device tree rules for "reg" property: | ||
24 | n: number of cells used to store base address value | ||
25 | m: number of cells used to store size value | ||
26 | baseaddrX: defines a base address of the defined memory bank | ||
27 | sizeX: the size of the defined memory bank | ||
28 | |||
29 | |||
30 | More than one memory bank can be defined. | ||
31 | |||
32 | |||
33 | *** Reserved memory regions *** | ||
34 | |||
35 | In /memory/reserved-memory node one can create child nodes describing | ||
36 | particular reserved (excluded from normal use) memory regions. Such | ||
37 | memory regions are usually designed for the special usage by various | ||
38 | device drivers. A good example are contiguous memory allocations or | ||
39 | memory sharing with other operating system on the same hardware board. | ||
40 | Those special memory regions might depend on the board configuration and | ||
41 | devices used on the target system. | ||
42 | |||
43 | Parameters for each memory region can be encoded into the device tree | ||
44 | with the following convention: | ||
45 | |||
46 | [(label):] (name) { | ||
47 | compatible = "linux,contiguous-memory-region", "reserved-memory-region"; | ||
48 | reg = <(address) (size)>; | ||
49 | (linux,default-contiguous-region); | ||
50 | }; | ||
51 | |||
52 | compatible: one or more of: | ||
53 | - "linux,contiguous-memory-region" - enables binding of this | ||
54 | region to Contiguous Memory Allocator (special region for | ||
55 | contiguous memory allocations, shared with movable system | ||
56 | memory, Linux kernel-specific). | ||
57 | - "reserved-memory-region" - compatibility is defined, given | ||
58 | region is assigned for exclusive usage for by the respective | ||
59 | devices. | ||
60 | |||
61 | reg: standard property defining the base address and size of | ||
62 | the memory region | ||
63 | |||
64 | linux,default-contiguous-region: property indicating that the region | ||
65 | is the default region for all contiguous memory | ||
66 | allocations, Linux specific (optional) | ||
67 | |||
68 | It is optional to specify the base address, so if one wants to use | ||
69 | autoconfiguration of the base address, '0' can be specified as a base | ||
70 | address in the 'reg' property. | ||
71 | |||
72 | The /memory/reserved-memory node must contain the same #address-cells | ||
73 | and #size-cells value as the root node. | ||
74 | |||
75 | |||
76 | *** Device node's properties *** | ||
77 | |||
78 | Once regions in the /memory/reserved-memory node have been defined, they | ||
79 | may be referenced by other device nodes. Bindings that wish to reference | ||
80 | memory regions should explicitly document their use of the following | ||
81 | property: | ||
82 | |||
83 | memory-region = <&phandle_to_defined_region>; | ||
84 | |||
85 | This property indicates that the device driver should use the memory | ||
86 | region pointed by the given phandle. | ||
87 | |||
88 | |||
89 | *** Example *** | ||
90 | |||
91 | This example defines a memory consisting of 4 memory banks. 3 contiguous | ||
92 | regions are defined for Linux kernel, one default of all device drivers | ||
93 | (named contig_mem, placed at 0x72000000, 64MiB), one dedicated to the | ||
94 | framebuffer device (labelled display_mem, placed at 0x78000000, 8MiB) | ||
95 | and one for multimedia processing (labelled multimedia_mem, placed at | ||
96 | 0x77000000, 64MiB). 'display_mem' region is then assigned to fb@12300000 | ||
97 | device for DMA memory allocations (Linux kernel drivers will use CMA is | ||
98 | available or dma-exclusive usage otherwise). 'multimedia_mem' is | ||
99 | assigned to scaler@12500000 and codec@12600000 devices for contiguous | ||
100 | memory allocations when CMA driver is enabled. | ||
101 | |||
102 | The reason for creating a separate region for framebuffer device is to | ||
103 | match the framebuffer base address to the one configured by bootloader, | ||
104 | so once Linux kernel drivers starts no glitches on the displayed boot | ||
105 | logo appears. Scaller and codec drivers should share the memory | ||
106 | allocations. | ||
107 | |||
108 | / { | ||
109 | #address-cells = <1>; | ||
110 | #size-cells = <1>; | ||
111 | |||
112 | /* ... */ | ||
113 | |||
114 | memory { | ||
115 | reg = <0x40000000 0x10000000 | ||
116 | 0x50000000 0x10000000 | ||
117 | 0x60000000 0x10000000 | ||
118 | 0x70000000 0x10000000>; | ||
119 | |||
120 | reserved-memory { | ||
121 | #address-cells = <1>; | ||
122 | #size-cells = <1>; | ||
123 | |||
124 | /* | ||
125 | * global autoconfigured region for contiguous allocations | ||
126 | * (used only with Contiguous Memory Allocator) | ||
127 | */ | ||
128 | contig_region@0 { | ||
129 | compatible = "linux,contiguous-memory-region"; | ||
130 | reg = <0x0 0x4000000>; | ||
131 | linux,default-contiguous-region; | ||
132 | }; | ||
133 | |||
134 | /* | ||
135 | * special region for framebuffer | ||
136 | */ | ||
137 | display_region: region@78000000 { | ||
138 | compatible = "linux,contiguous-memory-region", "reserved-memory-region"; | ||
139 | reg = <0x78000000 0x800000>; | ||
140 | }; | ||
141 | |||
142 | /* | ||
143 | * special region for multimedia processing devices | ||
144 | */ | ||
145 | multimedia_region: region@77000000 { | ||
146 | compatible = "linux,contiguous-memory-region"; | ||
147 | reg = <0x77000000 0x4000000>; | ||
148 | }; | ||
149 | }; | ||
150 | }; | ||
151 | |||
152 | /* ... */ | ||
153 | |||
154 | fb0: fb@12300000 { | ||
155 | status = "okay"; | ||
156 | memory-region = <&display_region>; | ||
157 | }; | ||
158 | |||
159 | scaler: scaler@12500000 { | ||
160 | status = "okay"; | ||
161 | memory-region = <&multimedia_region>; | ||
162 | }; | ||
163 | |||
164 | codec: codec@12600000 { | ||
165 | status = "okay"; | ||
166 | memory-region = <&multimedia_region>; | ||
167 | }; | ||
168 | }; | ||
diff --git a/Documentation/devicetree/bindings/metag/pdc-intc.txt b/Documentation/devicetree/bindings/metag/pdc-intc.txt new file mode 100644 index 000000000000..a69118550344 --- /dev/null +++ b/Documentation/devicetree/bindings/metag/pdc-intc.txt | |||
@@ -0,0 +1,105 @@ | |||
1 | * ImgTec Powerdown Controller (PDC) Interrupt Controller Binding | ||
2 | |||
3 | This binding specifies what properties must be available in the device tree | ||
4 | representation of a PDC IRQ controller. This has a number of input interrupt | ||
5 | lines which can wake the system, and are passed on through output interrupt | ||
6 | lines. | ||
7 | |||
8 | Required properties: | ||
9 | |||
10 | - compatible: Specifies the compatibility list for the interrupt controller. | ||
11 | The type shall be <string> and the value shall include "img,pdc-intc". | ||
12 | |||
13 | - reg: Specifies the base PDC physical address(s) and size(s) of the | ||
14 | addressable register space. The type shall be <prop-encoded-array>. | ||
15 | |||
16 | - interrupt-controller: The presence of this property identifies the node | ||
17 | as an interrupt controller. No property value shall be defined. | ||
18 | |||
19 | - #interrupt-cells: Specifies the number of cells needed to encode an | ||
20 | interrupt source. The type shall be a <u32> and the value shall be 2. | ||
21 | |||
22 | - num-perips: Number of waking peripherals. | ||
23 | |||
24 | - num-syswakes: Number of SysWake inputs. | ||
25 | |||
26 | - interrupts: List of interrupt specifiers. The first specifier shall be the | ||
27 | shared SysWake interrupt, and remaining specifies shall be PDC peripheral | ||
28 | interrupts in order. | ||
29 | |||
30 | * Interrupt Specifier Definition | ||
31 | |||
32 | Interrupt specifiers consists of 2 cells encoded as follows: | ||
33 | |||
34 | - <1st-cell>: The interrupt-number that identifies the interrupt source. | ||
35 | 0-7: Peripheral interrupts | ||
36 | 8-15: SysWake interrupts | ||
37 | |||
38 | - <2nd-cell>: The level-sense information, encoded using the Linux interrupt | ||
39 | flags as follows (only 4 valid for peripheral interrupts): | ||
40 | 0 = none (decided by software) | ||
41 | 1 = low-to-high edge triggered | ||
42 | 2 = high-to-low edge triggered | ||
43 | 3 = both edge triggered | ||
44 | 4 = active-high level-sensitive (required for perip irqs) | ||
45 | 8 = active-low level-sensitive | ||
46 | |||
47 | * Examples | ||
48 | |||
49 | Example 1: | ||
50 | |||
51 | /* | ||
52 | * TZ1090 PDC block | ||
53 | */ | ||
54 | pdc: pdc@0x02006000 { | ||
55 | // This is an interrupt controller node. | ||
56 | interrupt-controller; | ||
57 | |||
58 | // Three cells to encode interrupt sources. | ||
59 | #interrupt-cells = <2>; | ||
60 | |||
61 | // Offset address of 0x02006000 and size of 0x1000. | ||
62 | reg = <0x02006000 0x1000>; | ||
63 | |||
64 | // Compatible with Meta hardware trigger block. | ||
65 | compatible = "img,pdc-intc"; | ||
66 | |||
67 | // Three peripherals are connected. | ||
68 | num-perips = <3>; | ||
69 | |||
70 | // Four SysWakes are connected. | ||
71 | num-syswakes = <4>; | ||
72 | |||
73 | interrupts = <18 4 /* level */>, /* Syswakes */ | ||
74 | <30 4 /* level */>, /* Peripheral 0 (RTC) */ | ||
75 | <29 4 /* level */>, /* Peripheral 1 (IR) */ | ||
76 | <31 4 /* level */>; /* Peripheral 2 (WDT) */ | ||
77 | }; | ||
78 | |||
79 | Example 2: | ||
80 | |||
81 | /* | ||
82 | * An SoC peripheral that is wired through the PDC. | ||
83 | */ | ||
84 | rtc0 { | ||
85 | // The interrupt controller that this device is wired to. | ||
86 | interrupt-parent = <&pdc>; | ||
87 | |||
88 | // Interrupt source Peripheral 0 | ||
89 | interrupts = <0 /* Peripheral 0 (RTC) */ | ||
90 | 4> /* IRQ_TYPE_LEVEL_HIGH */ | ||
91 | }; | ||
92 | |||
93 | Example 3: | ||
94 | |||
95 | /* | ||
96 | * An interrupt generating device that is wired to a SysWake pin. | ||
97 | */ | ||
98 | touchscreen0 { | ||
99 | // The interrupt controller that this device is wired to. | ||
100 | interrupt-parent = <&pdc>; | ||
101 | |||
102 | // Interrupt source SysWake 0 that is active-low level-sensitive | ||
103 | interrupts = <8 /* SysWake0 */ | ||
104 | 8 /* IRQ_TYPE_LEVEL_LOW */>; | ||
105 | }; | ||
diff --git a/Documentation/devicetree/bindings/mfd/cros-ec.txt b/Documentation/devicetree/bindings/mfd/cros-ec.txt index e0e59c58a1f9..5f229c5f6da9 100644 --- a/Documentation/devicetree/bindings/mfd/cros-ec.txt +++ b/Documentation/devicetree/bindings/mfd/cros-ec.txt | |||
@@ -4,7 +4,7 @@ Google's ChromeOS EC is a Cortex-M device which talks to the AP and | |||
4 | implements various function such as keyboard and battery charging. | 4 | implements various function such as keyboard and battery charging. |
5 | 5 | ||
6 | The EC can be connect through various means (I2C, SPI, LPC) and the | 6 | The EC can be connect through various means (I2C, SPI, LPC) and the |
7 | compatible string used depends on the inteface. Each connection method has | 7 | compatible string used depends on the interface. Each connection method has |
8 | its own driver which connects to the top level interface-agnostic EC driver. | 8 | its own driver which connects to the top level interface-agnostic EC driver. |
9 | Other Linux driver (such as cros-ec-keyb for the matrix keyboard) connect to | 9 | Other Linux driver (such as cros-ec-keyb for the matrix keyboard) connect to |
10 | the top-level driver. | 10 | the top-level driver. |
diff --git a/Documentation/devicetree/bindings/mfd/palmas.txt b/Documentation/devicetree/bindings/mfd/palmas.txt index 892537d1a48f..e5f0f8303461 100644 --- a/Documentation/devicetree/bindings/mfd/palmas.txt +++ b/Documentation/devicetree/bindings/mfd/palmas.txt | |||
@@ -5,6 +5,7 @@ twl6035 (palmas) | |||
5 | twl6037 (palmas) | 5 | twl6037 (palmas) |
6 | tps65913 (palmas) | 6 | tps65913 (palmas) |
7 | tps65914 (palmas) | 7 | tps65914 (palmas) |
8 | tps659038 | ||
8 | 9 | ||
9 | Required properties: | 10 | Required properties: |
10 | - compatible : Should be from the list | 11 | - compatible : Should be from the list |
@@ -14,6 +15,7 @@ Required properties: | |||
14 | ti,tps65913 | 15 | ti,tps65913 |
15 | ti,tps65914 | 16 | ti,tps65914 |
16 | ti,tps80036 | 17 | ti,tps80036 |
18 | ti,tps659038 | ||
17 | and also the generic series names | 19 | and also the generic series names |
18 | ti,palmas | 20 | ti,palmas |
19 | - interrupt-controller : palmas has its own internal IRQs | 21 | - interrupt-controller : palmas has its own internal IRQs |
diff --git a/Documentation/devicetree/bindings/mfd/s2mps11.txt b/Documentation/devicetree/bindings/mfd/s2mps11.txt new file mode 100644 index 000000000000..c9332c626021 --- /dev/null +++ b/Documentation/devicetree/bindings/mfd/s2mps11.txt | |||
@@ -0,0 +1,109 @@ | |||
1 | |||
2 | * Samsung S2MPS11 Voltage and Current Regulator | ||
3 | |||
4 | The Samsung S2MP211 is a multi-function device which includes voltage and | ||
5 | current regulators, RTC, charger controller and other sub-blocks. It is | ||
6 | interfaced to the host controller using a I2C interface. Each sub-block is | ||
7 | addressed by the host system using different I2C slave address. | ||
8 | |||
9 | Required properties: | ||
10 | - compatible: Should be "samsung,s2mps11-pmic". | ||
11 | - reg: Specifies the I2C slave address of the pmic block. It should be 0x66. | ||
12 | |||
13 | Optional properties: | ||
14 | - interrupt-parent: Specifies the phandle of the interrupt controller to which | ||
15 | the interrupts from s2mps11 are delivered to. | ||
16 | - interrupts: Interrupt specifiers for interrupt sources. | ||
17 | |||
18 | Optional nodes: | ||
19 | - clocks: s2mps11 provides three(AP/CP/BT) buffered 32.768 KHz outputs, so to | ||
20 | register these as clocks with common clock framework instantiate a sub-node | ||
21 | named "clocks". It uses the common clock binding documented in : | ||
22 | [Documentation/devicetree/bindings/clock/clock-bindings.txt] | ||
23 | - #clock-cells: should be 1. | ||
24 | |||
25 | - The following is the list of clocks generated by the controller. Each clock | ||
26 | is assigned an identifier and client nodes use this identifier to specify | ||
27 | the clock which they consume. | ||
28 | Clock ID | ||
29 | ---------------------- | ||
30 | 32KhzAP 0 | ||
31 | 32KhzCP 1 | ||
32 | 32KhzBT 2 | ||
33 | |||
34 | - regulators: The regulators of s2mps11 that have to be instantiated should be | ||
35 | included in a sub-node named 'regulators'. Regulator nodes included in this | ||
36 | sub-node should be of the format as listed below. | ||
37 | |||
38 | regulator_name { | ||
39 | [standard regulator constraints....]; | ||
40 | }; | ||
41 | |||
42 | regulator-ramp-delay for BUCKs = [6250/12500/25000(default)/50000] uV/us | ||
43 | |||
44 | BUCK[2/3/4/6] supports disabling ramp delay on hardware, so explictly | ||
45 | regulator-ramp-delay = <0> can be used for them to disable ramp delay. | ||
46 | In absence of regulator-ramp-delay property, default ramp delay will be used. | ||
47 | |||
48 | NOTE: Some BUCKs share the ramp rate setting i.e. same ramp value will be set | ||
49 | for a particular group of BUCKs. So provide same regulator-ramp-delay<value>. | ||
50 | Grouping of BUCKs sharing ramp rate setting is as follow : BUCK[1, 6], | ||
51 | BUCK[3, 4], and BUCK[7, 8, 10] | ||
52 | |||
53 | The regulator constraints inside the regulator nodes use the standard regulator | ||
54 | bindings which are documented elsewhere. | ||
55 | |||
56 | The following are the names of the regulators that the s2mps11 pmic block | ||
57 | supports. Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number | ||
58 | as per the datasheet of s2mps11. | ||
59 | |||
60 | - LDOn | ||
61 | - valid values for n are 1 to 28 | ||
62 | - Example: LDO0, LD01, LDO28 | ||
63 | - BUCKn | ||
64 | - valid values for n are 1 to 9. | ||
65 | - Example: BUCK1, BUCK2, BUCK9 | ||
66 | |||
67 | Example: | ||
68 | |||
69 | s2mps11_pmic@66 { | ||
70 | compatible = "samsung,s2mps11-pmic"; | ||
71 | reg = <0x66>; | ||
72 | |||
73 | s2m_osc: clocks{ | ||
74 | #clock-cells = 1; | ||
75 | clock-output-names = "xx", "yy", "zz"; | ||
76 | }; | ||
77 | |||
78 | regulators { | ||
79 | ldo1_reg: LDO1 { | ||
80 | regulator-name = "VDD_ABB_3.3V"; | ||
81 | regulator-min-microvolt = <3300000>; | ||
82 | regulator-max-microvolt = <3300000>; | ||
83 | }; | ||
84 | |||
85 | ldo2_reg: LDO2 { | ||
86 | regulator-name = "VDD_ALIVE_1.1V"; | ||
87 | regulator-min-microvolt = <1100000>; | ||
88 | regulator-max-microvolt = <1100000>; | ||
89 | regulator-always-on; | ||
90 | }; | ||
91 | |||
92 | buck1_reg: BUCK1 { | ||
93 | regulator-name = "vdd_mif"; | ||
94 | regulator-min-microvolt = <950000>; | ||
95 | regulator-max-microvolt = <1350000>; | ||
96 | regulator-always-on; | ||
97 | regulator-boot-on; | ||
98 | }; | ||
99 | |||
100 | buck2_reg: BUCK2 { | ||
101 | regulator-name = "vdd_arm"; | ||
102 | regulator-min-microvolt = <950000>; | ||
103 | regulator-max-microvolt = <1350000>; | ||
104 | regulator-always-on; | ||
105 | regulator-boot-on; | ||
106 | regulator-ramp-delay = <50000>; | ||
107 | }; | ||
108 | }; | ||
109 | }; | ||
diff --git a/Documentation/devicetree/bindings/misc/atmel-ssc.txt b/Documentation/devicetree/bindings/misc/atmel-ssc.txt index 38e51ad2e07e..a45ae08c8ed1 100644 --- a/Documentation/devicetree/bindings/misc/atmel-ssc.txt +++ b/Documentation/devicetree/bindings/misc/atmel-ssc.txt | |||
@@ -7,9 +7,30 @@ Required properties: | |||
7 | - reg: Should contain SSC registers location and length | 7 | - reg: Should contain SSC registers location and length |
8 | - interrupts: Should contain SSC interrupt | 8 | - interrupts: Should contain SSC interrupt |
9 | 9 | ||
10 | Example: | 10 | |
11 | Required properties for devices compatible with "atmel,at91sam9g45-ssc": | ||
12 | - dmas: DMA specifier, consisting of a phandle to DMA controller node, | ||
13 | the memory interface and SSC DMA channel ID (for tx and rx). | ||
14 | See Documentation/devicetree/bindings/dma/atmel-dma.txt for details. | ||
15 | - dma-names: Must be "tx", "rx". | ||
16 | |||
17 | Examples: | ||
18 | - PDC transfer: | ||
11 | ssc0: ssc@fffbc000 { | 19 | ssc0: ssc@fffbc000 { |
12 | compatible = "atmel,at91rm9200-ssc"; | 20 | compatible = "atmel,at91rm9200-ssc"; |
13 | reg = <0xfffbc000 0x4000>; | 21 | reg = <0xfffbc000 0x4000>; |
14 | interrupts = <14 4 5>; | 22 | interrupts = <14 4 5>; |
15 | }; | 23 | }; |
24 | |||
25 | - DMA transfer: | ||
26 | ssc0: ssc@f0010000 { | ||
27 | compatible = "atmel,at91sam9g45-ssc"; | ||
28 | reg = <0xf0010000 0x4000>; | ||
29 | interrupts = <28 4 5>; | ||
30 | dmas = <&dma0 1 13>, | ||
31 | <&dma0 1 14>; | ||
32 | dma-names = "tx", "rx"; | ||
33 | pinctrl-names = "default"; | ||
34 | pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>; | ||
35 | status = "disabled"; | ||
36 | }; | ||
diff --git a/Documentation/devicetree/bindings/misc/smc.txt b/Documentation/devicetree/bindings/misc/smc.txt index 02b428136177..6c9f176f3571 100644 --- a/Documentation/devicetree/bindings/misc/smc.txt +++ b/Documentation/devicetree/bindings/misc/smc.txt | |||
@@ -4,11 +4,12 @@ This binding defines the location of the bounce buffer | |||
4 | used for non-secure to secure communications. | 4 | used for non-secure to secure communications. |
5 | 5 | ||
6 | Required properties: | 6 | Required properties: |
7 | - compatible : "bcm,kona-smc" | 7 | - compatible : "brcm,kona-smc" |
8 | - DEPRECATED: compatible : "bcm,kona-smc" | ||
8 | - reg : Location and size of bounce buffer | 9 | - reg : Location and size of bounce buffer |
9 | 10 | ||
10 | Example: | 11 | Example: |
11 | smc@0x3404c000 { | 12 | smc@0x3404c000 { |
12 | compatible = "bcm,bcm11351-smc", "bcm,kona-smc"; | 13 | compatible = "brcm,bcm11351-smc", "brcm,kona-smc"; |
13 | reg = <0x3404c000 0x400>; //1 KiB in SRAM | 14 | reg = <0x3404c000 0x400>; //1 KiB in SRAM |
14 | }; | 15 | }; |
diff --git a/Documentation/devicetree/bindings/mmc/fsl-esdhc.txt b/Documentation/devicetree/bindings/mmc/fsl-esdhc.txt index bd9be0b5bc20..b7943f3f9995 100644 --- a/Documentation/devicetree/bindings/mmc/fsl-esdhc.txt +++ b/Documentation/devicetree/bindings/mmc/fsl-esdhc.txt | |||
@@ -19,6 +19,9 @@ Optional properties: | |||
19 | "bus-width = <1>" property. | 19 | "bus-width = <1>" property. |
20 | - sdhci,auto-cmd12: specifies that a controller can only handle auto | 20 | - sdhci,auto-cmd12: specifies that a controller can only handle auto |
21 | CMD12. | 21 | CMD12. |
22 | - voltage-ranges : two cells are required, first cell specifies minimum | ||
23 | slot voltage (mV), second cell specifies maximum slot voltage (mV). | ||
24 | Several ranges could be specified. | ||
22 | 25 | ||
23 | Example: | 26 | Example: |
24 | 27 | ||
@@ -29,4 +32,5 @@ sdhci@2e000 { | |||
29 | interrupt-parent = <&ipic>; | 32 | interrupt-parent = <&ipic>; |
30 | /* Filled in by U-Boot */ | 33 | /* Filled in by U-Boot */ |
31 | clock-frequency = <0>; | 34 | clock-frequency = <0>; |
35 | voltage-ranges = <3300 3300>; | ||
32 | }; | 36 | }; |
diff --git a/Documentation/devicetree/bindings/mmc/bcm,kona-sdhci.txt b/Documentation/devicetree/bindings/mmc/kona-sdhci.txt index 094ae010f2fb..789fb07a426d 100644 --- a/Documentation/devicetree/bindings/mmc/bcm,kona-sdhci.txt +++ b/Documentation/devicetree/bindings/mmc/kona-sdhci.txt | |||
@@ -4,12 +4,13 @@ This file documents differences between the core properties in mmc.txt | |||
4 | and the properties present in the bcm281xx SDHCI | 4 | and the properties present in the bcm281xx SDHCI |
5 | 5 | ||
6 | Required properties: | 6 | Required properties: |
7 | - compatible : Should be "bcm,kona-sdhci" | 7 | - compatible : Should be "brcm,kona-sdhci" |
8 | - DEPRECATED: compatible : Should be "bcm,kona-sdhci" | ||
8 | 9 | ||
9 | Example: | 10 | Example: |
10 | 11 | ||
11 | sdio2: sdio@0x3f1a0000 { | 12 | sdio2: sdio@0x3f1a0000 { |
12 | compatible = "bcm,kona-sdhci"; | 13 | compatible = "brcm,kona-sdhci"; |
13 | reg = <0x3f1a0000 0x10000>; | 14 | reg = <0x3f1a0000 0x10000>; |
14 | interrupts = <0x0 74 0x4>; | 15 | interrupts = <0x0 74 0x4>; |
15 | }; | 16 | }; |
diff --git a/Documentation/devicetree/bindings/mtd/atmel-nand.txt b/Documentation/devicetree/bindings/mtd/atmel-nand.txt index d555421ea49f..c4728839d0c1 100644 --- a/Documentation/devicetree/bindings/mtd/atmel-nand.txt +++ b/Documentation/devicetree/bindings/mtd/atmel-nand.txt | |||
@@ -15,6 +15,7 @@ Required properties: | |||
15 | optional gpio and may be set to 0 if not present. | 15 | optional gpio and may be set to 0 if not present. |
16 | 16 | ||
17 | Optional properties: | 17 | Optional properties: |
18 | - atmel,nand-has-dma : boolean to support dma transfer for nand read/write. | ||
18 | - nand-ecc-mode : String, operation mode of the NAND ecc mode, soft by default. | 19 | - nand-ecc-mode : String, operation mode of the NAND ecc mode, soft by default. |
19 | Supported values are: "none", "soft", "hw", "hw_syndrome", "hw_oob_first", | 20 | Supported values are: "none", "soft", "hw", "hw_syndrome", "hw_oob_first", |
20 | "soft_bch". | 21 | "soft_bch". |
@@ -29,6 +30,14 @@ Optional properties: | |||
29 | sector size 1024. | 30 | sector size 1024. |
30 | - nand-bus-width : 8 or 16 bus width if not present 8 | 31 | - nand-bus-width : 8 or 16 bus width if not present 8 |
31 | - nand-on-flash-bbt: boolean to enable on flash bbt option if not present false | 32 | - nand-on-flash-bbt: boolean to enable on flash bbt option if not present false |
33 | - Nand Flash Controller(NFC) is a slave driver under Atmel nand flash | ||
34 | - Required properties: | ||
35 | - compatible : "atmel,sama5d3-nfc". | ||
36 | - reg : should specify the address and size used for NFC command registers, | ||
37 | NFC registers and NFC Sram. NFC Sram address and size can be absent | ||
38 | if don't want to use it. | ||
39 | - Optional properties: | ||
40 | - atmel,write-by-sram: boolean to enable NFC write by sram. | ||
32 | 41 | ||
33 | Examples: | 42 | Examples: |
34 | nand0: nand@40000000,0 { | 43 | nand0: nand@40000000,0 { |
@@ -77,3 +86,22 @@ nand0: nand@40000000 { | |||
77 | ... | 86 | ... |
78 | }; | 87 | }; |
79 | }; | 88 | }; |
89 | |||
90 | /* for NFC supported chips */ | ||
91 | nand0: nand@40000000 { | ||
92 | compatible = "atmel,at91rm9200-nand"; | ||
93 | #address-cells = <1>; | ||
94 | #size-cells = <1>; | ||
95 | ranges; | ||
96 | ... | ||
97 | nfc@70000000 { | ||
98 | compatible = "atmel,sama5d3-nfc"; | ||
99 | #address-cells = <1>; | ||
100 | #size-cells = <1>; | ||
101 | reg = < | ||
102 | 0x70000000 0x10000000 /* NFC Command Registers */ | ||
103 | 0xffffc000 0x00000070 /* NFC HSMC regs */ | ||
104 | 0x00200000 0x00100000 /* NFC SRAM banks */ | ||
105 | >; | ||
106 | }; | ||
107 | }; | ||
diff --git a/Documentation/devicetree/bindings/mtd/fsmc-nand.txt b/Documentation/devicetree/bindings/mtd/fsmc-nand.txt index 2240ac09f6ba..ec42935f3908 100644 --- a/Documentation/devicetree/bindings/mtd/fsmc-nand.txt +++ b/Documentation/devicetree/bindings/mtd/fsmc-nand.txt | |||
@@ -1,4 +1,5 @@ | |||
1 | * FSMC NAND | 1 | ST Microelectronics Flexible Static Memory Controller (FSMC) |
2 | NAND Interface | ||
2 | 3 | ||
3 | Required properties: | 4 | Required properties: |
4 | - compatible : "st,spear600-fsmc-nand", "stericsson,fsmc-nand" | 5 | - compatible : "st,spear600-fsmc-nand", "stericsson,fsmc-nand" |
@@ -9,6 +10,26 @@ Optional properties: | |||
9 | - bank-width : Width (in bytes) of the device. If not present, the width | 10 | - bank-width : Width (in bytes) of the device. If not present, the width |
10 | defaults to 1 byte | 11 | defaults to 1 byte |
11 | - nand-skip-bbtscan: Indicates the the BBT scanning should be skipped | 12 | - nand-skip-bbtscan: Indicates the the BBT scanning should be skipped |
13 | - timings: array of 6 bytes for NAND timings. The meanings of these bytes | ||
14 | are: | ||
15 | byte 0 TCLR : CLE to RE delay in number of AHB clock cycles, only 4 bits | ||
16 | are valid. Zero means one clockcycle, 15 means 16 clock | ||
17 | cycles. | ||
18 | byte 1 TAR : ALE to RE delay, 4 bits are valid. Same format as TCLR. | ||
19 | byte 2 THIZ : number of HCLK clock cycles during which the data bus is | ||
20 | kept in Hi-Z (tristate) after the start of a write access. | ||
21 | Only valid for write transactions. Zero means zero cycles, | ||
22 | 255 means 255 cycles. | ||
23 | byte 3 THOLD : number of HCLK clock cycles to hold the address (and data | ||
24 | when writing) after the command deassertation. Zero means | ||
25 | one cycle, 255 means 256 cycles. | ||
26 | byte 4 TWAIT : number of HCLK clock cycles to assert the command to the | ||
27 | NAND flash in response to SMWAITn. Zero means 1 cycle, | ||
28 | 255 means 256 cycles. | ||
29 | byte 5 TSET : number of HCLK clock cycles to assert the address before the | ||
30 | command is asserted. Zero means one cycle, 255 means 256 | ||
31 | cycles. | ||
32 | - bank: default NAND bank to use (0-3 are valid, 0 is the default). | ||
12 | 33 | ||
13 | Example: | 34 | Example: |
14 | 35 | ||
@@ -24,6 +45,8 @@ Example: | |||
24 | 45 | ||
25 | bank-width = <1>; | 46 | bank-width = <1>; |
26 | nand-skip-bbtscan; | 47 | nand-skip-bbtscan; |
48 | timings = /bits/ 8 <0 0 0 2 3 0>; | ||
49 | bank = <1>; | ||
27 | 50 | ||
28 | partition@0 { | 51 | partition@0 { |
29 | ... | 52 | ... |
diff --git a/Documentation/devicetree/bindings/mtd/partition.txt b/Documentation/devicetree/bindings/mtd/partition.txt index 9315ac96b49b..8e5557da1955 100644 --- a/Documentation/devicetree/bindings/mtd/partition.txt +++ b/Documentation/devicetree/bindings/mtd/partition.txt | |||
@@ -4,6 +4,7 @@ Partitions can be represented by sub-nodes of an mtd device. This can be used | |||
4 | on platforms which have strong conventions about which portions of a flash are | 4 | on platforms which have strong conventions about which portions of a flash are |
5 | used for what purposes, but which don't use an on-flash partition table such | 5 | used for what purposes, but which don't use an on-flash partition table such |
6 | as RedBoot. | 6 | as RedBoot. |
7 | NOTE: if the sub-node has a compatible string, then it is not a partition. | ||
7 | 8 | ||
8 | #address-cells & #size-cells must both be present in the mtd device. There are | 9 | #address-cells & #size-cells must both be present in the mtd device. There are |
9 | two valid values for both: | 10 | two valid values for both: |
diff --git a/Documentation/devicetree/bindings/net/can/atmel-can.txt b/Documentation/devicetree/bindings/net/can/atmel-can.txt index 72cf0c5daff4..14e52a0d86ec 100644 --- a/Documentation/devicetree/bindings/net/can/atmel-can.txt +++ b/Documentation/devicetree/bindings/net/can/atmel-can.txt | |||
@@ -8,7 +8,7 @@ Required properties: | |||
8 | Example: | 8 | Example: |
9 | 9 | ||
10 | can0: can@f000c000 { | 10 | can0: can@f000c000 { |
11 | compatbile = "atmel,at91sam9x5-can"; | 11 | compatible = "atmel,at91sam9x5-can"; |
12 | reg = <0xf000c000 0x300>; | 12 | reg = <0xf000c000 0x300>; |
13 | interrupts = <40 4 5> | 13 | interrupts = <40 4 5> |
14 | }; | 14 | }; |
diff --git a/Documentation/devicetree/bindings/net/can/sja1000.txt b/Documentation/devicetree/bindings/net/can/sja1000.txt index c2dbcec0ee31..f2105a47ec87 100644 --- a/Documentation/devicetree/bindings/net/can/sja1000.txt +++ b/Documentation/devicetree/bindings/net/can/sja1000.txt | |||
@@ -37,7 +37,7 @@ Optional properties: | |||
37 | If not specified or if the specified value is 0, the CLKOUT pin | 37 | If not specified or if the specified value is 0, the CLKOUT pin |
38 | will be disabled. | 38 | will be disabled. |
39 | 39 | ||
40 | - nxp,no-comparator-bypass : Allows to disable the CAN input comperator. | 40 | - nxp,no-comparator-bypass : Allows to disable the CAN input comparator. |
41 | 41 | ||
42 | For further information, please have a look to the SJA1000 data sheet. | 42 | For further information, please have a look to the SJA1000 data sheet. |
43 | 43 | ||
diff --git a/Documentation/devicetree/bindings/net/micrel-ksz9021.txt b/Documentation/devicetree/bindings/net/micrel-ksz9021.txt new file mode 100644 index 000000000000..997a63f1aea1 --- /dev/null +++ b/Documentation/devicetree/bindings/net/micrel-ksz9021.txt | |||
@@ -0,0 +1,49 @@ | |||
1 | Micrel KSZ9021 Gigabit Ethernet PHY | ||
2 | |||
3 | Some boards require special tuning values, particularly when it comes to | ||
4 | clock delays. You can specify clock delay values by adding | ||
5 | micrel-specific properties to an Ethernet OF device node. | ||
6 | |||
7 | All skew control options are specified in picoseconds. The minimum | ||
8 | value is 0, and the maximum value is 3000. | ||
9 | |||
10 | Optional properties: | ||
11 | - rxc-skew-ps : Skew control of RXC pad | ||
12 | - rxdv-skew-ps : Skew control of RX CTL pad | ||
13 | - txc-skew-ps : Skew control of TXC pad | ||
14 | - txen-skew-ps : Skew control of TX_CTL pad | ||
15 | - rxd0-skew-ps : Skew control of RX data 0 pad | ||
16 | - rxd1-skew-ps : Skew control of RX data 1 pad | ||
17 | - rxd2-skew-ps : Skew control of RX data 2 pad | ||
18 | - rxd3-skew-ps : Skew control of RX data 3 pad | ||
19 | - txd0-skew-ps : Skew control of TX data 0 pad | ||
20 | - txd1-skew-ps : Skew control of TX data 1 pad | ||
21 | - txd2-skew-ps : Skew control of TX data 2 pad | ||
22 | - txd3-skew-ps : Skew control of TX data 3 pad | ||
23 | |||
24 | Examples: | ||
25 | |||
26 | /* Attach to an Ethernet device with autodetected PHY */ | ||
27 | &enet { | ||
28 | rxc-skew-ps = <3000>; | ||
29 | rxdv-skew-ps = <0>; | ||
30 | txc-skew-ps = <3000>; | ||
31 | txen-skew-ps = <0>; | ||
32 | status = "okay"; | ||
33 | }; | ||
34 | |||
35 | /* Attach to an explicitly-specified PHY */ | ||
36 | mdio { | ||
37 | phy0: ethernet-phy@0 { | ||
38 | rxc-skew-ps = <3000>; | ||
39 | rxdv-skew-ps = <0>; | ||
40 | txc-skew-ps = <3000>; | ||
41 | txen-skew-ps = <0>; | ||
42 | reg = <0>; | ||
43 | }; | ||
44 | }; | ||
45 | ethernet@70000 { | ||
46 | status = "okay"; | ||
47 | phy = <&phy0>; | ||
48 | phy-mode = "rgmii-id"; | ||
49 | }; | ||
diff --git a/Documentation/devicetree/bindings/net/moxa,moxart-mac.txt b/Documentation/devicetree/bindings/net/moxa,moxart-mac.txt new file mode 100644 index 000000000000..583418b2c127 --- /dev/null +++ b/Documentation/devicetree/bindings/net/moxa,moxart-mac.txt | |||
@@ -0,0 +1,21 @@ | |||
1 | MOXA ART Ethernet Controller | ||
2 | |||
3 | Required properties: | ||
4 | |||
5 | - compatible : Must be "moxa,moxart-mac" | ||
6 | - reg : Should contain register location and length | ||
7 | - interrupts : Should contain the mac interrupt number | ||
8 | |||
9 | Example: | ||
10 | |||
11 | mac0: mac@90900000 { | ||
12 | compatible = "moxa,moxart-mac"; | ||
13 | reg = <0x90900000 0x100>; | ||
14 | interrupts = <25 0>; | ||
15 | }; | ||
16 | |||
17 | mac1: mac@92000000 { | ||
18 | compatible = "moxa,moxart-mac"; | ||
19 | reg = <0x92000000 0x100>; | ||
20 | interrupts = <27 0>; | ||
21 | }; | ||
diff --git a/Documentation/devicetree/bindings/net/stmmac.txt b/Documentation/devicetree/bindings/net/stmmac.txt index 261c563b5f06..eba0e5e59ebe 100644 --- a/Documentation/devicetree/bindings/net/stmmac.txt +++ b/Documentation/devicetree/bindings/net/stmmac.txt | |||
@@ -22,6 +22,11 @@ Required properties: | |||
22 | - snps,pbl Programmable Burst Length | 22 | - snps,pbl Programmable Burst Length |
23 | - snps,fixed-burst Program the DMA to use the fixed burst mode | 23 | - snps,fixed-burst Program the DMA to use the fixed burst mode |
24 | - snps,mixed-burst Program the DMA to use the mixed burst mode | 24 | - snps,mixed-burst Program the DMA to use the mixed burst mode |
25 | - snps,force_thresh_dma_mode Force DMA to use the threshold mode for | ||
26 | both tx and rx | ||
27 | - snps,force_sf_dma_mode Force DMA to use the Store and Forward | ||
28 | mode for both tx and rx. This flag is | ||
29 | ignored if force_thresh_dma_mode is set. | ||
25 | 30 | ||
26 | Optional properties: | 31 | Optional properties: |
27 | - mac-address: 6 bytes, mac address | 32 | - mac-address: 6 bytes, mac address |
diff --git a/Documentation/devicetree/bindings/pci/designware-pcie.txt b/Documentation/devicetree/bindings/pci/designware-pcie.txt index e2371f5cdebe..eabcb4b5db6e 100644 --- a/Documentation/devicetree/bindings/pci/designware-pcie.txt +++ b/Documentation/devicetree/bindings/pci/designware-pcie.txt | |||
@@ -18,6 +18,7 @@ Required properties: | |||
18 | - interrupt-map-mask and interrupt-map: standard PCI properties | 18 | - interrupt-map-mask and interrupt-map: standard PCI properties |
19 | to define the mapping of the PCIe interface to interrupt | 19 | to define the mapping of the PCIe interface to interrupt |
20 | numbers. | 20 | numbers. |
21 | - num-lanes: number of lanes to use | ||
21 | - reset-gpio: gpio pin number of power good signal | 22 | - reset-gpio: gpio pin number of power good signal |
22 | 23 | ||
23 | Example: | 24 | Example: |
@@ -41,6 +42,7 @@ SoC specific DT Entry: | |||
41 | #interrupt-cells = <1>; | 42 | #interrupt-cells = <1>; |
42 | interrupt-map-mask = <0 0 0 0>; | 43 | interrupt-map-mask = <0 0 0 0>; |
43 | interrupt-map = <0x0 0 &gic 53>; | 44 | interrupt-map = <0x0 0 &gic 53>; |
45 | num-lanes = <4>; | ||
44 | }; | 46 | }; |
45 | 47 | ||
46 | pcie@2a0000 { | 48 | pcie@2a0000 { |
@@ -60,6 +62,7 @@ SoC specific DT Entry: | |||
60 | #interrupt-cells = <1>; | 62 | #interrupt-cells = <1>; |
61 | interrupt-map-mask = <0 0 0 0>; | 63 | interrupt-map-mask = <0 0 0 0>; |
62 | interrupt-map = <0x0 0 &gic 56>; | 64 | interrupt-map = <0x0 0 &gic 56>; |
65 | num-lanes = <4>; | ||
63 | }; | 66 | }; |
64 | 67 | ||
65 | Board specific DT Entry: | 68 | Board specific DT Entry: |
diff --git a/Documentation/devicetree/bindings/pci/mvebu-pci.txt b/Documentation/devicetree/bindings/pci/mvebu-pci.txt index f8d405897a94..9556e2fedf6d 100644 --- a/Documentation/devicetree/bindings/pci/mvebu-pci.txt +++ b/Documentation/devicetree/bindings/pci/mvebu-pci.txt | |||
@@ -1,6 +1,7 @@ | |||
1 | * Marvell EBU PCIe interfaces | 1 | * Marvell EBU PCIe interfaces |
2 | 2 | ||
3 | Mandatory properties: | 3 | Mandatory properties: |
4 | |||
4 | - compatible: one of the following values: | 5 | - compatible: one of the following values: |
5 | marvell,armada-370-pcie | 6 | marvell,armada-370-pcie |
6 | marvell,armada-xp-pcie | 7 | marvell,armada-xp-pcie |
@@ -10,11 +11,49 @@ Mandatory properties: | |||
10 | - #interrupt-cells, set to <1> | 11 | - #interrupt-cells, set to <1> |
11 | - bus-range: PCI bus numbers covered | 12 | - bus-range: PCI bus numbers covered |
12 | - device_type, set to "pci" | 13 | - device_type, set to "pci" |
13 | - ranges: ranges for the PCI memory and I/O regions, as well as the | 14 | - ranges: ranges describing the MMIO registers to control the PCIe |
14 | MMIO registers to control the PCIe interfaces. | 15 | interfaces, and ranges describing the MBus windows needed to access |
16 | the memory and I/O regions of each PCIe interface. | ||
17 | |||
18 | The ranges describing the MMIO registers have the following layout: | ||
19 | |||
20 | 0x82000000 0 r MBUS_ID(0xf0, 0x01) r 0 s | ||
21 | |||
22 | where: | ||
23 | |||
24 | * r is a 32-bits value that gives the offset of the MMIO | ||
25 | registers of this PCIe interface, from the base of the internal | ||
26 | registers. | ||
27 | |||
28 | * s is a 32-bits value that give the size of this MMIO | ||
29 | registers area. This range entry translates the '0x82000000 0 r' PCI | ||
30 | address into the 'MBUS_ID(0xf0, 0x01) r' CPU address, which is part | ||
31 | of the internal register window (as identified by MBUS_ID(0xf0, | ||
32 | 0x01)). | ||
33 | |||
34 | The ranges describing the MBus windows have the following layout: | ||
35 | |||
36 | 0x8t000000 s 0 MBUS_ID(w, a) 0 1 0 | ||
37 | |||
38 | where: | ||
39 | |||
40 | * t is the type of the MBus window (as defined by the standard PCI DT | ||
41 | bindings), 1 for I/O and 2 for memory. | ||
15 | 42 | ||
16 | In addition, the Device Tree node must have sub-nodes describing each | 43 | * s is the PCI slot that corresponds to this PCIe interface |
44 | |||
45 | * w is the 'target ID' value for the MBus window | ||
46 | |||
47 | * a the 'attribute' value for the MBus window. | ||
48 | |||
49 | Since the location and size of the different MBus windows is not fixed in | ||
50 | hardware, and only determined in runtime, those ranges cover the full first | ||
51 | 4 GB of the physical address space, and do not translate into a valid CPU | ||
52 | address. | ||
53 | |||
54 | In addition, the device tree node must have sub-nodes describing each | ||
17 | PCIe interface, having the following mandatory properties: | 55 | PCIe interface, having the following mandatory properties: |
56 | |||
18 | - reg: used only for interrupt mapping, so only the first four bytes | 57 | - reg: used only for interrupt mapping, so only the first four bytes |
19 | are used to refer to the correct bus number and device number. | 58 | are used to refer to the correct bus number and device number. |
20 | - assigned-addresses: reference to the MMIO registers used to control | 59 | - assigned-addresses: reference to the MMIO registers used to control |
@@ -26,7 +65,8 @@ PCIe interface, having the following mandatory properties: | |||
26 | - #address-cells, set to <3> | 65 | - #address-cells, set to <3> |
27 | - #size-cells, set to <2> | 66 | - #size-cells, set to <2> |
28 | - #interrupt-cells, set to <1> | 67 | - #interrupt-cells, set to <1> |
29 | - ranges, empty property. | 68 | - ranges, translating the MBus windows ranges of the parent node into |
69 | standard PCI addresses. | ||
30 | - interrupt-map-mask and interrupt-map, standard PCI properties to | 70 | - interrupt-map-mask and interrupt-map, standard PCI properties to |
31 | define the mapping of the PCIe interface to interrupt numbers. | 71 | define the mapping of the PCIe interface to interrupt numbers. |
32 | 72 | ||
@@ -47,27 +87,50 @@ pcie-controller { | |||
47 | 87 | ||
48 | bus-range = <0x00 0xff>; | 88 | bus-range = <0x00 0xff>; |
49 | 89 | ||
50 | ranges = <0x82000000 0 0xd0040000 0xd0040000 0 0x00002000 /* Port 0.0 registers */ | 90 | ranges = |
51 | 0x82000000 0 0xd0042000 0xd0042000 0 0x00002000 /* Port 2.0 registers */ | 91 | <0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000 /* Port 0.0 registers */ |
52 | 0x82000000 0 0xd0044000 0xd0044000 0 0x00002000 /* Port 0.1 registers */ | 92 | 0x82000000 0 0x42000 MBUS_ID(0xf0, 0x01) 0x42000 0 0x00002000 /* Port 2.0 registers */ |
53 | 0x82000000 0 0xd0048000 0xd0048000 0 0x00002000 /* Port 0.2 registers */ | 93 | 0x82000000 0 0x44000 MBUS_ID(0xf0, 0x01) 0x44000 0 0x00002000 /* Port 0.1 registers */ |
54 | 0x82000000 0 0xd004c000 0xd004c000 0 0x00002000 /* Port 0.3 registers */ | 94 | 0x82000000 0 0x48000 MBUS_ID(0xf0, 0x01) 0x48000 0 0x00002000 /* Port 0.2 registers */ |
55 | 0x82000000 0 0xd0080000 0xd0080000 0 0x00002000 /* Port 1.0 registers */ | 95 | 0x82000000 0 0x4c000 MBUS_ID(0xf0, 0x01) 0x4c000 0 0x00002000 /* Port 0.3 registers */ |
56 | 0x82000000 0 0xd0082000 0xd0082000 0 0x00002000 /* Port 3.0 registers */ | 96 | 0x82000000 0 0x80000 MBUS_ID(0xf0, 0x01) 0x80000 0 0x00002000 /* Port 1.0 registers */ |
57 | 0x82000000 0 0xd0084000 0xd0084000 0 0x00002000 /* Port 1.1 registers */ | 97 | 0x82000000 0 0x82000 MBUS_ID(0xf0, 0x01) 0x82000 0 0x00002000 /* Port 3.0 registers */ |
58 | 0x82000000 0 0xd0088000 0xd0088000 0 0x00002000 /* Port 1.2 registers */ | 98 | 0x82000000 0 0x84000 MBUS_ID(0xf0, 0x01) 0x84000 0 0x00002000 /* Port 1.1 registers */ |
59 | 0x82000000 0 0xd008c000 0xd008c000 0 0x00002000 /* Port 1.3 registers */ | 99 | 0x82000000 0 0x88000 MBUS_ID(0xf0, 0x01) 0x88000 0 0x00002000 /* Port 1.2 registers */ |
60 | 0x82000000 0 0xe0000000 0xe0000000 0 0x08000000 /* non-prefetchable memory */ | 100 | 0x82000000 0 0x8c000 MBUS_ID(0xf0, 0x01) 0x8c000 0 0x00002000 /* Port 1.3 registers */ |
61 | 0x81000000 0 0 0xe8000000 0 0x00100000>; /* downstream I/O */ | 101 | 0x82000000 0x1 0 MBUS_ID(0x04, 0xe8) 0 1 0 /* Port 0.0 MEM */ |
102 | 0x81000000 0x1 0 MBUS_ID(0x04, 0xe0) 0 1 0 /* Port 0.0 IO */ | ||
103 | 0x82000000 0x2 0 MBUS_ID(0x04, 0xd8) 0 1 0 /* Port 0.1 MEM */ | ||
104 | 0x81000000 0x2 0 MBUS_ID(0x04, 0xd0) 0 1 0 /* Port 0.1 IO */ | ||
105 | 0x82000000 0x3 0 MBUS_ID(0x04, 0xb8) 0 1 0 /* Port 0.2 MEM */ | ||
106 | 0x81000000 0x3 0 MBUS_ID(0x04, 0xb0) 0 1 0 /* Port 0.2 IO */ | ||
107 | 0x82000000 0x4 0 MBUS_ID(0x04, 0x78) 0 1 0 /* Port 0.3 MEM */ | ||
108 | 0x81000000 0x4 0 MBUS_ID(0x04, 0x70) 0 1 0 /* Port 0.3 IO */ | ||
109 | |||
110 | 0x82000000 0x5 0 MBUS_ID(0x08, 0xe8) 0 1 0 /* Port 1.0 MEM */ | ||
111 | 0x81000000 0x5 0 MBUS_ID(0x08, 0xe0) 0 1 0 /* Port 1.0 IO */ | ||
112 | 0x82000000 0x6 0 MBUS_ID(0x08, 0xd8) 0 1 0 /* Port 1.1 MEM */ | ||
113 | 0x81000000 0x6 0 MBUS_ID(0x08, 0xd0) 0 1 0 /* Port 1.1 IO */ | ||
114 | 0x82000000 0x7 0 MBUS_ID(0x08, 0xb8) 0 1 0 /* Port 1.2 MEM */ | ||
115 | 0x81000000 0x7 0 MBUS_ID(0x08, 0xb0) 0 1 0 /* Port 1.2 IO */ | ||
116 | 0x82000000 0x8 0 MBUS_ID(0x08, 0x78) 0 1 0 /* Port 1.3 MEM */ | ||
117 | 0x81000000 0x8 0 MBUS_ID(0x08, 0x70) 0 1 0 /* Port 1.3 IO */ | ||
118 | |||
119 | 0x82000000 0x9 0 MBUS_ID(0x04, 0xf8) 0 1 0 /* Port 2.0 MEM */ | ||
120 | 0x81000000 0x9 0 MBUS_ID(0x04, 0xf0) 0 1 0 /* Port 2.0 IO */ | ||
121 | |||
122 | 0x82000000 0xa 0 MBUS_ID(0x08, 0xf8) 0 1 0 /* Port 3.0 MEM */ | ||
123 | 0x81000000 0xa 0 MBUS_ID(0x08, 0xf0) 0 1 0 /* Port 3.0 IO */>; | ||
62 | 124 | ||
63 | pcie@1,0 { | 125 | pcie@1,0 { |
64 | device_type = "pci"; | 126 | device_type = "pci"; |
65 | assigned-addresses = <0x82000800 0 0xd0040000 0 0x2000>; | 127 | assigned-addresses = <0x82000800 0 0x40000 0 0x2000>; |
66 | reg = <0x0800 0 0 0 0>; | 128 | reg = <0x0800 0 0 0 0>; |
67 | #address-cells = <3>; | 129 | #address-cells = <3>; |
68 | #size-cells = <2>; | 130 | #size-cells = <2>; |
69 | #interrupt-cells = <1>; | 131 | #interrupt-cells = <1>; |
70 | ranges; | 132 | ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0 |
133 | 0x81000000 0 0 0x81000000 0x1 0 1 0>; | ||
71 | interrupt-map-mask = <0 0 0 0>; | 134 | interrupt-map-mask = <0 0 0 0>; |
72 | interrupt-map = <0 0 0 0 &mpic 58>; | 135 | interrupt-map = <0 0 0 0 &mpic 58>; |
73 | marvell,pcie-port = <0>; | 136 | marvell,pcie-port = <0>; |
@@ -78,12 +141,13 @@ pcie-controller { | |||
78 | 141 | ||
79 | pcie@2,0 { | 142 | pcie@2,0 { |
80 | device_type = "pci"; | 143 | device_type = "pci"; |
81 | assigned-addresses = <0x82001000 0 0xd0044000 0 0x2000>; | 144 | assigned-addresses = <0x82001000 0 0x44000 0 0x2000>; |
82 | reg = <0x1000 0 0 0 0>; | 145 | reg = <0x1000 0 0 0 0>; |
83 | #address-cells = <3>; | 146 | #address-cells = <3>; |
84 | #size-cells = <2>; | 147 | #size-cells = <2>; |
85 | #interrupt-cells = <1>; | 148 | #interrupt-cells = <1>; |
86 | ranges; | 149 | ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0 |
150 | 0x81000000 0 0 0x81000000 0x2 0 1 0>; | ||
87 | interrupt-map-mask = <0 0 0 0>; | 151 | interrupt-map-mask = <0 0 0 0>; |
88 | interrupt-map = <0 0 0 0 &mpic 59>; | 152 | interrupt-map = <0 0 0 0 &mpic 59>; |
89 | marvell,pcie-port = <0>; | 153 | marvell,pcie-port = <0>; |
@@ -94,12 +158,13 @@ pcie-controller { | |||
94 | 158 | ||
95 | pcie@3,0 { | 159 | pcie@3,0 { |
96 | device_type = "pci"; | 160 | device_type = "pci"; |
97 | assigned-addresses = <0x82001800 0 0xd0048000 0 0x2000>; | 161 | assigned-addresses = <0x82001800 0 0x48000 0 0x2000>; |
98 | reg = <0x1800 0 0 0 0>; | 162 | reg = <0x1800 0 0 0 0>; |
99 | #address-cells = <3>; | 163 | #address-cells = <3>; |
100 | #size-cells = <2>; | 164 | #size-cells = <2>; |
101 | #interrupt-cells = <1>; | 165 | #interrupt-cells = <1>; |
102 | ranges; | 166 | ranges = <0x82000000 0 0 0x82000000 0x3 0 1 0 |
167 | 0x81000000 0 0 0x81000000 0x3 0 1 0>; | ||
103 | interrupt-map-mask = <0 0 0 0>; | 168 | interrupt-map-mask = <0 0 0 0>; |
104 | interrupt-map = <0 0 0 0 &mpic 60>; | 169 | interrupt-map = <0 0 0 0 &mpic 60>; |
105 | marvell,pcie-port = <0>; | 170 | marvell,pcie-port = <0>; |
@@ -110,12 +175,13 @@ pcie-controller { | |||
110 | 175 | ||
111 | pcie@4,0 { | 176 | pcie@4,0 { |
112 | device_type = "pci"; | 177 | device_type = "pci"; |
113 | assigned-addresses = <0x82002000 0 0xd004c000 0 0x2000>; | 178 | assigned-addresses = <0x82002000 0 0x4c000 0 0x2000>; |
114 | reg = <0x2000 0 0 0 0>; | 179 | reg = <0x2000 0 0 0 0>; |
115 | #address-cells = <3>; | 180 | #address-cells = <3>; |
116 | #size-cells = <2>; | 181 | #size-cells = <2>; |
117 | #interrupt-cells = <1>; | 182 | #interrupt-cells = <1>; |
118 | ranges; | 183 | ranges = <0x82000000 0 0 0x82000000 0x4 0 1 0 |
184 | 0x81000000 0 0 0x81000000 0x4 0 1 0>; | ||
119 | interrupt-map-mask = <0 0 0 0>; | 185 | interrupt-map-mask = <0 0 0 0>; |
120 | interrupt-map = <0 0 0 0 &mpic 61>; | 186 | interrupt-map = <0 0 0 0 &mpic 61>; |
121 | marvell,pcie-port = <0>; | 187 | marvell,pcie-port = <0>; |
@@ -126,12 +192,13 @@ pcie-controller { | |||
126 | 192 | ||
127 | pcie@5,0 { | 193 | pcie@5,0 { |
128 | device_type = "pci"; | 194 | device_type = "pci"; |
129 | assigned-addresses = <0x82002800 0 0xd0080000 0 0x2000>; | 195 | assigned-addresses = <0x82002800 0 0x80000 0 0x2000>; |
130 | reg = <0x2800 0 0 0 0>; | 196 | reg = <0x2800 0 0 0 0>; |
131 | #address-cells = <3>; | 197 | #address-cells = <3>; |
132 | #size-cells = <2>; | 198 | #size-cells = <2>; |
133 | #interrupt-cells = <1>; | 199 | #interrupt-cells = <1>; |
134 | ranges; | 200 | ranges = <0x82000000 0 0 0x82000000 0x5 0 1 0 |
201 | 0x81000000 0 0 0x81000000 0x5 0 1 0>; | ||
135 | interrupt-map-mask = <0 0 0 0>; | 202 | interrupt-map-mask = <0 0 0 0>; |
136 | interrupt-map = <0 0 0 0 &mpic 62>; | 203 | interrupt-map = <0 0 0 0 &mpic 62>; |
137 | marvell,pcie-port = <1>; | 204 | marvell,pcie-port = <1>; |
@@ -142,12 +209,13 @@ pcie-controller { | |||
142 | 209 | ||
143 | pcie@6,0 { | 210 | pcie@6,0 { |
144 | device_type = "pci"; | 211 | device_type = "pci"; |
145 | assigned-addresses = <0x82003000 0 0xd0084000 0 0x2000>; | 212 | assigned-addresses = <0x82003000 0 0x84000 0 0x2000>; |
146 | reg = <0x3000 0 0 0 0>; | 213 | reg = <0x3000 0 0 0 0>; |
147 | #address-cells = <3>; | 214 | #address-cells = <3>; |
148 | #size-cells = <2>; | 215 | #size-cells = <2>; |
149 | #interrupt-cells = <1>; | 216 | #interrupt-cells = <1>; |
150 | ranges; | 217 | ranges = <0x82000000 0 0 0x82000000 0x6 0 1 0 |
218 | 0x81000000 0 0 0x81000000 0x6 0 1 0>; | ||
151 | interrupt-map-mask = <0 0 0 0>; | 219 | interrupt-map-mask = <0 0 0 0>; |
152 | interrupt-map = <0 0 0 0 &mpic 63>; | 220 | interrupt-map = <0 0 0 0 &mpic 63>; |
153 | marvell,pcie-port = <1>; | 221 | marvell,pcie-port = <1>; |
@@ -158,12 +226,13 @@ pcie-controller { | |||
158 | 226 | ||
159 | pcie@7,0 { | 227 | pcie@7,0 { |
160 | device_type = "pci"; | 228 | device_type = "pci"; |
161 | assigned-addresses = <0x82003800 0 0xd0088000 0 0x2000>; | 229 | assigned-addresses = <0x82003800 0 0x88000 0 0x2000>; |
162 | reg = <0x3800 0 0 0 0>; | 230 | reg = <0x3800 0 0 0 0>; |
163 | #address-cells = <3>; | 231 | #address-cells = <3>; |
164 | #size-cells = <2>; | 232 | #size-cells = <2>; |
165 | #interrupt-cells = <1>; | 233 | #interrupt-cells = <1>; |
166 | ranges; | 234 | ranges = <0x82000000 0 0 0x82000000 0x7 0 1 0 |
235 | 0x81000000 0 0 0x81000000 0x7 0 1 0>; | ||
167 | interrupt-map-mask = <0 0 0 0>; | 236 | interrupt-map-mask = <0 0 0 0>; |
168 | interrupt-map = <0 0 0 0 &mpic 64>; | 237 | interrupt-map = <0 0 0 0 &mpic 64>; |
169 | marvell,pcie-port = <1>; | 238 | marvell,pcie-port = <1>; |
@@ -174,12 +243,13 @@ pcie-controller { | |||
174 | 243 | ||
175 | pcie@8,0 { | 244 | pcie@8,0 { |
176 | device_type = "pci"; | 245 | device_type = "pci"; |
177 | assigned-addresses = <0x82004000 0 0xd008c000 0 0x2000>; | 246 | assigned-addresses = <0x82004000 0 0x8c000 0 0x2000>; |
178 | reg = <0x4000 0 0 0 0>; | 247 | reg = <0x4000 0 0 0 0>; |
179 | #address-cells = <3>; | 248 | #address-cells = <3>; |
180 | #size-cells = <2>; | 249 | #size-cells = <2>; |
181 | #interrupt-cells = <1>; | 250 | #interrupt-cells = <1>; |
182 | ranges; | 251 | ranges = <0x82000000 0 0 0x82000000 0x8 0 1 0 |
252 | 0x81000000 0 0 0x81000000 0x8 0 1 0>; | ||
183 | interrupt-map-mask = <0 0 0 0>; | 253 | interrupt-map-mask = <0 0 0 0>; |
184 | interrupt-map = <0 0 0 0 &mpic 65>; | 254 | interrupt-map = <0 0 0 0 &mpic 65>; |
185 | marvell,pcie-port = <1>; | 255 | marvell,pcie-port = <1>; |
@@ -187,14 +257,16 @@ pcie-controller { | |||
187 | clocks = <&gateclk 12>; | 257 | clocks = <&gateclk 12>; |
188 | status = "disabled"; | 258 | status = "disabled"; |
189 | }; | 259 | }; |
260 | |||
190 | pcie@9,0 { | 261 | pcie@9,0 { |
191 | device_type = "pci"; | 262 | device_type = "pci"; |
192 | assigned-addresses = <0x82004800 0 0xd0042000 0 0x2000>; | 263 | assigned-addresses = <0x82004800 0 0x42000 0 0x2000>; |
193 | reg = <0x4800 0 0 0 0>; | 264 | reg = <0x4800 0 0 0 0>; |
194 | #address-cells = <3>; | 265 | #address-cells = <3>; |
195 | #size-cells = <2>; | 266 | #size-cells = <2>; |
196 | #interrupt-cells = <1>; | 267 | #interrupt-cells = <1>; |
197 | ranges; | 268 | ranges = <0x82000000 0 0 0x82000000 0x9 0 1 0 |
269 | 0x81000000 0 0 0x81000000 0x9 0 1 0>; | ||
198 | interrupt-map-mask = <0 0 0 0>; | 270 | interrupt-map-mask = <0 0 0 0>; |
199 | interrupt-map = <0 0 0 0 &mpic 99>; | 271 | interrupt-map = <0 0 0 0 &mpic 99>; |
200 | marvell,pcie-port = <2>; | 272 | marvell,pcie-port = <2>; |
@@ -205,12 +277,13 @@ pcie-controller { | |||
205 | 277 | ||
206 | pcie@10,0 { | 278 | pcie@10,0 { |
207 | device_type = "pci"; | 279 | device_type = "pci"; |
208 | assigned-addresses = <0x82005000 0 0xd0082000 0 0x2000>; | 280 | assigned-addresses = <0x82005000 0 0x82000 0 0x2000>; |
209 | reg = <0x5000 0 0 0 0>; | 281 | reg = <0x5000 0 0 0 0>; |
210 | #address-cells = <3>; | 282 | #address-cells = <3>; |
211 | #size-cells = <2>; | 283 | #size-cells = <2>; |
212 | #interrupt-cells = <1>; | 284 | #interrupt-cells = <1>; |
213 | ranges; | 285 | ranges = <0x82000000 0 0 0x82000000 0xa 0 1 0 |
286 | 0x81000000 0 0 0x81000000 0xa 0 1 0>; | ||
214 | interrupt-map-mask = <0 0 0 0>; | 287 | interrupt-map-mask = <0 0 0 0>; |
215 | interrupt-map = <0 0 0 0 &mpic 103>; | 288 | interrupt-map = <0 0 0 0 &mpic 103>; |
216 | marvell,pcie-port = <3>; | 289 | marvell,pcie-port = <3>; |
diff --git a/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt b/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt new file mode 100644 index 000000000000..6b7510775c50 --- /dev/null +++ b/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt | |||
@@ -0,0 +1,163 @@ | |||
1 | NVIDIA Tegra PCIe controller | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: "nvidia,tegra20-pcie" or "nvidia,tegra30-pcie" | ||
5 | - device_type: Must be "pci" | ||
6 | - reg: A list of physical base address and length for each set of controller | ||
7 | registers. Must contain an entry for each entry in the reg-names property. | ||
8 | - reg-names: Must include the following entries: | ||
9 | "pads": PADS registers | ||
10 | "afi": AFI registers | ||
11 | "cs": configuration space region | ||
12 | - interrupts: A list of interrupt outputs of the controller. Must contain an | ||
13 | entry for each entry in the interrupt-names property. | ||
14 | - interrupt-names: Must include the following entries: | ||
15 | "intr": The Tegra interrupt that is asserted for controller interrupts | ||
16 | "msi": The Tegra interrupt that is asserted when an MSI is received | ||
17 | - pex-clk-supply: Supply voltage for internal reference clock | ||
18 | - vdd-supply: Power supply for controller (1.05V) | ||
19 | - avdd-supply: Power supply for controller (1.05V) (not required for Tegra20) | ||
20 | - bus-range: Range of bus numbers associated with this controller | ||
21 | - #address-cells: Address representation for root ports (must be 3) | ||
22 | - cell 0 specifies the bus and device numbers of the root port: | ||
23 | [23:16]: bus number | ||
24 | [15:11]: device number | ||
25 | - cell 1 denotes the upper 32 address bits and should be 0 | ||
26 | - cell 2 contains the lower 32 address bits and is used to translate to the | ||
27 | CPU address space | ||
28 | - #size-cells: Size representation for root ports (must be 2) | ||
29 | - ranges: Describes the translation of addresses for root ports and standard | ||
30 | PCI regions. The entries must be 6 cells each, where the first three cells | ||
31 | correspond to the address as described for the #address-cells property | ||
32 | above, the fourth cell is the physical CPU address to translate to and the | ||
33 | fifth and six cells are as described for the #size-cells property above. | ||
34 | - The first two entries are expected to translate the addresses for the root | ||
35 | port registers, which are referenced by the assigned-addresses property of | ||
36 | the root port nodes (see below). | ||
37 | - The remaining entries setup the mapping for the standard I/O, memory and | ||
38 | prefetchable PCI regions. The first cell determines the type of region | ||
39 | that is setup: | ||
40 | - 0x81000000: I/O memory region | ||
41 | - 0x82000000: non-prefetchable memory region | ||
42 | - 0xc2000000: prefetchable memory region | ||
43 | Please refer to the standard PCI bus binding document for a more detailed | ||
44 | explanation. | ||
45 | - clocks: List of clock inputs of the controller. Must contain an entry for | ||
46 | each entry in the clock-names property. | ||
47 | - clock-names: Must include the following entries: | ||
48 | "pex": The Tegra clock of that name | ||
49 | "afi": The Tegra clock of that name | ||
50 | "pcie_xclk": The Tegra clock of that name | ||
51 | "pll_e": The Tegra clock of that name | ||
52 | "cml": The Tegra clock of that name (not required for Tegra20) | ||
53 | |||
54 | Root ports are defined as subnodes of the PCIe controller node. | ||
55 | |||
56 | Required properties: | ||
57 | - device_type: Must be "pci" | ||
58 | - assigned-addresses: Address and size of the port configuration registers | ||
59 | - reg: PCI bus address of the root port | ||
60 | - #address-cells: Must be 3 | ||
61 | - #size-cells: Must be 2 | ||
62 | - ranges: Sub-ranges distributed from the PCIe controller node. An empty | ||
63 | property is sufficient. | ||
64 | - nvidia,num-lanes: Number of lanes to use for this port. Valid combinations | ||
65 | are: | ||
66 | - Root port 0 uses 4 lanes, root port 1 is unused. | ||
67 | - Both root ports use 2 lanes. | ||
68 | |||
69 | Example: | ||
70 | |||
71 | SoC DTSI: | ||
72 | |||
73 | pcie-controller { | ||
74 | compatible = "nvidia,tegra20-pcie"; | ||
75 | device_type = "pci"; | ||
76 | reg = <0x80003000 0x00000800 /* PADS registers */ | ||
77 | 0x80003800 0x00000200 /* AFI registers */ | ||
78 | 0x90000000 0x10000000>; /* configuration space */ | ||
79 | reg-names = "pads", "afi", "cs"; | ||
80 | interrupts = <0 98 0x04 /* controller interrupt */ | ||
81 | 0 99 0x04>; /* MSI interrupt */ | ||
82 | interrupt-names = "intr", "msi"; | ||
83 | |||
84 | bus-range = <0x00 0xff>; | ||
85 | #address-cells = <3>; | ||
86 | #size-cells = <2>; | ||
87 | |||
88 | ranges = <0x82000000 0 0x80000000 0x80000000 0 0x00001000 /* port 0 registers */ | ||
89 | 0x82000000 0 0x80001000 0x80001000 0 0x00001000 /* port 1 registers */ | ||
90 | 0x81000000 0 0 0x82000000 0 0x00010000 /* downstream I/O */ | ||
91 | 0x82000000 0 0xa0000000 0xa0000000 0 0x10000000 /* non-prefetchable memory */ | ||
92 | 0xc2000000 0 0xb0000000 0xb0000000 0 0x10000000>; /* prefetchable memory */ | ||
93 | |||
94 | clocks = <&tegra_car 70>, <&tegra_car 72>, <&tegra_car 74>, | ||
95 | <&tegra_car 118>; | ||
96 | clock-names = "pex", "afi", "pcie_xclk", "pll_e"; | ||
97 | status = "disabled"; | ||
98 | |||
99 | pci@1,0 { | ||
100 | device_type = "pci"; | ||
101 | assigned-addresses = <0x82000800 0 0x80000000 0 0x1000>; | ||
102 | reg = <0x000800 0 0 0 0>; | ||
103 | status = "disabled"; | ||
104 | |||
105 | #address-cells = <3>; | ||
106 | #size-cells = <2>; | ||
107 | |||
108 | ranges; | ||
109 | |||
110 | nvidia,num-lanes = <2>; | ||
111 | }; | ||
112 | |||
113 | pci@2,0 { | ||
114 | device_type = "pci"; | ||
115 | assigned-addresses = <0x82001000 0 0x80001000 0 0x1000>; | ||
116 | reg = <0x001000 0 0 0 0>; | ||
117 | status = "disabled"; | ||
118 | |||
119 | #address-cells = <3>; | ||
120 | #size-cells = <2>; | ||
121 | |||
122 | ranges; | ||
123 | |||
124 | nvidia,num-lanes = <2>; | ||
125 | }; | ||
126 | }; | ||
127 | |||
128 | |||
129 | Board DTS: | ||
130 | |||
131 | pcie-controller { | ||
132 | status = "okay"; | ||
133 | |||
134 | vdd-supply = <&pci_vdd_reg>; | ||
135 | pex-clk-supply = <&pci_clk_reg>; | ||
136 | |||
137 | /* root port 00:01.0 */ | ||
138 | pci@1,0 { | ||
139 | status = "okay"; | ||
140 | |||
141 | /* bridge 01:00.0 (optional) */ | ||
142 | pci@0,0 { | ||
143 | reg = <0x010000 0 0 0 0>; | ||
144 | |||
145 | #address-cells = <3>; | ||
146 | #size-cells = <2>; | ||
147 | |||
148 | device_type = "pci"; | ||
149 | |||
150 | /* endpoint 02:00.0 */ | ||
151 | pci@0,0 { | ||
152 | reg = <0x020000 0 0 0 0>; | ||
153 | }; | ||
154 | }; | ||
155 | }; | ||
156 | }; | ||
157 | |||
158 | Note that devices on the PCI bus are dynamically discovered using PCI's bus | ||
159 | enumeration and therefore don't need corresponding device nodes in DT. However | ||
160 | if a device on the PCI bus provides a non-probeable bus such as I2C or SPI, | ||
161 | device nodes need to be added in order to allow the bus' children to be | ||
162 | instantiated at the proper location in the operating system's device tree (as | ||
163 | illustrated by the optional nodes in the example above). | ||
diff --git a/Documentation/devicetree/bindings/pinctrl/atmel,at91-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/atmel,at91-pinctrl.txt index 648d60eb9fd8..7ccae490ff6d 100644 --- a/Documentation/devicetree/bindings/pinctrl/atmel,at91-pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/atmel,at91-pinctrl.txt | |||
@@ -37,7 +37,7 @@ Bank: 3 (A, B and C) | |||
37 | 0xffffffff 0x7fff3ccf /* pioB */ | 37 | 0xffffffff 0x7fff3ccf /* pioB */ |
38 | 0xffffffff 0x007fffff /* pioC */ | 38 | 0xffffffff 0x007fffff /* pioC */ |
39 | 39 | ||
40 | For each peripheral/bank we will descibe in a u32 if a pin can can be | 40 | For each peripheral/bank we will descibe in a u32 if a pin can be |
41 | configured in it by putting 1 to the pin bit (1 << pin) | 41 | configured in it by putting 1 to the pin bit (1 << pin) |
42 | 42 | ||
43 | Let's take the pioA on peripheral B | 43 | Let's take the pioA on peripheral B |
diff --git a/Documentation/devicetree/bindings/pinctrl/nvidia,tegra114-pinmux.txt b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra114-pinmux.txt index e204d009f16c..fb70856c5b51 100644 --- a/Documentation/devicetree/bindings/pinctrl/nvidia,tegra114-pinmux.txt +++ b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra114-pinmux.txt | |||
@@ -80,6 +80,17 @@ Valid values for pin and group names are: | |||
80 | dbg, sdio3, spi, uaa, uab, uart2, uart3, sdio1, ddc, gma, gme, gmf, gmg, | 80 | dbg, sdio3, spi, uaa, uab, uart2, uart3, sdio1, ddc, gma, gme, gmf, gmg, |
81 | gmh, owr, uda. | 81 | gmh, owr, uda. |
82 | 82 | ||
83 | Valid values for nvidia,functions are: | ||
84 | |||
85 | blink, cec, cldvfs, clk12, cpu, dap, dap1, dap2, dev3, displaya, | ||
86 | displaya_alt, displayb, dtv, emc_dll, extperiph1, extperiph2, | ||
87 | extperiph3, gmi, gmi_alt, hda, hsi, i2c1, i2c2, i2c3, i2c4, i2cpwr, | ||
88 | i2s0, i2s1, i2s2, i2s3, i2s4, irda, kbc, nand, nand_alt, owr, pmi, | ||
89 | pwm0, pwm1, pwm2, pwm3, pwron, reset_out_n, rsvd1, rsvd2, rsvd3, | ||
90 | rsvd4, sdmmc1, sdmmc2, sdmmc3, sdmmc4, soc, spdif, spi1, spi2, spi3, | ||
91 | spi4, spi5, spi6, sysclk, trace, uarta, uartb, uartc, uartd, ulpi, | ||
92 | usb, vgp1, vgp2, vgp3, vgp4, vgp5, vgp6, vi, vi_alt1, vi_alt3 | ||
93 | |||
83 | Example: | 94 | Example: |
84 | 95 | ||
85 | pinmux: pinmux { | 96 | pinmux: pinmux { |
diff --git a/Documentation/devicetree/bindings/pinctrl/nvidia,tegra20-pinmux.txt b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra20-pinmux.txt index 683fde93c4fb..61e73cde9ae9 100644 --- a/Documentation/devicetree/bindings/pinctrl/nvidia,tegra20-pinmux.txt +++ b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra20-pinmux.txt | |||
@@ -103,6 +103,17 @@ Valid values for pin and group names are: | |||
103 | drive_gma, drive_gmb, drive_gmc, drive_gmd, drive_gme, drive_owr, | 103 | drive_gma, drive_gmb, drive_gmc, drive_gmd, drive_gme, drive_owr, |
104 | drive_uda. | 104 | drive_uda. |
105 | 105 | ||
106 | Valid values for nvidia,functions are: | ||
107 | |||
108 | ahb_clk, apb_clk, audio_sync, crt, dap1, dap2, dap3, dap4, dap5, | ||
109 | displaya, displayb, emc_test0_dll, emc_test1_dll, gmi, gmi_int, | ||
110 | hdmi, i2cp, i2c1, i2c2, i2c3, ide, irda, kbc, mio, mipi_hs, nand, | ||
111 | osc, owr, pcie, plla_out, pllc_out1, pllm_out1, pllp_out2, pllp_out3, | ||
112 | pllp_out4, pwm, pwr_intr, pwr_on, rsvd1, rsvd2, rsvd3, rsvd4, rtck, | ||
113 | sdio1, sdio2, sdio3, sdio4, sflash, spdif, spi1, spi2, spi2_alt, | ||
114 | spi3, spi4, trace, twc, uarta, uartb, uartc, uartd, uarte, ulpi, | ||
115 | vi, vi_sensor_clk, xio | ||
116 | |||
106 | Example: | 117 | Example: |
107 | 118 | ||
108 | pinctrl@70000000 { | 119 | pinctrl@70000000 { |
diff --git a/Documentation/devicetree/bindings/pinctrl/nvidia,tegra30-pinmux.txt b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra30-pinmux.txt index 6f426ed7009e..0e6354c11e6d 100644 --- a/Documentation/devicetree/bindings/pinctrl/nvidia,tegra30-pinmux.txt +++ b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra30-pinmux.txt | |||
@@ -91,6 +91,18 @@ Valid values for pin and group names are: | |||
91 | gmh, gpv, lcd1, lcd2, owr, sdio1, sdio2, sdio3, spi, uaa, uab, uart2, | 91 | gmh, gpv, lcd1, lcd2, owr, sdio1, sdio2, sdio3, spi, uaa, uab, uart2, |
92 | uart3, uda, vi1. | 92 | uart3, uda, vi1. |
93 | 93 | ||
94 | Valid values for nvidia,functions are: | ||
95 | |||
96 | blink, cec, clk_12m_out, clk_32k_in, core_pwr_req, cpu_pwr_req, crt, | ||
97 | dap, ddr, dev3, displaya, displayb, dtv, extperiph1, extperiph2, | ||
98 | extperiph3, gmi, gmi_alt, hda, hdcp, hdmi, hsi, i2c1, i2c2, i2c3, | ||
99 | i2c4, i2cpwr, i2s0, i2s1, i2s2, i2s3, i2s4, invalid, kbc, mio, nand, | ||
100 | nand_alt, owr, pcie, pwm0, pwm1, pwm2, pwm3, pwr_int_n, rsvd1, rsvd2, | ||
101 | rsvd3, rsvd4, rtck, sata, sdmmc1, sdmmc2, sdmmc3, sdmmc4, spdif, spi1, | ||
102 | spi2, spi2_alt, spi3, spi4, spi5, spi6, sysclk, test, trace, uarta, | ||
103 | uartb, uartc, uartd, uarte, ulpi, vgp1, vgp2, vgp3, vgp4, vgp5, vgp6, | ||
104 | vi, vi_alt1, vi_alt2, vi_alt3 | ||
105 | |||
94 | Example: | 106 | Example: |
95 | 107 | ||
96 | pinctrl@70000000 { | 108 | pinctrl@70000000 { |
diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt b/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt index aeb3c995cc04..1958ca9f9e5c 100644 --- a/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt +++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt | |||
@@ -127,21 +127,20 @@ whether there is any interaction between the child and intermediate parent | |||
127 | nodes, is again defined entirely by the binding for the individual pin | 127 | nodes, is again defined entirely by the binding for the individual pin |
128 | controller device. | 128 | controller device. |
129 | 129 | ||
130 | == Using generic pinconfig options == | 130 | == Generic pin configuration node content == |
131 | 131 | ||
132 | Generic pinconfig parameters can be used by defining a separate node containing | 132 | Many data items that are represented in a pin configuration node are common |
133 | the applicable parameters (and optional values), like: | 133 | and generic. Pin control bindings should use the properties defined below |
134 | where they are applicable; not all of these properties are relevant or useful | ||
135 | for all hardware or binding structures. Each individual binding document | ||
136 | should state which of these generic properties, if any, are used, and the | ||
137 | structure of the DT nodes that contain these properties. | ||
134 | 138 | ||
135 | pcfg_pull_up: pcfg_pull_up { | 139 | Supported generic properties are: |
136 | bias-pull-up; | ||
137 | drive-strength = <20>; | ||
138 | }; | ||
139 | |||
140 | This node should then be referenced in the appropriate pinctrl node as a phandle | ||
141 | and parsed in the driver using the pinconf_generic_parse_dt_config function. | ||
142 | |||
143 | Supported configuration parameters are: | ||
144 | 140 | ||
141 | pins - the list of pins that properties in the node | ||
142 | apply to | ||
143 | function - the mux function to select | ||
145 | bias-disable - disable any pin bias | 144 | bias-disable - disable any pin bias |
146 | bias-high-impedance - high impedance mode ("third-state", "floating") | 145 | bias-high-impedance - high impedance mode ("third-state", "floating") |
147 | bias-bus-hold - latch weakly | 146 | bias-bus-hold - latch weakly |
@@ -160,7 +159,21 @@ low-power-disable - disable low power mode | |||
160 | output-low - set the pin to output mode with low level | 159 | output-low - set the pin to output mode with low level |
161 | output-high - set the pin to output mode with high level | 160 | output-high - set the pin to output mode with high level |
162 | 161 | ||
163 | Arguments for parameters: | 162 | Some of the generic properties take arguments. For those that do, the |
163 | arguments are described below. | ||
164 | |||
165 | - pins takes a list of pin names or IDs as a required argument. The specific | ||
166 | binding for the hardware defines: | ||
167 | - Whether the entries are integers or strings, and their meaning. | ||
168 | |||
169 | - function takes a list of function names/IDs as a required argument. The | ||
170 | specific binding for the hardware defines: | ||
171 | - Whether the entries are integers or strings, and their meaning. | ||
172 | - Whether only a single entry is allowed (which is applied to all entries | ||
173 | in the pins property), or whether there may alternatively be one entry per | ||
174 | entry in the pins property, in which case the list lengths must match, and | ||
175 | for each list index i, the function at list index i is applied to the pin | ||
176 | at list index i. | ||
164 | 177 | ||
165 | - bias-pull-up, -down and -pin-default take as optional argument on hardware | 178 | - bias-pull-up, -down and -pin-default take as optional argument on hardware |
166 | supporting it the pull strength in Ohm. bias-disable will disable the pull. | 179 | supporting it the pull strength in Ohm. bias-disable will disable the pull. |
@@ -170,7 +183,5 @@ Arguments for parameters: | |||
170 | - input-debounce takes the debounce time in usec as argument | 183 | - input-debounce takes the debounce time in usec as argument |
171 | or 0 to disable debouncing | 184 | or 0 to disable debouncing |
172 | 185 | ||
173 | All parameters not listed here, do not take an argument. | ||
174 | |||
175 | More in-depth documentation on these parameters can be found in | 186 | More in-depth documentation on these parameters can be found in |
176 | <include/linux/pinctrl/pinconfig-generic.h> | 187 | <include/linux/pinctrl/pinconfig-generic.h> |
diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-palmas.txt b/Documentation/devicetree/bindings/pinctrl/pinctrl-palmas.txt new file mode 100644 index 000000000000..734d9b04d533 --- /dev/null +++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-palmas.txt | |||
@@ -0,0 +1,96 @@ | |||
1 | Palmas Pincontrol bindings | ||
2 | |||
3 | The pins of Palmas device can be set on different option and provides | ||
4 | the configuration for Pull UP/DOWN, open drain etc. | ||
5 | |||
6 | Required properties: | ||
7 | - compatible: It must be one of following: | ||
8 | - "ti,palmas-pinctrl" for Palma series of the pincontrol. | ||
9 | - "ti,tps65913-pinctrl" for Palma series device TPS65913. | ||
10 | - "ti,tps80036-pinctrl" for Palma series device TPS80036. | ||
11 | |||
12 | Please refer to pinctrl-bindings.txt in this directory for details of the | ||
13 | common pinctrl bindings used by client devices, including the meaning of the | ||
14 | phrase "pin configuration node". | ||
15 | |||
16 | Palmas's pin configuration nodes act as a container for an arbitrary number of | ||
17 | subnodes. Each of these subnodes represents some desired configuration for a | ||
18 | list of pins. This configuration can include the mux function to select on | ||
19 | those pin(s), and various pin configuration parameters, such as pull-up, | ||
20 | open drain. | ||
21 | |||
22 | The name of each subnode is not important; all subnodes should be enumerated | ||
23 | and processed purely based on their content. | ||
24 | |||
25 | Each subnode only affects those parameters that are explicitly listed. In | ||
26 | other words, a subnode that lists a mux function but no pin configuration | ||
27 | parameters implies no information about any pin configuration parameters. | ||
28 | Similarly, a pin subnode that describes a pullup parameter implies no | ||
29 | information about e.g. the mux function. | ||
30 | |||
31 | Optional properties: | ||
32 | - ti,palmas-enable-dvfs1: Enable DVFS1. Configure pins for DVFS1 mode. | ||
33 | Selection primary or secondary function associated to I2C2_SCL_SCE, | ||
34 | I2C2_SDA_SDO pin/pad for DVFS1 interface | ||
35 | - ti,palmas-enable-dvfs2: Enable DVFS2. Configure pins for DVFS2 mode. | ||
36 | Selection primary or secondary function associated to GPADC_START | ||
37 | and SYSEN2 pin/pad for DVFS2 interface | ||
38 | |||
39 | This binding uses the following generic properties as defined in | ||
40 | pinctrl-bindings.txt: | ||
41 | |||
42 | Required: pins | ||
43 | Options: function, bias-disable, bias-pull-up, bias-pull-down, | ||
44 | bias-pin-default, drive-open-drain. | ||
45 | |||
46 | Note that many of these properties are only valid for certain specific pins. | ||
47 | See the Palmas device datasheet for complete details regarding which pins | ||
48 | support which functionality. | ||
49 | |||
50 | Valid values for pin names are: | ||
51 | gpio0, gpio1, gpio2, gpio3, gpio4, gpio5, gpio6, gpio7, gpio8, gpio9, | ||
52 | gpio10, gpio11, gpio12, gpio13, gpio14, gpio15, vac, powergood, | ||
53 | nreswarm, pwrdown, gpadc_start, reset_in, nsleep, enable1, enable2, | ||
54 | int. | ||
55 | |||
56 | Valid value of function names are: | ||
57 | gpio, led, pwm, regen, sysen, clk32kgaudio, id, vbus_det, chrg_det, | ||
58 | vac, vacok, powergood, usb_psel, msecure, pwrhold, int, nreswarm, | ||
59 | simrsto, simrsti, low_vbat, wireless_chrg1, rcm, pwrdown, gpadc_start, | ||
60 | reset_in, nsleep, enable. | ||
61 | |||
62 | There are 4 special functions: opt0, opt1, opt2 and opt3. If any of these | ||
63 | functions is selected then directly pins register will be written with 0, 1, 2 | ||
64 | or 3 respectively if it is valid for that pins or list of pins. | ||
65 | |||
66 | Example: | ||
67 | palmas: tps65913 { | ||
68 | .... | ||
69 | pinctrl { | ||
70 | compatible = "ti,tps65913-pinctrl"; | ||
71 | ti,palmas-enable-dvfs1; | ||
72 | pinctrl-names = "default"; | ||
73 | pinctrl-0 = <&palmas_pins_state>; | ||
74 | |||
75 | palmas_pins_state: pinmux { | ||
76 | gpio0 { | ||
77 | pins = "gpio0"; | ||
78 | function = "id"; | ||
79 | bias-pull-up; | ||
80 | }; | ||
81 | |||
82 | vac { | ||
83 | pins = "vac"; | ||
84 | function = "vacok"; | ||
85 | bias-pull-down; | ||
86 | }; | ||
87 | |||
88 | gpio5 { | ||
89 | pins = "gpio5"; | ||
90 | function = "opt0"; | ||
91 | drive-open-drain = <1>; | ||
92 | }; | ||
93 | }; | ||
94 | }; | ||
95 | .... | ||
96 | }; | ||
diff --git a/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt index 36281e7a2a46..257677de3e6b 100644 --- a/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt | |||
@@ -12,6 +12,7 @@ Required Properties: | |||
12 | - "samsung,s3c2440-pinctrl": for S3C2440-compatible pin-controller, | 12 | - "samsung,s3c2440-pinctrl": for S3C2440-compatible pin-controller, |
13 | - "samsung,s3c2450-pinctrl": for S3C2450-compatible pin-controller, | 13 | - "samsung,s3c2450-pinctrl": for S3C2450-compatible pin-controller, |
14 | - "samsung,s3c64xx-pinctrl": for S3C64xx-compatible pin-controller, | 14 | - "samsung,s3c64xx-pinctrl": for S3C64xx-compatible pin-controller, |
15 | - "samsung,s5pv210-pinctrl": for S5PV210-compatible pin-controller, | ||
15 | - "samsung,exynos4210-pinctrl": for Exynos4210 compatible pin-controller. | 16 | - "samsung,exynos4210-pinctrl": for Exynos4210 compatible pin-controller. |
16 | - "samsung,exynos4x12-pinctrl": for Exynos4x12 compatible pin-controller. | 17 | - "samsung,exynos4x12-pinctrl": for Exynos4x12 compatible pin-controller. |
17 | - "samsung,exynos5250-pinctrl": for Exynos5250 compatible pin-controller. | 18 | - "samsung,exynos5250-pinctrl": for Exynos5250 compatible pin-controller. |
@@ -128,7 +129,7 @@ B. External Wakeup Interrupts: For supporting external wakeup interrupts, a | |||
128 | - samsung,s3c64xx-wakeup-eint: represents wakeup interrupt controller | 129 | - samsung,s3c64xx-wakeup-eint: represents wakeup interrupt controller |
129 | found on Samsung S3C64xx SoCs, | 130 | found on Samsung S3C64xx SoCs, |
130 | - samsung,exynos4210-wakeup-eint: represents wakeup interrupt controller | 131 | - samsung,exynos4210-wakeup-eint: represents wakeup interrupt controller |
131 | found on Samsung Exynos4210 SoC. | 132 | found on Samsung Exynos4210 and S5PC110/S5PV210 SoCs. |
132 | - interrupt-parent: phandle of the interrupt parent to which the external | 133 | - interrupt-parent: phandle of the interrupt parent to which the external |
133 | wakeup interrupts are forwarded to. | 134 | wakeup interrupts are forwarded to. |
134 | - interrupts: interrupt used by multiplexed wakeup interrupts. | 135 | - interrupts: interrupt used by multiplexed wakeup interrupts. |
diff --git a/Documentation/devicetree/bindings/pinctrl/ste,nomadik.txt b/Documentation/devicetree/bindings/pinctrl/ste,nomadik.txt index 9a2f3f420526..6b33b9f18e88 100644 --- a/Documentation/devicetree/bindings/pinctrl/ste,nomadik.txt +++ b/Documentation/devicetree/bindings/pinctrl/ste,nomadik.txt | |||
@@ -1,8 +1,8 @@ | |||
1 | ST Ericsson Nomadik pinmux controller | 1 | ST Ericsson Nomadik pinmux controller |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible: "stericsson,nmk-pinctrl", "stericsson,nmk-pinctrl-db8540", | 4 | - compatible: "stericsson,db8500-pinctrl", "stericsson,db8540-pinctrl", |
5 | "stericsson,nmk-pinctrl-stn8815" | 5 | "stericsson,stn8815-pinctrl" |
6 | - reg: Should contain the register physical address and length of the PRCMU. | 6 | - reg: Should contain the register physical address and length of the PRCMU. |
7 | 7 | ||
8 | Please refer to pinctrl-bindings.txt in this directory for details of the | 8 | Please refer to pinctrl-bindings.txt in this directory for details of the |
@@ -68,7 +68,7 @@ Optional subnode-properties: | |||
68 | Example board file extract: | 68 | Example board file extract: |
69 | 69 | ||
70 | pinctrl@80157000 { | 70 | pinctrl@80157000 { |
71 | compatible = "stericsson,nmk-pinctrl"; | 71 | compatible = "stericsson,db8500-pinctrl"; |
72 | reg = <0x80157000 0x2000>; | 72 | reg = <0x80157000 0x2000>; |
73 | 73 | ||
74 | pinctrl-names = "default"; | 74 | pinctrl-names = "default"; |
diff --git a/Documentation/devicetree/bindings/power_supply/msm-poweroff.txt b/Documentation/devicetree/bindings/power_supply/msm-poweroff.txt new file mode 100644 index 000000000000..ce44ad357565 --- /dev/null +++ b/Documentation/devicetree/bindings/power_supply/msm-poweroff.txt | |||
@@ -0,0 +1,17 @@ | |||
1 | MSM Restart Driver | ||
2 | |||
3 | A power supply hold (ps-hold) bit is set to power the msm chipsets. | ||
4 | Clearing that bit allows us to restart/poweroff. The difference | ||
5 | between poweroff and restart is determined by unique power manager IC | ||
6 | settings. | ||
7 | |||
8 | Required Properties: | ||
9 | -compatible: "qcom,pshold" | ||
10 | -reg: Specifies the physical address of the ps-hold register | ||
11 | |||
12 | Example: | ||
13 | |||
14 | restart@fc4ab000 { | ||
15 | compatible = "qcom,pshold"; | ||
16 | reg = <0xfc4ab000 0x4>; | ||
17 | }; | ||
diff --git a/Documentation/devicetree/bindings/powerpc/fsl/msi-pic.txt b/Documentation/devicetree/bindings/powerpc/fsl/msi-pic.txt index 5693877ab377..82dd5b65cf48 100644 --- a/Documentation/devicetree/bindings/powerpc/fsl/msi-pic.txt +++ b/Documentation/devicetree/bindings/powerpc/fsl/msi-pic.txt | |||
@@ -1,21 +1,20 @@ | |||
1 | * Freescale MSI interrupt controller | 1 | * Freescale MSI interrupt controller |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible : compatible list, contains 2 entries, | 4 | - compatible : compatible list, may contain one or two entries |
5 | first is "fsl,CHIP-msi", where CHIP is the processor(mpc8610, mpc8572, | 5 | The first is "fsl,CHIP-msi", where CHIP is the processor(mpc8610, mpc8572, |
6 | etc.) and the second is "fsl,mpic-msi" or "fsl,ipic-msi" depending on | 6 | etc.) and the second is "fsl,mpic-msi" or "fsl,ipic-msi" or |
7 | the parent type. | 7 | "fsl,mpic-msi-v4.3" depending on the parent type and version. If mpic |
8 | version is 4.3, the number of MSI registers is increased to 16, MSIIR1 is | ||
9 | provided to access these 16 registers, and compatible "fsl,mpic-msi-v4.3" | ||
10 | should be used. The first entry is optional; the second entry is | ||
11 | required. | ||
8 | 12 | ||
9 | - reg : It may contain one or two regions. The first region should contain | 13 | - reg : It may contain one or two regions. The first region should contain |
10 | the address and the length of the shared message interrupt register set. | 14 | the address and the length of the shared message interrupt register set. |
11 | The second region should contain the address of aliased MSIIR register for | 15 | The second region should contain the address of aliased MSIIR or MSIIR1 |
12 | platforms that have such an alias. | 16 | register for platforms that have such an alias, if using MSIIR1, the second |
13 | 17 | region must be added because different MSI group has different MSIIR1 offset. | |
14 | - msi-available-ranges: use <start count> style section to define which | ||
15 | msi interrupt can be used in the 256 msi interrupts. This property is | ||
16 | optional, without this, all the 256 MSI interrupts can be used. | ||
17 | Each available range must begin and end on a multiple of 32 (i.e. | ||
18 | no splitting an individual MSI register or the associated PIC interrupt). | ||
19 | 18 | ||
20 | - interrupts : each one of the interrupts here is one entry per 32 MSIs, | 19 | - interrupts : each one of the interrupts here is one entry per 32 MSIs, |
21 | and routed to the host interrupt controller. the interrupts should | 20 | and routed to the host interrupt controller. the interrupts should |
@@ -28,6 +27,14 @@ Required properties: | |||
28 | to MPIC. | 27 | to MPIC. |
29 | 28 | ||
30 | Optional properties: | 29 | Optional properties: |
30 | - msi-available-ranges: use <start count> style section to define which | ||
31 | msi interrupt can be used in the 256 msi interrupts. This property is | ||
32 | optional, without this, all the MSI interrupts can be used. | ||
33 | Each available range must begin and end on a multiple of 32 (i.e. | ||
34 | no splitting an individual MSI register or the associated PIC interrupt). | ||
35 | MPIC v4.3 does not support this property because the 32 interrupts of an | ||
36 | individual register are not continuous when using MSIIR1. | ||
37 | |||
31 | - msi-address-64: 64-bit PCI address of the MSIIR register. The MSIIR register | 38 | - msi-address-64: 64-bit PCI address of the MSIIR register. The MSIIR register |
32 | is used for MSI messaging. The address of MSIIR in PCI address space is | 39 | is used for MSI messaging. The address of MSIIR in PCI address space is |
33 | the MSI message address. | 40 | the MSI message address. |
@@ -54,6 +61,28 @@ Example: | |||
54 | interrupt-parent = <&mpic>; | 61 | interrupt-parent = <&mpic>; |
55 | }; | 62 | }; |
56 | 63 | ||
64 | msi@41600 { | ||
65 | compatible = "fsl,mpic-msi-v4.3"; | ||
66 | reg = <0x41600 0x200 0x44148 4>; | ||
67 | interrupts = < | ||
68 | 0xe0 0 0 0 | ||
69 | 0xe1 0 0 0 | ||
70 | 0xe2 0 0 0 | ||
71 | 0xe3 0 0 0 | ||
72 | 0xe4 0 0 0 | ||
73 | 0xe5 0 0 0 | ||
74 | 0xe6 0 0 0 | ||
75 | 0xe7 0 0 0 | ||
76 | 0x100 0 0 0 | ||
77 | 0x101 0 0 0 | ||
78 | 0x102 0 0 0 | ||
79 | 0x103 0 0 0 | ||
80 | 0x104 0 0 0 | ||
81 | 0x105 0 0 0 | ||
82 | 0x106 0 0 0 | ||
83 | 0x107 0 0 0>; | ||
84 | }; | ||
85 | |||
57 | The Freescale hypervisor and msi-address-64 | 86 | The Freescale hypervisor and msi-address-64 |
58 | ------------------------------------------- | 87 | ------------------------------------------- |
59 | Normally, PCI devices have access to all of CCSR via an ATMU mapping. The | 88 | Normally, PCI devices have access to all of CCSR via an ATMU mapping. The |
diff --git a/Documentation/devicetree/bindings/pwm/atmel-tcb-pwm.txt b/Documentation/devicetree/bindings/pwm/atmel-tcb-pwm.txt index de0eaed86651..8031148bcf85 100644 --- a/Documentation/devicetree/bindings/pwm/atmel-tcb-pwm.txt +++ b/Documentation/devicetree/bindings/pwm/atmel-tcb-pwm.txt | |||
@@ -2,11 +2,9 @@ Atmel TCB PWM controller | |||
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible: should be "atmel,tcb-pwm" | 4 | - compatible: should be "atmel,tcb-pwm" |
5 | - #pwm-cells: Should be 3. The first cell specifies the per-chip index | 5 | - #pwm-cells: should be 3. See pwm.txt in this directory for a description of |
6 | of the PWM to use, the second cell is the period in nanoseconds and | 6 | the cells format. The only third cell flag supported by this binding is |
7 | bit 0 in the third cell is used to encode the polarity of PWM output. | 7 | PWM_POLARITY_INVERTED. |
8 | Set bit 0 of the third cell in PWM specifier to 1 for inverse polarity & | ||
9 | set to 0 for normal polarity. | ||
10 | - tc-block: The Timer Counter block to use as a PWM chip. | 8 | - tc-block: The Timer Counter block to use as a PWM chip. |
11 | 9 | ||
12 | Example: | 10 | Example: |
diff --git a/Documentation/devicetree/bindings/pwm/imx-pwm.txt b/Documentation/devicetree/bindings/pwm/imx-pwm.txt index 8522bfbccfd7..b50d7a6d9d7f 100644 --- a/Documentation/devicetree/bindings/pwm/imx-pwm.txt +++ b/Documentation/devicetree/bindings/pwm/imx-pwm.txt | |||
@@ -3,8 +3,8 @@ Freescale i.MX PWM controller | |||
3 | Required properties: | 3 | Required properties: |
4 | - compatible: should be "fsl,<soc>-pwm" | 4 | - compatible: should be "fsl,<soc>-pwm" |
5 | - reg: physical base address and length of the controller's registers | 5 | - reg: physical base address and length of the controller's registers |
6 | - #pwm-cells: should be 2. The first cell specifies the per-chip index | 6 | - #pwm-cells: should be 2. See pwm.txt in this directory for a description of |
7 | of the PWM to use and the second cell is the period in nanoseconds. | 7 | the cells format. |
8 | - interrupts: The interrupt for the pwm controller | 8 | - interrupts: The interrupt for the pwm controller |
9 | 9 | ||
10 | Example: | 10 | Example: |
diff --git a/Documentation/devicetree/bindings/pwm/mxs-pwm.txt b/Documentation/devicetree/bindings/pwm/mxs-pwm.txt index 9e3f8f1d46a2..96cdde5f6208 100644 --- a/Documentation/devicetree/bindings/pwm/mxs-pwm.txt +++ b/Documentation/devicetree/bindings/pwm/mxs-pwm.txt | |||
@@ -3,8 +3,8 @@ Freescale MXS PWM controller | |||
3 | Required properties: | 3 | Required properties: |
4 | - compatible: should be "fsl,imx23-pwm" | 4 | - compatible: should be "fsl,imx23-pwm" |
5 | - reg: physical base address and length of the controller's registers | 5 | - reg: physical base address and length of the controller's registers |
6 | - #pwm-cells: should be 2. The first cell specifies the per-chip index | 6 | - #pwm-cells: should be 2. See pwm.txt in this directory for a description of |
7 | of the PWM to use and the second cell is the period in nanoseconds. | 7 | the cells format. |
8 | - fsl,pwm-number: the number of PWM devices | 8 | - fsl,pwm-number: the number of PWM devices |
9 | 9 | ||
10 | Example: | 10 | Example: |
diff --git a/Documentation/devicetree/bindings/pwm/nvidia,tegra20-pwm.txt b/Documentation/devicetree/bindings/pwm/nvidia,tegra20-pwm.txt index 01438ecd6628..c3fc57af8772 100644 --- a/Documentation/devicetree/bindings/pwm/nvidia,tegra20-pwm.txt +++ b/Documentation/devicetree/bindings/pwm/nvidia,tegra20-pwm.txt | |||
@@ -5,9 +5,8 @@ Required properties: | |||
5 | - "nvidia,tegra20-pwm" | 5 | - "nvidia,tegra20-pwm" |
6 | - "nvidia,tegra30-pwm" | 6 | - "nvidia,tegra30-pwm" |
7 | - reg: physical base address and length of the controller's registers | 7 | - reg: physical base address and length of the controller's registers |
8 | - #pwm-cells: On Tegra the number of cells used to specify a PWM is 2. The | 8 | - #pwm-cells: should be 2. See pwm.txt in this directory for a description of |
9 | first cell specifies the per-chip index of the PWM to use and the second | 9 | the cells format. |
10 | cell is the period in nanoseconds. | ||
11 | 10 | ||
12 | Example: | 11 | Example: |
13 | 12 | ||
diff --git a/Documentation/devicetree/bindings/pwm/nxp,pca9685-pwm.txt b/Documentation/devicetree/bindings/pwm/nxp,pca9685-pwm.txt index 1e3dfe7a4894..f84ec9d291ea 100644 --- a/Documentation/devicetree/bindings/pwm/nxp,pca9685-pwm.txt +++ b/Documentation/devicetree/bindings/pwm/nxp,pca9685-pwm.txt | |||
@@ -3,8 +3,8 @@ NXP PCA9685 16-channel 12-bit PWM LED controller | |||
3 | 3 | ||
4 | Required properties: | 4 | Required properties: |
5 | - compatible: "nxp,pca9685-pwm" | 5 | - compatible: "nxp,pca9685-pwm" |
6 | - #pwm-cells: should be 2. The first cell specifies the per-chip index | 6 | - #pwm-cells: Should be 2. See pwm.txt in this directory for a description of |
7 | of the PWM to use and the second cell is the period in nanoseconds. | 7 | the cells format. |
8 | The index 16 is the ALLCALL channel, that sets all PWM channels at the same | 8 | The index 16 is the ALLCALL channel, that sets all PWM channels at the same |
9 | time. | 9 | time. |
10 | 10 | ||
diff --git a/Documentation/devicetree/bindings/pwm/pwm-samsung.txt b/Documentation/devicetree/bindings/pwm/pwm-samsung.txt index ac67c687a327..d61fccd40bad 100644 --- a/Documentation/devicetree/bindings/pwm/pwm-samsung.txt +++ b/Documentation/devicetree/bindings/pwm/pwm-samsung.txt | |||
@@ -19,13 +19,19 @@ Required properties: | |||
19 | - reg: base address and size of register area | 19 | - reg: base address and size of register area |
20 | - interrupts: list of timer interrupts (one interrupt per timer, starting at | 20 | - interrupts: list of timer interrupts (one interrupt per timer, starting at |
21 | timer 0) | 21 | timer 0) |
22 | - #pwm-cells: number of cells used for PWM specifier - must be 3 | 22 | - clock-names: should contain all following required clock names: |
23 | the specifier format is as follows: | 23 | - "timers" - PWM base clock used to generate PWM signals, |
24 | - phandle to PWM controller node | 24 | and any subset of following optional clock names: |
25 | - index of PWM channel (from 0 to 4) | 25 | - "pwm-tclk0" - first external PWM clock source, |
26 | - PWM signal period in nanoseconds | 26 | - "pwm-tclk1" - second external PWM clock source. |
27 | - bitmask of optional PWM flags: | 27 | Note that not all IP variants allow using all external clock sources. |
28 | 0x1 - invert PWM signal | 28 | Refer to SoC documentation to learn which clock source configurations |
29 | are available. | ||
30 | - clocks: should contain clock specifiers of all clocks, which input names | ||
31 | have been specified in clock-names property, in same order. | ||
32 | - #pwm-cells: should be 3. See pwm.txt in this directory for a description of | ||
33 | the cells format. The only third cell flag supported by this binding is | ||
34 | PWM_POLARITY_INVERTED. | ||
29 | 35 | ||
30 | Optional properties: | 36 | Optional properties: |
31 | - samsung,pwm-outputs: list of PWM channels used as PWM outputs on particular | 37 | - samsung,pwm-outputs: list of PWM channels used as PWM outputs on particular |
@@ -38,6 +44,8 @@ Example: | |||
38 | reg = <0x7f006000 0x1000>; | 44 | reg = <0x7f006000 0x1000>; |
39 | interrupt-parent = <&vic0>; | 45 | interrupt-parent = <&vic0>; |
40 | interrupts = <23>, <24>, <25>, <27>, <28>; | 46 | interrupts = <23>, <24>, <25>, <27>, <28>; |
47 | clocks = <&clock 67>; | ||
48 | clock-names = "timers"; | ||
41 | samsung,pwm-outputs = <0>, <1>; | 49 | samsung,pwm-outputs = <0>, <1>; |
42 | #pwm-cells = <3>; | 50 | #pwm-cells = <3>; |
43 | } | 51 | } |
diff --git a/Documentation/devicetree/bindings/pwm/pwm-tiecap.txt b/Documentation/devicetree/bindings/pwm/pwm-tiecap.txt index 681afad73778..fb81179dce37 100644 --- a/Documentation/devicetree/bindings/pwm/pwm-tiecap.txt +++ b/Documentation/devicetree/bindings/pwm/pwm-tiecap.txt | |||
@@ -4,11 +4,9 @@ Required properties: | |||
4 | - compatible: Must be "ti,<soc>-ecap". | 4 | - compatible: Must be "ti,<soc>-ecap". |
5 | for am33xx - compatible = "ti,am33xx-ecap"; | 5 | for am33xx - compatible = "ti,am33xx-ecap"; |
6 | for da850 - compatible = "ti,da850-ecap", "ti,am33xx-ecap"; | 6 | for da850 - compatible = "ti,da850-ecap", "ti,am33xx-ecap"; |
7 | - #pwm-cells: Should be 3. Number of cells being used to specify PWM property. | 7 | - #pwm-cells: should be 3. See pwm.txt in this directory for a description of |
8 | First cell specifies the per-chip index of the PWM to use, the second | 8 | the cells format. The PWM channel index ranges from 0 to 4. The only third |
9 | cell is the period in nanoseconds and bit 0 in the third cell is used to | 9 | cell flag supported by this binding is PWM_POLARITY_INVERTED. |
10 | encode the polarity of PWM output. Set bit 0 of the third in PWM specifier | ||
11 | to 1 for inverse polarity & set to 0 for normal polarity. | ||
12 | - reg: physical base address and size of the registers map. | 10 | - reg: physical base address and size of the registers map. |
13 | 11 | ||
14 | Optional properties: | 12 | Optional properties: |
diff --git a/Documentation/devicetree/bindings/pwm/pwm-tiehrpwm.txt b/Documentation/devicetree/bindings/pwm/pwm-tiehrpwm.txt index 337c6fc65d3f..9c100b2c5b23 100644 --- a/Documentation/devicetree/bindings/pwm/pwm-tiehrpwm.txt +++ b/Documentation/devicetree/bindings/pwm/pwm-tiehrpwm.txt | |||
@@ -4,11 +4,9 @@ Required properties: | |||
4 | - compatible: Must be "ti,<soc>-ehrpwm". | 4 | - compatible: Must be "ti,<soc>-ehrpwm". |
5 | for am33xx - compatible = "ti,am33xx-ehrpwm"; | 5 | for am33xx - compatible = "ti,am33xx-ehrpwm"; |
6 | for da850 - compatible = "ti,da850-ehrpwm", "ti,am33xx-ehrpwm"; | 6 | for da850 - compatible = "ti,da850-ehrpwm", "ti,am33xx-ehrpwm"; |
7 | - #pwm-cells: Should be 3. Number of cells being used to specify PWM property. | 7 | - #pwm-cells: should be 3. See pwm.txt in this directory for a description of |
8 | First cell specifies the per-chip index of the PWM to use, the second | 8 | the cells format. The only third cell flag supported by this binding is |
9 | cell is the period in nanoseconds and bit 0 in the third cell is used to | 9 | PWM_POLARITY_INVERTED. |
10 | encode the polarity of PWM output. Set bit 0 of the third in PWM specifier | ||
11 | to 1 for inverse polarity & set to 0 for normal polarity. | ||
12 | - reg: physical base address and size of the registers map. | 10 | - reg: physical base address and size of the registers map. |
13 | 11 | ||
14 | Optional properties: | 12 | Optional properties: |
diff --git a/Documentation/devicetree/bindings/pwm/pwm.txt b/Documentation/devicetree/bindings/pwm/pwm.txt index 06e67247859a..8556263b8502 100644 --- a/Documentation/devicetree/bindings/pwm/pwm.txt +++ b/Documentation/devicetree/bindings/pwm/pwm.txt | |||
@@ -43,13 +43,14 @@ because the name "backlight" would be used as fallback anyway. | |||
43 | pwm-specifier typically encodes the chip-relative PWM number and the PWM | 43 | pwm-specifier typically encodes the chip-relative PWM number and the PWM |
44 | period in nanoseconds. | 44 | period in nanoseconds. |
45 | 45 | ||
46 | Optionally, the pwm-specifier can encode a number of flags in a third cell: | 46 | Optionally, the pwm-specifier can encode a number of flags (defined in |
47 | - bit 0: PWM signal polarity (0: normal polarity, 1: inverse polarity) | 47 | <dt-bindings/pwm/pwm.h>) in a third cell: |
48 | - PWM_POLARITY_INVERTED: invert the PWM signal polarity | ||
48 | 49 | ||
49 | Example with optional PWM specifier for inverse polarity | 50 | Example with optional PWM specifier for inverse polarity |
50 | 51 | ||
51 | bl: backlight { | 52 | bl: backlight { |
52 | pwms = <&pwm 0 5000000 1>; | 53 | pwms = <&pwm 0 5000000 PWM_POLARITY_INVERTED>; |
53 | pwm-names = "backlight"; | 54 | pwm-names = "backlight"; |
54 | }; | 55 | }; |
55 | 56 | ||
diff --git a/Documentation/devicetree/bindings/pwm/renesas,tpu-pwm.txt b/Documentation/devicetree/bindings/pwm/renesas,tpu-pwm.txt new file mode 100644 index 000000000000..b067e84a94b5 --- /dev/null +++ b/Documentation/devicetree/bindings/pwm/renesas,tpu-pwm.txt | |||
@@ -0,0 +1,28 @@ | |||
1 | * Renesas R-Car Timer Pulse Unit PWM Controller | ||
2 | |||
3 | Required Properties: | ||
4 | |||
5 | - compatible: should be one of the following. | ||
6 | - "renesas,tpu-r8a73a4": for R8A77A4 (R-Mobile APE6) compatible PWM controller. | ||
7 | - "renesas,tpu-r8a7740": for R8A7740 (R-Mobile A1) compatible PWM controller. | ||
8 | - "renesas,tpu-r8a7790": for R8A7790 (R-Car H2) compatible PWM controller. | ||
9 | - "renesas,tpu-sh7372": for SH7372 (SH-Mobile AP4) compatible PWM controller. | ||
10 | - "renesas,tpu": for generic R-Car TPU PWM controller. | ||
11 | |||
12 | - reg: Base address and length of each memory resource used by the PWM | ||
13 | controller hardware module. | ||
14 | |||
15 | - #pwm-cells: should be 3. See pwm.txt in this directory for a description of | ||
16 | the cells format. The only third cell flag supported by this binding is | ||
17 | PWM_POLARITY_INVERTED. | ||
18 | |||
19 | Please refer to pwm.txt in this directory for details of the common PWM bindings | ||
20 | used by client devices. | ||
21 | |||
22 | Example: R8A7740 (R-Car A1) TPU controller node | ||
23 | |||
24 | tpu: pwm@e6600000 { | ||
25 | compatible = "renesas,tpu-r8a7740", "renesas,tpu"; | ||
26 | reg = <0xe6600000 0x100>; | ||
27 | #pwm-cells = <3>; | ||
28 | }; | ||
diff --git a/Documentation/devicetree/bindings/pwm/spear-pwm.txt b/Documentation/devicetree/bindings/pwm/spear-pwm.txt index 3ac779d83386..b486de2c3fe3 100644 --- a/Documentation/devicetree/bindings/pwm/spear-pwm.txt +++ b/Documentation/devicetree/bindings/pwm/spear-pwm.txt | |||
@@ -5,9 +5,8 @@ Required properties: | |||
5 | - "st,spear320-pwm" | 5 | - "st,spear320-pwm" |
6 | - "st,spear1340-pwm" | 6 | - "st,spear1340-pwm" |
7 | - reg: physical base address and length of the controller's registers | 7 | - reg: physical base address and length of the controller's registers |
8 | - #pwm-cells: number of cells used to specify PWM which is fixed to 2 on | 8 | - #pwm-cells: should be 2. See pwm.txt in this directory for a description of |
9 | SPEAr. The first cell specifies the per-chip index of the PWM to use and | 9 | the cells format. |
10 | the second cell is the period in nanoseconds. | ||
11 | 10 | ||
12 | Example: | 11 | Example: |
13 | 12 | ||
diff --git a/Documentation/devicetree/bindings/pwm/ti,twl-pwm.txt b/Documentation/devicetree/bindings/pwm/ti,twl-pwm.txt index 2943ee5fce00..4e32bee11201 100644 --- a/Documentation/devicetree/bindings/pwm/ti,twl-pwm.txt +++ b/Documentation/devicetree/bindings/pwm/ti,twl-pwm.txt | |||
@@ -6,8 +6,8 @@ On TWL6030 series: PWM0 and PWM1 | |||
6 | 6 | ||
7 | Required properties: | 7 | Required properties: |
8 | - compatible: "ti,twl4030-pwm" or "ti,twl6030-pwm" | 8 | - compatible: "ti,twl4030-pwm" or "ti,twl6030-pwm" |
9 | - #pwm-cells: should be 2. The first cell specifies the per-chip index | 9 | - #pwm-cells: should be 2. See pwm.txt in this directory for a description of |
10 | of the PWM to use and the second cell is the period in nanoseconds. | 10 | the cells format. |
11 | 11 | ||
12 | Example: | 12 | Example: |
13 | 13 | ||
diff --git a/Documentation/devicetree/bindings/pwm/ti,twl-pwmled.txt b/Documentation/devicetree/bindings/pwm/ti,twl-pwmled.txt index cb64f3acc10f..9f4b46090782 100644 --- a/Documentation/devicetree/bindings/pwm/ti,twl-pwmled.txt +++ b/Documentation/devicetree/bindings/pwm/ti,twl-pwmled.txt | |||
@@ -6,8 +6,8 @@ On TWL6030 series: LED PWM (mainly used as charging indicator LED) | |||
6 | 6 | ||
7 | Required properties: | 7 | Required properties: |
8 | - compatible: "ti,twl4030-pwmled" or "ti,twl6030-pwmled" | 8 | - compatible: "ti,twl4030-pwmled" or "ti,twl6030-pwmled" |
9 | - #pwm-cells: should be 2. The first cell specifies the per-chip index | 9 | - #pwm-cells: should be 2. See pwm.txt in this directory for a description of |
10 | of the PWM to use and the second cell is the period in nanoseconds. | 10 | the cells format. |
11 | 11 | ||
12 | Example: | 12 | Example: |
13 | 13 | ||
diff --git a/Documentation/devicetree/bindings/pwm/vt8500-pwm.txt b/Documentation/devicetree/bindings/pwm/vt8500-pwm.txt index d21d82d29855..a76390e6df2e 100644 --- a/Documentation/devicetree/bindings/pwm/vt8500-pwm.txt +++ b/Documentation/devicetree/bindings/pwm/vt8500-pwm.txt | |||
@@ -3,11 +3,9 @@ VIA/Wondermedia VT8500/WM8xxx series SoC PWM controller | |||
3 | Required properties: | 3 | Required properties: |
4 | - compatible: should be "via,vt8500-pwm" | 4 | - compatible: should be "via,vt8500-pwm" |
5 | - reg: physical base address and length of the controller's registers | 5 | - reg: physical base address and length of the controller's registers |
6 | - #pwm-cells: Should be 3. Number of cells being used to specify PWM property. | 6 | - #pwm-cells: should be 3. See pwm.txt in this directory for a description of |
7 | First cell specifies the per-chip index of the PWM to use, the second | 7 | the cells format. The only third cell flag supported by this binding is |
8 | cell is the period in nanoseconds and bit 0 in the third cell is used to | 8 | PWM_POLARITY_INVERTED. |
9 | encode the polarity of PWM output. Set bit 0 of the third in PWM specifier | ||
10 | to 1 for inverse polarity & set to 0 for normal polarity. | ||
11 | - clocks: phandle to the PWM source clock | 9 | - clocks: phandle to the PWM source clock |
12 | 10 | ||
13 | Example: | 11 | Example: |
diff --git a/Documentation/devicetree/bindings/regulator/88pm800.txt b/Documentation/devicetree/bindings/regulator/88pm800.txt new file mode 100644 index 000000000000..e8a54c2a5821 --- /dev/null +++ b/Documentation/devicetree/bindings/regulator/88pm800.txt | |||
@@ -0,0 +1,38 @@ | |||
1 | Marvell 88PM800 regulator | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: "marvell,88pm800" | ||
5 | - reg: I2C slave address | ||
6 | - regulators: A node that houses a sub-node for each regulator within the | ||
7 | device. Each sub-node is identified using the node's name (or the deprecated | ||
8 | regulator-compatible property if present), with valid values listed below. | ||
9 | The content of each sub-node is defined by the standard binding for | ||
10 | regulators; see regulator.txt. | ||
11 | |||
12 | The valid names for regulators are: | ||
13 | |||
14 | buck1, buck2, buck3, buck4, buck5, ldo1, ldo2, ldo3, ldo4, ldo5, ldo6, ldo7, | ||
15 | ldo8, ldo9, ldo10, ldo11, ldo12, ldo13, ldo14, ldo15, ldo16, ldo17, ldo18, ldo19 | ||
16 | |||
17 | Example: | ||
18 | |||
19 | pmic: 88pm800@31 { | ||
20 | compatible = "marvell,88pm800"; | ||
21 | reg = <0x31>; | ||
22 | |||
23 | regulators { | ||
24 | buck1 { | ||
25 | regulator-min-microvolt = <600000>; | ||
26 | regulator-max-microvolt = <3950000>; | ||
27 | regulator-boot-on; | ||
28 | regulator-always-on; | ||
29 | }; | ||
30 | ldo1 { | ||
31 | regulator-min-microvolt = <600000>; | ||
32 | regulator-max-microvolt = <15000000>; | ||
33 | regulator-boot-on; | ||
34 | regulator-always-on; | ||
35 | }; | ||
36 | ... | ||
37 | }; | ||
38 | }; | ||
diff --git a/Documentation/devicetree/bindings/regulator/max8660.txt b/Documentation/devicetree/bindings/regulator/max8660.txt new file mode 100644 index 000000000000..8ba994d8a142 --- /dev/null +++ b/Documentation/devicetree/bindings/regulator/max8660.txt | |||
@@ -0,0 +1,47 @@ | |||
1 | Maxim MAX8660 voltage regulator | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: must be one of "maxim,max8660", "maxim,max8661" | ||
5 | - reg: I2C slave address, usually 0x34 | ||
6 | - any required generic properties defined in regulator.txt | ||
7 | |||
8 | Example: | ||
9 | |||
10 | i2c_master { | ||
11 | max8660@34 { | ||
12 | compatible = "maxim,max8660"; | ||
13 | reg = <0x34>; | ||
14 | |||
15 | regulators { | ||
16 | regulator@0 { | ||
17 | regulator-compatible= "V3(DCDC)"; | ||
18 | regulator-min-microvolt = <725000>; | ||
19 | regulator-max-microvolt = <1800000>; | ||
20 | }; | ||
21 | |||
22 | regulator@1 { | ||
23 | regulator-compatible= "V4(DCDC)"; | ||
24 | regulator-min-microvolt = <725000>; | ||
25 | regulator-max-microvolt = <1800000>; | ||
26 | }; | ||
27 | |||
28 | regulator@2 { | ||
29 | regulator-compatible= "V5(LDO)"; | ||
30 | regulator-min-microvolt = <1700000>; | ||
31 | regulator-max-microvolt = <2000000>; | ||
32 | }; | ||
33 | |||
34 | regulator@3 { | ||
35 | regulator-compatible= "V6(LDO)"; | ||
36 | regulator-min-microvolt = <1800000>; | ||
37 | regulator-max-microvolt = <3300000>; | ||
38 | }; | ||
39 | |||
40 | regulator@4 { | ||
41 | regulator-compatible= "V7(LDO)"; | ||
42 | regulator-min-microvolt = <1800000>; | ||
43 | regulator-max-microvolt = <3300000>; | ||
44 | }; | ||
45 | }; | ||
46 | }; | ||
47 | }; | ||
diff --git a/Documentation/devicetree/bindings/regulator/palmas-pmic.txt b/Documentation/devicetree/bindings/regulator/palmas-pmic.txt index 30b0581bb1ce..875639ae0606 100644 --- a/Documentation/devicetree/bindings/regulator/palmas-pmic.txt +++ b/Documentation/devicetree/bindings/regulator/palmas-pmic.txt | |||
@@ -25,8 +25,8 @@ Optional nodes: | |||
25 | Additional custom properties are listed below. | 25 | Additional custom properties are listed below. |
26 | 26 | ||
27 | For ti,palmas-pmic - smps12, smps123, smps3 depending on OTP, | 27 | For ti,palmas-pmic - smps12, smps123, smps3 depending on OTP, |
28 | smps45, smps457, smps7 depending on variant, smps6, smps[8-10], | 28 | smps45, smps457, smps7 depending on variant, smps6, smps[8-9], |
29 | ldo[1-9], ldoln, ldousb. | 29 | smps10_out2, smps10_out1, do[1-9], ldoln, ldousb. |
30 | 30 | ||
31 | Optional sub-node properties: | 31 | Optional sub-node properties: |
32 | ti,warm-reset - maintain voltage during warm reset(boolean) | 32 | ti,warm-reset - maintain voltage during warm reset(boolean) |
@@ -36,6 +36,9 @@ Optional nodes: | |||
36 | ti,smps-range - OTP has the wrong range set for the hardware so override | 36 | ti,smps-range - OTP has the wrong range set for the hardware so override |
37 | 0 - low range, 1 - high range. | 37 | 0 - low range, 1 - high range. |
38 | 38 | ||
39 | - ti,system-power-controller: Telling whether or not this pmic is controlling | ||
40 | the system power. | ||
41 | |||
39 | Example: | 42 | Example: |
40 | 43 | ||
41 | #include <dt-bindings/interrupt-controller/irq.h> | 44 | #include <dt-bindings/interrupt-controller/irq.h> |
@@ -48,6 +51,8 @@ pmic { | |||
48 | 51 | ||
49 | ti,ldo6-vibrator; | 52 | ti,ldo6-vibrator; |
50 | 53 | ||
54 | ti,system-power-controller; | ||
55 | |||
51 | regulators { | 56 | regulators { |
52 | smps12_reg : smps12 { | 57 | smps12_reg : smps12 { |
53 | regulator-name = "smps12"; | 58 | regulator-name = "smps12"; |
diff --git a/Documentation/devicetree/bindings/regulator/pfuze100.txt b/Documentation/devicetree/bindings/regulator/pfuze100.txt new file mode 100644 index 000000000000..fc989b2e8057 --- /dev/null +++ b/Documentation/devicetree/bindings/regulator/pfuze100.txt | |||
@@ -0,0 +1,115 @@ | |||
1 | PFUZE100 family of regulators | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: "fsl,pfuze100" | ||
5 | - reg: I2C slave address | ||
6 | |||
7 | Required child node: | ||
8 | - regulators: This is the list of child nodes that specify the regulator | ||
9 | initialization data for defined regulators. Please refer to below doc | ||
10 | Documentation/devicetree/bindings/regulator/regulator.txt. | ||
11 | |||
12 | The valid names for regulators are: | ||
13 | sw1ab,sw1c,sw2,sw3a,sw3b,sw4,swbst,vsnvs,vrefddr,vgen1~vgen6 | ||
14 | |||
15 | Each regulator is defined using the standard binding for regulators. | ||
16 | |||
17 | Example: | ||
18 | |||
19 | pmic: pfuze100@08 { | ||
20 | compatible = "fsl,pfuze100"; | ||
21 | reg = <0x08>; | ||
22 | |||
23 | regulators { | ||
24 | sw1a_reg: sw1ab { | ||
25 | regulator-min-microvolt = <300000>; | ||
26 | regulator-max-microvolt = <1875000>; | ||
27 | regulator-boot-on; | ||
28 | regulator-always-on; | ||
29 | regulator-ramp-delay = <6250>; | ||
30 | }; | ||
31 | |||
32 | sw1c_reg: sw1c { | ||
33 | regulator-min-microvolt = <300000>; | ||
34 | regulator-max-microvolt = <1875000>; | ||
35 | regulator-boot-on; | ||
36 | regulator-always-on; | ||
37 | }; | ||
38 | |||
39 | sw2_reg: sw2 { | ||
40 | regulator-min-microvolt = <800000>; | ||
41 | regulator-max-microvolt = <3300000>; | ||
42 | regulator-boot-on; | ||
43 | regulator-always-on; | ||
44 | }; | ||
45 | |||
46 | sw3a_reg: sw3a { | ||
47 | regulator-min-microvolt = <400000>; | ||
48 | regulator-max-microvolt = <1975000>; | ||
49 | regulator-boot-on; | ||
50 | regulator-always-on; | ||
51 | }; | ||
52 | |||
53 | sw3b_reg: sw3b { | ||
54 | regulator-min-microvolt = <400000>; | ||
55 | regulator-max-microvolt = <1975000>; | ||
56 | regulator-boot-on; | ||
57 | regulator-always-on; | ||
58 | }; | ||
59 | |||
60 | sw4_reg: sw4 { | ||
61 | regulator-min-microvolt = <800000>; | ||
62 | regulator-max-microvolt = <3300000>; | ||
63 | }; | ||
64 | |||
65 | swbst_reg: swbst { | ||
66 | regulator-min-microvolt = <5000000>; | ||
67 | regulator-max-microvolt = <5150000>; | ||
68 | }; | ||
69 | |||
70 | snvs_reg: vsnvs { | ||
71 | regulator-min-microvolt = <1000000>; | ||
72 | regulator-max-microvolt = <3000000>; | ||
73 | regulator-boot-on; | ||
74 | regulator-always-on; | ||
75 | }; | ||
76 | |||
77 | vref_reg: vrefddr { | ||
78 | regulator-boot-on; | ||
79 | regulator-always-on; | ||
80 | }; | ||
81 | |||
82 | vgen1_reg: vgen1 { | ||
83 | regulator-min-microvolt = <800000>; | ||
84 | regulator-max-microvolt = <1550000>; | ||
85 | }; | ||
86 | |||
87 | vgen2_reg: vgen2 { | ||
88 | regulator-min-microvolt = <800000>; | ||
89 | regulator-max-microvolt = <1550000>; | ||
90 | }; | ||
91 | |||
92 | vgen3_reg: vgen3 { | ||
93 | regulator-min-microvolt = <1800000>; | ||
94 | regulator-max-microvolt = <3300000>; | ||
95 | }; | ||
96 | |||
97 | vgen4_reg: vgen4 { | ||
98 | regulator-min-microvolt = <1800000>; | ||
99 | regulator-max-microvolt = <3300000>; | ||
100 | regulator-always-on; | ||
101 | }; | ||
102 | |||
103 | vgen5_reg: vgen5 { | ||
104 | regulator-min-microvolt = <1800000>; | ||
105 | regulator-max-microvolt = <3300000>; | ||
106 | regulator-always-on; | ||
107 | }; | ||
108 | |||
109 | vgen6_reg: vgen6 { | ||
110 | regulator-min-microvolt = <1800000>; | ||
111 | regulator-max-microvolt = <3300000>; | ||
112 | regulator-always-on; | ||
113 | }; | ||
114 | }; | ||
115 | }; | ||
diff --git a/Documentation/devicetree/bindings/regulator/regulator.txt b/Documentation/devicetree/bindings/regulator/regulator.txt index 48a3b8e5d6bd..2bd8f0978765 100644 --- a/Documentation/devicetree/bindings/regulator/regulator.txt +++ b/Documentation/devicetree/bindings/regulator/regulator.txt | |||
@@ -12,6 +12,8 @@ Optional properties: | |||
12 | - regulator-allow-bypass: allow the regulator to go into bypass mode | 12 | - regulator-allow-bypass: allow the regulator to go into bypass mode |
13 | - <name>-supply: phandle to the parent supply/regulator node | 13 | - <name>-supply: phandle to the parent supply/regulator node |
14 | - regulator-ramp-delay: ramp delay for regulator(in uV/uS) | 14 | - regulator-ramp-delay: ramp delay for regulator(in uV/uS) |
15 | For hardwares which support disabling ramp rate, it should be explicitly | ||
16 | intialised to zero (regulator-ramp-delay = <0>) for disabling ramp delay. | ||
15 | 17 | ||
16 | Deprecated properties: | 18 | Deprecated properties: |
17 | - regulator-compatible: If a regulator chip contains multiple | 19 | - regulator-compatible: If a regulator chip contains multiple |
diff --git a/Documentation/devicetree/bindings/rtc/dw-apb.txt b/Documentation/devicetree/bindings/rtc/dw-apb.txt index eb2327b2bdb3..c703d51abb6c 100644 --- a/Documentation/devicetree/bindings/rtc/dw-apb.txt +++ b/Documentation/devicetree/bindings/rtc/dw-apb.txt | |||
@@ -1,7 +1,10 @@ | |||
1 | * Designware APB timer | 1 | * Designware APB timer |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible: "snps,dw-apb-timer-sp" or "snps,dw-apb-timer-osc" | 4 | - compatible: One of: |
5 | "snps,dw-apb-timer" | ||
6 | "snps,dw-apb-timer-sp" <DEPRECATED> | ||
7 | "snps,dw-apb-timer-osc" <DEPRECATED> | ||
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: IRQ line for the timer. | 10 | - interrupts: IRQ line for the timer. |
@@ -20,25 +23,10 @@ systems may use one. | |||
20 | 23 | ||
21 | 24 | ||
22 | Example: | 25 | Example: |
23 | 26 | timer@ffe00000 { | |
24 | timer1: timer@ffc09000 { | 27 | compatible = "snps,dw-apb-timer"; |
25 | compatible = "snps,dw-apb-timer-sp"; | 28 | interrupts = <0 170 4>; |
26 | interrupts = <0 168 4>; | 29 | reg = <0xffe00000 0x1000>; |
27 | clock-frequency = <200000000>; | 30 | clocks = <&timer_clk>, <&timer_pclk>; |
28 | reg = <0xffc09000 0x1000>; | 31 | clock-names = "timer", "pclk"; |
29 | }; | 32 | }; |
30 | |||
31 | timer2: timer@ffd00000 { | ||
32 | compatible = "snps,dw-apb-timer-osc"; | ||
33 | interrupts = <0 169 4>; | ||
34 | clock-frequency = <200000000>; | ||
35 | reg = <0xffd00000 0x1000>; | ||
36 | }; | ||
37 | |||
38 | timer3: timer@ffe00000 { | ||
39 | compatible = "snps,dw-apb-timer-osc"; | ||
40 | interrupts = <0 170 4>; | ||
41 | reg = <0xffe00000 0x1000>; | ||
42 | clocks = <&timer_clk>, <&timer_pclk>; | ||
43 | clock-names = "timer", "pclk"; | ||
44 | }; | ||
diff --git a/Documentation/devicetree/bindings/rtc/moxa,moxart-rtc.txt b/Documentation/devicetree/bindings/rtc/moxa,moxart-rtc.txt new file mode 100644 index 000000000000..c9d3ac1477fe --- /dev/null +++ b/Documentation/devicetree/bindings/rtc/moxa,moxart-rtc.txt | |||
@@ -0,0 +1,17 @@ | |||
1 | MOXA ART real-time clock | ||
2 | |||
3 | Required properties: | ||
4 | |||
5 | - compatible : Should be "moxa,moxart-rtc" | ||
6 | - gpio-rtc-sclk : RTC sclk gpio, with zero flags | ||
7 | - gpio-rtc-data : RTC data gpio, with zero flags | ||
8 | - gpio-rtc-reset : RTC reset gpio, with zero flags | ||
9 | |||
10 | Example: | ||
11 | |||
12 | rtc: rtc { | ||
13 | compatible = "moxa,moxart-rtc"; | ||
14 | gpio-rtc-sclk = <&gpio 5 0>; | ||
15 | gpio-rtc-data = <&gpio 6 0>; | ||
16 | gpio-rtc-reset = <&gpio 7 0>; | ||
17 | }; | ||
diff --git a/Documentation/devicetree/bindings/rtc/rtc-omap.txt b/Documentation/devicetree/bindings/rtc/rtc-omap.txt index b47aa415c820..5a0f02d34d95 100644 --- a/Documentation/devicetree/bindings/rtc/rtc-omap.txt +++ b/Documentation/devicetree/bindings/rtc/rtc-omap.txt | |||
@@ -1,7 +1,11 @@ | |||
1 | TI Real Time Clock | 1 | TI Real Time Clock |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible: "ti,da830-rtc" | 4 | - compatible: |
5 | - "ti,da830-rtc" - for RTC IP used similar to that on DA8xx SoC family. | ||
6 | - "ti,am3352-rtc" - for RTC IP used similar to that on AM335x SoC family. | ||
7 | This RTC IP has special WAKE-EN Register to enable | ||
8 | Wakeup generation for event Alarm. | ||
5 | - reg: Address range of rtc register set | 9 | - reg: Address range of rtc register set |
6 | - interrupts: rtc timer, alarm interrupts in order | 10 | - interrupts: rtc timer, alarm interrupts in order |
7 | - interrupt-parent: phandle for the interrupt controller | 11 | - interrupt-parent: phandle for the interrupt controller |
diff --git a/Documentation/devicetree/bindings/rtc/rtc-palmas.txt b/Documentation/devicetree/bindings/rtc/rtc-palmas.txt new file mode 100644 index 000000000000..adbccc0a51e1 --- /dev/null +++ b/Documentation/devicetree/bindings/rtc/rtc-palmas.txt | |||
@@ -0,0 +1,33 @@ | |||
1 | Palmas RTC controller bindings | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: | ||
5 | - "ti,palmas-rtc" for palma series of the RTC controller | ||
6 | - interrupt-parent: Parent interrupt device, must be handle of palmas node. | ||
7 | - interrupts: Interrupt number of RTC submodule on device. | ||
8 | |||
9 | Optional properties: | ||
10 | |||
11 | - ti,backup-battery-chargeable: The Palmas series device like TPS65913 or | ||
12 | TPS80036 supports the backup battery for powering the RTC when main | ||
13 | battery is removed or in very low power state. The backup battery | ||
14 | can be chargeable or non-chargeable. This flag will tells whether | ||
15 | battery is chargeable or not. If charging battery then driver can | ||
16 | enable the charging. | ||
17 | - ti,backup-battery-charge-high-current: Enable high current charging in | ||
18 | backup battery. Device supports the < 100mA and > 100mA charging. | ||
19 | The high current will be > 100mA. Absence of this property will | ||
20 | charge battery to lower current i.e. < 100mA. | ||
21 | |||
22 | Example: | ||
23 | palmas: tps65913@58 { | ||
24 | ... | ||
25 | palmas_rtc: rtc { | ||
26 | compatible = "ti,palmas-rtc"; | ||
27 | interrupt-parent = <&palmas>; | ||
28 | interrupts = <8 0>; | ||
29 | ti,backup-battery-chargeable; | ||
30 | ti,backup-battery-charge-high-current; | ||
31 | }; | ||
32 | ... | ||
33 | }; | ||
diff --git a/Documentation/devicetree/bindings/serial/altera_jtaguart.txt b/Documentation/devicetree/bindings/serial/altera_jtaguart.txt index c152f65f9a28..55a901051e8f 100644 --- a/Documentation/devicetree/bindings/serial/altera_jtaguart.txt +++ b/Documentation/devicetree/bindings/serial/altera_jtaguart.txt | |||
@@ -1,4 +1,5 @@ | |||
1 | Altera JTAG UART | 1 | Altera JTAG UART |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible : should be "ALTR,juart-1.0" | 4 | - compatible : should be "ALTR,juart-1.0" <DEPRECATED> |
5 | - compatible : should be "altr,juart-1.0" | ||
diff --git a/Documentation/devicetree/bindings/serial/altera_uart.txt b/Documentation/devicetree/bindings/serial/altera_uart.txt index 71cae3f70100..81bf7ffb1a81 100644 --- a/Documentation/devicetree/bindings/serial/altera_uart.txt +++ b/Documentation/devicetree/bindings/serial/altera_uart.txt | |||
@@ -1,7 +1,8 @@ | |||
1 | Altera UART | 1 | Altera UART |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible : should be "ALTR,uart-1.0" | 4 | - compatible : should be "ALTR,uart-1.0" <DEPRECATED> |
5 | - compatible : should be "altr,uart-1.0" | ||
5 | 6 | ||
6 | Optional properties: | 7 | Optional properties: |
7 | - clock-frequency : frequency of the clock input to the UART | 8 | - clock-frequency : frequency of the clock input to the UART |
diff --git a/Documentation/devicetree/bindings/tty/serial/arc-uart.txt b/Documentation/devicetree/bindings/serial/arc-uart.txt index 5cae2eb686f8..5cae2eb686f8 100644 --- a/Documentation/devicetree/bindings/tty/serial/arc-uart.txt +++ b/Documentation/devicetree/bindings/serial/arc-uart.txt | |||
diff --git a/Documentation/devicetree/bindings/tty/serial/atmel-usart.txt b/Documentation/devicetree/bindings/serial/atmel-usart.txt index a49d9a1d4ccf..2191dcb9f1da 100644 --- a/Documentation/devicetree/bindings/tty/serial/atmel-usart.txt +++ b/Documentation/devicetree/bindings/serial/atmel-usart.txt | |||
@@ -10,13 +10,18 @@ Required properties: | |||
10 | Optional properties: | 10 | Optional properties: |
11 | - atmel,use-dma-rx: use of PDC or DMA for receiving data | 11 | - atmel,use-dma-rx: use of PDC or DMA for receiving data |
12 | - atmel,use-dma-tx: use of PDC or DMA for transmitting data | 12 | - atmel,use-dma-tx: use of PDC or DMA for transmitting data |
13 | - add dma bindings for dma transfer: | ||
14 | - dmas: DMA specifier, consisting of a phandle to DMA controller node, | ||
15 | memory peripheral interface and USART DMA channel ID, FIFO configuration. | ||
16 | Refer to dma.txt and atmel-dma.txt for details. | ||
17 | - dma-names: "rx" for RX channel, "tx" for TX channel. | ||
13 | 18 | ||
14 | <chip> compatible description: | 19 | <chip> compatible description: |
15 | - at91rm9200: legacy USART support | 20 | - at91rm9200: legacy USART support |
16 | - at91sam9260: generic USART implementation for SAM9 SoCs | 21 | - at91sam9260: generic USART implementation for SAM9 SoCs |
17 | 22 | ||
18 | Example: | 23 | Example: |
19 | 24 | - use PDC: | |
20 | usart0: serial@fff8c000 { | 25 | usart0: serial@fff8c000 { |
21 | compatible = "atmel,at91sam9260-usart"; | 26 | compatible = "atmel,at91sam9260-usart"; |
22 | reg = <0xfff8c000 0x4000>; | 27 | reg = <0xfff8c000 0x4000>; |
@@ -25,3 +30,14 @@ Example: | |||
25 | atmel,use-dma-tx; | 30 | atmel,use-dma-tx; |
26 | }; | 31 | }; |
27 | 32 | ||
33 | - use DMA: | ||
34 | usart0: serial@f001c000 { | ||
35 | compatible = "atmel,at91sam9260-usart"; | ||
36 | reg = <0xf001c000 0x100>; | ||
37 | interrupts = <12 4 5>; | ||
38 | atmel,use-dma-rx; | ||
39 | atmel,use-dma-tx; | ||
40 | dmas = <&dma0 2 0x3>, | ||
41 | <&dma0 2 0x204>; | ||
42 | dma-names = "tx", "rx"; | ||
43 | }; | ||
diff --git a/Documentation/devicetree/bindings/tty/serial/efm32-uart.txt b/Documentation/devicetree/bindings/serial/efm32-uart.txt index 8e080b893b49..8e080b893b49 100644 --- a/Documentation/devicetree/bindings/tty/serial/efm32-uart.txt +++ b/Documentation/devicetree/bindings/serial/efm32-uart.txt | |||
diff --git a/Documentation/devicetree/bindings/serial/fsl-imx-uart.txt b/Documentation/devicetree/bindings/serial/fsl-imx-uart.txt index c58573b5b1a4..35ae1fb3537f 100644 --- a/Documentation/devicetree/bindings/serial/fsl-imx-uart.txt +++ b/Documentation/devicetree/bindings/serial/fsl-imx-uart.txt | |||
@@ -1,35 +1,29 @@ | |||
1 | * Freescale i.MX UART controller | 1 | * Freescale i.MX Universal Asynchronous Receiver/Transmitter (UART) |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible : should be "fsl,imx21-uart" | 4 | - compatible : Should be "fsl,<soc>-uart" |
5 | - reg : Address and length of the register set for the device | 5 | - reg : Address and length of the register set for the device |
6 | - interrupts : Should contain UART interrupt number | 6 | - interrupts : Should contain uart interrupt |
7 | 7 | ||
8 | Optional properties: | 8 | Optional properties: |
9 | - fsl,uart-has-rtscts: indicate that RTS/CTS signals are used | 9 | - fsl,uart-has-rtscts : Indicate the uart has rts and cts |
10 | - fsl,irda-mode : Indicate the uart supports irda mode | ||
11 | - fsl,dte-mode : Indicate the uart works in DTE mode. The uart works | ||
12 | is DCE mode by default. | ||
10 | 13 | ||
11 | Note: Each uart controller should have an alias correctly numbered | 14 | Note: Each uart controller should have an alias correctly numbered |
12 | in "aliases" node. | 15 | in "aliases" node. |
13 | 16 | ||
14 | Example: | 17 | Example: |
15 | 18 | ||
16 | - From imx51.dtsi: | ||
17 | aliases { | 19 | aliases { |
18 | serial0 = &uart1; | 20 | serial0 = &uart1; |
19 | serial1 = &uart2; | ||
20 | serial2 = &uart3; | ||
21 | }; | 21 | }; |
22 | 22 | ||
23 | uart1: serial@73fbc000 { | 23 | uart1: serial@73fbc000 { |
24 | compatible = "fsl,imx51-uart", "fsl,imx21-uart"; | 24 | compatible = "fsl,imx51-uart", "fsl,imx21-uart"; |
25 | reg = <0x73fbc000 0x4000>; | 25 | reg = <0x73fbc000 0x4000>; |
26 | interrupts = <31>; | 26 | interrupts = <31>; |
27 | status = "disabled"; | ||
28 | } | ||
29 | |||
30 | - From imx51-babbage.dts: | ||
31 | uart1: serial@73fbc000 { | ||
32 | fsl,uart-has-rtscts; | 27 | fsl,uart-has-rtscts; |
33 | status = "okay"; | 28 | fsl,dte-mode; |
34 | }; | 29 | }; |
35 | |||
diff --git a/Documentation/devicetree/bindings/tty/serial/fsl-lpuart.txt b/Documentation/devicetree/bindings/serial/fsl-lpuart.txt index 6fd1dd1638dd..6fd1dd1638dd 100644 --- a/Documentation/devicetree/bindings/tty/serial/fsl-lpuart.txt +++ b/Documentation/devicetree/bindings/serial/fsl-lpuart.txt | |||
diff --git a/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt b/Documentation/devicetree/bindings/serial/fsl-mxs-auart.txt index 2c00ec64628e..59a40f18d551 100644 --- a/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt +++ b/Documentation/devicetree/bindings/serial/fsl-mxs-auart.txt | |||
@@ -10,6 +10,10 @@ Required properties: | |||
10 | Refer to dma.txt and fsl-mxs-dma.txt for details. | 10 | Refer to dma.txt and fsl-mxs-dma.txt for details. |
11 | - dma-names: "rx" for RX channel, "tx" for TX channel. | 11 | - dma-names: "rx" for RX channel, "tx" for TX channel. |
12 | 12 | ||
13 | Optional properties: | ||
14 | - fsl,uart-has-rtscts : Indicate the UART has RTS and CTS lines, | ||
15 | it also means you enable the DMA support for this UART. | ||
16 | |||
13 | Example: | 17 | Example: |
14 | auart0: serial@8006a000 { | 18 | auart0: serial@8006a000 { |
15 | compatible = "fsl,imx28-auart", "fsl,imx23-auart"; | 19 | compatible = "fsl,imx28-auart", "fsl,imx23-auart"; |
diff --git a/Documentation/devicetree/bindings/serial/mrvl,pxa-ssp.txt b/Documentation/devicetree/bindings/serial/mrvl,pxa-ssp.txt new file mode 100644 index 000000000000..669b8140dd79 --- /dev/null +++ b/Documentation/devicetree/bindings/serial/mrvl,pxa-ssp.txt | |||
@@ -0,0 +1,65 @@ | |||
1 | Device tree bindings for Marvell PXA SSP ports | ||
2 | |||
3 | Required properties: | ||
4 | |||
5 | - compatible: Must be one of | ||
6 | mrvl,pxa25x-ssp | ||
7 | mvrl,pxa25x-nssp | ||
8 | mrvl,pxa27x-ssp | ||
9 | mrvl,pxa3xx-ssp | ||
10 | mvrl,pxa168-ssp | ||
11 | mrvl,pxa910-ssp | ||
12 | mrvl,ce4100-ssp | ||
13 | mrvl,lpss-ssp | ||
14 | |||
15 | - reg: The memory base | ||
16 | - dmas: Two dma phandles, one for rx, one for tx | ||
17 | - dma-names: Must be "rx", "tx" | ||
18 | |||
19 | |||
20 | Example for PXA3xx: | ||
21 | |||
22 | ssp0: ssp@41000000 { | ||
23 | compatible = "mrvl,pxa3xx-ssp"; | ||
24 | reg = <0x41000000 0x40>; | ||
25 | ssp-id = <1>; | ||
26 | interrupts = <24>; | ||
27 | clock-names = "pxa27x-ssp.0"; | ||
28 | dmas = <&dma 13 | ||
29 | &dma 14>; | ||
30 | dma-names = "rx", "tx"; | ||
31 | }; | ||
32 | |||
33 | ssp1: ssp@41700000 { | ||
34 | compatible = "mrvl,pxa3xx-ssp"; | ||
35 | reg = <0x41700000 0x40>; | ||
36 | ssp-id = <2>; | ||
37 | interrupts = <16>; | ||
38 | clock-names = "pxa27x-ssp.1"; | ||
39 | dmas = <&dma 15 | ||
40 | &dma 16>; | ||
41 | dma-names = "rx", "tx"; | ||
42 | }; | ||
43 | |||
44 | ssp2: ssp@41900000 { | ||
45 | compatibl3 = "mrvl,pxa3xx-ssp"; | ||
46 | reg = <0x41900000 0x40>; | ||
47 | ssp-id = <3>; | ||
48 | interrupts = <0>; | ||
49 | clock-names = "pxa27x-ssp.2"; | ||
50 | dmas = <&dma 66 | ||
51 | &dma 67>; | ||
52 | dma-names = "rx", "tx"; | ||
53 | }; | ||
54 | |||
55 | ssp3: ssp@41a00000 { | ||
56 | compatible = "mrvl,pxa3xx-ssp"; | ||
57 | reg = <0x41a00000 0x40>; | ||
58 | ssp-id = <4>; | ||
59 | interrupts = <13>; | ||
60 | clock-names = "pxa27x-ssp.3"; | ||
61 | dmas = <&dma 2 | ||
62 | &dma 3>; | ||
63 | dma-names = "rx", "tx"; | ||
64 | }; | ||
65 | |||
diff --git a/Documentation/devicetree/bindings/tty/serial/nxp-lpc32xx-hsuart.txt b/Documentation/devicetree/bindings/serial/nxp-lpc32xx-hsuart.txt index 0d439dfc1aa5..0d439dfc1aa5 100644 --- a/Documentation/devicetree/bindings/tty/serial/nxp-lpc32xx-hsuart.txt +++ b/Documentation/devicetree/bindings/serial/nxp-lpc32xx-hsuart.txt | |||
diff --git a/Documentation/devicetree/bindings/tty/serial/of-serial.txt b/Documentation/devicetree/bindings/serial/of-serial.txt index 1928a3e83cd0..1928a3e83cd0 100644 --- a/Documentation/devicetree/bindings/tty/serial/of-serial.txt +++ b/Documentation/devicetree/bindings/serial/of-serial.txt | |||
diff --git a/Documentation/devicetree/bindings/serial/qcom,msm-uart.txt b/Documentation/devicetree/bindings/serial/qcom,msm-uart.txt new file mode 100644 index 000000000000..ce8c90161959 --- /dev/null +++ b/Documentation/devicetree/bindings/serial/qcom,msm-uart.txt | |||
@@ -0,0 +1,25 @@ | |||
1 | * MSM Serial UART | ||
2 | |||
3 | The MSM serial UART hardware is designed for low-speed use cases where a | ||
4 | dma-engine isn't needed. From a software perspective it's mostly compatible | ||
5 | with the MSM serial UARTDM except that it only supports reading and writing one | ||
6 | character at a time. | ||
7 | |||
8 | Required properties: | ||
9 | - compatible: Should contain "qcom,msm-uart" | ||
10 | - reg: Should contain UART register location and length. | ||
11 | - interrupts: Should contain UART interrupt. | ||
12 | - clocks: Should contain the core clock. | ||
13 | - clock-names: Should be "core". | ||
14 | |||
15 | Example: | ||
16 | |||
17 | A uart device at 0xa9c00000 with interrupt 11. | ||
18 | |||
19 | serial@a9c00000 { | ||
20 | compatible = "qcom,msm-uart"; | ||
21 | reg = <0xa9c00000 0x1000>; | ||
22 | interrupts = <11>; | ||
23 | clocks = <&uart_cxc>; | ||
24 | clock-names = "core"; | ||
25 | }; | ||
diff --git a/Documentation/devicetree/bindings/serial/qcom,msm-uartdm.txt b/Documentation/devicetree/bindings/serial/qcom,msm-uartdm.txt new file mode 100644 index 000000000000..ffa5b784c66e --- /dev/null +++ b/Documentation/devicetree/bindings/serial/qcom,msm-uartdm.txt | |||
@@ -0,0 +1,53 @@ | |||
1 | * MSM Serial UARTDM | ||
2 | |||
3 | The MSM serial UARTDM hardware is designed for high-speed use cases where the | ||
4 | transmit and/or receive channels can be offloaded to a dma-engine. From a | ||
5 | software perspective it's mostly compatible with the MSM serial UART except | ||
6 | that it supports reading and writing multiple characters at a time. | ||
7 | |||
8 | Required properties: | ||
9 | - compatible: Should contain at least "qcom,msm-uartdm". | ||
10 | A more specific property should be specified as follows depending | ||
11 | on the version: | ||
12 | "qcom,msm-uartdm-v1.1" | ||
13 | "qcom,msm-uartdm-v1.2" | ||
14 | "qcom,msm-uartdm-v1.3" | ||
15 | "qcom,msm-uartdm-v1.4" | ||
16 | - reg: Should contain UART register locations and lengths. The first | ||
17 | register shall specify the main control registers. An optional second | ||
18 | register location shall specify the GSBI control region. | ||
19 | "qcom,msm-uartdm-v1.3" is the only compatible value that might | ||
20 | need the GSBI control region. | ||
21 | - interrupts: Should contain UART interrupt. | ||
22 | - clocks: Should contain the core clock and the AHB clock. | ||
23 | - clock-names: Should be "core" for the core clock and "iface" for the | ||
24 | AHB clock. | ||
25 | |||
26 | Optional properties: | ||
27 | - dmas: Should contain dma specifiers for transmit and receive channels | ||
28 | - dma-names: Should contain "tx" for transmit and "rx" for receive channels | ||
29 | |||
30 | Examples: | ||
31 | |||
32 | A uartdm v1.4 device with dma capabilities. | ||
33 | |||
34 | serial@f991e000 { | ||
35 | compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; | ||
36 | reg = <0xf991e000 0x1000>; | ||
37 | interrupts = <0 108 0x0>; | ||
38 | clocks = <&blsp1_uart2_apps_cxc>, <&blsp1_ahb_cxc>; | ||
39 | clock-names = "core", "iface"; | ||
40 | dmas = <&dma0 0>, <&dma0 1>; | ||
41 | dma-names = "tx", "rx"; | ||
42 | }; | ||
43 | |||
44 | A uartdm v1.3 device without dma capabilities and part of a GSBI complex. | ||
45 | |||
46 | serial@19c40000 { | ||
47 | compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm"; | ||
48 | reg = <0x19c40000 0x1000>, | ||
49 | <0x19c00000 0x1000>; | ||
50 | interrupts = <0 195 0x0>; | ||
51 | clocks = <&gsbi5_uart_cxc>, <&gsbi5_ahb_cxc>; | ||
52 | clock-names = "core", "iface"; | ||
53 | }; | ||
diff --git a/Documentation/devicetree/bindings/serial/rs485.txt b/Documentation/devicetree/bindings/serial/rs485.txt index 1e753c69fc83..32b1fa1f2a5b 100644 --- a/Documentation/devicetree/bindings/serial/rs485.txt +++ b/Documentation/devicetree/bindings/serial/rs485.txt | |||
@@ -7,7 +7,7 @@ UART node. | |||
7 | 7 | ||
8 | Required properties: | 8 | Required properties: |
9 | - rs485-rts-delay: prop-encoded-array <a b> where: | 9 | - rs485-rts-delay: prop-encoded-array <a b> where: |
10 | * a is the delay beteween rts signal and beginning of data sent in milliseconds. | 10 | * a is the delay between rts signal and beginning of data sent in milliseconds. |
11 | it corresponds to the delay before sending data. | 11 | it corresponds to the delay before sending data. |
12 | * b is the delay between end of data sent and rts signal in milliseconds | 12 | * b is the delay between end of data sent and rts signal in milliseconds |
13 | it corresponds to the delay after sending data and actual release of the line. | 13 | it corresponds to the delay after sending data and actual release of the line. |
diff --git a/Documentation/devicetree/bindings/serial/sirf-uart.txt b/Documentation/devicetree/bindings/serial/sirf-uart.txt new file mode 100644 index 000000000000..a2dfc6522a91 --- /dev/null +++ b/Documentation/devicetree/bindings/serial/sirf-uart.txt | |||
@@ -0,0 +1,33 @@ | |||
1 | * CSR SiRFprimaII/atlasVI Universal Synchronous Asynchronous Receiver/Transmitter * | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : Should be "sirf,prima2-uart" or "sirf, prima2-usp-uart" | ||
5 | - reg : Offset and length of the register set for the device | ||
6 | - interrupts : Should contain uart interrupt | ||
7 | - fifosize : Should define hardware rx/tx fifo size | ||
8 | - clocks : Should contain uart clock number | ||
9 | |||
10 | Optional properties: | ||
11 | - sirf,uart-has-rtscts: we have hardware flow controller pins in hardware | ||
12 | - rts-gpios: RTS pin for USP-based UART if sirf,uart-has-rtscts is true | ||
13 | - cts-gpios: CTS pin for USP-based UART if sirf,uart-has-rtscts is true | ||
14 | |||
15 | Example: | ||
16 | |||
17 | uart0: uart@b0050000 { | ||
18 | cell-index = <0>; | ||
19 | compatible = "sirf,prima2-uart"; | ||
20 | reg = <0xb0050000 0x1000>; | ||
21 | interrupts = <17>; | ||
22 | fifosize = <128>; | ||
23 | clocks = <&clks 13>; | ||
24 | }; | ||
25 | |||
26 | On the board-specific dts, we can put rts-gpios and cts-gpios like | ||
27 | |||
28 | usp@b0090000 { | ||
29 | compatible = "sirf,prima2-usp-uart"; | ||
30 | sirf,uart-has-rtscts; | ||
31 | rts-gpios = <&gpio 15 0>; | ||
32 | cts-gpios = <&gpio 46 0>; | ||
33 | }; | ||
diff --git a/Documentation/devicetree/bindings/tty/serial/snps-dw-apb-uart.txt b/Documentation/devicetree/bindings/serial/snps-dw-apb-uart.txt index f13f1c5be91c..f13f1c5be91c 100644 --- a/Documentation/devicetree/bindings/tty/serial/snps-dw-apb-uart.txt +++ b/Documentation/devicetree/bindings/serial/snps-dw-apb-uart.txt | |||
diff --git a/Documentation/devicetree/bindings/serial/st-asc.txt b/Documentation/devicetree/bindings/serial/st-asc.txt new file mode 100644 index 000000000000..75d877f5968f --- /dev/null +++ b/Documentation/devicetree/bindings/serial/st-asc.txt | |||
@@ -0,0 +1,18 @@ | |||
1 | *st-asc(Serial Port) | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : Should be "st,asc". | ||
5 | - reg, reg-names, interrupts, interrupt-names : Standard way to define device | ||
6 | resources with names. look in | ||
7 | Documentation/devicetree/bindings/resource-names.txt | ||
8 | |||
9 | Optional properties: | ||
10 | - st,hw-flow-ctrl bool flag to enable hardware flow control. | ||
11 | - st,force-m1 bool flat to force asc to be in Mode-1 recommeded | ||
12 | for high bit rates (above 19.2K) | ||
13 | Example: | ||
14 | serial@fe440000{ | ||
15 | compatible = "st,asc"; | ||
16 | reg = <0xfe440000 0x2c>; | ||
17 | interrupts = <0 209 0>; | ||
18 | }; | ||
diff --git a/Documentation/devicetree/bindings/tty/serial/via,vt8500-uart.txt b/Documentation/devicetree/bindings/serial/via,vt8500-uart.txt index 5feef1ef167d..5feef1ef167d 100644 --- a/Documentation/devicetree/bindings/tty/serial/via,vt8500-uart.txt +++ b/Documentation/devicetree/bindings/serial/via,vt8500-uart.txt | |||
diff --git a/Documentation/devicetree/bindings/serio/altera_ps2.txt b/Documentation/devicetree/bindings/serio/altera_ps2.txt index 4d9eecc2ef7d..520199e2e347 100644 --- a/Documentation/devicetree/bindings/serio/altera_ps2.txt +++ b/Documentation/devicetree/bindings/serio/altera_ps2.txt | |||
@@ -1,4 +1,5 @@ | |||
1 | Altera UP PS/2 controller | 1 | Altera UP PS/2 controller |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible : should be "ALTR,ps2-1.0". | 4 | - compatible : should be "ALTR,ps2-1.0". <DEPRECATED> |
5 | - compatible : should be "altr,ps2-1.0". | ||
diff --git a/Documentation/devicetree/bindings/sound/ak4554.c b/Documentation/devicetree/bindings/sound/ak4554.c new file mode 100644 index 000000000000..934fa02754b3 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/ak4554.c | |||
@@ -0,0 +1,11 @@ | |||
1 | AK4554 ADC/DAC | ||
2 | |||
3 | Required properties: | ||
4 | |||
5 | - compatible : "asahi-kasei,ak4554" | ||
6 | |||
7 | Example: | ||
8 | |||
9 | ak4554-adc-dac { | ||
10 | compatible = "asahi-kasei,ak4554"; | ||
11 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/alc5632.txt b/Documentation/devicetree/bindings/sound/alc5632.txt index 8608f747dcfe..ffd886d110bd 100644 --- a/Documentation/devicetree/bindings/sound/alc5632.txt +++ b/Documentation/devicetree/bindings/sound/alc5632.txt | |||
@@ -13,6 +13,25 @@ Required properties: | |||
13 | - #gpio-cells : Should be two. The first cell is the pin number and the | 13 | - #gpio-cells : Should be two. The first cell is the pin number and the |
14 | second cell is used to specify optional parameters (currently unused). | 14 | second cell is used to specify optional parameters (currently unused). |
15 | 15 | ||
16 | Pins on the device (for linking into audio routes): | ||
17 | |||
18 | * SPK_OUTP | ||
19 | * SPK_OUTN | ||
20 | * HP_OUT_L | ||
21 | * HP_OUT_R | ||
22 | * AUX_OUT_P | ||
23 | * AUX_OUT_N | ||
24 | * LINE_IN_L | ||
25 | * LINE_IN_R | ||
26 | * PHONE_P | ||
27 | * PHONE_N | ||
28 | * MIC1_P | ||
29 | * MIC1_N | ||
30 | * MIC2_P | ||
31 | * MIC2_N | ||
32 | * MICBIAS1 | ||
33 | * DMICDAT | ||
34 | |||
16 | Example: | 35 | Example: |
17 | 36 | ||
18 | alc5632: alc5632@1e { | 37 | alc5632: alc5632@1e { |
diff --git a/Documentation/devicetree/bindings/sound/atmel-sam9x5-wm8731-audio.txt b/Documentation/devicetree/bindings/sound/atmel-sam9x5-wm8731-audio.txt new file mode 100644 index 000000000000..0720857089a7 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/atmel-sam9x5-wm8731-audio.txt | |||
@@ -0,0 +1,35 @@ | |||
1 | * Atmel at91sam9x5ek wm8731 audio complex | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: "atmel,sam9x5-wm8731-audio" | ||
5 | - atmel,model: The user-visible name of this sound complex. | ||
6 | - atmel,ssc-controller: The phandle of the SSC controller | ||
7 | - atmel,audio-codec: The phandle of the WM8731 audio codec | ||
8 | - atmel,audio-routing: A list of the connections between audio components. | ||
9 | Each entry is a pair of strings, the first being the connection's sink, | ||
10 | the second being the connection's source. | ||
11 | |||
12 | Available audio endpoints for the audio-routing table: | ||
13 | |||
14 | Board connectors: | ||
15 | * Headphone Jack | ||
16 | * Line In Jack | ||
17 | |||
18 | wm8731 pins: | ||
19 | cf Documentation/devicetree/bindings/sound/wm8731.txt | ||
20 | |||
21 | Example: | ||
22 | sound { | ||
23 | compatible = "atmel,sam9x5-wm8731-audio"; | ||
24 | |||
25 | atmel,model = "wm8731 @ AT91SAM9X5EK"; | ||
26 | |||
27 | atmel,audio-routing = | ||
28 | "Headphone Jack", "RHPOUT", | ||
29 | "Headphone Jack", "LHPOUT", | ||
30 | "LLINEIN", "Line In Jack", | ||
31 | "RLINEIN", "Line In Jack"; | ||
32 | |||
33 | atmel,ssc-controller = <&ssc0>; | ||
34 | atmel,audio-codec = <&wm8731>; | ||
35 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/atmel-wm8904.txt b/Documentation/devicetree/bindings/sound/atmel-wm8904.txt new file mode 100644 index 000000000000..8bbe50c884b6 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/atmel-wm8904.txt | |||
@@ -0,0 +1,55 @@ | |||
1 | Atmel ASoC driver with wm8904 audio codec complex | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: "atmel,asoc-wm8904" | ||
5 | - atmel,model: The user-visible name of this sound complex. | ||
6 | - atmel,audio-routing: A list of the connections between audio components. | ||
7 | Each entry is a pair of strings, the first being the connection's sink, | ||
8 | the second being the connection's source. Valid names for sources and | ||
9 | sinks are the WM8904's pins, and the jacks on the board: | ||
10 | |||
11 | WM8904 pins: | ||
12 | |||
13 | * IN1L | ||
14 | * IN1R | ||
15 | * IN2L | ||
16 | * IN2R | ||
17 | * IN3L | ||
18 | * IN3R | ||
19 | * HPOUTL | ||
20 | * HPOUTR | ||
21 | * LINEOUTL | ||
22 | * LINEOUTR | ||
23 | * MICBIAS | ||
24 | |||
25 | Board connectors: | ||
26 | |||
27 | * Headphone Jack | ||
28 | * Line In Jack | ||
29 | * Mic | ||
30 | |||
31 | - atmel,ssc-controller: The phandle of the SSC controller | ||
32 | - atmel,audio-codec: The phandle of the WM8904 audio codec | ||
33 | |||
34 | Optional properties: | ||
35 | - pinctrl-names, pinctrl-0: Please refer to pinctrl-bindings.txt | ||
36 | |||
37 | Example: | ||
38 | sound { | ||
39 | compatible = "atmel,asoc-wm8904"; | ||
40 | pinctrl-names = "default"; | ||
41 | pinctrl-0 = <&pinctrl_pck0_as_mck>; | ||
42 | |||
43 | atmel,model = "wm8904 @ AT91SAM9N12EK"; | ||
44 | |||
45 | atmel,audio-routing = | ||
46 | "Headphone Jack", "HPOUTL", | ||
47 | "Headphone Jack", "HPOUTR", | ||
48 | "IN2L", "Line In Jack", | ||
49 | "IN2R", "Line In Jack", | ||
50 | "Mic", "MICBIAS", | ||
51 | "IN1L", "Mic"; | ||
52 | |||
53 | atmel,ssc-controller = <&ssc0>; | ||
54 | atmel,audio-codec = <&wm8904>; | ||
55 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/fsl,spdif.txt b/Documentation/devicetree/bindings/sound/fsl,spdif.txt new file mode 100644 index 000000000000..f2ae335670f5 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/fsl,spdif.txt | |||
@@ -0,0 +1,54 @@ | |||
1 | Freescale Sony/Philips Digital Interface Format (S/PDIF) Controller | ||
2 | |||
3 | The Freescale S/PDIF audio block is a stereo transceiver that allows the | ||
4 | processor to receive and transmit digital audio via an coaxial cable or | ||
5 | a fibre cable. | ||
6 | |||
7 | Required properties: | ||
8 | |||
9 | - compatible : Compatible list, must contain "fsl,imx35-spdif". | ||
10 | |||
11 | - reg : Offset and length of the register set for the device. | ||
12 | |||
13 | - interrupts : Contains the spdif interrupt. | ||
14 | |||
15 | - dmas : Generic dma devicetree binding as described in | ||
16 | Documentation/devicetree/bindings/dma/dma.txt. | ||
17 | |||
18 | - dma-names : Two dmas have to be defined, "tx" and "rx". | ||
19 | |||
20 | - clocks : Contains an entry for each entry in clock-names. | ||
21 | |||
22 | - clock-names : Includes the following entries: | ||
23 | "core" The core clock of spdif controller | ||
24 | "rxtx<0-7>" Clock source list for tx and rx clock. | ||
25 | This clock list should be identical to | ||
26 | the source list connecting to the spdif | ||
27 | clock mux in "SPDIF Transceiver Clock | ||
28 | Diagram" of SoC reference manual. It | ||
29 | can also be referred to TxClk_Source | ||
30 | bit of register SPDIF_STC. | ||
31 | |||
32 | Example: | ||
33 | |||
34 | spdif: spdif@02004000 { | ||
35 | compatible = "fsl,imx35-spdif"; | ||
36 | reg = <0x02004000 0x4000>; | ||
37 | interrupts = <0 52 0x04>; | ||
38 | dmas = <&sdma 14 18 0>, | ||
39 | <&sdma 15 18 0>; | ||
40 | dma-names = "rx", "tx"; | ||
41 | |||
42 | clocks = <&clks 197>, <&clks 3>, | ||
43 | <&clks 197>, <&clks 107>, | ||
44 | <&clks 0>, <&clks 118>, | ||
45 | <&clks 62>, <&clks 139>, | ||
46 | <&clks 0>; | ||
47 | clock-names = "core", "rxtx0", | ||
48 | "rxtx1", "rxtx2", | ||
49 | "rxtx3", "rxtx4", | ||
50 | "rxtx5", "rxtx6", | ||
51 | "rxtx7"; | ||
52 | |||
53 | status = "okay"; | ||
54 | }; | ||
diff --git a/Documentation/devicetree/bindings/powerpc/fsl/ssi.txt b/Documentation/devicetree/bindings/sound/fsl,ssi.txt index 5ff76c9c57d2..4303b6ab6208 100644 --- a/Documentation/devicetree/bindings/powerpc/fsl/ssi.txt +++ b/Documentation/devicetree/bindings/sound/fsl,ssi.txt | |||
@@ -43,10 +43,22 @@ Required properties: | |||
43 | together. This would still allow different sample sizes, | 43 | together. This would still allow different sample sizes, |
44 | but not different sample rates. | 44 | but not different sample rates. |
45 | 45 | ||
46 | Required are also ac97 link bindings if ac97 is used. See | ||
47 | Documentation/devicetree/bindings/sound/soc-ac97link.txt for the necessary | ||
48 | bindings. | ||
49 | |||
46 | Optional properties: | 50 | Optional properties: |
47 | - codec-handle: Phandle to a 'codec' node that defines an audio | 51 | - codec-handle: Phandle to a 'codec' node that defines an audio |
48 | codec connected to this SSI. This node is typically | 52 | codec connected to this SSI. This node is typically |
49 | a child of an I2C or other control node. | 53 | a child of an I2C or other control node. |
54 | - fsl,fiq-stream-filter: Bool property. Disabled DMA and use FIQ instead to | ||
55 | filter the codec stream. This is necessary for some boards | ||
56 | where an incompatible codec is connected to this SSI, e.g. | ||
57 | on pca100 and pcm043. | ||
58 | - dmas: Generic dma devicetree binding as described in | ||
59 | Documentation/devicetree/bindings/dma/dma.txt. | ||
60 | - dma-names: Two dmas have to be defined, "tx" and "rx", if fsl,imx-fiq | ||
61 | is not defined. | ||
50 | 62 | ||
51 | Child 'codec' node required properties: | 63 | Child 'codec' node required properties: |
52 | - compatible: Compatible list, contains the name of the codec | 64 | - compatible: Compatible list, contains the name of the codec |
diff --git a/Documentation/devicetree/bindings/sound/imx-audio-spdif.txt b/Documentation/devicetree/bindings/sound/imx-audio-spdif.txt new file mode 100644 index 000000000000..7d13479f9c3c --- /dev/null +++ b/Documentation/devicetree/bindings/sound/imx-audio-spdif.txt | |||
@@ -0,0 +1,34 @@ | |||
1 | Freescale i.MX audio complex with S/PDIF transceiver | ||
2 | |||
3 | Required properties: | ||
4 | |||
5 | - compatible : "fsl,imx-audio-spdif" | ||
6 | |||
7 | - model : The user-visible name of this sound complex | ||
8 | |||
9 | - spdif-controller : The phandle of the i.MX S/PDIF controller | ||
10 | |||
11 | |||
12 | Optional properties: | ||
13 | |||
14 | - spdif-out : This is a boolean property. If present, the transmitting | ||
15 | function of S/PDIF will be enabled, indicating there's a physical | ||
16 | S/PDIF out connector/jack on the board or it's connecting to some | ||
17 | other IP block, such as an HDMI encoder/display-controller. | ||
18 | |||
19 | - spdif-in : This is a boolean property. If present, the receiving | ||
20 | function of S/PDIF will be enabled, indicating there's a physical | ||
21 | S/PDIF in connector/jack on the board. | ||
22 | |||
23 | * Note: At least one of these two properties should be set in the DT binding. | ||
24 | |||
25 | |||
26 | Example: | ||
27 | |||
28 | sound-spdif { | ||
29 | compatible = "fsl,imx-audio-spdif"; | ||
30 | model = "imx-spdif"; | ||
31 | spdif-controller = <&spdif>; | ||
32 | spdif-out; | ||
33 | spdif-in; | ||
34 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/imx-audmux.txt b/Documentation/devicetree/bindings/sound/imx-audmux.txt index 215aa9817213..f88a00e54c63 100644 --- a/Documentation/devicetree/bindings/sound/imx-audmux.txt +++ b/Documentation/devicetree/bindings/sound/imx-audmux.txt | |||
@@ -5,6 +5,15 @@ Required properties: | |||
5 | or "fsl,imx31-audmux" for the version firstly used on i.MX31. | 5 | or "fsl,imx31-audmux" for the version firstly used on i.MX31. |
6 | - reg : Should contain AUDMUX registers location and length | 6 | - reg : Should contain AUDMUX registers location and length |
7 | 7 | ||
8 | An initial configuration can be setup using child nodes. | ||
9 | |||
10 | Required properties of optional child nodes: | ||
11 | - fsl,audmux-port : Integer of the audmux port that is configured by this | ||
12 | child node. | ||
13 | - fsl,port-config : List of configuration options for the specific port. For | ||
14 | imx31-audmux and above, it is a list of tuples <ptcr pdcr>. For | ||
15 | imx21-audmux it is a list of pcr values. | ||
16 | |||
8 | Example: | 17 | Example: |
9 | 18 | ||
10 | audmux@021d8000 { | 19 | audmux@021d8000 { |
diff --git a/Documentation/devicetree/bindings/sound/mrvl,pxa-ssp.txt b/Documentation/devicetree/bindings/sound/mrvl,pxa-ssp.txt new file mode 100644 index 000000000000..74c9ba6c2823 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/mrvl,pxa-ssp.txt | |||
@@ -0,0 +1,28 @@ | |||
1 | Marvell PXA SSP CPU DAI bindings | ||
2 | |||
3 | Required properties: | ||
4 | |||
5 | compatible Must be "mrvl,pxa-ssp-dai" | ||
6 | port A phandle reference to a PXA ssp upstream device | ||
7 | |||
8 | Example: | ||
9 | |||
10 | /* upstream device */ | ||
11 | |||
12 | ssp0: ssp@41000000 { | ||
13 | compatible = "mrvl,pxa3xx-ssp"; | ||
14 | reg = <0x41000000 0x40>; | ||
15 | interrupts = <24>; | ||
16 | clock-names = "pxa27x-ssp.0"; | ||
17 | dmas = <&dma 13 | ||
18 | &dma 14>; | ||
19 | dma-names = "rx", "tx"; | ||
20 | }; | ||
21 | |||
22 | /* DAI as user */ | ||
23 | |||
24 | ssp_dai0: ssp_dai@0 { | ||
25 | compatible = "mrvl,pxa-ssp-dai"; | ||
26 | port = <&ssp0>; | ||
27 | }; | ||
28 | |||
diff --git a/Documentation/devicetree/bindings/sound/mrvl,pxa2xx-pcm.txt b/Documentation/devicetree/bindings/sound/mrvl,pxa2xx-pcm.txt new file mode 100644 index 000000000000..551fbb8348c2 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/mrvl,pxa2xx-pcm.txt | |||
@@ -0,0 +1,15 @@ | |||
1 | DT bindings for ARM PXA2xx PCM platform driver | ||
2 | |||
3 | This is just a dummy driver that registers the PXA ASoC platform driver. | ||
4 | It does not have any resources assigned. | ||
5 | |||
6 | Required properties: | ||
7 | |||
8 | - compatible 'mrvl,pxa-pcm-audio' | ||
9 | |||
10 | Example: | ||
11 | |||
12 | pxa_pcm_audio: snd_soc_pxa_audio { | ||
13 | compatible = "mrvl,pxa-pcm-audio"; | ||
14 | }; | ||
15 | |||
diff --git a/Documentation/devicetree/bindings/sound/mvebu-audio.txt b/Documentation/devicetree/bindings/sound/mvebu-audio.txt new file mode 100644 index 000000000000..7e5fd37c1b3f --- /dev/null +++ b/Documentation/devicetree/bindings/sound/mvebu-audio.txt | |||
@@ -0,0 +1,29 @@ | |||
1 | * mvebu (Kirkwood, Dove, Armada 370) audio controller | ||
2 | |||
3 | Required properties: | ||
4 | |||
5 | - compatible: "marvell,mvebu-audio" | ||
6 | |||
7 | - reg: physical base address of the controller and length of memory mapped | ||
8 | region. | ||
9 | |||
10 | - interrupts: list of two irq numbers. | ||
11 | The first irq is used for data flow and the second one is used for errors. | ||
12 | |||
13 | - clocks: one or two phandles. | ||
14 | The first one is mandatory and defines the internal clock. | ||
15 | The second one is optional and defines an external clock. | ||
16 | |||
17 | - clock-names: names associated to the clocks: | ||
18 | "internal" for the internal clock | ||
19 | "extclk" for the external clock | ||
20 | |||
21 | Example: | ||
22 | |||
23 | i2s1: audio-controller@b4000 { | ||
24 | compatible = "marvell,mvebu-audio"; | ||
25 | reg = <0xb4000 0x2210>; | ||
26 | interrupts = <21>, <22>; | ||
27 | clocks = <&gate_clk 13>; | ||
28 | clock-names = "internal"; | ||
29 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-alc5632.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-alc5632.txt index 05ffecb57103..8b8903ef0800 100644 --- a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-alc5632.txt +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-alc5632.txt | |||
@@ -11,28 +11,8 @@ Required properties: | |||
11 | - nvidia,audio-routing : A list of the connections between audio components. | 11 | - nvidia,audio-routing : A list of the connections between audio components. |
12 | Each entry is a pair of strings, the first being the connection's sink, | 12 | Each entry is a pair of strings, the first being the connection's sink, |
13 | the second being the connection's source. Valid names for sources and | 13 | the second being the connection's source. Valid names for sources and |
14 | sinks are the ALC5632's pins: | 14 | sinks are the ALC5632's pins as documented in the binding for the device |
15 | 15 | and: | |
16 | ALC5632 pins: | ||
17 | |||
18 | * SPK_OUTP | ||
19 | * SPK_OUTN | ||
20 | * HP_OUT_L | ||
21 | * HP_OUT_R | ||
22 | * AUX_OUT_P | ||
23 | * AUX_OUT_N | ||
24 | * LINE_IN_L | ||
25 | * LINE_IN_R | ||
26 | * PHONE_P | ||
27 | * PHONE_N | ||
28 | * MIC1_P | ||
29 | * MIC1_N | ||
30 | * MIC2_P | ||
31 | * MIC2_N | ||
32 | * MICBIAS1 | ||
33 | * DMICDAT | ||
34 | |||
35 | Board connectors: | ||
36 | 16 | ||
37 | * Headset Stereophone | 17 | * Headset Stereophone |
38 | * Int Spk | 18 | * Int Spk |
diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-rt5640.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-rt5640.txt index d130818700b2..dc6224994d69 100644 --- a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-rt5640.txt +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-rt5640.txt | |||
@@ -11,32 +11,12 @@ Required properties: | |||
11 | - nvidia,audio-routing : A list of the connections between audio components. | 11 | - nvidia,audio-routing : A list of the connections between audio components. |
12 | Each entry is a pair of strings, the first being the connection's sink, | 12 | Each entry is a pair of strings, the first being the connection's sink, |
13 | the second being the connection's source. Valid names for sources and | 13 | the second being the connection's source. Valid names for sources and |
14 | sinks are the RT5640's pins, and the jacks on the board: | 14 | sinks are the RT5640's pins (as documented in its binding), and the jacks |
15 | 15 | on the board: | |
16 | RT5640 pins: | ||
17 | |||
18 | * DMIC1 | ||
19 | * DMIC2 | ||
20 | * MICBIAS1 | ||
21 | * IN1P | ||
22 | * IN1R | ||
23 | * IN2P | ||
24 | * IN2R | ||
25 | * HPOL | ||
26 | * HPOR | ||
27 | * LOUTL | ||
28 | * LOUTR | ||
29 | * MONOP | ||
30 | * MONON | ||
31 | * SPOLP | ||
32 | * SPOLN | ||
33 | * SPORP | ||
34 | * SPORN | ||
35 | |||
36 | Board connectors: | ||
37 | 16 | ||
38 | * Headphones | 17 | * Headphones |
39 | * Speakers | 18 | * Speakers |
19 | * Mic Jack | ||
40 | 20 | ||
41 | - nvidia,i2s-controller : The phandle of the Tegra I2S controller that's | 21 | - nvidia,i2s-controller : The phandle of the Tegra I2S controller that's |
42 | connected to the CODEC. | 22 | connected to the CODEC. |
diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8753.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8753.txt index d14510613a7f..aab6ce0ad2fc 100644 --- a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8753.txt +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8753.txt | |||
@@ -11,31 +11,8 @@ Required properties: | |||
11 | - nvidia,audio-routing : A list of the connections between audio components. | 11 | - nvidia,audio-routing : A list of the connections between audio components. |
12 | Each entry is a pair of strings, the first being the connection's sink, | 12 | Each entry is a pair of strings, the first being the connection's sink, |
13 | the second being the connection's source. Valid names for sources and | 13 | the second being the connection's source. Valid names for sources and |
14 | sinks are the WM8753's pins, and the jacks on the board: | 14 | sinks are the WM8753's pins as documented in the binding for the WM8753, |
15 | 15 | and the jacks on the board: | |
16 | WM8753 pins: | ||
17 | |||
18 | * LOUT1 | ||
19 | * LOUT2 | ||
20 | * ROUT1 | ||
21 | * ROUT2 | ||
22 | * MONO1 | ||
23 | * MONO2 | ||
24 | * OUT3 | ||
25 | * OUT4 | ||
26 | * LINE1 | ||
27 | * LINE2 | ||
28 | * RXP | ||
29 | * RXN | ||
30 | * ACIN | ||
31 | * ACOP | ||
32 | * MIC1N | ||
33 | * MIC1 | ||
34 | * MIC2N | ||
35 | * MIC2 | ||
36 | * Mic Bias | ||
37 | |||
38 | Board connectors: | ||
39 | 16 | ||
40 | * Headphone Jack | 17 | * Headphone Jack |
41 | * Mic Jack | 18 | * Mic Jack |
diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8903.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8903.txt index 3bf722deb722..4b44dfb6ca0d 100644 --- a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8903.txt +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8903.txt | |||
@@ -11,28 +11,8 @@ Required properties: | |||
11 | - nvidia,audio-routing : A list of the connections between audio components. | 11 | - nvidia,audio-routing : A list of the connections between audio components. |
12 | Each entry is a pair of strings, the first being the connection's sink, | 12 | Each entry is a pair of strings, the first being the connection's sink, |
13 | the second being the connection's source. Valid names for sources and | 13 | the second being the connection's source. Valid names for sources and |
14 | sinks are the WM8903's pins, and the jacks on the board: | 14 | sinks are the WM8903's pins (documented in the WM8903 binding document), |
15 | 15 | and the jacks on the board: | |
16 | WM8903 pins: | ||
17 | |||
18 | * IN1L | ||
19 | * IN1R | ||
20 | * IN2L | ||
21 | * IN2R | ||
22 | * IN3L | ||
23 | * IN3R | ||
24 | * DMICDAT | ||
25 | * HPOUTL | ||
26 | * HPOUTR | ||
27 | * LINEOUTL | ||
28 | * LINEOUTR | ||
29 | * LOP | ||
30 | * LON | ||
31 | * ROP | ||
32 | * RON | ||
33 | * MICBIAS | ||
34 | |||
35 | Board connectors: | ||
36 | 16 | ||
37 | * Headphone Jack | 17 | * Headphone Jack |
38 | * Int Spk | 18 | * Int Spk |
diff --git a/Documentation/devicetree/bindings/sound/pcm1792a.txt b/Documentation/devicetree/bindings/sound/pcm1792a.txt new file mode 100644 index 000000000000..970ba1ed576f --- /dev/null +++ b/Documentation/devicetree/bindings/sound/pcm1792a.txt | |||
@@ -0,0 +1,18 @@ | |||
1 | Texas Instruments pcm1792a DT bindings | ||
2 | |||
3 | This driver supports the SPI bus. | ||
4 | |||
5 | Required properties: | ||
6 | |||
7 | - compatible: "ti,pcm1792a" | ||
8 | |||
9 | For required properties on SPI, please consult | ||
10 | Documentation/devicetree/bindings/spi/spi-bus.txt | ||
11 | |||
12 | Examples: | ||
13 | |||
14 | codec_spi: 1792a@0 { | ||
15 | compatible = "ti,pcm1792a"; | ||
16 | spi-max-frequency = <600000>; | ||
17 | }; | ||
18 | |||
diff --git a/Documentation/devicetree/bindings/sound/rt5640.txt b/Documentation/devicetree/bindings/sound/rt5640.txt index 005bcb24d72d..068a1141b06f 100644 --- a/Documentation/devicetree/bindings/sound/rt5640.txt +++ b/Documentation/devicetree/bindings/sound/rt5640.txt | |||
@@ -18,6 +18,26 @@ Optional properties: | |||
18 | 18 | ||
19 | - realtek,ldo1-en-gpios : The GPIO that controls the CODEC's LDO1_EN pin. | 19 | - realtek,ldo1-en-gpios : The GPIO that controls the CODEC's LDO1_EN pin. |
20 | 20 | ||
21 | Pins on the device (for linking into audio routes): | ||
22 | |||
23 | * DMIC1 | ||
24 | * DMIC2 | ||
25 | * MICBIAS1 | ||
26 | * IN1P | ||
27 | * IN1R | ||
28 | * IN2P | ||
29 | * IN2R | ||
30 | * HPOL | ||
31 | * HPOR | ||
32 | * LOUTL | ||
33 | * LOUTR | ||
34 | * MONOP | ||
35 | * MONON | ||
36 | * SPOLP | ||
37 | * SPOLN | ||
38 | * SPORP | ||
39 | * SPORN | ||
40 | |||
21 | Example: | 41 | Example: |
22 | 42 | ||
23 | rt5640 { | 43 | rt5640 { |
diff --git a/Documentation/devicetree/bindings/sound/samsung-i2s.txt b/Documentation/devicetree/bindings/sound/samsung-i2s.txt index 025e66b85a43..7386d444ada1 100644 --- a/Documentation/devicetree/bindings/sound/samsung-i2s.txt +++ b/Documentation/devicetree/bindings/sound/samsung-i2s.txt | |||
@@ -2,7 +2,15 @@ | |||
2 | 2 | ||
3 | Required SoC Specific Properties: | 3 | Required SoC Specific Properties: |
4 | 4 | ||
5 | - compatible : "samsung,i2s-v5" | 5 | - compatible : should be one of the following. |
6 | - samsung,s3c6410-i2s: for 8/16/24bit stereo I2S. | ||
7 | - samsung,s5pv210-i2s: for 8/16/24bit multichannel(5.1) I2S with | ||
8 | secondary fifo, s/w reset control and internal mux for root clk src. | ||
9 | - samsung,exynos5420-i2s: for 8/16/24bit multichannel(7.1) I2S with | ||
10 | secondary fifo, s/w reset control, internal mux for root clk src and | ||
11 | TDM support. TDM (Time division multiplexing) is to allow transfer of | ||
12 | multiple channel audio data on single data line. | ||
13 | |||
6 | - reg: physical base address of the controller and length of memory mapped | 14 | - reg: physical base address of the controller and length of memory mapped |
7 | region. | 15 | region. |
8 | - dmas: list of DMA controller phandle and DMA request line ordered pairs. | 16 | - dmas: list of DMA controller phandle and DMA request line ordered pairs. |
@@ -21,13 +29,6 @@ Required SoC Specific Properties: | |||
21 | 29 | ||
22 | Optional SoC Specific Properties: | 30 | Optional SoC Specific Properties: |
23 | 31 | ||
24 | - samsung,supports-6ch: If the I2S Primary sound source has 5.1 Channel | ||
25 | support, this flag is enabled. | ||
26 | - samsung,supports-rstclr: This flag should be set if I2S software reset bit | ||
27 | control is required. When this flag is set I2S software reset bit will be | ||
28 | enabled or disabled based on need. | ||
29 | - samsung,supports-secdai:If I2S block has a secondary FIFO and internal DMA, | ||
30 | then this flag is enabled. | ||
31 | - samsung,idma-addr: Internal DMA register base address of the audio | 32 | - samsung,idma-addr: Internal DMA register base address of the audio |
32 | sub system(used in secondary sound source). | 33 | sub system(used in secondary sound source). |
33 | - pinctrl-0: Should specify pin control groups used for this controller. | 34 | - pinctrl-0: Should specify pin control groups used for this controller. |
@@ -36,7 +37,7 @@ Optional SoC Specific Properties: | |||
36 | Example: | 37 | Example: |
37 | 38 | ||
38 | i2s0: i2s@03830000 { | 39 | i2s0: i2s@03830000 { |
39 | compatible = "samsung,i2s-v5"; | 40 | compatible = "samsung,s5pv210-i2s"; |
40 | reg = <0x03830000 0x100>; | 41 | reg = <0x03830000 0x100>; |
41 | dmas = <&pdma0 10 | 42 | dmas = <&pdma0 10 |
42 | &pdma0 9 | 43 | &pdma0 9 |
@@ -46,9 +47,6 @@ i2s0: i2s@03830000 { | |||
46 | <&clock_audss EXYNOS_I2S_BUS>, | 47 | <&clock_audss EXYNOS_I2S_BUS>, |
47 | <&clock_audss EXYNOS_SCLK_I2S>; | 48 | <&clock_audss EXYNOS_SCLK_I2S>; |
48 | clock-names = "iis", "i2s_opclk0", "i2s_opclk1"; | 49 | clock-names = "iis", "i2s_opclk0", "i2s_opclk1"; |
49 | samsung,supports-6ch; | ||
50 | samsung,supports-rstclr; | ||
51 | samsung,supports-secdai; | ||
52 | samsung,idma-addr = <0x03000000>; | 50 | samsung,idma-addr = <0x03000000>; |
53 | pinctrl-names = "default"; | 51 | pinctrl-names = "default"; |
54 | pinctrl-0 = <&i2s0_bus>; | 52 | pinctrl-0 = <&i2s0_bus>; |
diff --git a/Documentation/devicetree/bindings/sound/soc-ac97link.txt b/Documentation/devicetree/bindings/sound/soc-ac97link.txt new file mode 100644 index 000000000000..80152a87f239 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/soc-ac97link.txt | |||
@@ -0,0 +1,28 @@ | |||
1 | AC97 link bindings | ||
2 | |||
3 | These bindings can be included within any other device node. | ||
4 | |||
5 | Required properties: | ||
6 | - pinctrl-names: Has to contain following states to setup the correct | ||
7 | pinmuxing for the used gpios: | ||
8 | "ac97-running": AC97-link is active | ||
9 | "ac97-reset": AC97-link reset state | ||
10 | "ac97-warm-reset": AC97-link warm reset state | ||
11 | - ac97-gpios: List of gpio phandles with args in the order ac97-sync, | ||
12 | ac97-sdata, ac97-reset | ||
13 | |||
14 | |||
15 | Example: | ||
16 | |||
17 | ssi { | ||
18 | ... | ||
19 | |||
20 | pinctrl-names = "default", "ac97-running", "ac97-reset", "ac97-warm-reset"; | ||
21 | pinctrl-0 = <&ac97link_running>; | ||
22 | pinctrl-1 = <&ac97link_running>; | ||
23 | pinctrl-2 = <&ac97link_reset>; | ||
24 | pinctrl-3 = <&ac97link_warm_reset>; | ||
25 | ac97-gpios = <&gpio3 20 0 &gpio3 22 0 &gpio3 28 0>; | ||
26 | |||
27 | ... | ||
28 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/ti,pcm1681.txt b/Documentation/devicetree/bindings/sound/ti,pcm1681.txt new file mode 100644 index 000000000000..4df17185ab80 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/ti,pcm1681.txt | |||
@@ -0,0 +1,15 @@ | |||
1 | Texas Instruments PCM1681 8-channel PWM Processor | ||
2 | |||
3 | Required properties: | ||
4 | |||
5 | - compatible: Should contain "ti,pcm1681". | ||
6 | - reg: The i2c address. Should contain <0x4c>. | ||
7 | |||
8 | Examples: | ||
9 | |||
10 | i2c_bus { | ||
11 | pcm1681@4c { | ||
12 | compatible = "ti,pcm1681"; | ||
13 | reg = <0x4c>; | ||
14 | }; | ||
15 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/tlv320aic3x.txt b/Documentation/devicetree/bindings/sound/tlv320aic3x.txt index f47c3f589fd0..705a6b156c6c 100644 --- a/Documentation/devicetree/bindings/sound/tlv320aic3x.txt +++ b/Documentation/devicetree/bindings/sound/tlv320aic3x.txt | |||
@@ -3,7 +3,14 @@ Texas Instruments - tlv320aic3x Codec module | |||
3 | The tlv320aic3x serial control bus communicates through I2C protocols | 3 | The tlv320aic3x serial control bus communicates through I2C protocols |
4 | 4 | ||
5 | Required properties: | 5 | Required properties: |
6 | - compatible - "string" - "ti,tlv320aic3x" | 6 | |
7 | - compatible - "string" - One of: | ||
8 | "ti,tlv320aic3x" - Generic TLV320AIC3x device | ||
9 | "ti,tlv320aic33" - TLV320AIC33 | ||
10 | "ti,tlv320aic3007" - TLV320AIC3007 | ||
11 | "ti,tlv320aic3106" - TLV320AIC3106 | ||
12 | |||
13 | |||
7 | - reg - <int> - I2C slave address | 14 | - reg - <int> - I2C slave address |
8 | 15 | ||
9 | 16 | ||
diff --git a/Documentation/devicetree/bindings/sound/wm8731.txt b/Documentation/devicetree/bindings/sound/wm8731.txt index 15f70048469b..236690e99b87 100644 --- a/Documentation/devicetree/bindings/sound/wm8731.txt +++ b/Documentation/devicetree/bindings/sound/wm8731.txt | |||
@@ -16,3 +16,12 @@ codec: wm8731@1a { | |||
16 | compatible = "wlf,wm8731"; | 16 | compatible = "wlf,wm8731"; |
17 | reg = <0x1a>; | 17 | reg = <0x1a>; |
18 | }; | 18 | }; |
19 | |||
20 | Available audio endpoints for an audio-routing table: | ||
21 | * LOUT: Left Channel Line Output | ||
22 | * ROUT: Right Channel Line Output | ||
23 | * LHPOUT: Left Channel Headphone Output | ||
24 | * RHPOUT: Right Channel Headphone Output | ||
25 | * LLINEIN: Left Channel Line Input | ||
26 | * RLINEIN: Right Channel Line Input | ||
27 | * MICIN: Microphone Input | ||
diff --git a/Documentation/devicetree/bindings/sound/wm8753.txt b/Documentation/devicetree/bindings/sound/wm8753.txt index e65277a0fb60..8eee61282105 100644 --- a/Documentation/devicetree/bindings/sound/wm8753.txt +++ b/Documentation/devicetree/bindings/sound/wm8753.txt | |||
@@ -10,9 +10,31 @@ Required properties: | |||
10 | - reg : the I2C address of the device for I2C, the chip select | 10 | - reg : the I2C address of the device for I2C, the chip select |
11 | number for SPI. | 11 | number for SPI. |
12 | 12 | ||
13 | Pins on the device (for linking into audio routes): | ||
14 | |||
15 | * LOUT1 | ||
16 | * LOUT2 | ||
17 | * ROUT1 | ||
18 | * ROUT2 | ||
19 | * MONO1 | ||
20 | * MONO2 | ||
21 | * OUT3 | ||
22 | * OUT4 | ||
23 | * LINE1 | ||
24 | * LINE2 | ||
25 | * RXP | ||
26 | * RXN | ||
27 | * ACIN | ||
28 | * ACOP | ||
29 | * MIC1N | ||
30 | * MIC1 | ||
31 | * MIC2N | ||
32 | * MIC2 | ||
33 | * Mic Bias | ||
34 | |||
13 | Example: | 35 | Example: |
14 | 36 | ||
15 | codec: wm8737@1a { | 37 | codec: wm8753@1a { |
16 | compatible = "wlf,wm8753"; | 38 | compatible = "wlf,wm8753"; |
17 | reg = <0x1a>; | 39 | reg = <0x1a>; |
18 | }; | 40 | }; |
diff --git a/Documentation/devicetree/bindings/sound/wm8903.txt b/Documentation/devicetree/bindings/sound/wm8903.txt index f102cbc42694..94ec32c194bb 100644 --- a/Documentation/devicetree/bindings/sound/wm8903.txt +++ b/Documentation/devicetree/bindings/sound/wm8903.txt | |||
@@ -28,6 +28,25 @@ Optional properties: | |||
28 | performed. If any entry has the value 0xffffffff, that GPIO's | 28 | performed. If any entry has the value 0xffffffff, that GPIO's |
29 | configuration will not be modified. | 29 | configuration will not be modified. |
30 | 30 | ||
31 | Pins on the device (for linking into audio routes): | ||
32 | |||
33 | * IN1L | ||
34 | * IN1R | ||
35 | * IN2L | ||
36 | * IN2R | ||
37 | * IN3L | ||
38 | * IN3R | ||
39 | * DMICDAT | ||
40 | * HPOUTL | ||
41 | * HPOUTR | ||
42 | * LINEOUTL | ||
43 | * LINEOUTR | ||
44 | * LOP | ||
45 | * LON | ||
46 | * ROP | ||
47 | * RON | ||
48 | * MICBIAS | ||
49 | |||
31 | Example: | 50 | Example: |
32 | 51 | ||
33 | codec: wm8903@1a { | 52 | codec: wm8903@1a { |
diff --git a/Documentation/devicetree/bindings/sound/wm8994.txt b/Documentation/devicetree/bindings/sound/wm8994.txt index f2f3e80934d2..e045e90a0924 100644 --- a/Documentation/devicetree/bindings/sound/wm8994.txt +++ b/Documentation/devicetree/bindings/sound/wm8994.txt | |||
@@ -32,6 +32,10 @@ Optional properties: | |||
32 | The second cell is the flags, encoded as the trigger masks from | 32 | The second cell is the flags, encoded as the trigger masks from |
33 | Documentation/devicetree/bindings/interrupts.txt | 33 | Documentation/devicetree/bindings/interrupts.txt |
34 | 34 | ||
35 | - clocks : A list of up to two phandle and clock specifier pairs | ||
36 | - clock-names : A list of clock names sorted in the same order as clocks. | ||
37 | Valid clock names are "MCLK1" and "MCLK2". | ||
38 | |||
35 | - wlf,gpio-cfg : A list of GPIO configuration register values. If absent, | 39 | - wlf,gpio-cfg : A list of GPIO configuration register values. If absent, |
36 | no configuration of these registers is performed. If any value is | 40 | no configuration of these registers is performed. If any value is |
37 | over 0xffff then the register will be left as default. If present 11 | 41 | over 0xffff then the register will be left as default. If present 11 |
diff --git a/Documentation/devicetree/bindings/spi/efm32-spi.txt b/Documentation/devicetree/bindings/spi/efm32-spi.txt new file mode 100644 index 000000000000..a590ca51be75 --- /dev/null +++ b/Documentation/devicetree/bindings/spi/efm32-spi.txt | |||
@@ -0,0 +1,34 @@ | |||
1 | * Energy Micro EFM32 SPI | ||
2 | |||
3 | Required properties: | ||
4 | - #address-cells: see spi-bus.txt | ||
5 | - #size-cells: see spi-bus.txt | ||
6 | - compatible: should be "efm32,spi" | ||
7 | - reg: Offset and length of the register set for the controller | ||
8 | - interrupts: pair specifying rx and tx irq | ||
9 | - clocks: phandle to the spi clock | ||
10 | - cs-gpios: see spi-bus.txt | ||
11 | - location: Value to write to the ROUTE register's LOCATION bitfield to configure the pinmux for the device, see datasheet for values. | ||
12 | |||
13 | Example: | ||
14 | |||
15 | spi1: spi@0x4000c400 { /* USART1 */ | ||
16 | #address-cells = <1>; | ||
17 | #size-cells = <0>; | ||
18 | compatible = "efm32,spi"; | ||
19 | reg = <0x4000c400 0x400>; | ||
20 | interrupts = <15 16>; | ||
21 | clocks = <&cmu 20>; | ||
22 | cs-gpios = <&gpio 51 1>; // D3 | ||
23 | location = <1>; | ||
24 | status = "ok"; | ||
25 | |||
26 | ks8851@0 { | ||
27 | compatible = "ks8851"; | ||
28 | spi-max-frequency = <6000000>; | ||
29 | reg = <0>; | ||
30 | interrupt-parent = <&boardfpga>; | ||
31 | interrupts = <4>; | ||
32 | status = "ok"; | ||
33 | }; | ||
34 | }; | ||
diff --git a/Documentation/devicetree/bindings/spi/spi-bus.txt b/Documentation/devicetree/bindings/spi/spi-bus.txt index 296015e3c632..800dafe5b01b 100644 --- a/Documentation/devicetree/bindings/spi/spi-bus.txt +++ b/Documentation/devicetree/bindings/spi/spi-bus.txt | |||
@@ -55,6 +55,16 @@ contain the following properties. | |||
55 | chip select active high | 55 | chip select active high |
56 | - spi-3wire - (optional) Empty property indicating device requires | 56 | - spi-3wire - (optional) Empty property indicating device requires |
57 | 3-wire mode. | 57 | 3-wire mode. |
58 | - spi-tx-bus-width - (optional) The bus width(number of data wires) that | ||
59 | used for MOSI. Defaults to 1 if not present. | ||
60 | - spi-rx-bus-width - (optional) The bus width(number of data wires) that | ||
61 | used for MISO. Defaults to 1 if not present. | ||
62 | |||
63 | Some SPI controllers and devices support Dual and Quad SPI transfer mode. | ||
64 | It allows data in SPI system transfered in 2 wires(DUAL) or 4 wires(QUAD). | ||
65 | Now the value that spi-tx-bus-width and spi-rx-bus-width can receive is | ||
66 | only 1(SINGLE), 2(DUAL) and 4(QUAD). | ||
67 | Dual/Quad mode is not allowed when 3-wire mode is used. | ||
58 | 68 | ||
59 | If a gpio chipselect is used for the SPI slave the gpio number will be passed | 69 | If a gpio chipselect is used for the SPI slave the gpio number will be passed |
60 | via the cs_gpio | 70 | via the cs_gpio |
diff --git a/Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt b/Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt new file mode 100644 index 000000000000..a1fb3035a42b --- /dev/null +++ b/Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt | |||
@@ -0,0 +1,42 @@ | |||
1 | ARM Freescale DSPI controller | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : "fsl,vf610-dspi" | ||
5 | - reg : Offset and length of the register set for the device | ||
6 | - interrupts : Should contain SPI controller interrupt | ||
7 | - clocks: from common clock binding: handle to dspi clock. | ||
8 | - clock-names: from common clock binding: Shall be "dspi". | ||
9 | - pinctrl-0: pin control group to be used for this controller. | ||
10 | - pinctrl-names: must contain a "default" entry. | ||
11 | - spi-num-chipselects : the number of the chipselect signals. | ||
12 | - bus-num : the slave chip chipselect signal number. | ||
13 | Example: | ||
14 | |||
15 | dspi0@4002c000 { | ||
16 | #address-cells = <1>; | ||
17 | #size-cells = <0>; | ||
18 | compatible = "fsl,vf610-dspi"; | ||
19 | reg = <0x4002c000 0x1000>; | ||
20 | interrupts = <0 67 0x04>; | ||
21 | clocks = <&clks VF610_CLK_DSPI0>; | ||
22 | clock-names = "dspi"; | ||
23 | spi-num-chipselects = <5>; | ||
24 | bus-num = <0>; | ||
25 | pinctrl-names = "default"; | ||
26 | pinctrl-0 = <&pinctrl_dspi0_1>; | ||
27 | status = "okay"; | ||
28 | |||
29 | sflash: at26df081a@0 { | ||
30 | #address-cells = <1>; | ||
31 | #size-cells = <1>; | ||
32 | compatible = "atmel,at26df081a"; | ||
33 | spi-max-frequency = <16000000>; | ||
34 | spi-cpol; | ||
35 | spi-cpha; | ||
36 | reg = <0>; | ||
37 | linux,modalias = "m25p80"; | ||
38 | modal = "at26df081a"; | ||
39 | }; | ||
40 | }; | ||
41 | |||
42 | |||
diff --git a/Documentation/devicetree/bindings/spi/spi_altera.txt b/Documentation/devicetree/bindings/spi/spi_altera.txt index dda375943506..31319dcf30ab 100644 --- a/Documentation/devicetree/bindings/spi/spi_altera.txt +++ b/Documentation/devicetree/bindings/spi/spi_altera.txt | |||
@@ -1,4 +1,5 @@ | |||
1 | Altera SPI | 1 | Altera SPI |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible : should be "ALTR,spi-1.0". | 4 | - compatible : should be "ALTR,spi-1.0". <DEPRECATED> |
5 | - compatible : should be "altr,spi-1.0". | ||
diff --git a/Documentation/devicetree/bindings/spi/ti_qspi.txt b/Documentation/devicetree/bindings/spi/ti_qspi.txt new file mode 100644 index 000000000000..1f9641ade0b5 --- /dev/null +++ b/Documentation/devicetree/bindings/spi/ti_qspi.txt | |||
@@ -0,0 +1,22 @@ | |||
1 | TI QSPI controller. | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : should be "ti,dra7xxx-qspi" or "ti,am4372-qspi". | ||
5 | - reg: Should contain QSPI registers location and length. | ||
6 | - #address-cells, #size-cells : Must be present if the device has sub-nodes | ||
7 | - ti,hwmods: Name of the hwmod associated to the QSPI | ||
8 | |||
9 | Recommended properties: | ||
10 | - spi-max-frequency: Definition as per | ||
11 | Documentation/devicetree/bindings/spi/spi-bus.txt | ||
12 | |||
13 | Example: | ||
14 | |||
15 | qspi: qspi@4b300000 { | ||
16 | compatible = "ti,dra7xxx-qspi"; | ||
17 | reg = <0x4b300000 0x100>; | ||
18 | #address-cells = <1>; | ||
19 | #size-cells = <0>; | ||
20 | spi-max-frequency = <25000000>; | ||
21 | ti,hwmods = "qspi"; | ||
22 | }; | ||
diff --git a/Documentation/devicetree/bindings/timer/moxa,moxart-timer.txt b/Documentation/devicetree/bindings/timer/moxa,moxart-timer.txt new file mode 100644 index 000000000000..da2d510cae47 --- /dev/null +++ b/Documentation/devicetree/bindings/timer/moxa,moxart-timer.txt | |||
@@ -0,0 +1,17 @@ | |||
1 | MOXA ART timer | ||
2 | |||
3 | Required properties: | ||
4 | |||
5 | - compatible : Must be "moxa,moxart-timer" | ||
6 | - reg : Should contain registers location and length | ||
7 | - interrupts : Should contain the timer interrupt number | ||
8 | - clocks : Should contain phandle for the clock that drives the counter | ||
9 | |||
10 | Example: | ||
11 | |||
12 | timer: timer@98400000 { | ||
13 | compatible = "moxa,moxart-timer"; | ||
14 | reg = <0x98400000 0x42>; | ||
15 | interrupts = <19 1>; | ||
16 | clocks = <&coreclk>; | ||
17 | }; | ||
diff --git a/Documentation/devicetree/bindings/tty/serial/fsl-imx-uart.txt b/Documentation/devicetree/bindings/tty/serial/fsl-imx-uart.txt deleted file mode 100644 index c662eb36be29..000000000000 --- a/Documentation/devicetree/bindings/tty/serial/fsl-imx-uart.txt +++ /dev/null | |||
@@ -1,22 +0,0 @@ | |||
1 | * Freescale i.MX Universal Asynchronous Receiver/Transmitter (UART) | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : Should be "fsl,<soc>-uart" | ||
5 | - reg : Address and length of the register set for the device | ||
6 | - interrupts : Should contain uart interrupt | ||
7 | |||
8 | Optional properties: | ||
9 | - fsl,uart-has-rtscts : Indicate the uart has rts and cts | ||
10 | - fsl,irda-mode : Indicate the uart supports irda mode | ||
11 | - fsl,dte-mode : Indicate the uart works in DTE mode. The uart works | ||
12 | is DCE mode by default. | ||
13 | |||
14 | Example: | ||
15 | |||
16 | serial@73fbc000 { | ||
17 | compatible = "fsl,imx51-uart", "fsl,imx21-uart"; | ||
18 | reg = <0x73fbc000 0x4000>; | ||
19 | interrupts = <31>; | ||
20 | fsl,uart-has-rtscts; | ||
21 | fsl,dte-mode; | ||
22 | }; | ||
diff --git a/Documentation/devicetree/bindings/tty/serial/msm_serial.txt b/Documentation/devicetree/bindings/tty/serial/msm_serial.txt deleted file mode 100644 index aef383eb8876..000000000000 --- a/Documentation/devicetree/bindings/tty/serial/msm_serial.txt +++ /dev/null | |||
@@ -1,27 +0,0 @@ | |||
1 | * Qualcomm MSM UART | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : | ||
5 | - "qcom,msm-uart", and one of "qcom,msm-hsuart" or | ||
6 | "qcom,msm-lsuart". | ||
7 | - reg : offset and length of the register set for the device | ||
8 | for the hsuart operating in compatible mode, there should be a | ||
9 | second pair describing the gsbi registers. | ||
10 | - interrupts : should contain the uart interrupt. | ||
11 | |||
12 | There are two different UART blocks used in MSM devices, | ||
13 | "qcom,msm-hsuart" and "qcom,msm-lsuart". The msm-serial driver is | ||
14 | able to handle both of these, and matches against the "qcom,msm-uart" | ||
15 | as the compatibility. | ||
16 | |||
17 | The registers for the "qcom,msm-hsuart" device need to specify both | ||
18 | register blocks, even for the common driver. | ||
19 | |||
20 | Example: | ||
21 | |||
22 | uart@19c400000 { | ||
23 | compatible = "qcom,msm-hsuart", "qcom,msm-uart"; | ||
24 | reg = <0x19c40000 0x1000>, | ||
25 | <0x19c00000 0x1000>; | ||
26 | interrupts = <195>; | ||
27 | }; | ||
diff --git a/Documentation/devicetree/bindings/tty/serial/qca,ar9330-uart.txt b/Documentation/devicetree/bindings/tty/serial/qca,ar9330-uart.txt new file mode 100644 index 000000000000..c5e032c85bf9 --- /dev/null +++ b/Documentation/devicetree/bindings/tty/serial/qca,ar9330-uart.txt | |||
@@ -0,0 +1,34 @@ | |||
1 | * Qualcomm Atheros AR9330 High-Speed UART | ||
2 | |||
3 | Required properties: | ||
4 | |||
5 | - compatible: Must be "qca,ar9330-uart" | ||
6 | |||
7 | - reg: Specifies the physical base address of the controller and | ||
8 | the length of the memory mapped region. | ||
9 | |||
10 | - interrupt-parent: The phandle for the interrupt controller that | ||
11 | services interrupts for this device. | ||
12 | |||
13 | - interrupts: Specifies the interrupt source of the parent interrupt | ||
14 | controller. The format of the interrupt specifier depends on the | ||
15 | parent interrupt controller. | ||
16 | |||
17 | Additional requirements: | ||
18 | |||
19 | Each UART port must have an alias correctly numbered in "aliases" | ||
20 | node. | ||
21 | |||
22 | Example: | ||
23 | |||
24 | aliases { | ||
25 | serial0 = &uart0; | ||
26 | }; | ||
27 | |||
28 | uart0: uart@18020000 { | ||
29 | compatible = "qca,ar9330-uart"; | ||
30 | reg = <0x18020000 0x14>; | ||
31 | |||
32 | interrupt-parent = <&intc>; | ||
33 | interrupts = <3>; | ||
34 | }; | ||
diff --git a/Documentation/devicetree/bindings/usb/am33xx-usb.txt b/Documentation/devicetree/bindings/usb/am33xx-usb.txt index dc9dc8c87f15..20c2ff2ba07e 100644 --- a/Documentation/devicetree/bindings/usb/am33xx-usb.txt +++ b/Documentation/devicetree/bindings/usb/am33xx-usb.txt | |||
@@ -1,35 +1,197 @@ | |||
1 | AM33XX MUSB GLUE | 1 | AM33xx MUSB |
2 | - compatible : Should be "ti,musb-am33xx" | 2 | ~~~~~~~~~~~~~~~ |
3 | - reg : offset and length of register sets, first usbss, then for musb instances | 3 | - compatible: ti,am33xx-usb |
4 | - interrupts : usbss, musb instance interrupts in order | 4 | - reg: offset and length of the usbss register sets |
5 | - ti,hwmods : must be "usb_otg_hs" | 5 | - ti,hwmods : must be "usb_otg_hs" |
6 | - multipoint : Should be "1" indicating the musb controller supports | 6 | |
7 | multipoint. This is a MUSB configuration-specific setting. | 7 | The glue layer contains multiple child nodes. It is required the have |
8 | - num-eps : Specifies the number of endpoints. This is also a | 8 | at least a control module node, USB node and a PHY node. The second USB |
9 | MUSB configuration-specific setting. Should be set to "16" | 9 | node and its PHY node is optional. The DMA node is also optional. |
10 | - ram-bits : Specifies the ram address size. Should be set to "12" | 10 | |
11 | - port0-mode : Should be "3" to represent OTG. "1" signifies HOST and "2" | 11 | Reset module |
12 | represents PERIPHERAL. | 12 | ~~~~~~~~~~~~ |
13 | - port1-mode : Should be "1" to represent HOST. "3" signifies OTG and "2" | 13 | - compatible: ti,am335x-usb-ctrl-module |
14 | represents PERIPHERAL. | 14 | - reg: offset and length of the "USB control registers" in the "Control |
15 | - power : Should be "250". This signifies the controller can supply up to | 15 | Module" block. A second offset and length for the USB wake up control |
16 | 500mA when operating in host mode. | 16 | in the same memory block. |
17 | - reg-names: "phy_ctrl" for the "USB control registers" and "wakeup" for | ||
18 | the USB wake up control register. | ||
19 | |||
20 | USB PHY | ||
21 | ~~~~~~~ | ||
22 | compatible: ti,am335x-usb-phy | ||
23 | reg: offset and length of the "USB PHY" register space | ||
24 | ti,ctrl_mod: reference to the "reset module" node | ||
25 | reg-names: phy | ||
26 | The PHY should have a "phy" alias numbered properly in the alias | ||
27 | node. | ||
28 | |||
29 | USB | ||
30 | ~~~ | ||
31 | - compatible: ti,musb-am33xx | ||
32 | - reg: offset and length of "USB Controller Registers", and offset and | ||
33 | length of "USB Core" register space. | ||
34 | - reg-names: control for the ""USB Controller Registers" and "mc" for | ||
35 | "USB Core" register space | ||
36 | - interrupts: USB interrupt number | ||
37 | - interrupt-names: mc | ||
38 | - dr_mode: Should be one of "host", "peripheral" or "otg". | ||
39 | - mentor,multipoint: Should be "1" indicating the musb controller supports | ||
40 | multipoint. This is a MUSB configuration-specific setting. | ||
41 | - mentor,num-eps: Specifies the number of endpoints. This is also a | ||
42 | MUSB configuration-specific setting. Should be set to "16" | ||
43 | - mentor,ram-bits: Specifies the ram address size. Should be set to "12" | ||
44 | - mentor,power: Should be "500". This signifies the controller can supply up to | ||
45 | 500mA when operating in host mode. | ||
46 | - phys: reference to the USB phy | ||
47 | - dmas: specifies the dma channels | ||
48 | - dma-names: specifies the names of the channels. Use "rxN" for receive | ||
49 | and "txN" for transmit endpoints. N specifies the endpoint number. | ||
50 | |||
51 | The controller should have an "usb" alias numbered properly in the alias | ||
52 | node. | ||
53 | |||
54 | DMA | ||
55 | ~~~ | ||
56 | - compatible: ti,am3359-cppi41 | ||
57 | - reg: offset and length of the following register spaces: USBSS, USB | ||
58 | CPPI DMA Controller, USB CPPI DMA Scheduler, USB Queue Manager | ||
59 | - reg-names: glue, controller, scheduler, queuemgr | ||
60 | - #dma-cells: should be set to 2. The first number represents the | ||
61 | endpoint number (0 … 14 for endpoints 1 … 15 on instance 0 and 15 … 29 | ||
62 | for endpoints 1 … 15 on instance 1). The second number is 0 for RX and | ||
63 | 1 for TX transfers. | ||
64 | - #dma-channels: should be set to 30 representing the 15 endpoints for | ||
65 | each USB instance. | ||
17 | 66 | ||
18 | Example: | 67 | Example: |
68 | ~~~~~~~~ | ||
69 | The following example contains all the nodes as used on am335x-evm: | ||
70 | |||
71 | aliases { | ||
72 | usb0 = &usb0; | ||
73 | usb1 = &usb1; | ||
74 | phy0 = &usb0_phy; | ||
75 | phy1 = &usb1_phy; | ||
76 | }; | ||
19 | 77 | ||
20 | usb@47400000 { | 78 | usb: usb@47400000 { |
21 | compatible = "ti,musb-am33xx"; | 79 | compatible = "ti,am33xx-usb"; |
22 | reg = <0x47400000 0x1000 /* usbss */ | 80 | reg = <0x47400000 0x1000>; |
23 | 0x47401000 0x800 /* musb instance 0 */ | 81 | ranges; |
24 | 0x47401800 0x800>; /* musb instance 1 */ | 82 | #address-cells = <1>; |
25 | interrupts = <17 /* usbss */ | 83 | #size-cells = <1>; |
26 | 18 /* musb instance 0 */ | ||
27 | 19>; /* musb instance 1 */ | ||
28 | multipoint = <1>; | ||
29 | num-eps = <16>; | ||
30 | ram-bits = <12>; | ||
31 | port0-mode = <3>; | ||
32 | port1-mode = <3>; | ||
33 | power = <250>; | ||
34 | ti,hwmods = "usb_otg_hs"; | 84 | ti,hwmods = "usb_otg_hs"; |
85 | |||
86 | ctrl_mod: control@44e10000 { | ||
87 | compatible = "ti,am335x-usb-ctrl-module"; | ||
88 | reg = <0x44e10620 0x10 | ||
89 | 0x44e10648 0x4>; | ||
90 | reg-names = "phy_ctrl", "wakeup"; | ||
91 | }; | ||
92 | |||
93 | usb0_phy: usb-phy@47401300 { | ||
94 | compatible = "ti,am335x-usb-phy"; | ||
95 | reg = <0x47401300 0x100>; | ||
96 | reg-names = "phy"; | ||
97 | ti,ctrl_mod = <&ctrl_mod>; | ||
98 | }; | ||
99 | |||
100 | usb0: usb@47401000 { | ||
101 | compatible = "ti,musb-am33xx"; | ||
102 | reg = <0x47401400 0x400 | ||
103 | 0x47401000 0x200>; | ||
104 | reg-names = "mc", "control"; | ||
105 | |||
106 | interrupts = <18>; | ||
107 | interrupt-names = "mc"; | ||
108 | dr_mode = "otg" | ||
109 | mentor,multipoint = <1>; | ||
110 | mentor,num-eps = <16>; | ||
111 | mentor,ram-bits = <12>; | ||
112 | mentor,power = <500>; | ||
113 | phys = <&usb0_phy>; | ||
114 | |||
115 | dmas = <&cppi41dma 0 0 &cppi41dma 1 0 | ||
116 | &cppi41dma 2 0 &cppi41dma 3 0 | ||
117 | &cppi41dma 4 0 &cppi41dma 5 0 | ||
118 | &cppi41dma 6 0 &cppi41dma 7 0 | ||
119 | &cppi41dma 8 0 &cppi41dma 9 0 | ||
120 | &cppi41dma 10 0 &cppi41dma 11 0 | ||
121 | &cppi41dma 12 0 &cppi41dma 13 0 | ||
122 | &cppi41dma 14 0 &cppi41dma 0 1 | ||
123 | &cppi41dma 1 1 &cppi41dma 2 1 | ||
124 | &cppi41dma 3 1 &cppi41dma 4 1 | ||
125 | &cppi41dma 5 1 &cppi41dma 6 1 | ||
126 | &cppi41dma 7 1 &cppi41dma 8 1 | ||
127 | &cppi41dma 9 1 &cppi41dma 10 1 | ||
128 | &cppi41dma 11 1 &cppi41dma 12 1 | ||
129 | &cppi41dma 13 1 &cppi41dma 14 1>; | ||
130 | dma-names = | ||
131 | "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7", | ||
132 | "rx8", "rx9", "rx10", "rx11", "rx12", "rx13", | ||
133 | "rx14", "rx15", | ||
134 | "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7", | ||
135 | "tx8", "tx9", "tx10", "tx11", "tx12", "tx13", | ||
136 | "tx14", "tx15"; | ||
137 | }; | ||
138 | |||
139 | usb1_phy: usb-phy@47401b00 { | ||
140 | compatible = "ti,am335x-usb-phy"; | ||
141 | reg = <0x47401b00 0x100>; | ||
142 | reg-names = "phy"; | ||
143 | ti,ctrl_mod = <&ctrl_mod>; | ||
144 | }; | ||
145 | |||
146 | usb1: usb@47401800 { | ||
147 | compatible = "ti,musb-am33xx"; | ||
148 | reg = <0x47401c00 0x400 | ||
149 | 0x47401800 0x200>; | ||
150 | reg-names = "mc", "control"; | ||
151 | interrupts = <19>; | ||
152 | interrupt-names = "mc"; | ||
153 | dr_mode = "host" | ||
154 | mentor,multipoint = <1>; | ||
155 | mentor,num-eps = <16>; | ||
156 | mentor,ram-bits = <12>; | ||
157 | mentor,power = <500>; | ||
158 | phys = <&usb1_phy>; | ||
159 | |||
160 | dmas = <&cppi41dma 15 0 &cppi41dma 16 0 | ||
161 | &cppi41dma 17 0 &cppi41dma 18 0 | ||
162 | &cppi41dma 19 0 &cppi41dma 20 0 | ||
163 | &cppi41dma 21 0 &cppi41dma 22 0 | ||
164 | &cppi41dma 23 0 &cppi41dma 24 0 | ||
165 | &cppi41dma 25 0 &cppi41dma 26 0 | ||
166 | &cppi41dma 27 0 &cppi41dma 28 0 | ||
167 | &cppi41dma 29 0 &cppi41dma 15 1 | ||
168 | &cppi41dma 16 1 &cppi41dma 17 1 | ||
169 | &cppi41dma 18 1 &cppi41dma 19 1 | ||
170 | &cppi41dma 20 1 &cppi41dma 21 1 | ||
171 | &cppi41dma 22 1 &cppi41dma 23 1 | ||
172 | &cppi41dma 24 1 &cppi41dma 25 1 | ||
173 | &cppi41dma 26 1 &cppi41dma 27 1 | ||
174 | &cppi41dma 28 1 &cppi41dma 29 1>; | ||
175 | dma-names = | ||
176 | "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7", | ||
177 | "rx8", "rx9", "rx10", "rx11", "rx12", "rx13", | ||
178 | "rx14", "rx15", | ||
179 | "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7", | ||
180 | "tx8", "tx9", "tx10", "tx11", "tx12", "tx13", | ||
181 | "tx14", "tx15"; | ||
182 | }; | ||
183 | |||
184 | cppi41dma: dma-controller@07402000 { | ||
185 | compatible = "ti,am3359-cppi41"; | ||
186 | reg = <0x47400000 0x1000 | ||
187 | 0x47402000 0x1000 | ||
188 | 0x47403000 0x1000 | ||
189 | 0x47404000 0x4000>; | ||
190 | reg-names = "glue", "controller", "scheduler", "queuemgr"; | ||
191 | interrupts = <17>; | ||
192 | interrupt-names = "glue"; | ||
193 | #dma-cells = <2>; | ||
194 | #dma-channels = <30>; | ||
195 | #dma-requests = <256>; | ||
196 | }; | ||
35 | }; | 197 | }; |
diff --git a/Documentation/devicetree/bindings/usb/dwc3.txt b/Documentation/devicetree/bindings/usb/dwc3.txt index 7a95c651ceb3..e807635f9e1c 100644 --- a/Documentation/devicetree/bindings/usb/dwc3.txt +++ b/Documentation/devicetree/bindings/usb/dwc3.txt | |||
@@ -3,10 +3,12 @@ synopsys DWC3 CORE | |||
3 | DWC3- USB3 CONTROLLER | 3 | DWC3- USB3 CONTROLLER |
4 | 4 | ||
5 | Required properties: | 5 | Required properties: |
6 | - compatible: must be "synopsys,dwc3" | 6 | - compatible: must be "snps,dwc3" |
7 | - reg : Address and length of the register set for the device | 7 | - reg : Address and length of the register set for the device |
8 | - interrupts: Interrupts used by the dwc3 controller. | 8 | - interrupts: Interrupts used by the dwc3 controller. |
9 | - usb-phy : array of phandle for the PHY device | 9 | - usb-phy : array of phandle for the PHY device. The first element |
10 | in the array is expected to be a handle to the USB2/HS PHY and | ||
11 | the second element is expected to be a handle to the USB3/SS PHY | ||
10 | 12 | ||
11 | Optional properties: | 13 | Optional properties: |
12 | - tx-fifo-resize: determines if the FIFO *has* to be reallocated. | 14 | - tx-fifo-resize: determines if the FIFO *has* to be reallocated. |
@@ -14,7 +16,7 @@ Optional properties: | |||
14 | This is usually a subnode to DWC3 glue to which it is connected. | 16 | This is usually a subnode to DWC3 glue to which it is connected. |
15 | 17 | ||
16 | dwc3@4a030000 { | 18 | dwc3@4a030000 { |
17 | compatible = "synopsys,dwc3"; | 19 | compatible = "snps,dwc3"; |
18 | reg = <0x4a030000 0xcfff>; | 20 | reg = <0x4a030000 0xcfff>; |
19 | interrupts = <0 92 4> | 21 | interrupts = <0 92 4> |
20 | usb-phy = <&usb2_phy>, <&usb3,phy>; | 22 | usb-phy = <&usb2_phy>, <&usb3,phy>; |
diff --git a/Documentation/devicetree/bindings/usb/generic.txt b/Documentation/devicetree/bindings/usb/generic.txt new file mode 100644 index 000000000000..477d5bb5e51c --- /dev/null +++ b/Documentation/devicetree/bindings/usb/generic.txt | |||
@@ -0,0 +1,24 @@ | |||
1 | Generic USB Properties | ||
2 | |||
3 | Optional properties: | ||
4 | - maximum-speed: tells USB controllers we want to work up to a certain | ||
5 | speed. Valid arguments are "super-speed", "high-speed", | ||
6 | "full-speed" and "low-speed". In case this isn't passed | ||
7 | via DT, USB controllers should default to their maximum | ||
8 | HW capability. | ||
9 | - dr_mode: tells Dual-Role USB controllers that we want to work on a | ||
10 | particular mode. Valid arguments are "host", | ||
11 | "peripheral" and "otg". In case this attribute isn't | ||
12 | passed via DT, USB DRD controllers should default to | ||
13 | OTG. | ||
14 | |||
15 | This is an attribute to a USB controller such as: | ||
16 | |||
17 | dwc3@4a030000 { | ||
18 | compatible = "synopsys,dwc3"; | ||
19 | reg = <0x4a030000 0xcfff>; | ||
20 | interrupts = <0 92 4> | ||
21 | usb-phy = <&usb2_phy>, <&usb3,phy>; | ||
22 | maximum-speed = "super-speed"; | ||
23 | dr_mode = "otg"; | ||
24 | }; | ||
diff --git a/Documentation/devicetree/bindings/usb/nvidia,tegra20-usb-phy.txt b/Documentation/devicetree/bindings/usb/nvidia,tegra20-usb-phy.txt index c4c9e9e664aa..ba797d3e6326 100644 --- a/Documentation/devicetree/bindings/usb/nvidia,tegra20-usb-phy.txt +++ b/Documentation/devicetree/bindings/usb/nvidia,tegra20-usb-phy.txt | |||
@@ -3,7 +3,7 @@ Tegra SOC USB PHY | |||
3 | The device node for Tegra SOC USB PHY: | 3 | The device node for Tegra SOC USB PHY: |
4 | 4 | ||
5 | Required properties : | 5 | Required properties : |
6 | - compatible : Should be "nvidia,tegra20-usb-phy". | 6 | - compatible : Should be "nvidia,tegra<chip>-usb-phy". |
7 | - reg : Defines the following set of registers, in the order listed: | 7 | - reg : Defines the following set of registers, in the order listed: |
8 | - The PHY's own register set. | 8 | - The PHY's own register set. |
9 | Always present. | 9 | Always present. |
@@ -24,17 +24,26 @@ Required properties : | |||
24 | Required properties for phy_type == ulpi: | 24 | Required properties for phy_type == ulpi: |
25 | - nvidia,phy-reset-gpio : The GPIO used to reset the PHY. | 25 | - nvidia,phy-reset-gpio : The GPIO used to reset the PHY. |
26 | 26 | ||
27 | Required PHY timing params for utmi phy: | 27 | Required PHY timing params for utmi phy, for all chips: |
28 | - nvidia,hssync-start-delay : Number of 480 Mhz clock cycles to wait before | 28 | - nvidia,hssync-start-delay : Number of 480 Mhz clock cycles to wait before |
29 | start of sync launches RxActive | 29 | start of sync launches RxActive |
30 | - nvidia,elastic-limit : Variable FIFO Depth of elastic input store | 30 | - nvidia,elastic-limit : Variable FIFO Depth of elastic input store |
31 | - nvidia,idle-wait-delay : Number of 480 Mhz clock cycles of idle to wait | 31 | - nvidia,idle-wait-delay : Number of 480 Mhz clock cycles of idle to wait |
32 | before declare IDLE. | 32 | before declare IDLE. |
33 | - nvidia,term-range-adj : Range adjusment on terminations | 33 | - nvidia,term-range-adj : Range adjusment on terminations |
34 | - nvidia,xcvr-setup : HS driver output control | 34 | - Either one of the following for HS driver output control: |
35 | - nvidia,xcvr-setup : integer, uses the provided value. | ||
36 | - nvidia,xcvr-setup-use-fuses : boolean, indicates that the value is read | ||
37 | from the on-chip fuses | ||
38 | If both are provided, nvidia,xcvr-setup-use-fuses takes precedence. | ||
35 | - nvidia,xcvr-lsfslew : LS falling slew rate control. | 39 | - nvidia,xcvr-lsfslew : LS falling slew rate control. |
36 | - nvidia,xcvr-lsrslew : LS rising slew rate control. | 40 | - nvidia,xcvr-lsrslew : LS rising slew rate control. |
37 | 41 | ||
42 | Required PHY timing params for utmi phy, only on Tegra30 and above: | ||
43 | - nvidia,xcvr-hsslew : HS slew rate control. | ||
44 | - nvidia,hssquelch-level : HS squelch detector level. | ||
45 | - nvidia,hsdiscon-level : HS disconnect detector level. | ||
46 | |||
38 | Optional properties: | 47 | Optional properties: |
39 | - nvidia,has-legacy-mode : boolean indicates whether this controller can | 48 | - nvidia,has-legacy-mode : boolean indicates whether this controller can |
40 | operate in legacy mode (as APX 2500 / 2600). In legacy mode some | 49 | operate in legacy mode (as APX 2500 / 2600). In legacy mode some |
@@ -48,5 +57,5 @@ Optional properties: | |||
48 | peripheral means it is device controller | 57 | peripheral means it is device controller |
49 | otg means it can operate as either ("on the go") | 58 | otg means it can operate as either ("on the go") |
50 | 59 | ||
51 | Required properties for dr_mode == otg: | 60 | VBUS control (required for dr_mode == otg, optional for dr_mode == host): |
52 | - vbus-supply: regulator for VBUS | 61 | - vbus-supply: regulator for VBUS |
diff --git a/Documentation/devicetree/bindings/usb/omap-usb.txt b/Documentation/devicetree/bindings/usb/omap-usb.txt index 57e71f6817d0..9088ab09e200 100644 --- a/Documentation/devicetree/bindings/usb/omap-usb.txt +++ b/Documentation/devicetree/bindings/usb/omap-usb.txt | |||
@@ -53,6 +53,11 @@ OMAP DWC3 GLUE | |||
53 | It should be set to "1" for HW mode and "2" for SW mode. | 53 | It should be set to "1" for HW mode and "2" for SW mode. |
54 | - ranges: the child address space are mapped 1:1 onto the parent address space | 54 | - ranges: the child address space are mapped 1:1 onto the parent address space |
55 | 55 | ||
56 | Optional Properties: | ||
57 | - extcon : phandle for the extcon device omap dwc3 uses to detect | ||
58 | connect/disconnect events. | ||
59 | - vbus-supply : phandle to the regulator device tree node if needed. | ||
60 | |||
56 | Sub-nodes: | 61 | Sub-nodes: |
57 | The dwc3 core should be added as subnode to omap dwc3 glue. | 62 | The dwc3 core should be added as subnode to omap dwc3 glue. |
58 | - dwc3 : | 63 | - dwc3 : |
diff --git a/Documentation/devicetree/bindings/usb/samsung-hsotg.txt b/Documentation/devicetree/bindings/usb/samsung-hsotg.txt new file mode 100644 index 000000000000..b83d428a265e --- /dev/null +++ b/Documentation/devicetree/bindings/usb/samsung-hsotg.txt | |||
@@ -0,0 +1,40 @@ | |||
1 | Samsung High Speed USB OTG controller | ||
2 | ----------------------------- | ||
3 | |||
4 | The Samsung HSOTG IP can be found on Samsung SoCs, from S3C6400 onwards. | ||
5 | It gives functionality of OTG-compliant USB 2.0 host and device with | ||
6 | support for USB 2.0 high-speed (480Mbps) and full-speed (12 Mbps) | ||
7 | operation. | ||
8 | |||
9 | Currently only device mode is supported. | ||
10 | |||
11 | Binding details | ||
12 | ----- | ||
13 | |||
14 | Required properties: | ||
15 | - compatible: "samsung,s3c6400-hsotg" should be used for all currently | ||
16 | supported SoC, | ||
17 | - interrupt-parent: phandle for the interrupt controller to which the | ||
18 | interrupt signal of the HSOTG block is routed, | ||
19 | - interrupts: specifier of interrupt signal of interrupt controller, | ||
20 | according to bindings of interrupt controller, | ||
21 | - clocks: contains an array of clock specifiers: | ||
22 | - first entry: OTG clock | ||
23 | - clock-names: contains array of clock names: | ||
24 | - first entry: must be "otg" | ||
25 | - vusb_d-supply: phandle to voltage regulator of digital section, | ||
26 | - vusb_a-supply: phandle to voltage regulator of analog section. | ||
27 | |||
28 | Example | ||
29 | ----- | ||
30 | |||
31 | hsotg@12480000 { | ||
32 | compatible = "samsung,s3c6400-hsotg"; | ||
33 | reg = <0x12480000 0x20000>; | ||
34 | interrupts = <0 71 0>; | ||
35 | clocks = <&clock 305>; | ||
36 | clock-names = "otg"; | ||
37 | vusb_d-supply = <&vusb_reg>; | ||
38 | vusb_a-supply = <&vusbdac_reg>; | ||
39 | }; | ||
40 | |||
diff --git a/Documentation/devicetree/bindings/usb/usb-xhci.txt b/Documentation/devicetree/bindings/usb/usb-xhci.txt new file mode 100644 index 000000000000..5752df0e17a2 --- /dev/null +++ b/Documentation/devicetree/bindings/usb/usb-xhci.txt | |||
@@ -0,0 +1,14 @@ | |||
1 | USB xHCI controllers | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: should be "xhci-platform". | ||
5 | - reg: should contain address and length of the standard XHCI | ||
6 | register set for the device. | ||
7 | - interrupts: one XHCI interrupt should be described here. | ||
8 | |||
9 | Example: | ||
10 | usb@f0931000 { | ||
11 | compatible = "xhci-platform"; | ||
12 | reg = <0xf0931000 0x8c8>; | ||
13 | interrupts = <0x0 0x4e 0x0>; | ||
14 | }; | ||
diff --git a/Documentation/devicetree/bindings/usb/usb3503.txt b/Documentation/devicetree/bindings/usb/usb3503.txt index 8c5be48b43c8..a018da4a7ad7 100644 --- a/Documentation/devicetree/bindings/usb/usb3503.txt +++ b/Documentation/devicetree/bindings/usb/usb3503.txt | |||
@@ -1,8 +1,11 @@ | |||
1 | SMSC USB3503 High-Speed Hub Controller | 1 | SMSC USB3503 High-Speed Hub Controller |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible: Should be "smsc,usb3503". | 4 | - compatible: Should be "smsc,usb3503" or "smsc,usb3503a". |
5 | - reg: Specifies the i2c slave address, it should be 0x08. | 5 | |
6 | Optional properties: | ||
7 | - reg: Specifies the i2c slave address, it is required and should be 0x08 | ||
8 | if I2C is used. | ||
6 | - connect-gpios: Should specify GPIO for connect. | 9 | - connect-gpios: Should specify GPIO for connect. |
7 | - disabled-ports: Should specify the ports unused. | 10 | - disabled-ports: Should specify the ports unused. |
8 | '1' or '2' or '3' are availe for this property to describe the port | 11 | '1' or '2' or '3' are availe for this property to describe the port |
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt index 366ce9b87240..2956800f0240 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.txt +++ b/Documentation/devicetree/bindings/vendor-prefixes.txt | |||
@@ -7,10 +7,12 @@ ad Avionic Design GmbH | |||
7 | adi Analog Devices, Inc. | 7 | adi Analog Devices, Inc. |
8 | aeroflexgaisler Aeroflex Gaisler AB | 8 | aeroflexgaisler Aeroflex Gaisler AB |
9 | ak Asahi Kasei Corp. | 9 | ak Asahi Kasei Corp. |
10 | altr Altera Corp. | ||
10 | amcc Applied Micro Circuits Corporation (APM, formally AMCC) | 11 | amcc Applied Micro Circuits Corporation (APM, formally AMCC) |
11 | apm Applied Micro Circuits Corporation (APM) | 12 | apm Applied Micro Circuits Corporation (APM) |
12 | arm ARM Ltd. | 13 | arm ARM Ltd. |
13 | atmel Atmel Corporation | 14 | atmel Atmel Corporation |
15 | avago Avago Technologies | ||
14 | bosch Bosch Sensortec GmbH | 16 | bosch Bosch Sensortec GmbH |
15 | brcm Broadcom Corporation | 17 | brcm Broadcom Corporation |
16 | cavium Cavium, Inc. | 18 | cavium Cavium, Inc. |
@@ -36,6 +38,7 @@ linux Linux-specific binding | |||
36 | lsi LSI Corp. (LSI Logic) | 38 | lsi LSI Corp. (LSI Logic) |
37 | marvell Marvell Technology Group Ltd. | 39 | marvell Marvell Technology Group Ltd. |
38 | maxim Maxim Integrated Products | 40 | maxim Maxim Integrated Products |
41 | microchip Microchip Technology Inc. | ||
39 | mosaixtech Mosaix Technologies, Inc. | 42 | mosaixtech Mosaix Technologies, Inc. |
40 | national National Semiconductor | 43 | national National Semiconductor |
41 | nintendo Nintendo | 44 | nintendo Nintendo |
diff --git a/Documentation/devicetree/bindings/video/simple-framebuffer.txt b/Documentation/devicetree/bindings/video/simple-framebuffer.txt index 3ea460583111..70c26f3a5b9a 100644 --- a/Documentation/devicetree/bindings/video/simple-framebuffer.txt +++ b/Documentation/devicetree/bindings/video/simple-framebuffer.txt | |||
@@ -12,6 +12,7 @@ Required properties: | |||
12 | - stride: The number of bytes in each line of the framebuffer. | 12 | - stride: The number of bytes in each line of the framebuffer. |
13 | - format: The format of the framebuffer surface. Valid values are: | 13 | - format: The format of the framebuffer surface. Valid values are: |
14 | - r5g6b5 (16-bit pixels, d[15:11]=r, d[10:5]=g, d[4:0]=b). | 14 | - r5g6b5 (16-bit pixels, d[15:11]=r, d[10:5]=g, d[4:0]=b). |
15 | - a8b8g8r8 (32-bit pixels, d[31:24]=a, d[23:16]=b, d[15:8]=g, d[7:0]=r). | ||
15 | 16 | ||
16 | Example: | 17 | Example: |
17 | 18 | ||
diff --git a/Documentation/devicetree/bindings/watchdog/sun4i-wdt.txt b/Documentation/devicetree/bindings/watchdog/sunxi-wdt.txt index ecd650adff31..e39cb266c8f4 100644 --- a/Documentation/devicetree/bindings/watchdog/sun4i-wdt.txt +++ b/Documentation/devicetree/bindings/watchdog/sunxi-wdt.txt | |||
@@ -1,8 +1,9 @@ | |||
1 | Allwinner sun4i Watchdog timer | 1 | Allwinner SoCs Watchdog timer |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | 4 | ||
5 | - compatible : should be "allwinner,sun4i-wdt" | 5 | - compatible : should be "allwinner,<soc-family>-wdt", the currently supported |
6 | SoC families being sun4i and sun6i | ||
6 | - reg : Specifies base physical address and size of the registers. | 7 | - reg : Specifies base physical address and size of the registers. |
7 | 8 | ||
8 | Example: | 9 | Example: |
diff --git a/Documentation/dma-buf-sharing.txt b/Documentation/dma-buf-sharing.txt index 0b23261561d2..505e71172ae7 100644 --- a/Documentation/dma-buf-sharing.txt +++ b/Documentation/dma-buf-sharing.txt | |||
@@ -321,7 +321,7 @@ Access to a dma_buf from the kernel context involves three steps: | |||
321 | 321 | ||
322 | When the importer is done accessing the range specified in begin_cpu_access, | 322 | When the importer is done accessing the range specified in begin_cpu_access, |
323 | it needs to announce this to the exporter (to facilitate cache flushing and | 323 | it needs to announce this to the exporter (to facilitate cache flushing and |
324 | unpinning of any pinned resources). The result of of any dma_buf kmap calls | 324 | unpinning of any pinned resources). The result of any dma_buf kmap calls |
325 | after end_cpu_access is undefined. | 325 | after end_cpu_access is undefined. |
326 | 326 | ||
327 | Interface: | 327 | Interface: |
@@ -407,6 +407,18 @@ Being able to mmap an export dma-buf buffer object has 2 main use-cases: | |||
407 | interesting ways depending upong the exporter (if userspace starts depending | 407 | interesting ways depending upong the exporter (if userspace starts depending |
408 | upon this implicit synchronization). | 408 | upon this implicit synchronization). |
409 | 409 | ||
410 | Other Interfaces Exposed to Userspace on the dma-buf FD | ||
411 | ------------------------------------------------------ | ||
412 | |||
413 | - Since kernel 3.12 the dma-buf FD supports the llseek system call, but only | ||
414 | with offset=0 and whence=SEEK_END|SEEK_SET. SEEK_SET is supported to allow | ||
415 | the usual size discover pattern size = SEEK_END(0); SEEK_SET(0). Every other | ||
416 | llseek operation will report -EINVAL. | ||
417 | |||
418 | If llseek on dma-buf FDs isn't support the kernel will report -ESPIPE for all | ||
419 | cases. Userspace can use this to detect support for discovering the dma-buf | ||
420 | size using llseek. | ||
421 | |||
410 | Miscellaneous notes | 422 | Miscellaneous notes |
411 | ------------------- | 423 | ------------------- |
412 | 424 | ||
diff --git a/Documentation/dmatest.txt b/Documentation/dmatest.txt index 132a094c7bc3..a2b5663eae26 100644 --- a/Documentation/dmatest.txt +++ b/Documentation/dmatest.txt | |||
@@ -16,15 +16,16 @@ be built as module or inside kernel. Let's consider those cases. | |||
16 | Part 2 - When dmatest is built as a module... | 16 | Part 2 - When dmatest is built as a module... |
17 | 17 | ||
18 | After mounting debugfs and loading the module, the /sys/kernel/debug/dmatest | 18 | After mounting debugfs and loading the module, the /sys/kernel/debug/dmatest |
19 | folder with nodes will be created. They are the same as module parameters with | 19 | folder with nodes will be created. There are two important files located. First |
20 | addition of the 'run' node that controls run and stop phases of the test. | 20 | is the 'run' node that controls run and stop phases of the test, and the second |
21 | one, 'results', is used to get the test case results. | ||
21 | 22 | ||
22 | Note that in this case test will not run on load automatically. | 23 | Note that in this case test will not run on load automatically. |
23 | 24 | ||
24 | Example of usage: | 25 | Example of usage: |
25 | % echo dma0chan0 > /sys/kernel/debug/dmatest/channel | 26 | % echo dma0chan0 > /sys/module/dmatest/parameters/channel |
26 | % echo 2000 > /sys/kernel/debug/dmatest/timeout | 27 | % echo 2000 > /sys/module/dmatest/parameters/timeout |
27 | % echo 1 > /sys/kernel/debug/dmatest/iterations | 28 | % echo 1 > /sys/module/dmatest/parameters/iterations |
28 | % echo 1 > /sys/kernel/debug/dmatest/run | 29 | % echo 1 > /sys/kernel/debug/dmatest/run |
29 | 30 | ||
30 | Hint: available channel list could be extracted by running the following | 31 | Hint: available channel list could be extracted by running the following |
@@ -55,8 +56,8 @@ for the first performed test. After user gets a control, the test could be | |||
55 | re-run with the same or different parameters. For the details see the above | 56 | re-run with the same or different parameters. For the details see the above |
56 | section "Part 2 - When dmatest is built as a module..." | 57 | section "Part 2 - When dmatest is built as a module..." |
57 | 58 | ||
58 | In both cases the module parameters are used as initial values for the test case. | 59 | In both cases the module parameters are used as the actual values for the test |
59 | You always could check them at run-time by running | 60 | case. You always could check them at run-time by running |
60 | % grep -H . /sys/module/dmatest/parameters/* | 61 | % grep -H . /sys/module/dmatest/parameters/* |
61 | 62 | ||
62 | Part 4 - Gathering the test results | 63 | Part 4 - Gathering the test results |
diff --git a/Documentation/driver-model/devres.txt b/Documentation/driver-model/devres.txt index b4671459857f..fcb34a5697ea 100644 --- a/Documentation/driver-model/devres.txt +++ b/Documentation/driver-model/devres.txt | |||
@@ -237,6 +237,12 @@ MEM | |||
237 | devm_kzalloc() | 237 | devm_kzalloc() |
238 | devm_kfree() | 238 | devm_kfree() |
239 | 239 | ||
240 | IIO | ||
241 | devm_iio_device_alloc() | ||
242 | devm_iio_device_free() | ||
243 | devm_iio_trigger_alloc() | ||
244 | devm_iio_trigger_free() | ||
245 | |||
240 | IO region | 246 | IO region |
241 | devm_request_region() | 247 | devm_request_region() |
242 | devm_request_mem_region() | 248 | devm_request_mem_region() |
@@ -293,3 +299,6 @@ PWM | |||
293 | PHY | 299 | PHY |
294 | devm_usb_get_phy() | 300 | devm_usb_get_phy() |
295 | devm_usb_put_phy() | 301 | devm_usb_put_phy() |
302 | |||
303 | SLAVE DMA ENGINE | ||
304 | devm_acpi_dma_controller_register() | ||
diff --git a/Documentation/early-userspace/README b/Documentation/early-userspace/README index 661a73fad399..93e63a9af30b 100644 --- a/Documentation/early-userspace/README +++ b/Documentation/early-userspace/README | |||
@@ -83,8 +83,7 @@ Where's this all leading? | |||
83 | 83 | ||
84 | The klibc distribution contains some of the necessary software to make | 84 | The klibc distribution contains some of the necessary software to make |
85 | early userspace useful. The klibc distribution is currently | 85 | early userspace useful. The klibc distribution is currently |
86 | maintained separately from the kernel, but this may change early in | 86 | maintained separately from the kernel. |
87 | the 2.7 era (it missed the boat for 2.5). | ||
88 | 87 | ||
89 | You can obtain somewhat infrequent snapshots of klibc from | 88 | You can obtain somewhat infrequent snapshots of klibc from |
90 | ftp://ftp.kernel.org/pub/linux/libs/klibc/ | 89 | ftp://ftp.kernel.org/pub/linux/libs/klibc/ |
diff --git a/Documentation/fb/fbcon.txt b/Documentation/fb/fbcon.txt index 99ea58e65eff..4a9739abc860 100644 --- a/Documentation/fb/fbcon.txt +++ b/Documentation/fb/fbcon.txt | |||
@@ -150,7 +150,7 @@ C. Boot options | |||
150 | 150 | ||
151 | C. Attaching, Detaching and Unloading | 151 | C. Attaching, Detaching and Unloading |
152 | 152 | ||
153 | Before going on on how to attach, detach and unload the framebuffer console, an | 153 | Before going on how to attach, detach and unload the framebuffer console, an |
154 | illustration of the dependencies may help. | 154 | illustration of the dependencies may help. |
155 | 155 | ||
156 | The console layer, as with most subsystems, needs a driver that interfaces with | 156 | The console layer, as with most subsystems, needs a driver that interfaces with |
diff --git a/Documentation/fb/viafb.modes b/Documentation/fb/viafb.modes index 02e5b487f00e..2a547da2e5cc 100644 --- a/Documentation/fb/viafb.modes +++ b/Documentation/fb/viafb.modes | |||
@@ -571,7 +571,7 @@ mode "640x480-60" | |||
571 | # 160 chars 800 lines | 571 | # 160 chars 800 lines |
572 | # Blank Time 4.798 us 0.564 ms | 572 | # Blank Time 4.798 us 0.564 ms |
573 | # 50 chars 28 lines | 573 | # 50 chars 28 lines |
574 | # Polarity negtive positive | 574 | # Polarity negative positive |
575 | # | 575 | # |
576 | mode "1280x800-60" | 576 | mode "1280x800-60" |
577 | # D: 83.500 MHz, H: 49.702 kHz, V: 60.00 Hz | 577 | # D: 83.500 MHz, H: 49.702 kHz, V: 60.00 Hz |
diff --git a/Documentation/fb/viafb.txt b/Documentation/fb/viafb.txt index 444e34b52ae1..1cb2462a71ce 100644 --- a/Documentation/fb/viafb.txt +++ b/Documentation/fb/viafb.txt | |||
@@ -32,7 +32,7 @@ | |||
32 | Start viafb with default settings: | 32 | Start viafb with default settings: |
33 | #modprobe viafb | 33 | #modprobe viafb |
34 | 34 | ||
35 | Start viafb with with user options: | 35 | Start viafb with user options: |
36 | #modprobe viafb viafb_mode=800x600 viafb_bpp=16 viafb_refresh=60 | 36 | #modprobe viafb viafb_mode=800x600 viafb_bpp=16 viafb_refresh=60 |
37 | viafb_active_dev=CRT+DVI viafb_dvi_port=DVP1 | 37 | viafb_active_dev=CRT+DVI viafb_dvi_port=DVP1 |
38 | viafb_mode1=1024x768 viafb_bpp=16 viafb_refresh1=60 | 38 | viafb_mode1=1024x768 viafb_bpp=16 viafb_refresh1=60 |
diff --git a/Documentation/filesystems/btrfs.txt b/Documentation/filesystems/btrfs.txt index b349d57b76ea..9dae59407437 100644 --- a/Documentation/filesystems/btrfs.txt +++ b/Documentation/filesystems/btrfs.txt | |||
@@ -87,7 +87,7 @@ Unless otherwise specified, all options default to off. | |||
87 | 87 | ||
88 | device=<devicepath> | 88 | device=<devicepath> |
89 | Specify a device during mount so that ioctls on the control device | 89 | Specify a device during mount so that ioctls on the control device |
90 | can be avoided. Especialy useful when trying to mount a multi-device | 90 | can be avoided. Especially useful when trying to mount a multi-device |
91 | setup as root. May be specified multiple times for multiple devices. | 91 | setup as root. May be specified multiple times for multiple devices. |
92 | 92 | ||
93 | discard | 93 | discard |
diff --git a/Documentation/filesystems/caching/backend-api.txt b/Documentation/filesystems/caching/backend-api.txt index d78bab9622c6..277d1e810670 100644 --- a/Documentation/filesystems/caching/backend-api.txt +++ b/Documentation/filesystems/caching/backend-api.txt | |||
@@ -299,6 +299,15 @@ performed on the denizens of the cache. These are held in a structure of type: | |||
299 | enough space in the cache to permit this. | 299 | enough space in the cache to permit this. |
300 | 300 | ||
301 | 301 | ||
302 | (*) Check coherency state of an object [mandatory]: | ||
303 | |||
304 | int (*check_consistency)(struct fscache_object *object) | ||
305 | |||
306 | This method is called to have the cache check the saved auxiliary data of | ||
307 | the object against the netfs's idea of the state. 0 should be returned | ||
308 | if they're consistent and -ESTALE otherwise. -ENOMEM and -ERESTARTSYS | ||
309 | may also be returned. | ||
310 | |||
302 | (*) Update object [mandatory]: | 311 | (*) Update object [mandatory]: |
303 | 312 | ||
304 | int (*update_object)(struct fscache_object *object) | 313 | int (*update_object)(struct fscache_object *object) |
diff --git a/Documentation/filesystems/caching/netfs-api.txt b/Documentation/filesystems/caching/netfs-api.txt index 97e6c0ecc5ef..11a0a40ce445 100644 --- a/Documentation/filesystems/caching/netfs-api.txt +++ b/Documentation/filesystems/caching/netfs-api.txt | |||
@@ -32,7 +32,7 @@ This document contains the following sections: | |||
32 | (9) Setting the data file size | 32 | (9) Setting the data file size |
33 | (10) Page alloc/read/write | 33 | (10) Page alloc/read/write |
34 | (11) Page uncaching | 34 | (11) Page uncaching |
35 | (12) Index and data file update | 35 | (12) Index and data file consistency |
36 | (13) Miscellaneous cookie operations | 36 | (13) Miscellaneous cookie operations |
37 | (14) Cookie unregistration | 37 | (14) Cookie unregistration |
38 | (15) Index invalidation | 38 | (15) Index invalidation |
@@ -433,7 +433,7 @@ to the caller. The attribute adjustment excludes read and write operations. | |||
433 | 433 | ||
434 | 434 | ||
435 | ===================== | 435 | ===================== |
436 | PAGE READ/ALLOC/WRITE | 436 | PAGE ALLOC/READ/WRITE |
437 | ===================== | 437 | ===================== |
438 | 438 | ||
439 | And the sixth step is to store and retrieve pages in the cache. There are | 439 | And the sixth step is to store and retrieve pages in the cache. There are |
@@ -499,7 +499,7 @@ Else if there's a copy of the page resident in the cache: | |||
499 | (*) An argument that's 0 on success or negative for an error code. | 499 | (*) An argument that's 0 on success or negative for an error code. |
500 | 500 | ||
501 | If an error occurs, it should be assumed that the page contains no usable | 501 | If an error occurs, it should be assumed that the page contains no usable |
502 | data. | 502 | data. fscache_readpages_cancel() may need to be called. |
503 | 503 | ||
504 | end_io_func() will be called in process context if the read is results in | 504 | end_io_func() will be called in process context if the read is results in |
505 | an error, but it might be called in interrupt context if the read is | 505 | an error, but it might be called in interrupt context if the read is |
@@ -623,6 +623,22 @@ some of the pages being read and some being allocated. Those pages will have | |||
623 | been marked appropriately and will need uncaching. | 623 | been marked appropriately and will need uncaching. |
624 | 624 | ||
625 | 625 | ||
626 | CANCELLATION OF UNREAD PAGES | ||
627 | ---------------------------- | ||
628 | |||
629 | If one or more pages are passed to fscache_read_or_alloc_pages() but not then | ||
630 | read from the cache and also not read from the underlying filesystem then | ||
631 | those pages will need to have any marks and reservations removed. This can be | ||
632 | done by calling: | ||
633 | |||
634 | void fscache_readpages_cancel(struct fscache_cookie *cookie, | ||
635 | struct list_head *pages); | ||
636 | |||
637 | prior to returning to the caller. The cookie argument should be as passed to | ||
638 | fscache_read_or_alloc_pages(). Every page in the pages list will be examined | ||
639 | and any that have PG_fscache set will be uncached. | ||
640 | |||
641 | |||
626 | ============== | 642 | ============== |
627 | PAGE UNCACHING | 643 | PAGE UNCACHING |
628 | ============== | 644 | ============== |
@@ -690,9 +706,18 @@ written to the cache and for the cache to finish with the page generally. No | |||
690 | error is returned. | 706 | error is returned. |
691 | 707 | ||
692 | 708 | ||
693 | ========================== | 709 | =============================== |
694 | INDEX AND DATA FILE UPDATE | 710 | INDEX AND DATA FILE CONSISTENCY |
695 | ========================== | 711 | =============================== |
712 | |||
713 | To find out whether auxiliary data for an object is up to data within the | ||
714 | cache, the following function can be called: | ||
715 | |||
716 | int fscache_check_consistency(struct fscache_cookie *cookie) | ||
717 | |||
718 | This will call back to the netfs to check whether the auxiliary data associated | ||
719 | with a cookie is correct. It returns 0 if it is and -ESTALE if it isn't; it | ||
720 | may also return -ENOMEM and -ERESTARTSYS. | ||
696 | 721 | ||
697 | To request an update of the index data for an index or other object, the | 722 | To request an update of the index data for an index or other object, the |
698 | following function should be called: | 723 | following function should be called: |
diff --git a/Documentation/filesystems/cifs/AUTHORS b/Documentation/filesystems/cifs/AUTHORS new file mode 100644 index 000000000000..ca4a67a0bb1e --- /dev/null +++ b/Documentation/filesystems/cifs/AUTHORS | |||
@@ -0,0 +1,56 @@ | |||
1 | Original Author | ||
2 | =============== | ||
3 | Steve French (sfrench@samba.org) | ||
4 | |||
5 | The author wishes to express his appreciation and thanks to: | ||
6 | Andrew Tridgell (Samba team) for his early suggestions about smb/cifs VFS | ||
7 | improvements. Thanks to IBM for allowing me time and test resources to pursue | ||
8 | this project, to Jim McDonough from IBM (and the Samba Team) for his help, to | ||
9 | the IBM Linux JFS team for explaining many esoteric Linux filesystem features. | ||
10 | Jeremy Allison of the Samba team has done invaluable work in adding the server | ||
11 | side of the original CIFS Unix extensions and reviewing and implementing | ||
12 | portions of the newer CIFS POSIX extensions into the Samba 3 file server. Thank | ||
13 | Dave Boutcher of IBM Rochester (author of the OS/400 smb/cifs filesystem client) | ||
14 | for proving years ago that very good smb/cifs clients could be done on Unix-like | ||
15 | operating systems. Volker Lendecke, Andrew Tridgell, Urban Widmark, John | ||
16 | Newbigin and others for their work on the Linux smbfs module. Thanks to | ||
17 | the other members of the Storage Network Industry Association CIFS Technical | ||
18 | Workgroup for their work specifying this highly complex protocol and finally | ||
19 | thanks to the Samba team for their technical advice and encouragement. | ||
20 | |||
21 | Patch Contributors | ||
22 | ------------------ | ||
23 | Zwane Mwaikambo | ||
24 | Andi Kleen | ||
25 | Amrut Joshi | ||
26 | Shobhit Dayal | ||
27 | Sergey Vlasov | ||
28 | Richard Hughes | ||
29 | Yury Umanets | ||
30 | Mark Hamzy (for some of the early cifs IPv6 work) | ||
31 | Domen Puncer | ||
32 | Jesper Juhl (in particular for lots of whitespace/formatting cleanup) | ||
33 | Vince Negri and Dave Stahl (for finding an important caching bug) | ||
34 | Adrian Bunk (kcalloc cleanups) | ||
35 | Miklos Szeredi | ||
36 | Kazeon team for various fixes especially for 2.4 version. | ||
37 | Asser Ferno (Change Notify support) | ||
38 | Shaggy (Dave Kleikamp) for innumerable small fs suggestions and some good cleanup | ||
39 | Gunter Kukkukk (testing and suggestions for support of old servers) | ||
40 | Igor Mammedov (DFS support) | ||
41 | Jeff Layton (many, many fixes, as well as great work on the cifs Kerberos code) | ||
42 | Scott Lovenberg | ||
43 | |||
44 | Test case and Bug Report contributors | ||
45 | ------------------------------------- | ||
46 | Thanks to those in the community who have submitted detailed bug reports | ||
47 | and debug of problems they have found: Jochen Dolze, David Blaine, | ||
48 | Rene Scharfe, Martin Josefsson, Alexander Wild, Anthony Liguori, | ||
49 | Lars Muller, Urban Widmark, Massimiliano Ferrero, Howard Owen, | ||
50 | Olaf Kirch, Kieron Briggs, Nick Millington and others. Also special | ||
51 | mention to the Stanford Checker (SWAT) which pointed out many minor | ||
52 | bugs in error paths. Valuable suggestions also have come from Al Viro | ||
53 | and Dave Miller. | ||
54 | |||
55 | And thanks to the IBM LTC and Power test teams and SuSE testers for | ||
56 | finding multiple bugs during excellent stress test runs. | ||
diff --git a/Documentation/filesystems/cifs/CHANGES b/Documentation/filesystems/cifs/CHANGES new file mode 100644 index 000000000000..bc0025cdd1c9 --- /dev/null +++ b/Documentation/filesystems/cifs/CHANGES | |||
@@ -0,0 +1,1065 @@ | |||
1 | Version 1.62 | ||
2 | ------------ | ||
3 | Add sockopt=TCP_NODELAY mount option. EA (xattr) routines hardened | ||
4 | to more strictly handle corrupt frames. | ||
5 | |||
6 | Version 1.61 | ||
7 | ------------ | ||
8 | Fix append problem to Samba servers (files opened with O_APPEND could | ||
9 | have duplicated data). Fix oops in cifs_lookup. Workaround problem | ||
10 | mounting to OS/400 Netserve. Fix oops in cifs_get_tcp_session. | ||
11 | Disable use of server inode numbers when server only | ||
12 | partially supports them (e.g. for one server querying inode numbers on | ||
13 | FindFirst fails but QPathInfo queries works). Fix oops with dfs in | ||
14 | cifs_put_smb_ses. Fix mmap to work on directio mounts (needed | ||
15 | for OpenOffice when on forcedirectio mount e.g.) | ||
16 | |||
17 | Version 1.60 | ||
18 | ------------- | ||
19 | Fix memory leak in reconnect. Fix oops in DFS mount error path. | ||
20 | Set s_maxbytes to smaller (the max that vfs can handle) so that | ||
21 | sendfile will now work over cifs mounts again. Add noforcegid | ||
22 | and noforceuid mount parameters. Fix small mem leak when using | ||
23 | ntlmv2. Fix 2nd mount to same server but with different port to | ||
24 | be allowed (rather than reusing the 1st port) - only when the | ||
25 | user explicitly overrides the port on the 2nd mount. | ||
26 | |||
27 | Version 1.59 | ||
28 | ------------ | ||
29 | Client uses server inode numbers (which are persistent) rather than | ||
30 | client generated ones by default (mount option "serverino" turned | ||
31 | on by default if server supports it). Add forceuid and forcegid | ||
32 | mount options (so that when negotiating unix extensions specifying | ||
33 | which uid mounted does not immediately force the server's reported | ||
34 | uids to be overridden). Add support for scope mount parm. Improve | ||
35 | hard link detection to use same inode for both. Do not set | ||
36 | read-only dos attribute on directories (for chmod) since Windows | ||
37 | explorer special cases this attribute bit for directories for | ||
38 | a different purpose. | ||
39 | |||
40 | Version 1.58 | ||
41 | ------------ | ||
42 | Guard against buffer overruns in various UCS-2 to UTF-8 string conversions | ||
43 | when the UTF-8 string is composed of unusually long (more than 4 byte) converted | ||
44 | characters. Add support for mounting root of a share which redirects immediately | ||
45 | to DFS target. Convert string conversion functions from Unicode to more | ||
46 | accurately mark string length before allocating memory (which may help the | ||
47 | rare cases where a UTF-8 string is much larger than the UCS2 string that | ||
48 | we converted from). Fix endianness of the vcnum field used during | ||
49 | session setup to distinguish multiple mounts to same server from different | ||
50 | userids. Raw NTLMSSP fixed (it requires /proc/fs/cifs/experimental | ||
51 | flag to be set to 2, and mount must enable krb5 to turn on extended security). | ||
52 | Performance of file create to Samba improved (posix create on lookup | ||
53 | removes 1 of 2 network requests sent on file create) | ||
54 | |||
55 | Version 1.57 | ||
56 | ------------ | ||
57 | Improve support for multiple security contexts to the same server. We | ||
58 | used to use the same "vcnumber" for all connections which could cause | ||
59 | the server to treat subsequent connections, especially those that | ||
60 | are authenticated as guest, as reconnections, invalidating the earlier | ||
61 | user's smb session. This fix allows cifs to mount multiple times to the | ||
62 | same server with different userids without risking invalidating earlier | ||
63 | established security contexts. fsync now sends SMB Flush operation | ||
64 | to better ensure that we wait for server to write all of the data to | ||
65 | server disk (not just write it over the network). Add new mount | ||
66 | parameter to allow user to disable sending the (slow) SMB flush on | ||
67 | fsync if desired (fsync still flushes all cached write data to the server). | ||
68 | Posix file open support added (turned off after one attempt if server | ||
69 | fails to support it properly, as with Samba server versions prior to 3.3.2) | ||
70 | Fix "redzone overwritten" bug in cifs_put_tcon (CIFSTcon may allocate too | ||
71 | little memory for the "nativeFileSystem" field returned by the server | ||
72 | during mount). Endian convert inode numbers if necessary (makes it easier | ||
73 | to compare inode numbers on network files from big endian systems). | ||
74 | |||
75 | Version 1.56 | ||
76 | ------------ | ||
77 | Add "forcemandatorylock" mount option to allow user to use mandatory | ||
78 | rather than posix (advisory) byte range locks, even though server would | ||
79 | support posix byte range locks. Fix query of root inode when prefixpath | ||
80 | specified and user does not have access to query information about the | ||
81 | top of the share. Fix problem in 2.6.28 resolving DFS paths to | ||
82 | Samba servers (worked to Windows). Fix rmdir so that pending search | ||
83 | (readdir) requests do not get invalid results which include the now | ||
84 | removed directory. Fix oops in cifs_dfs_ref.c when prefixpath is not reachable | ||
85 | when using DFS. Add better file create support to servers which support | ||
86 | the CIFS POSIX protocol extensions (this adds support for new flags | ||
87 | on create, and improves semantics for write of locked ranges). | ||
88 | |||
89 | Version 1.55 | ||
90 | ------------ | ||
91 | Various fixes to make delete of open files behavior more predictable | ||
92 | (when delete of an open file fails we mark the file as "delete-on-close" | ||
93 | in a way that more servers accept, but only if we can first rename the | ||
94 | file to a temporary name). Add experimental support for more safely | ||
95 | handling fcntl(F_SETLEASE). Convert cifs to using blocking tcp | ||
96 | sends, and also let tcp autotune the socket send and receive buffers. | ||
97 | This reduces the number of EAGAIN errors returned by TCP/IP in | ||
98 | high stress workloads (and the number of retries on socket writes | ||
99 | when sending large SMBWriteX requests). Fix case in which a portion of | ||
100 | data can in some cases not get written to the file on the server before the | ||
101 | file is closed. Fix DFS parsing to properly handle path consumed field, | ||
102 | and to handle certain codepage conversions better. Fix mount and | ||
103 | umount race that can cause oops in mount or umount or reconnect. | ||
104 | |||
105 | Version 1.54 | ||
106 | ------------ | ||
107 | Fix premature write failure on congested networks (we would give up | ||
108 | on EAGAIN from the socket too quickly on large writes). | ||
109 | Cifs_mkdir and cifs_create now respect the setgid bit on parent dir. | ||
110 | Fix endian problems in acl (mode from/to cifs acl) on bigendian | ||
111 | architectures. Fix problems with preserving timestamps on copying open | ||
112 | files (e.g. "cp -a") to Windows servers. For mkdir and create honor setgid bit | ||
113 | on parent directory when server supports Unix Extensions but not POSIX | ||
114 | create. Update cifs.upcall version to handle new Kerberos sec flags | ||
115 | (this requires update of cifs.upcall program from Samba). Fix memory leak | ||
116 | on dns_upcall (resolving DFS referralls). Fix plain text password | ||
117 | authentication (requires setting SecurityFlags to 0x30030 to enable | ||
118 | lanman and plain text though). Fix writes to be at correct offset when | ||
119 | file is open with O_APPEND and file is on a directio (forcediretio) mount. | ||
120 | Fix bug in rewinding readdir directory searches. Add nodfs mount option. | ||
121 | |||
122 | Version 1.53 | ||
123 | ------------ | ||
124 | DFS support added (Microsoft Distributed File System client support needed | ||
125 | for referrals which enable a hierarchical name space among servers). | ||
126 | Disable temporary caching of mode bits to servers which do not support | ||
127 | storing of mode (e.g. Windows servers, when client mounts without cifsacl | ||
128 | mount option) and add new "dynperm" mount option to enable temporary caching | ||
129 | of mode (enable old behavior). Fix hang on mount caused when server crashes | ||
130 | tcp session during negotiate protocol. | ||
131 | |||
132 | Version 1.52 | ||
133 | ------------ | ||
134 | Fix oops on second mount to server when null auth is used. | ||
135 | Enable experimental Kerberos support. Return writebehind errors on flush | ||
136 | and sync so that events like out of disk space get reported properly on | ||
137 | cached files. Fix setxattr failure to certain Samba versions. Fix mount | ||
138 | of second share to disconnected server session (autoreconnect on this). | ||
139 | Add ability to modify cifs acls for handling chmod (when mounted with | ||
140 | cifsacl flag). Fix prefixpath path separator so we can handle mounts | ||
141 | with prefixpaths longer than one directory (one path component) when | ||
142 | mounted to Windows servers. Fix slow file open when cifsacl | ||
143 | enabled. Fix memory leak in FindNext when the SMB call returns -EBADF. | ||
144 | |||
145 | |||
146 | Version 1.51 | ||
147 | ------------ | ||
148 | Fix memory leak in statfs when mounted to very old servers (e.g. | ||
149 | Windows 9x). Add new feature "POSIX open" which allows servers | ||
150 | which support the current POSIX Extensions to provide better semantics | ||
151 | (e.g. delete for open files opened with posix open). Take into | ||
152 | account umask on posix mkdir not just older style mkdir. Add | ||
153 | ability to mount to IPC$ share (which allows CIFS named pipes to be | ||
154 | opened, read and written as if they were files). When 1st tree | ||
155 | connect fails (e.g. due to signing negotiation failure) fix | ||
156 | leak that causes cifsd not to stop and rmmod to fail to cleanup | ||
157 | cifs_request_buffers pool. Fix problem with POSIX Open/Mkdir on | ||
158 | bigendian architectures. Fix possible memory corruption when | ||
159 | EAGAIN returned on kern_recvmsg. Return better error if server | ||
160 | requires packet signing but client has disabled it. When mounted | ||
161 | with cifsacl mount option - mode bits are approximated based | ||
162 | on the contents of the ACL of the file or directory. When cifs | ||
163 | mount helper is missing convert make sure that UNC name | ||
164 | has backslash (not forward slash) between ip address of server | ||
165 | and the share name. | ||
166 | |||
167 | Version 1.50 | ||
168 | ------------ | ||
169 | Fix NTLMv2 signing. NFS server mounted over cifs works (if cifs mount is | ||
170 | done with "serverino" mount option). Add support for POSIX Unlink | ||
171 | (helps with certain sharing violation cases when server such as | ||
172 | Samba supports newer POSIX CIFS Protocol Extensions). Add "nounix" | ||
173 | mount option to allow disabling the CIFS Unix Extensions for just | ||
174 | that mount. Fix hang on spinlock in find_writable_file (race when | ||
175 | reopening file after session crash). Byte range unlock request to | ||
176 | windows server could unlock more bytes (on server copy of file) | ||
177 | than intended if start of unlock request is well before start of | ||
178 | a previous byte range lock that we issued. | ||
179 | |||
180 | Version 1.49 | ||
181 | ------------ | ||
182 | IPv6 support. Enable ipv6 addresses to be passed on mount (put the ipv6 | ||
183 | address after the "ip=" mount option, at least until mount.cifs is fixed to | ||
184 | handle DNS host to ipv6 name translation). Accept override of uid or gid | ||
185 | on mount even when Unix Extensions are negotiated (it used to be ignored | ||
186 | when Unix Extensions were ignored). This allows users to override the | ||
187 | default uid and gid for files when they are certain that the uids or | ||
188 | gids on the server do not match those of the client. Make "sec=none" | ||
189 | mount override username (so that null user connection is attempted) | ||
190 | to match what documentation said. Support for very large reads, over 127K, | ||
191 | available to some newer servers (such as Samba 3.0.26 and later but | ||
192 | note that it also requires setting CIFSMaxBufSize at module install | ||
193 | time to a larger value which may hurt performance in some cases). | ||
194 | Make sign option force signing (or fail if server does not support it). | ||
195 | |||
196 | Version 1.48 | ||
197 | ------------ | ||
198 | Fix mtime bouncing around from local idea of last write times to remote time. | ||
199 | Fix hang (in i_size_read) when simultaneous size update of same remote file | ||
200 | on smp system corrupts sequence number. Do not reread unnecessarily partial page | ||
201 | (which we are about to overwrite anyway) when writing out file opened rw. | ||
202 | When DOS attribute of file on non-Unix server's file changes on the server side | ||
203 | from read-only back to read-write, reflect this change in default file mode | ||
204 | (we had been leaving a file's mode read-only until the inode were reloaded). | ||
205 | Allow setting of attribute back to ATTR_NORMAL (removing readonly dos attribute | ||
206 | when archive dos attribute not set and we are changing mode back to writeable | ||
207 | on server which does not support the Unix Extensions). Remove read only dos | ||
208 | attribute on chmod when adding any write permission (ie on any of | ||
209 | user/group/other (not all of user/group/other ie 0222) when | ||
210 | mounted to windows. Add support for POSIX MkDir (slight performance | ||
211 | enhancement and eliminates the network race between the mkdir and set | ||
212 | path info of the mode). | ||
213 | |||
214 | |||
215 | Version 1.47 | ||
216 | ------------ | ||
217 | Fix oops in list_del during mount caused by unaligned string. | ||
218 | Fix file corruption which could occur on some large file | ||
219 | copies caused by writepages page i/o completion bug. | ||
220 | Seek to SEEK_END forces check for update of file size for non-cached | ||
221 | files. Allow file size to be updated on remote extend of locally open, | ||
222 | non-cached file. Fix reconnect to newer Samba servers (or other servers | ||
223 | which support the CIFS Unix/POSIX extensions) so that we again tell the | ||
224 | server the Unix/POSIX cifs capabilities which we support (SetFSInfo). | ||
225 | Add experimental support for new POSIX Open/Mkdir (which returns | ||
226 | stat information on the open, and allows setting the mode). | ||
227 | |||
228 | Version 1.46 | ||
229 | ------------ | ||
230 | Support deep tree mounts. Better support OS/2, Win9x (DOS) time stamps. | ||
231 | Allow null user to be specified on mount ("username="). Do not return | ||
232 | EINVAL on readdir when filldir fails due to overwritten blocksize | ||
233 | (fixes FC problem). Return error in rename 2nd attempt retry (ie report | ||
234 | if rename by handle also fails, after rename by path fails, we were | ||
235 | not reporting whether the retry worked or not). Fix NTLMv2 to | ||
236 | work to Windows servers (mount with option "sec=ntlmv2"). | ||
237 | |||
238 | Version 1.45 | ||
239 | ------------ | ||
240 | Do not time out lockw calls when using posix extensions. Do not | ||
241 | time out requests if server still responding reasonably fast | ||
242 | on requests on other threads. Improve POSIX locking emulation, | ||
243 | (lock cancel now works, and unlock of merged range works even | ||
244 | to Windows servers now). Fix oops on mount to lanman servers | ||
245 | (win9x, os/2 etc.) when null password. Do not send listxattr | ||
246 | (SMB to query all EAs) if nouser_xattr specified. Fix SE Linux | ||
247 | problem (instantiate inodes/dentries in right order for readdir). | ||
248 | |||
249 | Version 1.44 | ||
250 | ------------ | ||
251 | Rewritten sessionsetup support, including support for legacy SMB | ||
252 | session setup needed for OS/2 and older servers such as Windows 95 and 98. | ||
253 | Fix oops on ls to OS/2 servers. Add support for level 1 FindFirst | ||
254 | so we can do search (ls etc.) to OS/2. Do not send NTCreateX | ||
255 | or recent levels of FindFirst unless server says it supports NT SMBs | ||
256 | (instead use legacy equivalents from LANMAN dialect). Fix to allow | ||
257 | NTLMv2 authentication support (now can use stronger password hashing | ||
258 | on mount if corresponding /proc/fs/cifs/SecurityFlags is set (0x4004). | ||
259 | Allow override of global cifs security flags on mount via "sec=" option(s). | ||
260 | |||
261 | Version 1.43 | ||
262 | ------------ | ||
263 | POSIX locking to servers which support CIFS POSIX Extensions | ||
264 | (disabled by default controlled by proc/fs/cifs/Experimental). | ||
265 | Handle conversion of long share names (especially Asian languages) | ||
266 | to Unicode during mount. Fix memory leak in sess struct on reconnect. | ||
267 | Fix rare oops after acpi suspend. Fix O_TRUNC opens to overwrite on | ||
268 | cifs open which helps rare case when setpathinfo fails or server does | ||
269 | not support it. | ||
270 | |||
271 | Version 1.42 | ||
272 | ------------ | ||
273 | Fix slow oplock break when mounted to different servers at the same time and | ||
274 | the tids match and we try to find matching fid on wrong server. Fix read | ||
275 | looping when signing required by server (2.6.16 kernel only). Fix readdir | ||
276 | vs. rename race which could cause each to hang. Return . and .. even | ||
277 | if server does not. Allow searches to skip first three entries and | ||
278 | begin at any location. Fix oops in find_writeable_file. | ||
279 | |||
280 | Version 1.41 | ||
281 | ------------ | ||
282 | Fix NTLMv2 security (can be enabled in /proc/fs/cifs) so customers can | ||
283 | configure stronger authentication. Fix sfu symlinks so they can | ||
284 | be followed (not just recognized). Fix wraparound of bcc on | ||
285 | read responses when buffer size over 64K and also fix wrap of | ||
286 | max smb buffer size when CIFSMaxBufSize over 64K. Fix oops in | ||
287 | cifs_user_read and cifs_readpages (when EAGAIN on send of smb | ||
288 | on socket is returned over and over). Add POSIX (advisory) byte range | ||
289 | locking support (requires server with newest CIFS UNIX Extensions | ||
290 | to the protocol implemented). Slow down negprot slightly in port 139 | ||
291 | RFC1001 case to give session_init time on buggy servers. | ||
292 | |||
293 | Version 1.40 | ||
294 | ------------ | ||
295 | Use fsuid (fsgid) more consistently instead of uid (gid). Improve performance | ||
296 | of readpages by eliminating one extra memcpy. Allow update of file size | ||
297 | from remote server even if file is open for write as long as mount is | ||
298 | directio. Recognize share mode security and send NTLM encrypted password | ||
299 | on tree connect if share mode negotiated. | ||
300 | |||
301 | Version 1.39 | ||
302 | ------------ | ||
303 | Defer close of a file handle slightly if pending writes depend on that handle | ||
304 | (this reduces the EBADF bad file handle errors that can be logged under heavy | ||
305 | stress on writes). Modify cifs Kconfig options to expose CONFIG_CIFS_STATS2 | ||
306 | Fix SFU style symlinks and mknod needed for servers which do not support the | ||
307 | CIFS Unix Extensions. Fix setfacl/getfacl on bigendian. Timeout negative | ||
308 | dentries so files that the client sees as deleted but that later get created | ||
309 | on the server will be recognized. Add client side permission check on setattr. | ||
310 | Timeout stuck requests better (where server has never responded or sent corrupt | ||
311 | responses) | ||
312 | |||
313 | Version 1.38 | ||
314 | ------------ | ||
315 | Fix tcp socket retransmission timeouts (e.g. on ENOSPACE from the socket) | ||
316 | to be smaller at first (but increasing) so large write performance performance | ||
317 | over GigE is better. Do not hang thread on illegal byte range lock response | ||
318 | from Windows (Windows can send an RFC1001 size which does not match smb size) by | ||
319 | allowing an SMBs TCP length to be up to a few bytes longer than it should be. | ||
320 | wsize and rsize can now be larger than negotiated buffer size if server | ||
321 | supports large readx/writex, even when directio mount flag not specified. | ||
322 | Write size will in many cases now be 16K instead of 4K which greatly helps | ||
323 | file copy performance on lightly loaded networks. Fix oops in dnotify | ||
324 | when experimental config flag enabled. Make cifsFYI more granular. | ||
325 | |||
326 | Version 1.37 | ||
327 | ------------ | ||
328 | Fix readdir caching when unlink removes file in current search buffer, | ||
329 | and this is followed by a rewind search to just before the deleted entry. | ||
330 | Do not attempt to set ctime unless atime and/or mtime change requested | ||
331 | (most servers throw it away anyway). Fix length check of received smbs | ||
332 | to be more accurate. Fix big endian problem with mapchars mount option, | ||
333 | and with a field returned by statfs. | ||
334 | |||
335 | Version 1.36 | ||
336 | ------------ | ||
337 | Add support for mounting to older pre-CIFS servers such as Windows9x and ME. | ||
338 | For these older servers, add option for passing netbios name of server in | ||
339 | on mount (servernetbiosname). Add suspend support for power management, to | ||
340 | avoid cifsd thread preventing software suspend from working. | ||
341 | Add mount option for disabling the default behavior of sending byte range lock | ||
342 | requests to the server (necessary for certain applications which break with | ||
343 | mandatory lock behavior such as Evolution), and also mount option for | ||
344 | requesting case insensitive matching for path based requests (requesting | ||
345 | case sensitive is the default). | ||
346 | |||
347 | Version 1.35 | ||
348 | ------------ | ||
349 | Add writepage performance improvements. Fix path name conversions | ||
350 | for long filenames on mounts which were done with "mapchars" mount option | ||
351 | specified. Ensure multiplex ids do not collide. Fix case in which | ||
352 | rmmod can oops if done soon after last unmount. Fix truncated | ||
353 | search (readdir) output when resume filename was a long filename. | ||
354 | Fix filename conversion when mapchars mount option was specified and | ||
355 | filename was a long filename. | ||
356 | |||
357 | Version 1.34 | ||
358 | ------------ | ||
359 | Fix error mapping of the TOO_MANY_LINKS (hardlinks) case. | ||
360 | Do not oops if root user kills cifs oplock kernel thread or | ||
361 | kills the cifsd thread (NB: killing the cifs kernel threads is not | ||
362 | recommended, unmount and rmmod cifs will kill them when they are | ||
363 | no longer needed). Fix readdir to ASCII servers (ie older servers | ||
364 | which do not support Unicode) and also require asterisk. | ||
365 | Fix out of memory case in which data could be written one page | ||
366 | off in the page cache. | ||
367 | |||
368 | Version 1.33 | ||
369 | ------------ | ||
370 | Fix caching problem, in which readdir of directory containing a file | ||
371 | which was cached could cause the file's time stamp to be updated | ||
372 | without invalidating the readahead data (so we could get stale | ||
373 | file data on the client for that file even as the server copy changed). | ||
374 | Cleanup response processing so cifsd can not loop when abnormally | ||
375 | terminated. | ||
376 | |||
377 | |||
378 | Version 1.32 | ||
379 | ------------ | ||
380 | Fix oops in ls when Transact2 FindFirst (or FindNext) returns more than one | ||
381 | transact response for an SMB request and search entry split across two frames. | ||
382 | Add support for lsattr (getting ext2/ext3/reiserfs attr flags from the server) | ||
383 | as new protocol extensions. Do not send Get/Set calls for POSIX ACLs | ||
384 | unless server explicitly claims to support them in CIFS Unix extensions | ||
385 | POSIX ACL capability bit. Fix packet signing when multiuser mounting with | ||
386 | different users from the same client to the same server. Fix oops in | ||
387 | cifs_close. Add mount option for remapping reserved characters in | ||
388 | filenames (also allow recognizing files with created by SFU which have any | ||
389 | of these seven reserved characters, except backslash, to be recognized). | ||
390 | Fix invalid transact2 message (we were sometimes trying to interpret | ||
391 | oplock breaks as SMB responses). Add ioctl for checking that the | ||
392 | current uid matches the uid of the mounter (needed by umount.cifs). | ||
393 | Reduce the number of large buffer allocations in cifs response processing | ||
394 | (significantly reduces memory pressure under heavy stress with multiple | ||
395 | processes accessing the same server at the same time). | ||
396 | |||
397 | Version 1.31 | ||
398 | ------------ | ||
399 | Fix updates of DOS attributes and time fields so that files on NT4 servers | ||
400 | do not get marked delete on close. Display sizes of cifs buffer pools in | ||
401 | cifs stats. Fix oops in unmount when cifsd thread being killed by | ||
402 | shutdown. Add generic readv/writev and aio support. Report inode numbers | ||
403 | consistently in readdir and lookup (when serverino mount option is | ||
404 | specified use the inode number that the server reports - for both lookup | ||
405 | and readdir, otherwise by default the locally generated inode number is used | ||
406 | for inodes created in either path since servers are not always able to | ||
407 | provide unique inode numbers when exporting multiple volumes from under one | ||
408 | sharename). | ||
409 | |||
410 | Version 1.30 | ||
411 | ------------ | ||
412 | Allow new nouser_xattr mount parm to disable xattr support for user namespace. | ||
413 | Do not flag user_xattr mount parm in dmesg. Retry failures setting file time | ||
414 | (mostly affects NT4 servers) by retry with handle based network operation. | ||
415 | Add new POSIX Query FS Info for returning statfs info more accurately. | ||
416 | Handle passwords with multiple commas in them. | ||
417 | |||
418 | Version 1.29 | ||
419 | ------------ | ||
420 | Fix default mode in sysfs of cifs module parms. Remove old readdir routine. | ||
421 | Fix capabilities flags for large readx so as to allow reads larger than 64K. | ||
422 | |||
423 | Version 1.28 | ||
424 | ------------ | ||
425 | Add module init parm for large SMB buffer size (to allow it to be changed | ||
426 | from its default of 16K) which is especially useful for large file copy | ||
427 | when mounting with the directio mount option. Fix oops after | ||
428 | returning from mount when experimental ExtendedSecurity enabled and | ||
429 | SpnegoNegotiated returning invalid error. Fix case to retry better when | ||
430 | peek returns from 1 to 3 bytes on socket which should have more data. | ||
431 | Fixed path based calls (such as cifs lookup) to handle path names | ||
432 | longer than 530 (now can handle PATH_MAX). Fix pass through authentication | ||
433 | from Samba server to DC (Samba required dummy LM password). | ||
434 | |||
435 | Version 1.27 | ||
436 | ------------ | ||
437 | Turn off DNOTIFY (directory change notification support) by default | ||
438 | (unless built with the experimental flag) to fix hang with KDE | ||
439 | file browser. Fix DNOTIFY flag mappings. Fix hang (in wait_event | ||
440 | waiting on an SMB response) in SendReceive when session dies but | ||
441 | reconnects quickly from another task. Add module init parms for | ||
442 | minimum number of large and small network buffers in the buffer pools, | ||
443 | and for the maximum number of simultaneous requests. | ||
444 | |||
445 | Version 1.26 | ||
446 | ------------ | ||
447 | Add setfacl support to allow setting of ACLs remotely to Samba 3.10 and later | ||
448 | and other POSIX CIFS compliant servers. Fix error mapping for getfacl | ||
449 | to EOPNOTSUPP when server does not support posix acls on the wire. Fix | ||
450 | improperly zeroed buffer in CIFS Unix extensions set times call. | ||
451 | |||
452 | Version 1.25 | ||
453 | ------------ | ||
454 | Fix internationalization problem in cifs readdir with filenames that map to | ||
455 | longer UTF-8 strings than the string on the wire was in Unicode. Add workaround | ||
456 | for readdir to netapp servers. Fix search rewind (seek into readdir to return | ||
457 | non-consecutive entries). Do not do readdir when server negotiates | ||
458 | buffer size to small to fit filename. Add support for reading POSIX ACLs from | ||
459 | the server (add also acl and noacl mount options). | ||
460 | |||
461 | Version 1.24 | ||
462 | ------------ | ||
463 | Optionally allow using server side inode numbers, rather than client generated | ||
464 | ones by specifying mount option "serverino" - this is required for some apps | ||
465 | to work which double check hardlinked files and have persistent inode numbers. | ||
466 | |||
467 | Version 1.23 | ||
468 | ------------ | ||
469 | Multiple bigendian fixes. On little endian systems (for reconnect after | ||
470 | network failure) fix tcp session reconnect code so we do not try first | ||
471 | to reconnect on reverse of port 445. Treat reparse points (NTFS junctions) | ||
472 | as directories rather than symlinks because we can do follow link on them. | ||
473 | |||
474 | Version 1.22 | ||
475 | ------------ | ||
476 | Add config option to enable XATTR (extended attribute) support, mapping | ||
477 | xattr names in the "user." namespace space to SMB/CIFS EAs. Lots of | ||
478 | minor fixes pointed out by the Stanford SWAT checker (mostly missing | ||
479 | or out of order NULL pointer checks in little used error paths). | ||
480 | |||
481 | Version 1.21 | ||
482 | ------------ | ||
483 | Add new mount parm to control whether mode check (generic_permission) is done | ||
484 | on the client. If Unix extensions are enabled and the uids on the client | ||
485 | and server do not match, client permission checks are meaningless on | ||
486 | server uids that do not exist on the client (this does not affect the | ||
487 | normal ACL check which occurs on the server). Fix default uid | ||
488 | on mknod to match create and mkdir. Add optional mount parm to allow | ||
489 | override of the default uid behavior (in which the server sets the uid | ||
490 | and gid of newly created files). Normally for network filesystem mounts | ||
491 | user want the server to set the uid/gid on newly created files (rather than | ||
492 | using uid of the client processes you would in a local filesystem). | ||
493 | |||
494 | Version 1.20 | ||
495 | ------------ | ||
496 | Make transaction counts more consistent. Merge /proc/fs/cifs/SimultaneousOps | ||
497 | info into /proc/fs/cifs/DebugData. Fix oops in rare oops in readdir | ||
498 | (in build_wildcard_path_from_dentry). Fix mknod to pass type field | ||
499 | (block/char/fifo) properly. Remove spurious mount warning log entry when | ||
500 | credentials passed as mount argument. Set major/minor device number in | ||
501 | inode for block and char devices when unix extensions enabled. | ||
502 | |||
503 | Version 1.19 | ||
504 | ------------ | ||
505 | Fix /proc/fs/cifs/Stats and DebugData display to handle larger | ||
506 | amounts of return data. Properly limit requests to MAX_REQ (50 | ||
507 | is the usual maximum active multiplex SMB/CIFS requests per server). | ||
508 | Do not kill cifsd (and thus hurt the other SMB session) when more than one | ||
509 | session to the same server (but with different userids) exists and one | ||
510 | of the two user's smb sessions is being removed while leaving the other. | ||
511 | Do not loop reconnecting in cifsd demultiplex thread when admin | ||
512 | kills the thread without going through unmount. | ||
513 | |||
514 | Version 1.18 | ||
515 | ------------ | ||
516 | Do not rename hardlinked files (since that should be a noop). Flush | ||
517 | cached write behind data when reopening a file after session abend, | ||
518 | except when already in write. Grab per socket sem during reconnect | ||
519 | to avoid oops in sendmsg if overlapping with reconnect. Do not | ||
520 | reset cached inode file size on readdir for files open for write on | ||
521 | client. | ||
522 | |||
523 | |||
524 | Version 1.17 | ||
525 | ------------ | ||
526 | Update number of blocks in file so du command is happier (in Linux a fake | ||
527 | blocksize of 512 is required for calculating number of blocks in inode). | ||
528 | Fix prepare write of partial pages to read in data from server if possible. | ||
529 | Fix race on tcpStatus field between unmount and reconnection code, causing | ||
530 | cifsd process sometimes to hang around forever. Improve out of memory | ||
531 | checks in cifs_filldir | ||
532 | |||
533 | Version 1.16 | ||
534 | ------------ | ||
535 | Fix incorrect file size in file handle based setattr on big endian hardware. | ||
536 | Fix oops in build_path_from_dentry when out of memory. Add checks for invalid | ||
537 | and closing file structs in writepage/partialpagewrite. Add statistics | ||
538 | for each mounted share (new menuconfig option). Fix endianness problem in | ||
539 | volume information displayed in /proc/fs/cifs/DebugData (only affects | ||
540 | affects big endian architectures). Prevent renames while constructing | ||
541 | path names for open, mkdir and rmdir. | ||
542 | |||
543 | Version 1.15 | ||
544 | ------------ | ||
545 | Change to mempools for alloc smb request buffers and multiplex structs | ||
546 | to better handle low memory problems (and potential deadlocks). | ||
547 | |||
548 | Version 1.14 | ||
549 | ------------ | ||
550 | Fix incomplete listings of large directories on Samba servers when Unix | ||
551 | extensions enabled. Fix oops when smb_buffer can not be allocated. Fix | ||
552 | rename deadlock when writing out dirty pages at same time. | ||
553 | |||
554 | Version 1.13 | ||
555 | ------------ | ||
556 | Fix open of files in which O_CREATE can cause the mode to change in | ||
557 | some cases. Fix case in which retry of write overlaps file close. | ||
558 | Fix PPC64 build error. Reduce excessive stack usage in smb password | ||
559 | hashing. Fix overwrite of Linux user's view of file mode to Windows servers. | ||
560 | |||
561 | Version 1.12 | ||
562 | ------------ | ||
563 | Fixes for large file copy, signal handling, socket retry, buffer | ||
564 | allocation and low memory situations. | ||
565 | |||
566 | Version 1.11 | ||
567 | ------------ | ||
568 | Better port 139 support to Windows servers (RFC1001/RFC1002 Session_Initialize) | ||
569 | also now allowing support for specifying client netbiosname. NT4 support added. | ||
570 | |||
571 | Version 1.10 | ||
572 | ------------ | ||
573 | Fix reconnection (and certain failed mounts) to properly wake up the | ||
574 | blocked users thread so it does not seem hung (in some cases was blocked | ||
575 | until the cifs receive timeout expired). Fix spurious error logging | ||
576 | to kernel log when application with open network files killed. | ||
577 | |||
578 | Version 1.09 | ||
579 | ------------ | ||
580 | Fix /proc/fs module unload warning message (that could be logged | ||
581 | to the kernel log). Fix intermittent failure in connectathon | ||
582 | test7 (hardlink count not immediately refreshed in case in which | ||
583 | inode metadata can be incorrectly kept cached when time near zero) | ||
584 | |||
585 | Version 1.08 | ||
586 | ------------ | ||
587 | Allow file_mode and dir_mode (specified at mount time) to be enforced | ||
588 | locally (the server already enforced its own ACLs too) for servers | ||
589 | that do not report the correct mode (do not support the | ||
590 | CIFS Unix Extensions). | ||
591 | |||
592 | Version 1.07 | ||
593 | ------------ | ||
594 | Fix some small memory leaks in some unmount error paths. Fix major leak | ||
595 | of cache pages in readpages causing multiple read oriented stress | ||
596 | testcases (including fsx, and even large file copy) to fail over time. | ||
597 | |||
598 | Version 1.06 | ||
599 | ------------ | ||
600 | Send NTCreateX with ATTR_POSIX if Linux/Unix extensions negotiated with server. | ||
601 | This allows files that differ only in case and improves performance of file | ||
602 | creation and file open to such servers. Fix semaphore conflict which causes | ||
603 | slow delete of open file to Samba (which unfortunately can cause an oplock | ||
604 | break to self while vfs_unlink held i_sem) which can hang for 20 seconds. | ||
605 | |||
606 | Version 1.05 | ||
607 | ------------ | ||
608 | fixes to cifs_readpages for fsx test case | ||
609 | |||
610 | Version 1.04 | ||
611 | ------------ | ||
612 | Fix caching data integrity bug when extending file size especially when no | ||
613 | oplock on file. Fix spurious logging of valid already parsed mount options | ||
614 | that are parsed outside of the cifs vfs such as nosuid. | ||
615 | |||
616 | |||
617 | Version 1.03 | ||
618 | ------------ | ||
619 | Connect to server when port number override not specified, and tcp port | ||
620 | unitialized. Reset search to restart at correct file when kernel routine | ||
621 | filldir returns error during large directory searches (readdir). | ||
622 | |||
623 | Version 1.02 | ||
624 | ------------ | ||
625 | Fix caching problem when files opened by multiple clients in which | ||
626 | page cache could contain stale data, and write through did | ||
627 | not occur often enough while file was still open when read ahead | ||
628 | (read oplock) not allowed. Treat "sep=" when first mount option | ||
629 | as an override of comma as the default separator between mount | ||
630 | options. | ||
631 | |||
632 | Version 1.01 | ||
633 | ------------ | ||
634 | Allow passwords longer than 16 bytes. Allow null password string. | ||
635 | |||
636 | Version 1.00 | ||
637 | ------------ | ||
638 | Gracefully clean up failed mounts when attempting to mount to servers such as | ||
639 | Windows 98 that terminate tcp sessions during protocol negotiation. Handle | ||
640 | embedded commas in mount parsing of passwords. | ||
641 | |||
642 | Version 0.99 | ||
643 | ------------ | ||
644 | Invalidate local inode cached pages on oplock break and when last file | ||
645 | instance is closed so that the client does not continue using stale local | ||
646 | copy rather than later modified server copy of file. Do not reconnect | ||
647 | when server drops the tcp session prematurely before negotiate | ||
648 | protocol response. Fix oops in reopen_file when dentry freed. Allow | ||
649 | the support for CIFS Unix Extensions to be disabled via proc interface. | ||
650 | |||
651 | Version 0.98 | ||
652 | ------------ | ||
653 | Fix hang in commit_write during reconnection of open files under heavy load. | ||
654 | Fix unload_nls oops in a mount failure path. Serialize writes to same socket | ||
655 | which also fixes any possible races when cifs signatures are enabled in SMBs | ||
656 | being sent out of signature sequence number order. | ||
657 | |||
658 | Version 0.97 | ||
659 | ------------ | ||
660 | Fix byte range locking bug (endian problem) causing bad offset and | ||
661 | length. | ||
662 | |||
663 | Version 0.96 | ||
664 | ------------ | ||
665 | Fix oops (in send_sig) caused by CIFS unmount code trying to | ||
666 | wake up the demultiplex thread after it had exited. Do not log | ||
667 | error on harmless oplock release of closed handle. | ||
668 | |||
669 | Version 0.95 | ||
670 | ------------ | ||
671 | Fix unsafe global variable usage and password hash failure on gcc 3.3.1 | ||
672 | Fix problem reconnecting secondary mounts to same server after session | ||
673 | failure. Fix invalid dentry - race in mkdir when directory gets created | ||
674 | by another client between the lookup and mkdir. | ||
675 | |||
676 | Version 0.94 | ||
677 | ------------ | ||
678 | Fix to list processing in reopen_files. Fix reconnection when server hung | ||
679 | but tcpip session still alive. Set proper timeout on socket read. | ||
680 | |||
681 | Version 0.93 | ||
682 | ------------ | ||
683 | Add missing mount options including iocharset. SMP fixes in write and open. | ||
684 | Fix errors in reconnecting after TCP session failure. Fix module unloading | ||
685 | of default nls codepage | ||
686 | |||
687 | Version 0.92 | ||
688 | ------------ | ||
689 | Active smb transactions should never go negative (fix double FreeXid). Fix | ||
690 | list processing in file routines. Check return code on kmalloc in open. | ||
691 | Fix spinlock usage for SMP. | ||
692 | |||
693 | Version 0.91 | ||
694 | ------------ | ||
695 | Fix oops in reopen_files when invalid dentry. drop dentry on server rename | ||
696 | and on revalidate errors. Fix cases where pid is now tgid. Fix return code | ||
697 | on create hard link when server does not support them. | ||
698 | |||
699 | Version 0.90 | ||
700 | ------------ | ||
701 | Fix scheduling while atomic error in getting inode info on newly created file. | ||
702 | Fix truncate of existing files opened with O_CREAT but not O_TRUNC set. | ||
703 | |||
704 | Version 0.89 | ||
705 | ------------ | ||
706 | Fix oops on write to dead tcp session. Remove error log write for case when file open | ||
707 | O_CREAT but not O_EXCL | ||
708 | |||
709 | Version 0.88 | ||
710 | ------------ | ||
711 | Fix non-POSIX behavior on rename of open file and delete of open file by taking | ||
712 | advantage of trans2 SetFileInfo rename facility if available on target server. | ||
713 | Retry on ENOSPC and EAGAIN socket errors. | ||
714 | |||
715 | Version 0.87 | ||
716 | ------------ | ||
717 | Fix oops on big endian readdir. Set blksize to be even power of two (2**blkbits) to fix | ||
718 | allocation size miscalculation. After oplock token lost do not read through | ||
719 | cache. | ||
720 | |||
721 | Version 0.86 | ||
722 | ------------ | ||
723 | Fix oops on empty file readahead. Fix for file size handling for locally cached files. | ||
724 | |||
725 | Version 0.85 | ||
726 | ------------ | ||
727 | Fix oops in mkdir when server fails to return inode info. Fix oops in reopen_files | ||
728 | during auto reconnection to server after server recovered from failure. | ||
729 | |||
730 | Version 0.84 | ||
731 | ------------ | ||
732 | Finish support for Linux 2.5 open/create changes, which removes the | ||
733 | redundant NTCreate/QPathInfo/close that was sent during file create. | ||
734 | Enable oplock by default. Enable packet signing by default (needed to | ||
735 | access many recent Windows servers) | ||
736 | |||
737 | Version 0.83 | ||
738 | ------------ | ||
739 | Fix oops when mounting to long server names caused by inverted parms to kmalloc. | ||
740 | Fix MultiuserMount (/proc/fs/cifs configuration setting) so that when enabled | ||
741 | we will choose a cifs user session (smb uid) that better matches the local | ||
742 | uid if a) the mount uid does not match the current uid and b) we have another | ||
743 | session to the same server (ip address) for a different mount which | ||
744 | matches the current local uid. | ||
745 | |||
746 | Version 0.82 | ||
747 | ------------ | ||
748 | Add support for mknod of block or character devices. Fix oplock | ||
749 | code (distributed caching) to properly send response to oplock | ||
750 | break from server. | ||
751 | |||
752 | Version 0.81 | ||
753 | ------------ | ||
754 | Finish up CIFS packet digital signing for the default | ||
755 | NTLM security case. This should help Windows 2003 | ||
756 | network interoperability since it is common for | ||
757 | packet signing to be required now. Fix statfs (stat -f) | ||
758 | which recently started returning errors due to | ||
759 | invalid value (-1 instead of 0) being set in the | ||
760 | struct kstatfs f_ffiles field. | ||
761 | |||
762 | Version 0.80 | ||
763 | ----------- | ||
764 | Fix oops on stopping oplock thread when removing cifs when | ||
765 | built as module. | ||
766 | |||
767 | Version 0.79 | ||
768 | ------------ | ||
769 | Fix mount options for ro (readonly), uid, gid and file and directory mode. | ||
770 | |||
771 | Version 0.78 | ||
772 | ------------ | ||
773 | Fix errors displayed on failed mounts to be more understandable. | ||
774 | Fixed various incorrect or misleading smb to posix error code mappings. | ||
775 | |||
776 | Version 0.77 | ||
777 | ------------ | ||
778 | Fix display of NTFS DFS junctions to display as symlinks. | ||
779 | They are the network equivalent. Fix oops in | ||
780 | cifs_partialpagewrite caused by missing spinlock protection | ||
781 | of openfile linked list. Allow writebehind caching errors to | ||
782 | be returned to the application at file close. | ||
783 | |||
784 | Version 0.76 | ||
785 | ------------ | ||
786 | Clean up options displayed in /proc/mounts by show_options to | ||
787 | be more consistent with other filesystems. | ||
788 | |||
789 | Version 0.75 | ||
790 | ------------ | ||
791 | Fix delete of readonly file to Windows servers. Reflect | ||
792 | presence or absence of read only dos attribute in mode | ||
793 | bits for servers that do not support CIFS Unix extensions. | ||
794 | Fix shortened results on readdir of large directories to | ||
795 | servers supporting CIFS Unix extensions (caused by | ||
796 | incorrect resume key). | ||
797 | |||
798 | Version 0.74 | ||
799 | ------------ | ||
800 | Fix truncate bug (set file size) that could cause hangs e.g. running fsx | ||
801 | |||
802 | Version 0.73 | ||
803 | ------------ | ||
804 | unload nls if mount fails. | ||
805 | |||
806 | Version 0.72 | ||
807 | ------------ | ||
808 | Add resume key support to search (readdir) code to workaround | ||
809 | Windows bug. Add /proc/fs/cifs/LookupCacheEnable which | ||
810 | allows disabling caching of attribute information for | ||
811 | lookups. | ||
812 | |||
813 | Version 0.71 | ||
814 | ------------ | ||
815 | Add more oplock handling (distributed caching code). Remove | ||
816 | dead code. Remove excessive stack space utilization from | ||
817 | symlink routines. | ||
818 | |||
819 | Version 0.70 | ||
820 | ------------ | ||
821 | Fix oops in get dfs referral (triggered when null path sent in to | ||
822 | mount). Add support for overriding rsize at mount time. | ||
823 | |||
824 | Version 0.69 | ||
825 | ------------ | ||
826 | Fix buffer overrun in readdir which caused intermittent kernel oopses. | ||
827 | Fix writepage code to release kmap on write data. Allow "-ip=" new | ||
828 | mount option to be passed in on parameter distinct from the first part | ||
829 | (server name portion of) the UNC name. Allow override of the | ||
830 | tcp port of the target server via new mount option "-port=" | ||
831 | |||
832 | Version 0.68 | ||
833 | ------------ | ||
834 | Fix search handle leak on rewind. Fix setuid and gid so that they are | ||
835 | reflected in the local inode immediately. Cleanup of whitespace | ||
836 | to make 2.4 and 2.5 versions more consistent. | ||
837 | |||
838 | |||
839 | Version 0.67 | ||
840 | ------------ | ||
841 | Fix signal sending so that captive thread (cifsd) exits on umount | ||
842 | (which was causing the warning in kmem_cache_free of the request buffers | ||
843 | at rmmod time). This had broken as a sideeffect of the recent global | ||
844 | kernel change to daemonize. Fix memory leak in readdir code which | ||
845 | showed up in "ls -R" (and applications that did search rewinding). | ||
846 | |||
847 | Version 0.66 | ||
848 | ------------ | ||
849 | Reconnect tids and fids after session reconnection (still do not | ||
850 | reconnect byte range locks though). Fix problem caching | ||
851 | lookup information for directory inodes, improving performance, | ||
852 | especially in deep directory trees. Fix various build warnings. | ||
853 | |||
854 | Version 0.65 | ||
855 | ------------ | ||
856 | Finish fixes to commit write for caching/readahead consistency. fsx | ||
857 | now works to Samba servers. Fix oops caused when readahead | ||
858 | was interrupted by a signal. | ||
859 | |||
860 | Version 0.64 | ||
861 | ------------ | ||
862 | Fix data corruption (in partial page after truncate) that caused fsx to | ||
863 | fail to Windows servers. Cleaned up some extraneous error logging in | ||
864 | common error paths. Add generic sendfile support. | ||
865 | |||
866 | Version 0.63 | ||
867 | ------------ | ||
868 | Fix memory leak in AllocMidQEntry. | ||
869 | Finish reconnection logic, so connection with server can be dropped | ||
870 | (or server rebooted) and the cifs client will reconnect. | ||
871 | |||
872 | Version 0.62 | ||
873 | ------------ | ||
874 | Fix temporary socket leak when bad userid or password specified | ||
875 | (or other SMBSessSetup failure). Increase maximum buffer size to slightly | ||
876 | over 16K to allow negotiation of up to Samba and Windows server default read | ||
877 | sizes. Add support for readpages | ||
878 | |||
879 | Version 0.61 | ||
880 | ------------ | ||
881 | Fix oops when username not passed in on mount. Extensive fixes and improvements | ||
882 | to error logging (strip redundant newlines, change debug macros to ensure newline | ||
883 | passed in and to be more consistent). Fix writepage wrong file handle problem, | ||
884 | a readonly file handle could be incorrectly used to attempt to write out | ||
885 | file updates through the page cache to multiply open files. This could cause | ||
886 | the iozone benchmark to fail on the fwrite test. Fix bug mounting two different | ||
887 | shares to the same Windows server when using different usernames | ||
888 | (doing this to Samba servers worked but Windows was rejecting it) - now it is | ||
889 | possible to use different userids when connecting to the same server from a | ||
890 | Linux client. Fix oops when treeDisconnect called during unmount on | ||
891 | previously freed socket. | ||
892 | |||
893 | Version 0.60 | ||
894 | ------------ | ||
895 | Fix oops in readpages caused by not setting address space operations in inode in | ||
896 | rare code path. | ||
897 | |||
898 | Version 0.59 | ||
899 | ------------ | ||
900 | Includes support for deleting of open files and renaming over existing files (per POSIX | ||
901 | requirement). Add readlink support for Windows junction points (directory symlinks). | ||
902 | |||
903 | Version 0.58 | ||
904 | ------------ | ||
905 | Changed read and write to go through pagecache. Added additional address space operations. | ||
906 | Memory mapped operations now working. | ||
907 | |||
908 | Version 0.57 | ||
909 | ------------ | ||
910 | Added writepage code for additional memory mapping support. Fixed leak in xids causing | ||
911 | the simultaneous operations counter (/proc/fs/cifs/SimultaneousOps) to increase on | ||
912 | every stat call. Additional formatting cleanup. | ||
913 | |||
914 | Version 0.56 | ||
915 | ------------ | ||
916 | Fix bigendian bug in order of time conversion. Merge 2.5 to 2.4 version. Formatting cleanup. | ||
917 | |||
918 | Version 0.55 | ||
919 | ------------ | ||
920 | Fixes from Zwane Mwaikambo for adding missing return code checking in a few places. | ||
921 | Also included a modified version of his fix to protect global list manipulation of | ||
922 | the smb session and tree connection and mid related global variables. | ||
923 | |||
924 | Version 0.54 | ||
925 | ------------ | ||
926 | Fix problem with captive thread hanging around at unmount time. Adjust to 2.5.42-pre | ||
927 | changes to superblock layout. Remove wasteful allocation of smb buffers (now the send | ||
928 | buffer is reused for responses). Add more oplock handling. Additional minor cleanup. | ||
929 | |||
930 | Version 0.53 | ||
931 | ------------ | ||
932 | More stylistic updates to better match kernel style. Add additional statistics | ||
933 | for filesystem which can be viewed via /proc/fs/cifs. Add more pieces of NTLMv2 | ||
934 | and CIFS Packet Signing enablement. | ||
935 | |||
936 | Version 0.52 | ||
937 | ------------ | ||
938 | Replace call to sleep_on with safer wait_on_event. | ||
939 | Make stylistic changes to better match kernel style recommendations. | ||
940 | Remove most typedef usage (except for the PDUs themselves). | ||
941 | |||
942 | Version 0.51 | ||
943 | ------------ | ||
944 | Update mount so the -unc mount option is no longer required (the ip address can be specified | ||
945 | in a UNC style device name. Implementation of readpage/writepage started. | ||
946 | |||
947 | Version 0.50 | ||
948 | ------------ | ||
949 | Fix intermittent problem with incorrect smb header checking on badly | ||
950 | fragmented tcp responses | ||
951 | |||
952 | Version 0.49 | ||
953 | ------------ | ||
954 | Fixes to setting of allocation size and file size. | ||
955 | |||
956 | Version 0.48 | ||
957 | ------------ | ||
958 | Various 2.5.38 fixes. Now works on 2.5.38 | ||
959 | |||
960 | Version 0.47 | ||
961 | ------------ | ||
962 | Prepare for 2.5 kernel merge. Remove ifdefs. | ||
963 | |||
964 | Version 0.46 | ||
965 | ------------ | ||
966 | Socket buffer management fixes. Fix dual free. | ||
967 | |||
968 | Version 0.45 | ||
969 | ------------ | ||
970 | Various big endian fixes for hardlinks and symlinks and also for dfs. | ||
971 | |||
972 | Version 0.44 | ||
973 | ------------ | ||
974 | Various big endian fixes for servers with Unix extensions such as Samba | ||
975 | |||
976 | Version 0.43 | ||
977 | ------------ | ||
978 | Various FindNext fixes for incorrect filenames on large directory searches on big endian | ||
979 | clients. basic posix file i/o tests now work on big endian machines, not just le | ||
980 | |||
981 | Version 0.42 | ||
982 | ------------ | ||
983 | SessionSetup and NegotiateProtocol now work from Big Endian machines. | ||
984 | Various Big Endian fixes found during testing on the Linux on 390. Various fixes for compatibility with older | ||
985 | versions of 2.4 kernel (now builds and works again on kernels at least as early as 2.4.7). | ||
986 | |||
987 | Version 0.41 | ||
988 | ------------ | ||
989 | Various minor fixes for Connectathon Posix "basic" file i/o test suite. Directory caching fixed so hardlinked | ||
990 | files now return the correct number of links on fstat as they are repeatedly linked and unlinked. | ||
991 | |||
992 | Version 0.40 | ||
993 | ------------ | ||
994 | Implemented "Raw" (i.e. not encapsulated in SPNEGO) NTLMSSP (i.e. the Security Provider Interface used to negotiate | ||
995 | session advanced session authentication). Raw NTLMSSP is preferred by Windows 2000 Professional and Windows XP. | ||
996 | Began implementing support for SPNEGO encapsulation of NTLMSSP based session authentication blobs | ||
997 | (which is the mechanism preferred by Windows 2000 server in the absence of Kerberos). | ||
998 | |||
999 | Version 0.38 | ||
1000 | ------------ | ||
1001 | Introduced optional mount helper utility mount.cifs and made coreq changes to cifs vfs to enable | ||
1002 | it. Fixed a few bugs in the DFS code (e.g. bcc two bytes too short and incorrect uid in PDU). | ||
1003 | |||
1004 | Version 0.37 | ||
1005 | ------------ | ||
1006 | Rewrote much of connection and mount/unmount logic to handle bugs with | ||
1007 | multiple uses to same share, multiple users to same server etc. | ||
1008 | |||
1009 | Version 0.36 | ||
1010 | ------------ | ||
1011 | Fixed major problem with dentry corruption (missing call to dput) | ||
1012 | |||
1013 | Version 0.35 | ||
1014 | ------------ | ||
1015 | Rewrite of readdir code to fix bug. Various fixes for bigendian machines. | ||
1016 | Begin adding oplock support. Multiusermount and oplockEnabled flags added to /proc/fs/cifs | ||
1017 | although corresponding function not fully implemented in the vfs yet | ||
1018 | |||
1019 | Version 0.34 | ||
1020 | ------------ | ||
1021 | Fixed dentry caching bug, misc. cleanup | ||
1022 | |||
1023 | Version 0.33 | ||
1024 | ------------ | ||
1025 | Fixed 2.5 support to handle build and configure changes as well as misc. 2.5 changes. Now can build | ||
1026 | on current 2.5 beta version (2.5.24) of the Linux kernel as well as on 2.4 Linux kernels. | ||
1027 | Support for STATUS codes (newer 32 bit NT error codes) added. DFS support begun to be added. | ||
1028 | |||
1029 | Version 0.32 | ||
1030 | ------------ | ||
1031 | Unix extensions (symlink, readlink, hardlink, chmod and some chgrp and chown) implemented | ||
1032 | and tested against Samba 2.2.5 | ||
1033 | |||
1034 | |||
1035 | Version 0.31 | ||
1036 | ------------ | ||
1037 | 1) Fixed lockrange to be correct (it was one byte too short) | ||
1038 | |||
1039 | 2) Fixed GETLK (i.e. the fcntl call to test a range of bytes in a file to see if locked) to correctly | ||
1040 | show range as locked when there is a conflict with an existing lock. | ||
1041 | |||
1042 | 3) default file perms are now 2767 (indicating support for mandatory locks) instead of 777 for directories | ||
1043 | in most cases. Eventually will offer optional ability to query server for the correct perms. | ||
1044 | |||
1045 | 3) Fixed eventual trap when mounting twice to different shares on the same server when the first succeeded | ||
1046 | but the second one was invalid and failed (the second one was incorrectly disconnecting the tcp and smb | ||
1047 | session) | ||
1048 | |||
1049 | 4) Fixed error logging of valid mount options | ||
1050 | |||
1051 | 5) Removed logging of password field. | ||
1052 | |||
1053 | 6) Moved negotiate, treeDisconnect and uloggoffX (only tConx and SessSetup remain in connect.c) to cifssmb.c | ||
1054 | and cleaned them up and made them more consistent with other cifs functions. | ||
1055 | |||
1056 | 7) Server support for Unix extensions is now fully detected and FindFirst is implemented both ways | ||
1057 | (with or without Unix extensions) but FindNext and QueryPathInfo with the Unix extensions are not completed, | ||
1058 | nor is the symlink support using the Unix extensions | ||
1059 | |||
1060 | 8) Started adding the readlink and follow_link code | ||
1061 | |||
1062 | Version 0.3 | ||
1063 | ----------- | ||
1064 | Initial drop | ||
1065 | |||
diff --git a/Documentation/filesystems/cifs/README b/Documentation/filesystems/cifs/README new file mode 100644 index 000000000000..2d5622f60e11 --- /dev/null +++ b/Documentation/filesystems/cifs/README | |||
@@ -0,0 +1,753 @@ | |||
1 | The CIFS VFS support for Linux supports many advanced network filesystem | ||
2 | features such as hierarchical dfs like namespace, hardlinks, locking and more. | ||
3 | It was designed to comply with the SNIA CIFS Technical Reference (which | ||
4 | supersedes the 1992 X/Open SMB Standard) as well as to perform best practice | ||
5 | practical interoperability with Windows 2000, Windows XP, Samba and equivalent | ||
6 | servers. This code was developed in participation with the Protocol Freedom | ||
7 | Information Foundation. | ||
8 | |||
9 | Please see | ||
10 | http://protocolfreedom.org/ and | ||
11 | http://samba.org/samba/PFIF/ | ||
12 | for more details. | ||
13 | |||
14 | |||
15 | For questions or bug reports please contact: | ||
16 | sfrench@samba.org (sfrench@us.ibm.com) | ||
17 | |||
18 | Build instructions: | ||
19 | ================== | ||
20 | For Linux 2.4: | ||
21 | 1) Get the kernel source (e.g.from http://www.kernel.org) | ||
22 | and download the cifs vfs source (see the project page | ||
23 | at http://us1.samba.org/samba/Linux_CIFS_client.html) | ||
24 | and change directory into the top of the kernel directory | ||
25 | then patch the kernel (e.g. "patch -p1 < cifs_24.patch") | ||
26 | to add the cifs vfs to your kernel configure options if | ||
27 | it has not already been added (e.g. current SuSE and UL | ||
28 | users do not need to apply the cifs_24.patch since the cifs vfs is | ||
29 | already in the kernel configure menu) and then | ||
30 | mkdir linux/fs/cifs and then copy the current cifs vfs files from | ||
31 | the cifs download to your kernel build directory e.g. | ||
32 | |||
33 | cp <cifs_download_dir>/fs/cifs/* to <kernel_download_dir>/fs/cifs | ||
34 | |||
35 | 2) make menuconfig (or make xconfig) | ||
36 | 3) select cifs from within the network filesystem choices | ||
37 | 4) save and exit | ||
38 | 5) make dep | ||
39 | 6) make modules (or "make" if CIFS VFS not to be built as a module) | ||
40 | |||
41 | For Linux 2.6: | ||
42 | 1) Download the kernel (e.g. from http://www.kernel.org) | ||
43 | and change directory into the top of the kernel directory tree | ||
44 | (e.g. /usr/src/linux-2.5.73) | ||
45 | 2) make menuconfig (or make xconfig) | ||
46 | 3) select cifs from within the network filesystem choices | ||
47 | 4) save and exit | ||
48 | 5) make | ||
49 | |||
50 | |||
51 | Installation instructions: | ||
52 | ========================= | ||
53 | If you have built the CIFS vfs as module (successfully) simply | ||
54 | type "make modules_install" (or if you prefer, manually copy the file to | ||
55 | the modules directory e.g. /lib/modules/2.4.10-4GB/kernel/fs/cifs/cifs.o). | ||
56 | |||
57 | If you have built the CIFS vfs into the kernel itself, follow the instructions | ||
58 | for your distribution on how to install a new kernel (usually you | ||
59 | would simply type "make install"). | ||
60 | |||
61 | If you do not have the utility mount.cifs (in the Samba 3.0 source tree and on | ||
62 | the CIFS VFS web site) copy it to the same directory in which mount.smbfs and | ||
63 | similar files reside (usually /sbin). Although the helper software is not | ||
64 | required, mount.cifs is recommended. Eventually the Samba 3.0 utility program | ||
65 | "net" may also be helpful since it may someday provide easier mount syntax for | ||
66 | users who are used to Windows e.g. | ||
67 | net use <mount point> <UNC name or cifs URL> | ||
68 | Note that running the Winbind pam/nss module (logon service) on all of your | ||
69 | Linux clients is useful in mapping Uids and Gids consistently across the | ||
70 | domain to the proper network user. The mount.cifs mount helper can be | ||
71 | trivially built from Samba 3.0 or later source e.g. by executing: | ||
72 | |||
73 | gcc samba/source/client/mount.cifs.c -o mount.cifs | ||
74 | |||
75 | If cifs is built as a module, then the size and number of network buffers | ||
76 | and maximum number of simultaneous requests to one server can be configured. | ||
77 | Changing these from their defaults is not recommended. By executing modinfo | ||
78 | modinfo kernel/fs/cifs/cifs.ko | ||
79 | on kernel/fs/cifs/cifs.ko the list of configuration changes that can be made | ||
80 | at module initialization time (by running insmod cifs.ko) can be seen. | ||
81 | |||
82 | Allowing User Mounts | ||
83 | ==================== | ||
84 | To permit users to mount and unmount over directories they own is possible | ||
85 | with the cifs vfs. A way to enable such mounting is to mark the mount.cifs | ||
86 | utility as suid (e.g. "chmod +s /sbin/mount.cifs). To enable users to | ||
87 | umount shares they mount requires | ||
88 | 1) mount.cifs version 1.4 or later | ||
89 | 2) an entry for the share in /etc/fstab indicating that a user may | ||
90 | unmount it e.g. | ||
91 | //server/usersharename /mnt/username cifs user 0 0 | ||
92 | |||
93 | Note that when the mount.cifs utility is run suid (allowing user mounts), | ||
94 | in order to reduce risks, the "nosuid" mount flag is passed in on mount to | ||
95 | disallow execution of an suid program mounted on the remote target. | ||
96 | When mount is executed as root, nosuid is not passed in by default, | ||
97 | and execution of suid programs on the remote target would be enabled | ||
98 | by default. This can be changed, as with nfs and other filesystems, | ||
99 | by simply specifying "nosuid" among the mount options. For user mounts | ||
100 | though to be able to pass the suid flag to mount requires rebuilding | ||
101 | mount.cifs with the following flag: | ||
102 | |||
103 | gcc samba/source/client/mount.cifs.c -DCIFS_ALLOW_USR_SUID -o mount.cifs | ||
104 | |||
105 | There is a corresponding manual page for cifs mounting in the Samba 3.0 and | ||
106 | later source tree in docs/manpages/mount.cifs.8 | ||
107 | |||
108 | Allowing User Unmounts | ||
109 | ====================== | ||
110 | To permit users to ummount directories that they have user mounted (see above), | ||
111 | the utility umount.cifs may be used. It may be invoked directly, or if | ||
112 | umount.cifs is placed in /sbin, umount can invoke the cifs umount helper | ||
113 | (at least for most versions of the umount utility) for umount of cifs | ||
114 | mounts, unless umount is invoked with -i (which will avoid invoking a umount | ||
115 | helper). As with mount.cifs, to enable user unmounts umount.cifs must be marked | ||
116 | as suid (e.g. "chmod +s /sbin/umount.cifs") or equivalent (some distributions | ||
117 | allow adding entries to a file to the /etc/permissions file to achieve the | ||
118 | equivalent suid effect). For this utility to succeed the target path | ||
119 | must be a cifs mount, and the uid of the current user must match the uid | ||
120 | of the user who mounted the resource. | ||
121 | |||
122 | Also note that the customary way of allowing user mounts and unmounts is | ||
123 | (instead of using mount.cifs and unmount.cifs as suid) to add a line | ||
124 | to the file /etc/fstab for each //server/share you wish to mount, but | ||
125 | this can become unwieldy when potential mount targets include many | ||
126 | or unpredictable UNC names. | ||
127 | |||
128 | Samba Considerations | ||
129 | ==================== | ||
130 | To get the maximum benefit from the CIFS VFS, we recommend using a server that | ||
131 | supports the SNIA CIFS Unix Extensions standard (e.g. Samba 2.2.5 or later or | ||
132 | Samba 3.0) but the CIFS vfs works fine with a wide variety of CIFS servers. | ||
133 | Note that uid, gid and file permissions will display default values if you do | ||
134 | not have a server that supports the Unix extensions for CIFS (such as Samba | ||
135 | 2.2.5 or later). To enable the Unix CIFS Extensions in the Samba server, add | ||
136 | the line: | ||
137 | |||
138 | unix extensions = yes | ||
139 | |||
140 | to your smb.conf file on the server. Note that the following smb.conf settings | ||
141 | are also useful (on the Samba server) when the majority of clients are Unix or | ||
142 | Linux: | ||
143 | |||
144 | case sensitive = yes | ||
145 | delete readonly = yes | ||
146 | ea support = yes | ||
147 | |||
148 | Note that server ea support is required for supporting xattrs from the Linux | ||
149 | cifs client, and that EA support is present in later versions of Samba (e.g. | ||
150 | 3.0.6 and later (also EA support works in all versions of Windows, at least to | ||
151 | shares on NTFS filesystems). Extended Attribute (xattr) support is an optional | ||
152 | feature of most Linux filesystems which may require enabling via | ||
153 | make menuconfig. Client support for extended attributes (user xattr) can be | ||
154 | disabled on a per-mount basis by specifying "nouser_xattr" on mount. | ||
155 | |||
156 | The CIFS client can get and set POSIX ACLs (getfacl, setfacl) to Samba servers | ||
157 | version 3.10 and later. Setting POSIX ACLs requires enabling both XATTR and | ||
158 | then POSIX support in the CIFS configuration options when building the cifs | ||
159 | module. POSIX ACL support can be disabled on a per mount basic by specifying | ||
160 | "noacl" on mount. | ||
161 | |||
162 | Some administrators may want to change Samba's smb.conf "map archive" and | ||
163 | "create mask" parameters from the default. Unless the create mask is changed | ||
164 | newly created files can end up with an unnecessarily restrictive default mode, | ||
165 | which may not be what you want, although if the CIFS Unix extensions are | ||
166 | enabled on the server and client, subsequent setattr calls (e.g. chmod) can | ||
167 | fix the mode. Note that creating special devices (mknod) remotely | ||
168 | may require specifying a mkdev function to Samba if you are not using | ||
169 | Samba 3.0.6 or later. For more information on these see the manual pages | ||
170 | ("man smb.conf") on the Samba server system. Note that the cifs vfs, | ||
171 | unlike the smbfs vfs, does not read the smb.conf on the client system | ||
172 | (the few optional settings are passed in on mount via -o parameters instead). | ||
173 | Note that Samba 2.2.7 or later includes a fix that allows the CIFS VFS to delete | ||
174 | open files (required for strict POSIX compliance). Windows Servers already | ||
175 | supported this feature. Samba server does not allow symlinks that refer to files | ||
176 | outside of the share, so in Samba versions prior to 3.0.6, most symlinks to | ||
177 | files with absolute paths (ie beginning with slash) such as: | ||
178 | ln -s /mnt/foo bar | ||
179 | would be forbidden. Samba 3.0.6 server or later includes the ability to create | ||
180 | such symlinks safely by converting unsafe symlinks (ie symlinks to server | ||
181 | files that are outside of the share) to a samba specific format on the server | ||
182 | that is ignored by local server applications and non-cifs clients and that will | ||
183 | not be traversed by the Samba server). This is opaque to the Linux client | ||
184 | application using the cifs vfs. Absolute symlinks will work to Samba 3.0.5 or | ||
185 | later, but only for remote clients using the CIFS Unix extensions, and will | ||
186 | be invisbile to Windows clients and typically will not affect local | ||
187 | applications running on the same server as Samba. | ||
188 | |||
189 | Use instructions: | ||
190 | ================ | ||
191 | Once the CIFS VFS support is built into the kernel or installed as a module | ||
192 | (cifs.o), you can use mount syntax like the following to access Samba or Windows | ||
193 | servers: | ||
194 | |||
195 | mount -t cifs //9.53.216.11/e$ /mnt -o user=myname,pass=mypassword | ||
196 | |||
197 | Before -o the option -v may be specified to make the mount.cifs | ||
198 | mount helper display the mount steps more verbosely. | ||
199 | After -o the following commonly used cifs vfs specific options | ||
200 | are supported: | ||
201 | |||
202 | user=<username> | ||
203 | pass=<password> | ||
204 | domain=<domain name> | ||
205 | |||
206 | Other cifs mount options are described below. Use of TCP names (in addition to | ||
207 | ip addresses) is available if the mount helper (mount.cifs) is installed. If | ||
208 | you do not trust the server to which are mounted, or if you do not have | ||
209 | cifs signing enabled (and the physical network is insecure), consider use | ||
210 | of the standard mount options "noexec" and "nosuid" to reduce the risk of | ||
211 | running an altered binary on your local system (downloaded from a hostile server | ||
212 | or altered by a hostile router). | ||
213 | |||
214 | Although mounting using format corresponding to the CIFS URL specification is | ||
215 | not possible in mount.cifs yet, it is possible to use an alternate format | ||
216 | for the server and sharename (which is somewhat similar to NFS style mount | ||
217 | syntax) instead of the more widely used UNC format (i.e. \\server\share): | ||
218 | mount -t cifs tcp_name_of_server:share_name /mnt -o user=myname,pass=mypasswd | ||
219 | |||
220 | When using the mount helper mount.cifs, passwords may be specified via alternate | ||
221 | mechanisms, instead of specifying it after -o using the normal "pass=" syntax | ||
222 | on the command line: | ||
223 | 1) By including it in a credential file. Specify credentials=filename as one | ||
224 | of the mount options. Credential files contain two lines | ||
225 | username=someuser | ||
226 | password=your_password | ||
227 | 2) By specifying the password in the PASSWD environment variable (similarly | ||
228 | the user name can be taken from the USER environment variable). | ||
229 | 3) By specifying the password in a file by name via PASSWD_FILE | ||
230 | 4) By specifying the password in a file by file descriptor via PASSWD_FD | ||
231 | |||
232 | If no password is provided, mount.cifs will prompt for password entry | ||
233 | |||
234 | Restrictions | ||
235 | ============ | ||
236 | Servers must support either "pure-TCP" (port 445 TCP/IP CIFS connections) or RFC | ||
237 | 1001/1002 support for "Netbios-Over-TCP/IP." This is not likely to be a | ||
238 | problem as most servers support this. | ||
239 | |||
240 | Valid filenames differ between Windows and Linux. Windows typically restricts | ||
241 | filenames which contain certain reserved characters (e.g.the character : | ||
242 | which is used to delimit the beginning of a stream name by Windows), while | ||
243 | Linux allows a slightly wider set of valid characters in filenames. Windows | ||
244 | servers can remap such characters when an explicit mapping is specified in | ||
245 | the Server's registry. Samba starting with version 3.10 will allow such | ||
246 | filenames (ie those which contain valid Linux characters, which normally | ||
247 | would be forbidden for Windows/CIFS semantics) as long as the server is | ||
248 | configured for Unix Extensions (and the client has not disabled | ||
249 | /proc/fs/cifs/LinuxExtensionsEnabled). | ||
250 | |||
251 | |||
252 | CIFS VFS Mount Options | ||
253 | ====================== | ||
254 | A partial list of the supported mount options follows: | ||
255 | user The user name to use when trying to establish | ||
256 | the CIFS session. | ||
257 | password The user password. If the mount helper is | ||
258 | installed, the user will be prompted for password | ||
259 | if not supplied. | ||
260 | ip The ip address of the target server | ||
261 | unc The target server Universal Network Name (export) to | ||
262 | mount. | ||
263 | domain Set the SMB/CIFS workgroup name prepended to the | ||
264 | username during CIFS session establishment | ||
265 | forceuid Set the default uid for inodes to the uid | ||
266 | passed in on mount. For mounts to servers | ||
267 | which do support the CIFS Unix extensions, such as a | ||
268 | properly configured Samba server, the server provides | ||
269 | the uid, gid and mode so this parameter should not be | ||
270 | specified unless the server and clients uid and gid | ||
271 | numbering differ. If the server and client are in the | ||
272 | same domain (e.g. running winbind or nss_ldap) and | ||
273 | the server supports the Unix Extensions then the uid | ||
274 | and gid can be retrieved from the server (and uid | ||
275 | and gid would not have to be specifed on the mount. | ||
276 | For servers which do not support the CIFS Unix | ||
277 | extensions, the default uid (and gid) returned on lookup | ||
278 | of existing files will be the uid (gid) of the person | ||
279 | who executed the mount (root, except when mount.cifs | ||
280 | is configured setuid for user mounts) unless the "uid=" | ||
281 | (gid) mount option is specified. Also note that permission | ||
282 | checks (authorization checks) on accesses to a file occur | ||
283 | at the server, but there are cases in which an administrator | ||
284 | may want to restrict at the client as well. For those | ||
285 | servers which do not report a uid/gid owner | ||
286 | (such as Windows), permissions can also be checked at the | ||
287 | client, and a crude form of client side permission checking | ||
288 | can be enabled by specifying file_mode and dir_mode on | ||
289 | the client. (default) | ||
290 | forcegid (similar to above but for the groupid instead of uid) (default) | ||
291 | noforceuid Fill in file owner information (uid) by requesting it from | ||
292 | the server if possible. With this option, the value given in | ||
293 | the uid= option (on mount) will only be used if the server | ||
294 | can not support returning uids on inodes. | ||
295 | noforcegid (similar to above but for the group owner, gid, instead of uid) | ||
296 | uid Set the default uid for inodes, and indicate to the | ||
297 | cifs kernel driver which local user mounted. If the server | ||
298 | supports the unix extensions the default uid is | ||
299 | not used to fill in the owner fields of inodes (files) | ||
300 | unless the "forceuid" parameter is specified. | ||
301 | gid Set the default gid for inodes (similar to above). | ||
302 | file_mode If CIFS Unix extensions are not supported by the server | ||
303 | this overrides the default mode for file inodes. | ||
304 | fsc Enable local disk caching using FS-Cache (off by default). This | ||
305 | option could be useful to improve performance on a slow link, | ||
306 | heavily loaded server and/or network where reading from the | ||
307 | disk is faster than reading from the server (over the network). | ||
308 | This could also impact scalability positively as the | ||
309 | number of calls to the server are reduced. However, local | ||
310 | caching is not suitable for all workloads for e.g. read-once | ||
311 | type workloads. So, you need to consider carefully your | ||
312 | workload/scenario before using this option. Currently, local | ||
313 | disk caching is functional for CIFS files opened as read-only. | ||
314 | dir_mode If CIFS Unix extensions are not supported by the server | ||
315 | this overrides the default mode for directory inodes. | ||
316 | port attempt to contact the server on this tcp port, before | ||
317 | trying the usual ports (port 445, then 139). | ||
318 | iocharset Codepage used to convert local path names to and from | ||
319 | Unicode. Unicode is used by default for network path | ||
320 | names if the server supports it. If iocharset is | ||
321 | not specified then the nls_default specified | ||
322 | during the local client kernel build will be used. | ||
323 | If server does not support Unicode, this parameter is | ||
324 | unused. | ||
325 | rsize default read size (usually 16K). The client currently | ||
326 | can not use rsize larger than CIFSMaxBufSize. CIFSMaxBufSize | ||
327 | defaults to 16K and may be changed (from 8K to the maximum | ||
328 | kmalloc size allowed by your kernel) at module install time | ||
329 | for cifs.ko. Setting CIFSMaxBufSize to a very large value | ||
330 | will cause cifs to use more memory and may reduce performance | ||
331 | in some cases. To use rsize greater than 127K (the original | ||
332 | cifs protocol maximum) also requires that the server support | ||
333 | a new Unix Capability flag (for very large read) which some | ||
334 | newer servers (e.g. Samba 3.0.26 or later) do. rsize can be | ||
335 | set from a minimum of 2048 to a maximum of 130048 (127K or | ||
336 | CIFSMaxBufSize, whichever is smaller) | ||
337 | wsize default write size (default 57344) | ||
338 | maximum wsize currently allowed by CIFS is 57344 (fourteen | ||
339 | 4096 byte pages) | ||
340 | actimeo=n attribute cache timeout in seconds (default 1 second). | ||
341 | After this timeout, the cifs client requests fresh attribute | ||
342 | information from the server. This option allows to tune the | ||
343 | attribute cache timeout to suit the workload needs. Shorter | ||
344 | timeouts mean better the cache coherency, but increased number | ||
345 | of calls to the server. Longer timeouts mean reduced number | ||
346 | of calls to the server at the expense of less stricter cache | ||
347 | coherency checks (i.e. incorrect attribute cache for a short | ||
348 | period of time). | ||
349 | rw mount the network share read-write (note that the | ||
350 | server may still consider the share read-only) | ||
351 | ro mount network share read-only | ||
352 | version used to distinguish different versions of the | ||
353 | mount helper utility (not typically needed) | ||
354 | sep if first mount option (after the -o), overrides | ||
355 | the comma as the separator between the mount | ||
356 | parms. e.g. | ||
357 | -o user=myname,password=mypassword,domain=mydom | ||
358 | could be passed instead with period as the separator by | ||
359 | -o sep=.user=myname.password=mypassword.domain=mydom | ||
360 | this might be useful when comma is contained within username | ||
361 | or password or domain. This option is less important | ||
362 | when the cifs mount helper cifs.mount (version 1.1 or later) | ||
363 | is used. | ||
364 | nosuid Do not allow remote executables with the suid bit | ||
365 | program to be executed. This is only meaningful for mounts | ||
366 | to servers such as Samba which support the CIFS Unix Extensions. | ||
367 | If you do not trust the servers in your network (your mount | ||
368 | targets) it is recommended that you specify this option for | ||
369 | greater security. | ||
370 | exec Permit execution of binaries on the mount. | ||
371 | noexec Do not permit execution of binaries on the mount. | ||
372 | dev Recognize block devices on the remote mount. | ||
373 | nodev Do not recognize devices on the remote mount. | ||
374 | suid Allow remote files on this mountpoint with suid enabled to | ||
375 | be executed (default for mounts when executed as root, | ||
376 | nosuid is default for user mounts). | ||
377 | credentials Although ignored by the cifs kernel component, it is used by | ||
378 | the mount helper, mount.cifs. When mount.cifs is installed it | ||
379 | opens and reads the credential file specified in order | ||
380 | to obtain the userid and password arguments which are passed to | ||
381 | the cifs vfs. | ||
382 | guest Although ignored by the kernel component, the mount.cifs | ||
383 | mount helper will not prompt the user for a password | ||
384 | if guest is specified on the mount options. If no | ||
385 | password is specified a null password will be used. | ||
386 | perm Client does permission checks (vfs_permission check of uid | ||
387 | and gid of the file against the mode and desired operation), | ||
388 | Note that this is in addition to the normal ACL check on the | ||
389 | target machine done by the server software. | ||
390 | Client permission checking is enabled by default. | ||
391 | noperm Client does not do permission checks. This can expose | ||
392 | files on this mount to access by other users on the local | ||
393 | client system. It is typically only needed when the server | ||
394 | supports the CIFS Unix Extensions but the UIDs/GIDs on the | ||
395 | client and server system do not match closely enough to allow | ||
396 | access by the user doing the mount, but it may be useful with | ||
397 | non CIFS Unix Extension mounts for cases in which the default | ||
398 | mode is specified on the mount but is not to be enforced on the | ||
399 | client (e.g. perhaps when MultiUserMount is enabled) | ||
400 | Note that this does not affect the normal ACL check on the | ||
401 | target machine done by the server software (of the server | ||
402 | ACL against the user name provided at mount time). | ||
403 | serverino Use server's inode numbers instead of generating automatically | ||
404 | incrementing inode numbers on the client. Although this will | ||
405 | make it easier to spot hardlinked files (as they will have | ||
406 | the same inode numbers) and inode numbers may be persistent, | ||
407 | note that the server does not guarantee that the inode numbers | ||
408 | are unique if multiple server side mounts are exported under a | ||
409 | single share (since inode numbers on the servers might not | ||
410 | be unique if multiple filesystems are mounted under the same | ||
411 | shared higher level directory). Note that some older | ||
412 | (e.g. pre-Windows 2000) do not support returning UniqueIDs | ||
413 | or the CIFS Unix Extensions equivalent and for those | ||
414 | this mount option will have no effect. Exporting cifs mounts | ||
415 | under nfsd requires this mount option on the cifs mount. | ||
416 | This is now the default if server supports the | ||
417 | required network operation. | ||
418 | noserverino Client generates inode numbers (rather than using the actual one | ||
419 | from the server). These inode numbers will vary after | ||
420 | unmount or reboot which can confuse some applications, | ||
421 | but not all server filesystems support unique inode | ||
422 | numbers. | ||
423 | setuids If the CIFS Unix extensions are negotiated with the server | ||
424 | the client will attempt to set the effective uid and gid of | ||
425 | the local process on newly created files, directories, and | ||
426 | devices (create, mkdir, mknod). If the CIFS Unix Extensions | ||
427 | are not negotiated, for newly created files and directories | ||
428 | instead of using the default uid and gid specified on | ||
429 | the mount, cache the new file's uid and gid locally which means | ||
430 | that the uid for the file can change when the inode is | ||
431 | reloaded (or the user remounts the share). | ||
432 | nosetuids The client will not attempt to set the uid and gid on | ||
433 | on newly created files, directories, and devices (create, | ||
434 | mkdir, mknod) which will result in the server setting the | ||
435 | uid and gid to the default (usually the server uid of the | ||
436 | user who mounted the share). Letting the server (rather than | ||
437 | the client) set the uid and gid is the default. If the CIFS | ||
438 | Unix Extensions are not negotiated then the uid and gid for | ||
439 | new files will appear to be the uid (gid) of the mounter or the | ||
440 | uid (gid) parameter specified on the mount. | ||
441 | netbiosname When mounting to servers via port 139, specifies the RFC1001 | ||
442 | source name to use to represent the client netbios machine | ||
443 | name when doing the RFC1001 netbios session initialize. | ||
444 | direct Do not do inode data caching on files opened on this mount. | ||
445 | This precludes mmapping files on this mount. In some cases | ||
446 | with fast networks and little or no caching benefits on the | ||
447 | client (e.g. when the application is doing large sequential | ||
448 | reads bigger than page size without rereading the same data) | ||
449 | this can provide better performance than the default | ||
450 | behavior which caches reads (readahead) and writes | ||
451 | (writebehind) through the local Linux client pagecache | ||
452 | if oplock (caching token) is granted and held. Note that | ||
453 | direct allows write operations larger than page size | ||
454 | to be sent to the server. | ||
455 | strictcache Use for switching on strict cache mode. In this mode the | ||
456 | client read from the cache all the time it has Oplock Level II, | ||
457 | otherwise - read from the server. All written data are stored | ||
458 | in the cache, but if the client doesn't have Exclusive Oplock, | ||
459 | it writes the data to the server. | ||
460 | rwpidforward Forward pid of a process who opened a file to any read or write | ||
461 | operation on that file. This prevent applications like WINE | ||
462 | from failing on read and write if we use mandatory brlock style. | ||
463 | acl Allow setfacl and getfacl to manage posix ACLs if server | ||
464 | supports them. (default) | ||
465 | noacl Do not allow setfacl and getfacl calls on this mount | ||
466 | user_xattr Allow getting and setting user xattrs (those attributes whose | ||
467 | name begins with "user." or "os2.") as OS/2 EAs (extended | ||
468 | attributes) to the server. This allows support of the | ||
469 | setfattr and getfattr utilities. (default) | ||
470 | nouser_xattr Do not allow getfattr/setfattr to get/set/list xattrs | ||
471 | mapchars Translate six of the seven reserved characters (not backslash) | ||
472 | *?<>|: | ||
473 | to the remap range (above 0xF000), which also | ||
474 | allows the CIFS client to recognize files created with | ||
475 | such characters by Windows's POSIX emulation. This can | ||
476 | also be useful when mounting to most versions of Samba | ||
477 | (which also forbids creating and opening files | ||
478 | whose names contain any of these seven characters). | ||
479 | This has no effect if the server does not support | ||
480 | Unicode on the wire. | ||
481 | nomapchars Do not translate any of these seven characters (default). | ||
482 | nocase Request case insensitive path name matching (case | ||
483 | sensitive is the default if the server supports it). | ||
484 | (mount option "ignorecase" is identical to "nocase") | ||
485 | posixpaths If CIFS Unix extensions are supported, attempt to | ||
486 | negotiate posix path name support which allows certain | ||
487 | characters forbidden in typical CIFS filenames, without | ||
488 | requiring remapping. (default) | ||
489 | noposixpaths If CIFS Unix extensions are supported, do not request | ||
490 | posix path name support (this may cause servers to | ||
491 | reject creatingfile with certain reserved characters). | ||
492 | nounix Disable the CIFS Unix Extensions for this mount (tree | ||
493 | connection). This is rarely needed, but it may be useful | ||
494 | in order to turn off multiple settings all at once (ie | ||
495 | posix acls, posix locks, posix paths, symlink support | ||
496 | and retrieving uids/gids/mode from the server) or to | ||
497 | work around a bug in server which implement the Unix | ||
498 | Extensions. | ||
499 | nobrl Do not send byte range lock requests to the server. | ||
500 | This is necessary for certain applications that break | ||
501 | with cifs style mandatory byte range locks (and most | ||
502 | cifs servers do not yet support requesting advisory | ||
503 | byte range locks). | ||
504 | forcemandatorylock Even if the server supports posix (advisory) byte range | ||
505 | locking, send only mandatory lock requests. For some | ||
506 | (presumably rare) applications, originally coded for | ||
507 | DOS/Windows, which require Windows style mandatory byte range | ||
508 | locking, they may be able to take advantage of this option, | ||
509 | forcing the cifs client to only send mandatory locks | ||
510 | even if the cifs server would support posix advisory locks. | ||
511 | "forcemand" is accepted as a shorter form of this mount | ||
512 | option. | ||
513 | nostrictsync If this mount option is set, when an application does an | ||
514 | fsync call then the cifs client does not send an SMB Flush | ||
515 | to the server (to force the server to write all dirty data | ||
516 | for this file immediately to disk), although cifs still sends | ||
517 | all dirty (cached) file data to the server and waits for the | ||
518 | server to respond to the write. Since SMB Flush can be | ||
519 | very slow, and some servers may be reliable enough (to risk | ||
520 | delaying slightly flushing the data to disk on the server), | ||
521 | turning on this option may be useful to improve performance for | ||
522 | applications that fsync too much, at a small risk of server | ||
523 | crash. If this mount option is not set, by default cifs will | ||
524 | send an SMB flush request (and wait for a response) on every | ||
525 | fsync call. | ||
526 | nodfs Disable DFS (global name space support) even if the | ||
527 | server claims to support it. This can help work around | ||
528 | a problem with parsing of DFS paths with Samba server | ||
529 | versions 3.0.24 and 3.0.25. | ||
530 | remount remount the share (often used to change from ro to rw mounts | ||
531 | or vice versa) | ||
532 | cifsacl Report mode bits (e.g. on stat) based on the Windows ACL for | ||
533 | the file. (EXPERIMENTAL) | ||
534 | servern Specify the server 's netbios name (RFC1001 name) to use | ||
535 | when attempting to setup a session to the server. | ||
536 | This is needed for mounting to some older servers (such | ||
537 | as OS/2 or Windows 98 and Windows ME) since they do not | ||
538 | support a default server name. A server name can be up | ||
539 | to 15 characters long and is usually uppercased. | ||
540 | sfu When the CIFS Unix Extensions are not negotiated, attempt to | ||
541 | create device files and fifos in a format compatible with | ||
542 | Services for Unix (SFU). In addition retrieve bits 10-12 | ||
543 | of the mode via the SETFILEBITS extended attribute (as | ||
544 | SFU does). In the future the bottom 9 bits of the | ||
545 | mode also will be emulated using queries of the security | ||
546 | descriptor (ACL). | ||
547 | mfsymlinks Enable support for Minshall+French symlinks | ||
548 | (see http://wiki.samba.org/index.php/UNIX_Extensions#Minshall.2BFrench_symlinks) | ||
549 | This option is ignored when specified together with the | ||
550 | 'sfu' option. Minshall+French symlinks are used even if | ||
551 | the server supports the CIFS Unix Extensions. | ||
552 | sign Must use packet signing (helps avoid unwanted data modification | ||
553 | by intermediate systems in the route). Note that signing | ||
554 | does not work with lanman or plaintext authentication. | ||
555 | seal Must seal (encrypt) all data on this mounted share before | ||
556 | sending on the network. Requires support for Unix Extensions. | ||
557 | Note that this differs from the sign mount option in that it | ||
558 | causes encryption of data sent over this mounted share but other | ||
559 | shares mounted to the same server are unaffected. | ||
560 | locallease This option is rarely needed. Fcntl F_SETLEASE is | ||
561 | used by some applications such as Samba and NFSv4 server to | ||
562 | check to see whether a file is cacheable. CIFS has no way | ||
563 | to explicitly request a lease, but can check whether a file | ||
564 | is cacheable (oplocked). Unfortunately, even if a file | ||
565 | is not oplocked, it could still be cacheable (ie cifs client | ||
566 | could grant fcntl leases if no other local processes are using | ||
567 | the file) for cases for example such as when the server does not | ||
568 | support oplocks and the user is sure that the only updates to | ||
569 | the file will be from this client. Specifying this mount option | ||
570 | will allow the cifs client to check for leases (only) locally | ||
571 | for files which are not oplocked instead of denying leases | ||
572 | in that case. (EXPERIMENTAL) | ||
573 | sec Security mode. Allowed values are: | ||
574 | none attempt to connection as a null user (no name) | ||
575 | krb5 Use Kerberos version 5 authentication | ||
576 | krb5i Use Kerberos authentication and packet signing | ||
577 | ntlm Use NTLM password hashing (default) | ||
578 | ntlmi Use NTLM password hashing with signing (if | ||
579 | /proc/fs/cifs/PacketSigningEnabled on or if | ||
580 | server requires signing also can be the default) | ||
581 | ntlmv2 Use NTLMv2 password hashing | ||
582 | ntlmv2i Use NTLMv2 password hashing with packet signing | ||
583 | lanman (if configured in kernel config) use older | ||
584 | lanman hash | ||
585 | hard Retry file operations if server is not responding | ||
586 | soft Limit retries to unresponsive servers (usually only | ||
587 | one retry) before returning an error. (default) | ||
588 | |||
589 | The mount.cifs mount helper also accepts a few mount options before -o | ||
590 | including: | ||
591 | |||
592 | -S take password from stdin (equivalent to setting the environment | ||
593 | variable "PASSWD_FD=0" | ||
594 | -V print mount.cifs version | ||
595 | -? display simple usage information | ||
596 | |||
597 | With most 2.6 kernel versions of modutils, the version of the cifs kernel | ||
598 | module can be displayed via modinfo. | ||
599 | |||
600 | Misc /proc/fs/cifs Flags and Debug Info | ||
601 | ======================================= | ||
602 | Informational pseudo-files: | ||
603 | DebugData Displays information about active CIFS sessions and | ||
604 | shares, features enabled as well as the cifs.ko | ||
605 | version. | ||
606 | Stats Lists summary resource usage information as well as per | ||
607 | share statistics, if CONFIG_CIFS_STATS in enabled | ||
608 | in the kernel configuration. | ||
609 | |||
610 | Configuration pseudo-files: | ||
611 | PacketSigningEnabled If set to one, cifs packet signing is enabled | ||
612 | and will be used if the server requires | ||
613 | it. If set to two, cifs packet signing is | ||
614 | required even if the server considers packet | ||
615 | signing optional. (default 1) | ||
616 | SecurityFlags Flags which control security negotiation and | ||
617 | also packet signing. Authentication (may/must) | ||
618 | flags (e.g. for NTLM and/or NTLMv2) may be combined with | ||
619 | the signing flags. Specifying two different password | ||
620 | hashing mechanisms (as "must use") on the other hand | ||
621 | does not make much sense. Default flags are | ||
622 | 0x07007 | ||
623 | (NTLM, NTLMv2 and packet signing allowed). The maximum | ||
624 | allowable flags if you want to allow mounts to servers | ||
625 | using weaker password hashes is 0x37037 (lanman, | ||
626 | plaintext, ntlm, ntlmv2, signing allowed). Some | ||
627 | SecurityFlags require the corresponding menuconfig | ||
628 | options to be enabled (lanman and plaintext require | ||
629 | CONFIG_CIFS_WEAK_PW_HASH for example). Enabling | ||
630 | plaintext authentication currently requires also | ||
631 | enabling lanman authentication in the security flags | ||
632 | because the cifs module only supports sending | ||
633 | laintext passwords using the older lanman dialect | ||
634 | form of the session setup SMB. (e.g. for authentication | ||
635 | using plain text passwords, set the SecurityFlags | ||
636 | to 0x30030): | ||
637 | |||
638 | may use packet signing 0x00001 | ||
639 | must use packet signing 0x01001 | ||
640 | may use NTLM (most common password hash) 0x00002 | ||
641 | must use NTLM 0x02002 | ||
642 | may use NTLMv2 0x00004 | ||
643 | must use NTLMv2 0x04004 | ||
644 | may use Kerberos security 0x00008 | ||
645 | must use Kerberos 0x08008 | ||
646 | may use lanman (weak) password hash 0x00010 | ||
647 | must use lanman password hash 0x10010 | ||
648 | may use plaintext passwords 0x00020 | ||
649 | must use plaintext passwords 0x20020 | ||
650 | (reserved for future packet encryption) 0x00040 | ||
651 | |||
652 | cifsFYI If set to non-zero value, additional debug information | ||
653 | will be logged to the system error log. This field | ||
654 | contains three flags controlling different classes of | ||
655 | debugging entries. The maximum value it can be set | ||
656 | to is 7 which enables all debugging points (default 0). | ||
657 | Some debugging statements are not compiled into the | ||
658 | cifs kernel unless CONFIG_CIFS_DEBUG2 is enabled in the | ||
659 | kernel configuration. cifsFYI may be set to one or | ||
660 | nore of the following flags (7 sets them all): | ||
661 | |||
662 | log cifs informational messages 0x01 | ||
663 | log return codes from cifs entry points 0x02 | ||
664 | log slow responses (ie which take longer than 1 second) | ||
665 | CONFIG_CIFS_STATS2 must be enabled in .config 0x04 | ||
666 | |||
667 | |||
668 | traceSMB If set to one, debug information is logged to the | ||
669 | system error log with the start of smb requests | ||
670 | and responses (default 0) | ||
671 | LookupCacheEnable If set to one, inode information is kept cached | ||
672 | for one second improving performance of lookups | ||
673 | (default 1) | ||
674 | OplockEnabled If set to one, safe distributed caching enabled. | ||
675 | (default 1) | ||
676 | LinuxExtensionsEnabled If set to one then the client will attempt to | ||
677 | use the CIFS "UNIX" extensions which are optional | ||
678 | protocol enhancements that allow CIFS servers | ||
679 | to return accurate UID/GID information as well | ||
680 | as support symbolic links. If you use servers | ||
681 | such as Samba that support the CIFS Unix | ||
682 | extensions but do not want to use symbolic link | ||
683 | support and want to map the uid and gid fields | ||
684 | to values supplied at mount (rather than the | ||
685 | actual values, then set this to zero. (default 1) | ||
686 | |||
687 | These experimental features and tracing can be enabled by changing flags in | ||
688 | /proc/fs/cifs (after the cifs module has been installed or built into the | ||
689 | kernel, e.g. insmod cifs). To enable a feature set it to 1 e.g. to enable | ||
690 | tracing to the kernel message log type: | ||
691 | |||
692 | echo 7 > /proc/fs/cifs/cifsFYI | ||
693 | |||
694 | cifsFYI functions as a bit mask. Setting it to 1 enables additional kernel | ||
695 | logging of various informational messages. 2 enables logging of non-zero | ||
696 | SMB return codes while 4 enables logging of requests that take longer | ||
697 | than one second to complete (except for byte range lock requests). | ||
698 | Setting it to 4 requires defining CONFIG_CIFS_STATS2 manually in the | ||
699 | source code (typically by setting it in the beginning of cifsglob.h), | ||
700 | and setting it to seven enables all three. Finally, tracing | ||
701 | the start of smb requests and responses can be enabled via: | ||
702 | |||
703 | echo 1 > /proc/fs/cifs/traceSMB | ||
704 | |||
705 | Per share (per client mount) statistics are available in /proc/fs/cifs/Stats | ||
706 | if the kernel was configured with cifs statistics enabled. The statistics | ||
707 | represent the number of successful (ie non-zero return code from the server) | ||
708 | SMB responses to some of the more common commands (open, delete, mkdir etc.). | ||
709 | Also recorded is the total bytes read and bytes written to the server for | ||
710 | that share. Note that due to client caching effects this can be less than the | ||
711 | number of bytes read and written by the application running on the client. | ||
712 | The statistics for the number of total SMBs and oplock breaks are different in | ||
713 | that they represent all for that share, not just those for which the server | ||
714 | returned success. | ||
715 | |||
716 | Also note that "cat /proc/fs/cifs/DebugData" will display information about | ||
717 | the active sessions and the shares that are mounted. | ||
718 | |||
719 | Enabling Kerberos (extended security) works but requires version 1.2 or later | ||
720 | of the helper program cifs.upcall to be present and to be configured in the | ||
721 | /etc/request-key.conf file. The cifs.upcall helper program is from the Samba | ||
722 | project(http://www.samba.org). NTLM and NTLMv2 and LANMAN support do not | ||
723 | require this helper. Note that NTLMv2 security (which does not require the | ||
724 | cifs.upcall helper program), instead of using Kerberos, is sufficient for | ||
725 | some use cases. | ||
726 | |||
727 | DFS support allows transparent redirection to shares in an MS-DFS name space. | ||
728 | In addition, DFS support for target shares which are specified as UNC | ||
729 | names which begin with host names (rather than IP addresses) requires | ||
730 | a user space helper (such as cifs.upcall) to be present in order to | ||
731 | translate host names to ip address, and the user space helper must also | ||
732 | be configured in the file /etc/request-key.conf. Samba, Windows servers and | ||
733 | many NAS appliances support DFS as a way of constructing a global name | ||
734 | space to ease network configuration and improve reliability. | ||
735 | |||
736 | To use cifs Kerberos and DFS support, the Linux keyutils package should be | ||
737 | installed and something like the following lines should be added to the | ||
738 | /etc/request-key.conf file: | ||
739 | |||
740 | create cifs.spnego * * /usr/local/sbin/cifs.upcall %k | ||
741 | create dns_resolver * * /usr/local/sbin/cifs.upcall %k | ||
742 | |||
743 | CIFS kernel module parameters | ||
744 | ============================= | ||
745 | These module parameters can be specified or modified either during the time of | ||
746 | module loading or during the runtime by using the interface | ||
747 | /proc/module/cifs/parameters/<param> | ||
748 | |||
749 | i.e. echo "value" > /sys/module/cifs/parameters/<param> | ||
750 | |||
751 | 1. enable_oplocks - Enable or disable oplocks. Oplocks are enabled by default. | ||
752 | [Y/y/1]. To disable use any of [N/n/0]. | ||
753 | |||
diff --git a/Documentation/filesystems/cifs/TODO b/Documentation/filesystems/cifs/TODO new file mode 100644 index 000000000000..355abcdcda98 --- /dev/null +++ b/Documentation/filesystems/cifs/TODO | |||
@@ -0,0 +1,129 @@ | |||
1 | Version 1.53 May 20, 2008 | ||
2 | |||
3 | A Partial List of Missing Features | ||
4 | ================================== | ||
5 | |||
6 | Contributions are welcome. There are plenty of opportunities | ||
7 | for visible, important contributions to this module. Here | ||
8 | is a partial list of the known problems and missing features: | ||
9 | |||
10 | a) Support for SecurityDescriptors(Windows/CIFS ACLs) for chmod/chgrp/chown | ||
11 | so that these operations can be supported to Windows servers | ||
12 | |||
13 | b) Mapping POSIX ACLs (and eventually NFSv4 ACLs) to CIFS | ||
14 | SecurityDescriptors | ||
15 | |||
16 | c) Better pam/winbind integration (e.g. to handle uid mapping | ||
17 | better) | ||
18 | |||
19 | d) Cleanup now unneeded SessSetup code in | ||
20 | fs/cifs/connect.c and add back in NTLMSSP code if any servers | ||
21 | need it | ||
22 | |||
23 | e) fix NTLMv2 signing when two mounts with different users to same | ||
24 | server. | ||
25 | |||
26 | f) Directory entry caching relies on a 1 second timer, rather than | ||
27 | using FindNotify or equivalent. - (started) | ||
28 | |||
29 | g) quota support (needs minor kernel change since quota calls | ||
30 | to make it to network filesystems or deviceless filesystems) | ||
31 | |||
32 | h) investigate sync behavior (including syncpage) and check | ||
33 | for proper behavior of intr/nointr | ||
34 | |||
35 | i) improve support for very old servers (OS/2 and Win9x for example) | ||
36 | Including support for changing the time remotely (utimes command). | ||
37 | |||
38 | j) hook lower into the sockets api (as NFS/SunRPC does) to avoid the | ||
39 | extra copy in/out of the socket buffers in some cases. | ||
40 | |||
41 | k) Better optimize open (and pathbased setfilesize) to reduce the | ||
42 | oplock breaks coming from windows srv. Piggyback identical file | ||
43 | opens on top of each other by incrementing reference count rather | ||
44 | than resending (helps reduce server resource utilization and avoid | ||
45 | spurious oplock breaks). | ||
46 | |||
47 | l) Improve performance of readpages by sending more than one read | ||
48 | at a time when 8 pages or more are requested. In conjuntion | ||
49 | add support for async_cifs_readpages. | ||
50 | |||
51 | m) Add support for storing symlink info to Windows servers | ||
52 | in the Extended Attribute format their SFU clients would recognize. | ||
53 | |||
54 | n) Finish fcntl D_NOTIFY support so kde and gnome file list windows | ||
55 | will autorefresh (partially complete by Asser). Needs minor kernel | ||
56 | vfs change to support removing D_NOTIFY on a file. | ||
57 | |||
58 | o) Add GUI tool to configure /proc/fs/cifs settings and for display of | ||
59 | the CIFS statistics (started) | ||
60 | |||
61 | p) implement support for security and trusted categories of xattrs | ||
62 | (requires minor protocol extension) to enable better support for SELINUX | ||
63 | |||
64 | q) Implement O_DIRECT flag on open (already supported on mount) | ||
65 | |||
66 | r) Create UID mapping facility so server UIDs can be mapped on a per | ||
67 | mount or a per server basis to client UIDs or nobody if no mapping | ||
68 | exists. This is helpful when Unix extensions are negotiated to | ||
69 | allow better permission checking when UIDs differ on the server | ||
70 | and client. Add new protocol request to the CIFS protocol | ||
71 | standard for asking the server for the corresponding name of a | ||
72 | particular uid. | ||
73 | |||
74 | s) Add support for CIFS Unix and also the newer POSIX extensions to the | ||
75 | server side for Samba 4. | ||
76 | |||
77 | t) In support for OS/2 (LANMAN 1.2 and LANMAN2.1 based SMB servers) | ||
78 | need to add ability to set time to server (utimes command) | ||
79 | |||
80 | u) DOS attrs - returned as pseudo-xattr in Samba format (check VFAT and NTFS for this too) | ||
81 | |||
82 | v) mount check for unmatched uids | ||
83 | |||
84 | w) Add support for new vfs entry point for fallocate | ||
85 | |||
86 | x) Fix Samba 3 server to handle Linux kernel aio so dbench with lots of | ||
87 | processes can proceed better in parallel (on the server) | ||
88 | |||
89 | y) Fix Samba 3 to handle reads/writes over 127K (and remove the cifs mount | ||
90 | restriction of wsize max being 127K) | ||
91 | |||
92 | KNOWN BUGS (updated April 24, 2007) | ||
93 | ==================================== | ||
94 | See http://bugzilla.samba.org - search on product "CifsVFS" for | ||
95 | current bug list. | ||
96 | |||
97 | 1) existing symbolic links (Windows reparse points) are recognized but | ||
98 | can not be created remotely. They are implemented for Samba and those that | ||
99 | support the CIFS Unix extensions, although earlier versions of Samba | ||
100 | overly restrict the pathnames. | ||
101 | 2) follow_link and readdir code does not follow dfs junctions | ||
102 | but recognizes them | ||
103 | 3) create of new files to FAT partitions on Windows servers can | ||
104 | succeed but still return access denied (appears to be Windows | ||
105 | server not cifs client problem) and has not been reproduced recently. | ||
106 | NTFS partitions do not have this problem. | ||
107 | 4) Unix/POSIX capabilities are reset after reconnection, and affect | ||
108 | a few fields in the tree connection but we do do not know which | ||
109 | superblocks to apply these changes to. We should probably walk | ||
110 | the list of superblocks to set these. Also need to check the | ||
111 | flags on the second mount to the same share, and see if we | ||
112 | can do the same trick that NFS does to remount duplicate shares. | ||
113 | |||
114 | Misc testing to do | ||
115 | ================== | ||
116 | 1) check out max path names and max path name components against various server | ||
117 | types. Try nested symlinks (8 deep). Return max path name in stat -f information | ||
118 | |||
119 | 2) Modify file portion of ltp so it can run against a mounted network | ||
120 | share and run it against cifs vfs in automated fashion. | ||
121 | |||
122 | 3) Additional performance testing and optimization using iozone and similar - | ||
123 | there are some easy changes that can be done to parallelize sequential writes, | ||
124 | and when signing is disabled to request larger read sizes (larger than | ||
125 | negotiated size) and send larger write sizes to modern servers. | ||
126 | |||
127 | 4) More exhaustively test against less common servers. More testing | ||
128 | against Windows 9x, Windows ME servers. | ||
129 | |||
diff --git a/Documentation/filesystems/cifs.txt b/Documentation/filesystems/cifs/cifs.txt index 49cc923a93e3..49cc923a93e3 100644 --- a/Documentation/filesystems/cifs.txt +++ b/Documentation/filesystems/cifs/cifs.txt | |||
diff --git a/Documentation/filesystems/cifs/winucase_convert.pl b/Documentation/filesystems/cifs/winucase_convert.pl new file mode 100755 index 000000000000..322a9c833f23 --- /dev/null +++ b/Documentation/filesystems/cifs/winucase_convert.pl | |||
@@ -0,0 +1,62 @@ | |||
1 | #!/usr/bin/perl -w | ||
2 | # | ||
3 | # winucase_convert.pl -- convert "Windows 8 Upper Case Mapping Table.txt" to | ||
4 | # a two-level set of C arrays. | ||
5 | # | ||
6 | # Copyright 2013: Jeff Layton <jlayton@redhat.com> | ||
7 | # | ||
8 | # This program is free software: you can redistribute it and/or modify | ||
9 | # it under the terms of the GNU General Public License as published by | ||
10 | # the Free Software Foundation, either version 3 of the License, or | ||
11 | # (at your option) any later version. | ||
12 | # | ||
13 | # This program is distributed in the hope that it will be useful, | ||
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
16 | # GNU General Public License for more details. | ||
17 | # | ||
18 | # You should have received a copy of the GNU General Public License | ||
19 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
20 | # | ||
21 | |||
22 | while(<>) { | ||
23 | next if (!/^0x(..)(..)\t0x(....)\t/); | ||
24 | $firstchar = hex($1); | ||
25 | $secondchar = hex($2); | ||
26 | $uppercase = hex($3); | ||
27 | |||
28 | $top[$firstchar][$secondchar] = $uppercase; | ||
29 | } | ||
30 | |||
31 | for ($i = 0; $i < 256; $i++) { | ||
32 | next if (!$top[$i]); | ||
33 | |||
34 | printf("static const wchar_t t2_%2.2x[256] = {", $i); | ||
35 | for ($j = 0; $j < 256; $j++) { | ||
36 | if (($j % 8) == 0) { | ||
37 | print "\n\t"; | ||
38 | } else { | ||
39 | print " "; | ||
40 | } | ||
41 | printf("0x%4.4x,", $top[$i][$j] ? $top[$i][$j] : 0); | ||
42 | } | ||
43 | print "\n};\n\n"; | ||
44 | } | ||
45 | |||
46 | printf("static const wchar_t *const toplevel[256] = {", $i); | ||
47 | for ($i = 0; $i < 256; $i++) { | ||
48 | if (($i % 8) == 0) { | ||
49 | print "\n\t"; | ||
50 | } elsif ($top[$i]) { | ||
51 | print " "; | ||
52 | } else { | ||
53 | print " "; | ||
54 | } | ||
55 | |||
56 | if ($top[$i]) { | ||
57 | printf("t2_%2.2x,", $i); | ||
58 | } else { | ||
59 | print "NULL,"; | ||
60 | } | ||
61 | } | ||
62 | print "\n};\n\n"; | ||
diff --git a/Documentation/filesystems/ext3.txt b/Documentation/filesystems/ext3.txt index 293855e95000..7ed0d17d6721 100644 --- a/Documentation/filesystems/ext3.txt +++ b/Documentation/filesystems/ext3.txt | |||
@@ -26,11 +26,12 @@ journal=inum When a journal already exists, this option is ignored. | |||
26 | Otherwise, it specifies the number of the inode which | 26 | Otherwise, it specifies the number of the inode which |
27 | will represent the ext3 file system's journal file. | 27 | will represent the ext3 file system's journal file. |
28 | 28 | ||
29 | journal_path=path | ||
29 | journal_dev=devnum When the external journal device's major/minor numbers | 30 | journal_dev=devnum When the external journal device's major/minor numbers |
30 | have changed, this option allows the user to specify | 31 | have changed, these options allow the user to specify |
31 | the new journal location. The journal device is | 32 | the new journal location. The journal device is |
32 | identified through its new major/minor numbers encoded | 33 | identified through either its new major/minor numbers |
33 | in devnum. | 34 | encoded in devnum, or via a path to the device. |
34 | 35 | ||
35 | norecovery Don't load the journal on mounting. Note that this forces | 36 | norecovery Don't load the journal on mounting. Note that this forces |
36 | noload mount of inconsistent filesystem, which can lead to | 37 | noload mount of inconsistent filesystem, which can lead to |
diff --git a/Documentation/filesystems/ext4.txt b/Documentation/filesystems/ext4.txt index f7cbf574a875..919a3293aaa4 100644 --- a/Documentation/filesystems/ext4.txt +++ b/Documentation/filesystems/ext4.txt | |||
@@ -2,7 +2,7 @@ | |||
2 | Ext4 Filesystem | 2 | Ext4 Filesystem |
3 | =============== | 3 | =============== |
4 | 4 | ||
5 | Ext4 is an an advanced level of the ext3 filesystem which incorporates | 5 | Ext4 is an advanced level of the ext3 filesystem which incorporates |
6 | scalability and reliability enhancements for supporting large filesystems | 6 | scalability and reliability enhancements for supporting large filesystems |
7 | (64 bit) in keeping with increasing disk capacities and state-of-the-art | 7 | (64 bit) in keeping with increasing disk capacities and state-of-the-art |
8 | feature requirements. | 8 | feature requirements. |
@@ -144,11 +144,12 @@ journal_async_commit Commit block can be written to disk without waiting | |||
144 | mount the device. This will enable 'journal_checksum' | 144 | mount the device. This will enable 'journal_checksum' |
145 | internally. | 145 | internally. |
146 | 146 | ||
147 | journal_path=path | ||
147 | journal_dev=devnum When the external journal device's major/minor numbers | 148 | journal_dev=devnum When the external journal device's major/minor numbers |
148 | have changed, this option allows the user to specify | 149 | have changed, these options allow the user to specify |
149 | the new journal location. The journal device is | 150 | the new journal location. The journal device is |
150 | identified through its new major/minor numbers encoded | 151 | identified through either its new major/minor numbers |
151 | in devnum. | 152 | encoded in devnum, or via a path to the device. |
152 | 153 | ||
153 | norecovery Don't load the journal on mounting. Note that | 154 | norecovery Don't load the journal on mounting. Note that |
154 | noload if the filesystem was not unmounted cleanly, | 155 | noload if the filesystem was not unmounted cleanly, |
diff --git a/Documentation/filesystems/f2fs.txt b/Documentation/filesystems/f2fs.txt index b91e2f26b672..3cd27bed6349 100644 --- a/Documentation/filesystems/f2fs.txt +++ b/Documentation/filesystems/f2fs.txt | |||
@@ -18,8 +18,8 @@ according to its internal geometry or flash memory management scheme, namely FTL | |||
18 | F2FS and its tools support various parameters not only for configuring on-disk | 18 | F2FS and its tools support various parameters not only for configuring on-disk |
19 | layout, but also for selecting allocation and cleaning algorithms. | 19 | layout, but also for selecting allocation and cleaning algorithms. |
20 | 20 | ||
21 | The file system formatting tool, "mkfs.f2fs", is available from the following | 21 | The following git tree provides the file system formatting tool (mkfs.f2fs), |
22 | git tree: | 22 | a consistency checking tool (fsck.f2fs), and a debugging tool (dump.f2fs). |
23 | >> git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git | 23 | >> git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git |
24 | 24 | ||
25 | For reporting bugs and sending patches, please use the following mailing list: | 25 | For reporting bugs and sending patches, please use the following mailing list: |
@@ -133,6 +133,38 @@ f2fs. Each file shows the whole f2fs information. | |||
133 | - current memory footprint consumed by f2fs. | 133 | - current memory footprint consumed by f2fs. |
134 | 134 | ||
135 | ================================================================================ | 135 | ================================================================================ |
136 | SYSFS ENTRIES | ||
137 | ================================================================================ | ||
138 | |||
139 | Information about mounted f2f2 file systems can be found in | ||
140 | /sys/fs/f2fs. Each mounted filesystem will have a directory in | ||
141 | /sys/fs/f2fs based on its device name (i.e., /sys/fs/f2fs/sda). | ||
142 | The files in each per-device directory are shown in table below. | ||
143 | |||
144 | Files in /sys/fs/f2fs/<devname> | ||
145 | (see also Documentation/ABI/testing/sysfs-fs-f2fs) | ||
146 | .............................................................................. | ||
147 | File Content | ||
148 | |||
149 | gc_max_sleep_time This tuning parameter controls the maximum sleep | ||
150 | time for the garbage collection thread. Time is | ||
151 | in milliseconds. | ||
152 | |||
153 | gc_min_sleep_time This tuning parameter controls the minimum sleep | ||
154 | time for the garbage collection thread. Time is | ||
155 | in milliseconds. | ||
156 | |||
157 | gc_no_gc_sleep_time This tuning parameter controls the default sleep | ||
158 | time for the garbage collection thread. Time is | ||
159 | in milliseconds. | ||
160 | |||
161 | gc_idle This parameter controls the selection of victim | ||
162 | policy for garbage collection. Setting gc_idle = 0 | ||
163 | (default) will disable this option. Setting | ||
164 | gc_idle = 1 will select the Cost Benefit approach | ||
165 | & setting gc_idle = 2 will select the greedy aproach. | ||
166 | |||
167 | ================================================================================ | ||
136 | USAGE | 168 | USAGE |
137 | ================================================================================ | 169 | ================================================================================ |
138 | 170 | ||
@@ -149,8 +181,12 @@ USAGE | |||
149 | # mkfs.f2fs -l label /dev/block_device | 181 | # mkfs.f2fs -l label /dev/block_device |
150 | # mount -t f2fs /dev/block_device /mnt/f2fs | 182 | # mount -t f2fs /dev/block_device /mnt/f2fs |
151 | 183 | ||
152 | Format options | 184 | mkfs.f2fs |
153 | -------------- | 185 | --------- |
186 | The mkfs.f2fs is for the use of formatting a partition as the f2fs filesystem, | ||
187 | which builds a basic on-disk layout. | ||
188 | |||
189 | The options consist of: | ||
154 | -l [label] : Give a volume label, up to 512 unicode name. | 190 | -l [label] : Give a volume label, up to 512 unicode name. |
155 | -a [0 or 1] : Split start location of each area for heap-based allocation. | 191 | -a [0 or 1] : Split start location of each area for heap-based allocation. |
156 | 1 is set by default, which performs this. | 192 | 1 is set by default, which performs this. |
@@ -164,6 +200,37 @@ Format options | |||
164 | -t [0 or 1] : Disable discard command or not. | 200 | -t [0 or 1] : Disable discard command or not. |
165 | 1 is set by default, which conducts discard. | 201 | 1 is set by default, which conducts discard. |
166 | 202 | ||
203 | fsck.f2fs | ||
204 | --------- | ||
205 | The fsck.f2fs is a tool to check the consistency of an f2fs-formatted | ||
206 | partition, which examines whether the filesystem metadata and user-made data | ||
207 | are cross-referenced correctly or not. | ||
208 | Note that, initial version of the tool does not fix any inconsistency. | ||
209 | |||
210 | The options consist of: | ||
211 | -d debug level [default:0] | ||
212 | |||
213 | dump.f2fs | ||
214 | --------- | ||
215 | The dump.f2fs shows the information of specific inode and dumps SSA and SIT to | ||
216 | file. Each file is dump_ssa and dump_sit. | ||
217 | |||
218 | The dump.f2fs is used to debug on-disk data structures of the f2fs filesystem. | ||
219 | It shows on-disk inode information reconized by a given inode number, and is | ||
220 | able to dump all the SSA and SIT entries into predefined files, ./dump_ssa and | ||
221 | ./dump_sit respectively. | ||
222 | |||
223 | The options consist of: | ||
224 | -d debug level [default:0] | ||
225 | -i inode no (hex) | ||
226 | -s [SIT dump segno from #1~#2 (decimal), for all 0~-1] | ||
227 | -a [SSA dump segno from #1~#2 (decimal), for all 0~-1] | ||
228 | |||
229 | Examples: | ||
230 | # dump.f2fs -i [ino] /dev/sdx | ||
231 | # dump.f2fs -s 0~-1 /dev/sdx (SIT dump) | ||
232 | # dump.f2fs -a 0~-1 /dev/sdx (SSA dump) | ||
233 | |||
167 | ================================================================================ | 234 | ================================================================================ |
168 | DESIGN | 235 | DESIGN |
169 | ================================================================================ | 236 | ================================================================================ |
diff --git a/Documentation/filesystems/nfs/Exporting b/Documentation/filesystems/nfs/Exporting index 09994c247289..e543b1a619cc 100644 --- a/Documentation/filesystems/nfs/Exporting +++ b/Documentation/filesystems/nfs/Exporting | |||
@@ -93,7 +93,7 @@ For a filesystem to be exportable it must: | |||
93 | 2/ make sure that d_splice_alias is used rather than d_add | 93 | 2/ make sure that d_splice_alias is used rather than d_add |
94 | when ->lookup finds an inode for a given parent and name. | 94 | when ->lookup finds an inode for a given parent and name. |
95 | 95 | ||
96 | If inode is NULL, d_splice_alias(inode, dentry) is eqivalent to | 96 | If inode is NULL, d_splice_alias(inode, dentry) is equivalent to |
97 | 97 | ||
98 | d_add(dentry, inode), NULL | 98 | d_add(dentry, inode), NULL |
99 | 99 | ||
diff --git a/Documentation/filesystems/nfs/pnfs.txt b/Documentation/filesystems/nfs/pnfs.txt index 52ae07f5f578..adc81a35fe2d 100644 --- a/Documentation/filesystems/nfs/pnfs.txt +++ b/Documentation/filesystems/nfs/pnfs.txt | |||
@@ -12,7 +12,7 @@ struct pnfs_layout_hdr | |||
12 | ---------------------- | 12 | ---------------------- |
13 | The on-the-wire command LAYOUTGET corresponds to struct | 13 | The on-the-wire command LAYOUTGET corresponds to struct |
14 | pnfs_layout_segment, usually referred to by the variable name lseg. | 14 | pnfs_layout_segment, usually referred to by the variable name lseg. |
15 | Each nfs_inode may hold a pointer to a cache of of these layout | 15 | Each nfs_inode may hold a pointer to a cache of these layout |
16 | segments in nfsi->layout, of type struct pnfs_layout_hdr. | 16 | segments in nfsi->layout, of type struct pnfs_layout_hdr. |
17 | 17 | ||
18 | We reference the header for the inode pointing to it, across each | 18 | We reference the header for the inode pointing to it, across each |
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt index fcc22c982a25..823c95faebd2 100644 --- a/Documentation/filesystems/proc.txt +++ b/Documentation/filesystems/proc.txt | |||
@@ -854,16 +854,15 @@ Committed_AS: The amount of memory presently allocated on the system. | |||
854 | The committed memory is a sum of all of the memory which | 854 | The committed memory is a sum of all of the memory which |
855 | has been allocated by processes, even if it has not been | 855 | has been allocated by processes, even if it has not been |
856 | "used" by them as of yet. A process which malloc()'s 1G | 856 | "used" by them as of yet. A process which malloc()'s 1G |
857 | of memory, but only touches 300M of it will only show up | 857 | of memory, but only touches 300M of it will show up as |
858 | as using 300M of memory even if it has the address space | 858 | using 1G. This 1G is memory which has been "committed" to |
859 | allocated for the entire 1G. This 1G is memory which has | 859 | by the VM and can be used at any time by the allocating |
860 | been "committed" to by the VM and can be used at any time | 860 | application. With strict overcommit enabled on the system |
861 | by the allocating application. With strict overcommit | 861 | (mode 2 in 'vm.overcommit_memory'),allocations which would |
862 | enabled on the system (mode 2 in 'vm.overcommit_memory'), | 862 | exceed the CommitLimit (detailed above) will not be permitted. |
863 | allocations which would exceed the CommitLimit (detailed | 863 | This is useful if one needs to guarantee that processes will |
864 | above) will not be permitted. This is useful if one needs | 864 | not fail due to lack of memory once that memory has been |
865 | to guarantee that processes will not fail due to lack of | 865 | successfully allocated. |
866 | memory once that memory has been successfully allocated. | ||
867 | VmallocTotal: total size of vmalloc memory area | 866 | VmallocTotal: total size of vmalloc memory area |
868 | VmallocUsed: amount of vmalloc area which is used | 867 | VmallocUsed: amount of vmalloc area which is used |
869 | VmallocChunk: largest contiguous block of vmalloc area which is free | 868 | VmallocChunk: largest contiguous block of vmalloc area which is free |
diff --git a/Documentation/filesystems/qnx6.txt b/Documentation/filesystems/qnx6.txt index 99e90184a72f..408679789136 100644 --- a/Documentation/filesystems/qnx6.txt +++ b/Documentation/filesystems/qnx6.txt | |||
@@ -149,7 +149,7 @@ Bitmap system area | |||
149 | ------------------ | 149 | ------------------ |
150 | 150 | ||
151 | The bitmap itself is divided into three parts. | 151 | The bitmap itself is divided into three parts. |
152 | First the system area, that is split into two halfs. | 152 | First the system area, that is split into two halves. |
153 | Then userspace. | 153 | Then userspace. |
154 | 154 | ||
155 | The requirement for a static, fixed preallocated system area comes from how | 155 | The requirement for a static, fixed preallocated system area comes from how |
diff --git a/Documentation/filesystems/ramfs-rootfs-initramfs.txt b/Documentation/filesystems/ramfs-rootfs-initramfs.txt index 59b4a0962e0f..b176928e6963 100644 --- a/Documentation/filesystems/ramfs-rootfs-initramfs.txt +++ b/Documentation/filesystems/ramfs-rootfs-initramfs.txt | |||
@@ -79,6 +79,10 @@ to just make sure certain lists can't become empty. | |||
79 | Most systems just mount another filesystem over rootfs and ignore it. The | 79 | Most systems just mount another filesystem over rootfs and ignore it. The |
80 | amount of space an empty instance of ramfs takes up is tiny. | 80 | amount of space an empty instance of ramfs takes up is tiny. |
81 | 81 | ||
82 | If CONFIG_TMPFS is enabled, rootfs will use tmpfs instead of ramfs by | ||
83 | default. To force ramfs, add "rootfstype=ramfs" to the kernel command | ||
84 | line. | ||
85 | |||
82 | What is initramfs? | 86 | What is initramfs? |
83 | ------------------ | 87 | ------------------ |
84 | 88 | ||
diff --git a/Documentation/filesystems/relay.txt b/Documentation/filesystems/relay.txt index 510b722667ac..33e2f3694733 100644 --- a/Documentation/filesystems/relay.txt +++ b/Documentation/filesystems/relay.txt | |||
@@ -31,7 +31,7 @@ Semantics | |||
31 | 31 | ||
32 | Each relay channel has one buffer per CPU, each buffer has one or more | 32 | Each relay channel has one buffer per CPU, each buffer has one or more |
33 | sub-buffers. Messages are written to the first sub-buffer until it is | 33 | sub-buffers. Messages are written to the first sub-buffer until it is |
34 | too full to contain a new message, in which case it it is written to | 34 | too full to contain a new message, in which case it is written to |
35 | the next (if available). Messages are never split across sub-buffers. | 35 | the next (if available). Messages are never split across sub-buffers. |
36 | At this point, userspace can be notified so it empties the first | 36 | At this point, userspace can be notified so it empties the first |
37 | sub-buffer, while the kernel continues writing to the next. | 37 | sub-buffer, while the kernel continues writing to the next. |
diff --git a/Documentation/filesystems/sysfs-tagging.txt b/Documentation/filesystems/sysfs-tagging.txt index caaaf1266d8f..eb843e49c5a3 100644 --- a/Documentation/filesystems/sysfs-tagging.txt +++ b/Documentation/filesystems/sysfs-tagging.txt | |||
@@ -24,7 +24,7 @@ flag between KOBJ_NS_TYPE_NONE and KOBJ_NS_TYPES, and s_ns will | |||
24 | point to the namespace to which it belongs. | 24 | point to the namespace to which it belongs. |
25 | 25 | ||
26 | Each sysfs superblock's sysfs_super_info contains an array void | 26 | Each sysfs superblock's sysfs_super_info contains an array void |
27 | *ns[KOBJ_NS_TYPES]. When a a task in a tagging namespace | 27 | *ns[KOBJ_NS_TYPES]. When a task in a tagging namespace |
28 | kobj_nstype first mounts sysfs, a new superblock is created. It | 28 | kobj_nstype first mounts sysfs, a new superblock is created. It |
29 | will be differentiated from other sysfs mounts by having its | 29 | will be differentiated from other sysfs mounts by having its |
30 | s_fs_info->ns[kobj_nstype] set to the new namespace. Note that | 30 | s_fs_info->ns[kobj_nstype] set to the new namespace. Note that |
diff --git a/Documentation/filesystems/xfs.txt b/Documentation/filesystems/xfs.txt index 12525b17d9ed..5be51fd888bd 100644 --- a/Documentation/filesystems/xfs.txt +++ b/Documentation/filesystems/xfs.txt | |||
@@ -135,7 +135,7 @@ default behaviour. | |||
135 | If the memory cost of 8 log buffers is too high on small | 135 | If the memory cost of 8 log buffers is too high on small |
136 | systems, then it may be reduced at some cost to performance | 136 | systems, then it may be reduced at some cost to performance |
137 | on metadata intensive workloads. The logbsize option below | 137 | on metadata intensive workloads. The logbsize option below |
138 | controls the size of each buffer and so is also relevent to | 138 | controls the size of each buffer and so is also relevant to |
139 | this case. | 139 | this case. |
140 | 140 | ||
141 | logbsize=value | 141 | logbsize=value |
diff --git a/Documentation/fmc/carrier.txt b/Documentation/fmc/carrier.txt index 173f6d65c88d..5e4f1dd3e98b 100644 --- a/Documentation/fmc/carrier.txt +++ b/Documentation/fmc/carrier.txt | |||
@@ -213,7 +213,7 @@ The individual methods perform the following tasks: | |||
213 | methods: for example the SPEC driver may define that its carrier | 213 | methods: for example the SPEC driver may define that its carrier |
214 | I2C memory is seen at offset 1M and the internal SPI flash is seen | 214 | I2C memory is seen at offset 1M and the internal SPI flash is seen |
215 | at offset 16M. This multiplexing of several flash memories in the | 215 | at offset 16M. This multiplexing of several flash memories in the |
216 | same address space is is carrier-specific and should only be used | 216 | same address space is carrier-specific and should only be used |
217 | by a driver that has verified the `carrier_name' field. | 217 | by a driver that has verified the `carrier_name' field. |
218 | 218 | ||
219 | 219 | ||
diff --git a/Documentation/hid/uhid.txt b/Documentation/hid/uhid.txt index 3c741214dfbb..dc35a2b75eee 100644 --- a/Documentation/hid/uhid.txt +++ b/Documentation/hid/uhid.txt | |||
@@ -149,11 +149,13 @@ needs. Only UHID_OUTPUT and UHID_OUTPUT_EV have payloads. | |||
149 | is of type "struct uhid_data_req". | 149 | is of type "struct uhid_data_req". |
150 | This may be received even though you haven't received UHID_OPEN, yet. | 150 | This may be received even though you haven't received UHID_OPEN, yet. |
151 | 151 | ||
152 | UHID_OUTPUT_EV: | 152 | UHID_OUTPUT_EV (obsolete): |
153 | Same as UHID_OUTPUT but this contains a "struct input_event" as payload. This | 153 | Same as UHID_OUTPUT but this contains a "struct input_event" as payload. This |
154 | is called for force-feedback, LED or similar events which are received through | 154 | is called for force-feedback, LED or similar events which are received through |
155 | an input device by the HID subsystem. You should convert this into raw reports | 155 | an input device by the HID subsystem. You should convert this into raw reports |
156 | and send them to your device similar to events of type UHID_OUTPUT. | 156 | and send them to your device similar to events of type UHID_OUTPUT. |
157 | This is no longer sent by newer kernels. Instead, HID core converts it into a | ||
158 | raw output report and sends it via UHID_OUTPUT. | ||
157 | 159 | ||
158 | UHID_FEATURE: | 160 | UHID_FEATURE: |
159 | This event is sent if the kernel driver wants to perform a feature request as | 161 | This event is sent if the kernel driver wants to perform a feature request as |
diff --git a/Documentation/hwmon/abituguru-datasheet b/Documentation/hwmon/abituguru-datasheet index 8d2be8a0b1e3..86c0b1251c81 100644 --- a/Documentation/hwmon/abituguru-datasheet +++ b/Documentation/hwmon/abituguru-datasheet | |||
@@ -299,7 +299,7 @@ Byte 1: | |||
299 | min threshold (scale as bank 0x26) | 299 | min threshold (scale as bank 0x26) |
300 | 300 | ||
301 | 301 | ||
302 | Warning for the adventerous | 302 | Warning for the adventurous |
303 | =========================== | 303 | =========================== |
304 | 304 | ||
305 | A word of caution to those who want to experiment and see if they can figure | 305 | A word of caution to those who want to experiment and see if they can figure |
diff --git a/Documentation/hwmon/ads1015 b/Documentation/hwmon/ads1015 index f6fe9c203733..063b80d857b1 100644 --- a/Documentation/hwmon/ads1015 +++ b/Documentation/hwmon/ads1015 | |||
@@ -6,6 +6,10 @@ Supported chips: | |||
6 | Prefix: 'ads1015' | 6 | Prefix: 'ads1015' |
7 | Datasheet: Publicly available at the Texas Instruments website : | 7 | Datasheet: Publicly available at the Texas Instruments website : |
8 | http://focus.ti.com/lit/ds/symlink/ads1015.pdf | 8 | http://focus.ti.com/lit/ds/symlink/ads1015.pdf |
9 | * Texas Instruments ADS1115 | ||
10 | Prefix: 'ads1115' | ||
11 | Datasheet: Publicly available at the Texas Instruments website : | ||
12 | http://focus.ti.com/lit/ds/symlink/ads1115.pdf | ||
9 | 13 | ||
10 | Authors: | 14 | Authors: |
11 | Dirk Eibach, Guntermann & Drunck GmbH <eibach@gdsys.de> | 15 | Dirk Eibach, Guntermann & Drunck GmbH <eibach@gdsys.de> |
@@ -13,9 +17,9 @@ Authors: | |||
13 | Description | 17 | Description |
14 | ----------- | 18 | ----------- |
15 | 19 | ||
16 | This driver implements support for the Texas Instruments ADS1015. | 20 | This driver implements support for the Texas Instruments ADS1015/ADS1115. |
17 | 21 | ||
18 | This device is a 12-bit A-D converter with 4 inputs. | 22 | This device is a 12/16-bit A-D converter with 4 inputs. |
19 | 23 | ||
20 | The inputs can be used single ended or in certain differential combinations. | 24 | The inputs can be used single ended or in certain differential combinations. |
21 | 25 | ||
diff --git a/Documentation/hwmon/htu21 b/Documentation/hwmon/htu21 new file mode 100644 index 000000000000..f39a215fb6ae --- /dev/null +++ b/Documentation/hwmon/htu21 | |||
@@ -0,0 +1,46 @@ | |||
1 | Kernel driver htu21 | ||
2 | =================== | ||
3 | |||
4 | Supported chips: | ||
5 | * Measurement Specialties HTU21D | ||
6 | Prefix: 'htu21' | ||
7 | Addresses scanned: none | ||
8 | Datasheet: Publicly available at the Measurement Specialties website | ||
9 | http://www.meas-spec.com/downloads/HTU21D.pdf | ||
10 | |||
11 | |||
12 | Author: | ||
13 | William Markezana <william.markezana@meas-spec.com> | ||
14 | |||
15 | Description | ||
16 | ----------- | ||
17 | |||
18 | The HTU21D is a humidity and temperature sensor in a DFN package of | ||
19 | only 3 x 3 mm footprint and 0.9 mm height. | ||
20 | |||
21 | The devices communicate with the I2C protocol. All sensors are set to the | ||
22 | same I2C address 0x40, so an entry with I2C_BOARD_INFO("htu21", 0x40) can | ||
23 | be used in the board setup code. | ||
24 | |||
25 | This driver does not auto-detect devices. You will have to instantiate the | ||
26 | devices explicitly. Please see Documentation/i2c/instantiating-devices | ||
27 | for details. | ||
28 | |||
29 | sysfs-Interface | ||
30 | --------------- | ||
31 | |||
32 | temp1_input - temperature input | ||
33 | humidity1_input - humidity input | ||
34 | |||
35 | Notes | ||
36 | ----- | ||
37 | |||
38 | The driver uses the default resolution settings of 12 bit for humidity and 14 | ||
39 | bit for temperature, which results in typical measurement times of 11 ms for | ||
40 | humidity and 44 ms for temperature. To keep self heating below 0.1 degree | ||
41 | Celsius, the device should not be active for more than 10% of the time. For | ||
42 | this reason, the driver performs no more than two measurements per second and | ||
43 | reports cached information if polled more frequently. | ||
44 | |||
45 | Different resolutions, the on-chip heater, using the CRC checksum and reading | ||
46 | the serial number are not supported yet. | ||
diff --git a/Documentation/hwmon/k10temp b/Documentation/hwmon/k10temp index 90956b618025..4dfdc8f83633 100644 --- a/Documentation/hwmon/k10temp +++ b/Documentation/hwmon/k10temp | |||
@@ -12,6 +12,7 @@ Supported chips: | |||
12 | * AMD Family 12h processors: "Llano" (E2/A4/A6/A8-Series) | 12 | * AMD Family 12h processors: "Llano" (E2/A4/A6/A8-Series) |
13 | * AMD Family 14h processors: "Brazos" (C/E/G/Z-Series) | 13 | * AMD Family 14h processors: "Brazos" (C/E/G/Z-Series) |
14 | * AMD Family 15h processors: "Bulldozer" (FX-Series), "Trinity" | 14 | * AMD Family 15h processors: "Bulldozer" (FX-Series), "Trinity" |
15 | * AMD Family 16h processors: "Kabini" | ||
15 | 16 | ||
16 | Prefix: 'k10temp' | 17 | Prefix: 'k10temp' |
17 | Addresses scanned: PCI space | 18 | Addresses scanned: PCI space |
diff --git a/Documentation/hwmon/submitting-patches b/Documentation/hwmon/submitting-patches index 46286460462b..3d1bac399a22 100644 --- a/Documentation/hwmon/submitting-patches +++ b/Documentation/hwmon/submitting-patches | |||
@@ -1,7 +1,7 @@ | |||
1 | How to Get Your Patch Accepted Into the Hwmon Subsystem | 1 | How to Get Your Patch Accepted Into the Hwmon Subsystem |
2 | ------------------------------------------------------- | 2 | ------------------------------------------------------- |
3 | 3 | ||
4 | This text is is a collection of suggestions for people writing patches or | 4 | This text is a collection of suggestions for people writing patches or |
5 | drivers for the hwmon subsystem. Following these suggestions will greatly | 5 | drivers for the hwmon subsystem. Following these suggestions will greatly |
6 | increase the chances of your change being accepted. | 6 | increase the chances of your change being accepted. |
7 | 7 | ||
diff --git a/Documentation/hwmon/w83791d b/Documentation/hwmon/w83791d index 90387c3540f7..f4021a285460 100644 --- a/Documentation/hwmon/w83791d +++ b/Documentation/hwmon/w83791d | |||
@@ -17,7 +17,7 @@ Credits: | |||
17 | Philip Edelbrock <phil@netroedge.com>, | 17 | Philip Edelbrock <phil@netroedge.com>, |
18 | and Mark Studebaker <mdsxyz123@yahoo.com> | 18 | and Mark Studebaker <mdsxyz123@yahoo.com> |
19 | w83792d.c: | 19 | w83792d.c: |
20 | Chunhao Huang <DZShen@Winbond.com.tw>, | 20 | Shane Huang (Winbond), |
21 | Rudolf Marek <r.marek@assembler.cz> | 21 | Rudolf Marek <r.marek@assembler.cz> |
22 | 22 | ||
23 | Additional contributors: | 23 | Additional contributors: |
diff --git a/Documentation/hwmon/w83792d b/Documentation/hwmon/w83792d index 8a023ce0b72e..53f7b6866fec 100644 --- a/Documentation/hwmon/w83792d +++ b/Documentation/hwmon/w83792d | |||
@@ -7,8 +7,7 @@ Supported chips: | |||
7 | Addresses scanned: I2C 0x2c - 0x2f | 7 | Addresses scanned: I2C 0x2c - 0x2f |
8 | Datasheet: http://www.winbond.com.tw | 8 | Datasheet: http://www.winbond.com.tw |
9 | 9 | ||
10 | Author: Chunhao Huang | 10 | Author: Shane Huang (Winbond) |
11 | Contact: DZShen <DZShen@Winbond.com.tw> | ||
12 | 11 | ||
13 | 12 | ||
14 | Module Parameters | 13 | Module Parameters |
diff --git a/Documentation/hwspinlock.txt b/Documentation/hwspinlock.txt index a903ee5e9776..62f7d4ea6e26 100644 --- a/Documentation/hwspinlock.txt +++ b/Documentation/hwspinlock.txt | |||
@@ -241,7 +241,7 @@ int hwspinlock_example2(void) | |||
241 | locks). | 241 | locks). |
242 | Should be called from a process context (this function might sleep). | 242 | Should be called from a process context (this function might sleep). |
243 | Returns the address of hwspinlock on success, or NULL on error (e.g. | 243 | Returns the address of hwspinlock on success, or NULL on error (e.g. |
244 | if the hwspinlock is sill in use). | 244 | if the hwspinlock is still in use). |
245 | 245 | ||
246 | 5. Important structs | 246 | 5. Important structs |
247 | 247 | ||
diff --git a/Documentation/i2c/busses/i2c-piix4 b/Documentation/i2c/busses/i2c-piix4 index a370b2047cf3..c097e0f020fe 100644 --- a/Documentation/i2c/busses/i2c-piix4 +++ b/Documentation/i2c/busses/i2c-piix4 | |||
@@ -73,9 +73,10 @@ this driver on those mainboards. | |||
73 | The ServerWorks Southbridges, the Intel 440MX, and the Victory66 are | 73 | The ServerWorks Southbridges, the Intel 440MX, and the Victory66 are |
74 | identical to the PIIX4 in I2C/SMBus support. | 74 | identical to the PIIX4 in I2C/SMBus support. |
75 | 75 | ||
76 | The AMD SB700 and SP5100 chipsets implement two PIIX4-compatible SMBus | 76 | The AMD SB700, SB800, SP5100 and Hudson-2 chipsets implement two |
77 | controllers. If your BIOS initializes the secondary controller, it will | 77 | PIIX4-compatible SMBus controllers. If your BIOS initializes the |
78 | be detected by this driver as an "Auxiliary SMBus Host Controller". | 78 | secondary controller, it will be detected by this driver as |
79 | an "Auxiliary SMBus Host Controller". | ||
79 | 80 | ||
80 | If you own Force CPCI735 motherboard or other OSB4 based systems you may need | 81 | If you own Force CPCI735 motherboard or other OSB4 based systems you may need |
81 | to change the SMBus Interrupt Select register so the SMBus controller uses | 82 | to change the SMBus Interrupt Select register so the SMBus controller uses |
diff --git a/Documentation/i2c/instantiating-devices b/Documentation/i2c/instantiating-devices index 22182660dda7..c70e7a7638d1 100644 --- a/Documentation/i2c/instantiating-devices +++ b/Documentation/i2c/instantiating-devices | |||
@@ -19,7 +19,7 @@ i2c_board_info which is registered by calling i2c_register_board_info(). | |||
19 | 19 | ||
20 | Example (from omap2 h4): | 20 | Example (from omap2 h4): |
21 | 21 | ||
22 | static struct i2c_board_info __initdata h4_i2c_board_info[] = { | 22 | static struct i2c_board_info h4_i2c_board_info[] __initdata = { |
23 | { | 23 | { |
24 | I2C_BOARD_INFO("isp1301_omap", 0x2d), | 24 | I2C_BOARD_INFO("isp1301_omap", 0x2d), |
25 | .irq = OMAP_GPIO_IRQ(125), | 25 | .irq = OMAP_GPIO_IRQ(125), |
diff --git a/Documentation/i2c/upgrading-clients b/Documentation/i2c/upgrading-clients index d6991625c407..8e5fbd88c7d1 100644 --- a/Documentation/i2c/upgrading-clients +++ b/Documentation/i2c/upgrading-clients | |||
@@ -196,8 +196,8 @@ static int example_probe(struct i2c_client *i2c_client, | |||
196 | 196 | ||
197 | Update the detach method, by changing the name to _remove and | 197 | Update the detach method, by changing the name to _remove and |
198 | to delete the i2c_detach_client call. It is possible that you | 198 | to delete the i2c_detach_client call. It is possible that you |
199 | can also remove the ret variable as it is not not needed for | 199 | can also remove the ret variable as it is not needed for any |
200 | any of the core functions. | 200 | of the core functions. |
201 | 201 | ||
202 | - static int example_detach(struct i2c_client *client) | 202 | - static int example_detach(struct i2c_client *client) |
203 | + static int example_remove(struct i2c_client *client) | 203 | + static int example_remove(struct i2c_client *client) |
diff --git a/Documentation/input/gamepad.txt b/Documentation/input/gamepad.txt new file mode 100644 index 000000000000..8002c894c6b0 --- /dev/null +++ b/Documentation/input/gamepad.txt | |||
@@ -0,0 +1,156 @@ | |||
1 | Linux Gamepad API | ||
2 | ---------------------------------------------------------------------------- | ||
3 | |||
4 | 1. Intro | ||
5 | ~~~~~~~~ | ||
6 | Linux provides many different input drivers for gamepad hardware. To avoid | ||
7 | having user-space deal with different button-mappings for each gamepad, this | ||
8 | document defines how gamepads are supposed to report their data. | ||
9 | |||
10 | 2. Geometry | ||
11 | ~~~~~~~~~~~ | ||
12 | As "gamepad" we define devices which roughly look like this: | ||
13 | |||
14 | ____________________________ __ | ||
15 | / [__ZL__] [__ZR__] \ | | ||
16 | / [__ TL __] [__ TR __] \ | Front Triggers | ||
17 | __/________________________________\__ __| | ||
18 | / _ \ | | ||
19 | / /\ __ (N) \ | | ||
20 | / || __ |MO| __ _ _ \ | Main Pad | ||
21 | | <===DP===> |SE| |ST| (W) -|- (E) | | | ||
22 | \ || ___ ___ _ / | | ||
23 | /\ \/ / \ / \ (S) /\ __| | ||
24 | / \________ | LS | ____ | RS | ________/ \ | | ||
25 | | / \ \___/ / \ \___/ / \ | | Control Sticks | ||
26 | | / \_____/ \_____/ \ | __| | ||
27 | | / \ | | ||
28 | \_____/ \_____/ | ||
29 | |||
30 | |________|______| |______|___________| | ||
31 | D-Pad Left Right Action Pad | ||
32 | Stick Stick | ||
33 | |||
34 | |_____________| | ||
35 | Menu Pad | ||
36 | |||
37 | Most gamepads have the following features: | ||
38 | - Action-Pad | ||
39 | 4 buttons in diamonds-shape (on the right side). The buttons are | ||
40 | differently labeled on most devices so we define them as NORTH, | ||
41 | SOUTH, WEST and EAST. | ||
42 | - D-Pad (Direction-pad) | ||
43 | 4 buttons (on the left side) that point up, down, left and right. | ||
44 | - Menu-Pad | ||
45 | Different constellations, but most-times 2 buttons: SELECT - START | ||
46 | Furthermore, many gamepads have a fancy branded button that is used as | ||
47 | special system-button. It often looks different to the other buttons and | ||
48 | is used to pop up system-menus or system-settings. | ||
49 | - Analog-Sticks | ||
50 | Analog-sticks provide freely moveable sticks to control directions. Not | ||
51 | all devices have both or any, but they are present at most times. | ||
52 | Analog-sticks may also provide a digital button if you press them. | ||
53 | - Triggers | ||
54 | Triggers are located on the upper-side of the pad in vertical direction. | ||
55 | Not all devices provide them, but the upper buttons are normally named | ||
56 | Left- and Right-Triggers, the lower buttons Z-Left and Z-Right. | ||
57 | - Rumble | ||
58 | Many devices provide force-feedback features. But are mostly just | ||
59 | simple rumble motors. | ||
60 | |||
61 | 3. Detection | ||
62 | ~~~~~~~~~~~~ | ||
63 | All gamepads that follow the protocol described here map BTN_GAMEPAD. This is | ||
64 | an alias for BTN_SOUTH/BTN_A. It can be used to identify a gamepad as such. | ||
65 | However, not all gamepads provide all features, so you need to test for all | ||
66 | features that you need, first. How each feature is mapped is described below. | ||
67 | |||
68 | Legacy drivers often don't comply to these rules. As we cannot change them | ||
69 | for backwards-compatibility reasons, you need to provide fixup mappings in | ||
70 | user-space yourself. Some of them might also provide module-options that | ||
71 | change the mappings so you can adivce users to set these. | ||
72 | |||
73 | All new gamepads are supposed to comply with this mapping. Please report any | ||
74 | bugs, if they don't. | ||
75 | |||
76 | There are a lot of less-featured/less-powerful devices out there, which re-use | ||
77 | the buttons from this protocol. However, they try to do this in a compatible | ||
78 | fashion. For example, the "Nintendo Wii Nunchuk" provides two trigger buttons | ||
79 | and one analog stick. It reports them as if it were a gamepad with only one | ||
80 | analog stick and two trigger buttons on the right side. | ||
81 | But that means, that if you only support "real" gamepads, you must test | ||
82 | devices for _all_ reported events that you need. Otherwise, you will also get | ||
83 | devices that report a small subset of the events. | ||
84 | |||
85 | No other devices, that do not look/feel like a gamepad, shall report these | ||
86 | events. | ||
87 | |||
88 | 4. Events | ||
89 | ~~~~~~~~~ | ||
90 | Gamepads report the following events: | ||
91 | |||
92 | Action-Pad: | ||
93 | Every gamepad device has at least 2 action buttons. This means, that every | ||
94 | device reports BTN_SOUTH (which BTN_GAMEPAD is an alias for). Regardless | ||
95 | of the labels on the buttons, the codes are sent according to the | ||
96 | physical position of the buttons. | ||
97 | Please note that 2- and 3-button pads are fairly rare and old. You might | ||
98 | want to filter gamepads that do not report all four. | ||
99 | 2-Button Pad: | ||
100 | If only 2 action-buttons are present, they are reported as BTN_SOUTH and | ||
101 | BTN_EAST. For vertical layouts, the upper button is BTN_EAST. For | ||
102 | horizontal layouts, the button more on the right is BTN_EAST. | ||
103 | 3-Button Pad: | ||
104 | If only 3 action-buttons are present, they are reported as (from left | ||
105 | to right): BTN_WEST, BTN_SOUTH, BTN_EAST | ||
106 | If the buttons are aligned perfectly vertically, they are reported as | ||
107 | (from top down): BTN_WEST, BTN_SOUTH, BTN_EAST | ||
108 | 4-Button Pad: | ||
109 | If all 4 action-buttons are present, they can be aligned in two | ||
110 | different formations. If diamond-shaped, they are reported as BTN_NORTH, | ||
111 | BTN_WEST, BTN_SOUTH, BTN_EAST according to their physical location. | ||
112 | If rectangular-shaped, the upper-left button is BTN_NORTH, lower-left | ||
113 | is BTN_WEST, lower-right is BTN_SOUTH and upper-right is BTN_EAST. | ||
114 | |||
115 | D-Pad: | ||
116 | Every gamepad provides a D-Pad with four directions: Up, Down, Left, Right | ||
117 | Some of these are available as digital buttons, some as analog buttons. Some | ||
118 | may even report both. The kernel does not convert between these so | ||
119 | applications should support both and choose what is more appropriate if | ||
120 | both are reported. | ||
121 | Digital buttons are reported as: | ||
122 | BTN_DPAD_* | ||
123 | Analog buttons are reported as: | ||
124 | ABS_HAT0X and ABS_HAT0Y | ||
125 | |||
126 | Analog-Sticks: | ||
127 | The left analog-stick is reported as ABS_X, ABS_Y. The right analog stick is | ||
128 | reported as ABS_RX, ABS_RY. Zero, one or two sticks may be present. | ||
129 | If analog-sticks provide digital buttons, they are mapped accordingly as | ||
130 | BTN_THUMBL (first/left) and BTN_THUMBR (second/right). | ||
131 | |||
132 | Triggers: | ||
133 | Trigger buttons can be available as digital or analog buttons or both. User- | ||
134 | space must correctly deal with any situation and choose the most appropriate | ||
135 | mode. | ||
136 | Upper trigger buttons are reported as BTN_TR or ABS_HAT1X (right) and BTN_TL | ||
137 | or ABS_HAT1Y (left). Lower trigger buttons are reported as BTN_TR2 or | ||
138 | ABS_HAT2X (right/ZR) and BTN_TL2 or ABS_HAT2Y (left/ZL). | ||
139 | If only one trigger-button combination is present (upper+lower), they are | ||
140 | reported as "right" triggers (BTN_TR/ABS_HAT1X). | ||
141 | |||
142 | Menu-Pad: | ||
143 | Menu buttons are always digital and are mapped according to their location | ||
144 | instead of their labels. That is: | ||
145 | 1-button Pad: Mapped as BTN_START | ||
146 | 2-button Pad: Left button mapped as BTN_SELECT, right button mapped as | ||
147 | BTN_START | ||
148 | Many pads also have a third button which is branded or has a special symbol | ||
149 | and meaning. Such buttons are mapped as BTN_MODE. Examples are the Nintendo | ||
150 | "HOME" button, the XBox "X"-button or Sony "P" button. | ||
151 | |||
152 | Rumble: | ||
153 | Rumble is adverticed as FF_RUMBLE. | ||
154 | |||
155 | ---------------------------------------------------------------------------- | ||
156 | Written 2013 by David Herrmann <dh.herrmann@gmail.com> | ||
diff --git a/Documentation/kbuild/kconfig-language.txt b/Documentation/kbuild/kconfig-language.txt index c858f8419eba..c420676c6fe3 100644 --- a/Documentation/kbuild/kconfig-language.txt +++ b/Documentation/kbuild/kconfig-language.txt | |||
@@ -147,6 +147,7 @@ applicable everywhere (see syntax). | |||
147 | - "modules" | 147 | - "modules" |
148 | This declares the symbol to be used as the MODULES symbol, which | 148 | This declares the symbol to be used as the MODULES symbol, which |
149 | enables the third modular state for all config symbols. | 149 | enables the third modular state for all config symbols. |
150 | At most one symbol may have the "modules" option set. | ||
150 | 151 | ||
151 | - "env"=<value> | 152 | - "env"=<value> |
152 | This imports the environment variable into Kconfig. It behaves like | 153 | This imports the environment variable into Kconfig. It behaves like |
diff --git a/Documentation/kbuild/kconfig.txt b/Documentation/kbuild/kconfig.txt index e349f293cc98..8ef6dbb6a462 100644 --- a/Documentation/kbuild/kconfig.txt +++ b/Documentation/kbuild/kconfig.txt | |||
@@ -175,11 +175,9 @@ Searching in menuconfig: | |||
175 | /^hotplug | 175 | /^hotplug |
176 | 176 | ||
177 | When searching, symbols are sorted thus: | 177 | When searching, symbols are sorted thus: |
178 | - exact match first: an exact match is when the search matches | 178 | - first, exact matches, sorted alphabetically (an exact match |
179 | the complete symbol name; | 179 | is when the search matches the complete symbol name); |
180 | - alphabetical order: when two symbols do not match exactly, | 180 | - then, other matches, sorted alphabetically. |
181 | they are sorted in alphabetical order (in the user's current | ||
182 | locale). | ||
183 | For example: ^ATH.K matches: | 181 | For example: ^ATH.K matches: |
184 | ATH5K ATH9K ATH5K_AHB ATH5K_DEBUG [...] ATH6KL ATH6KL_DEBUG | 182 | ATH5K ATH9K ATH5K_AHB ATH5K_DEBUG [...] ATH6KL ATH6KL_DEBUG |
185 | [...] ATH9K_AHB ATH9K_BTCOEX_SUPPORT ATH9K_COMMON [...] | 183 | [...] ATH9K_AHB ATH9K_BTCOEX_SUPPORT ATH9K_COMMON [...] |
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 15356aca938c..1a036cd972fb 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -235,10 +235,61 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
235 | Format: To spoof as Windows 98: ="Microsoft Windows" | 235 | Format: To spoof as Windows 98: ="Microsoft Windows" |
236 | 236 | ||
237 | acpi_osi= [HW,ACPI] Modify list of supported OS interface strings | 237 | acpi_osi= [HW,ACPI] Modify list of supported OS interface strings |
238 | acpi_osi="string1" # add string1 -- only one string | 238 | acpi_osi="string1" # add string1 |
239 | acpi_osi="!string2" # remove built-in string2 | 239 | acpi_osi="!string2" # remove string2 |
240 | acpi_osi=!* # remove all strings | ||
241 | acpi_osi=! # disable all built-in OS vendor | ||
242 | strings | ||
240 | acpi_osi= # disable all strings | 243 | acpi_osi= # disable all strings |
241 | 244 | ||
245 | 'acpi_osi=!' can be used in combination with single or | ||
246 | multiple 'acpi_osi="string1"' to support specific OS | ||
247 | vendor string(s). Note that such command can only | ||
248 | affect the default state of the OS vendor strings, thus | ||
249 | it cannot affect the default state of the feature group | ||
250 | strings and the current state of the OS vendor strings, | ||
251 | specifying it multiple times through kernel command line | ||
252 | is meaningless. This command is useful when one do not | ||
253 | care about the state of the feature group strings which | ||
254 | should be controlled by the OSPM. | ||
255 | Examples: | ||
256 | 1. 'acpi_osi=! acpi_osi="Windows 2000"' is equivalent | ||
257 | to 'acpi_osi="Windows 2000" acpi_osi=!', they all | ||
258 | can make '_OSI("Windows 2000")' TRUE. | ||
259 | |||
260 | 'acpi_osi=' cannot be used in combination with other | ||
261 | 'acpi_osi=' command lines, the _OSI method will not | ||
262 | exist in the ACPI namespace. NOTE that such command can | ||
263 | only affect the _OSI support state, thus specifying it | ||
264 | multiple times through kernel command line is also | ||
265 | meaningless. | ||
266 | Examples: | ||
267 | 1. 'acpi_osi=' can make 'CondRefOf(_OSI, Local1)' | ||
268 | FALSE. | ||
269 | |||
270 | 'acpi_osi=!*' can be used in combination with single or | ||
271 | multiple 'acpi_osi="string1"' to support specific | ||
272 | string(s). Note that such command can affect the | ||
273 | current state of both the OS vendor strings and the | ||
274 | feature group strings, thus specifying it multiple times | ||
275 | through kernel command line is meaningful. But it may | ||
276 | still not able to affect the final state of a string if | ||
277 | there are quirks related to this string. This command | ||
278 | is useful when one want to control the state of the | ||
279 | feature group strings to debug BIOS issues related to | ||
280 | the OSPM features. | ||
281 | Examples: | ||
282 | 1. 'acpi_osi="Module Device" acpi_osi=!*' can make | ||
283 | '_OSI("Module Device")' FALSE. | ||
284 | 2. 'acpi_osi=!* acpi_osi="Module Device"' can make | ||
285 | '_OSI("Module Device")' TRUE. | ||
286 | 3. 'acpi_osi=! acpi_osi=!* acpi_osi="Windows 2000"' is | ||
287 | equivalent to | ||
288 | 'acpi_osi=!* acpi_osi=! acpi_osi="Windows 2000"' | ||
289 | and | ||
290 | 'acpi_osi=!* acpi_osi="Windows 2000" acpi_osi=!', | ||
291 | they all will make '_OSI("Windows 2000")' TRUE. | ||
292 | |||
242 | acpi_pm_good [X86] | 293 | acpi_pm_good [X86] |
243 | Override the pmtimer bug detection: force the kernel | 294 | Override the pmtimer bug detection: force the kernel |
244 | to assume that this machine's pmtimer latches its value | 295 | to assume that this machine's pmtimer latches its value |
@@ -1847,6 +1898,18 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
1847 | will be sent. | 1898 | will be sent. |
1848 | The default is to send the implementation identification | 1899 | The default is to send the implementation identification |
1849 | information. | 1900 | information. |
1901 | |||
1902 | nfs.recover_lost_locks = | ||
1903 | [NFSv4] Attempt to recover locks that were lost due | ||
1904 | to a lease timeout on the server. Please note that | ||
1905 | doing this risks data corruption, since there are | ||
1906 | no guarantees that the file will remain unchanged | ||
1907 | after the locks are lost. | ||
1908 | If you want to enable the kernel legacy behaviour of | ||
1909 | attempting to recover these locks, then set this | ||
1910 | parameter to '1'. | ||
1911 | The default parameter value of '0' causes the kernel | ||
1912 | not to attempt recovery of lost locks. | ||
1850 | 1913 | ||
1851 | nfsd.nfs4_disable_idmapping= | 1914 | nfsd.nfs4_disable_idmapping= |
1852 | [NFSv4] When set to the default of '1', the NFSv4 | 1915 | [NFSv4] When set to the default of '1', the NFSv4 |
@@ -2953,7 +3016,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
2953 | improve throughput, but will also increase the | 3016 | improve throughput, but will also increase the |
2954 | amount of memory reserved for use by the client. | 3017 | amount of memory reserved for use by the client. |
2955 | 3018 | ||
2956 | swapaccount[=0|1] | 3019 | swapaccount=[0|1] |
2957 | [KNL] Enable accounting of swap in memory resource | 3020 | [KNL] Enable accounting of swap in memory resource |
2958 | controller if no parameter or 1 is given or disable | 3021 | controller if no parameter or 1 is given or disable |
2959 | it if 0 is given (See Documentation/cgroups/memory.txt) | 3022 | it if 0 is given (See Documentation/cgroups/memory.txt) |
@@ -3322,6 +3385,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
3322 | them quite hard to use for exploits but | 3385 | them quite hard to use for exploits but |
3323 | might break your system. | 3386 | might break your system. |
3324 | 3387 | ||
3388 | vt.color= [VT] Default text color. | ||
3389 | Format: 0xYX, X = foreground, Y = background. | ||
3390 | Default: 0x07 = light gray on black. | ||
3391 | |||
3325 | vt.cur_default= [VT] Default cursor shape. | 3392 | vt.cur_default= [VT] Default cursor shape. |
3326 | Format: 0xCCBBAA, where AA, BB, and CC are the same as | 3393 | Format: 0xCCBBAA, where AA, BB, and CC are the same as |
3327 | the parameters of the <Esc>[?A;B;Cc escape sequence; | 3394 | the parameters of the <Esc>[?A;B;Cc escape sequence; |
@@ -3361,6 +3428,12 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
3361 | overridden by individual drivers. 0 will hide | 3428 | overridden by individual drivers. 0 will hide |
3362 | cursors, 1 will display them. | 3429 | cursors, 1 will display them. |
3363 | 3430 | ||
3431 | vt.italic= [VT] Default color for italic text; 0-15. | ||
3432 | Default: 2 = green. | ||
3433 | |||
3434 | vt.underline= [VT] Default color for underlined text; 0-15. | ||
3435 | Default: 3 = cyan. | ||
3436 | |||
3364 | watchdog timers [HW,WDT] For information on watchdog timers, | 3437 | watchdog timers [HW,WDT] For information on watchdog timers, |
3365 | see Documentation/watchdog/watchdog-parameters.txt | 3438 | see Documentation/watchdog/watchdog-parameters.txt |
3366 | or other driver-specific files in the | 3439 | or other driver-specific files in the |
diff --git a/Documentation/kmemcheck.txt b/Documentation/kmemcheck.txt index c28f82895d6b..9398a501fdb9 100644 --- a/Documentation/kmemcheck.txt +++ b/Documentation/kmemcheck.txt | |||
@@ -91,9 +91,9 @@ information from the kmemcheck warnings, which is extremely valuable in | |||
91 | debugging a problem. This option is not mandatory, however, because it slows | 91 | debugging a problem. This option is not mandatory, however, because it slows |
92 | down the compilation process and produces a much bigger kernel image. | 92 | down the compilation process and produces a much bigger kernel image. |
93 | 93 | ||
94 | Now the kmemcheck menu should be visible (under "Kernel hacking" / "kmemcheck: | 94 | Now the kmemcheck menu should be visible (under "Kernel hacking" / "Memory |
95 | trap use of uninitialized memory"). Here follows a description of the | 95 | Debugging" / "kmemcheck: trap use of uninitialized memory"). Here follows |
96 | kmemcheck configuration variables: | 96 | a description of the kmemcheck configuration variables: |
97 | 97 | ||
98 | o CONFIG_KMEMCHECK | 98 | o CONFIG_KMEMCHECK |
99 | 99 | ||
diff --git a/Documentation/ko_KR/HOWTO b/Documentation/ko_KR/HOWTO index 2f48f205fedc..680e64635958 100644 --- a/Documentation/ko_KR/HOWTO +++ b/Documentation/ko_KR/HOWTO | |||
@@ -182,8 +182,8 @@ Documentation/DocBook/ 디렉토리 내에서 만들어지며 PDF, Postscript, H | |||
182 | 프로젝트를 봐야 한다. | 182 | 프로젝트를 봐야 한다. |
183 | http://kernelnewbies.org | 183 | http://kernelnewbies.org |
184 | 그곳은 거의 모든 종류의 기본적인 커널 개발 질문들(질문하기 전에 먼저 | 184 | 그곳은 거의 모든 종류의 기본적인 커널 개발 질문들(질문하기 전에 먼저 |
185 | 아카이브를 찾아봐라. 과거에 이미 답변되었을 수도 있다)을 할수있는 도움이 | 185 | 아카이브를 찾아봐라. 과거에 이미 답변되었을 수도 있다)을 할 수 있는 도움이 |
186 | 될만한 메일링 리스트가 있다. 또한 실시간으로 질문 할수 있는 IRC 채널도 | 186 | 될만한 메일링 리스트가 있다. 또한 실시간으로 질문 할 수 있는 IRC 채널도 |
187 | 가지고 있으며 리눅스 커널 개발을 배우는 데 유용한 문서들을 보유하고 있다. | 187 | 가지고 있으며 리눅스 커널 개발을 배우는 데 유용한 문서들을 보유하고 있다. |
188 | 188 | ||
189 | 웹사이트는 코드구성, 서브시스템들, 그리고 현재 프로젝트들 | 189 | 웹사이트는 코드구성, 서브시스템들, 그리고 현재 프로젝트들 |
@@ -245,7 +245,7 @@ Documentation/DocBook/ 디렉토리 내에서 만들어지며 PDF, Postscript, H | |||
245 | 것을 기억해라. 왜냐하면 변경이 자체내에서만 발생하고 추가된 코드가 | 245 | 것을 기억해라. 왜냐하면 변경이 자체내에서만 발생하고 추가된 코드가 |
246 | 드라이버 외부의 다른 부분에는 영향을 주지 않으므로 그런 변경은 | 246 | 드라이버 외부의 다른 부분에는 영향을 주지 않으므로 그런 변경은 |
247 | 회귀(역자주: 이전에는 존재하지 않았지만 새로운 기능추가나 변경으로 인해 | 247 | 회귀(역자주: 이전에는 존재하지 않았지만 새로운 기능추가나 변경으로 인해 |
248 | 생겨난 버그)를 일으킬 만한 위험을 가지고 있지 않기 때문이다. -rc1이 | 248 | 생겨난 버그)를 일으킬 만한 위험을 가지고 있지 않기 때문이다. -rc1이 |
249 | 배포된 이후에 git를 사용하여 패치들을 Linus에게 보낼수 있지만 패치들은 | 249 | 배포된 이후에 git를 사용하여 패치들을 Linus에게 보낼수 있지만 패치들은 |
250 | 공식적인 메일링 리스트로 보내서 검토를 받을 필요가 있다. | 250 | 공식적인 메일링 리스트로 보내서 검토를 받을 필요가 있다. |
251 | - 새로운 -rc는 Linus가 현재 git tree가 테스트 하기에 충분히 안정된 상태에 | 251 | - 새로운 -rc는 Linus가 현재 git tree가 테스트 하기에 충분히 안정된 상태에 |
@@ -455,7 +455,7 @@ bugme-janitor 메일링 리스트(bugzilla에 모든 변화들이 여기서 메 | |||
455 | - 의견 | 455 | - 의견 |
456 | - 변경을 위한 요구 | 456 | - 변경을 위한 요구 |
457 | - 당위성을 위한 요구 | 457 | - 당위성을 위한 요구 |
458 | - 고 | 458 | - 묵 |
459 | 459 | ||
460 | 기억하라. 이것들은 여러분의 패치가 커널로 들어가기 위한 과정이다. 여러분의 | 460 | 기억하라. 이것들은 여러분의 패치가 커널로 들어가기 위한 과정이다. 여러분의 |
461 | 패치들은 비판과 다른 의견을 받을 수 있고 그것들을 기술적인 레벨로 평가하고 | 461 | 패치들은 비판과 다른 의견을 받을 수 있고 그것들을 기술적인 레벨로 평가하고 |
@@ -472,7 +472,7 @@ bugme-janitor 메일링 리스트(bugzilla에 모든 변화들이 여기서 메 | |||
472 | 가능한한 가장 좋은 기술적인 해답을 찾고 있는 커뮤니티에서는 항상 | 472 | 가능한한 가장 좋은 기술적인 해답을 찾고 있는 커뮤니티에서는 항상 |
473 | 어떤 패치가 얼마나 좋은지에 관하여 다른 의견들이 있을 수 있다. 여러분은 | 473 | 어떤 패치가 얼마나 좋은지에 관하여 다른 의견들이 있을 수 있다. 여러분은 |
474 | 협조적이어야 하고 기꺼이 여러분의 생각을 커널 내에 맞추어야 한다. 아니면 | 474 | 협조적이어야 하고 기꺼이 여러분의 생각을 커널 내에 맞추어야 한다. 아니면 |
475 | 적어도 여러분의 것이 가치있다는 것을 명하여야 한다. 잘못된 것도 여러분이 | 475 | 적어도 여러분의 것이 가치있다는 것을 명하여야 한다. 잘못된 것도 여러분이 |
476 | 올바른 방향의 해결책으로 이끌어갈 의지가 있다면 받아들여질 것이라는 점을 | 476 | 올바른 방향의 해결책으로 이끌어갈 의지가 있다면 받아들여질 것이라는 점을 |
477 | 기억하라. | 477 | 기억하라. |
478 | 478 | ||
@@ -488,21 +488,21 @@ bugme-janitor 메일링 리스트(bugzilla에 모든 변화들이 여기서 메 | |||
488 | 커널 커뮤니티는 가장 전통적인 회사의 개발 환경과는 다르다. 여기에 여러분들의 | 488 | 커널 커뮤니티는 가장 전통적인 회사의 개발 환경과는 다르다. 여기에 여러분들의 |
489 | 문제를 피하기 위한 목록이 있다. | 489 | 문제를 피하기 위한 목록이 있다. |
490 | 여러분들이 제안한 변경들에 관하여 말할 때 좋은 것들 : | 490 | 여러분들이 제안한 변경들에 관하여 말할 때 좋은 것들 : |
491 | - "이것은 여러 문제들을 해합니다." | 491 | - "이것은 여러 문제들을 해합니다." |
492 | - "이것은 2000 라인의 코드를 거합니다." | 492 | - "이것은 2000 라인의 코드를 입니다." |
493 | - "이것은 내가 말하려는 것에 관해 설명하는 패치입니다." | 493 | - "이것은 내가 말하려는 것에 관해 설명하는 패치입니다." |
494 | - "나는 5개의 다른 아키텍쳐에서 그것을 테스트했로..." | 494 | - "나는 5개의 다른 아키텍쳐에서 그것을 테스트 했으..." |
495 | - "여기에 일련의 작은 패치들이 있음로..." | 495 | - "여기에 일련의 작은 패치들이 있..." |
496 | - "이것은 일반적인 머신에서 성능을 향상시으로..." | 496 | - "이것은 일반적인 머신에서 성능을 향상으로..." |
497 | 497 | ||
498 | 여러분들이 말할 때 피해야 할 좋지 않은 것들 : | 498 | 여러분들이 말할 때 피해야 할 좋지 않은 것들 : |
499 | - "우리를 그것을 AIT/ptx/Solaris에서 이러한 방법으로 했다. 그러므로 그것은 좋은 것임에 틀립없다..." | 499 | - "우리는 그것을 AIX/ptx/Solaris에서 이러한 방법으로 했다. 그러므로 그것은 좋은 것임에 틀림없다..." |
500 | - "나는 20년동안 이것을 해왔다. 그러므로..." | 500 | - "나는 20년동안 이것을 해왔다. 그러므로..." |
501 | - "이것은 돈을 벌기위해 나의 회사가 필요로 하는 것이다." | 501 | - "이것은 돈을 벌기위해 나의 회사가 필요로 하는 것이다." |
502 | - "이것은 우리의 엔터프라이즈 상품 라인을 위한 것이다." | 502 | - "이것은 우리의 엔터프라이즈 상품 라인을 위한 것이다." |
503 | - "여기에 나의 생각을 말하고 있는 1000 페이지 설계 문서가 있다." | 503 | - "여기에 나의 생각을 말하고 있는 1000 페이지 설계 문서가 있다." |
504 | - "나는 6달동안 이것을 했으니..." | 504 | - "나는 6달동안 이것을 했으니..." |
505 | - "여기에 5000라인 짜리 패치가 있으니..." | 505 | - "여기에 5000 라인 짜리 패치가 있으니..." |
506 | - "나는 현재 뒤죽박죽인 것을 재작성했다. 그리고 여기에..." | 506 | - "나는 현재 뒤죽박죽인 것을 재작성했다. 그리고 여기에..." |
507 | - "나는 마감시한을 가지고 있으므로 이 패치는 지금 적용될 필요가 있다." | 507 | - "나는 마감시한을 가지고 있으므로 이 패치는 지금 적용될 필요가 있다." |
508 | 508 | ||
@@ -574,6 +574,7 @@ Pat이라는 이름을 가진 여자가 있을 수도 있는 것이다. 리눅 | |||
574 | 또한 완성되지 않았고 "나중에 수정될 것이다." 와 같은 것들을 포함하는 | 574 | 또한 완성되지 않았고 "나중에 수정될 것이다." 와 같은 것들을 포함하는 |
575 | 패치들은 받아들여지지 않을 것이라는 점을 유념하라. | 575 | 패치들은 받아들여지지 않을 것이라는 점을 유념하라. |
576 | 576 | ||
577 | |||
577 | 변경을 정당화해라 | 578 | 변경을 정당화해라 |
578 | ----------------- | 579 | ----------------- |
579 | 580 | ||
diff --git a/Documentation/ko_KR/stable_api_nonsense.txt b/Documentation/ko_KR/stable_api_nonsense.txt index 8f2b0e1d98c4..51f85ade4190 100644 --- a/Documentation/ko_KR/stable_api_nonsense.txt +++ b/Documentation/ko_KR/stable_api_nonsense.txt | |||
@@ -106,12 +106,12 @@ Greg Kroah-Hartman <greg@kroah.com> | |||
106 | --------------------------------- | 106 | --------------------------------- |
107 | 107 | ||
108 | 리눅스 커널 드라이버를 계속해서 메인 커널 트리에 반영하지 않고 | 108 | 리눅스 커널 드라이버를 계속해서 메인 커널 트리에 반영하지 않고 |
109 | 유지보수하려고 하는 사들과 이 문제를 논의하게 되면 훨씬 더 | 109 | 유지보수하려고 하는 사들과 이 문제를 논의하게 되면 훨씬 더 |
110 | "논란의 여지가 많은" 주제가 될 것이다. | 110 | "논란의 여지가 많은" 주제가 될 것이다. |
111 | 111 | ||
112 | 리눅스 커널 개발은 끊임없이 빠른 속도로 이루어지고 있으며 결코 | 112 | 리눅스 커널 개발은 끊임없이 빠른 속도로 이루어지고 있으며 결코 |
113 | 느슨해진 적이 없다. 커널 개발자들이 현재 인터페이스들에서 버그를 | 113 | 느슨해진 적이 없다. 커널 개발자들이 현재 인터페이스들에서 버그를 |
114 | 발견하거나 무엇인가 할수 있는 더 좋은 방법을 찾게 되었다고 하자. | 114 | 발견하거나 무엇인가 할 수 있는 더 좋은 방법을 찾게 되었다고 하자. |
115 | 그들이 발견한 것을 실행한다면 아마도 더 잘 동작하도록 현재 인터페이스들을 | 115 | 그들이 발견한 것을 실행한다면 아마도 더 잘 동작하도록 현재 인터페이스들을 |
116 | 수정하게 될 것이다. 그들이 그런 일을 하게되면 함수 이름들은 변하게 되고, | 116 | 수정하게 될 것이다. 그들이 그런 일을 하게되면 함수 이름들은 변하게 되고, |
117 | 구조체들은 늘어나거나 줄어들게 되고, 함수 파라미터들은 재작업될 것이다. | 117 | 구조체들은 늘어나거나 줄어들게 되고, 함수 파라미터들은 재작업될 것이다. |
@@ -174,7 +174,7 @@ GPL을 따르는 배포 드라이버에 관해 얘기하고 있다는 것을 상 | |||
174 | 동작하는 것을 보장한다. | 174 | 동작하는 것을 보장한다. |
175 | 175 | ||
176 | 메인 커널 트리에 여러분의 드라이버를 반영하면 얻게 되는 장점들은 다음과 같다. | 176 | 메인 커널 트리에 여러분의 드라이버를 반영하면 얻게 되는 장점들은 다음과 같다. |
177 | - 관리 드는 비용(원래 개발자의)은 줄어줄면서 드라이버의 질은 향상될 것이다. | 177 | - 관리 드는 비용(원래 개발자의)은 줄어줄면서 드라이버의 질은 향상될 것이다. |
178 | - 다른 개발자들이 여러분의 드라이버에 기능들을 추가 할 것이다. | 178 | - 다른 개발자들이 여러분의 드라이버에 기능들을 추가 할 것이다. |
179 | - 다른 사람들은 여러분의 드라이버에 버그를 발견하고 수정할 것이다. | 179 | - 다른 사람들은 여러분의 드라이버에 버그를 발견하고 수정할 것이다. |
180 | - 다른 사람들은 여러분의 드라이버의 개선점을 찾을 줄 것이다. | 180 | - 다른 사람들은 여러분의 드라이버의 개선점을 찾을 줄 것이다. |
diff --git a/Documentation/laptops/asus-laptop.txt b/Documentation/laptops/asus-laptop.txt index 69f9fb3701e0..79a1bc675a8d 100644 --- a/Documentation/laptops/asus-laptop.txt +++ b/Documentation/laptops/asus-laptop.txt | |||
@@ -8,8 +8,8 @@ http://acpi4asus.sf.net/ | |||
8 | 8 | ||
9 | This driver provides support for extra features of ACPI-compatible ASUS laptops. | 9 | This driver provides support for extra features of ACPI-compatible ASUS laptops. |
10 | It may also support some MEDION, JVC or VICTOR laptops (such as MEDION 9675 or | 10 | It may also support some MEDION, JVC or VICTOR laptops (such as MEDION 9675 or |
11 | VICTOR XP7210 for example). It makes all the extra buttons generate standard | 11 | VICTOR XP7210 for example). It makes all the extra buttons generate input |
12 | ACPI events that go through /proc/acpi/events and input events (like keyboards). | 12 | events (like keyboards). |
13 | On some models adds support for changing the display brightness and output, | 13 | On some models adds support for changing the display brightness and output, |
14 | switching the LCD backlight on and off, and most importantly, allows you to | 14 | switching the LCD backlight on and off, and most importantly, allows you to |
15 | blink those fancy LEDs intended for reporting mail and wireless status. | 15 | blink those fancy LEDs intended for reporting mail and wireless status. |
@@ -55,8 +55,8 @@ Usage | |||
55 | DSDT) to me. | 55 | DSDT) to me. |
56 | 56 | ||
57 | That's all, now, all the events generated by the hotkeys of your laptop | 57 | That's all, now, all the events generated by the hotkeys of your laptop |
58 | should be reported in your /proc/acpi/event entry. You can check with | 58 | should be reported via netlink events. You can check with |
59 | "acpi_listen". | 59 | "acpi_genl monitor" (part of the acpica project). |
60 | 60 | ||
61 | Hotkeys are also reported as input keys (like keyboards) you can check | 61 | Hotkeys are also reported as input keys (like keyboards) you can check |
62 | which key are supported using "xev" under X11. | 62 | which key are supported using "xev" under X11. |
diff --git a/Documentation/laptops/sony-laptop.txt b/Documentation/laptops/sony-laptop.txt index 0d5ac7f5287e..978b1e615155 100644 --- a/Documentation/laptops/sony-laptop.txt +++ b/Documentation/laptops/sony-laptop.txt | |||
@@ -12,10 +12,10 @@ Fn keys (hotkeys): | |||
12 | ------------------ | 12 | ------------------ |
13 | Some models report hotkeys through the SNC or SPIC devices, such events are | 13 | Some models report hotkeys through the SNC or SPIC devices, such events are |
14 | reported both through the ACPI subsystem as acpi events and through the INPUT | 14 | reported both through the ACPI subsystem as acpi events and through the INPUT |
15 | subsystem. See the logs of acpid or /proc/acpi/event and | 15 | subsystem. See the logs of /proc/bus/input/devices to find out what those |
16 | /proc/bus/input/devices to find out what those events are and which input | 16 | events are and which input devices are created by the driver. |
17 | devices are created by the driver. Additionally, loading the driver with the | 17 | Additionally, loading the driver with the debug option will report all events |
18 | debug option will report all events in the kernel log. | 18 | in the kernel log. |
19 | 19 | ||
20 | The "scancodes" passed to the input system (that can be remapped with udev) | 20 | The "scancodes" passed to the input system (that can be remapped with udev) |
21 | are indexes to the table "sony_laptop_input_keycode_map" in the sony-laptop.c | 21 | are indexes to the table "sony_laptop_input_keycode_map" in the sony-laptop.c |
diff --git a/Documentation/laptops/thinkpad-acpi.txt b/Documentation/laptops/thinkpad-acpi.txt index cf7bc6cb9719..86c52360ffe7 100644 --- a/Documentation/laptops/thinkpad-acpi.txt +++ b/Documentation/laptops/thinkpad-acpi.txt | |||
@@ -329,20 +329,6 @@ sysfs notes: | |||
329 | 329 | ||
330 | This attribute has poll()/select() support. | 330 | This attribute has poll()/select() support. |
331 | 331 | ||
332 | hotkey_report_mode: | ||
333 | Returns the state of the procfs ACPI event report mode | ||
334 | filter for hot keys. If it is set to 1 (the default), | ||
335 | all hot key presses are reported both through the input | ||
336 | layer and also as ACPI events through procfs (but not | ||
337 | through netlink). If it is set to 2, hot key presses | ||
338 | are reported only through the input layer. | ||
339 | |||
340 | This attribute is read-only in kernels 2.6.23 or later, | ||
341 | and read-write on earlier kernels. | ||
342 | |||
343 | May return -EPERM (write access locked out by module | ||
344 | parameter) or -EACCES (read-only). | ||
345 | |||
346 | wakeup_reason: | 332 | wakeup_reason: |
347 | Set to 1 if the system is waking up because the user | 333 | Set to 1 if the system is waking up because the user |
348 | requested a bay ejection. Set to 2 if the system is | 334 | requested a bay ejection. Set to 2 if the system is |
@@ -518,24 +504,21 @@ SW_TABLET_MODE Tablet ThinkPads HKEY events 0x5009 and 0x500A | |||
518 | Non hotkey ACPI HKEY event map: | 504 | Non hotkey ACPI HKEY event map: |
519 | ------------------------------- | 505 | ------------------------------- |
520 | 506 | ||
521 | Events that are not propagated by the driver, except for legacy | ||
522 | compatibility purposes when hotkey_report_mode is set to 1: | ||
523 | |||
524 | 0x5001 Lid closed | ||
525 | 0x5002 Lid opened | ||
526 | 0x5009 Tablet swivel: switched to tablet mode | ||
527 | 0x500A Tablet swivel: switched to normal mode | ||
528 | 0x7000 Radio Switch may have changed state | ||
529 | |||
530 | Events that are never propagated by the driver: | 507 | Events that are never propagated by the driver: |
531 | 508 | ||
532 | 0x2304 System is waking up from suspend to undock | 509 | 0x2304 System is waking up from suspend to undock |
533 | 0x2305 System is waking up from suspend to eject bay | 510 | 0x2305 System is waking up from suspend to eject bay |
534 | 0x2404 System is waking up from hibernation to undock | 511 | 0x2404 System is waking up from hibernation to undock |
535 | 0x2405 System is waking up from hibernation to eject bay | 512 | 0x2405 System is waking up from hibernation to eject bay |
513 | 0x5001 Lid closed | ||
514 | 0x5002 Lid opened | ||
515 | 0x5009 Tablet swivel: switched to tablet mode | ||
516 | 0x500A Tablet swivel: switched to normal mode | ||
536 | 0x5010 Brightness level changed/control event | 517 | 0x5010 Brightness level changed/control event |
537 | 0x6000 KEYBOARD: Numlock key pressed | 518 | 0x6000 KEYBOARD: Numlock key pressed |
538 | 0x6005 KEYBOARD: Fn key pressed (TO BE VERIFIED) | 519 | 0x6005 KEYBOARD: Fn key pressed (TO BE VERIFIED) |
520 | 0x7000 Radio Switch may have changed state | ||
521 | |||
539 | 522 | ||
540 | Events that are propagated by the driver to userspace: | 523 | Events that are propagated by the driver to userspace: |
541 | 524 | ||
@@ -574,50 +557,6 @@ operating system is to force either an immediate suspend or hibernate | |||
574 | cycle, or a system shutdown. Obviously, something is very wrong if this | 557 | cycle, or a system shutdown. Obviously, something is very wrong if this |
575 | happens. | 558 | happens. |
576 | 559 | ||
577 | Compatibility notes: | ||
578 | |||
579 | ibm-acpi and thinkpad-acpi 0.15 (mainline kernels before 2.6.23) never | ||
580 | supported the input layer, and sent events over the procfs ACPI event | ||
581 | interface. | ||
582 | |||
583 | To avoid sending duplicate events over the input layer and the ACPI | ||
584 | event interface, thinkpad-acpi 0.16 implements a module parameter | ||
585 | (hotkey_report_mode), and also a sysfs device attribute with the same | ||
586 | name. | ||
587 | |||
588 | Make no mistake here: userspace is expected to switch to using the input | ||
589 | layer interface of thinkpad-acpi, together with the ACPI netlink event | ||
590 | interface in kernels 2.6.23 and later, or with the ACPI procfs event | ||
591 | interface in kernels 2.6.22 and earlier. | ||
592 | |||
593 | If no hotkey_report_mode module parameter is specified (or it is set to | ||
594 | zero), the driver defaults to mode 1 (see below), and on kernels 2.6.22 | ||
595 | and earlier, also allows one to change the hotkey_report_mode through | ||
596 | sysfs. In kernels 2.6.23 and later, where the netlink ACPI event | ||
597 | interface is available, hotkey_report_mode cannot be changed through | ||
598 | sysfs (it is read-only). | ||
599 | |||
600 | If the hotkey_report_mode module parameter is set to 1 or 2, it cannot | ||
601 | be changed later through sysfs (any writes will return -EPERM to signal | ||
602 | that hotkey_report_mode was locked. On 2.6.23 and later, where | ||
603 | hotkey_report_mode cannot be changed at all, writes will return -EACCES). | ||
604 | |||
605 | hotkey_report_mode set to 1 makes the driver export through the procfs | ||
606 | ACPI event interface all hot key presses (which are *also* sent to the | ||
607 | input layer). This is a legacy compatibility behaviour, and it is also | ||
608 | the default mode of operation for the driver. | ||
609 | |||
610 | hotkey_report_mode set to 2 makes the driver filter out the hot key | ||
611 | presses from the procfs ACPI event interface, so these events will only | ||
612 | be sent through the input layer. Userspace that has been updated to use | ||
613 | the thinkpad-acpi input layer interface should set hotkey_report_mode to | ||
614 | 2. | ||
615 | |||
616 | Hot key press events are never sent to the ACPI netlink event interface. | ||
617 | Really up-to-date userspace under kernel 2.6.23 and later is to use the | ||
618 | netlink interface and the input layer interface, and don't bother at all | ||
619 | with hotkey_report_mode. | ||
620 | |||
621 | 560 | ||
622 | Brightness hotkey notes: | 561 | Brightness hotkey notes: |
623 | 562 | ||
diff --git a/Documentation/leds/leds-lm3556.txt b/Documentation/leds/leds-lm3556.txt index d9eb91b51913..62278e871b50 100644 --- a/Documentation/leds/leds-lm3556.txt +++ b/Documentation/leds/leds-lm3556.txt | |||
@@ -71,7 +71,7 @@ To register the chip at address 0x63 on specific adapter, set the platform data | |||
71 | according to include/linux/platform_data/leds-lm3556.h, set the i2c board info | 71 | according to include/linux/platform_data/leds-lm3556.h, set the i2c board info |
72 | 72 | ||
73 | Example: | 73 | Example: |
74 | static struct i2c_board_info __initdata board_i2c_ch4[] = { | 74 | static struct i2c_board_info board_i2c_ch4[] __initdata = { |
75 | { | 75 | { |
76 | I2C_BOARD_INFO(LM3556_NAME, 0x63), | 76 | I2C_BOARD_INFO(LM3556_NAME, 0x63), |
77 | .platform_data = &lm3556_pdata, | 77 | .platform_data = &lm3556_pdata, |
diff --git a/Documentation/leds/leds-lp3944.txt b/Documentation/leds/leds-lp3944.txt index c6eda18b15ef..e88ac3b60c08 100644 --- a/Documentation/leds/leds-lp3944.txt +++ b/Documentation/leds/leds-lp3944.txt | |||
@@ -37,7 +37,7 @@ registered using the i2c_board_info mechanism. | |||
37 | To register the chip at address 0x60 on adapter 0, set the platform data | 37 | To register the chip at address 0x60 on adapter 0, set the platform data |
38 | according to include/linux/leds-lp3944.h, set the i2c board info: | 38 | according to include/linux/leds-lp3944.h, set the i2c board info: |
39 | 39 | ||
40 | static struct i2c_board_info __initdata a910_i2c_board_info[] = { | 40 | static struct i2c_board_info a910_i2c_board_info[] __initdata = { |
41 | { | 41 | { |
42 | I2C_BOARD_INFO("lp3944", 0x60), | 42 | I2C_BOARD_INFO("lp3944", 0x60), |
43 | .platform_data = &a910_lp3944_leds, | 43 | .platform_data = &a910_lp3944_leds, |
diff --git a/Documentation/memory-barriers.txt b/Documentation/memory-barriers.txt index fa5d8a9ae205..c8c42e64e953 100644 --- a/Documentation/memory-barriers.txt +++ b/Documentation/memory-barriers.txt | |||
@@ -531,9 +531,10 @@ dependency barrier to make it work correctly. Consider the following bit of | |||
531 | code: | 531 | code: |
532 | 532 | ||
533 | q = &a; | 533 | q = &a; |
534 | if (p) | 534 | if (p) { |
535 | <data dependency barrier> | ||
535 | q = &b; | 536 | q = &b; |
536 | <data dependency barrier> | 537 | } |
537 | x = *q; | 538 | x = *q; |
538 | 539 | ||
539 | This will not have the desired effect because there is no actual data | 540 | This will not have the desired effect because there is no actual data |
@@ -542,9 +543,10 @@ attempting to predict the outcome in advance. In such a case what's actually | |||
542 | required is: | 543 | required is: |
543 | 544 | ||
544 | q = &a; | 545 | q = &a; |
545 | if (p) | 546 | if (p) { |
547 | <read barrier> | ||
546 | q = &b; | 548 | q = &b; |
547 | <read barrier> | 549 | } |
548 | x = *q; | 550 | x = *q; |
549 | 551 | ||
550 | 552 | ||
diff --git a/Documentation/memory-hotplug.txt b/Documentation/memory-hotplug.txt index 8e5eacbdcfa3..58340d50f8a6 100644 --- a/Documentation/memory-hotplug.txt +++ b/Documentation/memory-hotplug.txt | |||
@@ -163,7 +163,7 @@ a recent addition and not present on older kernels. | |||
163 | at read: contains online/offline state of memory. | 163 | at read: contains online/offline state of memory. |
164 | at write: user can specify "online_kernel", | 164 | at write: user can specify "online_kernel", |
165 | "online_movable", "online", "offline" command | 165 | "online_movable", "online", "offline" command |
166 | which will be performed on al sections in the block. | 166 | which will be performed on all sections in the block. |
167 | 'phys_device' : read-only: designed to show the name of physical memory | 167 | 'phys_device' : read-only: designed to show the name of physical memory |
168 | device. This is not well implemented now. | 168 | device. This is not well implemented now. |
169 | 'removable' : read-only: contains an integer value indicating | 169 | 'removable' : read-only: contains an integer value indicating |
@@ -210,13 +210,15 @@ If memory device is found, memory hotplug code will be called. | |||
210 | 210 | ||
211 | 4.2 Notify memory hot-add event by hand | 211 | 4.2 Notify memory hot-add event by hand |
212 | ------------ | 212 | ------------ |
213 | In some environments, especially virtualized environment, firmware will not | 213 | On powerpc, the firmware does not notify a memory hotplug event to the kernel. |
214 | notify memory hotplug event to the kernel. For such environment, "probe" | 214 | Therefore, "probe" interface is supported to notify the event to the kernel. |
215 | interface is supported. This interface depends on CONFIG_ARCH_MEMORY_PROBE. | 215 | This interface depends on CONFIG_ARCH_MEMORY_PROBE. |
216 | 216 | ||
217 | Now, CONFIG_ARCH_MEMORY_PROBE is supported only by powerpc but it does not | 217 | CONFIG_ARCH_MEMORY_PROBE is supported on powerpc only. On x86, this config |
218 | contain highly architecture codes. Please add config if you need "probe" | 218 | option is disabled by default since ACPI notifies a memory hotplug event to |
219 | interface. | 219 | the kernel, which performs its hotplug operation as the result. Please |
220 | enable this option if you need the "probe" interface for testing purposes | ||
221 | on x86. | ||
220 | 222 | ||
221 | Probe interface is located at | 223 | Probe interface is located at |
222 | /sys/devices/system/memory/probe | 224 | /sys/devices/system/memory/probe |
diff --git a/Documentation/mtd/nand_ecc.txt b/Documentation/mtd/nand_ecc.txt index 990efd7a9818..e129b2479ea8 100644 --- a/Documentation/mtd/nand_ecc.txt +++ b/Documentation/mtd/nand_ecc.txt | |||
@@ -543,7 +543,7 @@ THe code within the for loop was changed to: | |||
543 | } | 543 | } |
544 | 544 | ||
545 | As you can see tmppar is used to accumulate the parity within a for | 545 | As you can see tmppar is used to accumulate the parity within a for |
546 | iteration. In the last 3 statements is is added to par and, if needed, | 546 | iteration. In the last 3 statements is added to par and, if needed, |
547 | to rp12 and rp14. | 547 | to rp12 and rp14. |
548 | 548 | ||
549 | While making the changes I also found that I could exploit that tmppar | 549 | While making the changes I also found that I could exploit that tmppar |
diff --git a/Documentation/networking/00-INDEX b/Documentation/networking/00-INDEX index 32dfbd924121..f11580f8719a 100644 --- a/Documentation/networking/00-INDEX +++ b/Documentation/networking/00-INDEX | |||
@@ -86,6 +86,8 @@ generic_netlink.txt | |||
86 | - info on Generic Netlink | 86 | - info on Generic Netlink |
87 | gianfar.txt | 87 | gianfar.txt |
88 | - Gianfar Ethernet Driver. | 88 | - Gianfar Ethernet Driver. |
89 | i40e.txt | ||
90 | - README for the Intel Ethernet Controller XL710 Driver (i40e). | ||
89 | ieee802154.txt | 91 | ieee802154.txt |
90 | - Linux IEEE 802.15.4 implementation, API and drivers | 92 | - Linux IEEE 802.15.4 implementation, API and drivers |
91 | igb.txt | 93 | igb.txt |
@@ -124,6 +126,8 @@ multiqueue.txt | |||
124 | - HOWTO for multiqueue network device support. | 126 | - HOWTO for multiqueue network device support. |
125 | netconsole.txt | 127 | netconsole.txt |
126 | - The network console module netconsole.ko: configuration and notes. | 128 | - The network console module netconsole.ko: configuration and notes. |
129 | netdev-FAQ.txt | ||
130 | - FAQ describing how to submit net changes to netdev mailing list. | ||
127 | netdev-features.txt | 131 | netdev-features.txt |
128 | - Network interface features API description. | 132 | - Network interface features API description. |
129 | netdevices.txt | 133 | netdevices.txt |
diff --git a/Documentation/networking/e100.txt b/Documentation/networking/e100.txt index fcb6c71cdb69..13a32124bca0 100644 --- a/Documentation/networking/e100.txt +++ b/Documentation/networking/e100.txt | |||
@@ -1,7 +1,7 @@ | |||
1 | Linux* Base Driver for the Intel(R) PRO/100 Family of Adapters | 1 | Linux* Base Driver for the Intel(R) PRO/100 Family of Adapters |
2 | ============================================================== | 2 | ============================================================== |
3 | 3 | ||
4 | November 15, 2005 | 4 | March 15, 2011 |
5 | 5 | ||
6 | Contents | 6 | Contents |
7 | ======== | 7 | ======== |
@@ -122,7 +122,7 @@ Additional Configurations | |||
122 | NOTE: This setting is not saved across reboots. | 122 | NOTE: This setting is not saved across reboots. |
123 | 123 | ||
124 | 124 | ||
125 | Ethtool | 125 | ethtool |
126 | ------- | 126 | ------- |
127 | 127 | ||
128 | The driver utilizes the ethtool interface for driver configuration and | 128 | The driver utilizes the ethtool interface for driver configuration and |
diff --git a/Documentation/networking/e1000.txt b/Documentation/networking/e1000.txt index 71ca95855671..437b2099cced 100644 --- a/Documentation/networking/e1000.txt +++ b/Documentation/networking/e1000.txt | |||
@@ -1,8 +1,8 @@ | |||
1 | Linux* Base Driver for the Intel(R) PRO/1000 Family of Adapters | 1 | Linux* Base Driver for Intel(R) Ethernet Network Connection |
2 | =============================================================== | 2 | =========================================================== |
3 | 3 | ||
4 | Intel Gigabit Linux driver. | 4 | Intel Gigabit Linux driver. |
5 | Copyright(c) 1999 - 2010 Intel Corporation. | 5 | Copyright(c) 1999 - 2013 Intel Corporation. |
6 | 6 | ||
7 | Contents | 7 | Contents |
8 | ======== | 8 | ======== |
@@ -420,15 +420,15 @@ Additional Configurations | |||
420 | - The maximum MTU setting for Jumbo Frames is 16110. This value coincides | 420 | - The maximum MTU setting for Jumbo Frames is 16110. This value coincides |
421 | with the maximum Jumbo Frames size of 16128. | 421 | with the maximum Jumbo Frames size of 16128. |
422 | 422 | ||
423 | - Using Jumbo Frames at 10 or 100 Mbps may result in poor performance or | 423 | - Using Jumbo frames at 10 or 100 Mbps is not supported and may result in |
424 | loss of link. | 424 | poor performance or loss of link. |
425 | 425 | ||
426 | - Adapters based on the Intel(R) 82542 and 82573V/E controller do not | 426 | - Adapters based on the Intel(R) 82542 and 82573V/E controller do not |
427 | support Jumbo Frames. These correspond to the following product names: | 427 | support Jumbo Frames. These correspond to the following product names: |
428 | Intel(R) PRO/1000 Gigabit Server Adapter | 428 | Intel(R) PRO/1000 Gigabit Server Adapter |
429 | Intel(R) PRO/1000 PM Network Connection | 429 | Intel(R) PRO/1000 PM Network Connection |
430 | 430 | ||
431 | Ethtool | 431 | ethtool |
432 | ------- | 432 | ------- |
433 | The driver utilizes the ethtool interface for driver configuration and | 433 | The driver utilizes the ethtool interface for driver configuration and |
434 | diagnostics, as well as displaying statistical information. The ethtool | 434 | diagnostics, as well as displaying statistical information. The ethtool |
diff --git a/Documentation/networking/e1000e.txt b/Documentation/networking/e1000e.txt index 97b5ba942ebf..ad2d9f38ce14 100644 --- a/Documentation/networking/e1000e.txt +++ b/Documentation/networking/e1000e.txt | |||
@@ -1,8 +1,8 @@ | |||
1 | Linux* Driver for Intel(R) Network Connection | 1 | Linux* Driver for Intel(R) Ethernet Network Connection |
2 | ============================================= | 2 | ====================================================== |
3 | 3 | ||
4 | Intel Gigabit Linux driver. | 4 | Intel Gigabit Linux driver. |
5 | Copyright(c) 1999 - 2010 Intel Corporation. | 5 | Copyright(c) 1999 - 2013 Intel Corporation. |
6 | 6 | ||
7 | Contents | 7 | Contents |
8 | ======== | 8 | ======== |
@@ -259,13 +259,16 @@ Additional Configurations | |||
259 | - The maximum MTU setting for Jumbo Frames is 9216. This value coincides | 259 | - The maximum MTU setting for Jumbo Frames is 9216. This value coincides |
260 | with the maximum Jumbo Frames size of 9234 bytes. | 260 | with the maximum Jumbo Frames size of 9234 bytes. |
261 | 261 | ||
262 | - Using Jumbo Frames at 10 or 100 Mbps is not supported and may result in | 262 | - Using Jumbo frames at 10 or 100 Mbps is not supported and may result in |
263 | poor performance or loss of link. | 263 | poor performance or loss of link. |
264 | 264 | ||
265 | - Some adapters limit Jumbo Frames sized packets to a maximum of | 265 | - Some adapters limit Jumbo Frames sized packets to a maximum of |
266 | 4096 bytes and some adapters do not support Jumbo Frames. | 266 | 4096 bytes and some adapters do not support Jumbo Frames. |
267 | 267 | ||
268 | Ethtool | 268 | - Jumbo Frames cannot be configured on an 82579-based Network device, if |
269 | MACSec is enabled on the system. | ||
270 | |||
271 | ethtool | ||
269 | ------- | 272 | ------- |
270 | The driver utilizes the ethtool interface for driver configuration and | 273 | The driver utilizes the ethtool interface for driver configuration and |
271 | diagnostics, as well as displaying statistical information. We | 274 | diagnostics, as well as displaying statistical information. We |
@@ -273,6 +276,9 @@ Additional Configurations | |||
273 | 276 | ||
274 | http://ftp.kernel.org/pub/software/network/ethtool/ | 277 | http://ftp.kernel.org/pub/software/network/ethtool/ |
275 | 278 | ||
279 | NOTE: When validating enable/disable tests on some parts (82578, for example) | ||
280 | you need to add a few seconds between tests when working with ethtool. | ||
281 | |||
276 | Speed and Duplex | 282 | Speed and Duplex |
277 | ---------------- | 283 | ---------------- |
278 | Speed and Duplex are configured through the ethtool* utility. For | 284 | Speed and Duplex are configured through the ethtool* utility. For |
diff --git a/Documentation/networking/i40e.txt b/Documentation/networking/i40e.txt new file mode 100644 index 000000000000..f737273c6dc1 --- /dev/null +++ b/Documentation/networking/i40e.txt | |||
@@ -0,0 +1,115 @@ | |||
1 | Linux Base Driver for the Intel(R) Ethernet Controller XL710 Family | ||
2 | =================================================================== | ||
3 | |||
4 | Intel i40e Linux driver. | ||
5 | Copyright(c) 2013 Intel Corporation. | ||
6 | |||
7 | Contents | ||
8 | ======== | ||
9 | |||
10 | - Identifying Your Adapter | ||
11 | - Additional Configurations | ||
12 | - Performance Tuning | ||
13 | - Known Issues | ||
14 | - Support | ||
15 | |||
16 | |||
17 | Identifying Your Adapter | ||
18 | ======================== | ||
19 | |||
20 | The driver in this release is compatible with the Intel Ethernet | ||
21 | Controller XL710 Family. | ||
22 | |||
23 | For more information on how to identify your adapter, go to the Adapter & | ||
24 | Driver ID Guide at: | ||
25 | |||
26 | http://support.intel.com/support/network/sb/CS-012904.htm | ||
27 | |||
28 | |||
29 | Enabling the driver | ||
30 | =================== | ||
31 | |||
32 | The driver is enabled via the standard kernel configuration system, | ||
33 | using the make command: | ||
34 | |||
35 | Make oldconfig/silentoldconfig/menuconfig/etc. | ||
36 | |||
37 | The driver is located in the menu structure at: | ||
38 | |||
39 | -> Device Drivers | ||
40 | -> Network device support (NETDEVICES [=y]) | ||
41 | -> Ethernet driver support | ||
42 | -> Intel devices | ||
43 | -> Intel(R) Ethernet Controller XL710 Family | ||
44 | |||
45 | Additional Configurations | ||
46 | ========================= | ||
47 | |||
48 | Generic Receive Offload (GRO) | ||
49 | ----------------------------- | ||
50 | The driver supports the in-kernel software implementation of GRO. GRO has | ||
51 | shown that by coalescing Rx traffic into larger chunks of data, CPU | ||
52 | utilization can be significantly reduced when under large Rx load. GRO is | ||
53 | an evolution of the previously-used LRO interface. GRO is able to coalesce | ||
54 | other protocols besides TCP. It's also safe to use with configurations that | ||
55 | are problematic for LRO, namely bridging and iSCSI. | ||
56 | |||
57 | Ethtool | ||
58 | ------- | ||
59 | The driver utilizes the ethtool interface for driver configuration and | ||
60 | diagnostics, as well as displaying statistical information. The latest | ||
61 | ethtool version is required for this functionality. | ||
62 | |||
63 | The latest release of ethtool can be found from | ||
64 | https://www.kernel.org/pub/software/network/ethtool | ||
65 | |||
66 | Data Center Bridging (DCB) | ||
67 | -------------------------- | ||
68 | DCB configuration is not currently supported. | ||
69 | |||
70 | FCoE | ||
71 | ---- | ||
72 | Fiber Channel over Ethernet (FCoE) hardware offload is not currently | ||
73 | supported. | ||
74 | |||
75 | MAC and VLAN anti-spoofing feature | ||
76 | ---------------------------------- | ||
77 | When a malicious driver attempts to send a spoofed packet, it is dropped by | ||
78 | the hardware and not transmitted. An interrupt is sent to the PF driver | ||
79 | notifying it of the spoof attempt. | ||
80 | |||
81 | When a spoofed packet is detected the PF driver will send the following | ||
82 | message to the system log (displayed by the "dmesg" command): | ||
83 | |||
84 | Spoof event(s) detected on VF (n) | ||
85 | |||
86 | Where n=the VF that attempted to do the spoofing. | ||
87 | |||
88 | |||
89 | Performance Tuning | ||
90 | ================== | ||
91 | |||
92 | An excellent article on performance tuning can be found at: | ||
93 | |||
94 | http://www.redhat.com/promo/summit/2008/downloads/pdf/Thursday/Mark_Wagner.pdf | ||
95 | |||
96 | |||
97 | Known Issues | ||
98 | ============ | ||
99 | |||
100 | |||
101 | Support | ||
102 | ======= | ||
103 | |||
104 | For general information, go to the Intel support website at: | ||
105 | |||
106 | http://support.intel.com | ||
107 | |||
108 | or the Intel Wired Networking project hosted by Sourceforge at: | ||
109 | |||
110 | http://e1000.sourceforge.net | ||
111 | |||
112 | If an issue is identified with the released source code on the supported | ||
113 | kernel with a supported adapter, email the specific information related | ||
114 | to the issue to e1000-devel@lists.sourceforge.net and copy | ||
115 | netdev@vger.kernel.org. | ||
diff --git a/Documentation/networking/igb.txt b/Documentation/networking/igb.txt index 9a2a037194a5..4ebbd659256f 100644 --- a/Documentation/networking/igb.txt +++ b/Documentation/networking/igb.txt | |||
@@ -1,8 +1,8 @@ | |||
1 | Linux* Base Driver for Intel(R) Network Connection | 1 | Linux* Base Driver for Intel(R) Ethernet Network Connection |
2 | ================================================== | 2 | =========================================================== |
3 | 3 | ||
4 | Intel Gigabit Linux driver. | 4 | Intel Gigabit Linux driver. |
5 | Copyright(c) 1999 - 2010 Intel Corporation. | 5 | Copyright(c) 1999 - 2013 Intel Corporation. |
6 | 6 | ||
7 | Contents | 7 | Contents |
8 | ======== | 8 | ======== |
@@ -36,6 +36,53 @@ Default Value: 0 | |||
36 | This parameter adds support for SR-IOV. It causes the driver to spawn up to | 36 | This parameter adds support for SR-IOV. It causes the driver to spawn up to |
37 | max_vfs worth of virtual function. | 37 | max_vfs worth of virtual function. |
38 | 38 | ||
39 | QueuePairs | ||
40 | ---------- | ||
41 | Valid Range: 0-1 | ||
42 | Default Value: 1 (TX and RX will be paired onto one interrupt vector) | ||
43 | |||
44 | If set to 0, when MSI-X is enabled, the TX and RX will attempt to occupy | ||
45 | separate vectors. | ||
46 | |||
47 | This option can be overridden to 1 if there are not sufficient interrupts | ||
48 | available. This can occur if any combination of RSS, VMDQ, and max_vfs | ||
49 | results in more than 4 queues being used. | ||
50 | |||
51 | Node | ||
52 | ---- | ||
53 | Valid Range: 0-n | ||
54 | Default Value: -1 (off) | ||
55 | |||
56 | 0 - n: where n is the number of the NUMA node that should be used to | ||
57 | allocate memory for this adapter port. | ||
58 | -1: uses the driver default of allocating memory on whichever processor is | ||
59 | running insmod/modprobe. | ||
60 | |||
61 | The Node parameter will allow you to pick which NUMA node you want to have | ||
62 | the adapter allocate memory from. All driver structures, in-memory queues, | ||
63 | and receive buffers will be allocated on the node specified. This parameter | ||
64 | is only useful when interrupt affinity is specified, otherwise some portion | ||
65 | of the time the interrupt could run on a different core than the memory is | ||
66 | allocated on, causing slower memory access and impacting throughput, CPU, or | ||
67 | both. | ||
68 | |||
69 | EEE | ||
70 | --- | ||
71 | Valid Range: 0-1 | ||
72 | Default Value: 1 (enabled) | ||
73 | |||
74 | A link between two EEE-compliant devices will result in periodic bursts of | ||
75 | data followed by long periods where in the link is in an idle state. This Low | ||
76 | Power Idle (LPI) state is supported in both 1Gbps and 100Mbps link speeds. | ||
77 | NOTE: EEE support requires autonegotiation. | ||
78 | |||
79 | DMAC | ||
80 | ---- | ||
81 | Valid Range: 0-1 | ||
82 | Default Value: 1 (enabled) | ||
83 | Enables or disables DMA Coalescing feature. | ||
84 | |||
85 | |||
39 | 86 | ||
40 | Additional Configurations | 87 | Additional Configurations |
41 | ========================= | 88 | ========================= |
@@ -55,10 +102,10 @@ Additional Configurations | |||
55 | - The maximum MTU setting for Jumbo Frames is 9216. This value coincides | 102 | - The maximum MTU setting for Jumbo Frames is 9216. This value coincides |
56 | with the maximum Jumbo Frames size of 9234 bytes. | 103 | with the maximum Jumbo Frames size of 9234 bytes. |
57 | 104 | ||
58 | - Using Jumbo Frames at 10 or 100 Mbps may result in poor performance or | 105 | - Using Jumbo frames at 10 or 100 Mbps is not supported and may result in |
59 | loss of link. | 106 | poor performance or loss of link. |
60 | 107 | ||
61 | Ethtool | 108 | ethtool |
62 | ------- | 109 | ------- |
63 | The driver utilizes the ethtool interface for driver configuration and | 110 | The driver utilizes the ethtool interface for driver configuration and |
64 | diagnostics, as well as displaying statistical information. The latest | 111 | diagnostics, as well as displaying statistical information. The latest |
@@ -106,6 +153,14 @@ Additional Configurations | |||
106 | 153 | ||
107 | Where n=the VF that attempted to do the spoofing. | 154 | Where n=the VF that attempted to do the spoofing. |
108 | 155 | ||
156 | Setting MAC Address, VLAN and Rate Limit Using IProute2 Tool | ||
157 | ------------------------------------------------------------ | ||
158 | You can set a MAC address of a Virtual Function (VF), a default VLAN and the | ||
159 | rate limit using the IProute2 tool. Download the latest version of the | ||
160 | iproute2 tool from Sourceforge if your version does not have all the | ||
161 | features you require. | ||
162 | |||
163 | |||
109 | Support | 164 | Support |
110 | ======= | 165 | ======= |
111 | 166 | ||
diff --git a/Documentation/networking/igbvf.txt b/Documentation/networking/igbvf.txt index cbfe4ee65533..40db17a6665b 100644 --- a/Documentation/networking/igbvf.txt +++ b/Documentation/networking/igbvf.txt | |||
@@ -1,8 +1,8 @@ | |||
1 | Linux* Base Driver for Intel(R) Network Connection | 1 | Linux* Base Driver for Intel(R) Ethernet Network Connection |
2 | ================================================== | 2 | =========================================================== |
3 | 3 | ||
4 | Intel Gigabit Linux driver. | 4 | Intel Gigabit Linux driver. |
5 | Copyright(c) 1999 - 2010 Intel Corporation. | 5 | Copyright(c) 1999 - 2013 Intel Corporation. |
6 | 6 | ||
7 | Contents | 7 | Contents |
8 | ======== | 8 | ======== |
@@ -55,7 +55,7 @@ networking link on the left to search for your adapter: | |||
55 | Additional Configurations | 55 | Additional Configurations |
56 | ========================= | 56 | ========================= |
57 | 57 | ||
58 | Ethtool | 58 | ethtool |
59 | ------- | 59 | ------- |
60 | The driver utilizes the ethtool interface for driver configuration and | 60 | The driver utilizes the ethtool interface for driver configuration and |
61 | diagnostics, as well as displaying statistical information. The ethtool | 61 | diagnostics, as well as displaying statistical information. The ethtool |
diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt index 10742902146f..a46d78583ae1 100644 --- a/Documentation/networking/ip-sysctl.txt +++ b/Documentation/networking/ip-sysctl.txt | |||
@@ -440,6 +440,10 @@ tcp_syncookies - BOOLEAN | |||
440 | SYN flood warnings in logs not being really flooded, your server | 440 | SYN flood warnings in logs not being really flooded, your server |
441 | is seriously misconfigured. | 441 | is seriously misconfigured. |
442 | 442 | ||
443 | If you want to test which effects syncookies have to your | ||
444 | network connections you can set this knob to 2 to enable | ||
445 | unconditionally generation of syncookies. | ||
446 | |||
443 | tcp_fastopen - INTEGER | 447 | tcp_fastopen - INTEGER |
444 | Enable TCP Fast Open feature (draft-ietf-tcpm-fastopen) to send data | 448 | Enable TCP Fast Open feature (draft-ietf-tcpm-fastopen) to send data |
445 | in the opening SYN packet. To use this feature, the client application | 449 | in the opening SYN packet. To use this feature, the client application |
@@ -478,6 +482,15 @@ tcp_syn_retries - INTEGER | |||
478 | tcp_timestamps - BOOLEAN | 482 | tcp_timestamps - BOOLEAN |
479 | Enable timestamps as defined in RFC1323. | 483 | Enable timestamps as defined in RFC1323. |
480 | 484 | ||
485 | tcp_min_tso_segs - INTEGER | ||
486 | Minimal number of segments per TSO frame. | ||
487 | Since linux-3.12, TCP does an automatic sizing of TSO frames, | ||
488 | depending on flow rate, instead of filling 64Kbytes packets. | ||
489 | For specific usages, it's possible to force TCP to build big | ||
490 | TSO frames. Note that TCP stack might split too big TSO packets | ||
491 | if available window is too small. | ||
492 | Default: 2 | ||
493 | |||
481 | tcp_tso_win_divisor - INTEGER | 494 | tcp_tso_win_divisor - INTEGER |
482 | This allows control over what percentage of the congestion window | 495 | This allows control over what percentage of the congestion window |
483 | can be consumed by a single TSO frame. | 496 | can be consumed by a single TSO frame. |
@@ -516,6 +529,19 @@ tcp_wmem - vector of 3 INTEGERs: min, default, max | |||
516 | this value is ignored. | 529 | this value is ignored. |
517 | Default: between 64K and 4MB, depending on RAM size. | 530 | Default: between 64K and 4MB, depending on RAM size. |
518 | 531 | ||
532 | tcp_notsent_lowat - UNSIGNED INTEGER | ||
533 | A TCP socket can control the amount of unsent bytes in its write queue, | ||
534 | thanks to TCP_NOTSENT_LOWAT socket option. poll()/select()/epoll() | ||
535 | reports POLLOUT events if the amount of unsent bytes is below a per | ||
536 | socket value, and if the write queue is not full. sendmsg() will | ||
537 | also not add new buffers if the limit is hit. | ||
538 | |||
539 | This global variable controls the amount of unsent data for | ||
540 | sockets not using TCP_NOTSENT_LOWAT. For these sockets, a change | ||
541 | to the global variable has immediate effect. | ||
542 | |||
543 | Default: UINT_MAX (0xFFFFFFFF) | ||
544 | |||
519 | tcp_workaround_signed_windows - BOOLEAN | 545 | tcp_workaround_signed_windows - BOOLEAN |
520 | If set, assume no receipt of a window scaling option means the | 546 | If set, assume no receipt of a window scaling option means the |
521 | remote TCP is broken and treats the window as a signed quantity. | 547 | remote TCP is broken and treats the window as a signed quantity. |
@@ -1022,7 +1048,15 @@ disable_policy - BOOLEAN | |||
1022 | disable_xfrm - BOOLEAN | 1048 | disable_xfrm - BOOLEAN |
1023 | Disable IPSEC encryption on this interface, whatever the policy | 1049 | Disable IPSEC encryption on this interface, whatever the policy |
1024 | 1050 | ||
1051 | igmpv2_unsolicited_report_interval - INTEGER | ||
1052 | The interval in milliseconds in which the next unsolicited | ||
1053 | IGMPv1 or IGMPv2 report retransmit will take place. | ||
1054 | Default: 10000 (10 seconds) | ||
1025 | 1055 | ||
1056 | igmpv3_unsolicited_report_interval - INTEGER | ||
1057 | The interval in milliseconds in which the next unsolicited | ||
1058 | IGMPv3 report retransmit will take place. | ||
1059 | Default: 1000 (1 seconds) | ||
1026 | 1060 | ||
1027 | tag - INTEGER | 1061 | tag - INTEGER |
1028 | Allows you to write a number, which can be used as required. | 1062 | Allows you to write a number, which can be used as required. |
@@ -1314,6 +1348,27 @@ ndisc_notify - BOOLEAN | |||
1314 | 1 - Generate unsolicited neighbour advertisements when device is brought | 1348 | 1 - Generate unsolicited neighbour advertisements when device is brought |
1315 | up or hardware address changes. | 1349 | up or hardware address changes. |
1316 | 1350 | ||
1351 | mldv1_unsolicited_report_interval - INTEGER | ||
1352 | The interval in milliseconds in which the next unsolicited | ||
1353 | MLDv1 report retransmit will take place. | ||
1354 | Default: 10000 (10 seconds) | ||
1355 | |||
1356 | mldv2_unsolicited_report_interval - INTEGER | ||
1357 | The interval in milliseconds in which the next unsolicited | ||
1358 | MLDv2 report retransmit will take place. | ||
1359 | Default: 1000 (1 second) | ||
1360 | |||
1361 | force_mld_version - INTEGER | ||
1362 | 0 - (default) No enforcement of a MLD version, MLDv1 fallback allowed | ||
1363 | 1 - Enforce to use MLD version 1 | ||
1364 | 2 - Enforce to use MLD version 2 | ||
1365 | |||
1366 | suppress_frag_ndisc - INTEGER | ||
1367 | Control RFC 6980 (Security Implications of IPv6 Fragmentation | ||
1368 | with IPv6 Neighbor Discovery) behavior: | ||
1369 | 1 - (default) discard fragmented neighbor discovery packets | ||
1370 | 0 - allow fragmented neighbor discovery packets | ||
1371 | |||
1317 | icmp/*: | 1372 | icmp/*: |
1318 | ratelimit - INTEGER | 1373 | ratelimit - INTEGER |
1319 | Limit the maximal rates for sending ICMPv6 packets. | 1374 | Limit the maximal rates for sending ICMPv6 packets. |
diff --git a/Documentation/networking/ixgb.txt b/Documentation/networking/ixgb.txt index d75a1f9565bb..1e0c045e89f7 100644 --- a/Documentation/networking/ixgb.txt +++ b/Documentation/networking/ixgb.txt | |||
@@ -1,7 +1,7 @@ | |||
1 | Linux Base Driver for 10 Gigabit Intel(R) Network Connection | 1 | Linux Base Driver for 10 Gigabit Intel(R) Ethernet Network Connection |
2 | ============================================================= | 2 | ===================================================================== |
3 | 3 | ||
4 | October 9, 2007 | 4 | March 14, 2011 |
5 | 5 | ||
6 | 6 | ||
7 | Contents | 7 | Contents |
@@ -274,9 +274,9 @@ Additional Configurations | |||
274 | ------------------------------------------------- | 274 | ------------------------------------------------- |
275 | Configuring a network driver to load properly when the system is started is | 275 | Configuring a network driver to load properly when the system is started is |
276 | distribution dependent. Typically, the configuration process involves adding | 276 | distribution dependent. Typically, the configuration process involves adding |
277 | an alias line to files in /etc/modprobe.d/ as well as editing other system | 277 | an alias line to /etc/modprobe.conf as well as editing other system startup |
278 | startup scripts and/or configuration files. Many popular Linux distributions | 278 | scripts and/or configuration files. Many popular Linux distributions ship |
279 | ship with tools to make these changes for you. To learn the proper way to | 279 | with tools to make these changes for you. To learn the proper way to |
280 | configure a network device for your system, refer to your distribution | 280 | configure a network device for your system, refer to your distribution |
281 | documentation. If during this process you are asked for the driver or module | 281 | documentation. If during this process you are asked for the driver or module |
282 | name, the name for the Linux Base Driver for the Intel 10GbE Family of | 282 | name, the name for the Linux Base Driver for the Intel 10GbE Family of |
@@ -306,7 +306,7 @@ Additional Configurations | |||
306 | with the maximum Jumbo Frames size of 16128. | 306 | with the maximum Jumbo Frames size of 16128. |
307 | 307 | ||
308 | 308 | ||
309 | Ethtool | 309 | ethtool |
310 | ------- | 310 | ------- |
311 | The driver utilizes the ethtool interface for driver configuration and | 311 | The driver utilizes the ethtool interface for driver configuration and |
312 | diagnostics, as well as displaying statistical information. The ethtool | 312 | diagnostics, as well as displaying statistical information. The ethtool |
diff --git a/Documentation/networking/ixgbe.txt b/Documentation/networking/ixgbe.txt index af77ed3c4172..96cccebb839b 100644 --- a/Documentation/networking/ixgbe.txt +++ b/Documentation/networking/ixgbe.txt | |||
@@ -1,8 +1,9 @@ | |||
1 | Linux Base Driver for 10 Gigabit PCI Express Intel(R) Network Connection | 1 | Linux* Base Driver for the Intel(R) Ethernet 10 Gigabit PCI Express Family of |
2 | ======================================================================== | 2 | Adapters |
3 | ============================================================================= | ||
3 | 4 | ||
4 | Intel Gigabit Linux driver. | 5 | Intel 10 Gigabit Linux driver. |
5 | Copyright(c) 1999 - 2010 Intel Corporation. | 6 | Copyright(c) 1999 - 2013 Intel Corporation. |
6 | 7 | ||
7 | Contents | 8 | Contents |
8 | ======== | 9 | ======== |
@@ -16,8 +17,8 @@ Contents | |||
16 | Identifying Your Adapter | 17 | Identifying Your Adapter |
17 | ======================== | 18 | ======================== |
18 | 19 | ||
19 | The driver in this release is compatible with 82598 and 82599-based Intel | 20 | The driver in this release is compatible with 82598, 82599 and X540-based |
20 | Network Connections. | 21 | Intel Network Connections. |
21 | 22 | ||
22 | For more information on how to identify your adapter, go to the Adapter & | 23 | For more information on how to identify your adapter, go to the Adapter & |
23 | Driver ID Guide at: | 24 | Driver ID Guide at: |
@@ -72,7 +73,7 @@ cables that comply with SFF-8431 v4.1 and SFF-8472 v10.4 specifications. | |||
72 | Laser turns off for SFP+ when ifconfig down | 73 | Laser turns off for SFP+ when ifconfig down |
73 | ------------------------------------------- | 74 | ------------------------------------------- |
74 | "ifconfig down" turns off the laser for 82599-based SFP+ fiber adapters. | 75 | "ifconfig down" turns off the laser for 82599-based SFP+ fiber adapters. |
75 | "ifconfig up" turns on the later. | 76 | "ifconfig up" turns on the laser. |
76 | 77 | ||
77 | 78 | ||
78 | 82598-BASED ADAPTERS | 79 | 82598-BASED ADAPTERS |
@@ -118,6 +119,93 @@ NOTE: For 82598 backplane cards entering 1 gig mode, flow control default | |||
118 | behavior is changed to off. Flow control in 1 gig mode on these devices can | 119 | behavior is changed to off. Flow control in 1 gig mode on these devices can |
119 | lead to Tx hangs. | 120 | lead to Tx hangs. |
120 | 121 | ||
122 | Intel(R) Ethernet Flow Director | ||
123 | ------------------------------- | ||
124 | Supports advanced filters that direct receive packets by their flows to | ||
125 | different queues. Enables tight control on routing a flow in the platform. | ||
126 | Matches flows and CPU cores for flow affinity. Supports multiple parameters | ||
127 | for flexible flow classification and load balancing. | ||
128 | |||
129 | Flow director is enabled only if the kernel is multiple TX queue capable. | ||
130 | |||
131 | An included script (set_irq_affinity.sh) automates setting the IRQ to CPU | ||
132 | affinity. | ||
133 | |||
134 | You can verify that the driver is using Flow Director by looking at the counter | ||
135 | in ethtool: fdir_miss and fdir_match. | ||
136 | |||
137 | Other ethtool Commands: | ||
138 | To enable Flow Director | ||
139 | ethtool -K ethX ntuple on | ||
140 | To add a filter | ||
141 | Use -U switch. e.g., ethtool -U ethX flow-type tcp4 src-ip 0x178000a | ||
142 | action 1 | ||
143 | To see the list of filters currently present: | ||
144 | ethtool -u ethX | ||
145 | |||
146 | Perfect Filter: Perfect filter is an interface to load the filter table that | ||
147 | funnels all flow into queue_0 unless an alternative queue is specified using | ||
148 | "action". In that case, any flow that matches the filter criteria will be | ||
149 | directed to the appropriate queue. | ||
150 | |||
151 | If the queue is defined as -1, filter will drop matching packets. | ||
152 | |||
153 | To account for filter matches and misses, there are two stats in ethtool: | ||
154 | fdir_match and fdir_miss. In addition, rx_queue_N_packets shows the number of | ||
155 | packets processed by the Nth queue. | ||
156 | |||
157 | NOTE: Receive Packet Steering (RPS) and Receive Flow Steering (RFS) are not | ||
158 | compatible with Flow Director. IF Flow Director is enabled, these will be | ||
159 | disabled. | ||
160 | |||
161 | The following three parameters impact Flow Director. | ||
162 | |||
163 | FdirMode | ||
164 | -------- | ||
165 | Valid Range: 0-2 (0=off, 1=ATR, 2=Perfect filter mode) | ||
166 | Default Value: 1 | ||
167 | |||
168 | Flow Director filtering modes. | ||
169 | |||
170 | FdirPballoc | ||
171 | ----------- | ||
172 | Valid Range: 0-2 (0=64k, 1=128k, 2=256k) | ||
173 | Default Value: 0 | ||
174 | |||
175 | Flow Director allocated packet buffer size. | ||
176 | |||
177 | AtrSampleRate | ||
178 | -------------- | ||
179 | Valid Range: 1-100 | ||
180 | Default Value: 20 | ||
181 | |||
182 | Software ATR Tx packet sample rate. For example, when set to 20, every 20th | ||
183 | packet, looks to see if the packet will create a new flow. | ||
184 | |||
185 | Node | ||
186 | ---- | ||
187 | Valid Range: 0-n | ||
188 | Default Value: 1 (off) | ||
189 | |||
190 | 0 - n: where n is the number of NUMA nodes (i.e. 0 - 3) currently online in | ||
191 | your system | ||
192 | 1: turns this option off | ||
193 | |||
194 | The Node parameter will allow you to pick which NUMA node you want to have | ||
195 | the adapter allocate memory on. | ||
196 | |||
197 | max_vfs | ||
198 | ------- | ||
199 | Valid Range: 1-63 | ||
200 | Default Value: 0 | ||
201 | |||
202 | If the value is greater than 0 it will also force the VMDq parameter to be 1 | ||
203 | or more. | ||
204 | |||
205 | This parameter adds support for SR-IOV. It causes the driver to spawn up to | ||
206 | max_vfs worth of virtual function. | ||
207 | |||
208 | |||
121 | Additional Configurations | 209 | Additional Configurations |
122 | ========================= | 210 | ========================= |
123 | 211 | ||
@@ -221,9 +309,10 @@ http://www.redhat.com/promo/summit/2008/downloads/pdf/Thursday/Mark_Wagner.pdf | |||
221 | Known Issues | 309 | Known Issues |
222 | ============ | 310 | ============ |
223 | 311 | ||
224 | Enabling SR-IOV in a 32-bit Microsoft* Windows* Server 2008 Guest OS using | 312 | Enabling SR-IOV in a 32-bit or 64-bit Microsoft* Windows* Server 2008/R2 |
225 | Intel (R) 82576-based GbE or Intel (R) 82599-based 10GbE controller under KVM | 313 | Guest OS using Intel (R) 82576-based GbE or Intel (R) 82599-based 10GbE |
226 | ----------------------------------------------------------------------------- | 314 | controller under KVM |
315 | ------------------------------------------------------------------------ | ||
227 | KVM Hypervisor/VMM supports direct assignment of a PCIe device to a VM. This | 316 | KVM Hypervisor/VMM supports direct assignment of a PCIe device to a VM. This |
228 | includes traditional PCIe devices, as well as SR-IOV-capable devices using | 317 | includes traditional PCIe devices, as well as SR-IOV-capable devices using |
229 | Intel 82576-based and 82599-based controllers. | 318 | Intel 82576-based and 82599-based controllers. |
diff --git a/Documentation/networking/ixgbevf.txt b/Documentation/networking/ixgbevf.txt index 5a91a41fa946..53d8d2a5a6a3 100644 --- a/Documentation/networking/ixgbevf.txt +++ b/Documentation/networking/ixgbevf.txt | |||
@@ -1,8 +1,8 @@ | |||
1 | Linux* Base Driver for Intel(R) Network Connection | 1 | Linux* Base Driver for Intel(R) Ethernet Network Connection |
2 | ================================================== | 2 | =========================================================== |
3 | 3 | ||
4 | Intel Gigabit Linux driver. | 4 | Intel Gigabit Linux driver. |
5 | Copyright(c) 1999 - 2010 Intel Corporation. | 5 | Copyright(c) 1999 - 2013 Intel Corporation. |
6 | 6 | ||
7 | Contents | 7 | Contents |
8 | ======== | 8 | ======== |
diff --git a/Documentation/networking/netdev-FAQ.txt b/Documentation/networking/netdev-FAQ.txt new file mode 100644 index 000000000000..d9112f01c44a --- /dev/null +++ b/Documentation/networking/netdev-FAQ.txt | |||
@@ -0,0 +1,224 @@ | |||
1 | |||
2 | Information you need to know about netdev | ||
3 | ----------------------------------------- | ||
4 | |||
5 | Q: What is netdev? | ||
6 | |||
7 | A: It is a mailing list for all network related linux stuff. This includes | ||
8 | anything found under net/ (i.e. core code like IPv6) and drivers/net | ||
9 | (i.e. hardware specific drivers) in the linux source tree. | ||
10 | |||
11 | Note that some subsystems (e.g. wireless drivers) which have a high volume | ||
12 | of traffic have their own specific mailing lists. | ||
13 | |||
14 | The netdev list is managed (like many other linux mailing lists) through | ||
15 | VGER ( http://vger.kernel.org/ ) and archives can be found below: | ||
16 | |||
17 | http://marc.info/?l=linux-netdev | ||
18 | http://www.spinics.net/lists/netdev/ | ||
19 | |||
20 | Aside from subsystems like that mentioned above, all network related linux | ||
21 | development (i.e. RFC, review, comments, etc) takes place on netdev. | ||
22 | |||
23 | Q: How do the changes posted to netdev make their way into linux? | ||
24 | |||
25 | A: There are always two trees (git repositories) in play. Both are driven | ||
26 | by David Miller, the main network maintainer. There is the "net" tree, | ||
27 | and the "net-next" tree. As you can probably guess from the names, the | ||
28 | net tree is for fixes to existing code already in the mainline tree from | ||
29 | Linus, and net-next is where the new code goes for the future release. | ||
30 | You can find the trees here: | ||
31 | |||
32 | http://git.kernel.org/?p=linux/kernel/git/davem/net.git | ||
33 | http://git.kernel.org/?p=linux/kernel/git/davem/net-next.git | ||
34 | |||
35 | Q: How often do changes from these trees make it to the mainline Linus tree? | ||
36 | |||
37 | A: To understand this, you need to know a bit of background information | ||
38 | on the cadence of linux development. Each new release starts off with | ||
39 | a two week "merge window" where the main maintainers feed their new | ||
40 | stuff to Linus for merging into the mainline tree. After the two weeks, | ||
41 | the merge window is closed, and it is called/tagged "-rc1". No new | ||
42 | features get mainlined after this -- only fixes to the rc1 content | ||
43 | are expected. After roughly a week of collecting fixes to the rc1 | ||
44 | content, rc2 is released. This repeats on a roughly weekly basis | ||
45 | until rc7 (typically; sometimes rc6 if things are quiet, or rc8 if | ||
46 | things are in a state of churn), and a week after the last vX.Y-rcN | ||
47 | was done, the official "vX.Y" is released. | ||
48 | |||
49 | Relating that to netdev: At the beginning of the 2 week merge window, | ||
50 | the net-next tree will be closed - no new changes/features. The | ||
51 | accumulated new content of the past ~10 weeks will be passed onto | ||
52 | mainline/Linus via a pull request for vX.Y -- at the same time, | ||
53 | the "net" tree will start accumulating fixes for this pulled content | ||
54 | relating to vX.Y | ||
55 | |||
56 | An announcement indicating when net-next has been closed is usually | ||
57 | sent to netdev, but knowing the above, you can predict that in advance. | ||
58 | |||
59 | IMPORTANT: Do not send new net-next content to netdev during the | ||
60 | period during which net-next tree is closed. | ||
61 | |||
62 | Shortly after the two weeks have passed, (and vX.Y-rc1 is released) the | ||
63 | tree for net-next reopens to collect content for the next (vX.Y+1) release. | ||
64 | |||
65 | If you aren't subscribed to netdev and/or are simply unsure if net-next | ||
66 | has re-opened yet, simply check the net-next git repository link above for | ||
67 | any new networking related commits. | ||
68 | |||
69 | The "net" tree continues to collect fixes for the vX.Y content, and | ||
70 | is fed back to Linus at regular (~weekly) intervals. Meaning that the | ||
71 | focus for "net" is on stablilization and bugfixes. | ||
72 | |||
73 | Finally, the vX.Y gets released, and the whole cycle starts over. | ||
74 | |||
75 | Q: So where are we now in this cycle? | ||
76 | |||
77 | A: Load the mainline (Linus) page here: | ||
78 | |||
79 | http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git | ||
80 | |||
81 | and note the top of the "tags" section. If it is rc1, it is early | ||
82 | in the dev cycle. If it was tagged rc7 a week ago, then a release | ||
83 | is probably imminent. | ||
84 | |||
85 | Q: How do I indicate which tree (net vs. net-next) my patch should be in? | ||
86 | |||
87 | A: Firstly, think whether you have a bug fix or new "next-like" content. | ||
88 | Then once decided, assuming that you use git, use the prefix flag, i.e. | ||
89 | |||
90 | git format-patch --subject-prefix='PATCH net-next' start..finish | ||
91 | |||
92 | Use "net" instead of "net-next" (always lower case) in the above for | ||
93 | bug-fix net content. If you don't use git, then note the only magic in | ||
94 | the above is just the subject text of the outgoing e-mail, and you can | ||
95 | manually change it yourself with whatever MUA you are comfortable with. | ||
96 | |||
97 | Q: I sent a patch and I'm wondering what happened to it. How can I tell | ||
98 | whether it got merged? | ||
99 | |||
100 | A: Start by looking at the main patchworks queue for netdev: | ||
101 | |||
102 | http://patchwork.ozlabs.org/project/netdev/list/ | ||
103 | |||
104 | The "State" field will tell you exactly where things are at with | ||
105 | your patch. | ||
106 | |||
107 | Q: The above only says "Under Review". How can I find out more? | ||
108 | |||
109 | A: Generally speaking, the patches get triaged quickly (in less than 48h). | ||
110 | So be patient. Asking the maintainer for status updates on your | ||
111 | patch is a good way to ensure your patch is ignored or pushed to | ||
112 | the bottom of the priority list. | ||
113 | |||
114 | Q: How can I tell what patches are queued up for backporting to the | ||
115 | various stable releases? | ||
116 | |||
117 | A: Normally Greg Kroah-Hartman collects stable commits himself, but | ||
118 | for networking, Dave collects up patches he deems critical for the | ||
119 | networking subsystem, and then hands them off to Greg. | ||
120 | |||
121 | There is a patchworks queue that you can see here: | ||
122 | http://patchwork.ozlabs.org/bundle/davem/stable/?state=* | ||
123 | |||
124 | It contains the patches which Dave has selected, but not yet handed | ||
125 | off to Greg. If Greg already has the patch, then it will be here: | ||
126 | http://git.kernel.org/cgit/linux/kernel/git/stable/stable-queue.git | ||
127 | |||
128 | A quick way to find whether the patch is in this stable-queue is | ||
129 | to simply clone the repo, and then git grep the mainline commit ID, e.g. | ||
130 | |||
131 | stable-queue$ git grep -l 284041ef21fdf2e | ||
132 | releases/3.0.84/ipv6-fix-possible-crashes-in-ip6_cork_release.patch | ||
133 | releases/3.4.51/ipv6-fix-possible-crashes-in-ip6_cork_release.patch | ||
134 | releases/3.9.8/ipv6-fix-possible-crashes-in-ip6_cork_release.patch | ||
135 | stable/stable-queue$ | ||
136 | |||
137 | Q: I see a network patch and I think it should be backported to stable. | ||
138 | Should I request it via "stable@vger.kernel.org" like the references in | ||
139 | the kernel's Documentation/stable_kernel_rules.txt file say? | ||
140 | |||
141 | A: No, not for networking. Check the stable queues as per above 1st to see | ||
142 | if it is already queued. If not, then send a mail to netdev, listing | ||
143 | the upstream commit ID and why you think it should be a stable candidate. | ||
144 | |||
145 | Before you jump to go do the above, do note that the normal stable rules | ||
146 | in Documentation/stable_kernel_rules.txt still apply. So you need to | ||
147 | explicitly indicate why it is a critical fix and exactly what users are | ||
148 | impacted. In addition, you need to convince yourself that you _really_ | ||
149 | think it has been overlooked, vs. having been considered and rejected. | ||
150 | |||
151 | Generally speaking, the longer it has had a chance to "soak" in mainline, | ||
152 | the better the odds that it is an OK candidate for stable. So scrambling | ||
153 | to request a commit be added the day after it appears should be avoided. | ||
154 | |||
155 | Q: I have created a network patch and I think it should be backported to | ||
156 | stable. Should I add a "Cc: stable@vger.kernel.org" like the references | ||
157 | in the kernel's Documentation/ directory say? | ||
158 | |||
159 | A: No. See above answer. In short, if you think it really belongs in | ||
160 | stable, then ensure you write a decent commit log that describes who | ||
161 | gets impacted by the bugfix and how it manifests itself, and when the | ||
162 | bug was introduced. If you do that properly, then the commit will | ||
163 | get handled appropriately and most likely get put in the patchworks | ||
164 | stable queue if it really warrants it. | ||
165 | |||
166 | If you think there is some valid information relating to it being in | ||
167 | stable that does _not_ belong in the commit log, then use the three | ||
168 | dash marker line as described in Documentation/SubmittingPatches to | ||
169 | temporarily embed that information into the patch that you send. | ||
170 | |||
171 | Q: Someone said that the comment style and coding convention is different | ||
172 | for the networking content. Is this true? | ||
173 | |||
174 | A: Yes, in a largely trivial way. Instead of this: | ||
175 | |||
176 | /* | ||
177 | * foobar blah blah blah | ||
178 | * another line of text | ||
179 | */ | ||
180 | |||
181 | it is requested that you make it look like this: | ||
182 | |||
183 | /* foobar blah blah blah | ||
184 | * another line of text | ||
185 | */ | ||
186 | |||
187 | Q: I am working in existing code that has the former comment style and not the | ||
188 | latter. Should I submit new code in the former style or the latter? | ||
189 | |||
190 | A: Make it the latter style, so that eventually all code in the domain of | ||
191 | netdev is of this format. | ||
192 | |||
193 | Q: I found a bug that might have possible security implications or similar. | ||
194 | Should I mail the main netdev maintainer off-list? | ||
195 | |||
196 | A: No. The current netdev maintainer has consistently requested that people | ||
197 | use the mailing lists and not reach out directly. If you aren't OK with | ||
198 | that, then perhaps consider mailing "security@kernel.org" or reading about | ||
199 | http://oss-security.openwall.org/wiki/mailing-lists/distros | ||
200 | as possible alternative mechanisms. | ||
201 | |||
202 | Q: What level of testing is expected before I submit my change? | ||
203 | |||
204 | A: If your changes are against net-next, the expectation is that you | ||
205 | have tested by layering your changes on top of net-next. Ideally you | ||
206 | will have done run-time testing specific to your change, but at a | ||
207 | minimum, your changes should survive an "allyesconfig" and an | ||
208 | "allmodconfig" build without new warnings or failures. | ||
209 | |||
210 | Q: Any other tips to help ensure my net/net-next patch gets OK'd? | ||
211 | |||
212 | A: Attention to detail. Re-read your own work as if you were the | ||
213 | reviewer. You can start with using checkpatch.pl, perhaps even | ||
214 | with the "--strict" flag. But do not be mindlessly robotic in | ||
215 | doing so. If your change is a bug-fix, make sure your commit log | ||
216 | indicates the end-user visible symptom, the underlying reason as | ||
217 | to why it happens, and then if necessary, explain why the fix proposed | ||
218 | is the best way to get things done. Don't mangle whitespace, and as | ||
219 | is common, don't mis-indent function arguments that span multiple lines. | ||
220 | If it is your 1st patch, mail it to yourself so you can test apply | ||
221 | it to an unpatched tree to confirm infrastructure didn't mangle it. | ||
222 | |||
223 | Finally, go back and read Documentation/SubmittingPatches to be | ||
224 | sure you are not repeating some common mistake documented there. | ||
diff --git a/Documentation/networking/openvswitch.txt b/Documentation/networking/openvswitch.txt index 8fa2dd1e792e..37c20ee2455e 100644 --- a/Documentation/networking/openvswitch.txt +++ b/Documentation/networking/openvswitch.txt | |||
@@ -91,6 +91,46 @@ Often we ellipsize arguments not important to the discussion, e.g.: | |||
91 | in_port(1), eth(...), eth_type(0x0800), ipv4(...), tcp(...) | 91 | in_port(1), eth(...), eth_type(0x0800), ipv4(...), tcp(...) |
92 | 92 | ||
93 | 93 | ||
94 | Wildcarded flow key format | ||
95 | -------------------------- | ||
96 | |||
97 | A wildcarded flow is described with two sequences of Netlink attributes | ||
98 | passed over the Netlink socket. A flow key, exactly as described above, and an | ||
99 | optional corresponding flow mask. | ||
100 | |||
101 | A wildcarded flow can represent a group of exact match flows. Each '1' bit | ||
102 | in the mask specifies a exact match with the corresponding bit in the flow key. | ||
103 | A '0' bit specifies a don't care bit, which will match either a '1' or '0' bit | ||
104 | of a incoming packet. Using wildcarded flow can improve the flow set up rate | ||
105 | by reduce the number of new flows need to be processed by the user space program. | ||
106 | |||
107 | Support for the mask Netlink attribute is optional for both the kernel and user | ||
108 | space program. The kernel can ignore the mask attribute, installing an exact | ||
109 | match flow, or reduce the number of don't care bits in the kernel to less than | ||
110 | what was specified by the user space program. In this case, variations in bits | ||
111 | that the kernel does not implement will simply result in additional flow setups. | ||
112 | The kernel module will also work with user space programs that neither support | ||
113 | nor supply flow mask attributes. | ||
114 | |||
115 | Since the kernel may ignore or modify wildcard bits, it can be difficult for | ||
116 | the userspace program to know exactly what matches are installed. There are | ||
117 | two possible approaches: reactively install flows as they miss the kernel | ||
118 | flow table (and therefore not attempt to determine wildcard changes at all) | ||
119 | or use the kernel's response messages to determine the installed wildcards. | ||
120 | |||
121 | When interacting with userspace, the kernel should maintain the match portion | ||
122 | of the key exactly as originally installed. This will provides a handle to | ||
123 | identify the flow for all future operations. However, when reporting the | ||
124 | mask of an installed flow, the mask should include any restrictions imposed | ||
125 | by the kernel. | ||
126 | |||
127 | The behavior when using overlapping wildcarded flows is undefined. It is the | ||
128 | responsibility of the user space program to ensure that any incoming packet | ||
129 | can match at most one flow, wildcarded or not. The current implementation | ||
130 | performs best-effort detection of overlapping wildcarded flows and may reject | ||
131 | some but not all of them. However, this behavior may change in future versions. | ||
132 | |||
133 | |||
94 | Basic rule for evolving flow keys | 134 | Basic rule for evolving flow keys |
95 | --------------------------------- | 135 | --------------------------------- |
96 | 136 | ||
diff --git a/Documentation/networking/packet_mmap.txt b/Documentation/networking/packet_mmap.txt index 8572796b1eb6..c01223628a87 100644 --- a/Documentation/networking/packet_mmap.txt +++ b/Documentation/networking/packet_mmap.txt | |||
@@ -543,6 +543,14 @@ TPACKET_V2 --> TPACKET_V3: | |||
543 | In the AF_PACKET fanout mode, packet reception can be load balanced among | 543 | In the AF_PACKET fanout mode, packet reception can be load balanced among |
544 | processes. This also works in combination with mmap(2) on packet sockets. | 544 | processes. This also works in combination with mmap(2) on packet sockets. |
545 | 545 | ||
546 | Currently implemented fanout policies are: | ||
547 | |||
548 | - PACKET_FANOUT_HASH: schedule to socket by skb's rxhash | ||
549 | - PACKET_FANOUT_LB: schedule to socket by round-robin | ||
550 | - PACKET_FANOUT_CPU: schedule to socket by CPU packet arrives on | ||
551 | - PACKET_FANOUT_RND: schedule to socket by random selection | ||
552 | - PACKET_FANOUT_ROLLOVER: if one socket is full, rollover to another | ||
553 | |||
546 | Minimal example code by David S. Miller (try things like "./test eth0 hash", | 554 | Minimal example code by David S. Miller (try things like "./test eth0 hash", |
547 | "./test eth0 lb", etc.): | 555 | "./test eth0 lb", etc.): |
548 | 556 | ||
diff --git a/Documentation/networking/sctp.txt b/Documentation/networking/sctp.txt index 0c790a76910e..97b810ca9082 100644 --- a/Documentation/networking/sctp.txt +++ b/Documentation/networking/sctp.txt | |||
@@ -19,7 +19,6 @@ of SCTP that is RFC 2960 compliant and provides an programming interface | |||
19 | referred to as the UDP-style API of the Sockets Extensions for SCTP, as | 19 | referred to as the UDP-style API of the Sockets Extensions for SCTP, as |
20 | proposed in IETF Internet-Drafts. | 20 | proposed in IETF Internet-Drafts. |
21 | 21 | ||
22 | |||
23 | Caveats: | 22 | Caveats: |
24 | 23 | ||
25 | -lksctp can be built as statically or as a module. However, be aware that | 24 | -lksctp can be built as statically or as a module. However, be aware that |
@@ -33,6 +32,4 @@ For more information, please visit the lksctp project website: | |||
33 | http://www.sf.net/projects/lksctp | 32 | http://www.sf.net/projects/lksctp |
34 | 33 | ||
35 | Or contact the lksctp developers through the mailing list: | 34 | Or contact the lksctp developers through the mailing list: |
36 | <lksctp-developers@lists.sourceforge.net> | 35 | <linux-sctp@vger.kernel.org> |
37 | |||
38 | |||
diff --git a/Documentation/networking/stmmac.txt b/Documentation/networking/stmmac.txt index 654d2e55c8cb..457b8bbafb08 100644 --- a/Documentation/networking/stmmac.txt +++ b/Documentation/networking/stmmac.txt | |||
@@ -123,6 +123,7 @@ struct plat_stmmacenet_data { | |||
123 | int bugged_jumbo; | 123 | int bugged_jumbo; |
124 | int pmt; | 124 | int pmt; |
125 | int force_sf_dma_mode; | 125 | int force_sf_dma_mode; |
126 | int force_thresh_dma_mode; | ||
126 | int riwt_off; | 127 | int riwt_off; |
127 | void (*fix_mac_speed)(void *priv, unsigned int speed); | 128 | void (*fix_mac_speed)(void *priv, unsigned int speed); |
128 | void (*bus_setup)(void __iomem *ioaddr); | 129 | void (*bus_setup)(void __iomem *ioaddr); |
@@ -159,6 +160,8 @@ Where: | |||
159 | o pmt: core has the embedded power module (optional). | 160 | o pmt: core has the embedded power module (optional). |
160 | o force_sf_dma_mode: force DMA to use the Store and Forward mode | 161 | o force_sf_dma_mode: force DMA to use the Store and Forward mode |
161 | instead of the Threshold. | 162 | instead of the Threshold. |
163 | o force_thresh_dma_mode: force DMA to use the Shreshold mode other than | ||
164 | the Store and Forward mode. | ||
162 | o riwt_off: force to disable the RX watchdog feature and switch to NAPI mode. | 165 | o riwt_off: force to disable the RX watchdog feature and switch to NAPI mode. |
163 | o fix_mac_speed: this callback is used for modifying some syscfg registers | 166 | o fix_mac_speed: this callback is used for modifying some syscfg registers |
164 | (on ST SoCs) according to the link speed negotiated by the | 167 | (on ST SoCs) according to the link speed negotiated by the |
diff --git a/Documentation/networking/tproxy.txt b/Documentation/networking/tproxy.txt index 7b5996d9357e..ec11429e1d42 100644 --- a/Documentation/networking/tproxy.txt +++ b/Documentation/networking/tproxy.txt | |||
@@ -2,9 +2,8 @@ Transparent proxy support | |||
2 | ========================= | 2 | ========================= |
3 | 3 | ||
4 | This feature adds Linux 2.2-like transparent proxy support to current kernels. | 4 | This feature adds Linux 2.2-like transparent proxy support to current kernels. |
5 | To use it, enable NETFILTER_TPROXY, the socket match and the TPROXY target in | 5 | To use it, enable the socket match and the TPROXY target in your kernel config. |
6 | your kernel config. You will need policy routing too, so be sure to enable that | 6 | You will need policy routing too, so be sure to enable that as well. |
7 | as well. | ||
8 | 7 | ||
9 | 8 | ||
10 | 1. Making non-local sockets work | 9 | 1. Making non-local sockets work |
diff --git a/Documentation/pinctrl.txt b/Documentation/pinctrl.txt index 052e13af2d38..c0ffd30eb55e 100644 --- a/Documentation/pinctrl.txt +++ b/Documentation/pinctrl.txt | |||
@@ -81,7 +81,7 @@ int __init foo_probe(void) | |||
81 | struct pinctrl_dev *pctl; | 81 | struct pinctrl_dev *pctl; |
82 | 82 | ||
83 | pctl = pinctrl_register(&foo_desc, <PARENT>, NULL); | 83 | pctl = pinctrl_register(&foo_desc, <PARENT>, NULL); |
84 | if (IS_ERR(pctl)) | 84 | if (!pctl) |
85 | pr_err("could not register foo pin driver\n"); | 85 | pr_err("could not register foo pin driver\n"); |
86 | } | 86 | } |
87 | 87 | ||
@@ -795,18 +795,97 @@ special GPIO-handler is registered. | |||
795 | GPIO mode pitfalls | 795 | GPIO mode pitfalls |
796 | ================== | 796 | ================== |
797 | 797 | ||
798 | Sometime the developer may be confused by a datasheet talking about a pin | 798 | Due to the naming conventions used by hardware engineers, where "GPIO" |
799 | being possible to set into "GPIO mode". It appears that what hardware | 799 | is taken to mean different things than what the kernel does, the developer |
800 | engineers mean with "GPIO mode" is not necessarily the use case that is | 800 | may be confused by a datasheet talking about a pin being possible to set |
801 | implied in the kernel interface <linux/gpio.h>: a pin that you grab from | 801 | into "GPIO mode". It appears that what hardware engineers mean with |
802 | kernel code and then either listen for input or drive high/low to | 802 | "GPIO mode" is not necessarily the use case that is implied in the kernel |
803 | assert/deassert some external line. | 803 | interface <linux/gpio.h>: a pin that you grab from kernel code and then |
804 | either listen for input or drive high/low to assert/deassert some | ||
805 | external line. | ||
804 | 806 | ||
805 | Rather hardware engineers think that "GPIO mode" means that you can | 807 | Rather hardware engineers think that "GPIO mode" means that you can |
806 | software-control a few electrical properties of the pin that you would | 808 | software-control a few electrical properties of the pin that you would |
807 | not be able to control if the pin was in some other mode, such as muxed in | 809 | not be able to control if the pin was in some other mode, such as muxed in |
808 | for a device. | 810 | for a device. |
809 | 811 | ||
812 | The GPIO portions of a pin and its relation to a certain pin controller | ||
813 | configuration and muxing logic can be constructed in several ways. Here | ||
814 | are two examples: | ||
815 | |||
816 | (A) | ||
817 | pin config | ||
818 | logic regs | ||
819 | | +- SPI | ||
820 | Physical pins --- pad --- pinmux -+- I2C | ||
821 | | +- mmc | ||
822 | | +- GPIO | ||
823 | pin | ||
824 | multiplex | ||
825 | logic regs | ||
826 | |||
827 | Here some electrical properties of the pin can be configured no matter | ||
828 | whether the pin is used for GPIO or not. If you multiplex a GPIO onto a | ||
829 | pin, you can also drive it high/low from "GPIO" registers. | ||
830 | Alternatively, the pin can be controlled by a certain peripheral, while | ||
831 | still applying desired pin config properties. GPIO functionality is thus | ||
832 | orthogonal to any other device using the pin. | ||
833 | |||
834 | In this arrangement the registers for the GPIO portions of the pin controller, | ||
835 | or the registers for the GPIO hardware module are likely to reside in a | ||
836 | separate memory range only intended for GPIO driving, and the register | ||
837 | range dealing with pin config and pin multiplexing get placed into a | ||
838 | different memory range and a separate section of the data sheet. | ||
839 | |||
840 | (B) | ||
841 | |||
842 | pin config | ||
843 | logic regs | ||
844 | | +- SPI | ||
845 | Physical pins --- pad --- pinmux -+- I2C | ||
846 | | | +- mmc | ||
847 | | | | ||
848 | GPIO pin | ||
849 | multiplex | ||
850 | logic regs | ||
851 | |||
852 | In this arrangement, the GPIO functionality can always be enabled, such that | ||
853 | e.g. a GPIO input can be used to "spy" on the SPI/I2C/MMC signal while it is | ||
854 | pulsed out. It is likely possible to disrupt the traffic on the pin by doing | ||
855 | wrong things on the GPIO block, as it is never really disconnected. It is | ||
856 | possible that the GPIO, pin config and pin multiplex registers are placed into | ||
857 | the same memory range and the same section of the data sheet, although that | ||
858 | need not be the case. | ||
859 | |||
860 | From a kernel point of view, however, these are different aspects of the | ||
861 | hardware and shall be put into different subsystems: | ||
862 | |||
863 | - Registers (or fields within registers) that control electrical | ||
864 | properties of the pin such as biasing and drive strength should be | ||
865 | exposed through the pinctrl subsystem, as "pin configuration" settings. | ||
866 | |||
867 | - Registers (or fields within registers) that control muxing of signals | ||
868 | from various other HW blocks (e.g. I2C, MMC, or GPIO) onto pins should | ||
869 | be exposed through the pinctrl subssytem, as mux functions. | ||
870 | |||
871 | - Registers (or fields within registers) that control GPIO functionality | ||
872 | such as setting a GPIO's output value, reading a GPIO's input value, or | ||
873 | setting GPIO pin direction should be exposed through the GPIO subsystem, | ||
874 | and if they also support interrupt capabilities, through the irqchip | ||
875 | abstraction. | ||
876 | |||
877 | Depending on the exact HW register design, some functions exposed by the | ||
878 | GPIO subsystem may call into the pinctrl subsystem in order to | ||
879 | co-ordinate register settings across HW modules. In particular, this may | ||
880 | be needed for HW with separate GPIO and pin controller HW modules, where | ||
881 | e.g. GPIO direction is determined by a register in the pin controller HW | ||
882 | module rather than the GPIO HW module. | ||
883 | |||
884 | Electrical properties of the pin such as biasing and drive strength | ||
885 | may be placed at some pin-specific register in all cases or as part | ||
886 | of the GPIO register in case (B) especially. This doesn't mean that such | ||
887 | properties necessarily pertain to what the Linux kernel calls "GPIO". | ||
888 | |||
810 | Example: a pin is usually muxed in to be used as a UART TX line. But during | 889 | Example: a pin is usually muxed in to be used as a UART TX line. But during |
811 | system sleep, we need to put this pin into "GPIO mode" and ground it. | 890 | system sleep, we need to put this pin into "GPIO mode" and ground it. |
812 | 891 | ||
@@ -856,7 +935,7 @@ static unsigned long uart_sleep_mode[] = { | |||
856 | PIN_CONF_PACKED(PIN_CONFIG_OUTPUT, 0), | 935 | PIN_CONF_PACKED(PIN_CONFIG_OUTPUT, 0), |
857 | }; | 936 | }; |
858 | 937 | ||
859 | static struct pinctrl_map __initdata pinmap[] = { | 938 | static struct pinctrl_map pinmap[] __initdata = { |
860 | PIN_MAP_MUX_GROUP("uart", PINCTRL_STATE_DEFAULT, "pinctrl-foo", | 939 | PIN_MAP_MUX_GROUP("uart", PINCTRL_STATE_DEFAULT, "pinctrl-foo", |
861 | "u0_group", "u0"), | 940 | "u0_group", "u0"), |
862 | PIN_MAP_CONFIGS_PIN("uart", PINCTRL_STATE_DEFAULT, "pinctrl-foo", | 941 | PIN_MAP_CONFIGS_PIN("uart", PINCTRL_STATE_DEFAULT, "pinctrl-foo", |
@@ -951,7 +1030,7 @@ Since the above construct is pretty common there is a helper macro to make | |||
951 | it even more compact which assumes you want to use pinctrl-foo and position | 1030 | it even more compact which assumes you want to use pinctrl-foo and position |
952 | 0 for mapping, for example: | 1031 | 0 for mapping, for example: |
953 | 1032 | ||
954 | static struct pinctrl_map __initdata mapping[] = { | 1033 | static struct pinctrl_map mapping[] __initdata = { |
955 | PIN_MAP_MUX_GROUP("foo-i2c.o", PINCTRL_STATE_DEFAULT, "pinctrl-foo", NULL, "i2c0"), | 1034 | PIN_MAP_MUX_GROUP("foo-i2c.o", PINCTRL_STATE_DEFAULT, "pinctrl-foo", NULL, "i2c0"), |
956 | }; | 1035 | }; |
957 | 1036 | ||
@@ -970,7 +1049,7 @@ static unsigned long i2c_pin_configs[] = { | |||
970 | FOO_SLEW_RATE_SLOW, | 1049 | FOO_SLEW_RATE_SLOW, |
971 | }; | 1050 | }; |
972 | 1051 | ||
973 | static struct pinctrl_map __initdata mapping[] = { | 1052 | static struct pinctrl_map mapping[] __initdata = { |
974 | PIN_MAP_MUX_GROUP("foo-i2c.0", PINCTRL_STATE_DEFAULT, "pinctrl-foo", "i2c0", "i2c0"), | 1053 | PIN_MAP_MUX_GROUP("foo-i2c.0", PINCTRL_STATE_DEFAULT, "pinctrl-foo", "i2c0", "i2c0"), |
975 | PIN_MAP_CONFIGS_GROUP("foo-i2c.0", PINCTRL_STATE_DEFAULT, "pinctrl-foo", "i2c0", i2c_grp_configs), | 1054 | PIN_MAP_CONFIGS_GROUP("foo-i2c.0", PINCTRL_STATE_DEFAULT, "pinctrl-foo", "i2c0", i2c_grp_configs), |
976 | PIN_MAP_CONFIGS_PIN("foo-i2c.0", PINCTRL_STATE_DEFAULT, "pinctrl-foo", "i2c0scl", i2c_pin_configs), | 1055 | PIN_MAP_CONFIGS_PIN("foo-i2c.0", PINCTRL_STATE_DEFAULT, "pinctrl-foo", "i2c0scl", i2c_pin_configs), |
@@ -984,7 +1063,7 @@ order to explicitly indicate that the states were provided and intended to | |||
984 | be empty. Table entry macro PIN_MAP_DUMMY_STATE serves the purpose of defining | 1063 | be empty. Table entry macro PIN_MAP_DUMMY_STATE serves the purpose of defining |
985 | a named state without causing any pin controller to be programmed: | 1064 | a named state without causing any pin controller to be programmed: |
986 | 1065 | ||
987 | static struct pinctrl_map __initdata mapping[] = { | 1066 | static struct pinctrl_map mapping[] __initdata = { |
988 | PIN_MAP_DUMMY_STATE("foo-i2c.0", PINCTRL_STATE_DEFAULT), | 1067 | PIN_MAP_DUMMY_STATE("foo-i2c.0", PINCTRL_STATE_DEFAULT), |
989 | }; | 1068 | }; |
990 | 1069 | ||
diff --git a/Documentation/power/basic-pm-debugging.txt b/Documentation/power/basic-pm-debugging.txt index 262acf56fa79..e9b54de8fdf7 100644 --- a/Documentation/power/basic-pm-debugging.txt +++ b/Documentation/power/basic-pm-debugging.txt | |||
@@ -179,7 +179,7 @@ use the PM_TRACE mechanism documented in Documentation/power/s2ram.txt . | |||
179 | 179 | ||
180 | To verify that the STR works, it is generally more convenient to use the s2ram | 180 | To verify that the STR works, it is generally more convenient to use the s2ram |
181 | tool available from http://suspend.sf.net and documented at | 181 | tool available from http://suspend.sf.net and documented at |
182 | http://en.opensuse.org/SDB:Suspend_to_RAM. | 182 | http://en.opensuse.org/SDB:Suspend_to_RAM (S2RAM_LINK). |
183 | 183 | ||
184 | Namely, after writing "freezer", "devices", "platform", "processors", or "core" | 184 | Namely, after writing "freezer", "devices", "platform", "processors", or "core" |
185 | into /sys/power/pm_test (available if the kernel is compiled with | 185 | into /sys/power/pm_test (available if the kernel is compiled with |
@@ -194,10 +194,10 @@ Among other things, the testing with the help of /sys/power/pm_test may allow | |||
194 | you to identify drivers that fail to suspend or resume their devices. They | 194 | you to identify drivers that fail to suspend or resume their devices. They |
195 | should be unloaded every time before an STR transition. | 195 | should be unloaded every time before an STR transition. |
196 | 196 | ||
197 | Next, you can follow the instructions at http://en.opensuse.org/s2ram to test | 197 | Next, you can follow the instructions at S2RAM_LINK to test the system, but if |
198 | the system, but if it does not work "out of the box", you may need to boot it | 198 | it does not work "out of the box", you may need to boot it with |
199 | with "init=/bin/bash" and test s2ram in the minimal configuration. In that | 199 | "init=/bin/bash" and test s2ram in the minimal configuration. In that case, |
200 | case, you may be able to search for failing drivers by following the procedure | 200 | you may be able to search for failing drivers by following the procedure |
201 | analogous to the one described in section 1. If you find some failing drivers, | 201 | analogous to the one described in section 1. If you find some failing drivers, |
202 | you will have to unload them every time before an STR transition (ie. before | 202 | you will have to unload them every time before an STR transition (ie. before |
203 | you run s2ram), and please report the problems with them. | 203 | you run s2ram), and please report the problems with them. |
diff --git a/Documentation/power/swsusp.txt b/Documentation/power/swsusp.txt index 0b4b63e7e9b6..079160e22bcc 100644 --- a/Documentation/power/swsusp.txt +++ b/Documentation/power/swsusp.txt | |||
@@ -50,6 +50,19 @@ echo N > /sys/power/image_size | |||
50 | 50 | ||
51 | before suspend (it is limited to 500 MB by default). | 51 | before suspend (it is limited to 500 MB by default). |
52 | 52 | ||
53 | . The resume process checks for the presence of the resume device, | ||
54 | if found, it then checks the contents for the hibernation image signature. | ||
55 | If both are found, it resumes the hibernation image. | ||
56 | |||
57 | . The resume process may be triggered in two ways: | ||
58 | 1) During lateinit: If resume=/dev/your_swap_partition is specified on | ||
59 | the kernel command line, lateinit runs the resume process. If the | ||
60 | resume device has not been probed yet, the resume process fails and | ||
61 | bootup continues. | ||
62 | 2) Manually from an initrd or initramfs: May be run from | ||
63 | the init script by using the /sys/power/resume file. It is vital | ||
64 | that this be done prior to remounting any filesystems (even as | ||
65 | read-only) otherwise data may be corrupted. | ||
53 | 66 | ||
54 | Article about goals and implementation of Software Suspend for Linux | 67 | Article about goals and implementation of Software Suspend for Linux |
55 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 68 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
@@ -326,7 +339,7 @@ Q: How can distributions ship a swsusp-supporting kernel with modular | |||
326 | disk drivers (especially SATA)? | 339 | disk drivers (especially SATA)? |
327 | 340 | ||
328 | A: Well, it can be done, load the drivers, then do echo into | 341 | A: Well, it can be done, load the drivers, then do echo into |
329 | /sys/power/disk/resume file from initrd. Be sure not to mount | 342 | /sys/power/resume file from initrd. Be sure not to mount |
330 | anything, not even read-only mount, or you are going to lose your | 343 | anything, not even read-only mount, or you are going to lose your |
331 | data. | 344 | data. |
332 | 345 | ||
diff --git a/Documentation/powerpc/00-INDEX b/Documentation/powerpc/00-INDEX index 05026ce1875e..6db73df04278 100644 --- a/Documentation/powerpc/00-INDEX +++ b/Documentation/powerpc/00-INDEX | |||
@@ -5,13 +5,20 @@ please mail me. | |||
5 | 5 | ||
6 | 00-INDEX | 6 | 00-INDEX |
7 | - this file | 7 | - this file |
8 | bootwrapper.txt | ||
9 | - Information on how the powerpc kernel is wrapped for boot on various | ||
10 | different platforms. | ||
8 | cpu_features.txt | 11 | cpu_features.txt |
9 | - info on how we support a variety of CPUs with minimal compile-time | 12 | - info on how we support a variety of CPUs with minimal compile-time |
10 | options. | 13 | options. |
11 | eeh-pci-error-recovery.txt | 14 | eeh-pci-error-recovery.txt |
12 | - info on PCI Bus EEH Error Recovery | 15 | - info on PCI Bus EEH Error Recovery |
16 | firmware-assisted-dump.txt | ||
17 | - Documentation on the firmware assisted dump mechanism "fadump". | ||
13 | hvcs.txt | 18 | hvcs.txt |
14 | - IBM "Hypervisor Virtual Console Server" Installation Guide | 19 | - IBM "Hypervisor Virtual Console Server" Installation Guide |
20 | kvm_440.txt | ||
21 | - Various notes on the implementation of KVM for PowerPC 440. | ||
15 | mpc52xx.txt | 22 | mpc52xx.txt |
16 | - Linux 2.6.x on MPC52xx family | 23 | - Linux 2.6.x on MPC52xx family |
17 | pmu-ebb.txt | 24 | pmu-ebb.txt |
@@ -19,3 +26,7 @@ pmu-ebb.txt | |||
19 | qe_firmware.txt | 26 | qe_firmware.txt |
20 | - describes the layout of firmware binaries for the Freescale QUICC | 27 | - describes the layout of firmware binaries for the Freescale QUICC |
21 | Engine and the code that parses and uploads the microcode therein. | 28 | Engine and the code that parses and uploads the microcode therein. |
29 | ptrace.txt | ||
30 | - Information on the ptrace interfaces for hardware debug registers. | ||
31 | transactional_memory.txt | ||
32 | - Overview of the Power8 transactional memory support. | ||
diff --git a/Documentation/printk-formats.txt b/Documentation/printk-formats.txt index 3e8cb73ac43c..445ad743ec81 100644 --- a/Documentation/printk-formats.txt +++ b/Documentation/printk-formats.txt | |||
@@ -97,7 +97,7 @@ IPv4 addresses: | |||
97 | 97 | ||
98 | %pI4 1.2.3.4 | 98 | %pI4 1.2.3.4 |
99 | %pi4 001.002.003.004 | 99 | %pi4 001.002.003.004 |
100 | %p[Ii][hnbl] | 100 | %p[Ii]4[hnbl] |
101 | 101 | ||
102 | For printing IPv4 dot-separated decimal addresses. The 'I4' and 'i4' | 102 | For printing IPv4 dot-separated decimal addresses. The 'I4' and 'i4' |
103 | specifiers result in a printed address with ('i4') or without ('I4') | 103 | specifiers result in a printed address with ('i4') or without ('I4') |
@@ -168,6 +168,15 @@ UUID/GUID addresses: | |||
168 | Where no additional specifiers are used the default little endian | 168 | Where no additional specifiers are used the default little endian |
169 | order with lower case hex characters will be printed. | 169 | order with lower case hex characters will be printed. |
170 | 170 | ||
171 | dentry names: | ||
172 | %pd{,2,3,4} | ||
173 | %pD{,2,3,4} | ||
174 | |||
175 | For printing dentry name; if we race with d_move(), the name might be | ||
176 | a mix of old and new ones, but it won't oops. %pd dentry is a safer | ||
177 | equivalent of %s dentry->d_name.name we used to use, %pd<n> prints | ||
178 | n last components. %pD does the same thing for struct file. | ||
179 | |||
171 | struct va_format: | 180 | struct va_format: |
172 | 181 | ||
173 | %pV | 182 | %pV |
@@ -185,11 +194,11 @@ struct va_format: | |||
185 | 194 | ||
186 | u64 SHOULD be printed with %llu/%llx, (unsigned long long): | 195 | u64 SHOULD be printed with %llu/%llx, (unsigned long long): |
187 | 196 | ||
188 | printk("%llu", (unsigned long long)u64_var); | 197 | printk("%llu", u64_var); |
189 | 198 | ||
190 | s64 SHOULD be printed with %lld/%llx, (long long): | 199 | s64 SHOULD be printed with %lld/%llx, (long long): |
191 | 200 | ||
192 | printk("%lld", (long long)s64_var); | 201 | printk("%lld", s64_var); |
193 | 202 | ||
194 | If <type> is dependent on a config option for its size (e.g., sector_t, | 203 | If <type> is dependent on a config option for its size (e.g., sector_t, |
195 | blkcnt_t) or is architecture-dependent for its size (e.g., tcflag_t), use a | 204 | blkcnt_t) or is architecture-dependent for its size (e.g., tcflag_t), use a |
diff --git a/Documentation/rapidio/rapidio.txt b/Documentation/rapidio/rapidio.txt index 717f5aa388b1..28fbd877f85a 100644 --- a/Documentation/rapidio/rapidio.txt +++ b/Documentation/rapidio/rapidio.txt | |||
@@ -300,7 +300,7 @@ initialization. | |||
300 | ------------------------------------------- | 300 | ------------------------------------------- |
301 | 301 | ||
302 | RapidIO subsystem code organization allows addition of new enumeration/discovery | 302 | RapidIO subsystem code organization allows addition of new enumeration/discovery |
303 | methods as new configuration options without significant impact to to the core | 303 | methods as new configuration options without significant impact to the core |
304 | RapidIO code. | 304 | RapidIO code. |
305 | 305 | ||
306 | A new enumeration/discovery method has to be attached to one or more mport | 306 | A new enumeration/discovery method has to be attached to one or more mport |
diff --git a/Documentation/scsi/LICENSE.qla4xxx b/Documentation/scsi/LICENSE.qla4xxx index 78c169f0d7c6..fcc27ad27d74 100644 --- a/Documentation/scsi/LICENSE.qla4xxx +++ b/Documentation/scsi/LICENSE.qla4xxx | |||
@@ -1,4 +1,4 @@ | |||
1 | Copyright (c) 2003-2012 QLogic Corporation | 1 | Copyright (c) 2003-2013 QLogic Corporation |
2 | QLogic Linux iSCSI Driver | 2 | QLogic Linux iSCSI Driver |
3 | 3 | ||
4 | This program includes a device driver for Linux 3.x. | 4 | This program includes a device driver for Linux 3.x. |
diff --git a/Documentation/scsi/hptiop.txt b/Documentation/scsi/hptiop.txt index 4a4f47e759cd..12ecfd308e55 100644 --- a/Documentation/scsi/hptiop.txt +++ b/Documentation/scsi/hptiop.txt | |||
@@ -151,7 +151,7 @@ To send a request to the controller: | |||
151 | generated. | 151 | generated. |
152 | 152 | ||
153 | - The host read the outbound list copy pointer shadow register and compare | 153 | - The host read the outbound list copy pointer shadow register and compare |
154 | with previous saved read ponter N. If they are different, the host will | 154 | with previous saved read pointer N. If they are different, the host will |
155 | read the (N+1)th outbound list unit. | 155 | read the (N+1)th outbound list unit. |
156 | 156 | ||
157 | The host get the index of the request from the (N+1)th outbound list | 157 | The host get the index of the request from the (N+1)th outbound list |
diff --git a/Documentation/sound/alsa/HD-Audio-Models.txt b/Documentation/sound/alsa/HD-Audio-Models.txt index 809d72b8eff1..a46ddb85e83a 100644 --- a/Documentation/sound/alsa/HD-Audio-Models.txt +++ b/Documentation/sound/alsa/HD-Audio-Models.txt | |||
@@ -244,6 +244,7 @@ STAC9227/9228/9229/927x | |||
244 | 5stack-no-fp D965 5stack without front panel | 244 | 5stack-no-fp D965 5stack without front panel |
245 | dell-3stack Dell Dimension E520 | 245 | dell-3stack Dell Dimension E520 |
246 | dell-bios Fixes with Dell BIOS setup | 246 | dell-bios Fixes with Dell BIOS setup |
247 | dell-bios-amic Fixes with Dell BIOS setup including analog mic | ||
247 | volknob Fixes with volume-knob widget 0x24 | 248 | volknob Fixes with volume-knob widget 0x24 |
248 | auto BIOS setup (default) | 249 | auto BIOS setup (default) |
249 | 250 | ||
diff --git a/Documentation/sound/alsa/HD-Audio.txt b/Documentation/sound/alsa/HD-Audio.txt index c3c912d023cc..42a0a39b77e6 100644 --- a/Documentation/sound/alsa/HD-Audio.txt +++ b/Documentation/sound/alsa/HD-Audio.txt | |||
@@ -454,6 +454,8 @@ The generic parser supports the following hints: | |||
454 | - need_dac_fix (bool): limits the DACs depending on the channel count | 454 | - need_dac_fix (bool): limits the DACs depending on the channel count |
455 | - primary_hp (bool): probe headphone jacks as the primary outputs; | 455 | - primary_hp (bool): probe headphone jacks as the primary outputs; |
456 | default true | 456 | default true |
457 | - multi_io (bool): try probing multi-I/O config (e.g. shared | ||
458 | line-in/surround, mic/clfe jacks) | ||
457 | - multi_cap_vol (bool): provide multiple capture volumes | 459 | - multi_cap_vol (bool): provide multiple capture volumes |
458 | - inv_dmic_split (bool): provide split internal mic volume/switch for | 460 | - inv_dmic_split (bool): provide split internal mic volume/switch for |
459 | phase-inverted digital mics | 461 | phase-inverted digital mics |
diff --git a/Documentation/sound/alsa/README.maya44 b/Documentation/sound/alsa/README.maya44 index 0e41576fa13e..67b2ea1cc31d 100644 --- a/Documentation/sound/alsa/README.maya44 +++ b/Documentation/sound/alsa/README.maya44 | |||
@@ -120,7 +120,7 @@ Mic Phantom+48V: switch for +48V phantom power for electrostatic microphones on | |||
120 | Make sure this is not turned on while any other source is connected to input 1/2. | 120 | Make sure this is not turned on while any other source is connected to input 1/2. |
121 | It might damage the source and/or the maya44 card. | 121 | It might damage the source and/or the maya44 card. |
122 | 122 | ||
123 | Mic/Line input: if switch is is on, input jack 1/2 is microphone input (mono), otherwise line input (stereo). | 123 | Mic/Line input: if switch is on, input jack 1/2 is microphone input (mono), otherwise line input (stereo). |
124 | 124 | ||
125 | Bypass: analogue bypass from ADC input to output for channel 1+2. Same as "Monitor" in the windows driver. | 125 | Bypass: analogue bypass from ADC input to output for channel 1+2. Same as "Monitor" in the windows driver. |
126 | Bypass 1: same for channel 3+4. | 126 | Bypass 1: same for channel 3+4. |
diff --git a/Documentation/sound/alsa/compress_offload.txt b/Documentation/sound/alsa/compress_offload.txt index 0bcc55155911..fd74ff26376e 100644 --- a/Documentation/sound/alsa/compress_offload.txt +++ b/Documentation/sound/alsa/compress_offload.txt | |||
@@ -73,7 +73,7 @@ The main requirements are: | |||
73 | 73 | ||
74 | Design | 74 | Design |
75 | 75 | ||
76 | The new API shares a number of concepts with with the PCM API for flow | 76 | The new API shares a number of concepts with the PCM API for flow |
77 | control. Start, pause, resume, drain and stop commands have the same | 77 | control. Start, pause, resume, drain and stop commands have the same |
78 | semantics no matter what the content is. | 78 | semantics no matter what the content is. |
79 | 79 | ||
@@ -130,7 +130,7 @@ the settings should remain the exception. | |||
130 | The timestamp becomes a multiple field structure. It lists the number | 130 | The timestamp becomes a multiple field structure. It lists the number |
131 | of bytes transferred, the number of samples processed and the number | 131 | of bytes transferred, the number of samples processed and the number |
132 | of samples rendered/grabbed. All these values can be used to determine | 132 | of samples rendered/grabbed. All these values can be used to determine |
133 | the avarage bitrate, figure out if the ring buffer needs to be | 133 | the average bitrate, figure out if the ring buffer needs to be |
134 | refilled or the delay due to decoding/encoding/io on the DSP. | 134 | refilled or the delay due to decoding/encoding/io on the DSP. |
135 | 135 | ||
136 | Note that the list of codecs/profiles/modes was derived from the | 136 | Note that the list of codecs/profiles/modes was derived from the |
diff --git a/Documentation/spi/spi-summary b/Documentation/spi/spi-summary index 2331eb214146..f21edb983413 100644 --- a/Documentation/spi/spi-summary +++ b/Documentation/spi/spi-summary | |||
@@ -215,7 +215,7 @@ So for example arch/.../mach-*/board-*.c files might have code like: | |||
215 | /* if your mach-* infrastructure doesn't support kernels that can | 215 | /* if your mach-* infrastructure doesn't support kernels that can |
216 | * run on multiple boards, pdata wouldn't benefit from "__init". | 216 | * run on multiple boards, pdata wouldn't benefit from "__init". |
217 | */ | 217 | */ |
218 | static struct mysoc_spi_data __initdata pdata = { ... }; | 218 | static struct mysoc_spi_data pdata __initdata = { ... }; |
219 | 219 | ||
220 | static __init board_init(void) | 220 | static __init board_init(void) |
221 | { | 221 | { |
diff --git a/Documentation/sysctl/kernel.txt b/Documentation/sysctl/kernel.txt index ab7d16efa96b..9d4c1d18ad44 100644 --- a/Documentation/sysctl/kernel.txt +++ b/Documentation/sysctl/kernel.txt | |||
@@ -182,6 +182,7 @@ core_pattern is used to specify a core dumpfile pattern name. | |||
182 | %<NUL> '%' is dropped | 182 | %<NUL> '%' is dropped |
183 | %% output one '%' | 183 | %% output one '%' |
184 | %p pid | 184 | %p pid |
185 | %P global pid (init PID namespace) | ||
185 | %u uid | 186 | %u uid |
186 | %g gid | 187 | %g gid |
187 | %d dump mode, matches PR_SET_DUMPABLE and | 188 | %d dump mode, matches PR_SET_DUMPABLE and |
diff --git a/Documentation/sysctl/net.txt b/Documentation/sysctl/net.txt index d569f2a424d5..9a0319a82470 100644 --- a/Documentation/sysctl/net.txt +++ b/Documentation/sysctl/net.txt | |||
@@ -50,6 +50,19 @@ The maximum number of packets that kernel can handle on a NAPI interrupt, | |||
50 | it's a Per-CPU variable. | 50 | it's a Per-CPU variable. |
51 | Default: 64 | 51 | Default: 64 |
52 | 52 | ||
53 | default_qdisc | ||
54 | -------------- | ||
55 | |||
56 | The default queuing discipline to use for network devices. This allows | ||
57 | overriding the default queue discipline of pfifo_fast with an | ||
58 | alternative. Since the default queuing discipline is created with the | ||
59 | no additional parameters so is best suited to queuing disciplines that | ||
60 | work well without configuration like stochastic fair queue (sfq), | ||
61 | CoDel (codel) or fair queue CoDel (fq_codel). Don't use queuing disciplines | ||
62 | like Hierarchical Token Bucket or Deficit Round Robin which require setting | ||
63 | up classes and bandwidths. | ||
64 | Default: pfifo_fast | ||
65 | |||
53 | busy_read | 66 | busy_read |
54 | ---------------- | 67 | ---------------- |
55 | Low latency busy poll timeout for socket reads. (needs CONFIG_NET_RX_BUSY_POLL) | 68 | Low latency busy poll timeout for socket reads. (needs CONFIG_NET_RX_BUSY_POLL) |
diff --git a/Documentation/sysctl/vm.txt b/Documentation/sysctl/vm.txt index 36ecc26c7433..79a797eb3e87 100644 --- a/Documentation/sysctl/vm.txt +++ b/Documentation/sysctl/vm.txt | |||
@@ -200,17 +200,25 @@ fragmentation index is <= extfrag_threshold. The default value is 500. | |||
200 | 200 | ||
201 | hugepages_treat_as_movable | 201 | hugepages_treat_as_movable |
202 | 202 | ||
203 | This parameter is only useful when kernelcore= is specified at boot time to | 203 | This parameter controls whether we can allocate hugepages from ZONE_MOVABLE |
204 | create ZONE_MOVABLE for pages that may be reclaimed or migrated. Huge pages | 204 | or not. If set to non-zero, hugepages can be allocated from ZONE_MOVABLE. |
205 | are not movable so are not normally allocated from ZONE_MOVABLE. A non-zero | 205 | ZONE_MOVABLE is created when kernel boot parameter kernelcore= is specified, |
206 | value written to hugepages_treat_as_movable allows huge pages to be allocated | 206 | so this parameter has no effect if used without kernelcore=. |
207 | from ZONE_MOVABLE. | 207 | |
208 | 208 | Hugepage migration is now available in some situations which depend on the | |
209 | Once enabled, the ZONE_MOVABLE is treated as an area of memory the huge | 209 | architecture and/or the hugepage size. If a hugepage supports migration, |
210 | pages pool can easily grow or shrink within. Assuming that applications are | 210 | allocation from ZONE_MOVABLE is always enabled for the hugepage regardless |
211 | not running that mlock() a lot of memory, it is likely the huge pages pool | 211 | of the value of this parameter. |
212 | can grow to the size of ZONE_MOVABLE by repeatedly entering the desired value | 212 | IOW, this parameter affects only non-migratable hugepages. |
213 | into nr_hugepages and triggering page reclaim. | 213 | |
214 | Assuming that hugepages are not migratable in your system, one usecase of | ||
215 | this parameter is that users can make hugepage pool more extensible by | ||
216 | enabling the allocation from ZONE_MOVABLE. This is because on ZONE_MOVABLE | ||
217 | page reclaim/migration/compaction work more and you can get contiguous | ||
218 | memory more likely. Note that using ZONE_MOVABLE for non-migratable | ||
219 | hugepages can do harm to other features like memory hotremove (because | ||
220 | memory hotremove expects that memory blocks on ZONE_MOVABLE are always | ||
221 | removable,) so it's a trade-off responsible for the users. | ||
214 | 222 | ||
215 | ============================================================== | 223 | ============================================================== |
216 | 224 | ||
diff --git a/Documentation/sysfs-rules.txt b/Documentation/sysfs-rules.txt index c1a1fd636bf9..a5f985ee1822 100644 --- a/Documentation/sysfs-rules.txt +++ b/Documentation/sysfs-rules.txt | |||
@@ -47,7 +47,7 @@ versions of the sysfs interface. | |||
47 | at device creation and removal | 47 | at device creation and removal |
48 | - the unique key to the device at that point in time | 48 | - the unique key to the device at that point in time |
49 | - the kernel's path to the device directory without the leading | 49 | - the kernel's path to the device directory without the leading |
50 | /sys, and always starting with with a slash | 50 | /sys, and always starting with a slash |
51 | - all elements of a devpath must be real directories. Symlinks | 51 | - all elements of a devpath must be real directories. Symlinks |
52 | pointing to /sys/devices must always be resolved to their real | 52 | pointing to /sys/devices must always be resolved to their real |
53 | target and the target path must be used to access the device. | 53 | target and the target path must be used to access the device. |
diff --git a/Documentation/target/tcm_mod_builder.py b/Documentation/target/tcm_mod_builder.py index 3fe0d812dcec..54d29c1320ed 100755 --- a/Documentation/target/tcm_mod_builder.py +++ b/Documentation/target/tcm_mod_builder.py | |||
@@ -300,7 +300,7 @@ def tcm_mod_build_configfs(proto_ident, fabric_mod_dir_var, fabric_mod_name): | |||
300 | buf += " int ret;\n\n" | 300 | buf += " int ret;\n\n" |
301 | buf += " if (strstr(name, \"tpgt_\") != name)\n" | 301 | buf += " if (strstr(name, \"tpgt_\") != name)\n" |
302 | buf += " return ERR_PTR(-EINVAL);\n" | 302 | buf += " return ERR_PTR(-EINVAL);\n" |
303 | buf += " if (strict_strtoul(name + 5, 10, &tpgt) || tpgt > UINT_MAX)\n" | 303 | buf += " if (kstrtoul(name + 5, 10, &tpgt) || tpgt > UINT_MAX)\n" |
304 | buf += " return ERR_PTR(-EINVAL);\n\n" | 304 | buf += " return ERR_PTR(-EINVAL);\n\n" |
305 | buf += " tpg = kzalloc(sizeof(struct " + fabric_mod_name + "_tpg), GFP_KERNEL);\n" | 305 | buf += " tpg = kzalloc(sizeof(struct " + fabric_mod_name + "_tpg), GFP_KERNEL);\n" |
306 | buf += " if (!tpg) {\n" | 306 | buf += " if (!tpg) {\n" |
diff --git a/Documentation/timers/NO_HZ.txt b/Documentation/timers/NO_HZ.txt index 88697584242b..cca122f25120 100644 --- a/Documentation/timers/NO_HZ.txt +++ b/Documentation/timers/NO_HZ.txt | |||
@@ -24,8 +24,8 @@ There are three main ways of managing scheduling-clock interrupts | |||
24 | workloads, you will normally -not- want this option. | 24 | workloads, you will normally -not- want this option. |
25 | 25 | ||
26 | These three cases are described in the following three sections, followed | 26 | These three cases are described in the following three sections, followed |
27 | by a third section on RCU-specific considerations and a fourth and final | 27 | by a third section on RCU-specific considerations, a fourth section |
28 | section listing known issues. | 28 | discussing testing, and a fifth and final section listing known issues. |
29 | 29 | ||
30 | 30 | ||
31 | NEVER OMIT SCHEDULING-CLOCK TICKS | 31 | NEVER OMIT SCHEDULING-CLOCK TICKS |
@@ -121,14 +121,15 @@ boot parameter specifies the adaptive-ticks CPUs. For example, | |||
121 | "nohz_full=1,6-8" says that CPUs 1, 6, 7, and 8 are to be adaptive-ticks | 121 | "nohz_full=1,6-8" says that CPUs 1, 6, 7, and 8 are to be adaptive-ticks |
122 | CPUs. Note that you are prohibited from marking all of the CPUs as | 122 | CPUs. Note that you are prohibited from marking all of the CPUs as |
123 | adaptive-tick CPUs: At least one non-adaptive-tick CPU must remain | 123 | adaptive-tick CPUs: At least one non-adaptive-tick CPU must remain |
124 | online to handle timekeeping tasks in order to ensure that system calls | 124 | online to handle timekeeping tasks in order to ensure that system |
125 | like gettimeofday() returns accurate values on adaptive-tick CPUs. | 125 | calls like gettimeofday() returns accurate values on adaptive-tick CPUs. |
126 | (This is not an issue for CONFIG_NO_HZ_IDLE=y because there are no | 126 | (This is not an issue for CONFIG_NO_HZ_IDLE=y because there are no running |
127 | running user processes to observe slight drifts in clock rate.) | 127 | user processes to observe slight drifts in clock rate.) Therefore, the |
128 | Therefore, the boot CPU is prohibited from entering adaptive-ticks | 128 | boot CPU is prohibited from entering adaptive-ticks mode. Specifying a |
129 | mode. Specifying a "nohz_full=" mask that includes the boot CPU will | 129 | "nohz_full=" mask that includes the boot CPU will result in a boot-time |
130 | result in a boot-time error message, and the boot CPU will be removed | 130 | error message, and the boot CPU will be removed from the mask. Note that |
131 | from the mask. | 131 | this means that your system must have at least two CPUs in order for |
132 | CONFIG_NO_HZ_FULL=y to do anything for you. | ||
132 | 133 | ||
133 | Alternatively, the CONFIG_NO_HZ_FULL_ALL=y Kconfig parameter specifies | 134 | Alternatively, the CONFIG_NO_HZ_FULL_ALL=y Kconfig parameter specifies |
134 | that all CPUs other than the boot CPU are adaptive-ticks CPUs. This | 135 | that all CPUs other than the boot CPU are adaptive-ticks CPUs. This |
@@ -232,6 +233,29 @@ scheduler will decide where to run them, which might or might not be | |||
232 | where you want them to run. | 233 | where you want them to run. |
233 | 234 | ||
234 | 235 | ||
236 | TESTING | ||
237 | |||
238 | So you enable all the OS-jitter features described in this document, | ||
239 | but do not see any change in your workload's behavior. Is this because | ||
240 | your workload isn't affected that much by OS jitter, or is it because | ||
241 | something else is in the way? This section helps answer this question | ||
242 | by providing a simple OS-jitter test suite, which is available on branch | ||
243 | master of the following git archive: | ||
244 | |||
245 | git://git.kernel.org/pub/scm/linux/kernel/git/frederic/dynticks-testing.git | ||
246 | |||
247 | Clone this archive and follow the instructions in the README file. | ||
248 | This test procedure will produce a trace that will allow you to evaluate | ||
249 | whether or not you have succeeded in removing OS jitter from your system. | ||
250 | If this trace shows that you have removed OS jitter as much as is | ||
251 | possible, then you can conclude that your workload is not all that | ||
252 | sensitive to OS jitter. | ||
253 | |||
254 | Note: this test requires that your system have at least two CPUs. | ||
255 | We do not currently have a good way to remove OS jitter from single-CPU | ||
256 | systems. | ||
257 | |||
258 | |||
235 | KNOWN ISSUES | 259 | KNOWN ISSUES |
236 | 260 | ||
237 | o Dyntick-idle slows transitions to and from idle slightly. | 261 | o Dyntick-idle slows transitions to and from idle slightly. |
diff --git a/Documentation/tpm/xen-tpmfront.txt b/Documentation/tpm/xen-tpmfront.txt new file mode 100644 index 000000000000..69346de87ff3 --- /dev/null +++ b/Documentation/tpm/xen-tpmfront.txt | |||
@@ -0,0 +1,113 @@ | |||
1 | Virtual TPM interface for Xen | ||
2 | |||
3 | Authors: Matthew Fioravante (JHUAPL), Daniel De Graaf (NSA) | ||
4 | |||
5 | This document describes the virtual Trusted Platform Module (vTPM) subsystem for | ||
6 | Xen. The reader is assumed to have familiarity with building and installing Xen, | ||
7 | Linux, and a basic understanding of the TPM and vTPM concepts. | ||
8 | |||
9 | INTRODUCTION | ||
10 | |||
11 | The goal of this work is to provide a TPM functionality to a virtual guest | ||
12 | operating system (in Xen terms, a DomU). This allows programs to interact with | ||
13 | a TPM in a virtual system the same way they interact with a TPM on the physical | ||
14 | system. Each guest gets its own unique, emulated, software TPM. However, each | ||
15 | of the vTPM's secrets (Keys, NVRAM, etc) are managed by a vTPM Manager domain, | ||
16 | which seals the secrets to the Physical TPM. If the process of creating each of | ||
17 | these domains (manager, vTPM, and guest) is trusted, the vTPM subsystem extends | ||
18 | the chain of trust rooted in the hardware TPM to virtual machines in Xen. Each | ||
19 | major component of vTPM is implemented as a separate domain, providing secure | ||
20 | separation guaranteed by the hypervisor. The vTPM domains are implemented in | ||
21 | mini-os to reduce memory and processor overhead. | ||
22 | |||
23 | This mini-os vTPM subsystem was built on top of the previous vTPM work done by | ||
24 | IBM and Intel corporation. | ||
25 | |||
26 | |||
27 | DESIGN OVERVIEW | ||
28 | --------------- | ||
29 | |||
30 | The architecture of vTPM is described below: | ||
31 | |||
32 | +------------------+ | ||
33 | | Linux DomU | ... | ||
34 | | | ^ | | ||
35 | | v | | | ||
36 | | xen-tpmfront | | ||
37 | +------------------+ | ||
38 | | ^ | ||
39 | v | | ||
40 | +------------------+ | ||
41 | | mini-os/tpmback | | ||
42 | | | ^ | | ||
43 | | v | | | ||
44 | | vtpm-stubdom | ... | ||
45 | | | ^ | | ||
46 | | v | | | ||
47 | | mini-os/tpmfront | | ||
48 | +------------------+ | ||
49 | | ^ | ||
50 | v | | ||
51 | +------------------+ | ||
52 | | mini-os/tpmback | | ||
53 | | | ^ | | ||
54 | | v | | | ||
55 | | vtpmmgr-stubdom | | ||
56 | | | ^ | | ||
57 | | v | | | ||
58 | | mini-os/tpm_tis | | ||
59 | +------------------+ | ||
60 | | ^ | ||
61 | v | | ||
62 | +------------------+ | ||
63 | | Hardware TPM | | ||
64 | +------------------+ | ||
65 | |||
66 | * Linux DomU: The Linux based guest that wants to use a vTPM. There may be | ||
67 | more than one of these. | ||
68 | |||
69 | * xen-tpmfront.ko: Linux kernel virtual TPM frontend driver. This driver | ||
70 | provides vTPM access to a Linux-based DomU. | ||
71 | |||
72 | * mini-os/tpmback: Mini-os TPM backend driver. The Linux frontend driver | ||
73 | connects to this backend driver to facilitate communications | ||
74 | between the Linux DomU and its vTPM. This driver is also | ||
75 | used by vtpmmgr-stubdom to communicate with vtpm-stubdom. | ||
76 | |||
77 | * vtpm-stubdom: A mini-os stub domain that implements a vTPM. There is a | ||
78 | one to one mapping between running vtpm-stubdom instances and | ||
79 | logical vtpms on the system. The vTPM Platform Configuration | ||
80 | Registers (PCRs) are normally all initialized to zero. | ||
81 | |||
82 | * mini-os/tpmfront: Mini-os TPM frontend driver. The vTPM mini-os domain | ||
83 | vtpm-stubdom uses this driver to communicate with | ||
84 | vtpmmgr-stubdom. This driver is also used in mini-os | ||
85 | domains such as pv-grub that talk to the vTPM domain. | ||
86 | |||
87 | * vtpmmgr-stubdom: A mini-os domain that implements the vTPM manager. There is | ||
88 | only one vTPM manager and it should be running during the | ||
89 | entire lifetime of the machine. This domain regulates | ||
90 | access to the physical TPM on the system and secures the | ||
91 | persistent state of each vTPM. | ||
92 | |||
93 | * mini-os/tpm_tis: Mini-os TPM version 1.2 TPM Interface Specification (TIS) | ||
94 | driver. This driver used by vtpmmgr-stubdom to talk directly to | ||
95 | the hardware TPM. Communication is facilitated by mapping | ||
96 | hardware memory pages into vtpmmgr-stubdom. | ||
97 | |||
98 | * Hardware TPM: The physical TPM that is soldered onto the motherboard. | ||
99 | |||
100 | |||
101 | INTEGRATION WITH XEN | ||
102 | -------------------- | ||
103 | |||
104 | Support for the vTPM driver was added in Xen using the libxl toolstack in Xen | ||
105 | 4.3. See the Xen documentation (docs/misc/vtpm.txt) for details on setting up | ||
106 | the vTPM and vTPM Manager stub domains. Once the stub domains are running, a | ||
107 | vTPM device is set up in the same manner as a disk or network device in the | ||
108 | domain's configuration file. | ||
109 | |||
110 | In order to use features such as IMA that require a TPM to be loaded prior to | ||
111 | the initrd, the xen-tpmfront driver must be compiled in to the kernel. If not | ||
112 | using such features, the driver can be compiled as a module and will be loaded | ||
113 | as usual. | ||
diff --git a/Documentation/trace/ftrace.txt b/Documentation/trace/ftrace.txt index b937c6e2163c..ea2d35d64d26 100644 --- a/Documentation/trace/ftrace.txt +++ b/Documentation/trace/ftrace.txt | |||
@@ -735,7 +735,7 @@ Here are the available options: | |||
735 | function as well as the function being traced. | 735 | function as well as the function being traced. |
736 | 736 | ||
737 | print-parent: | 737 | print-parent: |
738 | bash-4000 [01] 1477.606694: simple_strtoul <-strict_strtoul | 738 | bash-4000 [01] 1477.606694: simple_strtoul <-kstrtoul |
739 | 739 | ||
740 | noprint-parent: | 740 | noprint-parent: |
741 | bash-4000 [01] 1477.606694: simple_strtoul | 741 | bash-4000 [01] 1477.606694: simple_strtoul |
@@ -759,7 +759,7 @@ Here are the available options: | |||
759 | latency-format option is enabled. | 759 | latency-format option is enabled. |
760 | 760 | ||
761 | bash 4000 1 0 00000000 00010a95 [58127d26] 1720.415ms \ | 761 | bash 4000 1 0 00000000 00010a95 [58127d26] 1720.415ms \ |
762 | (+0.000ms): simple_strtoul (strict_strtoul) | 762 | (+0.000ms): simple_strtoul (kstrtoul) |
763 | 763 | ||
764 | raw - This will display raw numbers. This option is best for | 764 | raw - This will display raw numbers. This option is best for |
765 | use with user applications that can translate the raw | 765 | use with user applications that can translate the raw |
diff --git a/Documentation/trace/tracepoints.txt b/Documentation/trace/tracepoints.txt index da49437d5aeb..ac4170dd0f24 100644 --- a/Documentation/trace/tracepoints.txt +++ b/Documentation/trace/tracepoints.txt | |||
@@ -40,7 +40,13 @@ Two elements are required for tracepoints : | |||
40 | 40 | ||
41 | In order to use tracepoints, you should include linux/tracepoint.h. | 41 | In order to use tracepoints, you should include linux/tracepoint.h. |
42 | 42 | ||
43 | In include/trace/subsys.h : | 43 | In include/trace/events/subsys.h : |
44 | |||
45 | #undef TRACE_SYSTEM | ||
46 | #define TRACE_SYSTEM subsys | ||
47 | |||
48 | #if !defined(_TRACE_SUBSYS_H) || defined(TRACE_HEADER_MULTI_READ) | ||
49 | #define _TRACE_SUBSYS_H | ||
44 | 50 | ||
45 | #include <linux/tracepoint.h> | 51 | #include <linux/tracepoint.h> |
46 | 52 | ||
@@ -48,10 +54,16 @@ DECLARE_TRACE(subsys_eventname, | |||
48 | TP_PROTO(int firstarg, struct task_struct *p), | 54 | TP_PROTO(int firstarg, struct task_struct *p), |
49 | TP_ARGS(firstarg, p)); | 55 | TP_ARGS(firstarg, p)); |
50 | 56 | ||
57 | #endif /* _TRACE_SUBSYS_H */ | ||
58 | |||
59 | /* This part must be outside protection */ | ||
60 | #include <trace/define_trace.h> | ||
61 | |||
51 | In subsys/file.c (where the tracing statement must be added) : | 62 | In subsys/file.c (where the tracing statement must be added) : |
52 | 63 | ||
53 | #include <trace/subsys.h> | 64 | #include <trace/events/subsys.h> |
54 | 65 | ||
66 | #define CREATE_TRACE_POINTS | ||
55 | DEFINE_TRACE(subsys_eventname); | 67 | DEFINE_TRACE(subsys_eventname); |
56 | 68 | ||
57 | void somefct(void) | 69 | void somefct(void) |
@@ -72,6 +84,9 @@ Where : | |||
72 | - TP_ARGS(firstarg, p) are the parameters names, same as found in the | 84 | - TP_ARGS(firstarg, p) are the parameters names, same as found in the |
73 | prototype. | 85 | prototype. |
74 | 86 | ||
87 | - if you use the header in multiple source files, #define CREATE_TRACE_POINTS | ||
88 | should appear only in one source file. | ||
89 | |||
75 | Connecting a function (probe) to a tracepoint is done by providing a | 90 | Connecting a function (probe) to a tracepoint is done by providing a |
76 | probe (function to call) for the specific tracepoint through | 91 | probe (function to call) for the specific tracepoint through |
77 | register_trace_subsys_eventname(). Removing a probe is done through | 92 | register_trace_subsys_eventname(). Removing a probe is done through |
diff --git a/Documentation/usb/URB.txt b/Documentation/usb/URB.txt index 00d2c644068e..50da0d455444 100644 --- a/Documentation/usb/URB.txt +++ b/Documentation/usb/URB.txt | |||
@@ -195,13 +195,12 @@ by the completion handler. | |||
195 | 195 | ||
196 | The handler is of the following type: | 196 | The handler is of the following type: |
197 | 197 | ||
198 | typedef void (*usb_complete_t)(struct urb *, struct pt_regs *) | 198 | typedef void (*usb_complete_t)(struct urb *) |
199 | 199 | ||
200 | I.e., it gets the URB that caused the completion call, plus the | 200 | I.e., it gets the URB that caused the completion call. In the completion |
201 | register values at the time of the corresponding interrupt (if any). | 201 | handler, you should have a look at urb->status to detect any USB errors. |
202 | In the completion handler, you should have a look at urb->status to | 202 | Since the context parameter is included in the URB, you can pass |
203 | detect any USB errors. Since the context parameter is included in the URB, | 203 | information to the completion handler. |
204 | you can pass information to the completion handler. | ||
205 | 204 | ||
206 | Note that even when an error (or unlink) is reported, data may have been | 205 | Note that even when an error (or unlink) is reported, data may have been |
207 | transferred. That's because USB transfers are packetized; it might take | 206 | transferred. That's because USB transfers are packetized; it might take |
@@ -210,12 +209,12 @@ have transferred successfully before the completion was called. | |||
210 | 209 | ||
211 | 210 | ||
212 | NOTE: ***** WARNING ***** | 211 | NOTE: ***** WARNING ***** |
213 | NEVER SLEEP IN A COMPLETION HANDLER. These are normally called | 212 | NEVER SLEEP IN A COMPLETION HANDLER. These are often called in atomic |
214 | during hardware interrupt processing. If you can, defer substantial | 213 | context. |
215 | work to a tasklet (bottom half) to keep system latencies low. You'll | ||
216 | probably need to use spinlocks to protect data structures you manipulate | ||
217 | in completion handlers. | ||
218 | 214 | ||
215 | In the current kernel, completion handlers run with local interrupts | ||
216 | disabled, but in the future this will be changed, so don't assume that | ||
217 | local IRQs are always disabled inside completion handlers. | ||
219 | 218 | ||
220 | 1.8. How to do isochronous (ISO) transfers? | 219 | 1.8. How to do isochronous (ISO) transfers? |
221 | 220 | ||
diff --git a/Documentation/usb/proc_usb_info.txt b/Documentation/usb/proc_usb_info.txt index c9c3f0f5ad7b..98be91982677 100644 --- a/Documentation/usb/proc_usb_info.txt +++ b/Documentation/usb/proc_usb_info.txt | |||
@@ -54,9 +54,12 @@ it and 002/048 sometime later. | |||
54 | 54 | ||
55 | These files can be read as binary data. The binary data consists | 55 | These files can be read as binary data. The binary data consists |
56 | of first the device descriptor, then the descriptors for each | 56 | of first the device descriptor, then the descriptors for each |
57 | configuration of the device. Multi-byte fields in the device and | 57 | configuration of the device. Multi-byte fields in the device descriptor |
58 | configuration descriptors, but not other descriptors, are converted | 58 | are converted to host endianness by the kernel. The configuration |
59 | to host endianness by the kernel. This information is also shown | 59 | descriptors are in bus endian format! The configuration descriptor |
60 | are wTotalLength bytes apart. If a device returns less configuration | ||
61 | descriptor data than indicated by wTotalLength there will be a hole in | ||
62 | the file for the missing bytes. This information is also shown | ||
60 | in text form by the /proc/bus/usb/devices file, described later. | 63 | in text form by the /proc/bus/usb/devices file, described later. |
61 | 64 | ||
62 | These files may also be used to write user-level drivers for the USB | 65 | These files may also be used to write user-level drivers for the USB |
diff --git a/Documentation/vfio.txt b/Documentation/vfio.txt index d7993dcf8537..b9ca02370d46 100644 --- a/Documentation/vfio.txt +++ b/Documentation/vfio.txt | |||
@@ -167,8 +167,8 @@ group and can access them as follows: | |||
167 | int container, group, device, i; | 167 | int container, group, device, i; |
168 | struct vfio_group_status group_status = | 168 | struct vfio_group_status group_status = |
169 | { .argsz = sizeof(group_status) }; | 169 | { .argsz = sizeof(group_status) }; |
170 | struct vfio_iommu_x86_info iommu_info = { .argsz = sizeof(iommu_info) }; | 170 | struct vfio_iommu_type1_info iommu_info = { .argsz = sizeof(iommu_info) }; |
171 | struct vfio_iommu_x86_dma_map dma_map = { .argsz = sizeof(dma_map) }; | 171 | struct vfio_iommu_type1_dma_map dma_map = { .argsz = sizeof(dma_map) }; |
172 | struct vfio_device_info device_info = { .argsz = sizeof(device_info) }; | 172 | struct vfio_device_info device_info = { .argsz = sizeof(device_info) }; |
173 | 173 | ||
174 | /* Create a new container */ | 174 | /* Create a new container */ |
@@ -193,7 +193,7 @@ group and can access them as follows: | |||
193 | ioctl(group, VFIO_GROUP_SET_CONTAINER, &container); | 193 | ioctl(group, VFIO_GROUP_SET_CONTAINER, &container); |
194 | 194 | ||
195 | /* Enable the IOMMU model we want */ | 195 | /* Enable the IOMMU model we want */ |
196 | ioctl(container, VFIO_SET_IOMMU, VFIO_TYPE1_IOMMU) | 196 | ioctl(container, VFIO_SET_IOMMU, VFIO_TYPE1_IOMMU); |
197 | 197 | ||
198 | /* Get addition IOMMU info */ | 198 | /* Get addition IOMMU info */ |
199 | ioctl(container, VFIO_IOMMU_GET_INFO, &iommu_info); | 199 | ioctl(container, VFIO_IOMMU_GET_INFO, &iommu_info); |
@@ -229,7 +229,7 @@ group and can access them as follows: | |||
229 | 229 | ||
230 | irq.index = i; | 230 | irq.index = i; |
231 | 231 | ||
232 | ioctl(device, VFIO_DEVICE_GET_IRQ_INFO, ®); | 232 | ioctl(device, VFIO_DEVICE_GET_IRQ_INFO, &irq); |
233 | 233 | ||
234 | /* Setup IRQs... eventfds, VFIO_DEVICE_SET_IRQS */ | 234 | /* Setup IRQs... eventfds, VFIO_DEVICE_SET_IRQS */ |
235 | } | 235 | } |
diff --git a/Documentation/video4linux/v4l2-controls.txt b/Documentation/video4linux/v4l2-controls.txt index 676f87366025..06cf3ac83631 100644 --- a/Documentation/video4linux/v4l2-controls.txt +++ b/Documentation/video4linux/v4l2-controls.txt | |||
@@ -124,26 +124,27 @@ You add non-menu controls by calling v4l2_ctrl_new_std: | |||
124 | const struct v4l2_ctrl_ops *ops, | 124 | const struct v4l2_ctrl_ops *ops, |
125 | u32 id, s32 min, s32 max, u32 step, s32 def); | 125 | u32 id, s32 min, s32 max, u32 step, s32 def); |
126 | 126 | ||
127 | Menu controls are added by calling v4l2_ctrl_new_std_menu: | 127 | Menu and integer menu controls are added by calling v4l2_ctrl_new_std_menu: |
128 | 128 | ||
129 | struct v4l2_ctrl *v4l2_ctrl_new_std_menu(struct v4l2_ctrl_handler *hdl, | 129 | struct v4l2_ctrl *v4l2_ctrl_new_std_menu(struct v4l2_ctrl_handler *hdl, |
130 | const struct v4l2_ctrl_ops *ops, | 130 | const struct v4l2_ctrl_ops *ops, |
131 | u32 id, s32 max, s32 skip_mask, s32 def); | 131 | u32 id, s32 max, s32 skip_mask, s32 def); |
132 | 132 | ||
133 | Or alternatively for integer menu controls, by calling v4l2_ctrl_new_int_menu: | 133 | Menu controls with a driver specific menu are added by calling |
134 | v4l2_ctrl_new_std_menu_items: | ||
135 | |||
136 | struct v4l2_ctrl *v4l2_ctrl_new_std_menu_items( | ||
137 | struct v4l2_ctrl_handler *hdl, | ||
138 | const struct v4l2_ctrl_ops *ops, u32 id, s32 max, | ||
139 | s32 skip_mask, s32 def, const char * const *qmenu); | ||
140 | |||
141 | Integer menu controls with a driver specific menu can be added by calling | ||
142 | v4l2_ctrl_new_int_menu: | ||
134 | 143 | ||
135 | struct v4l2_ctrl *v4l2_ctrl_new_int_menu(struct v4l2_ctrl_handler *hdl, | 144 | struct v4l2_ctrl *v4l2_ctrl_new_int_menu(struct v4l2_ctrl_handler *hdl, |
136 | const struct v4l2_ctrl_ops *ops, | 145 | const struct v4l2_ctrl_ops *ops, |
137 | u32 id, s32 max, s32 def, const s64 *qmenu_int); | 146 | u32 id, s32 max, s32 def, const s64 *qmenu_int); |
138 | 147 | ||
139 | Standard menu controls with a driver specific menu are added by calling | ||
140 | v4l2_ctrl_new_std_menu_items: | ||
141 | |||
142 | struct v4l2_ctrl *v4l2_ctrl_new_std_menu_items( | ||
143 | struct v4l2_ctrl_handler *hdl, | ||
144 | const struct v4l2_ctrl_ops *ops, u32 id, s32 max, | ||
145 | s32 skip_mask, s32 def, const char * const *qmenu); | ||
146 | |||
147 | These functions are typically called right after the v4l2_ctrl_handler_init: | 148 | These functions are typically called right after the v4l2_ctrl_handler_init: |
148 | 149 | ||
149 | static const s64 exp_bias_qmenu[] = { | 150 | static const s64 exp_bias_qmenu[] = { |
diff --git a/Documentation/virtual/kvm/api.txt b/Documentation/virtual/kvm/api.txt index ef925eaa1460..858aecf21db2 100644 --- a/Documentation/virtual/kvm/api.txt +++ b/Documentation/virtual/kvm/api.txt | |||
@@ -53,7 +53,7 @@ incompatible change are allowed. However, there is an extension | |||
53 | facility that allows backward-compatible extensions to the API to be | 53 | facility that allows backward-compatible extensions to the API to be |
54 | queried and used. | 54 | queried and used. |
55 | 55 | ||
56 | The extension mechanism is not based on on the Linux version number. | 56 | The extension mechanism is not based on the Linux version number. |
57 | Instead, kvm defines extension identifiers and a facility to query | 57 | Instead, kvm defines extension identifiers and a facility to query |
58 | whether a particular extension identifier is available. If it is, a | 58 | whether a particular extension identifier is available. If it is, a |
59 | set of ioctls is available for application use. | 59 | set of ioctls is available for application use. |
diff --git a/Documentation/virtual/kvm/cpuid.txt b/Documentation/virtual/kvm/cpuid.txt index 83afe65d4966..22ff659bc0fb 100644 --- a/Documentation/virtual/kvm/cpuid.txt +++ b/Documentation/virtual/kvm/cpuid.txt | |||
@@ -43,6 +43,10 @@ KVM_FEATURE_CLOCKSOURCE2 || 3 || kvmclock available at msrs | |||
43 | KVM_FEATURE_ASYNC_PF || 4 || async pf can be enabled by | 43 | KVM_FEATURE_ASYNC_PF || 4 || async pf can be enabled by |
44 | || || writing to msr 0x4b564d02 | 44 | || || writing to msr 0x4b564d02 |
45 | ------------------------------------------------------------------------------ | 45 | ------------------------------------------------------------------------------ |
46 | KVM_FEATURE_PV_UNHALT || 7 || guest checks this feature bit | ||
47 | || || before enabling paravirtualized | ||
48 | || || spinlock support. | ||
49 | ------------------------------------------------------------------------------ | ||
46 | KVM_FEATURE_CLOCKSOURCE_STABLE_BIT || 24 || host will warn if no guest-side | 50 | KVM_FEATURE_CLOCKSOURCE_STABLE_BIT || 24 || host will warn if no guest-side |
47 | || || per-cpu warps are expected in | 51 | || || per-cpu warps are expected in |
48 | || || kvmclock. | 52 | || || kvmclock. |
diff --git a/Documentation/virtual/kvm/hypercalls.txt b/Documentation/virtual/kvm/hypercalls.txt index ea113b5d87a4..022198e389d7 100644 --- a/Documentation/virtual/kvm/hypercalls.txt +++ b/Documentation/virtual/kvm/hypercalls.txt | |||
@@ -64,3 +64,17 @@ Purpose: To enable communication between the hypervisor and guest there is a | |||
64 | shared page that contains parts of supervisor visible register state. | 64 | shared page that contains parts of supervisor visible register state. |
65 | The guest can map this shared page to access its supervisor register through | 65 | The guest can map this shared page to access its supervisor register through |
66 | memory using this hypercall. | 66 | memory using this hypercall. |
67 | |||
68 | 5. KVM_HC_KICK_CPU | ||
69 | ------------------------ | ||
70 | Architecture: x86 | ||
71 | Status: active | ||
72 | Purpose: Hypercall used to wakeup a vcpu from HLT state | ||
73 | Usage example : A vcpu of a paravirtualized guest that is busywaiting in guest | ||
74 | kernel mode for an event to occur (ex: a spinlock to become available) can | ||
75 | execute HLT instruction once it has busy-waited for more than a threshold | ||
76 | time-interval. Execution of HLT instruction would cause the hypervisor to put | ||
77 | the vcpu to sleep until occurence of an appropriate event. Another vcpu of the | ||
78 | same guest can wakeup the sleeping vcpu by issuing KVM_HC_KICK_CPU hypercall, | ||
79 | specifying APIC ID (a1) of the vcpu to be woken up. An additional argument (a0) | ||
80 | is used in the hypercall for future use. | ||
diff --git a/Documentation/vm/hugetlbpage.txt b/Documentation/vm/hugetlbpage.txt index 4ac359b7aa17..bdd4bb97fff7 100644 --- a/Documentation/vm/hugetlbpage.txt +++ b/Documentation/vm/hugetlbpage.txt | |||
@@ -165,6 +165,7 @@ which function as described above for the default huge page-sized case. | |||
165 | 165 | ||
166 | 166 | ||
167 | Interaction of Task Memory Policy with Huge Page Allocation/Freeing | 167 | Interaction of Task Memory Policy with Huge Page Allocation/Freeing |
168 | =================================================================== | ||
168 | 169 | ||
169 | Whether huge pages are allocated and freed via the /proc interface or | 170 | Whether huge pages are allocated and freed via the /proc interface or |
170 | the /sysfs interface using the nr_hugepages_mempolicy attribute, the NUMA | 171 | the /sysfs interface using the nr_hugepages_mempolicy attribute, the NUMA |
@@ -229,6 +230,7 @@ resulting effect on persistent huge page allocation is as follows: | |||
229 | of huge pages over all on-lines nodes with memory. | 230 | of huge pages over all on-lines nodes with memory. |
230 | 231 | ||
231 | Per Node Hugepages Attributes | 232 | Per Node Hugepages Attributes |
233 | ============================= | ||
232 | 234 | ||
233 | A subset of the contents of the root huge page control directory in sysfs, | 235 | A subset of the contents of the root huge page control directory in sysfs, |
234 | described above, will be replicated under each the system device of each | 236 | described above, will be replicated under each the system device of each |
@@ -258,6 +260,7 @@ applied, from which node the huge page allocation will be attempted. | |||
258 | 260 | ||
259 | 261 | ||
260 | Using Huge Pages | 262 | Using Huge Pages |
263 | ================ | ||
261 | 264 | ||
262 | If the user applications are going to request huge pages using mmap system | 265 | If the user applications are going to request huge pages using mmap system |
263 | call, then it is required that system administrator mount a file system of | 266 | call, then it is required that system administrator mount a file system of |
@@ -296,20 +299,16 @@ calls, though the mount of filesystem will be required for using mmap calls | |||
296 | without MAP_HUGETLB. For an example of how to use mmap with MAP_HUGETLB see | 299 | without MAP_HUGETLB. For an example of how to use mmap with MAP_HUGETLB see |
297 | map_hugetlb.c. | 300 | map_hugetlb.c. |
298 | 301 | ||
299 | ******************************************************************* | 302 | Examples |
303 | ======== | ||
300 | 304 | ||
301 | /* | 305 | 1) map_hugetlb: see tools/testing/selftests/vm/map_hugetlb.c |
302 | * map_hugetlb: see tools/testing/selftests/vm/map_hugetlb.c | ||
303 | */ | ||
304 | 306 | ||
305 | ******************************************************************* | 307 | 2) hugepage-shm: see tools/testing/selftests/vm/hugepage-shm.c |
306 | 308 | ||
307 | /* | 309 | 3) hugepage-mmap: see tools/testing/selftests/vm/hugepage-mmap.c |
308 | * hugepage-shm: see tools/testing/selftests/vm/hugepage-shm.c | ||
309 | */ | ||
310 | 310 | ||
311 | ******************************************************************* | 311 | 4) The libhugetlbfs (http://libhugetlbfs.sourceforge.net) library provides a |
312 | 312 | wide range of userspace tools to help with huge page usability, environment | |
313 | /* | 313 | setup, and control. Furthermore it provides useful test cases that should be |
314 | * hugepage-mmap: see tools/testing/selftests/vm/hugepage-mmap.c | 314 | used when modifying code to ensure no regressions are introduced. |
315 | */ | ||
diff --git a/Documentation/vm/soft-dirty.txt b/Documentation/vm/soft-dirty.txt index 9a12a5956bc0..55684d11a1e8 100644 --- a/Documentation/vm/soft-dirty.txt +++ b/Documentation/vm/soft-dirty.txt | |||
@@ -28,6 +28,13 @@ This is so, since the pages are still mapped to physical memory, and thus all | |||
28 | the kernel does is finds this fact out and puts both writable and soft-dirty | 28 | the kernel does is finds this fact out and puts both writable and soft-dirty |
29 | bits on the PTE. | 29 | bits on the PTE. |
30 | 30 | ||
31 | While in most cases tracking memory changes by #PF-s is more than enough | ||
32 | there is still a scenario when we can lose soft dirty bits -- a task | ||
33 | unmaps a previously mapped memory region and then maps a new one at exactly | ||
34 | the same place. When unmap is called, the kernel internally clears PTE values | ||
35 | including soft dirty bits. To notify user space application about such | ||
36 | memory region renewal the kernel always marks new memory regions (and | ||
37 | expanded regions) as soft dirty. | ||
31 | 38 | ||
32 | This feature is actively used by the checkpoint-restore project. You | 39 | This feature is actively used by the checkpoint-restore project. You |
33 | can find more details about it on http://criu.org | 40 | can find more details about it on http://criu.org |
diff --git a/Documentation/workqueue.txt b/Documentation/workqueue.txt index a6ab4b62d926..f81a65b54c29 100644 --- a/Documentation/workqueue.txt +++ b/Documentation/workqueue.txt | |||
@@ -85,32 +85,31 @@ workqueue. | |||
85 | Special purpose threads, called worker threads, execute the functions | 85 | Special purpose threads, called worker threads, execute the functions |
86 | off of the queue, one after the other. If no work is queued, the | 86 | off of the queue, one after the other. If no work is queued, the |
87 | worker threads become idle. These worker threads are managed in so | 87 | worker threads become idle. These worker threads are managed in so |
88 | called thread-pools. | 88 | called worker-pools. |
89 | 89 | ||
90 | The cmwq design differentiates between the user-facing workqueues that | 90 | The cmwq design differentiates between the user-facing workqueues that |
91 | subsystems and drivers queue work items on and the backend mechanism | 91 | subsystems and drivers queue work items on and the backend mechanism |
92 | which manages thread-pools and processes the queued work items. | 92 | which manages worker-pools and processes the queued work items. |
93 | 93 | ||
94 | The backend is called gcwq. There is one gcwq for each possible CPU | 94 | There are two worker-pools, one for normal work items and the other |
95 | and one gcwq to serve work items queued on unbound workqueues. Each | 95 | for high priority ones, for each possible CPU and some extra |
96 | gcwq has two thread-pools - one for normal work items and the other | 96 | worker-pools to serve work items queued on unbound workqueues - the |
97 | for high priority ones. | 97 | number of these backing pools is dynamic. |
98 | 98 | ||
99 | Subsystems and drivers can create and queue work items through special | 99 | Subsystems and drivers can create and queue work items through special |
100 | workqueue API functions as they see fit. They can influence some | 100 | workqueue API functions as they see fit. They can influence some |
101 | aspects of the way the work items are executed by setting flags on the | 101 | aspects of the way the work items are executed by setting flags on the |
102 | workqueue they are putting the work item on. These flags include | 102 | workqueue they are putting the work item on. These flags include |
103 | things like CPU locality, reentrancy, concurrency limits, priority and | 103 | things like CPU locality, concurrency limits, priority and more. To |
104 | more. To get a detailed overview refer to the API description of | 104 | get a detailed overview refer to the API description of |
105 | alloc_workqueue() below. | 105 | alloc_workqueue() below. |
106 | 106 | ||
107 | When a work item is queued to a workqueue, the target gcwq and | 107 | When a work item is queued to a workqueue, the target worker-pool is |
108 | thread-pool is determined according to the queue parameters and | 108 | determined according to the queue parameters and workqueue attributes |
109 | workqueue attributes and appended on the shared worklist of the | 109 | and appended on the shared worklist of the worker-pool. For example, |
110 | thread-pool. For example, unless specifically overridden, a work item | 110 | unless specifically overridden, a work item of a bound workqueue will |
111 | of a bound workqueue will be queued on the worklist of either normal | 111 | be queued on the worklist of either normal or highpri worker-pool that |
112 | or highpri thread-pool of the gcwq that is associated to the CPU the | 112 | is associated to the CPU the issuer is running on. |
113 | issuer is running on. | ||
114 | 113 | ||
115 | For any worker pool implementation, managing the concurrency level | 114 | For any worker pool implementation, managing the concurrency level |
116 | (how many execution contexts are active) is an important issue. cmwq | 115 | (how many execution contexts are active) is an important issue. cmwq |
@@ -118,14 +117,14 @@ tries to keep the concurrency at a minimal but sufficient level. | |||
118 | Minimal to save resources and sufficient in that the system is used at | 117 | Minimal to save resources and sufficient in that the system is used at |
119 | its full capacity. | 118 | its full capacity. |
120 | 119 | ||
121 | Each thread-pool bound to an actual CPU implements concurrency | 120 | Each worker-pool bound to an actual CPU implements concurrency |
122 | management by hooking into the scheduler. The thread-pool is notified | 121 | management by hooking into the scheduler. The worker-pool is notified |
123 | whenever an active worker wakes up or sleeps and keeps track of the | 122 | whenever an active worker wakes up or sleeps and keeps track of the |
124 | number of the currently runnable workers. Generally, work items are | 123 | number of the currently runnable workers. Generally, work items are |
125 | not expected to hog a CPU and consume many cycles. That means | 124 | not expected to hog a CPU and consume many cycles. That means |
126 | maintaining just enough concurrency to prevent work processing from | 125 | maintaining just enough concurrency to prevent work processing from |
127 | stalling should be optimal. As long as there are one or more runnable | 126 | stalling should be optimal. As long as there are one or more runnable |
128 | workers on the CPU, the thread-pool doesn't start execution of a new | 127 | workers on the CPU, the worker-pool doesn't start execution of a new |
129 | work, but, when the last running worker goes to sleep, it immediately | 128 | work, but, when the last running worker goes to sleep, it immediately |
130 | schedules a new worker so that the CPU doesn't sit idle while there | 129 | schedules a new worker so that the CPU doesn't sit idle while there |
131 | are pending work items. This allows using a minimal number of workers | 130 | are pending work items. This allows using a minimal number of workers |
@@ -135,19 +134,20 @@ Keeping idle workers around doesn't cost other than the memory space | |||
135 | for kthreads, so cmwq holds onto idle ones for a while before killing | 134 | for kthreads, so cmwq holds onto idle ones for a while before killing |
136 | them. | 135 | them. |
137 | 136 | ||
138 | For an unbound wq, the above concurrency management doesn't apply and | 137 | For unbound workqueues, the number of backing pools is dynamic. |
139 | the thread-pools for the pseudo unbound CPU try to start executing all | 138 | Unbound workqueue can be assigned custom attributes using |
140 | work items as soon as possible. The responsibility of regulating | 139 | apply_workqueue_attrs() and workqueue will automatically create |
141 | concurrency level is on the users. There is also a flag to mark a | 140 | backing worker pools matching the attributes. The responsibility of |
142 | bound wq to ignore the concurrency management. Please refer to the | 141 | regulating concurrency level is on the users. There is also a flag to |
143 | API section for details. | 142 | mark a bound wq to ignore the concurrency management. Please refer to |
143 | the API section for details. | ||
144 | 144 | ||
145 | Forward progress guarantee relies on that workers can be created when | 145 | Forward progress guarantee relies on that workers can be created when |
146 | more execution contexts are necessary, which in turn is guaranteed | 146 | more execution contexts are necessary, which in turn is guaranteed |
147 | through the use of rescue workers. All work items which might be used | 147 | through the use of rescue workers. All work items which might be used |
148 | on code paths that handle memory reclaim are required to be queued on | 148 | on code paths that handle memory reclaim are required to be queued on |
149 | wq's that have a rescue-worker reserved for execution under memory | 149 | wq's that have a rescue-worker reserved for execution under memory |
150 | pressure. Else it is possible that the thread-pool deadlocks waiting | 150 | pressure. Else it is possible that the worker-pool deadlocks waiting |
151 | for execution contexts to free up. | 151 | for execution contexts to free up. |
152 | 152 | ||
153 | 153 | ||
@@ -166,25 +166,15 @@ resources, scheduled and executed. | |||
166 | 166 | ||
167 | @flags: | 167 | @flags: |
168 | 168 | ||
169 | WQ_NON_REENTRANT | ||
170 | |||
171 | By default, a wq guarantees non-reentrance only on the same | ||
172 | CPU. A work item may not be executed concurrently on the same | ||
173 | CPU by multiple workers but is allowed to be executed | ||
174 | concurrently on multiple CPUs. This flag makes sure | ||
175 | non-reentrance is enforced across all CPUs. Work items queued | ||
176 | to a non-reentrant wq are guaranteed to be executed by at most | ||
177 | one worker system-wide at any given time. | ||
178 | |||
179 | WQ_UNBOUND | 169 | WQ_UNBOUND |
180 | 170 | ||
181 | Work items queued to an unbound wq are served by a special | 171 | Work items queued to an unbound wq are served by the special |
182 | gcwq which hosts workers which are not bound to any specific | 172 | woker-pools which host workers which are not bound to any |
183 | CPU. This makes the wq behave as a simple execution context | 173 | specific CPU. This makes the wq behave as a simple execution |
184 | provider without concurrency management. The unbound gcwq | 174 | context provider without concurrency management. The unbound |
185 | tries to start execution of work items as soon as possible. | 175 | worker-pools try to start execution of work items as soon as |
186 | Unbound wq sacrifices locality but is useful for the following | 176 | possible. Unbound wq sacrifices locality but is useful for |
187 | cases. | 177 | the following cases. |
188 | 178 | ||
189 | * Wide fluctuation in the concurrency level requirement is | 179 | * Wide fluctuation in the concurrency level requirement is |
190 | expected and using bound wq may end up creating large number | 180 | expected and using bound wq may end up creating large number |
@@ -209,10 +199,10 @@ resources, scheduled and executed. | |||
209 | WQ_HIGHPRI | 199 | WQ_HIGHPRI |
210 | 200 | ||
211 | Work items of a highpri wq are queued to the highpri | 201 | Work items of a highpri wq are queued to the highpri |
212 | thread-pool of the target gcwq. Highpri thread-pools are | 202 | worker-pool of the target cpu. Highpri worker-pools are |
213 | served by worker threads with elevated nice level. | 203 | served by worker threads with elevated nice level. |
214 | 204 | ||
215 | Note that normal and highpri thread-pools don't interact with | 205 | Note that normal and highpri worker-pools don't interact with |
216 | each other. Each maintain its separate pool of workers and | 206 | each other. Each maintain its separate pool of workers and |
217 | implements concurrency management among its workers. | 207 | implements concurrency management among its workers. |
218 | 208 | ||
@@ -221,7 +211,7 @@ resources, scheduled and executed. | |||
221 | Work items of a CPU intensive wq do not contribute to the | 211 | Work items of a CPU intensive wq do not contribute to the |
222 | concurrency level. In other words, runnable CPU intensive | 212 | concurrency level. In other words, runnable CPU intensive |
223 | work items will not prevent other work items in the same | 213 | work items will not prevent other work items in the same |
224 | thread-pool from starting execution. This is useful for bound | 214 | worker-pool from starting execution. This is useful for bound |
225 | work items which are expected to hog CPU cycles so that their | 215 | work items which are expected to hog CPU cycles so that their |
226 | execution is regulated by the system scheduler. | 216 | execution is regulated by the system scheduler. |
227 | 217 | ||
@@ -233,6 +223,10 @@ resources, scheduled and executed. | |||
233 | 223 | ||
234 | This flag is meaningless for unbound wq. | 224 | This flag is meaningless for unbound wq. |
235 | 225 | ||
226 | Note that the flag WQ_NON_REENTRANT no longer exists as all workqueues | ||
227 | are now non-reentrant - any work item is guaranteed to be executed by | ||
228 | at most one worker system-wide at any given time. | ||
229 | |||
236 | @max_active: | 230 | @max_active: |
237 | 231 | ||
238 | @max_active determines the maximum number of execution contexts per | 232 | @max_active determines the maximum number of execution contexts per |
@@ -254,9 +248,9 @@ recommended. | |||
254 | 248 | ||
255 | Some users depend on the strict execution ordering of ST wq. The | 249 | Some users depend on the strict execution ordering of ST wq. The |
256 | combination of @max_active of 1 and WQ_UNBOUND is used to achieve this | 250 | combination of @max_active of 1 and WQ_UNBOUND is used to achieve this |
257 | behavior. Work items on such wq are always queued to the unbound gcwq | 251 | behavior. Work items on such wq are always queued to the unbound |
258 | and only one work item can be active at any given time thus achieving | 252 | worker-pools and only one work item can be active at any given time thus |
259 | the same ordering property as ST wq. | 253 | achieving the same ordering property as ST wq. |
260 | 254 | ||
261 | 255 | ||
262 | 5. Example Execution Scenarios | 256 | 5. Example Execution Scenarios |
diff --git a/Documentation/x86/boot.txt b/Documentation/x86/boot.txt index fc66d42422ee..f4f268c2b826 100644 --- a/Documentation/x86/boot.txt +++ b/Documentation/x86/boot.txt | |||
@@ -58,7 +58,7 @@ Protocol 2.11: (Kernel 3.6) Added a field for offset of EFI handover | |||
58 | protocol entry point. | 58 | protocol entry point. |
59 | 59 | ||
60 | Protocol 2.12: (Kernel 3.8) Added the xloadflags field and extension fields | 60 | Protocol 2.12: (Kernel 3.8) Added the xloadflags field and extension fields |
61 | to struct boot_params for for loading bzImage and ramdisk | 61 | to struct boot_params for loading bzImage and ramdisk |
62 | above 4G in 64bit. | 62 | above 4G in 64bit. |
63 | 63 | ||
64 | **** MEMORY LAYOUT | 64 | **** MEMORY LAYOUT |
diff --git a/Documentation/x86/x86_64/boot-options.txt b/Documentation/x86/x86_64/boot-options.txt index e9e8ddbbf376..1228b22e142b 100644 --- a/Documentation/x86/x86_64/boot-options.txt +++ b/Documentation/x86/x86_64/boot-options.txt | |||
@@ -176,6 +176,11 @@ ACPI | |||
176 | 176 | ||
177 | acpi=noirq Don't route interrupts | 177 | acpi=noirq Don't route interrupts |
178 | 178 | ||
179 | acpi=nocmcff Disable firmware first mode for corrected errors. This | ||
180 | disables parsing the HEST CMC error source to check if | ||
181 | firmware has set the FF flag. This may result in | ||
182 | duplicate corrected error reports. | ||
183 | |||
179 | PCI | 184 | PCI |
180 | 185 | ||
181 | pci=off Don't use PCI | 186 | pci=off Don't use PCI |
diff --git a/Documentation/zh_CN/SubmittingPatches b/Documentation/zh_CN/SubmittingPatches index 0f4385a62a49..be0bd4725062 100644 --- a/Documentation/zh_CN/SubmittingPatches +++ b/Documentation/zh_CN/SubmittingPatches | |||
@@ -146,7 +146,7 @@ Majordomo lists of VGER.KERNEL.ORG at: | |||
146 | <http://vger.kernel.org/vger-lists.html> | 146 | <http://vger.kernel.org/vger-lists.html> |
147 | 147 | ||
148 | 如果改动影响了用户空间和内核之间的接口,请给 MAN-PAGES 的维护者(列在 | 148 | 如果改动影响了用户空间和内核之间的接口,请给 MAN-PAGES 的维护者(列在 |
149 | MAITAINERS 文件里的)发送一个手册页(man-pages)补丁,或者至少通知一下改 | 149 | MAINTAINERS 文件里的)发送一个手册页(man-pages)补丁,或者至少通知一下改 |
150 | 变,让一些信息有途径进入手册页。 | 150 | 变,让一些信息有途径进入手册页。 |
151 | 151 | ||
152 | 即使在第四步的时候,维护者没有作出回应,也要确认在修改他们的代码的时候 | 152 | 即使在第四步的时候,维护者没有作出回应,也要确认在修改他们的代码的时候 |