Browse Source

Merge remote-tracking branch 'grant/devicetree/next' into for-3.14

Rob Herring 11 years ago
parent
commit
361128fcbf
100 changed files with 1304 additions and 331 deletions
  1. 5 0
      CREDITS
  2. 5 3
      Documentation/DocBook/media/v4l/vidioc-expbuf.xml
  3. 3 3
      Documentation/assoc_array.txt
  4. 72 0
      Documentation/block/null_blk.txt
  5. 6 4
      Documentation/device-mapper/cache.txt
  6. 8 0
      Documentation/devicetree/bindings/arm/omap/mpu.txt
  7. 1 0
      Documentation/devicetree/bindings/arm/pmu.txt
  8. 1 1
      Documentation/devicetree/bindings/arm/samsung/exynos-adc.txt
  9. 1 1
      Documentation/devicetree/bindings/clock/exynos4-clock.txt
  10. 1 1
      Documentation/devicetree/bindings/clock/exynos5250-clock.txt
  11. 1 1
      Documentation/devicetree/bindings/clock/exynos5420-clock.txt
  12. 1 1
      Documentation/devicetree/bindings/clock/exynos5440-clock.txt
  13. 40 26
      Documentation/devicetree/bindings/gpio/8xxx_gpio.txt
  14. 0 8
      Documentation/devicetree/bindings/marvell.txt
  15. 54 0
      Documentation/devicetree/bindings/mmc/ti-omap.txt
  16. 1 1
      Documentation/devicetree/bindings/net/davinci_emac.txt
  17. 2 0
      Documentation/devicetree/bindings/net/fsl-fec.txt
  18. 0 3
      Documentation/devicetree/bindings/net/marvell-orion-net.txt
  19. 0 5
      Documentation/devicetree/bindings/net/phy.txt
  20. 4 0
      Documentation/devicetree/bindings/net/smsc-lan91c111.txt
  21. 0 2
      Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/network.txt
  22. 0 3
      Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/pincfg.txt
  23. 0 5
      Documentation/devicetree/bindings/spi/nvidia,tegra20-spi.txt
  24. 2 0
      Documentation/devicetree/bindings/vendor-prefixes.txt
  25. 0 3
      Documentation/devicetree/booting-without-of.txt
  26. 14 0
      Documentation/gpio/00-INDEX
  27. 2 0
      Documentation/kernel-parameters.txt
  28. 12 6
      Documentation/mic/mpssd/mpssd.c
  29. 240 0
      Documentation/module-signing.txt
  30. 6 2
      Documentation/networking/ip-sysctl.txt
  31. 10 0
      Documentation/networking/packet_mmap.txt
  32. 87 24
      MAINTAINERS
  33. 10 14
      Makefile
  34. 1 0
      arch/arc/Kconfig
  35. 11 0
      arch/arc/include/uapi/asm/unistd.h
  36. 2 2
      arch/arc/kernel/perf_event.c
  37. 79 0
      arch/arm/boot/dts/am335x-base0033.dts
  38. 29 0
      arch/arm/boot/dts/am335x-igep0033.dtsi
  39. 3 3
      arch/arm/boot/dts/am3517-evm.dts
  40. 63 0
      arch/arm/boot/dts/am3517.dtsi
  41. 14 14
      arch/arm/boot/dts/armada-370-db.dts
  42. 1 1
      arch/arm/boot/dts/armada-370-xp.dtsi
  43. 12 12
      arch/arm/boot/dts/armada-xp-mv78230.dtsi
  44. 85 24
      arch/arm/boot/dts/armada-xp-mv78260.dtsi
  45. 4 0
      arch/arm/boot/dts/at91sam9x5_usart3.dtsi
  46. 0 2
      arch/arm/boot/dts/dove.dtsi
  47. 0 1
      arch/arm/boot/dts/kirkwood-cloudbox.dts
  48. 0 1
      arch/arm/boot/dts/kirkwood-db.dtsi
  49. 0 1
      arch/arm/boot/dts/kirkwood-dnskw.dtsi
  50. 0 1
      arch/arm/boot/dts/kirkwood-dockstar.dts
  51. 0 2
      arch/arm/boot/dts/kirkwood-dreamplug.dts
  52. 0 1
      arch/arm/boot/dts/kirkwood-goflexnet.dts
  53. 0 2
      arch/arm/boot/dts/kirkwood-guruplug-server-plus.dts
  54. 0 1
      arch/arm/boot/dts/kirkwood-ib62x0.dts
  55. 0 1
      arch/arm/boot/dts/kirkwood-iconnect.dts
  56. 0 1
      arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts
  57. 0 1
      arch/arm/boot/dts/kirkwood-km_kirkwood.dts
  58. 0 2
      arch/arm/boot/dts/kirkwood-lsxl.dtsi
  59. 0 2
      arch/arm/boot/dts/kirkwood-mplcec4.dts
  60. 0 1
      arch/arm/boot/dts/kirkwood-netgear_readynas_duo_v2.dts
  61. 0 1
      arch/arm/boot/dts/kirkwood-ns2-common.dtsi
  62. 0 1
      arch/arm/boot/dts/kirkwood-openblocks_a6.dts
  63. 0 2
      arch/arm/boot/dts/kirkwood-openblocks_a7.dts
  64. 0 1
      arch/arm/boot/dts/kirkwood-sheevaplug-common.dtsi
  65. 0 1
      arch/arm/boot/dts/kirkwood-topkick.dts
  66. 0 1
      arch/arm/boot/dts/kirkwood-ts219.dtsi
  67. 0 2
      arch/arm/boot/dts/kirkwood.dtsi
  68. 2 2
      arch/arm/boot/dts/omap-gpmc-smsc911x.dtsi
  69. 7 0
      arch/arm/boot/dts/omap3-beagle-xm.dts
  70. 21 0
      arch/arm/boot/dts/omap3-beagle.dts
  71. 77 8
      arch/arm/boot/dts/omap3-igep.dtsi
  72. 48 2
      arch/arm/boot/dts/omap3-igep0020.dts
  73. 2 2
      arch/arm/boot/dts/omap3-igep0030.dts
  74. 23 2
      arch/arm/boot/dts/omap3-n900.dts
  75. 1 1
      arch/arm/boot/dts/omap3-n950-n9.dtsi
  76. 42 0
      arch/arm/boot/dts/omap3.dtsi
  77. 16 0
      arch/arm/boot/dts/omap34xx-hs.dtsi
  78. 16 0
      arch/arm/boot/dts/omap36xx-hs.dtsi
  79. 10 10
      arch/arm/boot/dts/omap4-panda-common.dtsi
  80. 6 6
      arch/arm/boot/dts/omap4-sdp.dts
  81. 0 1
      arch/arm/boot/dts/orion5x-lacie-ethernet-disk-mini-v2.dts
  82. 0 1
      arch/arm/boot/dts/orion5x.dtsi
  83. 14 14
      arch/arm/boot/dts/r8a7790.dtsi
  84. 4 3
      arch/arm/boot/dts/socfpga.dtsi
  85. 15 12
      arch/arm/boot/dts/sun6i-a31.dtsi
  86. 21 21
      arch/arm/boot/dts/sun7i-a20.dtsi
  87. 3 0
      arch/arm/configs/multi_v7_defconfig
  88. 1 0
      arch/arm/configs/omap2plus_defconfig
  89. 7 0
      arch/arm/configs/sunxi_defconfig
  90. 3 0
      arch/arm/configs/u8500_defconfig
  91. 14 17
      arch/arm/include/asm/memory.h
  92. 1 1
      arch/arm/include/asm/pgtable.h
  93. 2 2
      arch/arm/kernel/head-nommu.S
  94. 1 1
      arch/arm/kernel/head.S
  95. 10 7
      arch/arm/kernel/machine_kexec.c
  96. 5 2
      arch/arm/kernel/process.c
  97. 6 2
      arch/arm/kernel/relocate_kernel.S
  98. 1 2
      arch/arm/kernel/setup.c
  99. 31 9
      arch/arm/kernel/sigreturn_codes.S
  100. 1 1
      arch/arm/kernel/stacktrace.c

+ 5 - 0
CREDITS

@@ -655,6 +655,11 @@ S: Stanford University
 S: Stanford, California 94305
 S: Stanford, California 94305
 S: USA
 S: USA
 
 
+N: Carlos Chinea
+E: carlos.chinea@nokia.com
+E: cch.devel@gmail.com
+D: Author of HSI Subsystem
+
 N: Randolph Chung
 N: Randolph Chung
 E: tausq@debian.org
 E: tausq@debian.org
 D: Linux/PA-RISC hacker
 D: Linux/PA-RISC hacker

+ 5 - 3
Documentation/DocBook/media/v4l/vidioc-expbuf.xml

@@ -73,7 +73,8 @@ range from zero to the maximal number of valid planes for the currently active
 format. For the single-planar API, applications must set <structfield> plane
 format. For the single-planar API, applications must set <structfield> plane
 </structfield> to zero.  Additional flags may be posted in the <structfield>
 </structfield> to zero.  Additional flags may be posted in the <structfield>
 flags </structfield> field.  Refer to a manual for open() for details.
 flags </structfield> field.  Refer to a manual for open() for details.
-Currently only O_CLOEXEC is supported.  All other fields must be set to zero.
+Currently only O_CLOEXEC, O_RDONLY, O_WRONLY, and O_RDWR are supported.  All
+other fields must be set to zero.
 In the case of multi-planar API, every plane is exported separately using
 In the case of multi-planar API, every plane is exported separately using
 multiple <constant> VIDIOC_EXPBUF </constant> calls. </para>
 multiple <constant> VIDIOC_EXPBUF </constant> calls. </para>
 
 
@@ -170,8 +171,9 @@ multi-planar API. Otherwise this value must be set to zero. </entry>
 	    <entry>__u32</entry>
 	    <entry>__u32</entry>
 	    <entry><structfield>flags</structfield></entry>
 	    <entry><structfield>flags</structfield></entry>
 	    <entry>Flags for the newly created file, currently only <constant>
 	    <entry>Flags for the newly created file, currently only <constant>
-O_CLOEXEC </constant> is supported, refer to the manual of open() for more
-details.</entry>
+O_CLOEXEC </constant>, <constant>O_RDONLY</constant>, <constant>O_WRONLY
+</constant>, and <constant>O_RDWR</constant> are supported, refer to the manual
+of open() for more details.</entry>
 	  </row>
 	  </row>
 	  <row>
 	  <row>
 	    <entry>__s32</entry>
 	    <entry>__s32</entry>

+ 3 - 3
Documentation/assoc_array.txt

@@ -164,10 +164,10 @@ This points to a number of methods, all of which need to be provided:
 
 
  (4) Diff the index keys of two objects.
  (4) Diff the index keys of two objects.
 
 
-	int (*diff_objects)(const void *a, const void *b);
+	int (*diff_objects)(const void *object, const void *index_key);
 
 
-     Return the bit position at which the index keys of two objects differ or
-     -1 if they are the same.
+     Return the bit position at which the index key of the specified object
+     differs from the given index key or -1 if they are the same.
 
 
 
 
  (5) Free an object.
  (5) Free an object.

+ 72 - 0
Documentation/block/null_blk.txt

@@ -0,0 +1,72 @@
+Null block device driver
+================================================================================
+
+I. Overview
+
+The null block device (/dev/nullb*) is used for benchmarking the various
+block-layer implementations. It emulates a block device of X gigabytes in size.
+The following instances are possible:
+
+  Single-queue block-layer
+    - Request-based.
+    - Single submission queue per device.
+    - Implements IO scheduling algorithms (CFQ, Deadline, noop).
+  Multi-queue block-layer
+    - Request-based.
+    - Configurable submission queues per device.
+  No block-layer (Known as bio-based)
+    - Bio-based. IO requests are submitted directly to the device driver.
+    - Directly accepts bio data structure and returns them.
+
+All of them have a completion queue for each core in the system.
+
+II. Module parameters applicable for all instances:
+
+queue_mode=[0-2]: Default: 2-Multi-queue
+  Selects which block-layer the module should instantiate with.
+
+  0: Bio-based.
+  1: Single-queue.
+  2: Multi-queue.
+
+home_node=[0--nr_nodes]: Default: NUMA_NO_NODE
+  Selects what CPU node the data structures are allocated from.
+
+gb=[Size in GB]: Default: 250GB
+  The size of the device reported to the system.
+
+bs=[Block size (in bytes)]: Default: 512 bytes
+  The block size reported to the system.
+
+nr_devices=[Number of devices]: Default: 2
+  Number of block devices instantiated. They are instantiated as /dev/nullb0,
+  etc.
+
+irq_mode=[0-2]: Default: 1-Soft-irq
+  The completion mode used for completing IOs to the block-layer.
+
+  0: None.
+  1: Soft-irq. Uses IPI to complete IOs across CPU nodes. Simulates the overhead
+     when IOs are issued from another CPU node than the home the device is
+     connected to.
+  2: Timer: Waits a specific period (completion_nsec) for each IO before
+     completion.
+
+completion_nsec=[ns]: Default: 10.000ns
+  Combined with irq_mode=2 (timer). The time each completion event must wait.
+
+submit_queues=[0..nr_cpus]:
+  The number of submission queues attached to the device driver. If unset, it
+  defaults to 1 on single-queue and bio-based instances. For multi-queue,
+  it is ignored when use_per_node_hctx module parameter is 1.
+
+hw_queue_depth=[0..qdepth]: Default: 64
+  The hardware queue depth of the device.
+
+III: Multi-queue specific parameters
+
+use_per_node_hctx=[0/1]: Default: 0
+  0: The number of submit queues are set to the value of the submit_queues
+     parameter.
+  1: The multi-queue block layer is instantiated with a hardware dispatch
+     queue for each CPU node in the system.

+ 6 - 4
Documentation/device-mapper/cache.txt

@@ -266,10 +266,12 @@ E.g.
 Invalidation is removing an entry from the cache without writing it
 Invalidation is removing an entry from the cache without writing it
 back.  Cache blocks can be invalidated via the invalidate_cblocks
 back.  Cache blocks can be invalidated via the invalidate_cblocks
 message, which takes an arbitrary number of cblock ranges.  Each cblock
 message, which takes an arbitrary number of cblock ranges.  Each cblock
-must be expressed as a decimal value, in the future a variant message
-that takes cblock ranges expressed in hexidecimal may be needed to
-better support efficient invalidation of larger caches.  The cache must
-be in passthrough mode when invalidate_cblocks is used.
+range's end value is "one past the end", meaning 5-10 expresses a range
+of values from 5 to 9.  Each cblock must be expressed as a decimal
+value, in the future a variant message that takes cblock ranges
+expressed in hexidecimal may be needed to better support efficient
+invalidation of larger caches.  The cache must be in passthrough mode
+when invalidate_cblocks is used.
 
 
    invalidate_cblocks [<cblock>|<cblock begin>-<cblock end>]*
    invalidate_cblocks [<cblock>|<cblock begin>-<cblock end>]*
 
 

+ 8 - 0
Documentation/devicetree/bindings/arm/omap/mpu.txt

@@ -7,10 +7,18 @@ The MPU contain CPUs, GIC, L2 cache and a local PRCM.
 Required properties:
 Required properties:
 - compatible : Should be "ti,omap3-mpu" for OMAP3
 - compatible : Should be "ti,omap3-mpu" for OMAP3
                Should be "ti,omap4-mpu" for OMAP4
                Should be "ti,omap4-mpu" for OMAP4
+	       Should be "ti,omap5-mpu" for OMAP5
 - ti,hwmods: "mpu"
 - ti,hwmods: "mpu"
 
 
 Examples:
 Examples:
 
 
+- For an OMAP5 SMP system:
+
+mpu {
+    compatible = "ti,omap5-mpu";
+    ti,hwmods = "mpu"
+};
+
 - For an OMAP4 SMP system:
 - For an OMAP4 SMP system:
 
 
 mpu {
 mpu {

+ 1 - 0
Documentation/devicetree/bindings/arm/pmu.txt

@@ -7,6 +7,7 @@ representation in the device tree should be done as under:-
 Required properties:
 Required properties:
 
 
 - compatible : should be one of
 - compatible : should be one of
+	"arm,armv8-pmuv3"
 	"arm,cortex-a15-pmu"
 	"arm,cortex-a15-pmu"
 	"arm,cortex-a9-pmu"
 	"arm,cortex-a9-pmu"
 	"arm,cortex-a8-pmu"
 	"arm,cortex-a8-pmu"

+ 1 - 1
Documentation/devicetree/bindings/arm/samsung/exynos-adc.txt

@@ -49,7 +49,7 @@ adc@12D10000 {
 	/* NTC thermistor is a hwmon device */
 	/* NTC thermistor is a hwmon device */
 	ncp15wb473@0 {
 	ncp15wb473@0 {
 		compatible = "ntc,ncp15wb473";
 		compatible = "ntc,ncp15wb473";
-		pullup-uV = <1800000>;
+		pullup-uv = <1800000>;
 		pullup-ohm = <47000>;
 		pullup-ohm = <47000>;
 		pulldown-ohm = <0>;
 		pulldown-ohm = <0>;
 		io-channels = <&adc 4>;
 		io-channels = <&adc 4>;

+ 1 - 1
Documentation/devicetree/bindings/clock/exynos4-clock.txt

@@ -6,7 +6,7 @@ SoC's in the Exynos4 family.
 
 
 Required Properties:
 Required Properties:
 
 
-- comptible: should be one of the following.
+- compatible: should be one of the following.
   - "samsung,exynos4210-clock" - controller compatible with Exynos4210 SoC.
   - "samsung,exynos4210-clock" - controller compatible with Exynos4210 SoC.
   - "samsung,exynos4412-clock" - controller compatible with Exynos4412 SoC.
   - "samsung,exynos4412-clock" - controller compatible with Exynos4412 SoC.
 
 

+ 1 - 1
Documentation/devicetree/bindings/clock/exynos5250-clock.txt

@@ -5,7 +5,7 @@ controllers within the Exynos5250 SoC.
 
 
 Required Properties:
 Required Properties:
 
 
-- comptible: should be one of the following.
+- compatible: should be one of the following.
   - "samsung,exynos5250-clock" - controller compatible with Exynos5250 SoC.
   - "samsung,exynos5250-clock" - controller compatible with Exynos5250 SoC.
 
 
 - reg: physical base address of the controller and length of memory mapped
 - reg: physical base address of the controller and length of memory mapped

+ 1 - 1
Documentation/devicetree/bindings/clock/exynos5420-clock.txt

@@ -5,7 +5,7 @@ controllers within the Exynos5420 SoC.
 
 
 Required Properties:
 Required Properties:
 
 
-- comptible: should be one of the following.
+- compatible: should be one of the following.
   - "samsung,exynos5420-clock" - controller compatible with Exynos5420 SoC.
   - "samsung,exynos5420-clock" - controller compatible with Exynos5420 SoC.
 
 
 - reg: physical base address of the controller and length of memory mapped
 - reg: physical base address of the controller and length of memory mapped

+ 1 - 1
Documentation/devicetree/bindings/clock/exynos5440-clock.txt

@@ -5,7 +5,7 @@ controllers within the Exynos5440 SoC.
 
 
 Required Properties:
 Required Properties:
 
 
-- comptible: should be "samsung,exynos5440-clock".
+- compatible: should be "samsung,exynos5440-clock".
 
 
 - reg: physical base address of the controller and length of memory mapped
 - reg: physical base address of the controller and length of memory mapped
   region.
   region.

+ 40 - 26
Documentation/devicetree/bindings/gpio/8xxx_gpio.txt

@@ -5,16 +5,42 @@ This is for the non-QE/CPM/GUTs GPIO controllers as found on
 
 
 Every GPIO controller node must have #gpio-cells property defined,
 Every GPIO controller node must have #gpio-cells property defined,
 this information will be used to translate gpio-specifiers.
 this information will be used to translate gpio-specifiers.
+See bindings/gpio/gpio.txt for details of how to specify GPIO
+information for devices.
+
+The GPIO module usually is connected to the SoC's internal interrupt
+controller, see bindings/interrupt-controller/interrupts.txt (the
+interrupt client nodes section) for details how to specify this GPIO
+module's interrupt.
+
+The GPIO module may serve as another interrupt controller (cascaded to
+the SoC's internal interrupt controller).  See the interrupt controller
+nodes section in bindings/interrupt-controller/interrupts.txt for
+details.
 
 
 Required properties:
 Required properties:
-- compatible : "fsl,<CHIP>-gpio" followed by "fsl,mpc8349-gpio" for
-  83xx, "fsl,mpc8572-gpio" for 85xx and "fsl,mpc8610-gpio" for 86xx.
-- #gpio-cells : Should be two. The first cell is the pin number and the
-  second cell is used to specify optional parameters (currently unused).
- - interrupts : Interrupt mapping for GPIO IRQ.
- - interrupt-parent : Phandle for the interrupt controller that
-   services interrupts for this device.
-- gpio-controller : Marks the port as GPIO controller.
+- compatible:		"fsl,<chip>-gpio" followed by "fsl,mpc8349-gpio"
+			for 83xx, "fsl,mpc8572-gpio" for 85xx, or
+			"fsl,mpc8610-gpio" for 86xx.
+- #gpio-cells:		Should be two. The first cell is the pin number
+			and the second cell is used to specify optional
+			parameters (currently unused).
+- interrupt-parent:	Phandle for the interrupt controller that
+			services interrupts for this device.
+- interrupts:		Interrupt mapping for GPIO IRQ.
+- gpio-controller:	Marks the port as GPIO controller.
+
+Optional properties:
+- interrupt-controller:	Empty boolean property which marks the GPIO
+			module as an IRQ controller.
+- #interrupt-cells:	Should be two.  Defines the number of integer
+			cells required to specify an interrupt within
+			this interrupt controller.  The first cell
+			defines the pin number, the second cell
+			defines additional flags (trigger type,
+			trigger polarity).  Note that the available
+			set of trigger conditions supported by the
+			GPIO module depends on the actual SoC.
 
 
 Example of gpio-controller nodes for a MPC8347 SoC:
 Example of gpio-controller nodes for a MPC8347 SoC:
 
 
@@ -22,39 +48,27 @@ Example of gpio-controller nodes for a MPC8347 SoC:
 		#gpio-cells = <2>;
 		#gpio-cells = <2>;
 		compatible = "fsl,mpc8347-gpio", "fsl,mpc8349-gpio";
 		compatible = "fsl,mpc8347-gpio", "fsl,mpc8349-gpio";
 		reg = <0xc00 0x100>;
 		reg = <0xc00 0x100>;
-		interrupts = <74 0x8>;
 		interrupt-parent = <&ipic>;
 		interrupt-parent = <&ipic>;
+		interrupts = <74 0x8>;
 		gpio-controller;
 		gpio-controller;
+		interrupt-controller;
+		#interrupt-cells = <2>;
 	};
 	};
 
 
 	gpio2: gpio-controller@d00 {
 	gpio2: gpio-controller@d00 {
 		#gpio-cells = <2>;
 		#gpio-cells = <2>;
 		compatible = "fsl,mpc8347-gpio", "fsl,mpc8349-gpio";
 		compatible = "fsl,mpc8347-gpio", "fsl,mpc8349-gpio";
 		reg = <0xd00 0x100>;
 		reg = <0xd00 0x100>;
-		interrupts = <75 0x8>;
 		interrupt-parent = <&ipic>;
 		interrupt-parent = <&ipic>;
+		interrupts = <75 0x8>;
 		gpio-controller;
 		gpio-controller;
 	};
 	};
 
 
-See booting-without-of.txt for details of how to specify GPIO
-information for devices.
-
-To use GPIO pins as interrupt sources for peripherals, specify the
-GPIO controller as the interrupt parent and define GPIO number +
-trigger mode using the interrupts property, which is defined like
-this:
-
-interrupts = <number trigger>, where:
- - number: GPIO pin (0..31)
- - trigger: trigger mode:
-	2 = trigger on falling edge
-	3 = trigger on both edges
-
-Example of device using this is:
+Example of a peripheral using the GPIO module as an IRQ controller:
 
 
 	funkyfpga@0 {
 	funkyfpga@0 {
 		compatible = "funky-fpga";
 		compatible = "funky-fpga";
 		...
 		...
-		interrupts = <4 3>;
 		interrupt-parent = <&gpio1>;
 		interrupt-parent = <&gpio1>;
+		interrupts = <4 3>;
 	};
 	};

+ 0 - 8
Documentation/devicetree/bindings/marvell.txt

@@ -79,7 +79,6 @@ prefixed with the string "marvell,", for Marvell Technology Group Ltd.
    Required properties:
    Required properties:
      - #address-cells : Should be <1>
      - #address-cells : Should be <1>
      - #size-cells : Should be <0>
      - #size-cells : Should be <0>
-     - device_type : Should be "mdio"
      - compatible : Should be "marvell,mv64360-mdio"
      - compatible : Should be "marvell,mv64360-mdio"
 
 
    Example:
    Example:
@@ -87,7 +86,6 @@ prefixed with the string "marvell,", for Marvell Technology Group Ltd.
      mdio {
      mdio {
 	     #address-cells = <1>;
 	     #address-cells = <1>;
 	     #size-cells = <0>;
 	     #size-cells = <0>;
-	     device_type = "mdio";
 	     compatible = "marvell,mv64360-mdio";
 	     compatible = "marvell,mv64360-mdio";
 
 
 	     ethernet-phy@0 {
 	     ethernet-phy@0 {
@@ -132,7 +130,6 @@ prefixed with the string "marvell,", for Marvell Technology Group Ltd.
    Ethernet port node
    Ethernet port node
 
 
    Required properties:
    Required properties:
-     - device_type : Should be "network".
      - compatible : Should be "marvell,mv64360-eth".
      - compatible : Should be "marvell,mv64360-eth".
      - reg : Should be <0>, <1>, or <2>, according to which registers
      - reg : Should be <0>, <1>, or <2>, according to which registers
        within the silicon block the device uses.
        within the silicon block the device uses.
@@ -145,7 +142,6 @@ prefixed with the string "marvell,", for Marvell Technology Group Ltd.
 
 
    Example Discovery Ethernet port node:
    Example Discovery Ethernet port node:
      ethernet@0 {
      ethernet@0 {
-	     device_type = "network";
 	     compatible = "marvell,mv64360-eth";
 	     compatible = "marvell,mv64360-eth";
 	     reg = <0>;
 	     reg = <0>;
 	     interrupts = <32>;
 	     interrupts = <32>;
@@ -159,7 +155,6 @@ prefixed with the string "marvell,", for Marvell Technology Group Ltd.
    c) Marvell Discovery PHY nodes
    c) Marvell Discovery PHY nodes
 
 
    Required properties:
    Required properties:
-     - device_type : Should be "ethernet-phy"
      - interrupts : <a> where a is the interrupt number for this phy.
      - interrupts : <a> where a is the interrupt number for this phy.
      - interrupt-parent : the phandle for the interrupt controller that
      - interrupt-parent : the phandle for the interrupt controller that
        services interrupts for this device.
        services interrupts for this device.
@@ -167,7 +162,6 @@ prefixed with the string "marvell,", for Marvell Technology Group Ltd.
 
 
    Example Discovery PHY node:
    Example Discovery PHY node:
      ethernet-phy@1 {
      ethernet-phy@1 {
-	     device_type = "ethernet-phy";
 	     compatible = "broadcom,bcm5421";
 	     compatible = "broadcom,bcm5421";
 	     interrupts = <76>;      /* GPP 12 */
 	     interrupts = <76>;      /* GPP 12 */
 	     interrupt-parent = <&PIC>;
 	     interrupt-parent = <&PIC>;
@@ -271,7 +265,6 @@ prefixed with the string "marvell,", for Marvell Technology Group Ltd.
    serial port.
    serial port.
 
 
    Required properties:
    Required properties:
-     - device_type : "serial"
      - compatible : "marvell,mv64360-mpsc"
      - compatible : "marvell,mv64360-mpsc"
      - reg : Offset and length of the register set for this device
      - reg : Offset and length of the register set for this device
      - sdma : the phandle for the SDMA node used by this port
      - sdma : the phandle for the SDMA node used by this port
@@ -288,7 +281,6 @@ prefixed with the string "marvell,", for Marvell Technology Group Ltd.
 
 
    Example Discovery MPSCINTR node:
    Example Discovery MPSCINTR node:
      mpsc@8000 {
      mpsc@8000 {
-	     device_type = "serial";
 	     compatible = "marvell,mv64360-mpsc";
 	     compatible = "marvell,mv64360-mpsc";
 	     reg = <0x8000 0x38>;
 	     reg = <0x8000 0x38>;
 	     virtual-reg = <0xf1008000>;
 	     virtual-reg = <0xf1008000>;

+ 54 - 0
Documentation/devicetree/bindings/mmc/ti-omap.txt

@@ -0,0 +1,54 @@
+* TI MMC host controller for OMAP1 and 2420
+
+The MMC Host Controller on TI OMAP1 and 2420 family provides
+an interface for MMC, SD, and SDIO types of memory cards.
+
+This file documents differences between the core properties described
+by mmc.txt and the properties used by the omap mmc driver.
+
+Note that this driver will not work with omap2430 or later omaps,
+please see the omap hsmmc driver for the current omaps.
+
+Required properties:
+- compatible: Must be "ti,omap2420-mmc", for OMAP2420 controllers
+- ti,hwmods: For 2420, must be "msdi<n>", where n is controller
+  instance starting 1
+
+Examples:
+
+	msdi1: mmc@4809c000 {
+		compatible = "ti,omap2420-mmc";
+		ti,hwmods = "msdi1";
+		reg = <0x4809c000 0x80>;
+		interrupts = <83>;
+		dmas = <&sdma 61 &sdma 62>;
+		dma-names = "tx", "rx";
+	};
+
+* TI MMC host controller for OMAP1 and 2420
+
+The MMC Host Controller on TI OMAP1 and 2420 family provides
+an interface for MMC, SD, and SDIO types of memory cards.
+
+This file documents differences between the core properties described
+by mmc.txt and the properties used by the omap mmc driver.
+
+Note that this driver will not work with omap2430 or later omaps,
+please see the omap hsmmc driver for the current omaps.
+
+Required properties:
+- compatible: Must be "ti,omap2420-mmc", for OMAP2420 controllers
+- ti,hwmods: For 2420, must be "msdi<n>", where n is controller
+  instance starting 1
+
+Examples:
+
+	msdi1: mmc@4809c000 {
+		compatible = "ti,omap2420-mmc";
+		ti,hwmods = "msdi1";
+		reg = <0x4809c000 0x80>;
+		interrupts = <83>;
+		dmas = <&sdma 61 &sdma 62>;
+		dma-names = "tx", "rx";
+	};
+

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

@@ -4,7 +4,7 @@ This file provides information, what the device node
 for the davinci_emac interface contains.
 for the davinci_emac interface contains.
 
 
 Required properties:
 Required properties:
-- compatible: "ti,davinci-dm6467-emac";
+- compatible: "ti,davinci-dm6467-emac" or "ti,am3517-emac"
 - reg: Offset and length of the register set for the device
 - reg: Offset and length of the register set for the device
 - ti,davinci-ctrl-reg-offset: offset to control register
 - ti,davinci-ctrl-reg-offset: offset to control register
 - ti,davinci-ctrl-mod-reg-offset: offset to control module register
 - ti,davinci-ctrl-mod-reg-offset: offset to control module register

+ 2 - 0
Documentation/devicetree/bindings/net/fsl-fec.txt

@@ -15,6 +15,7 @@ Optional properties:
   only if property "phy-reset-gpios" is available.  Missing the property
   only if property "phy-reset-gpios" is available.  Missing the property
   will have the duration be 1 millisecond.  Numbers greater than 1000 are
   will have the duration be 1 millisecond.  Numbers greater than 1000 are
   invalid and 1 millisecond will be used instead.
   invalid and 1 millisecond will be used instead.
+- phy-supply: regulator that powers the Ethernet PHY.
 
 
 Example:
 Example:
 
 
@@ -25,4 +26,5 @@ ethernet@83fec000 {
 	phy-mode = "mii";
 	phy-mode = "mii";
 	phy-reset-gpios = <&gpio2 14 0>; /* GPIO2_14 */
 	phy-reset-gpios = <&gpio2 14 0>; /* GPIO2_14 */
 	local-mac-address = [00 04 9F 01 1B B9];
 	local-mac-address = [00 04 9F 01 1B B9];
+	phy-supply = <&reg_fec_supply>;
 };
 };

+ 0 - 3
Documentation/devicetree/bindings/net/marvell-orion-net.txt

@@ -32,7 +32,6 @@ Optional controller properties:
 * Ethernet port node
 * Ethernet port node
 
 
 Required port properties:
 Required port properties:
- - device_type: shall be "network".
  - compatible: shall be one of "marvell,orion-eth-port",
  - compatible: shall be one of "marvell,orion-eth-port",
       "marvell,kirkwood-eth-port".
       "marvell,kirkwood-eth-port".
  - reg: port number relative to ethernet controller, shall be 0, 1, or 2.
  - reg: port number relative to ethernet controller, shall be 0, 1, or 2.
@@ -61,7 +60,6 @@ or
 mdio-bus {
 mdio-bus {
 	...
 	...
 	ethphy: ethernet-phy@8 {
 	ethphy: ethernet-phy@8 {
-		device_type = "ethernet-phy";
 		...
 		...
 	};
 	};
 };
 };
@@ -75,7 +73,6 @@ eth: ethernet-controller@72000 {
 	marvell,tx-checksum-limit = <1600>;
 	marvell,tx-checksum-limit = <1600>;
 
 
 	ethernet@0 {
 	ethernet@0 {
-		device_type = "network";
 		compatible = "marvell,orion-eth-port";
 		compatible = "marvell,orion-eth-port";
 		reg = <0>;
 		reg = <0>;
 		interrupts = <29>;
 		interrupts = <29>;

+ 0 - 5
Documentation/devicetree/bindings/net/phy.txt

@@ -2,7 +2,6 @@ PHY nodes
 
 
 Required properties:
 Required properties:
 
 
- - device_type : Should be "ethernet-phy"
  - interrupts : <a b> where a is the interrupt number and b is a
  - interrupts : <a b> where a is the interrupt number and b is a
    field that represents an encoding of the sense and level
    field that represents an encoding of the sense and level
    information for the interrupt.  This should be encoded based on
    information for the interrupt.  This should be encoded based on
@@ -11,8 +10,6 @@ Required properties:
  - interrupt-parent : the phandle for the interrupt controller that
  - interrupt-parent : the phandle for the interrupt controller that
    services interrupts for this device.
    services interrupts for this device.
  - reg : The ID number for the phy, usually a small integer
  - reg : The ID number for the phy, usually a small integer
- - linux,phandle :  phandle for this node; likely referenced by an
-   ethernet controller node.
 
 
 Optional Properties:
 Optional Properties:
 
 
@@ -27,9 +24,7 @@ Example:
 
 
 ethernet-phy@0 {
 ethernet-phy@0 {
 	compatible = "ethernet-phy-ieee802.3-c22";
 	compatible = "ethernet-phy-ieee802.3-c22";
-	linux,phandle = <2452000>;
 	interrupt-parent = <40000>;
 	interrupt-parent = <40000>;
 	interrupts = <35 1>;
 	interrupts = <35 1>;
 	reg = <0>;
 	reg = <0>;
-	device_type = "ethernet-phy";
 };
 };

+ 4 - 0
Documentation/devicetree/bindings/net/smsc-lan91c111.txt

@@ -8,3 +8,7 @@ Required properties:
 Optional properties:
 Optional properties:
 - phy-device : phandle to Ethernet phy
 - phy-device : phandle to Ethernet phy
 - local-mac-address : Ethernet mac address to use
 - local-mac-address : Ethernet mac address to use
+- reg-io-width : Mask of sizes (in bytes) of the IO accesses that
+  are supported on the device.  Valid value for SMSC LAN91c111 are
+  1, 2 or 4.  If it's omitted or invalid, the size would be 2 meaning
+  16-bit access only.

+ 0 - 2
Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/network.txt

@@ -10,7 +10,6 @@ Currently defined compatibles:
 Example:
 Example:
 
 
 	ethernet@11300 {
 	ethernet@11300 {
-		device_type = "network";
 		compatible = "fsl,mpc8272-fcc-enet",
 		compatible = "fsl,mpc8272-fcc-enet",
 			     "fsl,cpm2-fcc-enet";
 			     "fsl,cpm2-fcc-enet";
 		reg = <11300 20 8400 100 11390 1>;
 		reg = <11300 20 8400 100 11390 1>;
@@ -33,7 +32,6 @@ fsl,mdc-pin : pin of port C controlling mdio clock
 
 
 Example:
 Example:
 	mdio@10d40 {
 	mdio@10d40 {
-		device_type = "mdio";
 		compatible = "fsl,mpc8272ads-mdio-bitbang",
 		compatible = "fsl,mpc8272ads-mdio-bitbang",
 			     "fsl,mpc8272-mdio-bitbang",
 			     "fsl,mpc8272-mdio-bitbang",
 			     "fsl,cpm2-mdio-bitbang";
 			     "fsl,cpm2-mdio-bitbang";

+ 0 - 3
Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/pincfg.txt

@@ -1,8 +1,6 @@
 * Pin configuration nodes
 * Pin configuration nodes
 
 
 Required properties:
 Required properties:
-- linux,phandle : phandle of this node; likely referenced by a QE
-  device.
 - pio-map : array of pin configurations.  Each pin is defined by 6
 - pio-map : array of pin configurations.  Each pin is defined by 6
   integers.  The six numbers are respectively: port, pin, dir,
   integers.  The six numbers are respectively: port, pin, dir,
   open_drain, assignment, has_irq.
   open_drain, assignment, has_irq.
@@ -29,7 +27,6 @@ Required properties:
 
 
 Example:
 Example:
      ucc_pin@01 {
      ucc_pin@01 {
-	linux,phandle = <140001>;
 	pio-map = <
 	pio-map = <
 	/* port  pin  dir  open_drain  assignment  has_irq */
 	/* port  pin  dir  open_drain  assignment  has_irq */
 		0  3  1  0  1  0 	/* TxD0 */
 		0  3  1  0  1  0 	/* TxD0 */

+ 0 - 5
Documentation/devicetree/bindings/spi/nvidia,tegra20-spi.txt

@@ -1,5 +0,0 @@
-NVIDIA Tegra 2 SPI device
-
-Required properties:
-- compatible : should be "nvidia,tegra20-spi".
-- gpios : should specify GPIOs used for chipselect.

+ 2 - 0
Documentation/devicetree/bindings/vendor-prefixes.txt

@@ -32,12 +32,14 @@ est	ESTeem Wireless Modems
 fsl	Freescale Semiconductor
 fsl	Freescale Semiconductor
 GEFanuc	GE Fanuc Intelligent Platforms Embedded Systems, Inc.
 GEFanuc	GE Fanuc Intelligent Platforms Embedded Systems, Inc.
 gef	GE Fanuc Intelligent Platforms Embedded Systems, Inc.
 gef	GE Fanuc Intelligent Platforms Embedded Systems, Inc.
+gmt	Global Mixed-mode Technology, Inc.
 hisilicon	Hisilicon Limited.
 hisilicon	Hisilicon Limited.
 hp	Hewlett Packard
 hp	Hewlett Packard
 ibm	International Business Machines (IBM)
 ibm	International Business Machines (IBM)
 idt	Integrated Device Technologies, Inc.
 idt	Integrated Device Technologies, Inc.
 img	Imagination Technologies Ltd.
 img	Imagination Technologies Ltd.
 intercontrol	Inter Control Group
 intercontrol	Inter Control Group
+lg	LG Corporation
 linux	Linux-specific binding
 linux	Linux-specific binding
 lsi	LSI Corp. (LSI Logic)
 lsi	LSI Corp. (LSI Logic)
 marvell	Marvell Technology Group Ltd.
 marvell	Marvell Technology Group Ltd.

+ 0 - 3
Documentation/devicetree/booting-without-of.txt

@@ -1364,19 +1364,16 @@ Appendix A - Sample SOC node for MPC8540
 				phy0: ethernet-phy@0 {
 				phy0: ethernet-phy@0 {
 					interrupts = <5 1>;
 					interrupts = <5 1>;
 					reg = <0>;
 					reg = <0>;
-					device_type = "ethernet-phy";
 				};
 				};
 
 
 				phy1: ethernet-phy@1 {
 				phy1: ethernet-phy@1 {
 					interrupts = <5 1>;
 					interrupts = <5 1>;
 					reg = <1>;
 					reg = <1>;
-					device_type = "ethernet-phy";
 				};
 				};
 
 
 				phy3: ethernet-phy@3 {
 				phy3: ethernet-phy@3 {
 					interrupts = <7 1>;
 					interrupts = <7 1>;
 					reg = <3>;
 					reg = <3>;
-					device_type = "ethernet-phy";
 				};
 				};
 			};
 			};
 		};
 		};

+ 14 - 0
Documentation/gpio/00-INDEX

@@ -0,0 +1,14 @@
+00-INDEX
+	- This file
+gpio.txt
+	- Introduction to GPIOs and their kernel interfaces
+consumer.txt
+	- How to obtain and use GPIOs in a driver
+driver.txt
+	- How to write a GPIO driver
+board.txt
+	- How to assign GPIOs to a consumer device and a function
+sysfs.txt
+	- Information about the GPIO sysfs interface
+gpio-legacy.txt
+	- Historical documentation of the deprecated GPIO integer interface

+ 2 - 0
Documentation/kernel-parameters.txt

@@ -1529,6 +1529,8 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
 
 
 			* atapi_dmadir: Enable ATAPI DMADIR bridge support
 			* atapi_dmadir: Enable ATAPI DMADIR bridge support
 
 
+			* disable: Disable this device.
+
 			If there are multiple matching configurations changing
 			If there are multiple matching configurations changing
 			the same attribute, the last one is used.
 			the same attribute, the last one is used.
 
 

+ 12 - 6
Documentation/mic/mpssd/mpssd.c

@@ -313,7 +313,7 @@ static struct mic_device_desc *get_device_desc(struct mic_info *mic, int type)
 	int i;
 	int i;
 	void *dp = get_dp(mic, type);
 	void *dp = get_dp(mic, type);
 
 
-	for (i = mic_aligned_size(struct mic_bootparam); i < PAGE_SIZE;
+	for (i = sizeof(struct mic_bootparam); i < PAGE_SIZE;
 		i += mic_total_desc_size(d)) {
 		i += mic_total_desc_size(d)) {
 		d = dp + i;
 		d = dp + i;
 
 
@@ -445,8 +445,8 @@ init_vr(struct mic_info *mic, int fd, int type,
 		__func__, mic->name, vr0->va, vr0->info, vr_size,
 		__func__, mic->name, vr0->va, vr0->info, vr_size,
 		vring_size(MIC_VRING_ENTRIES, MIC_VIRTIO_RING_ALIGN));
 		vring_size(MIC_VRING_ENTRIES, MIC_VIRTIO_RING_ALIGN));
 	mpsslog("magic 0x%x expected 0x%x\n",
 	mpsslog("magic 0x%x expected 0x%x\n",
-		vr0->info->magic, MIC_MAGIC + type);
-	assert(vr0->info->magic == MIC_MAGIC + type);
+		le32toh(vr0->info->magic), MIC_MAGIC + type);
+	assert(le32toh(vr0->info->magic) == MIC_MAGIC + type);
 	if (vr1) {
 	if (vr1) {
 		vr1->va = (struct mic_vring *)
 		vr1->va = (struct mic_vring *)
 			&va[MIC_DEVICE_PAGE_END + vr_size];
 			&va[MIC_DEVICE_PAGE_END + vr_size];
@@ -458,8 +458,8 @@ init_vr(struct mic_info *mic, int fd, int type,
 			__func__, mic->name, vr1->va, vr1->info, vr_size,
 			__func__, mic->name, vr1->va, vr1->info, vr_size,
 			vring_size(MIC_VRING_ENTRIES, MIC_VIRTIO_RING_ALIGN));
 			vring_size(MIC_VRING_ENTRIES, MIC_VIRTIO_RING_ALIGN));
 		mpsslog("magic 0x%x expected 0x%x\n",
 		mpsslog("magic 0x%x expected 0x%x\n",
-			vr1->info->magic, MIC_MAGIC + type + 1);
-		assert(vr1->info->magic == MIC_MAGIC + type + 1);
+			le32toh(vr1->info->magic), MIC_MAGIC + type + 1);
+		assert(le32toh(vr1->info->magic) == MIC_MAGIC + type + 1);
 	}
 	}
 done:
 done:
 	return va;
 	return va;
@@ -520,7 +520,7 @@ static void *
 virtio_net(void *arg)
 virtio_net(void *arg)
 {
 {
 	static __u8 vnet_hdr[2][sizeof(struct virtio_net_hdr)];
 	static __u8 vnet_hdr[2][sizeof(struct virtio_net_hdr)];
-	static __u8 vnet_buf[2][MAX_NET_PKT_SIZE] __aligned(64);
+	static __u8 vnet_buf[2][MAX_NET_PKT_SIZE] __attribute__ ((aligned(64)));
 	struct iovec vnet_iov[2][2] = {
 	struct iovec vnet_iov[2][2] = {
 		{ { .iov_base = vnet_hdr[0], .iov_len = sizeof(vnet_hdr[0]) },
 		{ { .iov_base = vnet_hdr[0], .iov_len = sizeof(vnet_hdr[0]) },
 		  { .iov_base = vnet_buf[0], .iov_len = sizeof(vnet_buf[0]) } },
 		  { .iov_base = vnet_buf[0], .iov_len = sizeof(vnet_buf[0]) } },
@@ -1412,6 +1412,12 @@ mic_config(void *arg)
 	}
 	}
 
 
 	do {
 	do {
+		ret = lseek(fd, 0, SEEK_SET);
+		if (ret < 0) {
+			mpsslog("%s: Failed to seek to file start '%s': %s\n",
+				mic->name, pathname, strerror(errno));
+			goto close_error1;
+		}
 		ret = read(fd, value, sizeof(value));
 		ret = read(fd, value, sizeof(value));
 		if (ret < 0) {
 		if (ret < 0) {
 			mpsslog("%s: Failed to read sysfs entry '%s': %s\n",
 			mpsslog("%s: Failed to read sysfs entry '%s': %s\n",

+ 240 - 0
Documentation/module-signing.txt

@@ -0,0 +1,240 @@
+			==============================
+			KERNEL MODULE SIGNING FACILITY
+			==============================
+
+CONTENTS
+
+ - Overview.
+ - Configuring module signing.
+ - Generating signing keys.
+ - Public keys in the kernel.
+ - Manually signing modules.
+ - Signed modules and stripping.
+ - Loading signed modules.
+ - Non-valid signatures and unsigned modules.
+ - Administering/protecting the private key.
+
+
+========
+OVERVIEW
+========
+
+The kernel module signing facility cryptographically signs modules during
+installation and then checks the signature upon loading the module.  This
+allows increased kernel security by disallowing the loading of unsigned modules
+or modules signed with an invalid key.  Module signing increases security by
+making it harder to load a malicious module into the kernel.  The module
+signature checking is done by the kernel so that it is not necessary to have
+trusted userspace bits.
+
+This facility uses X.509 ITU-T standard certificates to encode the public keys
+involved.  The signatures are not themselves encoded in any industrial standard
+type.  The facility currently only supports the RSA public key encryption
+standard (though it is pluggable and permits others to be used).  The possible
+hash algorithms that can be used are SHA-1, SHA-224, SHA-256, SHA-384, and
+SHA-512 (the algorithm is selected by data in the signature).
+
+
+==========================
+CONFIGURING MODULE SIGNING
+==========================
+
+The module signing facility is enabled by going to the "Enable Loadable Module
+Support" section of the kernel configuration and turning on
+
+	CONFIG_MODULE_SIG	"Module signature verification"
+
+This has a number of options available:
+
+ (1) "Require modules to be validly signed" (CONFIG_MODULE_SIG_FORCE)
+
+     This specifies how the kernel should deal with a module that has a
+     signature for which the key is not known or a module that is unsigned.
+
+     If this is off (ie. "permissive"), then modules for which the key is not
+     available and modules that are unsigned are permitted, but the kernel will
+     be marked as being tainted.
+
+     If this is on (ie. "restrictive"), only modules that have a valid
+     signature that can be verified by a public key in the kernel's possession
+     will be loaded.  All other modules will generate an error.
+
+     Irrespective of the setting here, if the module has a signature block that
+     cannot be parsed, it will be rejected out of hand.
+
+
+ (2) "Automatically sign all modules" (CONFIG_MODULE_SIG_ALL)
+
+     If this is on then modules will be automatically signed during the
+     modules_install phase of a build.  If this is off, then the modules must
+     be signed manually using:
+
+	scripts/sign-file
+
+
+ (3) "Which hash algorithm should modules be signed with?"
+
+     This presents a choice of which hash algorithm the installation phase will
+     sign the modules with:
+
+	CONFIG_SIG_SHA1		"Sign modules with SHA-1"
+	CONFIG_SIG_SHA224	"Sign modules with SHA-224"
+	CONFIG_SIG_SHA256	"Sign modules with SHA-256"
+	CONFIG_SIG_SHA384	"Sign modules with SHA-384"
+	CONFIG_SIG_SHA512	"Sign modules with SHA-512"
+
+     The algorithm selected here will also be built into the kernel (rather
+     than being a module) so that modules signed with that algorithm can have
+     their signatures checked without causing a dependency loop.
+
+
+=======================
+GENERATING SIGNING KEYS
+=======================
+
+Cryptographic keypairs are required to generate and check signatures.  A
+private key is used to generate a signature and the corresponding public key is
+used to check it.  The private key is only needed during the build, after which
+it can be deleted or stored securely.  The public key gets built into the
+kernel so that it can be used to check the signatures as the modules are
+loaded.
+
+Under normal conditions, the kernel build will automatically generate a new
+keypair using openssl if one does not exist in the files:
+
+	signing_key.priv
+	signing_key.x509
+
+during the building of vmlinux (the public part of the key needs to be built
+into vmlinux) using parameters in the:
+
+	x509.genkey
+
+file (which is also generated if it does not already exist).
+
+It is strongly recommended that you provide your own x509.genkey file.
+
+Most notably, in the x509.genkey file, the req_distinguished_name section
+should be altered from the default:
+
+	[ req_distinguished_name ]
+	O = Magrathea
+	CN = Glacier signing key
+	emailAddress = slartibartfast@magrathea.h2g2
+
+The generated RSA key size can also be set with:
+
+	[ req ]
+	default_bits = 4096
+
+
+It is also possible to manually generate the key private/public files using the
+x509.genkey key generation configuration file in the root node of the Linux
+kernel sources tree and the openssl command.  The following is an example to
+generate the public/private key files:
+
+	openssl req -new -nodes -utf8 -sha256 -days 36500 -batch -x509 \
+	   -config x509.genkey -outform DER -out signing_key.x509 \
+	   -keyout signing_key.priv
+
+
+=========================
+PUBLIC KEYS IN THE KERNEL
+=========================
+
+The kernel contains a ring of public keys that can be viewed by root.  They're
+in a keyring called ".system_keyring" that can be seen by:
+
+	[root@deneb ~]# cat /proc/keys
+	...
+	223c7853 I------     1 perm 1f030000     0     0 keyring   .system_keyring: 1
+	302d2d52 I------     1 perm 1f010000     0     0 asymmetri Fedora kernel signing key: d69a84e6bce3d216b979e9505b3e3ef9a7118079: X509.RSA a7118079 []
+	...
+
+Beyond the public key generated specifically for module signing, any file
+placed in the kernel source root directory or the kernel build root directory
+whose name is suffixed with ".x509" will be assumed to be an X.509 public key
+and will be added to the keyring.
+
+Further, the architecture code may take public keys from a hardware store and
+add those in also (e.g. from the UEFI key database).
+
+Finally, it is possible to add additional public keys by doing:
+
+	keyctl padd asymmetric "" [.system_keyring-ID] <[key-file]
+
+e.g.:
+
+	keyctl padd asymmetric "" 0x223c7853 <my_public_key.x509
+
+Note, however, that the kernel will only permit keys to be added to
+.system_keyring _if_ the new key's X.509 wrapper is validly signed by a key
+that is already resident in the .system_keyring at the time the key was added.
+
+
+=========================
+MANUALLY SIGNING MODULES
+=========================
+
+To manually sign a module, use the scripts/sign-file tool available in
+the Linux kernel source tree.  The script requires 4 arguments:
+
+	1.  The hash algorithm (e.g., sha256)
+	2.  The private key filename
+	3.  The public key filename
+	4.  The kernel module to be signed
+
+The following is an example to sign a kernel module:
+
+	scripts/sign-file sha512 kernel-signkey.priv \
+		kernel-signkey.x509 module.ko
+
+The hash algorithm used does not have to match the one configured, but if it
+doesn't, you should make sure that hash algorithm is either built into the
+kernel or can be loaded without requiring itself.
+
+
+============================
+SIGNED MODULES AND STRIPPING
+============================
+
+A signed module has a digital signature simply appended at the end.  The string
+"~Module signature appended~." at the end of the module's file confirms that a
+signature is present but it does not confirm that the signature is valid!
+
+Signed modules are BRITTLE as the signature is outside of the defined ELF
+container.  Thus they MAY NOT be stripped once the signature is computed and
+attached.  Note the entire module is the signed payload, including any and all
+debug information present at the time of signing.
+
+
+======================
+LOADING SIGNED MODULES
+======================
+
+Modules are loaded with insmod, modprobe, init_module() or finit_module(),
+exactly as for unsigned modules as no processing is done in userspace.  The
+signature checking is all done within the kernel.
+
+
+=========================================
+NON-VALID SIGNATURES AND UNSIGNED MODULES
+=========================================
+
+If CONFIG_MODULE_SIG_FORCE is enabled or enforcemodulesig=1 is supplied on
+the kernel command line, the kernel will only load validly signed modules
+for which it has a public key.   Otherwise, it will also load modules that are
+unsigned.   Any module for which the kernel has a key, but which proves to have
+a signature mismatch will not be permitted to load.
+
+Any module that has an unparseable signature will be rejected.
+
+
+=========================================
+ADMINISTERING/PROTECTING THE PRIVATE KEY
+=========================================
+
+Since the private key is used to sign modules, viruses and malware could use
+the private key to sign modules and compromise the operating system.  The
+private key must be either destroyed or moved to a secure location and not kept
+in the root node of the kernel source tree.

+ 6 - 2
Documentation/networking/ip-sysctl.txt

@@ -16,8 +16,12 @@ ip_default_ttl - INTEGER
 	Default: 64 (as recommended by RFC1700)
 	Default: 64 (as recommended by RFC1700)
 
 
 ip_no_pmtu_disc - BOOLEAN
 ip_no_pmtu_disc - BOOLEAN
-	Disable Path MTU Discovery.
-	default FALSE
+	Disable Path MTU Discovery. If enabled and a
+	fragmentation-required ICMP is received, the PMTU to this
+	destination will be set to min_pmtu (see below). You will need
+	to raise min_pmtu to the smallest interface MTU on your system
+	manually if you want to avoid locally generated fragments.
+	Default: FALSE
 
 
 min_pmtu - INTEGER
 min_pmtu - INTEGER
 	default 552 - minimum discovered Path MTU
 	default 552 - minimum discovered Path MTU

+ 10 - 0
Documentation/networking/packet_mmap.txt

@@ -123,6 +123,16 @@ Transmission process is similar to capture as shown below.
 [shutdown]  close() --------> destruction of the transmission socket and
 [shutdown]  close() --------> destruction of the transmission socket and
                               deallocation of all associated resources.
                               deallocation of all associated resources.
 
 
+Socket creation and destruction is also straight forward, and is done
+the same way as in capturing described in the previous paragraph:
+
+ int fd = socket(PF_PACKET, mode, 0);
+
+The protocol can optionally be 0 in case we only want to transmit
+via this socket, which avoids an expensive call to packet_rcv().
+In this case, you also need to bind(2) the TX_RING with sll_protocol = 0
+set. Otherwise, htons(ETH_P_ALL) or any other protocol, for example.
+
 Binding the socket to your network interface is mandatory (with zero copy) to
 Binding the socket to your network interface is mandatory (with zero copy) to
 know the header size of frames used in the circular buffer.
 know the header size of frames used in the circular buffer.
 
 

+ 87 - 24
MAINTAINERS

@@ -783,7 +783,7 @@ F:	arch/arm/boot/dts/sama*.dts
 F:	arch/arm/boot/dts/sama*.dtsi
 F:	arch/arm/boot/dts/sama*.dtsi
 
 
 ARM/CALXEDA HIGHBANK ARCHITECTURE
 ARM/CALXEDA HIGHBANK ARCHITECTURE
-M:	Rob Herring <rob.herring@calxeda.com>
+M:	Rob Herring <robh@kernel.org>
 L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 S:	Maintained
 S:	Maintained
 F:	arch/arm/mach-highbank/
 F:	arch/arm/mach-highbank/
@@ -893,20 +893,15 @@ F:	arch/arm/include/asm/hardware/dec21285.h
 F:	arch/arm/mach-footbridge/
 F:	arch/arm/mach-footbridge/
 
 
 ARM/FREESCALE IMX / MXC ARM ARCHITECTURE
 ARM/FREESCALE IMX / MXC ARM ARCHITECTURE
+M:	Shawn Guo <shawn.guo@linaro.org>
 M:	Sascha Hauer <kernel@pengutronix.de>
 M:	Sascha Hauer <kernel@pengutronix.de>
 L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 S:	Maintained
 S:	Maintained
-T:	git git://git.pengutronix.de/git/imx/linux-2.6.git
+T:	git git://git.linaro.org/people/shawnguo/linux-2.6.git
 F:	arch/arm/mach-imx/
 F:	arch/arm/mach-imx/
+F:	arch/arm/boot/dts/imx*
 F:	arch/arm/configs/imx*_defconfig
 F:	arch/arm/configs/imx*_defconfig
 
 
-ARM/FREESCALE IMX6
-M:	Shawn Guo <shawn.guo@linaro.org>
-L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
-S:	Maintained
-T:	git git://git.linaro.org/people/shawnguo/linux-2.6.git
-F:	arch/arm/mach-imx/*imx6*
-
 ARM/FREESCALE MXS ARM ARCHITECTURE
 ARM/FREESCALE MXS ARM ARCHITECTURE
 M:	Shawn Guo <shawn.guo@linaro.org>
 M:	Shawn Guo <shawn.guo@linaro.org>
 L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@ -1013,6 +1008,8 @@ M:	Santosh Shilimkar <santosh.shilimkar@ti.com>
 L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 S:	Maintained
 S:	Maintained
 F:	arch/arm/mach-keystone/
 F:	arch/arm/mach-keystone/
+F:	drivers/clk/keystone/
+T:	git git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone.git
 
 
 ARM/LOGICPD PXA270 MACHINE SUPPORT
 ARM/LOGICPD PXA270 MACHINE SUPPORT
 M:	Lennert Buytenhek <kernel@wantstofly.org>
 M:	Lennert Buytenhek <kernel@wantstofly.org>
@@ -1371,6 +1368,9 @@ T:	git git://git.xilinx.com/linux-xlnx.git
 S:	Supported
 S:	Supported
 F:	arch/arm/mach-zynq/
 F:	arch/arm/mach-zynq/
 F:	drivers/cpuidle/cpuidle-zynq.c
 F:	drivers/cpuidle/cpuidle-zynq.c
+N:	zynq
+N:	xilinx
+F:	drivers/clocksource/cadence_ttc_timer.c
 
 
 ARM SMMU DRIVER
 ARM SMMU DRIVER
 M:	Will Deacon <will.deacon@arm.com>
 M:	Will Deacon <will.deacon@arm.com>
@@ -1934,7 +1934,8 @@ S:	Maintained
 F:	drivers/gpio/gpio-bt8xx.c
 F:	drivers/gpio/gpio-bt8xx.c
 
 
 BTRFS FILE SYSTEM
 BTRFS FILE SYSTEM
-M:	Chris Mason <chris.mason@fusionio.com>
+M:	Chris Mason <clm@fb.com>
+M:	Josef Bacik <jbacik@fb.com>
 L:	linux-btrfs@vger.kernel.org
 L:	linux-btrfs@vger.kernel.org
 W:	http://btrfs.wiki.kernel.org/
 W:	http://btrfs.wiki.kernel.org/
 Q:	http://patchwork.kernel.org/project/linux-btrfs/list/
 Q:	http://patchwork.kernel.org/project/linux-btrfs/list/
@@ -2137,7 +2138,8 @@ S:	Maintained
 F:	Documentation/zh_CN/
 F:	Documentation/zh_CN/
 
 
 CHIPIDEA USB HIGH SPEED DUAL ROLE CONTROLLER
 CHIPIDEA USB HIGH SPEED DUAL ROLE CONTROLLER
-M:	Alexander Shishkin <alexander.shishkin@linux.intel.com>
+M:	Peter Chen <Peter.Chen@freescale.com>
+T:	git://github.com/hzpeterchen/linux-usb.git
 L:	linux-usb@vger.kernel.org
 L:	linux-usb@vger.kernel.org
 S:	Maintained
 S:	Maintained
 F:	drivers/usb/chipidea/
 F:	drivers/usb/chipidea/
@@ -3764,9 +3766,11 @@ F:	include/uapi/linux/gigaset_dev.h
 
 
 GPIO SUBSYSTEM
 GPIO SUBSYSTEM
 M:	Linus Walleij <linus.walleij@linaro.org>
 M:	Linus Walleij <linus.walleij@linaro.org>
-S:	Maintained
+M:	Alexandre Courbot <gnurou@gmail.com>
 L:	linux-gpio@vger.kernel.org
 L:	linux-gpio@vger.kernel.org
-F:	Documentation/gpio.txt
+T:	git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git
+S:	Maintained
+F:	Documentation/gpio/
 F:	drivers/gpio/
 F:	drivers/gpio/
 F:	include/linux/gpio*
 F:	include/linux/gpio*
 F:	include/asm-generic/gpio.h
 F:	include/asm-generic/gpio.h
@@ -3834,6 +3838,12 @@ T:	git git://linuxtv.org/media_tree.git
 S:	Maintained
 S:	Maintained
 F:	drivers/media/usb/gspca/
 F:	drivers/media/usb/gspca/
 
 
+GUID PARTITION TABLE (GPT)
+M:	Davidlohr Bueso <davidlohr@hp.com>
+L:	linux-efi@vger.kernel.org
+S:	Maintained
+F:	block/partitions/efi.*
+
 STK1160 USB VIDEO CAPTURE DRIVER
 STK1160 USB VIDEO CAPTURE DRIVER
 M:	Ezequiel Garcia <elezegarcia@gmail.com>
 M:	Ezequiel Garcia <elezegarcia@gmail.com>
 L:	linux-media@vger.kernel.org
 L:	linux-media@vger.kernel.org
@@ -4043,12 +4053,26 @@ W:	http://artax.karlin.mff.cuni.cz/~mikulas/vyplody/hpfs/index-e.cgi
 S:	Maintained
 S:	Maintained
 F:	fs/hpfs/
 F:	fs/hpfs/
 
 
+HSI SUBSYSTEM
+M:	Sebastian Reichel <sre@debian.org>
+S:	Maintained
+F:	Documentation/ABI/testing/sysfs-bus-hsi
+F:	drivers/hsi/
+F:	include/linux/hsi/
+F:	include/uapi/linux/hsi/
+
 HSO 3G MODEM DRIVER
 HSO 3G MODEM DRIVER
 M:	Jan Dumon <j.dumon@option.com>
 M:	Jan Dumon <j.dumon@option.com>
 W:	http://www.pharscape.org
 W:	http://www.pharscape.org
 S:	Maintained
 S:	Maintained
 F:	drivers/net/usb/hso.c
 F:	drivers/net/usb/hso.c
 
 
+HSR NETWORK PROTOCOL
+M:	Arvid Brodin <arvid.brodin@alten.se>
+L:	netdev@vger.kernel.org
+S:	Maintained
+F:	net/hsr/
+
 HTCPEN TOUCHSCREEN DRIVER
 HTCPEN TOUCHSCREEN DRIVER
 M:	Pau Oliva Fora <pof@eslack.org>
 M:	Pau Oliva Fora <pof@eslack.org>
 L:	linux-input@vger.kernel.org
 L:	linux-input@vger.kernel.org
@@ -4455,10 +4479,8 @@ M:	Bruce Allan <bruce.w.allan@intel.com>
 M:	Carolyn Wyborny <carolyn.wyborny@intel.com>
 M:	Carolyn Wyborny <carolyn.wyborny@intel.com>
 M:	Don Skidmore <donald.c.skidmore@intel.com>
 M:	Don Skidmore <donald.c.skidmore@intel.com>
 M:	Greg Rose <gregory.v.rose@intel.com>
 M:	Greg Rose <gregory.v.rose@intel.com>
-M:	Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
 M:	Alex Duyck <alexander.h.duyck@intel.com>
 M:	Alex Duyck <alexander.h.duyck@intel.com>
 M:	John Ronciak <john.ronciak@intel.com>
 M:	John Ronciak <john.ronciak@intel.com>
-M:	Tushar Dave <tushar.n.dave@intel.com>
 L:	e1000-devel@lists.sourceforge.net
 L:	e1000-devel@lists.sourceforge.net
 W:	http://www.intel.com/support/feedback.htm
 W:	http://www.intel.com/support/feedback.htm
 W:	http://e1000.sourceforge.net/
 W:	http://e1000.sourceforge.net/
@@ -5261,7 +5283,7 @@ S:	Maintained
 F:	Documentation/lockdep*.txt
 F:	Documentation/lockdep*.txt
 F:	Documentation/lockstat.txt
 F:	Documentation/lockstat.txt
 F:	include/linux/lockdep.h
 F:	include/linux/lockdep.h
-F:	kernel/lockdep*
+F:	kernel/locking/
 
 
 LOGICAL DISK MANAGER SUPPORT (LDM, Windows 2000/XP/Vista Dynamic Disks)
 LOGICAL DISK MANAGER SUPPORT (LDM, Windows 2000/XP/Vista Dynamic Disks)
 M:	"Richard Russon (FlatCap)" <ldm@flatcap.org>
 M:	"Richard Russon (FlatCap)" <ldm@flatcap.org>
@@ -5902,12 +5924,21 @@ M:	Steffen Klassert <steffen.klassert@secunet.com>
 M:	Herbert Xu <herbert@gondor.apana.org.au>
 M:	Herbert Xu <herbert@gondor.apana.org.au>
 M:	"David S. Miller" <davem@davemloft.net>
 M:	"David S. Miller" <davem@davemloft.net>
 L:	netdev@vger.kernel.org
 L:	netdev@vger.kernel.org
-T:	git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git
+T:	git git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec.git
+T:	git git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec-next.git
 S:	Maintained
 S:	Maintained
 F:	net/xfrm/
 F:	net/xfrm/
 F:	net/key/
 F:	net/key/
 F:	net/ipv4/xfrm*
 F:	net/ipv4/xfrm*
+F:	net/ipv4/esp4.c
+F:	net/ipv4/ah4.c
+F:	net/ipv4/ipcomp.c
+F:	net/ipv4/ip_vti.c
 F:	net/ipv6/xfrm*
 F:	net/ipv6/xfrm*
+F:	net/ipv6/esp6.c
+F:	net/ipv6/ah6.c
+F:	net/ipv6/ipcomp6.c
+F:	net/ipv6/ip6_vti.c
 F:	include/uapi/linux/xfrm.h
 F:	include/uapi/linux/xfrm.h
 F:	include/net/xfrm.h
 F:	include/net/xfrm.h
 
 
@@ -5973,10 +6004,10 @@ F:	drivers/nfc/
 F:	include/linux/platform_data/pn544.h
 F:	include/linux/platform_data/pn544.h
 
 
 NFS, SUNRPC, AND LOCKD CLIENTS
 NFS, SUNRPC, AND LOCKD CLIENTS
-M:	Trond Myklebust <Trond.Myklebust@netapp.com>
+M:	Trond Myklebust <trond.myklebust@primarydata.com>
 L:	linux-nfs@vger.kernel.org
 L:	linux-nfs@vger.kernel.org
 W:	http://client.linux-nfs.org
 W:	http://client.linux-nfs.org
-T:	git git://git.linux-nfs.org/pub/linux/nfs-2.6.git
+T:	git git://git.linux-nfs.org/projects/trondmy/linux-nfs.git
 S:	Maintained
 S:	Maintained
 F:	fs/lockd/
 F:	fs/lockd/
 F:	fs/nfs/
 F:	fs/nfs/
@@ -6228,7 +6259,7 @@ F:	drivers/i2c/busses/i2c-ocores.c
 
 
 OPEN FIRMWARE AND FLATTENED DEVICE TREE
 OPEN FIRMWARE AND FLATTENED DEVICE TREE
 M:	Grant Likely <grant.likely@linaro.org>
 M:	Grant Likely <grant.likely@linaro.org>
-M:	Rob Herring <rob.herring@calxeda.com>
+M:	Rob Herring <robh+dt@kernel.org>
 L:	devicetree@vger.kernel.org
 L:	devicetree@vger.kernel.org
 W:	http://fdt.secretlab.ca
 W:	http://fdt.secretlab.ca
 T:	git git://git.secretlab.ca/git/linux-2.6.git
 T:	git git://git.secretlab.ca/git/linux-2.6.git
@@ -6240,11 +6271,11 @@ K:	of_get_property
 K:	of_match_table
 K:	of_match_table
 
 
 OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS
 OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS
-M:	Rob Herring <rob.herring@calxeda.com>
+M:	Rob Herring <robh+dt@kernel.org>
 M:	Pawel Moll <pawel.moll@arm.com>
 M:	Pawel Moll <pawel.moll@arm.com>
 M:	Mark Rutland <mark.rutland@arm.com>
 M:	Mark Rutland <mark.rutland@arm.com>
-M:	Stephen Warren <swarren@wwwdotorg.org>
 M:	Ian Campbell <ijc+devicetree@hellion.org.uk>
 M:	Ian Campbell <ijc+devicetree@hellion.org.uk>
+M:	Kumar Gala <galak@codeaurora.org>
 L:	devicetree@vger.kernel.org
 L:	devicetree@vger.kernel.org
 S:	Maintained
 S:	Maintained
 F:	Documentation/devicetree/
 F:	Documentation/devicetree/
@@ -6454,19 +6485,52 @@ F:	drivers/pci/
 F:	include/linux/pci*
 F:	include/linux/pci*
 F:	arch/x86/pci/
 F:	arch/x86/pci/
 
 
+PCI DRIVER FOR IMX6
+M:	Richard Zhu <r65037@freescale.com>
+M:	Shawn Guo <shawn.guo@linaro.org>
+L:	linux-pci@vger.kernel.org
+L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+S:	Maintained
+F:	drivers/pci/host/*imx6*
+
+PCI DRIVER FOR MVEBU (Marvell Armada 370 and Armada XP SOC support)
+M:	Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+M:	Jason Cooper <jason@lakedaemon.net>
+L:	linux-pci@vger.kernel.org
+L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+S:	Maintained
+F:	drivers/pci/host/*mvebu*
+
 PCI DRIVER FOR NVIDIA TEGRA
 PCI DRIVER FOR NVIDIA TEGRA
 M:	Thierry Reding <thierry.reding@gmail.com>
 M:	Thierry Reding <thierry.reding@gmail.com>
 L:	linux-tegra@vger.kernel.org
 L:	linux-tegra@vger.kernel.org
+L:	linux-pci@vger.kernel.org
 S:	Supported
 S:	Supported
 F:	Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt
 F:	Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt
 F:	drivers/pci/host/pci-tegra.c
 F:	drivers/pci/host/pci-tegra.c
 
 
+PCI DRIVER FOR RENESAS R-CAR
+M:	Simon Horman <horms@verge.net.au>
+L:	linux-pci@vger.kernel.org
+L:	linux-sh@vger.kernel.org
+S:	Maintained
+F:	drivers/pci/host/*rcar*
+
 PCI DRIVER FOR SAMSUNG EXYNOS
 PCI DRIVER FOR SAMSUNG EXYNOS
 M:	Jingoo Han <jg1.han@samsung.com>
 M:	Jingoo Han <jg1.han@samsung.com>
 L:	linux-pci@vger.kernel.org
 L:	linux-pci@vger.kernel.org
+L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+L:	linux-samsung-soc@vger.kernel.org (moderated for non-subscribers)
 S:	Maintained
 S:	Maintained
 F:	drivers/pci/host/pci-exynos.c
 F:	drivers/pci/host/pci-exynos.c
 
 
+PCI DRIVER FOR SYNOPSIS DESIGNWARE
+M:	Mohit Kumar <mohit.kumar@st.com>
+M:	Jingoo Han <jg1.han@samsung.com>
+L:	linux-pci@vger.kernel.org
+S:	Maintained
+F:	drivers/pci/host/*designware*
+
 PCMCIA SUBSYSTEM
 PCMCIA SUBSYSTEM
 P:	Linux PCMCIA Team
 P:	Linux PCMCIA Team
 L:	linux-pcmcia@lists.infradead.org
 L:	linux-pcmcia@lists.infradead.org
@@ -7385,7 +7449,6 @@ S:	Maintained
 F:	kernel/sched/
 F:	kernel/sched/
 F:	include/linux/sched.h
 F:	include/linux/sched.h
 F:	include/uapi/linux/sched.h
 F:	include/uapi/linux/sched.h
-F:	kernel/wait.c
 F:	include/linux/wait.h
 F:	include/linux/wait.h
 
 
 SCORE ARCHITECTURE
 SCORE ARCHITECTURE
@@ -9530,7 +9593,7 @@ F:	drivers/xen/*swiotlb*
 
 
 XFS FILESYSTEM
 XFS FILESYSTEM
 P:	Silicon Graphics Inc
 P:	Silicon Graphics Inc
-M:	Dave Chinner <dchinner@fromorbit.com>
+M:	Dave Chinner <david@fromorbit.com>
 M:	Ben Myers <bpm@sgi.com>
 M:	Ben Myers <bpm@sgi.com>
 M:	xfs@oss.sgi.com
 M:	xfs@oss.sgi.com
 L:	xfs@oss.sgi.com
 L:	xfs@oss.sgi.com

+ 10 - 14
Makefile

@@ -1,7 +1,7 @@
 VERSION = 3
 VERSION = 3
 PATCHLEVEL = 13
 PATCHLEVEL = 13
 SUBLEVEL = 0
 SUBLEVEL = 0
-EXTRAVERSION = -rc2
+EXTRAVERSION = -rc7
 NAME = One Giant Leap for Frogkind
 NAME = One Giant Leap for Frogkind
 
 
 # *DOCUMENTATION*
 # *DOCUMENTATION*
@@ -732,19 +732,15 @@ export mod_strip_cmd
 # Select initial ramdisk compression format, default is gzip(1).
 # Select initial ramdisk compression format, default is gzip(1).
 # This shall be used by the dracut(8) tool while creating an initramfs image.
 # This shall be used by the dracut(8) tool while creating an initramfs image.
 #
 #
-INITRD_COMPRESS=gzip
-ifeq ($(CONFIG_RD_BZIP2), y)
-        INITRD_COMPRESS=bzip2
-else ifeq ($(CONFIG_RD_LZMA), y)
-        INITRD_COMPRESS=lzma
-else ifeq ($(CONFIG_RD_XZ), y)
-        INITRD_COMPRESS=xz
-else ifeq ($(CONFIG_RD_LZO), y)
-        INITRD_COMPRESS=lzo
-else ifeq ($(CONFIG_RD_LZ4), y)
-        INITRD_COMPRESS=lz4
-endif
-export INITRD_COMPRESS
+INITRD_COMPRESS-y                  := gzip
+INITRD_COMPRESS-$(CONFIG_RD_BZIP2) := bzip2
+INITRD_COMPRESS-$(CONFIG_RD_LZMA)  := lzma
+INITRD_COMPRESS-$(CONFIG_RD_XZ)    := xz
+INITRD_COMPRESS-$(CONFIG_RD_LZO)   := lzo
+INITRD_COMPRESS-$(CONFIG_RD_LZ4)   := lz4
+# do not export INITRD_COMPRESS, since we didn't actually
+# choose a sane default compression above.
+# export INITRD_COMPRESS := $(INITRD_COMPRESS-y)
 
 
 ifdef CONFIG_MODULE_SIG_ALL
 ifdef CONFIG_MODULE_SIG_ALL
 MODSECKEY = ./signing_key.priv
 MODSECKEY = ./signing_key.priv

+ 1 - 0
arch/arc/Kconfig

@@ -8,6 +8,7 @@
 
 
 config ARC
 config ARC
 	def_bool y
 	def_bool y
+	select BUILDTIME_EXTABLE_SORT
 	select CLONE_BACKWARDS
 	select CLONE_BACKWARDS
 	# ARC Busybox based initramfs absolutely relies on DEVTMPFS for /dev
 	# ARC Busybox based initramfs absolutely relies on DEVTMPFS for /dev
 	select DEVTMPFS if !INITRAMFS_SOURCE=""
 	select DEVTMPFS if !INITRAMFS_SOURCE=""

+ 11 - 0
arch/arc/include/uapi/asm/unistd.h

@@ -8,6 +8,13 @@
 
 
 /******** no-legacy-syscalls-ABI *******/
 /******** no-legacy-syscalls-ABI *******/
 
 
+/*
+ * Non-typical guard macro to enable inclusion twice in ARCH sys.c
+ * That is how the Generic syscall wrapper generator works
+ */
+#if !defined(_UAPI_ASM_ARC_UNISTD_H) || defined(__SYSCALL)
+#define _UAPI_ASM_ARC_UNISTD_H
+
 #define __ARCH_WANT_SYS_EXECVE
 #define __ARCH_WANT_SYS_EXECVE
 #define __ARCH_WANT_SYS_CLONE
 #define __ARCH_WANT_SYS_CLONE
 #define __ARCH_WANT_SYS_VFORK
 #define __ARCH_WANT_SYS_VFORK
@@ -32,3 +39,7 @@ __SYSCALL(__NR_arc_gettls, sys_arc_gettls)
 /* Generic syscall (fs/filesystems.c - lost in asm-generic/unistd.h */
 /* Generic syscall (fs/filesystems.c - lost in asm-generic/unistd.h */
 #define __NR_sysfs		(__NR_arch_specific_syscall + 3)
 #define __NR_sysfs		(__NR_arch_specific_syscall + 3)
 __SYSCALL(__NR_sysfs, sys_sysfs)
 __SYSCALL(__NR_sysfs, sys_sysfs)
+
+#undef __SYSCALL
+
+#endif

+ 2 - 2
arch/arc/kernel/perf_event.c

@@ -79,9 +79,9 @@ static int arc_pmu_cache_event(u64 config)
 	cache_result	= (config >> 16) & 0xff;
 	cache_result	= (config >> 16) & 0xff;
 	if (cache_type >= PERF_COUNT_HW_CACHE_MAX)
 	if (cache_type >= PERF_COUNT_HW_CACHE_MAX)
 		return -EINVAL;
 		return -EINVAL;
-	if (cache_type >= PERF_COUNT_HW_CACHE_OP_MAX)
+	if (cache_op >= PERF_COUNT_HW_CACHE_OP_MAX)
 		return -EINVAL;
 		return -EINVAL;
-	if (cache_type >= PERF_COUNT_HW_CACHE_RESULT_MAX)
+	if (cache_result >= PERF_COUNT_HW_CACHE_RESULT_MAX)
 		return -EINVAL;
 		return -EINVAL;
 
 
 	ret = arc_pmu_cache_map[cache_type][cache_op][cache_result];
 	ret = arc_pmu_cache_map[cache_type][cache_op][cache_result];

+ 79 - 0
arch/arm/boot/dts/am335x-base0033.dts

@@ -13,4 +13,83 @@
 / {
 / {
 	model = "IGEP COM AM335x on AQUILA Expansion";
 	model = "IGEP COM AM335x on AQUILA Expansion";
 	compatible = "isee,am335x-base0033", "isee,am335x-igep0033", "ti,am33xx";
 	compatible = "isee,am335x-base0033", "isee,am335x-igep0033", "ti,am33xx";
+
+	hdmi {
+		compatible = "ti,tilcdc,slave";
+		i2c = <&i2c0>;
+		pinctrl-names = "default", "off";
+		pinctrl-0 = <&nxp_hdmi_pins>;
+		pinctrl-1 = <&nxp_hdmi_off_pins>;
+		status = "okay";
+	};
+
+	leds_base {
+		pinctrl-names = "default";
+		pinctrl-0 = <&leds_base_pins>;
+
+		compatible = "gpio-leds";
+
+		led@0 {
+			label = "base:red:user";
+			gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>;	/* gpio1_21 */
+			default-state = "off";
+		};
+
+		led@1 {
+			label = "base:green:user";
+			gpios = <&gpio2 0 GPIO_ACTIVE_HIGH>;	/* gpio2_0 */
+			default-state = "off";
+		};
+	};
+};
+
+&am33xx_pinmux {
+	nxp_hdmi_pins: pinmux_nxp_hdmi_pins {
+		pinctrl-single,pins = <
+			0x1b0 (PIN_OUTPUT | MUX_MODE3)	/* xdma_event_intr0.clkout1 */
+			0xa0 (PIN_OUTPUT | MUX_MODE0)	/* lcd_data0 */
+			0xa4 (PIN_OUTPUT | MUX_MODE0)	/* lcd_data1 */
+			0xa8 (PIN_OUTPUT | MUX_MODE0)	/* lcd_data2 */
+			0xac (PIN_OUTPUT | MUX_MODE0)	/* lcd_data3 */
+			0xb0 (PIN_OUTPUT | MUX_MODE0)	/* lcd_data4 */
+			0xb4 (PIN_OUTPUT | MUX_MODE0)	/* lcd_data5 */
+			0xb8 (PIN_OUTPUT | MUX_MODE0)	/* lcd_data6 */
+			0xbc (PIN_OUTPUT | MUX_MODE0)	/* lcd_data7 */
+			0xc0 (PIN_OUTPUT | MUX_MODE0)	/* lcd_data8 */
+			0xc4 (PIN_OUTPUT | MUX_MODE0)	/* lcd_data9 */
+			0xc8 (PIN_OUTPUT | MUX_MODE0)	/* lcd_data10 */
+			0xcc (PIN_OUTPUT | MUX_MODE0)	/* lcd_data11 */
+			0xd0 (PIN_OUTPUT | MUX_MODE0)	/* lcd_data12 */
+			0xd4 (PIN_OUTPUT | MUX_MODE0)	/* lcd_data13 */
+			0xd8 (PIN_OUTPUT | MUX_MODE0)	/* lcd_data14 */
+			0xdc (PIN_OUTPUT | MUX_MODE0)	/* lcd_data15 */
+			0xe0 (PIN_OUTPUT | MUX_MODE0)	/* lcd_vsync */
+			0xe4 (PIN_OUTPUT | MUX_MODE0)	/* lcd_hsync */
+			0xe8 (PIN_OUTPUT | MUX_MODE0)	/* lcd_pclk */
+			0xec (PIN_OUTPUT | MUX_MODE0)	/* lcd_ac_bias_en */
+		>;
+	};
+	nxp_hdmi_off_pins: pinmux_nxp_hdmi_off_pins {
+		pinctrl-single,pins = <
+			0x1b0 (PIN_OUTPUT | MUX_MODE3)	/* xdma_event_intr0.clkout1 */
+		>;
+	};
+
+	leds_base_pins: pinmux_leds_base_pins {
+		pinctrl-single,pins = <
+			0x54 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)	/* gpmc_a5.gpio1_21 */
+			0x88 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)	/* gpmc_csn3.gpio2_0 */
+		>;
+	};
+};
+
+&lcdc {
+	status = "okay";
+};
+
+&i2c0 {
+	eeprom: eeprom@50 {
+		compatible = "at,24c256";
+		reg = <0x50>;
+	};
 };
 };

+ 29 - 0
arch/arm/boot/dts/am335x-igep0033.dtsi

@@ -199,6 +199,35 @@
 	pinctrl-0 = <&uart0_pins>;
 	pinctrl-0 = <&uart0_pins>;
 };
 };
 
 
+&usb {
+	status = "okay";
+
+	control@44e10000 {
+		status = "okay";
+	};
+
+	usb-phy@47401300 {
+		status = "okay";
+	};
+
+	usb-phy@47401b00 {
+		status = "okay";
+	};
+
+	usb@47401000 {
+		status = "okay";
+	};
+
+	usb@47401800 {
+		status = "okay";
+		dr_mode = "host";
+	};
+
+	dma-controller@07402000  {
+		status = "okay";
+	};
+};
+
 #include "tps65910.dtsi"
 #include "tps65910.dtsi"
 
 
 &tps {
 &tps {

+ 3 - 3
arch/arm/boot/dts/am3517-evm.dts

@@ -7,11 +7,11 @@
  */
  */
 /dts-v1/;
 /dts-v1/;
 
 
-#include "omap34xx.dtsi"
+#include "am3517.dtsi"
 
 
 / {
 / {
-	model = "TI AM3517 EVM (AM3517/05)";
-	compatible = "ti,am3517-evm", "ti,omap3";
+	model = "TI AM3517 EVM (AM3517/05 TMDSEVM3517)";
+	compatible = "ti,am3517-evm", "ti,am3517", "ti,omap3";
 
 
 	memory {
 	memory {
 		device_type = "memory";
 		device_type = "memory";

+ 63 - 0
arch/arm/boot/dts/am3517.dtsi

@@ -0,0 +1,63 @@
+/*
+ * Device Tree Source for am3517 SoC
+ *
+ * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * This file is licensed under the terms of the GNU General Public License
+ * version 2.  This program is licensed "as is" without any warranty of any
+ * kind, whether express or implied.
+ */
+
+#include "omap3.dtsi"
+
+/ {
+	aliases {
+		serial3 = &uart4;
+	};
+
+	ocp {
+		am35x_otg_hs: am35x_otg_hs@5c040000 {
+			compatible = "ti,omap3-musb";
+			ti,hwmods = "am35x_otg_hs";
+			status = "disabled";
+			reg = <0x5c040000 0x1000>;
+			interrupts = <71>;
+			interrupt-names = "mc";
+		};
+
+		davinci_emac: ethernet@0x5c000000 {
+			compatible = "ti,am3517-emac";
+			ti,hwmods = "davinci_emac";
+			status = "disabled";
+			reg = <0x5c000000 0x30000>;
+			interrupts = <67 68 69 70>;
+			ti,davinci-ctrl-reg-offset = <0x10000>;
+			ti,davinci-ctrl-mod-reg-offset = <0>;
+			ti,davinci-ctrl-ram-offset = <0x20000>;
+			ti,davinci-ctrl-ram-size = <0x2000>;
+			ti,davinci-rmii-en = /bits/ 8 <1>;
+			local-mac-address = [ 00 00 00 00 00 00 ];
+		};
+
+		davinci_mdio: ethernet@0x5c030000 {
+			compatible = "ti,davinci_mdio";
+			ti,hwmods = "davinci_mdio";
+			status = "disabled";
+			reg = <0x5c030000 0x1000>;
+			bus_freq = <1000000>;
+			#address-cells = <1>;
+			#size-cells = <0>;
+		};
+
+		uart4: serial@4809e000 {
+			compatible = "ti,omap3-uart";
+			ti,hwmods = "uart4";
+			status = "disabled";
+			reg = <0x4809e000 0x400>;
+			interrupts = <84>;
+			dmas = <&sdma 55 &sdma 54>;
+			dma-names = "tx", "rx";
+			clock-frequency = <48000000>;
+		};
+	};
+};

+ 14 - 14
arch/arm/boot/dts/armada-370-db.dts

@@ -99,22 +99,22 @@
 					spi-max-frequency = <50000000>;
 					spi-max-frequency = <50000000>;
 				};
 				};
 			};
 			};
+		};
 
 
-			pcie-controller {
+		pcie-controller {
+			status = "okay";
+			/*
+			 * The two PCIe units are accessible through
+			 * both standard PCIe slots and mini-PCIe
+			 * slots on the board.
+			 */
+			pcie@1,0 {
+				/* Port 0, Lane 0 */
+				status = "okay";
+			};
+			pcie@2,0 {
+				/* Port 1, Lane 0 */
 				status = "okay";
 				status = "okay";
-				/*
-				 * The two PCIe units are accessible through
-				 * both standard PCIe slots and mini-PCIe
-				 * slots on the board.
-				 */
-				pcie@1,0 {
-					/* Port 0, Lane 0 */
-					status = "okay";
-				};
-				pcie@2,0 {
-					/* Port 1, Lane 0 */
-					status = "okay";
-				};
 			};
 			};
 		};
 		};
 	};
 	};

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

@@ -118,7 +118,7 @@
 
 
 			coherency-fabric@20200 {
 			coherency-fabric@20200 {
 				compatible = "marvell,coherency-fabric";
 				compatible = "marvell,coherency-fabric";
-				reg = <0x20200 0xb0>, <0x21810 0x1c>;
+				reg = <0x20200 0xb0>, <0x21010 0x1c>;
 			};
 			};
 
 
 			serial@12000 {
 			serial@12000 {

+ 12 - 12
arch/arm/boot/dts/armada-xp-mv78230.dtsi

@@ -47,7 +47,7 @@
 		/*
 		/*
 		 * MV78230 has 2 PCIe units Gen2.0: One unit can be
 		 * MV78230 has 2 PCIe units Gen2.0: One unit can be
 		 * configured as x4 or quad x1 lanes. One unit is
 		 * configured as x4 or quad x1 lanes. One unit is
-		 * x4/x1.
+		 * x1 only.
 		 */
 		 */
 		pcie-controller {
 		pcie-controller {
 			compatible = "marvell,armada-xp-pcie";
 			compatible = "marvell,armada-xp-pcie";
@@ -62,10 +62,10 @@
 
 
 			ranges =
 			ranges =
 			       <0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000   /* Port 0.0 registers */
 			       <0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000   /* Port 0.0 registers */
-				0x82000000 0 0x42000 MBUS_ID(0xf0, 0x01) 0x42000 0 0x00002000   /* Port 2.0 registers */
 				0x82000000 0 0x44000 MBUS_ID(0xf0, 0x01) 0x44000 0 0x00002000   /* Port 0.1 registers */
 				0x82000000 0 0x44000 MBUS_ID(0xf0, 0x01) 0x44000 0 0x00002000   /* Port 0.1 registers */
 				0x82000000 0 0x48000 MBUS_ID(0xf0, 0x01) 0x48000 0 0x00002000   /* Port 0.2 registers */
 				0x82000000 0 0x48000 MBUS_ID(0xf0, 0x01) 0x48000 0 0x00002000   /* Port 0.2 registers */
 				0x82000000 0 0x4c000 MBUS_ID(0xf0, 0x01) 0x4c000 0 0x00002000   /* Port 0.3 registers */
 				0x82000000 0 0x4c000 MBUS_ID(0xf0, 0x01) 0x4c000 0 0x00002000   /* Port 0.3 registers */
+				0x82000000 0 0x80000 MBUS_ID(0xf0, 0x01) 0x80000 0 0x00002000   /* Port 1.0 registers */
 				0x82000000 0x1 0       MBUS_ID(0x04, 0xe8) 0 1 0 /* Port 0.0 MEM */
 				0x82000000 0x1 0       MBUS_ID(0x04, 0xe8) 0 1 0 /* Port 0.0 MEM */
 				0x81000000 0x1 0       MBUS_ID(0x04, 0xe0) 0 1 0 /* Port 0.0 IO  */
 				0x81000000 0x1 0       MBUS_ID(0x04, 0xe0) 0 1 0 /* Port 0.0 IO  */
 				0x82000000 0x2 0       MBUS_ID(0x04, 0xd8) 0 1 0 /* Port 0.1 MEM */
 				0x82000000 0x2 0       MBUS_ID(0x04, 0xd8) 0 1 0 /* Port 0.1 MEM */
@@ -74,8 +74,8 @@
 				0x81000000 0x3 0       MBUS_ID(0x04, 0xb0) 0 1 0 /* Port 0.2 IO  */
 				0x81000000 0x3 0       MBUS_ID(0x04, 0xb0) 0 1 0 /* Port 0.2 IO  */
 				0x82000000 0x4 0       MBUS_ID(0x04, 0x78) 0 1 0 /* Port 0.3 MEM */
 				0x82000000 0x4 0       MBUS_ID(0x04, 0x78) 0 1 0 /* Port 0.3 MEM */
 				0x81000000 0x4 0       MBUS_ID(0x04, 0x70) 0 1 0 /* Port 0.3 IO  */
 				0x81000000 0x4 0       MBUS_ID(0x04, 0x70) 0 1 0 /* Port 0.3 IO  */
-				0x82000000 0x9 0       MBUS_ID(0x04, 0xf8) 0 1 0 /* Port 2.0 MEM */
-				0x81000000 0x9 0       MBUS_ID(0x04, 0xf0) 0 1 0 /* Port 2.0 IO  */>;
+				0x82000000 0x5 0       MBUS_ID(0x08, 0xe8) 0 1 0 /* Port 1.0 MEM */
+				0x81000000 0x5 0       MBUS_ID(0x08, 0xe0) 0 1 0 /* Port 1.0 IO  */>;
 
 
 			pcie@1,0 {
 			pcie@1,0 {
 				device_type = "pci";
 				device_type = "pci";
@@ -145,20 +145,20 @@
 				status = "disabled";
 				status = "disabled";
 			};
 			};
 
 
-			pcie@9,0 {
+			pcie@5,0 {
 				device_type = "pci";
 				device_type = "pci";
-				assigned-addresses = <0x82000800 0 0x42000 0 0x2000>;
-				reg = <0x4800 0 0 0 0>;
+				assigned-addresses = <0x82000800 0 0x80000 0 0x2000>;
+				reg = <0x2800 0 0 0 0>;
 				#address-cells = <3>;
 				#address-cells = <3>;
 				#size-cells = <2>;
 				#size-cells = <2>;
 				#interrupt-cells = <1>;
 				#interrupt-cells = <1>;
-				ranges = <0x82000000 0 0 0x82000000 0x9 0 1 0
-					  0x81000000 0 0 0x81000000 0x9 0 1 0>;
+				ranges = <0x82000000 0 0 0x82000000 0x5 0 1 0
+					  0x81000000 0 0 0x81000000 0x5 0 1 0>;
 				interrupt-map-mask = <0 0 0 0>;
 				interrupt-map-mask = <0 0 0 0>;
-				interrupt-map = <0 0 0 0 &mpic 99>;
-				marvell,pcie-port = <2>;
+				interrupt-map = <0 0 0 0 &mpic 62>;
+				marvell,pcie-port = <1>;
 				marvell,pcie-lane = <0>;
 				marvell,pcie-lane = <0>;
-				clocks = <&gateclk 26>;
+				clocks = <&gateclk 9>;
 				status = "disabled";
 				status = "disabled";
 			};
 			};
 		};
 		};

+ 85 - 24
arch/arm/boot/dts/armada-xp-mv78260.dtsi

@@ -48,7 +48,7 @@
 		/*
 		/*
 		 * MV78260 has 3 PCIe units Gen2.0: Two units can be
 		 * MV78260 has 3 PCIe units Gen2.0: Two units can be
 		 * configured as x4 or quad x1 lanes. One unit is
 		 * configured as x4 or quad x1 lanes. One unit is
-		 * x4/x1.
+		 * x4 only.
 		 */
 		 */
 		pcie-controller {
 		pcie-controller {
 			compatible = "marvell,armada-xp-pcie";
 			compatible = "marvell,armada-xp-pcie";
@@ -68,7 +68,9 @@
 				0x82000000 0 0x48000 MBUS_ID(0xf0, 0x01) 0x48000 0 0x00002000   /* Port 0.2 registers */
 				0x82000000 0 0x48000 MBUS_ID(0xf0, 0x01) 0x48000 0 0x00002000   /* Port 0.2 registers */
 				0x82000000 0 0x4c000 MBUS_ID(0xf0, 0x01) 0x4c000 0 0x00002000   /* Port 0.3 registers */
 				0x82000000 0 0x4c000 MBUS_ID(0xf0, 0x01) 0x4c000 0 0x00002000   /* Port 0.3 registers */
 				0x82000000 0 0x80000 MBUS_ID(0xf0, 0x01) 0x80000 0 0x00002000   /* Port 1.0 registers */
 				0x82000000 0 0x80000 MBUS_ID(0xf0, 0x01) 0x80000 0 0x00002000   /* Port 1.0 registers */
-				0x82000000 0 0x82000 MBUS_ID(0xf0, 0x01) 0x82000 0 0x00002000   /* Port 3.0 registers */
+				0x82000000 0 0x84000 MBUS_ID(0xf0, 0x01) 0x84000 0 0x00002000   /* Port 1.1 registers */
+				0x82000000 0 0x88000 MBUS_ID(0xf0, 0x01) 0x88000 0 0x00002000   /* Port 1.2 registers */
+				0x82000000 0 0x8c000 MBUS_ID(0xf0, 0x01) 0x8c000 0 0x00002000   /* Port 1.3 registers */
 				0x82000000 0x1 0     MBUS_ID(0x04, 0xe8) 0 1 0 /* Port 0.0 MEM */
 				0x82000000 0x1 0     MBUS_ID(0x04, 0xe8) 0 1 0 /* Port 0.0 MEM */
 				0x81000000 0x1 0     MBUS_ID(0x04, 0xe0) 0 1 0 /* Port 0.0 IO  */
 				0x81000000 0x1 0     MBUS_ID(0x04, 0xe0) 0 1 0 /* Port 0.0 IO  */
 				0x82000000 0x2 0     MBUS_ID(0x04, 0xd8) 0 1 0 /* Port 0.1 MEM */
 				0x82000000 0x2 0     MBUS_ID(0x04, 0xd8) 0 1 0 /* Port 0.1 MEM */
@@ -77,10 +79,18 @@
 				0x81000000 0x3 0     MBUS_ID(0x04, 0xb0) 0 1 0 /* Port 0.2 IO  */
 				0x81000000 0x3 0     MBUS_ID(0x04, 0xb0) 0 1 0 /* Port 0.2 IO  */
 				0x82000000 0x4 0     MBUS_ID(0x04, 0x78) 0 1 0 /* Port 0.3 MEM */
 				0x82000000 0x4 0     MBUS_ID(0x04, 0x78) 0 1 0 /* Port 0.3 MEM */
 				0x81000000 0x4 0     MBUS_ID(0x04, 0x70) 0 1 0 /* Port 0.3 IO  */
 				0x81000000 0x4 0     MBUS_ID(0x04, 0x70) 0 1 0 /* Port 0.3 IO  */
-				0x82000000 0x9 0     MBUS_ID(0x08, 0xe8) 0 1 0 /* Port 1.0 MEM */
-				0x81000000 0x9 0     MBUS_ID(0x08, 0xe0) 0 1 0 /* Port 1.0 IO  */
-				0x82000000 0xa 0     MBUS_ID(0x08, 0xf8) 0 1 0 /* Port 3.0 MEM */
-				0x81000000 0xa 0     MBUS_ID(0x08, 0xf0) 0 1 0 /* Port 3.0 IO  */>;
+
+				0x82000000 0x5 0     MBUS_ID(0x08, 0xe8) 0 1 0 /* Port 1.0 MEM */
+				0x81000000 0x5 0     MBUS_ID(0x08, 0xe0) 0 1 0 /* Port 1.0 IO  */
+				0x82000000 0x6 0     MBUS_ID(0x08, 0xd8) 0 1 0 /* Port 1.1 MEM */
+				0x81000000 0x6 0     MBUS_ID(0x08, 0xd0) 0 1 0 /* Port 1.1 IO  */
+				0x82000000 0x7 0     MBUS_ID(0x08, 0xb8) 0 1 0 /* Port 1.2 MEM */
+				0x81000000 0x7 0     MBUS_ID(0x08, 0xb0) 0 1 0 /* Port 1.2 IO  */
+				0x82000000 0x8 0     MBUS_ID(0x08, 0x78) 0 1 0 /* Port 1.3 MEM */
+				0x81000000 0x8 0     MBUS_ID(0x08, 0x70) 0 1 0 /* Port 1.3 IO  */
+
+				0x82000000 0x9 0     MBUS_ID(0x04, 0xf8) 0 1 0 /* Port 2.0 MEM */
+				0x81000000 0x9 0     MBUS_ID(0x04, 0xf0) 0 1 0 /* Port 2.0 IO  */>;
 
 
 			pcie@1,0 {
 			pcie@1,0 {
 				device_type = "pci";
 				device_type = "pci";
@@ -106,8 +116,8 @@
 				#address-cells = <3>;
 				#address-cells = <3>;
 				#size-cells = <2>;
 				#size-cells = <2>;
 				#interrupt-cells = <1>;
 				#interrupt-cells = <1>;
-                                ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
-                                          0x81000000 0 0 0x81000000 0x2 0 1 0>;
+				ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
+					  0x81000000 0 0 0x81000000 0x2 0 1 0>;
 				interrupt-map-mask = <0 0 0 0>;
 				interrupt-map-mask = <0 0 0 0>;
 				interrupt-map = <0 0 0 0 &mpic 59>;
 				interrupt-map = <0 0 0 0 &mpic 59>;
 				marvell,pcie-port = <0>;
 				marvell,pcie-port = <0>;
@@ -150,37 +160,88 @@
 				status = "disabled";
 				status = "disabled";
 			};
 			};
 
 
-			pcie@9,0 {
+			pcie@5,0 {
 				device_type = "pci";
 				device_type = "pci";
-				assigned-addresses = <0x82000800 0 0x42000 0 0x2000>;
-				reg = <0x4800 0 0 0 0>;
+				assigned-addresses = <0x82000800 0 0x80000 0 0x2000>;
+				reg = <0x2800 0 0 0 0>;
 				#address-cells = <3>;
 				#address-cells = <3>;
 				#size-cells = <2>;
 				#size-cells = <2>;
 				#interrupt-cells = <1>;
 				#interrupt-cells = <1>;
-				ranges = <0x82000000 0 0 0x82000000 0x9 0 1 0
-					  0x81000000 0 0 0x81000000 0x9 0 1 0>;
+				ranges = <0x82000000 0 0 0x82000000 0x5 0 1 0
+					  0x81000000 0 0 0x81000000 0x5 0 1 0>;
 				interrupt-map-mask = <0 0 0 0>;
 				interrupt-map-mask = <0 0 0 0>;
-				interrupt-map = <0 0 0 0 &mpic 99>;
-				marvell,pcie-port = <2>;
+				interrupt-map = <0 0 0 0 &mpic 62>;
+				marvell,pcie-port = <1>;
 				marvell,pcie-lane = <0>;
 				marvell,pcie-lane = <0>;
-				clocks = <&gateclk 26>;
+				clocks = <&gateclk 9>;
 				status = "disabled";
 				status = "disabled";
 			};
 			};
 
 
-			pcie@10,0 {
+			pcie@6,0 {
 				device_type = "pci";
 				device_type = "pci";
-				assigned-addresses = <0x82000800 0 0x82000 0 0x2000>;
-				reg = <0x5000 0 0 0 0>;
+				assigned-addresses = <0x82000800 0 0x84000 0 0x2000>;
+				reg = <0x3000 0 0 0 0>;
 				#address-cells = <3>;
 				#address-cells = <3>;
 				#size-cells = <2>;
 				#size-cells = <2>;
 				#interrupt-cells = <1>;
 				#interrupt-cells = <1>;
-				ranges = <0x82000000 0 0 0x82000000 0xa 0 1 0
-					  0x81000000 0 0 0x81000000 0xa 0 1 0>;
+				ranges = <0x82000000 0 0 0x82000000 0x6 0 1 0
+					  0x81000000 0 0 0x81000000 0x6 0 1 0>;
 				interrupt-map-mask = <0 0 0 0>;
 				interrupt-map-mask = <0 0 0 0>;
-				interrupt-map = <0 0 0 0 &mpic 103>;
-				marvell,pcie-port = <3>;
+				interrupt-map = <0 0 0 0 &mpic 63>;
+				marvell,pcie-port = <1>;
+				marvell,pcie-lane = <1>;
+				clocks = <&gateclk 10>;
+				status = "disabled";
+			};
+
+			pcie@7,0 {
+				device_type = "pci";
+				assigned-addresses = <0x82000800 0 0x88000 0 0x2000>;
+				reg = <0x3800 0 0 0 0>;
+				#address-cells = <3>;
+				#size-cells = <2>;
+				#interrupt-cells = <1>;
+				ranges = <0x82000000 0 0 0x82000000 0x7 0 1 0
+					  0x81000000 0 0 0x81000000 0x7 0 1 0>;
+				interrupt-map-mask = <0 0 0 0>;
+				interrupt-map = <0 0 0 0 &mpic 64>;
+				marvell,pcie-port = <1>;
+				marvell,pcie-lane = <2>;
+				clocks = <&gateclk 11>;
+				status = "disabled";
+			};
+
+			pcie@8,0 {
+				device_type = "pci";
+				assigned-addresses = <0x82000800 0 0x8c000 0 0x2000>;
+				reg = <0x4000 0 0 0 0>;
+				#address-cells = <3>;
+				#size-cells = <2>;
+				#interrupt-cells = <1>;
+				ranges = <0x82000000 0 0 0x82000000 0x8 0 1 0
+					  0x81000000 0 0 0x81000000 0x8 0 1 0>;
+				interrupt-map-mask = <0 0 0 0>;
+				interrupt-map = <0 0 0 0 &mpic 65>;
+				marvell,pcie-port = <1>;
+				marvell,pcie-lane = <3>;
+				clocks = <&gateclk 12>;
+				status = "disabled";
+			};
+
+			pcie@9,0 {
+				device_type = "pci";
+				assigned-addresses = <0x82000800 0 0x42000 0 0x2000>;
+				reg = <0x4800 0 0 0 0>;
+				#address-cells = <3>;
+				#size-cells = <2>;
+				#interrupt-cells = <1>;
+				ranges = <0x82000000 0 0 0x82000000 0x9 0 1 0
+					  0x81000000 0 0 0x81000000 0x9 0 1 0>;
+				interrupt-map-mask = <0 0 0 0>;
+				interrupt-map = <0 0 0 0 &mpic 99>;
+				marvell,pcie-port = <2>;
 				marvell,pcie-lane = <0>;
 				marvell,pcie-lane = <0>;
-				clocks = <&gateclk 27>;
+				clocks = <&gateclk 26>;
 				status = "disabled";
 				status = "disabled";
 			};
 			};
 		};
 		};

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

@@ -11,6 +11,10 @@
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 
 
 / {
 / {
+	aliases {
+		serial4 = &usart3;
+	};
+
 	ahb {
 	ahb {
 		apb {
 		apb {
 			pinctrl@fffff400 {
 			pinctrl@fffff400 {

+ 0 - 2
arch/arm/boot/dts/dove.dtsi

@@ -559,7 +559,6 @@
 				status = "disabled";
 				status = "disabled";
 
 
 				ethphy: ethernet-phy {
 				ethphy: ethernet-phy {
-					device-type = "ethernet-phy";
 					/* set phy address in board file */
 					/* set phy address in board file */
 				};
 				};
 			};
 			};
@@ -574,7 +573,6 @@
 				status = "disabled";
 				status = "disabled";
 
 
 				ethernet-port@0 {
 				ethernet-port@0 {
-					device_type = "network";
 					compatible = "marvell,orion-eth-port";
 					compatible = "marvell,orion-eth-port";
 					reg = <0>;
 					reg = <0>;
 					interrupts = <29>;
 					interrupts = <29>;

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

@@ -94,7 +94,6 @@
 	status = "okay";
 	status = "okay";
 
 
 	ethphy0: ethernet-phy@0 {
 	ethphy0: ethernet-phy@0 {
-		device_type = "ethernet-phy";
 		reg = <0>;
 		reg = <0>;
 	};
 	};
 };
 };

+ 0 - 1
arch/arm/boot/dts/kirkwood-db.dtsi

@@ -84,7 +84,6 @@
 	status = "okay";
 	status = "okay";
 
 
 	ethphy0: ethernet-phy@8 {
 	ethphy0: ethernet-phy@8 {
-		device_type = "ethernet-phy";
 		reg = <8>;
 		reg = <8>;
 	};
 	};
 };
 };

+ 0 - 1
arch/arm/boot/dts/kirkwood-dnskw.dtsi

@@ -224,7 +224,6 @@
 	status = "okay";
 	status = "okay";
 
 
 	ethphy0: ethernet-phy@8 {
 	ethphy0: ethernet-phy@8 {
-		device_type = "ethernet-phy";
 		reg = <8>;
 		reg = <8>;
 	};
 	};
 };
 };

+ 0 - 1
arch/arm/boot/dts/kirkwood-dockstar.dts

@@ -95,7 +95,6 @@
 	status = "okay";
 	status = "okay";
 
 
 	ethphy0: ethernet-phy@0 {
 	ethphy0: ethernet-phy@0 {
-		device_type = "ethernet-phy";
 		compatible = "marvell,88e1116";
 		compatible = "marvell,88e1116";
 		reg = <0>;
 		reg = <0>;
 	};
 	};

+ 0 - 2
arch/arm/boot/dts/kirkwood-dreamplug.dts

@@ -104,12 +104,10 @@
 	status = "okay";
 	status = "okay";
 
 
 	ethphy0: ethernet-phy@0 {
 	ethphy0: ethernet-phy@0 {
-		device_type = "ethernet-phy";
 		reg = <0>;
 		reg = <0>;
 	};
 	};
 
 
 	ethphy1: ethernet-phy@1 {
 	ethphy1: ethernet-phy@1 {
-		device_type = "ethernet-phy";
 		reg = <1>;
 		reg = <1>;
 	};
 	};
 };
 };

+ 0 - 1
arch/arm/boot/dts/kirkwood-goflexnet.dts

@@ -176,7 +176,6 @@
 	status = "okay";
 	status = "okay";
 
 
 	ethphy0: ethernet-phy@0 {
 	ethphy0: ethernet-phy@0 {
-		device_type = "ethernet-phy";
 		reg = <0>;
 		reg = <0>;
 	};
 	};
 };
 };

+ 0 - 2
arch/arm/boot/dts/kirkwood-guruplug-server-plus.dts

@@ -101,13 +101,11 @@
 	status = "okay";
 	status = "okay";
 
 
 	ethphy0: ethernet-phy@0 {
 	ethphy0: ethernet-phy@0 {
-		device_type = "ethernet-phy";
 		compatible = "marvell,88e1121";
 		compatible = "marvell,88e1121";
 		reg = <0>;
 		reg = <0>;
 	};
 	};
 
 
 	ethphy1: ethernet-phy@1 {
 	ethphy1: ethernet-phy@1 {
-		device_type = "ethernet-phy";
 		compatible = "marvell,88e1121";
 		compatible = "marvell,88e1121";
 		reg = <1>;
 		reg = <1>;
 	};
 	};

+ 0 - 1
arch/arm/boot/dts/kirkwood-ib62x0.dts

@@ -133,7 +133,6 @@
 	status = "okay";
 	status = "okay";
 
 
 	ethphy0: ethernet-phy@8 {
 	ethphy0: ethernet-phy@8 {
-		device_type = "ethernet-phy";
 		reg = <8>;
 		reg = <8>;
 	};
 	};
 };
 };

+ 0 - 1
arch/arm/boot/dts/kirkwood-iconnect.dts

@@ -183,7 +183,6 @@
 	status = "okay";
 	status = "okay";
 
 
 	ethphy0: ethernet-phy@11 {
 	ethphy0: ethernet-phy@11 {
-		device_type = "ethernet-phy";
 		reg = <11>;
 		reg = <11>;
 	};
 	};
 };
 };

+ 0 - 1
arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts

@@ -200,7 +200,6 @@
 	status = "okay";
 	status = "okay";
 
 
 	ethphy1: ethernet-phy@11 {
 	ethphy1: ethernet-phy@11 {
-		device_type = "ethernet-phy";
 		reg = <11>;
 		reg = <11>;
 	};
 	};
 };
 };

+ 0 - 1
arch/arm/boot/dts/kirkwood-km_kirkwood.dts

@@ -55,7 +55,6 @@
 	status = "okay";
 	status = "okay";
 
 
 	ethphy0: ethernet-phy@0 {
 	ethphy0: ethernet-phy@0 {
-		device_type = "ethernet-phy";
 		reg = <0>;
 		reg = <0>;
 	};
 	};
 };
 };

+ 0 - 2
arch/arm/boot/dts/kirkwood-lsxl.dtsi

@@ -212,12 +212,10 @@
 	status = "okay";
 	status = "okay";
 
 
 	ethphy0: ethernet-phy@0 {
 	ethphy0: ethernet-phy@0 {
-		device_type = "ethernet-phy";
 		reg = <0>;
 		reg = <0>;
 	};
 	};
 
 
 	ethphy1: ethernet-phy@8 {
 	ethphy1: ethernet-phy@8 {
-		device_type = "ethernet-phy";
 		reg = <8>;
 		reg = <8>;
 	};
 	};
 };
 };

+ 0 - 2
arch/arm/boot/dts/kirkwood-mplcec4.dts

@@ -197,12 +197,10 @@
 	status = "okay";
 	status = "okay";
 
 
 	ethphy0: ethernet-phy@1 {
 	ethphy0: ethernet-phy@1 {
-		device_type = "ethernet-phy";
 		reg = <1>;
 		reg = <1>;
 	};
 	};
 
 
 	ethphy1: ethernet-phy@2 {
 	ethphy1: ethernet-phy@2 {
-		device_type = "ethernet-phy";
 		reg = <2>;
 		reg = <2>;
 	};
 	};
 };
 };

+ 0 - 1
arch/arm/boot/dts/kirkwood-netgear_readynas_duo_v2.dts

@@ -211,7 +211,6 @@
 	status = "okay";
 	status = "okay";
 
 
 	ethphy0: ethernet-phy@0 {
 	ethphy0: ethernet-phy@0 {
-		device_type = "ethernet-phy";
 		reg = <0>;
 		reg = <0>;
 	};
 	};
 };
 };

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

@@ -89,7 +89,6 @@
 	status = "okay";
 	status = "okay";
 
 
 	ethphy0: ethernet-phy {
 	ethphy0: ethernet-phy {
-		device_type = "ethernet-phy";
                 /* overwrite reg property in board file */
                 /* overwrite reg property in board file */
 	};
 	};
 };
 };

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

@@ -171,7 +171,6 @@
 	status = "okay";
 	status = "okay";
 
 
 	ethphy0: ethernet-phy@0 {
 	ethphy0: ethernet-phy@0 {
-		device_type = "ethernet-phy";
 		reg = <0>;
 		reg = <0>;
 	};
 	};
 };
 };

+ 0 - 2
arch/arm/boot/dts/kirkwood-openblocks_a7.dts

@@ -196,12 +196,10 @@
 	status = "okay";
 	status = "okay";
 
 
 	ethphy0: ethernet-phy@0 {
 	ethphy0: ethernet-phy@0 {
-		device_type = "ethernet-phy";
 		reg = <0>;
 		reg = <0>;
 	};
 	};
 
 
 	ethphy1: ethernet-phy@1 {
 	ethphy1: ethernet-phy@1 {
-		device_type = "ethernet-phy";
 		reg = <1>;
 		reg = <1>;
 	};
 	};
 };
 };

+ 0 - 1
arch/arm/boot/dts/kirkwood-sheevaplug-common.dtsi

@@ -96,7 +96,6 @@
 	status = "okay";
 	status = "okay";
 
 
 	ethphy0: ethernet-phy@0 {
 	ethphy0: ethernet-phy@0 {
-		device_type = "ethernet-phy";
 		reg = <0>;
 		reg = <0>;
 	};
 	};
 };
 };

+ 0 - 1
arch/arm/boot/dts/kirkwood-topkick.dts

@@ -208,7 +208,6 @@
 	status = "okay";
 	status = "okay";
 
 
 	ethphy0: ethernet-phy@0 {
 	ethphy0: ethernet-phy@0 {
-		device_type = "ethernet-phy";
 		reg = <0>;
 		reg = <0>;
 	};
 	};
 };
 };

+ 0 - 1
arch/arm/boot/dts/kirkwood-ts219.dtsi

@@ -104,7 +104,6 @@
 	status = "okay";
 	status = "okay";
 
 
 	ethphy0: ethernet-phy {
 	ethphy0: ethernet-phy {
-		device_type = "ethernet-phy";
                 /* overwrite reg property in board file */
                 /* overwrite reg property in board file */
 	};
 	};
 };
 };

+ 0 - 2
arch/arm/boot/dts/kirkwood.dtsi

@@ -253,7 +253,6 @@
 			status = "disabled";
 			status = "disabled";
 
 
 			ethernet0-port@0 {
 			ethernet0-port@0 {
-				device_type = "network";
 				compatible = "marvell,kirkwood-eth-port";
 				compatible = "marvell,kirkwood-eth-port";
 				reg = <0>;
 				reg = <0>;
 				interrupts = <11>;
 				interrupts = <11>;
@@ -273,7 +272,6 @@
 			status = "disabled";
 			status = "disabled";
 
 
 			ethernet1-port@0 {
 			ethernet1-port@0 {
-				device_type = "network";
 				compatible = "marvell,kirkwood-eth-port";
 				compatible = "marvell,kirkwood-eth-port";
 				reg = <0>;
 				reg = <0>;
 				interrupts = <15>;
 				interrupts = <15>;

+ 2 - 2
arch/arm/boot/dts/omap-gpmc-smsc911x.dtsi

@@ -44,8 +44,8 @@
 		gpmc,wr-access-ns = <186>;
 		gpmc,wr-access-ns = <186>;
 		gpmc,cycle2cycle-samecsen;
 		gpmc,cycle2cycle-samecsen;
 		gpmc,cycle2cycle-diffcsen;
 		gpmc,cycle2cycle-diffcsen;
-		vmmc-supply = <&vddvario>;
-		vmmc_aux-supply = <&vdd33a>;
+		vddvario-supply = <&vddvario>;
+		vdd33a-supply = <&vdd33a>;
 		reg-io-width = <4>;
 		reg-io-width = <4>;
 		smsc,save-mac-address;
 		smsc,save-mac-address;
 	};
 	};

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

@@ -215,3 +215,10 @@
 &usbhsehci {
 &usbhsehci {
 	phys = <0 &hsusb2_phy>;
 	phys = <0 &hsusb2_phy>;
 };
 };
+
+&vaux2 {
+	regulator-name = "usb_1v8";
+	regulator-min-microvolt = <1800000>;
+	regulator-max-microvolt = <1800000>;
+	regulator-always-on;
+};

+ 21 - 0
arch/arm/boot/dts/omap3-beagle.dts

@@ -61,6 +61,14 @@
 		vcc-supply = <&hsusb2_power>;
 		vcc-supply = <&hsusb2_power>;
 	};
 	};
 
 
+	sound {
+		compatible = "ti,omap-twl4030";
+		ti,model = "omap3beagle";
+
+		ti,mcbsp = <&mcbsp2>;
+		ti,codec = <&twl_audio>;
+	};
+
 	gpio_keys {
 	gpio_keys {
 		compatible = "gpio-keys";
 		compatible = "gpio-keys";
 
 
@@ -120,6 +128,12 @@
 		reg = <0x48>;
 		reg = <0x48>;
 		interrupts = <7>; /* SYS_NIRQ cascaded to intc */
 		interrupts = <7>; /* SYS_NIRQ cascaded to intc */
 		interrupt-parent = <&intc>;
 		interrupt-parent = <&intc>;
+
+		twl_audio: audio {
+			compatible = "ti,twl4030-audio";
+			codec {
+			};
+		};
 	};
 	};
 };
 };
 
 
@@ -178,3 +192,10 @@
 	mode = <3>;
 	mode = <3>;
 	power = <50>;
 	power = <50>;
 };
 };
+
+&vaux2 {
+	regulator-name = "vdd_ehci";
+	regulator-min-microvolt = <1800000>;
+	regulator-max-microvolt = <1800000>;
+	regulator-always-on;
+};

+ 77 - 8
arch/arm/boot/dts/omap3-igep.dtsi

@@ -1,5 +1,5 @@
 /*
 /*
- * Device Tree Source for IGEP Technology devices
+ * Common device tree for IGEP boards based on AM/DM37x
  *
  *
  * Copyright (C) 2012 Javier Martinez Canillas <javier@collabora.co.uk>
  * Copyright (C) 2012 Javier Martinez Canillas <javier@collabora.co.uk>
  * Copyright (C) 2012 Enric Balletbo i Serra <eballetbo@gmail.com>
  * Copyright (C) 2012 Enric Balletbo i Serra <eballetbo@gmail.com>
@@ -10,7 +10,7 @@
  */
  */
 /dts-v1/;
 /dts-v1/;
 
 
-#include "omap34xx.dtsi"
+#include "omap36xx.dtsi"
 
 
 / {
 / {
 	memory {
 	memory {
@@ -24,6 +24,25 @@
 		ti,mcbsp = <&mcbsp2>;
 		ti,mcbsp = <&mcbsp2>;
 		ti,codec = <&twl_audio>;
 		ti,codec = <&twl_audio>;
 	};
 	};
+
+	vdd33: regulator-vdd33 {
+		compatible = "regulator-fixed";
+		regulator-name = "vdd33";
+		regulator-always-on;
+	};
+
+	lbee1usjyc_vmmc: lbee1usjyc_vmmc {
+		pinctrl-names = "default";
+		pinctrl-0 = <&lbee1usjyc_pins>;
+		compatible = "regulator-fixed";
+		regulator-name = "regulator-lbee1usjyc";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		gpio = <&gpio5 10 GPIO_ACTIVE_HIGH>;	/* gpio_138 WIFI_PDN */
+		startup-delay-us = <10000>;
+		enable-active-high;
+		vin-supply = <&vdd33>;
+	};
 };
 };
 
 
 &omap3_pmx_core {
 &omap3_pmx_core {
@@ -48,6 +67,15 @@
 		>;
 		>;
 	};
 	};
 
 
+	/* WiFi/BT combo */
+	lbee1usjyc_pins: pinmux_lbee1usjyc_pins {
+		pinctrl-single,pins = <
+			0x136 (PIN_OUTPUT | MUX_MODE4)	/* sdmmc2_dat5.gpio_137 */
+			0x138 (PIN_OUTPUT | MUX_MODE4)	/* sdmmc2_dat6.gpio_138 */
+			0x13a (PIN_OUTPUT | MUX_MODE4)	/* sdmmc2_dat7.gpio_139 */
+		>;
+	};
+
 	mcbsp2_pins: pinmux_mcbsp2_pins {
 	mcbsp2_pins: pinmux_mcbsp2_pins {
 		pinctrl-single,pins = <
 		pinctrl-single,pins = <
 			0x10c (PIN_INPUT | MUX_MODE0)		/* mcbsp2_fsx.mcbsp2_fsx */
 			0x10c (PIN_INPUT | MUX_MODE0)		/* mcbsp2_fsx.mcbsp2_fsx */
@@ -65,10 +93,17 @@
 			0x11a (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_dat1.sdmmc1_dat1 */
 			0x11a (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_dat1.sdmmc1_dat1 */
 			0x11c (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_dat2.sdmmc1_dat2 */
 			0x11c (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_dat2.sdmmc1_dat2 */
 			0x11e (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_dat3.sdmmc1_dat3 */
 			0x11e (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_dat3.sdmmc1_dat3 */
-			0x120 (PIN_INPUT | MUX_MODE0)		/* sdmmc1_dat4.sdmmc1_dat4 */
-			0x122 (PIN_INPUT | MUX_MODE0)		/* sdmmc1_dat5.sdmmc1_dat5 */
-			0x124 (PIN_INPUT | MUX_MODE0)		/* sdmmc1_dat6.sdmmc1_dat6 */
-			0x126 (PIN_INPUT | MUX_MODE0)		/* sdmmc1_dat7.sdmmc1_dat7 */
+		>;
+	};
+
+	mmc2_pins: pinmux_mmc2_pins {
+		pinctrl-single,pins = <
+			0x128 (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_clk.sdmmc2_clk */
+			0x12a (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_cmd.sdmmc2_cmd */
+			0x12c (PIN_INPUT_PULLUP | MUX_MODE0) 	/* sdmmc2_dat0.sdmmc2_dat0 */
+			0x12e (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat1.sdmmc2_dat1 */
+			0x130 (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat2.sdmmc2_dat2 */
+			0x132 (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat3.sdmmc2_dat3 */
 		>;
 		>;
 	};
 	};
 
 
@@ -78,10 +113,33 @@
 		>;
 		>;
 	};
 	};
 
 
+	i2c1_pins: pinmux_i2c1_pins {
+		pinctrl-single,pins = <
+			0x18a (PIN_INPUT | MUX_MODE0)   /* i2c1_scl.i2c1_scl */
+			0x18c (PIN_INPUT | MUX_MODE0)   /* i2c1_sda.i2c1_sda */
+		>;
+	};
+
+	i2c2_pins: pinmux_i2c2_pins {
+		pinctrl-single,pins = <
+			0x18e (PIN_INPUT | MUX_MODE0)   /* i2c2_scl.i2c2_scl */
+			0x190 (PIN_INPUT | MUX_MODE0)   /* i2c2_sda.i2c2_sda */
+		>;
+	};
+
+	i2c3_pins: pinmux_i2c3_pins {
+		pinctrl-single,pins = <
+			0x192 (PIN_INPUT | MUX_MODE0)   /* i2c3_scl.i2c3_scl */
+			0x194 (PIN_INPUT | MUX_MODE0)   /* i2c3_sda.i2c3_sda */
+		>;
+	};
+
 	leds_pins: pinmux_leds_pins { };
 	leds_pins: pinmux_leds_pins { };
 };
 };
 
 
 &i2c1 {
 &i2c1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c1_pins>;
 	clock-frequency = <2600000>;
 	clock-frequency = <2600000>;
 
 
 	twl: twl@48 {
 	twl: twl@48 {
@@ -101,9 +159,16 @@
 #include "twl4030_omap3.dtsi"
 #include "twl4030_omap3.dtsi"
 
 
 &i2c2 {
 &i2c2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c2_pins>;
 	clock-frequency = <400000>;
 	clock-frequency = <400000>;
 };
 };
 
 
+&i2c3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c3_pins>;
+};
+
 &mcbsp2 {
 &mcbsp2 {
 	pinctrl-names = "default";
 	pinctrl-names = "default";
 	pinctrl-0 = <&mcbsp2_pins>;
 	pinctrl-0 = <&mcbsp2_pins>;
@@ -114,11 +179,15 @@
       pinctrl-0 = <&mmc1_pins>;
       pinctrl-0 = <&mmc1_pins>;
       vmmc-supply = <&vmmc1>;
       vmmc-supply = <&vmmc1>;
       vmmc_aux-supply = <&vsim>;
       vmmc_aux-supply = <&vsim>;
-      bus-width = <8>;
+      bus-width = <4>;
 };
 };
 
 
 &mmc2 {
 &mmc2 {
-	status = "disabled";
+	pinctrl-names = "default";
+	pinctrl-0 = <&mmc2_pins>;
+	vmmc-supply = <&lbee1usjyc_vmmc>;
+	bus-width = <4>;
+	non-removable;
 };
 };
 
 
 &mmc3 {
 &mmc3 {

+ 48 - 2
arch/arm/boot/dts/omap3-igep0020.dts

@@ -1,5 +1,5 @@
 /*
 /*
- * Device Tree Source for IGEPv2 board
+ * Device Tree Source for IGEPv2 Rev. (TI OMAP AM/DM37x)
  *
  *
  * Copyright (C) 2012 Javier Martinez Canillas <javier@collabora.co.uk>
  * Copyright (C) 2012 Javier Martinez Canillas <javier@collabora.co.uk>
  * Copyright (C) 2012 Enric Balletbo i Serra <eballetbo@gmail.com>
  * Copyright (C) 2012 Enric Balletbo i Serra <eballetbo@gmail.com>
@@ -13,7 +13,7 @@
 #include "omap-gpmc-smsc911x.dtsi"
 #include "omap-gpmc-smsc911x.dtsi"
 
 
 / {
 / {
-	model = "IGEPv2";
+	model = "IGEPv2 (TI OMAP AM/DM37x)";
 	compatible = "isee,omap3-igep0020", "ti,omap3";
 	compatible = "isee,omap3-igep0020", "ti,omap3";
 
 
 	leds {
 	leds {
@@ -67,6 +67,8 @@
 	pinctrl-names = "default";
 	pinctrl-names = "default";
 	pinctrl-0 = <
 	pinctrl-0 = <
 		&hsusbb1_pins
 		&hsusbb1_pins
+		&tfp410_pins
+		&dss_pins
 	>;
 	>;
 
 
 	hsusbb1_pins: pinmux_hsusbb1_pins {
 	hsusbb1_pins: pinmux_hsusbb1_pins {
@@ -85,6 +87,45 @@
 			0x5ba (PIN_INPUT_PULLDOWN | MUX_MODE3)	/* etk_d7.hsusb1_data3 */
 			0x5ba (PIN_INPUT_PULLDOWN | MUX_MODE3)	/* etk_d7.hsusb1_data3 */
 		>;
 		>;
 	};
 	};
+
+	tfp410_pins: tfp410_dvi_pins {
+		pinctrl-single,pins = <
+			0x196 (PIN_OUTPUT | MUX_MODE4)   /* hdq_sio.gpio_170 */
+		>;
+	};
+
+	dss_pins: pinmux_dss_dvi_pins {
+		pinctrl-single,pins = <
+			0x0a4 (PIN_OUTPUT | MUX_MODE0)   /* dss_pclk.dss_pclk */
+			0x0a6 (PIN_OUTPUT | MUX_MODE0)   /* dss_hsync.dss_hsync */
+			0x0a8 (PIN_OUTPUT | MUX_MODE0)   /* dss_vsync.dss_vsync */
+			0x0aa (PIN_OUTPUT | MUX_MODE0)   /* dss_acbias.dss_acbias */
+			0x0ac (PIN_OUTPUT | MUX_MODE0)   /* dss_data0.dss_data0 */
+			0x0ae (PIN_OUTPUT | MUX_MODE0)   /* dss_data1.dss_data1 */
+			0x0b0 (PIN_OUTPUT | MUX_MODE0)   /* dss_data2.dss_data2 */
+			0x0b2 (PIN_OUTPUT | MUX_MODE0)   /* dss_data3.dss_data3 */
+			0x0b4 (PIN_OUTPUT | MUX_MODE0)   /* dss_data4.dss_data4 */
+			0x0b6 (PIN_OUTPUT | MUX_MODE0)   /* dss_data5.dss_data5 */
+			0x0b8 (PIN_OUTPUT | MUX_MODE0)   /* dss_data6.dss_data6 */
+			0x0ba (PIN_OUTPUT | MUX_MODE0)   /* dss_data7.dss_data7 */
+			0x0bc (PIN_OUTPUT | MUX_MODE0)   /* dss_data8.dss_data8 */
+			0x0be (PIN_OUTPUT | MUX_MODE0)   /* dss_data9.dss_data9 */
+			0x0c0 (PIN_OUTPUT | MUX_MODE0)   /* dss_data10.dss_data10 */
+			0x0c2 (PIN_OUTPUT | MUX_MODE0)   /* dss_data11.dss_data11 */
+			0x0c4 (PIN_OUTPUT | MUX_MODE0)   /* dss_data12.dss_data12 */
+			0x0c6 (PIN_OUTPUT | MUX_MODE0)   /* dss_data13.dss_data13 */
+			0x0c8 (PIN_OUTPUT | MUX_MODE0)   /* dss_data14.dss_data14 */
+			0x0ca (PIN_OUTPUT | MUX_MODE0)   /* dss_data15.dss_data15 */
+			0x0cc (PIN_OUTPUT | MUX_MODE0)   /* dss_data16.dss_data16 */
+			0x0ce (PIN_OUTPUT | MUX_MODE0)   /* dss_data17.dss_data17 */
+			0x0d0 (PIN_OUTPUT | MUX_MODE0)   /* dss_data18.dss_data18 */
+			0x0d2 (PIN_OUTPUT | MUX_MODE0)   /* dss_data19.dss_data19 */
+			0x0d4 (PIN_OUTPUT | MUX_MODE0)   /* dss_data20.dss_data20 */
+			0x0d6 (PIN_OUTPUT | MUX_MODE0)   /* dss_data21.dss_data21 */
+			0x0d8 (PIN_OUTPUT | MUX_MODE0)   /* dss_data22.dss_data22 */
+			0x0da (PIN_OUTPUT | MUX_MODE0)   /* dss_data23.dss_data23 */
+		>;
+	};
 };
 };
 
 
 &leds_pins {
 &leds_pins {
@@ -174,3 +215,8 @@
 &usbhsehci {
 &usbhsehci {
 	phys = <&hsusb1_phy>;
 	phys = <&hsusb1_phy>;
 };
 };
+
+&vpll2 {
+        /* Needed for DSS */
+        regulator-name = "vdds_dsi";
+};

+ 2 - 2
arch/arm/boot/dts/omap3-igep0030.dts

@@ -1,5 +1,5 @@
 /*
 /*
- * Device Tree Source for IGEP COM Module
+ * Device Tree Source for IGEP COM MODULE (TI OMAP AM/DM37x)
  *
  *
  * Copyright (C) 2012 Javier Martinez Canillas <javier@collabora.co.uk>
  * Copyright (C) 2012 Javier Martinez Canillas <javier@collabora.co.uk>
  * Copyright (C) 2012 Enric Balletbo i Serra <eballetbo@gmail.com>
  * Copyright (C) 2012 Enric Balletbo i Serra <eballetbo@gmail.com>
@@ -12,7 +12,7 @@
 #include "omap3-igep.dtsi"
 #include "omap3-igep.dtsi"
 
 
 / {
 / {
-	model = "IGEP COM Module";
+	model = "IGEP COM MODULE (TI OMAP AM/DM37x)";
 	compatible = "isee,omap3-igep0030", "ti,omap3";
 	compatible = "isee,omap3-igep0030", "ti,omap3";
 
 
 	leds {
 	leds {

+ 23 - 2
arch/arm/boot/dts/omap3-n900.dts

@@ -9,7 +9,7 @@
 
 
 /dts-v1/;
 /dts-v1/;
 
 
-#include "omap34xx.dtsi"
+#include "omap34xx-hs.dtsi"
 
 
 / {
 / {
 	model = "Nokia N900";
 	model = "Nokia N900";
@@ -125,6 +125,21 @@
 		>;
 		>;
 	};
 	};
 
 
+	mmc2_pins: pinmux_mmc2_pins {
+		pinctrl-single,pins = <
+			0x128 (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_clk */
+			0x12a (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_cmd */
+			0x12c (PIN_INPUT_PULLUP | MUX_MODE0) 	/* sdmmc2_dat0 */
+			0x12e (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat1 */
+			0x130 (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat2 */
+			0x132 (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat3 */
+			0x134 (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat4 */
+			0x136 (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat5 */
+			0x138 (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat6 */
+			0x13a (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat7 */
+		>;
+	};
+
 	display_pins: pinmux_display_pins {
 	display_pins: pinmux_display_pins {
 		pinctrl-single,pins = <
 		pinctrl-single,pins = <
 			0x0d4 (PIN_OUTPUT | MUX_MODE4)		/* RX51_LCD_RESET_GPIO */
 			0x0d4 (PIN_OUTPUT | MUX_MODE4)		/* RX51_LCD_RESET_GPIO */
@@ -358,8 +373,14 @@
 	cd-gpios = <&gpio6 0 GPIO_ACTIVE_HIGH>; /* 160 */
 	cd-gpios = <&gpio6 0 GPIO_ACTIVE_HIGH>; /* 160 */
 };
 };
 
 
+/* most boards use vaux3, only some old versions use vmmc2 instead */
 &mmc2 {
 &mmc2 {
-	status = "disabled";
+	pinctrl-names = "default";
+	pinctrl-0 = <&mmc2_pins>;
+	vmmc-supply = <&vaux3>;
+	vmmc_aux-supply = <&vsim>;
+	bus-width = <8>;
+	non-removable;
 };
 };
 
 
 &mmc3 {
 &mmc3 {

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

@@ -8,7 +8,7 @@
  * published by the Free Software Foundation.
  * published by the Free Software Foundation.
  */
  */
 
 
-#include "omap36xx.dtsi"
+#include "omap36xx-hs.dtsi"
 
 
 / {
 / {
 	cpus {
 	cpus {

+ 42 - 0
arch/arm/boot/dts/omap3.dtsi

@@ -82,6 +82,13 @@
 		ranges;
 		ranges;
 		ti,hwmods = "l3_main";
 		ti,hwmods = "l3_main";
 
 
+		aes: aes@480c5000 {
+			compatible = "ti,omap3-aes";
+			ti,hwmods = "aes";
+			reg = <0x480c5000 0x50>;
+			interrupts = <0>;
+		};
+
 		counter32k: counter@48320000 {
 		counter32k: counter@48320000 {
 			compatible = "ti,omap-counter32k";
 			compatible = "ti,omap-counter32k";
 			reg = <0x48320000 0x20>;
 			reg = <0x48320000 0x20>;
@@ -260,6 +267,13 @@
 			ti,hwmods = "i2c3";
 			ti,hwmods = "i2c3";
 		};
 		};
 
 
+		mailbox: mailbox@48094000 {
+			compatible = "ti,omap3-mailbox";
+			ti,hwmods = "mailbox";
+			reg = <0x48094000 0x200>;
+			interrupts = <26>;
+		};
+
 		mcspi1: spi@48098000 {
 		mcspi1: spi@48098000 {
 			compatible = "ti,omap2-mcspi";
 			compatible = "ti,omap2-mcspi";
 			reg = <0x48098000 0x100>;
 			reg = <0x48098000 0x100>;
@@ -357,6 +371,13 @@
 			dma-names = "tx", "rx";
 			dma-names = "tx", "rx";
 		};
 		};
 
 
+		mmu_isp: mmu@480bd400 {
+			compatible = "ti,omap3-mmu-isp";
+			ti,hwmods = "mmu_isp";
+			reg = <0x480bd400 0x80>;
+			interrupts = <8>;
+		};
+
 		wdt2: wdt@48314000 {
 		wdt2: wdt@48314000 {
 			compatible = "ti,omap3-wdt";
 			compatible = "ti,omap3-wdt";
 			reg = <0x48314000 0x80>;
 			reg = <0x48314000 0x80>;
@@ -442,6 +463,27 @@
 			dma-names = "tx", "rx";
 			dma-names = "tx", "rx";
 		};
 		};
 
 
+		sham: sham@480c3000 {
+			compatible = "ti,omap3-sham";
+			ti,hwmods = "sham";
+			reg = <0x480c3000 0x64>;
+			interrupts = <49>;
+		};
+
+		smartreflex_core: smartreflex@480cb000 {
+			compatible = "ti,omap3-smartreflex-core";
+			ti,hwmods = "smartreflex_core";
+			reg = <0x480cb000 0x400>;
+			interrupts = <19>;
+		};
+
+		smartreflex_mpu_iva: smartreflex@480c9000 {
+			compatible = "ti,omap3-smartreflex-iva";
+			ti,hwmods = "smartreflex_mpu_iva";
+			reg = <0x480c9000 0x400>;
+			interrupts = <18>;
+		};
+
 		timer1: timer@48318000 {
 		timer1: timer@48318000 {
 			compatible = "ti,omap3430-timer";
 			compatible = "ti,omap3430-timer";
 			reg = <0x48318000 0x400>;
 			reg = <0x48318000 0x400>;

+ 16 - 0
arch/arm/boot/dts/omap34xx-hs.dtsi

@@ -0,0 +1,16 @@
+/* Disabled modules for secure omaps */
+
+#include "omap34xx.dtsi"
+
+/* Secure omaps have some devices inaccessible depending on the firmware */
+&aes {
+	status = "disabled";
+};
+
+&sham {
+	status = "disabled";
+};
+
+&timer12 {
+	status = "disabled";
+};

+ 16 - 0
arch/arm/boot/dts/omap36xx-hs.dtsi

@@ -0,0 +1,16 @@
+/* Disabled modules for secure omaps */
+
+#include "omap36xx.dtsi"
+
+/* Secure omaps have some devices inaccessible depending on the firmware */
+&aes {
+	status = "disabled";
+};
+
+&sham {
+	status = "disabled";
+};
+
+&timer12 {
+	status = "disabled";
+};

+ 10 - 10
arch/arm/boot/dts/omap4-panda-common.dtsi

@@ -246,15 +246,6 @@
 			0xf0 (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c4_sda */
 			0xf0 (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c4_sda */
 		>;
 		>;
 	};
 	};
-};
-
-&omap4_pmx_wkup {
-	led_wkgpio_pins: pinmux_leds_wkpins {
-		pinctrl-single,pins = <
-			0x1a (PIN_OUTPUT | MUX_MODE3)	/* gpio_wk7 */
-			0x1c (PIN_OUTPUT | MUX_MODE3)	/* gpio_wk8 */
-		>;
-	};
 
 
 	/*
 	/*
 	 * wl12xx GPIO outputs for WLAN_EN, BT_EN, FM_EN, BT_WAKEUP
 	 * wl12xx GPIO outputs for WLAN_EN, BT_EN, FM_EN, BT_WAKEUP
@@ -274,7 +265,7 @@
 		pinctrl-single,pins = <
 		pinctrl-single,pins = <
 			0x38 (PIN_INPUT | MUX_MODE3)		/* gpmc_ncs2.gpio_52 */
 			0x38 (PIN_INPUT | MUX_MODE3)		/* gpmc_ncs2.gpio_52 */
 			0x3a (PIN_INPUT | MUX_MODE3)		/* gpmc_ncs3.gpio_53 */
 			0x3a (PIN_INPUT | MUX_MODE3)		/* gpmc_ncs3.gpio_53 */
-			0x108 (PIN_OUTPUT | MUX_MODE0)		/* sdmmc5_clk.sdmmc5_clk */
+			0x108 (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc5_clk.sdmmc5_clk */
 			0x10a (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc5_cmd.sdmmc5_cmd */
 			0x10a (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc5_cmd.sdmmc5_cmd */
 			0x10c (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc5_dat0.sdmmc5_dat0 */
 			0x10c (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc5_dat0.sdmmc5_dat0 */
 			0x10e (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc5_dat1.sdmmc5_dat1 */
 			0x10e (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc5_dat1.sdmmc5_dat1 */
@@ -284,6 +275,15 @@
 	};
 	};
 };
 };
 
 
+&omap4_pmx_wkup {
+	led_wkgpio_pins: pinmux_leds_wkpins {
+		pinctrl-single,pins = <
+			0x1a (PIN_OUTPUT | MUX_MODE3)	/* gpio_wk7 */
+			0x1c (PIN_OUTPUT | MUX_MODE3)	/* gpio_wk8 */
+		>;
+	};
+};
+
 &i2c1 {
 &i2c1 {
 	pinctrl-names = "default";
 	pinctrl-names = "default";
 	pinctrl-0 = <&i2c1_pins>;
 	pinctrl-0 = <&i2c1_pins>;

+ 6 - 6
arch/arm/boot/dts/omap4-sdp.dts

@@ -300,12 +300,12 @@
 	wl12xx_pins: pinmux_wl12xx_pins {
 	wl12xx_pins: pinmux_wl12xx_pins {
 		pinctrl-single,pins = <
 		pinctrl-single,pins = <
 			0x3a (PIN_INPUT | MUX_MODE3)		/* gpmc_ncs3.gpio_53 */
 			0x3a (PIN_INPUT | MUX_MODE3)		/* gpmc_ncs3.gpio_53 */
-			0x108 (PIN_OUTPUT | MUX_MODE3)		/* sdmmc5_clk.sdmmc5_clk */
-			0x10a (PIN_INPUT_PULLUP | MUX_MODE3)	/* sdmmc5_cmd.sdmmc5_cmd */
-			0x10c (PIN_INPUT_PULLUP | MUX_MODE3)	/* sdmmc5_dat0.sdmmc5_dat0 */
-			0x10e (PIN_INPUT_PULLUP | MUX_MODE3)	/* sdmmc5_dat1.sdmmc5_dat1 */
-			0x110 (PIN_INPUT_PULLUP | MUX_MODE3)	/* sdmmc5_dat2.sdmmc5_dat2 */
-			0x112 (PIN_INPUT_PULLUP | MUX_MODE3)	/* sdmmc5_dat3.sdmmc5_dat3 */
+			0x108 (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc5_clk.sdmmc5_clk */
+			0x10a (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc5_cmd.sdmmc5_cmd */
+			0x10c (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc5_dat0.sdmmc5_dat0 */
+			0x10e (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc5_dat1.sdmmc5_dat1 */
+			0x110 (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc5_dat2.sdmmc5_dat2 */
+			0x112 (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc5_dat3.sdmmc5_dat3 */
 		>;
 		>;
 	};
 	};
 };
 };

+ 0 - 1
arch/arm/boot/dts/orion5x-lacie-ethernet-disk-mini-v2.dts

@@ -58,7 +58,6 @@
 	status = "okay";
 	status = "okay";
 
 
 	ethphy: ethernet-phy {
 	ethphy: ethernet-phy {
-		device-type = "ethernet-phy";
 		reg = <8>;
 		reg = <8>;
 	};
 	};
 };
 };

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

@@ -154,7 +154,6 @@
 			status = "disabled";
 			status = "disabled";
 
 
 			ethernet-port@0 {
 			ethernet-port@0 {
-				device_type = "network";
 				compatible = "marvell,orion-eth-port";
 				compatible = "marvell,orion-eth-port";
 				reg = <0>;
 				reg = <0>;
 				/* overwrite MAC address in bootloader */
 				/* overwrite MAC address in bootloader */

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

@@ -87,9 +87,9 @@
 		interrupts = <1 9 0xf04>;
 		interrupts = <1 9 0xf04>;
 	};
 	};
 
 
-	gpio0: gpio@ffc40000 {
+	gpio0: gpio@e6050000 {
 		compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar";
 		compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar";
-		reg = <0 0xffc40000 0 0x2c>;
+		reg = <0 0xe6050000 0 0x50>;
 		interrupt-parent = <&gic>;
 		interrupt-parent = <&gic>;
 		interrupts = <0 4 0x4>;
 		interrupts = <0 4 0x4>;
 		#gpio-cells = <2>;
 		#gpio-cells = <2>;
@@ -99,9 +99,9 @@
 		interrupt-controller;
 		interrupt-controller;
 	};
 	};
 
 
-	gpio1: gpio@ffc41000 {
+	gpio1: gpio@e6051000 {
 		compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar";
 		compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar";
-		reg = <0 0xffc41000 0 0x2c>;
+		reg = <0 0xe6051000 0 0x50>;
 		interrupt-parent = <&gic>;
 		interrupt-parent = <&gic>;
 		interrupts = <0 5 0x4>;
 		interrupts = <0 5 0x4>;
 		#gpio-cells = <2>;
 		#gpio-cells = <2>;
@@ -111,9 +111,9 @@
 		interrupt-controller;
 		interrupt-controller;
 	};
 	};
 
 
-	gpio2: gpio@ffc42000 {
+	gpio2: gpio@e6052000 {
 		compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar";
 		compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar";
-		reg = <0 0xffc42000 0 0x2c>;
+		reg = <0 0xe6052000 0 0x50>;
 		interrupt-parent = <&gic>;
 		interrupt-parent = <&gic>;
 		interrupts = <0 6 0x4>;
 		interrupts = <0 6 0x4>;
 		#gpio-cells = <2>;
 		#gpio-cells = <2>;
@@ -123,9 +123,9 @@
 		interrupt-controller;
 		interrupt-controller;
 	};
 	};
 
 
-	gpio3: gpio@ffc43000 {
+	gpio3: gpio@e6053000 {
 		compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar";
 		compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar";
-		reg = <0 0xffc43000 0 0x2c>;
+		reg = <0 0xe6053000 0 0x50>;
 		interrupt-parent = <&gic>;
 		interrupt-parent = <&gic>;
 		interrupts = <0 7 0x4>;
 		interrupts = <0 7 0x4>;
 		#gpio-cells = <2>;
 		#gpio-cells = <2>;
@@ -135,9 +135,9 @@
 		interrupt-controller;
 		interrupt-controller;
 	};
 	};
 
 
-	gpio4: gpio@ffc44000 {
+	gpio4: gpio@e6054000 {
 		compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar";
 		compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar";
-		reg = <0 0xffc44000 0 0x2c>;
+		reg = <0 0xe6054000 0 0x50>;
 		interrupt-parent = <&gic>;
 		interrupt-parent = <&gic>;
 		interrupts = <0 8 0x4>;
 		interrupts = <0 8 0x4>;
 		#gpio-cells = <2>;
 		#gpio-cells = <2>;
@@ -147,9 +147,9 @@
 		interrupt-controller;
 		interrupt-controller;
 	};
 	};
 
 
-	gpio5: gpio@ffc45000 {
+	gpio5: gpio@e6055000 {
 		compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar";
 		compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar";
-		reg = <0 0xffc45000 0 0x2c>;
+		reg = <0 0xe6055000 0 0x50>;
 		interrupt-parent = <&gic>;
 		interrupt-parent = <&gic>;
 		interrupts = <0 9 0x4>;
 		interrupts = <0 9 0x4>;
 		#gpio-cells = <2>;
 		#gpio-cells = <2>;
@@ -241,7 +241,7 @@
 
 
 	sdhi0: sdhi@ee100000 {
 	sdhi0: sdhi@ee100000 {
 		compatible = "renesas,sdhi-r8a7790";
 		compatible = "renesas,sdhi-r8a7790";
-		reg = <0 0xee100000 0 0x100>;
+		reg = <0 0xee100000 0 0x200>;
 		interrupt-parent = <&gic>;
 		interrupt-parent = <&gic>;
 		interrupts = <0 165 4>;
 		interrupts = <0 165 4>;
 		cap-sd-highspeed;
 		cap-sd-highspeed;
@@ -250,7 +250,7 @@
 
 
 	sdhi1: sdhi@ee120000 {
 	sdhi1: sdhi@ee120000 {
 		compatible = "renesas,sdhi-r8a7790";
 		compatible = "renesas,sdhi-r8a7790";
-		reg = <0 0xee120000 0 0x100>;
+		reg = <0 0xee120000 0 0x200>;
 		interrupt-parent = <&gic>;
 		interrupt-parent = <&gic>;
 		interrupts = <0 166 4>;
 		interrupts = <0 166 4>;
 		cap-sd-highspeed;
 		cap-sd-highspeed;

+ 4 - 3
arch/arm/boot/dts/socfpga.dtsi

@@ -245,14 +245,14 @@
 
 
 					mpu_periph_clk: mpu_periph_clk {
 					mpu_periph_clk: mpu_periph_clk {
 						#clock-cells = <0>;
 						#clock-cells = <0>;
-						compatible = "altr,socfpga-gate-clk";
+						compatible = "altr,socfpga-perip-clk";
 						clocks = <&mpuclk>;
 						clocks = <&mpuclk>;
 						fixed-divider = <4>;
 						fixed-divider = <4>;
 					};
 					};
 
 
 					mpu_l2_ram_clk: mpu_l2_ram_clk {
 					mpu_l2_ram_clk: mpu_l2_ram_clk {
 						#clock-cells = <0>;
 						#clock-cells = <0>;
-						compatible = "altr,socfpga-gate-clk";
+						compatible = "altr,socfpga-perip-clk";
 						clocks = <&mpuclk>;
 						clocks = <&mpuclk>;
 						fixed-divider = <2>;
 						fixed-divider = <2>;
 					};
 					};
@@ -266,8 +266,9 @@
 
 
 					l3_main_clk: l3_main_clk {
 					l3_main_clk: l3_main_clk {
 						#clock-cells = <0>;
 						#clock-cells = <0>;
-						compatible = "altr,socfpga-gate-clk";
+						compatible = "altr,socfpga-perip-clk";
 						clocks = <&mainclk>;
 						clocks = <&mainclk>;
+						fixed-divider = <1>;
 					};
 					};
 
 
 					l3_mp_clk: l3_mp_clk {
 					l3_mp_clk: l3_mp_clk {

+ 15 - 12
arch/arm/boot/dts/sun6i-a31.dtsi

@@ -193,7 +193,10 @@
 		pio: pinctrl@01c20800 {
 		pio: pinctrl@01c20800 {
 			compatible = "allwinner,sun6i-a31-pinctrl";
 			compatible = "allwinner,sun6i-a31-pinctrl";
 			reg = <0x01c20800 0x400>;
 			reg = <0x01c20800 0x400>;
-			interrupts = <0 11 1>, <0 15 1>, <0 16 1>, <0 17 1>;
+			interrupts = <0 11 4>,
+				     <0 15 4>,
+				     <0 16 4>,
+				     <0 17 4>;
 			clocks = <&apb1_gates 5>;
 			clocks = <&apb1_gates 5>;
 			gpio-controller;
 			gpio-controller;
 			interrupt-controller;
 			interrupt-controller;
@@ -212,11 +215,11 @@
 		timer@01c20c00 {
 		timer@01c20c00 {
 			compatible = "allwinner,sun4i-timer";
 			compatible = "allwinner,sun4i-timer";
 			reg = <0x01c20c00 0xa0>;
 			reg = <0x01c20c00 0xa0>;
-			interrupts = <0 18 1>,
-				     <0 19 1>,
-				     <0 20 1>,
-				     <0 21 1>,
-				     <0 22 1>;
+			interrupts = <0 18 4>,
+				     <0 19 4>,
+				     <0 20 4>,
+				     <0 21 4>,
+				     <0 22 4>;
 			clocks = <&osc24M>;
 			clocks = <&osc24M>;
 		};
 		};
 
 
@@ -228,7 +231,7 @@
 		uart0: serial@01c28000 {
 		uart0: serial@01c28000 {
 			compatible = "snps,dw-apb-uart";
 			compatible = "snps,dw-apb-uart";
 			reg = <0x01c28000 0x400>;
 			reg = <0x01c28000 0x400>;
-			interrupts = <0 0 1>;
+			interrupts = <0 0 4>;
 			reg-shift = <2>;
 			reg-shift = <2>;
 			reg-io-width = <4>;
 			reg-io-width = <4>;
 			clocks = <&apb2_gates 16>;
 			clocks = <&apb2_gates 16>;
@@ -238,7 +241,7 @@
 		uart1: serial@01c28400 {
 		uart1: serial@01c28400 {
 			compatible = "snps,dw-apb-uart";
 			compatible = "snps,dw-apb-uart";
 			reg = <0x01c28400 0x400>;
 			reg = <0x01c28400 0x400>;
-			interrupts = <0 1 1>;
+			interrupts = <0 1 4>;
 			reg-shift = <2>;
 			reg-shift = <2>;
 			reg-io-width = <4>;
 			reg-io-width = <4>;
 			clocks = <&apb2_gates 17>;
 			clocks = <&apb2_gates 17>;
@@ -248,7 +251,7 @@
 		uart2: serial@01c28800 {
 		uart2: serial@01c28800 {
 			compatible = "snps,dw-apb-uart";
 			compatible = "snps,dw-apb-uart";
 			reg = <0x01c28800 0x400>;
 			reg = <0x01c28800 0x400>;
-			interrupts = <0 2 1>;
+			interrupts = <0 2 4>;
 			reg-shift = <2>;
 			reg-shift = <2>;
 			reg-io-width = <4>;
 			reg-io-width = <4>;
 			clocks = <&apb2_gates 18>;
 			clocks = <&apb2_gates 18>;
@@ -258,7 +261,7 @@
 		uart3: serial@01c28c00 {
 		uart3: serial@01c28c00 {
 			compatible = "snps,dw-apb-uart";
 			compatible = "snps,dw-apb-uart";
 			reg = <0x01c28c00 0x400>;
 			reg = <0x01c28c00 0x400>;
-			interrupts = <0 3 1>;
+			interrupts = <0 3 4>;
 			reg-shift = <2>;
 			reg-shift = <2>;
 			reg-io-width = <4>;
 			reg-io-width = <4>;
 			clocks = <&apb2_gates 19>;
 			clocks = <&apb2_gates 19>;
@@ -268,7 +271,7 @@
 		uart4: serial@01c29000 {
 		uart4: serial@01c29000 {
 			compatible = "snps,dw-apb-uart";
 			compatible = "snps,dw-apb-uart";
 			reg = <0x01c29000 0x400>;
 			reg = <0x01c29000 0x400>;
-			interrupts = <0 4 1>;
+			interrupts = <0 4 4>;
 			reg-shift = <2>;
 			reg-shift = <2>;
 			reg-io-width = <4>;
 			reg-io-width = <4>;
 			clocks = <&apb2_gates 20>;
 			clocks = <&apb2_gates 20>;
@@ -278,7 +281,7 @@
 		uart5: serial@01c29400 {
 		uart5: serial@01c29400 {
 			compatible = "snps,dw-apb-uart";
 			compatible = "snps,dw-apb-uart";
 			reg = <0x01c29400 0x400>;
 			reg = <0x01c29400 0x400>;
-			interrupts = <0 5 1>;
+			interrupts = <0 5 4>;
 			reg-shift = <2>;
 			reg-shift = <2>;
 			reg-io-width = <4>;
 			reg-io-width = <4>;
 			clocks = <&apb2_gates 21>;
 			clocks = <&apb2_gates 21>;

+ 21 - 21
arch/arm/boot/dts/sun7i-a20.dtsi

@@ -170,7 +170,7 @@
 		emac: ethernet@01c0b000 {
 		emac: ethernet@01c0b000 {
 			compatible = "allwinner,sun4i-emac";
 			compatible = "allwinner,sun4i-emac";
 			reg = <0x01c0b000 0x1000>;
 			reg = <0x01c0b000 0x1000>;
-			interrupts = <0 55 1>;
+			interrupts = <0 55 4>;
 			clocks = <&ahb_gates 17>;
 			clocks = <&ahb_gates 17>;
 			status = "disabled";
 			status = "disabled";
 		};
 		};
@@ -186,7 +186,7 @@
 		pio: pinctrl@01c20800 {
 		pio: pinctrl@01c20800 {
 			compatible = "allwinner,sun7i-a20-pinctrl";
 			compatible = "allwinner,sun7i-a20-pinctrl";
 			reg = <0x01c20800 0x400>;
 			reg = <0x01c20800 0x400>;
-			interrupts = <0 28 1>;
+			interrupts = <0 28 4>;
 			clocks = <&apb0_gates 5>;
 			clocks = <&apb0_gates 5>;
 			gpio-controller;
 			gpio-controller;
 			interrupt-controller;
 			interrupt-controller;
@@ -251,12 +251,12 @@
 		timer@01c20c00 {
 		timer@01c20c00 {
 			compatible = "allwinner,sun4i-timer";
 			compatible = "allwinner,sun4i-timer";
 			reg = <0x01c20c00 0x90>;
 			reg = <0x01c20c00 0x90>;
-			interrupts = <0 22 1>,
-				     <0 23 1>,
-				     <0 24 1>,
-				     <0 25 1>,
-				     <0 67 1>,
-				     <0 68 1>;
+			interrupts = <0 22 4>,
+				     <0 23 4>,
+				     <0 24 4>,
+				     <0 25 4>,
+				     <0 67 4>,
+				     <0 68 4>;
 			clocks = <&osc24M>;
 			clocks = <&osc24M>;
 		};
 		};
 
 
@@ -273,7 +273,7 @@
 		uart0: serial@01c28000 {
 		uart0: serial@01c28000 {
 			compatible = "snps,dw-apb-uart";
 			compatible = "snps,dw-apb-uart";
 			reg = <0x01c28000 0x400>;
 			reg = <0x01c28000 0x400>;
-			interrupts = <0 1 1>;
+			interrupts = <0 1 4>;
 			reg-shift = <2>;
 			reg-shift = <2>;
 			reg-io-width = <4>;
 			reg-io-width = <4>;
 			clocks = <&apb1_gates 16>;
 			clocks = <&apb1_gates 16>;
@@ -283,7 +283,7 @@
 		uart1: serial@01c28400 {
 		uart1: serial@01c28400 {
 			compatible = "snps,dw-apb-uart";
 			compatible = "snps,dw-apb-uart";
 			reg = <0x01c28400 0x400>;
 			reg = <0x01c28400 0x400>;
-			interrupts = <0 2 1>;
+			interrupts = <0 2 4>;
 			reg-shift = <2>;
 			reg-shift = <2>;
 			reg-io-width = <4>;
 			reg-io-width = <4>;
 			clocks = <&apb1_gates 17>;
 			clocks = <&apb1_gates 17>;
@@ -293,7 +293,7 @@
 		uart2: serial@01c28800 {
 		uart2: serial@01c28800 {
 			compatible = "snps,dw-apb-uart";
 			compatible = "snps,dw-apb-uart";
 			reg = <0x01c28800 0x400>;
 			reg = <0x01c28800 0x400>;
-			interrupts = <0 3 1>;
+			interrupts = <0 3 4>;
 			reg-shift = <2>;
 			reg-shift = <2>;
 			reg-io-width = <4>;
 			reg-io-width = <4>;
 			clocks = <&apb1_gates 18>;
 			clocks = <&apb1_gates 18>;
@@ -303,7 +303,7 @@
 		uart3: serial@01c28c00 {
 		uart3: serial@01c28c00 {
 			compatible = "snps,dw-apb-uart";
 			compatible = "snps,dw-apb-uart";
 			reg = <0x01c28c00 0x400>;
 			reg = <0x01c28c00 0x400>;
-			interrupts = <0 4 1>;
+			interrupts = <0 4 4>;
 			reg-shift = <2>;
 			reg-shift = <2>;
 			reg-io-width = <4>;
 			reg-io-width = <4>;
 			clocks = <&apb1_gates 19>;
 			clocks = <&apb1_gates 19>;
@@ -313,7 +313,7 @@
 		uart4: serial@01c29000 {
 		uart4: serial@01c29000 {
 			compatible = "snps,dw-apb-uart";
 			compatible = "snps,dw-apb-uart";
 			reg = <0x01c29000 0x400>;
 			reg = <0x01c29000 0x400>;
-			interrupts = <0 17 1>;
+			interrupts = <0 17 4>;
 			reg-shift = <2>;
 			reg-shift = <2>;
 			reg-io-width = <4>;
 			reg-io-width = <4>;
 			clocks = <&apb1_gates 20>;
 			clocks = <&apb1_gates 20>;
@@ -323,7 +323,7 @@
 		uart5: serial@01c29400 {
 		uart5: serial@01c29400 {
 			compatible = "snps,dw-apb-uart";
 			compatible = "snps,dw-apb-uart";
 			reg = <0x01c29400 0x400>;
 			reg = <0x01c29400 0x400>;
-			interrupts = <0 18 1>;
+			interrupts = <0 18 4>;
 			reg-shift = <2>;
 			reg-shift = <2>;
 			reg-io-width = <4>;
 			reg-io-width = <4>;
 			clocks = <&apb1_gates 21>;
 			clocks = <&apb1_gates 21>;
@@ -333,7 +333,7 @@
 		uart6: serial@01c29800 {
 		uart6: serial@01c29800 {
 			compatible = "snps,dw-apb-uart";
 			compatible = "snps,dw-apb-uart";
 			reg = <0x01c29800 0x400>;
 			reg = <0x01c29800 0x400>;
-			interrupts = <0 19 1>;
+			interrupts = <0 19 4>;
 			reg-shift = <2>;
 			reg-shift = <2>;
 			reg-io-width = <4>;
 			reg-io-width = <4>;
 			clocks = <&apb1_gates 22>;
 			clocks = <&apb1_gates 22>;
@@ -343,7 +343,7 @@
 		uart7: serial@01c29c00 {
 		uart7: serial@01c29c00 {
 			compatible = "snps,dw-apb-uart";
 			compatible = "snps,dw-apb-uart";
 			reg = <0x01c29c00 0x400>;
 			reg = <0x01c29c00 0x400>;
-			interrupts = <0 20 1>;
+			interrupts = <0 20 4>;
 			reg-shift = <2>;
 			reg-shift = <2>;
 			reg-io-width = <4>;
 			reg-io-width = <4>;
 			clocks = <&apb1_gates 23>;
 			clocks = <&apb1_gates 23>;
@@ -353,7 +353,7 @@
 		i2c0: i2c@01c2ac00 {
 		i2c0: i2c@01c2ac00 {
 			compatible = "allwinner,sun4i-i2c";
 			compatible = "allwinner,sun4i-i2c";
 			reg = <0x01c2ac00 0x400>;
 			reg = <0x01c2ac00 0x400>;
-			interrupts = <0 7 1>;
+			interrupts = <0 7 4>;
 			clocks = <&apb1_gates 0>;
 			clocks = <&apb1_gates 0>;
 			clock-frequency = <100000>;
 			clock-frequency = <100000>;
 			status = "disabled";
 			status = "disabled";
@@ -362,7 +362,7 @@
 		i2c1: i2c@01c2b000 {
 		i2c1: i2c@01c2b000 {
 			compatible = "allwinner,sun4i-i2c";
 			compatible = "allwinner,sun4i-i2c";
 			reg = <0x01c2b000 0x400>;
 			reg = <0x01c2b000 0x400>;
-			interrupts = <0 8 1>;
+			interrupts = <0 8 4>;
 			clocks = <&apb1_gates 1>;
 			clocks = <&apb1_gates 1>;
 			clock-frequency = <100000>;
 			clock-frequency = <100000>;
 			status = "disabled";
 			status = "disabled";
@@ -371,7 +371,7 @@
 		i2c2: i2c@01c2b400 {
 		i2c2: i2c@01c2b400 {
 			compatible = "allwinner,sun4i-i2c";
 			compatible = "allwinner,sun4i-i2c";
 			reg = <0x01c2b400 0x400>;
 			reg = <0x01c2b400 0x400>;
-			interrupts = <0 9 1>;
+			interrupts = <0 9 4>;
 			clocks = <&apb1_gates 2>;
 			clocks = <&apb1_gates 2>;
 			clock-frequency = <100000>;
 			clock-frequency = <100000>;
 			status = "disabled";
 			status = "disabled";
@@ -380,7 +380,7 @@
 		i2c3: i2c@01c2b800 {
 		i2c3: i2c@01c2b800 {
 			compatible = "allwinner,sun4i-i2c";
 			compatible = "allwinner,sun4i-i2c";
 			reg = <0x01c2b800 0x400>;
 			reg = <0x01c2b800 0x400>;
-			interrupts = <0 88 1>;
+			interrupts = <0 88 4>;
 			clocks = <&apb1_gates 3>;
 			clocks = <&apb1_gates 3>;
 			clock-frequency = <100000>;
 			clock-frequency = <100000>;
 			status = "disabled";
 			status = "disabled";
@@ -389,7 +389,7 @@
 		i2c4: i2c@01c2bc00 {
 		i2c4: i2c@01c2bc00 {
 			compatible = "allwinner,sun4i-i2c";
 			compatible = "allwinner,sun4i-i2c";
 			reg = <0x01c2bc00 0x400>;
 			reg = <0x01c2bc00 0x400>;
-			interrupts = <0 89 1>;
+			interrupts = <0 89 4>;
 			clocks = <&apb1_gates 15>;
 			clocks = <&apb1_gates 15>;
 			clock-frequency = <100000>;
 			clock-frequency = <100000>;
 			status = "disabled";
 			status = "disabled";

+ 3 - 0
arch/arm/configs/multi_v7_defconfig

@@ -69,6 +69,7 @@ CONFIG_KS8851=y
 CONFIG_SMSC911X=y
 CONFIG_SMSC911X=y
 CONFIG_STMMAC_ETH=y
 CONFIG_STMMAC_ETH=y
 CONFIG_MDIO_SUN4I=y
 CONFIG_MDIO_SUN4I=y
+CONFIG_TI_CPSW=y
 CONFIG_KEYBOARD_SPEAR=y
 CONFIG_KEYBOARD_SPEAR=y
 CONFIG_SERIO_AMBAKMI=y
 CONFIG_SERIO_AMBAKMI=y
 CONFIG_SERIAL_8250=y
 CONFIG_SERIAL_8250=y
@@ -133,12 +134,14 @@ CONFIG_USB_GPIO_VBUS=y
 CONFIG_USB_ISP1301=y
 CONFIG_USB_ISP1301=y
 CONFIG_USB_MXS_PHY=y
 CONFIG_USB_MXS_PHY=y
 CONFIG_MMC=y
 CONFIG_MMC=y
+CONFIG_MMC_BLOCK_MINORS=16
 CONFIG_MMC_ARMMMCI=y
 CONFIG_MMC_ARMMMCI=y
 CONFIG_MMC_SDHCI=y
 CONFIG_MMC_SDHCI=y
 CONFIG_MMC_SDHCI_PLTFM=y
 CONFIG_MMC_SDHCI_PLTFM=y
 CONFIG_MMC_SDHCI_ESDHC_IMX=y
 CONFIG_MMC_SDHCI_ESDHC_IMX=y
 CONFIG_MMC_SDHCI_TEGRA=y
 CONFIG_MMC_SDHCI_TEGRA=y
 CONFIG_MMC_SDHCI_SPEAR=y
 CONFIG_MMC_SDHCI_SPEAR=y
+CONFIG_MMC_SDHCI_BCM_KONA=y
 CONFIG_MMC_OMAP=y
 CONFIG_MMC_OMAP=y
 CONFIG_MMC_OMAP_HS=y
 CONFIG_MMC_OMAP_HS=y
 CONFIG_EDAC=y
 CONFIG_EDAC=y

+ 1 - 0
arch/arm/configs/omap2plus_defconfig

@@ -173,6 +173,7 @@ CONFIG_MFD_PALMAS=y
 CONFIG_MFD_TPS65217=y
 CONFIG_MFD_TPS65217=y
 CONFIG_MFD_TPS65910=y
 CONFIG_MFD_TPS65910=y
 CONFIG_TWL6040_CORE=y
 CONFIG_TWL6040_CORE=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
 CONFIG_REGULATOR_PALMAS=y
 CONFIG_REGULATOR_PALMAS=y
 CONFIG_REGULATOR_TPS65023=y
 CONFIG_REGULATOR_TPS65023=y
 CONFIG_REGULATOR_TPS6507X=y
 CONFIG_REGULATOR_TPS6507X=y

+ 7 - 0
arch/arm/configs/sunxi_defconfig

@@ -12,6 +12,9 @@ CONFIG_NET=y
 CONFIG_PACKET=y
 CONFIG_PACKET=y
 CONFIG_UNIX=y
 CONFIG_UNIX=y
 CONFIG_INET=y
 CONFIG_INET=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
 # CONFIG_INET_XFRM_MODE_TRANSPORT is not set
 # CONFIG_INET_XFRM_MODE_TRANSPORT is not set
 # CONFIG_INET_XFRM_MODE_TUNNEL is not set
 # CONFIG_INET_XFRM_MODE_TUNNEL is not set
 # CONFIG_INET_XFRM_MODE_BEET is not set
 # CONFIG_INET_XFRM_MODE_BEET is not set
@@ -58,4 +61,8 @@ CONFIG_LEDS_TRIGGER_HEARTBEAT=y
 CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
 CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
 CONFIG_COMMON_CLK_DEBUG=y
 CONFIG_COMMON_CLK_DEBUG=y
 # CONFIG_IOMMU_SUPPORT is not set
 # CONFIG_IOMMU_SUPPORT is not set
+CONFIG_TMPFS=y
+CONFIG_NFS_FS=y
+CONFIG_ROOT_NFS=y
 CONFIG_NLS=y
 CONFIG_NLS=y
+CONFIG_PRINTK_TIME=y

+ 3 - 0
arch/arm/configs/u8500_defconfig

@@ -22,6 +22,7 @@ CONFIG_CMDLINE="root=/dev/ram0 console=ttyAMA2,115200n8"
 CONFIG_CPU_FREQ=y
 CONFIG_CPU_FREQ=y
 CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
 CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
 CONFIG_CPU_IDLE=y
 CONFIG_CPU_IDLE=y
+CONFIG_ARM_U8500_CPUIDLE=y
 CONFIG_VFP=y
 CONFIG_VFP=y
 CONFIG_NEON=y
 CONFIG_NEON=y
 CONFIG_PM_RUNTIME=y
 CONFIG_PM_RUNTIME=y
@@ -109,6 +110,8 @@ 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

+ 14 - 17
arch/arm/include/asm/memory.h

@@ -100,23 +100,19 @@
 #define TASK_UNMAPPED_BASE	UL(0x00000000)
 #define TASK_UNMAPPED_BASE	UL(0x00000000)
 #endif
 #endif
 
 
-#ifndef PHYS_OFFSET
-#define PHYS_OFFSET 		UL(CONFIG_DRAM_BASE)
-#endif
-
 #ifndef END_MEM
 #ifndef END_MEM
 #define END_MEM     		(UL(CONFIG_DRAM_BASE) + CONFIG_DRAM_SIZE)
 #define END_MEM     		(UL(CONFIG_DRAM_BASE) + CONFIG_DRAM_SIZE)
 #endif
 #endif
 
 
 #ifndef PAGE_OFFSET
 #ifndef PAGE_OFFSET
-#define PAGE_OFFSET		(PHYS_OFFSET)
+#define PAGE_OFFSET		PLAT_PHYS_OFFSET
 #endif
 #endif
 
 
 /*
 /*
  * The module can be at any place in ram in nommu mode.
  * The module can be at any place in ram in nommu mode.
  */
  */
 #define MODULES_END		(END_MEM)
 #define MODULES_END		(END_MEM)
-#define MODULES_VADDR		(PHYS_OFFSET)
+#define MODULES_VADDR		PAGE_OFFSET
 
 
 #define XIP_VIRT_ADDR(physaddr)  (physaddr)
 #define XIP_VIRT_ADDR(physaddr)  (physaddr)
 
 
@@ -157,6 +153,16 @@
 #endif
 #endif
 #define ARCH_PGD_MASK		((1 << ARCH_PGD_SHIFT) - 1)
 #define ARCH_PGD_MASK		((1 << ARCH_PGD_SHIFT) - 1)
 
 
+/*
+ * PLAT_PHYS_OFFSET is the offset (from zero) of the start of physical
+ * memory.  This is used for XIP and NoMMU kernels, or by kernels which
+ * have their own mach/memory.h.  Assembly code must always use
+ * PLAT_PHYS_OFFSET and not PHYS_OFFSET.
+ */
+#ifndef PLAT_PHYS_OFFSET
+#define PLAT_PHYS_OFFSET	UL(CONFIG_PHYS_OFFSET)
+#endif
+
 #ifndef __ASSEMBLY__
 #ifndef __ASSEMBLY__
 
 
 /*
 /*
@@ -239,6 +245,8 @@ static inline unsigned long __phys_to_virt(phys_addr_t x)
 
 
 #else
 #else
 
 
+#define PHYS_OFFSET	PLAT_PHYS_OFFSET
+
 static inline phys_addr_t __virt_to_phys(unsigned long x)
 static inline phys_addr_t __virt_to_phys(unsigned long x)
 {
 {
 	return (phys_addr_t)x - PAGE_OFFSET + PHYS_OFFSET;
 	return (phys_addr_t)x - PAGE_OFFSET + PHYS_OFFSET;
@@ -251,17 +259,6 @@ static inline unsigned long __phys_to_virt(phys_addr_t x)
 
 
 #endif
 #endif
 #endif
 #endif
-#endif /* __ASSEMBLY__ */
-
-#ifndef PHYS_OFFSET
-#ifdef PLAT_PHYS_OFFSET
-#define PHYS_OFFSET	PLAT_PHYS_OFFSET
-#else
-#define PHYS_OFFSET	UL(CONFIG_PHYS_OFFSET)
-#endif
-#endif
-
-#ifndef __ASSEMBLY__
 
 
 /*
 /*
  * PFNs are used to describe any physical page; this means
  * PFNs are used to describe any physical page; this means

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

@@ -61,7 +61,7 @@ extern void __pgd_error(const char *file, int line, pgd_t);
  * mapping to be mapped at.  This is particularly important for
  * mapping to be mapped at.  This is particularly important for
  * non-high vector CPUs.
  * non-high vector CPUs.
  */
  */
-#define FIRST_USER_ADDRESS	PAGE_SIZE
+#define FIRST_USER_ADDRESS	(PAGE_SIZE * 2)
 
 
 /*
 /*
  * Use TASK_SIZE as the ceiling argument for free_pgtables() and
  * Use TASK_SIZE as the ceiling argument for free_pgtables() and

+ 2 - 2
arch/arm/kernel/head-nommu.S

@@ -68,7 +68,7 @@ ENTRY(stext)
 
 
 #ifdef CONFIG_ARM_MPU
 #ifdef CONFIG_ARM_MPU
 	/* Calculate the size of a region covering just the kernel */
 	/* Calculate the size of a region covering just the kernel */
-	ldr	r5, =PHYS_OFFSET		@ Region start: PHYS_OFFSET
+	ldr	r5, =PLAT_PHYS_OFFSET		@ Region start: PHYS_OFFSET
 	ldr     r6, =(_end)			@ Cover whole kernel
 	ldr     r6, =(_end)			@ Cover whole kernel
 	sub	r6, r6, r5			@ Minimum size of region to map
 	sub	r6, r6, r5			@ Minimum size of region to map
 	clz	r6, r6				@ Region size must be 2^N...
 	clz	r6, r6				@ Region size must be 2^N...
@@ -213,7 +213,7 @@ ENTRY(__setup_mpu)
 	set_region_nr r0, #MPU_RAM_REGION
 	set_region_nr r0, #MPU_RAM_REGION
 	isb
 	isb
 	/* Full access from PL0, PL1, shared for CONFIG_SMP, cacheable */
 	/* Full access from PL0, PL1, shared for CONFIG_SMP, cacheable */
-	ldr	r0, =PHYS_OFFSET		@ RAM starts at PHYS_OFFSET
+	ldr	r0, =PLAT_PHYS_OFFSET		@ RAM starts at PHYS_OFFSET
 	ldr	r5,=(MPU_AP_PL1RW_PL0RW | MPU_RGN_NORMAL)
 	ldr	r5,=(MPU_AP_PL1RW_PL0RW | MPU_RGN_NORMAL)
 
 
 	setup_region r0, r5, r6, MPU_DATA_SIDE	@ PHYS_OFFSET, shared, enabled
 	setup_region r0, r5, r6, MPU_DATA_SIDE	@ PHYS_OFFSET, shared, enabled

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

@@ -110,7 +110,7 @@ ENTRY(stext)
 	sub	r4, r3, r4			@ (PHYS_OFFSET - PAGE_OFFSET)
 	sub	r4, r3, r4			@ (PHYS_OFFSET - PAGE_OFFSET)
 	add	r8, r8, r4			@ PHYS_OFFSET
 	add	r8, r8, r4			@ PHYS_OFFSET
 #else
 #else
-	ldr	r8, =PHYS_OFFSET		@ always constant in this case
+	ldr	r8, =PLAT_PHYS_OFFSET		@ always constant in this case
 #endif
 #endif
 
 
 	/*
 	/*

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

@@ -14,11 +14,12 @@
 #include <asm/pgalloc.h>
 #include <asm/pgalloc.h>
 #include <asm/mmu_context.h>
 #include <asm/mmu_context.h>
 #include <asm/cacheflush.h>
 #include <asm/cacheflush.h>
+#include <asm/fncpy.h>
 #include <asm/mach-types.h>
 #include <asm/mach-types.h>
 #include <asm/smp_plat.h>
 #include <asm/smp_plat.h>
 #include <asm/system_misc.h>
 #include <asm/system_misc.h>
 
 
-extern const unsigned char relocate_new_kernel[];
+extern void relocate_new_kernel(void);
 extern const unsigned int relocate_new_kernel_size;
 extern const unsigned int relocate_new_kernel_size;
 
 
 extern unsigned long kexec_start_address;
 extern unsigned long kexec_start_address;
@@ -142,6 +143,8 @@ void machine_kexec(struct kimage *image)
 {
 {
 	unsigned long page_list;
 	unsigned long page_list;
 	unsigned long reboot_code_buffer_phys;
 	unsigned long reboot_code_buffer_phys;
+	unsigned long reboot_entry = (unsigned long)relocate_new_kernel;
+	unsigned long reboot_entry_phys;
 	void *reboot_code_buffer;
 	void *reboot_code_buffer;
 
 
 	/*
 	/*
@@ -168,16 +171,16 @@ void machine_kexec(struct kimage *image)
 
 
 
 
 	/* copy our kernel relocation code to the control code page */
 	/* copy our kernel relocation code to the control code page */
-	memcpy(reboot_code_buffer,
-	       relocate_new_kernel, relocate_new_kernel_size);
+	reboot_entry = fncpy(reboot_code_buffer,
+			     reboot_entry,
+			     relocate_new_kernel_size);
+	reboot_entry_phys = (unsigned long)reboot_entry +
+		(reboot_code_buffer_phys - (unsigned long)reboot_code_buffer);
 
 
-
-	flush_icache_range((unsigned long) reboot_code_buffer,
-			   (unsigned long) reboot_code_buffer + KEXEC_CONTROL_PAGE_SIZE);
 	printk(KERN_INFO "Bye!\n");
 	printk(KERN_INFO "Bye!\n");
 
 
 	if (kexec_reinit)
 	if (kexec_reinit)
 		kexec_reinit();
 		kexec_reinit();
 
 
-	soft_restart(reboot_code_buffer_phys);
+	soft_restart(reboot_entry_phys);
 }
 }

+ 5 - 2
arch/arm/kernel/process.c

@@ -404,6 +404,7 @@ EXPORT_SYMBOL(dump_fpu);
 unsigned long get_wchan(struct task_struct *p)
 unsigned long get_wchan(struct task_struct *p)
 {
 {
 	struct stackframe frame;
 	struct stackframe frame;
+	unsigned long stack_page;
 	int count = 0;
 	int count = 0;
 	if (!p || p == current || p->state == TASK_RUNNING)
 	if (!p || p == current || p->state == TASK_RUNNING)
 		return 0;
 		return 0;
@@ -412,9 +413,11 @@ unsigned long get_wchan(struct task_struct *p)
 	frame.sp = thread_saved_sp(p);
 	frame.sp = thread_saved_sp(p);
 	frame.lr = 0;			/* recovered from the stack */
 	frame.lr = 0;			/* recovered from the stack */
 	frame.pc = thread_saved_pc(p);
 	frame.pc = thread_saved_pc(p);
+	stack_page = (unsigned long)task_stack_page(p);
 	do {
 	do {
-		int ret = unwind_frame(&frame);
-		if (ret < 0)
+		if (frame.sp < stack_page ||
+		    frame.sp >= stack_page + THREAD_SIZE ||
+		    unwind_frame(&frame) < 0)
 			return 0;
 			return 0;
 		if (!in_sched_functions(frame.pc))
 		if (!in_sched_functions(frame.pc))
 			return frame.pc;
 			return frame.pc;

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

@@ -2,10 +2,12 @@
  * relocate_kernel.S - put the kernel image in place to boot
  * relocate_kernel.S - put the kernel image in place to boot
  */
  */
 
 
+#include <linux/linkage.h>
 #include <asm/kexec.h>
 #include <asm/kexec.h>
 
 
-	.globl relocate_new_kernel
-relocate_new_kernel:
+	.align	3	/* not needed for this code, but keeps fncpy() happy */
+
+ENTRY(relocate_new_kernel)
 
 
 	ldr	r0,kexec_indirection_page
 	ldr	r0,kexec_indirection_page
 	ldr	r1,kexec_start_address
 	ldr	r1,kexec_start_address
@@ -79,6 +81,8 @@ kexec_mach_type:
 kexec_boot_atags:
 kexec_boot_atags:
 	.long	0x0
 	.long	0x0
 
 
+ENDPROC(relocate_new_kernel)
+
 relocate_new_kernel_end:
 relocate_new_kernel_end:
 
 
 	.globl relocate_new_kernel_size
 	.globl relocate_new_kernel_size

+ 1 - 2
arch/arm/kernel/setup.c

@@ -873,8 +873,6 @@ void __init setup_arch(char **cmdline_p)
 	machine_desc = mdesc;
 	machine_desc = mdesc;
 	machine_name = mdesc->name;
 	machine_name = mdesc->name;
 
 
-	setup_dma_zone(mdesc);
-
 	if (mdesc->reboot_mode != REBOOT_HARD)
 	if (mdesc->reboot_mode != REBOOT_HARD)
 		reboot_mode = mdesc->reboot_mode;
 		reboot_mode = mdesc->reboot_mode;
 
 
@@ -892,6 +890,7 @@ void __init setup_arch(char **cmdline_p)
 	sort(&meminfo.bank, meminfo.nr_banks, sizeof(meminfo.bank[0]), meminfo_cmp, NULL);
 	sort(&meminfo.bank, meminfo.nr_banks, sizeof(meminfo.bank[0]), meminfo_cmp, NULL);
 
 
 	early_paging_init(mdesc, lookup_processor_type(read_cpuid_id()));
 	early_paging_init(mdesc, lookup_processor_type(read_cpuid_id()));
+	setup_dma_zone(mdesc);
 	sanity_check_meminfo();
 	sanity_check_meminfo();
 	arm_memblock_init(&meminfo, mdesc);
 	arm_memblock_init(&meminfo, mdesc);
 
 

+ 31 - 9
arch/arm/kernel/sigreturn_codes.S

@@ -30,6 +30,27 @@
  * snippets.
  * snippets.
  */
  */
 
 
+/*
+ * In CPU_THUMBONLY case kernel arm opcodes are not allowed.
+ * Note in this case codes skips those instructions but it uses .org
+ * directive to keep correct layout of sigreturn_codes array.
+ */
+#ifndef CONFIG_CPU_THUMBONLY
+#define ARM_OK(code...)	code
+#else
+#define ARM_OK(code...)
+#endif
+
+	.macro arm_slot n
+	.org	sigreturn_codes + 12 * (\n)
+ARM_OK(	.arm	)
+	.endm
+
+	.macro thumb_slot n
+	.org	sigreturn_codes + 12 * (\n) + 8
+	.thumb
+	.endm
+
 #if __LINUX_ARM_ARCH__ <= 4
 #if __LINUX_ARM_ARCH__ <= 4
 	/*
 	/*
 	 * Note we manually set minimally required arch that supports
 	 * Note we manually set minimally required arch that supports
@@ -45,26 +66,27 @@
 	.global sigreturn_codes
 	.global sigreturn_codes
 	.type	sigreturn_codes, #object
 	.type	sigreturn_codes, #object
 
 
-	.arm
+	.align
 
 
 sigreturn_codes:
 sigreturn_codes:
 
 
 	/* ARM sigreturn syscall code snippet */
 	/* ARM sigreturn syscall code snippet */
-	mov	r7, #(__NR_sigreturn - __NR_SYSCALL_BASE)
-	swi	#(__NR_sigreturn)|(__NR_OABI_SYSCALL_BASE)
+	arm_slot 0
+ARM_OK(	mov	r7, #(__NR_sigreturn - __NR_SYSCALL_BASE)	)
+ARM_OK(	swi	#(__NR_sigreturn)|(__NR_OABI_SYSCALL_BASE)	)
 
 
 	/* Thumb sigreturn syscall code snippet */
 	/* Thumb sigreturn syscall code snippet */
-	.thumb
+	thumb_slot 0
 	movs	r7, #(__NR_sigreturn - __NR_SYSCALL_BASE)
 	movs	r7, #(__NR_sigreturn - __NR_SYSCALL_BASE)
 	swi	#0
 	swi	#0
 
 
 	/* ARM sigreturn_rt syscall code snippet */
 	/* ARM sigreturn_rt syscall code snippet */
-	.arm
-	mov	r7, #(__NR_rt_sigreturn - __NR_SYSCALL_BASE)
-	swi	#(__NR_rt_sigreturn)|(__NR_OABI_SYSCALL_BASE)
+	arm_slot 1
+ARM_OK(	mov	r7, #(__NR_rt_sigreturn - __NR_SYSCALL_BASE)	)
+ARM_OK(	swi	#(__NR_rt_sigreturn)|(__NR_OABI_SYSCALL_BASE)	)
 
 
 	/* Thumb sigreturn_rt syscall code snippet */
 	/* Thumb sigreturn_rt syscall code snippet */
-	.thumb
+	thumb_slot 1
 	movs	r7, #(__NR_rt_sigreturn - __NR_SYSCALL_BASE)
 	movs	r7, #(__NR_rt_sigreturn - __NR_SYSCALL_BASE)
 	swi	#0
 	swi	#0
 
 
@@ -74,7 +96,7 @@ sigreturn_codes:
 	 * it is thumb case or not, so we need additional
 	 * it is thumb case or not, so we need additional
 	 * word after real last entry.
 	 * word after real last entry.
 	 */
 	 */
-	.arm
+	arm_slot 2
 	.space	4
 	.space	4
 
 
 	.size	sigreturn_codes, . - sigreturn_codes
 	.size	sigreturn_codes, . - sigreturn_codes

+ 1 - 1
arch/arm/kernel/stacktrace.c

@@ -31,7 +31,7 @@ int notrace unwind_frame(struct stackframe *frame)
 	high = ALIGN(low, THREAD_SIZE);
 	high = ALIGN(low, THREAD_SIZE);
 
 
 	/* check current frame pointer is within bounds */
 	/* check current frame pointer is within bounds */
-	if (fp < (low + 12) || fp + 4 >= high)
+	if (fp < low + 12 || fp > high - 4)
 		return -EINVAL;
 		return -EINVAL;
 
 
 	/* restore the registers from the stack frame */
 	/* restore the registers from the stack frame */

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