瀏覽代碼

Merge tag 'asoc-v3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next

ASoC: Updates for v3.16

Lots of cleanup work going on in the core this release but very little
visible to external users except for the new drivers that have been
added.

 - Support for specifying aux CODECs in DT.
 - Removal of the deprecated mux and enum macros.
 - More moves towards full componentisation.
 - Removal of some unused I/O code.
 - Lots of cleanups, fixes and enhancements to the davinci, Freescale,
   Haswell and Realtek drivers.
 - Several drivers exposed directly in Kconfig for use with simple-card.
 - New drivers for Cirrus CS42L56, Realtek RT5639, RT5642 and RT5651 and
   ST STA350.
Takashi Iwai 11 年之前
父節點
當前提交
0c1d121016
共有 100 個文件被更改,包括 884 次插入255 次删除
  1. 3 0
      Documentation/devicetree/bindings/arm/arch_timer.txt
  2. 3 0
      Documentation/devicetree/bindings/ata/apm-xgene.txt
  3. 3 0
      Documentation/devicetree/bindings/mfd/mc13xxx.txt
  4. 10 2
      Documentation/devicetree/bindings/net/arc_emac.txt
  5. 1 1
      Documentation/devicetree/bindings/net/socfpga-dwmac.txt
  6. 1 1
      Documentation/devicetree/bindings/net/stmmac.txt
  7. 2 2
      Documentation/devicetree/bindings/pinctrl/pinctrl-st.txt
  8. 3 0
      Documentation/devicetree/bindings/sound/ak4104.txt
  9. 25 0
      Documentation/devicetree/bindings/sound/alc5623.txt
  10. 63 0
      Documentation/devicetree/bindings/sound/cs42l56.txt
  11. 1 1
      Documentation/devicetree/bindings/sound/davinci-mcasp-audio.txt
  12. 7 4
      Documentation/devicetree/bindings/sound/fsl-sai.txt
  13. 16 0
      Documentation/devicetree/bindings/sound/max98095.txt
  14. 27 0
      Documentation/devicetree/bindings/sound/nokia,rx51.txt
  15. 8 5
      Documentation/devicetree/bindings/sound/rt5640.txt
  16. 50 38
      Documentation/devicetree/bindings/sound/simple-card.txt
  17. 17 0
      Documentation/devicetree/bindings/sound/snow.txt
  18. 131 0
      Documentation/devicetree/bindings/sound/st,sta350.txt
  19. 4 1
      Documentation/input/elantech.txt
  20. 1 1
      Documentation/networking/scaling.txt
  21. 15 12
      MAINTAINERS
  22. 1 1
      Makefile
  23. 5 3
      arch/arc/kernel/entry.S
  24. 9 8
      arch/arm/Kconfig
  25. 6 6
      arch/arm/Kconfig.debug
  26. 10 10
      arch/arm/boot/dts/Makefile
  27. 2 2
      arch/arm/boot/dts/am335x-bone-common.dtsi
  28. 4 4
      arch/arm/boot/dts/am335x-evm.dts
  29. 2 2
      arch/arm/boot/dts/am335x-evmsk.dts
  30. 2 3
      arch/arm/boot/dts/am335x-igep0033.dtsi
  31. 5 5
      arch/arm/boot/dts/am33xx.dtsi
  32. 2 2
      arch/arm/boot/dts/am4372.dtsi
  33. 1 0
      arch/arm/boot/dts/armada-370-xp.dtsi
  34. 1 0
      arch/arm/boot/dts/armada-38x.dtsi
  35. 2 2
      arch/arm/boot/dts/dra7.dtsi
  36. 1 1
      arch/arm/boot/dts/dra7xx-clocks.dtsi
  37. 1 0
      arch/arm/boot/dts/imx25.dtsi
  38. 1 0
      arch/arm/boot/dts/imx27-apf27.dts
  39. 1 0
      arch/arm/boot/dts/imx27.dtsi
  40. 4 0
      arch/arm/boot/dts/imx50.dtsi
  41. 4 0
      arch/arm/boot/dts/imx51.dtsi
  42. 12 11
      arch/arm/boot/dts/imx53-m53evk.dts
  43. 2 1
      arch/arm/boot/dts/imx53-qsb-common.dtsi
  44. 10 1
      arch/arm/boot/dts/imx53-tx53-x03x.dts
  45. 5 1
      arch/arm/boot/dts/imx53.dtsi
  46. 35 13
      arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts
  47. 0 3
      arch/arm/boot/dts/imx6q-gw5400-a.dts
  48. 0 3
      arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
  49. 11 11
      arch/arm/boot/dts/imx6qdl-microsom-ar8035.dtsi
  50. 11 2
      arch/arm/boot/dts/imx6qdl.dtsi
  51. 1 0
      arch/arm/boot/dts/imx6sl-evk.dts
  52. 2 2
      arch/arm/boot/dts/imx6sl.dtsi
  53. 1 1
      arch/arm/boot/dts/kirkwood-b3.dts
  54. 1 1
      arch/arm/boot/dts/kirkwood-cloudbox.dts
  55. 1 1
      arch/arm/boot/dts/kirkwood-dreamplug.dts
  56. 1 1
      arch/arm/boot/dts/kirkwood-laplug.dts
  57. 1 1
      arch/arm/boot/dts/kirkwood-mv88f6281gtw-ge.dts
  58. 2 2
      arch/arm/boot/dts/kirkwood-ns2-common.dtsi
  59. 1 1
      arch/arm/boot/dts/kirkwood-nsa310.dts
  60. 1 1
      arch/arm/boot/dts/kirkwood-nsa310a.dts
  61. 1 1
      arch/arm/boot/dts/kirkwood-openblocks_a6.dts
  62. 1 1
      arch/arm/boot/dts/kirkwood-openblocks_a7.dts
  63. 16 0
      arch/arm/boot/dts/omap3-beagle-xm-ab.dts
  64. 0 1
      arch/arm/boot/dts/omap3-devkit8000.dts
  65. 0 1
      arch/arm/boot/dts/omap3-lilly-a83x.dtsi
  66. 1 1
      arch/arm/boot/dts/omap3.dtsi
  67. 2 2
      arch/arm/boot/dts/omap4.dtsi
  68. 8 2
      arch/arm/boot/dts/omap5.dtsi
  69. 0 1
      arch/arm/boot/dts/r8a7740.dtsi
  70. 2 2
      arch/arm/boot/dts/r8a7790-lager.dts
  71. 1 1
      arch/arm/boot/dts/r8a7790.dtsi
  72. 3 3
      arch/arm/boot/dts/r8a7791-koelsch.dts
  73. 1 1
      arch/arm/boot/dts/r8a7791.dtsi
  74. 4 4
      arch/arm/boot/dts/rk3188.dtsi
  75. 0 1
      arch/arm/boot/dts/sh73a0.dtsi
  76. 5 5
      arch/arm/boot/dts/stih415-pinctrl.dtsi
  77. 5 5
      arch/arm/boot/dts/stih416-pinctrl.dtsi
  78. 0 13
      arch/arm/boot/dts/tegra124.dtsi
  79. 2 0
      arch/arm/boot/dts/vf610-twr.dts
  80. 2 2
      arch/arm/boot/dts/vf610.dtsi
  81. 23 0
      arch/arm/boot/dts/zynq-7000.dtsi
  82. 76 0
      arch/arm/boot/dts/zynq-zc702.dts
  83. 68 0
      arch/arm/boot/dts/zynq-zc706.dts
  84. 2 4
      arch/arm/common/bL_switcher.c
  85. 5 0
      arch/arm/common/mcpm_entry.c
  86. 1 1
      arch/arm/configs/omap2plus_defconfig
  87. 2 2
      arch/arm/configs/u300_defconfig
  88. 15 9
      arch/arm/configs/u8500_defconfig
  89. 7 7
      arch/arm/include/asm/cputype.h
  90. 1 1
      arch/arm/include/asm/div64.h
  91. 7 0
      arch/arm/include/asm/mcpm.h
  92. 11 1
      arch/arm/include/asm/tlb.h
  93. 1 0
      arch/arm/include/uapi/asm/unistd.h
  94. 1 0
      arch/arm/kernel/Makefile
  95. 1 0
      arch/arm/kernel/calls.S
  96. 1 1
      arch/arm/kernel/head.S
  97. 6 2
      arch/arm/kernel/iwmmxt.S
  98. 7 0
      arch/arm/kernel/machine_kexec.c
  99. 39 3
      arch/arm/kernel/pj4-cp0.c
  100. 3 3
      arch/arm/kernel/sys_oabi-compat.c

+ 3 - 0
Documentation/devicetree/bindings/arm/arch_timer.txt

@@ -19,6 +19,9 @@ to deliver its interrupts via SPIs.
 
 
 - clock-frequency : The frequency of the main counter, in Hz. Optional.
 - clock-frequency : The frequency of the main counter, in Hz. Optional.
 
 
+- always-on : a boolean property. If present, the timer is powered through an
+  always-on power domain, therefore it never loses context.
+
 Example:
 Example:
 
 
 	timer {
 	timer {

+ 3 - 0
Documentation/devicetree/bindings/ata/apm-xgene.txt

@@ -24,6 +24,7 @@ Required properties:
   * "sata-phy" for the SATA 6.0Gbps PHY
   * "sata-phy" for the SATA 6.0Gbps PHY
 
 
 Optional properties:
 Optional properties:
+- dma-coherent		: Present if dma operations are coherent
 - status		: Shall be "ok" if enabled or "disabled" if disabled.
 - status		: Shall be "ok" if enabled or "disabled" if disabled.
 			  Default is "ok".
 			  Default is "ok".
 
 
@@ -55,6 +56,7 @@ Example:
 			      <0x0 0x1f22e000 0x0 0x1000>,
 			      <0x0 0x1f22e000 0x0 0x1000>,
 			      <0x0 0x1f227000 0x0 0x1000>;
 			      <0x0 0x1f227000 0x0 0x1000>;
 			interrupts = <0x0 0x87 0x4>;
 			interrupts = <0x0 0x87 0x4>;
+			dma-coherent;
 			status = "ok";
 			status = "ok";
 			clocks = <&sataclk 0>;
 			clocks = <&sataclk 0>;
 			phys = <&phy2 0>;
 			phys = <&phy2 0>;
@@ -69,6 +71,7 @@ Example:
 			      <0x0 0x1f23e000 0x0 0x1000>,
 			      <0x0 0x1f23e000 0x0 0x1000>,
 			      <0x0 0x1f237000 0x0 0x1000>;
 			      <0x0 0x1f237000 0x0 0x1000>;
 			interrupts = <0x0 0x88 0x4>;
 			interrupts = <0x0 0x88 0x4>;
+			dma-coherent;
 			status = "ok";
 			status = "ok";
 			clocks = <&sataclk 0>;
 			clocks = <&sataclk 0>;
 			phys = <&phy3 0>;
 			phys = <&phy3 0>;

+ 3 - 0
Documentation/devicetree/bindings/mfd/mc13xxx.txt

@@ -10,6 +10,9 @@ Optional properties:
 - fsl,mc13xxx-uses-touch : Indicate the touchscreen controller is being used
 - fsl,mc13xxx-uses-touch : Indicate the touchscreen controller is being used
 
 
 Sub-nodes:
 Sub-nodes:
+- codec: Contain the Audio Codec node.
+  - adc-port: Contain PMIC SSI port number used for ADC.
+  - dac-port: Contain PMIC SSI port number used for DAC.
 - leds : Contain the led nodes and initial register values in property
 - leds : Contain the led nodes and initial register values in property
   "led-control". Number of register depends of used IC, for MC13783 is 6,
   "led-control". Number of register depends of used IC, for MC13783 is 6,
   for MC13892 is 4, for MC34708 is 1. See datasheet for bits definitions of
   for MC13892 is 4, for MC34708 is 1. See datasheet for bits definitions of

+ 10 - 2
Documentation/devicetree/bindings/net/arc_emac.txt

@@ -4,11 +4,15 @@ Required properties:
 - compatible: Should be "snps,arc-emac"
 - compatible: Should be "snps,arc-emac"
 - reg: Address and length of the register set for the device
 - reg: Address and length of the register set for the device
 - interrupts: Should contain the EMAC interrupts
 - interrupts: Should contain the EMAC interrupts
-- clock-frequency: CPU frequency. It is needed to calculate and set polling
-period of EMAC.
 - max-speed: see ethernet.txt file in the same directory.
 - max-speed: see ethernet.txt file in the same directory.
 - phy: see ethernet.txt file in the same directory.
 - phy: see ethernet.txt file in the same directory.
 
 
+Clock handling:
+The clock frequency is needed to calculate and set polling period of EMAC.
+It must be provided by one of:
+- clock-frequency: CPU frequency.
+- clocks: reference to the clock supplying the EMAC.
+
 Child nodes of the driver are the individual PHY devices connected to the
 Child nodes of the driver are the individual PHY devices connected to the
 MDIO bus. They must have a "reg" property given the PHY address on the MDIO bus.
 MDIO bus. They must have a "reg" property given the PHY address on the MDIO bus.
 
 
@@ -19,7 +23,11 @@ Examples:
 		reg = <0xc0fc2000 0x3c>;
 		reg = <0xc0fc2000 0x3c>;
 		interrupts = <6>;
 		interrupts = <6>;
 		mac-address = [ 00 11 22 33 44 55 ];
 		mac-address = [ 00 11 22 33 44 55 ];
+
 		clock-frequency = <80000000>;
 		clock-frequency = <80000000>;
+		/* or */
+		clocks = <&emac_clock>;
+
 		max-speed = <100>;
 		max-speed = <100>;
 		phy = <&phy0>;
 		phy = <&phy0>;
 
 

+ 1 - 1
Documentation/devicetree/bindings/net/socfpga-dwmac.txt

@@ -23,5 +23,5 @@ gmac0: ethernet@ff700000 {
 	interrupt-names = "macirq";
 	interrupt-names = "macirq";
 	mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
 	mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
 	clocks = <&emac_0_clk>;
 	clocks = <&emac_0_clk>;
-	clocks-names = "stmmaceth";
+	clock-names = "stmmaceth";
 };
 };

+ 1 - 1
Documentation/devicetree/bindings/net/stmmac.txt

@@ -33,7 +33,7 @@ Optional properties:
 - max-frame-size: See ethernet.txt file in the same directory
 - max-frame-size: See ethernet.txt file in the same directory
 - clocks: If present, the first clock should be the GMAC main clock,
 - clocks: If present, the first clock should be the GMAC main clock,
   further clocks may be specified in derived bindings.
   further clocks may be specified in derived bindings.
-- clocks-names: One name for each entry in the clocks property, the
+- clock-names: One name for each entry in the clocks property, the
   first one should be "stmmaceth".
   first one should be "stmmaceth".
 
 
 Examples:
 Examples:

+ 2 - 2
Documentation/devicetree/bindings/pinctrl/pinctrl-st.txt

@@ -83,7 +83,7 @@ Example:
 		reg 		= <0xfe61f080 0x4>;
 		reg 		= <0xfe61f080 0x4>;
 		reg-names	= "irqmux";
 		reg-names	= "irqmux";
 		interrupts 	= <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;
 		interrupts 	= <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;
-		interrupts-names = "irqmux";
+		interrupt-names	= "irqmux";
 		ranges 		= <0 0xfe610000 0x5000>;
 		ranges 		= <0 0xfe610000 0x5000>;
 
 
 		PIO0: gpio@fe610000 {
 		PIO0: gpio@fe610000 {
@@ -165,7 +165,7 @@ sdhci0:sdhci@fe810000{
 	interrupt-parent = <&PIO3>;
 	interrupt-parent = <&PIO3>;
 	#interrupt-cells = <2>;
 	#interrupt-cells = <2>;
 	interrupts = <3 IRQ_TYPE_LEVEL_HIGH>; /* Interrupt line via PIO3-3 */
 	interrupts = <3 IRQ_TYPE_LEVEL_HIGH>; /* Interrupt line via PIO3-3 */
-	interrupts-names = "card-detect";
+	interrupt-names = "card-detect";
 	pinctrl-names = "default";
 	pinctrl-names = "default";
 	pinctrl-0	= <&pinctrl_mmc>;
 	pinctrl-0	= <&pinctrl_mmc>;
 };
 };

+ 3 - 0
Documentation/devicetree/bindings/sound/ak4104.txt

@@ -8,6 +8,8 @@ Required properties:
 
 
   - reg : The chip select number on the SPI bus
   - reg : The chip select number on the SPI bus
 
 
+  - vdd-supply : A regulator node, providing 2.7V - 3.6V
+
 Optional properties:
 Optional properties:
 
 
   - reset-gpio : a GPIO spec for the reset pin. If specified, it will be
   - reset-gpio : a GPIO spec for the reset pin. If specified, it will be
@@ -19,4 +21,5 @@ spdif: ak4104@0 {
 	compatible = "asahi-kasei,ak4104";
 	compatible = "asahi-kasei,ak4104";
 	reg = <0>;
 	reg = <0>;
 	spi-max-frequency = <5000000>;
 	spi-max-frequency = <5000000>;
+	vdd-supply = <&vdd_3v3_reg>;
 };
 };

+ 25 - 0
Documentation/devicetree/bindings/sound/alc5623.txt

@@ -0,0 +1,25 @@
+ALC5621/ALC5622/ALC5623 audio Codec
+
+Required properties:
+
+ - compatible:	"realtek,alc5623"
+ - reg:		the I2C address of the device.
+
+Optional properties:
+
+ - add-ctrl:	  Default register value for Reg-40h, Additional Control
+		  Register. If absent or has the value of 0, the
+		  register is untouched.
+
+ - jack-det-ctrl: Default register value for Reg-5Ah, Jack Detect
+		  Control Register. If absent or has value 0, the
+		  register is untouched.
+
+Example:
+
+	alc5621: alc5621@1a {
+		compatible = "alc5621";
+		reg = <0x1a>;
+		add-ctrl = <0x3700>;
+		jack-det-ctrl = <0x4810>;
+	};

+ 63 - 0
Documentation/devicetree/bindings/sound/cs42l56.txt

@@ -0,0 +1,63 @@
+CS42L52 audio CODEC
+
+Required properties:
+
+  - compatible : "cirrus,cs42l56"
+
+  - reg : the I2C address of the device for I2C
+
+  - VA-supply, VCP-supply, VLDO-supply : power supplies for the device,
+  as covered in Documentation/devicetree/bindings/regulator/regulator.txt.
+
+Optional properties:
+
+  - cirrus,gpio-nreset : GPIO controller's phandle and the number
+  of the GPIO used to reset the codec.
+
+  - cirrus,chgfreq-divisor : Values used to set the Charge Pump Frequency.
+  Allowable values of 0x00 through 0x0F. These are raw values written to the
+  register, not the actual frequency. The frequency is determined by the following.
+  Frequency = MCLK / 4 * (N+2)
+  N = chgfreq_val
+  MCLK = Where MCLK is the frequency of the mclk signal after the MCLKDIV2 circuit.
+
+  - cirrus,ain1a-ref-cfg, ain1b-ref-cfg : boolean, If present, AIN1A or AIN1B are configured
+  as a pseudo-differential input referenced to AIN1REF/AIN3A.
+
+  - cirrus,ain2a-ref-cfg, ain2b-ref-cfg : boolean, If present, AIN2A or AIN2B are configured
+  as a pseudo-differential input referenced to AIN2REF/AIN3B.
+
+  - cirrus,micbias-lvl: Set the output voltage level on the MICBIAS Pin.
+  0 = 0.5 x VA
+  1 = 0.6 x VA
+  2 = 0.7 x VA
+  3 = 0.8 x VA
+  4 = 0.83 x VA
+  5 = 0.91 x VA
+
+  - cirrus,adaptive-pwr-cfg : Configures how the power to the Headphone and Lineout
+  Amplifiers adapt to the output signal levels.
+  0 = Adapt to Volume Mode. Voltage level determined by the sum of the relevant volume settings.
+  1 = Fixed - Headphone and Line Amp supply = + or - VCP/2.
+  2 = Fixed - Headphone and Line Amp supply = + or - VCP.
+  3 = Adapted to Signal; Voltage level is dynamically determined by the output signal.
+
+  - cirrus,hpf-left-freq, hpf-right-freq : Sets the corner frequency (-3dB point) for the internal High-Pass
+  Filter.
+  0 = 1.8Hz
+  1 = 119Hz
+  2 = 236Hz
+  3 = 464Hz
+
+
+Example:
+
+codec: codec@4b {
+	compatible = "cirrus,cs42l56";
+	reg = <0x4b>;
+	gpio-reset = <&gpio 10 0>;
+	cirrus,chgfreq-divisor = <0x05>;
+	cirrus.ain1_ref_cfg;
+	cirrus,micbias-lvl = <5>;
+	VA-supply = <&reg_audio>;
+};

+ 1 - 1
Documentation/devicetree/bindings/sound/davinci-mcasp-audio.txt

@@ -47,7 +47,7 @@ mcasp0: mcasp0@1d00000 {
 	reg = <0x100000 0x3000>;
 	reg = <0x100000 0x3000>;
 	reg-names "mpu";
 	reg-names "mpu";
 	interrupts = <82>, <83>;
 	interrupts = <82>, <83>;
-	interrupts-names = "tx", "rx";
+	interrupt-names = "tx", "rx";
 	op-mode = <0>;		/* MCASP_IIS_MODE */
 	op-mode = <0>;		/* MCASP_IIS_MODE */
 	tdm-slots = <2>;
 	tdm-slots = <2>;
 	serial-dir = <
 	serial-dir = <

+ 7 - 4
Documentation/devicetree/bindings/sound/fsl-sai.txt

@@ -7,10 +7,11 @@ codec/DSP interfaces.
 
 
 
 
 Required properties:
 Required properties:
-- compatible: Compatible list, contains "fsl,vf610-sai".
+- compatible: Compatible list, contains "fsl,vf610-sai" or "fsl,imx6sx-sai".
 - reg: Offset and length of the register set for the device.
 - reg: Offset and length of the register set for the device.
 - clocks: Must contain an entry for each entry in clock-names.
 - clocks: Must contain an entry for each entry in clock-names.
-- clock-names : Must include the "sai" entry.
+- clock-names : Must include the "bus" for register access and "mclk1" "mclk2"
+  "mclk3" for bit clock and frame clock providing.
 - dmas : Generic dma devicetree binding as described in
 - dmas : Generic dma devicetree binding as described in
   Documentation/devicetree/bindings/dma/dma.txt.
   Documentation/devicetree/bindings/dma/dma.txt.
 - dma-names : Two dmas have to be defined, "tx" and "rx".
 - dma-names : Two dmas have to be defined, "tx" and "rx".
@@ -30,8 +31,10 @@ sai2: sai@40031000 {
 	      reg = <0x40031000 0x1000>;
 	      reg = <0x40031000 0x1000>;
 	      pinctrl-names = "default";
 	      pinctrl-names = "default";
 	      pinctrl-0 = <&pinctrl_sai2_1>;
 	      pinctrl-0 = <&pinctrl_sai2_1>;
-	      clocks = <&clks VF610_CLK_SAI2>;
-	      clock-names = "sai";
+	      clocks = <&clks VF610_CLK_PLATFORM_BUS>,
+		     <&clks VF610_CLK_SAI2>,
+		     <&clks 0>, <&clks 0>;
+	      clock-names = "bus", "mclk1", "mclk2", "mclk3";
 	      dma-names = "tx", "rx";
 	      dma-names = "tx", "rx";
 	      dmas = <&edma0 0 VF610_EDMA_MUXID0_SAI2_TX>,
 	      dmas = <&edma0 0 VF610_EDMA_MUXID0_SAI2_TX>,
 		   <&edma0 0 VF610_EDMA_MUXID0_SAI2_RX>;
 		   <&edma0 0 VF610_EDMA_MUXID0_SAI2_RX>;

+ 16 - 0
Documentation/devicetree/bindings/sound/max98095.txt

@@ -0,0 +1,16 @@
+MAX98095 audio CODEC
+
+This device supports I2C only.
+
+Required properties:
+
+- compatible : "maxim,max98095".
+
+- reg : The I2C address of the device.
+
+Example:
+
+max98095: codec@11 {
+	compatible = "maxim,max98095";
+	reg = <0x11>;
+};

+ 27 - 0
Documentation/devicetree/bindings/sound/nokia,rx51.txt

@@ -0,0 +1,27 @@
+* Nokia N900 audio setup
+
+Required properties:
+- compatible: Should contain "nokia,n900-audio"
+- nokia,cpu-dai: phandle for the McBSP node
+- nokia,audio-codec: phandles for the main TLV320AIC3X node and the
+                     auxiliary TLV320AIC3X node (in this order)
+- nokia,headphone-amplifier: phandle for the TPA6130A2 node
+- tvout-selection-gpios: GPIO for tvout selection
+- jack-detection-gpios: GPIO for jack detection
+- eci-switch-gpios: GPIO for ECI (Enhancement Control Interface) switch
+- speaker-amplifier-gpios: GPIO for speaker amplifier
+
+Example:
+
+sound {
+	compatible = "nokia,n900-audio";
+
+	nokia,cpu-dai = <&mcbsp2>;
+	nokia,audio-codec = <&tlv320aic3x>, <&tlv320aic3x_aux>;
+	nokia,headphone-amplifier = <&tpa6130a2>;
+
+	tvout-selection-gpios = <&gpio2 8 GPIO_ACTIVE_HIGH>; /* 40 */
+	jack-detection-gpios = <&gpio6 17 GPIO_ACTIVE_HIGH>; /* 177 */
+	eci-switch-gpios = <&gpio6 22 GPIO_ACTIVE_HIGH>; /* 182 */
+	speaker-amplifier-gpios = <&twl_gpio 7 GPIO_ACTIVE_HIGH>;
+};

+ 8 - 5
Documentation/devicetree/bindings/sound/rt5640.txt

@@ -1,10 +1,10 @@
-RT5640 audio CODEC
+RT5640/RT5639 audio CODEC
 
 
 This device supports I2C only.
 This device supports I2C only.
 
 
 Required properties:
 Required properties:
 
 
-- compatible : "realtek,rt5640".
+- compatible : One of "realtek,rt5640" or "realtek,rt5639".
 
 
 - reg : The I2C address of the device.
 - reg : The I2C address of the device.
 
 
@@ -18,7 +18,7 @@ Optional properties:
 
 
 - realtek,ldo1-en-gpios : The GPIO that controls the CODEC's LDO1_EN pin.
 - realtek,ldo1-en-gpios : The GPIO that controls the CODEC's LDO1_EN pin.
 
 
-Pins on the device (for linking into audio routes):
+Pins on the device (for linking into audio routes) for RT5639/RT5640:
 
 
   * DMIC1
   * DMIC1
   * DMIC2
   * DMIC2
@@ -31,13 +31,16 @@ Pins on the device (for linking into audio routes):
   * HPOR
   * HPOR
   * LOUTL
   * LOUTL
   * LOUTR
   * LOUTR
-  * MONOP
-  * MONON
   * SPOLP
   * SPOLP
   * SPOLN
   * SPOLN
   * SPORP
   * SPORP
   * SPORN
   * SPORN
 
 
+Additional pins on the device for RT5640:
+
+  * MONOP
+  * MONON
+
 Example:
 Example:
 
 
 rt5640 {
 rt5640 {

+ 50 - 38
Documentation/devicetree/bindings/sound/simple-card.txt

@@ -1,6 +1,6 @@
 Simple-Card:
 Simple-Card:
 
 
-Simple-Card specifies audio DAI connection of SoC <-> codec.
+Simple-Card specifies audio DAI connections of SoC <-> codec.
 
 
 Required properties:
 Required properties:
 
 
@@ -10,26 +10,51 @@ Optional properties:
 
 
 - simple-audio-card,name		: User specified audio sound card name, one string
 - simple-audio-card,name		: User specified audio sound card name, one string
 					  property.
 					  property.
-- simple-audio-card,format		: CPU/CODEC common audio format.
-					  "i2s", "right_j", "left_j" , "dsp_a"
-					  "dsp_b", "ac97", "pdm", "msb", "lsb"
 - simple-audio-card,widgets		: Please refer to widgets.txt.
 - simple-audio-card,widgets		: Please refer to widgets.txt.
 - simple-audio-card,routing		: A list of the connections between audio components.
 - simple-audio-card,routing		: A list of the connections between audio components.
 					  Each entry is a pair of strings, the first being the
 					  Each entry is a pair of strings, the first being the
 					  connection's sink, the second being the connection's
 					  connection's sink, the second being the connection's
 					  source.
 					  source.
-- dai-tdm-slot-num			: Please refer to tdm-slot.txt.
-- dai-tdm-slot-width			: Please refer to tdm-slot.txt.
+Optional subnodes:
+
+- simple-audio-card,dai-link		: Container for dai-link level
+					  properties and the CPU and CODEC
+					  sub-nodes. This container may be
+					  omitted when the card has only one
+					  DAI link. See the examples and the
+					  section bellow.
+
+Dai-link subnode properties and subnodes:
+
+If dai-link subnode is omitted and the subnode properties are directly
+under "sound"-node the subnode property and subnode names have to be
+prefixed with "simple-audio-card,"-prefix.
 
 
-Required subnodes:
+Required dai-link subnodes:
 
 
-- simple-audio-card,dai-link		: container for the CPU and CODEC sub-nodes
-					  This container may be omitted when the
-					  card has only one DAI link.
-					  See the examples.
+- cpu					: CPU   sub-node
+- codec					: CODEC sub-node
 
 
-- simple-audio-card,cpu			: CPU   sub-node
-- simple-audio-card,codec		: CODEC sub-node
+Optional dai-link subnode properties:
+
+- format				: CPU/CODEC common audio format.
+					  "i2s", "right_j", "left_j" , "dsp_a"
+					  "dsp_b", "ac97", "pdm", "msb", "lsb"
+- frame-master				: Indicates dai-link frame master.
+					  phandle to a cpu or codec subnode.
+- bitclock-master			: Indicates dai-link bit clock master.
+					  phandle to a cpu or codec subnode.
+- bitclock-inversion			: bool property. Add this if the
+					  dai-link uses bit clock inversion.
+- frame-inversion			: bool property. Add this if the
+					  dai-link uses frame clock inversion.
+
+For backward compatibility the frame-master and bitclock-master
+properties can be used as booleans in codec subnode to indicate if the
+codec is the dai-link frame or bit clock master. In this case there
+should be no dai-link node, the same properties should not be present
+at sound-node level, and the bitclock-inversion and frame-inversion
+properties should also be placed in the codec node if needed.
 
 
 Required CPU/CODEC subnodes properties:
 Required CPU/CODEC subnodes properties:
 
 
@@ -37,29 +62,21 @@ Required CPU/CODEC subnodes properties:
 
 
 Optional CPU/CODEC subnodes properties:
 Optional CPU/CODEC subnodes properties:
 
 
-- format				: CPU/CODEC specific audio format if needed.
-					  see simple-audio-card,format
-- frame-master				: bool property. add this if subnode is frame master
-- bitclock-master			: bool property. add this if subnode is bitclock master
-- bitclock-inversion			: bool property. add this if subnode has clock inversion
-- frame-inversion			: bool property. add this if subnode has frame inversion
+- dai-tdm-slot-num			: Please refer to tdm-slot.txt.
+- dai-tdm-slot-width			: Please refer to tdm-slot.txt.
 - clocks / system-clock-frequency	: specify subnode's clock if needed.
 - clocks / system-clock-frequency	: specify subnode's clock if needed.
 					  it can be specified via "clocks" if system has
 					  it can be specified via "clocks" if system has
 					  clock node (= common clock), or "system-clock-frequency"
 					  clock node (= common clock), or "system-clock-frequency"
 					  (if system doens't support common clock)
 					  (if system doens't support common clock)
 
 
-Note:
- * For 'format', 'frame-master', 'bitclock-master', 'bitclock-inversion' and
-   'frame-inversion', the simple card will use the settings of CODEC for both
-   CPU and CODEC sides as we need to keep the settings identical for both ends
-   of the link.
-
 Example 1 - single DAI link:
 Example 1 - single DAI link:
 
 
 sound {
 sound {
 	compatible = "simple-audio-card";
 	compatible = "simple-audio-card";
 	simple-audio-card,name = "VF610-Tower-Sound-Card";
 	simple-audio-card,name = "VF610-Tower-Sound-Card";
 	simple-audio-card,format = "left_j";
 	simple-audio-card,format = "left_j";
+	simple-audio-card,bitclock-master = <&dailink0_master>;
+	simple-audio-card,frame-master = <&dailink0_master>;
 	simple-audio-card,widgets =
 	simple-audio-card,widgets =
 		"Microphone", "Microphone Jack",
 		"Microphone", "Microphone Jack",
 		"Headphone", "Headphone Jack",
 		"Headphone", "Headphone Jack",
@@ -69,17 +86,12 @@ sound {
 		"Headphone Jack", "HP_OUT",
 		"Headphone Jack", "HP_OUT",
 		"External Speaker", "LINE_OUT";
 		"External Speaker", "LINE_OUT";
 
 
-	dai-tdm-slot-num = <2>;
-	dai-tdm-slot-width = <8>;
-
 	simple-audio-card,cpu {
 	simple-audio-card,cpu {
 		sound-dai = <&sh_fsi2 0>;
 		sound-dai = <&sh_fsi2 0>;
 	};
 	};
 
 
-	simple-audio-card,codec {
+	dailink0_master: simple-audio-card,codec {
 		sound-dai = <&ak4648>;
 		sound-dai = <&ak4648>;
-		bitclock-master;
-		frame-master;
 		clocks = <&osc>;
 		clocks = <&osc>;
 	};
 	};
 };
 };
@@ -105,31 +117,31 @@ Example 2 - many DAI links:
 sound {
 sound {
 	compatible = "simple-audio-card";
 	compatible = "simple-audio-card";
 	simple-audio-card,name = "Cubox Audio";
 	simple-audio-card,name = "Cubox Audio";
-	simple-audio-card,format = "i2s";
 
 
 	simple-audio-card,dai-link@0 {		/* I2S - HDMI */
 	simple-audio-card,dai-link@0 {		/* I2S - HDMI */
-		simple-audio-card,cpu {
+		format = "i2s";
+		cpu {
 			sound-dai = <&audio1 0>;
 			sound-dai = <&audio1 0>;
 		};
 		};
-		simple-audio-card,codec {
+		codec {
 			sound-dai = <&tda998x 0>;
 			sound-dai = <&tda998x 0>;
 		};
 		};
 	};
 	};
 
 
 	simple-audio-card,dai-link@1 {		/* S/PDIF - HDMI */
 	simple-audio-card,dai-link@1 {		/* S/PDIF - HDMI */
-		simple-audio-card,cpu {
+		cpu {
 			sound-dai = <&audio1 1>;
 			sound-dai = <&audio1 1>;
 		};
 		};
-		simple-audio-card,codec {
+		codec {
 			sound-dai = <&tda998x 1>;
 			sound-dai = <&tda998x 1>;
 		};
 		};
 	};
 	};
 
 
 	simple-audio-card,dai-link@2 {		/* S/PDIF - S/PDIF */
 	simple-audio-card,dai-link@2 {		/* S/PDIF - S/PDIF */
-		simple-audio-card,cpu {
+		cpu {
 			sound-dai = <&audio1 1>;
 			sound-dai = <&audio1 1>;
 		};
 		};
-		simple-audio-card,codec {
+		codec {
 			sound-dai = <&spdif_codec>;
 			sound-dai = <&spdif_codec>;
 		};
 		};
 	};
 	};

+ 17 - 0
Documentation/devicetree/bindings/sound/snow.txt

@@ -0,0 +1,17 @@
+Audio Binding for Snow boards
+
+Required properties:
+- compatible : Can be one of the following,
+			"google,snow-audio-max98090" or
+			"google,snow-audio-max98095"
+- samsung,i2s-controller: The phandle of the Samsung I2S controller
+- samsung,audio-codec: The phandle of the audio codec
+
+Example:
+
+sound {
+		compatible = "google,snow-audio-max98095";
+
+		samsung,i2s-controller = <&i2s0>;
+		samsung,audio-codec = <&max98095>;
+};

+ 131 - 0
Documentation/devicetree/bindings/sound/st,sta350.txt

@@ -0,0 +1,131 @@
+STA350 audio CODEC
+
+The driver for this device only supports I2C.
+
+Required properties:
+
+  - compatible: "st,sta350"
+  - reg: the I2C address of the device for I2C
+  - reset-gpios: a GPIO spec for the reset pin. If specified, it will be
+		 deasserted before communication to the codec starts.
+
+  - power-down-gpios: a GPIO spec for the power down pin. If specified,
+		      it will be deasserted before communication to the codec
+		      starts.
+
+  - vdd-dig-supply: regulator spec, providing 3.3V
+  - vdd-pll-supply: regulator spec, providing 3.3V
+  - vcc-supply: regulator spec, providing 5V - 26V
+
+Optional properties:
+
+  -  st,output-conf: number, Selects the output configuration:
+	0: 2-channel (full-bridge) power, 2-channel data-out
+	1: 2 (half-bridge). 1 (full-bridge) on-board power
+	2: 2 Channel (Full-Bridge) Power, 1 Channel FFX
+	3: 1 Channel Mono-Parallel
+	If parameter is missing, mode 0 will be enabled.
+	This property has to be specified as '/bits/ 8' value.
+
+  -  st,ch1-output-mapping: Channel 1 output mapping
+  -  st,ch2-output-mapping: Channel 2 output mapping
+  -  st,ch3-output-mapping: Channel 3 output mapping
+	0: Channel 1
+	1: Channel 2
+	2: Channel 3
+	If parameter is missing, channel 1 is choosen.
+	This properties have to be specified as '/bits/ 8' values.
+
+  -  st,thermal-warning-recover:
+	If present, thermal warning recovery is enabled.
+
+  -  st,thermal-warning-adjustment:
+	If present, thermal warning adjustment is enabled.
+
+  -  st,fault-detect-recovery:
+	If present, then fault recovery will be enabled.
+
+  -  st,ffx-power-output-mode: string
+	The FFX power output mode selects how the FFX output timing is
+	configured. Must be one of these values:
+	  -  "drop-compensation"
+	  -  "tapered-compensation"
+	  -  "full-power-mode"
+	  -  "variable-drop-compensation" (default)
+
+  -  st,drop-compensation-ns: number
+	Only required for "st,ffx-power-output-mode" ==
+	"variable-drop-compensation".
+	Specifies the drop compensation in nanoseconds.
+	The value must be in the range of 0..300, and only
+	multiples of 20 are allowed. Default is 140ns.
+
+  -  st,overcurrent-warning-adjustment:
+	If present, overcurrent warning adjustment is enabled.
+
+  -  st,max-power-use-mpcc:
+	If present, then MPCC bits are used for MPC coefficients,
+	otherwise standard MPC coefficients are used.
+
+  -  st,max-power-corr:
+	If present, power bridge correction for THD reduction near maximum
+	power output is enabled.
+
+  -  st,am-reduction-mode:
+	If present, FFX mode runs in AM reduction mode, otherwise normal
+	FFX mode is used.
+
+  -  st,odd-pwm-speed-mode:
+	If present, PWM speed mode run on odd speed mode (341.3 kHz) on all
+	channels. If not present, normal PWM spped mode (384 kHz) will be used.
+
+  -  st,distortion-compensation:
+	If present, distortion compensation variable uses DCC coefficient.
+	If not present, preset DC coefficient is used.
+
+  -  st,invalid-input-detect-mute:
+	If present, automatic invalid input detect mute is enabled.
+
+  -  st,activate-mute-output:
+	If present, a mute output will be activated in ase the volume will
+	reach a value lower than -76 dBFS.
+
+  -  st,bridge-immediate-off:
+	If present, the bridge will be switched off immediately after the
+	power-down-gpio goes low. Otherwise, the bridge will wait for 13
+	million clock cycles to pass before shutting down.
+
+  -  st,noise-shape-dc-cut:
+	If present, the noise-shaping technique on the DC cutoff filter are
+	enabled.
+
+  -  st,powerdown-master-volume:
+	If present, the power-down pin and I2C power-down functions will
+	act on the master volume. Otherwise, the functions will act on the
+	mute commands.
+
+  -  st,powerdown-delay-divider:
+	If present, the bridge power-down time will be divided by the provided
+	value. If not specified, a divider of 1 will be used. Allowed values
+	are 1, 2, 4, 8, 16, 32, 64 and 128.
+	This property has to be specified as '/bits/ 8' value.
+
+Example:
+
+codec: sta350@38 {
+	compatible = "st,sta350";
+	reg = <0x1c>;
+	reset-gpios = <&gpio1 19 0>;
+	power-down-gpios = <&gpio1 16 0>;
+	st,output-conf = /bits/ 8  <0x3>;	// set output to 2-channel
+						// (full-bridge) power,
+						// 2-channel data-out
+	st,ch1-output-mapping = /bits/ 8 <0>;	// set channel 1 output ch 1
+	st,ch2-output-mapping = /bits/ 8 <0>;	// set channel 2 output ch 1
+	st,ch3-output-mapping = /bits/ 8 <0>;	// set channel 3 output ch 1
+	st,max-power-correction;		// enables power bridge
+						// correction for THD reduction
+						// near maximum power output
+	st,invalid-input-detect-mute;		// mute if no valid digital
+						// audio signal is provided.
+};

+ 4 - 1
Documentation/input/elantech.txt

@@ -504,9 +504,12 @@ byte 5:
 * reg_10
 * reg_10
 
 
    bit   7   6   5   4   3   2   1   0
    bit   7   6   5   4   3   2   1   0
-         0   0   0   0   0   0   0   A
+         0   0   0   0   R   F   T   A
 
 
          A: 1 = enable absolute tracking
          A: 1 = enable absolute tracking
+         T: 1 = enable two finger mode auto correct
+         F: 1 = disable ABS Position Filter
+         R: 1 = enable real hardware resolution
 
 
 6.2 Native absolute mode 6 byte packet format
 6.2 Native absolute mode 6 byte packet format
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ 1 - 1
Documentation/networking/scaling.txt

@@ -429,7 +429,7 @@ RPS and RFS were introduced in kernel 2.6.35. XPS was incorporated into
 (therbert@google.com)
 (therbert@google.com)
 
 
 Accelerated RFS was introduced in 2.6.35. Original patches were
 Accelerated RFS was introduced in 2.6.35. Original patches were
-submitted by Ben Hutchings (bhutchings@solarflare.com)
+submitted by Ben Hutchings (bwh@kernel.org)
 
 
 Authors:
 Authors:
 Tom Herbert (therbert@google.com)
 Tom Herbert (therbert@google.com)

+ 15 - 12
MAINTAINERS

@@ -2245,12 +2245,6 @@ L:	linux-usb@vger.kernel.org
 S:	Maintained
 S:	Maintained
 F:	drivers/usb/host/ohci-ep93xx.c
 F:	drivers/usb/host/ohci-ep93xx.c
 
 
-CIRRUS LOGIC CS4270 SOUND DRIVER
-M:	Timur Tabi <timur@tabi.org>
-L:	alsa-devel@alsa-project.org (moderated for non-subscribers)
-S:	Odd Fixes
-F:	sound/soc/codecs/cs4270*
-
 CIRRUS LOGIC AUDIO CODEC DRIVERS
 CIRRUS LOGIC AUDIO CODEC DRIVERS
 M:	Brian Austin <brian.austin@cirrus.com>
 M:	Brian Austin <brian.austin@cirrus.com>
 M:	Paul Handrigan <Paul.Handrigan@cirrus.com>
 M:	Paul Handrigan <Paul.Handrigan@cirrus.com>
@@ -3485,6 +3479,12 @@ S:	Maintained
 F:	drivers/extcon/
 F:	drivers/extcon/
 F:	Documentation/extcon/
 F:	Documentation/extcon/
 
 
+EXYNOS DP DRIVER
+M:	Jingoo Han <jg1.han@samsung.com>
+L:	dri-devel@lists.freedesktop.org
+S:	Maintained
+F:	drivers/gpu/drm/exynos/exynos_dp*
+
 EXYNOS MIPI DISPLAY DRIVERS
 EXYNOS MIPI DISPLAY DRIVERS
 M:	Inki Dae <inki.dae@samsung.com>
 M:	Inki Dae <inki.dae@samsung.com>
 M:	Donghwa Lee <dh09.lee@samsung.com>
 M:	Donghwa Lee <dh09.lee@samsung.com>
@@ -3550,7 +3550,7 @@ F:	include/scsi/libfcoe.h
 F:	include/uapi/scsi/fc/
 F:	include/uapi/scsi/fc/
 
 
 FILE LOCKING (flock() and fcntl()/lockf())
 FILE LOCKING (flock() and fcntl()/lockf())
-M:	Jeff Layton <jlayton@redhat.com>
+M:	Jeff Layton <jlayton@poochiereds.net>
 M:	J. Bruce Fields <bfields@fieldses.org>
 M:	J. Bruce Fields <bfields@fieldses.org>
 L:	linux-fsdevel@vger.kernel.org
 L:	linux-fsdevel@vger.kernel.org
 S:	Maintained
 S:	Maintained
@@ -5108,14 +5108,19 @@ F:	drivers/s390/kvm/
 
 
 KERNEL VIRTUAL MACHINE (KVM) FOR ARM
 KERNEL VIRTUAL MACHINE (KVM) FOR ARM
 M:	Christoffer Dall <christoffer.dall@linaro.org>
 M:	Christoffer Dall <christoffer.dall@linaro.org>
+M:	Marc Zyngier <marc.zyngier@arm.com>
+L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 L:	kvmarm@lists.cs.columbia.edu
 L:	kvmarm@lists.cs.columbia.edu
 W:	http://systems.cs.columbia.edu/projects/kvm-arm
 W:	http://systems.cs.columbia.edu/projects/kvm-arm
 S:	Supported
 S:	Supported
 F:	arch/arm/include/uapi/asm/kvm*
 F:	arch/arm/include/uapi/asm/kvm*
 F:	arch/arm/include/asm/kvm*
 F:	arch/arm/include/asm/kvm*
 F:	arch/arm/kvm/
 F:	arch/arm/kvm/
+F:	virt/kvm/arm/
+F:	include/kvm/arm_*
 
 
 KERNEL VIRTUAL MACHINE FOR ARM64 (KVM/arm64)
 KERNEL VIRTUAL MACHINE FOR ARM64 (KVM/arm64)
+M:	Christoffer Dall <christoffer.dall@linaro.org>
 M:	Marc Zyngier <marc.zyngier@arm.com>
 M:	Marc Zyngier <marc.zyngier@arm.com>
 L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 L:	kvmarm@lists.cs.columbia.edu
 L:	kvmarm@lists.cs.columbia.edu
@@ -7277,7 +7282,6 @@ F:	drivers/video/aty/aty128fb.c
 RALINK RT2X00 WIRELESS LAN DRIVER
 RALINK RT2X00 WIRELESS LAN DRIVER
 P:	rt2x00 project
 P:	rt2x00 project
 M:	Ivo van Doorn <IvDoorn@gmail.com>
 M:	Ivo van Doorn <IvDoorn@gmail.com>
-M:	Gertjan van Wingerde <gwingerde@gmail.com>
 M:	Helmut Schaa <helmut.schaa@googlemail.com>
 M:	Helmut Schaa <helmut.schaa@googlemail.com>
 L:	linux-wireless@vger.kernel.org
 L:	linux-wireless@vger.kernel.org
 L:	users@rt2x00.serialmonkey.com (moderated for non-subscribers)
 L:	users@rt2x00.serialmonkey.com (moderated for non-subscribers)
@@ -7293,7 +7297,7 @@ F:	Documentation/blockdev/ramdisk.txt
 F:	drivers/block/brd.c
 F:	drivers/block/brd.c
 
 
 RANDOM NUMBER DRIVER
 RANDOM NUMBER DRIVER
-M:	Theodore Ts'o" <tytso@mit.edu>
+M:	"Theodore Ts'o" <tytso@mit.edu>
 S:	Maintained
 S:	Maintained
 F:	drivers/char/random.c
 F:	drivers/char/random.c
 
 
@@ -7674,7 +7678,6 @@ F:	drivers/clk/samsung/
 SAMSUNG SXGBE DRIVERS
 SAMSUNG SXGBE DRIVERS
 M:	Byungho An <bh74.an@samsung.com>
 M:	Byungho An <bh74.an@samsung.com>
 M:	Girish K S <ks.giri@samsung.com>
 M:	Girish K S <ks.giri@samsung.com>
-M:	Siva Reddy Kallam <siva.kallam@samsung.com>
 M:	Vipul Pandya <vipul.pandya@samsung.com>
 M:	Vipul Pandya <vipul.pandya@samsung.com>
 S:	Supported
 S:	Supported
 L:	netdev@vger.kernel.org
 L:	netdev@vger.kernel.org
@@ -9952,7 +9955,7 @@ F:	drivers/net/hamradio/*scc.c
 F:	drivers/net/hamradio/z8530.h
 F:	drivers/net/hamradio/z8530.h
 
 
 ZBUD COMPRESSED PAGE ALLOCATOR
 ZBUD COMPRESSED PAGE ALLOCATOR
-M:	Seth Jennings <sjenning@linux.vnet.ibm.com>
+M:	Seth Jennings <sjennings@variantweb.net>
 L:	linux-mm@kvack.org
 L:	linux-mm@kvack.org
 S:	Maintained
 S:	Maintained
 F:	mm/zbud.c
 F:	mm/zbud.c
@@ -9997,7 +10000,7 @@ F:	mm/zsmalloc.c
 F:	include/linux/zsmalloc.h
 F:	include/linux/zsmalloc.h
 
 
 ZSWAP COMPRESSED SWAP CACHING
 ZSWAP COMPRESSED SWAP CACHING
-M:	Seth Jennings <sjenning@linux.vnet.ibm.com>
+M:	Seth Jennings <sjennings@variantweb.net>
 L:	linux-mm@kvack.org
 L:	linux-mm@kvack.org
 S:	Maintained
 S:	Maintained
 F:	mm/zswap.c
 F:	mm/zswap.c

+ 1 - 1
Makefile

@@ -1,7 +1,7 @@
 VERSION = 3
 VERSION = 3
 PATCHLEVEL = 15
 PATCHLEVEL = 15
 SUBLEVEL = 0
 SUBLEVEL = 0
-EXTRAVERSION = -rc2
+EXTRAVERSION = -rc5
 NAME = Shuffling Zombie Juror
 NAME = Shuffling Zombie Juror
 
 
 # *DOCUMENTATION*
 # *DOCUMENTATION*

+ 5 - 3
arch/arc/kernel/entry.S

@@ -614,11 +614,13 @@ resume_user_mode_begin:
 
 
 resume_kernel_mode:
 resume_kernel_mode:
 
 
-#ifdef CONFIG_PREEMPT
-
-	; This is a must for preempt_schedule_irq()
+	; Disable Interrupts from this point on
+	; CONFIG_PREEMPT: This is a must for preempt_schedule_irq()
+	; !CONFIG_PREEMPT: To ensure restore_regs is intr safe
 	IRQ_DISABLE	r9
 	IRQ_DISABLE	r9
 
 
+#ifdef CONFIG_PREEMPT
+
 	; Can't preempt if preemption disabled
 	; Can't preempt if preemption disabled
 	GET_CURR_THR_INFO_FROM_SP   r10
 	GET_CURR_THR_INFO_FROM_SP   r10
 	ld  r8, [r10, THREAD_INFO_PREEMPT_COUNT]
 	ld  r8, [r10, THREAD_INFO_PREEMPT_COUNT]

+ 9 - 8
arch/arm/Kconfig

@@ -30,9 +30,9 @@ config ARM
 	select HAVE_ARCH_SECCOMP_FILTER if (AEABI && !OABI_COMPAT)
 	select HAVE_ARCH_SECCOMP_FILTER if (AEABI && !OABI_COMPAT)
 	select HAVE_ARCH_TRACEHOOK
 	select HAVE_ARCH_TRACEHOOK
 	select HAVE_BPF_JIT
 	select HAVE_BPF_JIT
+	select HAVE_CC_STACKPROTECTOR
 	select HAVE_CONTEXT_TRACKING
 	select HAVE_CONTEXT_TRACKING
 	select HAVE_C_RECORDMCOUNT
 	select HAVE_C_RECORDMCOUNT
-	select HAVE_CC_STACKPROTECTOR
 	select HAVE_DEBUG_KMEMLEAK
 	select HAVE_DEBUG_KMEMLEAK
 	select HAVE_DMA_API_DEBUG
 	select HAVE_DMA_API_DEBUG
 	select HAVE_DMA_ATTRS
 	select HAVE_DMA_ATTRS
@@ -311,6 +311,7 @@ config ARCH_MULTIPLATFORM
 	select ARM_HAS_SG_CHAIN
 	select ARM_HAS_SG_CHAIN
 	select ARM_PATCH_PHYS_VIRT
 	select ARM_PATCH_PHYS_VIRT
 	select AUTO_ZRELADDR
 	select AUTO_ZRELADDR
+	select CLKSRC_OF
 	select COMMON_CLK
 	select COMMON_CLK
 	select GENERIC_CLOCKEVENTS
 	select GENERIC_CLOCKEVENTS
 	select MULTI_IRQ_HANDLER
 	select MULTI_IRQ_HANDLER
@@ -422,8 +423,8 @@ config ARCH_EFM32
 	bool "Energy Micro efm32"
 	bool "Energy Micro efm32"
 	depends on !MMU
 	depends on !MMU
 	select ARCH_REQUIRE_GPIOLIB
 	select ARCH_REQUIRE_GPIOLIB
-	select AUTO_ZRELADDR
 	select ARM_NVIC
 	select ARM_NVIC
+	select AUTO_ZRELADDR
 	select CLKSRC_OF
 	select CLKSRC_OF
 	select COMMON_CLK
 	select COMMON_CLK
 	select CPU_V7M
 	select CPU_V7M
@@ -511,8 +512,8 @@ config ARCH_IXP4XX
 	bool "IXP4xx-based"
 	bool "IXP4xx-based"
 	depends on MMU
 	depends on MMU
 	select ARCH_HAS_DMA_SET_COHERENT_MASK
 	select ARCH_HAS_DMA_SET_COHERENT_MASK
-	select ARCH_SUPPORTS_BIG_ENDIAN
 	select ARCH_REQUIRE_GPIOLIB
 	select ARCH_REQUIRE_GPIOLIB
+	select ARCH_SUPPORTS_BIG_ENDIAN
 	select CLKSRC_MMIO
 	select CLKSRC_MMIO
 	select CPU_XSCALE
 	select CPU_XSCALE
 	select DMABOUNCE if PCI
 	select DMABOUNCE if PCI
@@ -1110,9 +1111,9 @@ config ARM_NR_BANKS
 	default 8
 	default 8
 
 
 config IWMMXT
 config IWMMXT
-	bool "Enable iWMMXt support" if !CPU_PJ4
-	depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_PJ4
-	default y if PXA27x || PXA3xx || ARCH_MMP || CPU_PJ4
+	bool "Enable iWMMXt support"
+	depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_PJ4 || CPU_PJ4B
+	default y if PXA27x || PXA3xx || ARCH_MMP || CPU_PJ4 || CPU_PJ4B
 	help
 	help
 	  Enable support for iWMMXt context switching at run time if
 	  Enable support for iWMMXt context switching at run time if
 	  running on a CPU that supports it.
 	  running on a CPU that supports it.
@@ -1575,8 +1576,8 @@ config BIG_LITTLE
 config BL_SWITCHER
 config BL_SWITCHER
 	bool "big.LITTLE switcher support"
 	bool "big.LITTLE switcher support"
 	depends on BIG_LITTLE && MCPM && HOTPLUG_CPU
 	depends on BIG_LITTLE && MCPM && HOTPLUG_CPU
-	select CPU_PM
 	select ARM_CPU_SUSPEND
 	select ARM_CPU_SUSPEND
+	select CPU_PM
 	help
 	help
 	  The big.LITTLE "switcher" provides the core functionality to
 	  The big.LITTLE "switcher" provides the core functionality to
 	  transparently handle transition between a cluster of A15's
 	  transparently handle transition between a cluster of A15's
@@ -1920,9 +1921,9 @@ config XEN
 	depends on CPU_V7 && !CPU_V6
 	depends on CPU_V7 && !CPU_V6
 	depends on !GENERIC_ATOMIC64
 	depends on !GENERIC_ATOMIC64
 	depends on MMU
 	depends on MMU
+	select ARCH_DMA_ADDR_T_64BIT
 	select ARM_PSCI
 	select ARM_PSCI
 	select SWIOTLB_XEN
 	select SWIOTLB_XEN
-	select ARCH_DMA_ADDR_T_64BIT
 	help
 	help
 	  Say Y if you want to run Linux in a Virtual Machine on Xen on ARM.
 	  Say Y if you want to run Linux in a Virtual Machine on Xen on ARM.
 
 

+ 6 - 6
arch/arm/Kconfig.debug

@@ -1030,9 +1030,9 @@ config DEBUG_UART_PHYS
 	default 0x40100000 if DEBUG_PXA_UART1
 	default 0x40100000 if DEBUG_PXA_UART1
 	default 0x42000000 if ARCH_GEMINI
 	default 0x42000000 if ARCH_GEMINI
 	default 0x7c0003f8 if FOOTBRIDGE
 	default 0x7c0003f8 if FOOTBRIDGE
-	default 0x80230000 if DEBUG_PICOXCELL_UART
 	default 0x80070000 if DEBUG_IMX23_UART
 	default 0x80070000 if DEBUG_IMX23_UART
 	default 0x80074000 if DEBUG_IMX28_UART
 	default 0x80074000 if DEBUG_IMX28_UART
+	default 0x80230000 if DEBUG_PICOXCELL_UART
 	default 0x808c0000 if ARCH_EP93XX
 	default 0x808c0000 if ARCH_EP93XX
 	default 0x90020000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART
 	default 0x90020000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART
 	default 0xb0090000 if DEBUG_VEXPRESS_UART0_CRX
 	default 0xb0090000 if DEBUG_VEXPRESS_UART0_CRX
@@ -1096,22 +1096,22 @@ config DEBUG_UART_VIRT
 	default 0xfeb26000 if DEBUG_RK3X_UART1
 	default 0xfeb26000 if DEBUG_RK3X_UART1
 	default 0xfeb30c00 if DEBUG_KEYSTONE_UART0
 	default 0xfeb30c00 if DEBUG_KEYSTONE_UART0
 	default 0xfeb31000 if DEBUG_KEYSTONE_UART1
 	default 0xfeb31000 if DEBUG_KEYSTONE_UART1
-	default 0xfec12000 if DEBUG_MVEBU_UART || DEBUG_MVEBU_UART_ALTERNATE
-	default 0xfed60000 if DEBUG_RK29_UART0
-	default 0xfed64000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2
-	default 0xfed68000 if DEBUG_RK29_UART2 || DEBUG_RK3X_UART3
 	default 0xfec02000 if DEBUG_SOCFPGA_UART
 	default 0xfec02000 if DEBUG_SOCFPGA_UART
+	default 0xfec12000 if DEBUG_MVEBU_UART || DEBUG_MVEBU_UART_ALTERNATE
 	default 0xfec20000 if DEBUG_DAVINCI_DMx_UART0
 	default 0xfec20000 if DEBUG_DAVINCI_DMx_UART0
 	default 0xfed0c000 if DEBUG_DAVINCI_DA8XX_UART1
 	default 0xfed0c000 if DEBUG_DAVINCI_DA8XX_UART1
 	default 0xfed0d000 if DEBUG_DAVINCI_DA8XX_UART2
 	default 0xfed0d000 if DEBUG_DAVINCI_DA8XX_UART2
 	default 0xfed12000 if ARCH_KIRKWOOD
 	default 0xfed12000 if ARCH_KIRKWOOD
+	default 0xfed60000 if DEBUG_RK29_UART0
+	default 0xfed64000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2
+	default 0xfed68000 if DEBUG_RK29_UART2 || DEBUG_RK3X_UART3
 	default 0xfedc0000 if ARCH_EP93XX
 	default 0xfedc0000 if ARCH_EP93XX
 	default 0xfee003f8 if FOOTBRIDGE
 	default 0xfee003f8 if FOOTBRIDGE
 	default 0xfee20000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART
 	default 0xfee20000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART
-	default 0xfef36000 if DEBUG_HIGHBANK_UART
 	default 0xfee82340 if ARCH_IOP13XX
 	default 0xfee82340 if ARCH_IOP13XX
 	default 0xfef00000 if ARCH_IXP4XX && !CPU_BIG_ENDIAN
 	default 0xfef00000 if ARCH_IXP4XX && !CPU_BIG_ENDIAN
 	default 0xfef00003 if ARCH_IXP4XX && CPU_BIG_ENDIAN
 	default 0xfef00003 if ARCH_IXP4XX && CPU_BIG_ENDIAN
+	default 0xfef36000 if DEBUG_HIGHBANK_UART
 	default 0xfefff700 if ARCH_IOP33X
 	default 0xfefff700 if ARCH_IOP33X
 	default 0xff003000 if DEBUG_U300_UART
 	default 0xff003000 if DEBUG_U300_UART
 	default DEBUG_UART_PHYS if !MMU
 	default DEBUG_UART_PHYS if !MMU

+ 10 - 10
arch/arm/boot/dts/Makefile

@@ -51,10 +51,9 @@ dtb-$(CONFIG_ARCH_AT91)	+= sama5d36ek.dtb
 
 
 dtb-$(CONFIG_ARCH_ATLAS6) += atlas6-evb.dtb
 dtb-$(CONFIG_ARCH_ATLAS6) += atlas6-evb.dtb
 dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b.dtb
 dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b.dtb
+dtb-$(CONFIG_ARCH_BCM_5301X) += bcm4708-netgear-r6250.dtb
 dtb-$(CONFIG_ARCH_BCM_MOBILE) += bcm28155-ap.dtb \
 dtb-$(CONFIG_ARCH_BCM_MOBILE) += bcm28155-ap.dtb \
 	bcm21664-garnet.dtb
 	bcm21664-garnet.dtb
-dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b.dtb
-dtb-$(CONFIG_ARCH_BCM_5301X) += bcm4708-netgear-r6250.dtb
 dtb-$(CONFIG_ARCH_BERLIN) += \
 dtb-$(CONFIG_ARCH_BERLIN) += \
 	berlin2-sony-nsz-gs7.dtb	\
 	berlin2-sony-nsz-gs7.dtb	\
 	berlin2cd-google-chromecast.dtb
 	berlin2cd-google-chromecast.dtb
@@ -246,6 +245,7 @@ dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \
 	omap3-sbc-t3730.dtb \
 	omap3-sbc-t3730.dtb \
 	omap3-devkit8000.dtb \
 	omap3-devkit8000.dtb \
 	omap3-beagle-xm.dtb \
 	omap3-beagle-xm.dtb \
+	omap3-beagle-xm-ab.dtb \
 	omap3-evm.dtb \
 	omap3-evm.dtb \
 	omap3-evm-37xx.dtb \
 	omap3-evm-37xx.dtb \
 	omap3-ldp.dtb \
 	omap3-ldp.dtb \
@@ -294,13 +294,6 @@ dtb-$(CONFIG_ARCH_PRIMA2) += prima2-evb.dtb
 dtb-$(CONFIG_ARCH_QCOM) += qcom-msm8660-surf.dtb \
 dtb-$(CONFIG_ARCH_QCOM) += qcom-msm8660-surf.dtb \
 	qcom-msm8960-cdp.dtb \
 	qcom-msm8960-cdp.dtb \
 	qcom-apq8074-dragonboard.dtb
 	qcom-apq8074-dragonboard.dtb
-dtb-$(CONFIG_ARCH_U8500) += ste-snowball.dtb \
-	ste-hrefprev60-stuib.dtb \
-	ste-hrefprev60-tvk.dtb \
-	ste-hrefv60plus-stuib.dtb \
-	ste-hrefv60plus-tvk.dtb \
-	ste-ccu8540.dtb \
-	ste-ccu9540.dtb
 dtb-$(CONFIG_ARCH_S3C24XX) += s3c2416-smdk2416.dtb
 dtb-$(CONFIG_ARCH_S3C24XX) += s3c2416-smdk2416.dtb
 dtb-$(CONFIG_ARCH_S3C64XX) += s3c6410-mini6410.dtb \
 dtb-$(CONFIG_ARCH_S3C64XX) += s3c6410-mini6410.dtb \
 	s3c6410-smdk6410.dtb
 	s3c6410-smdk6410.dtb
@@ -369,9 +362,16 @@ dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \
 	tegra30-cardhu-a04.dtb \
 	tegra30-cardhu-a04.dtb \
 	tegra114-dalmore.dtb \
 	tegra114-dalmore.dtb \
 	tegra124-venice2.dtb
 	tegra124-venice2.dtb
+dtb-$(CONFIG_ARCH_U300) += ste-u300.dtb
+dtb-$(CONFIG_ARCH_U8500) += ste-snowball.dtb \
+	ste-hrefprev60-stuib.dtb \
+	ste-hrefprev60-tvk.dtb \
+	ste-hrefv60plus-stuib.dtb \
+	ste-hrefv60plus-tvk.dtb \
+	ste-ccu8540.dtb \
+	ste-ccu9540.dtb
 dtb-$(CONFIG_ARCH_VERSATILE) += versatile-ab.dtb \
 dtb-$(CONFIG_ARCH_VERSATILE) += versatile-ab.dtb \
 	versatile-pb.dtb
 	versatile-pb.dtb
-dtb-$(CONFIG_ARCH_U300) += ste-u300.dtb
 dtb-$(CONFIG_ARCH_VEXPRESS) += vexpress-v2p-ca5s.dtb \
 dtb-$(CONFIG_ARCH_VEXPRESS) += vexpress-v2p-ca5s.dtb \
 	vexpress-v2p-ca9.dtb \
 	vexpress-v2p-ca9.dtb \
 	vexpress-v2p-ca15-tc1.dtb \
 	vexpress-v2p-ca15-tc1.dtb \

+ 2 - 2
arch/arm/boot/dts/am335x-bone-common.dtsi

@@ -183,7 +183,7 @@
 &usb {
 &usb {
 	status = "okay";
 	status = "okay";
 
 
-	control@44e10000 {
+	control@44e10620 {
 		status = "okay";
 		status = "okay";
 	};
 	};
 
 
@@ -204,7 +204,7 @@
 		dr_mode = "host";
 		dr_mode = "host";
 	};
 	};
 
 
-	dma-controller@07402000  {
+	dma-controller@47402000  {
 		status = "okay";
 		status = "okay";
 	};
 	};
 };
 };

+ 4 - 4
arch/arm/boot/dts/am335x-evm.dts

@@ -301,8 +301,8 @@
 
 
 	am335x_evm_audio_pins: am335x_evm_audio_pins {
 	am335x_evm_audio_pins: am335x_evm_audio_pins {
 		pinctrl-single,pins = <
 		pinctrl-single,pins = <
-			0x10c (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_rx_dv.mcasp1_aclkx */
-			0x110 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_txd3.mcasp1_fsx */
+			0x10c (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_crs.mcasp1_aclkx */
+			0x110 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_rxerr.mcasp1_fsx */
 			0x108 (PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* mii1_col.mcasp1_axr2 */
 			0x108 (PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* mii1_col.mcasp1_axr2 */
 			0x144 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* rmii1_ref_clk.mcasp1_axr3 */
 			0x144 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* rmii1_ref_clk.mcasp1_axr3 */
 		>;
 		>;
@@ -331,7 +331,7 @@
 &usb {
 &usb {
 	status = "okay";
 	status = "okay";
 
 
-	control@44e10000 {
+	control@44e10620 {
 		status = "okay";
 		status = "okay";
 	};
 	};
 
 
@@ -352,7 +352,7 @@
 		dr_mode = "host";
 		dr_mode = "host";
 	};
 	};
 
 
-	dma-controller@07402000  {
+	dma-controller@47402000  {
 		status = "okay";
 		status = "okay";
 	};
 	};
 };
 };

+ 2 - 2
arch/arm/boot/dts/am335x-evmsk.dts

@@ -364,7 +364,7 @@
 &usb {
 &usb {
 	status = "okay";
 	status = "okay";
 
 
-	control@44e10000 {
+	control@44e10620 {
 		status = "okay";
 		status = "okay";
 	};
 	};
 
 
@@ -385,7 +385,7 @@
 		dr_mode = "host";
 		dr_mode = "host";
 	};
 	};
 
 
-	dma-controller@07402000  {
+	dma-controller@47402000  {
 		status = "okay";
 		status = "okay";
 	};
 	};
 };
 };

+ 2 - 3
arch/arm/boot/dts/am335x-igep0033.dtsi

@@ -118,7 +118,6 @@
 		reg = <0 0 0>; /* CS0, offset 0 */
 		reg = <0 0 0>; /* CS0, offset 0 */
 		nand-bus-width = <8>;
 		nand-bus-width = <8>;
 		ti,nand-ecc-opt = "bch8";
 		ti,nand-ecc-opt = "bch8";
-		gpmc,device-nand = "true";
 		gpmc,device-width = <1>;
 		gpmc,device-width = <1>;
 		gpmc,sync-clk-ps = <0>;
 		gpmc,sync-clk-ps = <0>;
 		gpmc,cs-on-ns = <0>;
 		gpmc,cs-on-ns = <0>;
@@ -202,7 +201,7 @@
 &usb {
 &usb {
 	status = "okay";
 	status = "okay";
 
 
-	control@44e10000 {
+	control@44e10620 {
 		status = "okay";
 		status = "okay";
 	};
 	};
 
 
@@ -223,7 +222,7 @@
 		dr_mode = "host";
 		dr_mode = "host";
 	};
 	};
 
 
-	dma-controller@07402000  {
+	dma-controller@47402000  {
 		status = "okay";
 		status = "okay";
 	};
 	};
 };
 };

+ 5 - 5
arch/arm/boot/dts/am33xx.dtsi

@@ -72,7 +72,7 @@
 	};
 	};
 
 
 	/*
 	/*
-	 * The soc node represents the soc top level view. It is uses for IPs
+	 * The soc node represents the soc top level view. It is used for IPs
 	 * that are not memory mapped in the MPU view or for the MPU itself.
 	 * that are not memory mapped in the MPU view or for the MPU itself.
 	 */
 	 */
 	soc {
 	soc {
@@ -94,8 +94,8 @@
 
 
 	/*
 	/*
 	 * XXX: Use a flat representation of the AM33XX interconnect.
 	 * XXX: Use a flat representation of the AM33XX interconnect.
-	 * The real AM33XX interconnect network is quite complex.Since
-	 * that will not bring real advantage to represent that in DT
+	 * The real AM33XX interconnect network is quite complex. Since
+	 * it will not bring real advantage to represent that in DT
 	 * for the moment, just use a fake OCP bus entry to represent
 	 * for the moment, just use a fake OCP bus entry to represent
 	 * the whole bus hierarchy.
 	 * the whole bus hierarchy.
 	 */
 	 */
@@ -802,7 +802,7 @@
 			      <0x46000000 0x400000>;
 			      <0x46000000 0x400000>;
 			reg-names = "mpu", "dat";
 			reg-names = "mpu", "dat";
 			interrupts = <80>, <81>;
 			interrupts = <80>, <81>;
-			interrupts-names = "tx", "rx";
+			interrupt-names = "tx", "rx";
 			status = "disabled";
 			status = "disabled";
 			dmas = <&edma 8>,
 			dmas = <&edma 8>,
 				<&edma 9>;
 				<&edma 9>;
@@ -816,7 +816,7 @@
 			      <0x46400000 0x400000>;
 			      <0x46400000 0x400000>;
 			reg-names = "mpu", "dat";
 			reg-names = "mpu", "dat";
 			interrupts = <82>, <83>;
 			interrupts = <82>, <83>;
-			interrupts-names = "tx", "rx";
+			interrupt-names = "tx", "rx";
 			status = "disabled";
 			status = "disabled";
 			dmas = <&edma 10>,
 			dmas = <&edma 10>,
 				<&edma 11>;
 				<&edma 11>;

+ 2 - 2
arch/arm/boot/dts/am4372.dtsi

@@ -691,7 +691,7 @@
 			      <0x46000000 0x400000>;
 			      <0x46000000 0x400000>;
 			reg-names = "mpu", "dat";
 			reg-names = "mpu", "dat";
 			interrupts = <80>, <81>;
 			interrupts = <80>, <81>;
-			interrupts-names = "tx", "rx";
+			interrupt-names = "tx", "rx";
 			status = "disabled";
 			status = "disabled";
 			dmas = <&edma 8>,
 			dmas = <&edma 8>,
 			       <&edma 9>;
 			       <&edma 9>;
@@ -705,7 +705,7 @@
 			      <0x46400000 0x400000>;
 			      <0x46400000 0x400000>;
 			reg-names = "mpu", "dat";
 			reg-names = "mpu", "dat";
 			interrupts = <82>, <83>;
 			interrupts = <82>, <83>;
-			interrupts-names = "tx", "rx";
+			interrupt-names = "tx", "rx";
 			status = "disabled";
 			status = "disabled";
 			dmas = <&edma 10>,
 			dmas = <&edma 10>,
 			       <&edma 11>;
 			       <&edma 11>;

+ 1 - 0
arch/arm/boot/dts/armada-370-xp.dtsi

@@ -230,6 +230,7 @@
 				#size-cells = <0>;
 				#size-cells = <0>;
 				compatible = "marvell,orion-mdio";
 				compatible = "marvell,orion-mdio";
 				reg = <0x72004 0x4>;
 				reg = <0x72004 0x4>;
+				clocks = <&gateclk 4>;
 			};
 			};
 
 
 			eth1: ethernet@74000 {
 			eth1: ethernet@74000 {

+ 1 - 0
arch/arm/boot/dts/armada-38x.dtsi

@@ -336,6 +336,7 @@
 				#size-cells = <0>;
 				#size-cells = <0>;
 				compatible = "marvell,orion-mdio";
 				compatible = "marvell,orion-mdio";
 				reg = <0x72004 0x4>;
 				reg = <0x72004 0x4>;
+				clocks = <&gateclk 4>;
 			};
 			};
 
 
 			coredivclk: clock@e4250 {
 			coredivclk: clock@e4250 {

+ 2 - 2
arch/arm/boot/dts/dra7.dtsi

@@ -80,7 +80,7 @@
 	};
 	};
 
 
 	/*
 	/*
-	 * The soc node represents the soc top level view. It is uses for IPs
+	 * The soc node represents the soc top level view. It is used for IPs
 	 * that are not memory mapped in the MPU view or for the MPU itself.
 	 * that are not memory mapped in the MPU view or for the MPU itself.
 	 */
 	 */
 	soc {
 	soc {
@@ -94,7 +94,7 @@
 	/*
 	/*
 	 * XXX: Use a flat representation of the SOC interconnect.
 	 * XXX: Use a flat representation of the SOC interconnect.
 	 * The real OMAP interconnect network is quite complex.
 	 * The real OMAP interconnect network is quite complex.
-	 * Since that will not bring real advantage to represent that in DT for
+	 * Since it will not bring real advantage to represent that in DT for
 	 * the moment, just use a fake OCP bus entry to represent the whole bus
 	 * the moment, just use a fake OCP bus entry to represent the whole bus
 	 * hierarchy.
 	 * hierarchy.
 	 */
 	 */

+ 1 - 1
arch/arm/boot/dts/dra7xx-clocks.dtsi

@@ -1640,7 +1640,7 @@
 		#clock-cells = <0>;
 		#clock-cells = <0>;
 		compatible = "ti,mux-clock";
 		compatible = "ti,mux-clock";
 		clocks = <&abe_24m_fclk>, <&abe_sys_clk_div>, <&func_24m_clk>, <&atlclkin3_ck>, <&atl_clkin2_ck>, <&atl_clkin1_ck>, <&atl_clkin0_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&mlb_clk>, <&mlbp_clk>;
 		clocks = <&abe_24m_fclk>, <&abe_sys_clk_div>, <&func_24m_clk>, <&atlclkin3_ck>, <&atl_clkin2_ck>, <&atl_clkin1_ck>, <&atl_clkin0_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&mlb_clk>, <&mlbp_clk>;
-		ti,bit-shift = <28>;
+		ti,bit-shift = <24>;
 		reg = <0x1860>;
 		reg = <0x1860>;
 	};
 	};
 
 

+ 1 - 0
arch/arm/boot/dts/imx25.dtsi

@@ -56,6 +56,7 @@
 
 
 		osc {
 		osc {
 			compatible = "fsl,imx-osc", "fixed-clock";
 			compatible = "fsl,imx-osc", "fixed-clock";
+			#clock-cells = <0>;
 			clock-frequency = <24000000>;
 			clock-frequency = <24000000>;
 		};
 		};
 	};
 	};

+ 1 - 0
arch/arm/boot/dts/imx27-apf27.dts

@@ -29,6 +29,7 @@
 
 
 		osc26m {
 		osc26m {
 			compatible = "fsl,imx-osc26m", "fixed-clock";
 			compatible = "fsl,imx-osc26m", "fixed-clock";
+			#clock-cells = <0>;
 			clock-frequency = <0>;
 			clock-frequency = <0>;
 		};
 		};
 	};
 	};

+ 1 - 0
arch/arm/boot/dts/imx27.dtsi

@@ -48,6 +48,7 @@
 
 
 		osc26m {
 		osc26m {
 			compatible = "fsl,imx-osc26m", "fixed-clock";
 			compatible = "fsl,imx-osc26m", "fixed-clock";
+			#clock-cells = <0>;
 			clock-frequency = <26000000>;
 			clock-frequency = <26000000>;
 		};
 		};
 	};
 	};

+ 4 - 0
arch/arm/boot/dts/imx50.dtsi

@@ -53,21 +53,25 @@
 
 
 		ckil {
 		ckil {
 			compatible = "fsl,imx-ckil", "fixed-clock";
 			compatible = "fsl,imx-ckil", "fixed-clock";
+			#clock-cells = <0>;
 			clock-frequency = <32768>;
 			clock-frequency = <32768>;
 		};
 		};
 
 
 		ckih1 {
 		ckih1 {
 			compatible = "fsl,imx-ckih1", "fixed-clock";
 			compatible = "fsl,imx-ckih1", "fixed-clock";
+			#clock-cells = <0>;
 			clock-frequency = <22579200>;
 			clock-frequency = <22579200>;
 		};
 		};
 
 
 		ckih2 {
 		ckih2 {
 			compatible = "fsl,imx-ckih2", "fixed-clock";
 			compatible = "fsl,imx-ckih2", "fixed-clock";
+			#clock-cells = <0>;
 			clock-frequency = <0>;
 			clock-frequency = <0>;
 		};
 		};
 
 
 		osc {
 		osc {
 			compatible = "fsl,imx-osc", "fixed-clock";
 			compatible = "fsl,imx-osc", "fixed-clock";
+			#clock-cells = <0>;
 			clock-frequency = <24000000>;
 			clock-frequency = <24000000>;
 		};
 		};
 	};
 	};

+ 4 - 0
arch/arm/boot/dts/imx51.dtsi

@@ -50,21 +50,25 @@
 
 
 		ckil {
 		ckil {
 			compatible = "fsl,imx-ckil", "fixed-clock";
 			compatible = "fsl,imx-ckil", "fixed-clock";
+			#clock-cells = <0>;
 			clock-frequency = <32768>;
 			clock-frequency = <32768>;
 		};
 		};
 
 
 		ckih1 {
 		ckih1 {
 			compatible = "fsl,imx-ckih1", "fixed-clock";
 			compatible = "fsl,imx-ckih1", "fixed-clock";
+			#clock-cells = <0>;
 			clock-frequency = <0>;
 			clock-frequency = <0>;
 		};
 		};
 
 
 		ckih2 {
 		ckih2 {
 			compatible = "fsl,imx-ckih2", "fixed-clock";
 			compatible = "fsl,imx-ckih2", "fixed-clock";
+			#clock-cells = <0>;
 			clock-frequency = <0>;
 			clock-frequency = <0>;
 		};
 		};
 
 
 		osc {
 		osc {
 			compatible = "fsl,imx-osc", "fixed-clock";
 			compatible = "fsl,imx-osc", "fixed-clock";
+			#clock-cells = <0>;
 			clock-frequency = <24000000>;
 			clock-frequency = <24000000>;
 		};
 		};
 	};
 	};

+ 12 - 11
arch/arm/boot/dts/imx53-m53evk.dts

@@ -17,7 +17,8 @@
 	compatible = "denx,imx53-m53evk", "fsl,imx53";
 	compatible = "denx,imx53-m53evk", "fsl,imx53";
 
 
 	memory {
 	memory {
-		reg = <0x70000000 0x20000000>;
+		reg = <0x70000000 0x20000000>,
+		      <0xb0000000 0x20000000>;
 	};
 	};
 
 
 	soc {
 	soc {
@@ -193,17 +194,17 @@
 		irq-trigger = <0x1>;
 		irq-trigger = <0x1>;
 
 
 		stmpe_touchscreen {
 		stmpe_touchscreen {
-			compatible = "stmpe,ts";
+			compatible = "st,stmpe-ts";
 			reg = <0>;
 			reg = <0>;
-			ts,sample-time = <4>;
-			ts,mod-12b = <1>;
-			ts,ref-sel = <0>;
-			ts,adc-freq = <1>;
-			ts,ave-ctrl = <3>;
-			ts,touch-det-delay = <3>;
-			ts,settling = <4>;
-			ts,fraction-z = <7>;
-			ts,i-drive = <1>;
+			st,sample-time = <4>;
+			st,mod-12b = <1>;
+			st,ref-sel = <0>;
+			st,adc-freq = <1>;
+			st,ave-ctrl = <3>;
+			st,touch-det-delay = <3>;
+			st,settling = <4>;
+			st,fraction-z = <7>;
+			st,i-drive = <1>;
 		};
 		};
 	};
 	};
 
 

+ 2 - 1
arch/arm/boot/dts/imx53-qsb-common.dtsi

@@ -14,7 +14,8 @@
 
 
 / {
 / {
 	memory {
 	memory {
-		reg = <0x70000000 0x40000000>;
+		reg = <0x70000000 0x20000000>,
+		      <0xb0000000 0x20000000>;
 	};
 	};
 
 
 	display0: display@di0 {
 	display0: display@di0 {

+ 10 - 1
arch/arm/boot/dts/imx53-tx53-x03x.dts

@@ -25,12 +25,17 @@
 	soc {
 	soc {
 		display: display@di0 {
 		display: display@di0 {
 			compatible = "fsl,imx-parallel-display";
 			compatible = "fsl,imx-parallel-display";
-			crtcs = <&ipu 0>;
 			interface-pix-fmt = "rgb24";
 			interface-pix-fmt = "rgb24";
 			pinctrl-names = "default";
 			pinctrl-names = "default";
 			pinctrl-0 = <&pinctrl_rgb24_vga1>;
 			pinctrl-0 = <&pinctrl_rgb24_vga1>;
 			status = "okay";
 			status = "okay";
 
 
+			port {
+				display0_in: endpoint {
+					remote-endpoint = <&ipu_di0_disp0>;
+				};
+			};
+
 			display-timings {
 			display-timings {
 				VGA {
 				VGA {
 					clock-frequency = <25200000>;
 					clock-frequency = <25200000>;
@@ -293,6 +298,10 @@
 	};
 	};
 };
 };
 
 
+&ipu_di0_disp0 {
+	remote-endpoint = <&display0_in>;
+};
+
 &kpp {
 &kpp {
 	pinctrl-names = "default";
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_kpp>;
 	pinctrl-0 = <&pinctrl_kpp>;

+ 5 - 1
arch/arm/boot/dts/imx53.dtsi

@@ -70,21 +70,25 @@
 
 
 		ckil {
 		ckil {
 			compatible = "fsl,imx-ckil", "fixed-clock";
 			compatible = "fsl,imx-ckil", "fixed-clock";
+			#clock-cells = <0>;
 			clock-frequency = <32768>;
 			clock-frequency = <32768>;
 		};
 		};
 
 
 		ckih1 {
 		ckih1 {
 			compatible = "fsl,imx-ckih1", "fixed-clock";
 			compatible = "fsl,imx-ckih1", "fixed-clock";
+			#clock-cells = <0>;
 			clock-frequency = <22579200>;
 			clock-frequency = <22579200>;
 		};
 		};
 
 
 		ckih2 {
 		ckih2 {
 			compatible = "fsl,imx-ckih2", "fixed-clock";
 			compatible = "fsl,imx-ckih2", "fixed-clock";
+			#clock-cells = <0>;
 			clock-frequency = <0>;
 			clock-frequency = <0>;
 		};
 		};
 
 
 		osc {
 		osc {
 			compatible = "fsl,imx-osc", "fixed-clock";
 			compatible = "fsl,imx-osc", "fixed-clock";
+			#clock-cells = <0>;
 			clock-frequency = <24000000>;
 			clock-frequency = <24000000>;
 		};
 		};
 	};
 	};
@@ -430,7 +434,7 @@
 
 
 					port {
 					port {
 						lvds1_in: endpoint {
 						lvds1_in: endpoint {
-							remote-endpoint = <&ipu_di0_lvds0>;
+							remote-endpoint = <&ipu_di1_lvds1>;
 						};
 						};
 					};
 					};
 				};
 				};

+ 35 - 13
arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts

@@ -19,7 +19,10 @@
 	compatible = "dmo,imx6q-edmqmx6", "fsl,imx6q";
 	compatible = "dmo,imx6q-edmqmx6", "fsl,imx6q";
 
 
 	aliases {
 	aliases {
-		gpio7 = &stmpe_gpio;
+		gpio7 = &stmpe_gpio1;
+		gpio8 = &stmpe_gpio2;
+		stmpe-i2c0 = &stmpe1;
+		stmpe-i2c1 = &stmpe2;
 	};
 	};
 
 
 	memory {
 	memory {
@@ -40,13 +43,15 @@
 			regulator-always-on;
 			regulator-always-on;
 		};
 		};
 
 
-		reg_usb_otg_vbus: regulator@1 {
+		reg_usb_otg_switch: regulator@1 {
 			compatible = "regulator-fixed";
 			compatible = "regulator-fixed";
 			reg = <1>;
 			reg = <1>;
-			regulator-name = "usb_otg_vbus";
+			regulator-name = "usb_otg_switch";
 			regulator-min-microvolt = <5000000>;
 			regulator-min-microvolt = <5000000>;
 			regulator-max-microvolt = <5000000>;
 			regulator-max-microvolt = <5000000>;
 			gpio = <&gpio7 12 0>;
 			gpio = <&gpio7 12 0>;
+			regulator-boot-on;
+			regulator-always-on;
 		};
 		};
 
 
 		reg_usb_host1: regulator@2 {
 		reg_usb_host1: regulator@2 {
@@ -65,23 +70,23 @@
 
 
 		led-blue {
 		led-blue {
 			label = "blue";
 			label = "blue";
-			gpios = <&stmpe_gpio 8 GPIO_ACTIVE_HIGH>;
+			gpios = <&stmpe_gpio1 8 GPIO_ACTIVE_HIGH>;
 			linux,default-trigger = "heartbeat";
 			linux,default-trigger = "heartbeat";
 		};
 		};
 
 
 		led-green {
 		led-green {
 			label = "green";
 			label = "green";
-			gpios = <&stmpe_gpio 9 GPIO_ACTIVE_HIGH>;
+			gpios = <&stmpe_gpio1 9 GPIO_ACTIVE_HIGH>;
 		};
 		};
 
 
 		led-pink {
 		led-pink {
 			label = "pink";
 			label = "pink";
-			gpios = <&stmpe_gpio 10 GPIO_ACTIVE_HIGH>;
+			gpios = <&stmpe_gpio1 10 GPIO_ACTIVE_HIGH>;
 		};
 		};
 
 
 		led-red {
 		led-red {
 			label = "red";
 			label = "red";
-			gpios = <&stmpe_gpio 11 GPIO_ACTIVE_HIGH>;
+			gpios = <&stmpe_gpio1 11 GPIO_ACTIVE_HIGH>;
 		};
 		};
 	};
 	};
 };
 };
@@ -99,7 +104,8 @@
 	clock-frequency = <100000>;
 	clock-frequency = <100000>;
 	pinctrl-names = "default";
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_i2c2
 	pinctrl-0 = <&pinctrl_i2c2
-		     &pinctrl_stmpe>;
+		     &pinctrl_stmpe1
+		     &pinctrl_stmpe2>;
 	status = "okay";
 	status = "okay";
 
 
 	pmic: pfuze100@08 {
 	pmic: pfuze100@08 {
@@ -205,13 +211,25 @@
 		};
 		};
 	};
 	};
 
 
-	stmpe: stmpe1601@40 {
+	stmpe1: stmpe1601@40 {
 		compatible = "st,stmpe1601";
 		compatible = "st,stmpe1601";
 		reg = <0x40>;
 		reg = <0x40>;
 		interrupts = <30 0>;
 		interrupts = <30 0>;
 		interrupt-parent = <&gpio3>;
 		interrupt-parent = <&gpio3>;
 
 
-		stmpe_gpio: stmpe_gpio {
+		stmpe_gpio1: stmpe_gpio {
+			#gpio-cells = <2>;
+			compatible = "st,stmpe-gpio";
+		};
+	};
+
+	stmpe2: stmpe1601@44 {
+		compatible = "st,stmpe1601";
+		reg = <0x44>;
+		interrupts = <2 0>;
+		interrupt-parent = <&gpio5>;
+
+		stmpe_gpio2: stmpe_gpio {
 			#gpio-cells = <2>;
 			#gpio-cells = <2>;
 			compatible = "st,stmpe-gpio";
 			compatible = "st,stmpe-gpio";
 		};
 		};
@@ -273,10 +291,14 @@
 			>;
 			>;
 		};
 		};
 
 
-		pinctrl_stmpe: stmpegrp {
+		pinctrl_stmpe1: stmpe1grp {
 			fsl,pins = <MX6QDL_PAD_EIM_D30__GPIO3_IO30 0x80000000>;
 			fsl,pins = <MX6QDL_PAD_EIM_D30__GPIO3_IO30 0x80000000>;
 		};
 		};
 
 
+		pinctrl_stmpe2: stmpe2grp {
+			fsl,pins = <MX6QDL_PAD_EIM_A25__GPIO5_IO02 0x80000000>;
+		};
+
 		pinctrl_uart1: uart1grp {
 		pinctrl_uart1: uart1grp {
 			fsl,pins = <
 			fsl,pins = <
 				MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA	0x1b0b1
 				MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA	0x1b0b1
@@ -293,7 +315,7 @@
 
 
 		pinctrl_usbotg: usbotggrp {
 		pinctrl_usbotg: usbotggrp {
 			fsl,pins = <
 			fsl,pins = <
-				MX6QDL_PAD_GPIO_1__USB_OTG_ID		0x17059
+				MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID	0x17059
 			>;
 			>;
 		};
 		};
 
 
@@ -344,11 +366,11 @@
 &usbh1 {
 &usbh1 {
 	vbus-supply = <&reg_usb_host1>;
 	vbus-supply = <&reg_usb_host1>;
 	disable-over-current;
 	disable-over-current;
+	dr_mode = "host";
 	status = "okay";
 	status = "okay";
 };
 };
 
 
 &usbotg {
 &usbotg {
-	vbus-supply = <&reg_usb_otg_vbus>;
 	pinctrl-names = "default";
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_usbotg>;
 	pinctrl-0 = <&pinctrl_usbotg>;
 	disable-over-current;
 	disable-over-current;

+ 0 - 3
arch/arm/boot/dts/imx6q-gw5400-a.dts

@@ -487,9 +487,6 @@
 
 
 &ldb {
 &ldb {
 	status = "okay";
 	status = "okay";
-	lvds-channel@0 {
-		crtcs = <&ipu1 0>, <&ipu1 1>, <&ipu2 0>, <&ipu2 1>;
-	};
 };
 };
 
 
 &pcie {
 &pcie {

+ 0 - 3
arch/arm/boot/dts/imx6qdl-gw52xx.dtsi

@@ -436,9 +436,6 @@
 
 
 &ldb {
 &ldb {
 	status = "okay";
 	status = "okay";
-	lvds-channel@0 {
-		crtcs = <&ipu1 0>, <&ipu1 1>;
-	};
 };
 };
 
 
 &pcie {
 &pcie {

+ 11 - 11
arch/arm/boot/dts/imx6qdl-microsom-ar8035.dtsi

@@ -26,25 +26,25 @@
 				/* GPIO16 -> AR8035 25MHz */
 				/* GPIO16 -> AR8035 25MHz */
 				MX6QDL_PAD_GPIO_16__ENET_REF_CLK	0xc0000000
 				MX6QDL_PAD_GPIO_16__ENET_REF_CLK	0xc0000000
 				MX6QDL_PAD_RGMII_TXC__RGMII_TXC		0x80000000
 				MX6QDL_PAD_RGMII_TXC__RGMII_TXC		0x80000000
-				MX6QDL_PAD_RGMII_TD0__RGMII_TD0		0x1b0b0
-				MX6QDL_PAD_RGMII_TD1__RGMII_TD1		0x1b0b0
-				MX6QDL_PAD_RGMII_TD2__RGMII_TD2		0x1b0b0
-				MX6QDL_PAD_RGMII_TD3__RGMII_TD3		0x1b0b0
-				MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL	0x1b0b0
+				MX6QDL_PAD_RGMII_TD0__RGMII_TD0		0x1b030
+				MX6QDL_PAD_RGMII_TD1__RGMII_TD1		0x1b030
+				MX6QDL_PAD_RGMII_TD2__RGMII_TD2		0x1b030
+				MX6QDL_PAD_RGMII_TD3__RGMII_TD3		0x1b030
+				MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL	0x1b030
 				/* AR8035 CLK_25M --> ENET_REF_CLK (V22) */
 				/* AR8035 CLK_25M --> ENET_REF_CLK (V22) */
 				MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK	0x0a0b1
 				MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK	0x0a0b1
 				/* AR8035 pin strapping: IO voltage: pull up */
 				/* AR8035 pin strapping: IO voltage: pull up */
-				MX6QDL_PAD_RGMII_RXC__RGMII_RXC		0x1b0b0
+				MX6QDL_PAD_RGMII_RXC__RGMII_RXC		0x1b030
 				/* AR8035 pin strapping: PHYADDR#0: pull down */
 				/* AR8035 pin strapping: PHYADDR#0: pull down */
-				MX6QDL_PAD_RGMII_RD0__RGMII_RD0		0x130b0
+				MX6QDL_PAD_RGMII_RD0__RGMII_RD0		0x13030
 				/* AR8035 pin strapping: PHYADDR#1: pull down */
 				/* AR8035 pin strapping: PHYADDR#1: pull down */
-				MX6QDL_PAD_RGMII_RD1__RGMII_RD1		0x130b0
+				MX6QDL_PAD_RGMII_RD1__RGMII_RD1		0x13030
 				/* AR8035 pin strapping: MODE#1: pull up */
 				/* AR8035 pin strapping: MODE#1: pull up */
-				MX6QDL_PAD_RGMII_RD2__RGMII_RD2		0x1b0b0
+				MX6QDL_PAD_RGMII_RD2__RGMII_RD2		0x1b030
 				/* AR8035 pin strapping: MODE#3: pull up */
 				/* AR8035 pin strapping: MODE#3: pull up */
-				MX6QDL_PAD_RGMII_RD3__RGMII_RD3		0x1b0b0
+				MX6QDL_PAD_RGMII_RD3__RGMII_RD3		0x1b030
 				/* AR8035 pin strapping: MODE#0: pull down */
 				/* AR8035 pin strapping: MODE#0: pull down */
-				MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL	0x130b0
+				MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL	0x13030
 
 
 				/*
 				/*
 				 * As the RMII pins are also connected to RGMII
 				 * As the RMII pins are also connected to RGMII

+ 11 - 2
arch/arm/boot/dts/imx6qdl.dtsi

@@ -10,6 +10,8 @@
  * http://www.gnu.org/copyleft/gpl.html
  * http://www.gnu.org/copyleft/gpl.html
  */
  */
 
 
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
 #include "skeleton.dtsi"
 #include "skeleton.dtsi"
 
 
 / {
 / {
@@ -46,8 +48,6 @@
 	intc: interrupt-controller@00a01000 {
 	intc: interrupt-controller@00a01000 {
 		compatible = "arm,cortex-a9-gic";
 		compatible = "arm,cortex-a9-gic";
 		#interrupt-cells = <3>;
 		#interrupt-cells = <3>;
-		#address-cells = <1>;
-		#size-cells = <1>;
 		interrupt-controller;
 		interrupt-controller;
 		reg = <0x00a01000 0x1000>,
 		reg = <0x00a01000 0x1000>,
 		      <0x00a00100 0x100>;
 		      <0x00a00100 0x100>;
@@ -59,16 +59,19 @@
 
 
 		ckil {
 		ckil {
 			compatible = "fsl,imx-ckil", "fixed-clock";
 			compatible = "fsl,imx-ckil", "fixed-clock";
+			#clock-cells = <0>;
 			clock-frequency = <32768>;
 			clock-frequency = <32768>;
 		};
 		};
 
 
 		ckih1 {
 		ckih1 {
 			compatible = "fsl,imx-ckih1", "fixed-clock";
 			compatible = "fsl,imx-ckih1", "fixed-clock";
+			#clock-cells = <0>;
 			clock-frequency = <0>;
 			clock-frequency = <0>;
 		};
 		};
 
 
 		osc {
 		osc {
 			compatible = "fsl,imx-osc", "fixed-clock";
 			compatible = "fsl,imx-osc", "fixed-clock";
+			#clock-cells = <0>;
 			clock-frequency = <24000000>;
 			clock-frequency = <24000000>;
 		};
 		};
 	};
 	};
@@ -138,6 +141,12 @@
 				  0x82000000 0 0x01000000 0x01000000 0 0x00f00000>; /* non-prefetchable memory */
 				  0x82000000 0 0x01000000 0x01000000 0 0x00f00000>; /* non-prefetchable memory */
 			num-lanes = <1>;
 			num-lanes = <1>;
 			interrupts = <0 123 IRQ_TYPE_LEVEL_HIGH>;
 			interrupts = <0 123 IRQ_TYPE_LEVEL_HIGH>;
+			#interrupt-cells = <1>;
+			interrupt-map-mask = <0 0 0 0x7>;
+			interrupt-map = <0 0 0 1 &intc GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
+			                <0 0 0 2 &intc GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
+			                <0 0 0 3 &intc GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
+			                <0 0 0 4 &intc GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&clks 189>, <&clks 187>, <&clks 206>, <&clks 144>;
 			clocks = <&clks 189>, <&clks 187>, <&clks 206>, <&clks 144>;
 			clock-names = "pcie_ref_125m", "sata_ref_100m", "lvds_gate", "pcie_axi";
 			clock-names = "pcie_ref_125m", "sata_ref_100m", "lvds_gate", "pcie_axi";
 			status = "disabled";
 			status = "disabled";

+ 1 - 0
arch/arm/boot/dts/imx6sl-evk.dts

@@ -282,6 +282,7 @@
 				MX6SL_PAD_ECSPI1_MISO__ECSPI1_MISO	0x100b1
 				MX6SL_PAD_ECSPI1_MISO__ECSPI1_MISO	0x100b1
 				MX6SL_PAD_ECSPI1_MOSI__ECSPI1_MOSI	0x100b1
 				MX6SL_PAD_ECSPI1_MOSI__ECSPI1_MOSI	0x100b1
 				MX6SL_PAD_ECSPI1_SCLK__ECSPI1_SCLK	0x100b1
 				MX6SL_PAD_ECSPI1_SCLK__ECSPI1_SCLK	0x100b1
+				MX6SL_PAD_ECSPI1_SS0__GPIO4_IO11	0x80000000
 			>;
 			>;
 		};
 		};
 
 

+ 2 - 2
arch/arm/boot/dts/imx6sl.dtsi

@@ -68,8 +68,6 @@
 	intc: interrupt-controller@00a01000 {
 	intc: interrupt-controller@00a01000 {
 		compatible = "arm,cortex-a9-gic";
 		compatible = "arm,cortex-a9-gic";
 		#interrupt-cells = <3>;
 		#interrupt-cells = <3>;
-		#address-cells = <1>;
-		#size-cells = <1>;
 		interrupt-controller;
 		interrupt-controller;
 		reg = <0x00a01000 0x1000>,
 		reg = <0x00a01000 0x1000>,
 		      <0x00a00100 0x100>;
 		      <0x00a00100 0x100>;
@@ -81,11 +79,13 @@
 
 
 		ckil {
 		ckil {
 			compatible = "fixed-clock";
 			compatible = "fixed-clock";
+			#clock-cells = <0>;
 			clock-frequency = <32768>;
 			clock-frequency = <32768>;
 		};
 		};
 
 
 		osc {
 		osc {
 			compatible = "fixed-clock";
 			compatible = "fixed-clock";
+			#clock-cells = <0>;
 			clock-frequency = <24000000>;
 			clock-frequency = <24000000>;
 		};
 		};
 	};
 	};

+ 1 - 1
arch/arm/boot/dts/kirkwood-b3.dts

@@ -75,7 +75,7 @@
 			m25p16@0 {
 			m25p16@0 {
 				#address-cells = <1>;
 				#address-cells = <1>;
 				#size-cells = <1>;
 				#size-cells = <1>;
-				compatible = "m25p16";
+				compatible = "st,m25p16";
 				reg = <0>;
 				reg = <0>;
 				spi-max-frequency = <40000000>;
 				spi-max-frequency = <40000000>;
 				mode = <0>;
 				mode = <0>;

+ 1 - 1
arch/arm/boot/dts/kirkwood-cloudbox.dts

@@ -46,7 +46,7 @@
 			flash@0 {
 			flash@0 {
 				#address-cells = <1>;
 				#address-cells = <1>;
 				#size-cells = <1>;
 				#size-cells = <1>;
-				compatible = "mx25l4005a";
+				compatible = "mxicy,mx25l4005a";
 				reg = <0>;
 				reg = <0>;
 				spi-max-frequency = <20000000>;
 				spi-max-frequency = <20000000>;
 				mode = <0>;
 				mode = <0>;

+ 1 - 1
arch/arm/boot/dts/kirkwood-dreamplug.dts

@@ -43,7 +43,7 @@
 			m25p40@0 {
 			m25p40@0 {
 				#address-cells = <1>;
 				#address-cells = <1>;
 				#size-cells = <1>;
 				#size-cells = <1>;
-				compatible = "mx25l1606e";
+				compatible = "mxicy,mx25l1606e";
 				reg = <0>;
 				reg = <0>;
 				spi-max-frequency = <50000000>;
 				spi-max-frequency = <50000000>;
 				mode = <0>;
 				mode = <0>;

+ 1 - 1
arch/arm/boot/dts/kirkwood-laplug.dts

@@ -48,7 +48,7 @@
 			status = "okay";
 			status = "okay";
 
 
 			eeprom@50 {
 			eeprom@50 {
-				compatible = "at,24c04";
+				compatible = "atmel,24c04";
 				pagesize = <16>;
 				pagesize = <16>;
 				reg = <0x50>;
 				reg = <0x50>;
 			};
 			};

+ 1 - 1
arch/arm/boot/dts/kirkwood-mv88f6281gtw-ge.dts

@@ -56,7 +56,7 @@
 			flash@0 {
 			flash@0 {
 				#address-cells = <1>;
 				#address-cells = <1>;
 				#size-cells = <1>;
 				#size-cells = <1>;
-				compatible = "mx25l12805d";
+				compatible = "mxicy,mx25l12805d";
 				reg = <0>;
 				reg = <0>;
 				spi-max-frequency = <50000000>;
 				spi-max-frequency = <50000000>;
 				mode = <0>;
 				mode = <0>;

+ 2 - 2
arch/arm/boot/dts/kirkwood-ns2-common.dtsi

@@ -32,7 +32,7 @@
 			flash@0 {
 			flash@0 {
 				#address-cells = <1>;
 				#address-cells = <1>;
 				#size-cells = <1>;
 				#size-cells = <1>;
-				compatible = "mx25l4005a";
+				compatible = "mxicy,mx25l4005a";
 				reg = <0>;
 				reg = <0>;
 				spi-max-frequency = <20000000>;
 				spi-max-frequency = <20000000>;
 				mode = <0>;
 				mode = <0>;
@@ -50,7 +50,7 @@
 			status = "okay";
 			status = "okay";
 
 
 			eeprom@50 {
 			eeprom@50 {
-				compatible = "at,24c04";
+				compatible = "atmel,24c04";
 				pagesize = <16>;
 				pagesize = <16>;
 				reg = <0x50>;
 				reg = <0x50>;
 			};
 			};

+ 1 - 1
arch/arm/boot/dts/kirkwood-nsa310.dts

@@ -104,7 +104,7 @@
 			status = "okay";
 			status = "okay";
 
 
 			adt7476: adt7476a@2e {
 			adt7476: adt7476a@2e {
-				compatible = "adt7476";
+				compatible = "adi,adt7476";
 				reg = <0x2e>;
 				reg = <0x2e>;
 			};
 			};
 		};
 		};

+ 1 - 1
arch/arm/boot/dts/kirkwood-nsa310a.dts

@@ -94,7 +94,7 @@
 			status = "okay";
 			status = "okay";
 
 
 			lm85: lm85@2e {
 			lm85: lm85@2e {
-				compatible = "lm85";
+				compatible = "national,lm85";
 				reg = <0x2e>;
 				reg = <0x2e>;
 			};
 			};
 		};
 		};

+ 1 - 1
arch/arm/boot/dts/kirkwood-openblocks_a6.dts

@@ -40,7 +40,7 @@
 			pinctrl-names = "default";
 			pinctrl-names = "default";
 
 
 			s35390a: s35390a@30 {
 			s35390a: s35390a@30 {
-				compatible = "s35390a";
+				compatible = "sii,s35390a";
 				reg = <0x30>;
 				reg = <0x30>;
 			};
 			};
 		};
 		};

+ 1 - 1
arch/arm/boot/dts/kirkwood-openblocks_a7.dts

@@ -52,7 +52,7 @@
 			pinctrl-names = "default";
 			pinctrl-names = "default";
 
 
 			s24c02: s24c02@50 {
 			s24c02: s24c02@50 {
-				compatible = "24c02";
+				compatible = "atmel,24c02";
 				reg = <0x50>;
 				reg = <0x50>;
 			};
 			};
 		};
 		};

+ 16 - 0
arch/arm/boot/dts/omap3-beagle-xm-ab.dts

@@ -0,0 +1,16 @@
+/*
+ * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include "omap3-beagle-xm.dts"
+
+/ {
+	/* HS USB Port 2 Power enable was inverted with the xM C */
+	hsusb2_power: hsusb2_power_reg {
+		enable-active-high;
+	};
+};

+ 0 - 1
arch/arm/boot/dts/omap3-devkit8000.dts

@@ -112,7 +112,6 @@
 		reg = <0 0 0>; /* CS0, offset 0 */
 		reg = <0 0 0>; /* CS0, offset 0 */
 		nand-bus-width = <16>;
 		nand-bus-width = <16>;
 
 
-		gpmc,device-nand;
 		gpmc,sync-clk-ps = <0>;
 		gpmc,sync-clk-ps = <0>;
 		gpmc,cs-on-ns = <0>;
 		gpmc,cs-on-ns = <0>;
 		gpmc,cs-rd-off-ns = <44>;
 		gpmc,cs-rd-off-ns = <44>;

+ 0 - 1
arch/arm/boot/dts/omap3-lilly-a83x.dtsi

@@ -368,7 +368,6 @@
 		/* no elm on omap3 */
 		/* no elm on omap3 */
 
 
 		gpmc,mux-add-data = <0>;
 		gpmc,mux-add-data = <0>;
-		gpmc,device-nand;
 		gpmc,device-width = <2>;
 		gpmc,device-width = <2>;
 		gpmc,wait-pin = <0>;
 		gpmc,wait-pin = <0>;
 		gpmc,wait-monitoring-ns = <0>;
 		gpmc,wait-monitoring-ns = <0>;

+ 1 - 1
arch/arm/boot/dts/omap3.dtsi

@@ -74,7 +74,7 @@
 	/*
 	/*
 	 * XXX: Use a flat representation of the OMAP3 interconnect.
 	 * XXX: Use a flat representation of the OMAP3 interconnect.
 	 * The real OMAP interconnect network is quite complex.
 	 * The real OMAP interconnect network is quite complex.
-	 * Since that will not bring real advantage to represent that in DT for
+	 * Since it will not bring real advantage to represent that in DT for
 	 * the moment, just use a fake OCP bus entry to represent the whole bus
 	 * the moment, just use a fake OCP bus entry to represent the whole bus
 	 * hierarchy.
 	 * hierarchy.
 	 */
 	 */

+ 2 - 2
arch/arm/boot/dts/omap4.dtsi

@@ -72,7 +72,7 @@
 	};
 	};
 
 
 	/*
 	/*
-	 * The soc node represents the soc top level view. It is uses for IPs
+	 * The soc node represents the soc top level view. It is used for IPs
 	 * that are not memory mapped in the MPU view or for the MPU itself.
 	 * that are not memory mapped in the MPU view or for the MPU itself.
 	 */
 	 */
 	soc {
 	soc {
@@ -96,7 +96,7 @@
 	/*
 	/*
 	 * XXX: Use a flat representation of the OMAP4 interconnect.
 	 * XXX: Use a flat representation of the OMAP4 interconnect.
 	 * The real OMAP interconnect network is quite complex.
 	 * The real OMAP interconnect network is quite complex.
-	 * Since that will not bring real advantage to represent that in DT for
+	 * Since it will not bring real advantage to represent that in DT for
 	 * the moment, just use a fake OCP bus entry to represent the whole bus
 	 * the moment, just use a fake OCP bus entry to represent the whole bus
 	 * hierarchy.
 	 * hierarchy.
 	 */
 	 */

+ 8 - 2
arch/arm/boot/dts/omap5.dtsi

@@ -93,7 +93,7 @@
 	};
 	};
 
 
 	/*
 	/*
-	 * The soc node represents the soc top level view. It is uses for IPs
+	 * The soc node represents the soc top level view. It is used for IPs
 	 * that are not memory mapped in the MPU view or for the MPU itself.
 	 * that are not memory mapped in the MPU view or for the MPU itself.
 	 */
 	 */
 	soc {
 	soc {
@@ -107,7 +107,7 @@
 	/*
 	/*
 	 * XXX: Use a flat representation of the OMAP3 interconnect.
 	 * XXX: Use a flat representation of the OMAP3 interconnect.
 	 * The real OMAP interconnect network is quite complex.
 	 * The real OMAP interconnect network is quite complex.
-	 * Since that will not bring real advantage to represent that in DT for
+	 * Since it will not bring real advantage to represent that in DT for
 	 * the moment, just use a fake OCP bus entry to represent the whole bus
 	 * the moment, just use a fake OCP bus entry to represent the whole bus
 	 * hierarchy.
 	 * hierarchy.
 	 */
 	 */
@@ -813,6 +813,12 @@
 				      <0x4a084c00 0x40>;
 				      <0x4a084c00 0x40>;
 				reg-names = "phy_rx", "phy_tx", "pll_ctrl";
 				reg-names = "phy_rx", "phy_tx", "pll_ctrl";
 				ctrl-module = <&omap_control_usb3phy>;
 				ctrl-module = <&omap_control_usb3phy>;
+				clocks = <&usb_phy_cm_clk32k>,
+					 <&sys_clkin>,
+					 <&usb_otg_ss_refclk960m>;
+				clock-names =	"wkupclk",
+						"sysclk",
+						"refclk";
 				#phy-cells = <0>;
 				#phy-cells = <0>;
 			};
 			};
 		};
 		};

+ 0 - 1
arch/arm/boot/dts/r8a7740.dtsi

@@ -28,7 +28,6 @@
 	gic: interrupt-controller@c2800000 {
 	gic: interrupt-controller@c2800000 {
 		compatible = "arm,cortex-a9-gic";
 		compatible = "arm,cortex-a9-gic";
 		#interrupt-cells = <3>;
 		#interrupt-cells = <3>;
-		#address-cells = <1>;
 		interrupt-controller;
 		interrupt-controller;
 		reg = <0xc2800000 0x1000>,
 		reg = <0xc2800000 0x1000>,
 		      <0xc2000000 0x1000>;
 		      <0xc2000000 0x1000>;

+ 2 - 2
arch/arm/boot/dts/r8a7790-lager.dts

@@ -141,12 +141,12 @@
 	};
 	};
 
 
 	sdhi0_pins: sd0 {
 	sdhi0_pins: sd0 {
-		renesas,gpios = "sdhi0_data4", "sdhi0_ctrl";
+		renesas,groups = "sdhi0_data4", "sdhi0_ctrl";
 		renesas,function = "sdhi0";
 		renesas,function = "sdhi0";
 	};
 	};
 
 
 	sdhi2_pins: sd2 {
 	sdhi2_pins: sd2 {
-		renesas,gpios = "sdhi2_data4", "sdhi2_ctrl";
+		renesas,groups = "sdhi2_data4", "sdhi2_ctrl";
 		renesas,function = "sdhi2";
 		renesas,function = "sdhi2";
 	};
 	};
 
 

+ 1 - 1
arch/arm/boot/dts/r8a7790.dtsi

@@ -673,7 +673,7 @@
 			renesas,clock-indices = <
 			renesas,clock-indices = <
 				R8A7790_CLK_TMU1 R8A7790_CLK_TMU3 R8A7790_CLK_TMU2
 				R8A7790_CLK_TMU1 R8A7790_CLK_TMU3 R8A7790_CLK_TMU2
 				R8A7790_CLK_CMT0 R8A7790_CLK_TMU0 R8A7790_CLK_VSP1_DU1
 				R8A7790_CLK_CMT0 R8A7790_CLK_TMU0 R8A7790_CLK_VSP1_DU1
-				R8A7790_CLK_VSP1_DU0 R8A7790_CLK_VSP1_RT R8A7790_CLK_VSP1_SY
+				R8A7790_CLK_VSP1_DU0 R8A7790_CLK_VSP1_R R8A7790_CLK_VSP1_S
 			>;
 			>;
 			clock-output-names =
 			clock-output-names =
 				"tmu1", "tmu3", "tmu2", "cmt0", "tmu0", "vsp1-du1",
 				"tmu1", "tmu3", "tmu2", "cmt0", "tmu0", "vsp1-du1",

+ 3 - 3
arch/arm/boot/dts/r8a7791-koelsch.dts

@@ -230,17 +230,17 @@
 	};
 	};
 
 
 	sdhi0_pins: sd0 {
 	sdhi0_pins: sd0 {
-		renesas,gpios = "sdhi0_data4", "sdhi0_ctrl";
+		renesas,groups = "sdhi0_data4", "sdhi0_ctrl";
 		renesas,function = "sdhi0";
 		renesas,function = "sdhi0";
 	};
 	};
 
 
 	sdhi1_pins: sd1 {
 	sdhi1_pins: sd1 {
-		renesas,gpios = "sdhi1_data4", "sdhi1_ctrl";
+		renesas,groups = "sdhi1_data4", "sdhi1_ctrl";
 		renesas,function = "sdhi1";
 		renesas,function = "sdhi1";
 	};
 	};
 
 
 	sdhi2_pins: sd2 {
 	sdhi2_pins: sd2 {
-		renesas,gpios = "sdhi2_data4", "sdhi2_ctrl";
+		renesas,groups = "sdhi2_data4", "sdhi2_ctrl";
 		renesas,function = "sdhi2";
 		renesas,function = "sdhi2";
 	};
 	};
 
 

+ 1 - 1
arch/arm/boot/dts/r8a7791.dtsi

@@ -688,7 +688,7 @@
 			renesas,clock-indices = <
 			renesas,clock-indices = <
 				R8A7791_CLK_TMU1 R8A7791_CLK_TMU3 R8A7791_CLK_TMU2
 				R8A7791_CLK_TMU1 R8A7791_CLK_TMU3 R8A7791_CLK_TMU2
 				R8A7791_CLK_CMT0 R8A7791_CLK_TMU0 R8A7791_CLK_VSP1_DU1
 				R8A7791_CLK_CMT0 R8A7791_CLK_TMU0 R8A7791_CLK_VSP1_DU1
-				R8A7791_CLK_VSP1_DU0 R8A7791_CLK_VSP1_SY
+				R8A7791_CLK_VSP1_DU0 R8A7791_CLK_VSP1_S
 			>;
 			>;
 			clock-output-names =
 			clock-output-names =
 				"tmu1", "tmu3", "tmu2", "cmt0", "tmu0", "vsp1-du1",
 				"tmu1", "tmu3", "tmu2", "cmt0", "tmu0", "vsp1-du1",

+ 4 - 4
arch/arm/boot/dts/rk3188.dtsi

@@ -149,7 +149,7 @@
 
 
 			uart0 {
 			uart0 {
 				uart0_xfer: uart0-xfer {
 				uart0_xfer: uart0-xfer {
-					rockchip,pins = <RK_GPIO1 0 RK_FUNC_1 &pcfg_pull_none>,
+					rockchip,pins = <RK_GPIO1 0 RK_FUNC_1 &pcfg_pull_up>,
 							<RK_GPIO1 1 RK_FUNC_1 &pcfg_pull_none>;
 							<RK_GPIO1 1 RK_FUNC_1 &pcfg_pull_none>;
 				};
 				};
 
 
@@ -164,7 +164,7 @@
 
 
 			uart1 {
 			uart1 {
 				uart1_xfer: uart1-xfer {
 				uart1_xfer: uart1-xfer {
-					rockchip,pins = <RK_GPIO1 4 RK_FUNC_1 &pcfg_pull_none>,
+					rockchip,pins = <RK_GPIO1 4 RK_FUNC_1 &pcfg_pull_up>,
 							<RK_GPIO1 5 RK_FUNC_1 &pcfg_pull_none>;
 							<RK_GPIO1 5 RK_FUNC_1 &pcfg_pull_none>;
 				};
 				};
 
 
@@ -179,7 +179,7 @@
 
 
 			uart2 {
 			uart2 {
 				uart2_xfer: uart2-xfer {
 				uart2_xfer: uart2-xfer {
-					rockchip,pins = <RK_GPIO1 8 RK_FUNC_1 &pcfg_pull_none>,
+					rockchip,pins = <RK_GPIO1 8 RK_FUNC_1 &pcfg_pull_up>,
 							<RK_GPIO1 9 RK_FUNC_1 &pcfg_pull_none>;
 							<RK_GPIO1 9 RK_FUNC_1 &pcfg_pull_none>;
 				};
 				};
 				/* no rts / cts for uart2 */
 				/* no rts / cts for uart2 */
@@ -187,7 +187,7 @@
 
 
 			uart3 {
 			uart3 {
 				uart3_xfer: uart3-xfer {
 				uart3_xfer: uart3-xfer {
-					rockchip,pins = <RK_GPIO1 10 RK_FUNC_1 &pcfg_pull_none>,
+					rockchip,pins = <RK_GPIO1 10 RK_FUNC_1 &pcfg_pull_up>,
 							<RK_GPIO1 11 RK_FUNC_1 &pcfg_pull_none>;
 							<RK_GPIO1 11 RK_FUNC_1 &pcfg_pull_none>;
 				};
 				};
 
 

+ 0 - 1
arch/arm/boot/dts/sh73a0.dtsi

@@ -34,7 +34,6 @@
 	gic: interrupt-controller@f0001000 {
 	gic: interrupt-controller@f0001000 {
 		compatible = "arm,cortex-a9-gic";
 		compatible = "arm,cortex-a9-gic";
 		#interrupt-cells = <3>;
 		#interrupt-cells = <3>;
-		#address-cells = <1>;
 		interrupt-controller;
 		interrupt-controller;
 		reg = <0xf0001000 0x1000>,
 		reg = <0xf0001000 0x1000>,
 		      <0xf0000100 0x100>;
 		      <0xf0000100 0x100>;

+ 5 - 5
arch/arm/boot/dts/stih415-pinctrl.dtsi

@@ -49,7 +49,7 @@
 			reg 		= <0xfe61f080 0x4>;
 			reg 		= <0xfe61f080 0x4>;
 			reg-names	= "irqmux";
 			reg-names	= "irqmux";
 			interrupts 	= <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;
 			interrupts 	= <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;
-			interrupts-names = "irqmux";
+			interrupt-names	= "irqmux";
 			ranges 		= <0 0xfe610000 0x5000>;
 			ranges 		= <0 0xfe610000 0x5000>;
 
 
 			PIO0: gpio@fe610000 {
 			PIO0: gpio@fe610000 {
@@ -187,7 +187,7 @@
 			reg 		= <0xfee0f080 0x4>;
 			reg 		= <0xfee0f080 0x4>;
 			reg-names	= "irqmux";
 			reg-names	= "irqmux";
 			interrupts 	= <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>;
 			interrupts 	= <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>;
-			interrupts-names = "irqmux";
+			interrupt-names	= "irqmux";
 			ranges		= <0 0xfee00000 0x8000>;
 			ranges		= <0 0xfee00000 0x8000>;
 
 
 			PIO5: gpio@fee00000 {
 			PIO5: gpio@fee00000 {
@@ -282,7 +282,7 @@
 			reg 		= <0xfe82f080 0x4>;
 			reg 		= <0xfe82f080 0x4>;
 			reg-names	= "irqmux";
 			reg-names	= "irqmux";
 			interrupts 	= <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>;
 			interrupts 	= <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>;
-			interrupts-names = "irqmux";
+			interrupt-names	= "irqmux";
 			ranges		= <0 0xfe820000 0x8000>;
 			ranges		= <0 0xfe820000 0x8000>;
 
 
 			PIO13: gpio@fe820000 {
 			PIO13: gpio@fe820000 {
@@ -423,7 +423,7 @@
 			reg 		= <0xfd6bf080 0x4>;
 			reg 		= <0xfd6bf080 0x4>;
 			reg-names	= "irqmux";
 			reg-names	= "irqmux";
 			interrupts 	= <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
 			interrupts 	= <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
-			interrupts-names = "irqmux";
+			interrupt-names	= "irqmux";
 			ranges		= <0 0xfd6b0000 0x3000>;
 			ranges		= <0 0xfd6b0000 0x3000>;
 
 
 			PIO100: gpio@fd6b0000 {
 			PIO100: gpio@fd6b0000 {
@@ -460,7 +460,7 @@
 			reg 		= <0xfd33f080 0x4>;
 			reg 		= <0xfd33f080 0x4>;
 			reg-names	= "irqmux";
 			reg-names	= "irqmux";
 			interrupts 	= <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
 			interrupts 	= <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
-			interrupts-names = "irqmux";
+			interrupt-names	= "irqmux";
 			ranges		= <0 0xfd330000 0x5000>;
 			ranges		= <0 0xfd330000 0x5000>;
 
 
 			PIO103: gpio@fd330000 {
 			PIO103: gpio@fd330000 {

+ 5 - 5
arch/arm/boot/dts/stih416-pinctrl.dtsi

@@ -53,7 +53,7 @@
 			reg 		= <0xfe61f080 0x4>;
 			reg 		= <0xfe61f080 0x4>;
 			reg-names	= "irqmux";
 			reg-names	= "irqmux";
 			interrupts 	= <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>;
 			interrupts 	= <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>;
-			interrupts-names = "irqmux";
+			interrupt-names	= "irqmux";
 			ranges		= <0 0xfe610000 0x6000>;
 			ranges		= <0 0xfe610000 0x6000>;
 
 
 			PIO0: gpio@fe610000 {
 			PIO0: gpio@fe610000 {
@@ -201,7 +201,7 @@
 			reg 		= <0xfee0f080 0x4>;
 			reg 		= <0xfee0f080 0x4>;
 			reg-names	= "irqmux";
 			reg-names	= "irqmux";
 			interrupts 	= <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>;
 			interrupts 	= <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>;
-			interrupts-names = "irqmux";
+			interrupt-names	= "irqmux";
 			ranges		= <0 0xfee00000 0x10000>;
 			ranges		= <0 0xfee00000 0x10000>;
 
 
 			PIO5: gpio@fee00000 {
 			PIO5: gpio@fee00000 {
@@ -333,7 +333,7 @@
 			reg 		= <0xfe82f080 0x4>;
 			reg 		= <0xfe82f080 0x4>;
 			reg-names	= "irqmux";
 			reg-names	= "irqmux";
 			interrupts 	= <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
 			interrupts 	= <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
-			interrupts-names = "irqmux";
+			interrupt-names	= "irqmux";
 			ranges 		= <0 0xfe820000 0x6000>;
 			ranges 		= <0 0xfe820000 0x6000>;
 
 
 			PIO13: gpio@fe820000 {
 			PIO13: gpio@fe820000 {
@@ -461,7 +461,7 @@
 			reg 		= <0xfd6bf080 0x4>;
 			reg 		= <0xfd6bf080 0x4>;
 			reg-names	= "irqmux";
 			reg-names	= "irqmux";
 			interrupts 	= <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
 			interrupts 	= <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
-			interrupts-names = "irqmux";
+			interrupt-names	= "irqmux";
 			ranges		= <0 0xfd6b0000 0x3000>;
 			ranges		= <0 0xfd6b0000 0x3000>;
 
 
 			PIO100: gpio@fd6b0000 {
 			PIO100: gpio@fd6b0000 {
@@ -498,7 +498,7 @@
 			reg 		= <0xfd33f080 0x4>;
 			reg 		= <0xfd33f080 0x4>;
 			reg-names	= "irqmux";
 			reg-names	= "irqmux";
 			interrupts 	= <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
 			interrupts 	= <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
-			interrupts-names = "irqmux";
+			interrupt-names	= "irqmux";
 			ranges			= <0 0xfd330000 0x5000>;
 			ranges			= <0 0xfd330000 0x5000>;
 
 
 			PIO103: gpio@fd330000 {
 			PIO103: gpio@fd330000 {

+ 0 - 13
arch/arm/boot/dts/tegra124.dtsi

@@ -233,19 +233,6 @@
 		status = "disabled";
 		status = "disabled";
 	};
 	};
 
 
-	serial@0,70006400 {
-		compatible = "nvidia,tegra124-uart", "nvidia,tegra20-uart";
-		reg = <0x0 0x70006400 0x0 0x40>;
-		reg-shift = <2>;
-		interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&tegra_car TEGRA124_CLK_UARTE>;
-		resets = <&tegra_car 66>;
-		reset-names = "serial";
-		dmas = <&apbdma 20>, <&apbdma 20>;
-		dma-names = "rx", "tx";
-		status = "disabled";
-	};
-
 	pwm@0,7000a000 {
 	pwm@0,7000a000 {
 		compatible = "nvidia,tegra124-pwm", "nvidia,tegra20-pwm";
 		compatible = "nvidia,tegra124-pwm", "nvidia,tegra20-pwm";
 		reg = <0x0 0x7000a000 0x0 0x100>;
 		reg = <0x0 0x7000a000 0x0 0x100>;

+ 2 - 0
arch/arm/boot/dts/vf610-twr.dts

@@ -25,11 +25,13 @@
 	clocks {
 	clocks {
 		audio_ext {
 		audio_ext {
 			compatible = "fixed-clock";
 			compatible = "fixed-clock";
+			#clock-cells = <0>;
 			clock-frequency = <24576000>;
 			clock-frequency = <24576000>;
 		};
 		};
 
 
 		enet_ext {
 		enet_ext {
 			compatible = "fixed-clock";
 			compatible = "fixed-clock";
+			#clock-cells = <0>;
 			clock-frequency = <50000000>;
 			clock-frequency = <50000000>;
 		};
 		};
 	};
 	};

+ 2 - 2
arch/arm/boot/dts/vf610.dtsi

@@ -45,11 +45,13 @@
 
 
 		sxosc {
 		sxosc {
 			compatible = "fixed-clock";
 			compatible = "fixed-clock";
+			#clock-cells = <0>;
 			clock-frequency = <32768>;
 			clock-frequency = <32768>;
 		};
 		};
 
 
 		fxosc {
 		fxosc {
 			compatible = "fixed-clock";
 			compatible = "fixed-clock";
+			#clock-cells = <0>;
 			clock-frequency = <24000000>;
 			clock-frequency = <24000000>;
 		};
 		};
 	};
 	};
@@ -72,8 +74,6 @@
 			intc: interrupt-controller@40002000 {
 			intc: interrupt-controller@40002000 {
 				compatible = "arm,cortex-a9-gic";
 				compatible = "arm,cortex-a9-gic";
 				#interrupt-cells = <3>;
 				#interrupt-cells = <3>;
-				#address-cells = <1>;
-				#size-cells = <1>;
 				interrupt-controller;
 				interrupt-controller;
 				reg = <0x40003000 0x1000>,
 				reg = <0x40003000 0x1000>,
 				      <0x40002100 0x100>;
 				      <0x40002100 0x100>;

+ 23 - 0
arch/arm/boot/dts/zynq-7000.dtsi

@@ -24,6 +24,7 @@
 			device_type = "cpu";
 			device_type = "cpu";
 			reg = <0>;
 			reg = <0>;
 			clocks = <&clkc 3>;
 			clocks = <&clkc 3>;
+			clock-latency = <1000>;
 			operating-points = <
 			operating-points = <
 				/* kHz    uV */
 				/* kHz    uV */
 				666667  1000000
 				666667  1000000
@@ -54,6 +55,28 @@
 		interrupt-parent = <&intc>;
 		interrupt-parent = <&intc>;
 		ranges;
 		ranges;
 
 
+		i2c0: zynq-i2c@e0004000 {
+			compatible = "cdns,i2c-r1p10";
+			status = "disabled";
+			clocks = <&clkc 38>;
+			interrupt-parent = <&intc>;
+			interrupts = <0 25 4>;
+			reg = <0xe0004000 0x1000>;
+			#address-cells = <1>;
+			#size-cells = <0>;
+		};
+
+		i2c1: zynq-i2c@e0005000 {
+			compatible = "cdns,i2c-r1p10";
+			status = "disabled";
+			clocks = <&clkc 39>;
+			interrupt-parent = <&intc>;
+			interrupts = <0 48 4>;
+			reg = <0xe0005000 0x1000>;
+			#address-cells = <1>;
+			#size-cells = <0>;
+		};
+
 		intc: interrupt-controller@f8f01000 {
 		intc: interrupt-controller@f8f01000 {
 			compatible = "arm,cortex-a9-gic";
 			compatible = "arm,cortex-a9-gic";
 			#interrupt-cells = <3>;
 			#interrupt-cells = <3>;

+ 76 - 0
arch/arm/boot/dts/zynq-zc702.dts

@@ -34,6 +34,82 @@
 	phy-mode = "rgmii";
 	phy-mode = "rgmii";
 };
 };
 
 
+&i2c0 {
+	status = "okay";
+	clock-frequency = <400000>;
+
+	i2cswitch@74 {
+		compatible = "nxp,pca9548";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		reg = <0x74>;
+
+		i2c@0 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <0>;
+			si570: clock-generator@5d {
+				#clock-cells = <0>;
+				compatible = "silabs,si570";
+				temperature-stability = <50>;
+				reg = <0x5d>;
+				factory-fout = <156250000>;
+				clock-frequency = <148500000>;
+			};
+		};
+
+		i2c@2 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <2>;
+			eeprom@54 {
+				compatible = "at,24c08";
+				reg = <0x54>;
+			};
+		};
+
+		i2c@3 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <3>;
+			gpio@21 {
+				compatible = "ti,tca6416";
+				reg = <0x21>;
+				gpio-controller;
+				#gpio-cells = <2>;
+			};
+		};
+
+		i2c@4 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <4>;
+			rtc@51 {
+				compatible = "nxp,pcf8563";
+				reg = <0x51>;
+			};
+		};
+
+		i2c@7 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <7>;
+			hwmon@52 {
+				compatible = "ti,ucd9248";
+				reg = <52>;
+			};
+			hwmon@53 {
+				compatible = "ti,ucd9248";
+				reg = <53>;
+			};
+			hwmon@54 {
+				compatible = "ti,ucd9248";
+				reg = <54>;
+			};
+		};
+	};
+};
+
 &sdhci0 {
 &sdhci0 {
 	status = "okay";
 	status = "okay";
 };
 };

+ 68 - 0
arch/arm/boot/dts/zynq-zc706.dts

@@ -35,6 +35,74 @@
 	phy-mode = "rgmii";
 	phy-mode = "rgmii";
 };
 };
 
 
+&i2c0 {
+	status = "okay";
+	clock-frequency = <400000>;
+
+	i2cswitch@74 {
+		compatible = "nxp,pca9548";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		reg = <0x74>;
+
+		i2c@0 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <0>;
+			si570: clock-generator@5d {
+				#clock-cells = <0>;
+				compatible = "silabs,si570";
+				temperature-stability = <50>;
+				reg = <0x5d>;
+				factory-fout = <156250000>;
+				clock-frequency = <148500000>;
+			};
+		};
+
+		i2c@2 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <2>;
+			eeprom@54 {
+				compatible = "at,24c08";
+				reg = <0x54>;
+			};
+		};
+
+		i2c@3 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <3>;
+			gpio@21 {
+				compatible = "ti,tca6416";
+				reg = <0x21>;
+				gpio-controller;
+				#gpio-cells = <2>;
+			};
+		};
+
+		i2c@4 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <4>;
+			rtc@51 {
+				compatible = "nxp,pcf8563";
+				reg = <0x51>;
+			};
+		};
+
+		i2c@7 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <7>;
+			ucd90120@65 {
+				compatible = "ti,ucd90120";
+				reg = <0x65>;
+			};
+		};
+	};
+};
+
 &sdhci0 {
 &sdhci0 {
 	status = "okay";
 	status = "okay";
 };
 };

+ 2 - 4
arch/arm/common/bL_switcher.c

@@ -797,10 +797,8 @@ static int __init bL_switcher_init(void)
 {
 {
 	int ret;
 	int ret;
 
 
-	if (MAX_NR_CLUSTERS != 2) {
-		pr_err("%s: only dual cluster systems are supported\n", __func__);
-		return -EINVAL;
-	}
+	if (!mcpm_is_available())
+		return -ENODEV;
 
 
 	cpu_notifier(bL_switcher_hotplug_callback, 0);
 	cpu_notifier(bL_switcher_hotplug_callback, 0);
 
 

+ 5 - 0
arch/arm/common/mcpm_entry.c

@@ -48,6 +48,11 @@ int __init mcpm_platform_register(const struct mcpm_platform_ops *ops)
 	return 0;
 	return 0;
 }
 }
 
 
+bool mcpm_is_available(void)
+{
+	return (platform_ops) ? true : false;
+}
+
 int mcpm_cpu_power_up(unsigned int cpu, unsigned int cluster)
 int mcpm_cpu_power_up(unsigned int cpu, unsigned int cluster)
 {
 {
 	if (!platform_ops)
 	if (!platform_ops)

+ 1 - 1
arch/arm/configs/omap2plus_defconfig

@@ -226,7 +226,7 @@ CONFIG_USB_DWC3=m
 CONFIG_USB_TEST=y
 CONFIG_USB_TEST=y
 CONFIG_NOP_USB_XCEIV=y
 CONFIG_NOP_USB_XCEIV=y
 CONFIG_OMAP_USB2=y
 CONFIG_OMAP_USB2=y
-CONFIG_OMAP_USB3=y
+CONFIG_TI_PIPE3=y
 CONFIG_AM335X_PHY_USB=y
 CONFIG_AM335X_PHY_USB=y
 CONFIG_USB_GADGET=y
 CONFIG_USB_GADGET=y
 CONFIG_USB_GADGET_DEBUG=y
 CONFIG_USB_GADGET_DEBUG=y

+ 2 - 2
arch/arm/configs/u300_defconfig

@@ -11,6 +11,7 @@ CONFIG_MODULES=y
 CONFIG_MODULE_UNLOAD=y
 CONFIG_MODULE_UNLOAD=y
 # CONFIG_LBDAF is not set
 # CONFIG_LBDAF is not set
 # CONFIG_BLK_DEV_BSG is not set
 # CONFIG_BLK_DEV_BSG is not set
+CONFIG_PARTITION_ADVANCED=y
 # CONFIG_IOSCHED_CFQ is not set
 # CONFIG_IOSCHED_CFQ is not set
 # CONFIG_ARCH_MULTI_V7 is not set
 # CONFIG_ARCH_MULTI_V7 is not set
 CONFIG_ARCH_U300=y
 CONFIG_ARCH_U300=y
@@ -21,7 +22,6 @@ CONFIG_ZBOOT_ROM_TEXT=0x0
 CONFIG_ZBOOT_ROM_BSS=0x0
 CONFIG_ZBOOT_ROM_BSS=0x0
 CONFIG_CMDLINE="root=/dev/ram0 rw rootfstype=rootfs console=ttyAMA0,115200n8 lpj=515072"
 CONFIG_CMDLINE="root=/dev/ram0 rw rootfstype=rootfs console=ttyAMA0,115200n8 lpj=515072"
 CONFIG_CPU_IDLE=y
 CONFIG_CPU_IDLE=y
-CONFIG_FPE_NWFPE=y
 # CONFIG_SUSPEND is not set
 # CONFIG_SUSPEND is not set
 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
 # CONFIG_PREVENT_FIRMWARE_BUILD is not set
 # CONFIG_PREVENT_FIRMWARE_BUILD is not set
@@ -64,8 +64,8 @@ CONFIG_TMPFS=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ISO8859_1=y
 CONFIG_NLS_ISO8859_1=y
 CONFIG_PRINTK_TIME=y
 CONFIG_PRINTK_TIME=y
+CONFIG_DEBUG_INFO=y
 CONFIG_DEBUG_FS=y
 CONFIG_DEBUG_FS=y
 # CONFIG_SCHED_DEBUG is not set
 # CONFIG_SCHED_DEBUG is not set
 CONFIG_TIMER_STATS=y
 CONFIG_TIMER_STATS=y
 # CONFIG_DEBUG_PREEMPT is not set
 # CONFIG_DEBUG_PREEMPT is not set
-CONFIG_DEBUG_INFO=y

+ 15 - 9
arch/arm/configs/u8500_defconfig

@@ -1,16 +1,16 @@
 # CONFIG_SWAP is not set
 # CONFIG_SWAP is not set
 CONFIG_SYSVIPC=y
 CONFIG_SYSVIPC=y
-CONFIG_NO_HZ=y
+CONFIG_NO_HZ_IDLE=y
 CONFIG_HIGH_RES_TIMERS=y
 CONFIG_HIGH_RES_TIMERS=y
 CONFIG_BLK_DEV_INITRD=y
 CONFIG_BLK_DEV_INITRD=y
 CONFIG_KALLSYMS_ALL=y
 CONFIG_KALLSYMS_ALL=y
 CONFIG_MODULES=y
 CONFIG_MODULES=y
 CONFIG_MODULE_UNLOAD=y
 CONFIG_MODULE_UNLOAD=y
 # CONFIG_BLK_DEV_BSG is not set
 # CONFIG_BLK_DEV_BSG is not set
+CONFIG_PARTITION_ADVANCED=y
 CONFIG_ARCH_U8500=y
 CONFIG_ARCH_U8500=y
 CONFIG_MACH_HREFV60=y
 CONFIG_MACH_HREFV60=y
 CONFIG_MACH_SNOWBALL=y
 CONFIG_MACH_SNOWBALL=y
-CONFIG_MACH_UX500_DT=y
 CONFIG_SMP=y
 CONFIG_SMP=y
 CONFIG_NR_CPUS=2
 CONFIG_NR_CPUS=2
 CONFIG_PREEMPT=y
 CONFIG_PREEMPT=y
@@ -34,16 +34,22 @@ CONFIG_IP_PNP=y
 CONFIG_IP_PNP_DHCP=y
 CONFIG_IP_PNP_DHCP=y
 CONFIG_NETFILTER=y
 CONFIG_NETFILTER=y
 CONFIG_PHONET=y
 CONFIG_PHONET=y
-# CONFIG_WIRELESS is not set
+CONFIG_CFG80211=y
+CONFIG_CFG80211_DEBUGFS=y
+CONFIG_MAC80211=y
+CONFIG_MAC80211_LEDS=y
 CONFIG_CAIF=y
 CONFIG_CAIF=y
 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_SIZE=65536
 CONFIG_BLK_DEV_RAM_SIZE=65536
 CONFIG_SENSORS_BH1780=y
 CONFIG_SENSORS_BH1780=y
 CONFIG_NETDEVICES=y
 CONFIG_NETDEVICES=y
 CONFIG_SMSC911X=y
 CONFIG_SMSC911X=y
 CONFIG_SMSC_PHY=y
 CONFIG_SMSC_PHY=y
-# CONFIG_WLAN is not set
+CONFIG_CW1200=y
+CONFIG_CW1200_WLAN_SDIO=y
 # CONFIG_INPUT_MOUSEDEV_PSAUX is not set
 # CONFIG_INPUT_MOUSEDEV_PSAUX is not set
 CONFIG_INPUT_EVDEV=y
 CONFIG_INPUT_EVDEV=y
 # CONFIG_KEYBOARD_ATKBD is not set
 # CONFIG_KEYBOARD_ATKBD is not set
@@ -85,15 +91,12 @@ CONFIG_AB8500_USB=y
 CONFIG_USB_GADGET=y
 CONFIG_USB_GADGET=y
 CONFIG_USB_ETH=m
 CONFIG_USB_ETH=m
 CONFIG_MMC=y
 CONFIG_MMC=y
-CONFIG_MMC_UNSAFE_RESUME=y
-# CONFIG_MMC_BLOCK_BOUNCE is not set
 CONFIG_MMC_ARMMMCI=y
 CONFIG_MMC_ARMMMCI=y
 CONFIG_NEW_LEDS=y
 CONFIG_NEW_LEDS=y
 CONFIG_LEDS_CLASS=y
 CONFIG_LEDS_CLASS=y
 CONFIG_LEDS_LM3530=y
 CONFIG_LEDS_LM3530=y
 CONFIG_LEDS_GPIO=y
 CONFIG_LEDS_GPIO=y
 CONFIG_LEDS_LP5521=y
 CONFIG_LEDS_LP5521=y
-CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_HEARTBEAT=y
 CONFIG_LEDS_TRIGGER_HEARTBEAT=y
 CONFIG_RTC_CLASS=y
 CONFIG_RTC_CLASS=y
 CONFIG_RTC_DRV_AB8500=y
 CONFIG_RTC_DRV_AB8500=y
@@ -103,6 +106,11 @@ CONFIG_STE_DMA40=y
 CONFIG_STAGING=y
 CONFIG_STAGING=y
 CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=y
 CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=y
 CONFIG_HSEM_U8500=y
 CONFIG_HSEM_U8500=y
+CONFIG_IIO=y
+CONFIG_IIO_ST_ACCEL_3AXIS=y
+CONFIG_IIO_ST_GYRO_3AXIS=y
+CONFIG_IIO_ST_MAGN_3AXIS=y
+CONFIG_IIO_ST_PRESS=y
 CONFIG_EXT2_FS=y
 CONFIG_EXT2_FS=y
 CONFIG_EXT2_FS_XATTR=y
 CONFIG_EXT2_FS_XATTR=y
 CONFIG_EXT2_FS_POSIX_ACL=y
 CONFIG_EXT2_FS_POSIX_ACL=y
@@ -110,8 +118,6 @@ CONFIG_EXT2_FS_SECURITY=y
 CONFIG_EXT3_FS=y
 CONFIG_EXT3_FS=y
 CONFIG_EXT4_FS=y
 CONFIG_EXT4_FS=y
 CONFIG_VFAT_FS=y
 CONFIG_VFAT_FS=y
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
 CONFIG_TMPFS=y
 CONFIG_TMPFS=y
 CONFIG_TMPFS_POSIX_ACL=y
 CONFIG_TMPFS_POSIX_ACL=y
 # CONFIG_MISC_FILESYSTEMS is not set
 # CONFIG_MISC_FILESYSTEMS is not set

+ 7 - 7
arch/arm/include/asm/cputype.h

@@ -222,22 +222,22 @@ static inline int cpu_is_xsc3(void)
 #endif
 #endif
 
 
 /*
 /*
- * Marvell's PJ4 core is based on V7 version. It has some modification
- * for coprocessor setting. For this reason, we need a way to distinguish
- * it.
+ * Marvell's PJ4 and PJ4B cores are based on V7 version,
+ * but require a specical sequence for enabling coprocessors.
+ * For this reason, we need a way to distinguish them.
  */
  */
-#ifndef CONFIG_CPU_PJ4
-#define cpu_is_pj4()	0
-#else
+#if defined(CONFIG_CPU_PJ4) || defined(CONFIG_CPU_PJ4B)
 static inline int cpu_is_pj4(void)
 static inline int cpu_is_pj4(void)
 {
 {
 	unsigned int id;
 	unsigned int id;
 
 
 	id = read_cpuid_id();
 	id = read_cpuid_id();
-	if ((id & 0xfffffff0) == 0x562f5840)
+	if ((id & 0xff0fff00) == 0x560f5800)
 		return 1;
 		return 1;
 
 
 	return 0;
 	return 0;
 }
 }
+#else
+#define cpu_is_pj4()	0
 #endif
 #endif
 #endif
 #endif

+ 1 - 1
arch/arm/include/asm/div64.h

@@ -156,7 +156,7 @@
 		/* Select the best insn combination to perform the   */	\
 		/* Select the best insn combination to perform the   */	\
 		/* actual __m * __n / (__p << 64) operation.         */	\
 		/* actual __m * __n / (__p << 64) operation.         */	\
 		if (!__c) {						\
 		if (!__c) {						\
-			asm (	"umull	%Q0, %R0, %1, %Q2\n\t"		\
+			asm (	"umull	%Q0, %R0, %Q1, %Q2\n\t"		\
 				"mov	%Q0, #0"			\
 				"mov	%Q0, #0"			\
 				: "=&r" (__res)				\
 				: "=&r" (__res)				\
 				: "r" (__m), "r" (__n)			\
 				: "r" (__m), "r" (__n)			\

+ 7 - 0
arch/arm/include/asm/mcpm.h

@@ -53,6 +53,13 @@ void mcpm_set_early_poke(unsigned cpu, unsigned cluster,
  * CPU/cluster power operations API for higher subsystems to use.
  * CPU/cluster power operations API for higher subsystems to use.
  */
  */
 
 
+/**
+ * mcpm_is_available - returns whether MCPM is initialized and available
+ *
+ * This returns true or false accordingly.
+ */
+bool mcpm_is_available(void);
+
 /**
 /**
  * mcpm_cpu_power_up - make given CPU in given cluster runable
  * mcpm_cpu_power_up - make given CPU in given cluster runable
  *
  *

+ 11 - 1
arch/arm/include/asm/tlb.h

@@ -98,15 +98,25 @@ static inline void __tlb_alloc_page(struct mmu_gather *tlb)
 	}
 	}
 }
 }
 
 
-static inline void tlb_flush_mmu(struct mmu_gather *tlb)
+static inline void tlb_flush_mmu_tlbonly(struct mmu_gather *tlb)
 {
 {
 	tlb_flush(tlb);
 	tlb_flush(tlb);
+}
+
+static inline void tlb_flush_mmu_free(struct mmu_gather *tlb)
+{
 	free_pages_and_swap_cache(tlb->pages, tlb->nr);
 	free_pages_and_swap_cache(tlb->pages, tlb->nr);
 	tlb->nr = 0;
 	tlb->nr = 0;
 	if (tlb->pages == tlb->local)
 	if (tlb->pages == tlb->local)
 		__tlb_alloc_page(tlb);
 		__tlb_alloc_page(tlb);
 }
 }
 
 
+static inline void tlb_flush_mmu(struct mmu_gather *tlb)
+{
+	tlb_flush_mmu_tlbonly(tlb);
+	tlb_flush_mmu_free(tlb);
+}
+
 static inline void
 static inline void
 tlb_gather_mmu(struct mmu_gather *tlb, struct mm_struct *mm, unsigned long start, unsigned long end)
 tlb_gather_mmu(struct mmu_gather *tlb, struct mm_struct *mm, unsigned long start, unsigned long end)
 {
 {

+ 1 - 0
arch/arm/include/uapi/asm/unistd.h

@@ -408,6 +408,7 @@
 #define __NR_finit_module		(__NR_SYSCALL_BASE+379)
 #define __NR_finit_module		(__NR_SYSCALL_BASE+379)
 #define __NR_sched_setattr		(__NR_SYSCALL_BASE+380)
 #define __NR_sched_setattr		(__NR_SYSCALL_BASE+380)
 #define __NR_sched_getattr		(__NR_SYSCALL_BASE+381)
 #define __NR_sched_getattr		(__NR_SYSCALL_BASE+381)
+#define __NR_renameat2			(__NR_SYSCALL_BASE+382)
 
 
 /*
 /*
  * This may need to be greater than __NR_last_syscall+1 in order to
  * This may need to be greater than __NR_last_syscall+1 in order to

+ 1 - 0
arch/arm/kernel/Makefile

@@ -79,6 +79,7 @@ obj-$(CONFIG_CPU_XSCALE)	+= xscale-cp0.o
 obj-$(CONFIG_CPU_XSC3)		+= xscale-cp0.o
 obj-$(CONFIG_CPU_XSC3)		+= xscale-cp0.o
 obj-$(CONFIG_CPU_MOHAWK)	+= xscale-cp0.o
 obj-$(CONFIG_CPU_MOHAWK)	+= xscale-cp0.o
 obj-$(CONFIG_CPU_PJ4)		+= pj4-cp0.o
 obj-$(CONFIG_CPU_PJ4)		+= pj4-cp0.o
+obj-$(CONFIG_CPU_PJ4B)		+= pj4-cp0.o
 obj-$(CONFIG_IWMMXT)		+= iwmmxt.o
 obj-$(CONFIG_IWMMXT)		+= iwmmxt.o
 obj-$(CONFIG_PERF_EVENTS)	+= perf_regs.o
 obj-$(CONFIG_PERF_EVENTS)	+= perf_regs.o
 obj-$(CONFIG_HW_PERF_EVENTS)	+= perf_event.o perf_event_cpu.o
 obj-$(CONFIG_HW_PERF_EVENTS)	+= perf_event.o perf_event_cpu.o

+ 1 - 0
arch/arm/kernel/calls.S

@@ -391,6 +391,7 @@
 		CALL(sys_finit_module)
 		CALL(sys_finit_module)
 /* 380 */	CALL(sys_sched_setattr)
 /* 380 */	CALL(sys_sched_setattr)
 		CALL(sys_sched_getattr)
 		CALL(sys_sched_getattr)
+		CALL(sys_renameat2)
 #ifndef syscalls_counted
 #ifndef syscalls_counted
 .equ syscalls_padding, ((NR_syscalls + 3) & ~3) - NR_syscalls
 .equ syscalls_padding, ((NR_syscalls + 3) & ~3) - NR_syscalls
 #define syscalls_counted
 #define syscalls_counted

+ 1 - 1
arch/arm/kernel/head.S

@@ -587,7 +587,7 @@ __fixup_pv_table:
 	add	r6, r6, r3	@ adjust __pv_phys_pfn_offset address
 	add	r6, r6, r3	@ adjust __pv_phys_pfn_offset address
 	add	r7, r7, r3	@ adjust __pv_offset address
 	add	r7, r7, r3	@ adjust __pv_offset address
 	mov	r0, r8, lsr #12	@ convert to PFN
 	mov	r0, r8, lsr #12	@ convert to PFN
-	str	r0, [r6, #LOW_OFFSET]	@ save computed PHYS_OFFSET to __pv_phys_pfn_offset
+	str	r0, [r6]	@ save computed PHYS_OFFSET to __pv_phys_pfn_offset
 	strcc	ip, [r7, #HIGH_OFFSET]	@ save to __pv_offset high bits
 	strcc	ip, [r7, #HIGH_OFFSET]	@ save to __pv_offset high bits
 	mov	r6, r3, lsr #24	@ constant for add/sub instructions
 	mov	r6, r3, lsr #24	@ constant for add/sub instructions
 	teq	r3, r6, lsl #24 @ must be 16MiB aligned
 	teq	r3, r6, lsl #24 @ must be 16MiB aligned

+ 6 - 2
arch/arm/kernel/iwmmxt.S

@@ -19,12 +19,16 @@
 #include <asm/thread_info.h>
 #include <asm/thread_info.h>
 #include <asm/asm-offsets.h>
 #include <asm/asm-offsets.h>
 
 
-#if defined(CONFIG_CPU_PJ4)
+#if defined(CONFIG_CPU_PJ4) || defined(CONFIG_CPU_PJ4B)
 #define PJ4(code...)		code
 #define PJ4(code...)		code
 #define XSC(code...)
 #define XSC(code...)
-#else
+#elif defined(CONFIG_CPU_MOHAWK) || \
+	defined(CONFIG_CPU_XSC3) || \
+	defined(CONFIG_CPU_XSCALE)
 #define PJ4(code...)
 #define PJ4(code...)
 #define XSC(code...)		code
 #define XSC(code...)		code
+#else
+#error "Unsupported iWMMXt architecture"
 #endif
 #endif
 
 
 #define MMX_WR0		 	(0x00)
 #define MMX_WR0		 	(0x00)

+ 7 - 0
arch/arm/kernel/machine_kexec.c

@@ -184,3 +184,10 @@ void machine_kexec(struct kimage *image)
 
 
 	soft_restart(reboot_entry_phys);
 	soft_restart(reboot_entry_phys);
 }
 }
+
+void arch_crash_save_vmcoreinfo(void)
+{
+#ifdef CONFIG_ARM_LPAE
+	VMCOREINFO_CONFIG(ARM_LPAE);
+#endif
+}

+ 39 - 3
arch/arm/kernel/pj4-cp0.c

@@ -45,7 +45,7 @@ static int iwmmxt_do(struct notifier_block *self, unsigned long cmd, void *t)
 	return NOTIFY_DONE;
 	return NOTIFY_DONE;
 }
 }
 
 
-static struct notifier_block iwmmxt_notifier_block = {
+static struct notifier_block __maybe_unused iwmmxt_notifier_block = {
 	.notifier_call	= iwmmxt_do,
 	.notifier_call	= iwmmxt_do,
 };
 };
 
 
@@ -72,6 +72,33 @@ static void __init pj4_cp_access_write(u32 value)
 		: "=r" (temp) : "r" (value));
 		: "=r" (temp) : "r" (value));
 }
 }
 
 
+static int __init pj4_get_iwmmxt_version(void)
+{
+	u32 cp_access, wcid;
+
+	cp_access = pj4_cp_access_read();
+	pj4_cp_access_write(cp_access | 0xf);
+
+	/* check if coprocessor 0 and 1 are available */
+	if ((pj4_cp_access_read() & 0xf) != 0xf) {
+		pj4_cp_access_write(cp_access);
+		return -ENODEV;
+	}
+
+	/* read iWMMXt coprocessor id register p1, c0 */
+	__asm__ __volatile__ ("mrc    p1, 0, %0, c0, c0, 0\n" : "=r" (wcid));
+
+	pj4_cp_access_write(cp_access);
+
+	/* iWMMXt v1 */
+	if ((wcid & 0xffffff00) == 0x56051000)
+		return 1;
+	/* iWMMXt v2 */
+	if ((wcid & 0xffffff00) == 0x56052000)
+		return 2;
+
+	return -EINVAL;
+}
 
 
 /*
 /*
  * Disable CP0/CP1 on boot, and let call_fpe() and the iWMMXt lazy
  * Disable CP0/CP1 on boot, and let call_fpe() and the iWMMXt lazy
@@ -79,17 +106,26 @@ static void __init pj4_cp_access_write(u32 value)
  */
  */
 static int __init pj4_cp0_init(void)
 static int __init pj4_cp0_init(void)
 {
 {
-	u32 cp_access;
+	u32 __maybe_unused cp_access;
+	int vers;
 
 
 	if (!cpu_is_pj4())
 	if (!cpu_is_pj4())
 		return 0;
 		return 0;
 
 
+	vers = pj4_get_iwmmxt_version();
+	if (vers < 0)
+		return 0;
+
+#ifndef CONFIG_IWMMXT
+	pr_info("PJ4 iWMMXt coprocessor detected, but kernel support is missing.\n");
+#else
 	cp_access = pj4_cp_access_read() & ~0xf;
 	cp_access = pj4_cp_access_read() & ~0xf;
 	pj4_cp_access_write(cp_access);
 	pj4_cp_access_write(cp_access);
 
 
-	printk(KERN_INFO "PJ4 iWMMXt coprocessor enabled.\n");
+	pr_info("PJ4 iWMMXt v%d coprocessor enabled.\n", vers);
 	elf_hwcap |= HWCAP_IWMMXT;
 	elf_hwcap |= HWCAP_IWMMXT;
 	thread_register_notifier(&iwmmxt_notifier_block);
 	thread_register_notifier(&iwmmxt_notifier_block);
+#endif
 
 
 	return 0;
 	return 0;
 }
 }

+ 3 - 3
arch/arm/kernel/sys_oabi-compat.c

@@ -203,9 +203,9 @@ asmlinkage long sys_oabi_fcntl64(unsigned int fd, unsigned int cmd,
 	int ret;
 	int ret;
 
 
 	switch (cmd) {
 	switch (cmd) {
-	case F_GETLKP:
-	case F_SETLKP:
-	case F_SETLKPW:
+	case F_OFD_GETLK:
+	case F_OFD_SETLK:
+	case F_OFD_SETLKW:
 	case F_GETLK64:
 	case F_GETLK64:
 	case F_SETLK64:
 	case F_SETLK64:
 	case F_SETLKW64:
 	case F_SETLKW64:

Some files were not shown because too many files changed in this diff