aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorGrant Likely <grant.likely@secretlab.ca>2012-07-25 00:31:09 -0400
committerGrant Likely <grant.likely@secretlab.ca>2012-07-25 00:34:40 -0400
commit6aeea3ecc33b1f36dbc3b80461d15a7052ae424f (patch)
treebbd273e3e0ca76094aed8e9c77e5adfe2b07f779 /Documentation
parent9844a5524ec532aee826c35e3031637c7fc8287b (diff)
parentbdc0077af574800d24318b6945cf2344e8dbb050 (diff)
Merge remote-tracking branch 'origin' into irqdomain/next
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/ABI/stable/vdso2
-rw-r--r--Documentation/ABI/testing/sysfs-block-zram2
-rw-r--r--Documentation/ABI/testing/sysfs-bus-usb-devices-usbsevseg2
-rw-r--r--Documentation/ABI/testing/sysfs-class-backlight-driver-adp88702
-rw-r--r--Documentation/ABI/testing/sysfs-class-mtd17
-rw-r--r--Documentation/ABI/testing/sysfs-devices-system-xen_cpu20
-rw-r--r--Documentation/ABI/testing/sysfs-driver-hid-lenovo-tpkbd38
-rw-r--r--Documentation/ABI/testing/sysfs-driver-hid-roccat-savu77
-rw-r--r--Documentation/ABI/testing/sysfs-kernel-iommu_groups14
-rw-r--r--Documentation/ABI/testing/sysfs-power13
-rw-r--r--Documentation/DocBook/80211.tmpl1
-rw-r--r--Documentation/DocBook/media/v4l/controls.xml2
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml7
-rw-r--r--Documentation/ManagementStyle2
-rw-r--r--Documentation/RCU/checklist.txt39
-rw-r--r--Documentation/RCU/rcubarrier.txt15
-rw-r--r--Documentation/RCU/torture.txt9
-rw-r--r--Documentation/RCU/whatisRCU.txt6
-rw-r--r--Documentation/arm/Samsung-S3C24XX/H1940.txt2
-rw-r--r--Documentation/arm/Samsung-S3C24XX/SMDK2440.txt2
-rw-r--r--Documentation/cgroups/cgroups.txt27
-rw-r--r--Documentation/connector/cn_test.c13
-rw-r--r--Documentation/devices.txt2
-rw-r--r--Documentation/devicetree/bindings/arm/armada-370-xp-mpic.txt23
-rw-r--r--Documentation/devicetree/bindings/arm/armada-370-xp-timer.txt11
-rw-r--r--Documentation/devicetree/bindings/arm/armada-370-xp.txt24
-rw-r--r--Documentation/devicetree/bindings/arm/atmel-aic.txt9
-rw-r--r--Documentation/devicetree/bindings/arm/davinci/cp-intc.txt27
-rw-r--r--Documentation/devicetree/bindings/arm/mvebu-system-controller.txt17
-rw-r--r--Documentation/devicetree/bindings/arm/olimex.txt6
-rw-r--r--Documentation/devicetree/bindings/arm/omap/omap.txt6
-rw-r--r--Documentation/devicetree/bindings/arm/primecell.txt6
-rw-r--r--Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-emc.txt (renamed from Documentation/devicetree/bindings/arm/tegra/emc.txt)2
-rw-r--r--Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-mc.txt2
-rw-r--r--Documentation/devicetree/bindings/arm/tegra/nvidia,tegra30-mc.txt2
-rw-r--r--Documentation/devicetree/bindings/clock/calxeda.txt17
-rw-r--r--Documentation/devicetree/bindings/clock/clock-bindings.txt117
-rw-r--r--Documentation/devicetree/bindings/clock/fixed-clock.txt21
-rw-r--r--Documentation/devicetree/bindings/fb/mxsfb.txt19
-rw-r--r--Documentation/devicetree/bindings/gpio/fsl-imx-gpio.txt14
-rw-r--r--Documentation/devicetree/bindings/gpio/gpio-mxs.txt5
-rw-r--r--Documentation/devicetree/bindings/gpio/gpio-nmk.txt2
-rw-r--r--Documentation/devicetree/bindings/gpio/led.txt2
-rw-r--r--Documentation/devicetree/bindings/gpio/nvidia,tegra20-gpio.txt (renamed from Documentation/devicetree/bindings/gpio/gpio_nvidia.txt)0
-rw-r--r--Documentation/devicetree/bindings/input/nvidia,tegra20-kbc.txt (renamed from Documentation/devicetree/bindings/input/tegra-kbc.txt)0
-rw-r--r--Documentation/devicetree/bindings/iommu/nvidia,tegra30-smmu.txt21
-rw-r--r--Documentation/devicetree/bindings/mfd/tps65910.txt90
-rw-r--r--Documentation/devicetree/bindings/mmc/fsl-esdhc.txt25
-rw-r--r--Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.txt8
-rw-r--r--Documentation/devicetree/bindings/mmc/mmc-spi-slot.txt8
-rw-r--r--Documentation/devicetree/bindings/mmc/mmc.txt10
-rw-r--r--Documentation/devicetree/bindings/mmc/mmci.txt12
-rw-r--r--Documentation/devicetree/bindings/mmc/mxs-mmc.txt8
-rw-r--r--Documentation/devicetree/bindings/mmc/nvidia,tegra20-sdhci.txt (renamed from Documentation/devicetree/bindings/mmc/nvidia-sdhci.txt)8
-rw-r--r--Documentation/devicetree/bindings/mmc/sdhci-pxa.txt21
-rw-r--r--Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt7
-rw-r--r--Documentation/devicetree/bindings/mtd/partition.txt2
-rw-r--r--Documentation/devicetree/bindings/net/broadcom-bcm87xx.txt29
-rw-r--r--Documentation/devicetree/bindings/net/can/fsl-flexcan.txt3
-rw-r--r--Documentation/devicetree/bindings/net/davinci_emac.txt41
-rw-r--r--Documentation/devicetree/bindings/net/fsl-fec.txt6
-rw-r--r--Documentation/devicetree/bindings/net/phy.txt12
-rw-r--r--Documentation/devicetree/bindings/net/stmmac.txt3
-rw-r--r--Documentation/devicetree/bindings/nvec/nvidia,nvec.txt (renamed from Documentation/devicetree/bindings/nvec/nvec_nvidia.txt)0
-rw-r--r--Documentation/devicetree/bindings/pinctrl/fsl,imx6q-pinctrl.txt2
-rw-r--r--Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt93
-rw-r--r--Documentation/devicetree/bindings/regulator/fixed-regulator.txt2
-rw-r--r--Documentation/devicetree/bindings/regulator/regulator.txt5
-rw-r--r--Documentation/devicetree/bindings/regulator/tps65217.txt91
-rw-r--r--Documentation/devicetree/bindings/regulator/tps6586x.txt77
-rw-r--r--Documentation/devicetree/bindings/regulator/twl-regulator.txt1
-rw-r--r--Documentation/devicetree/bindings/rtc/dw-apb.txt25
-rw-r--r--Documentation/devicetree/bindings/rtc/stmp3xxx-rtc.txt16
-rw-r--r--Documentation/devicetree/bindings/sound/nvidia,tegra-audio-alc5632.txt (renamed from Documentation/devicetree/bindings/sound/tegra-audio-alc5632.txt)0
-rw-r--r--Documentation/devicetree/bindings/sound/nvidia,tegra-audio-trimslice.txt (renamed from Documentation/devicetree/bindings/sound/tegra-audio-trimslice.txt)0
-rw-r--r--Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8753.txt (renamed from Documentation/devicetree/bindings/sound/tegra-audio-wm8753.txt)0
-rw-r--r--Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8903.txt (renamed from Documentation/devicetree/bindings/sound/tegra-audio-wm8903.txt)0
-rw-r--r--Documentation/devicetree/bindings/sound/nvidia,tegra20-das.txt (renamed from Documentation/devicetree/bindings/sound/tegra20-das.txt)0
-rw-r--r--Documentation/devicetree/bindings/sound/nvidia,tegra20-i2s.txt (renamed from Documentation/devicetree/bindings/sound/tegra20-i2s.txt)0
-rw-r--r--Documentation/devicetree/bindings/spi/nvidia,tegra20-spi.txt (renamed from Documentation/devicetree/bindings/spi/spi_nvidia.txt)0
-rw-r--r--Documentation/devicetree/bindings/spi/spi-samsung.txt116
-rw-r--r--Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt27
-rw-r--r--Documentation/devicetree/bindings/usb/nvidia,tegra20-ehci.txt (renamed from Documentation/devicetree/bindings/usb/tegra-usb.txt)0
-rw-r--r--Documentation/devicetree/bindings/watchdog/omap-wdt.txt14
-rw-r--r--Documentation/devicetree/usage-model.txt2
-rw-r--r--Documentation/feature-removal-schedule.txt44
-rw-r--r--Documentation/filesystems/Locking11
-rw-r--r--Documentation/filesystems/porting21
-rw-r--r--Documentation/filesystems/vfs.txt23
-rw-r--r--Documentation/hid/uhid.txt169
-rw-r--r--Documentation/hwmon/da905261
-rw-r--r--Documentation/hwmon/hih613037
-rw-r--r--Documentation/hwmon/submitting-patches3
-rw-r--r--Documentation/i2c/busses/i2c-i80113
-rw-r--r--Documentation/i2c/busses/i2c-piix49
-rw-r--r--Documentation/i2c/writing-clients23
-rw-r--r--Documentation/kdump/kdump.txt2
-rw-r--r--Documentation/kernel-parameters.txt8
-rw-r--r--Documentation/laptops/asus-laptop.txt3
-rw-r--r--Documentation/networking/batman-adv.txt5
-rw-r--r--Documentation/networking/bonding.txt6
-rw-r--r--Documentation/networking/bridge.txt13
-rw-r--r--Documentation/networking/caif/Linux-CAIF.txt91
-rw-r--r--Documentation/networking/can.txt186
-rw-r--r--Documentation/networking/ip-sysctl.txt62
-rw-r--r--Documentation/networking/openvswitch.txt2
-rw-r--r--Documentation/networking/s2io.txt14
-rw-r--r--Documentation/networking/stmmac.txt36
-rw-r--r--Documentation/networking/vxge.txt7
-rw-r--r--Documentation/nfc/nfc-hci.txt33
-rw-r--r--Documentation/power/devices.txt9
-rw-r--r--Documentation/power/swsusp.txt5
-rw-r--r--Documentation/sound/alsa/ALSA-Configuration.txt3
-rw-r--r--Documentation/sound/alsa/HD-Audio-Models.txt13
-rw-r--r--Documentation/sound/alsa/hdspm.txt2
-rw-r--r--Documentation/video4linux/cpia2_overview.txt2
-rw-r--r--Documentation/video4linux/stv680.txt2
-rw-r--r--Documentation/virtual/kvm/api.txt34
-rw-r--r--Documentation/virtual/kvm/locking.txt130
-rw-r--r--Documentation/virtual/kvm/msr.txt33
-rw-r--r--Documentation/virtual/kvm/ppc-pv.txt2
-rw-r--r--Documentation/vm/frontswap.txt4
-rw-r--r--Documentation/workqueue.txt103
123 files changed, 2219 insertions, 436 deletions
diff --git a/Documentation/ABI/stable/vdso b/Documentation/ABI/stable/vdso
index 8a1cbb594497..7cdfc28cc2c6 100644
--- a/Documentation/ABI/stable/vdso
+++ b/Documentation/ABI/stable/vdso
@@ -24,4 +24,4 @@ though.
24 24
25(As of this writing, this ABI documentation as been confirmed for x86_64. 25(As of this writing, this ABI documentation as been confirmed for x86_64.
26 The maintainers of the other vDSO-using architectures should confirm 26 The maintainers of the other vDSO-using architectures should confirm
27 that it is correct for their architecture.) \ No newline at end of file 27 that it is correct for their architecture.)
diff --git a/Documentation/ABI/testing/sysfs-block-zram b/Documentation/ABI/testing/sysfs-block-zram
index c8b3b48ec62c..ec93fe33baa6 100644
--- a/Documentation/ABI/testing/sysfs-block-zram
+++ b/Documentation/ABI/testing/sysfs-block-zram
@@ -96,4 +96,4 @@ Description:
96 overhead, allocated for this disk. So, allocator space 96 overhead, allocated for this disk. So, allocator space
97 efficiency can be calculated using compr_data_size and this 97 efficiency can be calculated using compr_data_size and this
98 statistic. 98 statistic.
99 Unit: bytes \ No newline at end of file 99 Unit: bytes
diff --git a/Documentation/ABI/testing/sysfs-bus-usb-devices-usbsevseg b/Documentation/ABI/testing/sysfs-bus-usb-devices-usbsevseg
index cb830df8777c..70d00dfa443d 100644
--- a/Documentation/ABI/testing/sysfs-bus-usb-devices-usbsevseg
+++ b/Documentation/ABI/testing/sysfs-bus-usb-devices-usbsevseg
@@ -40,4 +40,4 @@ Description: Controls the decimal places on the device.
40 the value of 10 ** n. Assume this field has 40 the value of 10 ** n. Assume this field has
41 the value k and has 1 or more decimal places set, 41 the value k and has 1 or more decimal places set,
42 to set the mth place (where m is not already set), 42 to set the mth place (where m is not already set),
43 change this fields value to k + 10 ** m. \ No newline at end of file 43 change this fields value to k + 10 ** m.
diff --git a/Documentation/ABI/testing/sysfs-class-backlight-driver-adp8870 b/Documentation/ABI/testing/sysfs-class-backlight-driver-adp8870
index 4a9c545bda4b..33e648808117 100644
--- a/Documentation/ABI/testing/sysfs-class-backlight-driver-adp8870
+++ b/Documentation/ABI/testing/sysfs-class-backlight-driver-adp8870
@@ -53,4 +53,4 @@ Description:
53 Documentation/ABI/stable/sysfs-class-backlight. 53 Documentation/ABI/stable/sysfs-class-backlight.
54 It can be enabled by writing the value stored in 54 It can be enabled by writing the value stored in
55 /sys/class/backlight/<backlight>/max_brightness to 55 /sys/class/backlight/<backlight>/max_brightness to
56 /sys/class/backlight/<backlight>/brightness. \ No newline at end of file 56 /sys/class/backlight/<backlight>/brightness.
diff --git a/Documentation/ABI/testing/sysfs-class-mtd b/Documentation/ABI/testing/sysfs-class-mtd
index db1ad7e34fc3..938ef71e2035 100644
--- a/Documentation/ABI/testing/sysfs-class-mtd
+++ b/Documentation/ABI/testing/sysfs-class-mtd
@@ -142,13 +142,14 @@ KernelVersion: 3.4
142Contact: linux-mtd@lists.infradead.org 142Contact: linux-mtd@lists.infradead.org
143Description: 143Description:
144 This allows the user to examine and adjust the criteria by which 144 This allows the user to examine and adjust the criteria by which
145 mtd returns -EUCLEAN from mtd_read(). If the maximum number of 145 mtd returns -EUCLEAN from mtd_read() and mtd_read_oob(). If the
146 bit errors that were corrected on any single region comprising 146 maximum number of bit errors that were corrected on any single
147 an ecc step (as reported by the driver) equals or exceeds this 147 region comprising an ecc step (as reported by the driver) equals
148 value, -EUCLEAN is returned. Otherwise, absent an error, 0 is 148 or exceeds this value, -EUCLEAN is returned. Otherwise, absent
149 returned. Higher layers (e.g., UBI) use this return code as an 149 an error, 0 is returned. Higher layers (e.g., UBI) use this
150 indication that an erase block may be degrading and should be 150 return code as an indication that an erase block may be
151 scrutinized as a candidate for being marked as bad. 151 degrading and should be scrutinized as a candidate for being
152 marked as bad.
152 153
153 The initial value may be specified by the flash device driver. 154 The initial value may be specified by the flash device driver.
154 If not, then the default value is ecc_strength. 155 If not, then the default value is ecc_strength.
@@ -167,7 +168,7 @@ Description:
167 block degradation, but high enough to avoid the consequences of 168 block degradation, but high enough to avoid the consequences of
168 a persistent return value of -EUCLEAN on devices where sticky 169 a persistent return value of -EUCLEAN on devices where sticky
169 bitflips occur. Note that if bitflip_threshold exceeds 170 bitflips occur. Note that if bitflip_threshold exceeds
170 ecc_strength, -EUCLEAN is never returned by mtd_read(). 171 ecc_strength, -EUCLEAN is never returned by the read operations.
171 Conversely, if bitflip_threshold is zero, -EUCLEAN is always 172 Conversely, if bitflip_threshold is zero, -EUCLEAN is always
172 returned, absent a hard error. 173 returned, absent a hard error.
173 174
diff --git a/Documentation/ABI/testing/sysfs-devices-system-xen_cpu b/Documentation/ABI/testing/sysfs-devices-system-xen_cpu
new file mode 100644
index 000000000000..9ca02fb2d498
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-devices-system-xen_cpu
@@ -0,0 +1,20 @@
1What: /sys/devices/system/xen_cpu/
2Date: May 2012
3Contact: Liu, Jinsong <jinsong.liu@intel.com>
4Description:
5 A collection of global/individual Xen physical cpu attributes
6
7 Individual physical cpu attributes are contained in
8 subdirectories named by the Xen's logical cpu number, e.g.:
9 /sys/devices/system/xen_cpu/xen_cpu#/
10
11
12What: /sys/devices/system/xen_cpu/xen_cpu#/online
13Date: May 2012
14Contact: Liu, Jinsong <jinsong.liu@intel.com>
15Description:
16 Interface to online/offline Xen physical cpus
17
18 When running under Xen platform, it provide user interface
19 to online/offline physical cpus, except cpu0 due to several
20 logic restrictions and assumptions.
diff --git a/Documentation/ABI/testing/sysfs-driver-hid-lenovo-tpkbd b/Documentation/ABI/testing/sysfs-driver-hid-lenovo-tpkbd
new file mode 100644
index 000000000000..57b92cbdceae
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-driver-hid-lenovo-tpkbd
@@ -0,0 +1,38 @@
1What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/press_to_select
2Date: July 2011
3Contact: linux-input@vger.kernel.org
4Description: This controls if mouse clicks should be generated if the trackpoint is quickly pressed. How fast this press has to be
5 is being controlled by press_speed.
6 Values are 0 or 1.
7
8What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/dragging
9Date: July 2011
10Contact: linux-input@vger.kernel.org
11Description: If this setting is enabled, it is possible to do dragging by pressing the trackpoint. This requires press_to_select to be enabled.
12 Values are 0 or 1.
13
14What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/release_to_select
15Date: July 2011
16Contact: linux-input@vger.kernel.org
17Description: For details regarding this setting please refer to http://www.pc.ibm.com/ww/healthycomputing/trkpntb.html
18 Values are 0 or 1.
19
20What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/select_right
21Date: July 2011
22Contact: linux-input@vger.kernel.org
23Description: This setting controls if the mouse click events generated by pressing the trackpoint (if press_to_select is enabled) generate
24 a left or right mouse button click.
25 Values are 0 or 1.
26
27What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/sensitivity
28Date: July 2011
29Contact: linux-input@vger.kernel.org
30Description: This file contains the trackpoint sensitivity.
31 Values are decimal integers from 1 (lowest sensitivity) to 255 (highest sensitivity).
32
33What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/press_speed
34Date: July 2011
35Contact: linux-input@vger.kernel.org
36Description: This setting controls how fast the trackpoint needs to be pressed to generate a mouse click if press_to_select is enabled.
37 Values are decimal integers from 1 (slowest) to 255 (fastest).
38
diff --git a/Documentation/ABI/testing/sysfs-driver-hid-roccat-savu b/Documentation/ABI/testing/sysfs-driver-hid-roccat-savu
new file mode 100644
index 000000000000..b42922cf6b1f
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-driver-hid-roccat-savu
@@ -0,0 +1,77 @@
1What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/savu/roccatsavu<minor>/buttons
2Date: Mai 2012
3Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
4Description: The mouse can store 5 profiles which can be switched by the
5 press of a button. A profile is split into general settings and
6 button settings. buttons holds informations about button layout.
7 When written, this file lets one write the respective profile
8 buttons to the mouse. The data has to be 47 bytes long.
9 The mouse will reject invalid data.
10 Which profile to write is determined by the profile number
11 contained in the data.
12 Before reading this file, control has to be written to select
13 which profile to read.
14Users: http://roccat.sourceforge.net
15
16What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/savu/roccatsavu<minor>/control
17Date: Mai 2012
18Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
19Description: When written, this file lets one select which data from which
20 profile will be read next. The data has to be 3 bytes long.
21 This file is writeonly.
22Users: http://roccat.sourceforge.net
23
24What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/savu/roccatsavu<minor>/general
25Date: Mai 2012
26Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
27Description: The mouse can store 5 profiles which can be switched by the
28 press of a button. A profile is split into general settings and
29 button settings. profile holds informations like resolution, sensitivity
30 and light effects.
31 When written, this file lets one write the respective profile
32 settings back to the mouse. The data has to be 43 bytes long.
33 The mouse will reject invalid data.
34 Which profile to write is determined by the profile number
35 contained in the data.
36 This file is writeonly.
37Users: http://roccat.sourceforge.net
38
39What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/savu/roccatsavu<minor>/info
40Date: Mai 2012
41Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
42Description: When read, this file returns general data like firmware version.
43 The data is 8 bytes long.
44 This file is readonly.
45Users: http://roccat.sourceforge.net
46
47What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/savu/roccatsavu<minor>/macro
48Date: Mai 2012
49Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
50Description: When written, this file lets one store macros with max 500
51 keystrokes for a specific button for a specific profile.
52 Button and profile numbers are included in written data.
53 The data has to be 2083 bytes long.
54 Before reading this file, control has to be written to select
55 which profile and key to read.
56Users: http://roccat.sourceforge.net
57
58What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/savu/roccatsavu<minor>/profile
59Date: Mai 2012
60Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
61Description: The mouse can store 5 profiles which can be switched by the
62 press of a button. profile holds number of actual profile.
63 This value is persistent, so its value determines the profile
64 that's active when the mouse is powered on next time.
65 When written, the mouse activates the set profile immediately.
66 The data has to be 3 bytes long.
67 The mouse will reject invalid data.
68Users: http://roccat.sourceforge.net
69
70What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/savu/roccatsavu<minor>/sensor
71Date: July 2012
72Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
73Description: The mouse has a Avago ADNS-3090 sensor.
74 This file allows reading and writing of the mouse sensors registers.
75 The data has to be 4 bytes long.
76Users: http://roccat.sourceforge.net
77
diff --git a/Documentation/ABI/testing/sysfs-kernel-iommu_groups b/Documentation/ABI/testing/sysfs-kernel-iommu_groups
new file mode 100644
index 000000000000..9b31556cfdda
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-kernel-iommu_groups
@@ -0,0 +1,14 @@
1What: /sys/kernel/iommu_groups/
2Date: May 2012
3KernelVersion: v3.5
4Contact: Alex Williamson <alex.williamson@redhat.com>
5Description: /sys/kernel/iommu_groups/ contains a number of sub-
6 directories, each representing an IOMMU group. The
7 name of the sub-directory matches the iommu_group_id()
8 for the group, which is an integer value. Within each
9 subdirectory is another directory named "devices" with
10 links to the sysfs devices contained in this group.
11 The group directory also optionally contains a "name"
12 file if the IOMMU driver has chosen to register a more
13 common name for the group.
14Users:
diff --git a/Documentation/ABI/testing/sysfs-power b/Documentation/ABI/testing/sysfs-power
index 31725ffeeb3a..217772615d02 100644
--- a/Documentation/ABI/testing/sysfs-power
+++ b/Documentation/ABI/testing/sysfs-power
@@ -231,3 +231,16 @@ Description:
231 Reads from this file return a string consisting of the names of 231 Reads from this file return a string consisting of the names of
232 wakeup sources created with the help of /sys/power/wake_lock 232 wakeup sources created with the help of /sys/power/wake_lock
233 that are inactive at the moment, separated with spaces. 233 that are inactive at the moment, separated with spaces.
234
235What: /sys/power/pm_print_times
236Date: May 2012
237Contact: Sameer Nanda <snanda@chromium.org>
238Description:
239 The /sys/power/pm_print_times file allows user space to
240 control whether the time taken by devices to suspend and
241 resume is printed. These prints are useful for hunting down
242 devices that take too long to suspend or resume.
243
244 Writing a "1" enables this printing while writing a "0"
245 disables it. The default value is "0". Reading from this file
246 will display the current value.
diff --git a/Documentation/DocBook/80211.tmpl b/Documentation/DocBook/80211.tmpl
index f3e214f9e256..42e7f030cb16 100644
--- a/Documentation/DocBook/80211.tmpl
+++ b/Documentation/DocBook/80211.tmpl
@@ -404,7 +404,6 @@
404!Finclude/net/mac80211.h ieee80211_get_tkip_p1k 404!Finclude/net/mac80211.h ieee80211_get_tkip_p1k
405!Finclude/net/mac80211.h ieee80211_get_tkip_p1k_iv 405!Finclude/net/mac80211.h ieee80211_get_tkip_p1k_iv
406!Finclude/net/mac80211.h ieee80211_get_tkip_p2k 406!Finclude/net/mac80211.h ieee80211_get_tkip_p2k
407!Finclude/net/mac80211.h ieee80211_key_removed
408 </chapter> 407 </chapter>
409 408
410 <chapter id="powersave"> 409 <chapter id="powersave">
diff --git a/Documentation/DocBook/media/v4l/controls.xml b/Documentation/DocBook/media/v4l/controls.xml
index 676bc46f9c52..cda0dfb6769a 100644
--- a/Documentation/DocBook/media/v4l/controls.xml
+++ b/Documentation/DocBook/media/v4l/controls.xml
@@ -3988,7 +3988,7 @@ interface and may change in the future.</para>
3988 from RGB to Y'CbCr color space. 3988 from RGB to Y'CbCr color space.
3989 </entry> 3989 </entry>
3990 </row> 3990 </row>
3991 <row id = "v4l2-jpeg-chroma-subsampling"> 3991 <row>
3992 <entrytbl spanname="descr" cols="2"> 3992 <entrytbl spanname="descr" cols="2">
3993 <tbody valign="top"> 3993 <tbody valign="top">
3994 <row> 3994 <row>
diff --git a/Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml b/Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml
index e3d5afcdafbb..0a4b90fcf2da 100644
--- a/Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml
@@ -284,13 +284,6 @@ These controls are described in <xref
284 processing controls. These controls are described in <xref 284 processing controls. These controls are described in <xref
285 linkend="image-process-controls" />.</entry> 285 linkend="image-process-controls" />.</entry>
286 </row> 286 </row>
287 <row>
288 <entry><constant>V4L2_CTRL_CLASS_JPEG</constant></entry>
289 <entry>0x9d0000</entry>
290 <entry>The class containing JPEG compression controls.
291These controls are described in <xref
292 linkend="jpeg-controls" />.</entry>
293 </row>
294 </tbody> 287 </tbody>
295 </tgroup> 288 </tgroup>
296 </table> 289 </table>
diff --git a/Documentation/ManagementStyle b/Documentation/ManagementStyle
index a5f0ea58c788..a211ee8d8b44 100644
--- a/Documentation/ManagementStyle
+++ b/Documentation/ManagementStyle
@@ -178,7 +178,7 @@ sadly that you are one too, and that while we can all bask in the secure
178knowledge that we're better than the average person (let's face it, 178knowledge that we're better than the average person (let's face it,
179nobody ever believes that they're average or below-average), we should 179nobody ever believes that they're average or below-average), we should
180also admit that we're not the sharpest knife around, and there will be 180also admit that we're not the sharpest knife around, and there will be
181other people that are less of an idiot that you are. 181other people that are less of an idiot than you are.
182 182
183Some people react badly to smart people. Others take advantage of them. 183Some people react badly to smart people. Others take advantage of them.
184 184
diff --git a/Documentation/RCU/checklist.txt b/Documentation/RCU/checklist.txt
index 5c8d74968090..fc103d7a0474 100644
--- a/Documentation/RCU/checklist.txt
+++ b/Documentation/RCU/checklist.txt
@@ -162,9 +162,9 @@ over a rather long period of time, but improvements are always welcome!
162 when publicizing a pointer to a structure that can 162 when publicizing a pointer to a structure that can
163 be traversed by an RCU read-side critical section. 163 be traversed by an RCU read-side critical section.
164 164
1655. If call_rcu(), or a related primitive such as call_rcu_bh() or 1655. If call_rcu(), or a related primitive such as call_rcu_bh(),
166 call_rcu_sched(), is used, the callback function must be 166 call_rcu_sched(), or call_srcu() is used, the callback function
167 written to be called from softirq context. In particular, 167 must be written to be called from softirq context. In particular,
168 it cannot block. 168 it cannot block.
169 169
1706. Since synchronize_rcu() can block, it cannot be called from 1706. Since synchronize_rcu() can block, it cannot be called from
@@ -202,11 +202,12 @@ over a rather long period of time, but improvements are always welcome!
202 updater uses call_rcu_sched() or synchronize_sched(), then 202 updater uses call_rcu_sched() or synchronize_sched(), then
203 the corresponding readers must disable preemption, possibly 203 the corresponding readers must disable preemption, possibly
204 by calling rcu_read_lock_sched() and rcu_read_unlock_sched(). 204 by calling rcu_read_lock_sched() and rcu_read_unlock_sched().
205 If the updater uses synchronize_srcu(), the the corresponding 205 If the updater uses synchronize_srcu() or call_srcu(),
206 readers must use srcu_read_lock() and srcu_read_unlock(), 206 the the corresponding readers must use srcu_read_lock() and
207 and with the same srcu_struct. The rules for the expedited 207 srcu_read_unlock(), and with the same srcu_struct. The rules for
208 primitives are the same as for their non-expedited counterparts. 208 the expedited primitives are the same as for their non-expedited
209 Mixing things up will result in confusion and broken kernels. 209 counterparts. Mixing things up will result in confusion and
210 broken kernels.
210 211
211 One exception to this rule: rcu_read_lock() and rcu_read_unlock() 212 One exception to this rule: rcu_read_lock() and rcu_read_unlock()
212 may be substituted for rcu_read_lock_bh() and rcu_read_unlock_bh() 213 may be substituted for rcu_read_lock_bh() and rcu_read_unlock_bh()
@@ -333,14 +334,14 @@ over a rather long period of time, but improvements are always welcome!
333 victim CPU from ever going offline.) 334 victim CPU from ever going offline.)
334 335
33514. SRCU (srcu_read_lock(), srcu_read_unlock(), srcu_dereference(), 33614. SRCU (srcu_read_lock(), srcu_read_unlock(), srcu_dereference(),
336 synchronize_srcu(), and synchronize_srcu_expedited()) may only 337 synchronize_srcu(), synchronize_srcu_expedited(), and call_srcu())
337 be invoked from process context. Unlike other forms of RCU, it 338 may only be invoked from process context. Unlike other forms of
338 -is- permissible to block in an SRCU read-side critical section 339 RCU, it -is- permissible to block in an SRCU read-side critical
339 (demarked by srcu_read_lock() and srcu_read_unlock()), hence the 340 section (demarked by srcu_read_lock() and srcu_read_unlock()),
340 "SRCU": "sleepable RCU". Please note that if you don't need 341 hence the "SRCU": "sleepable RCU". Please note that if you
341 to sleep in read-side critical sections, you should be using 342 don't need to sleep in read-side critical sections, you should be
342 RCU rather than SRCU, because RCU is almost always faster and 343 using RCU rather than SRCU, because RCU is almost always faster
343 easier to use than is SRCU. 344 and easier to use than is SRCU.
344 345
345 If you need to enter your read-side critical section in a 346 If you need to enter your read-side critical section in a
346 hardirq or exception handler, and then exit that same read-side 347 hardirq or exception handler, and then exit that same read-side
@@ -353,8 +354,8 @@ over a rather long period of time, but improvements are always welcome!
353 cleanup_srcu_struct(). These are passed a "struct srcu_struct" 354 cleanup_srcu_struct(). These are passed a "struct srcu_struct"
354 that defines the scope of a given SRCU domain. Once initialized, 355 that defines the scope of a given SRCU domain. Once initialized,
355 the srcu_struct is passed to srcu_read_lock(), srcu_read_unlock() 356 the srcu_struct is passed to srcu_read_lock(), srcu_read_unlock()
356 synchronize_srcu(), and synchronize_srcu_expedited(). A given 357 synchronize_srcu(), synchronize_srcu_expedited(), and call_srcu().
357 synchronize_srcu() waits only for SRCU read-side critical 358 A given synchronize_srcu() waits only for SRCU read-side critical
358 sections governed by srcu_read_lock() and srcu_read_unlock() 359 sections governed by srcu_read_lock() and srcu_read_unlock()
359 calls that have been passed the same srcu_struct. This property 360 calls that have been passed the same srcu_struct. This property
360 is what makes sleeping read-side critical sections tolerable -- 361 is what makes sleeping read-side critical sections tolerable --
@@ -374,7 +375,7 @@ over a rather long period of time, but improvements are always welcome!
374 requiring SRCU's read-side deadlock immunity or low read-side 375 requiring SRCU's read-side deadlock immunity or low read-side
375 realtime latency. 376 realtime latency.
376 377
377 Note that, rcu_assign_pointer() relates to SRCU just as they do 378 Note that, rcu_assign_pointer() relates to SRCU just as it does
378 to other forms of RCU. 379 to other forms of RCU.
379 380
38015. The whole point of call_rcu(), synchronize_rcu(), and friends 38115. The whole point of call_rcu(), synchronize_rcu(), and friends
diff --git a/Documentation/RCU/rcubarrier.txt b/Documentation/RCU/rcubarrier.txt
index e439a0edee22..38428c125135 100644
--- a/Documentation/RCU/rcubarrier.txt
+++ b/Documentation/RCU/rcubarrier.txt
@@ -79,8 +79,6 @@ complete. Pseudo-code using rcu_barrier() is as follows:
79 2. Execute rcu_barrier(). 79 2. Execute rcu_barrier().
80 3. Allow the module to be unloaded. 80 3. Allow the module to be unloaded.
81 81
82Quick Quiz #1: Why is there no srcu_barrier()?
83
84The rcutorture module makes use of rcu_barrier in its exit function 82The rcutorture module makes use of rcu_barrier in its exit function
85as follows: 83as follows:
86 84
@@ -162,7 +160,7 @@ for any pre-existing callbacks to complete.
162Then lines 55-62 print status and do operation-specific cleanup, and 160Then lines 55-62 print status and do operation-specific cleanup, and
163then return, permitting the module-unload operation to be completed. 161then return, permitting the module-unload operation to be completed.
164 162
165Quick Quiz #2: Is there any other situation where rcu_barrier() might 163Quick Quiz #1: Is there any other situation where rcu_barrier() might
166 be required? 164 be required?
167 165
168Your module might have additional complications. For example, if your 166Your module might have additional complications. For example, if your
@@ -242,7 +240,7 @@ reaches zero, as follows:
242 4 complete(&rcu_barrier_completion); 240 4 complete(&rcu_barrier_completion);
243 5 } 241 5 }
244 242
245Quick Quiz #3: What happens if CPU 0's rcu_barrier_func() executes 243Quick Quiz #2: What happens if CPU 0's rcu_barrier_func() executes
246 immediately (thus incrementing rcu_barrier_cpu_count to the 244 immediately (thus incrementing rcu_barrier_cpu_count to the
247 value one), but the other CPU's rcu_barrier_func() invocations 245 value one), but the other CPU's rcu_barrier_func() invocations
248 are delayed for a full grace period? Couldn't this result in 246 are delayed for a full grace period? Couldn't this result in
@@ -259,12 +257,7 @@ so that your module may be safely unloaded.
259 257
260Answers to Quick Quizzes 258Answers to Quick Quizzes
261 259
262Quick Quiz #1: Why is there no srcu_barrier()? 260Quick Quiz #1: Is there any other situation where rcu_barrier() might
263
264Answer: Since there is no call_srcu(), there can be no outstanding SRCU
265 callbacks. Therefore, there is no need to wait for them.
266
267Quick Quiz #2: Is there any other situation where rcu_barrier() might
268 be required? 261 be required?
269 262
270Answer: Interestingly enough, rcu_barrier() was not originally 263Answer: Interestingly enough, rcu_barrier() was not originally
@@ -278,7 +271,7 @@ Answer: Interestingly enough, rcu_barrier() was not originally
278 implementing rcutorture, and found that rcu_barrier() solves 271 implementing rcutorture, and found that rcu_barrier() solves
279 this problem as well. 272 this problem as well.
280 273
281Quick Quiz #3: What happens if CPU 0's rcu_barrier_func() executes 274Quick Quiz #2: What happens if CPU 0's rcu_barrier_func() executes
282 immediately (thus incrementing rcu_barrier_cpu_count to the 275 immediately (thus incrementing rcu_barrier_cpu_count to the
283 value one), but the other CPU's rcu_barrier_func() invocations 276 value one), but the other CPU's rcu_barrier_func() invocations
284 are delayed for a full grace period? Couldn't this result in 277 are delayed for a full grace period? Couldn't this result in
diff --git a/Documentation/RCU/torture.txt b/Documentation/RCU/torture.txt
index 4ddf3913fd8c..7dce8a17eac2 100644
--- a/Documentation/RCU/torture.txt
+++ b/Documentation/RCU/torture.txt
@@ -174,11 +174,20 @@ torture_type The type of RCU to test, with string values as follows:
174 and synchronize_rcu_bh_expedited(). 174 and synchronize_rcu_bh_expedited().
175 175
176 "srcu": srcu_read_lock(), srcu_read_unlock() and 176 "srcu": srcu_read_lock(), srcu_read_unlock() and
177 call_srcu().
178
179 "srcu_sync": srcu_read_lock(), srcu_read_unlock() and
177 synchronize_srcu(). 180 synchronize_srcu().
178 181
179 "srcu_expedited": srcu_read_lock(), srcu_read_unlock() and 182 "srcu_expedited": srcu_read_lock(), srcu_read_unlock() and
180 synchronize_srcu_expedited(). 183 synchronize_srcu_expedited().
181 184
185 "srcu_raw": srcu_read_lock_raw(), srcu_read_unlock_raw(),
186 and call_srcu().
187
188 "srcu_raw_sync": srcu_read_lock_raw(), srcu_read_unlock_raw(),
189 and synchronize_srcu().
190
182 "sched": preempt_disable(), preempt_enable(), and 191 "sched": preempt_disable(), preempt_enable(), and
183 call_rcu_sched(). 192 call_rcu_sched().
184 193
diff --git a/Documentation/RCU/whatisRCU.txt b/Documentation/RCU/whatisRCU.txt
index 6bbe8dcdc3da..69ee188515e7 100644
--- a/Documentation/RCU/whatisRCU.txt
+++ b/Documentation/RCU/whatisRCU.txt
@@ -833,9 +833,9 @@ sched: Critical sections Grace period Barrier
833 833
834SRCU: Critical sections Grace period Barrier 834SRCU: Critical sections Grace period Barrier
835 835
836 srcu_read_lock synchronize_srcu N/A 836 srcu_read_lock synchronize_srcu srcu_barrier
837 srcu_read_unlock synchronize_srcu_expedited 837 srcu_read_unlock call_srcu
838 srcu_read_lock_raw 838 srcu_read_lock_raw synchronize_srcu_expedited
839 srcu_read_unlock_raw 839 srcu_read_unlock_raw
840 srcu_dereference 840 srcu_dereference
841 841
diff --git a/Documentation/arm/Samsung-S3C24XX/H1940.txt b/Documentation/arm/Samsung-S3C24XX/H1940.txt
index f4a7b22c8664..b738859b1fc0 100644
--- a/Documentation/arm/Samsung-S3C24XX/H1940.txt
+++ b/Documentation/arm/Samsung-S3C24XX/H1940.txt
@@ -37,4 +37,4 @@ Maintainers
37 Thanks to the many others who have also provided support. 37 Thanks to the many others who have also provided support.
38 38
39 39
40(c) 2005 Ben Dooks \ No newline at end of file 40(c) 2005 Ben Dooks
diff --git a/Documentation/arm/Samsung-S3C24XX/SMDK2440.txt b/Documentation/arm/Samsung-S3C24XX/SMDK2440.txt
index 32e1eae6a25f..429390bd4684 100644
--- a/Documentation/arm/Samsung-S3C24XX/SMDK2440.txt
+++ b/Documentation/arm/Samsung-S3C24XX/SMDK2440.txt
@@ -53,4 +53,4 @@ Maintainers
53 and to Simtec Electronics for allowing me time to work on this. 53 and to Simtec Electronics for allowing me time to work on this.
54 54
55 55
56(c) 2004 Ben Dooks \ No newline at end of file 56(c) 2004 Ben Dooks
diff --git a/Documentation/cgroups/cgroups.txt b/Documentation/cgroups/cgroups.txt
index 8e74980ab385..4a0b64c605fc 100644
--- a/Documentation/cgroups/cgroups.txt
+++ b/Documentation/cgroups/cgroups.txt
@@ -370,15 +370,12 @@ To mount a cgroup hierarchy with just the cpuset and memory
370subsystems, type: 370subsystems, type:
371# mount -t cgroup -o cpuset,memory hier1 /sys/fs/cgroup/rg1 371# mount -t cgroup -o cpuset,memory hier1 /sys/fs/cgroup/rg1
372 372
373To change the set of subsystems bound to a mounted hierarchy, just 373While remounting cgroups is currently supported, it is not recommend
374remount with different options: 374to use it. Remounting allows changing bound subsystems and
375# mount -o remount,cpuset,blkio hier1 /sys/fs/cgroup/rg1 375release_agent. Rebinding is hardly useful as it only works when the
376 376hierarchy is empty and release_agent itself should be replaced with
377Now memory is removed from the hierarchy and blkio is added. 377conventional fsnotify. The support for remounting will be removed in
378 378the future.
379Note this will add blkio to the hierarchy but won't remove memory or
380cpuset, because the new options are appended to the old ones:
381# mount -o remount,blkio /sys/fs/cgroup/rg1
382 379
383To Specify a hierarchy's release_agent: 380To Specify a hierarchy's release_agent:
384# mount -t cgroup -o cpuset,release_agent="/sbin/cpuset_release_agent" \ 381# mount -t cgroup -o cpuset,release_agent="/sbin/cpuset_release_agent" \
@@ -637,16 +634,6 @@ void exit(struct task_struct *task)
637 634
638Called during task exit. 635Called during task exit.
639 636
640int populate(struct cgroup *cgrp)
641(cgroup_mutex held by caller)
642
643Called after creation of a cgroup to allow a subsystem to populate
644the cgroup directory with file entries. The subsystem should make
645calls to cgroup_add_file() with objects of type cftype (see
646include/linux/cgroup.h for details). Note that although this
647method can return an error code, the error code is currently not
648always handled well.
649
650void post_clone(struct cgroup *cgrp) 637void post_clone(struct cgroup *cgrp)
651(cgroup_mutex held by caller) 638(cgroup_mutex held by caller)
652 639
@@ -656,7 +643,7 @@ example in cpusets, no task may attach before 'cpus' and 'mems' are set
656up. 643up.
657 644
658void bind(struct cgroup *root) 645void bind(struct cgroup *root)
659(cgroup_mutex and ss->hierarchy_mutex held by caller) 646(cgroup_mutex held by caller)
660 647
661Called when a cgroup subsystem is rebound to a different hierarchy 648Called when a cgroup subsystem is rebound to a different hierarchy
662and root cgroup. Currently this will only involve movement between 649and root cgroup. Currently this will only involve movement between
diff --git a/Documentation/connector/cn_test.c b/Documentation/connector/cn_test.c
index 7764594778d4..adcca0368d60 100644
--- a/Documentation/connector/cn_test.c
+++ b/Documentation/connector/cn_test.c
@@ -69,9 +69,13 @@ static int cn_test_want_notify(void)
69 return -ENOMEM; 69 return -ENOMEM;
70 } 70 }
71 71
72 nlh = NLMSG_PUT(skb, 0, 0x123, NLMSG_DONE, size - sizeof(*nlh)); 72 nlh = nlmsg_put(skb, 0, 0x123, NLMSG_DONE, size - sizeof(*nlh), 0);
73 if (!nlh) {
74 kfree_skb(skb);
75 return -EMSGSIZE;
76 }
73 77
74 msg = (struct cn_msg *)NLMSG_DATA(nlh); 78 msg = nlmsg_data(nlh);
75 79
76 memset(msg, 0, size0); 80 memset(msg, 0, size0);
77 81
@@ -117,11 +121,6 @@ static int cn_test_want_notify(void)
117 pr_info("request was sent: group=0x%x\n", ctl->group); 121 pr_info("request was sent: group=0x%x\n", ctl->group);
118 122
119 return 0; 123 return 0;
120
121nlmsg_failure:
122 pr_err("failed to send %u.%u\n", msg->seq, msg->ack);
123 kfree_skb(skb);
124 return -EINVAL;
125} 124}
126#endif 125#endif
127 126
diff --git a/Documentation/devices.txt b/Documentation/devices.txt
index 47a154f30290..b6251cca9263 100644
--- a/Documentation/devices.txt
+++ b/Documentation/devices.txt
@@ -2416,6 +2416,8 @@ Your cooperation is appreciated.
2416 1 = /dev/raw/raw1 First raw I/O device 2416 1 = /dev/raw/raw1 First raw I/O device
2417 2 = /dev/raw/raw2 Second raw I/O device 2417 2 = /dev/raw/raw2 Second raw I/O device
2418 ... 2418 ...
2419 max minor number of raw device is set by kernel config
2420 MAX_RAW_DEVS or raw module parameter 'max_raw_devs'
2419 2421
2420163 char 2422163 char
2421 2423
diff --git a/Documentation/devicetree/bindings/arm/armada-370-xp-mpic.txt b/Documentation/devicetree/bindings/arm/armada-370-xp-mpic.txt
new file mode 100644
index 000000000000..70c0dc5f00ed
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/armada-370-xp-mpic.txt
@@ -0,0 +1,23 @@
1Marvell Armada 370 and Armada XP Interrupt Controller
2-----------------------------------------------------
3
4Required properties:
5- compatible: Should be "marvell,mpic"
6- interrupt-controller: Identifies the node as an interrupt controller.
7- #interrupt-cells: The number of cells to define the interrupts. Should be 1.
8 The cell is the IRQ number
9- reg: Should contain PMIC registers location and length. First pair
10 for the main interrupt registers, second pair for the per-CPU
11 interrupt registers
12
13Example:
14
15 mpic: interrupt-controller@d0020000 {
16 compatible = "marvell,mpic";
17 #interrupt-cells = <1>;
18 #address-cells = <1>;
19 #size-cells = <1>;
20 interrupt-controller;
21 reg = <0xd0020000 0x1000>,
22 <0xd0021000 0x1000>;
23 };
diff --git a/Documentation/devicetree/bindings/arm/armada-370-xp-timer.txt b/Documentation/devicetree/bindings/arm/armada-370-xp-timer.txt
new file mode 100644
index 000000000000..8b6ea2267c94
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/armada-370-xp-timer.txt
@@ -0,0 +1,11 @@
1Marvell Armada 370 and Armada XP Global Timers
2----------------------------------------------
3
4Required properties:
5- compatible: Should be "marvell,armada-370-xp-timer"
6- interrupts: Should contain the list of Global Timer interrupts
7- reg: Should contain the base address of the Global Timer registers
8
9Optional properties:
10- marvell,timer-25Mhz: Tells whether the Global timer supports the 25
11 Mhz fixed mode (available on Armada XP and not on Armada 370)
diff --git a/Documentation/devicetree/bindings/arm/armada-370-xp.txt b/Documentation/devicetree/bindings/arm/armada-370-xp.txt
new file mode 100644
index 000000000000..c6ed90ea6e17
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/armada-370-xp.txt
@@ -0,0 +1,24 @@
1Marvell Armada 370 and Armada XP Platforms Device Tree Bindings
2---------------------------------------------------------------
3
4Boards with a SoC of the Marvell Armada 370 and Armada XP families
5shall have the following property:
6
7Required root node property:
8
9compatible: must contain "marvell,armada-370-xp"
10
11In addition, boards using the Marvell Armada 370 SoC shall have the
12following property:
13
14Required root node property:
15
16compatible: must contain "marvell,armada370"
17
18In addition, boards using the Marvell Armada XP SoC shall have the
19following property:
20
21Required root node property:
22
23compatible: must contain "marvell,armadaxp"
24
diff --git a/Documentation/devicetree/bindings/arm/atmel-aic.txt b/Documentation/devicetree/bindings/arm/atmel-aic.txt
index aabca4f83402..19078bf5cca8 100644
--- a/Documentation/devicetree/bindings/arm/atmel-aic.txt
+++ b/Documentation/devicetree/bindings/arm/atmel-aic.txt
@@ -4,7 +4,7 @@ Required properties:
4- compatible: Should be "atmel,<chip>-aic" 4- compatible: Should be "atmel,<chip>-aic"
5- interrupt-controller: Identifies the node as an interrupt controller. 5- interrupt-controller: Identifies the node as an interrupt controller.
6- interrupt-parent: For single AIC system, it is an empty property. 6- interrupt-parent: For single AIC system, it is an empty property.
7- #interrupt-cells: The number of cells to define the interrupts. It sould be 2. 7- #interrupt-cells: The number of cells to define the interrupts. It sould be 3.
8 The first cell is the IRQ number (aka "Peripheral IDentifier" on datasheet). 8 The first cell is the IRQ number (aka "Peripheral IDentifier" on datasheet).
9 The second cell is used to specify flags: 9 The second cell is used to specify flags:
10 bits[3:0] trigger type and level flags: 10 bits[3:0] trigger type and level flags:
@@ -14,7 +14,10 @@ Required properties:
14 8 = active low level-sensitive. 14 8 = active low level-sensitive.
15 Valid combinations are 1, 2, 3, 4, 8. 15 Valid combinations are 1, 2, 3, 4, 8.
16 Default flag for internal sources should be set to 4 (active high). 16 Default flag for internal sources should be set to 4 (active high).
17 The third cell is used to specify the irq priority from 0 (lowest) to 7
18 (highest).
17- reg: Should contain AIC registers location and length 19- reg: Should contain AIC registers location and length
20- atmel,external-irqs: u32 array of external irqs.
18 21
19Examples: 22Examples:
20 /* 23 /*
@@ -24,7 +27,7 @@ Examples:
24 compatible = "atmel,at91rm9200-aic"; 27 compatible = "atmel,at91rm9200-aic";
25 interrupt-controller; 28 interrupt-controller;
26 interrupt-parent; 29 interrupt-parent;
27 #interrupt-cells = <2>; 30 #interrupt-cells = <3>;
28 reg = <0xfffff000 0x200>; 31 reg = <0xfffff000 0x200>;
29 }; 32 };
30 33
@@ -34,5 +37,5 @@ Examples:
34 dma: dma-controller@ffffec00 { 37 dma: dma-controller@ffffec00 {
35 compatible = "atmel,at91sam9g45-dma"; 38 compatible = "atmel,at91sam9g45-dma";
36 reg = <0xffffec00 0x200>; 39 reg = <0xffffec00 0x200>;
37 interrupts = <21 4>; 40 interrupts = <21 4 5>;
38 }; 41 };
diff --git a/Documentation/devicetree/bindings/arm/davinci/cp-intc.txt b/Documentation/devicetree/bindings/arm/davinci/cp-intc.txt
new file mode 100644
index 000000000000..597e8a089fe4
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/davinci/cp-intc.txt
@@ -0,0 +1,27 @@
1* TI Common Platform Interrupt Controller
2
3Common Platform Interrupt Controller (cp_intc) is used on
4OMAP-L1x SoCs and can support several configurable number
5of interrupts.
6
7Main node required properties:
8
9- compatible : should be:
10 "ti,cp-intc"
11- interrupt-controller : Identifies the node as an interrupt controller
12- #interrupt-cells : Specifies the number of cells needed to encode an
13 interrupt source. The type shall be a <u32> and the value shall be 1.
14
15 The cell contains the interrupt number in the range [0-128].
16- ti,intc-size: Number of interrupts handled by the interrupt controller.
17- reg: physical base address and size of the intc registers map.
18
19Example:
20
21 intc: interrupt-controller@1 {
22 compatible = "ti,cp-intc";
23 interrupt-controller;
24 #interrupt-cells = <1>;
25 ti,intc-size = <101>;
26 reg = <0xfffee000 0x2000>;
27 };
diff --git a/Documentation/devicetree/bindings/arm/mvebu-system-controller.txt b/Documentation/devicetree/bindings/arm/mvebu-system-controller.txt
new file mode 100644
index 000000000000..081c6a786c8a
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/mvebu-system-controller.txt
@@ -0,0 +1,17 @@
1MVEBU System Controller
2-----------------------
3MVEBU (Marvell SOCs: Armada 370/XP, Dove, mv78xx0, Kirkwood, Orion5x)
4
5Required properties:
6
7- compatible: one of:
8 - "marvell,orion-system-controller"
9 - "marvell,armada-370-xp-system-controller"
10- reg: Should contain system controller registers location and length.
11
12Example:
13
14 system-controller@d0018200 {
15 compatible = "marvell,armada-370-xp-system-controller";
16 reg = <0xd0018200 0x500>;
17 };
diff --git a/Documentation/devicetree/bindings/arm/olimex.txt b/Documentation/devicetree/bindings/arm/olimex.txt
new file mode 100644
index 000000000000..007fb5c685a1
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/olimex.txt
@@ -0,0 +1,6 @@
1Olimex i.MX Platforms Device Tree Bindings
2------------------------------------------
3
4i.MX23 Olinuxino Low Cost Board
5Required root node properties:
6 - compatible = "olimex,imx23-olinuxino", "fsl,imx23";
diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt b/Documentation/devicetree/bindings/arm/omap/omap.txt
index e78e8bccac30..ccdd0e53451f 100644
--- a/Documentation/devicetree/bindings/arm/omap/omap.txt
+++ b/Documentation/devicetree/bindings/arm/omap/omap.txt
@@ -47,3 +47,9 @@ Boards:
47 47
48- AM335X EVM : Software Developement Board for AM335x 48- AM335X EVM : Software Developement Board for AM335x
49 compatible = "ti,am335x-evm", "ti,am33xx", "ti,omap3" 49 compatible = "ti,am335x-evm", "ti,am33xx", "ti,omap3"
50
51- AM335X Bone : Low cost community board
52 compatible = "ti,am335x-bone", "ti,am33xx", "ti,omap3"
53
54- OMAP5 EVM : Evaluation Module
55 compatible = "ti,omap5-evm", "ti,omap5"
diff --git a/Documentation/devicetree/bindings/arm/primecell.txt b/Documentation/devicetree/bindings/arm/primecell.txt
index 951ca46789d4..64fc82bc8928 100644
--- a/Documentation/devicetree/bindings/arm/primecell.txt
+++ b/Documentation/devicetree/bindings/arm/primecell.txt
@@ -13,11 +13,17 @@ Required properties:
13Optional properties: 13Optional properties:
14 14
15- arm,primecell-periphid : Value to override the h/w value with 15- arm,primecell-periphid : Value to override the h/w value with
16- clocks : From common clock binding. First clock is phandle to clock for apb
17 pclk. Additional clocks are optional and specific to those peripherals.
18- clock-names : From common clock binding. Shall be "apb_pclk" for first clock.
16 19
17Example: 20Example:
18 21
19serial@fff36000 { 22serial@fff36000 {
20 compatible = "arm,pl011", "arm,primecell"; 23 compatible = "arm,pl011", "arm,primecell";
21 arm,primecell-periphid = <0x00341011>; 24 arm,primecell-periphid = <0x00341011>;
25 clocks = <&pclk>;
26 clock-names = "apb_pclk";
27
22}; 28};
23 29
diff --git a/Documentation/devicetree/bindings/arm/tegra/emc.txt b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-emc.txt
index 09335f8eee00..4c33b29dc660 100644
--- a/Documentation/devicetree/bindings/arm/tegra/emc.txt
+++ b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-emc.txt
@@ -15,7 +15,7 @@ Child device nodes describe the memory settings for different configurations and
15 15
16Example: 16Example:
17 17
18 emc@7000f400 { 18 memory-controller@7000f400 {
19 #address-cells = < 1 >; 19 #address-cells = < 1 >;
20 #size-cells = < 0 >; 20 #size-cells = < 0 >;
21 compatible = "nvidia,tegra20-emc"; 21 compatible = "nvidia,tegra20-emc";
diff --git a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-mc.txt b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-mc.txt
index c25a0a55151d..866d93421eba 100644
--- a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-mc.txt
+++ b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-mc.txt
@@ -8,7 +8,7 @@ Required properties:
8- interrupts : Should contain MC General interrupt. 8- interrupts : Should contain MC General interrupt.
9 9
10Example: 10Example:
11 mc { 11 memory-controller@0x7000f000 {
12 compatible = "nvidia,tegra20-mc"; 12 compatible = "nvidia,tegra20-mc";
13 reg = <0x7000f000 0x024 13 reg = <0x7000f000 0x024
14 0x7000f03c 0x3c4>; 14 0x7000f03c 0x3c4>;
diff --git a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra30-mc.txt b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra30-mc.txt
index e47e73f612f4..bdf1a612422b 100644
--- a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra30-mc.txt
+++ b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra30-mc.txt
@@ -8,7 +8,7 @@ Required properties:
8- interrupts : Should contain MC General interrupt. 8- interrupts : Should contain MC General interrupt.
9 9
10Example: 10Example:
11 mc { 11 memory-controller {
12 compatible = "nvidia,tegra30-mc"; 12 compatible = "nvidia,tegra30-mc";
13 reg = <0x7000f000 0x010 13 reg = <0x7000f000 0x010
14 0x7000f03c 0x1b4 14 0x7000f03c 0x1b4
diff --git a/Documentation/devicetree/bindings/clock/calxeda.txt b/Documentation/devicetree/bindings/clock/calxeda.txt
new file mode 100644
index 000000000000..0a6ac1bdcda1
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/calxeda.txt
@@ -0,0 +1,17 @@
1Device Tree Clock bindings for Calxeda highbank platform
2
3This binding uses the common clock binding[1].
4
5[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
6
7Required properties:
8- compatible : shall be one of the following:
9 "calxeda,hb-pll-clock" - for a PLL clock
10 "calxeda,hb-a9periph-clock" - The A9 peripheral clock divided from the
11 A9 clock.
12 "calxeda,hb-a9bus-clock" - The A9 bus clock divided from the A9 clock.
13 "calxeda,hb-emmc-clock" - Divided clock for MMC/SD controller.
14- reg : shall be the control register offset from SYSREGs base for the clock.
15- clocks : shall be the input parent clock phandle for the clock. This is
16 either an oscillator or a pll output.
17- #clock-cells : from common clock binding; shall be set to 0.
diff --git a/Documentation/devicetree/bindings/clock/clock-bindings.txt b/Documentation/devicetree/bindings/clock/clock-bindings.txt
new file mode 100644
index 000000000000..eb65d417f8c4
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/clock-bindings.txt
@@ -0,0 +1,117 @@
1This binding is a work-in-progress, and are based on some experimental
2work by benh[1].
3
4Sources of clock signal can be represented by any node in the device
5tree. Those nodes are designated as clock providers. Clock consumer
6nodes use a phandle and clock specifier pair to connect clock provider
7outputs to clock inputs. Similar to the gpio specifiers, a clock
8specifier is an array of one more more cells identifying the clock
9output on a device. The length of a clock specifier is defined by the
10value of a #clock-cells property in the clock provider node.
11
12[1] http://patchwork.ozlabs.org/patch/31551/
13
14==Clock providers==
15
16Required properties:
17#clock-cells: Number of cells in a clock specifier; Typically 0 for nodes
18 with a single clock output and 1 for nodes with multiple
19 clock outputs.
20
21Optional properties:
22clock-output-names: Recommended to be a list of strings of clock output signal
23 names indexed by the first cell in the clock specifier.
24 However, the meaning of clock-output-names is domain
25 specific to the clock provider, and is only provided to
26 encourage using the same meaning for the majority of clock
27 providers. This format may not work for clock providers
28 using a complex clock specifier format. In those cases it
29 is recommended to omit this property and create a binding
30 specific names property.
31
32 Clock consumer nodes must never directly reference
33 the provider's clock-output-names property.
34
35For example:
36
37 oscillator {
38 #clock-cells = <1>;
39 clock-output-names = "ckil", "ckih";
40 };
41
42- this node defines a device with two clock outputs, the first named
43 "ckil" and the second named "ckih". Consumer nodes always reference
44 clocks by index. The names should reflect the clock output signal
45 names for the device.
46
47==Clock consumers==
48
49Required properties:
50clocks: List of phandle and clock specifier pairs, one pair
51 for each clock input to the device. Note: if the
52 clock provider specifies '0' for #clock-cells, then
53 only the phandle portion of the pair will appear.
54
55Optional properties:
56clock-names: List of clock input name strings sorted in the same
57 order as the clocks property. Consumers drivers
58 will use clock-names to match clock input names
59 with clocks specifiers.
60clock-ranges: Empty property indicating that child nodes can inherit named
61 clocks from this node. Useful for bus nodes to provide a
62 clock to their children.
63
64For example:
65
66 device {
67 clocks = <&osc 1>, <&ref 0>;
68 clock-names = "baud", "register";
69 };
70
71
72This represents a device with two clock inputs, named "baud" and "register".
73The baud clock is connected to output 1 of the &osc device, and the register
74clock is connected to output 0 of the &ref.
75
76==Example==
77
78 /* external oscillator */
79 osc: oscillator {
80 compatible = "fixed-clock";
81 #clock-cells = <1>;
82 clock-frequency = <32678>;
83 clock-output-names = "osc";
84 };
85
86 /* phase-locked-loop device, generates a higher frequency clock
87 * from the external oscillator reference */
88 pll: pll@4c000 {
89 compatible = "vendor,some-pll-interface"
90 #clock-cells = <1>;
91 clocks = <&osc 0>;
92 clock-names = "ref";
93 reg = <0x4c000 0x1000>;
94 clock-output-names = "pll", "pll-switched";
95 };
96
97 /* UART, using the low frequency oscillator for the baud clock,
98 * and the high frequency switched PLL output for register
99 * clocking */
100 uart@a000 {
101 compatible = "fsl,imx-uart";
102 reg = <0xa000 0x1000>;
103 interrupts = <33>;
104 clocks = <&osc 0>, <&pll 1>;
105 clock-names = "baud", "register";
106 };
107
108This DT fragment defines three devices: an external oscillator to provide a
109low-frequency reference clock, a PLL device to generate a higher frequency
110clock signal, and a UART.
111
112* The oscillator is fixed-frequency, and provides one clock output, named "osc".
113* The PLL is both a clock provider and a clock consumer. It uses the clock
114 signal generated by the external oscillator, and provides two output signals
115 ("pll" and "pll-switched").
116* The UART has its baud clock connected the external oscillator and its
117 register clock connected to the PLL clock (the "pll-switched" signal)
diff --git a/Documentation/devicetree/bindings/clock/fixed-clock.txt b/Documentation/devicetree/bindings/clock/fixed-clock.txt
new file mode 100644
index 000000000000..0b1fe7824093
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/fixed-clock.txt
@@ -0,0 +1,21 @@
1Binding for simple fixed-rate clock sources.
2
3This binding uses the common clock binding[1].
4
5[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
6
7Required properties:
8- compatible : shall be "fixed-clock".
9- #clock-cells : from common clock binding; shall be set to 0.
10- clock-frequency : frequency of clock in Hz. Should be a single cell.
11
12Optional properties:
13- gpios : From common gpio binding; gpio connection to clock enable pin.
14- clock-output-names : From common clock binding.
15
16Example:
17 clock {
18 compatible = "fixed-clock";
19 #clock-cells = <0>;
20 clock-frequency = <1000000000>;
21 };
diff --git a/Documentation/devicetree/bindings/fb/mxsfb.txt b/Documentation/devicetree/bindings/fb/mxsfb.txt
new file mode 100644
index 000000000000..b41e5e52a676
--- /dev/null
+++ b/Documentation/devicetree/bindings/fb/mxsfb.txt
@@ -0,0 +1,19 @@
1* Freescale MXS LCD Interface (LCDIF)
2
3Required properties:
4- compatible: Should be "fsl,<chip>-lcdif". Supported chips include
5 imx23 and imx28.
6- reg: Address and length of the register set for lcdif
7- interrupts: Should contain lcdif interrupts
8
9Optional properties:
10- panel-enable-gpios : Should specify the gpio for panel enable
11
12Examples:
13
14lcdif@80030000 {
15 compatible = "fsl,imx28-lcdif";
16 reg = <0x80030000 2000>;
17 interrupts = <38 86>;
18 panel-enable-gpios = <&gpio3 30 0>;
19};
diff --git a/Documentation/devicetree/bindings/gpio/fsl-imx-gpio.txt b/Documentation/devicetree/bindings/gpio/fsl-imx-gpio.txt
index 4363ae4b3c14..4f3929713ae4 100644
--- a/Documentation/devicetree/bindings/gpio/fsl-imx-gpio.txt
+++ b/Documentation/devicetree/bindings/gpio/fsl-imx-gpio.txt
@@ -8,8 +8,16 @@ Required properties:
8 by low 16 pins and the second one is for high 16 pins. 8 by low 16 pins and the second one is for high 16 pins.
9- gpio-controller : Marks the device node as a gpio controller. 9- gpio-controller : Marks the device node as a gpio controller.
10- #gpio-cells : Should be two. The first cell is the pin number and 10- #gpio-cells : Should be two. The first cell is the pin number and
11 the second cell is used to specify optional parameters (currently 11 the second cell is used to specify the gpio polarity:
12 unused). 12 0 = active high
13 1 = active low
14- interrupt-controller: Marks the device node as an interrupt controller.
15- #interrupt-cells : Should be 2. The first cell is the GPIO number.
16 The second cell bits[3:0] is used to specify trigger type and level flags:
17 1 = low-to-high edge triggered.
18 2 = high-to-low edge triggered.
19 4 = active high level-sensitive.
20 8 = active low level-sensitive.
13 21
14Example: 22Example:
15 23
@@ -19,4 +27,6 @@ gpio0: gpio@73f84000 {
19 interrupts = <50 51>; 27 interrupts = <50 51>;
20 gpio-controller; 28 gpio-controller;
21 #gpio-cells = <2>; 29 #gpio-cells = <2>;
30 interrupt-controller;
31 #interrupt-cells = <2>;
22}; 32};
diff --git a/Documentation/devicetree/bindings/gpio/gpio-mxs.txt b/Documentation/devicetree/bindings/gpio/gpio-mxs.txt
index 0c35673f7a3e..1e677a47b836 100644
--- a/Documentation/devicetree/bindings/gpio/gpio-mxs.txt
+++ b/Documentation/devicetree/bindings/gpio/gpio-mxs.txt
@@ -13,8 +13,9 @@ Required properties for GPIO node:
13- interrupts : Should be the port interrupt shared by all 32 pins. 13- interrupts : Should be the port interrupt shared by all 32 pins.
14- gpio-controller : Marks the device node as a gpio controller. 14- gpio-controller : Marks the device node as a gpio controller.
15- #gpio-cells : Should be two. The first cell is the pin number and 15- #gpio-cells : Should be two. The first cell is the pin number and
16 the second cell is used to specify optional parameters (currently 16 the second cell is used to specify the gpio polarity:
17 unused). 17 0 = active high
18 1 = active low
18- interrupt-controller: Marks the device node as an interrupt controller. 19- interrupt-controller: Marks the device node as an interrupt controller.
19- #interrupt-cells : Should be 2. The first cell is the GPIO number. 20- #interrupt-cells : Should be 2. The first cell is the GPIO number.
20 The second cell bits[3:0] is used to specify trigger type and level flags: 21 The second cell bits[3:0] is used to specify trigger type and level flags:
diff --git a/Documentation/devicetree/bindings/gpio/gpio-nmk.txt b/Documentation/devicetree/bindings/gpio/gpio-nmk.txt
index ee87467ad8d6..8315ac7780ef 100644
--- a/Documentation/devicetree/bindings/gpio/gpio-nmk.txt
+++ b/Documentation/devicetree/bindings/gpio/gpio-nmk.txt
@@ -26,6 +26,6 @@ Example:
26 #gpio-cells = <2>; 26 #gpio-cells = <2>;
27 gpio-controller; 27 gpio-controller;
28 interrupt-controller; 28 interrupt-controller;
29 supports-sleepmode; 29 st,supports-sleepmode;
30 gpio-bank = <1>; 30 gpio-bank = <1>;
31 }; 31 };
diff --git a/Documentation/devicetree/bindings/gpio/led.txt b/Documentation/devicetree/bindings/gpio/led.txt
index fd2bd56e7195..9bb308abd221 100644
--- a/Documentation/devicetree/bindings/gpio/led.txt
+++ b/Documentation/devicetree/bindings/gpio/led.txt
@@ -55,4 +55,4 @@ run-control {
55 gpios = <&mpc8572 7 0>; 55 gpios = <&mpc8572 7 0>;
56 default-state = "on"; 56 default-state = "on";
57 }; 57 };
58} 58};
diff --git a/Documentation/devicetree/bindings/gpio/gpio_nvidia.txt b/Documentation/devicetree/bindings/gpio/nvidia,tegra20-gpio.txt
index 023c9526e5f8..023c9526e5f8 100644
--- a/Documentation/devicetree/bindings/gpio/gpio_nvidia.txt
+++ b/Documentation/devicetree/bindings/gpio/nvidia,tegra20-gpio.txt
diff --git a/Documentation/devicetree/bindings/input/tegra-kbc.txt b/Documentation/devicetree/bindings/input/nvidia,tegra20-kbc.txt
index 72683be6de35..72683be6de35 100644
--- a/Documentation/devicetree/bindings/input/tegra-kbc.txt
+++ b/Documentation/devicetree/bindings/input/nvidia,tegra20-kbc.txt
diff --git a/Documentation/devicetree/bindings/iommu/nvidia,tegra30-smmu.txt b/Documentation/devicetree/bindings/iommu/nvidia,tegra30-smmu.txt
new file mode 100644
index 000000000000..89fb5434b730
--- /dev/null
+++ b/Documentation/devicetree/bindings/iommu/nvidia,tegra30-smmu.txt
@@ -0,0 +1,21 @@
1NVIDIA Tegra 30 IOMMU H/W, SMMU (System Memory Management Unit)
2
3Required properties:
4- compatible : "nvidia,tegra30-smmu"
5- reg : Should contain 3 register banks(address and length) for each
6 of the SMMU register blocks.
7- interrupts : Should contain MC General interrupt.
8- nvidia,#asids : # of ASIDs
9- dma-window : IOVA start address and length.
10- nvidia,ahb : phandle to the ahb bus connected to SMMU.
11
12Example:
13 smmu {
14 compatible = "nvidia,tegra30-smmu";
15 reg = <0x7000f010 0x02c
16 0x7000f1f0 0x010
17 0x7000f228 0x05c>;
18 nvidia,#asids = <4>; /* # of ASIDs */
19 dma-window = <0 0x40000000>; /* IOVA start & length */
20 nvidia,ahb = <&ahb>;
21 };
diff --git a/Documentation/devicetree/bindings/mfd/tps65910.txt b/Documentation/devicetree/bindings/mfd/tps65910.txt
index 645f5eaadb3f..d2802d4717bc 100644
--- a/Documentation/devicetree/bindings/mfd/tps65910.txt
+++ b/Documentation/devicetree/bindings/mfd/tps65910.txt
@@ -17,18 +17,46 @@ Required properties:
17 device need to be present. The definition for each of these nodes is defined 17 device need to be present. The definition for each of these nodes is defined
18 using the standard binding for regulators found at 18 using the standard binding for regulators found at
19 Documentation/devicetree/bindings/regulator/regulator.txt. 19 Documentation/devicetree/bindings/regulator/regulator.txt.
20 The regulator is matched with the regulator-compatible.
20 21
21 The valid names for regulators are: 22 The valid regulator-compatible values are:
22 tps65910: vrtc, vio, vdd1, vdd2, vdd3, vdig1, vdig2, vpll, vdac, vaux1, 23 tps65910: vrtc, vio, vdd1, vdd2, vdd3, vdig1, vdig2, vpll, vdac, vaux1,
23 vaux2, vaux33, vmmc 24 vaux2, vaux33, vmmc
24 tps65911: vrtc, vio, vdd1, vdd3, vddctrl, ldo1, ldo2, ldo3, ldo4, ldo5, 25 tps65911: vrtc, vio, vdd1, vdd3, vddctrl, ldo1, ldo2, ldo3, ldo4, ldo5,
25 ldo6, ldo7, ldo8 26 ldo6, ldo7, ldo8
26 27
28- xxx-supply: Input voltage supply regulator.
29 These entries are require if regulators are enabled for a device. Missing of these
30 properties can cause the regulator registration fails.
31 If some of input supply is powered through battery or always-on supply then
32 also it is require to have these parameters with proper node handle of always
33 on power supply.
34 tps65910:
35 vcc1-supply: VDD1 input.
36 vcc2-supply: VDD2 input.
37 vcc3-supply: VAUX33 and VMMC input.
38 vcc4-supply: VAUX1 and VAUX2 input.
39 vcc5-supply: VPLL and VDAC input.
40 vcc6-supply: VDIG1 and VDIG2 input.
41 vcc7-supply: VRTC input.
42 vccio-supply: VIO input.
43 tps65911:
44 vcc1-supply: VDD1 input.
45 vcc2-supply: VDD2 input.
46 vcc3-supply: LDO6, LDO7 and LDO8 input.
47 vcc4-supply: LDO5 input.
48 vcc5-supply: LDO3 and LDO4 input.
49 vcc6-supply: LDO1 and LDO2 input.
50 vcc7-supply: VRTC input.
51 vccio-supply: VIO input.
52
27Optional properties: 53Optional properties:
28- ti,vmbch-threshold: (tps65911) main battery charged threshold 54- ti,vmbch-threshold: (tps65911) main battery charged threshold
29 comparator. (see VMBCH_VSEL in TPS65910 datasheet) 55 comparator. (see VMBCH_VSEL in TPS65910 datasheet)
30- ti,vmbch2-threshold: (tps65911) main battery discharged threshold 56- ti,vmbch2-threshold: (tps65911) main battery discharged threshold
31 comparator. (see VMBCH_VSEL in TPS65910 datasheet) 57 comparator. (see VMBCH_VSEL in TPS65910 datasheet)
58- ti,en-ck32k-xtal: enable external 32-kHz crystal oscillator (see CK32K_CTRL
59 in TPS6591X datasheet)
32- ti,en-gpio-sleep: enable sleep control for gpios 60- ti,en-gpio-sleep: enable sleep control for gpios
33 There should be 9 entries here, one for each gpio. 61 There should be 9 entries here, one for each gpio.
34 62
@@ -56,74 +84,110 @@ Example:
56 84
57 ti,en-gpio-sleep = <0 0 1 0 0 0 0 0 0>; 85 ti,en-gpio-sleep = <0 0 1 0 0 0 0 0 0>;
58 86
87 vcc1-supply = <&reg_parent>;
88 vcc2-supply = <&some_reg>;
89 vcc3-supply = <...>;
90 vcc4-supply = <...>;
91 vcc5-supply = <...>;
92 vcc6-supply = <...>;
93 vcc7-supply = <...>;
94 vccio-supply = <...>;
95
59 regulators { 96 regulators {
60 vdd1_reg: vdd1 { 97 #address-cells = <1>;
98 #size-cells = <0>;
99
100 vdd1_reg: regulator@0 {
101 regulator-compatible = "vdd1";
102 reg = <0>;
61 regulator-min-microvolt = < 600000>; 103 regulator-min-microvolt = < 600000>;
62 regulator-max-microvolt = <1500000>; 104 regulator-max-microvolt = <1500000>;
63 regulator-always-on; 105 regulator-always-on;
64 regulator-boot-on; 106 regulator-boot-on;
65 ti,regulator-ext-sleep-control = <0>; 107 ti,regulator-ext-sleep-control = <0>;
66 }; 108 };
67 vdd2_reg: vdd2 { 109 vdd2_reg: regulator@1 {
110 regulator-compatible = "vdd2";
111 reg = <1>;
68 regulator-min-microvolt = < 600000>; 112 regulator-min-microvolt = < 600000>;
69 regulator-max-microvolt = <1500000>; 113 regulator-max-microvolt = <1500000>;
70 regulator-always-on; 114 regulator-always-on;
71 regulator-boot-on; 115 regulator-boot-on;
72 ti,regulator-ext-sleep-control = <4>; 116 ti,regulator-ext-sleep-control = <4>;
73 }; 117 };
74 vddctrl_reg: vddctrl { 118 vddctrl_reg: regulator@2 {
119 regulator-compatible = "vddctrl";
120 reg = <2>;
75 regulator-min-microvolt = < 600000>; 121 regulator-min-microvolt = < 600000>;
76 regulator-max-microvolt = <1400000>; 122 regulator-max-microvolt = <1400000>;
77 regulator-always-on; 123 regulator-always-on;
78 regulator-boot-on; 124 regulator-boot-on;
79 ti,regulator-ext-sleep-control = <0>; 125 ti,regulator-ext-sleep-control = <0>;
80 }; 126 };
81 vio_reg: vio { 127 vio_reg: regulator@3 {
128 regulator-compatible = "vio";
129 reg = <3>;
82 regulator-min-microvolt = <1500000>; 130 regulator-min-microvolt = <1500000>;
83 regulator-max-microvolt = <1800000>; 131 regulator-max-microvolt = <1800000>;
84 regulator-always-on; 132 regulator-always-on;
85 regulator-boot-on; 133 regulator-boot-on;
86 ti,regulator-ext-sleep-control = <1>; 134 ti,regulator-ext-sleep-control = <1>;
87 }; 135 };
88 ldo1_reg: ldo1 { 136 ldo1_reg: regulator@4 {
137 regulator-compatible = "ldo1";
138 reg = <4>;
89 regulator-min-microvolt = <1000000>; 139 regulator-min-microvolt = <1000000>;
90 regulator-max-microvolt = <3300000>; 140 regulator-max-microvolt = <3300000>;
91 ti,regulator-ext-sleep-control = <0>; 141 ti,regulator-ext-sleep-control = <0>;
92 }; 142 };
93 ldo2_reg: ldo2 { 143 ldo2_reg: regulator@5 {
144 regulator-compatible = "ldo2";
145 reg = <5>;
94 regulator-min-microvolt = <1050000>; 146 regulator-min-microvolt = <1050000>;
95 regulator-max-microvolt = <1050000>; 147 regulator-max-microvolt = <1050000>;
96 ti,regulator-ext-sleep-control = <0>; 148 ti,regulator-ext-sleep-control = <0>;
97 }; 149 };
98 ldo3_reg: ldo3 { 150 ldo3_reg: regulator@6 {
151 regulator-compatible = "ldo3";
152 reg = <6>;
99 regulator-min-microvolt = <1000000>; 153 regulator-min-microvolt = <1000000>;
100 regulator-max-microvolt = <3300000>; 154 regulator-max-microvolt = <3300000>;
101 ti,regulator-ext-sleep-control = <0>; 155 ti,regulator-ext-sleep-control = <0>;
102 }; 156 };
103 ldo4_reg: ldo4 { 157 ldo4_reg: regulator@7 {
158 regulator-compatible = "ldo4";
159 reg = <7>;
104 regulator-min-microvolt = <1000000>; 160 regulator-min-microvolt = <1000000>;
105 regulator-max-microvolt = <3300000>; 161 regulator-max-microvolt = <3300000>;
106 regulator-always-on; 162 regulator-always-on;
107 ti,regulator-ext-sleep-control = <0>; 163 ti,regulator-ext-sleep-control = <0>;
108 }; 164 };
109 ldo5_reg: ldo5 { 165 ldo5_reg: regulator@8 {
166 regulator-compatible = "ldo5";
167 reg = <8>;
110 regulator-min-microvolt = <1000000>; 168 regulator-min-microvolt = <1000000>;
111 regulator-max-microvolt = <3300000>; 169 regulator-max-microvolt = <3300000>;
112 ti,regulator-ext-sleep-control = <0>; 170 ti,regulator-ext-sleep-control = <0>;
113 }; 171 };
114 ldo6_reg: ldo6 { 172 ldo6_reg: regulator@9 {
173 regulator-compatible = "ldo6";
174 reg = <9>;
115 regulator-min-microvolt = <1200000>; 175 regulator-min-microvolt = <1200000>;
116 regulator-max-microvolt = <1200000>; 176 regulator-max-microvolt = <1200000>;
117 ti,regulator-ext-sleep-control = <0>; 177 ti,regulator-ext-sleep-control = <0>;
118 }; 178 };
119 ldo7_reg: ldo7 { 179 ldo7_reg: regulator@10 {
180 regulator-compatible = "ldo7";
181 reg = <10>;
120 regulator-min-microvolt = <1200000>; 182 regulator-min-microvolt = <1200000>;
121 regulator-max-microvolt = <1200000>; 183 regulator-max-microvolt = <1200000>;
122 regulator-always-on; 184 regulator-always-on;
123 regulator-boot-on; 185 regulator-boot-on;
124 ti,regulator-ext-sleep-control = <1>; 186 ti,regulator-ext-sleep-control = <1>;
125 }; 187 };
126 ldo8_reg: ldo8 { 188 ldo8_reg: regulator@11 {
189 regulator-compatible = "ldo8";
190 reg = <11>;
127 regulator-min-microvolt = <1000000>; 191 regulator-min-microvolt = <1000000>;
128 regulator-max-microvolt = <3300000>; 192 regulator-max-microvolt = <3300000>;
129 regulator-always-on; 193 regulator-always-on;
diff --git a/Documentation/devicetree/bindings/mmc/fsl-esdhc.txt b/Documentation/devicetree/bindings/mmc/fsl-esdhc.txt
index 0d93b4b0e0e3..bd9be0b5bc20 100644
--- a/Documentation/devicetree/bindings/mmc/fsl-esdhc.txt
+++ b/Documentation/devicetree/bindings/mmc/fsl-esdhc.txt
@@ -3,21 +3,22 @@
3The Enhanced Secure Digital Host Controller provides an interface 3The Enhanced Secure Digital Host Controller provides an interface
4for MMC, SD, and SDIO types of memory cards. 4for MMC, SD, and SDIO types of memory cards.
5 5
6This file documents differences between the core properties described
7by mmc.txt and the properties used by the sdhci-esdhc driver.
8
6Required properties: 9Required properties:
7 - compatible : should be
8 "fsl,<chip>-esdhc", "fsl,esdhc"
9 - reg : should contain eSDHC registers location and length.
10 - interrupts : should contain eSDHC interrupt.
11 - interrupt-parent : interrupt source phandle. 10 - interrupt-parent : interrupt source phandle.
12 - clock-frequency : specifies eSDHC base clock frequency. 11 - clock-frequency : specifies eSDHC base clock frequency.
13 - sdhci,wp-inverted : (optional) specifies that eSDHC controller 12
14 reports inverted write-protect state; New devices should use 13Optional properties:
15 the generic "wp-inverted" property. 14 - sdhci,wp-inverted : specifies that eSDHC controller reports
16 - sdhci,1-bit-only : (optional) specifies that a controller can 15 inverted write-protect state; New devices should use the generic
17 only handle 1-bit data transfers. New devices should use the 16 "wp-inverted" property.
18 generic "bus-width = <1>" property. 17 - sdhci,1-bit-only : specifies that a controller can only handle
19 - sdhci,auto-cmd12: (optional) specifies that a controller can 18 1-bit data transfers. New devices should use the generic
20 only handle auto CMD12. 19 "bus-width = <1>" property.
20 - sdhci,auto-cmd12: specifies that a controller can only handle auto
21 CMD12.
21 22
22Example: 23Example:
23 24
diff --git a/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.txt b/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.txt
index fea541ee8b34..70cd49b1caa8 100644
--- a/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.txt
+++ b/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.txt
@@ -3,17 +3,15 @@
3The Enhanced Secure Digital Host Controller on Freescale i.MX family 3The Enhanced Secure Digital Host Controller on Freescale i.MX family
4provides an interface for MMC, SD, and SDIO types of memory cards. 4provides an interface for MMC, SD, and SDIO types of memory cards.
5 5
6This file documents differences between the core properties described
7by mmc.txt and the properties used by the sdhci-esdhc-imx driver.
8
6Required properties: 9Required properties:
7- compatible : Should be "fsl,<chip>-esdhc" 10- compatible : Should be "fsl,<chip>-esdhc"
8- reg : Should contain eSDHC registers location and length
9- interrupts : Should contain eSDHC interrupt
10 11
11Optional properties: 12Optional properties:
12- non-removable : Indicate the card is wired to host permanently
13- fsl,cd-internal : Indicate to use controller internal card detection 13- fsl,cd-internal : Indicate to use controller internal card detection
14- fsl,wp-internal : Indicate to use controller internal write protection 14- fsl,wp-internal : Indicate to use controller internal write protection
15- cd-gpios : Specify GPIOs for card detection
16- wp-gpios : Specify GPIOs for write protection
17 15
18Examples: 16Examples:
19 17
diff --git a/Documentation/devicetree/bindings/mmc/mmc-spi-slot.txt b/Documentation/devicetree/bindings/mmc/mmc-spi-slot.txt
index d64aea5a4203..0e5e2ec4001d 100644
--- a/Documentation/devicetree/bindings/mmc/mmc-spi-slot.txt
+++ b/Documentation/devicetree/bindings/mmc/mmc-spi-slot.txt
@@ -1,8 +1,9 @@
1MMC/SD/SDIO slot directly connected to a SPI bus 1MMC/SD/SDIO slot directly connected to a SPI bus
2 2
3This file documents differences between the core properties described
4by mmc.txt and the properties used by the mmc_spi driver.
5
3Required properties: 6Required properties:
4- compatible : should be "mmc-spi-slot".
5- reg : should specify SPI address (chip-select number).
6- spi-max-frequency : maximum frequency for this device (Hz). 7- spi-max-frequency : maximum frequency for this device (Hz).
7- voltage-ranges : two cells are required, first cell specifies minimum 8- voltage-ranges : two cells are required, first cell specifies minimum
8 slot voltage (mV), second cell specifies maximum slot voltage (mV). 9 slot voltage (mV), second cell specifies maximum slot voltage (mV).
@@ -11,8 +12,7 @@ Required properties:
11Optional properties: 12Optional properties:
12- gpios : may specify GPIOs in this order: Card-Detect GPIO, 13- gpios : may specify GPIOs in this order: Card-Detect GPIO,
13 Write-Protect GPIO. Note that this does not follow the 14 Write-Protect GPIO. Note that this does not follow the
14 binding from mmc.txt, for historic reasons. 15 binding from mmc.txt, for historical reasons.
15- interrupts : the interrupt of a card detect interrupt.
16- interrupt-parent : the phandle for the interrupt controller that 16- interrupt-parent : the phandle for the interrupt controller that
17 services interrupts for this device. 17 services interrupts for this device.
18 18
diff --git a/Documentation/devicetree/bindings/mmc/mmc.txt b/Documentation/devicetree/bindings/mmc/mmc.txt
index 6e70dcde0a71..8a6811f4a02f 100644
--- a/Documentation/devicetree/bindings/mmc/mmc.txt
+++ b/Documentation/devicetree/bindings/mmc/mmc.txt
@@ -2,13 +2,17 @@ These properties are common to multiple MMC host controllers. Any host
2that requires the respective functionality should implement them using 2that requires the respective functionality should implement them using
3these definitions. 3these definitions.
4 4
5Interpreted by the OF core:
6- reg: Registers location and length.
7- interrupts: Interrupts used by the MMC controller.
8
5Required properties: 9Required properties:
6- bus-width: Number of data lines, can be <1>, <4>, or <8> 10- bus-width: Number of data lines, can be <1>, <4>, or <8>
7 11
8Optional properties: 12Optional properties:
9- cd-gpios : Specify GPIOs for card detection, see gpio binding 13- cd-gpios: Specify GPIOs for card detection, see gpio binding
10- wp-gpios : Specify GPIOs for write protection, see gpio binding 14- wp-gpios: Specify GPIOs for write protection, see gpio binding
11- cd-inverted: when present, polarity on the wp gpio line is inverted 15- cd-inverted: when present, polarity on the cd gpio line is inverted
12- wp-inverted: when present, polarity on the wp gpio line is inverted 16- wp-inverted: when present, polarity on the wp gpio line is inverted
13- non-removable: non-removable slot (like eMMC) 17- non-removable: non-removable slot (like eMMC)
14- max-frequency: maximum operating clock frequency 18- max-frequency: maximum operating clock frequency
diff --git a/Documentation/devicetree/bindings/mmc/mmci.txt b/Documentation/devicetree/bindings/mmc/mmci.txt
index 14a81d526118..2b584cae352a 100644
--- a/Documentation/devicetree/bindings/mmc/mmci.txt
+++ b/Documentation/devicetree/bindings/mmc/mmci.txt
@@ -1,19 +1,15 @@
1* ARM PrimeCell MultiMedia Card Interface (MMCI) PL180/1 1* ARM PrimeCell MultiMedia Card Interface (MMCI) PL180/1
2 2
3The ARM PrimeCell MMCI PL180 and PL181 provides and interface for 3The ARM PrimeCell MMCI PL180 and PL181 provides an interface for
4reading and writing to MultiMedia and SD cards alike. 4reading and writing to MultiMedia and SD cards alike.
5 5
6This file documents differences between the core properties described
7by mmc.txt and the properties used by the mmci driver.
8
6Required properties: 9Required properties:
7- compatible : contains "arm,pl18x", "arm,primecell". 10- compatible : contains "arm,pl18x", "arm,primecell".
8- reg : contains pl18x registers and length.
9- interrupts : contains the device IRQ(s).
10- arm,primecell-periphid : contains the PrimeCell Peripheral ID. 11- arm,primecell-periphid : contains the PrimeCell Peripheral ID.
11 12
12Optional properties: 13Optional properties:
13- wp-gpios : contains any write protect (ro) gpios
14- cd-gpios : contains any card detection gpios
15- cd-inverted : indicates whether the cd gpio is inverted
16- max-frequency : contains the maximum operating frequency
17- bus-width : number of data lines, can be <1>, <4>, or <8>
18- mmc-cap-mmc-highspeed : indicates whether MMC is high speed capable 14- mmc-cap-mmc-highspeed : indicates whether MMC is high speed capable
19- mmc-cap-sd-highspeed : indicates whether SD is high speed capable 15- mmc-cap-sd-highspeed : indicates whether SD is high speed capable
diff --git a/Documentation/devicetree/bindings/mmc/mxs-mmc.txt b/Documentation/devicetree/bindings/mmc/mxs-mmc.txt
index 14d870a9e3db..54949f6faede 100644
--- a/Documentation/devicetree/bindings/mmc/mxs-mmc.txt
+++ b/Documentation/devicetree/bindings/mmc/mxs-mmc.txt
@@ -3,16 +3,14 @@
3The Freescale MXS Synchronous Serial Ports (SSP) can act as a MMC controller 3The Freescale MXS Synchronous Serial Ports (SSP) can act as a MMC controller
4to support MMC, SD, and SDIO types of memory cards. 4to support MMC, SD, and SDIO types of memory cards.
5 5
6This file documents differences between the core properties in mmc.txt
7and the properties used by the mxsmmc driver.
8
6Required properties: 9Required properties:
7- compatible: Should be "fsl,<chip>-mmc". The supported chips include 10- compatible: Should be "fsl,<chip>-mmc". The supported chips include
8 imx23 and imx28. 11 imx23 and imx28.
9- reg: Should contain registers location and length
10- interrupts: Should contain ERROR and DMA interrupts 12- interrupts: Should contain ERROR and DMA interrupts
11- fsl,ssp-dma-channel: APBH DMA channel for the SSP 13- fsl,ssp-dma-channel: APBH DMA channel for the SSP
12- bus-width: Number of data lines, can be <1>, <4>, or <8>
13
14Optional properties:
15- wp-gpios: Specify GPIOs for write protection
16 14
17Examples: 15Examples:
18 16
diff --git a/Documentation/devicetree/bindings/mmc/nvidia-sdhci.txt b/Documentation/devicetree/bindings/mmc/nvidia,tegra20-sdhci.txt
index f77c3031607f..c6d7b11db9eb 100644
--- a/Documentation/devicetree/bindings/mmc/nvidia-sdhci.txt
+++ b/Documentation/devicetree/bindings/mmc/nvidia,tegra20-sdhci.txt
@@ -3,15 +3,13 @@
3This controller on Tegra family SoCs provides an interface for MMC, SD, 3This controller on Tegra family SoCs provides an interface for MMC, SD,
4and SDIO types of memory cards. 4and SDIO types of memory cards.
5 5
6This file documents differences between the core properties described
7by mmc.txt and the properties used by the sdhci-tegra driver.
8
6Required properties: 9Required properties:
7- compatible : Should be "nvidia,<chip>-sdhci" 10- compatible : Should be "nvidia,<chip>-sdhci"
8- reg : Should contain SD/MMC registers location and length
9- interrupts : Should contain SD/MMC interrupt
10- bus-width : Number of data lines, can be <1>, <4>, or <8>
11 11
12Optional properties: 12Optional properties:
13- cd-gpios : Specify GPIOs for card detection
14- wp-gpios : Specify GPIOs for write protection
15- power-gpios : Specify GPIOs for power control 13- power-gpios : Specify GPIOs for power control
16 14
17Example: 15Example:
diff --git a/Documentation/devicetree/bindings/mmc/sdhci-pxa.txt b/Documentation/devicetree/bindings/mmc/sdhci-pxa.txt
new file mode 100644
index 000000000000..dbe98a3c183a
--- /dev/null
+++ b/Documentation/devicetree/bindings/mmc/sdhci-pxa.txt
@@ -0,0 +1,21 @@
1* Marvell sdhci-pxa v2/v3 controller
2
3This file documents differences between the core properties in mmc.txt
4and the properties used by the sdhci-pxav2 and sdhci-pxav3 drivers.
5
6Required properties:
7- compatible: Should be "mrvl,pxav2-mmc" or "mrvl,pxav3-mmc".
8
9Optional properties:
10- mrvl,clk-delay-cycles: Specify a number of cycles to delay for tuning.
11
12Example:
13
14sdhci@d4280800 {
15 compatible = "mrvl,pxav3-mmc";
16 reg = <0xd4280800 0x800>;
17 bus-width = <8>;
18 interrupts = <27>;
19 non-removable;
20 mrvl,clk-delay-cycles = <31>;
21};
diff --git a/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt b/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
index 8a53958c9a9f..be76a23b34c4 100644
--- a/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
+++ b/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
@@ -3,21 +3,20 @@
3The Highspeed MMC Host Controller on TI OMAP family 3The Highspeed MMC Host Controller on TI OMAP family
4provides an interface for MMC, SD, and SDIO types of memory cards. 4provides an interface for MMC, SD, and SDIO types of memory cards.
5 5
6This file documents differences between the core properties described
7by mmc.txt and the properties used by the omap_hsmmc driver.
8
6Required properties: 9Required properties:
7- compatible: 10- compatible:
8 Should be "ti,omap2-hsmmc", for OMAP2 controllers 11 Should be "ti,omap2-hsmmc", for OMAP2 controllers
9 Should be "ti,omap3-hsmmc", for OMAP3 controllers 12 Should be "ti,omap3-hsmmc", for OMAP3 controllers
10 Should be "ti,omap4-hsmmc", for OMAP4 controllers 13 Should be "ti,omap4-hsmmc", for OMAP4 controllers
11- ti,hwmods: Must be "mmc<n>", n is controller instance starting 1 14- ti,hwmods: Must be "mmc<n>", n is controller instance starting 1
12- reg : should contain hsmmc registers location and length
13 15
14Optional properties: 16Optional properties:
15ti,dual-volt: boolean, supports dual voltage cards 17ti,dual-volt: boolean, supports dual voltage cards
16<supply-name>-supply: phandle to the regulator device tree node 18<supply-name>-supply: phandle to the regulator device tree node
17"supply-name" examples are "vmmc", "vmmc_aux" etc 19"supply-name" examples are "vmmc", "vmmc_aux" etc
18bus-width: Number of data lines, default assumed is 1 if the property is missing.
19cd-gpios: GPIOs for card detection
20wp-gpios: GPIOs for write protection
21ti,non-removable: non-removable slot (like eMMC) 20ti,non-removable: non-removable slot (like eMMC)
22ti,needs-special-reset: Requires a special softreset sequence 21ti,needs-special-reset: Requires a special softreset sequence
23 22
diff --git a/Documentation/devicetree/bindings/mtd/partition.txt b/Documentation/devicetree/bindings/mtd/partition.txt
index f114ce1657c2..6e1f61f1e789 100644
--- a/Documentation/devicetree/bindings/mtd/partition.txt
+++ b/Documentation/devicetree/bindings/mtd/partition.txt
@@ -35,4 +35,4 @@ flash@0 {
35 uimage@100000 { 35 uimage@100000 {
36 reg = <0x0100000 0x200000>; 36 reg = <0x0100000 0x200000>;
37 }; 37 };
38]; 38};
diff --git a/Documentation/devicetree/bindings/net/broadcom-bcm87xx.txt b/Documentation/devicetree/bindings/net/broadcom-bcm87xx.txt
new file mode 100644
index 000000000000..7c86d5e28a0e
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/broadcom-bcm87xx.txt
@@ -0,0 +1,29 @@
1The Broadcom BCM87XX devices are a family of 10G Ethernet PHYs. They
2have these bindings in addition to the standard PHY bindings.
3
4Compatible: Should contain "broadcom,bcm8706" or "broadcom,bcm8727" and
5 "ethernet-phy-ieee802.3-c45"
6
7Optional Properties:
8
9- broadcom,c45-reg-init : one of more sets of 4 cells. The first cell
10 is the MDIO Manageable Device (MMD) address, the second a register
11 address within the MMD, the third cell contains a mask to be ANDed
12 with the existing register value, and the fourth cell is ORed with
13 he result to yield the new register value. If the third cell has a
14 value of zero, no read of the existing value is performed.
15
16Example:
17
18 ethernet-phy@5 {
19 reg = <5>;
20 compatible = "broadcom,bcm8706", "ethernet-phy-ieee802.3-c45";
21 interrupt-parent = <&gpio>;
22 interrupts = <12 8>; /* Pin 12, active low */
23 /*
24 * Set PMD Digital Control Register for
25 * GPIO[1] Tx/Rx
26 * GPIO[0] R64 Sync Acquired
27 */
28 broadcom,c45-reg-init = <1 0xc808 0xff8f 0x70>;
29 };
diff --git a/Documentation/devicetree/bindings/net/can/fsl-flexcan.txt b/Documentation/devicetree/bindings/net/can/fsl-flexcan.txt
index f31b686d4556..8ff324eaa889 100644
--- a/Documentation/devicetree/bindings/net/can/fsl-flexcan.txt
+++ b/Documentation/devicetree/bindings/net/can/fsl-flexcan.txt
@@ -11,6 +11,9 @@ Required properties:
11 11
12- reg : Offset and length of the register set for this device 12- reg : Offset and length of the register set for this device
13- interrupts : Interrupt tuple for this device 13- interrupts : Interrupt tuple for this device
14
15Optional properties:
16
14- clock-frequency : The oscillator frequency driving the flexcan device 17- clock-frequency : The oscillator frequency driving the flexcan device
15 18
16Example: 19Example:
diff --git a/Documentation/devicetree/bindings/net/davinci_emac.txt b/Documentation/devicetree/bindings/net/davinci_emac.txt
new file mode 100644
index 000000000000..48b259e29e87
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/davinci_emac.txt
@@ -0,0 +1,41 @@
1* Texas Instruments Davinci EMAC
2
3This file provides information, what the device node
4for the davinci_emac interface contains.
5
6Required properties:
7- compatible: "ti,davinci-dm6467-emac";
8- reg: Offset and length of the register set for the device
9- ti,davinci-ctrl-reg-offset: offset to control register
10- ti,davinci-ctrl-mod-reg-offset: offset to control module register
11- ti,davinci-ctrl-ram-offset: offset to control module ram
12- ti,davinci-ctrl-ram-size: size of control module ram
13- ti,davinci-rmii-en: use RMII
14- ti,davinci-no-bd-ram: has the emac controller BD RAM
15- phy-handle: Contains a phandle to an Ethernet PHY.
16 if not, davinci_emac driver defaults to 100/FULL
17- interrupts: interrupt mapping for the davinci emac interrupts sources:
18 4 sources: <Receive Threshold Interrupt
19 Receive Interrupt
20 Transmit Interrupt
21 Miscellaneous Interrupt>
22
23Optional properties:
24- local-mac-address : 6 bytes, mac address
25
26Example (enbw_cmc board):
27 eth0: emac@1e20000 {
28 compatible = "ti,davinci-dm6467-emac";
29 reg = <0x220000 0x4000>;
30 ti,davinci-ctrl-reg-offset = <0x3000>;
31 ti,davinci-ctrl-mod-reg-offset = <0x2000>;
32 ti,davinci-ctrl-ram-offset = <0>;
33 ti,davinci-ctrl-ram-size = <0x2000>;
34 local-mac-address = [ 00 00 00 00 00 00 ];
35 interrupts = <33
36 34
37 35
38 36
39 >;
40 interrupt-parent = <&intc>;
41 };
diff --git a/Documentation/devicetree/bindings/net/fsl-fec.txt b/Documentation/devicetree/bindings/net/fsl-fec.txt
index 4616fc28ee86..d53639221403 100644
--- a/Documentation/devicetree/bindings/net/fsl-fec.txt
+++ b/Documentation/devicetree/bindings/net/fsl-fec.txt
@@ -7,10 +7,14 @@ Required properties:
7- phy-mode : String, operation mode of the PHY interface. 7- phy-mode : String, operation mode of the PHY interface.
8 Supported values are: "mii", "gmii", "sgmii", "tbi", "rmii", 8 Supported values are: "mii", "gmii", "sgmii", "tbi", "rmii",
9 "rgmii", "rgmii-id", "rgmii-rxid", "rgmii-txid", "rtbi", "smii". 9 "rgmii", "rgmii-id", "rgmii-rxid", "rgmii-txid", "rtbi", "smii".
10- phy-reset-gpios : Should specify the gpio for phy reset
11 10
12Optional properties: 11Optional properties:
13- local-mac-address : 6 bytes, mac address 12- local-mac-address : 6 bytes, mac address
13- phy-reset-gpios : Should specify the gpio for phy reset
14- phy-reset-duration : Reset duration in milliseconds. Should present
15 only if property "phy-reset-gpios" is available. Missing the property
16 will have the duration be 1 millisecond. Numbers greater than 1000 are
17 invalid and 1 millisecond will be used instead.
14 18
15Example: 19Example:
16 20
diff --git a/Documentation/devicetree/bindings/net/phy.txt b/Documentation/devicetree/bindings/net/phy.txt
index bb8c742eb8c5..7cd18fbfcf71 100644
--- a/Documentation/devicetree/bindings/net/phy.txt
+++ b/Documentation/devicetree/bindings/net/phy.txt
@@ -14,10 +14,20 @@ Required properties:
14 - linux,phandle : phandle for this node; likely referenced by an 14 - linux,phandle : phandle for this node; likely referenced by an
15 ethernet controller node. 15 ethernet controller node.
16 16
17Optional Properties:
18
19- compatible: Compatible list, may contain
20 "ethernet-phy-ieee802.3-c22" or "ethernet-phy-ieee802.3-c45" for
21 PHYs that implement IEEE802.3 clause 22 or IEEE802.3 clause 45
22 specifications. If neither of these are specified, the default is to
23 assume clause 22. The compatible list may also contain other
24 elements.
25
17Example: 26Example:
18 27
19ethernet-phy@0 { 28ethernet-phy@0 {
20 linux,phandle = <2452000> 29 compatible = "ethernet-phy-ieee802.3-c22";
30 linux,phandle = <2452000>;
21 interrupt-parent = <40000>; 31 interrupt-parent = <40000>;
22 interrupts = <35 1>; 32 interrupts = <35 1>;
23 reg = <0>; 33 reg = <0>;
diff --git a/Documentation/devicetree/bindings/net/stmmac.txt b/Documentation/devicetree/bindings/net/stmmac.txt
index 1f62623f8c3f..060bbf098ef3 100644
--- a/Documentation/devicetree/bindings/net/stmmac.txt
+++ b/Documentation/devicetree/bindings/net/stmmac.txt
@@ -1,7 +1,8 @@
1* STMicroelectronics 10/100/1000 Ethernet driver (GMAC) 1* STMicroelectronics 10/100/1000 Ethernet driver (GMAC)
2 2
3Required properties: 3Required properties:
4- compatible: Should be "st,spear600-gmac" 4- compatible: Should be "snps,dwmac-<ip_version>" "snps,dwmac"
5 For backwards compatibility: "st,spear600-gmac" is also supported.
5- reg: Address and length of the register set for the device 6- reg: Address and length of the register set for the device
6- interrupt-parent: Should be the phandle for the interrupt controller 7- interrupt-parent: Should be the phandle for the interrupt controller
7 that services interrupts for this device 8 that services interrupts for this device
diff --git a/Documentation/devicetree/bindings/nvec/nvec_nvidia.txt b/Documentation/devicetree/bindings/nvec/nvidia,nvec.txt
index 5aeee53ff9f4..5aeee53ff9f4 100644
--- a/Documentation/devicetree/bindings/nvec/nvec_nvidia.txt
+++ b/Documentation/devicetree/bindings/nvec/nvidia,nvec.txt
diff --git a/Documentation/devicetree/bindings/pinctrl/fsl,imx6q-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/fsl,imx6q-pinctrl.txt
index 82b43f915857..a4119f6422d9 100644
--- a/Documentation/devicetree/bindings/pinctrl/fsl,imx6q-pinctrl.txt
+++ b/Documentation/devicetree/bindings/pinctrl/fsl,imx6q-pinctrl.txt
@@ -1626,3 +1626,5 @@ MX6Q_PAD_SD2_DAT3__PCIE_CTRL_MUX_11 1587
1626MX6Q_PAD_SD2_DAT3__GPIO_1_12 1588 1626MX6Q_PAD_SD2_DAT3__GPIO_1_12 1588
1627MX6Q_PAD_SD2_DAT3__SJC_DONE 1589 1627MX6Q_PAD_SD2_DAT3__SJC_DONE 1589
1628MX6Q_PAD_SD2_DAT3__ANATOP_TESTO_3 1590 1628MX6Q_PAD_SD2_DAT3__ANATOP_TESTO_3 1590
1629MX6Q_PAD_ENET_RX_ER__ANATOP_USBOTG_ID 1591
1630MX6Q_PAD_GPIO_1__ANATOP_USBOTG_ID 1592
diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt b/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt
new file mode 100644
index 000000000000..5187f0dd8b28
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt
@@ -0,0 +1,93 @@
1One-register-per-pin type device tree based pinctrl driver
2
3Required properties:
4- compatible : "pinctrl-single"
5
6- reg : offset and length of the register set for the mux registers
7
8- pinctrl-single,register-width : pinmux register access width in bits
9
10- pinctrl-single,function-mask : mask of allowed pinmux function bits
11 in the pinmux register
12
13Optional properties:
14- pinctrl-single,function-off : function off mode for disabled state if
15 available and same for all registers; if not specified, disabling of
16 pin functions is ignored
17
18This driver assumes that there is only one register for each pin,
19and uses the common pinctrl bindings as specified in the pinctrl-bindings.txt
20document in this directory.
21
22The pin configuration nodes for pinctrl-single are specified as pinctrl
23register offset and value pairs using pinctrl-single,pins. Only the bits
24specified in pinctrl-single,function-mask are updated. For example, setting
25a pin for a device could be done with:
26
27 pinctrl-single,pins = <0xdc 0x118>;
28
29Where 0xdc is the offset from the pinctrl register base address for the
30device pinctrl register, and 0x118 contains the desired value of the
31pinctrl register. See the device example and static board pins example
32below for more information.
33
34Example:
35
36/* SoC common file */
37
38/* first controller instance for pins in core domain */
39pmx_core: pinmux@4a100040 {
40 compatible = "pinctrl-single";
41 reg = <0x4a100040 0x0196>;
42 #address-cells = <1>;
43 #size-cells = <0>;
44 pinctrl-single,register-width = <16>;
45 pinctrl-single,function-mask = <0xffff>;
46};
47
48/* second controller instance for pins in wkup domain */
49pmx_wkup: pinmux@4a31e040 {
50 compatible = "pinctrl-single;
51 reg = <0x4a31e040 0x0038>;
52 #address-cells = <1>;
53 #size-cells = <0>;
54 pinctrl-single,register-width = <16>;
55 pinctrl-single,function-mask = <0xffff>;
56};
57
58
59/* board specific .dts file */
60
61&pmx_core {
62
63 /*
64 * map all board specific static pins enabled by the pinctrl driver
65 * itself during the boot (or just set them up in the bootloader)
66 */
67 pinctrl-names = "default";
68 pinctrl-0 = <&board_pins>;
69
70 board_pins: pinmux_board_pins {
71 pinctrl-single,pins = <
72 0x6c 0xf
73 0x6e 0xf
74 0x70 0xf
75 0x72 0xf
76 >;
77 };
78
79 /* map uart2 pins */
80 uart2_pins: pinmux_uart2_pins {
81 pinctrl-single,pins = <
82 0xd8 0x118
83 0xda 0
84 0xdc 0x118
85 0xde 0
86 >;
87 };
88};
89
90&uart2 {
91 pinctrl-names = "default";
92 pinctrl-0 = <&uart2_pins>;
93};
diff --git a/Documentation/devicetree/bindings/regulator/fixed-regulator.txt b/Documentation/devicetree/bindings/regulator/fixed-regulator.txt
index 2f5b6b1ba15f..4fae41d54798 100644
--- a/Documentation/devicetree/bindings/regulator/fixed-regulator.txt
+++ b/Documentation/devicetree/bindings/regulator/fixed-regulator.txt
@@ -10,6 +10,7 @@ Optional properties:
10If this property is missing, the default assumed is Active low. 10If this property is missing, the default assumed is Active low.
11- gpio-open-drain: GPIO is open drain type. 11- gpio-open-drain: GPIO is open drain type.
12 If this property is missing then default assumption is false. 12 If this property is missing then default assumption is false.
13-vin-supply: Input supply name.
13 14
14Any property defined as part of the core regulator 15Any property defined as part of the core regulator
15binding, defined in regulator.txt, can also be used. 16binding, defined in regulator.txt, can also be used.
@@ -29,4 +30,5 @@ Example:
29 enable-active-high; 30 enable-active-high;
30 regulator-boot-on; 31 regulator-boot-on;
31 gpio-open-drain; 32 gpio-open-drain;
33 vin-supply = <&parent_reg>;
32 }; 34 };
diff --git a/Documentation/devicetree/bindings/regulator/regulator.txt b/Documentation/devicetree/bindings/regulator/regulator.txt
index 5b7a408acdaa..66ece3f87bbc 100644
--- a/Documentation/devicetree/bindings/regulator/regulator.txt
+++ b/Documentation/devicetree/bindings/regulator/regulator.txt
@@ -10,6 +10,11 @@ Optional properties:
10- regulator-always-on: boolean, regulator should never be disabled 10- regulator-always-on: boolean, regulator should never be disabled
11- regulator-boot-on: bootloader/firmware enabled regulator 11- regulator-boot-on: bootloader/firmware enabled regulator
12- <name>-supply: phandle to the parent supply/regulator node 12- <name>-supply: phandle to the parent supply/regulator node
13- regulator-ramp-delay: ramp delay for regulator(in uV/uS)
14- regulator-compatible: If a regulator chip contains multiple
15 regulators, and if the chip's binding contains a child node that
16 describes each regulator, then this property indicates which regulator
17 this child node is intended to configure.
13 18
14Example: 19Example:
15 20
diff --git a/Documentation/devicetree/bindings/regulator/tps65217.txt b/Documentation/devicetree/bindings/regulator/tps65217.txt
new file mode 100644
index 000000000000..0487e9675ba0
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/tps65217.txt
@@ -0,0 +1,91 @@
1TPS65217 family of regulators
2
3Required properties:
4- compatible: "ti,tps65217"
5- reg: I2C slave address
6- regulators: list of regulators provided by this controller, must be named
7 after their hardware counterparts: dcdc[1-3] and ldo[1-4]
8- regulators: This is the list of child nodes that specify the regulator
9 initialization data for defined regulators. Not all regulators for the given
10 device need to be present. The definition for each of these nodes is defined
11 using the standard binding for regulators found at
12 Documentation/devicetree/bindings/regulator/regulator.txt.
13
14 The valid names for regulators are:
15 tps65217: dcdc1, dcdc2, dcdc3, ldo1, ldo2, ldo3 and ldo4
16
17Each regulator is defined using the standard binding for regulators.
18
19Example:
20
21 tps: tps@24 {
22 compatible = "ti,tps65217";
23
24 regulators {
25 #address-cells = <1>;
26 #size-cells = <0>;
27
28 dcdc1_reg: regulator@0 {
29 reg = <0>;
30 regulator-compatible = "dcdc1";
31 regulator-min-microvolt = <900000>;
32 regulator-max-microvolt = <1800000>;
33 regulator-boot-on;
34 regulator-always-on;
35 };
36
37 dcdc2_reg: regulator@1 {
38 reg = <1>;
39 regulator-compatible = "dcdc2";
40 regulator-min-microvolt = <900000>;
41 regulator-max-microvolt = <3300000>;
42 regulator-boot-on;
43 regulator-always-on;
44 };
45
46 dcdc3_reg: regulator@2 {
47 reg = <2>;
48 regulator-compatible = "dcdc3";
49 regulator-min-microvolt = <900000>;
50 regulator-max-microvolt = <1500000>;
51 regulator-boot-on;
52 regulator-always-on;
53 };
54
55 ldo1_reg: regulator@3 {
56 reg = <3>;
57 regulator-compatible = "ldo1";
58 regulator-min-microvolt = <1000000>;
59 regulator-max-microvolt = <3300000>;
60 regulator-boot-on;
61 regulator-always-on;
62 };
63
64 ldo2_reg: regulator@4 {
65 reg = <4>;
66 regulator-compatible = "ldo2";
67 regulator-min-microvolt = <900000>;
68 regulator-max-microvolt = <3300000>;
69 regulator-boot-on;
70 regulator-always-on;
71 };
72
73 ldo3_reg: regulator@5 {
74 reg = <5>;
75 regulator-compatible = "ldo3";
76 regulator-min-microvolt = <1800000>;
77 regulator-max-microvolt = <3300000>;
78 regulator-boot-on;
79 regulator-always-on;
80 };
81
82 ldo4_reg: regulator@6 {
83 reg = <6>;
84 regulator-compatible = "ldo4";
85 regulator-min-microvolt = <1800000>;
86 regulator-max-microvolt = <3300000>;
87 regulator-boot-on;
88 regulator-always-on;
89 };
90 };
91 };
diff --git a/Documentation/devicetree/bindings/regulator/tps6586x.txt b/Documentation/devicetree/bindings/regulator/tps6586x.txt
index 0fcabaa3baa3..d156e1b5db12 100644
--- a/Documentation/devicetree/bindings/regulator/tps6586x.txt
+++ b/Documentation/devicetree/bindings/regulator/tps6586x.txt
@@ -6,8 +6,17 @@ Required properties:
6- interrupts: the interrupt outputs of the controller 6- interrupts: the interrupt outputs of the controller
7- #gpio-cells: number of cells to describe a GPIO 7- #gpio-cells: number of cells to describe a GPIO
8- gpio-controller: mark the device as a GPIO controller 8- gpio-controller: mark the device as a GPIO controller
9- regulators: list of regulators provided by this controller, must be named 9- regulators: list of regulators provided by this controller, must have
10 after their hardware counterparts: sm[0-2], ldo[0-9] and ldo_rtc 10 property "regulator-compatible" to match their hardware counterparts:
11 sm[0-2], ldo[0-9] and ldo_rtc
12- sm0-supply: The input supply for the SM0.
13- sm1-supply: The input supply for the SM1.
14- sm2-supply: The input supply for the SM2.
15- vinldo01-supply: The input supply for the LDO1 and LDO2
16- vinldo23-supply: The input supply for the LDO2 and LDO3
17- vinldo4-supply: The input supply for the LDO4
18- vinldo678-supply: The input supply for the LDO6, LDO7 and LDO8
19- vinldo9-supply: The input supply for the LDO9
11 20
12Each regulator is defined using the standard binding for regulators. 21Each regulator is defined using the standard binding for regulators.
13 22
@@ -21,75 +30,113 @@ Example:
21 #gpio-cells = <2>; 30 #gpio-cells = <2>;
22 gpio-controller; 31 gpio-controller;
23 32
33 sm0-supply = <&some_reg>;
34 sm1-supply = <&some_reg>;
35 sm2-supply = <&some_reg>;
36 vinldo01-supply = <...>;
37 vinldo23-supply = <...>;
38 vinldo4-supply = <...>;
39 vinldo678-supply = <...>;
40 vinldo9-supply = <...>;
41
24 regulators { 42 regulators {
25 sm0_reg: sm0 { 43 #address-cells = <1>;
44 #size-cells = <0>;
45
46 sm0_reg: regulator@0 {
47 reg = <0>;
48 regulator-compatible = "sm0";
26 regulator-min-microvolt = < 725000>; 49 regulator-min-microvolt = < 725000>;
27 regulator-max-microvolt = <1500000>; 50 regulator-max-microvolt = <1500000>;
28 regulator-boot-on; 51 regulator-boot-on;
29 regulator-always-on; 52 regulator-always-on;
30 }; 53 };
31 54
32 sm1_reg: sm1 { 55 sm1_reg: regulator@1 {
56 reg = <1>;
57 regulator-compatible = "sm1";
33 regulator-min-microvolt = < 725000>; 58 regulator-min-microvolt = < 725000>;
34 regulator-max-microvolt = <1500000>; 59 regulator-max-microvolt = <1500000>;
35 regulator-boot-on; 60 regulator-boot-on;
36 regulator-always-on; 61 regulator-always-on;
37 }; 62 };
38 63
39 sm2_reg: sm2 { 64 sm2_reg: regulator@2 {
65 reg = <2>;
66 regulator-compatible = "sm2";
40 regulator-min-microvolt = <3000000>; 67 regulator-min-microvolt = <3000000>;
41 regulator-max-microvolt = <4550000>; 68 regulator-max-microvolt = <4550000>;
42 regulator-boot-on; 69 regulator-boot-on;
43 regulator-always-on; 70 regulator-always-on;
44 }; 71 };
45 72
46 ldo0_reg: ldo0 { 73 ldo0_reg: regulator@3 {
74 reg = <3>;
75 regulator-compatible = "ldo0";
47 regulator-name = "PCIE CLK"; 76 regulator-name = "PCIE CLK";
48 regulator-min-microvolt = <3300000>; 77 regulator-min-microvolt = <3300000>;
49 regulator-max-microvolt = <3300000>; 78 regulator-max-microvolt = <3300000>;
50 }; 79 };
51 80
52 ldo1_reg: ldo1 { 81 ldo1_reg: regulator@4 {
82 reg = <4>;
83 regulator-compatible = "ldo1";
53 regulator-min-microvolt = < 725000>; 84 regulator-min-microvolt = < 725000>;
54 regulator-max-microvolt = <1500000>; 85 regulator-max-microvolt = <1500000>;
55 }; 86 };
56 87
57 ldo2_reg: ldo2 { 88 ldo2_reg: regulator@5 {
89 reg = <5>;
90 regulator-compatible = "ldo2";
58 regulator-min-microvolt = < 725000>; 91 regulator-min-microvolt = < 725000>;
59 regulator-max-microvolt = <1500000>; 92 regulator-max-microvolt = <1500000>;
60 }; 93 };
61 94
62 ldo3_reg: ldo3 { 95 ldo3_reg: regulator@6 {
96 reg = <6>;
97 regulator-compatible = "ldo3";
63 regulator-min-microvolt = <1250000>; 98 regulator-min-microvolt = <1250000>;
64 regulator-max-microvolt = <3300000>; 99 regulator-max-microvolt = <3300000>;
65 }; 100 };
66 101
67 ldo4_reg: ldo4 { 102 ldo4_reg: regulator@7 {
103 reg = <7>;
104 regulator-compatible = "ldo4";
68 regulator-min-microvolt = <1700000>; 105 regulator-min-microvolt = <1700000>;
69 regulator-max-microvolt = <2475000>; 106 regulator-max-microvolt = <2475000>;
70 }; 107 };
71 108
72 ldo5_reg: ldo5 { 109 ldo5_reg: regulator@8 {
110 reg = <8>;
111 regulator-compatible = "ldo5";
73 regulator-min-microvolt = <1250000>; 112 regulator-min-microvolt = <1250000>;
74 regulator-max-microvolt = <3300000>; 113 regulator-max-microvolt = <3300000>;
75 }; 114 };
76 115
77 ldo6_reg: ldo6 { 116 ldo6_reg: regulator@9 {
117 reg = <9>;
118 regulator-compatible = "ldo6";
78 regulator-min-microvolt = <1250000>; 119 regulator-min-microvolt = <1250000>;
79 regulator-max-microvolt = <3300000>; 120 regulator-max-microvolt = <3300000>;
80 }; 121 };
81 122
82 ldo7_reg: ldo7 { 123 ldo7_reg: regulator@10 {
124 reg = <10>;
125 regulator-compatible = "ldo7";
83 regulator-min-microvolt = <1250000>; 126 regulator-min-microvolt = <1250000>;
84 regulator-max-microvolt = <3300000>; 127 regulator-max-microvolt = <3300000>;
85 }; 128 };
86 129
87 ldo8_reg: ldo8 { 130 ldo8_reg: regulator@11 {
131 reg = <11>;
132 regulator-compatible = "ldo8";
88 regulator-min-microvolt = <1250000>; 133 regulator-min-microvolt = <1250000>;
89 regulator-max-microvolt = <3300000>; 134 regulator-max-microvolt = <3300000>;
90 }; 135 };
91 136
92 ldo9_reg: ldo9 { 137 ldo9_reg: regulator@12 {
138 reg = <12>;
139 regulator-compatible = "ldo9";
93 regulator-min-microvolt = <1250000>; 140 regulator-min-microvolt = <1250000>;
94 regulator-max-microvolt = <3300000>; 141 regulator-max-microvolt = <3300000>;
95 }; 142 };
diff --git a/Documentation/devicetree/bindings/regulator/twl-regulator.txt b/Documentation/devicetree/bindings/regulator/twl-regulator.txt
index 0c3395d55ac1..658749b90b97 100644
--- a/Documentation/devicetree/bindings/regulator/twl-regulator.txt
+++ b/Documentation/devicetree/bindings/regulator/twl-regulator.txt
@@ -15,7 +15,6 @@ For twl6030 regulators/LDOs
15 - "ti,twl6030-vusb" for VUSB LDO 15 - "ti,twl6030-vusb" for VUSB LDO
16 - "ti,twl6030-v1v8" for V1V8 LDO 16 - "ti,twl6030-v1v8" for V1V8 LDO
17 - "ti,twl6030-v2v1" for V2V1 LDO 17 - "ti,twl6030-v2v1" for V2V1 LDO
18 - "ti,twl6030-clk32kg" for CLK32KG RESOURCE
19 - "ti,twl6030-vdd1" for VDD1 SMPS 18 - "ti,twl6030-vdd1" for VDD1 SMPS
20 - "ti,twl6030-vdd2" for VDD2 SMPS 19 - "ti,twl6030-vdd2" for VDD2 SMPS
21 - "ti,twl6030-vdd3" for VDD3 SMPS 20 - "ti,twl6030-vdd3" for VDD3 SMPS
diff --git a/Documentation/devicetree/bindings/rtc/dw-apb.txt b/Documentation/devicetree/bindings/rtc/dw-apb.txt
new file mode 100644
index 000000000000..93e2b0f048e6
--- /dev/null
+++ b/Documentation/devicetree/bindings/rtc/dw-apb.txt
@@ -0,0 +1,25 @@
1* Designware APB timer
2
3Required properties:
4- compatible: "snps,dw-apb-timer-sp" or "snps,dw-apb-timer-osc"
5- reg: physical base address of the controller and length of memory mapped
6 region.
7- interrupts: IRQ line for the timer.
8- clock-frequency: The frequency in HZ of the timer.
9- clock-freq: For backwards compatibility with picoxcell
10
11Example:
12
13 timer1: timer@ffc09000 {
14 compatible = "snps,dw-apb-timer-sp";
15 interrupts = <0 168 4>;
16 clock-frequency = <200000000>;
17 reg = <0xffc09000 0x1000>;
18 };
19
20 timer2: timer@ffd00000 {
21 compatible = "snps,dw-apb-timer-osc";
22 interrupts = <0 169 4>;
23 clock-frequency = <200000000>;
24 reg = <0xffd00000 0x1000>;
25 };
diff --git a/Documentation/devicetree/bindings/rtc/stmp3xxx-rtc.txt b/Documentation/devicetree/bindings/rtc/stmp3xxx-rtc.txt
new file mode 100644
index 000000000000..b800070fe6e9
--- /dev/null
+++ b/Documentation/devicetree/bindings/rtc/stmp3xxx-rtc.txt
@@ -0,0 +1,16 @@
1* STMP3xxx/i.MX28 Time Clock controller
2
3Required properties:
4- compatible: should be one of the following.
5 * "fsl,stmp3xxx-rtc"
6- reg: physical base address of the controller and length of memory mapped
7 region.
8- interrupts: rtc alarm interrupt
9
10Example:
11
12rtc@80056000 {
13 compatible = "fsl,imx28-rtc", "fsl,stmp3xxx-rtc";
14 reg = <0x80056000 2000>;
15 interrupts = <29>;
16};
diff --git a/Documentation/devicetree/bindings/sound/tegra-audio-alc5632.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-alc5632.txt
index b77a97c9101e..b77a97c9101e 100644
--- a/Documentation/devicetree/bindings/sound/tegra-audio-alc5632.txt
+++ b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-alc5632.txt
diff --git a/Documentation/devicetree/bindings/sound/tegra-audio-trimslice.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-trimslice.txt
index 04b14cfb1f16..04b14cfb1f16 100644
--- a/Documentation/devicetree/bindings/sound/tegra-audio-trimslice.txt
+++ b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-trimslice.txt
diff --git a/Documentation/devicetree/bindings/sound/tegra-audio-wm8753.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8753.txt
index c4dd39ce6165..c4dd39ce6165 100644
--- a/Documentation/devicetree/bindings/sound/tegra-audio-wm8753.txt
+++ b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8753.txt
diff --git a/Documentation/devicetree/bindings/sound/tegra-audio-wm8903.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8903.txt
index d5b0da8bf1d8..d5b0da8bf1d8 100644
--- a/Documentation/devicetree/bindings/sound/tegra-audio-wm8903.txt
+++ b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8903.txt
diff --git a/Documentation/devicetree/bindings/sound/tegra20-das.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra20-das.txt
index 6de3a7ee4efb..6de3a7ee4efb 100644
--- a/Documentation/devicetree/bindings/sound/tegra20-das.txt
+++ b/Documentation/devicetree/bindings/sound/nvidia,tegra20-das.txt
diff --git a/Documentation/devicetree/bindings/sound/tegra20-i2s.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra20-i2s.txt
index 0df2b5c816e3..0df2b5c816e3 100644
--- a/Documentation/devicetree/bindings/sound/tegra20-i2s.txt
+++ b/Documentation/devicetree/bindings/sound/nvidia,tegra20-i2s.txt
diff --git a/Documentation/devicetree/bindings/spi/spi_nvidia.txt b/Documentation/devicetree/bindings/spi/nvidia,tegra20-spi.txt
index 6b9e51896693..6b9e51896693 100644
--- a/Documentation/devicetree/bindings/spi/spi_nvidia.txt
+++ b/Documentation/devicetree/bindings/spi/nvidia,tegra20-spi.txt
diff --git a/Documentation/devicetree/bindings/spi/spi-samsung.txt b/Documentation/devicetree/bindings/spi/spi-samsung.txt
new file mode 100644
index 000000000000..a15ffeddfba4
--- /dev/null
+++ b/Documentation/devicetree/bindings/spi/spi-samsung.txt
@@ -0,0 +1,116 @@
1* Samsung SPI Controller
2
3The Samsung SPI controller is used to interface with various devices such as flash
4and display controllers using the SPI communication interface.
5
6Required SoC Specific Properties:
7
8- compatible: should be one of the following.
9 - samsung,s3c2443-spi: for s3c2443, s3c2416 and s3c2450 platforms
10 - samsung,s3c6410-spi: for s3c6410 platforms
11 - samsung,s5p6440-spi: for s5p6440 and s5p6450 platforms
12 - samsung,s5pv210-spi: for s5pv210 and s5pc110 platforms
13 - samsung,exynos4210-spi: for exynos4 and exynos5 platforms
14
15- reg: physical base address of the controller and length of memory mapped
16 region.
17
18- interrupts: The interrupt number to the cpu. The interrupt specifier format
19 depends on the interrupt controller.
20
21[PRELIMINARY: the dma channel allocation will change once there are
22official DMA bindings]
23
24- tx-dma-channel: The dma channel specifier for tx operations. The format of
25 the dma specifier depends on the dma controller.
26
27- rx-dma-channel: The dma channel specifier for rx operations. The format of
28 the dma specifier depends on the dma controller.
29
30Required Board Specific Properties:
31
32- #address-cells: should be 1.
33- #size-cells: should be 0.
34- gpios: The gpio specifier for clock, mosi and miso interface lines (in the
35 order specified). The format of the gpio specifier depends on the gpio
36 controller.
37
38Optional Board Specific Properties:
39
40- samsung,spi-src-clk: If the spi controller includes a internal clock mux to
41 select the clock source for the spi bus clock, this property can be used to
42 indicate the clock to be used for driving the spi bus clock. If not specified,
43 the clock number 0 is used as default.
44
45- num-cs: Specifies the number of chip select lines supported. If
46 not specified, the default number of chip select lines is set to 1.
47
48SPI Controller specific data in SPI slave nodes:
49
50- The spi slave nodes should provide the following information which is required
51 by the spi controller.
52
53 - cs-gpio: A gpio specifier that specifies the gpio line used as
54 the slave select line by the spi controller. The format of the gpio
55 specifier depends on the gpio controller.
56
57 - samsung,spi-feedback-delay: The sampling phase shift to be applied on the
58 miso line (to account for any lag in the miso line). The following are the
59 valid values.
60
61 - 0: No phase shift.
62 - 1: 90 degree phase shift sampling.
63 - 2: 180 degree phase shift sampling.
64 - 3: 270 degree phase shift sampling.
65
66Aliases:
67
68- All the SPI controller nodes should be represented in the aliases node using
69 the following format 'spi{n}' where n is a unique number for the alias.
70
71
72Example:
73
74- SoC Specific Portion:
75
76 spi_0: spi@12d20000 {
77 compatible = "samsung,exynos4210-spi";
78 reg = <0x12d20000 0x100>;
79 interrupts = <0 66 0>;
80 tx-dma-channel = <&pdma0 5>;
81 rx-dma-channel = <&pdma0 4>;
82 };
83
84- Board Specific Portion:
85
86 spi_0: spi@12d20000 {
87 #address-cells = <1>;
88 #size-cells = <0>;
89 gpios = <&gpa2 4 2 3 0>,
90 <&gpa2 6 2 3 0>,
91 <&gpa2 7 2 3 0>;
92
93 w25q80bw@0 {
94 #address-cells = <1>;
95 #size-cells = <1>;
96 compatible = "w25x80";
97 reg = <0>;
98 spi-max-frequency = <10000>;
99
100 controller-data {
101 cs-gpio = <&gpa2 5 1 0 3>;
102 samsung,spi-feedback-delay = <0>;
103 };
104
105 partition@0 {
106 label = "U-Boot";
107 reg = <0x0 0x40000>;
108 read-only;
109 };
110
111 partition@40000 {
112 label = "Kernel";
113 reg = <0x40000 0xc0000>;
114 };
115 };
116 };
diff --git a/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt b/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
new file mode 100644
index 000000000000..2ee903fad25c
--- /dev/null
+++ b/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
@@ -0,0 +1,27 @@
1* Freescale MXS Application UART (AUART)
2
3Required properties:
4- compatible : Should be "fsl,<soc>-auart". The supported SoCs include
5 imx23 and imx28.
6- reg : Address and length of the register set for the device
7- interrupts : Should contain the auart interrupt numbers
8
9Example:
10auart0: serial@8006a000 {
11 compatible = "fsl,imx28-auart", "fsl,imx23-auart";
12 reg = <0x8006a000 0x2000>;
13 interrupts = <112 70 71>;
14};
15
16Note: Each auart port should have an alias correctly numbered in "aliases"
17node.
18
19Example:
20
21aliases {
22 serial0 = &auart0;
23 serial1 = &auart1;
24 serial2 = &auart2;
25 serial3 = &auart3;
26 serial4 = &auart4;
27};
diff --git a/Documentation/devicetree/bindings/usb/tegra-usb.txt b/Documentation/devicetree/bindings/usb/nvidia,tegra20-ehci.txt
index e9b005dc7625..e9b005dc7625 100644
--- a/Documentation/devicetree/bindings/usb/tegra-usb.txt
+++ b/Documentation/devicetree/bindings/usb/nvidia,tegra20-ehci.txt
diff --git a/Documentation/devicetree/bindings/watchdog/omap-wdt.txt b/Documentation/devicetree/bindings/watchdog/omap-wdt.txt
new file mode 100644
index 000000000000..c227970671ea
--- /dev/null
+++ b/Documentation/devicetree/bindings/watchdog/omap-wdt.txt
@@ -0,0 +1,14 @@
1TI Watchdog Timer (WDT) Controller for OMAP
2
3Required properties:
4compatible:
5- "ti,omap3-wdt" for OMAP3
6- "ti,omap4-wdt" for OMAP4
7- ti,hwmods: Name of the hwmod associated to the WDT
8
9Examples:
10
11wdt2: wdt@4a314000 {
12 compatible = "ti,omap4-wdt", "ti,omap3-wdt";
13 ti,hwmods = "wd_timer2";
14};
diff --git a/Documentation/devicetree/usage-model.txt b/Documentation/devicetree/usage-model.txt
index c5a80099b71c..dca90fe22a90 100644
--- a/Documentation/devicetree/usage-model.txt
+++ b/Documentation/devicetree/usage-model.txt
@@ -312,7 +312,7 @@ device tree for the NVIDIA Tegra board.
312 }; 312 };
313}; 313};
314 314
315At .machine_init() time, Tegra board support code will need to look at 315At .init_machine() time, Tegra board support code will need to look at
316this DT and decide which nodes to create platform_devices for. 316this DT and decide which nodes to create platform_devices for.
317However, looking at the tree, it is not immediately obvious what kind 317However, looking at the tree, it is not immediately obvious what kind
318of device each node represents, or even if a node represents a device 318of device each node represents, or even if a node represents a device
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt
index 56000b33340b..61d1a89baeaf 100644
--- a/Documentation/feature-removal-schedule.txt
+++ b/Documentation/feature-removal-schedule.txt
@@ -249,15 +249,6 @@ Who: Ravikiran Thirumalai <kiran@scalex86.org>
249 249
250--------------------------- 250---------------------------
251 251
252What: Code that is now under CONFIG_WIRELESS_EXT_SYSFS
253 (in net/core/net-sysfs.c)
254When: 3.5
255Why: Over 1K .text/.data size reduction, data is available in other
256 ways (ioctls)
257Who: Johannes Berg <johannes@sipsolutions.net>
258
259---------------------------
260
261What: sysfs ui for changing p4-clockmod parameters 252What: sysfs ui for changing p4-clockmod parameters
262When: September 2009 253When: September 2009
263Why: See commits 129f8ae9b1b5be94517da76009ea956e89104ce8 and 254Why: See commits 129f8ae9b1b5be94517da76009ea956e89104ce8 and
@@ -414,21 +405,6 @@ Who: Jean Delvare <khali@linux-fr.org>
414 405
415---------------------------- 406----------------------------
416 407
417What: xt_connlimit rev 0
418When: 2012
419Who: Jan Engelhardt <jengelh@medozas.de>
420Files: net/netfilter/xt_connlimit.c
421
422----------------------------
423
424What: ipt_addrtype match include file
425When: 2012
426Why: superseded by xt_addrtype
427Who: Florian Westphal <fw@strlen.de>
428Files: include/linux/netfilter_ipv4/ipt_addrtype.h
429
430----------------------------
431
432What: i2c_driver.attach_adapter 408What: i2c_driver.attach_adapter
433 i2c_driver.detach_adapter 409 i2c_driver.detach_adapter
434When: September 2011 410When: September 2011
@@ -449,6 +425,19 @@ Who: Hans Verkuil <hans.verkuil@cisco.com>
449 425
450---------------------------- 426----------------------------
451 427
428What: CONFIG_CFG80211_WEXT
429When: as soon as distributions ship new wireless tools, ie. wpa_supplicant 1.0
430 and NetworkManager/connman/etc. that are able to use nl80211
431Why: Wireless extensions are deprecated, and userland tools are moving to
432 using nl80211. New drivers are no longer using wireless extensions,
433 and while there might still be old drivers, both new drivers and new
434 userland no longer needs them and they can't be used for an feature
435 developed in the past couple of years. As such, compatibility with
436 wireless extensions in new drivers will be removed.
437Who: Johannes Berg <johannes@sipsolutions.net>
438
439----------------------------
440
452What: g_file_storage driver 441What: g_file_storage driver
453When: 3.8 442When: 3.8
454Why: This driver has been superseded by g_mass_storage. 443Why: This driver has been superseded by g_mass_storage.
@@ -589,6 +578,13 @@ Why: Remount currently allows changing bound subsystems and
589 578
590---------------------------- 579----------------------------
591 580
581What: xt_recent rev 0
582When: 2013
583Who: Pablo Neira Ayuso <pablo@netfilter.org>
584Files: net/netfilter/xt_recent.c
585
586----------------------------
587
592What: KVM debugfs statistics 588What: KVM debugfs statistics
593When: 2013 589When: 2013
594Why: KVM tracepoints provide mostly equivalent information in a much more 590Why: KVM tracepoints provide mostly equivalent information in a much more
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking
index 8e2da1e06e3b..e0cce2a5f820 100644
--- a/Documentation/filesystems/Locking
+++ b/Documentation/filesystems/Locking
@@ -9,7 +9,7 @@ be able to use diff(1).
9 9
10--------------------------- dentry_operations -------------------------- 10--------------------------- dentry_operations --------------------------
11prototypes: 11prototypes:
12 int (*d_revalidate)(struct dentry *, struct nameidata *); 12 int (*d_revalidate)(struct dentry *, unsigned int);
13 int (*d_hash)(const struct dentry *, const struct inode *, 13 int (*d_hash)(const struct dentry *, const struct inode *,
14 struct qstr *); 14 struct qstr *);
15 int (*d_compare)(const struct dentry *, const struct inode *, 15 int (*d_compare)(const struct dentry *, const struct inode *,
@@ -37,9 +37,8 @@ d_manage: no no yes (ref-walk) maybe
37 37
38--------------------------- inode_operations --------------------------- 38--------------------------- inode_operations ---------------------------
39prototypes: 39prototypes:
40 int (*create) (struct inode *,struct dentry *,umode_t, struct nameidata *); 40 int (*create) (struct inode *,struct dentry *,umode_t, bool);
41 struct dentry * (*lookup) (struct inode *,struct dentry *, struct nameid 41 struct dentry * (*lookup) (struct inode *,struct dentry *, unsigned int);
42ata *);
43 int (*link) (struct dentry *,struct inode *,struct dentry *); 42 int (*link) (struct dentry *,struct inode *,struct dentry *);
44 int (*unlink) (struct inode *,struct dentry *); 43 int (*unlink) (struct inode *,struct dentry *);
45 int (*symlink) (struct inode *,struct dentry *,const char *); 44 int (*symlink) (struct inode *,struct dentry *,const char *);
@@ -62,6 +61,9 @@ ata *);
62 int (*removexattr) (struct dentry *, const char *); 61 int (*removexattr) (struct dentry *, const char *);
63 int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64 start, u64 len); 62 int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64 start, u64 len);
64 void (*update_time)(struct inode *, struct timespec *, int); 63 void (*update_time)(struct inode *, struct timespec *, int);
64 int (*atomic_open)(struct inode *, struct dentry *,
65 struct file *, unsigned open_flag,
66 umode_t create_mode, int *opened);
65 67
66locking rules: 68locking rules:
67 all may block 69 all may block
@@ -89,6 +91,7 @@ listxattr: no
89removexattr: yes 91removexattr: yes
90fiemap: no 92fiemap: no
91update_time: no 93update_time: no
94atomic_open: yes
92 95
93 Additionally, ->rmdir(), ->unlink() and ->rename() have ->i_mutex on 96 Additionally, ->rmdir(), ->unlink() and ->rename() have ->i_mutex on
94victim. 97victim.
diff --git a/Documentation/filesystems/porting b/Documentation/filesystems/porting
index 8c91d1057d9a..2bef2b3843d1 100644
--- a/Documentation/filesystems/porting
+++ b/Documentation/filesystems/porting
@@ -355,12 +355,10 @@ protects *all* the dcache state of a given dentry.
355via rcu-walk path walk (basically, if the file can have had a path name in the 355via rcu-walk path walk (basically, if the file can have had a path name in the
356vfs namespace). 356vfs namespace).
357 357
358 i_dentry and i_rcu share storage in a union, and the vfs expects 358 Even though i_dentry and i_rcu share storage in a union, we will
359i_dentry to be reinitialized before it is freed, so an: 359initialize the former in inode_init_always(), so just leave it alone in
360 360the callback. It used to be necessary to clean it there, but not anymore
361 INIT_LIST_HEAD(&inode->i_dentry); 361(starting at 3.2).
362
363must be done in the RCU callback.
364 362
365-- 363--
366[recommended] 364[recommended]
@@ -433,3 +431,14 @@ release it yourself.
433 d_alloc_root() is gone, along with a lot of bugs caused by code 431 d_alloc_root() is gone, along with a lot of bugs caused by code
434misusing it. Replacement: d_make_root(inode). The difference is, 432misusing it. Replacement: d_make_root(inode). The difference is,
435d_make_root() drops the reference to inode if dentry allocation fails. 433d_make_root() drops the reference to inode if dentry allocation fails.
434
435--
436[mandatory]
437 The witch is dead! Well, 2/3 of it, anyway. ->d_revalidate() and
438->lookup() do *not* take struct nameidata anymore; just the flags.
439--
440[mandatory]
441 ->create() doesn't take struct nameidata *; unlike the previous
442two, it gets "is it an O_EXCL or equivalent?" boolean argument. Note that
443local filesystems can ignore tha argument - they are guaranteed that the
444object doesn't exist. It's remote/distributed ones that might care...
diff --git a/Documentation/filesystems/vfs.txt b/Documentation/filesystems/vfs.txt
index efd23f481704..aa754e01464e 100644
--- a/Documentation/filesystems/vfs.txt
+++ b/Documentation/filesystems/vfs.txt
@@ -341,8 +341,8 @@ This describes how the VFS can manipulate an inode in your
341filesystem. As of kernel 2.6.22, the following members are defined: 341filesystem. As of kernel 2.6.22, the following members are defined:
342 342
343struct inode_operations { 343struct inode_operations {
344 int (*create) (struct inode *,struct dentry *, umode_t, struct nameidata *); 344 int (*create) (struct inode *,struct dentry *, umode_t, bool);
345 struct dentry * (*lookup) (struct inode *,struct dentry *, struct nameidata *); 345 struct dentry * (*lookup) (struct inode *,struct dentry *, unsigned int);
346 int (*link) (struct dentry *,struct inode *,struct dentry *); 346 int (*link) (struct dentry *,struct inode *,struct dentry *);
347 int (*unlink) (struct inode *,struct dentry *); 347 int (*unlink) (struct inode *,struct dentry *);
348 int (*symlink) (struct inode *,struct dentry *,const char *); 348 int (*symlink) (struct inode *,struct dentry *,const char *);
@@ -364,6 +364,9 @@ struct inode_operations {
364 ssize_t (*listxattr) (struct dentry *, char *, size_t); 364 ssize_t (*listxattr) (struct dentry *, char *, size_t);
365 int (*removexattr) (struct dentry *, const char *); 365 int (*removexattr) (struct dentry *, const char *);
366 void (*update_time)(struct inode *, struct timespec *, int); 366 void (*update_time)(struct inode *, struct timespec *, int);
367 int (*atomic_open)(struct inode *, struct dentry *,
368 struct file *, unsigned open_flag,
369 umode_t create_mode, int *opened);
367}; 370};
368 371
369Again, all methods are called without any locks being held, unless 372Again, all methods are called without any locks being held, unless
@@ -476,6 +479,14 @@ otherwise noted.
476 an inode. If this is not defined the VFS will update the inode itself 479 an inode. If this is not defined the VFS will update the inode itself
477 and call mark_inode_dirty_sync. 480 and call mark_inode_dirty_sync.
478 481
482 atomic_open: called on the last component of an open. Using this optional
483 method the filesystem can look up, possibly create and open the file in
484 one atomic operation. If it cannot perform this (e.g. the file type
485 turned out to be wrong) it may signal this by returning 1 instead of
486 usual 0 or -ve . This method is only called if the last
487 component is negative or needs lookup. Cached positive dentries are
488 still handled by f_op->open().
489
479The Address Space Object 490The Address Space Object
480======================== 491========================
481 492
@@ -891,7 +902,7 @@ the VFS uses a default. As of kernel 2.6.22, the following members are
891defined: 902defined:
892 903
893struct dentry_operations { 904struct dentry_operations {
894 int (*d_revalidate)(struct dentry *, struct nameidata *); 905 int (*d_revalidate)(struct dentry *, unsigned int);
895 int (*d_hash)(const struct dentry *, const struct inode *, 906 int (*d_hash)(const struct dentry *, const struct inode *,
896 struct qstr *); 907 struct qstr *);
897 int (*d_compare)(const struct dentry *, const struct inode *, 908 int (*d_compare)(const struct dentry *, const struct inode *,
@@ -910,11 +921,11 @@ struct dentry_operations {
910 dcache. Most filesystems leave this as NULL, because all their 921 dcache. Most filesystems leave this as NULL, because all their
911 dentries in the dcache are valid 922 dentries in the dcache are valid
912 923
913 d_revalidate may be called in rcu-walk mode (nd->flags & LOOKUP_RCU). 924 d_revalidate may be called in rcu-walk mode (flags & LOOKUP_RCU).
914 If in rcu-walk mode, the filesystem must revalidate the dentry without 925 If in rcu-walk mode, the filesystem must revalidate the dentry without
915 blocking or storing to the dentry, d_parent and d_inode should not be 926 blocking or storing to the dentry, d_parent and d_inode should not be
916 used without care (because they can go NULL), instead nd->inode should 927 used without care (because they can change and, in d_inode case, even
917 be used. 928 become NULL under us).
918 929
919 If a situation is encountered that rcu-walk cannot handle, return 930 If a situation is encountered that rcu-walk cannot handle, return
920 -ECHILD and it will be called again in ref-walk mode. 931 -ECHILD and it will be called again in ref-walk mode.
diff --git a/Documentation/hid/uhid.txt b/Documentation/hid/uhid.txt
new file mode 100644
index 000000000000..4627c4241ece
--- /dev/null
+++ b/Documentation/hid/uhid.txt
@@ -0,0 +1,169 @@
1 UHID - User-space I/O driver support for HID subsystem
2 ========================================================
3
4The HID subsystem needs two kinds of drivers. In this document we call them:
5
6 1. The "HID I/O Driver" is the driver that performs raw data I/O to the
7 low-level device. Internally, they register an hid_ll_driver structure with
8 the HID core. They perform device setup, read raw data from the device and
9 push it into the HID subsystem and they provide a callback so the HID
10 subsystem can send data to the device.
11
12 2. The "HID Device Driver" is the driver that parses HID reports and reacts on
13 them. There are generic drivers like "generic-usb" and "generic-bluetooth"
14 which adhere to the HID specification and provide the standardizes features.
15 But there may be special drivers and quirks for each non-standard device out
16 there. Internally, they use the hid_driver structure.
17
18Historically, the USB stack was the first subsystem to provide an HID I/O
19Driver. However, other standards like Bluetooth have adopted the HID specs and
20may provide HID I/O Drivers, too. The UHID driver allows to implement HID I/O
21Drivers in user-space and feed the data into the kernel HID-subsystem.
22
23This allows user-space to operate on the same level as USB-HID, Bluetooth-HID
24and similar. It does not provide a way to write HID Device Drivers, though. Use
25hidraw for this purpose.
26
27There is an example user-space application in ./samples/uhid/uhid-example.c
28
29The UHID API
30------------
31
32UHID is accessed through a character misc-device. The minor-number is allocated
33dynamically so you need to rely on udev (or similar) to create the device node.
34This is /dev/uhid by default.
35
36If a new device is detected by your HID I/O Driver and you want to register this
37device with the HID subsystem, then you need to open /dev/uhid once for each
38device you want to register. All further communication is done by read()'ing or
39write()'ing "struct uhid_event" objects. Non-blocking operations are supported
40by setting O_NONBLOCK.
41
42struct uhid_event {
43 __u32 type;
44 union {
45 struct uhid_create_req create;
46 struct uhid_data_req data;
47 ...
48 } u;
49};
50
51The "type" field contains the ID of the event. Depending on the ID different
52payloads are sent. You must not split a single event across multiple read()'s or
53multiple write()'s. A single event must always be sent as a whole. Furthermore,
54only a single event can be sent per read() or write(). Pending data is ignored.
55If you want to handle multiple events in a single syscall, then use vectored
56I/O with readv()/writev().
57
58The first thing you should do is sending an UHID_CREATE event. This will
59register the device. UHID will respond with an UHID_START event. You can now
60start sending data to and reading data from UHID. However, unless UHID sends the
61UHID_OPEN event, the internally attached HID Device Driver has no user attached.
62That is, you might put your device asleep unless you receive the UHID_OPEN
63event. If you receive the UHID_OPEN event, you should start I/O. If the last
64user closes the HID device, you will receive an UHID_CLOSE event. This may be
65followed by an UHID_OPEN event again and so on. There is no need to perform
66reference-counting in user-space. That is, you will never receive multiple
67UHID_OPEN events without an UHID_CLOSE event. The HID subsystem performs
68ref-counting for you.
69You may decide to ignore UHID_OPEN/UHID_CLOSE, though. I/O is allowed even
70though the device may have no users.
71
72If you want to send data to the HID subsystem, you send an HID_INPUT event with
73your raw data payload. If the kernel wants to send data to the device, you will
74read an UHID_OUTPUT or UHID_OUTPUT_EV event.
75
76If your device disconnects, you should send an UHID_DESTROY event. This will
77unregister the device. You can now send UHID_CREATE again to register a new
78device.
79If you close() the fd, the device is automatically unregistered and destroyed
80internally.
81
82write()
83-------
84write() allows you to modify the state of the device and feed input data into
85the kernel. The following types are supported: UHID_CREATE, UHID_DESTROY and
86UHID_INPUT. The kernel will parse the event immediately and if the event ID is
87not supported, it will return -EOPNOTSUPP. If the payload is invalid, then
88-EINVAL is returned, otherwise, the amount of data that was read is returned and
89the request was handled successfully.
90
91 UHID_CREATE:
92 This creates the internal HID device. No I/O is possible until you send this
93 event to the kernel. The payload is of type struct uhid_create_req and
94 contains information about your device. You can start I/O now.
95
96 UHID_DESTROY:
97 This destroys the internal HID device. No further I/O will be accepted. There
98 may still be pending messages that you can receive with read() but no further
99 UHID_INPUT events can be sent to the kernel.
100 You can create a new device by sending UHID_CREATE again. There is no need to
101 reopen the character device.
102
103 UHID_INPUT:
104 You must send UHID_CREATE before sending input to the kernel! This event
105 contains a data-payload. This is the raw data that you read from your device.
106 The kernel will parse the HID reports and react on it.
107
108 UHID_FEATURE_ANSWER:
109 If you receive a UHID_FEATURE request you must answer with this request. You
110 must copy the "id" field from the request into the answer. Set the "err" field
111 to 0 if no error occured or to EIO if an I/O error occurred.
112 If "err" is 0 then you should fill the buffer of the answer with the results
113 of the feature request and set "size" correspondingly.
114
115read()
116------
117read() will return a queued ouput report. These output reports can be of type
118UHID_START, UHID_STOP, UHID_OPEN, UHID_CLOSE, UHID_OUTPUT or UHID_OUTPUT_EV. No
119reaction is required to any of them but you should handle them according to your
120needs. Only UHID_OUTPUT and UHID_OUTPUT_EV have payloads.
121
122 UHID_START:
123 This is sent when the HID device is started. Consider this as an answer to
124 UHID_CREATE. This is always the first event that is sent.
125
126 UHID_STOP:
127 This is sent when the HID device is stopped. Consider this as an answer to
128 UHID_DESTROY.
129 If the kernel HID device driver closes the device manually (that is, you
130 didn't send UHID_DESTROY) then you should consider this device closed and send
131 an UHID_DESTROY event. You may want to reregister your device, though. This is
132 always the last message that is sent to you unless you reopen the device with
133 UHID_CREATE.
134
135 UHID_OPEN:
136 This is sent when the HID device is opened. That is, the data that the HID
137 device provides is read by some other process. You may ignore this event but
138 it is useful for power-management. As long as you haven't received this event
139 there is actually no other process that reads your data so there is no need to
140 send UHID_INPUT events to the kernel.
141
142 UHID_CLOSE:
143 This is sent when there are no more processes which read the HID data. It is
144 the counterpart of UHID_OPEN and you may as well ignore this event.
145
146 UHID_OUTPUT:
147 This is sent if the HID device driver wants to send raw data to the I/O
148 device. You should read the payload and forward it to the device. The payload
149 is of type "struct uhid_data_req".
150 This may be received even though you haven't received UHID_OPEN, yet.
151
152 UHID_OUTPUT_EV:
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
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.
157
158 UHID_FEATURE:
159 This event is sent if the kernel driver wants to perform a feature request as
160 described in the HID specs. The report-type and report-number are available in
161 the payload.
162 The kernel serializes feature requests so there will never be two in parallel.
163 However, if you fail to respond with a UHID_FEATURE_ANSWER in a time-span of 5
164 seconds, then the requests will be dropped and a new one might be sent.
165 Therefore, the payload also contains an "id" field that identifies every
166 request.
167
168Document by:
169 David Herrmann <dh.herrmann@googlemail.com>
diff --git a/Documentation/hwmon/da9052 b/Documentation/hwmon/da9052
new file mode 100644
index 000000000000..ef898553638e
--- /dev/null
+++ b/Documentation/hwmon/da9052
@@ -0,0 +1,61 @@
1Supported chips:
2 * Dialog Semiconductors DA9052-BC and DA9053-AA/Bx PMICs
3 Prefix: 'da9052'
4 Datasheet: Datasheet is not publicly available.
5
6Authors: David Dajun Chen <dchen@diasemi.com>
7
8Description
9-----------
10
11The DA9052/53 provides an Analogue to Digital Converter (ADC) with 10 bits
12resolution and track and hold circuitry combined with an analogue input
13multiplexer. The analogue input multiplexer will allow conversion of up to 10
14different inputs. The track and hold circuit ensures stable input voltages at
15the input of the ADC during the conversion.
16
17The ADC is used to measure the following inputs:
18Channel 0: VDDOUT - measurement of the system voltage
19Channel 1: ICH - internal battery charger current measurement
20Channel 2: TBAT - output from the battery NTC
21Channel 3: VBAT - measurement of the battery voltage
22Channel 4: ADC_IN4 - high impedance input (0 - 2.5V)
23Channel 5: ADC_IN5 - high impedance input (0 - 2.5V)
24Channel 6: ADC_IN6 - high impedance input (0 - 2.5V)
25Channel 7: XY - TSI interface to measure the X and Y voltage of the touch
26 screen resistive potentiometers
27Channel 8: Internal Tjunc. - sense (internal temp. sensor)
28Channel 9: VBBAT - measurement of the backup battery voltage
29
30By using sysfs attributes we can measure the system voltage VDDOUT, the battery
31charging current ICH, battery temperature TBAT, battery junction temperature
32TJUNC, battery voltage VBAT and the back up battery voltage VBBAT.
33
34Voltage Monitoring
35------------------
36
37Voltages are sampled by a 10 bit ADC.
38
39The battery voltage is calculated as:
40 Milli volt = ((ADC value * 1000) / 512) + 2500
41
42The backup battery voltage is calculated as:
43 Milli volt = (ADC value * 2500) / 512;
44
45The voltages on ADC channels 4, 5 and 6 are calculated as:
46 Milli volt = (ADC value * 2500) / 1023
47
48Temperature Monitoring
49----------------------
50
51Temperatures are sampled by a 10 bit ADC. Junction and battery temperatures
52are monitored by the ADC channels.
53
54The junction temperature is calculated:
55 Degrees celsius = 1.708 * (TJUNC_RES - T_OFFSET) - 108.8
56The junction temperature attribute is supported by the driver.
57
58The battery temperature is calculated:
59 Degree Celcius = 1 / (t1 + 1/298)- 273
60where t1 = (1/B)* ln(( ADCval * 2.5)/(R25*ITBAT*255))
61Default values of R25, B, ITBAT are 10e3, 3380 and 50e-6 respectively.
diff --git a/Documentation/hwmon/hih6130 b/Documentation/hwmon/hih6130
new file mode 100644
index 000000000000..73dae918ea7b
--- /dev/null
+++ b/Documentation/hwmon/hih6130
@@ -0,0 +1,37 @@
1Kernel driver hih6130
2=====================
3
4Supported chips:
5 * Honeywell HIH-6130 / HIH-6131
6 Prefix: 'hih6130'
7 Addresses scanned: none
8 Datasheet: Publicly available at the Honeywell website
9 http://sensing.honeywell.com/index.php?ci_id=3106&la_id=1&defId=44872
10
11Author:
12 Iain Paton <ipaton0@gmail.com>
13
14Description
15-----------
16
17The HIH-6130 & HIH-6131 are humidity and temperature sensors in a SO8 package.
18The difference between the two devices is that the HIH-6131 has a condensation
19filter.
20
21The devices communicate with the I2C protocol. All sensors are set to the same
22I2C address 0x27 by default, so an entry with I2C_BOARD_INFO("hih6130", 0x27)
23can be used in the board setup code.
24
25Please see Documentation/i2c/instantiating-devices for details on how to
26instantiate I2C devices.
27
28sysfs-Interface
29---------------
30
31temp1_input - temperature input
32humidity1_input - humidity input
33
34Notes
35-----
36
37Command mode and alarms are not currently supported.
diff --git a/Documentation/hwmon/submitting-patches b/Documentation/hwmon/submitting-patches
index 86f42e8e9e49..790f774a3032 100644
--- a/Documentation/hwmon/submitting-patches
+++ b/Documentation/hwmon/submitting-patches
@@ -70,6 +70,9 @@ increase the chances of your change being accepted.
70 review more difficult. It may also result in code which is more complicated 70 review more difficult. It may also result in code which is more complicated
71 than necessary. Use inline functions or just regular functions instead. 71 than necessary. Use inline functions or just regular functions instead.
72 72
73* Use devres functions whenever possible to allocate resources. For rationale
74 and supported functions, please see Documentation/driver-model/devres.txt.
75
73* If the driver has a detect function, make sure it is silent. Debug messages 76* If the driver has a detect function, make sure it is silent. Debug messages
74 and messages printed after a successful detection are acceptable, but it 77 and messages printed after a successful detection are acceptable, but it
75 must not print messages such as "Chip XXX not found/supported". 78 must not print messages such as "Chip XXX not found/supported".
diff --git a/Documentation/i2c/busses/i2c-i801 b/Documentation/i2c/busses/i2c-i801
index 71f55bbcefc8..615142da4ef6 100644
--- a/Documentation/i2c/busses/i2c-i801
+++ b/Documentation/i2c/busses/i2c-i801
@@ -38,9 +38,10 @@ Module Parameters
38Disable selected features normally supported by the device. This makes it 38Disable selected features normally supported by the device. This makes it
39possible to work around possible driver or hardware bugs if the feature in 39possible to work around possible driver or hardware bugs if the feature in
40question doesn't work as intended for whatever reason. Bit values: 40question doesn't work as intended for whatever reason. Bit values:
41 1 disable SMBus PEC 41 0x01 disable SMBus PEC
42 2 disable the block buffer 42 0x02 disable the block buffer
43 8 disable the I2C block read functionality 43 0x08 disable the I2C block read functionality
44 0x10 don't use interrupts
44 45
45 46
46Description 47Description
@@ -86,6 +87,12 @@ SMBus 2.0 Support
86The 82801DB (ICH4) and later chips support several SMBus 2.0 features. 87The 82801DB (ICH4) and later chips support several SMBus 2.0 features.
87 88
88 89
90Interrupt Support
91-----------------
92
93PCI interrupt support is supported on the 82801EB (ICH5) and later chips.
94
95
89Hidden ICH SMBus 96Hidden ICH SMBus
90---------------- 97----------------
91 98
diff --git a/Documentation/i2c/busses/i2c-piix4 b/Documentation/i2c/busses/i2c-piix4
index 475bb4ae0720..1e6634f54c50 100644
--- a/Documentation/i2c/busses/i2c-piix4
+++ b/Documentation/i2c/busses/i2c-piix4
@@ -8,6 +8,11 @@ Supported adapters:
8 Datasheet: Only available via NDA from ServerWorks 8 Datasheet: Only available via NDA from ServerWorks
9 * ATI IXP200, IXP300, IXP400, SB600, SB700 and SB800 southbridges 9 * ATI IXP200, IXP300, IXP400, SB600, SB700 and SB800 southbridges
10 Datasheet: Not publicly available 10 Datasheet: Not publicly available
11 SB700 register reference available at:
12 http://support.amd.com/us/Embedded_TechDocs/43009_sb7xx_rrg_pub_1.00.pdf
13 * AMD SP5100 (SB700 derivative found on some server mainboards)
14 Datasheet: Publicly available at the AMD website
15 http://support.amd.com/us/Embedded_TechDocs/44413.pdf
11 * AMD Hudson-2 16 * AMD Hudson-2
12 Datasheet: Not publicly available 17 Datasheet: Not publicly available
13 * Standard Microsystems (SMSC) SLC90E66 (Victory66) southbridge 18 * Standard Microsystems (SMSC) SLC90E66 (Victory66) southbridge
@@ -68,6 +73,10 @@ this driver on those mainboards.
68The ServerWorks Southbridges, the Intel 440MX, and the Victory66 are 73The ServerWorks Southbridges, the Intel 440MX, and the Victory66 are
69identical to the PIIX4 in I2C/SMBus support. 74identical to the PIIX4 in I2C/SMBus support.
70 75
76The AMD SB700 and SP5100 chipsets implement two PIIX4-compatible SMBus
77controllers. If your BIOS initializes the secondary controller, it will
78be detected by this driver as an "Auxiliary SMBus Host Controller".
79
71If you own Force CPCI735 motherboard or other OSB4 based systems you may need 80If you own Force CPCI735 motherboard or other OSB4 based systems you may need
72to change the SMBus Interrupt Select register so the SMBus controller uses 81to change the SMBus Interrupt Select register so the SMBus controller uses
73the SMI mode. 82the SMI mode.
diff --git a/Documentation/i2c/writing-clients b/Documentation/i2c/writing-clients
index 5aa53374ea2a..3a94b0e6f601 100644
--- a/Documentation/i2c/writing-clients
+++ b/Documentation/i2c/writing-clients
@@ -245,21 +245,17 @@ static int __init foo_init(void)
245{ 245{
246 return i2c_add_driver(&foo_driver); 246 return i2c_add_driver(&foo_driver);
247} 247}
248module_init(foo_init);
248 249
249static void __exit foo_cleanup(void) 250static void __exit foo_cleanup(void)
250{ 251{
251 i2c_del_driver(&foo_driver); 252 i2c_del_driver(&foo_driver);
252} 253}
254module_exit(foo_cleanup);
253 255
254/* Substitute your own name and email address */ 256The module_i2c_driver() macro can be used to reduce above code.
255MODULE_AUTHOR("Frodo Looijaard <frodol@dds.nl>"
256MODULE_DESCRIPTION("Driver for Barf Inc. Foo I2C devices");
257
258/* a few non-GPL license types are also allowed */
259MODULE_LICENSE("GPL");
260 257
261module_init(foo_init); 258module_i2c_driver(foo_driver);
262module_exit(foo_cleanup);
263 259
264Note that some functions are marked by `__init'. These functions can 260Note that some functions are marked by `__init'. These functions can
265be removed after kernel booting (or module loading) is completed. 261be removed after kernel booting (or module loading) is completed.
@@ -267,6 +263,17 @@ Likewise, functions marked by `__exit' are dropped by the compiler when
267the code is built into the kernel, as they would never be called. 263the code is built into the kernel, as they would never be called.
268 264
269 265
266Driver Information
267==================
268
269/* Substitute your own name and email address */
270MODULE_AUTHOR("Frodo Looijaard <frodol@dds.nl>"
271MODULE_DESCRIPTION("Driver for Barf Inc. Foo I2C devices");
272
273/* a few non-GPL license types are also allowed */
274MODULE_LICENSE("GPL");
275
276
270Power Management 277Power Management
271================ 278================
272 279
diff --git a/Documentation/kdump/kdump.txt b/Documentation/kdump/kdump.txt
index 506c7390c2b9..13f1aa09b938 100644
--- a/Documentation/kdump/kdump.txt
+++ b/Documentation/kdump/kdump.txt
@@ -86,7 +86,7 @@ There is also a gitweb interface available at
86http://www.kernel.org/git/?p=utils/kernel/kexec/kexec-tools.git 86http://www.kernel.org/git/?p=utils/kernel/kexec/kexec-tools.git
87 87
88More information about kexec-tools can be found at 88More information about kexec-tools can be found at
89http://www.kernel.org/pub/linux/utils/kernel/kexec/README.html 89http://horms.net/projects/kexec/
90 90
913) Unpack the tarball with the tar command, as follows: 913) Unpack the tarball with the tar command, as follows:
92 92
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index a92c5ebf373e..c2619ef44a72 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -1134,7 +1134,6 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
1134 forcesac 1134 forcesac
1135 soft 1135 soft
1136 pt [x86, IA-64] 1136 pt [x86, IA-64]
1137 group_mf [x86, IA-64]
1138 1137
1139 1138
1140 io7= [HW] IO7 for Marvel based alpha systems 1139 io7= [HW] IO7 for Marvel based alpha systems
@@ -2367,6 +2366,11 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
2367 Set maximum number of finished RCU callbacks to process 2366 Set maximum number of finished RCU callbacks to process
2368 in one batch. 2367 in one batch.
2369 2368
2369 rcutree.fanout_leaf= [KNL,BOOT]
2370 Increase the number of CPUs assigned to each
2371 leaf rcu_node structure. Useful for very large
2372 systems.
2373
2370 rcutree.qhimark= [KNL,BOOT] 2374 rcutree.qhimark= [KNL,BOOT]
2371 Set threshold of queued 2375 Set threshold of queued
2372 RCU callbacks over which batch limiting is disabled. 2376 RCU callbacks over which batch limiting is disabled.
@@ -2932,6 +2936,8 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
2932 initial READ(10) command); 2936 initial READ(10) command);
2933 o = CAPACITY_OK (accept the capacity 2937 o = CAPACITY_OK (accept the capacity
2934 reported by the device); 2938 reported by the device);
2939 p = WRITE_CACHE (the device cache is ON
2940 by default);
2935 r = IGNORE_RESIDUE (the device reports 2941 r = IGNORE_RESIDUE (the device reports
2936 bogus residue values); 2942 bogus residue values);
2937 s = SINGLE_LUN (the device has only one 2943 s = SINGLE_LUN (the device has only one
diff --git a/Documentation/laptops/asus-laptop.txt b/Documentation/laptops/asus-laptop.txt
index a1e04d679289..69f9fb3701e0 100644
--- a/Documentation/laptops/asus-laptop.txt
+++ b/Documentation/laptops/asus-laptop.txt
@@ -151,8 +151,7 @@ Display switching
151 151
152 Debugging: 152 Debugging:
153 1) Check whether the Fn+F8 key: 153 1) Check whether the Fn+F8 key:
154 a) does not lock the laptop (try disabling CONFIG_X86_UP_APIC or boot with 154 a) does not lock the laptop (try a boot with noapic / nolapic if it does)
155 noapic / nolapic if it does)
156 b) generates events (0x6n, where n is the value corresponding to the 155 b) generates events (0x6n, where n is the value corresponding to the
157 configuration above) 156 configuration above)
158 c) actually works 157 c) actually works
diff --git a/Documentation/networking/batman-adv.txt b/Documentation/networking/batman-adv.txt
index 75a592365af9..8f3ae4a6147e 100644
--- a/Documentation/networking/batman-adv.txt
+++ b/Documentation/networking/batman-adv.txt
@@ -211,6 +211,11 @@ The debug output can be changed at runtime using the file
211 211
212will enable debug messages for when routes change. 212will enable debug messages for when routes change.
213 213
214Counters for different types of packets entering and leaving the
215batman-adv module are available through ethtool:
216
217# ethtool --statistics bat0
218
214 219
215BATCTL 220BATCTL
216------ 221------
diff --git a/Documentation/networking/bonding.txt b/Documentation/networking/bonding.txt
index bfea8a338901..6b1c7110534e 100644
--- a/Documentation/networking/bonding.txt
+++ b/Documentation/networking/bonding.txt
@@ -1210,7 +1210,7 @@ options, you may wish to use the "max_bonds" module parameter,
1210documented above. 1210documented above.
1211 1211
1212 To create multiple bonding devices with differing options, it is 1212 To create multiple bonding devices with differing options, it is
1213preferrable to use bonding parameters exported by sysfs, documented in the 1213preferable to use bonding parameters exported by sysfs, documented in the
1214section below. 1214section below.
1215 1215
1216 For versions of bonding without sysfs support, the only means to 1216 For versions of bonding without sysfs support, the only means to
@@ -1950,7 +1950,7 @@ access to fail over to. Additionally, the bonding load balance modes
1950support link monitoring of their members, so if individual links fail, 1950support link monitoring of their members, so if individual links fail,
1951the load will be rebalanced across the remaining devices. 1951the load will be rebalanced across the remaining devices.
1952 1952
1953 See Section 13, "Configuring Bonding for Maximum Throughput" 1953 See Section 12, "Configuring Bonding for Maximum Throughput"
1954for information on configuring bonding with one peer device. 1954for information on configuring bonding with one peer device.
1955 1955
195611.2 High Availability in a Multiple Switch Topology 195611.2 High Availability in a Multiple Switch Topology
@@ -2620,7 +2620,7 @@ be found at:
2620 2620
2621https://lists.sourceforge.net/lists/listinfo/bonding-devel 2621https://lists.sourceforge.net/lists/listinfo/bonding-devel
2622 2622
2623 Discussions regarding the developpement of the bonding driver take place 2623 Discussions regarding the development of the bonding driver take place
2624on the main Linux network mailing list, hosted at vger.kernel.org. The list 2624on the main Linux network mailing list, hosted at vger.kernel.org. The list
2625address is: 2625address is:
2626 2626
diff --git a/Documentation/networking/bridge.txt b/Documentation/networking/bridge.txt
index a7ba5e4e2c91..a27cb6214ed7 100644
--- a/Documentation/networking/bridge.txt
+++ b/Documentation/networking/bridge.txt
@@ -1,7 +1,14 @@
1In order to use the Ethernet bridging functionality, you'll need the 1In order to use the Ethernet bridging functionality, you'll need the
2userspace tools. These programs and documentation are available 2userspace tools.
3at http://www.linuxfoundation.org/en/Net:Bridge. The download page is 3
4http://prdownloads.sourceforge.net/bridge. 4Documentation for Linux bridging is on:
5 http://www.linuxfoundation.org/collaborate/workgroups/networking/bridge
6
7The bridge-utilities are maintained at:
8 git://git.kernel.org/pub/scm/linux/kernel/git/shemminger/bridge-utils.git
9
10Additionally, the iproute2 utilities can be used to configure
11bridge devices.
5 12
6If you still have questions, don't hesitate to post to the mailing list 13If you still have questions, don't hesitate to post to the mailing list
7(more info https://lists.linux-foundation.org/mailman/listinfo/bridge). 14(more info https://lists.linux-foundation.org/mailman/listinfo/bridge).
diff --git a/Documentation/networking/caif/Linux-CAIF.txt b/Documentation/networking/caif/Linux-CAIF.txt
index e52fd62bef3a..0aa4bd381bec 100644
--- a/Documentation/networking/caif/Linux-CAIF.txt
+++ b/Documentation/networking/caif/Linux-CAIF.txt
@@ -19,60 +19,36 @@ and host. Currently, UART and Loopback are available for Linux.
19Architecture: 19Architecture:
20------------ 20------------
21The implementation of CAIF is divided into: 21The implementation of CAIF is divided into:
22* CAIF Socket Layer, Kernel API, and Net Device. 22* CAIF Socket Layer and GPRS IP Interface.
23* CAIF Core Protocol Implementation 23* CAIF Core Protocol Implementation
24* CAIF Link Layer, implemented as NET devices. 24* CAIF Link Layer, implemented as NET devices.
25 25
26 26
27 RTNL 27 RTNL
28 ! 28 !
29 ! +------+ +------+ +------+ 29 ! +------+ +------+
30 ! +------+! +------+! +------+! 30 ! +------+! +------+!
31 ! ! Sock !! !Kernel!! ! Net !! 31 ! ! IP !! !Socket!!
32 ! ! API !+ ! API !+ ! Dev !+ <- CAIF Client APIs 32 +-------> !interf!+ ! API !+ <- CAIF Client APIs
33 ! +------+ +------! +------+ 33 ! +------+ +------!
34 ! ! ! ! 34 ! ! !
35 ! +----------!----------+ 35 ! +-----------+
36 ! +------+ <- CAIF Protocol Implementation 36 ! !
37 +-------> ! CAIF ! 37 ! +------+ <- CAIF Core Protocol
38 ! Core ! 38 ! ! CAIF !
39 +------+ 39 ! ! Core !
40 +--------!--------+ 40 ! +------+
41 ! ! 41 ! +----------!---------+
42 +------+ +-----+ 42 ! ! ! !
43 ! ! ! TTY ! <- Link Layer (Net Devices) 43 ! +------+ +-----+ +------+
44 +------+ +-----+ 44 +--> ! HSI ! ! TTY ! ! USB ! <- Link Layer (Net Devices)
45 45 +------+ +-----+ +------+
46 46
47Using the Kernel API
48----------------------
49The Kernel API is used for accessing CAIF channels from the
50kernel.
51The user of the API has to implement two callbacks for receive
52and control.
53The receive callback gives a CAIF packet as a SKB. The control
54callback will
55notify of channel initialization complete, and flow-on/flow-
56off.
57
58
59 struct caif_device caif_dev = {
60 .caif_config = {
61 .name = "MYDEV"
62 .type = CAIF_CHTY_AT
63 }
64 .receive_cb = my_receive,
65 .control_cb = my_control,
66 };
67 caif_add_device(&caif_dev);
68 caif_transmit(&caif_dev, skb);
69
70See the caif_kernel.h for details about the CAIF kernel API.
71 47
72 48
73I M P L E M E N T A T I O N 49I M P L E M E N T A T I O N
74=========================== 50===========================
75=========================== 51
76 52
77CAIF Core Protocol Layer 53CAIF Core Protocol Layer
78========================================= 54=========================================
@@ -88,17 +64,13 @@ The Core CAIF implementation contains:
88 - Simple implementation of CAIF. 64 - Simple implementation of CAIF.
89 - Layered architecture (a la Streams), each layer in the CAIF 65 - Layered architecture (a la Streams), each layer in the CAIF
90 specification is implemented in a separate c-file. 66 specification is implemented in a separate c-file.
91 - Clients must implement PHY layer to access physical HW
92 with receive and transmit functions.
93 - Clients must call configuration function to add PHY layer. 67 - Clients must call configuration function to add PHY layer.
94 - Clients must implement CAIF layer to consume/produce 68 - Clients must implement CAIF layer to consume/produce
95 CAIF payload with receive and transmit functions. 69 CAIF payload with receive and transmit functions.
96 - Clients must call configuration function to add and connect the 70 - Clients must call configuration function to add and connect the
97 Client layer. 71 Client layer.
98 - When receiving / transmitting CAIF Packets (cfpkt), ownership is passed 72 - When receiving / transmitting CAIF Packets (cfpkt), ownership is passed
99 to the called function (except for framing layers' receive functions 73 to the called function (except for framing layers' receive function)
100 or if a transmit function returns an error, in which case the caller
101 must free the packet).
102 74
103Layered Architecture 75Layered Architecture
104-------------------- 76--------------------
@@ -109,11 +81,6 @@ Implementation. The support functions include:
109 CAIF Packet has functions for creating, destroying and adding content 81 CAIF Packet has functions for creating, destroying and adding content
110 and for adding/extracting header and trailers to protocol packets. 82 and for adding/extracting header and trailers to protocol packets.
111 83
112 - CFLST CAIF list implementation.
113
114 - CFGLUE CAIF Glue. Contains OS Specifics, such as memory
115 allocation, endianness, etc.
116
117The CAIF Protocol implementation contains: 84The CAIF Protocol implementation contains:
118 85
119 - CFCNFG CAIF Configuration layer. Configures the CAIF Protocol 86 - CFCNFG CAIF Configuration layer. Configures the CAIF Protocol
@@ -128,7 +95,7 @@ The CAIF Protocol implementation contains:
128 control and remote shutdown requests. 95 control and remote shutdown requests.
129 96
130 - CFVEI CAIF VEI layer. Handles CAIF AT Channels on VEI (Virtual 97 - CFVEI CAIF VEI layer. Handles CAIF AT Channels on VEI (Virtual
131 External Interface). This layer encodes/decodes VEI frames. 98 External Interface). This layer encodes/decodes VEI frames.
132 99
133 - CFDGML CAIF Datagram layer. Handles CAIF Datagram layer (IP 100 - CFDGML CAIF Datagram layer. Handles CAIF Datagram layer (IP
134 traffic), encodes/decodes Datagram frames. 101 traffic), encodes/decodes Datagram frames.
@@ -170,7 +137,7 @@ The CAIF Protocol implementation contains:
170 +---------+ +---------+ 137 +---------+ +---------+
171 ! ! 138 ! !
172 +---------+ +---------+ 139 +---------+ +---------+
173 | | | Serial | 140 | | | Serial |
174 | | | CFSERL | 141 | | | CFSERL |
175 +---------+ +---------+ 142 +---------+ +---------+
176 143
@@ -186,24 +153,20 @@ In this layered approach the following "rules" apply.
186 layer->dn->transmit(layer->dn, packet); 153 layer->dn->transmit(layer->dn, packet);
187 154
188 155
189Linux Driver Implementation 156CAIF Socket and IP interface
190=========================== 157===========================
191 158
192Linux GPRS Net Device and CAIF socket are implemented on top of the 159The IP interface and CAIF socket API are implemented on top of the
193CAIF Core protocol. The Net device and CAIF socket have an instance of 160CAIF Core protocol. The IP Interface and CAIF socket have an instance of
194'struct cflayer', just like the CAIF Core protocol stack. 161'struct cflayer', just like the CAIF Core protocol stack.
195Net device and Socket implement the 'receive()' function defined by 162Net device and Socket implement the 'receive()' function defined by
196'struct cflayer', just like the rest of the CAIF stack. In this way, transmit and 163'struct cflayer', just like the rest of the CAIF stack. In this way, transmit and
197receive of packets is handled as by the rest of the layers: the 'dn->transmit()' 164receive of packets is handled as by the rest of the layers: the 'dn->transmit()'
198function is called in order to transmit data. 165function is called in order to transmit data.
199 166
200The layer on top of the CAIF Core implementation is
201sometimes referred to as the "Client layer".
202
203
204Configuration of Link Layer 167Configuration of Link Layer
205--------------------------- 168---------------------------
206The Link Layer is implemented as Linux net devices (struct net_device). 169The Link Layer is implemented as Linux network devices (struct net_device).
207Payload handling and registration is done using standard Linux mechanisms. 170Payload handling and registration is done using standard Linux mechanisms.
208 171
209The CAIF Protocol relies on a loss-less link layer without implementing 172The CAIF Protocol relies on a loss-less link layer without implementing
diff --git a/Documentation/networking/can.txt b/Documentation/networking/can.txt
index ac295399f0d4..820f55344edc 100644
--- a/Documentation/networking/can.txt
+++ b/Documentation/networking/can.txt
@@ -22,7 +22,8 @@ This file contains
22 4.1.2 RAW socket option CAN_RAW_ERR_FILTER 22 4.1.2 RAW socket option CAN_RAW_ERR_FILTER
23 4.1.3 RAW socket option CAN_RAW_LOOPBACK 23 4.1.3 RAW socket option CAN_RAW_LOOPBACK
24 4.1.4 RAW socket option CAN_RAW_RECV_OWN_MSGS 24 4.1.4 RAW socket option CAN_RAW_RECV_OWN_MSGS
25 4.1.5 RAW socket returned message flags 25 4.1.5 RAW socket option CAN_RAW_FD_FRAMES
26 4.1.6 RAW socket returned message flags
26 4.2 Broadcast Manager protocol sockets (SOCK_DGRAM) 27 4.2 Broadcast Manager protocol sockets (SOCK_DGRAM)
27 4.3 connected transport protocols (SOCK_SEQPACKET) 28 4.3 connected transport protocols (SOCK_SEQPACKET)
28 4.4 unconnected transport protocols (SOCK_DGRAM) 29 4.4 unconnected transport protocols (SOCK_DGRAM)
@@ -41,7 +42,8 @@ This file contains
41 6.5.1 Netlink interface to set/get devices properties 42 6.5.1 Netlink interface to set/get devices properties
42 6.5.2 Setting the CAN bit-timing 43 6.5.2 Setting the CAN bit-timing
43 6.5.3 Starting and stopping the CAN network device 44 6.5.3 Starting and stopping the CAN network device
44 6.6 supported CAN hardware 45 6.6 CAN FD (flexible data rate) driver support
46 6.7 supported CAN hardware
45 47
46 7 Socket CAN resources 48 7 Socket CAN resources
47 49
@@ -232,16 +234,16 @@ solution for a couple of reasons:
232 arbitration problems and error frames caused by the different 234 arbitration problems and error frames caused by the different
233 ECUs. The occurrence of detected errors are important for diagnosis 235 ECUs. The occurrence of detected errors are important for diagnosis
234 and have to be logged together with the exact timestamp. For this 236 and have to be logged together with the exact timestamp. For this
235 reason the CAN interface driver can generate so called Error Frames 237 reason the CAN interface driver can generate so called Error Message
236 that can optionally be passed to the user application in the same 238 Frames that can optionally be passed to the user application in the
237 way as other CAN frames. Whenever an error on the physical layer 239 same way as other CAN frames. Whenever an error on the physical layer
238 or the MAC layer is detected (e.g. by the CAN controller) the driver 240 or the MAC layer is detected (e.g. by the CAN controller) the driver
239 creates an appropriate error frame. Error frames can be requested by 241 creates an appropriate error message frame. Error messages frames can
240 the user application using the common CAN filter mechanisms. Inside 242 be requested by the user application using the common CAN filter
241 this filter definition the (interested) type of errors may be 243 mechanisms. Inside this filter definition the (interested) type of
242 selected. The reception of error frames is disabled by default. 244 errors may be selected. The reception of error messages is disabled
243 The format of the CAN error frame is briefly described in the Linux 245 by default. The format of the CAN error message frame is briefly
244 header file "include/linux/can/error.h". 246 described in the Linux header file "include/linux/can/error.h".
245 247
2464. How to use Socket CAN 2484. How to use Socket CAN
247------------------------ 249------------------------
@@ -273,7 +275,7 @@ solution for a couple of reasons:
273 275
274 struct can_frame { 276 struct can_frame {
275 canid_t can_id; /* 32 bit CAN_ID + EFF/RTR/ERR flags */ 277 canid_t can_id; /* 32 bit CAN_ID + EFF/RTR/ERR flags */
276 __u8 can_dlc; /* data length code: 0 .. 8 */ 278 __u8 can_dlc; /* frame payload length in byte (0 .. 8) */
277 __u8 data[8] __attribute__((aligned(8))); 279 __u8 data[8] __attribute__((aligned(8)));
278 }; 280 };
279 281
@@ -375,6 +377,51 @@ solution for a couple of reasons:
375 nbytes = sendto(s, &frame, sizeof(struct can_frame), 377 nbytes = sendto(s, &frame, sizeof(struct can_frame),
376 0, (struct sockaddr*)&addr, sizeof(addr)); 378 0, (struct sockaddr*)&addr, sizeof(addr));
377 379
380 Remark about CAN FD (flexible data rate) support:
381
382 Generally the handling of CAN FD is very similar to the formerly described
383 examples. The new CAN FD capable CAN controllers support two different
384 bitrates for the arbitration phase and the payload phase of the CAN FD frame
385 and up to 64 bytes of payload. This extended payload length breaks all the
386 kernel interfaces (ABI) which heavily rely on the CAN frame with fixed eight
387 bytes of payload (struct can_frame) like the CAN_RAW socket. Therefore e.g.
388 the CAN_RAW socket supports a new socket option CAN_RAW_FD_FRAMES that
389 switches the socket into a mode that allows the handling of CAN FD frames
390 and (legacy) CAN frames simultaneously (see section 4.1.5).
391
392 The struct canfd_frame is defined in include/linux/can.h:
393
394 struct canfd_frame {
395 canid_t can_id; /* 32 bit CAN_ID + EFF/RTR/ERR flags */
396 __u8 len; /* frame payload length in byte (0 .. 64) */
397 __u8 flags; /* additional flags for CAN FD */
398 __u8 __res0; /* reserved / padding */
399 __u8 __res1; /* reserved / padding */
400 __u8 data[64] __attribute__((aligned(8)));
401 };
402
403 The struct canfd_frame and the existing struct can_frame have the can_id,
404 the payload length and the payload data at the same offset inside their
405 structures. This allows to handle the different structures very similar.
406 When the content of a struct can_frame is copied into a struct canfd_frame
407 all structure elements can be used as-is - only the data[] becomes extended.
408
409 When introducing the struct canfd_frame it turned out that the data length
410 code (DLC) of the struct can_frame was used as a length information as the
411 length and the DLC has a 1:1 mapping in the range of 0 .. 8. To preserve
412 the easy handling of the length information the canfd_frame.len element
413 contains a plain length value from 0 .. 64. So both canfd_frame.len and
414 can_frame.can_dlc are equal and contain a length information and no DLC.
415 For details about the distinction of CAN and CAN FD capable devices and
416 the mapping to the bus-relevant data length code (DLC), see chapter 6.6.
417
418 The length of the two CAN(FD) frame structures define the maximum transfer
419 unit (MTU) of the CAN(FD) network interface and skbuff data length. Two
420 definitions are specified for CAN specific MTUs in include/linux/can.h :
421
422 #define CAN_MTU (sizeof(struct can_frame)) == 16 => 'legacy' CAN frame
423 #define CANFD_MTU (sizeof(struct canfd_frame)) == 72 => CAN FD frame
424
378 4.1 RAW protocol sockets with can_filters (SOCK_RAW) 425 4.1 RAW protocol sockets with can_filters (SOCK_RAW)
379 426
380 Using CAN_RAW sockets is extensively comparable to the commonly 427 Using CAN_RAW sockets is extensively comparable to the commonly
@@ -383,7 +430,7 @@ solution for a couple of reasons:
383 defaults are set at RAW socket binding time: 430 defaults are set at RAW socket binding time:
384 431
385 - The filters are set to exactly one filter receiving everything 432 - The filters are set to exactly one filter receiving everything
386 - The socket only receives valid data frames (=> no error frames) 433 - The socket only receives valid data frames (=> no error message frames)
387 - The loopback of sent CAN frames is enabled (see chapter 3.2) 434 - The loopback of sent CAN frames is enabled (see chapter 3.2)
388 - The socket does not receive its own sent frames (in loopback mode) 435 - The socket does not receive its own sent frames (in loopback mode)
389 436
@@ -434,7 +481,7 @@ solution for a couple of reasons:
434 4.1.2 RAW socket option CAN_RAW_ERR_FILTER 481 4.1.2 RAW socket option CAN_RAW_ERR_FILTER
435 482
436 As described in chapter 3.4 the CAN interface driver can generate so 483 As described in chapter 3.4 the CAN interface driver can generate so
437 called Error Frames that can optionally be passed to the user 484 called Error Message Frames that can optionally be passed to the user
438 application in the same way as other CAN frames. The possible 485 application in the same way as other CAN frames. The possible
439 errors are divided into different error classes that may be filtered 486 errors are divided into different error classes that may be filtered
440 using the appropriate error mask. To register for every possible 487 using the appropriate error mask. To register for every possible
@@ -472,7 +519,69 @@ solution for a couple of reasons:
472 setsockopt(s, SOL_CAN_RAW, CAN_RAW_RECV_OWN_MSGS, 519 setsockopt(s, SOL_CAN_RAW, CAN_RAW_RECV_OWN_MSGS,
473 &recv_own_msgs, sizeof(recv_own_msgs)); 520 &recv_own_msgs, sizeof(recv_own_msgs));
474 521
475 4.1.5 RAW socket returned message flags 522 4.1.5 RAW socket option CAN_RAW_FD_FRAMES
523
524 CAN FD support in CAN_RAW sockets can be enabled with a new socket option
525 CAN_RAW_FD_FRAMES which is off by default. When the new socket option is
526 not supported by the CAN_RAW socket (e.g. on older kernels), switching the
527 CAN_RAW_FD_FRAMES option returns the error -ENOPROTOOPT.
528
529 Once CAN_RAW_FD_FRAMES is enabled the application can send both CAN frames
530 and CAN FD frames. OTOH the application has to handle CAN and CAN FD frames
531 when reading from the socket.
532
533 CAN_RAW_FD_FRAMES enabled: CAN_MTU and CANFD_MTU are allowed
534 CAN_RAW_FD_FRAMES disabled: only CAN_MTU is allowed (default)
535
536 Example:
537 [ remember: CANFD_MTU == sizeof(struct canfd_frame) ]
538
539 struct canfd_frame cfd;
540
541 nbytes = read(s, &cfd, CANFD_MTU);
542
543 if (nbytes == CANFD_MTU) {
544 printf("got CAN FD frame with length %d\n", cfd.len);
545 /* cfd.flags contains valid data */
546 } else if (nbytes == CAN_MTU) {
547 printf("got legacy CAN frame with length %d\n", cfd.len);
548 /* cfd.flags is undefined */
549 } else {
550 fprintf(stderr, "read: invalid CAN(FD) frame\n");
551 return 1;
552 }
553
554 /* the content can be handled independently from the received MTU size */
555
556 printf("can_id: %X data length: %d data: ", cfd.can_id, cfd.len);
557 for (i = 0; i < cfd.len; i++)
558 printf("%02X ", cfd.data[i]);
559
560 When reading with size CANFD_MTU only returns CAN_MTU bytes that have
561 been received from the socket a legacy CAN frame has been read into the
562 provided CAN FD structure. Note that the canfd_frame.flags data field is
563 not specified in the struct can_frame and therefore it is only valid in
564 CANFD_MTU sized CAN FD frames.
565
566 As long as the payload length is <=8 the received CAN frames from CAN FD
567 capable CAN devices can be received and read by legacy sockets too. When
568 user-generated CAN FD frames have a payload length <=8 these can be send
569 by legacy CAN network interfaces too. Sending CAN FD frames with payload
570 length > 8 to a legacy CAN network interface returns an -EMSGSIZE error.
571
572 Implementation hint for new CAN applications:
573
574 To build a CAN FD aware application use struct canfd_frame as basic CAN
575 data structure for CAN_RAW based applications. When the application is
576 executed on an older Linux kernel and switching the CAN_RAW_FD_FRAMES
577 socket option returns an error: No problem. You'll get legacy CAN frames
578 or CAN FD frames and can process them the same way.
579
580 When sending to CAN devices make sure that the device is capable to handle
581 CAN FD frames by checking if the device maximum transfer unit is CANFD_MTU.
582 The CAN device MTU can be retrieved e.g. with a SIOCGIFMTU ioctl() syscall.
583
584 4.1.6 RAW socket returned message flags
476 585
477 When using recvmsg() call, the msg->msg_flags may contain following flags: 586 When using recvmsg() call, the msg->msg_flags may contain following flags:
478 587
@@ -527,7 +636,7 @@ solution for a couple of reasons:
527 636
528 rcvlist_all - list for unfiltered entries (no filter operations) 637 rcvlist_all - list for unfiltered entries (no filter operations)
529 rcvlist_eff - list for single extended frame (EFF) entries 638 rcvlist_eff - list for single extended frame (EFF) entries
530 rcvlist_err - list for error frames masks 639 rcvlist_err - list for error message frames masks
531 rcvlist_fil - list for mask/value filters 640 rcvlist_fil - list for mask/value filters
532 rcvlist_inv - list for mask/value filters (inverse semantic) 641 rcvlist_inv - list for mask/value filters (inverse semantic)
533 rcvlist_sff - list for single standard frame (SFF) entries 642 rcvlist_sff - list for single standard frame (SFF) entries
@@ -573,10 +682,13 @@ solution for a couple of reasons:
573 dev->type = ARPHRD_CAN; /* the netdevice hardware type */ 682 dev->type = ARPHRD_CAN; /* the netdevice hardware type */
574 dev->flags = IFF_NOARP; /* CAN has no arp */ 683 dev->flags = IFF_NOARP; /* CAN has no arp */
575 684
576 dev->mtu = sizeof(struct can_frame); 685 dev->mtu = CAN_MTU; /* sizeof(struct can_frame) -> legacy CAN interface */
577 686
578 The struct can_frame is the payload of each socket buffer in the 687 or alternative, when the controller supports CAN with flexible data rate:
579 protocol family PF_CAN. 688 dev->mtu = CANFD_MTU; /* sizeof(struct canfd_frame) -> CAN FD interface */
689
690 The struct can_frame or struct canfd_frame is the payload of each socket
691 buffer (skbuff) in the protocol family PF_CAN.
580 692
581 6.2 local loopback of sent frames 693 6.2 local loopback of sent frames
582 694
@@ -784,15 +896,41 @@ solution for a couple of reasons:
784 $ ip link set canX type can restart-ms 100 896 $ ip link set canX type can restart-ms 100
785 897
786 Alternatively, the application may realize the "bus-off" condition 898 Alternatively, the application may realize the "bus-off" condition
787 by monitoring CAN error frames and do a restart when appropriate with 899 by monitoring CAN error message frames and do a restart when
788 the command: 900 appropriate with the command:
789 901
790 $ ip link set canX type can restart 902 $ ip link set canX type can restart
791 903
792 Note that a restart will also create a CAN error frame (see also 904 Note that a restart will also create a CAN error message frame (see
793 chapter 3.4). 905 also chapter 3.4).
906
907 6.6 CAN FD (flexible data rate) driver support
908
909 CAN FD capable CAN controllers support two different bitrates for the
910 arbitration phase and the payload phase of the CAN FD frame. Therefore a
911 second bittiming has to be specified in order to enable the CAN FD bitrate.
912
913 Additionally CAN FD capable CAN controllers support up to 64 bytes of
914 payload. The representation of this length in can_frame.can_dlc and
915 canfd_frame.len for userspace applications and inside the Linux network
916 layer is a plain value from 0 .. 64 instead of the CAN 'data length code'.
917 The data length code was a 1:1 mapping to the payload length in the legacy
918 CAN frames anyway. The payload length to the bus-relevant DLC mapping is
919 only performed inside the CAN drivers, preferably with the helper
920 functions can_dlc2len() and can_len2dlc().
921
922 The CAN netdevice driver capabilities can be distinguished by the network
923 devices maximum transfer unit (MTU):
924
925 MTU = 16 (CAN_MTU) => sizeof(struct can_frame) => 'legacy' CAN device
926 MTU = 72 (CANFD_MTU) => sizeof(struct canfd_frame) => CAN FD capable device
927
928 The CAN device MTU can be retrieved e.g. with a SIOCGIFMTU ioctl() syscall.
929 N.B. CAN FD capable devices can also handle and send legacy CAN frames.
930
931 FIXME: Add details about the CAN FD controller configuration when available.
794 932
795 6.6 Supported CAN hardware 933 6.7 Supported CAN hardware
796 934
797 Please check the "Kconfig" file in "drivers/net/can" to get an actual 935 Please check the "Kconfig" file in "drivers/net/can" to get an actual
798 list of the support CAN hardware. On the Socket CAN project website 936 list of the support CAN hardware. On the Socket CAN project website
diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt
index 6f896b94abdc..406a5226220d 100644
--- a/Documentation/networking/ip-sysctl.txt
+++ b/Documentation/networking/ip-sysctl.txt
@@ -468,6 +468,19 @@ tcp_syncookies - BOOLEAN
468 SYN flood warnings in logs not being really flooded, your server 468 SYN flood warnings in logs not being really flooded, your server
469 is seriously misconfigured. 469 is seriously misconfigured.
470 470
471tcp_fastopen - INTEGER
472 Enable TCP Fast Open feature (draft-ietf-tcpm-fastopen) to send data
473 in the opening SYN packet. To use this feature, the client application
474 must not use connect(). Instead, it should use sendmsg() or sendto()
475 with MSG_FASTOPEN flag which performs a TCP handshake automatically.
476
477 The values (bitmap) are:
478 1: Enables sending data in the opening SYN on the client
479 5: Enables sending data in the opening SYN on the client regardless
480 of cookie availability.
481
482 Default: 0
483
471tcp_syn_retries - INTEGER 484tcp_syn_retries - INTEGER
472 Number of times initial SYNs for an active TCP connection attempt 485 Number of times initial SYNs for an active TCP connection attempt
473 will be retransmitted. Should not be higher than 255. Default value 486 will be retransmitted. Should not be higher than 255. Default value
@@ -551,6 +564,25 @@ tcp_thin_dupack - BOOLEAN
551 Documentation/networking/tcp-thin.txt 564 Documentation/networking/tcp-thin.txt
552 Default: 0 565 Default: 0
553 566
567tcp_limit_output_bytes - INTEGER
568 Controls TCP Small Queue limit per tcp socket.
569 TCP bulk sender tends to increase packets in flight until it
570 gets losses notifications. With SNDBUF autotuning, this can
571 result in a large amount of packets queued in qdisc/device
572 on the local machine, hurting latency of other flows, for
573 typical pfifo_fast qdiscs.
574 tcp_limit_output_bytes limits the number of bytes on qdisc
575 or device to reduce artificial RTT/cwnd and reduce bufferbloat.
576 Note: For GSO/TSO enabled flows, we try to have at least two
577 packets in flight. Reducing tcp_limit_output_bytes might also
578 reduce the size of individual GSO packet (64KB being the max)
579 Default: 131072
580
581tcp_challenge_ack_limit - INTEGER
582 Limits number of Challenge ACK sent per second, as recommended
583 in RFC 5961 (Improving TCP's Robustness to Blind In-Window Attacks)
584 Default: 100
585
554UDP variables: 586UDP variables:
555 587
556udp_mem - vector of 3 INTEGERs: min, pressure, max 588udp_mem - vector of 3 INTEGERs: min, pressure, max
@@ -857,9 +889,19 @@ accept_source_route - BOOLEAN
857 FALSE (host) 889 FALSE (host)
858 890
859accept_local - BOOLEAN 891accept_local - BOOLEAN
860 Accept packets with local source addresses. In combination with 892 Accept packets with local source addresses. In combination
861 suitable routing, this can be used to direct packets between two 893 with suitable routing, this can be used to direct packets
862 local interfaces over the wire and have them accepted properly. 894 between two local interfaces over the wire and have them
895 accepted properly.
896
897 rp_filter must be set to a non-zero value in order for
898 accept_local to have an effect.
899
900 default FALSE
901
902route_localnet - BOOLEAN
903 Do not consider loopback addresses as martian source or destination
904 while routing. This enables the use of 127/8 for local routing purposes.
863 default FALSE 905 default FALSE
864 906
865rp_filter - INTEGER 907rp_filter - INTEGER
@@ -1398,6 +1440,20 @@ path_max_retrans - INTEGER
1398 1440
1399 Default: 5 1441 Default: 5
1400 1442
1443pf_retrans - INTEGER
1444 The number of retransmissions that will be attempted on a given path
1445 before traffic is redirected to an alternate transport (should one
1446 exist). Note this is distinct from path_max_retrans, as a path that
1447 passes the pf_retrans threshold can still be used. Its only
1448 deprioritized when a transmission path is selected by the stack. This
1449 setting is primarily used to enable fast failover mechanisms without
1450 having to reduce path_max_retrans to a very low value. See:
1451 http://www.ietf.org/id/draft-nishida-tsvwg-sctp-failover-05.txt
1452 for details. Note also that a value of pf_retrans > path_max_retrans
1453 disables this feature
1454
1455 Default: 0
1456
1401rto_initial - INTEGER 1457rto_initial - INTEGER
1402 The initial round trip timeout value in milliseconds that will be used 1458 The initial round trip timeout value in milliseconds that will be used
1403 in calculating round trip times. This is the initial time interval 1459 in calculating round trip times. This is the initial time interval
diff --git a/Documentation/networking/openvswitch.txt b/Documentation/networking/openvswitch.txt
index b8a048b8df3a..8fa2dd1e792e 100644
--- a/Documentation/networking/openvswitch.txt
+++ b/Documentation/networking/openvswitch.txt
@@ -118,7 +118,7 @@ essentially like this, ignoring metadata:
118Naively, to add VLAN support, it makes sense to add a new "vlan" flow 118Naively, to add VLAN support, it makes sense to add a new "vlan" flow
119key attribute to contain the VLAN tag, then continue to decode the 119key attribute to contain the VLAN tag, then continue to decode the
120encapsulated headers beyond the VLAN tag using the existing field 120encapsulated headers beyond the VLAN tag using the existing field
121definitions. With this change, an TCP packet in VLAN 10 would have a 121definitions. With this change, a TCP packet in VLAN 10 would have a
122flow key much like this: 122flow key much like this:
123 123
124 eth(...), vlan(vid=10, pcp=0), eth_type(0x0800), ip(proto=6, ...), tcp(...) 124 eth(...), vlan(vid=10, pcp=0), eth_type(0x0800), ip(proto=6, ...), tcp(...)
diff --git a/Documentation/networking/s2io.txt b/Documentation/networking/s2io.txt
index 4be0c039edbc..d2a9f43b5546 100644
--- a/Documentation/networking/s2io.txt
+++ b/Documentation/networking/s2io.txt
@@ -136,16 +136,6 @@ For more information, please review the AMD8131 errata at
136http://vip.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/ 136http://vip.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/
13726310_AMD-8131_HyperTransport_PCI-X_Tunnel_Revision_Guide_rev_3_18.pdf 13726310_AMD-8131_HyperTransport_PCI-X_Tunnel_Revision_Guide_rev_3_18.pdf
138 138
1396. Available Downloads 1396. Support
140Neterion "s2io" driver in Red Hat and Suse 2.6-based distributions is kept up
141to date, also the latest "s2io" code (including support for 2.4 kernels) is
142available via "Support" link on the Neterion site: http://www.neterion.com.
143
144For Xframe User Guide (Programming manual), visit ftp site ns1.s2io.com,
145user: linuxdocs password: HALdocs
146
1477. Support
148For further support please contact either your 10GbE Xframe NIC vendor (IBM, 140For further support please contact either your 10GbE Xframe NIC vendor (IBM,
149HP, SGI etc.) or click on the "Support" link on the Neterion site: 141HP, SGI etc.)
150http://www.neterion.com.
151
diff --git a/Documentation/networking/stmmac.txt b/Documentation/networking/stmmac.txt
index 5cb9a1972460..c676b9cedbd0 100644
--- a/Documentation/networking/stmmac.txt
+++ b/Documentation/networking/stmmac.txt
@@ -257,9 +257,11 @@ reset procedure etc).
257 o Makefile 257 o Makefile
258 o stmmac_main.c: main network device driver; 258 o stmmac_main.c: main network device driver;
259 o stmmac_mdio.c: mdio functions; 259 o stmmac_mdio.c: mdio functions;
260 o stmmac_pci: PCI driver;
261 o stmmac_platform.c: platform driver
260 o stmmac_ethtool.c: ethtool support; 262 o stmmac_ethtool.c: ethtool support;
261 o stmmac_timer.[ch]: timer code used for mitigating the driver dma interrupts 263 o stmmac_timer.[ch]: timer code used for mitigating the driver dma interrupts
262 Only tested on ST40 platforms based. 264 (only tested on ST40 platforms based);
263 o stmmac.h: private driver structure; 265 o stmmac.h: private driver structure;
264 o common.h: common definitions and VFTs; 266 o common.h: common definitions and VFTs;
265 o descs.h: descriptor structure definitions; 267 o descs.h: descriptor structure definitions;
@@ -269,9 +271,11 @@ reset procedure etc).
269 o dwmac100_core: MAC 100 core and dma code; 271 o dwmac100_core: MAC 100 core and dma code;
270 o dwmac100_dma.c: dma funtions for the MAC chip; 272 o dwmac100_dma.c: dma funtions for the MAC chip;
271 o dwmac1000.h: specific header file for the MAC; 273 o dwmac1000.h: specific header file for the MAC;
272 o dwmac_lib.c: generic DMA functions shared among chips 274 o dwmac_lib.c: generic DMA functions shared among chips;
273 o enh_desc.c: functions for handling enhanced descriptors 275 o enh_desc.c: functions for handling enhanced descriptors;
274 o norm_desc.c: functions for handling normal descriptors 276 o norm_desc.c: functions for handling normal descriptors;
277 o chain_mode.c/ring_mode.c:: functions to manage RING/CHAINED modes;
278 o mmc_core.c/mmc.h: Management MAC Counters;
275 279
2765) Debug Information 2805) Debug Information
277 281
@@ -304,7 +308,27 @@ All these are only useful during the developing stage
304and should never enabled inside the code for general usage. 308and should never enabled inside the code for general usage.
305In fact, these can generate an huge amount of debug messages. 309In fact, these can generate an huge amount of debug messages.
306 310
3076) TODO: 3116) Energy Efficient Ethernet
312
313Energy Efficient Ethernet(EEE) enables IEEE 802.3 MAC sublayer along
314with a family of Physical layer to operate in the Low power Idle(LPI)
315mode. The EEE mode supports the IEEE 802.3 MAC operation at 100Mbps,
3161000Mbps & 10Gbps.
317
318The LPI mode allows power saving by switching off parts of the
319communication device functionality when there is no data to be
320transmitted & received. The system on both the side of the link can
321disable some functionalities & save power during the period of low-link
322utilization. The MAC controls whether the system should enter or exit
323the LPI mode & communicate this to PHY.
324
325As soon as the interface is opened, the driver verifies if the EEE can
326be supported. This is done by looking at both the DMA HW capability
327register and the PHY devices MCD registers.
328To enter in Tx LPI mode the driver needs to have a software timer
329that enable and disable the LPI mode when there is nothing to be
330transmitted.
331
3327) TODO:
308 o XGMAC is not supported. 333 o XGMAC is not supported.
309 o Add the EEE - Energy Efficient Ethernet
310 o Add the PTP - precision time protocol 334 o Add the PTP - precision time protocol
diff --git a/Documentation/networking/vxge.txt b/Documentation/networking/vxge.txt
index d2e2997e6fa0..bb76c667a476 100644
--- a/Documentation/networking/vxge.txt
+++ b/Documentation/networking/vxge.txt
@@ -91,10 +91,3 @@ v) addr_learn_en
91 virtualization environment. 91 virtualization environment.
92 Valid range: 0,1 (disabled, enabled respectively) 92 Valid range: 0,1 (disabled, enabled respectively)
93 Default: 0 93 Default: 0
94
954) Troubleshooting:
96-------------------
97
98To resolve an issue with the source code or X3100 series adapter, please collect
99the statistics, register dumps using ethool, relevant logs and email them to
100support@neterion.com.
diff --git a/Documentation/nfc/nfc-hci.txt b/Documentation/nfc/nfc-hci.txt
index 320f9336c781..89a339c9b079 100644
--- a/Documentation/nfc/nfc-hci.txt
+++ b/Documentation/nfc/nfc-hci.txt
@@ -178,3 +178,36 @@ ANY_GET_PARAMETER to the reader A gate to get information on the target
178that was discovered). 178that was discovered).
179 179
180Typically, such an event will be propagated to NFC Core from MSGRXWQ context. 180Typically, such an event will be propagated to NFC Core from MSGRXWQ context.
181
182Error management
183----------------
184
185Errors that occur synchronously with the execution of an NFC Core request are
186simply returned as the execution result of the request. These are easy.
187
188Errors that occur asynchronously (e.g. in a background protocol handling thread)
189must be reported such that upper layers don't stay ignorant that something
190went wrong below and know that expected events will probably never happen.
191Handling of these errors is done as follows:
192
193- driver (pn544) fails to deliver an incoming frame: it stores the error such
194that any subsequent call to the driver will result in this error. Then it calls
195the standard nfc_shdlc_recv_frame() with a NULL argument to report the problem
196above. shdlc stores a EREMOTEIO sticky status, which will trigger SMW to
197report above in turn.
198
199- SMW is basically a background thread to handle incoming and outgoing shdlc
200frames. This thread will also check the shdlc sticky status and report to HCI
201when it discovers it is not able to run anymore because of an unrecoverable
202error that happened within shdlc or below. If the problem occurs during shdlc
203connection, the error is reported through the connect completion.
204
205- HCI: if an internal HCI error happens (frame is lost), or HCI is reported an
206error from a lower layer, HCI will either complete the currently executing
207command with that error, or notify NFC Core directly if no command is executing.
208
209- NFC Core: when NFC Core is notified of an error from below and polling is
210active, it will send a tag discovered event with an empty tag list to the user
211space to let it know that the poll operation will never be able to detect a tag.
212If polling is not active and the error was sticky, lower levels will return it
213at next invocation.
diff --git a/Documentation/power/devices.txt b/Documentation/power/devices.txt
index 872815cd41d3..504dfe4d52eb 100644
--- a/Documentation/power/devices.txt
+++ b/Documentation/power/devices.txt
@@ -583,9 +583,10 @@ for the given device during all power transitions, instead of the respective
583subsystem-level callbacks. Specifically, if a device's pm_domain pointer is 583subsystem-level callbacks. Specifically, if a device's pm_domain pointer is
584not NULL, the ->suspend() callback from the object pointed to by it will be 584not NULL, the ->suspend() callback from the object pointed to by it will be
585executed instead of its subsystem's (e.g. bus type's) ->suspend() callback and 585executed instead of its subsystem's (e.g. bus type's) ->suspend() callback and
586anlogously for all of the remaining callbacks. In other words, power management 586analogously for all of the remaining callbacks. In other words, power
587domain callbacks, if defined for the given device, always take precedence over 587management domain callbacks, if defined for the given device, always take
588the callbacks provided by the device's subsystem (e.g. bus type). 588precedence over the callbacks provided by the device's subsystem (e.g. bus
589type).
589 590
590The support for device power management domains is only relevant to platforms 591The support for device power management domains is only relevant to platforms
591needing to use the same device driver power management callbacks in many 592needing to use the same device driver power management callbacks in many
@@ -598,7 +599,7 @@ it into account in any way.
598Device Low Power (suspend) States 599Device Low Power (suspend) States
599--------------------------------- 600---------------------------------
600Device low-power states aren't standard. One device might only handle 601Device low-power states aren't standard. One device might only handle
601"on" and "off, while another might support a dozen different versions of 602"on" and "off", while another might support a dozen different versions of
602"on" (how many engines are active?), plus a state that gets back to "on" 603"on" (how many engines are active?), plus a state that gets back to "on"
603faster than from a full "off". 604faster than from a full "off".
604 605
diff --git a/Documentation/power/swsusp.txt b/Documentation/power/swsusp.txt
index ac190cf1963e..92341b84250d 100644
--- a/Documentation/power/swsusp.txt
+++ b/Documentation/power/swsusp.txt
@@ -33,6 +33,11 @@ echo shutdown > /sys/power/disk; echo disk > /sys/power/state
33 33
34echo platform > /sys/power/disk; echo disk > /sys/power/state 34echo platform > /sys/power/disk; echo disk > /sys/power/state
35 35
36. If you would like to write hibernation image to swap and then suspend
37to RAM (provided your platform supports it), you can try
38
39echo suspend > /sys/power/disk; echo disk > /sys/power/state
40
36. If you have SATA disks, you'll need recent kernels with SATA suspend 41. If you have SATA disks, you'll need recent kernels with SATA suspend
37support. For suspend and resume to work, make sure your disk drivers 42support. For suspend and resume to work, make sure your disk drivers
38are built into kernel -- not modules. [There's way to make 43are built into kernel -- not modules. [There's way to make
diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt
index 221b81016dba..4e4d0bc9816f 100644
--- a/Documentation/sound/alsa/ALSA-Configuration.txt
+++ b/Documentation/sound/alsa/ALSA-Configuration.txt
@@ -875,8 +875,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
875 setup before initializing the codecs. This option is 875 setup before initializing the codecs. This option is
876 available only when CONFIG_SND_HDA_PATCH_LOADER=y is set. 876 available only when CONFIG_SND_HDA_PATCH_LOADER=y is set.
877 See HD-Audio.txt for details. 877 See HD-Audio.txt for details.
878 beep_mode - Selects the beep registration mode (0=off, 1=on, 2= 878 beep_mode - Selects the beep registration mode (0=off, 1=on); default
879 dynamic registration via mute switch on/off); the default
880 value is set via CONFIG_SND_HDA_INPUT_BEEP_MODE kconfig. 879 value is set via CONFIG_SND_HDA_INPUT_BEEP_MODE kconfig.
881 880
882 [Single (global) options] 881 [Single (global) options]
diff --git a/Documentation/sound/alsa/HD-Audio-Models.txt b/Documentation/sound/alsa/HD-Audio-Models.txt
index 03f7897c6414..7456360e161c 100644
--- a/Documentation/sound/alsa/HD-Audio-Models.txt
+++ b/Documentation/sound/alsa/HD-Audio-Models.txt
@@ -15,19 +15,24 @@ ALC260
15 15
16ALC262 16ALC262
17====== 17======
18 N/A 18 inv-dmic Inverted internal mic workaround
19 19
20ALC267/268 20ALC267/268
21========== 21==========
22 N/A 22 inv-dmic Inverted internal mic workaround
23 23
24ALC269 24ALC269/270/275/276/280/282
25====== 25======
26 laptop-amic Laptops with analog-mic input 26 laptop-amic Laptops with analog-mic input
27 laptop-dmic Laptops with digital-mic input 27 laptop-dmic Laptops with digital-mic input
28 alc269-dmic Enable ALC269(VA) digital mic workaround
29 alc271-dmic Enable ALC271X digital mic workaround
30 inv-dmic Inverted internal mic workaround
31 lenovo-dock Enables docking station I/O for some Lenovos
28 32
29ALC662/663/272 33ALC662/663/272
30============== 34==============
35 mario Chromebook mario model fixup
31 asus-mode1 ASUS 36 asus-mode1 ASUS
32 asus-mode2 ASUS 37 asus-mode2 ASUS
33 asus-mode3 ASUS 38 asus-mode3 ASUS
@@ -36,6 +41,7 @@ ALC662/663/272
36 asus-mode6 ASUS 41 asus-mode6 ASUS
37 asus-mode7 ASUS 42 asus-mode7 ASUS
38 asus-mode8 ASUS 43 asus-mode8 ASUS
44 inv-dmic Inverted internal mic workaround
39 45
40ALC680 46ALC680
41====== 47======
@@ -46,6 +52,7 @@ ALC882/883/885/888/889
46 acer-aspire-4930g Acer Aspire 4930G/5930G/6530G/6930G/7730G 52 acer-aspire-4930g Acer Aspire 4930G/5930G/6530G/6930G/7730G
47 acer-aspire-8930g Acer Aspire 8330G/6935G 53 acer-aspire-8930g Acer Aspire 8330G/6935G
48 acer-aspire Acer Aspire others 54 acer-aspire Acer Aspire others
55 inv-dmic Inverted internal mic workaround
49 56
50ALC861/660 57ALC861/660
51========== 58==========
diff --git a/Documentation/sound/alsa/hdspm.txt b/Documentation/sound/alsa/hdspm.txt
index 7a67ff71a9f8..7ba31948dea7 100644
--- a/Documentation/sound/alsa/hdspm.txt
+++ b/Documentation/sound/alsa/hdspm.txt
@@ -359,4 +359,4 @@ Calling Parameter:
359 enable_monitor int array (min = 1, max = 8), 359 enable_monitor int array (min = 1, max = 8),
360 "Enable Analog Out on Channel 63/64 by default." 360 "Enable Analog Out on Channel 63/64 by default."
361 361
362 note: here the analog output is enabled (but not routed). \ No newline at end of file 362 note: here the analog output is enabled (but not routed).
diff --git a/Documentation/video4linux/cpia2_overview.txt b/Documentation/video4linux/cpia2_overview.txt
index a6e53665216b..ad6adbedfe50 100644
--- a/Documentation/video4linux/cpia2_overview.txt
+++ b/Documentation/video4linux/cpia2_overview.txt
@@ -35,4 +35,4 @@ the camera. There are three modes for this. Block mode requests a number
35of contiguous registers. Random mode reads or writes random registers with 35of contiguous registers. Random mode reads or writes random registers with
36a tuple structure containing address/value pairs. The repeat mode is only 36a tuple structure containing address/value pairs. The repeat mode is only
37used by VP4 to load a firmware patch. It contains a starting address and 37used by VP4 to load a firmware patch. It contains a starting address and
38a sequence of bytes to be written into a gpio port. \ No newline at end of file 38a sequence of bytes to be written into a gpio port.
diff --git a/Documentation/video4linux/stv680.txt b/Documentation/video4linux/stv680.txt
index 4f8946f32f51..e3de33645308 100644
--- a/Documentation/video4linux/stv680.txt
+++ b/Documentation/video4linux/stv680.txt
@@ -50,4 +50,4 @@ The latest info on this driver can be found at:
50http://personal.clt.bellsouth.net/~kjsisson or at 50http://personal.clt.bellsouth.net/~kjsisson or at
51http://stv0680-usb.sourceforge.net 51http://stv0680-usb.sourceforge.net
52 52
53Any questions to me can be send to: kjsisson@bellsouth.net \ No newline at end of file 53Any questions to me can be send to: kjsisson@bellsouth.net
diff --git a/Documentation/virtual/kvm/api.txt b/Documentation/virtual/kvm/api.txt
index 2c9948379469..bf33aaa4c59f 100644
--- a/Documentation/virtual/kvm/api.txt
+++ b/Documentation/virtual/kvm/api.txt
@@ -1946,6 +1946,40 @@ the guest using the specified gsi pin. The irqfd is removed using
1946the KVM_IRQFD_FLAG_DEASSIGN flag, specifying both kvm_irqfd.fd 1946the KVM_IRQFD_FLAG_DEASSIGN flag, specifying both kvm_irqfd.fd
1947and kvm_irqfd.gsi. 1947and kvm_irqfd.gsi.
1948 1948
19494.76 KVM_PPC_ALLOCATE_HTAB
1950
1951Capability: KVM_CAP_PPC_ALLOC_HTAB
1952Architectures: powerpc
1953Type: vm ioctl
1954Parameters: Pointer to u32 containing hash table order (in/out)
1955Returns: 0 on success, -1 on error
1956
1957This requests the host kernel to allocate an MMU hash table for a
1958guest using the PAPR paravirtualization interface. This only does
1959anything if the kernel is configured to use the Book 3S HV style of
1960virtualization. Otherwise the capability doesn't exist and the ioctl
1961returns an ENOTTY error. The rest of this description assumes Book 3S
1962HV.
1963
1964There must be no vcpus running when this ioctl is called; if there
1965are, it will do nothing and return an EBUSY error.
1966
1967The parameter is a pointer to a 32-bit unsigned integer variable
1968containing the order (log base 2) of the desired size of the hash
1969table, which must be between 18 and 46. On successful return from the
1970ioctl, it will have been updated with the order of the hash table that
1971was allocated.
1972
1973If no hash table has been allocated when any vcpu is asked to run
1974(with the KVM_RUN ioctl), the host kernel will allocate a
1975default-sized hash table (16 MB).
1976
1977If this ioctl is called when a hash table has already been allocated,
1978the kernel will clear out the existing hash table (zero all HPTEs) and
1979return the hash table order in the parameter. (If the guest is using
1980the virtualized real-mode area (VRMA) facility, the kernel will
1981re-create the VMRA HPTEs on the next KVM_RUN of any vcpu.)
1982
1949 1983
19505. The kvm_run structure 19845. The kvm_run structure
1951------------------------ 1985------------------------
diff --git a/Documentation/virtual/kvm/locking.txt b/Documentation/virtual/kvm/locking.txt
index 3b4cd3bf5631..41b7ac9884b5 100644
--- a/Documentation/virtual/kvm/locking.txt
+++ b/Documentation/virtual/kvm/locking.txt
@@ -6,7 +6,129 @@ KVM Lock Overview
6 6
7(to be written) 7(to be written)
8 8
92. Reference 92: Exception
10------------
11
12Fast page fault:
13
14Fast page fault is the fast path which fixes the guest page fault out of
15the mmu-lock on x86. Currently, the page fault can be fast only if the
16shadow page table is present and it is caused by write-protect, that means
17we just need change the W bit of the spte.
18
19What we use to avoid all the race is the SPTE_HOST_WRITEABLE bit and
20SPTE_MMU_WRITEABLE bit on the spte:
21- SPTE_HOST_WRITEABLE means the gfn is writable on host.
22- SPTE_MMU_WRITEABLE means the gfn is writable on mmu. The bit is set when
23 the gfn is writable on guest mmu and it is not write-protected by shadow
24 page write-protection.
25
26On fast page fault path, we will use cmpxchg to atomically set the spte W
27bit if spte.SPTE_HOST_WRITEABLE = 1 and spte.SPTE_WRITE_PROTECT = 1, this
28is safe because whenever changing these bits can be detected by cmpxchg.
29
30But we need carefully check these cases:
311): The mapping from gfn to pfn
32The mapping from gfn to pfn may be changed since we can only ensure the pfn
33is not changed during cmpxchg. This is a ABA problem, for example, below case
34will happen:
35
36At the beginning:
37gpte = gfn1
38gfn1 is mapped to pfn1 on host
39spte is the shadow page table entry corresponding with gpte and
40spte = pfn1
41
42 VCPU 0 VCPU0
43on fast page fault path:
44
45 old_spte = *spte;
46 pfn1 is swapped out:
47 spte = 0;
48
49 pfn1 is re-alloced for gfn2.
50
51 gpte is changed to point to
52 gfn2 by the guest:
53 spte = pfn1;
54
55 if (cmpxchg(spte, old_spte, old_spte+W)
56 mark_page_dirty(vcpu->kvm, gfn1)
57 OOPS!!!
58
59We dirty-log for gfn1, that means gfn2 is lost in dirty-bitmap.
60
61For direct sp, we can easily avoid it since the spte of direct sp is fixed
62to gfn. For indirect sp, before we do cmpxchg, we call gfn_to_pfn_atomic()
63to pin gfn to pfn, because after gfn_to_pfn_atomic():
64- We have held the refcount of pfn that means the pfn can not be freed and
65 be reused for another gfn.
66- The pfn is writable that means it can not be shared between different gfns
67 by KSM.
68
69Then, we can ensure the dirty bitmaps is correctly set for a gfn.
70
71Currently, to simplify the whole things, we disable fast page fault for
72indirect shadow page.
73
742): Dirty bit tracking
75In the origin code, the spte can be fast updated (non-atomically) if the
76spte is read-only and the Accessed bit has already been set since the
77Accessed bit and Dirty bit can not be lost.
78
79But it is not true after fast page fault since the spte can be marked
80writable between reading spte and updating spte. Like below case:
81
82At the beginning:
83spte.W = 0
84spte.Accessed = 1
85
86 VCPU 0 VCPU0
87In mmu_spte_clear_track_bits():
88
89 old_spte = *spte;
90
91 /* 'if' condition is satisfied. */
92 if (old_spte.Accssed == 1 &&
93 old_spte.W == 0)
94 spte = 0ull;
95 on fast page fault path:
96 spte.W = 1
97 memory write on the spte:
98 spte.Dirty = 1
99
100
101 else
102 old_spte = xchg(spte, 0ull)
103
104
105 if (old_spte.Accssed == 1)
106 kvm_set_pfn_accessed(spte.pfn);
107 if (old_spte.Dirty == 1)
108 kvm_set_pfn_dirty(spte.pfn);
109 OOPS!!!
110
111The Dirty bit is lost in this case.
112
113In order to avoid this kind of issue, we always treat the spte as "volatile"
114if it can be updated out of mmu-lock, see spte_has_volatile_bits(), it means,
115the spte is always atomicly updated in this case.
116
1173): flush tlbs due to spte updated
118If the spte is updated from writable to readonly, we should flush all TLBs,
119otherwise rmap_write_protect will find a read-only spte, even though the
120writable spte might be cached on a CPU's TLB.
121
122As mentioned before, the spte can be updated to writable out of mmu-lock on
123fast page fault path, in order to easily audit the path, we see if TLBs need
124be flushed caused by this reason in mmu_spte_update() since this is a common
125function to update spte (present -> present).
126
127Since the spte is "volatile" if it can be updated out of mmu-lock, we always
128atomicly update the spte, the race caused by fast page fault can be avoided,
129See the comments in spte_has_volatile_bits() and mmu_spte_update().
130
1313. Reference
10------------ 132------------
11 133
12Name: kvm_lock 134Name: kvm_lock
@@ -23,3 +145,9 @@ Arch: x86
23Protects: - kvm_arch::{last_tsc_write,last_tsc_nsec,last_tsc_offset} 145Protects: - kvm_arch::{last_tsc_write,last_tsc_nsec,last_tsc_offset}
24 - tsc offset in vmcb 146 - tsc offset in vmcb
25Comment: 'raw' because updating the tsc offsets must not be preempted. 147Comment: 'raw' because updating the tsc offsets must not be preempted.
148
149Name: kvm->mmu_lock
150Type: spinlock_t
151Arch: any
152Protects: -shadow page/shadow tlb entry
153Comment: it is a spinlock since it is used in mmu notifier.
diff --git a/Documentation/virtual/kvm/msr.txt b/Documentation/virtual/kvm/msr.txt
index 96b41bd97523..730471048583 100644
--- a/Documentation/virtual/kvm/msr.txt
+++ b/Documentation/virtual/kvm/msr.txt
@@ -223,3 +223,36 @@ MSR_KVM_STEAL_TIME: 0x4b564d03
223 steal: the amount of time in which this vCPU did not run, in 223 steal: the amount of time in which this vCPU did not run, in
224 nanoseconds. Time during which the vcpu is idle, will not be 224 nanoseconds. Time during which the vcpu is idle, will not be
225 reported as steal time. 225 reported as steal time.
226
227MSR_KVM_EOI_EN: 0x4b564d04
228 data: Bit 0 is 1 when PV end of interrupt is enabled on the vcpu; 0
229 when disabled. Bit 1 is reserved and must be zero. When PV end of
230 interrupt is enabled (bit 0 set), bits 63-2 hold a 4-byte aligned
231 physical address of a 4 byte memory area which must be in guest RAM and
232 must be zeroed.
233
234 The first, least significant bit of 4 byte memory location will be
235 written to by the hypervisor, typically at the time of interrupt
236 injection. Value of 1 means that guest can skip writing EOI to the apic
237 (using MSR or MMIO write); instead, it is sufficient to signal
238 EOI by clearing the bit in guest memory - this location will
239 later be polled by the hypervisor.
240 Value of 0 means that the EOI write is required.
241
242 It is always safe for the guest to ignore the optimization and perform
243 the APIC EOI write anyway.
244
245 Hypervisor is guaranteed to only modify this least
246 significant bit while in the current VCPU context, this means that
247 guest does not need to use either lock prefix or memory ordering
248 primitives to synchronise with the hypervisor.
249
250 However, hypervisor can set and clear this memory bit at any time:
251 therefore to make sure hypervisor does not interrupt the
252 guest and clear the least significant bit in the memory area
253 in the window between guest testing it to detect
254 whether it can skip EOI apic write and between guest
255 clearing it to signal EOI to the hypervisor,
256 guest must both read the least significant bit in the memory area and
257 clear it using a single CPU instruction, such as test and clear, or
258 compare and exchange.
diff --git a/Documentation/virtual/kvm/ppc-pv.txt b/Documentation/virtual/kvm/ppc-pv.txt
index 6e7c37050930..4911cf95c67e 100644
--- a/Documentation/virtual/kvm/ppc-pv.txt
+++ b/Documentation/virtual/kvm/ppc-pv.txt
@@ -109,8 +109,6 @@ The following bits are safe to be set inside the guest:
109 109
110 MSR_EE 110 MSR_EE
111 MSR_RI 111 MSR_RI
112 MSR_CR
113 MSR_ME
114 112
115If any other bit changes in the MSR, please still use mtmsr(d). 113If any other bit changes in the MSR, please still use mtmsr(d).
116 114
diff --git a/Documentation/vm/frontswap.txt b/Documentation/vm/frontswap.txt
index 37067cf455f4..5ef2d1366425 100644
--- a/Documentation/vm/frontswap.txt
+++ b/Documentation/vm/frontswap.txt
@@ -25,7 +25,7 @@ with the specified swap device number (aka "type"). A "store" will
25copy the page to transcendent memory and associate it with the type and 25copy the page to transcendent memory and associate it with the type and
26offset associated with the page. A "load" will copy the page, if found, 26offset associated with the page. A "load" will copy the page, if found,
27from transcendent memory into kernel memory, but will NOT remove the page 27from transcendent memory into kernel memory, but will NOT remove the page
28from from transcendent memory. An "invalidate_page" will remove the page 28from transcendent memory. An "invalidate_page" will remove the page
29from transcendent memory and an "invalidate_area" will remove ALL pages 29from transcendent memory and an "invalidate_area" will remove ALL pages
30associated with the swap type (e.g., like swapoff) and notify the "device" 30associated with the swap type (e.g., like swapoff) and notify the "device"
31to refuse further stores with that swap type. 31to refuse further stores with that swap type.
@@ -99,7 +99,7 @@ server configured with a large amount of RAM... without pre-configuring
99how much of the RAM is available for each of the clients! 99how much of the RAM is available for each of the clients!
100 100
101In the virtual case, the whole point of virtualization is to statistically 101In the virtual case, the whole point of virtualization is to statistically
102multiplex physical resources acrosst the varying demands of multiple 102multiplex physical resources across the varying demands of multiple
103virtual machines. This is really hard to do with RAM and efforts to do 103virtual machines. This is really hard to do with RAM and efforts to do
104it well with no kernel changes have essentially failed (except in some 104it well with no kernel changes have essentially failed (except in some
105well-publicized special-case workloads). 105well-publicized special-case workloads).
diff --git a/Documentation/workqueue.txt b/Documentation/workqueue.txt
index a0b577de918f..a6ab4b62d926 100644
--- a/Documentation/workqueue.txt
+++ b/Documentation/workqueue.txt
@@ -89,25 +89,28 @@ called thread-pools.
89 89
90The cmwq design differentiates between the user-facing workqueues that 90The cmwq design differentiates between the user-facing workqueues that
91subsystems and drivers queue work items on and the backend mechanism 91subsystems and drivers queue work items on and the backend mechanism
92which manages thread-pool and processes the queued work items. 92which manages thread-pools and processes the queued work items.
93 93
94The backend is called gcwq. There is one gcwq for each possible CPU 94The backend is called gcwq. There is one gcwq for each possible CPU
95and one gcwq to serve work items queued on unbound workqueues. 95and one gcwq to serve work items queued on unbound workqueues. Each
96gcwq has two thread-pools - one for normal work items and the other
97for high priority ones.
96 98
97Subsystems and drivers can create and queue work items through special 99Subsystems and drivers can create and queue work items through special
98workqueue API functions as they see fit. They can influence some 100workqueue API functions as they see fit. They can influence some
99aspects of the way the work items are executed by setting flags on the 101aspects of the way the work items are executed by setting flags on the
100workqueue they are putting the work item on. These flags include 102workqueue they are putting the work item on. These flags include
101things like CPU locality, reentrancy, concurrency limits and more. To 103things like CPU locality, reentrancy, concurrency limits, priority and
102get a detailed overview refer to the API description of 104more. To get a detailed overview refer to the API description of
103alloc_workqueue() below. 105alloc_workqueue() below.
104 106
105When a work item is queued to a workqueue, the target gcwq is 107When a work item is queued to a workqueue, the target gcwq and
106determined according to the queue parameters and workqueue attributes 108thread-pool is determined according to the queue parameters and
107and appended on the shared worklist of the gcwq. For example, unless 109workqueue attributes and appended on the shared worklist of the
108specifically overridden, a work item of a bound workqueue will be 110thread-pool. For example, unless specifically overridden, a work item
109queued on the worklist of exactly that gcwq that is associated to the 111of a bound workqueue will be queued on the worklist of either normal
110CPU the issuer is running on. 112or highpri thread-pool of the gcwq that is associated to the CPU the
113issuer is running on.
111 114
112For any worker pool implementation, managing the concurrency level 115For any worker pool implementation, managing the concurrency level
113(how many execution contexts are active) is an important issue. cmwq 116(how many execution contexts are active) is an important issue. cmwq
@@ -115,26 +118,26 @@ tries to keep the concurrency at a minimal but sufficient level.
115Minimal to save resources and sufficient in that the system is used at 118Minimal to save resources and sufficient in that the system is used at
116its full capacity. 119its full capacity.
117 120
118Each gcwq bound to an actual CPU implements concurrency management by 121Each thread-pool bound to an actual CPU implements concurrency
119hooking into the scheduler. The gcwq is notified whenever an active 122management by hooking into the scheduler. The thread-pool is notified
120worker wakes up or sleeps and keeps track of the number of the 123whenever an active worker wakes up or sleeps and keeps track of the
121currently runnable workers. Generally, work items are not expected to 124number of the currently runnable workers. Generally, work items are
122hog a CPU and consume many cycles. That means maintaining just enough 125not expected to hog a CPU and consume many cycles. That means
123concurrency to prevent work processing from stalling should be 126maintaining just enough concurrency to prevent work processing from
124optimal. As long as there are one or more runnable workers on the 127stalling should be optimal. As long as there are one or more runnable
125CPU, the gcwq doesn't start execution of a new work, but, when the 128workers on the CPU, the thread-pool doesn't start execution of a new
126last running worker goes to sleep, it immediately schedules a new 129work, but, when the last running worker goes to sleep, it immediately
127worker so that the CPU doesn't sit idle while there are pending work 130schedules a new worker so that the CPU doesn't sit idle while there
128items. This allows using a minimal number of workers without losing 131are pending work items. This allows using a minimal number of workers
129execution bandwidth. 132without losing execution bandwidth.
130 133
131Keeping idle workers around doesn't cost other than the memory space 134Keeping idle workers around doesn't cost other than the memory space
132for kthreads, so cmwq holds onto idle ones for a while before killing 135for kthreads, so cmwq holds onto idle ones for a while before killing
133them. 136them.
134 137
135For an unbound wq, the above concurrency management doesn't apply and 138For an unbound wq, the above concurrency management doesn't apply and
136the gcwq for the pseudo unbound CPU tries to start executing all work 139the thread-pools for the pseudo unbound CPU try to start executing all
137items as soon as possible. The responsibility of regulating 140work items as soon as possible. The responsibility of regulating
138concurrency level is on the users. There is also a flag to mark a 141concurrency level is on the users. There is also a flag to mark a
139bound wq to ignore the concurrency management. Please refer to the 142bound wq to ignore the concurrency management. Please refer to the
140API section for details. 143API section for details.
@@ -205,31 +208,22 @@ resources, scheduled and executed.
205 208
206 WQ_HIGHPRI 209 WQ_HIGHPRI
207 210
208 Work items of a highpri wq are queued at the head of the 211 Work items of a highpri wq are queued to the highpri
209 worklist of the target gcwq and start execution regardless of 212 thread-pool of the target gcwq. Highpri thread-pools are
210 the current concurrency level. In other words, highpri work 213 served by worker threads with elevated nice level.
211 items will always start execution as soon as execution
212 resource is available.
213 214
214 Ordering among highpri work items is preserved - a highpri 215 Note that normal and highpri thread-pools don't interact with
215 work item queued after another highpri work item will start 216 each other. Each maintain its separate pool of workers and
216 execution after the earlier highpri work item starts. 217 implements concurrency management among its workers.
217
218 Although highpri work items are not held back by other
219 runnable work items, they still contribute to the concurrency
220 level. Highpri work items in runnable state will prevent
221 non-highpri work items from starting execution.
222
223 This flag is meaningless for unbound wq.
224 218
225 WQ_CPU_INTENSIVE 219 WQ_CPU_INTENSIVE
226 220
227 Work items of a CPU intensive wq do not contribute to the 221 Work items of a CPU intensive wq do not contribute to the
228 concurrency level. In other words, runnable CPU intensive 222 concurrency level. In other words, runnable CPU intensive
229 work items will not prevent other work items from starting 223 work items will not prevent other work items in the same
230 execution. This is useful for bound work items which are 224 thread-pool from starting execution. This is useful for bound
231 expected to hog CPU cycles so that their execution is 225 work items which are expected to hog CPU cycles so that their
232 regulated by the system scheduler. 226 execution is regulated by the system scheduler.
233 227
234 Although CPU intensive work items don't contribute to the 228 Although CPU intensive work items don't contribute to the
235 concurrency level, start of their executions is still 229 concurrency level, start of their executions is still
@@ -239,14 +233,6 @@ resources, scheduled and executed.
239 233
240 This flag is meaningless for unbound wq. 234 This flag is meaningless for unbound wq.
241 235
242 WQ_HIGHPRI | WQ_CPU_INTENSIVE
243
244 This combination makes the wq avoid interaction with
245 concurrency management completely and behave as a simple
246 per-CPU execution context provider. Work items queued on a
247 highpri CPU-intensive wq start execution as soon as resources
248 are available and don't affect execution of other work items.
249
250@max_active: 236@max_active:
251 237
252@max_active determines the maximum number of execution contexts per 238@max_active determines the maximum number of execution contexts per
@@ -328,20 +314,7 @@ If @max_active == 2,
328 35 w2 wakes up and finishes 314 35 w2 wakes up and finishes
329 315
330Now, let's assume w1 and w2 are queued to a different wq q1 which has 316Now, let's assume w1 and w2 are queued to a different wq q1 which has
331WQ_HIGHPRI set, 317WQ_CPU_INTENSIVE set,
332
333 TIME IN MSECS EVENT
334 0 w1 and w2 start and burn CPU
335 5 w1 sleeps
336 10 w2 sleeps
337 10 w0 starts and burns CPU
338 15 w0 sleeps
339 15 w1 wakes up and finishes
340 20 w2 wakes up and finishes
341 25 w0 wakes up and burns CPU
342 30 w0 finishes
343
344If q1 has WQ_CPU_INTENSIVE set,
345 318
346 TIME IN MSECS EVENT 319 TIME IN MSECS EVENT
347 0 w0 starts and burns CPU 320 0 w0 starts and burns CPU