aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/sunxi/patches-3.14
diff options
context:
space:
mode:
authorLuka Perkov <luka@openwrt.org>2014-09-10 21:40:19 +0000
committerLuka Perkov <luka@openwrt.org>2014-09-10 21:40:19 +0000
commit02629d8f87303a03e3ac36f48c508242d9b8cb09 (patch)
tree250a83e0d0e2cf5c7fe49e0a2087f3739f4509c2 /target/linux/sunxi/patches-3.14
parent7be0ed78e7cf578aa89996d408703ea2ab79a1e8 (diff)
downloadupstream-02629d8f87303a03e3ac36f48c508242d9b8cb09.tar.gz
upstream-02629d8f87303a03e3ac36f48c508242d9b8cb09.tar.bz2
upstream-02629d8f87303a03e3ac36f48c508242d9b8cb09.zip
kernel: update 3.14 to 3.14.18
Targets were build tested and patches are refreshed. Signed-off-by: Luka Perkov <luka@openwrt.org> SVN-Revision: 42463
Diffstat (limited to 'target/linux/sunxi/patches-3.14')
-rw-r--r--target/linux/sunxi/patches-3.14/100-dt-sun4i-add-missing-serial-aliases.patch5
-rw-r--r--target/linux/sunxi/patches-3.14/101-dt-sun6i-add-missing-serial-aliases.patch5
-rw-r--r--target/linux/sunxi/patches-3.14/102-dt-sun7i-add-missing-serial-aliases.patch5
-rw-r--r--target/linux/sunxi/patches-3.14/103-dt-sun5i-add-missing-serial-aliases.patch5
-rw-r--r--target/linux/sunxi/patches-3.14/104-dt-sun7i-add-pinmuxing-for-uart2.patch5
-rw-r--r--target/linux/sunxi/patches-3.14/105-dt-sun4i-add-linksprite-pcduino.patch8
-rw-r--r--target/linux/sunxi/patches-3.14/106-dt-sun7i-add-arch-timer-node.patch5
-rw-r--r--target/linux/sunxi/patches-3.14/107-dt-sun4i-add-a10-lime.patch8
-rw-r--r--target/linux/sunxi/patches-3.14/110-dt-sun6i-add-pll-and-spi-modclocks.patch5
-rw-r--r--target/linux/sunxi/patches-3.14/111-dt-sun4i-rename-clocknodes.patch5
-rw-r--r--target/linux/sunxi/patches-3.14/112-dt-sun5i-rename-clocknodes.patch23
-rw-r--r--target/linux/sunxi/patches-3.14/113-dt-sun6i-rename-clocknodes.patch5
-rw-r--r--target/linux/sunxi/patches-3.14/114-dt-sun7i-rename-clocknodes.patch23
-rw-r--r--target/linux/sunxi/patches-3.14/115-dt-sun6i-fix-mod0-compat.patch5
-rw-r--r--target/linux/sunxi/patches-3.14/120-dt-sun7i-add-gmac-clocknode.patch7
-rw-r--r--target/linux/sunxi/patches-3.14/121-dt-sun7i-add-gmac-ctrlnode.patch7
-rw-r--r--target/linux/sunxi/patches-3.14/122-dt-sun7i-add-pinmuxing-for-gmac.patch7
-rw-r--r--target/linux/sunxi/patches-3.14/123-dt-sun7i-cubietruck-enable-gmac.patch9
-rw-r--r--target/linux/sunxi/patches-3.14/124-dt-sun7i-cubieboard2-enable-gmac.patch5
-rw-r--r--target/linux/sunxi/patches-3.14/125-dt-sun7i-olinuxinom-enable-gmac.patch5
-rw-r--r--target/linux/sunxi/patches-3.14/126-dt-sun7i-add-eth-alias-for-gmac.patch5
-rw-r--r--target/linux/sunxi/patches-3.14/130-dt-sun4i-add-usbclock-bindings.patch5
-rw-r--r--target/linux/sunxi/patches-3.14/131-dt-sun5i-add-usbclock-bindings.patch9
-rw-r--r--target/linux/sunxi/patches-3.14/132-dt-sun7i-add-usbclock-bindings.patch7
-rw-r--r--target/linux/sunxi/patches-3.14/135-pinctrl-fixes.patch29
-rw-r--r--target/linux/sunxi/patches-3.14/136-1-irqchip-sun4i-fixes.patch304
-rw-r--r--target/linux/sunxi/patches-3.14/137-1-pinctrl-create-irq-pin-mapping.patch9
-rw-r--r--target/linux/sunxi/patches-3.14/137-2-pinctrl-add-IRQCHIP_SKIP_SET_WAKE.patch7
-rw-r--r--target/linux/sunxi/patches-3.14/137-3-dt-sun7i-add-interrupt-cells.patch7
-rw-r--r--target/linux/sunxi/patches-3.14/140-dt-sunxi-convert-to-new-clock-compats.patch61
-rw-r--r--target/linux/sunxi/patches-3.14/141-dt-sunxi-add-common-regulator-include.patch6
-rw-r--r--target/linux/sunxi/patches-3.14/145-1-dt-sun7i-add-a20-spi.patch19
-rw-r--r--target/linux/sunxi/patches-3.14/145-2-dt-sun4i-add-a10-spi.patch19
-rw-r--r--target/linux/sunxi/patches-3.14/145-3-dt-sun5i-add-a13-spi.patch5
-rw-r--r--target/linux/sunxi/patches-3.14/146-1-spi-add-a31-spi.patch17
-rw-r--r--target/linux/sunxi/patches-3.14/146-2-spi-add-a10-spi.patch17
-rw-r--r--target/linux/sunxi/patches-3.14/147-sun6i-enable-spi-in-defconfig.patch5
-rw-r--r--target/linux/sunxi/patches-3.14/148-dt-sun7i-add-spi-muxing.patch5
-rw-r--r--target/linux/sunxi/patches-3.14/149-dt-sun7i-add-spi-on-olinuxinom.patch5
-rw-r--r--target/linux/sunxi/patches-3.14/150-dt-sun4i-add-ahci.patch9
-rw-r--r--target/linux/sunxi/patches-3.14/151-dt-sun7i-add-ahci.patch13
-rw-r--r--target/linux/sunxi/patches-3.14/155-wdt-add-new-compats.patch9
-rw-r--r--target/linux/sunxi/patches-3.14/156-dt-sunxi-update-wdt-compats.patch21
-rw-r--r--target/linux/sunxi/patches-3.14/160-dt-sun4i-add-usb-host-bindings.patch5
-rw-r--r--target/linux/sunxi/patches-3.14/161-dt-sun5i-add-usb-host-bindings.patch7
-rw-r--r--target/linux/sunxi/patches-3.14/162-dt-sun7i-add-usb-host-bindings.patch5
-rw-r--r--target/linux/sunxi/patches-3.14/163-dt-sun4i-add-usb-host-to-boards.patch61
-rw-r--r--target/linux/sunxi/patches-3.14/164-dt-sun5i-add-usb-host-to-boards.patch22
-rw-r--r--target/linux/sunxi/patches-3.14/165-dt-sun7i-add-usb-host-to-boards.patch42
-rw-r--r--target/linux/sunxi/patches-3.14/170-input-add-sun4i-ts-driver.patch15
-rw-r--r--target/linux/sunxi/patches-3.14/171-input-add-temp-sensor-support.patch24
-rw-r--r--target/linux/sunxi/patches-3.14/172-input-add-lradc-keys-driver.patch15
-rw-r--r--target/linux/sunxi/patches-3.14/173-1-dt-sun4i-add-lradc-node.patch7
-rw-r--r--target/linux/sunxi/patches-3.14/173-2-dt-sun5i-add-lradc-node.patch15
-rw-r--r--target/linux/sunxi/patches-3.14/173-3-dt-sun7i-add-lradc-node.patch11
-rw-r--r--target/linux/sunxi/patches-3.14/175-reset-add-of_reset_control_get.patch15
-rw-r--r--target/linux/sunxi/patches-3.14/176-clk-sun5i-add-support-for-reset-ctrler.patch9
-rw-r--r--target/linux/sunxi/patches-3.14/180-clk-sunxi-add-clock-output-names-dt-prop-support.patch11
-rw-r--r--target/linux/sunxi/patches-3.14/181-clk-sunxi-add-names-for-pll56.patch11
-rw-r--r--target/linux/sunxi/patches-3.14/182-clk-sunxi-add-support-for-usb-clockreg-reset.patch13
-rw-r--r--target/linux/sunxi/patches-3.14/182-clk-sunxi-get-divs-parent-clockname.patch9
-rw-r--r--target/linux/sunxi/patches-3.14/183-clk-sunxi-add-usb-clockreg-defs.patch17
-rw-r--r--target/linux/sunxi/patches-3.14/184-clk-sunxi-add-pll6-on-a31.patch19
-rw-r--r--target/linux/sunxi/patches-3.14/185-clk-sunxi-add-a20-a31-gmac-clock.patch17
-rw-r--r--target/linux/sunxi/patches-3.14/186-clk-sunxi-add-new-clock-compats.patch27
-rw-r--r--target/linux/sunxi/patches-3.14/187-clk-sunxi-automatic-reparenting.patch9
-rw-r--r--target/linux/sunxi/patches-3.14/188-clk-sunxi-implement-mmc-phasectrl.patch10
-rw-r--r--target/linux/sunxi/patches-3.14/190-ahci-libahci-changes.patch927
-rw-r--r--target/linux/sunxi/patches-3.14/191-ahci-add-sunxi-driver.patch14
-rw-r--r--target/linux/sunxi/patches-3.14/192-ahci-platform-changes.patch207
-rw-r--r--target/linux/sunxi/patches-3.14/195-1-ohci-plat-changes.patch211
-rw-r--r--target/linux/sunxi/patches-3.14/195-2-ehci-plat-changes.patch248
-rw-r--r--target/linux/sunxi/patches-3.14/195-3-uhci-plat-changes.patch13
-rw-r--r--target/linux/sunxi/patches-3.14/195-4-xhci-plat-changes.patch9
-rw-r--r--target/linux/sunxi/patches-3.14/196-usb-add-sunxi-phy-driver.patch15
-rw-r--r--target/linux/sunxi/patches-3.14/200-mmc-add-driver.patch17
-rw-r--r--target/linux/sunxi/patches-3.14/201-dt-sun4i-add-mmc-nodes_NEED_REFRESH.patch36
-rw-r--r--target/linux/sunxi/patches-3.14/202-dt-sun5i-add-mmc-nodes.patch17
-rw-r--r--target/linux/sunxi/patches-3.14/203-dt-sun7i-add-mmc-nodes.patch15
-rw-r--r--target/linux/sunxi/patches-3.14/205-nmi-add-driver.patch10
-rw-r--r--target/linux/sunxi/patches-3.14/206-dt-sun67i-add-nmi-irqchip.patch9
-rw-r--r--target/linux/sunxi/patches-3.14/210-mfd-add-axp20x-pmic-driver.patch17
-rw-r--r--target/linux/sunxi/patches-3.14/211-input-add-axp20x-power-enable-key-support.patch14
-rw-r--r--target/linux/sunxi/patches-3.14/212-regulator-add-axp20x-regulator-support.patch14
-rw-r--r--target/linux/sunxi/patches-3.14/213-dt-sunxi-add-x-powers.patch6
-rw-r--r--target/linux/sunxi/patches-3.14/214-1-dt-sun7i-add-axp209-to-cubieboard2.patch5
-rw-r--r--target/linux/sunxi/patches-3.14/214-2-dt-sun4i-add-axp209-to-boards.patch23
-rw-r--r--target/linux/sunxi/patches-3.14/214-3-dt-sun7i-add-axp209-to-cubietruck.patch13
-rw-r--r--target/linux/sunxi/patches-3.14/215-2-dt-sun5i-add-address-and-sizecells-to-i2c.patch5
-rw-r--r--target/linux/sunxi/patches-3.14/215-3-dt-sun7i-add-address-and-sizecells-to-i2c.patch5
-rw-r--r--target/linux/sunxi/patches-3.14/215-dt-sun4i-add-address-and-sizecells-to-i2c.patch5
-rw-r--r--target/linux/sunxi/patches-3.14/216-dt-sun7i-add-i2c-to-cubietruck.patch11
-rw-r--r--target/linux/sunxi/patches-3.14/220-clk-sunxi-remove-calls-to-clk_put.patch7
-rw-r--r--target/linux/sunxi/patches-3.14/230-net-rfkill-changes.patch247
-rw-r--r--target/linux/sunxi/patches-3.14/231-1-brcmfmac-fix-sdio-sending.patch7
-rw-r--r--target/linux/sunxi/patches-3.14/231-2-brcmfmac-fix-use-of-skb-ctrlbuf-in-SDIO.patch13
-rw-r--r--target/linux/sunxi/patches-3.14/232-1-dt-sun7i-add-wifi-to-cubietruck.patch13
-rw-r--r--target/linux/sunxi/patches-3.14/232-2-dt-sun7i-add-bluetooth-to-cubietruck.patch13
-rw-r--r--target/linux/sunxi/patches-3.14/250-pwm-add-driver.patch11
-rw-r--r--target/linux/sunxi/patches-3.14/251-1-dt-sun4i-add-pinmux-for-pwm.patch7
-rw-r--r--target/linux/sunxi/patches-3.14/251-2-dt-sun7i-add-pinmux-for-pwm.patch7
-rw-r--r--target/linux/sunxi/patches-3.14/252-1-dt-sun4i-add-pwm-support.patch11
-rw-r--r--target/linux/sunxi/patches-3.14/252-2-dt-sun7i-add-pwm-support.patch9
-rw-r--r--target/linux/sunxi/patches-3.14/260-dt-sun7i-enable-arm-pmu.patch5
-rw-r--r--target/linux/sunxi/patches-3.14/270-dt-sun7i-add-ss-to-a20.patch6
-rw-r--r--target/linux/sunxi/patches-3.14/271-crypto-add-ss.patch29
-rw-r--r--target/linux/sunxi/patches-3.14/300-dt-sun7i-add-pcduino3.patch12
-rw-r--r--target/linux/sunxi/patches-3.14/301-dt-sun7i-update-pcduino3.patch5
-rw-r--r--target/linux/sunxi/patches-3.14/302-dt-sun7i-add-bananapi-Makefile.patch7
-rw-r--r--target/linux/sunxi/patches-3.14/303-dt-sun7i-update-bananapi.patch5
110 files changed, 685 insertions, 2736 deletions
diff --git a/target/linux/sunxi/patches-3.14/100-dt-sun4i-add-missing-serial-aliases.patch b/target/linux/sunxi/patches-3.14/100-dt-sun4i-add-missing-serial-aliases.patch
index 5048f8500a..caa5d15874 100644
--- a/target/linux/sunxi/patches-3.14/100-dt-sun4i-add-missing-serial-aliases.patch
+++ b/target/linux/sunxi/patches-3.14/100-dt-sun4i-add-missing-serial-aliases.patch
@@ -11,8 +11,6 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
arch/arm/boot/dts/sun4i-a10.dtsi | 6 ++++++
1 file changed, 6 insertions(+)
-diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
-index d4d2763..64fc716 100644
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
@@ -19,6 +19,12 @@
@@ -28,6 +26,3 @@ index d4d2763..64fc716 100644
};
cpus {
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/101-dt-sun6i-add-missing-serial-aliases.patch b/target/linux/sunxi/patches-3.14/101-dt-sun6i-add-missing-serial-aliases.patch
index e2ba3c19ea..dd0f741b0d 100644
--- a/target/linux/sunxi/patches-3.14/101-dt-sun6i-add-missing-serial-aliases.patch
+++ b/target/linux/sunxi/patches-3.14/101-dt-sun6i-add-missing-serial-aliases.patch
@@ -11,8 +11,6 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
arch/arm/boot/dts/sun6i-a31.dtsi | 10 ++++++++++
1 file changed, 10 insertions(+)
-diff --git a/arch/arm/boot/dts/sun6i-a31.dtsi b/arch/arm/boot/dts/sun6i-a31.dtsi
-index 5256ad9..092bf97 100644
--- a/arch/arm/boot/dts/sun6i-a31.dtsi
+++ b/arch/arm/boot/dts/sun6i-a31.dtsi
@@ -16,6 +16,16 @@
@@ -32,6 +30,3 @@ index 5256ad9..092bf97 100644
cpus {
#address-cells = <1>;
#size-cells = <0>;
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/102-dt-sun7i-add-missing-serial-aliases.patch b/target/linux/sunxi/patches-3.14/102-dt-sun7i-add-missing-serial-aliases.patch
index a979036411..80daddc1fc 100644
--- a/target/linux/sunxi/patches-3.14/102-dt-sun7i-add-missing-serial-aliases.patch
+++ b/target/linux/sunxi/patches-3.14/102-dt-sun7i-add-missing-serial-aliases.patch
@@ -11,8 +11,6 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
arch/arm/boot/dts/sun7i-a20.dtsi | 8 ++++++++
1 file changed, 8 insertions(+)
-diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
-index 6f25cf5..0b6e610 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -18,6 +18,14 @@
@@ -30,6 +28,3 @@ index 6f25cf5..0b6e610 100644
};
cpus {
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/103-dt-sun5i-add-missing-serial-aliases.patch b/target/linux/sunxi/patches-3.14/103-dt-sun5i-add-missing-serial-aliases.patch
index c262dfe99c..cd991dd6bc 100644
--- a/target/linux/sunxi/patches-3.14/103-dt-sun5i-add-missing-serial-aliases.patch
+++ b/target/linux/sunxi/patches-3.14/103-dt-sun5i-add-missing-serial-aliases.patch
@@ -11,8 +11,6 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
arch/arm/boot/dts/sun5i-a13.dtsi | 5 +++++
1 file changed, 5 insertions(+)
-diff --git a/arch/arm/boot/dts/sun5i-a13.dtsi b/arch/arm/boot/dts/sun5i-a13.dtsi
-index c463fd7..d8207b0 100644
--- a/arch/arm/boot/dts/sun5i-a13.dtsi
+++ b/arch/arm/boot/dts/sun5i-a13.dtsi
@@ -16,6 +16,11 @@
@@ -27,6 +25,3 @@ index c463fd7..d8207b0 100644
cpus {
#address-cells = <1>;
#size-cells = <0>;
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/104-dt-sun7i-add-pinmuxing-for-uart2.patch b/target/linux/sunxi/patches-3.14/104-dt-sun7i-add-pinmuxing-for-uart2.patch
index cd343285e3..84baf3926d 100644
--- a/target/linux/sunxi/patches-3.14/104-dt-sun7i-add-pinmuxing-for-uart2.patch
+++ b/target/linux/sunxi/patches-3.14/104-dt-sun7i-add-pinmuxing-for-uart2.patch
@@ -12,8 +12,6 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
arch/arm/boot/dts/sun7i-a20.dtsi | 7 +++++++
1 file changed, 7 insertions(+)
-diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
-index 0b6e610..2139e0f 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -381,6 +381,13 @@
@@ -30,6 +28,3 @@ index 0b6e610..2139e0f 100644
uart6_pins_a: uart6@0 {
allwinner,pins = "PI12", "PI13";
allwinner,function = "uart6";
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/105-dt-sun4i-add-linksprite-pcduino.patch b/target/linux/sunxi/patches-3.14/105-dt-sun4i-add-linksprite-pcduino.patch
index 713c922501..546381981d 100644
--- a/target/linux/sunxi/patches-3.14/105-dt-sun4i-add-linksprite-pcduino.patch
+++ b/target/linux/sunxi/patches-3.14/105-dt-sun4i-add-linksprite-pcduino.patch
@@ -15,8 +15,6 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
2 files changed, 49 insertions(+)
create mode 100644 arch/arm/boot/dts/sun4i-a10-pcduino.dts
-diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
-index 0320303..8e1d636 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -284,6 +284,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += \
@@ -27,9 +25,6 @@ index 0320303..8e1d636 100644
sun5i-a10s-olinuxino-micro.dtb \
sun5i-a13-olinuxino.dtb \
sun5i-a13-olinuxino-micro.dtb \
-diff --git a/arch/arm/boot/dts/sun4i-a10-pcduino.dts b/arch/arm/boot/dts/sun4i-a10-pcduino.dts
-new file mode 100644
-index 0000000..f5692a3
--- /dev/null
+++ b/arch/arm/boot/dts/sun4i-a10-pcduino.dts
@@ -0,0 +1,48 @@
@@ -81,6 +76,3 @@ index 0000000..f5692a3
+ };
+ };
+};
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/106-dt-sun7i-add-arch-timer-node.patch b/target/linux/sunxi/patches-3.14/106-dt-sun7i-add-arch-timer-node.patch
index 4ded898bbf..386f04295c 100644
--- a/target/linux/sunxi/patches-3.14/106-dt-sun7i-add-arch-timer-node.patch
+++ b/target/linux/sunxi/patches-3.14/106-dt-sun7i-add-arch-timer-node.patch
@@ -12,8 +12,6 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
arch/arm/boot/dts/sun7i-a20.dtsi | 8 ++++++++
1 file changed, 8 insertions(+)
-diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
-index 822a816..911d4e4 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -49,6 +49,14 @@
@@ -31,6 +29,3 @@ index 822a816..911d4e4 100644
clocks {
#address-cells = <1>;
#size-cells = <1>;
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/107-dt-sun4i-add-a10-lime.patch b/target/linux/sunxi/patches-3.14/107-dt-sun4i-add-a10-lime.patch
index c6f9edbf18..d50f362fb0 100644
--- a/target/linux/sunxi/patches-3.14/107-dt-sun4i-add-a10-lime.patch
+++ b/target/linux/sunxi/patches-3.14/107-dt-sun4i-add-a10-lime.patch
@@ -15,8 +15,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2 files changed, 112 insertions(+)
create mode 100644 arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts
-diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
-index 8e1d636..66d6df3 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -284,6 +284,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += \
@@ -27,9 +25,6 @@ index 8e1d636..66d6df3 100644
sun4i-a10-pcduino.dtb \
sun5i-a10s-olinuxino-micro.dtb \
sun5i-a13-olinuxino.dtb \
-diff --git a/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts b/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts
-new file mode 100644
-index 0000000..66cf0c7
--- /dev/null
+++ b/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts
@@ -0,0 +1,111 @@
@@ -144,6 +139,3 @@ index 0000000..66cf0c7
+ status = "okay";
+ };
+};
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/110-dt-sun6i-add-pll-and-spi-modclocks.patch b/target/linux/sunxi/patches-3.14/110-dt-sun6i-add-pll-and-spi-modclocks.patch
index 75c0bd84ce..7d8c2cfbd2 100644
--- a/target/linux/sunxi/patches-3.14/110-dt-sun6i-add-pll-and-spi-modclocks.patch
+++ b/target/linux/sunxi/patches-3.14/110-dt-sun6i-add-pll-and-spi-modclocks.patch
@@ -12,8 +12,6 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
arch/arm/boot/dts/sun6i-a31.dtsi | 46 ++++++++++++++++++++++++++++++++--------
1 file changed, 37 insertions(+), 9 deletions(-)
-diff --git a/arch/arm/boot/dts/sun6i-a31.dtsi b/arch/arm/boot/dts/sun6i-a31.dtsi
-index 092bf97..93d7bb6 100644
--- a/arch/arm/boot/dts/sun6i-a31.dtsi
+++ b/arch/arm/boot/dts/sun6i-a31.dtsi
@@ -83,16 +83,12 @@
@@ -77,6 +75,3 @@ index 092bf97..93d7bb6 100644
};
soc@01c00000 {
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/111-dt-sun4i-rename-clocknodes.patch b/target/linux/sunxi/patches-3.14/111-dt-sun4i-rename-clocknodes.patch
index 51280b55d2..9846d5cdee 100644
--- a/target/linux/sunxi/patches-3.14/111-dt-sun4i-rename-clocknodes.patch
+++ b/target/linux/sunxi/patches-3.14/111-dt-sun4i-rename-clocknodes.patch
@@ -13,8 +13,6 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
arch/arm/boot/dts/sun4i-a10.dtsi | 30 ++++++++++++++++++++----------
1 file changed, 20 insertions(+), 10 deletions(-)
-diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
-index 64fc716..132b261 100644
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
@@ -58,34 +58,38 @@
@@ -134,6 +132,3 @@ index 64fc716..132b261 100644
#clock-cells = <1>;
compatible = "allwinner,sun4i-apb1-gates-clk";
reg = <0x01c2006c 0x4>;
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/112-dt-sun5i-rename-clocknodes.patch b/target/linux/sunxi/patches-3.14/112-dt-sun5i-rename-clocknodes.patch
index 4ed1f2d59e..d3e65a5e2c 100644
--- a/target/linux/sunxi/patches-3.14/112-dt-sun5i-rename-clocknodes.patch
+++ b/target/linux/sunxi/patches-3.14/112-dt-sun5i-rename-clocknodes.patch
@@ -14,11 +14,9 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
arch/arm/boot/dts/sun5i-a13.dtsi | 30 ++++++++++++++++++++----------
2 files changed, 40 insertions(+), 20 deletions(-)
-diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi
-index 848baaa..99a5120 100644
--- a/arch/arm/boot/dts/sun5i-a10s.dtsi
+++ b/arch/arm/boot/dts/sun5i-a10s.dtsi
-@@ -51,34 +51,38 @@
+@@ -47,34 +47,38 @@
clock-frequency = <0>;
};
@@ -62,7 +60,7 @@ index 848baaa..99a5120 100644
#clock-cells = <1>;
compatible = "allwinner,sun4i-pll5-clk";
reg = <0x01c20020 0x4>;
-@@ -86,7 +90,7 @@
+@@ -82,7 +86,7 @@
clock-output-names = "pll5_ddr", "pll5_other";
};
@@ -71,7 +69,7 @@ index 848baaa..99a5120 100644
#clock-cells = <1>;
compatible = "allwinner,sun4i-pll6-clk";
reg = <0x01c20028 0x4>;
-@@ -100,6 +104,7 @@
+@@ -96,6 +100,7 @@
compatible = "allwinner,sun4i-cpu-clk";
reg = <0x01c20054 0x4>;
clocks = <&osc32k>, <&osc24M>, <&pll1>, <&dummy>;
@@ -79,7 +77,7 @@ index 848baaa..99a5120 100644
};
axi: axi@01c20054 {
-@@ -107,9 +112,10 @@
+@@ -103,9 +108,10 @@
compatible = "allwinner,sun4i-axi-clk";
reg = <0x01c20054 0x4>;
clocks = <&cpu>;
@@ -91,7 +89,7 @@ index 848baaa..99a5120 100644
#clock-cells = <1>;
compatible = "allwinner,sun4i-axi-gates-clk";
reg = <0x01c2005c 0x4>;
-@@ -122,9 +128,10 @@
+@@ -118,9 +124,10 @@
compatible = "allwinner,sun4i-ahb-clk";
reg = <0x01c20054 0x4>;
clocks = <&axi>;
@@ -103,7 +101,7 @@ index 848baaa..99a5120 100644
#clock-cells = <1>;
compatible = "allwinner,sun5i-a10s-ahb-gates-clk";
reg = <0x01c20060 0x8>;
-@@ -143,9 +150,10 @@
+@@ -139,9 +146,10 @@
compatible = "allwinner,sun4i-apb0-clk";
reg = <0x01c20054 0x4>;
clocks = <&ahb>;
@@ -115,7 +113,7 @@ index 848baaa..99a5120 100644
#clock-cells = <1>;
compatible = "allwinner,sun5i-a10s-apb0-gates-clk";
reg = <0x01c20068 0x4>;
-@@ -159,6 +167,7 @@
+@@ -155,6 +163,7 @@
compatible = "allwinner,sun4i-apb1-mux-clk";
reg = <0x01c20058 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&osc32k>;
@@ -123,7 +121,7 @@ index 848baaa..99a5120 100644
};
apb1: apb1@01c20058 {
-@@ -166,9 +175,10 @@
+@@ -162,9 +171,10 @@
compatible = "allwinner,sun4i-apb1-clk";
reg = <0x01c20058 0x4>;
clocks = <&apb1_mux>;
@@ -135,8 +133,6 @@ index 848baaa..99a5120 100644
#clock-cells = <1>;
compatible = "allwinner,sun5i-a10s-apb1-gates-clk";
reg = <0x01c2006c 0x4>;
-diff --git a/arch/arm/boot/dts/sun5i-a13.dtsi b/arch/arm/boot/dts/sun5i-a13.dtsi
-index d8207b0..b776baa 100644
--- a/arch/arm/boot/dts/sun5i-a13.dtsi
+++ b/arch/arm/boot/dts/sun5i-a13.dtsi
@@ -52,34 +52,38 @@
@@ -256,6 +252,3 @@ index d8207b0..b776baa 100644
#clock-cells = <1>;
compatible = "allwinner,sun5i-a13-apb1-gates-clk";
reg = <0x01c2006c 0x4>;
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/113-dt-sun6i-rename-clocknodes.patch b/target/linux/sunxi/patches-3.14/113-dt-sun6i-rename-clocknodes.patch
index 56c0208b0a..b0f7648026 100644
--- a/target/linux/sunxi/patches-3.14/113-dt-sun6i-rename-clocknodes.patch
+++ b/target/linux/sunxi/patches-3.14/113-dt-sun6i-rename-clocknodes.patch
@@ -13,8 +13,6 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
arch/arm/boot/dts/sun6i-a31.dtsi | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
-diff --git a/arch/arm/boot/dts/sun6i-a31.dtsi b/arch/arm/boot/dts/sun6i-a31.dtsi
-index fc07f70..d3f1995 100644
--- a/arch/arm/boot/dts/sun6i-a31.dtsi
+++ b/arch/arm/boot/dts/sun6i-a31.dtsi
@@ -70,17 +70,19 @@
@@ -107,6 +105,3 @@ index fc07f70..d3f1995 100644
#clock-cells = <1>;
compatible = "allwinner,sun6i-a31-apb2-gates-clk";
reg = <0x01c2006c 0x4>;
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/114-dt-sun7i-rename-clocknodes.patch b/target/linux/sunxi/patches-3.14/114-dt-sun7i-rename-clocknodes.patch
index a1786fc89e..a8a6993e99 100644
--- a/target/linux/sunxi/patches-3.14/114-dt-sun7i-rename-clocknodes.patch
+++ b/target/linux/sunxi/patches-3.14/114-dt-sun7i-rename-clocknodes.patch
@@ -13,11 +13,9 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
arch/arm/boot/dts/sun7i-a20.dtsi | 25 +++++++++++++++++--------
1 file changed, 17 insertions(+), 8 deletions(-)
-diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
-index 2139e0f..78f562a 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
-@@ -54,11 +54,12 @@
+@@ -62,11 +62,12 @@
#size-cells = <1>;
ranges;
@@ -31,7 +29,7 @@ index 2139e0f..78f562a 100644
};
osc32k: clk@0 {
-@@ -68,21 +69,23 @@
+@@ -76,21 +77,23 @@
clock-output-names = "osc32k";
};
@@ -58,7 +56,7 @@ index 2139e0f..78f562a 100644
#clock-cells = <1>;
compatible = "allwinner,sun4i-pll5-clk";
reg = <0x01c20020 0x4>;
-@@ -90,7 +93,7 @@
+@@ -98,7 +101,7 @@
clock-output-names = "pll5_ddr", "pll5_other";
};
@@ -67,7 +65,7 @@ index 2139e0f..78f562a 100644
#clock-cells = <1>;
compatible = "allwinner,sun4i-pll6-clk";
reg = <0x01c20028 0x4>;
-@@ -103,6 +106,7 @@
+@@ -111,6 +114,7 @@
compatible = "allwinner,sun4i-cpu-clk";
reg = <0x01c20054 0x4>;
clocks = <&osc32k>, <&osc24M>, <&pll1>, <&pll6 1>;
@@ -75,7 +73,7 @@ index 2139e0f..78f562a 100644
};
axi: axi@01c20054 {
-@@ -110,6 +114,7 @@
+@@ -118,6 +122,7 @@
compatible = "allwinner,sun4i-axi-clk";
reg = <0x01c20054 0x4>;
clocks = <&cpu>;
@@ -83,7 +81,7 @@ index 2139e0f..78f562a 100644
};
ahb: ahb@01c20054 {
-@@ -117,9 +122,10 @@
+@@ -125,9 +130,10 @@
compatible = "allwinner,sun4i-ahb-clk";
reg = <0x01c20054 0x4>;
clocks = <&axi>;
@@ -95,7 +93,7 @@ index 2139e0f..78f562a 100644
#clock-cells = <1>;
compatible = "allwinner,sun7i-a20-ahb-gates-clk";
reg = <0x01c20060 0x8>;
-@@ -144,9 +150,10 @@
+@@ -152,9 +158,10 @@
compatible = "allwinner,sun4i-apb0-clk";
reg = <0x01c20054 0x4>;
clocks = <&ahb>;
@@ -107,7 +105,7 @@ index 2139e0f..78f562a 100644
#clock-cells = <1>;
compatible = "allwinner,sun7i-a20-apb0-gates-clk";
reg = <0x01c20068 0x4>;
-@@ -162,6 +169,7 @@
+@@ -170,6 +177,7 @@
compatible = "allwinner,sun4i-apb1-mux-clk";
reg = <0x01c20058 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&osc32k>;
@@ -115,7 +113,7 @@ index 2139e0f..78f562a 100644
};
apb1: apb1@01c20058 {
-@@ -169,9 +177,10 @@
+@@ -177,9 +185,10 @@
compatible = "allwinner,sun4i-apb1-clk";
reg = <0x01c20058 0x4>;
clocks = <&apb1_mux>;
@@ -127,6 +125,3 @@ index 2139e0f..78f562a 100644
#clock-cells = <1>;
compatible = "allwinner,sun7i-a20-apb1-gates-clk";
reg = <0x01c2006c 0x4>;
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/115-dt-sun6i-fix-mod0-compat.patch b/target/linux/sunxi/patches-3.14/115-dt-sun6i-fix-mod0-compat.patch
index 6b14459100..f2644a1df7 100644
--- a/target/linux/sunxi/patches-3.14/115-dt-sun6i-fix-mod0-compat.patch
+++ b/target/linux/sunxi/patches-3.14/115-dt-sun6i-fix-mod0-compat.patch
@@ -11,8 +11,6 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
arch/arm/boot/dts/sun6i-a31.dtsi | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
-diff --git a/arch/arm/boot/dts/sun6i-a31.dtsi b/arch/arm/boot/dts/sun6i-a31.dtsi
-index af6f87c..42f310a 100644
--- a/arch/arm/boot/dts/sun6i-a31.dtsi
+++ b/arch/arm/boot/dts/sun6i-a31.dtsi
@@ -200,7 +200,7 @@
@@ -51,6 +49,3 @@ index af6f87c..42f310a 100644
reg = <0x01c200ac 0x4>;
clocks = <&osc24M>, <&pll6>;
clock-output-names = "spi3";
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/120-dt-sun7i-add-gmac-clocknode.patch b/target/linux/sunxi/patches-3.14/120-dt-sun7i-add-gmac-clocknode.patch
index 47dab70c69..9a1e485fd8 100644
--- a/target/linux/sunxi/patches-3.14/120-dt-sun7i-add-gmac-clocknode.patch
+++ b/target/linux/sunxi/patches-3.14/120-dt-sun7i-add-gmac-clocknode.patch
@@ -12,11 +12,9 @@ Signed-off-by: Chen-Yu Tsai <wens@csie.org>
arch/arm/boot/dts/sun7i-a20.dtsi | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
-diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
-index 78f562a..f6ae357 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
-@@ -322,6 +322,34 @@
+@@ -330,6 +330,34 @@
};
/*
@@ -51,6 +49,3 @@ index 78f562a..f6ae357 100644
* Dummy clock used by output clocks
*/
osc24M_32k: clk@1 {
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/121-dt-sun7i-add-gmac-ctrlnode.patch b/target/linux/sunxi/patches-3.14/121-dt-sun7i-add-gmac-ctrlnode.patch
index bf2d384325..3ddb55ec2f 100644
--- a/target/linux/sunxi/patches-3.14/121-dt-sun7i-add-gmac-ctrlnode.patch
+++ b/target/linux/sunxi/patches-3.14/121-dt-sun7i-add-gmac-ctrlnode.patch
@@ -8,11 +8,9 @@ Signed-off-by: Chen-Yu Tsai <wens@csie.org>
arch/arm/boot/dts/sun7i-a20.dtsi | 15 +++++++++++++++
1 file changed, 15 insertions(+)
-diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
-index f6ae357..fa489fe 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
-@@ -645,6 +645,21 @@
+@@ -653,6 +653,21 @@
status = "disabled";
};
@@ -34,6 +32,3 @@ index f6ae357..fa489fe 100644
hstimer@01c60000 {
compatible = "allwinner,sun7i-a20-hstimer";
reg = <0x01c60000 0x1000>;
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/122-dt-sun7i-add-pinmuxing-for-gmac.patch b/target/linux/sunxi/patches-3.14/122-dt-sun7i-add-pinmuxing-for-gmac.patch
index 7fa7b9c898..d539af245d 100644
--- a/target/linux/sunxi/patches-3.14/122-dt-sun7i-add-pinmuxing-for-gmac.patch
+++ b/target/linux/sunxi/patches-3.14/122-dt-sun7i-add-pinmuxing-for-gmac.patch
@@ -11,11 +11,9 @@ Signed-off-by: Chen-Yu Tsai <wens@csie.org>
arch/arm/boot/dts/sun7i-a20.dtsi | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
-diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
-index fa489fe..679dc50 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
-@@ -484,6 +484,32 @@
+@@ -492,6 +492,32 @@
allwinner,drive = <0>;
allwinner,pull = <0>;
};
@@ -48,6 +46,3 @@ index fa489fe..679dc50 100644
};
timer@01c20c00 {
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/123-dt-sun7i-cubietruck-enable-gmac.patch b/target/linux/sunxi/patches-3.14/123-dt-sun7i-cubietruck-enable-gmac.patch
index 4bc4a76ab5..9551fa874e 100644
--- a/target/linux/sunxi/patches-3.14/123-dt-sun7i-cubietruck-enable-gmac.patch
+++ b/target/linux/sunxi/patches-3.14/123-dt-sun7i-cubietruck-enable-gmac.patch
@@ -10,12 +10,10 @@ Signed-off-by: Chen-Yu Tsai <wens@csie.org>
arch/arm/boot/dts/sun7i-a20-cubietruck.dts | 12 ++++++++++++
1 file changed, 12 insertions(+)
-diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
-index f9dcb61..025ce52 100644
--- a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
+++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
-@@ -51,6 +51,18 @@
- pinctrl-0 = <&i2c2_pins_a>;
+@@ -47,6 +47,18 @@
+ pinctrl-0 = <&uart0_pins_a>;
status = "okay";
};
+
@@ -33,6 +31,3 @@ index f9dcb61..025ce52 100644
};
leds {
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/124-dt-sun7i-cubieboard2-enable-gmac.patch b/target/linux/sunxi/patches-3.14/124-dt-sun7i-cubieboard2-enable-gmac.patch
index 511606466d..c4744e9b74 100644
--- a/target/linux/sunxi/patches-3.14/124-dt-sun7i-cubieboard2-enable-gmac.patch
+++ b/target/linux/sunxi/patches-3.14/124-dt-sun7i-cubieboard2-enable-gmac.patch
@@ -11,8 +11,6 @@ Signed-off-by: Chen-Yu Tsai <wens@csie.org>
arch/arm/boot/dts/sun7i-a20-cubieboard2.dts | 27 ++++++++++++---------------
1 file changed, 12 insertions(+), 15 deletions(-)
-diff --git a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
-index 5c51cb8..7bf4935 100644
--- a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
+++ b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
@@ -19,21 +19,6 @@
@@ -56,6 +54,3 @@ index 5c51cb8..7bf4935 100644
};
leds {
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/125-dt-sun7i-olinuxinom-enable-gmac.patch b/target/linux/sunxi/patches-3.14/125-dt-sun7i-olinuxinom-enable-gmac.patch
index 756400a557..b4648c816b 100644
--- a/target/linux/sunxi/patches-3.14/125-dt-sun7i-olinuxinom-enable-gmac.patch
+++ b/target/linux/sunxi/patches-3.14/125-dt-sun7i-olinuxinom-enable-gmac.patch
@@ -12,8 +12,6 @@ Signed-off-by: Chen-Yu Tsai <wens@csie.org>
arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts | 27 +++++++++++--------------
1 file changed, 12 insertions(+), 15 deletions(-)
-diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
-index ead3013..b02a796 100644
--- a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
+++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
@@ -19,21 +19,6 @@
@@ -57,6 +55,3 @@ index ead3013..b02a796 100644
};
leds {
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/126-dt-sun7i-add-eth-alias-for-gmac.patch b/target/linux/sunxi/patches-3.14/126-dt-sun7i-add-eth-alias-for-gmac.patch
index 0fe2087ebc..014058802c 100644
--- a/target/linux/sunxi/patches-3.14/126-dt-sun7i-add-eth-alias-for-gmac.patch
+++ b/target/linux/sunxi/patches-3.14/126-dt-sun7i-add-eth-alias-for-gmac.patch
@@ -13,8 +13,6 @@ Signed-off-by: Chen-Yu Tsai <wens@csie.org>
arch/arm/boot/dts/sun7i-a20.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
-index 679dc50..bfc3a95 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -17,7 +17,7 @@
@@ -26,6 +24,3 @@ index 679dc50..bfc3a95 100644
serial0 = &uart0;
serial1 = &uart1;
serial2 = &uart2;
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/130-dt-sun4i-add-usbclock-bindings.patch b/target/linux/sunxi/patches-3.14/130-dt-sun4i-add-usbclock-bindings.patch
index 71d97c67ac..b94aeaf81c 100644
--- a/target/linux/sunxi/patches-3.14/130-dt-sun4i-add-usbclock-bindings.patch
+++ b/target/linux/sunxi/patches-3.14/130-dt-sun4i-add-usbclock-bindings.patch
@@ -10,8 +10,6 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
arch/arm/boot/dts/sun4i-a10.dtsi | 9 +++++++++
1 file changed, 9 insertions(+)
-diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
-index 132b261..2d623d0 100644
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
@@ -315,6 +315,15 @@
@@ -30,6 +28,3 @@ index 132b261..2d623d0 100644
spi3_clk: clk@01c200d4 {
#clock-cells = <0>;
compatible = "allwinner,sun4i-mod0-clk";
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/131-dt-sun5i-add-usbclock-bindings.patch b/target/linux/sunxi/patches-3.14/131-dt-sun5i-add-usbclock-bindings.patch
index 337710cbf5..366adb4b57 100644
--- a/target/linux/sunxi/patches-3.14/131-dt-sun5i-add-usbclock-bindings.patch
+++ b/target/linux/sunxi/patches-3.14/131-dt-sun5i-add-usbclock-bindings.patch
@@ -11,11 +11,9 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
arch/arm/boot/dts/sun5i-a13.dtsi | 9 +++++++++
2 files changed, 18 insertions(+)
-diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi
-index 99a5120..905317e 100644
--- a/arch/arm/boot/dts/sun5i-a10s.dtsi
+++ b/arch/arm/boot/dts/sun5i-a10s.dtsi
-@@ -276,6 +276,15 @@
+@@ -272,6 +272,15 @@
clock-output-names = "ir0";
};
@@ -31,8 +29,6 @@ index 99a5120..905317e 100644
mbus_clk: clk@01c2015c {
#clock-cells = <0>;
compatible = "allwinner,sun4i-mod0-clk";
-diff --git a/arch/arm/boot/dts/sun5i-a13.dtsi b/arch/arm/boot/dts/sun5i-a13.dtsi
-index b776baa..d196ebc6 100644
--- a/arch/arm/boot/dts/sun5i-a13.dtsi
+++ b/arch/arm/boot/dts/sun5i-a13.dtsi
@@ -274,6 +274,15 @@
@@ -51,6 +47,3 @@ index b776baa..d196ebc6 100644
mbus_clk: clk@01c2015c {
#clock-cells = <0>;
compatible = "allwinner,sun4i-mod0-clk";
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/132-dt-sun7i-add-usbclock-bindings.patch b/target/linux/sunxi/patches-3.14/132-dt-sun7i-add-usbclock-bindings.patch
index 151aa46162..1a97faef5e 100644
--- a/target/linux/sunxi/patches-3.14/132-dt-sun7i-add-usbclock-bindings.patch
+++ b/target/linux/sunxi/patches-3.14/132-dt-sun7i-add-usbclock-bindings.patch
@@ -10,11 +10,9 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
arch/arm/boot/dts/sun7i-a20.dtsi | 9 +++++++++
1 file changed, 9 insertions(+)
-diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
-index bfc3a95..822a816 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
-@@ -305,6 +305,15 @@
+@@ -313,6 +313,15 @@
clock-output-names = "ir1";
};
@@ -30,6 +28,3 @@ index bfc3a95..822a816 100644
spi3_clk: clk@01c200d4 {
#clock-cells = <0>;
compatible = "allwinner,sun4i-mod0-clk";
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/135-pinctrl-fixes.patch b/target/linux/sunxi/patches-3.14/135-pinctrl-fixes.patch
index e653fe900f..5eb1fabc0b 100644
--- a/target/linux/sunxi/patches-3.14/135-pinctrl-fixes.patch
+++ b/target/linux/sunxi/patches-3.14/135-pinctrl-fixes.patch
@@ -13,11 +13,9 @@ Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
drivers/pinctrl/pinctrl-sunxi-pins.h | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
-diff --git a/drivers/pinctrl/pinctrl-sunxi-pins.h b/drivers/pinctrl/pinctrl-sunxi-pins.h
-index 6fd8d4d..3d60669 100644
--- a/drivers/pinctrl/pinctrl-sunxi-pins.h
+++ b/drivers/pinctrl/pinctrl-sunxi-pins.h
-@@ -1932,27 +1932,27 @@ static const struct sunxi_desc_pin sun5i_a13_pins[] = {
+@@ -1932,27 +1932,27 @@ static const struct sunxi_desc_pin sun5i
SUNXI_PIN(SUNXI_PINCTRL_PIN_PF0,
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
@@ -51,24 +49,6 @@ index 6fd8d4d..3d60669 100644
/* Hole */
SUNXI_PIN(SUNXI_PINCTRL_PIN_PG0,
SUNXI_FUNCTION(0x0, "gpio_in"),
---
-2.0.3
-
-From 8d2c11e63a3302bbbdac41fc765c881da8a8eb37 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Sat, 15 Feb 2014 12:58:17 +0100
-Subject: [PATCH] pinctrl-sunxi: Fix hang on gpio irq
-
-Our irq handler was missing chained_irq_enter / exit calls, causing a
-hard hang as soon as a gpio irq happened.
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- drivers/pinctrl/pinctrl-sunxi.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/drivers/pinctrl/pinctrl-sunxi.c b/drivers/pinctrl/pinctrl-sunxi.c
-index f9fabe9..d16da53 100644
--- a/drivers/pinctrl/pinctrl-sunxi.c
+++ b/drivers/pinctrl/pinctrl-sunxi.c
@@ -13,6 +13,7 @@
@@ -79,7 +59,7 @@ index f9fabe9..d16da53 100644
#include <linux/irqdomain.h>
#include <linux/irqchip/chained_irq.h>
#include <linux/module.h>
-@@ -670,6 +671,8 @@ static void sunxi_pinctrl_irq_handler(unsigned irq, struct irq_desc *desc)
+@@ -670,6 +671,8 @@ static void sunxi_pinctrl_irq_handler(un
struct sunxi_pinctrl *pctl = irq_get_handler_data(irq);
const unsigned long reg = readl(pctl->membase + IRQ_STATUS_REG);
@@ -88,7 +68,7 @@ index f9fabe9..d16da53 100644
/* Clear all interrupts */
writel(reg, pctl->membase + IRQ_STATUS_REG);
-@@ -683,6 +686,7 @@ static void sunxi_pinctrl_irq_handler(unsigned irq, struct irq_desc *desc)
+@@ -683,6 +686,7 @@ static void sunxi_pinctrl_irq_handler(un
}
chained_irq_exit(chip, desc);
}
@@ -96,6 +76,3 @@ index f9fabe9..d16da53 100644
}
static struct of_device_id sunxi_pinctrl_match[] = {
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/136-1-irqchip-sun4i-fixes.patch b/target/linux/sunxi/patches-3.14/136-1-irqchip-sun4i-fixes.patch
index 5a8c83c5e1..4345d3e0dd 100644
--- a/target/linux/sunxi/patches-3.14/136-1-irqchip-sun4i-fixes.patch
+++ b/target/linux/sunxi/patches-3.14/136-1-irqchip-sun4i-fixes.patch
@@ -17,8 +17,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
kernel/irq/manage.c | 2 +-
4 files changed, 45 insertions(+), 9 deletions(-)
-diff --git a/include/linux/irq.h b/include/linux/irq.h
-index 7dc1003..0f036fb 100644
--- a/include/linux/irq.h
+++ b/include/linux/irq.h
@@ -349,6 +349,8 @@ struct irq_chip {
@@ -38,8 +36,6 @@ index 7dc1003..0f036fb 100644
};
/* This include will go away once we isolated irq_desc usage to core code */
-diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c
-index dc04c16..6397df2 100644
--- a/kernel/irq/chip.c
+++ b/kernel/irq/chip.c
@@ -281,6 +281,19 @@ void unmask_irq(struct irq_desc *desc)
@@ -62,7 +58,7 @@ index dc04c16..6397df2 100644
/*
* handle_nested_irq - Handle a nested irq from a irq thread
* @irq: the interrupt number
-@@ -435,6 +448,27 @@ static inline void preflow_handler(struct irq_desc *desc)
+@@ -435,6 +448,27 @@ static inline void preflow_handler(struc
static inline void preflow_handler(struct irq_desc *desc) { }
#endif
@@ -90,7 +86,7 @@ index dc04c16..6397df2 100644
/**
* handle_fasteoi_irq - irq handler for transparent controllers
* @irq: the interrupt number
-@@ -448,6 +482,8 @@ static inline void preflow_handler(struct irq_desc *desc) { }
+@@ -448,6 +482,8 @@ static inline void preflow_handler(struc
void
handle_fasteoi_irq(unsigned int irq, struct irq_desc *desc)
{
@@ -99,7 +95,7 @@ index dc04c16..6397df2 100644
raw_spin_lock(&desc->lock);
if (unlikely(irqd_irq_inprogress(&desc->irq_data)))
-@@ -473,18 +509,14 @@ handle_fasteoi_irq(unsigned int irq, struct irq_desc *desc)
+@@ -473,18 +509,14 @@ handle_fasteoi_irq(unsigned int irq, str
preflow_handler(desc);
handle_irq_event(desc);
@@ -122,11 +118,9 @@ index dc04c16..6397df2 100644
}
/**
-diff --git a/kernel/irq/internals.h b/kernel/irq/internals.h
-index 001fa5b..e98bb56 100644
--- a/kernel/irq/internals.h
+++ b/kernel/irq/internals.h
-@@ -73,6 +73,7 @@ extern void irq_percpu_enable(struct irq_desc *desc, unsigned int cpu);
+@@ -73,6 +73,7 @@ extern void irq_percpu_enable(struct irq
extern void irq_percpu_disable(struct irq_desc *desc, unsigned int cpu);
extern void mask_irq(struct irq_desc *desc);
extern void unmask_irq(struct irq_desc *desc);
@@ -134,11 +128,9 @@ index 001fa5b..e98bb56 100644
extern void init_kstat_irqs(struct irq_desc *desc, int node, int nr);
-diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
-index d3bf660..7593958 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
-@@ -718,7 +718,7 @@ static void irq_finalize_oneshot(struct irq_desc *desc,
+@@ -713,7 +713,7 @@ again:
if (!desc->threads_oneshot && !irqd_irq_disabled(&desc->irq_data) &&
irqd_irq_masked(&desc->irq_data))
@@ -147,35 +139,56 @@ index d3bf660..7593958 100644
out_unlock:
raw_spin_unlock_irq(&desc->lock);
---
-2.0.3
-
-From d000f9a5348e6d6c8b620a9c2d0b97c69d6d6153 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Tue, 11 Mar 2014 16:47:46 +0100
-Subject: [PATCH] irqchip: sun4i: Fix irq 0 not working
-
-SUN4I_IRQ_VECTOR_REG containing 0 can mean one of 3 things:
-1) no more irqs pending
-2) irq 0 pending
-3) spurious irq
-
-So if we immediately get a reading of 0, check the irq-pending reg
-to differentiate between 2 and 3. We only do this once to avoid
-the extra check in the common case of 1) hapening after having
-read the vector-reg once.
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
----
- drivers/irqchip/irq-sun4i.c | 18 ++++++++++++++++--
- 1 file changed, 16 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/irqchip/irq-sun4i.c b/drivers/irqchip/irq-sun4i.c
-index a5438d8..5c25048 100644
--- a/drivers/irqchip/irq-sun4i.c
+++ b/drivers/irqchip/irq-sun4i.c
-@@ -140,10 +140,24 @@ static asmlinkage void __exception_irq_entry sun4i_handle_irq(struct pt_regs *re
+@@ -41,13 +41,11 @@ static asmlinkage void __exception_irq_e
+ static void sun4i_irq_ack(struct irq_data *irqd)
+ {
+ unsigned int irq = irqd_to_hwirq(irqd);
+- unsigned int irq_off = irq % 32;
+- int reg = irq / 32;
+- u32 val;
+
+- val = readl(sun4i_irq_base + SUN4I_IRQ_PENDING_REG(reg));
+- writel(val | (1 << irq_off),
+- sun4i_irq_base + SUN4I_IRQ_PENDING_REG(reg));
++ if (irq != 0)
++ return; /* Only IRQ 0 / the ENMI needs to be acked */
++
++ writel(BIT(0), sun4i_irq_base + SUN4I_IRQ_PENDING_REG(0));
+ }
+
+ static void sun4i_irq_mask(struct irq_data *irqd)
+@@ -76,16 +74,16 @@ static void sun4i_irq_unmask(struct irq_
+
+ static struct irq_chip sun4i_irq_chip = {
+ .name = "sun4i_irq",
+- .irq_ack = sun4i_irq_ack,
++ .irq_eoi = sun4i_irq_ack,
+ .irq_mask = sun4i_irq_mask,
+ .irq_unmask = sun4i_irq_unmask,
++ .flags = IRQCHIP_EOI_THREADED | IRQCHIP_EOI_IF_HANDLED,
+ };
+
+ static int sun4i_irq_map(struct irq_domain *d, unsigned int virq,
+ irq_hw_number_t hw)
+ {
+- irq_set_chip_and_handler(virq, &sun4i_irq_chip,
+- handle_level_irq);
++ irq_set_chip_and_handler(virq, &sun4i_irq_chip, handle_fasteoi_irq);
+ set_irq_flags(virq, IRQF_VALID | IRQF_PROBE);
+
+ return 0;
+@@ -109,7 +107,7 @@ static int __init sun4i_of_init(struct d
+ writel(0, sun4i_irq_base + SUN4I_IRQ_ENABLE_REG(1));
+ writel(0, sun4i_irq_base + SUN4I_IRQ_ENABLE_REG(2));
+
+- /* Mask all the interrupts */
++ /* Unmask all the interrupts, ENABLE_REG(x) is used for masking */
+ writel(0, sun4i_irq_base + SUN4I_IRQ_MASK_REG(0));
+ writel(0, sun4i_irq_base + SUN4I_IRQ_MASK_REG(1));
+ writel(0, sun4i_irq_base + SUN4I_IRQ_MASK_REG(2));
+@@ -140,10 +138,24 @@ static asmlinkage void __exception_irq_e
{
u32 irq, hwirq;
@@ -202,214 +215,3 @@ index a5438d8..5c25048 100644
- }
+ } while (hwirq != 0);
}
---
-2.0.3
-
-From b37587009473582d9fc080e8b8b99b67b0077a90 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Tue, 11 Mar 2014 16:53:23 +0100
-Subject: [PATCH] irqchip: sun4i: Fix a comment about mask register
- initialization
-
-The comment was claiming that we were masking all irqs, while the code actually
-*un*masks all of them.
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
----
- drivers/irqchip/irq-sun4i.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/irqchip/irq-sun4i.c b/drivers/irqchip/irq-sun4i.c
-index 5c25048..8a2fbee 100644
---- a/drivers/irqchip/irq-sun4i.c
-+++ b/drivers/irqchip/irq-sun4i.c
-@@ -109,7 +109,7 @@ static int __init sun4i_of_init(struct device_node *node,
- writel(0, sun4i_irq_base + SUN4I_IRQ_ENABLE_REG(1));
- writel(0, sun4i_irq_base + SUN4I_IRQ_ENABLE_REG(2));
-
-- /* Mask all the interrupts */
-+ /* Unmask all the interrupts, ENABLE_REG(x) is used for masking */
- writel(0, sun4i_irq_base + SUN4I_IRQ_MASK_REG(0));
- writel(0, sun4i_irq_base + SUN4I_IRQ_MASK_REG(1));
- writel(0, sun4i_irq_base + SUN4I_IRQ_MASK_REG(2));
---
-2.0.3
-
-From c8865ee82b74b2d95339370972a0d9bfdbac09cf Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Wed, 12 Mar 2014 17:43:45 +0100
-Subject: [PATCH] irqchip: sun4i: Don't ack IRQs != 0, fix acking of IRQ 0
-
-All IRQs except for IRQ 0 seem to not need acking, so drop acking for them.
-
-The ENMI needs to have the ack done *after* clearing the interrupt source,
-otherwise we will get a spurious interrupt for each real interrupt.
-
-So use the new IRQCHIP_EOI_THREADED flag for this in combination with
-handle_fasteoi_irq. This uses a separate irq_chip struct for IRQ 0,
-since we only want this behavior for IRQ 0.
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- drivers/irqchip/irq-sun4i.c | 19 ++++++++++++++++---
- 1 file changed, 16 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/irqchip/irq-sun4i.c b/drivers/irqchip/irq-sun4i.c
-index 8a2fbee..a0ed1ea 100644
---- a/drivers/irqchip/irq-sun4i.c
-+++ b/drivers/irqchip/irq-sun4i.c
-@@ -76,16 +76,29 @@ static void sun4i_irq_unmask(struct irq_data *irqd)
-
- static struct irq_chip sun4i_irq_chip = {
- .name = "sun4i_irq",
-- .irq_ack = sun4i_irq_ack,
- .irq_mask = sun4i_irq_mask,
- .irq_unmask = sun4i_irq_unmask,
- };
-
-+/* IRQ 0 / the ENMI needs a late eoi call */
-+static struct irq_chip sun4i_irq_chip_enmi = {
-+ .name = "sun4i_irq",
-+ .irq_eoi = sun4i_irq_ack,
-+ .irq_mask = sun4i_irq_mask,
-+ .irq_unmask = sun4i_irq_unmask,
-+ .flags = IRQCHIP_EOI_THREADED | IRQCHIP_EOI_IF_HANDLED,
-+};
-+
- static int sun4i_irq_map(struct irq_domain *d, unsigned int virq,
- irq_hw_number_t hw)
- {
-- irq_set_chip_and_handler(virq, &sun4i_irq_chip,
-- handle_level_irq);
-+ if (hw == 0)
-+ irq_set_chip_and_handler(virq, &sun4i_irq_chip_enmi,
-+ handle_fasteoi_irq);
-+ else
-+ irq_set_chip_and_handler(virq, &sun4i_irq_chip,
-+ handle_level_irq);
-+
- set_irq_flags(virq, IRQF_VALID | IRQF_PROBE);
-
- return 0;
---
-2.0.3
-
-From f8b4347aa12d7a30aa1d3e5bfcdccece52d17af3 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Thu, 13 Mar 2014 19:38:26 +0100
-Subject: [PATCH] irqchip: sun4i: Use handle_fasteoi_irq for all interrupts
-
-Since the sun4i irq chip does not require any action and clears the interrupt
-when the level goes back to inactive, we don't need to mask / unmask for
-non oneshot IRQs, to achieve this we make sun4i_irq_ack a nop for all irqs
-except irq 0 and use handle_fasteoi_irq for all interrupts.
-
-Now there might be a case when the device reactivates the interrupt
-before the RETI. But that does not matter as we run the primary
-interrupt handlers with interrupts disabled.
-
-This also allows us to get rid of needing to use 2 irq_chip structs, this
-means that the IRQCHIP_EOI_THREADED | IRQCHIP_EOI_IF_HANDLED will now influence
-all interrupts rather then just irq 0, but that does not matter as the eoi
-is now a nop anyways for all interrupts but irq 0.
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
----
- drivers/irqchip/irq-sun4i.c | 18 ++++--------------
- 1 file changed, 4 insertions(+), 14 deletions(-)
-
-diff --git a/drivers/irqchip/irq-sun4i.c b/drivers/irqchip/irq-sun4i.c
-index a0ed1ea..6a8c88d 100644
---- a/drivers/irqchip/irq-sun4i.c
-+++ b/drivers/irqchip/irq-sun4i.c
-@@ -45,6 +45,9 @@ static void sun4i_irq_ack(struct irq_data *irqd)
- int reg = irq / 32;
- u32 val;
-
-+ if (irq != 0)
-+ return; /* Only IRQ 0 / the ENMI needs to be acked */
-+
- val = readl(sun4i_irq_base + SUN4I_IRQ_PENDING_REG(reg));
- writel(val | (1 << irq_off),
- sun4i_irq_base + SUN4I_IRQ_PENDING_REG(reg));
-@@ -76,13 +79,6 @@ static void sun4i_irq_unmask(struct irq_data *irqd)
-
- static struct irq_chip sun4i_irq_chip = {
- .name = "sun4i_irq",
-- .irq_mask = sun4i_irq_mask,
-- .irq_unmask = sun4i_irq_unmask,
--};
--
--/* IRQ 0 / the ENMI needs a late eoi call */
--static struct irq_chip sun4i_irq_chip_enmi = {
-- .name = "sun4i_irq",
- .irq_eoi = sun4i_irq_ack,
- .irq_mask = sun4i_irq_mask,
- .irq_unmask = sun4i_irq_unmask,
-@@ -92,13 +88,7 @@ static struct irq_chip sun4i_irq_chip_enmi = {
- static int sun4i_irq_map(struct irq_domain *d, unsigned int virq,
- irq_hw_number_t hw)
- {
-- if (hw == 0)
-- irq_set_chip_and_handler(virq, &sun4i_irq_chip_enmi,
-- handle_fasteoi_irq);
-- else
-- irq_set_chip_and_handler(virq, &sun4i_irq_chip,
-- handle_level_irq);
--
-+ irq_set_chip_and_handler(virq, &sun4i_irq_chip, handle_fasteoi_irq);
- set_irq_flags(virq, IRQF_VALID | IRQF_PROBE);
-
- return 0;
---
-2.0.3
-
-From de39bc31eaa554bd044e6adefacd3da6da5bf6e3 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Thu, 13 Mar 2014 20:41:20 +0100
-Subject: [PATCH] irqchip: sun4i: simplify sun4i_irq_ack
-
-Now that we only ack irq 0 the code can be simplified a lot.
-
-Also switch from read / modify / write to a simple write clear:
-1) This is what the android code does (it has a hack for acking irq 0
- in its unmask code doing this)
-2) read / modify / write simply does not make sense for an irq status
- register like this, if the other bits are writeable (and the data sheet says
- they are not) they should be write 1 to clear, since otherwise a read /
- modify / write can race with a device raising an interrupt and then clear
- the pending bit unintentionally
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
----
- drivers/irqchip/irq-sun4i.c | 7 +------
- 1 file changed, 1 insertion(+), 6 deletions(-)
-
-diff --git a/drivers/irqchip/irq-sun4i.c b/drivers/irqchip/irq-sun4i.c
-index 6a8c88d..75615b5 100644
---- a/drivers/irqchip/irq-sun4i.c
-+++ b/drivers/irqchip/irq-sun4i.c
-@@ -41,16 +41,11 @@ static asmlinkage void __exception_irq_entry sun4i_handle_irq(struct pt_regs *re
- static void sun4i_irq_ack(struct irq_data *irqd)
- {
- unsigned int irq = irqd_to_hwirq(irqd);
-- unsigned int irq_off = irq % 32;
-- int reg = irq / 32;
-- u32 val;
-
- if (irq != 0)
- return; /* Only IRQ 0 / the ENMI needs to be acked */
-
-- val = readl(sun4i_irq_base + SUN4I_IRQ_PENDING_REG(reg));
-- writel(val | (1 << irq_off),
-- sun4i_irq_base + SUN4I_IRQ_PENDING_REG(reg));
-+ writel(BIT(0), sun4i_irq_base + SUN4I_IRQ_PENDING_REG(0));
- }
-
- static void sun4i_irq_mask(struct irq_data *irqd)
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/137-1-pinctrl-create-irq-pin-mapping.patch b/target/linux/sunxi/patches-3.14/137-1-pinctrl-create-irq-pin-mapping.patch
index cd209cdb59..1e4f1c79df 100644
--- a/target/linux/sunxi/patches-3.14/137-1-pinctrl-create-irq-pin-mapping.patch
+++ b/target/linux/sunxi/patches-3.14/137-1-pinctrl-create-irq-pin-mapping.patch
@@ -13,11 +13,9 @@ Signed-off-by: Chen-Yu Tsai <wens@csie.org>
drivers/pinctrl/pinctrl-sunxi.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
-diff --git a/drivers/pinctrl/pinctrl-sunxi.c b/drivers/pinctrl/pinctrl-sunxi.c
-index d16da53..067e7e10 100644
--- a/drivers/pinctrl/pinctrl-sunxi.c
+++ b/drivers/pinctrl/pinctrl-sunxi.c
-@@ -531,8 +531,6 @@ static int sunxi_pinctrl_gpio_to_irq(struct gpio_chip *chip, unsigned offset)
+@@ -531,8 +531,6 @@ static int sunxi_pinctrl_gpio_to_irq(str
if (!desc)
return -EINVAL;
@@ -26,7 +24,7 @@ index d16da53..067e7e10 100644
dev_dbg(chip->dev, "%s: request IRQ for GPIO %d, return %d\n",
chip->label, offset + chip->base, desc->irqnum);
-@@ -759,6 +757,9 @@ static int sunxi_pinctrl_build_state(struct platform_device *pdev)
+@@ -759,6 +757,9 @@ static int sunxi_pinctrl_build_state(str
struct sunxi_desc_function *func = pin->functions;
while (func->name) {
@@ -36,6 +34,3 @@ index d16da53..067e7e10 100644
sunxi_pinctrl_add_function(pctl, func->name);
func++;
}
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/137-2-pinctrl-add-IRQCHIP_SKIP_SET_WAKE.patch b/target/linux/sunxi/patches-3.14/137-2-pinctrl-add-IRQCHIP_SKIP_SET_WAKE.patch
index 8db59a454d..58e13946d9 100644
--- a/target/linux/sunxi/patches-3.14/137-2-pinctrl-add-IRQCHIP_SKIP_SET_WAKE.patch
+++ b/target/linux/sunxi/patches-3.14/137-2-pinctrl-add-IRQCHIP_SKIP_SET_WAKE.patch
@@ -13,11 +13,9 @@ Also add a name to the irq chip.
drivers/pinctrl/pinctrl-sunxi.c | 2 ++
1 file changed, 2 insertions(+)
-diff --git a/drivers/pinctrl/pinctrl-sunxi.c b/drivers/pinctrl/pinctrl-sunxi.c
-index 067e7e10..d7a41a8 100644
--- a/drivers/pinctrl/pinctrl-sunxi.c
+++ b/drivers/pinctrl/pinctrl-sunxi.c
-@@ -661,6 +661,8 @@ static struct irq_chip sunxi_pinctrl_irq_chip = {
+@@ -661,6 +661,8 @@ static struct irq_chip sunxi_pinctrl_irq
.irq_mask_ack = sunxi_pinctrl_irq_mask_ack,
.irq_unmask = sunxi_pinctrl_irq_unmask,
.irq_set_type = sunxi_pinctrl_irq_set_type,
@@ -26,6 +24,3 @@ index 067e7e10..d7a41a8 100644
};
static void sunxi_pinctrl_irq_handler(unsigned irq, struct irq_desc *desc)
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/137-3-dt-sun7i-add-interrupt-cells.patch b/target/linux/sunxi/patches-3.14/137-3-dt-sun7i-add-interrupt-cells.patch
index 31cf5e4852..fb3b5cde95 100644
--- a/target/linux/sunxi/patches-3.14/137-3-dt-sun7i-add-interrupt-cells.patch
+++ b/target/linux/sunxi/patches-3.14/137-3-dt-sun7i-add-interrupt-cells.patch
@@ -13,11 +13,9 @@ Signed-off-by: Chen-Yu Tsai <wens@csie.org>
arch/arm/boot/dts/sun7i-a20.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
-index 0c57ac5..30b9aba 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
-@@ -572,7 +572,7 @@
+@@ -424,7 +424,7 @@
clocks = <&apb0_gates 5>;
gpio-controller;
interrupt-controller;
@@ -26,6 +24,3 @@ index 0c57ac5..30b9aba 100644
#size-cells = <0>;
#gpio-cells = <3>;
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/140-dt-sunxi-convert-to-new-clock-compats.patch b/target/linux/sunxi/patches-3.14/140-dt-sunxi-convert-to-new-clock-compats.patch
index 443a65218e..875aea1450 100644
--- a/target/linux/sunxi/patches-3.14/140-dt-sunxi-convert-to-new-clock-compats.patch
+++ b/target/linux/sunxi/patches-3.14/140-dt-sunxi-convert-to-new-clock-compats.patch
@@ -15,8 +15,6 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
arch/arm/boot/dts/sun7i-a20.dtsi | 54 +++++++++++++++++------------------
5 files changed, 110 insertions(+), 110 deletions(-)
-diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
-index 2d623d0..f6f41d6 100644
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
@@ -60,7 +60,7 @@
@@ -289,11 +287,9 @@ index 2d623d0..f6f41d6 100644
reg = <0x01c200d4 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "spi3";
-diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi
-index 905317e..df90a29 100644
--- a/arch/arm/boot/dts/sun5i-a10s.dtsi
+++ b/arch/arm/boot/dts/sun5i-a10s.dtsi
-@@ -53,7 +53,7 @@
+@@ -49,7 +49,7 @@
osc24M: clk@01c20050 {
#clock-cells = <0>;
@@ -302,7 +298,7 @@ index 905317e..df90a29 100644
reg = <0x01c20050 0x4>;
clock-frequency = <24000000>;
clock-output-names = "osc24M";
-@@ -68,7 +68,7 @@
+@@ -64,7 +64,7 @@
pll1: clk@01c20000 {
#clock-cells = <0>;
@@ -311,7 +307,7 @@ index 905317e..df90a29 100644
reg = <0x01c20000 0x4>;
clocks = <&osc24M>;
clock-output-names = "pll1";
-@@ -76,7 +76,7 @@
+@@ -72,7 +72,7 @@
pll4: clk@01c20018 {
#clock-cells = <0>;
@@ -320,7 +316,7 @@ index 905317e..df90a29 100644
reg = <0x01c20018 0x4>;
clocks = <&osc24M>;
clock-output-names = "pll4";
-@@ -84,7 +84,7 @@
+@@ -80,7 +80,7 @@
pll5: clk@01c20020 {
#clock-cells = <1>;
@@ -329,7 +325,7 @@ index 905317e..df90a29 100644
reg = <0x01c20020 0x4>;
clocks = <&osc24M>;
clock-output-names = "pll5_ddr", "pll5_other";
-@@ -92,7 +92,7 @@
+@@ -88,7 +88,7 @@
pll6: clk@01c20028 {
#clock-cells = <1>;
@@ -338,7 +334,7 @@ index 905317e..df90a29 100644
reg = <0x01c20028 0x4>;
clocks = <&osc24M>;
clock-output-names = "pll6_sata", "pll6_other", "pll6";
-@@ -101,7 +101,7 @@
+@@ -97,7 +97,7 @@
/* dummy is 200M */
cpu: cpu@01c20054 {
#clock-cells = <0>;
@@ -347,7 +343,7 @@ index 905317e..df90a29 100644
reg = <0x01c20054 0x4>;
clocks = <&osc32k>, <&osc24M>, <&pll1>, <&dummy>;
clock-output-names = "cpu";
-@@ -109,7 +109,7 @@
+@@ -105,7 +105,7 @@
axi: axi@01c20054 {
#clock-cells = <0>;
@@ -356,7 +352,7 @@ index 905317e..df90a29 100644
reg = <0x01c20054 0x4>;
clocks = <&cpu>;
clock-output-names = "axi";
-@@ -117,7 +117,7 @@
+@@ -113,7 +113,7 @@
axi_gates: clk@01c2005c {
#clock-cells = <1>;
@@ -365,7 +361,7 @@ index 905317e..df90a29 100644
reg = <0x01c2005c 0x4>;
clocks = <&axi>;
clock-output-names = "axi_dram";
-@@ -125,7 +125,7 @@
+@@ -121,7 +121,7 @@
ahb: ahb@01c20054 {
#clock-cells = <0>;
@@ -374,7 +370,7 @@ index 905317e..df90a29 100644
reg = <0x01c20054 0x4>;
clocks = <&axi>;
clock-output-names = "ahb";
-@@ -147,7 +147,7 @@
+@@ -143,7 +143,7 @@
apb0: apb0@01c20054 {
#clock-cells = <0>;
@@ -383,7 +379,7 @@ index 905317e..df90a29 100644
reg = <0x01c20054 0x4>;
clocks = <&ahb>;
clock-output-names = "apb0";
-@@ -164,7 +164,7 @@
+@@ -160,7 +160,7 @@
apb1_mux: apb1_mux@01c20058 {
#clock-cells = <0>;
@@ -392,7 +388,7 @@ index 905317e..df90a29 100644
reg = <0x01c20058 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&osc32k>;
clock-output-names = "apb1_mux";
-@@ -172,7 +172,7 @@
+@@ -168,7 +168,7 @@
apb1: apb1@01c20058 {
#clock-cells = <0>;
@@ -401,7 +397,7 @@ index 905317e..df90a29 100644
reg = <0x01c20058 0x4>;
clocks = <&apb1_mux>;
clock-output-names = "apb1";
-@@ -190,7 +190,7 @@
+@@ -186,7 +186,7 @@
nand_clk: clk@01c20080 {
#clock-cells = <0>;
@@ -410,7 +406,7 @@ index 905317e..df90a29 100644
reg = <0x01c20080 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "nand";
-@@ -198,7 +198,7 @@
+@@ -194,7 +194,7 @@
ms_clk: clk@01c20084 {
#clock-cells = <0>;
@@ -419,7 +415,7 @@ index 905317e..df90a29 100644
reg = <0x01c20084 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "ms";
-@@ -206,7 +206,7 @@
+@@ -202,7 +202,7 @@
mmc0_clk: clk@01c20088 {
#clock-cells = <0>;
@@ -428,7 +424,7 @@ index 905317e..df90a29 100644
reg = <0x01c20088 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "mmc0";
-@@ -214,7 +214,7 @@
+@@ -210,7 +210,7 @@
mmc1_clk: clk@01c2008c {
#clock-cells = <0>;
@@ -437,7 +433,7 @@ index 905317e..df90a29 100644
reg = <0x01c2008c 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "mmc1";
-@@ -222,7 +222,7 @@
+@@ -218,7 +218,7 @@
mmc2_clk: clk@01c20090 {
#clock-cells = <0>;
@@ -446,7 +442,7 @@ index 905317e..df90a29 100644
reg = <0x01c20090 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "mmc2";
-@@ -230,7 +230,7 @@
+@@ -226,7 +226,7 @@
ts_clk: clk@01c20098 {
#clock-cells = <0>;
@@ -455,7 +451,7 @@ index 905317e..df90a29 100644
reg = <0x01c20098 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "ts";
-@@ -238,7 +238,7 @@
+@@ -234,7 +234,7 @@
ss_clk: clk@01c2009c {
#clock-cells = <0>;
@@ -464,7 +460,7 @@ index 905317e..df90a29 100644
reg = <0x01c2009c 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "ss";
-@@ -246,7 +246,7 @@
+@@ -242,7 +242,7 @@
spi0_clk: clk@01c200a0 {
#clock-cells = <0>;
@@ -473,7 +469,7 @@ index 905317e..df90a29 100644
reg = <0x01c200a0 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "spi0";
-@@ -254,7 +254,7 @@
+@@ -250,7 +250,7 @@
spi1_clk: clk@01c200a4 {
#clock-cells = <0>;
@@ -482,7 +478,7 @@ index 905317e..df90a29 100644
reg = <0x01c200a4 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "spi1";
-@@ -262,7 +262,7 @@
+@@ -258,7 +258,7 @@
spi2_clk: clk@01c200a8 {
#clock-cells = <0>;
@@ -491,7 +487,7 @@ index 905317e..df90a29 100644
reg = <0x01c200a8 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "spi2";
-@@ -270,7 +270,7 @@
+@@ -266,7 +266,7 @@
ir0_clk: clk@01c200b0 {
#clock-cells = <0>;
@@ -500,7 +496,7 @@ index 905317e..df90a29 100644
reg = <0x01c200b0 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "ir0";
-@@ -287,7 +287,7 @@
+@@ -283,7 +283,7 @@
mbus_clk: clk@01c2015c {
#clock-cells = <0>;
@@ -509,8 +505,6 @@ index 905317e..df90a29 100644
reg = <0x01c2015c 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "mbus";
-diff --git a/arch/arm/boot/dts/sun5i-a13.dtsi b/arch/arm/boot/dts/sun5i-a13.dtsi
-index d196ebc6..24cd86cb 100644
--- a/arch/arm/boot/dts/sun5i-a13.dtsi
+++ b/arch/arm/boot/dts/sun5i-a13.dtsi
@@ -54,7 +54,7 @@
@@ -729,8 +723,6 @@ index d196ebc6..24cd86cb 100644
reg = <0x01c2015c 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "mbus";
-diff --git a/arch/arm/boot/dts/sun6i-a31.dtsi b/arch/arm/boot/dts/sun6i-a31.dtsi
-index d3f1995..af6f87c 100644
--- a/arch/arm/boot/dts/sun6i-a31.dtsi
+++ b/arch/arm/boot/dts/sun6i-a31.dtsi
@@ -95,7 +95,7 @@
@@ -778,8 +770,6 @@ index d3f1995..af6f87c 100644
reg = <0x01c20058 0x4>;
clocks = <&osc32k>, <&osc24M>, <&pll6>, <&pll6>;
clock-output-names = "apb2_mux";
-diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
-index 911d4e4..d00fbf8 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -64,7 +64,7 @@
@@ -1025,6 +1015,3 @@ index 911d4e4..d00fbf8 100644
reg = <0x01c2015c 0x4>;
clocks = <&osc24M>, <&pll6 2>, <&pll5 1>;
clock-output-names = "mbus";
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/141-dt-sunxi-add-common-regulator-include.patch b/target/linux/sunxi/patches-3.14/141-dt-sunxi-add-common-regulator-include.patch
index 07dda97efa..32f4f72a9b 100644
--- a/target/linux/sunxi/patches-3.14/141-dt-sunxi-add-common-regulator-include.patch
+++ b/target/linux/sunxi/patches-3.14/141-dt-sunxi-add-common-regulator-include.patch
@@ -17,9 +17,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
1 file changed, 75 insertions(+)
create mode 100644 arch/arm/boot/dts/sunxi-common-regulators.dtsi
-diff --git a/arch/arm/boot/dts/sunxi-common-regulators.dtsi b/arch/arm/boot/dts/sunxi-common-regulators.dtsi
-new file mode 100644
-index 0000000..18eeac0
--- /dev/null
+++ b/arch/arm/boot/dts/sunxi-common-regulators.dtsi
@@ -0,0 +1,75 @@
@@ -98,6 +95,3 @@ index 0000000..18eeac0
+ status = "disabled";
+ };
+};
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/145-1-dt-sun7i-add-a20-spi.patch b/target/linux/sunxi/patches-3.14/145-1-dt-sun7i-add-a20-spi.patch
index 47e342c66a..45dc8ba733 100644
--- a/target/linux/sunxi/patches-3.14/145-1-dt-sun7i-add-a20-spi.patch
+++ b/target/linux/sunxi/patches-3.14/145-1-dt-sun7i-add-a20-spi.patch
@@ -11,8 +11,6 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
arch/arm/boot/dts/sun7i-a20.dtsi | 44 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)
-diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
-index d00fbf8..0f0ee58 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -401,6 +401,28 @@
@@ -44,10 +42,12 @@ index d00fbf8..0f0ee58 100644
emac: ethernet@01c0b000 {
compatible = "allwinner,sun4i-a10-emac";
reg = <0x01c0b000 0x1000>;
-@@ -417,6 +439,28 @@
+@@ -415,6 +437,28 @@
+ status = "disabled";
+ #address-cells = <1>;
#size-cells = <0>;
- };
-
++ };
++
+ spi2: spi@01c17000 {
+ compatible = "allwinner,sun4i-a10-spi";
+ reg = <0x01c17000 0x1000>;
@@ -68,11 +68,6 @@ index d00fbf8..0f0ee58 100644
+ status = "disabled";
+ #address-cells = <1>;
+ #size-cells = <0>;
-+ };
-+
+ };
+
pio: pinctrl@01c20800 {
- compatible = "allwinner,sun7i-a20-pinctrl";
- reg = <0x01c20800 0x400>;
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/145-2-dt-sun4i-add-a10-spi.patch b/target/linux/sunxi/patches-3.14/145-2-dt-sun4i-add-a10-spi.patch
index d39b6eebec..1505e66075 100644
--- a/target/linux/sunxi/patches-3.14/145-2-dt-sun4i-add-a10-spi.patch
+++ b/target/linux/sunxi/patches-3.14/145-2-dt-sun4i-add-a10-spi.patch
@@ -10,8 +10,6 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
arch/arm/boot/dts/sun4i-a10.dtsi | 44 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)
-diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
-index f6f41d6..157bc09 100644
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
@@ -339,6 +339,28 @@
@@ -43,10 +41,12 @@ index f6f41d6..157bc09 100644
emac: ethernet@01c0b000 {
compatible = "allwinner,sun4i-a10-emac";
reg = <0x01c0b000 0x1000>;
-@@ -355,6 +377,28 @@
+@@ -353,6 +375,28 @@
+ status = "disabled";
+ #address-cells = <1>;
#size-cells = <0>;
- };
-
++ };
++
+ spi2: spi@01c17000 {
+ compatible = "allwinner,sun4i-a10-spi";
+ reg = <0x01c17000 0x1000>;
@@ -67,11 +67,6 @@ index f6f41d6..157bc09 100644
+ status = "disabled";
+ #address-cells = <1>;
+ #size-cells = <0>;
-+ };
-+
+ };
+
intc: interrupt-controller@01c20400 {
- compatible = "allwinner,sun4i-ic";
- reg = <0x01c20400 0x400>;
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/145-3-dt-sun5i-add-a13-spi.patch b/target/linux/sunxi/patches-3.14/145-3-dt-sun5i-add-a13-spi.patch
index 75cbcee7cb..7558d5623e 100644
--- a/target/linux/sunxi/patches-3.14/145-3-dt-sun5i-add-a13-spi.patch
+++ b/target/linux/sunxi/patches-3.14/145-3-dt-sun5i-add-a13-spi.patch
@@ -11,8 +11,6 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
arch/arm/boot/dts/sun5i-a13.dtsi | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
-diff --git a/arch/arm/boot/dts/sun5i-a13.dtsi b/arch/arm/boot/dts/sun5i-a13.dtsi
-index 24cd86cb..7102d12 100644
--- a/arch/arm/boot/dts/sun5i-a13.dtsi
+++ b/arch/arm/boot/dts/sun5i-a13.dtsi
@@ -298,6 +298,39 @@
@@ -55,6 +53,3 @@ index 24cd86cb..7102d12 100644
intc: interrupt-controller@01c20400 {
compatible = "allwinner,sun4i-ic";
reg = <0x01c20400 0x400>;
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/146-1-spi-add-a31-spi.patch b/target/linux/sunxi/patches-3.14/146-1-spi-add-a31-spi.patch
index 3d52020e5e..761ecc18f2 100644
--- a/target/linux/sunxi/patches-3.14/146-1-spi-add-a31-spi.patch
+++ b/target/linux/sunxi/patches-3.14/146-1-spi-add-a31-spi.patch
@@ -19,9 +19,6 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
create mode 100644 Documentation/devicetree/bindings/spi/spi-sun6i.txt
create mode 100644 drivers/spi/spi-sun6i.c
-diff --git a/Documentation/devicetree/bindings/spi/spi-sun6i.txt b/Documentation/devicetree/bindings/spi/spi-sun6i.txt
-new file mode 100644
-index 0000000..21de73d
--- /dev/null
+++ b/Documentation/devicetree/bindings/spi/spi-sun6i.txt
@@ -0,0 +1,24 @@
@@ -49,11 +46,9 @@ index 0000000..21de73d
+ clock-names = "ahb", "mod";
+ resets = <&ahb1_rst 21>;
+};
-diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
-index 581ee2a..58530d3 100644
--- a/drivers/spi/Kconfig
+++ b/drivers/spi/Kconfig
-@@ -446,6 +446,12 @@ config SPI_SIRF
+@@ -455,6 +455,12 @@ config SPI_SIRF
help
SPI driver for CSR SiRFprimaII SoCs
@@ -66,11 +61,9 @@ index 581ee2a..58530d3 100644
config SPI_MXS
tristate "Freescale MXS SPI controller"
depends on ARCH_MXS
-diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile
-index 95af48d..13b6ccf9 100644
--- a/drivers/spi/Makefile
+++ b/drivers/spi/Makefile
-@@ -70,6 +70,7 @@ obj-$(CONFIG_SPI_SH_HSPI) += spi-sh-hspi.o
+@@ -71,6 +71,7 @@ obj-$(CONFIG_SPI_SH_HSPI) += spi-sh-hsp
obj-$(CONFIG_SPI_SH_MSIOF) += spi-sh-msiof.o
obj-$(CONFIG_SPI_SH_SCI) += spi-sh-sci.o
obj-$(CONFIG_SPI_SIRF) += spi-sirf.o
@@ -78,9 +71,6 @@ index 95af48d..13b6ccf9 100644
obj-$(CONFIG_SPI_TEGRA114) += spi-tegra114.o
obj-$(CONFIG_SPI_TEGRA20_SFLASH) += spi-tegra20-sflash.o
obj-$(CONFIG_SPI_TEGRA20_SLINK) += spi-tegra20-slink.o
-diff --git a/drivers/spi/spi-sun6i.c b/drivers/spi/spi-sun6i.c
-new file mode 100644
-index 0000000..94d38d0
--- /dev/null
+++ b/drivers/spi/spi-sun6i.c
@@ -0,0 +1,483 @@
@@ -567,6 +557,3 @@ index 0000000..94d38d0
+MODULE_AUTHOR("Maxime Ripard <maxime.ripard@free-electrons.com>");
+MODULE_DESCRIPTION("Allwinner A31 SPI controller driver");
+MODULE_LICENSE("GPL");
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/146-2-spi-add-a10-spi.patch b/target/linux/sunxi/patches-3.14/146-2-spi-add-a10-spi.patch
index 38461d4dc0..483d216a57 100644
--- a/target/linux/sunxi/patches-3.14/146-2-spi-add-a10-spi.patch
+++ b/target/linux/sunxi/patches-3.14/146-2-spi-add-a10-spi.patch
@@ -24,9 +24,6 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
create mode 100644 Documentation/devicetree/bindings/spi/spi-sun4i.txt
create mode 100644 drivers/spi/spi-sun4i.c
-diff --git a/Documentation/devicetree/bindings/spi/spi-sun4i.txt b/Documentation/devicetree/bindings/spi/spi-sun4i.txt
-new file mode 100644
-index 0000000..de827f5
--- /dev/null
+++ b/Documentation/devicetree/bindings/spi/spi-sun4i.txt
@@ -0,0 +1,24 @@
@@ -54,11 +51,9 @@ index 0000000..de827f5
+ #address-cells = <1>;
+ #size-cells = <0>;
+};
-diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
-index 58530d3..78adfae 100644
--- a/drivers/spi/Kconfig
+++ b/drivers/spi/Kconfig
-@@ -446,6 +446,12 @@ config SPI_SIRF
+@@ -455,6 +455,12 @@ config SPI_SIRF
help
SPI driver for CSR SiRFprimaII SoCs
@@ -71,11 +66,9 @@ index 58530d3..78adfae 100644
config SPI_SUN6I
tristate "Allwinner A31 SPI controller"
depends on ARCH_SUNXI || COMPILE_TEST
-diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile
-index 13b6ccf9..65f4993 100644
--- a/drivers/spi/Makefile
+++ b/drivers/spi/Makefile
-@@ -70,6 +70,7 @@ obj-$(CONFIG_SPI_SH_HSPI) += spi-sh-hspi.o
+@@ -71,6 +71,7 @@ obj-$(CONFIG_SPI_SH_HSPI) += spi-sh-hsp
obj-$(CONFIG_SPI_SH_MSIOF) += spi-sh-msiof.o
obj-$(CONFIG_SPI_SH_SCI) += spi-sh-sci.o
obj-$(CONFIG_SPI_SIRF) += spi-sirf.o
@@ -83,9 +76,6 @@ index 13b6ccf9..65f4993 100644
obj-$(CONFIG_SPI_SUN6I) += spi-sun6i.o
obj-$(CONFIG_SPI_TEGRA114) += spi-tegra114.o
obj-$(CONFIG_SPI_TEGRA20_SFLASH) += spi-tegra20-sflash.o
-diff --git a/drivers/spi/spi-sun4i.c b/drivers/spi/spi-sun4i.c
-new file mode 100644
-index 0000000..3f82705
--- /dev/null
+++ b/drivers/spi/spi-sun4i.c
@@ -0,0 +1,477 @@
@@ -566,6 +556,3 @@ index 0000000..3f82705
+MODULE_AUTHOR("Maxime Ripard <maxime.ripard@free-electrons.com>");
+MODULE_DESCRIPTION("Allwinner A1X/A20 SPI controller driver");
+MODULE_LICENSE("GPL");
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/147-sun6i-enable-spi-in-defconfig.patch b/target/linux/sunxi/patches-3.14/147-sun6i-enable-spi-in-defconfig.patch
index 2eac6a45cd..6f2dbe5375 100644
--- a/target/linux/sunxi/patches-3.14/147-sun6i-enable-spi-in-defconfig.patch
+++ b/target/linux/sunxi/patches-3.14/147-sun6i-enable-spi-in-defconfig.patch
@@ -8,8 +8,6 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
arch/arm/configs/sunxi_defconfig | 3 +++
1 file changed, 3 insertions(+)
-diff --git a/arch/arm/configs/sunxi_defconfig b/arch/arm/configs/sunxi_defconfig
-index 3e2259b..b5df4a5 100644
--- a/arch/arm/configs/sunxi_defconfig
+++ b/arch/arm/configs/sunxi_defconfig
@@ -24,6 +24,7 @@ CONFIG_IP_PNP_BOOTP=y
@@ -29,6 +27,3 @@ index 3e2259b..b5df4a5 100644
CONFIG_GPIO_SYSFS=y
# CONFIG_HWMON is not set
CONFIG_WATCHDOG=y
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/148-dt-sun7i-add-spi-muxing.patch b/target/linux/sunxi/patches-3.14/148-dt-sun7i-add-spi-muxing.patch
index f554267a5e..0c78fa4bc8 100644
--- a/target/linux/sunxi/patches-3.14/148-dt-sun7i-add-spi-muxing.patch
+++ b/target/linux/sunxi/patches-3.14/148-dt-sun7i-add-spi-muxing.patch
@@ -8,8 +8,6 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
arch/arm/boot/dts/sun7i-a20.dtsi | 14 ++++++++++++++
1 file changed, 14 insertions(+)
-diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
-index 0f0ee58..6161fd8 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -571,6 +571,20 @@
@@ -33,6 +31,3 @@ index 0f0ee58..6161fd8 100644
};
timer@01c20c00 {
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/149-dt-sun7i-add-spi-on-olinuxinom.patch b/target/linux/sunxi/patches-3.14/149-dt-sun7i-add-spi-on-olinuxinom.patch
index e814af5aef..cbcfea7c9c 100644
--- a/target/linux/sunxi/patches-3.14/149-dt-sun7i-add-spi-on-olinuxinom.patch
+++ b/target/linux/sunxi/patches-3.14/149-dt-sun7i-add-spi-on-olinuxinom.patch
@@ -12,8 +12,6 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
-diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
-index b02a796..9d98316 100644
--- a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
+++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
@@ -18,7 +18,24 @@
@@ -41,6 +39,3 @@ index b02a796..9d98316 100644
pinctrl@01c20800 {
led_pins_olinuxino: led_pins@0 {
allwinner,pins = "PH2";
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/150-dt-sun4i-add-ahci.patch b/target/linux/sunxi/patches-3.14/150-dt-sun4i-add-ahci.patch
index f82261d52d..6c10a98d77 100644
--- a/target/linux/sunxi/patches-3.14/150-dt-sun4i-add-ahci.patch
+++ b/target/linux/sunxi/patches-3.14/150-dt-sun4i-add-ahci.patch
@@ -15,8 +15,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
arch/arm/boot/dts/sun4i-a10.dtsi | 8 ++++++++
3 files changed, 22 insertions(+)
-diff --git a/arch/arm/boot/dts/sun4i-a10-a1000.dts b/arch/arm/boot/dts/sun4i-a10-a1000.dts
-index cbd2e13..d6ec839 100644
--- a/arch/arm/boot/dts/sun4i-a10-a1000.dts
+++ b/arch/arm/boot/dts/sun4i-a10-a1000.dts
@@ -35,6 +35,10 @@
@@ -30,8 +28,6 @@ index cbd2e13..d6ec839 100644
pinctrl@01c20800 {
emac_power_pin_a1000: emac_power_pin@0 {
allwinner,pins = "PH15";
-diff --git a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
-index b139ee6..20407ac 100644
--- a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
+++ b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
@@ -12,6 +12,7 @@
@@ -63,8 +59,6 @@ index b139ee6..20407ac 100644
+ status = "okay";
+ };
};
-diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
-index 157bc09..18e09b41 100644
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
@@ -388,6 +388,14 @@
@@ -82,6 +76,3 @@ index 157bc09..18e09b41 100644
spi3: spi@01c1f000 {
compatible = "allwinner,sun4i-a10-spi";
reg = <0x01c1f000 0x1000>;
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/151-dt-sun7i-add-ahci.patch b/target/linux/sunxi/patches-3.14/151-dt-sun7i-add-ahci.patch
index d4685d93d5..28722028e2 100644
--- a/target/linux/sunxi/patches-3.14/151-dt-sun7i-add-ahci.patch
+++ b/target/linux/sunxi/patches-3.14/151-dt-sun7i-add-ahci.patch
@@ -16,8 +16,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
arch/arm/boot/dts/sun7i-a20.dtsi | 8 ++++++++
4 files changed, 47 insertions(+)
-diff --git a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
-index 7bf4935..4bed115 100644
--- a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
+++ b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
@@ -13,12 +13,18 @@
@@ -48,8 +46,6 @@ index 7bf4935..4bed115 100644
+ status = "okay";
+ };
};
-diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
-index 025ce52..ef5fed8 100644
--- a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
+++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
@@ -13,13 +13,26 @@
@@ -79,7 +75,7 @@ index 025ce52..ef5fed8 100644
led_pins_cubietruck: led_pins@0 {
allwinner,pins = "PH7", "PH11", "PH20", "PH21";
allwinner,function = "gpio_out";
-@@ -90,4 +103,10 @@
+@@ -86,4 +99,10 @@
gpios = <&pio 7 7 0>;
};
};
@@ -90,8 +86,6 @@ index 025ce52..ef5fed8 100644
+ status = "okay";
+ };
};
-diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
-index 9d98316..c9b0f37 100644
--- a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
+++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
@@ -13,6 +13,7 @@
@@ -123,8 +117,6 @@ index 9d98316..c9b0f37 100644
+ status = "okay";
+ };
};
-diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
-index 6161fd8..864b7c6 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -450,6 +450,14 @@
@@ -142,6 +134,3 @@ index 6161fd8..864b7c6 100644
spi3: spi@01c1f000 {
compatible = "allwinner,sun4i-a10-spi";
reg = <0x01c1f000 0x1000>;
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/155-wdt-add-new-compats.patch b/target/linux/sunxi/patches-3.14/155-wdt-add-new-compats.patch
index 1635025522..75c444d6d0 100644
--- a/target/linux/sunxi/patches-3.14/155-wdt-add-new-compats.patch
+++ b/target/linux/sunxi/patches-3.14/155-wdt-add-new-compats.patch
@@ -14,8 +14,6 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
drivers/watchdog/sunxi_wdt.c | 1 +
2 files changed, 5 insertions(+), 3 deletions(-)
-diff --git a/Documentation/devicetree/bindings/watchdog/sunxi-wdt.txt b/Documentation/devicetree/bindings/watchdog/sunxi-wdt.txt
-index e39cb26..6e8c937 100644
--- a/Documentation/devicetree/bindings/watchdog/sunxi-wdt.txt
+++ b/Documentation/devicetree/bindings/watchdog/sunxi-wdt.txt
@@ -2,13 +2,14 @@ Allwinner SoCs Watchdog timer
@@ -36,11 +34,9 @@ index e39cb26..6e8c937 100644
+ compatible = "allwinner,sun4i-a10-wdt";
reg = <0x01c20c90 0x10>;
};
-diff --git a/drivers/watchdog/sunxi_wdt.c b/drivers/watchdog/sunxi_wdt.c
-index 76332d89..7c8923d 100644
--- a/drivers/watchdog/sunxi_wdt.c
+++ b/drivers/watchdog/sunxi_wdt.c
-@@ -206,6 +206,7 @@ static void sunxi_wdt_shutdown(struct platform_device *pdev)
+@@ -206,6 +206,7 @@ static void sunxi_wdt_shutdown(struct pl
static const struct of_device_id sunxi_wdt_dt_ids[] = {
{ .compatible = "allwinner,sun4i-wdt" },
@@ -48,6 +44,3 @@ index 76332d89..7c8923d 100644
{ /* sentinel */ }
};
MODULE_DEVICE_TABLE(of, sunxi_wdt_dt_ids);
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/156-dt-sunxi-update-wdt-compats.patch b/target/linux/sunxi/patches-3.14/156-dt-sunxi-update-wdt-compats.patch
index 6ac1a7e8f9..235550b47d 100644
--- a/target/linux/sunxi/patches-3.14/156-dt-sunxi-update-wdt-compats.patch
+++ b/target/linux/sunxi/patches-3.14/156-dt-sunxi-update-wdt-compats.patch
@@ -16,11 +16,9 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
arch/arm/boot/dts/sun7i-a20.dtsi | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
-diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
-index 3ce650b..4b90a18 100644
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
-@@ -597,7 +597,7 @@
+@@ -487,7 +487,7 @@
};
wdt: watchdog@01c20c90 {
@@ -29,11 +27,9 @@ index 3ce650b..4b90a18 100644
reg = <0x01c20c90 0x10>;
};
-diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi
-index 1795c26..45300a6 100644
--- a/arch/arm/boot/dts/sun5i-a10s.dtsi
+++ b/arch/arm/boot/dts/sun5i-a10s.dtsi
-@@ -508,7 +508,7 @@
+@@ -392,7 +392,7 @@
};
wdt: watchdog@01c20c90 {
@@ -42,11 +38,9 @@ index 1795c26..45300a6 100644
reg = <0x01c20c90 0x10>;
};
-diff --git a/arch/arm/boot/dts/sun5i-a13.dtsi b/arch/arm/boot/dts/sun5i-a13.dtsi
-index 8bc8e14..280ffee 100644
--- a/arch/arm/boot/dts/sun5i-a13.dtsi
+++ b/arch/arm/boot/dts/sun5i-a13.dtsi
-@@ -454,7 +454,7 @@
+@@ -393,7 +393,7 @@
};
wdt: watchdog@01c20c90 {
@@ -55,8 +49,6 @@ index 8bc8e14..280ffee 100644
reg = <0x01c20c90 0x10>;
};
-diff --git a/arch/arm/boot/dts/sun6i-a31.dtsi b/arch/arm/boot/dts/sun6i-a31.dtsi
-index e4267bd..8441733 100644
--- a/arch/arm/boot/dts/sun6i-a31.dtsi
+++ b/arch/arm/boot/dts/sun6i-a31.dtsi
@@ -289,7 +289,7 @@
@@ -68,11 +60,9 @@ index e4267bd..8441733 100644
reg = <0x01c20ca0 0x20>;
};
-diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
-index 30b9aba..4981f5e 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
-@@ -725,7 +725,7 @@
+@@ -608,7 +608,7 @@
};
wdt: watchdog@01c20c90 {
@@ -81,6 +71,3 @@ index 30b9aba..4981f5e 100644
reg = <0x01c20c90 0x10>;
};
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/160-dt-sun4i-add-usb-host-bindings.patch b/target/linux/sunxi/patches-3.14/160-dt-sun4i-add-usb-host-bindings.patch
index 9ca7345e20..f1853dfb42 100644
--- a/target/linux/sunxi/patches-3.14/160-dt-sun4i-add-usb-host-bindings.patch
+++ b/target/linux/sunxi/patches-3.14/160-dt-sun4i-add-usb-host-bindings.patch
@@ -11,8 +11,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
arch/arm/boot/dts/sun4i-a10.dtsi | 52 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
-diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
-index 18e09b41..27dc6ee 100644
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
@@ -377,6 +377,38 @@
@@ -81,6 +79,3 @@ index 18e09b41..27dc6ee 100644
spi3: spi@01c1f000 {
compatible = "allwinner,sun4i-a10-spi";
reg = <0x01c1f000 0x1000>;
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/161-dt-sun5i-add-usb-host-bindings.patch b/target/linux/sunxi/patches-3.14/161-dt-sun5i-add-usb-host-bindings.patch
index 1beb5e14d8..7b014954f7 100644
--- a/target/linux/sunxi/patches-3.14/161-dt-sun5i-add-usb-host-bindings.patch
+++ b/target/linux/sunxi/patches-3.14/161-dt-sun5i-add-usb-host-bindings.patch
@@ -12,10 +12,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
arch/arm/boot/dts/sun5i-a13.dtsi | 32 ++++++++++++++++++++++++++++++++
2 files changed, 64 insertions(+)
-diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi
-index b2cb5dc..f34e0d8 100644
-diff --git a/arch/arm/boot/dts/sun5i-a13.dtsi b/arch/arm/boot/dts/sun5i-a13.dtsi
-index 7102d12..0e9c239 100644
--- a/arch/arm/boot/dts/sun5i-a13.dtsi
+++ b/arch/arm/boot/dts/sun5i-a13.dtsi
@@ -320,6 +320,38 @@
@@ -57,6 +53,3 @@ index 7102d12..0e9c239 100644
spi2: spi@01c17000 {
compatible = "allwinner,sun4i-a10-spi";
reg = <0x01c17000 0x1000>;
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/162-dt-sun7i-add-usb-host-bindings.patch b/target/linux/sunxi/patches-3.14/162-dt-sun7i-add-usb-host-bindings.patch
index b2b9d33caa..a8d0f171d9 100644
--- a/target/linux/sunxi/patches-3.14/162-dt-sun7i-add-usb-host-bindings.patch
+++ b/target/linux/sunxi/patches-3.14/162-dt-sun7i-add-usb-host-bindings.patch
@@ -11,8 +11,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
arch/arm/boot/dts/sun7i-a20.dtsi | 52 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
-diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
-index 864b7c6..4cc2f5f 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -439,6 +439,38 @@
@@ -81,6 +79,3 @@ index 864b7c6..4cc2f5f 100644
spi3: spi@01c1f000 {
compatible = "allwinner,sun4i-a10-spi";
reg = <0x01c1f000 0x1000>;
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/163-dt-sun4i-add-usb-host-to-boards.patch b/target/linux/sunxi/patches-3.14/163-dt-sun4i-add-usb-host-to-boards.patch
index 220bed603e..ce78cb7512 100644
--- a/target/linux/sunxi/patches-3.14/163-dt-sun4i-add-usb-host-to-boards.patch
+++ b/target/linux/sunxi/patches-3.14/163-dt-sun4i-add-usb-host-to-boards.patch
@@ -19,8 +19,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
arch/arm/boot/dts/sun4i-a10-hackberry.dts | 40 +++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
-diff --git a/arch/arm/boot/dts/sun4i-a10-hackberry.dts b/arch/arm/boot/dts/sun4i-a10-hackberry.dts
-index 6692d336..d7c17e4 100644
--- a/arch/arm/boot/dts/sun4i-a10-hackberry.dts
+++ b/arch/arm/boot/dts/sun4i-a10-hackberry.dts
@@ -13,6 +13,7 @@
@@ -74,9 +72,9 @@ index 6692d336..d7c17e4 100644
};
uart0: serial@01c28000 {
-@@ -62,4 +92,14 @@
- enable-active-high;
- gpio = <&pio 7 19 0>;
+@@ -66,4 +96,14 @@
+ gpio = <&pio 7 19 0>;
+ };
};
+
+ reg_usb1_vbus: usb1-vbus {
@@ -89,23 +87,6 @@ index 6692d336..d7c17e4 100644
+ status = "okay";
+ };
};
---
-2.0.3
-
-From dbf6ffa0b3832d91c2509e6753f485cedc791051 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Sat, 11 Jan 2014 05:15:06 +0100
-Subject: [PATCH] ARM: sun4i: dt: Add USB host nodes to mini-xplus dts
-
-Add nodes for the usb-phy and ehci- and ohci-usb-host controllers.
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- arch/arm/boot/dts/sun4i-a10-mini-xplus.dts | 31 ++++++++++++++++++++++++++++++
- 1 file changed, 31 insertions(+)
-
-diff --git a/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts b/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts
-index 70b3323..dd84a9e3 100644
--- a/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts
+++ b/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts
@@ -13,16 +13,47 @@
@@ -156,21 +137,6 @@ index 70b3323..dd84a9e3 100644
+ status = "okay";
+ };
};
---
-2.0.3
-
-From 528808ae38fee761be9f3451f51b457cb56d33ee Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Mon, 17 Feb 2014 20:41:04 +0100
-Subject: [PATCH] ARM: sun4i: dt: Add USB host nodes to pcduino.dts
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- arch/arm/boot/dts/sun4i-a10-pcduino.dts | 31 +++++++++++++++++++++++++++++++
- 1 file changed, 31 insertions(+)
-
-diff --git a/arch/arm/boot/dts/sun4i-a10-pcduino.dts b/arch/arm/boot/dts/sun4i-a10-pcduino.dts
-index f5692a3..255b47e 100644
--- a/arch/arm/boot/dts/sun4i-a10-pcduino.dts
+++ b/arch/arm/boot/dts/sun4i-a10-pcduino.dts
@@ -12,6 +12,7 @@
@@ -223,24 +189,6 @@ index f5692a3..255b47e 100644
+ status = "okay";
+ };
};
---
-2.0.3
-
-From 58b778ce8cbc6fdb1fda5a6998fdd114a2b77cc9 Mon Sep 17 00:00:00 2001
-From: Roman Byshko <rbyshko@gmail.com>
-Date: Wed, 18 Sep 2013 22:45:06 +0200
-Subject: [PATCH] ARM: sun4i: dt: Add USB host nodes to cubieboard dts
-
-Add nodes for the usb-phy and ehci- and ohci-usb-host controllers.
-
-Signed-off-by: Roman Byshko <rbyshko@gmail.com>
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- arch/arm/boot/dts/sun4i-a10-cubieboard.dts | 30 ++++++++++++++++++++++++++++++
- 1 file changed, 30 insertions(+)
-
-diff --git a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
-index 20407ac..4684cbe 100644
--- a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
+++ b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
@@ -34,11 +34,33 @@
@@ -290,6 +238,3 @@ index 20407ac..4684cbe 100644
+ status = "okay";
+ };
};
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/164-dt-sun5i-add-usb-host-to-boards.patch b/target/linux/sunxi/patches-3.14/164-dt-sun5i-add-usb-host-to-boards.patch
index 203b185d3c..9776f5ba5c 100644
--- a/target/linux/sunxi/patches-3.14/164-dt-sun5i-add-usb-host-to-boards.patch
+++ b/target/linux/sunxi/patches-3.14/164-dt-sun5i-add-usb-host-to-boards.patch
@@ -11,8 +11,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
arch/arm/boot/dts/sun5i-a13-olinuxino.dts | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
-diff --git a/arch/arm/boot/dts/sun5i-a13-olinuxino.dts b/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
-index a4ba5ff..7a9187b 100644
--- a/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
+++ b/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
@@ -13,12 +13,26 @@
@@ -67,23 +65,6 @@ index a4ba5ff..7a9187b 100644
+ status = "okay";
+ };
};
---
-2.0.3
-
-From a3396ca280066e9a1ee74b36f5e376c945382bff Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Sat, 11 Jan 2014 05:21:43 +0100
-Subject: [PATCH] ARM: sun5i: dt: Add USB host nodes to a13-olinuxino-micro
-
-Add nodes for the usb-phy and ehci- and ohci-usb-host controllers.
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts | 27 +++++++++++++++++++++++++
- 1 file changed, 27 insertions(+)
-
-diff --git a/arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts b/arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts
-index fe2ce0a..11169d5 100644
--- a/arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts
+++ b/arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts
@@ -14,12 +14,26 @@
@@ -138,6 +119,3 @@ index fe2ce0a..11169d5 100644
+ status = "okay";
+ };
};
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/165-dt-sun7i-add-usb-host-to-boards.patch b/target/linux/sunxi/patches-3.14/165-dt-sun7i-add-usb-host-to-boards.patch
index d720f645d6..00d28e7e5d 100644
--- a/target/linux/sunxi/patches-3.14/165-dt-sun7i-add-usb-host-to-boards.patch
+++ b/target/linux/sunxi/patches-3.14/165-dt-sun7i-add-usb-host-to-boards.patch
@@ -10,8 +10,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
arch/arm/boot/dts/sun7i-a20-cubietruck.dts | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
-diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
-index ef5fed8..cb25d3c 100644
--- a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
+++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
@@ -20,11 +20,33 @@
@@ -48,7 +46,7 @@ index ef5fed8..cb25d3c 100644
pinctrl@01c20800 {
ahci_pwr_pin_cubietruck: ahci_pwr_pin@1 {
allwinner,pins = "PH12";
-@@ -109,4 +131,12 @@
+@@ -105,4 +127,12 @@
gpio = <&pio 7 12 0>;
status = "okay";
};
@@ -61,24 +59,6 @@ index ef5fed8..cb25d3c 100644
+ status = "okay";
+ };
};
---
-2.0.3
-
-From 8ce7da7026a24fe522abb3d7798cea12358946c0 Mon Sep 17 00:00:00 2001
-From: Roman Byshko <rbyshko@gmail.com>
-Date: Thu, 19 Sep 2013 21:29:45 +0200
-Subject: [PATCH] ARM: sun7i: dt: Add USB host nodes to cubieboard2 dts
-
-Add nodes for the usb-phy and ehci- and ohci-usb-host controllers.
-
-Signed-off-by: Roman Byshko <rbyshko@gmail.com>
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- arch/arm/boot/dts/sun7i-a20-cubieboard2.dts | 30 +++++++++++++++++++++++++++++
- 1 file changed, 30 insertions(+)
-
-diff --git a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
-index 4bed115..68de89f 100644
--- a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
+++ b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
@@ -20,11 +20,33 @@
@@ -128,23 +108,6 @@ index 4bed115..68de89f 100644
+ status = "okay";
+ };
};
---
-2.0.3
-
-From e0e1a55781f7ba89a776456c8764782165e5efcc Mon Sep 17 00:00:00 2001
-From: Zalan Blenessy <zalan.blenessy@gmail.com>
-Date: Sun, 22 Dec 2013 17:08:10 +0100
-Subject: [PATCH] ARM: sun7i: dt: Add USB host nodes to a20-olinuxino-micro dts
-
-Add nodes for the usb-phy and ehci- and ohci-usb-host controllers.
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts | 30 +++++++++++++++++++++++++
- 1 file changed, 30 insertions(+)
-
-diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
-index c9b0f37..eeadf76 100644
--- a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
+++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
@@ -31,6 +31,20 @@
@@ -196,6 +159,3 @@ index c9b0f37..eeadf76 100644
+ status = "okay";
+ };
};
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/170-input-add-sun4i-ts-driver.patch b/target/linux/sunxi/patches-3.14/170-input-add-sun4i-ts-driver.patch
index d97b02a306..bde35b1f12 100644
--- a/target/linux/sunxi/patches-3.14/170-input-add-sun4i-ts-driver.patch
+++ b/target/linux/sunxi/patches-3.14/170-input-add-sun4i-ts-driver.patch
@@ -27,9 +27,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
create mode 100644 Documentation/devicetree/bindings/input/touchscreen/sun4i.txt
create mode 100644 drivers/input/touchscreen/sun4i-ts.c
-diff --git a/Documentation/devicetree/bindings/input/touchscreen/sun4i.txt b/Documentation/devicetree/bindings/input/touchscreen/sun4i.txt
-new file mode 100644
-index 0000000..e45927e
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/touchscreen/sun4i.txt
@@ -0,0 +1,15 @@
@@ -48,8 +45,6 @@ index 0000000..e45927e
+ reg = <0x01c25000 0x100>;
+ interrupts = <29>;
+ };
-diff --git a/drivers/input/touchscreen/Kconfig b/drivers/input/touchscreen/Kconfig
-index 07e9e82..f4c5ca3 100644
--- a/drivers/input/touchscreen/Kconfig
+++ b/drivers/input/touchscreen/Kconfig
@@ -906,6 +906,16 @@ config TOUCHSCREEN_STMPE
@@ -69,11 +64,9 @@ index 07e9e82..f4c5ca3 100644
config TOUCHSCREEN_SUR40
tristate "Samsung SUR40 (Surface 2.0/PixelSense) touchscreen"
depends on USB
-diff --git a/drivers/input/touchscreen/Makefile b/drivers/input/touchscreen/Makefile
-index 62801f2..c8f7375 100644
--- a/drivers/input/touchscreen/Makefile
+++ b/drivers/input/touchscreen/Makefile
-@@ -54,6 +54,7 @@ obj-$(CONFIG_TOUCHSCREEN_PIXCIR) += pixcir_i2c_ts.o
+@@ -54,6 +54,7 @@ obj-$(CONFIG_TOUCHSCREEN_PIXCIR) += pixc
obj-$(CONFIG_TOUCHSCREEN_S3C2410) += s3c2410_ts.o
obj-$(CONFIG_TOUCHSCREEN_ST1232) += st1232.o
obj-$(CONFIG_TOUCHSCREEN_STMPE) += stmpe-ts.o
@@ -81,9 +74,6 @@ index 62801f2..c8f7375 100644
obj-$(CONFIG_TOUCHSCREEN_SUR40) += sur40.o
obj-$(CONFIG_TOUCHSCREEN_TI_AM335X_TSC) += ti_am335x_tsc.o
obj-$(CONFIG_TOUCHSCREEN_TNETV107X) += tnetv107x-ts.o
-diff --git a/drivers/input/touchscreen/sun4i-ts.c b/drivers/input/touchscreen/sun4i-ts.c
-new file mode 100644
-index 0000000..5945219
--- /dev/null
+++ b/drivers/input/touchscreen/sun4i-ts.c
@@ -0,0 +1,262 @@
@@ -349,6 +339,3 @@ index 0000000..5945219
+MODULE_DESCRIPTION("Allwinner sun4i resistive touchscreen controller driver");
+MODULE_AUTHOR("Hans de Goede <hdegoede@redhat.com>");
+MODULE_LICENSE("GPL");
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/171-input-add-temp-sensor-support.patch b/target/linux/sunxi/patches-3.14/171-input-add-temp-sensor-support.patch
index 3d0bdad31f..bad8df7687 100644
--- a/target/linux/sunxi/patches-3.14/171-input-add-temp-sensor-support.patch
+++ b/target/linux/sunxi/patches-3.14/171-input-add-temp-sensor-support.patch
@@ -17,8 +17,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
drivers/input/touchscreen/sun4i-ts.c | 140 ++++++++++++++++-----
2 files changed, 114 insertions(+), 31 deletions(-)
-diff --git a/Documentation/devicetree/bindings/input/touchscreen/sun4i.txt b/Documentation/devicetree/bindings/input/touchscreen/sun4i.txt
-index e45927e..6bac67b 100644
--- a/Documentation/devicetree/bindings/input/touchscreen/sun4i.txt
+++ b/Documentation/devicetree/bindings/input/touchscreen/sun4i.txt
@@ -6,10 +6,15 @@ Required properties:
@@ -37,8 +35,6 @@ index e45927e..6bac67b 100644
interrupts = <29>;
+ allwinner,ts-attached;
};
-diff --git a/drivers/input/touchscreen/sun4i-ts.c b/drivers/input/touchscreen/sun4i-ts.c
-index 5945219..16cbb01 100644
--- a/drivers/input/touchscreen/sun4i-ts.c
+++ b/drivers/input/touchscreen/sun4i-ts.c
@@ -3,6 +3,9 @@
@@ -77,7 +73,7 @@ index 5945219..16cbb01 100644
if (reg_val & FIFO_DATA_PENDING) {
x = readl(ts->base + TP_DATA);
-@@ -139,6 +141,20 @@ static irqreturn_t sun4i_ts_irq(int irq, void *dev_id)
+@@ -139,6 +141,20 @@ static irqreturn_t sun4i_ts_irq(int irq,
input_report_key(ts->input, BTN_TOUCH, 0);
input_sync(ts->input);
}
@@ -98,7 +94,7 @@ index 5945219..16cbb01 100644
writel(reg_val, ts->base + TP_INT_FIFOS);
-@@ -149,9 +165,9 @@ static int sun4i_ts_open(struct input_dev *dev)
+@@ -149,9 +165,9 @@ static int sun4i_ts_open(struct input_de
{
struct sun4i_ts_data *ts = input_get_drvdata(dev);
@@ -111,7 +107,7 @@ index 5945219..16cbb01 100644
return 0;
}
-@@ -160,15 +176,48 @@ static void sun4i_ts_close(struct input_dev *dev)
+@@ -160,15 +176,48 @@ static void sun4i_ts_close(struct input_
{
struct sun4i_ts_data *ts = input_get_drvdata(dev);
@@ -162,11 +158,12 @@ index 5945219..16cbb01 100644
ts = devm_kzalloc(dev, sizeof(struct sun4i_ts_data), GFP_KERNEL);
if (!ts)
-@@ -176,24 +225,27 @@ static int sun4i_ts_probe(struct platform_device *pdev)
+@@ -176,24 +225,27 @@ static int sun4i_ts_probe(struct platfor
ts->dev = dev;
ts->ignore_fifo_data = true;
--
++ ts->temp_data = -1;
+
- ts->input = devm_input_allocate_device(dev);
- if (!ts->input)
- return -ENOMEM;
@@ -184,8 +181,6 @@ index 5945219..16cbb01 100644
- input_set_abs_params(ts->input, ABS_X, 0, 4095, 0, 0);
- input_set_abs_params(ts->input, ABS_Y, 0, 4095, 0, 0);
- input_set_drvdata(ts->input, ts);
-+ ts->temp_data = -1;
-+
+ if (ts_attached) {
+ ts->input = devm_input_allocate_device(dev);
+ if (!ts->input)
@@ -208,7 +203,7 @@ index 5945219..16cbb01 100644
ts->base = devm_ioremap_resource(dev,
platform_get_resource(pdev, IORESOURCE_MEM, 0));
-@@ -232,14 +284,39 @@ static int sun4i_ts_probe(struct platform_device *pdev)
+@@ -232,14 +284,39 @@ static int sun4i_ts_probe(struct platfor
writel(STYLUS_UP_DEBOUN(5) | STYLUS_UP_DEBOUN_EN(1) | TP_MODE_EN(1),
ts->base + TP_CTRL1);
@@ -251,7 +246,7 @@ index 5945219..16cbb01 100644
static const struct of_device_id sun4i_ts_of_match[] = {
{ .compatible = "allwinner,sun4i-ts", },
{ /* sentinel */ }
-@@ -253,6 +330,7 @@ static struct platform_driver sun4i_ts_driver = {
+@@ -253,6 +330,7 @@ static struct platform_driver sun4i_ts_d
.of_match_table = of_match_ptr(sun4i_ts_of_match),
},
.probe = sun4i_ts_probe,
@@ -259,6 +254,3 @@ index 5945219..16cbb01 100644
};
module_platform_driver(sun4i_ts_driver);
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/172-input-add-lradc-keys-driver.patch b/target/linux/sunxi/patches-3.14/172-input-add-lradc-keys-driver.patch
index ee8f80668f..859a7f1a67 100644
--- a/target/linux/sunxi/patches-3.14/172-input-add-lradc-keys-driver.patch
+++ b/target/linux/sunxi/patches-3.14/172-input-add-lradc-keys-driver.patch
@@ -24,9 +24,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
create mode 100644 Documentation/devicetree/bindings/input/sun4i-lradc-keys.txt
create mode 100644 drivers/input/keyboard/sun4i-lradc-keys.c
-diff --git a/Documentation/devicetree/bindings/input/sun4i-lradc-keys.txt b/Documentation/devicetree/bindings/input/sun4i-lradc-keys.txt
-new file mode 100644
-index 0000000..7801264
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/sun4i-lradc-keys.txt
@@ -0,0 +1,22 @@
@@ -52,8 +49,6 @@ index 0000000..7801264
+ linux,chan0-keycodes = <KEY_VOLUMEUP KEY_VOLUMEDOWN
+ KEY_MENU KEY_ENTER KEY_HOME>;
+ };
-diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig
-index a673c9f..d8a51cd 100644
--- a/drivers/input/keyboard/Kconfig
+++ b/drivers/input/keyboard/Kconfig
@@ -544,6 +544,16 @@ config KEYBOARD_STMPE
@@ -73,11 +68,9 @@ index a673c9f..d8a51cd 100644
config KEYBOARD_DAVINCI
tristate "TI DaVinci Key Scan"
depends on ARCH_DAVINCI_DM365
-diff --git a/drivers/input/keyboard/Makefile b/drivers/input/keyboard/Makefile
-index a699b61..f3265bd 100644
--- a/drivers/input/keyboard/Makefile
+++ b/drivers/input/keyboard/Makefile
-@@ -50,6 +50,7 @@ obj-$(CONFIG_KEYBOARD_SH_KEYSC) += sh_keysc.o
+@@ -50,6 +50,7 @@ obj-$(CONFIG_KEYBOARD_SH_KEYSC) += sh_k
obj-$(CONFIG_KEYBOARD_SPEAR) += spear-keyboard.o
obj-$(CONFIG_KEYBOARD_STMPE) += stmpe-keypad.o
obj-$(CONFIG_KEYBOARD_STOWAWAY) += stowaway.o
@@ -85,9 +78,6 @@ index a699b61..f3265bd 100644
obj-$(CONFIG_KEYBOARD_SUNKBD) += sunkbd.o
obj-$(CONFIG_KEYBOARD_TC3589X) += tc3589x-keypad.o
obj-$(CONFIG_KEYBOARD_TEGRA) += tegra-kbc.o
-diff --git a/drivers/input/keyboard/sun4i-lradc-keys.c b/drivers/input/keyboard/sun4i-lradc-keys.c
-new file mode 100644
-index 0000000..5c55e17
--- /dev/null
+++ b/drivers/input/keyboard/sun4i-lradc-keys.c
@@ -0,0 +1,243 @@
@@ -334,6 +324,3 @@ index 0000000..5c55e17
+MODULE_DESCRIPTION("Allwinner sun4i low res adc attached tablet keys driver");
+MODULE_AUTHOR("Hans de Goede <hdegoede@redhat.com>");
+MODULE_LICENSE("GPL");
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/173-1-dt-sun4i-add-lradc-node.patch b/target/linux/sunxi/patches-3.14/173-1-dt-sun4i-add-lradc-node.patch
index 1c7bc810f7..544528d8e7 100644
--- a/target/linux/sunxi/patches-3.14/173-1-dt-sun4i-add-lradc-node.patch
+++ b/target/linux/sunxi/patches-3.14/173-1-dt-sun4i-add-lradc-node.patch
@@ -8,11 +8,9 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
arch/arm/boot/dts/sun4i-a10.dtsi | 7 +++++++
1 file changed, 7 insertions(+)
-diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
-index 7014518..3ce650b 100644
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
-@@ -607,6 +607,13 @@
+@@ -549,6 +549,13 @@
interrupts = <24>;
};
@@ -26,6 +24,3 @@ index 7014518..3ce650b 100644
sid: eeprom@01c23800 {
compatible = "allwinner,sun4i-sid";
reg = <0x01c23800 0x10>;
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/173-2-dt-sun5i-add-lradc-node.patch b/target/linux/sunxi/patches-3.14/173-2-dt-sun5i-add-lradc-node.patch
index fbb0a32ca4..6fa1c2b9f6 100644
--- a/target/linux/sunxi/patches-3.14/173-2-dt-sun5i-add-lradc-node.patch
+++ b/target/linux/sunxi/patches-3.14/173-2-dt-sun5i-add-lradc-node.patch
@@ -11,12 +11,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
arch/arm/boot/dts/sun5i-a13.dtsi | 7 +++++++
4 files changed, 30 insertions(+)
-diff --git a/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts b/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts
-index 5bc25c7..93c6778 100644
-diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi
-index 8ba1ed7..1795c26 100644
-diff --git a/arch/arm/boot/dts/sun5i-a13-olinuxino.dts b/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
-index 177196c..c2c455d 100644
--- a/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
+++ b/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
@@ -14,6 +14,7 @@
@@ -27,7 +21,7 @@ index 177196c..c2c455d 100644
/ {
model = "Olimex A13-Olinuxino";
-@@ -64,6 +65,13 @@
+@@ -49,6 +50,13 @@
};
};
@@ -41,11 +35,9 @@ index 177196c..c2c455d 100644
uart1: serial@01c28400 {
pinctrl-names = "default";
pinctrl-0 = <&uart1_pins_b>;
-diff --git a/arch/arm/boot/dts/sun5i-a13.dtsi b/arch/arm/boot/dts/sun5i-a13.dtsi
-index 6fc84a4..8bc8e14 100644
--- a/arch/arm/boot/dts/sun5i-a13.dtsi
+++ b/arch/arm/boot/dts/sun5i-a13.dtsi
-@@ -458,6 +458,13 @@
+@@ -429,6 +429,13 @@
reg = <0x01c20c90 0x10>;
};
@@ -59,6 +51,3 @@ index 6fc84a4..8bc8e14 100644
sid: eeprom@01c23800 {
compatible = "allwinner,sun4i-sid";
reg = <0x01c23800 0x10>;
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/173-3-dt-sun7i-add-lradc-node.patch b/target/linux/sunxi/patches-3.14/173-3-dt-sun7i-add-lradc-node.patch
index 417dddc2c0..44e9f53cbc 100644
--- a/target/linux/sunxi/patches-3.14/173-3-dt-sun7i-add-lradc-node.patch
+++ b/target/linux/sunxi/patches-3.14/173-3-dt-sun7i-add-lradc-node.patch
@@ -9,8 +9,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
arch/arm/boot/dts/sun7i-a20.dtsi | 7 +++++++
2 files changed, 16 insertions(+)
-diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
-index 822cbe2..15f1f3f 100644
--- a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
+++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
@@ -14,6 +14,7 @@
@@ -21,7 +19,7 @@ index 822cbe2..15f1f3f 100644
/ {
model = "Olimex A20-Olinuxino Micro";
-@@ -96,6 +97,14 @@
+@@ -73,6 +74,14 @@
};
};
@@ -36,11 +34,9 @@ index 822cbe2..15f1f3f 100644
uart0: serial@01c28000 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_pins_a>;
-diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
-index 1d9b314..0c57ac5 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
-@@ -735,6 +735,13 @@
+@@ -670,6 +670,13 @@
interrupts = <0 24 4>;
};
@@ -54,6 +50,3 @@ index 1d9b314..0c57ac5 100644
sid: eeprom@01c23800 {
compatible = "allwinner,sun7i-a20-sid";
reg = <0x01c23800 0x200>;
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/175-reset-add-of_reset_control_get.patch b/target/linux/sunxi/patches-3.14/175-reset-add-of_reset_control_get.patch
index 7bf9511fe9..3b6db99dbf 100644
--- a/target/linux/sunxi/patches-3.14/175-reset-add-of_reset_control_get.patch
+++ b/target/linux/sunxi/patches-3.14/175-reset-add-of_reset_control_get.patch
@@ -15,11 +15,9 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
include/linux/reset.h | 4 ++++
2 files changed, 34 insertions(+), 9 deletions(-)
-diff --git a/drivers/reset/core.c b/drivers/reset/core.c
-index d1b6089..4f3dda7 100644
--- a/drivers/reset/core.c
+++ b/drivers/reset/core.c
-@@ -127,15 +127,16 @@ int reset_control_deassert(struct reset_control *rstc)
+@@ -127,15 +127,16 @@ int reset_control_deassert(struct reset_
EXPORT_SYMBOL_GPL(reset_control_deassert);
/**
@@ -39,7 +37,7 @@ index d1b6089..4f3dda7 100644
{
struct reset_control *rstc = ERR_PTR(-EPROBE_DEFER);
struct reset_controller_dev *r, *rcdev;
-@@ -144,13 +145,10 @@ struct reset_control *reset_control_get(struct device *dev, const char *id)
+@@ -144,13 +145,10 @@ struct reset_control *reset_control_get(
int rstc_id;
int ret;
@@ -55,7 +53,7 @@ index d1b6089..4f3dda7 100644
index, &args);
if (ret)
return ERR_PTR(ret);
-@@ -185,12 +183,35 @@ struct reset_control *reset_control_get(struct device *dev, const char *id)
+@@ -185,12 +183,35 @@ struct reset_control *reset_control_get(
return ERR_PTR(-ENOMEM);
}
@@ -92,8 +90,6 @@ index d1b6089..4f3dda7 100644
EXPORT_SYMBOL_GPL(reset_control_get);
/**
-diff --git a/include/linux/reset.h b/include/linux/reset.h
-index 6082247..a398025 100644
--- a/include/linux/reset.h
+++ b/include/linux/reset.h
@@ -1,6 +1,8 @@
@@ -105,7 +101,7 @@ index 6082247..a398025 100644
struct device;
struct reset_control;
-@@ -8,6 +10,8 @@ int reset_control_reset(struct reset_control *rstc);
+@@ -8,6 +10,8 @@ int reset_control_reset(struct reset_con
int reset_control_assert(struct reset_control *rstc);
int reset_control_deassert(struct reset_control *rstc);
@@ -114,6 +110,3 @@ index 6082247..a398025 100644
struct reset_control *reset_control_get(struct device *dev, const char *id);
void reset_control_put(struct reset_control *rstc);
struct reset_control *devm_reset_control_get(struct device *dev, const char *id);
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/176-clk-sun5i-add-support-for-reset-ctrler.patch b/target/linux/sunxi/patches-3.14/176-clk-sun5i-add-support-for-reset-ctrler.patch
index 6d322c7bc6..3986d193b1 100644
--- a/target/linux/sunxi/patches-3.14/176-clk-sun5i-add-support-for-reset-ctrler.patch
+++ b/target/linux/sunxi/patches-3.14/176-clk-sun5i-add-support-for-reset-ctrler.patch
@@ -13,8 +13,6 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
drivers/clocksource/timer-sun5i.c | 6 ++++++
2 files changed, 10 insertions(+)
-diff --git a/Documentation/devicetree/bindings/timer/allwinner,sun5i-a13-hstimer.txt b/Documentation/devicetree/bindings/timer/allwinner,sun5i-a13-hstimer.txt
-index 7c26154..27cfc7d 100644
--- a/Documentation/devicetree/bindings/timer/allwinner,sun5i-a13-hstimer.txt
+++ b/Documentation/devicetree/bindings/timer/allwinner,sun5i-a13-hstimer.txt
@@ -9,6 +9,9 @@ Required properties:
@@ -33,8 +31,6 @@ index 7c26154..27cfc7d 100644
clocks = <&ahb1_gates 19>;
+ resets = <&ahb1rst 19>;
};
-diff --git a/drivers/clocksource/timer-sun5i.c b/drivers/clocksource/timer-sun5i.c
-index deebcd6..0226844 100644
--- a/drivers/clocksource/timer-sun5i.c
+++ b/drivers/clocksource/timer-sun5i.c
@@ -16,6 +16,7 @@
@@ -53,7 +49,7 @@ index deebcd6..0226844 100644
unsigned long rate;
struct clk *clk;
int ret, irq;
-@@ -162,6 +164,10 @@ static void __init sun5i_timer_init(struct device_node *node)
+@@ -162,6 +164,10 @@ static void __init sun5i_timer_init(stru
clk_prepare_enable(clk);
rate = clk_get_rate(clk);
@@ -64,6 +60,3 @@ index deebcd6..0226844 100644
writel(~0, timer_base + TIMER_INTVAL_LO_REG(1));
writel(TIMER_CTL_ENABLE | TIMER_CTL_RELOAD,
timer_base + TIMER_CTL_REG(1));
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/180-clk-sunxi-add-clock-output-names-dt-prop-support.patch b/target/linux/sunxi/patches-3.14/180-clk-sunxi-add-clock-output-names-dt-prop-support.patch
index 4f7d275522..73caeb9ba3 100644
--- a/target/linux/sunxi/patches-3.14/180-clk-sunxi-add-clock-output-names-dt-prop-support.patch
+++ b/target/linux/sunxi/patches-3.14/180-clk-sunxi-add-clock-output-names-dt-prop-support.patch
@@ -19,11 +19,9 @@ Signed-off-by: Emilio López <emilio@elopez.com.ar>
drivers/clk/sunxi/clk-sunxi.c | 6 ++++++
1 file changed, 6 insertions(+)
-diff --git a/drivers/clk/sunxi/clk-sunxi.c b/drivers/clk/sunxi/clk-sunxi.c
-index abb6c5a..0ed9794 100644
--- a/drivers/clk/sunxi/clk-sunxi.c
+++ b/drivers/clk/sunxi/clk-sunxi.c
-@@ -51,6 +51,8 @@ static void __init sun4i_osc_clk_setup(struct device_node *node)
+@@ -51,6 +51,8 @@ static void __init sun4i_osc_clk_setup(s
if (!gate)
goto err_free_fixed;
@@ -32,7 +30,7 @@ index abb6c5a..0ed9794 100644
/* set up gate and fixed rate properties */
gate->reg = of_iomap(node, 0);
gate->bit_idx = SUNXI_OSC24M_GATE;
-@@ -601,6 +603,8 @@ static void __init sunxi_mux_clk_setup(struct device_node *node,
+@@ -601,6 +603,8 @@ static void __init sunxi_mux_clk_setup(s
(parents[i] = of_clk_get_parent_name(node, i)) != NULL)
i++;
@@ -41,7 +39,7 @@ index abb6c5a..0ed9794 100644
clk = clk_register_mux(NULL, clk_name, parents, i,
CLK_SET_RATE_NO_REPARENT, reg,
data->shift, SUNXI_MUX_GATE_WIDTH,
-@@ -660,6 +664,8 @@ static void __init sunxi_divider_clk_setup(struct device_node *node,
+@@ -660,6 +664,8 @@ static void __init sunxi_divider_clk_set
clk_parent = of_clk_get_parent_name(node, 0);
@@ -50,6 +48,3 @@ index abb6c5a..0ed9794 100644
clk = clk_register_divider(NULL, clk_name, clk_parent, 0,
reg, data->shift, data->width,
data->pow ? CLK_DIVIDER_POWER_OF_TWO : 0,
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/181-clk-sunxi-add-names-for-pll56.patch b/target/linux/sunxi/patches-3.14/181-clk-sunxi-add-names-for-pll56.patch
index 879462b766..4229fa4f1c 100644
--- a/target/linux/sunxi/patches-3.14/181-clk-sunxi-add-names-for-pll56.patch
+++ b/target/linux/sunxi/patches-3.14/181-clk-sunxi-add-names-for-pll56.patch
@@ -19,8 +19,6 @@ Signed-off-by: Emilio López <emilio@elopez.com.ar>
drivers/clk/sunxi/clk-sunxi.c | 27 ++++++++++++++++++---------
1 file changed, 18 insertions(+), 9 deletions(-)
-diff --git a/drivers/clk/sunxi/clk-sunxi.c b/drivers/clk/sunxi/clk-sunxi.c
-index 0ed9794..7a2ed98 100644
--- a/drivers/clk/sunxi/clk-sunxi.c
+++ b/drivers/clk/sunxi/clk-sunxi.c
@@ -389,6 +389,7 @@ struct factors_data {
@@ -31,7 +29,7 @@ index 0ed9794..7a2ed98 100644
};
static struct clk_factors_config sun4i_pll1_config = {
-@@ -457,6 +458,14 @@ static const struct factors_data sun4i_pll5_data __initconst = {
+@@ -457,6 +458,14 @@ static const struct factors_data sun4i_p
.enable = 31,
.table = &sun4i_pll5_config,
.getter = sun4i_get_pll5_factors,
@@ -46,7 +44,7 @@ index 0ed9794..7a2ed98 100644
};
static const struct factors_data sun4i_apb1_data __initconst = {
-@@ -499,14 +508,14 @@ static struct clk * __init sunxi_factors_clk_setup(struct device_node *node,
+@@ -499,14 +508,14 @@ static struct clk * __init sunxi_factors
(parents[i] = of_clk_get_parent_name(node, i)) != NULL)
i++;
@@ -69,7 +67,7 @@ index 0ed9794..7a2ed98 100644
factors = kzalloc(sizeof(struct clk_factors), GFP_KERNEL);
if (!factors)
-@@ -838,7 +847,7 @@ static const struct divs_data pll5_divs_data __initconst = {
+@@ -838,7 +847,7 @@ static const struct divs_data pll5_divs_
};
static const struct divs_data pll6_divs_data __initconst = {
@@ -78,6 +76,3 @@ index 0ed9794..7a2ed98 100644
.div = {
{ .shift = 0, .table = pll6_sata_tbl, .gate = 14 }, /* M, SATA */
{ .fixed = 2 }, /* P, other */
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/182-clk-sunxi-add-support-for-usb-clockreg-reset.patch b/target/linux/sunxi/patches-3.14/182-clk-sunxi-add-support-for-usb-clockreg-reset.patch
index 533b6013f1..e8977362c7 100644
--- a/target/linux/sunxi/patches-3.14/182-clk-sunxi-add-support-for-usb-clockreg-reset.patch
+++ b/target/linux/sunxi/patches-3.14/182-clk-sunxi-add-support-for-usb-clockreg-reset.patch
@@ -18,8 +18,6 @@ Signed-off-by: Emilio López <emilio@elopez.com.ar>
drivers/clk/sunxi/clk-sunxi.c | 71 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 71 insertions(+)
-diff --git a/drivers/clk/sunxi/clk-sunxi.c b/drivers/clk/sunxi/clk-sunxi.c
-index 736fb60..23beb6e 100644
--- a/drivers/clk/sunxi/clk-sunxi.c
+++ b/drivers/clk/sunxi/clk-sunxi.c
@@ -18,6 +18,7 @@
@@ -30,7 +28,7 @@ index 736fb60..23beb6e 100644
#include "clk-factors.h"
-@@ -688,6 +689,59 @@ static void __init sunxi_divider_clk_setup(struct device_node *node,
+@@ -688,6 +689,59 @@ static void __init sunxi_divider_clk_set
/**
@@ -90,7 +88,7 @@ index 736fb60..23beb6e 100644
* sunxi_gates_clk_setup() - Setup function for leaf gates on clocks
*/
-@@ -695,6 +749,7 @@ static void __init sunxi_divider_clk_setup(struct device_node *node,
+@@ -695,6 +749,7 @@ static void __init sunxi_divider_clk_set
struct gates_data {
DECLARE_BITMAP(mask, SUNXI_GATES_MAX_SIZE);
@@ -98,7 +96,7 @@ index 736fb60..23beb6e 100644
};
static const struct gates_data sun4i_axi_gates_data __initconst = {
-@@ -765,6 +820,7 @@ static void __init sunxi_gates_clk_setup(struct device_node *node,
+@@ -765,6 +820,7 @@ static void __init sunxi_gates_clk_setup
struct gates_data *data)
{
struct clk_onecell_data *clk_data;
@@ -106,7 +104,7 @@ index 736fb60..23beb6e 100644
const char *clk_parent;
const char *clk_name;
void *reg;
-@@ -808,6 +864,21 @@ static void __init sunxi_gates_clk_setup(struct device_node *node,
+@@ -808,6 +864,21 @@ static void __init sunxi_gates_clk_setup
clk_data->clk_num = i;
of_clk_add_provider(node, of_clk_src_onecell_get, clk_data);
@@ -128,6 +126,3 @@ index 736fb60..23beb6e 100644
}
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/182-clk-sunxi-get-divs-parent-clockname.patch b/target/linux/sunxi/patches-3.14/182-clk-sunxi-get-divs-parent-clockname.patch
index 53f2217247..777dfde856 100644
--- a/target/linux/sunxi/patches-3.14/182-clk-sunxi-get-divs-parent-clockname.patch
+++ b/target/linux/sunxi/patches-3.14/182-clk-sunxi-get-divs-parent-clockname.patch
@@ -19,11 +19,9 @@ Signed-off-by: Emilio López <emilio@elopez.com.ar>
drivers/clk/sunxi/clk-sunxi.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
-diff --git a/drivers/clk/sunxi/clk-sunxi.c b/drivers/clk/sunxi/clk-sunxi.c
-index 7a2ed98..736fb60 100644
--- a/drivers/clk/sunxi/clk-sunxi.c
+++ b/drivers/clk/sunxi/clk-sunxi.c
-@@ -869,7 +869,7 @@ static void __init sunxi_divs_clk_setup(struct device_node *node,
+@@ -940,7 +940,7 @@ static void __init sunxi_divs_clk_setup(
struct divs_data *data)
{
struct clk_onecell_data *clk_data;
@@ -32,7 +30,7 @@ index 7a2ed98..736fb60 100644
const char *clk_name;
struct clk **clks, *pclk;
struct clk_hw *gate_hw, *rate_hw;
-@@ -883,6 +883,7 @@ static void __init sunxi_divs_clk_setup(struct device_node *node,
+@@ -954,6 +954,7 @@ static void __init sunxi_divs_clk_setup(
/* Set up factor clock that we will be dividing */
pclk = sunxi_factors_clk_setup(node, data->factors);
@@ -40,6 +38,3 @@ index 7a2ed98..736fb60 100644
reg = of_iomap(node, 0);
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/183-clk-sunxi-add-usb-clockreg-defs.patch b/target/linux/sunxi/patches-3.14/183-clk-sunxi-add-usb-clockreg-defs.patch
index 07e8879896..c79f803198 100644
--- a/target/linux/sunxi/patches-3.14/183-clk-sunxi-add-usb-clockreg-defs.patch
+++ b/target/linux/sunxi/patches-3.14/183-clk-sunxi-add-usb-clockreg-defs.patch
@@ -18,8 +18,6 @@ Signed-off-by: Emilio López <emilio@elopez.com.ar>
drivers/clk/sunxi/clk-sunxi.c | 12 ++++++++++++
2 files changed, 17 insertions(+)
-diff --git a/Documentation/devicetree/bindings/clock/sunxi.txt b/Documentation/devicetree/bindings/clock/sunxi.txt
-index 0cf679b..ca2b692 100644
--- a/Documentation/devicetree/bindings/clock/sunxi.txt
+++ b/Documentation/devicetree/bindings/clock/sunxi.txt
@@ -37,6 +37,8 @@ Required properties:
@@ -31,9 +29,9 @@ index 0cf679b..ca2b692 100644
Required properties for all clocks:
- reg : shall be the control register address for the clock.
-@@ -50,6 +52,9 @@ Required properties for all clocks:
- If the clock module only has one output, the name shall be the
- module name.
+@@ -49,6 +51,9 @@ Required properties for all clocks:
+ Additionally, "allwinner,*-gates-clk" clocks require:
+ - clock-output-names : the corresponding gate names that the clock controls
+And "allwinner,*-usb-clk" clocks also require:
+- reset-cells : shall be set to 1
@@ -41,11 +39,9 @@ index 0cf679b..ca2b692 100644
Clock consumers should specify the desired clocks they use with a
"clocks" phandle cell. Consumers that are using a gated clock should
provide an additional ID in their clock property. This ID is the
-diff --git a/drivers/clk/sunxi/clk-sunxi.c b/drivers/clk/sunxi/clk-sunxi.c
-index 23beb6e..a779c31 100644
--- a/drivers/clk/sunxi/clk-sunxi.c
+++ b/drivers/clk/sunxi/clk-sunxi.c
-@@ -816,6 +816,16 @@ static const struct gates_data sun7i_a20_apb1_gates_data __initconst = {
+@@ -816,6 +816,16 @@ static const struct gates_data sun7i_a20
.mask = { 0xff80ff },
};
@@ -62,7 +58,7 @@ index 23beb6e..a779c31 100644
static void __init sunxi_gates_clk_setup(struct device_node *node,
struct gates_data *data)
{
-@@ -1107,6 +1117,8 @@ static const struct of_device_id clk_gates_match[] __initconst = {
+@@ -1107,6 +1117,8 @@ static const struct of_device_id clk_gat
{.compatible = "allwinner,sun6i-a31-apb1-gates-clk", .data = &sun6i_a31_apb1_gates_data,},
{.compatible = "allwinner,sun7i-a20-apb1-gates-clk", .data = &sun7i_a20_apb1_gates_data,},
{.compatible = "allwinner,sun6i-a31-apb2-gates-clk", .data = &sun6i_a31_apb2_gates_data,},
@@ -71,6 +67,3 @@ index 23beb6e..a779c31 100644
{}
};
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/184-clk-sunxi-add-pll6-on-a31.patch b/target/linux/sunxi/patches-3.14/184-clk-sunxi-add-pll6-on-a31.patch
index 4d71742803..7193c5029b 100644
--- a/target/linux/sunxi/patches-3.14/184-clk-sunxi-add-pll6-on-a31.patch
+++ b/target/linux/sunxi/patches-3.14/184-clk-sunxi-add-pll6-on-a31.patch
@@ -16,8 +16,6 @@ Signed-off-by: Emilio López <emilio@elopez.com.ar>
drivers/clk/sunxi/clk-sunxi.c | 45 +++++++++++++++++++++++
2 files changed, 46 insertions(+)
-diff --git a/Documentation/devicetree/bindings/clock/sunxi.txt b/Documentation/devicetree/bindings/clock/sunxi.txt
-index ca2b692..c37c764 100644
--- a/Documentation/devicetree/bindings/clock/sunxi.txt
+++ b/Documentation/devicetree/bindings/clock/sunxi.txt
@@ -11,6 +11,7 @@ Required properties:
@@ -28,11 +26,9 @@ index ca2b692..c37c764 100644
"allwinner,sun4i-cpu-clk" - for the CPU multiplexer clock
"allwinner,sun4i-axi-clk" - for the AXI clock
"allwinner,sun4i-axi-gates-clk" - for the AXI gates
-diff --git a/drivers/clk/sunxi/clk-sunxi.c b/drivers/clk/sunxi/clk-sunxi.c
-index a779c31..d4cf297 100644
--- a/drivers/clk/sunxi/clk-sunxi.c
+++ b/drivers/clk/sunxi/clk-sunxi.c
-@@ -252,7 +252,38 @@ static void sun4i_get_pll5_factors(u32 *freq, u32 parent_rate,
+@@ -252,7 +252,38 @@ static void sun4i_get_pll5_factors(u32 *
*n = DIV_ROUND_UP(div, (*k+1));
}
@@ -61,17 +57,17 @@ index a779c31..d4cf297 100644
+ /* we were called to round the frequency, we can now return */
+ if (n == NULL)
+ return;
-+
+
+ *k = div / 32;
+ if (*k > 3)
+ *k = 3;
-
++
+ *n = DIV_ROUND_UP(div, (*k+1));
+}
/**
* sun4i_get_apb1_factors() - calculates m, p factors for APB1
-@@ -420,6 +451,13 @@ static struct clk_factors_config sun4i_pll5_config = {
+@@ -420,6 +451,13 @@ static struct clk_factors_config sun4i_p
.kwidth = 2,
};
@@ -85,7 +81,7 @@ index a779c31..d4cf297 100644
static struct clk_factors_config sun4i_apb1_config = {
.mshift = 0,
.mwidth = 5,
-@@ -469,6 +507,12 @@ static const struct factors_data sun4i_pll6_data __initconst = {
+@@ -469,6 +507,12 @@ static const struct factors_data sun4i_p
.name = "pll6",
};
@@ -98,7 +94,7 @@ index a779c31..d4cf297 100644
static const struct factors_data sun4i_apb1_data __initconst = {
.table = &sun4i_apb1_config,
.getter = sun4i_get_apb1_factors,
-@@ -1069,6 +1113,7 @@ static void __init sunxi_divs_clk_setup(struct device_node *node,
+@@ -1069,6 +1113,7 @@ free_clkdata:
static const struct of_device_id clk_factors_match[] __initconst = {
{.compatible = "allwinner,sun4i-pll1-clk", .data = &sun4i_pll1_data,},
{.compatible = "allwinner,sun6i-a31-pll1-clk", .data = &sun6i_a31_pll1_data,},
@@ -106,6 +102,3 @@ index a779c31..d4cf297 100644
{.compatible = "allwinner,sun4i-apb1-clk", .data = &sun4i_apb1_data,},
{.compatible = "allwinner,sun4i-mod0-clk", .data = &sun4i_mod0_data,},
{.compatible = "allwinner,sun7i-a20-out-clk", .data = &sun7i_a20_out_data,},
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/185-clk-sunxi-add-a20-a31-gmac-clock.patch b/target/linux/sunxi/patches-3.14/185-clk-sunxi-add-a20-a31-gmac-clock.patch
index e105c25702..86d6301937 100644
--- a/target/linux/sunxi/patches-3.14/185-clk-sunxi-add-a20-a31-gmac-clock.patch
+++ b/target/linux/sunxi/patches-3.14/185-clk-sunxi-add-a20-a31-gmac-clock.patch
@@ -18,8 +18,6 @@ Signed-off-by: Emilio López <emilio@elopez.com.ar>
drivers/clk/sunxi/clk-sunxi.c | 96 +++++++++++++++++++++++
2 files changed, 126 insertions(+)
-diff --git a/Documentation/devicetree/bindings/clock/sunxi.txt b/Documentation/devicetree/bindings/clock/sunxi.txt
-index c37c764..256a908 100644
--- a/Documentation/devicetree/bindings/clock/sunxi.txt
+++ b/Documentation/devicetree/bindings/clock/sunxi.txt
@@ -38,6 +38,7 @@ Required properties:
@@ -30,7 +28,7 @@ index c37c764..256a908 100644
"allwinner,sun4i-a10-usb-clk" - for usb gates + resets on A10 / A20
"allwinner,sun5i-a13-usb-clk" - for usb gates + resets on A13
-@@ -56,6 +57,9 @@ Required properties for all clocks:
+@@ -55,6 +56,9 @@ Additionally, "allwinner,*-gates-clk" cl
And "allwinner,*-usb-clk" clocks also require:
- reset-cells : shall be set to 1
@@ -40,9 +38,9 @@ index c37c764..256a908 100644
Clock consumers should specify the desired clocks they use with a
"clocks" phandle cell. Consumers that are using a gated clock should
provide an additional ID in their clock property. This ID is the
-@@ -102,3 +106,29 @@ mmc0_clk: clk@01c20088 {
- clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
- clock-output-names = "mmc0";
+@@ -82,3 +86,29 @@ cpu: cpu@01c20054 {
+ reg = <0x01c20054 0x4>;
+ clocks = <&osc32k>, <&osc24M>, <&pll1>;
};
+
+mii_phy_tx_clk: clk@2 {
@@ -70,11 +68,9 @@ index c37c764..256a908 100644
+ clocks = <&mii_phy_tx_clk>, <&gmac_int_tx_clk>;
+ clock-output-names = "gmac";
+};
-diff --git a/drivers/clk/sunxi/clk-sunxi.c b/drivers/clk/sunxi/clk-sunxi.c
-index d4cf297..335c987 100644
--- a/drivers/clk/sunxi/clk-sunxi.c
+++ b/drivers/clk/sunxi/clk-sunxi.c
-@@ -411,6 +411,102 @@ static void sun7i_a20_get_out_factors(u32 *freq, u32 parent_rate,
+@@ -411,6 +411,102 @@ static void sun7i_a20_get_out_factors(u3
/**
@@ -177,6 +173,3 @@ index d4cf297..335c987 100644
* sunxi_factors_clk_setup() - Setup function for factor clocks
*/
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/186-clk-sunxi-add-new-clock-compats.patch b/target/linux/sunxi/patches-3.14/186-clk-sunxi-add-new-clock-compats.patch
index 728fca8454..f842a23912 100644
--- a/target/linux/sunxi/patches-3.14/186-clk-sunxi-add-new-clock-compats.patch
+++ b/target/linux/sunxi/patches-3.14/186-clk-sunxi-add-new-clock-compats.patch
@@ -18,11 +18,9 @@ Signed-off-by: Emilio López <emilio@elopez.com.ar>
drivers/clk/sunxi/clk-sunxi.c | 30 +++++++++----------
2 files changed, 33 insertions(+), 33 deletions(-)
-diff --git a/Documentation/devicetree/bindings/clock/sunxi.txt b/Documentation/devicetree/bindings/clock/sunxi.txt
-index 256a908..a5160d8 100644
--- a/Documentation/devicetree/bindings/clock/sunxi.txt
+++ b/Documentation/devicetree/bindings/clock/sunxi.txt
-@@ -6,37 +6,37 @@ This binding uses the common clock binding[1].
+@@ -6,37 +6,37 @@ This binding uses the common clock bindi
Required properties:
- compatible : shall be one of the following:
@@ -75,25 +73,23 @@ index 256a908..a5160d8 100644
"allwinner,sun7i-a20-out-clk" - for the external output clocks
"allwinner,sun7i-a20-gmac-clk" - for the GMAC clock module on A20/A31
"allwinner,sun4i-a10-usb-clk" - for usb gates + resets on A10 / A20
-@@ -69,7 +69,7 @@ For example:
+@@ -68,21 +68,21 @@ For example:
- osc24M: clk@01c20050 {
+ osc24M: osc24M@01c20050 {
#clock-cells = <0>;
- compatible = "allwinner,sun4i-osc-clk";
+ compatible = "allwinner,sun4i-a10-osc-clk";
reg = <0x01c20050 0x4>;
clocks = <&osc24M_fixed>;
- clock-output-names = "osc24M";
-@@ -77,7 +77,7 @@ osc24M: clk@01c20050 {
+ };
- pll1: clk@01c20000 {
+ pll1: pll1@01c20000 {
#clock-cells = <0>;
- compatible = "allwinner,sun4i-pll1-clk";
+ compatible = "allwinner,sun4i-a10-pll1-clk";
reg = <0x01c20000 0x4>;
clocks = <&osc24M>;
- clock-output-names = "pll1";
-@@ -93,7 +93,7 @@ pll5: clk@01c20020 {
+ };
cpu: cpu@01c20054 {
#clock-cells = <0>;
@@ -101,12 +97,10 @@ index 256a908..a5160d8 100644
+ compatible = "allwinner,sun4i-a10-cpu-clk";
reg = <0x01c20054 0x4>;
clocks = <&osc32k>, <&osc24M>, <&pll1>;
- clock-output-names = "cpu";
-diff --git a/drivers/clk/sunxi/clk-sunxi.c b/drivers/clk/sunxi/clk-sunxi.c
-index 335c987..23baad9 100644
+ };
--- a/drivers/clk/sunxi/clk-sunxi.c
+++ b/drivers/clk/sunxi/clk-sunxi.c
-@@ -80,7 +80,7 @@ static void __init sun4i_osc_clk_setup(struct device_node *node)
+@@ -80,7 +80,7 @@ err_free_gate:
err_free_fixed:
kfree(fixed);
}
@@ -115,7 +109,7 @@ index 335c987..23baad9 100644
-@@ -1207,52 +1207,52 @@ static void __init sunxi_divs_clk_setup(struct device_node *node,
+@@ -1207,52 +1207,52 @@ free_clkdata:
/* Matches for factors clocks */
static const struct of_device_id clk_factors_match[] __initconst = {
@@ -182,6 +176,3 @@ index 335c987..23baad9 100644
{.compatible = "allwinner,sun5i-a10s-apb1-gates-clk", .data = &sun5i_a10s_apb1_gates_data,},
{.compatible = "allwinner,sun5i-a13-apb1-gates-clk", .data = &sun5i_a13_apb1_gates_data,},
{.compatible = "allwinner,sun6i-a31-apb1-gates-clk", .data = &sun6i_a31_apb1_gates_data,},
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/187-clk-sunxi-automatic-reparenting.patch b/target/linux/sunxi/patches-3.14/187-clk-sunxi-automatic-reparenting.patch
index b78b661ed8..2cd8a263be 100644
--- a/target/linux/sunxi/patches-3.14/187-clk-sunxi-automatic-reparenting.patch
+++ b/target/linux/sunxi/patches-3.14/187-clk-sunxi-automatic-reparenting.patch
@@ -14,11 +14,9 @@ Signed-off-by: Emilio López <emilio@elopez.com.ar>
drivers/clk/sunxi/clk-factors.c | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
-diff --git a/drivers/clk/sunxi/clk-factors.c b/drivers/clk/sunxi/clk-factors.c
-index 9e23264..3806d97 100644
--- a/drivers/clk/sunxi/clk-factors.c
+++ b/drivers/clk/sunxi/clk-factors.c
-@@ -77,6 +77,41 @@ static long clk_factors_round_rate(struct clk_hw *hw, unsigned long rate,
+@@ -77,6 +77,41 @@ static long clk_factors_round_rate(struc
return rate;
}
@@ -60,7 +58,7 @@ index 9e23264..3806d97 100644
static int clk_factors_set_rate(struct clk_hw *hw, unsigned long rate,
unsigned long parent_rate)
{
-@@ -113,6 +148,7 @@ static int clk_factors_set_rate(struct clk_hw *hw, unsigned long rate,
+@@ -113,6 +148,7 @@ static int clk_factors_set_rate(struct c
}
const struct clk_ops clk_factors_ops = {
@@ -68,6 +66,3 @@ index 9e23264..3806d97 100644
.recalc_rate = clk_factors_recalc_rate,
.round_rate = clk_factors_round_rate,
.set_rate = clk_factors_set_rate,
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/188-clk-sunxi-implement-mmc-phasectrl.patch b/target/linux/sunxi/patches-3.14/188-clk-sunxi-implement-mmc-phasectrl.patch
index 1288f8fed9..c191b350f8 100644
--- a/target/linux/sunxi/patches-3.14/188-clk-sunxi-implement-mmc-phasectrl.patch
+++ b/target/linux/sunxi/patches-3.14/188-clk-sunxi-implement-mmc-phasectrl.patch
@@ -16,11 +16,9 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2 files changed, 57 insertions(+)
create mode 100644 include/linux/clk/sunxi.h
-diff --git a/drivers/clk/sunxi/clk-sunxi.c b/drivers/clk/sunxi/clk-sunxi.c
-index 23baad9..9afd8dd 100644
--- a/drivers/clk/sunxi/clk-sunxi.c
+++ b/drivers/clk/sunxi/clk-sunxi.c
-@@ -507,6 +507,41 @@ CLK_OF_DECLARE(sun7i_a20_gmac, "allwinner,sun7i-a20-gmac-clk",
+@@ -507,6 +507,41 @@ CLK_OF_DECLARE(sun7i_a20_gmac, "allwinne
/**
@@ -62,9 +60,6 @@ index 23baad9..9afd8dd 100644
* sunxi_factors_clk_setup() - Setup function for factor clocks
*/
-diff --git a/include/linux/clk/sunxi.h b/include/linux/clk/sunxi.h
-new file mode 100644
-index 0000000..1ef5c89
--- /dev/null
+++ b/include/linux/clk/sunxi.h
@@ -0,0 +1,22 @@
@@ -90,6 +85,3 @@ index 0000000..1ef5c89
+void clk_sunxi_mmc_phase_control(struct clk_hw *hw, u8 sample, u8 output);
+
+#endif
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/190-ahci-libahci-changes.patch b/target/linux/sunxi/patches-3.14/190-ahci-libahci-changes.patch
index 21a119f96b..9600e95d5a 100644
--- a/target/linux/sunxi/patches-3.14/190-ahci-libahci-changes.patch
+++ b/target/linux/sunxi/patches-3.14/190-ahci-libahci-changes.patch
@@ -20,11 +20,9 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
drivers/ata/sata_highbank.c | 3 ++-
4 files changed, 31 insertions(+), 10 deletions(-)
-diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
-index c81d809..8bfc477 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
-@@ -578,6 +578,7 @@ static int ahci_vt8251_hardreset(struct ata_link *link, unsigned int *class,
+@@ -583,6 +583,7 @@ static int ahci_vt8251_hardreset(struct
unsigned long deadline)
{
struct ata_port *ap = link->ap;
@@ -32,7 +30,7 @@ index c81d809..8bfc477 100644
bool online;
int rc;
-@@ -588,7 +589,7 @@ static int ahci_vt8251_hardreset(struct ata_link *link, unsigned int *class,
+@@ -593,7 +594,7 @@ static int ahci_vt8251_hardreset(struct
rc = sata_link_hardreset(link, sata_ehc_deb_timing(&link->eh_context),
deadline, &online, NULL);
@@ -41,7 +39,7 @@ index c81d809..8bfc477 100644
DPRINTK("EXIT, rc=%d, class=%u\n", rc, *class);
-@@ -603,6 +604,7 @@ static int ahci_p5wdh_hardreset(struct ata_link *link, unsigned int *class,
+@@ -608,6 +609,7 @@ static int ahci_p5wdh_hardreset(struct a
{
struct ata_port *ap = link->ap;
struct ahci_port_priv *pp = ap->private_data;
@@ -49,7 +47,7 @@ index c81d809..8bfc477 100644
u8 *d2h_fis = pp->rx_fis + RX_FIS_D2H_REG;
struct ata_taskfile tf;
bool online;
-@@ -618,7 +620,7 @@ static int ahci_p5wdh_hardreset(struct ata_link *link, unsigned int *class,
+@@ -623,7 +625,7 @@ static int ahci_p5wdh_hardreset(struct a
rc = sata_link_hardreset(link, sata_ehc_deb_timing(&link->eh_context),
deadline, &online, NULL);
@@ -58,13 +56,31 @@ index c81d809..8bfc477 100644
/* The pseudo configuration device on SIMG4726 attached to
* ASUS P5W-DH Deluxe doesn't send signature FIS after
-diff --git a/drivers/ata/ahci.h b/drivers/ata/ahci.h
-index 2289efd..64d1a99d 100644
--- a/drivers/ata/ahci.h
+++ b/drivers/ata/ahci.h
-@@ -323,6 +323,12 @@ struct ahci_host_priv {
+@@ -37,6 +37,7 @@
+
+ #include <linux/clk.h>
+ #include <linux/libata.h>
++#include <linux/regulator/consumer.h>
+
+ /* Enclosure Management Control */
+ #define EM_CTRL_MSG_TYPE 0x000f0000
+@@ -51,6 +52,7 @@
+
+ enum {
+ AHCI_MAX_PORTS = 32,
++ AHCI_MAX_CLKS = 3,
+ AHCI_MAX_SG = 168, /* hardware max is 64K */
+ AHCI_DMA_BOUNDARY = 0xffffffff,
+ AHCI_MAX_CMDS = 32,
+@@ -322,8 +324,15 @@ struct ahci_host_priv {
+ u32 em_loc; /* enclosure management location */
+ u32 em_buf_sz; /* EM buffer size in byte */
u32 em_msg_type; /* EM message type */
- struct clk *clk; /* Only for platforms supporting clk */
+- struct clk *clk; /* Only for platforms supporting clk */
++ struct clk *clks[AHCI_MAX_CLKS]; /* Optional */
++ struct regulator *target_pwr; /* Optional */
void *plat_data; /* Other platform data */
+ /*
+ * Optional ahci_start_engine override, if not set this gets set to the
@@ -75,11 +91,9 @@ index 2289efd..64d1a99d 100644
};
extern int ahci_ignore_sss;
-diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c
-index 36605ab..f839bb3 100644
--- a/drivers/ata/libahci.c
+++ b/drivers/ata/libahci.c
-@@ -394,6 +394,9 @@ static ssize_t ahci_show_em_supported(struct device *dev,
+@@ -394,6 +394,9 @@ static ssize_t ahci_show_em_supported(st
*
* If inconsistent, config values are fixed up by this function.
*
@@ -89,7 +103,7 @@ index 36605ab..f839bb3 100644
* LOCKING:
* None.
*/
-@@ -500,6 +503,9 @@ void ahci_save_initial_config(struct device *dev,
+@@ -500,6 +503,9 @@ void ahci_save_initial_config(struct dev
hpriv->cap = cap;
hpriv->cap2 = cap2;
hpriv->port_map = port_map;
@@ -99,7 +113,7 @@ index 36605ab..f839bb3 100644
}
EXPORT_SYMBOL_GPL(ahci_save_initial_config);
-@@ -766,7 +772,7 @@ static void ahci_start_port(struct ata_port *ap)
+@@ -766,7 +772,7 @@ static void ahci_start_port(struct ata_p
/* enable DMA */
if (!(hpriv->flags & AHCI_HFLAG_DELAY_ENGINE))
@@ -108,7 +122,7 @@ index 36605ab..f839bb3 100644
/* turn on LEDs */
if (ap->flags & ATA_FLAG_EM) {
-@@ -1234,7 +1240,7 @@ int ahci_kick_engine(struct ata_port *ap)
+@@ -1234,7 +1240,7 @@ int ahci_kick_engine(struct ata_port *ap
/* restart engine */
out_restart:
@@ -117,7 +131,7 @@ index 36605ab..f839bb3 100644
return rc;
}
EXPORT_SYMBOL_GPL(ahci_kick_engine);
-@@ -1426,6 +1432,7 @@ static int ahci_hardreset(struct ata_link *link, unsigned int *class,
+@@ -1426,6 +1432,7 @@ static int ahci_hardreset(struct ata_lin
const unsigned long *timing = sata_ehc_deb_timing(&link->eh_context);
struct ata_port *ap = link->ap;
struct ahci_port_priv *pp = ap->private_data;
@@ -125,7 +139,7 @@ index 36605ab..f839bb3 100644
u8 *d2h_fis = pp->rx_fis + RX_FIS_D2H_REG;
struct ata_taskfile tf;
bool online;
-@@ -1443,7 +1450,7 @@ static int ahci_hardreset(struct ata_link *link, unsigned int *class,
+@@ -1443,7 +1450,7 @@ static int ahci_hardreset(struct ata_lin
rc = sata_link_hardreset(link, timing, deadline, &online,
ahci_check_ready);
@@ -134,7 +148,7 @@ index 36605ab..f839bb3 100644
if (online)
*class = ahci_dev_classify(ap);
-@@ -2007,10 +2014,12 @@ static void ahci_thaw(struct ata_port *ap)
+@@ -2007,10 +2014,12 @@ static void ahci_thaw(struct ata_port *a
void ahci_error_handler(struct ata_port *ap)
{
@@ -148,7 +162,7 @@ index 36605ab..f839bb3 100644
}
sata_pmp_error_handler(ap);
-@@ -2031,6 +2040,7 @@ static void ahci_post_internal_cmd(struct ata_queued_cmd *qc)
+@@ -2031,6 +2040,7 @@ static void ahci_post_internal_cmd(struc
static void ahci_set_aggressive_devslp(struct ata_port *ap, bool sleep)
{
@@ -156,7 +170,7 @@ index 36605ab..f839bb3 100644
void __iomem *port_mmio = ahci_port_base(ap);
struct ata_device *dev = ap->link.device;
u32 devslp, dm, dito, mdat, deto;
-@@ -2094,7 +2104,7 @@ static void ahci_set_aggressive_devslp(struct ata_port *ap, bool sleep)
+@@ -2094,7 +2104,7 @@ static void ahci_set_aggressive_devslp(s
PORT_DEVSLP_ADSE);
writel(devslp, port_mmio + PORT_DEVSLP);
@@ -165,7 +179,7 @@ index 36605ab..f839bb3 100644
/* enable device sleep feature for the drive */
err_mask = ata_dev_set_feature(dev,
-@@ -2106,6 +2116,7 @@ static void ahci_set_aggressive_devslp(struct ata_port *ap, bool sleep)
+@@ -2106,6 +2116,7 @@ static void ahci_set_aggressive_devslp(s
static void ahci_enable_fbs(struct ata_port *ap)
{
@@ -173,7 +187,7 @@ index 36605ab..f839bb3 100644
struct ahci_port_priv *pp = ap->private_data;
void __iomem *port_mmio = ahci_port_base(ap);
u32 fbs;
-@@ -2134,11 +2145,12 @@ static void ahci_enable_fbs(struct ata_port *ap)
+@@ -2134,11 +2145,12 @@ static void ahci_enable_fbs(struct ata_p
} else
dev_err(ap->host->dev, "Failed to enable FBS\n");
@@ -187,7 +201,7 @@ index 36605ab..f839bb3 100644
struct ahci_port_priv *pp = ap->private_data;
void __iomem *port_mmio = ahci_port_base(ap);
u32 fbs;
-@@ -2166,7 +2178,7 @@ static void ahci_disable_fbs(struct ata_port *ap)
+@@ -2166,7 +2178,7 @@ static void ahci_disable_fbs(struct ata_
pp->fbs_enabled = false;
}
@@ -196,11 +210,9 @@ index 36605ab..f839bb3 100644
}
static void ahci_pmp_attach(struct ata_port *ap)
-diff --git a/drivers/ata/sata_highbank.c b/drivers/ata/sata_highbank.c
-index 870b11e..b3b18d1 100644
--- a/drivers/ata/sata_highbank.c
+++ b/drivers/ata/sata_highbank.c
-@@ -403,6 +403,7 @@ static int ahci_highbank_hardreset(struct ata_link *link, unsigned int *class,
+@@ -403,6 +403,7 @@ static int ahci_highbank_hardreset(struc
static const unsigned long timing[] = { 5, 100, 500};
struct ata_port *ap = link->ap;
struct ahci_port_priv *pp = ap->private_data;
@@ -208,7 +220,7 @@ index 870b11e..b3b18d1 100644
u8 *d2h_fis = pp->rx_fis + RX_FIS_D2H_REG;
struct ata_taskfile tf;
bool online;
-@@ -431,7 +432,7 @@ static int ahci_highbank_hardreset(struct ata_link *link, unsigned int *class,
+@@ -431,7 +432,7 @@ static int ahci_highbank_hardreset(struc
break;
} while (!online && retry--);
@@ -217,66 +229,24 @@ index 870b11e..b3b18d1 100644
if (online)
*class = ahci_dev_classify(ap);
---
-2.0.3
-
-From fcc3a79f048480e6723b0cfd294f9eecbf73dfd9 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Thu, 16 Jan 2014 14:32:35 +0100
-Subject: [PATCH] ahci-platform: Add support for devices with more then 1 clock
-
-The allwinner-sun4i AHCI controller needs 2 clocks to be enabled and the
-imx AHCI controller needs 3 clocks to be enabled.
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- .../devicetree/bindings/ata/ahci-platform.txt | 1 +
- drivers/ata/ahci.h | 3 +-
- drivers/ata/ahci_platform.c | 119 ++++++++++++++++-----
- include/linux/ahci_platform.h | 4 +
- 4 files changed, 99 insertions(+), 28 deletions(-)
-
-diff --git a/Documentation/devicetree/bindings/ata/ahci-platform.txt b/Documentation/devicetree/bindings/ata/ahci-platform.txt
-index 89de156..3ced07d 100644
--- a/Documentation/devicetree/bindings/ata/ahci-platform.txt
+++ b/Documentation/devicetree/bindings/ata/ahci-platform.txt
-@@ -10,6 +10,7 @@ Required properties:
+@@ -10,6 +10,8 @@ Required properties:
Optional properties:
- dma-coherent : Present if dma operations are coherent
+- clocks : a list of phandle + clock specifier pairs
++- target-supply : regulator for SATA target power
Example:
sata@ffe08000 {
-diff --git a/drivers/ata/ahci.h b/drivers/ata/ahci.h
-index 64d1a99d..c12862b 100644
---- a/drivers/ata/ahci.h
-+++ b/drivers/ata/ahci.h
-@@ -51,6 +51,7 @@
-
- enum {
- AHCI_MAX_PORTS = 32,
-+ AHCI_MAX_CLKS = 3,
- AHCI_MAX_SG = 168, /* hardware max is 64K */
- AHCI_DMA_BOUNDARY = 0xffffffff,
- AHCI_MAX_CMDS = 32,
-@@ -321,7 +322,7 @@ struct ahci_host_priv {
- u32 em_loc; /* enclosure management location */
- u32 em_buf_sz; /* EM buffer size in byte */
- u32 em_msg_type; /* EM message type */
-- struct clk *clk; /* Only for platforms supporting clk */
-+ struct clk *clks[AHCI_MAX_CLKS]; /* Optional */
- void *plat_data; /* Other platform data */
- /*
- * Optional ahci_start_engine override, if not set this gets set to the
-diff --git a/drivers/ata/ahci_platform.c b/drivers/ata/ahci_platform.c
-index 4b231ba..609975d 100644
--- a/drivers/ata/ahci_platform.c
+++ b/drivers/ata/ahci_platform.c
-@@ -87,6 +87,66 @@ static struct scsi_host_template ahci_platform_sht = {
+@@ -87,78 +87,252 @@ static struct scsi_host_template ahci_pl
AHCI_SHT("ahci_platform"),
};
+-static int ahci_probe(struct platform_device *pdev)
+/**
+ * ahci_platform_enable_clks - Enable platform clocks
+ * @hpriv: host private area to store config values
@@ -292,23 +262,46 @@ index 4b231ba..609975d 100644
+ * 0 on success otherwise a negative error code
+ */
+int ahci_platform_enable_clks(struct ahci_host_priv *hpriv)
-+{
+ {
+- struct device *dev = &pdev->dev;
+- struct ahci_platform_data *pdata = dev_get_platdata(dev);
+- const struct platform_device_id *id = platform_get_device_id(pdev);
+- struct ata_port_info pi = ahci_port_info[id ? id->driver_data : 0];
+- const struct ata_port_info *ppi[] = { &pi, NULL };
+- struct ahci_host_priv *hpriv;
+- struct ata_host *host;
+- struct resource *mem;
+- int irq;
+- int n_ports;
+- int i;
+- int rc;
+ int c, rc;
-+
+
+- mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+- if (!mem) {
+- dev_err(dev, "no mmio space\n");
+- return -EINVAL;
+ for (c = 0; c < AHCI_MAX_CLKS && hpriv->clks[c]; c++) {
+ rc = clk_prepare_enable(hpriv->clks[c]);
+ if (rc)
+ goto disable_unprepare_clk;
-+ }
+ }
+ return 0;
-+
+
+- irq = platform_get_irq(pdev, 0);
+- if (irq <= 0) {
+- dev_err(dev, "no irq\n");
+- return -EINVAL;
+- }
+disable_unprepare_clk:
+ while (--c >= 0)
+ clk_disable_unprepare(hpriv->clks[c]);
+ return rc;
+}
+EXPORT_SYMBOL_GPL(ahci_platform_enable_clks);
-+
+
+- if (pdata && pdata->ata_port_info)
+- pi = *pdata->ata_port_info;
+/**
+ * ahci_platform_disable_clks - Disable platform clocks
+ * @hpriv: host private area to store config values
@@ -322,320 +315,17 @@ index 4b231ba..609975d 100644
+void ahci_platform_disable_clks(struct ahci_host_priv *hpriv)
+{
+ int c;
-+
+
+- hpriv = devm_kzalloc(dev, sizeof(*hpriv), GFP_KERNEL);
+- if (!hpriv) {
+- dev_err(dev, "can't alloc ahci_host_priv\n");
+- return -ENOMEM;
+ for (c = AHCI_MAX_CLKS - 1; c >= 0; c--)
+ if (hpriv->clks[c])
+ clk_disable_unprepare(hpriv->clks[c]);
+}
+EXPORT_SYMBOL_GPL(ahci_platform_disable_clks);
+
-+static void ahci_put_clks(struct ahci_host_priv *hpriv)
-+{
-+ int c;
-+
-+ for (c = 0; c < AHCI_MAX_CLKS && hpriv->clks[c]; c++)
-+ clk_put(hpriv->clks[c]);
-+}
-+
- static int ahci_probe(struct platform_device *pdev)
- {
- struct device *dev = &pdev->dev;
-@@ -97,6 +157,7 @@ static int ahci_probe(struct platform_device *pdev)
- struct ahci_host_priv *hpriv;
- struct ata_host *host;
- struct resource *mem;
-+ struct clk *clk;
- int irq;
- int n_ports;
- int i;
-@@ -131,17 +192,31 @@ static int ahci_probe(struct platform_device *pdev)
- return -ENOMEM;
- }
-
-- hpriv->clk = clk_get(dev, NULL);
-- if (IS_ERR(hpriv->clk)) {
-- dev_err(dev, "can't get clock\n");
-- } else {
-- rc = clk_prepare_enable(hpriv->clk);
-- if (rc) {
-- dev_err(dev, "clock prepare enable failed");
-- goto free_clk;
-+ for (i = 0; i < AHCI_MAX_CLKS; i++) {
-+ /*
-+ * For now we must use clk_get(dev, NULL) for the first clock,
-+ * because some platforms (da850, spear13xx) are not yet
-+ * converted to use devicetree for clocks. For new platforms
-+ * this is equivalent to of_clk_get(dev->of_node, 0).
-+ */
-+ if (i == 0)
-+ clk = clk_get(dev, NULL);
-+ else
-+ clk = of_clk_get(dev->of_node, i);
-+
-+ if (IS_ERR(clk)) {
-+ rc = PTR_ERR(clk);
-+ if (rc == -EPROBE_DEFER)
-+ goto free_clk;
-+ break;
- }
-+ hpriv->clks[i] = clk;
- }
-
-+ rc = ahci_enable_clks(dev, hpriv);
-+ if (rc)
-+ goto free_clk;
-+
- /*
- * Some platforms might need to prepare for mmio region access,
- * which could be done in the following init call. So, the mmio
-@@ -222,11 +297,9 @@ static int ahci_probe(struct platform_device *pdev)
- if (pdata && pdata->exit)
- pdata->exit(dev);
- disable_unprepare_clk:
-- if (!IS_ERR(hpriv->clk))
-- clk_disable_unprepare(hpriv->clk);
-+ ahci_disable_clks(hpriv);
- free_clk:
-- if (!IS_ERR(hpriv->clk))
-- clk_put(hpriv->clk);
-+ ahci_put_clks(hpriv);
- return rc;
- }
-
-@@ -239,10 +312,8 @@ static void ahci_host_stop(struct ata_host *host)
- if (pdata && pdata->exit)
- pdata->exit(dev);
-
-- if (!IS_ERR(hpriv->clk)) {
-- clk_disable_unprepare(hpriv->clk);
-- clk_put(hpriv->clk);
-- }
-+ ahci_disable_clks(hpriv);
-+ ahci_put_clks(hpriv);
- }
-
- #ifdef CONFIG_PM_SLEEP
-@@ -277,8 +348,7 @@ static int ahci_suspend(struct device *dev)
- if (pdata && pdata->suspend)
- return pdata->suspend(dev);
-
-- if (!IS_ERR(hpriv->clk))
-- clk_disable_unprepare(hpriv->clk);
-+ ahci_disable_clks(hpriv);
-
- return 0;
- }
-@@ -290,13 +360,9 @@ static int ahci_resume(struct device *dev)
- struct ahci_host_priv *hpriv = host->private_data;
- int rc;
-
-- if (!IS_ERR(hpriv->clk)) {
-- rc = clk_prepare_enable(hpriv->clk);
-- if (rc) {
-- dev_err(dev, "clock prepare enable failed");
-- return rc;
-- }
-- }
-+ rc = ahci_enable_clks(dev, hpriv);
-+ if (rc)
-+ return rc;
-
- if (pdata && pdata->resume) {
- rc = pdata->resume(dev);
-@@ -317,8 +383,7 @@ static int ahci_resume(struct device *dev)
- return 0;
-
- disable_unprepare_clk:
-- if (!IS_ERR(hpriv->clk))
-- clk_disable_unprepare(hpriv->clk);
-+ ahci_disable_clks(hpriv);
-
- return rc;
- }
-diff --git a/include/linux/ahci_platform.h b/include/linux/ahci_platform.h
-index 73a2500..769d065 100644
---- a/include/linux/ahci_platform.h
-+++ b/include/linux/ahci_platform.h
-@@ -19,6 +19,7 @@
-
- struct device;
- struct ata_port_info;
-+struct ahci_host_priv;
-
- struct ahci_platform_data {
- int (*init)(struct device *dev, void __iomem *addr);
-@@ -30,4 +31,7 @@ struct ahci_platform_data {
- unsigned int mask_port_map;
- };
-
-+int ahci_platform_enable_clks(struct ahci_host_priv *hpriv);
-+void ahci_platform_disable_clks(struct ahci_host_priv *hpriv);
-+
- #endif /* _AHCI_PLATFORM_H */
---
-2.0.3
-
-From 3dc53b267843b6dfeb2eb67e52e17915dc2347ab Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Fri, 17 Jan 2014 13:23:21 +0100
-Subject: [PATCH] ahci-platform: Add support for an optional regulator for
- sata-target power
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- .../devicetree/bindings/ata/ahci-platform.txt | 1 +
- drivers/ata/ahci.h | 2 ++
- drivers/ata/ahci_platform.c | 36 ++++++++++++++++++++--
- 3 files changed, 37 insertions(+), 2 deletions(-)
-
-diff --git a/Documentation/devicetree/bindings/ata/ahci-platform.txt b/Documentation/devicetree/bindings/ata/ahci-platform.txt
-index 3ced07d..1ac807f 100644
---- a/Documentation/devicetree/bindings/ata/ahci-platform.txt
-+++ b/Documentation/devicetree/bindings/ata/ahci-platform.txt
-@@ -11,6 +11,7 @@ Required properties:
- Optional properties:
- - dma-coherent : Present if dma operations are coherent
- - clocks : a list of phandle + clock specifier pairs
-+- target-supply : regulator for SATA target power
-
- Example:
- sata@ffe08000 {
-diff --git a/drivers/ata/ahci.h b/drivers/ata/ahci.h
-index c12862b..bf8100c 100644
---- a/drivers/ata/ahci.h
-+++ b/drivers/ata/ahci.h
-@@ -37,6 +37,7 @@
-
- #include <linux/clk.h>
- #include <linux/libata.h>
-+#include <linux/regulator/consumer.h>
-
- /* Enclosure Management Control */
- #define EM_CTRL_MSG_TYPE 0x000f0000
-@@ -323,6 +324,7 @@ struct ahci_host_priv {
- u32 em_buf_sz; /* EM buffer size in byte */
- u32 em_msg_type; /* EM message type */
- struct clk *clks[AHCI_MAX_CLKS]; /* Optional */
-+ struct regulator *target_pwr; /* Optional */
- void *plat_data; /* Other platform data */
- /*
- * Optional ahci_start_engine override, if not set this gets set to the
-diff --git a/drivers/ata/ahci_platform.c b/drivers/ata/ahci_platform.c
-index 609975d..907c076 100644
---- a/drivers/ata/ahci_platform.c
-+++ b/drivers/ata/ahci_platform.c
-@@ -192,6 +192,14 @@ static int ahci_probe(struct platform_device *pdev)
- return -ENOMEM;
- }
-
-+ hpriv->target_pwr = devm_regulator_get_optional(dev, "target");
-+ if (IS_ERR(hpriv->target_pwr)) {
-+ rc = PTR_ERR(hpriv->target_pwr);
-+ if (rc == -EPROBE_DEFER)
-+ return -EPROBE_DEFER;
-+ hpriv->target_pwr = NULL;
-+ }
-+
- for (i = 0; i < AHCI_MAX_CLKS; i++) {
- /*
- * For now we must use clk_get(dev, NULL) for the first clock,
-@@ -213,9 +221,15 @@ static int ahci_probe(struct platform_device *pdev)
- hpriv->clks[i] = clk;
- }
-
-+ if (hpriv->target_pwr) {
-+ rc = regulator_enable(hpriv->target_pwr);
-+ if (rc)
-+ goto free_clk;
-+ }
-+
- rc = ahci_enable_clks(dev, hpriv);
- if (rc)
-- goto free_clk;
-+ goto disable_regulator;
-
- /*
- * Some platforms might need to prepare for mmio region access,
-@@ -298,6 +312,9 @@ static int ahci_probe(struct platform_device *pdev)
- pdata->exit(dev);
- disable_unprepare_clk:
- ahci_disable_clks(hpriv);
-+disable_regulator:
-+ if (hpriv->target_pwr)
-+ regulator_disable(hpriv->target_pwr);
- free_clk:
- ahci_put_clks(hpriv);
- return rc;
-@@ -314,6 +331,9 @@ static void ahci_host_stop(struct ata_host *host)
-
- ahci_disable_clks(hpriv);
- ahci_put_clks(hpriv);
-+
-+ if (hpriv->target_pwr)
-+ regulator_disable(hpriv->target_pwr);
- }
-
- #ifdef CONFIG_PM_SLEEP
-@@ -350,6 +370,9 @@ static int ahci_suspend(struct device *dev)
-
- ahci_disable_clks(hpriv);
-
-+ if (hpriv->target_pwr)
-+ regulator_disable(hpriv->target_pwr);
-+
- return 0;
- }
-
-@@ -360,9 +383,15 @@ static int ahci_resume(struct device *dev)
- struct ahci_host_priv *hpriv = host->private_data;
- int rc;
-
-+ if (hpriv->target_pwr) {
-+ rc = regulator_enable(hpriv->target_pwr);
-+ if (rc)
-+ return rc;
-+ }
-+
- rc = ahci_enable_clks(dev, hpriv);
- if (rc)
-- return rc;
-+ goto disable_regulator;
-
- if (pdata && pdata->resume) {
- rc = pdata->resume(dev);
-@@ -384,6 +413,9 @@ static int ahci_resume(struct device *dev)
-
- disable_unprepare_clk:
- ahci_disable_clks(hpriv);
-+disable_regulator:
-+ if (hpriv->target_pwr)
-+ regulator_disable(hpriv->target_pwr);
-
- return rc;
- }
---
-2.0.3
-
-From 74f54552b061865ff46d43aa68d0c6e8852dc592 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Mon, 20 Jan 2014 14:54:40 +0100
-Subject: [PATCH] ahci-platform: Add enable_ / disable_resources helper
- functions
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- drivers/ata/ahci_platform.c | 112 ++++++++++++++++++++++++++++--------------
- include/linux/ahci_platform.h | 2 +
- 2 files changed, 77 insertions(+), 37 deletions(-)
-
-diff --git a/drivers/ata/ahci_platform.c b/drivers/ata/ahci_platform.c
-index 907c076..6ebbc17 100644
---- a/drivers/ata/ahci_platform.c
-+++ b/drivers/ata/ahci_platform.c
-@@ -139,6 +139,68 @@ void ahci_platform_disable_clks(struct ahci_host_priv *hpriv)
- }
- EXPORT_SYMBOL_GPL(ahci_platform_disable_clks);
-
+/**
+ * ahci_platform_enable_resources - Enable platform resources
+ * @hpriv: host private area to store config values
@@ -662,8 +352,9 @@ index 907c076..6ebbc17 100644
+ rc = regulator_enable(hpriv->target_pwr);
+ if (rc)
+ return rc;
-+ }
-+
+ }
+
+- hpriv->flags |= (unsigned long)pi.private_data;
+ rc = ahci_platform_enable_clks(hpriv);
+ if (rc)
+ goto disable_regulator;
@@ -692,186 +383,22 @@ index 907c076..6ebbc17 100644
+void ahci_platform_disable_resources(struct ahci_host_priv *hpriv)
+{
+ ahci_platform_disable_clks(hpriv);
-+
+
+- hpriv->mmio = devm_ioremap(dev, mem->start, resource_size(mem));
+ if (hpriv->target_pwr)
+ regulator_disable(hpriv->target_pwr);
+}
+EXPORT_SYMBOL_GPL(ahci_platform_disable_resources);
+
- static void ahci_put_clks(struct ahci_host_priv *hpriv)
- {
- int c;
-@@ -221,15 +283,9 @@ static int ahci_probe(struct platform_device *pdev)
- hpriv->clks[i] = clk;
- }
-
-- if (hpriv->target_pwr) {
-- rc = regulator_enable(hpriv->target_pwr);
-- if (rc)
-- goto free_clk;
-- }
--
-- rc = ahci_enable_clks(dev, hpriv);
-+ rc = ahci_platform_enable_resources(hpriv);
- if (rc)
-- goto disable_regulator;
-+ goto free_clk;
-
- /*
- * Some platforms might need to prepare for mmio region access,
-@@ -240,7 +296,7 @@ static int ahci_probe(struct platform_device *pdev)
- if (pdata && pdata->init) {
- rc = pdata->init(dev, hpriv->mmio);
- if (rc)
-- goto disable_unprepare_clk;
-+ goto disable_resources;
- }
-
- ahci_save_initial_config(dev, hpriv,
-@@ -310,11 +366,8 @@ static int ahci_probe(struct platform_device *pdev)
- pdata_exit:
- if (pdata && pdata->exit)
- pdata->exit(dev);
--disable_unprepare_clk:
-- ahci_disable_clks(hpriv);
--disable_regulator:
-- if (hpriv->target_pwr)
-- regulator_disable(hpriv->target_pwr);
-+disable_resources:
-+ ahci_platform_disable_resources(hpriv);
- free_clk:
- ahci_put_clks(hpriv);
- return rc;
-@@ -329,11 +382,8 @@ static void ahci_host_stop(struct ata_host *host)
- if (pdata && pdata->exit)
- pdata->exit(dev);
-
-- ahci_disable_clks(hpriv);
-+ ahci_platform_disable_resources(hpriv);
- ahci_put_clks(hpriv);
--
-- if (hpriv->target_pwr)
-- regulator_disable(hpriv->target_pwr);
- }
-
- #ifdef CONFIG_PM_SLEEP
-@@ -368,10 +418,7 @@ static int ahci_suspend(struct device *dev)
- if (pdata && pdata->suspend)
- return pdata->suspend(dev);
-
-- ahci_disable_clks(hpriv);
--
-- if (hpriv->target_pwr)
-- regulator_disable(hpriv->target_pwr);
-+ ahci_platform_disable_resources(hpriv);
-
- return 0;
- }
-@@ -383,26 +430,20 @@ static int ahci_resume(struct device *dev)
- struct ahci_host_priv *hpriv = host->private_data;
- int rc;
-
-- if (hpriv->target_pwr) {
-- rc = regulator_enable(hpriv->target_pwr);
-- if (rc)
-- return rc;
-- }
--
-- rc = ahci_enable_clks(dev, hpriv);
-+ rc = ahci_platform_enable_resources(hpriv);
- if (rc)
-- goto disable_regulator;
-+ return rc;
-
- if (pdata && pdata->resume) {
- rc = pdata->resume(dev);
- if (rc)
-- goto disable_unprepare_clk;
-+ goto disable_resources;
- }
-
- if (dev->power.power_state.event == PM_EVENT_SUSPEND) {
- rc = ahci_reset_controller(host);
- if (rc)
-- goto disable_unprepare_clk;
-+ goto disable_resources;
-
- ahci_init_controller(host);
- }
-@@ -411,11 +452,8 @@ static int ahci_resume(struct device *dev)
-
- return 0;
-
--disable_unprepare_clk:
-- ahci_disable_clks(hpriv);
--disable_regulator:
-- if (hpriv->target_pwr)
-- regulator_disable(hpriv->target_pwr);
-+disable_resources:
-+ ahci_platform_disable_resources(hpriv);
-
- return rc;
- }
-diff --git a/include/linux/ahci_platform.h b/include/linux/ahci_platform.h
-index 769d065..b674b01 100644
---- a/include/linux/ahci_platform.h
-+++ b/include/linux/ahci_platform.h
-@@ -33,5 +33,7 @@ struct ahci_platform_data {
-
- int ahci_platform_enable_clks(struct ahci_host_priv *hpriv);
- void ahci_platform_disable_clks(struct ahci_host_priv *hpriv);
-+int ahci_platform_enable_resources(struct ahci_host_priv *hpriv);
-+void ahci_platform_disable_resources(struct ahci_host_priv *hpriv);
-
- #endif /* _AHCI_PLATFORM_H */
---
-2.0.3
-
-From 88972833cba7a6dad8e9a1c9b43ab02fc274e4fd Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Mon, 20 Jan 2014 14:58:04 +0100
-Subject: [PATCH] ahci-platform: "Library-ise" ahci_probe functionality
-
-ahci_probe consists of 3 steps:
-1) Get resources (get mmio, clks, regulator)
-2) Enable resources, handled by ahci_platform_enable_resouces
-3) The more or less standard ahci-host controller init sequence
-
-This commit refactors step 1 and 3 into separate functions, so the platform
-drivers for AHCI implementations which need a specific order in step 2,
-and / or need to do some custom register poking at some time, can re-use
-ahci-platform.c code without needing to copy and paste it.
-
-Note that ahci_platform_init_host's prototype takes the 3 non function
-members of ahci_platform_data as arguments, the idea is that drivers using
-the new exported utility functions will not use ahci_platform_data at all,
-and hopefully in the future ahci_platform_data can go away entirely.
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- drivers/ata/ahci_platform.c | 195 ++++++++++++++++++++++++++++--------------
- include/linux/ahci_platform.h | 14 +++
- 2 files changed, 144 insertions(+), 65 deletions(-)
-
-diff --git a/drivers/ata/ahci_platform.c b/drivers/ata/ahci_platform.c
-index 6ebbc17..7f3f2ac 100644
---- a/drivers/ata/ahci_platform.c
-+++ b/drivers/ata/ahci_platform.c
-@@ -201,64 +201,64 @@ void ahci_platform_disable_resources(struct ahci_host_priv *hpriv)
- }
- EXPORT_SYMBOL_GPL(ahci_platform_disable_resources);
-
--static void ahci_put_clks(struct ahci_host_priv *hpriv)
+static void ahci_platform_put_resources(struct device *dev, void *res)
- {
++{
+ struct ahci_host_priv *hpriv = res;
- int c;
-
- for (c = 0; c < AHCI_MAX_CLKS && hpriv->clks[c]; c++)
- clk_put(hpriv->clks[c]);
- }
-
--static int ahci_probe(struct platform_device *pdev)
++ int c;
++
++ for (c = 0; c < AHCI_MAX_CLKS && hpriv->clks[c]; c++)
++ clk_put(hpriv->clks[c]);
++}
++
+/**
+ * ahci_platform_get_resources - Get platform resources
+ * @pdev: platform device to get resources for
@@ -893,53 +420,22 @@ index 6ebbc17..7f3f2ac 100644
+ */
+struct ahci_host_priv *ahci_platform_get_resources(
+ struct platform_device *pdev)
- {
- struct device *dev = &pdev->dev;
-- struct ahci_platform_data *pdata = dev_get_platdata(dev);
-- const struct platform_device_id *id = platform_get_device_id(pdev);
-- struct ata_port_info pi = ahci_port_info[id ? id->driver_data : 0];
-- const struct ata_port_info *ppi[] = { &pi, NULL };
- struct ahci_host_priv *hpriv;
-- struct ata_host *host;
-- struct resource *mem;
- struct clk *clk;
-- int irq;
-- int n_ports;
-- int i;
-- int rc;
++{
++ struct device *dev = &pdev->dev;
++ struct ahci_host_priv *hpriv;
++ struct clk *clk;
+ int i, rc = -ENOMEM;
-
-- mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-- if (!mem) {
-- dev_err(dev, "no mmio space\n");
-- return -EINVAL;
-- }
++
+ if (!devres_open_group(dev, NULL, GFP_KERNEL))
+ return ERR_PTR(-ENOMEM);
-
-- irq = platform_get_irq(pdev, 0);
-- if (irq <= 0) {
-- dev_err(dev, "no irq\n");
-- return -EINVAL;
-- }
++
+ hpriv = devres_alloc(ahci_platform_put_resources, sizeof(*hpriv),
+ GFP_KERNEL);
+ if (!hpriv)
+ goto err_out;
-
-- if (pdata && pdata->ata_port_info)
-- pi = *pdata->ata_port_info;
++
+ devres_add(dev, hpriv);
-
-- hpriv = devm_kzalloc(dev, sizeof(*hpriv), GFP_KERNEL);
-- if (!hpriv) {
-- dev_err(dev, "can't alloc ahci_host_priv\n");
-- return -ENOMEM;
-- }
--
-- hpriv->flags |= (unsigned long)pi.private_data;
--
-- hpriv->mmio = devm_ioremap(dev, mem->start, resource_size(mem));
++
+ hpriv->mmio = devm_ioremap_resource(dev,
+ platform_get_resource(pdev, IORESOURCE_MEM, 0));
if (!hpriv->mmio) {
@@ -949,32 +445,43 @@ index 6ebbc17..7f3f2ac 100644
+ goto err_out;
}
- hpriv->target_pwr = devm_regulator_get_optional(dev, "target");
- if (IS_ERR(hpriv->target_pwr)) {
- rc = PTR_ERR(hpriv->target_pwr);
- if (rc == -EPROBE_DEFER)
-- return -EPROBE_DEFER;
+- hpriv->clk = clk_get(dev, NULL);
+- if (IS_ERR(hpriv->clk)) {
+- dev_err(dev, "can't get clock\n");
+- } else {
+- rc = clk_prepare_enable(hpriv->clk);
+- if (rc) {
+- dev_err(dev, "clock prepare enable failed");
+- goto free_clk;
++ hpriv->target_pwr = devm_regulator_get_optional(dev, "target");
++ if (IS_ERR(hpriv->target_pwr)) {
++ rc = PTR_ERR(hpriv->target_pwr);
++ if (rc == -EPROBE_DEFER)
+ goto err_out;
- hpriv->target_pwr = NULL;
- }
-
-@@ -277,33 +277,62 @@ static int ahci_probe(struct platform_device *pdev)
- if (IS_ERR(clk)) {
- rc = PTR_ERR(clk);
- if (rc == -EPROBE_DEFER)
-- goto free_clk;
++ hpriv->target_pwr = NULL;
++ }
++
++ for (i = 0; i < AHCI_MAX_CLKS; i++) {
++ /*
++ * For now we must use clk_get(dev, NULL) for the first clock,
++ * because some platforms (da850, spear13xx) are not yet
++ * converted to use devicetree for clocks. For new platforms
++ * this is equivalent to of_clk_get(dev->of_node, 0).
++ */
++ if (i == 0)
++ clk = clk_get(dev, NULL);
++ else
++ clk = of_clk_get(dev->of_node, i);
++
++ if (IS_ERR(clk)) {
++ rc = PTR_ERR(clk);
++ if (rc == -EPROBE_DEFER)
+ goto err_out;
- break;
++ break;
}
- hpriv->clks[i] = clk;
++ hpriv->clks[i] = clk;
}
-- rc = ahci_platform_enable_resources(hpriv);
-- if (rc)
-- goto free_clk;
-+ devres_remove_group(dev, NULL);
-+ return hpriv;
-
- /*
- * Some platforms might need to prepare for mmio region access,
- * which could be done in the following init call. So, the mmio
@@ -984,8 +491,11 @@ index 6ebbc17..7f3f2ac 100644
- if (pdata && pdata->init) {
- rc = pdata->init(dev, hpriv->mmio);
- if (rc)
-- goto disable_resources;
+- goto disable_unprepare_clk;
- }
++ devres_remove_group(dev, NULL);
++ return hpriv;
++
+err_out:
+ devres_release_group(dev, NULL);
+ return ERR_PTR(rc);
@@ -1039,7 +549,7 @@ index 6ebbc17..7f3f2ac 100644
if (hpriv->cap & HOST_CAP_NCQ)
pi.flags |= ATA_FLAG_NCQ;
-@@ -320,10 +349,8 @@ static int ahci_probe(struct platform_device *pdev)
+@@ -175,10 +349,8 @@ static int ahci_probe(struct platform_de
n_ports = max(ahci_nr_ports(hpriv->cap), fls(hpriv->port_map));
host = ata_host_alloc_pinfo(dev, ppi, n_ports);
@@ -1052,7 +562,7 @@ index 6ebbc17..7f3f2ac 100644
host->private_data = hpriv;
-@@ -338,7 +365,8 @@ static int ahci_probe(struct platform_device *pdev)
+@@ -193,7 +365,8 @@ static int ahci_probe(struct platform_de
for (i = 0; i < host->n_ports; i++) {
struct ata_port *ap = host->ports[i];
@@ -1062,7 +572,7 @@ index 6ebbc17..7f3f2ac 100644
ata_port_desc(ap, "port 0x%x", 0x100 + ap->port_no * 0x80);
/* set enclosure management message type */
-@@ -352,13 +380,53 @@ static int ahci_probe(struct platform_device *pdev)
+@@ -207,13 +380,53 @@ static int ahci_probe(struct platform_de
rc = ahci_reset_controller(host);
if (rc)
@@ -1119,78 +629,30 @@ index 6ebbc17..7f3f2ac 100644
if (rc)
goto pdata_exit;
-@@ -368,8 +436,6 @@ static int ahci_probe(struct platform_device *pdev)
+@@ -221,12 +434,8 @@ static int ahci_probe(struct platform_de
+ pdata_exit:
+ if (pdata && pdata->exit)
pdata->exit(dev);
- disable_resources:
- ahci_platform_disable_resources(hpriv);
+-disable_unprepare_clk:
+- if (!IS_ERR(hpriv->clk))
+- clk_disable_unprepare(hpriv->clk);
-free_clk:
-- ahci_put_clks(hpriv);
+- if (!IS_ERR(hpriv->clk))
+- clk_put(hpriv->clk);
++disable_resources:
++ ahci_platform_disable_resources(hpriv);
return rc;
}
-@@ -383,7 +449,6 @@ static void ahci_host_stop(struct ata_host *host)
+@@ -239,21 +448,30 @@ static void ahci_host_stop(struct ata_ho
+ if (pdata && pdata->exit)
pdata->exit(dev);
- ahci_platform_disable_resources(hpriv);
-- ahci_put_clks(hpriv);
- }
-
- #ifdef CONFIG_PM_SLEEP
-diff --git a/include/linux/ahci_platform.h b/include/linux/ahci_platform.h
-index b674b01..b80c51c 100644
---- a/include/linux/ahci_platform.h
-+++ b/include/linux/ahci_platform.h
-@@ -20,7 +20,14 @@
- struct device;
- struct ata_port_info;
- struct ahci_host_priv;
-+struct platform_device;
-
-+/*
-+ * Note ahci_platform_data is deprecated, it is only kept around for use
-+ * by the old da850 and spear13xx ahci code.
-+ * New drivers should instead declare their own platform_driver struct, and
-+ * use ahci_platform* functions in their own probe, suspend and resume methods.
-+ */
- struct ahci_platform_data {
- int (*init)(struct device *dev, void __iomem *addr);
- void (*exit)(struct device *dev);
-@@ -35,5 +42,12 @@ int ahci_platform_enable_clks(struct ahci_host_priv *hpriv);
- void ahci_platform_disable_clks(struct ahci_host_priv *hpriv);
- int ahci_platform_enable_resources(struct ahci_host_priv *hpriv);
- void ahci_platform_disable_resources(struct ahci_host_priv *hpriv);
-+struct ahci_host_priv *ahci_platform_get_resources(
-+ struct platform_device *pdev);
-+int ahci_platform_init_host(struct platform_device *pdev,
-+ struct ahci_host_priv *hpriv,
-+ const struct ata_port_info *pi_template,
-+ unsigned int force_port_map,
-+ unsigned int mask_port_map);
-
- #endif /* _AHCI_PLATFORM_H */
---
-2.0.3
-
-From dffde1e107b4360a4ff6b3aec3693e8b3b4a1bd0 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Mon, 20 Jan 2014 15:52:07 +0100
-Subject: [PATCH] ahci-platform: "Library-ise" suspend / resume functionality
-
-Split suspend / resume code into host suspend / resume functionality and
-resource enable / disabling phases, and export the new suspend_ / resume_host
-functions.
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- drivers/ata/ahci_platform.c | 109 ++++++++++++++++++++++++++++++++++++------
- include/linux/ahci_platform.h | 5 ++
- 2 files changed, 99 insertions(+), 15 deletions(-)
-
-diff --git a/drivers/ata/ahci_platform.c b/drivers/ata/ahci_platform.c
-index 7f3f2ac..bdadec1 100644
---- a/drivers/ata/ahci_platform.c
-+++ b/drivers/ata/ahci_platform.c
-@@ -452,14 +452,26 @@ static void ahci_host_stop(struct ata_host *host)
+- if (!IS_ERR(hpriv->clk)) {
+- clk_disable_unprepare(hpriv->clk);
+- clk_put(hpriv->clk);
+- }
++ ahci_platform_disable_resources(hpriv);
}
#ifdef CONFIG_PM_SLEEP
@@ -1220,7 +682,7 @@ index 7f3f2ac..bdadec1 100644
if (hpriv->flags & AHCI_HFLAG_NO_SUSPEND) {
dev_err(dev, "firmware update required for suspend/resume\n");
-@@ -476,7 +488,64 @@ static int ahci_suspend(struct device *dev)
+@@ -270,61 +488,122 @@ static int ahci_suspend(struct device *d
writel(ctl, mmio + HOST_CTL);
readl(mmio + HOST_CTL); /* flush */
@@ -1286,7 +748,12 @@ index 7f3f2ac..bdadec1 100644
if (rc)
return rc;
-@@ -487,8 +556,22 @@ static int ahci_suspend(struct device *dev)
+ if (pdata && pdata->suspend)
+ return pdata->suspend(dev);
+
+- if (!IS_ERR(hpriv->clk))
+- clk_disable_unprepare(hpriv->clk);
++ ahci_platform_disable_resources(hpriv);
return 0;
}
@@ -1310,18 +777,35 @@ index 7f3f2ac..bdadec1 100644
{
struct ahci_platform_data *pdata = dev_get_platdata(dev);
struct ata_host *host = dev_get_drvdata(dev);
-@@ -505,15 +588,9 @@ static int ahci_resume(struct device *dev)
- goto disable_resources;
- }
+ struct ahci_host_priv *hpriv = host->private_data;
+ int rc;
+
+- if (!IS_ERR(hpriv->clk)) {
+- rc = clk_prepare_enable(hpriv->clk);
+- if (rc) {
+- dev_err(dev, "clock prepare enable failed");
+- return rc;
+- }
+- }
++ rc = ahci_platform_enable_resources(hpriv);
++ if (rc)
++ return rc;
+ if (pdata && pdata->resume) {
+ rc = pdata->resume(dev);
+ if (rc)
+- goto disable_unprepare_clk;
+- }
+-
- if (dev->power.power_state.event == PM_EVENT_SUSPEND) {
- rc = ahci_reset_controller(host);
- if (rc)
-- goto disable_resources;
+- goto disable_unprepare_clk;
-
- ahci_init_controller(host);
-- }
--
++ goto disable_resources;
+ }
+
- ata_host_resume(host);
+ rc = ahci_platform_resume_host(dev);
+ if (rc)
@@ -1329,7 +813,11 @@ index 7f3f2ac..bdadec1 100644
return 0;
-@@ -522,9 +599,11 @@ static int ahci_resume(struct device *dev)
+-disable_unprepare_clk:
+- if (!IS_ERR(hpriv->clk))
+- clk_disable_unprepare(hpriv->clk);
++disable_resources:
++ ahci_platform_disable_resources(hpriv);
return rc;
}
@@ -1342,20 +830,43 @@ index 7f3f2ac..bdadec1 100644
static const struct of_device_id ahci_of_match[] = {
{ .compatible = "snps,spear-ahci", },
-diff --git a/include/linux/ahci_platform.h b/include/linux/ahci_platform.h
-index b80c51c..542f268 100644
--- a/include/linux/ahci_platform.h
+++ b/include/linux/ahci_platform.h
-@@ -50,4 +50,9 @@ int ahci_platform_init_host(struct platform_device *pdev,
- unsigned int force_port_map,
- unsigned int mask_port_map);
+@@ -19,7 +19,15 @@
+ struct device;
+ struct ata_port_info;
++struct ahci_host_priv;
++struct platform_device;
+
++/*
++ * Note ahci_platform_data is deprecated, it is only kept around for use
++ * by the old da850 and spear13xx ahci code.
++ * New drivers should instead declare their own platform_driver struct, and
++ * use ahci_platform* functions in their own probe, suspend and resume methods.
++ */
+ struct ahci_platform_data {
+ int (*init)(struct device *dev, void __iomem *addr);
+ void (*exit)(struct device *dev);
+@@ -30,4 +38,21 @@ struct ahci_platform_data {
+ unsigned int mask_port_map;
+ };
+
++int ahci_platform_enable_clks(struct ahci_host_priv *hpriv);
++void ahci_platform_disable_clks(struct ahci_host_priv *hpriv);
++int ahci_platform_enable_resources(struct ahci_host_priv *hpriv);
++void ahci_platform_disable_resources(struct ahci_host_priv *hpriv);
++struct ahci_host_priv *ahci_platform_get_resources(
++ struct platform_device *pdev);
++int ahci_platform_init_host(struct platform_device *pdev,
++ struct ahci_host_priv *hpriv,
++ const struct ata_port_info *pi_template,
++ unsigned int force_port_map,
++ unsigned int mask_port_map);
++
+int ahci_platform_suspend_host(struct device *dev);
+int ahci_platform_resume_host(struct device *dev);
+int ahci_platform_suspend(struct device *dev);
+int ahci_platform_resume(struct device *dev);
+
#endif /* _AHCI_PLATFORM_H */
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/191-ahci-add-sunxi-driver.patch b/target/linux/sunxi/patches-3.14/191-ahci-add-sunxi-driver.patch
index 51f5ec4686..563b19d366 100644
--- a/target/linux/sunxi/patches-3.14/191-ahci-add-sunxi-driver.patch
+++ b/target/linux/sunxi/patches-3.14/191-ahci-add-sunxi-driver.patch
@@ -25,11 +25,9 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
4 files changed, 271 insertions(+), 3 deletions(-)
create mode 100644 drivers/ata/ahci_sunxi.c
-diff --git a/Documentation/devicetree/bindings/ata/ahci-platform.txt b/Documentation/devicetree/bindings/ata/ahci-platform.txt
-index 1ac807f..499bfed 100644
--- a/Documentation/devicetree/bindings/ata/ahci-platform.txt
+++ b/Documentation/devicetree/bindings/ata/ahci-platform.txt
-@@ -4,7 +4,9 @@ SATA nodes are defined to describe on-chip Serial ATA controllers.
+@@ -4,7 +4,9 @@ SATA nodes are defined to describe on-ch
Each SATA controller should have its own node.
Required properties:
@@ -60,8 +58,6 @@ index 1ac807f..499bfed 100644
+ clocks = <&pll6 0>, <&ahb_gates 25>;
+ target-supply = <&reg_ahci_5v>;
+ };
-diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
-index 868429a4..10a9c25 100644
--- a/drivers/ata/Kconfig
+++ b/drivers/ata/Kconfig
@@ -106,6 +106,15 @@ config AHCI_IMX
@@ -80,8 +76,6 @@ index 868429a4..10a9c25 100644
config SATA_FSL
tristate "Freescale 3.0Gbps SATA support"
depends on FSL_SOC
-diff --git a/drivers/ata/Makefile b/drivers/ata/Makefile
-index 46518c6..246050b 100644
--- a/drivers/ata/Makefile
+++ b/drivers/ata/Makefile
@@ -11,6 +11,7 @@ obj-$(CONFIG_SATA_SIL24) += sata_sil24.o
@@ -92,9 +86,6 @@ index 46518c6..246050b 100644
# SFF w/ custom DMA
obj-$(CONFIG_PDC_ADMA) += pdc_adma.o
-diff --git a/drivers/ata/ahci_sunxi.c b/drivers/ata/ahci_sunxi.c
-new file mode 100644
-index 0000000..001f7dfc
--- /dev/null
+++ b/drivers/ata/ahci_sunxi.c
@@ -0,0 +1,249 @@
@@ -347,6 +338,3 @@ index 0000000..001f7dfc
+MODULE_DESCRIPTION("Allwinner sunxi AHCI SATA driver");
+MODULE_AUTHOR("Olliver Schinagl <oliver@schinagl.nl>");
+MODULE_LICENSE("GPL");
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/192-ahci-platform-changes.patch b/target/linux/sunxi/patches-3.14/192-ahci-platform-changes.patch
index 3c567f82a4..a5f4fc50a0 100644
--- a/target/linux/sunxi/patches-3.14/192-ahci-platform-changes.patch
+++ b/target/linux/sunxi/patches-3.14/192-ahci-platform-changes.patch
@@ -14,72 +14,18 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
drivers/ata/ahci_platform.c | 1 +
1 file changed, 1 insertion(+)
-diff --git a/drivers/ata/ahci_platform.c b/drivers/ata/ahci_platform.c
-index bdadec1..d7e55ba 100644
--- a/drivers/ata/ahci_platform.c
+++ b/drivers/ata/ahci_platform.c
-@@ -609,6 +609,7 @@ static const struct of_device_id ahci_of_match[] = {
- { .compatible = "snps,spear-ahci", },
- { .compatible = "snps,exynos5440-ahci", },
- { .compatible = "ibm,476gtr-ahci", },
-+ { .compatible = "snps,dwc-ahci", },
- {},
- };
- MODULE_DEVICE_TABLE(of, ahci_of_match);
---
-2.0.3
-
-From 2be39fa6b6531bd083c766999345adc348b14c77 Mon Sep 17 00:00:00 2001
-From: Roger Quadros <rogerq@ti.com>
-Date: Mon, 27 Jan 2014 16:41:18 +0200
-Subject: [PATCH] ata: ahci_platform: Manage SATA PHY
-
-Some platforms have a PHY hooked up to the
-SATA controller. The PHY needs to be initialized
-and powered up for SATA to work. We do that
-using the PHY framework.
-
-CC: Balaji T K <balajitk@ti.com>
-Signed-off-by: Roger Quadros <rogerq@ti.com>
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- drivers/ata/ahci.h | 2 ++
- drivers/ata/ahci_platform.c | 47 +++++++++++++++++++++++++++++++++++++++++++--
- 2 files changed, 47 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/ata/ahci.h b/drivers/ata/ahci.h
-index bf8100c..3ab7ac9 100644
---- a/drivers/ata/ahci.h
-+++ b/drivers/ata/ahci.h
-@@ -37,6 +37,7 @@
-
- #include <linux/clk.h>
- #include <linux/libata.h>
-+#include <linux/phy/phy.h>
- #include <linux/regulator/consumer.h>
-
- /* Enclosure Management Control */
-@@ -325,6 +326,7 @@ struct ahci_host_priv {
- u32 em_msg_type; /* EM message type */
- struct clk *clks[AHCI_MAX_CLKS]; /* Optional */
- struct regulator *target_pwr; /* Optional */
-+ struct phy *phy; /* If platform uses phy */
- void *plat_data; /* Other platform data */
- /*
- * Optional ahci_start_engine override, if not set this gets set to the
-diff --git a/drivers/ata/ahci_platform.c b/drivers/ata/ahci_platform.c
-index d7e55ba..99d38c1 100644
---- a/drivers/ata/ahci_platform.c
-+++ b/drivers/ata/ahci_platform.c
-@@ -23,6 +23,7 @@
+@@ -23,6 +23,8 @@
#include <linux/platform_device.h>
#include <linux/libata.h>
#include <linux/ahci_platform.h>
+#include <linux/phy/phy.h>
++#include <linux/pm_runtime.h>
#include "ahci.h"
static void ahci_host_stop(struct ata_host *host);
-@@ -147,6 +148,7 @@ EXPORT_SYMBOL_GPL(ahci_platform_disable_clks);
+@@ -147,6 +149,7 @@ EXPORT_SYMBOL_GPL(ahci_platform_disable_
* the following order:
* 1) Regulator
* 2) Clocks (through ahci_platform_enable_clks)
@@ -87,7 +33,7 @@ index d7e55ba..99d38c1 100644
*
* If resource enabling fails at any point the previous enabled
* resources are disabled in reverse order.
-@@ -171,8 +173,23 @@ int ahci_platform_enable_resources(struct ahci_host_priv *hpriv)
+@@ -171,8 +174,23 @@ int ahci_platform_enable_resources(struc
if (rc)
goto disable_regulator;
@@ -111,7 +57,7 @@ index d7e55ba..99d38c1 100644
disable_regulator:
if (hpriv->target_pwr)
regulator_disable(hpriv->target_pwr);
-@@ -186,14 +203,20 @@ EXPORT_SYMBOL_GPL(ahci_platform_enable_resources);
+@@ -186,14 +204,20 @@ EXPORT_SYMBOL_GPL(ahci_platform_enable_r
*
* This function disables all ahci_platform managed resources in
* the following order:
@@ -134,7 +80,19 @@ index d7e55ba..99d38c1 100644
ahci_platform_disable_clks(hpriv);
if (hpriv->target_pwr)
-@@ -222,6 +245,7 @@ static void ahci_platform_put_resources(struct device *dev, void *res)
+@@ -206,6 +230,11 @@ static void ahci_platform_put_resources(
+ struct ahci_host_priv *hpriv = res;
+ int c;
+
++ if (hpriv->got_runtime_pm) {
++ pm_runtime_put_sync(dev);
++ pm_runtime_disable(dev);
++ }
++
+ for (c = 0; c < AHCI_MAX_CLKS && hpriv->clks[c]; c++)
+ clk_put(hpriv->clks[c]);
+ }
+@@ -222,6 +251,7 @@ static void ahci_platform_put_resources(
* 2) regulator for controlling the targets power (optional)
* 3) 0 - AHCI_MAX_CLKS clocks, as specified in the devs devicetree node,
* or for non devicetree enabled platforms a single clock
@@ -142,7 +100,7 @@ index d7e55ba..99d38c1 100644
*
* LOCKING:
* None.
-@@ -283,6 +307,25 @@ struct ahci_host_priv *ahci_platform_get_resources(
+@@ -283,6 +313,29 @@ struct ahci_host_priv *ahci_platform_get
hpriv->clks[i] = clk;
}
@@ -165,75 +123,6 @@ index d7e55ba..99d38c1 100644
+ }
+ }
+
- devres_remove_group(dev, NULL);
- return hpriv;
-
---
-2.0.3
-
-From 22d93de35a39507bcdf0c62c5e1fab0625f7c6f6 Mon Sep 17 00:00:00 2001
-From: Roger Quadros <rogerq@ti.com>
-Date: Wed, 9 Oct 2013 15:08:59 +0300
-Subject: [PATCH] ata: ahci_platform: runtime resume the device before use
-
-On OMAP platforms the device needs to be runtime resumed before
-it can be accessed. The OMAP HWMOD framework takes care of
-enabling the module and its resources based on the
-device's runtime PM state.
-
-In this patch we runtime resume during .probe() and runtime suspend
-after .remove().
-
-We also update the runtime PM state during .resume().
-
-CC: Balaji T K <balajitk@ti.com>
-Signed-off-by: Roger Quadros <rogerq@ti.com>
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- drivers/ata/ahci.h | 1 +
- drivers/ata/ahci_platform.c | 15 +++++++++++++++
- 2 files changed, 16 insertions(+)
-
-diff --git a/drivers/ata/ahci.h b/drivers/ata/ahci.h
-index 3ab7ac9..51af275b 100644
---- a/drivers/ata/ahci.h
-+++ b/drivers/ata/ahci.h
-@@ -324,6 +324,7 @@ struct ahci_host_priv {
- u32 em_loc; /* enclosure management location */
- u32 em_buf_sz; /* EM buffer size in byte */
- u32 em_msg_type; /* EM message type */
-+ bool got_runtime_pm; /* Did we do pm_runtime_get? */
- struct clk *clks[AHCI_MAX_CLKS]; /* Optional */
- struct regulator *target_pwr; /* Optional */
- struct phy *phy; /* If platform uses phy */
-diff --git a/drivers/ata/ahci_platform.c b/drivers/ata/ahci_platform.c
-index 99d38c1..75698a4 100644
---- a/drivers/ata/ahci_platform.c
-+++ b/drivers/ata/ahci_platform.c
-@@ -24,6 +24,7 @@
- #include <linux/libata.h>
- #include <linux/ahci_platform.h>
- #include <linux/phy/phy.h>
-+#include <linux/pm_runtime.h>
- #include "ahci.h"
-
- static void ahci_host_stop(struct ata_host *host);
-@@ -229,6 +230,11 @@ static void ahci_platform_put_resources(struct device *dev, void *res)
- struct ahci_host_priv *hpriv = res;
- int c;
-
-+ if (hpriv->got_runtime_pm) {
-+ pm_runtime_put_sync(dev);
-+ pm_runtime_disable(dev);
-+ }
-+
- for (c = 0; c < AHCI_MAX_CLKS && hpriv->clks[c]; c++)
- clk_put(hpriv->clks[c]);
- }
-@@ -326,6 +332,10 @@ struct ahci_host_priv *ahci_platform_get_resources(
- }
- }
-
+ pm_runtime_enable(dev);
+ pm_runtime_get_sync(dev);
+ hpriv->got_runtime_pm = true;
@@ -241,7 +130,7 @@ index 99d38c1..75698a4 100644
devres_remove_group(dev, NULL);
return hpriv;
-@@ -635,6 +645,11 @@ int ahci_platform_resume(struct device *dev)
+@@ -592,6 +645,11 @@ int ahci_platform_resume(struct device *
if (rc)
goto disable_resources;
@@ -253,27 +142,38 @@ index 99d38c1..75698a4 100644
return 0;
disable_resources:
---
-2.0.3
-
-From 22cccaf7a29b2a9d8a1440d089f399a6d2432b81 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Sun, 23 Feb 2014 11:37:17 +0100
-Subject: [PATCH] ahci_sunxi: Use msleep instead of mdelay
-
-ahci_sunxi_phy_init is called from the probe and resume code paths, and
-sleeping is safe in both, so use msleep instead of mdelay.
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- drivers/ata/ahci_sunxi.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/ata/ahci_sunxi.c b/drivers/ata/ahci_sunxi.c
-index 001f7dfc..d1bf3f7 100644
+@@ -609,6 +667,7 @@ static const struct of_device_id ahci_of
+ { .compatible = "snps,spear-ahci", },
+ { .compatible = "snps,exynos5440-ahci", },
+ { .compatible = "ibm,476gtr-ahci", },
++ { .compatible = "snps,dwc-ahci", },
+ {},
+ };
+ MODULE_DEVICE_TABLE(of, ahci_of_match);
+--- a/drivers/ata/ahci.h
++++ b/drivers/ata/ahci.h
+@@ -37,6 +37,7 @@
+
+ #include <linux/clk.h>
+ #include <linux/libata.h>
++#include <linux/phy/phy.h>
+ #include <linux/regulator/consumer.h>
+
+ /* Enclosure Management Control */
+@@ -324,8 +325,10 @@ struct ahci_host_priv {
+ u32 em_loc; /* enclosure management location */
+ u32 em_buf_sz; /* EM buffer size in byte */
+ u32 em_msg_type; /* EM message type */
++ bool got_runtime_pm; /* Did we do pm_runtime_get? */
+ struct clk *clks[AHCI_MAX_CLKS]; /* Optional */
+ struct regulator *target_pwr; /* Optional */
++ struct phy *phy; /* If platform uses phy */
+ void *plat_data; /* Other platform data */
+ /*
+ * Optional ahci_start_engine override, if not set this gets set to the
--- a/drivers/ata/ahci_sunxi.c
+++ b/drivers/ata/ahci_sunxi.c
-@@ -90,7 +90,7 @@ static int ahci_sunxi_phy_init(struct device *dev, void __iomem *reg_base)
+@@ -90,7 +90,7 @@ static int ahci_sunxi_phy_init(struct de
/* This magic is from the original code */
writel(0, reg_base + AHCI_RWCR);
@@ -282,7 +182,7 @@ index 001f7dfc..d1bf3f7 100644
sunxi_setbits(reg_base + AHCI_PHYCS1R, BIT(19));
sunxi_clrsetbits(reg_base + AHCI_PHYCS0R,
-@@ -105,7 +105,7 @@ static int ahci_sunxi_phy_init(struct device *dev, void __iomem *reg_base)
+@@ -105,7 +105,7 @@ static int ahci_sunxi_phy_init(struct de
(0x7 << 20), (0x3 << 20));
sunxi_clrsetbits(reg_base + AHCI_PHYCS2R,
(0x1f << 5), (0x19 << 5));
@@ -291,7 +191,7 @@ index 001f7dfc..d1bf3f7 100644
sunxi_setbits(reg_base + AHCI_PHYCS0R, (0x1 << 19));
-@@ -137,7 +137,7 @@ static int ahci_sunxi_phy_init(struct device *dev, void __iomem *reg_base)
+@@ -137,7 +137,7 @@ static int ahci_sunxi_phy_init(struct de
udelay(1);
} while (1);
@@ -300,6 +200,3 @@ index 001f7dfc..d1bf3f7 100644
writel(0x7, reg_base + AHCI_RWCR);
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/195-1-ohci-plat-changes.patch b/target/linux/sunxi/patches-3.14/195-1-ohci-plat-changes.patch
index 2fb1928888..fb4c87ea9e 100644
--- a/target/linux/sunxi/patches-3.14/195-1-ohci-plat-changes.patch
+++ b/target/linux/sunxi/patches-3.14/195-1-ohci-plat-changes.patch
@@ -19,20 +19,20 @@ Acked-by: Alan Stern <stern@rowland.harvard.edu>
2 files changed, 162 insertions(+), 22 deletions(-)
create mode 100644 Documentation/devicetree/bindings/usb/usb-ohci.txt
-diff --git a/Documentation/devicetree/bindings/usb/usb-ohci.txt b/Documentation/devicetree/bindings/usb/usb-ohci.txt
-new file mode 100644
-index 0000000..6ba38d9
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/usb-ohci.txt
-@@ -0,0 +1,22 @@
+@@ -0,0 +1,25 @@
+USB OHCI controllers
+
+Required properties:
-+- compatible : "usb-ohci"
++- compatible : "generic-ohci"
+- reg : ohci controller register range (address and length)
+- interrupts : ohci controller interrupt
+
+Optional properties:
++- big-endian-regs : boolean, set this for hcds with big-endian registers
++- big-endian-desc : boolean, set this for hcds with big-endian descriptors
++- big-endian : boolean, for hcds with big-endian-regs + big-endian-desc
+- clocks : a list of phandle + clock specifier pairs
+- phys : phandle + phy specifier pair
+- phy-names : "usb"
@@ -40,15 +40,13 @@ index 0000000..6ba38d9
+Example:
+
+ ohci0: usb@01c14400 {
-+ compatible = "allwinner,sun4i-a10-ohci", "usb-ohci";
++ compatible = "allwinner,sun4i-a10-ohci", "generic-ohci";
+ reg = <0x01c14400 0x100>;
+ interrupts = <64>;
+ clocks = <&usb_clk 6>, <&ahb_gates 2>;
+ phys = <&usbphy 1>;
+ phy-names = "usb";
+ };
-diff --git a/drivers/usb/host/ohci-platform.c b/drivers/usb/host/ohci-platform.c
-index 68f674c..49304dd 100644
--- a/drivers/usb/host/ohci-platform.c
+++ b/drivers/usb/host/ohci-platform.c
@@ -3,6 +3,7 @@
@@ -88,7 +86,7 @@ index 68f674c..49304dd 100644
static const char hcd_name[] = "ohci-platform";
-@@ -48,11 +59,67 @@ static int ohci_platform_reset(struct usb_hcd *hcd)
+@@ -48,11 +59,67 @@ static int ohci_platform_reset(struct us
return ohci_setup(hcd);
}
@@ -158,7 +156,7 @@ index 68f674c..49304dd 100644
};
static int ohci_platform_probe(struct platform_device *dev)
-@@ -60,17 +127,23 @@ static int ohci_platform_probe(struct platform_device *dev)
+@@ -60,17 +127,24 @@ static int ohci_platform_probe(struct pl
struct usb_hcd *hcd;
struct resource *res_mem;
struct usb_ohci_pdata *pdata = dev_get_platdata(&dev->dev);
@@ -170,6 +168,7 @@ index 68f674c..49304dd 100644
- return -ENODEV;
- }
+ struct ohci_platform_priv *priv;
++ struct ohci_hcd *ohci;
+ int err, irq, clk = 0;
if (usb_disabled())
@@ -189,7 +188,7 @@ index 68f674c..49304dd 100644
irq = platform_get_irq(dev, 0);
if (irq < 0) {
dev_err(&dev->dev, "no irq provided");
-@@ -83,17 +156,40 @@ static int ohci_platform_probe(struct platform_device *dev)
+@@ -83,17 +157,66 @@ static int ohci_platform_probe(struct pl
return -ENXIO;
}
@@ -201,8 +200,34 @@ index 68f674c..49304dd 100644
+ platform_set_drvdata(dev, hcd);
+ dev->dev.platform_data = pdata;
+ priv = hcd_to_ohci_priv(hcd);
++ ohci = hcd_to_ohci(hcd);
+
+ if (pdata == &ohci_platform_defaults && dev->dev.of_node) {
++ if (of_property_read_bool(dev->dev.of_node, "big-endian-regs"))
++ ohci->flags |= OHCI_QUIRK_BE_MMIO;
++
++ if (of_property_read_bool(dev->dev.of_node, "big-endian-desc"))
++ ohci->flags |= OHCI_QUIRK_BE_DESC;
++
++ if (of_property_read_bool(dev->dev.of_node, "big-endian"))
++ ohci->flags |= OHCI_QUIRK_BE_MMIO | OHCI_QUIRK_BE_DESC;
++
++#ifndef CONFIG_USB_OHCI_BIG_ENDIAN_MMIO
++ if (ohci->flags & OHCI_QUIRK_BE_MMIO) {
++ dev_err(&dev->dev,
++ "Error big-endian-regs not compiled in\n");
++ err = -EINVAL;
++ goto err_put_hcd;
++ }
++#endif
++#ifndef CONFIG_USB_OHCI_BIG_ENDIAN_DESC
++ if (ohci->flags & OHCI_QUIRK_BE_DESC) {
++ dev_err(&dev->dev,
++ "Error big-endian-desc not compiled in\n");
++ err = -EINVAL;
++ goto err_put_hcd;
++ }
++#endif
+ priv->phy = devm_phy_get(&dev->dev, "usb");
+ if (IS_ERR(priv->phy)) {
+ err = PTR_ERR(priv->phy);
@@ -238,7 +263,7 @@ index 68f674c..49304dd 100644
}
hcd->rsrc_start = res_mem->start;
-@@ -102,11 +198,11 @@ static int ohci_platform_probe(struct platform_device *dev)
+@@ -102,11 +225,11 @@ static int ohci_platform_probe(struct pl
hcd->regs = devm_ioremap_resource(&dev->dev, res_mem);
if (IS_ERR(hcd->regs)) {
err = PTR_ERR(hcd->regs);
@@ -252,7 +277,7 @@ index 68f674c..49304dd 100644
device_wakeup_enable(hcd->self.controller);
-@@ -114,11 +210,17 @@ static int ohci_platform_probe(struct platform_device *dev)
+@@ -114,11 +237,17 @@ static int ohci_platform_probe(struct pl
return err;
@@ -272,7 +297,7 @@ index 68f674c..49304dd 100644
return err;
}
-@@ -127,13 +229,22 @@ static int ohci_platform_remove(struct platform_device *dev)
+@@ -127,13 +256,22 @@ static int ohci_platform_remove(struct p
{
struct usb_hcd *hcd = platform_get_drvdata(dev);
struct usb_ohci_pdata *pdata = dev_get_platdata(&dev->dev);
@@ -296,12 +321,12 @@ index 68f674c..49304dd 100644
return 0;
}
-@@ -180,6 +291,12 @@ static int ohci_platform_resume(struct device *dev)
+@@ -180,6 +318,12 @@ static int ohci_platform_resume(struct d
#define ohci_platform_resume NULL
#endif /* CONFIG_PM */
+static const struct of_device_id ohci_platform_ids[] = {
-+ { .compatible = "usb-ohci", },
++ { .compatible = "generic-ohci", },
+ { }
+};
+MODULE_DEVICE_TABLE(of, ohci_platform_ids);
@@ -309,7 +334,7 @@ index 68f674c..49304dd 100644
static const struct platform_device_id ohci_platform_table[] = {
{ "ohci-platform", 0 },
{ }
-@@ -200,6 +317,7 @@ static struct platform_driver ohci_platform_driver = {
+@@ -200,6 +344,7 @@ static struct platform_driver ohci_platf
.owner = THIS_MODULE,
.name = "ohci-platform",
.pm = &ohci_platform_pm_ops,
@@ -317,155 +342,3 @@ index 68f674c..49304dd 100644
}
};
---
-2.0.3
-
-From 8c4b97ea8b66e0fc8bdf648675e6889ce48c5ea7 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Tue, 21 Jan 2014 16:05:47 +0100
-Subject: [PATCH] ohci-platform: Add support for controllers with big-endian
- regs / descriptors
-
-Note this commit uses the same devicetree booleans for this as the ones
-already existing in the usb-ehci bindings, see:
-Documentation/devicetree/bindings/usb/usb-ehci.txt
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- Documentation/devicetree/bindings/usb/usb-ohci.txt | 3 +++
- drivers/usb/host/ohci-platform.c | 27 ++++++++++++++++++++++
- 2 files changed, 30 insertions(+)
-
-diff --git a/Documentation/devicetree/bindings/usb/usb-ohci.txt b/Documentation/devicetree/bindings/usb/usb-ohci.txt
-index 6ba38d9..6933b0c 100644
---- a/Documentation/devicetree/bindings/usb/usb-ohci.txt
-+++ b/Documentation/devicetree/bindings/usb/usb-ohci.txt
-@@ -6,6 +6,9 @@ Required properties:
- - interrupts : ohci controller interrupt
-
- Optional properties:
-+- big-endian-regs : boolean, set this for hcds with big-endian registers
-+- big-endian-desc : boolean, set this for hcds with big-endian descriptors
-+- big-endian : boolean, for hcds with big-endian-regs + big-endian-desc
- - clocks : a list of phandle + clock specifier pairs
- - phys : phandle + phy specifier pair
- - phy-names : "usb"
-diff --git a/drivers/usb/host/ohci-platform.c b/drivers/usb/host/ohci-platform.c
-index 49304dd..e2c28fd 100644
---- a/drivers/usb/host/ohci-platform.c
-+++ b/drivers/usb/host/ohci-platform.c
-@@ -128,6 +128,7 @@ static int ohci_platform_probe(struct platform_device *dev)
- struct resource *res_mem;
- struct usb_ohci_pdata *pdata = dev_get_platdata(&dev->dev);
- struct ohci_platform_priv *priv;
-+ struct ohci_hcd *ohci;
- int err, irq, clk = 0;
-
- if (usb_disabled())
-@@ -164,8 +165,34 @@ static int ohci_platform_probe(struct platform_device *dev)
- platform_set_drvdata(dev, hcd);
- dev->dev.platform_data = pdata;
- priv = hcd_to_ohci_priv(hcd);
-+ ohci = hcd_to_ohci(hcd);
-
- if (pdata == &ohci_platform_defaults && dev->dev.of_node) {
-+ if (of_property_read_bool(dev->dev.of_node, "big-endian-regs"))
-+ ohci->flags |= OHCI_QUIRK_BE_MMIO;
-+
-+ if (of_property_read_bool(dev->dev.of_node, "big-endian-desc"))
-+ ohci->flags |= OHCI_QUIRK_BE_DESC;
-+
-+ if (of_property_read_bool(dev->dev.of_node, "big-endian"))
-+ ohci->flags |= OHCI_QUIRK_BE_MMIO | OHCI_QUIRK_BE_DESC;
-+
-+#ifndef CONFIG_USB_OHCI_BIG_ENDIAN_MMIO
-+ if (ohci->flags & OHCI_QUIRK_BE_MMIO) {
-+ dev_err(&dev->dev,
-+ "Error big-endian-regs not compiled in\n");
-+ err = -EINVAL;
-+ goto err_put_hcd;
-+ }
-+#endif
-+#ifndef CONFIG_USB_OHCI_BIG_ENDIAN_DESC
-+ if (ohci->flags & OHCI_QUIRK_BE_DESC) {
-+ dev_err(&dev->dev,
-+ "Error big-endian-desc not compiled in\n");
-+ err = -EINVAL;
-+ goto err_put_hcd;
-+ }
-+#endif
- priv->phy = devm_phy_get(&dev->dev, "usb");
- if (IS_ERR(priv->phy)) {
- err = PTR_ERR(priv->phy);
---
-2.0.3
-
-From ddf77eb2ec72a3676dabe17baf6e3b32ce0542e5 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Tue, 11 Feb 2014 11:27:29 +0100
-Subject: [PATCH] ohci-platform: Change compatible string from usb-ohci to
- generic-ohci
-
-The initial versions of the devicetree enablement patches for ohci-platform
-used "ohci-platform" as compatible string. However this was disliked by various
-reviewers because the platform bus is a Linux invention and devicetree is
-supposed to be OS agnostic. After much discussion I gave up and went with
-the generic usb-ohci as requested.
-
-In retro-spect I should have chosen something different, the dts files for many
-existing boards already claim to be compatible with "usb-ohci", ie they have:
-
- compatible = "ti,ohci-omap3", "usb-ohci";
-
-In theory this should not be a problem since the "ti,ohci-omap3" entry takes
-presedence, but in practice using a conflicting compatible string is an issue,
-because it makes which driver gets used depend on driver registration order.
-
-This patch changes the compatible string claimed by ohci-platform to
-"generic-ohci", avoiding the driver registration / module loading ordering
-problems.
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- Documentation/devicetree/bindings/usb/usb-ohci.txt | 4 ++--
- drivers/usb/host/ohci-platform.c | 2 +-
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/Documentation/devicetree/bindings/usb/usb-ohci.txt b/Documentation/devicetree/bindings/usb/usb-ohci.txt
-index 6933b0c..45f67d9 100644
---- a/Documentation/devicetree/bindings/usb/usb-ohci.txt
-+++ b/Documentation/devicetree/bindings/usb/usb-ohci.txt
-@@ -1,7 +1,7 @@
- USB OHCI controllers
-
- Required properties:
--- compatible : "usb-ohci"
-+- compatible : "generic-ohci"
- - reg : ohci controller register range (address and length)
- - interrupts : ohci controller interrupt
-
-@@ -16,7 +16,7 @@ Optional properties:
- Example:
-
- ohci0: usb@01c14400 {
-- compatible = "allwinner,sun4i-a10-ohci", "usb-ohci";
-+ compatible = "allwinner,sun4i-a10-ohci", "generic-ohci";
- reg = <0x01c14400 0x100>;
- interrupts = <64>;
- clocks = <&usb_clk 6>, <&ahb_gates 2>;
-diff --git a/drivers/usb/host/ohci-platform.c b/drivers/usb/host/ohci-platform.c
-index e2c28fd..b6ca0b2 100644
---- a/drivers/usb/host/ohci-platform.c
-+++ b/drivers/usb/host/ohci-platform.c
-@@ -319,7 +319,7 @@ static int ohci_platform_resume(struct device *dev)
- #endif /* CONFIG_PM */
-
- static const struct of_device_id ohci_platform_ids[] = {
-- { .compatible = "usb-ohci", },
-+ { .compatible = "generic-ohci", },
- { }
- };
- MODULE_DEVICE_TABLE(of, ohci_platform_ids);
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/195-2-ehci-plat-changes.patch b/target/linux/sunxi/patches-3.14/195-2-ehci-plat-changes.patch
index b8ee130c4a..425993c7bb 100644
--- a/target/linux/sunxi/patches-3.14/195-2-ehci-plat-changes.patch
+++ b/target/linux/sunxi/patches-3.14/195-2-ehci-plat-changes.patch
@@ -38,11 +38,16 @@ Acked-by: Alan Stern <stern@rowland.harvard.edu>
delete mode 100644 Documentation/devicetree/bindings/usb/via,vt8500-ehci.txt
delete mode 100644 Documentation/devicetree/bindings/usb/vt8500-ehci.txt
-diff --git a/Documentation/devicetree/bindings/usb/usb-ehci.txt b/Documentation/devicetree/bindings/usb/usb-ehci.txt
-index fa18612..2c1aeeb 100644
--- a/Documentation/devicetree/bindings/usb/usb-ehci.txt
+++ b/Documentation/devicetree/bindings/usb/usb-ehci.txt
-@@ -7,13 +7,14 @@ Required properties:
+@@ -1,19 +1,20 @@
+ USB EHCI controllers
+
+ Required properties:
+- - compatible : should be "usb-ehci".
++ - compatible : should be "generic-ehci".
+ - reg : should contain at least address and length of the standard EHCI
+ register set for the device. Optional platform-dependent registers
(debug-port or other) can be also specified here, but only after
definition of standard EHCI registers.
- interrupts : one EHCI interrupt should be described here.
@@ -71,16 +76,13 @@ index fa18612..2c1aeeb 100644
+
+Example (Allwinner sun4i A10 SoC):
+ ehci0: usb@01c14000 {
-+ compatible = "allwinner,sun4i-a10-ehci", "usb-ehci";
++ compatible = "allwinner,sun4i-a10-ehci", "generic-ehci";
+ reg = <0x01c14000 0x100>;
+ interrupts = <39>;
+ clocks = <&ahb_gates 1>;
+ phys = <&usbphy 1>;
+ phy-names = "usb";
+ };
-diff --git a/Documentation/devicetree/bindings/usb/via,vt8500-ehci.txt b/Documentation/devicetree/bindings/usb/via,vt8500-ehci.txt
-deleted file mode 100644
-index 17b3ad1..0000000
--- a/Documentation/devicetree/bindings/usb/via,vt8500-ehci.txt
+++ /dev/null
@@ -1,15 +0,0 @@
@@ -99,9 +101,6 @@ index 17b3ad1..0000000
- reg = <0xd8007900 0x200>;
- interrupts = <43>;
- };
-diff --git a/Documentation/devicetree/bindings/usb/vt8500-ehci.txt b/Documentation/devicetree/bindings/usb/vt8500-ehci.txt
-deleted file mode 100644
-index 5fb8fd6..0000000
--- a/Documentation/devicetree/bindings/usb/vt8500-ehci.txt
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -117,20 +116,6 @@ index 5fb8fd6..0000000
- reg = <0xD8007100 0x200>;
- interrupts = <1>;
-};
-diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
-index a9707da..e28cbe0 100644
---- a/drivers/usb/host/Kconfig
-+++ b/drivers/usb/host/Kconfig
-@@ -255,6 +255,7 @@ config USB_EHCI_ATH79
-
- config USB_EHCI_HCD_PLATFORM
- tristate "Generic EHCI driver for a platform device"
-+ depends on !PPC_OF
- default n
- ---help---
- Adds an EHCI host driver for a generic platform device, which
-diff --git a/drivers/usb/host/ehci-platform.c b/drivers/usb/host/ehci-platform.c
-index 01536cf..5ebd0b7 100644
--- a/drivers/usb/host/ehci-platform.c
+++ b/drivers/usb/host/ehci-platform.c
@@ -3,6 +3,7 @@
@@ -171,7 +156,20 @@ index 01536cf..5ebd0b7 100644
static const char hcd_name[] = "ehci-platform";
-@@ -64,38 +74,90 @@ static int ehci_platform_reset(struct usb_hcd *hcd)
+@@ -45,8 +55,10 @@ static int ehci_platform_reset(struct us
+
+ hcd->has_tt = pdata->has_tt;
+ ehci->has_synopsys_hc_bug = pdata->has_synopsys_hc_bug;
+- ehci->big_endian_desc = pdata->big_endian_desc;
+- ehci->big_endian_mmio = pdata->big_endian_mmio;
++ if (pdata->big_endian_desc)
++ ehci->big_endian_desc = 1;
++ if (pdata->big_endian_mmio)
++ ehci->big_endian_mmio = 1;
+ ehci->ignore_oc = pdata->ignore_oc;
+
+ if (pdata->pre_setup) {
+@@ -65,38 +77,91 @@ static int ehci_platform_reset(struct us
return 0;
}
@@ -248,6 +246,7 @@ index 01536cf..5ebd0b7 100644
- int err;
+ struct usb_ehci_pdata *pdata = dev_get_platdata(&dev->dev);
+ struct ehci_platform_priv *priv;
++ struct ehci_hcd *ehci;
+ int err, irq, clk = 0;
if (usb_disabled())
@@ -273,7 +272,7 @@ index 01536cf..5ebd0b7 100644
irq = platform_get_irq(dev, 0);
if (irq < 0) {
dev_err(&dev->dev, "no irq provided");
-@@ -107,17 +169,40 @@ static int ehci_platform_probe(struct platform_device *dev)
+@@ -108,17 +173,66 @@ static int ehci_platform_probe(struct pl
return -ENXIO;
}
@@ -285,8 +284,34 @@ index 01536cf..5ebd0b7 100644
+ platform_set_drvdata(dev, hcd);
+ dev->dev.platform_data = pdata;
+ priv = hcd_to_ehci_priv(hcd);
++ ehci = hcd_to_ehci(hcd);
+
+ if (pdata == &ehci_platform_defaults && dev->dev.of_node) {
++ if (of_property_read_bool(dev->dev.of_node, "big-endian-regs"))
++ ehci->big_endian_mmio = 1;
++
++ if (of_property_read_bool(dev->dev.of_node, "big-endian-desc"))
++ ehci->big_endian_desc = 1;
++
++ if (of_property_read_bool(dev->dev.of_node, "big-endian"))
++ ehci->big_endian_mmio = ehci->big_endian_desc = 1;
++
++#ifndef CONFIG_USB_EHCI_BIG_ENDIAN_MMIO
++ if (ehci->big_endian_mmio) {
++ dev_err(&dev->dev,
++ "Error big-endian-regs not compiled in\n");
++ err = -EINVAL;
++ goto err_put_hcd;
++ }
++#endif
++#ifndef CONFIG_USB_EHCI_BIG_ENDIAN_DESC
++ if (ehci->big_endian_desc) {
++ dev_err(&dev->dev,
++ "Error big-endian-desc not compiled in\n");
++ err = -EINVAL;
++ goto err_put_hcd;
++ }
++#endif
+ priv->phy = devm_phy_get(&dev->dev, "usb");
+ if (IS_ERR(priv->phy)) {
+ err = PTR_ERR(priv->phy);
@@ -322,7 +347,7 @@ index 01536cf..5ebd0b7 100644
}
hcd->rsrc_start = res_mem->start;
-@@ -126,22 +211,28 @@ static int ehci_platform_probe(struct platform_device *dev)
+@@ -127,22 +241,28 @@ static int ehci_platform_probe(struct pl
hcd->regs = devm_ioremap_resource(&dev->dev, res_mem);
if (IS_ERR(hcd->regs)) {
err = PTR_ERR(hcd->regs);
@@ -355,7 +380,7 @@ index 01536cf..5ebd0b7 100644
return err;
}
-@@ -150,13 +241,19 @@ static int ehci_platform_remove(struct platform_device *dev)
+@@ -151,13 +271,19 @@ static int ehci_platform_remove(struct p
{
struct usb_hcd *hcd = platform_get_drvdata(dev);
struct usb_ehci_pdata *pdata = dev_get_platdata(&dev->dev);
@@ -376,177 +401,14 @@ index 01536cf..5ebd0b7 100644
if (pdata == &ehci_platform_defaults)
dev->dev.platform_data = NULL;
-@@ -207,8 +304,10 @@ static int ehci_platform_resume(struct device *dev)
+@@ -208,8 +334,10 @@ static int ehci_platform_resume(struct d
static const struct of_device_id vt8500_ehci_ids[] = {
{ .compatible = "via,vt8500-ehci", },
{ .compatible = "wm,prizm-ehci", },
-+ { .compatible = "usb-ehci", },
++ { .compatible = "generic-ehci", },
{}
};
+MODULE_DEVICE_TABLE(of, vt8500_ehci_ids);
static const struct platform_device_id ehci_platform_table[] = {
{ "ehci-platform", 0 },
---
-2.0.3
-
-From 91fc5f6e5e90d412a6778efbe05e5306a1df5032 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Tue, 21 Jan 2014 16:20:53 +0100
-Subject: [PATCH] ehci-platform: Add support for controllers with big-endian
- regs / descriptors
-
-This uses the already documented devicetree booleans for this, see:
-Documentation/devicetree/bindings/usb/usb-ehci.txt
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- drivers/usb/host/ehci-platform.c | 33 +++++++++++++++++++++++++++++++--
- 1 file changed, 31 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/usb/host/ehci-platform.c b/drivers/usb/host/ehci-platform.c
-index 5ebd0b7..8fde649 100644
---- a/drivers/usb/host/ehci-platform.c
-+++ b/drivers/usb/host/ehci-platform.c
-@@ -55,8 +55,10 @@ static int ehci_platform_reset(struct usb_hcd *hcd)
-
- hcd->has_tt = pdata->has_tt;
- ehci->has_synopsys_hc_bug = pdata->has_synopsys_hc_bug;
-- ehci->big_endian_desc = pdata->big_endian_desc;
-- ehci->big_endian_mmio = pdata->big_endian_mmio;
-+ if (pdata->big_endian_desc)
-+ ehci->big_endian_desc = 1;
-+ if (pdata->big_endian_mmio)
-+ ehci->big_endian_mmio = 1;
- ehci->ignore_oc = pdata->ignore_oc;
-
- if (pdata->pre_setup) {
-@@ -142,6 +144,7 @@ static int ehci_platform_probe(struct platform_device *dev)
- struct resource *res_mem;
- struct usb_ehci_pdata *pdata = dev_get_platdata(&dev->dev);
- struct ehci_platform_priv *priv;
-+ struct ehci_hcd *ehci;
- int err, irq, clk = 0;
-
- if (usb_disabled())
-@@ -177,8 +180,34 @@ static int ehci_platform_probe(struct platform_device *dev)
- platform_set_drvdata(dev, hcd);
- dev->dev.platform_data = pdata;
- priv = hcd_to_ehci_priv(hcd);
-+ ehci = hcd_to_ehci(hcd);
-
- if (pdata == &ehci_platform_defaults && dev->dev.of_node) {
-+ if (of_property_read_bool(dev->dev.of_node, "big-endian-regs"))
-+ ehci->big_endian_mmio = 1;
-+
-+ if (of_property_read_bool(dev->dev.of_node, "big-endian-desc"))
-+ ehci->big_endian_desc = 1;
-+
-+ if (of_property_read_bool(dev->dev.of_node, "big-endian"))
-+ ehci->big_endian_mmio = ehci->big_endian_desc = 1;
-+
-+#ifndef CONFIG_USB_EHCI_BIG_ENDIAN_MMIO
-+ if (ehci->big_endian_mmio) {
-+ dev_err(&dev->dev,
-+ "Error big-endian-regs not compiled in\n");
-+ err = -EINVAL;
-+ goto err_put_hcd;
-+ }
-+#endif
-+#ifndef CONFIG_USB_EHCI_BIG_ENDIAN_DESC
-+ if (ehci->big_endian_desc) {
-+ dev_err(&dev->dev,
-+ "Error big-endian-desc not compiled in\n");
-+ err = -EINVAL;
-+ goto err_put_hcd;
-+ }
-+#endif
- priv->phy = devm_phy_get(&dev->dev, "usb");
- if (IS_ERR(priv->phy)) {
- err = PTR_ERR(priv->phy);
---
-2.0.3
-
-From 4a1ce69fa8c4595483493cd7df21c66dbcca1307 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Tue, 11 Feb 2014 11:46:13 +0100
-Subject: [PATCH] ehci-platform: Change compatible string from usb-ehci to
- generic-ehci
-
-The initial versions of the devicetree enablement patches for ehci-platform
-used "ehci-platform" as compatible string. However this was disliked by various
-reviewers because the platform bus is a Linux invention and devicetree is
-supposed to be OS agnostic. After much discussion I gave up, added a:
-"depends on !PPC_OF" to Kconfig to avoid a known conflict with PPC-OF platforms
-and went with the generic usb-ehci as requested.
-
-In retro-spect I should have chosen something different, the dts files for many
-existing boards already claim to be compatible with "usb-ehci", ie they have:
-
- compatible = "ti,ehci-omap", "usb-ehci";
-
-In theory this should not be a problem since the "ti,ehci-omap" entry takes
-presedence, but in practice using a conflicting compatible string is an issue,
-because it makes which driver gets used depend on driver registration order.
-
-This patch changes the compatible string claimed by ehci-platform to
-"generic-ehci", avoiding the driver registration / module loading ordering
-problems, and removes the "depends on !PPC_OF" workaround.
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- Documentation/devicetree/bindings/usb/usb-ehci.txt | 4 ++--
- drivers/usb/host/Kconfig | 1 -
- drivers/usb/host/ehci-platform.c | 2 +-
- 3 files changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/Documentation/devicetree/bindings/usb/usb-ehci.txt b/Documentation/devicetree/bindings/usb/usb-ehci.txt
-index 2c1aeeb..ff151ec 100644
---- a/Documentation/devicetree/bindings/usb/usb-ehci.txt
-+++ b/Documentation/devicetree/bindings/usb/usb-ehci.txt
-@@ -1,7 +1,7 @@
- USB EHCI controllers
-
- Required properties:
-- - compatible : should be "usb-ehci".
-+ - compatible : should be "generic-ehci".
- - reg : should contain at least address and length of the standard EHCI
- register set for the device. Optional platform-dependent registers
- (debug-port or other) can be also specified here, but only after
-@@ -27,7 +27,7 @@ Example (Sequoia 440EPx):
-
- Example (Allwinner sun4i A10 SoC):
- ehci0: usb@01c14000 {
-- compatible = "allwinner,sun4i-a10-ehci", "usb-ehci";
-+ compatible = "allwinner,sun4i-a10-ehci", "generic-ehci";
- reg = <0x01c14000 0x100>;
- interrupts = <39>;
- clocks = <&ahb_gates 1>;
-diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
-index e28cbe0..a9707da 100644
---- a/drivers/usb/host/Kconfig
-+++ b/drivers/usb/host/Kconfig
-@@ -255,7 +255,6 @@ config USB_EHCI_ATH79
-
- config USB_EHCI_HCD_PLATFORM
- tristate "Generic EHCI driver for a platform device"
-- depends on !PPC_OF
- default n
- ---help---
- Adds an EHCI host driver for a generic platform device, which
-diff --git a/drivers/usb/host/ehci-platform.c b/drivers/usb/host/ehci-platform.c
-index 8fde649..1178730 100644
---- a/drivers/usb/host/ehci-platform.c
-+++ b/drivers/usb/host/ehci-platform.c
-@@ -333,7 +333,7 @@ static int ehci_platform_resume(struct device *dev)
- static const struct of_device_id vt8500_ehci_ids[] = {
- { .compatible = "via,vt8500-ehci", },
- { .compatible = "wm,prizm-ehci", },
-- { .compatible = "usb-ehci", },
-+ { .compatible = "generic-ehci", },
- {}
- };
- MODULE_DEVICE_TABLE(of, vt8500_ehci_ids);
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/195-3-uhci-plat-changes.patch b/target/linux/sunxi/patches-3.14/195-3-uhci-plat-changes.patch
index d9ce1fc119..53c808fbb3 100644
--- a/target/linux/sunxi/patches-3.14/195-3-uhci-plat-changes.patch
+++ b/target/linux/sunxi/patches-3.14/195-3-uhci-plat-changes.patch
@@ -24,9 +24,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
delete mode 100644 Documentation/devicetree/bindings/usb/platform-uhci.txt
create mode 100644 Documentation/devicetree/bindings/usb/usb-uhci.txt
-diff --git a/Documentation/devicetree/bindings/usb/platform-uhci.txt b/Documentation/devicetree/bindings/usb/platform-uhci.txt
-deleted file mode 100644
-index a4fb071..0000000
--- a/Documentation/devicetree/bindings/usb/platform-uhci.txt
+++ /dev/null
@@ -1,15 +0,0 @@
@@ -45,9 +42,6 @@ index a4fb071..0000000
- reg = <0xd8007b00 0x200>;
- interrupts = <43>;
- };
-diff --git a/Documentation/devicetree/bindings/usb/usb-uhci.txt b/Documentation/devicetree/bindings/usb/usb-uhci.txt
-new file mode 100644
-index 0000000..2981334
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/usb-uhci.txt
@@ -0,0 +1,15 @@
@@ -66,11 +60,9 @@ index 0000000..2981334
+ reg = <0xd8007b00 0x200>;
+ interrupts = <43>;
+ };
-diff --git a/drivers/usb/host/uhci-platform.c b/drivers/usb/host/uhci-platform.c
-index 44e6c9d..01833ab 100644
--- a/drivers/usb/host/uhci-platform.c
+++ b/drivers/usb/host/uhci-platform.c
-@@ -148,6 +148,7 @@ static void uhci_hcd_platform_shutdown(struct platform_device *op)
+@@ -148,6 +148,7 @@ static void uhci_hcd_platform_shutdown(s
}
static const struct of_device_id platform_uhci_ids[] = {
@@ -78,6 +70,3 @@ index 44e6c9d..01833ab 100644
{ .compatible = "platform-uhci", },
{}
};
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/195-4-xhci-plat-changes.patch b/target/linux/sunxi/patches-3.14/195-4-xhci-plat-changes.patch
index 81dc4d4642..202bdd0bb8 100644
--- a/target/linux/sunxi/patches-3.14/195-4-xhci-plat-changes.patch
+++ b/target/linux/sunxi/patches-3.14/195-4-xhci-plat-changes.patch
@@ -18,8 +18,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
drivers/usb/host/xhci-plat.c | 1 +
2 files changed, 3 insertions(+), 2 deletions(-)
-diff --git a/Documentation/devicetree/bindings/usb/usb-xhci.txt b/Documentation/devicetree/bindings/usb/usb-xhci.txt
-index 5752df0..90f8f60 100644
--- a/Documentation/devicetree/bindings/usb/usb-xhci.txt
+++ b/Documentation/devicetree/bindings/usb/usb-xhci.txt
@@ -1,14 +1,14 @@
@@ -39,11 +37,9 @@ index 5752df0..90f8f60 100644
reg = <0xf0931000 0x8c8>;
interrupts = <0x0 0x4e 0x0>;
};
-diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c
-index 8abda5c..8affef9 100644
--- a/drivers/usb/host/xhci-plat.c
+++ b/drivers/usb/host/xhci-plat.c
-@@ -226,6 +226,7 @@ static const struct dev_pm_ops xhci_plat_pm_ops = {
+@@ -226,6 +226,7 @@ static const struct dev_pm_ops xhci_plat
#ifdef CONFIG_OF
static const struct of_device_id usb_xhci_of_match[] = {
@@ -51,6 +47,3 @@ index 8abda5c..8affef9 100644
{ .compatible = "xhci-platform" },
{ },
};
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/196-usb-add-sunxi-phy-driver.patch b/target/linux/sunxi/patches-3.14/196-usb-add-sunxi-phy-driver.patch
index eee697709a..5f1ea836bd 100644
--- a/target/linux/sunxi/patches-3.14/196-usb-add-sunxi-phy-driver.patch
+++ b/target/linux/sunxi/patches-3.14/196-usb-add-sunxi-phy-driver.patch
@@ -20,9 +20,6 @@ Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
create mode 100644 Documentation/devicetree/bindings/phy/sun4i-usb-phy.txt
create mode 100644 drivers/phy/phy-sun4i-usb.c
-diff --git a/Documentation/devicetree/bindings/phy/sun4i-usb-phy.txt b/Documentation/devicetree/bindings/phy/sun4i-usb-phy.txt
-new file mode 100644
-index 0000000..a82361b
--- /dev/null
+++ b/Documentation/devicetree/bindings/phy/sun4i-usb-phy.txt
@@ -0,0 +1,26 @@
@@ -52,8 +49,6 @@ index 0000000..a82361b
+ resets = <&usb_clk 1>, <&usb_clk 2>;
+ reset-names = "usb1_reset", "usb2_reset";
+ };
-diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig
-index c7a551c..66f7c4e 100644
--- a/drivers/phy/Kconfig
+++ b/drivers/phy/Kconfig
@@ -65,4 +65,15 @@ config BCM_KONA_USB2_PHY
@@ -72,18 +67,13 @@ index c7a551c..66f7c4e 100644
+ parts, as well as the 2 regular USB 2 host PHYs.
+
endmenu
-diff --git a/drivers/phy/Makefile b/drivers/phy/Makefile
-index b57c253..9d4f8bb 100644
--- a/drivers/phy/Makefile
+++ b/drivers/phy/Makefile
-@@ -9,3 +9,4 @@ obj-$(CONFIG_PHY_EXYNOS_MIPI_VIDEO) += phy-exynos-mipi-video.o
+@@ -9,3 +9,4 @@ obj-$(CONFIG_PHY_EXYNOS_MIPI_VIDEO) += p
obj-$(CONFIG_PHY_MVEBU_SATA) += phy-mvebu-sata.o
obj-$(CONFIG_OMAP_USB2) += phy-omap-usb2.o
obj-$(CONFIG_TWL4030_USB) += phy-twl4030-usb.o
+obj-$(CONFIG_PHY_SUN4I_USB) += phy-sun4i-usb.o
-diff --git a/drivers/phy/phy-sun4i-usb.c b/drivers/phy/phy-sun4i-usb.c
-new file mode 100644
-index 0000000..e6e6c4b
--- /dev/null
+++ b/drivers/phy/phy-sun4i-usb.c
@@ -0,0 +1,331 @@
@@ -418,6 +408,3 @@ index 0000000..e6e6c4b
+MODULE_DESCRIPTION("Allwinner sun4i USB phy driver");
+MODULE_AUTHOR("Hans de Goede <hdegoede@redhat.com>");
+MODULE_LICENSE("GPL v2");
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/200-mmc-add-driver.patch b/target/linux/sunxi/patches-3.14/200-mmc-add-driver.patch
index 985b8b7947..ece71540c3 100644
--- a/target/linux/sunxi/patches-3.14/200-mmc-add-driver.patch
+++ b/target/linux/sunxi/patches-3.14/200-mmc-add-driver.patch
@@ -27,11 +27,9 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
create mode 100644 drivers/mmc/host/sunxi-mmc.c
create mode 100644 drivers/mmc/host/sunxi-mmc.h
-diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig
-index 1384f67..7caf266 100644
--- a/drivers/mmc/host/Kconfig
+++ b/drivers/mmc/host/Kconfig
-@@ -689,3 +689,10 @@ config MMC_REALTEK_PCI
+@@ -714,3 +714,10 @@ config MMC_REALTEK_PCI
help
Say Y here to include driver code to support SD/MMC card interface
of Realtek PCI-E card reader
@@ -42,11 +40,9 @@ index 1384f67..7caf266 100644
+ help
+ This selects support for the SD/MMC Host Controller on
+ Allwinner sunxi SoCs.
-diff --git a/drivers/mmc/host/Makefile b/drivers/mmc/host/Makefile
-index 3483b6b..f3c7c243 100644
--- a/drivers/mmc/host/Makefile
+++ b/drivers/mmc/host/Makefile
-@@ -54,6 +54,8 @@ obj-$(CONFIG_MMC_WMT) += wmt-sdmmc.o
+@@ -55,6 +55,8 @@ obj-$(CONFIG_MMC_WMT) += wmt-sdmmc.o
obj-$(CONFIG_MMC_REALTEK_PCI) += rtsx_pci_sdmmc.o
@@ -55,9 +51,6 @@ index 3483b6b..f3c7c243 100644
obj-$(CONFIG_MMC_SDHCI_PLTFM) += sdhci-pltfm.o
obj-$(CONFIG_MMC_SDHCI_CNS3XXX) += sdhci-cns3xxx.o
obj-$(CONFIG_MMC_SDHCI_ESDHC_IMX) += sdhci-esdhc-imx.o
-diff --git a/drivers/mmc/host/sunxi-mmc.c b/drivers/mmc/host/sunxi-mmc.c
-new file mode 100644
-index 0000000..a16abd2
--- /dev/null
+++ b/drivers/mmc/host/sunxi-mmc.c
@@ -0,0 +1,853 @@
@@ -914,9 +907,6 @@ index 0000000..a16abd2
+MODULE_LICENSE("GPL v2");
+MODULE_AUTHOR("David Lanzendörfer <david.lanzendoerfer@o2s.ch>");
+MODULE_ALIAS("platform:sunxi-mmc");
-diff --git a/drivers/mmc/host/sunxi-mmc.h b/drivers/mmc/host/sunxi-mmc.h
-new file mode 100644
-index 0000000..84bab99
--- /dev/null
+++ b/drivers/mmc/host/sunxi-mmc.h
@@ -0,0 +1,238 @@
@@ -1158,6 +1148,3 @@ index 0000000..84bab99
+};
+
+#endif
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/201-dt-sun4i-add-mmc-nodes_NEED_REFRESH.patch b/target/linux/sunxi/patches-3.14/201-dt-sun4i-add-mmc-nodes_NEED_REFRESH.patch
index a6261cda8e..10d4d5823b 100644
--- a/target/linux/sunxi/patches-3.14/201-dt-sun4i-add-mmc-nodes_NEED_REFRESH.patch
+++ b/target/linux/sunxi/patches-3.14/201-dt-sun4i-add-mmc-nodes_NEED_REFRESH.patch
@@ -14,10 +14,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
arch/arm/boot/dts/sun4i-a10.dtsi | 58 ++++++++++++++++++++++++++++++
3 files changed, 74 insertions(+)
-diff --git a/arch/arm/boot/dts/sun4i-a10-a1000.dts b/arch/arm/boot/dts/sun4i-a10-a1000.dts
-index fa746aea..68b687e 100644
-diff --git a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
-index 4684cbe..13088f0 100644
--- a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
+++ b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
@@ -34,6 +34,14 @@
@@ -35,8 +31,6 @@ index 4684cbe..13088f0 100644
usbphy: phy@01c13400 {
usb1_vbus-supply = <&reg_usb1_vbus>;
usb2_vbus-supply = <&reg_usb2_vbus>;
-diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
-index 27dc6ee..7014518 100644
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
@@ -377,6 +377,50 @@
@@ -111,29 +105,6 @@ index 27dc6ee..7014518 100644
};
timer@01c20c00 {
---
-2.0.3
-
-From c0b8d688678e4a652895ce5f0cd48917a9a4f6ba Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Sat, 11 Jan 2014 04:33:23 +0100
-Subject: [PATCH] ARM: sun4i: dt: Add mmc node to a few more boards
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- arch/arm/boot/dts/sun4i-a10-hackberry.dts | 9 +++++++++
- arch/arm/boot/dts/sun4i-a10-inet97fv2.dts | 9 +++++++++
- arch/arm/boot/dts/sun4i-a10-mini-xplus.dts | 8 ++++++++
- arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts | 9 +++++++++
- arch/arm/boot/dts/sun4i-a10-pcduino.dts | 8 ++++++++
- 5 files changed, 43 insertions(+)
-
-diff --git a/arch/arm/boot/dts/sun4i-a10-hackberry.dts b/arch/arm/boot/dts/sun4i-a10-hackberry.dts
-index d7c17e4..a4b05d6 100644
-diff --git a/arch/arm/boot/dts/sun4i-a10-inet97fv2.dts b/arch/arm/boot/dts/sun4i-a10-inet97fv2.dts
-index fe9272e..b73a070 100644
-diff --git a/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts b/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts
-index dd84a9e3..c906171 100644
--- a/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts
+++ b/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts
@@ -20,6 +20,14 @@
@@ -151,8 +122,6 @@ index dd84a9e3..c906171 100644
usbphy: phy@01c13400 {
usb1_vbus-supply = <&reg_usb1_vbus>;
usb2_vbus-supply = <&reg_usb2_vbus>;
-diff --git a/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts b/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts
-index 66cf0c7..e5a2765 100644
--- a/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts
+++ b/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts
@@ -33,6 +33,15 @@
@@ -171,8 +140,6 @@ index 66cf0c7..e5a2765 100644
usbphy: phy@01c13400 {
usb1_vbus-supply = <&reg_usb1_vbus>;
usb2_vbus-supply = <&reg_usb2_vbus>;
-diff --git a/arch/arm/boot/dts/sun4i-a10-pcduino.dts b/arch/arm/boot/dts/sun4i-a10-pcduino.dts
-index 255b47e..2820229 100644
--- a/arch/arm/boot/dts/sun4i-a10-pcduino.dts
+++ b/arch/arm/boot/dts/sun4i-a10-pcduino.dts
@@ -34,6 +34,14 @@
@@ -190,6 +157,3 @@ index 255b47e..2820229 100644
usbphy: phy@01c13400 {
usb1_vbus-supply = <&reg_usb1_vbus>;
usb2_vbus-supply = <&reg_usb2_vbus>;
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/202-dt-sun5i-add-mmc-nodes.patch b/target/linux/sunxi/patches-3.14/202-dt-sun5i-add-mmc-nodes.patch
index 1f4b23c24c..541cef6852 100644
--- a/target/linux/sunxi/patches-3.14/202-dt-sun5i-add-mmc-nodes.patch
+++ b/target/linux/sunxi/patches-3.14/202-dt-sun5i-add-mmc-nodes.patch
@@ -16,12 +16,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
arch/arm/boot/dts/sun5i-a13.dtsi | 29 +++++++++++++++
5 files changed, 136 insertions(+)
-diff --git a/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts b/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts
-index 23611b7..5bc25c7 100644
-diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi
-index f34e0d8..8ba1ed7 100644
-diff --git a/arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts b/arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts
-index 11169d5..700f688 100644
--- a/arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts
+++ b/arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts
@@ -21,6 +21,14 @@
@@ -53,11 +47,9 @@ index 11169d5..700f688 100644
led_pins_olinuxinom: led_pins@0 {
allwinner,pins = "PG9";
allwinner,function = "gpio_out";
-diff --git a/arch/arm/boot/dts/sun5i-a13-olinuxino.dts b/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
-index 7a9187b..177196c 100644
--- a/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
+++ b/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
-@@ -20,6 +20,14 @@
+@@ -21,6 +21,14 @@
compatible = "olimex,a13-olinuxino", "allwinner,sun5i-a13";
soc@01c00000 {
@@ -72,7 +64,7 @@ index 7a9187b..177196c 100644
usbphy: phy@01c13400 {
usb1_vbus-supply = <&reg_usb1_vbus>;
status = "okay";
-@@ -34,6 +42,13 @@
+@@ -35,6 +43,13 @@
};
pinctrl@01c20800 {
@@ -86,8 +78,6 @@ index 7a9187b..177196c 100644
led_pins_olinuxino: led_pins@0 {
allwinner,pins = "PG9";
allwinner,function = "gpio_out";
-diff --git a/arch/arm/boot/dts/sun5i-a13.dtsi b/arch/arm/boot/dts/sun5i-a13.dtsi
-index 0e9c239..6fc84a4 100644
--- a/arch/arm/boot/dts/sun5i-a13.dtsi
+++ b/arch/arm/boot/dts/sun5i-a13.dtsi
@@ -320,6 +320,28 @@
@@ -133,6 +123,3 @@ index 0e9c239..6fc84a4 100644
};
timer@01c20c00 {
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/203-dt-sun7i-add-mmc-nodes.patch b/target/linux/sunxi/patches-3.14/203-dt-sun7i-add-mmc-nodes.patch
index daa6a91121..1a0459cb25 100644
--- a/target/linux/sunxi/patches-3.14/203-dt-sun7i-add-mmc-nodes.patch
+++ b/target/linux/sunxi/patches-3.14/203-dt-sun7i-add-mmc-nodes.patch
@@ -15,8 +15,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
arch/arm/boot/dts/sun7i-a20.dtsi | 65 +++++++++++++++++++++++++
4 files changed, 104 insertions(+)
-diff --git a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
-index 68de89f..cd9d3c2 100644
--- a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
+++ b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
@@ -20,6 +20,14 @@
@@ -34,8 +32,6 @@ index 68de89f..cd9d3c2 100644
usbphy: phy@01c13400 {
usb1_vbus-supply = <&reg_usb1_vbus>;
usb2_vbus-supply = <&reg_usb2_vbus>;
-diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
-index cb25d3c..66bb3ef 100644
--- a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
+++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
@@ -20,6 +20,14 @@
@@ -53,11 +49,9 @@ index cb25d3c..66bb3ef 100644
usbphy: phy@01c13400 {
usb1_vbus-supply = <&reg_usb1_vbus>;
usb2_vbus-supply = <&reg_usb2_vbus>;
-diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
-index eeadf76..822cbe2 100644
--- a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
+++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
-@@ -31,6 +31,22 @@
+@@ -32,6 +32,22 @@
status = "okay";
};
@@ -80,7 +74,7 @@ index eeadf76..822cbe2 100644
usbphy: phy@01c13400 {
usb1_vbus-supply = <&reg_usb1_vbus>;
usb2_vbus-supply = <&reg_usb2_vbus>;
-@@ -65,6 +81,13 @@
+@@ -66,6 +82,13 @@
};
pinctrl@01c20800 {
@@ -94,8 +88,6 @@ index eeadf76..822cbe2 100644
led_pins_olinuxino: led_pins@0 {
allwinner,pins = "PH2";
allwinner,function = "gpio_out";
-diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
-index 4cc2f5f..1d9b314 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -439,6 +439,50 @@
@@ -177,6 +169,3 @@ index 4cc2f5f..1d9b314 100644
};
timer@01c20c00 {
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/205-nmi-add-driver.patch b/target/linux/sunxi/patches-3.14/205-nmi-add-driver.patch
index 2e23f94998..b98e8029e9 100644
--- a/target/linux/sunxi/patches-3.14/205-nmi-add-driver.patch
+++ b/target/linux/sunxi/patches-3.14/205-nmi-add-driver.patch
@@ -16,11 +16,9 @@ Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
2 files changed, 209 insertions(+)
create mode 100644 drivers/irqchip/irq-sunxi-nmi.c
-diff --git a/drivers/irqchip/Makefile b/drivers/irqchip/Makefile
-index 5194afb..1c0c151 100644
--- a/drivers/irqchip/Makefile
+++ b/drivers/irqchip/Makefile
-@@ -12,6 +12,7 @@ obj-$(CONFIG_METAG_PERFCOUNTER_IRQS) += irq-metag.o
+@@ -12,6 +12,7 @@ obj-$(CONFIG_METAG_PERFCOUNTER_IRQS) +=
obj-$(CONFIG_ARCH_MOXART) += irq-moxart.o
obj-$(CONFIG_ORION_IRQCHIP) += irq-orion.o
obj-$(CONFIG_ARCH_SUNXI) += irq-sun4i.o
@@ -28,9 +26,6 @@ index 5194afb..1c0c151 100644
obj-$(CONFIG_ARCH_SPEAR3XX) += spear-shirq.o
obj-$(CONFIG_ARM_GIC) += irq-gic.o
obj-$(CONFIG_ARM_NVIC) += irq-nvic.o
-diff --git a/drivers/irqchip/irq-sunxi-nmi.c b/drivers/irqchip/irq-sunxi-nmi.c
-new file mode 100644
-index 0000000..12f547a
--- /dev/null
+++ b/drivers/irqchip/irq-sunxi-nmi.c
@@ -0,0 +1,208 @@
@@ -242,6 +237,3 @@ index 0000000..12f547a
+ return sunxi_sc_nmi_irq_init(node, &sun7i_reg_offs);
+}
+IRQCHIP_DECLARE(sun7i_sc_nmi, "allwinner,sun7i-a20-sc-nmi", sun7i_sc_nmi_irq_init);
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/206-dt-sun67i-add-nmi-irqchip.patch b/target/linux/sunxi/patches-3.14/206-dt-sun67i-add-nmi-irqchip.patch
index 57979ef0ce..3f18c50d88 100644
--- a/target/linux/sunxi/patches-3.14/206-dt-sun67i-add-nmi-irqchip.patch
+++ b/target/linux/sunxi/patches-3.14/206-dt-sun67i-add-nmi-irqchip.patch
@@ -11,11 +11,9 @@ Signed-off-by: Carlo Caione <carlo@caione.org>
arch/arm/boot/dts/sun7i-a20.dtsi | 8 ++++++++
2 files changed, 16 insertions(+)
-diff --git a/arch/arm/boot/dts/sun6i-a31.dtsi b/arch/arm/boot/dts/sun6i-a31.dtsi
-index 8441733..74d2920 100644
--- a/arch/arm/boot/dts/sun6i-a31.dtsi
+++ b/arch/arm/boot/dts/sun6i-a31.dtsi
-@@ -421,6 +421,14 @@
+@@ -370,6 +370,14 @@
interrupts = <1 9 0xf04>;
};
@@ -30,8 +28,6 @@ index 8441733..74d2920 100644
cpucfg@01f01c00 {
compatible = "allwinner,sun6i-a31-cpuconfig";
reg = <0x01f01c00 0x300>;
-diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
-index 4981f5e..2e66c85 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -401,6 +401,14 @@
@@ -49,6 +45,3 @@ index 4981f5e..2e66c85 100644
spi0: spi@01c05000 {
compatible = "allwinner,sun4i-a10-spi";
reg = <0x01c05000 0x1000>;
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/210-mfd-add-axp20x-pmic-driver.patch b/target/linux/sunxi/patches-3.14/210-mfd-add-axp20x-pmic-driver.patch
index 71a3952bfa..6197300e9e 100644
--- a/target/linux/sunxi/patches-3.14/210-mfd-add-axp20x-pmic-driver.patch
+++ b/target/linux/sunxi/patches-3.14/210-mfd-add-axp20x-pmic-driver.patch
@@ -23,8 +23,6 @@ Signed-off-by: Carlo Caione <carlo@caione.org>
create mode 100644 drivers/mfd/axp20x.c
create mode 100644 include/linux/mfd/axp20x.h
-diff --git a/arch/arm/configs/sunxi_defconfig b/arch/arm/configs/sunxi_defconfig
-index b5df4a5..d25660d 100644
--- a/arch/arm/configs/sunxi_defconfig
+++ b/arch/arm/configs/sunxi_defconfig
@@ -55,6 +55,7 @@ CONFIG_GPIO_SYSFS=y
@@ -35,8 +33,6 @@ index b5df4a5..d25660d 100644
# CONFIG_USB_SUPPORT is not set
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
-diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
-index 49bb445..24ba61a 100644
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -59,6 +59,18 @@ config MFD_AAT2870_CORE
@@ -58,11 +54,9 @@ index 49bb445..24ba61a 100644
config MFD_CROS_EC
tristate "ChromeOS Embedded Controller"
select MFD_CORE
-diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
-index 5aea5ef..fb773b5 100644
--- a/drivers/mfd/Makefile
+++ b/drivers/mfd/Makefile
-@@ -101,6 +101,7 @@ obj-$(CONFIG_PMIC_DA9052) += da9052-irq.o
+@@ -101,6 +101,7 @@ obj-$(CONFIG_PMIC_DA9052) += da9052-irq.
obj-$(CONFIG_PMIC_DA9052) += da9052-core.o
obj-$(CONFIG_MFD_DA9052_SPI) += da9052-spi.o
obj-$(CONFIG_MFD_DA9052_I2C) += da9052-i2c.o
@@ -70,9 +64,6 @@ index 5aea5ef..fb773b5 100644
obj-$(CONFIG_MFD_LP3943) += lp3943.o
obj-$(CONFIG_MFD_LP8788) += lp8788.o lp8788-irq.o
-diff --git a/drivers/mfd/axp20x.c b/drivers/mfd/axp20x.c
-new file mode 100644
-index 0000000..92e5b0f
--- /dev/null
+++ b/drivers/mfd/axp20x.c
@@ -0,0 +1,250 @@
@@ -326,9 +317,6 @@ index 0000000..92e5b0f
+MODULE_DESCRIPTION("PMIC MFD core driver for AXP20X");
+MODULE_AUTHOR("Carlo Caione <carlo@caione.org>");
+MODULE_LICENSE("GPL");
-diff --git a/include/linux/mfd/axp20x.h b/include/linux/mfd/axp20x.h
-new file mode 100644
-index 0000000..fcef32c
--- /dev/null
+++ b/include/linux/mfd/axp20x.h
@@ -0,0 +1,180 @@
@@ -512,6 +500,3 @@ index 0000000..fcef32c
+};
+
+#endif /* __LINUX_MFD_AXP20X_H */
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/211-input-add-axp20x-power-enable-key-support.patch b/target/linux/sunxi/patches-3.14/211-input-add-axp20x-power-enable-key-support.patch
index 9291dc5552..c7ce5e22b9 100644
--- a/target/linux/sunxi/patches-3.14/211-input-add-axp20x-power-enable-key-support.patch
+++ b/target/linux/sunxi/patches-3.14/211-input-add-axp20x-power-enable-key-support.patch
@@ -16,8 +16,6 @@ Signed-off-by: Carlo Caione <carlo@caione.org>
4 files changed, 279 insertions(+)
create mode 100644 drivers/input/misc/axp20x-pek.c
-diff --git a/arch/arm/configs/sunxi_defconfig b/arch/arm/configs/sunxi_defconfig
-index d25660d..3ed7023 100644
--- a/arch/arm/configs/sunxi_defconfig
+++ b/arch/arm/configs/sunxi_defconfig
@@ -40,6 +40,8 @@ CONFIG_SUN4I_EMAC=y
@@ -29,8 +27,6 @@ index d25660d..3ed7023 100644
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_NR_UARTS=8
-diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
-index 7904ab0..87244fb 100644
--- a/drivers/input/misc/Kconfig
+++ b/drivers/input/misc/Kconfig
@@ -393,6 +393,17 @@ config INPUT_RETU_PWRBUTTON
@@ -51,11 +47,9 @@ index 7904ab0..87244fb 100644
config INPUT_TWL4030_PWRBUTTON
tristate "TWL4030 Power button Driver"
depends on TWL4030_CORE
-diff --git a/drivers/input/misc/Makefile b/drivers/input/misc/Makefile
-index cda71fc..624abf5 100644
--- a/drivers/input/misc/Makefile
+++ b/drivers/input/misc/Makefile
-@@ -50,6 +50,7 @@ obj-$(CONFIG_INPUT_POWERMATE) += powermate.o
+@@ -50,6 +50,7 @@ obj-$(CONFIG_INPUT_POWERMATE) += powerm
obj-$(CONFIG_INPUT_PWM_BEEPER) += pwm-beeper.o
obj-$(CONFIG_INPUT_RB532_BUTTON) += rb532_button.o
obj-$(CONFIG_INPUT_RETU_PWRBUTTON) += retu-pwrbutton.o
@@ -63,9 +57,6 @@ index cda71fc..624abf5 100644
obj-$(CONFIG_INPUT_GPIO_ROTARY_ENCODER) += rotary_encoder.o
obj-$(CONFIG_INPUT_SGI_BTNS) += sgi_btns.o
obj-$(CONFIG_INPUT_SIRFSOC_ONKEY) += sirfsoc-onkey.o
-diff --git a/drivers/input/misc/axp20x-pek.c b/drivers/input/misc/axp20x-pek.c
-new file mode 100644
-index 0000000..799275d
--- /dev/null
+++ b/drivers/input/misc/axp20x-pek.c
@@ -0,0 +1,265 @@
@@ -334,6 +325,3 @@ index 0000000..799275d
+MODULE_DESCRIPTION("axp20x Power Button");
+MODULE_AUTHOR("Carlo Caione <carlo@caione.org>");
+MODULE_LICENSE("GPL");
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/212-regulator-add-axp20x-regulator-support.patch b/target/linux/sunxi/patches-3.14/212-regulator-add-axp20x-regulator-support.patch
index d7f4dcfe60..1ec041ceb7 100644
--- a/target/linux/sunxi/patches-3.14/212-regulator-add-axp20x-regulator-support.patch
+++ b/target/linux/sunxi/patches-3.14/212-regulator-add-axp20x-regulator-support.patch
@@ -15,8 +15,6 @@ Signed-off-by: Carlo Caione <carlo@caione.org>
4 files changed, 358 insertions(+)
create mode 100644 drivers/regulator/axp20x-regulator.c
-diff --git a/arch/arm/configs/sunxi_defconfig b/arch/arm/configs/sunxi_defconfig
-index 3ed7023..6e305da 100644
--- a/arch/arm/configs/sunxi_defconfig
+++ b/arch/arm/configs/sunxi_defconfig
@@ -72,3 +72,4 @@ CONFIG_NFS_FS=y
@@ -24,8 +22,6 @@ index 3ed7023..6e305da 100644
CONFIG_NLS=y
CONFIG_PRINTK_TIME=y
+CONFIG_REGULATOR_AXP20X=y
-diff --git a/drivers/regulator/Kconfig b/drivers/regulator/Kconfig
-index 6a79328..9f3bc48 100644
--- a/drivers/regulator/Kconfig
+++ b/drivers/regulator/Kconfig
@@ -139,6 +139,13 @@ config REGULATOR_AS3722
@@ -42,11 +38,9 @@ index 6a79328..9f3bc48 100644
config REGULATOR_DA903X
tristate "Dialog Semiconductor DA9030/DA9034 regulators"
depends on PMIC_DA903X
-diff --git a/drivers/regulator/Makefile b/drivers/regulator/Makefile
-index 979f9dd..1dd084a 100644
--- a/drivers/regulator/Makefile
+++ b/drivers/regulator/Makefile
-@@ -20,6 +20,7 @@ obj-$(CONFIG_REGULATOR_ANATOP) += anatop-regulator.o
+@@ -20,6 +20,7 @@ obj-$(CONFIG_REGULATOR_ANATOP) += anatop
obj-$(CONFIG_REGULATOR_ARIZONA) += arizona-micsupp.o arizona-ldo1.o
obj-$(CONFIG_REGULATOR_AS3711) += as3711-regulator.o
obj-$(CONFIG_REGULATOR_AS3722) += as3722-regulator.o
@@ -54,9 +48,6 @@ index 979f9dd..1dd084a 100644
obj-$(CONFIG_REGULATOR_DA903X) += da903x.o
obj-$(CONFIG_REGULATOR_DA9052) += da9052-regulator.o
obj-$(CONFIG_REGULATOR_DA9055) += da9055-regulator.o
-diff --git a/drivers/regulator/axp20x-regulator.c b/drivers/regulator/axp20x-regulator.c
-new file mode 100644
-index 0000000..9072f2f
--- /dev/null
+++ b/drivers/regulator/axp20x-regulator.c
@@ -0,0 +1,349 @@
@@ -409,6 +400,3 @@ index 0000000..9072f2f
+MODULE_LICENSE("GPL v2");
+MODULE_AUTHOR("Carlo Caione <carlo@caione.org>");
+MODULE_DESCRIPTION("Regulator Driver for AXP20X PMIC");
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/213-dt-sunxi-add-x-powers.patch b/target/linux/sunxi/patches-3.14/213-dt-sunxi-add-x-powers.patch
index 3b37c47282..aa29a01089 100644
--- a/target/linux/sunxi/patches-3.14/213-dt-sunxi-add-x-powers.patch
+++ b/target/linux/sunxi/patches-3.14/213-dt-sunxi-add-x-powers.patch
@@ -12,9 +12,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
1 file changed, 60 insertions(+)
create mode 100644 arch/arm/boot/dts/x-powers-axp209.dtsi
-diff --git a/arch/arm/boot/dts/x-powers-axp209.dtsi b/arch/arm/boot/dts/x-powers-axp209.dtsi
-new file mode 100644
-index 0000000..118ce3a1
--- /dev/null
+++ b/arch/arm/boot/dts/x-powers-axp209.dtsi
@@ -0,0 +1,60 @@
@@ -78,6 +75,3 @@ index 0000000..118ce3a1
+ regulator-max-microvolt = <3300000>;
+ };
+ };
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/214-1-dt-sun7i-add-axp209-to-cubieboard2.patch b/target/linux/sunxi/patches-3.14/214-1-dt-sun7i-add-axp209-to-cubieboard2.patch
index a7d9c17cab..f7f4d9af98 100644
--- a/target/linux/sunxi/patches-3.14/214-1-dt-sun7i-add-axp209-to-cubieboard2.patch
+++ b/target/linux/sunxi/patches-3.14/214-1-dt-sun7i-add-axp209-to-cubieboard2.patch
@@ -14,8 +14,6 @@ Signed-off-by: Carlo Caione <carlo@caione.org>
arch/arm/boot/dts/sun7i-a20-cubieboard2.dts | 10 ++++++++++
1 file changed, 10 insertions(+)
-diff --git a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
-index cd9d3c2..40e9c3a 100644
--- a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
+++ b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
@@ -74,6 +74,16 @@
@@ -35,6 +33,3 @@ index cd9d3c2..40e9c3a 100644
};
i2c1: i2c@01c2b000 {
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/214-2-dt-sun4i-add-axp209-to-boards.patch b/target/linux/sunxi/patches-3.14/214-2-dt-sun4i-add-axp209-to-boards.patch
index 43fba1abf9..35dea87902 100644
--- a/target/linux/sunxi/patches-3.14/214-2-dt-sun4i-add-axp209-to-boards.patch
+++ b/target/linux/sunxi/patches-3.14/214-2-dt-sun4i-add-axp209-to-boards.patch
@@ -14,11 +14,9 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
arch/arm/boot/dts/sun4i-a10-pcduino.dts | 9 +++++++++
7 files changed, 81 insertions(+)
-diff --git a/arch/arm/boot/dts/sun4i-a10-a1000.dts b/arch/arm/boot/dts/sun4i-a10-a1000.dts
-index 68b687e..99f53c0 100644
--- a/arch/arm/boot/dts/sun4i-a10-a1000.dts
+++ b/arch/arm/boot/dts/sun4i-a10-a1000.dts
-@@ -96,6 +96,15 @@
+@@ -65,6 +65,15 @@
pinctrl-names = "default";
pinctrl-0 = <&i2c0_pins_a>;
status = "okay";
@@ -34,8 +32,6 @@ index 68b687e..99f53c0 100644
};
};
-diff --git a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
-index 13088f0..5e4986c 100644
--- a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
+++ b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
@@ -88,6 +88,15 @@
@@ -54,11 +50,9 @@ index 13088f0..5e4986c 100644
};
i2c1: i2c@01c2b000 {
-diff --git a/arch/arm/boot/dts/sun4i-a10-hackberry.dts b/arch/arm/boot/dts/sun4i-a10-hackberry.dts
-index a4b05d6..18f0030 100644
--- a/arch/arm/boot/dts/sun4i-a10-hackberry.dts
+++ b/arch/arm/boot/dts/sun4i-a10-hackberry.dts
-@@ -91,6 +91,21 @@
+@@ -82,6 +82,21 @@
pinctrl-0 = <&uart0_pins_a>;
status = "okay";
};
@@ -79,11 +73,7 @@ index a4b05d6..18f0030 100644
+ };
};
- reg_emac_3v3: emac-3v3 {
-diff --git a/arch/arm/boot/dts/sun4i-a10-inet97fv2.dts b/arch/arm/boot/dts/sun4i-a10-inet97fv2.dts
-index b73a070..7d3599e 100644
-diff --git a/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts b/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts
-index c906171..4acddf7 100644
+ regulators {
--- a/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts
+++ b/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts
@@ -55,6 +55,21 @@
@@ -108,8 +98,6 @@ index c906171..4acddf7 100644
};
reg_usb1_vbus: usb1-vbus {
-diff --git a/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts b/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts
-index e5a2765..2ce7267 100644
--- a/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts
+++ b/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts
@@ -90,6 +90,21 @@
@@ -134,8 +122,6 @@ index e5a2765..2ce7267 100644
};
leds {
-diff --git a/arch/arm/boot/dts/sun4i-a10-pcduino.dts b/arch/arm/boot/dts/sun4i-a10-pcduino.dts
-index 2820229..817cdca 100644
--- a/arch/arm/boot/dts/sun4i-a10-pcduino.dts
+++ b/arch/arm/boot/dts/sun4i-a10-pcduino.dts
@@ -74,6 +74,15 @@
@@ -154,6 +140,3 @@ index 2820229..817cdca 100644
};
};
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/214-3-dt-sun7i-add-axp209-to-cubietruck.patch b/target/linux/sunxi/patches-3.14/214-3-dt-sun7i-add-axp209-to-cubietruck.patch
index af8ca023ea..0cc8f8b92c 100644
--- a/target/linux/sunxi/patches-3.14/214-3-dt-sun7i-add-axp209-to-cubietruck.patch
+++ b/target/linux/sunxi/patches-3.14/214-3-dt-sun7i-add-axp209-to-cubietruck.patch
@@ -9,13 +9,11 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts | 10 ++++++++++
2 files changed, 20 insertions(+)
-diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
-index 9a127d1..ebf6a2f 100644
--- a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
+++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
-@@ -137,6 +137,16 @@
+@@ -89,6 +89,16 @@
pinctrl-names = "default";
- pinctrl-0 = <&i2c0_pins_a>;
+ pinctrl-0 = <&uart0_pins_a>;
status = "okay";
+
+ axp: axp20x@34 {
@@ -29,9 +27,7 @@ index 9a127d1..ebf6a2f 100644
+ };
};
- i2c1: i2c@01c2b000 {
-diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
-index 15f1f3f..926f111 100644
+ gmac: ethernet@01c50000 {
--- a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
+++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
@@ -127,6 +127,16 @@
@@ -51,6 +47,3 @@ index 15f1f3f..926f111 100644
};
i2c1: i2c@01c2b000 {
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/215-2-dt-sun5i-add-address-and-sizecells-to-i2c.patch b/target/linux/sunxi/patches-3.14/215-2-dt-sun5i-add-address-and-sizecells-to-i2c.patch
index 5f79073e92..9b5fd57863 100644
--- a/target/linux/sunxi/patches-3.14/215-2-dt-sun5i-add-address-and-sizecells-to-i2c.patch
+++ b/target/linux/sunxi/patches-3.14/215-2-dt-sun5i-add-address-and-sizecells-to-i2c.patch
@@ -9,8 +9,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
arch/arm/boot/dts/sun5i-a13.dtsi | 6 ++++++
1 file changed, 6 insertions(+)
-diff --git a/arch/arm/boot/dts/sun5i-a13.dtsi b/arch/arm/boot/dts/sun5i-a13.dtsi
-index 280ffee..68ab353 100644
--- a/arch/arm/boot/dts/sun5i-a13.dtsi
+++ b/arch/arm/boot/dts/sun5i-a13.dtsi
@@ -503,6 +503,8 @@
@@ -40,6 +38,3 @@ index 280ffee..68ab353 100644
};
timer@01c60000 {
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/215-3-dt-sun7i-add-address-and-sizecells-to-i2c.patch b/target/linux/sunxi/patches-3.14/215-3-dt-sun7i-add-address-and-sizecells-to-i2c.patch
index a699644466..35ae842f87 100644
--- a/target/linux/sunxi/patches-3.14/215-3-dt-sun7i-add-address-and-sizecells-to-i2c.patch
+++ b/target/linux/sunxi/patches-3.14/215-3-dt-sun7i-add-address-and-sizecells-to-i2c.patch
@@ -9,8 +9,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
arch/arm/boot/dts/sun7i-a20.dtsi | 10 ++++++++++
1 file changed, 10 insertions(+)
-diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
-index 2e66c85..15ea85e 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -848,6 +848,8 @@
@@ -58,6 +56,3 @@ index 2e66c85..15ea85e 100644
};
gmac: ethernet@01c50000 {
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/215-dt-sun4i-add-address-and-sizecells-to-i2c.patch b/target/linux/sunxi/patches-3.14/215-dt-sun4i-add-address-and-sizecells-to-i2c.patch
index c8c8ae1be6..60fe06f5aa 100644
--- a/target/linux/sunxi/patches-3.14/215-dt-sun4i-add-address-and-sizecells-to-i2c.patch
+++ b/target/linux/sunxi/patches-3.14/215-dt-sun4i-add-address-and-sizecells-to-i2c.patch
@@ -9,8 +9,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
arch/arm/boot/dts/sun4i-a10.dtsi | 6 ++++++
1 file changed, 6 insertions(+)
-diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
-index 4b90a18..2a705e7 100644
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
@@ -712,6 +712,8 @@
@@ -40,6 +38,3 @@ index 4b90a18..2a705e7 100644
};
};
};
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/216-dt-sun7i-add-i2c-to-cubietruck.patch b/target/linux/sunxi/patches-3.14/216-dt-sun7i-add-i2c-to-cubietruck.patch
index 1e972d83ca..2b4c243855 100644
--- a/target/linux/sunxi/patches-3.14/216-dt-sun7i-add-i2c-to-cubietruck.patch
+++ b/target/linux/sunxi/patches-3.14/216-dt-sun7i-add-i2c-to-cubietruck.patch
@@ -14,13 +14,11 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
arch/arm/boot/dts/sun7i-a20-cubietruck.dts | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
-diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
-index 8a1009d..f9dcb61 100644
--- a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
+++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
-@@ -33,6 +33,24 @@
- pinctrl-0 = <&uart0_pins_a>;
- status = "okay";
+@@ -112,6 +112,24 @@
+ reg = <1>;
+ };
};
+
+ i2c0: i2c@01c2ac00 {
@@ -43,6 +41,3 @@ index 8a1009d..f9dcb61 100644
};
leds {
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/220-clk-sunxi-remove-calls-to-clk_put.patch b/target/linux/sunxi/patches-3.14/220-clk-sunxi-remove-calls-to-clk_put.patch
index 9d87e88a38..bac72f99a6 100644
--- a/target/linux/sunxi/patches-3.14/220-clk-sunxi-remove-calls-to-clk_put.patch
+++ b/target/linux/sunxi/patches-3.14/220-clk-sunxi-remove-calls-to-clk_put.patch
@@ -12,11 +12,9 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
drivers/clk/sunxi/clk-sunxi.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
-diff --git a/drivers/clk/sunxi/clk-sunxi.c b/drivers/clk/sunxi/clk-sunxi.c
-index 9afd8dd..a10a645 100644
--- a/drivers/clk/sunxi/clk-sunxi.c
+++ b/drivers/clk/sunxi/clk-sunxi.c
-@@ -1325,17 +1325,13 @@ static void __init sunxi_clock_protect(void)
+@@ -1325,17 +1325,13 @@ static void __init sunxi_clock_protect(v
/* memory bus clock - sun5i+ */
clk = clk_get(NULL, "mbus");
@@ -36,6 +34,3 @@ index 9afd8dd..a10a645 100644
}
static void __init sunxi_init_clocks(void)
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/230-net-rfkill-changes.patch b/target/linux/sunxi/patches-3.14/230-net-rfkill-changes.patch
index ca71a915a8..d5e107875e 100644
--- a/target/linux/sunxi/patches-3.14/230-net-rfkill-changes.patch
+++ b/target/linux/sunxi/patches-3.14/230-net-rfkill-changes.patch
@@ -12,44 +12,25 @@ Signed-off-by: Chen-Yu Tsai <wens@csie.org>
net/rfkill/rfkill-gpio.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
-diff --git a/net/rfkill/rfkill-gpio.c b/net/rfkill/rfkill-gpio.c
-index bd2a5b9..97ec12a 100644
--- a/net/rfkill/rfkill-gpio.c
+++ b/net/rfkill/rfkill-gpio.c
-@@ -117,8 +117,8 @@ static int rfkill_gpio_probe(struct platform_device *pdev)
- if (!rfkill->shutdown_name)
- return -ENOMEM;
+@@ -26,6 +26,7 @@
+ #include <linux/slab.h>
+ #include <linux/acpi.h>
+ #include <linux/gpio/consumer.h>
++#include <linux/of_gpio.h>
-- snprintf(rfkill->reset_name, len + 6 , "%s_reset", rfkill->name);
-- snprintf(rfkill->shutdown_name, len + 9, "%s_shutdown", rfkill->name);
-+ snprintf(rfkill->reset_name, len + 7 , "%s_reset", rfkill->name);
-+ snprintf(rfkill->shutdown_name, len + 10, "%s_shutdown", rfkill->name);
+ #include <linux/rfkill-gpio.h>
- rfkill->clk = devm_clk_get(&pdev->dev, clk_name);
+@@ -39,6 +40,7 @@ struct rfkill_gpio_data {
+ char *reset_name;
+ char *shutdown_name;
+ struct clk *clk;
++ int clk_frequency;
---
-2.0.3
-
-From d91c313c08167978c3fb20b327b6a7abb7b00ffd Mon Sep 17 00:00:00 2001
-From: Chen-Yu Tsai <wens@csie.org>
-Date: Fri, 17 Jan 2014 14:47:27 +0800
-Subject: [PATCH] net: rfkill: gpio: use
- clk_prepare_enable/clk_disable_unprepare
-
-rfkill-gpio calls clk_enable() without first calling clk_prepare(),
-resulting in a warning and no effect. Switch to clk_prepare_enable()
-and clk_disable_unprepare.
-
-Signed-off-by: Chen-Yu Tsai <wens@csie.org>
----
- net/rfkill/rfkill-gpio.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/net/rfkill/rfkill-gpio.c b/net/rfkill/rfkill-gpio.c
-index 97ec12a..c7081b7 100644
---- a/net/rfkill/rfkill-gpio.c
-+++ b/net/rfkill/rfkill-gpio.c
-@@ -51,10 +51,10 @@ static int rfkill_gpio_set_power(void *data, bool blocked)
+ bool clk_enabled;
+ };
+@@ -51,15 +53,15 @@ static int rfkill_gpio_set_power(void *d
gpiod_set_value(rfkill->shutdown_gpio, 0);
gpiod_set_value(rfkill->reset_gpio, 0);
if (!IS_ERR(rfkill->clk) && rfkill->clk_enabled)
@@ -62,96 +43,13 @@ index 97ec12a..c7081b7 100644
gpiod_set_value(rfkill->reset_gpio, 1);
gpiod_set_value(rfkill->shutdown_gpio, 1);
}
---
-2.0.3
-
-From f6dc85e22d3215a26f509fb5b34ca34c56a0d8b4 Mon Sep 17 00:00:00 2001
-From: Chen-Yu Tsai <wens@csie.org>
-Date: Fri, 17 Jan 2014 14:47:28 +0800
-Subject: [PATCH] net: rfkill: gpio: fix reversed clock enable state
-
-rfkill-gpio has clk_enabled = blocked, which is true when rfkill
-blocks the device. This results in calling clock enable/disable at
-the wrong time. Reversing the value fixes this.
-
-Signed-off-by: Chen-Yu Tsai <wens@csie.org>
----
- net/rfkill/rfkill-gpio.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/net/rfkill/rfkill-gpio.c b/net/rfkill/rfkill-gpio.c
-index c7081b7..3084fa3 100644
---- a/net/rfkill/rfkill-gpio.c
-+++ b/net/rfkill/rfkill-gpio.c
-@@ -59,7 +59,7 @@ static int rfkill_gpio_set_power(void *data, bool blocked)
- gpiod_set_value(rfkill->shutdown_gpio, 1);
- }
- rfkill->clk_enabled = blocked;
+ rfkill->clk_enabled = !blocked;
return 0;
}
---
-2.0.3
-
-From 57301a41d4a82902e967f6bd9f09ba6ca31fcbed Mon Sep 17 00:00:00 2001
-From: Chen-Yu Tsai <wens@csie.org>
-Date: Fri, 17 Jan 2014 14:47:29 +0800
-Subject: [PATCH] net: rfkill: gpio: add device tree support
-
-Signed-off-by: Chen-Yu Tsai <wens@csie.org>
----
- .../devicetree/bindings/rfkill/rfkill-gpio.txt | 26 ++++++++++++++++++++++
- net/rfkill/rfkill-gpio.c | 23 +++++++++++++++++++
- 2 files changed, 49 insertions(+)
- create mode 100644 Documentation/devicetree/bindings/rfkill/rfkill-gpio.txt
-
-diff --git a/Documentation/devicetree/bindings/rfkill/rfkill-gpio.txt b/Documentation/devicetree/bindings/rfkill/rfkill-gpio.txt
-new file mode 100644
-index 0000000..8a07ea4
---- /dev/null
-+++ b/Documentation/devicetree/bindings/rfkill/rfkill-gpio.txt
-@@ -0,0 +1,26 @@
-+GPIO controlled RFKILL devices
-+
-+Required properties:
-+- compatible : Must be "rfkill-gpio".
-+- rfkill-name : Name of RFKILL device
-+- rfkill-type : Type of RFKILL device: 1 for WiFi, 2 for BlueTooth
-+- NAME_shutdown-gpios : GPIO phandle to shutdown control
-+ (phandle must be the second)
-+- NAME_reset-gpios : GPIO phandle to reset control
-+
-+NAME must match the rfkill-name property. NAME_shutdown-gpios or
-+NAME_reset-gpios, or both, must be defined.
-+
-+Optional properties:
-+- clocks : phandle to clock to enable/disable
-+
-+Example:
-+
-+ rfkill_bt: rfkill@0 {
-+ compatible = "rfkill-gpio";
-+ rfkill-name = "bluetooth";
-+ rfkill-type = <2>;
-+ bluetooth_shutdown-gpios = <0>, <&pio 7 18 0>;
-+ bluetooth_reset-gpios = <&pio 7 24 0>;
-+ clocks = <&clk_out_a>;
-+ };
-diff --git a/net/rfkill/rfkill-gpio.c b/net/rfkill/rfkill-gpio.c
-index 3084fa3..48381a8 100644
---- a/net/rfkill/rfkill-gpio.c
-+++ b/net/rfkill/rfkill-gpio.c
-@@ -26,6 +26,7 @@
- #include <linux/slab.h>
- #include <linux/acpi.h>
- #include <linux/gpio/consumer.h>
-+#include <linux/of_gpio.h>
-
- #include <linux/rfkill-gpio.h>
-
-@@ -83,6 +84,18 @@ static int rfkill_gpio_acpi_probe(struct device *dev,
+@@ -83,6 +85,19 @@ static int rfkill_gpio_acpi_probe(struct
return 0;
}
@@ -163,6 +61,7 @@ index 3084fa3..48381a8 100644
+ rfkill->name = np->name;
+ of_property_read_string(np, "rfkill-name", &rfkill->name);
+ of_property_read_u32(np, "rfkill-type", &rfkill->type);
++ of_property_read_u32(np, "clock-frequency", &rfkill->clk_frequency);
+
+ return 0;
+}
@@ -170,7 +69,7 @@ index 3084fa3..48381a8 100644
static int rfkill_gpio_probe(struct platform_device *pdev)
{
struct rfkill_gpio_platform_data *pdata = pdev->dev.platform_data;
-@@ -100,6 +113,10 @@ static int rfkill_gpio_probe(struct platform_device *pdev)
+@@ -100,6 +115,10 @@ static int rfkill_gpio_probe(struct plat
ret = rfkill_gpio_acpi_probe(&pdev->dev, rfkill);
if (ret)
return ret;
@@ -181,7 +80,22 @@ index 3084fa3..48381a8 100644
} else if (pdata) {
clk_name = pdata->power_clk_name;
rfkill->name = pdata->name;
-@@ -189,6 +206,11 @@ static const struct acpi_device_id rfkill_acpi_match[] = {
+@@ -117,10 +136,12 @@ static int rfkill_gpio_probe(struct plat
+ if (!rfkill->shutdown_name)
+ return -ENOMEM;
+
+- snprintf(rfkill->reset_name, len + 6 , "%s_reset", rfkill->name);
+- snprintf(rfkill->shutdown_name, len + 9, "%s_shutdown", rfkill->name);
++ snprintf(rfkill->reset_name, len + 7 , "%s_reset", rfkill->name);
++ snprintf(rfkill->shutdown_name, len + 10, "%s_shutdown", rfkill->name);
+
+ rfkill->clk = devm_clk_get(&pdev->dev, clk_name);
++ if (!IS_ERR(rfkill->clk) && rfkill->clk_frequency > 0)
++ clk_set_rate(rfkill->clk, rfkill->clk_frequency);
+
+ gpio = devm_gpiod_get_index(&pdev->dev, rfkill->reset_name, 0);
+ if (!IS_ERR(gpio)) {
+@@ -189,6 +210,11 @@ static const struct acpi_device_id rfkil
{ },
};
@@ -193,7 +107,7 @@ index 3084fa3..48381a8 100644
static struct platform_driver rfkill_gpio_driver = {
.probe = rfkill_gpio_probe,
.remove = rfkill_gpio_remove,
-@@ -196,6 +218,7 @@ static struct platform_driver rfkill_gpio_driver = {
+@@ -196,6 +222,7 @@ static struct platform_driver rfkill_gpi
.name = "rfkill_gpio",
.owner = THIS_MODULE,
.acpi_match_table = ACPI_PTR(rfkill_acpi_match),
@@ -201,71 +115,34 @@ index 3084fa3..48381a8 100644
},
};
---
-2.0.3
-
-From 83c43937ee8c5fcb38241a8e89c2b93e5b0f9526 Mon Sep 17 00:00:00 2001
-From: Chen-Yu Tsai <wens@csie.org>
-Date: Fri, 17 Jan 2014 14:47:30 +0800
-Subject: [PATCH] net: rfkill: gpio: add clock-frequency device tree property
-
-Some devices, such as Broadcom Bluetooth devices, require a specific
-clock rate for the clock tied to the rfkill device. Add clock-frequency
-property so we can specify this from the device tree.
-
-Signed-off-by: Chen-Yu Tsai <wens@csie.org>
----
- Documentation/devicetree/bindings/rfkill/rfkill-gpio.txt | 2 ++
- net/rfkill/rfkill-gpio.c | 4 ++++
- 2 files changed, 6 insertions(+)
-
-diff --git a/Documentation/devicetree/bindings/rfkill/rfkill-gpio.txt b/Documentation/devicetree/bindings/rfkill/rfkill-gpio.txt
-index 8a07ea4..8b8db0a 100644
---- a/Documentation/devicetree/bindings/rfkill/rfkill-gpio.txt
+--- /dev/null
+++ b/Documentation/devicetree/bindings/rfkill/rfkill-gpio.txt
-@@ -13,6 +13,7 @@ NAME_reset-gpios, or both, must be defined.
-
- Optional properties:
- - clocks : phandle to clock to enable/disable
+@@ -0,0 +1,28 @@
++GPIO controlled RFKILL devices
++
++Required properties:
++- compatible : Must be "rfkill-gpio".
++- rfkill-name : Name of RFKILL device
++- rfkill-type : Type of RFKILL device: 1 for WiFi, 2 for BlueTooth
++- NAME_shutdown-gpios : GPIO phandle to shutdown control
++ (phandle must be the second)
++- NAME_reset-gpios : GPIO phandle to reset control
++
++NAME must match the rfkill-name property. NAME_shutdown-gpios or
++NAME_reset-gpios, or both, must be defined.
++
++Optional properties:
++- clocks : phandle to clock to enable/disable
+- clock-frequency : clock rate to set for the given clock
-
- Example:
-
-@@ -23,4 +24,5 @@ Example:
- bluetooth_shutdown-gpios = <0>, <&pio 7 18 0>;
- bluetooth_reset-gpios = <&pio 7 24 0>;
- clocks = <&clk_out_a>;
++
++Example:
++
++ rfkill_bt: rfkill@0 {
++ compatible = "rfkill-gpio";
++ rfkill-name = "bluetooth";
++ rfkill-type = <2>;
++ bluetooth_shutdown-gpios = <0>, <&pio 7 18 0>;
++ bluetooth_reset-gpios = <&pio 7 24 0>;
++ clocks = <&clk_out_a>;
+ clock-frequency = <32678>;
- };
-diff --git a/net/rfkill/rfkill-gpio.c b/net/rfkill/rfkill-gpio.c
-index 48381a8..3092681 100644
---- a/net/rfkill/rfkill-gpio.c
-+++ b/net/rfkill/rfkill-gpio.c
-@@ -40,6 +40,7 @@ struct rfkill_gpio_data {
- char *reset_name;
- char *shutdown_name;
- struct clk *clk;
-+ int clk_frequency;
-
- bool clk_enabled;
- };
-@@ -92,6 +93,7 @@ static int rfkill_gpio_dt_probe(struct device *dev,
- rfkill->name = np->name;
- of_property_read_string(np, "rfkill-name", &rfkill->name);
- of_property_read_u32(np, "rfkill-type", &rfkill->type);
-+ of_property_read_u32(np, "clock-frequency", &rfkill->clk_frequency);
-
- return 0;
- }
-@@ -138,6 +140,8 @@ static int rfkill_gpio_probe(struct platform_device *pdev)
- snprintf(rfkill->shutdown_name, len + 10, "%s_shutdown", rfkill->name);
-
- rfkill->clk = devm_clk_get(&pdev->dev, clk_name);
-+ if (!IS_ERR(rfkill->clk) && rfkill->clk_frequency > 0)
-+ clk_set_rate(rfkill->clk, rfkill->clk_frequency);
-
- gpio = devm_gpiod_get_index(&pdev->dev, rfkill->reset_name, 0);
- if (!IS_ERR(gpio)) {
---
-2.0.3
-
++ };
diff --git a/target/linux/sunxi/patches-3.14/231-1-brcmfmac-fix-sdio-sending.patch b/target/linux/sunxi/patches-3.14/231-1-brcmfmac-fix-sdio-sending.patch
index 8f9914fb10..ec11647ba4 100644
--- a/target/linux/sunxi/patches-3.14/231-1-brcmfmac-fix-sdio-sending.patch
+++ b/target/linux/sunxi/patches-3.14/231-1-brcmfmac-fix-sdio-sending.patch
@@ -19,11 +19,9 @@ Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c b/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c
-index fa35b23..bd19323 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c
-@@ -827,7 +827,7 @@ brcmf_sdiod_ramrw(struct brcmf_sdio_dev *sdiodev, bool write, u32 address,
+@@ -827,7 +827,7 @@ brcmf_sdiod_ramrw(struct brcmf_sdio_dev
}
if (!write)
memcpy(data, pkt->data, dsize);
@@ -32,6 +30,3 @@ index fa35b23..bd19323 100644
/* Adjust for next transfer (if any) */
size -= dsize;
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/231-2-brcmfmac-fix-use-of-skb-ctrlbuf-in-SDIO.patch b/target/linux/sunxi/patches-3.14/231-2-brcmfmac-fix-use-of-skb-ctrlbuf-in-SDIO.patch
index 5743e66f6c..1ba8e6ee08 100644
--- a/target/linux/sunxi/patches-3.14/231-2-brcmfmac-fix-use-of-skb-ctrlbuf-in-SDIO.patch
+++ b/target/linux/sunxi/patches-3.14/231-2-brcmfmac-fix-use-of-skb-ctrlbuf-in-SDIO.patch
@@ -19,11 +19,9 @@ Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
-diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c b/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c
-index ddaa9ef..e006e7c 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c
-@@ -1955,7 +1955,7 @@ static int brcmf_sdio_txpkt_prep_sg(struct brcmf_sdio *bus,
+@@ -1955,7 +1955,7 @@ static int brcmf_sdio_txpkt_prep_sg(stru
memcpy(pkt_pad->data,
pkt->data + pkt->len - tail_chop,
tail_chop);
@@ -32,7 +30,7 @@ index ddaa9ef..e006e7c 100644
skb_trim(pkt, pkt->len - tail_chop);
skb_trim(pkt_pad, tail_pad + tail_chop);
__skb_queue_after(pktq, pkt, pkt_pad);
-@@ -2003,7 +2003,7 @@ brcmf_sdio_txpkt_prep(struct brcmf_sdio *bus, struct sk_buff_head *pktq,
+@@ -2003,7 +2003,7 @@ brcmf_sdio_txpkt_prep(struct brcmf_sdio
* already properly aligned and does not
* need an sdpcm header.
*/
@@ -41,7 +39,7 @@ index ddaa9ef..e006e7c 100644
continue;
/* align packet data pointer */
-@@ -2067,11 +2067,11 @@ brcmf_sdio_txpkt_postp(struct brcmf_sdio *bus, struct sk_buff_head *pktq)
+@@ -2067,11 +2067,11 @@ brcmf_sdio_txpkt_postp(struct brcmf_sdio
u8 *hdr;
u32 dat_offset;
u16 tail_pad;
@@ -55,7 +53,7 @@ index ddaa9ef..e006e7c 100644
if (dummy_flags & ALIGN_SKB_FLAG) {
chop_len = dummy_flags & ALIGN_SKB_CHOP_LEN_MASK;
if (chop_len) {
-@@ -2554,6 +2554,8 @@ static int brcmf_sdio_bus_txdata(struct device *dev, struct sk_buff *pkt)
+@@ -2554,6 +2554,8 @@ static int brcmf_sdio_bus_txdata(struct
/* Priority based enq */
spin_lock_irqsave(&bus->txqlock, flags);
@@ -64,6 +62,3 @@ index ddaa9ef..e006e7c 100644
if (!brcmf_c_prec_enq(bus->sdiodev->dev, &bus->txq, pkt, prec)) {
skb_pull(pkt, bus->tx_hdrlen);
brcmf_err("out of bus->txq !!!\n");
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/232-1-dt-sun7i-add-wifi-to-cubietruck.patch b/target/linux/sunxi/patches-3.14/232-1-dt-sun7i-add-wifi-to-cubietruck.patch
index 2e80804891..1fad950c97 100644
--- a/target/linux/sunxi/patches-3.14/232-1-dt-sun7i-add-wifi-to-cubietruck.patch
+++ b/target/linux/sunxi/patches-3.14/232-1-dt-sun7i-add-wifi-to-cubietruck.patch
@@ -14,8 +14,6 @@ but this is not supported in this patch.
arch/arm/boot/dts/sun7i-a20-cubietruck.dts | 47 ++++++++++++++++++++++++++++++
1 file changed, 47 insertions(+)
-diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
-index 66bb3ef..2444806 100644
--- a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
+++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
@@ -28,6 +28,23 @@
@@ -61,9 +59,9 @@ index 66bb3ef..2444806 100644
ahci_pwr_pin_cubietruck: ahci_pwr_pin@1 {
allwinner,pins = "PH12";
allwinner,function = "gpio_out";
-@@ -69,6 +98,13 @@
- allwinner,drive = <0>;
- allwinner,pull = <0>;
+@@ -83,6 +112,13 @@
+ allwinner,drive = <0>;
+ allwinner,pull = <2>;
};
+
+ wifi_host_wake_pin: wifi_host_wake_pin@0 {
@@ -75,7 +73,7 @@ index 66bb3ef..2444806 100644
};
uart0: serial@01c28000 {
-@@ -147,4 +183,15 @@
+@@ -171,4 +207,15 @@
reg_usb2_vbus: usb2-vbus {
status = "okay";
};
@@ -91,6 +89,3 @@ index 66bb3ef..2444806 100644
+ gpio = <&pio 7 9 0>;
+ };
};
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/232-2-dt-sun7i-add-bluetooth-to-cubietruck.patch b/target/linux/sunxi/patches-3.14/232-2-dt-sun7i-add-bluetooth-to-cubietruck.patch
index e41eb82185..ccfb7a21b0 100644
--- a/target/linux/sunxi/patches-3.14/232-2-dt-sun7i-add-bluetooth-to-cubietruck.patch
+++ b/target/linux/sunxi/patches-3.14/232-2-dt-sun7i-add-bluetooth-to-cubietruck.patch
@@ -14,11 +14,9 @@ GPIO, but this is not supported in this patch.
arch/arm/boot/dts/sun7i-a20-cubietruck.dts | 36 ++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
-diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
-index 2444806..9a127d1 100644
--- a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
+++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
-@@ -105,6 +105,20 @@
+@@ -119,6 +119,20 @@
allwinner,drive = <0>;
allwinner,pull = <0>;
};
@@ -39,8 +37,8 @@ index 2444806..9a127d1 100644
};
uart0: serial@01c28000 {
-@@ -113,6 +127,12 @@
- status = "okay";
+@@ -149,6 +163,12 @@
+ };
};
+ uart2: serial@01c28800 {
@@ -52,7 +50,7 @@ index 2444806..9a127d1 100644
i2c0: i2c@01c2ac00 {
pinctrl-names = "default";
pinctrl-0 = <&i2c0_pins_a>;
-@@ -194,4 +214,20 @@
+@@ -218,4 +238,20 @@
enable-active-high;
gpio = <&pio 7 9 0>;
};
@@ -73,6 +71,3 @@ index 2444806..9a127d1 100644
+ };
+ };
};
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/250-pwm-add-driver.patch b/target/linux/sunxi/patches-3.14/250-pwm-add-driver.patch
index 8d77a3408e..d4af96faef 100644
--- a/target/linux/sunxi/patches-3.14/250-pwm-add-driver.patch
+++ b/target/linux/sunxi/patches-3.14/250-pwm-add-driver.patch
@@ -1,8 +1,6 @@
-diff --git a/drivers/pwm/Kconfig b/drivers/pwm/Kconfig
-index 5b34ff29ea38..178b017be827 100644
--- a/drivers/pwm/Kconfig
+++ b/drivers/pwm/Kconfig
-@@ -217,6 +217,15 @@ config PWM_SPEAR
+@@ -187,6 +187,15 @@ config PWM_SPEAR
To compile this driver as a module, choose M here: the module
will be called pwm-spear.
@@ -18,11 +16,9 @@ index 5b34ff29ea38..178b017be827 100644
config PWM_TEGRA
tristate "NVIDIA Tegra PWM support"
depends on ARCH_TEGRA
-diff --git a/drivers/pwm/Makefile b/drivers/pwm/Makefile
-index e57d2c38a794..39997ea2e276 100644
--- a/drivers/pwm/Makefile
+++ b/drivers/pwm/Makefile
-@@ -19,6 +19,7 @@ obj-$(CONFIG_PWM_PXA) += pwm-pxa.o
+@@ -16,6 +16,7 @@ obj-$(CONFIG_PWM_PXA) += pwm-pxa.o
obj-$(CONFIG_PWM_RENESAS_TPU) += pwm-renesas-tpu.o
obj-$(CONFIG_PWM_SAMSUNG) += pwm-samsung.o
obj-$(CONFIG_PWM_SPEAR) += pwm-spear.o
@@ -30,9 +26,6 @@ index e57d2c38a794..39997ea2e276 100644
obj-$(CONFIG_PWM_TEGRA) += pwm-tegra.o
obj-$(CONFIG_PWM_TIECAP) += pwm-tiecap.o
obj-$(CONFIG_PWM_TIEHRPWM) += pwm-tiehrpwm.o
-diff --git a/drivers/pwm/pwm-sunxi.c b/drivers/pwm/pwm-sunxi.c
-new file mode 100644
-index 000000000000..e7c3ca1d3c42
--- /dev/null
+++ b/drivers/pwm/pwm-sunxi.c
@@ -0,0 +1,338 @@
diff --git a/target/linux/sunxi/patches-3.14/251-1-dt-sun4i-add-pinmux-for-pwm.patch b/target/linux/sunxi/patches-3.14/251-1-dt-sun4i-add-pinmux-for-pwm.patch
index 00881f02c3..5eb30b1a63 100644
--- a/target/linux/sunxi/patches-3.14/251-1-dt-sun4i-add-pinmux-for-pwm.patch
+++ b/target/linux/sunxi/patches-3.14/251-1-dt-sun4i-add-pinmux-for-pwm.patch
@@ -11,11 +11,9 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
arch/arm/boot/dts/sun4i-a10.dtsi | 14 ++++++++++++++
1 file changed, 14 insertions(+)
-diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
-index fe845eb..8810ce4 100644
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
-@@ -477,6 +477,20 @@
+@@ -521,6 +521,20 @@
#size-cells = <0>;
#gpio-cells = <3>;
@@ -36,6 +34,3 @@ index fe845eb..8810ce4 100644
uart0_pins_a: uart0@0 {
allwinner,pins = "PB22", "PB23";
allwinner,function = "uart0";
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/251-2-dt-sun7i-add-pinmux-for-pwm.patch b/target/linux/sunxi/patches-3.14/251-2-dt-sun7i-add-pinmux-for-pwm.patch
index 128e064046..12062376ec 100644
--- a/target/linux/sunxi/patches-3.14/251-2-dt-sun7i-add-pinmux-for-pwm.patch
+++ b/target/linux/sunxi/patches-3.14/251-2-dt-sun7i-add-pinmux-for-pwm.patch
@@ -11,11 +11,9 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
arch/arm/boot/dts/sun7i-a20.dtsi | 14 ++++++++++++++
1 file changed, 14 insertions(+)
-diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
-index f9f5e0c..2eaf7c0f 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
-@@ -554,6 +554,20 @@
+@@ -584,6 +584,20 @@
#size-cells = <0>;
#gpio-cells = <3>;
@@ -36,6 +34,3 @@ index f9f5e0c..2eaf7c0f 100644
uart0_pins_a: uart0@0 {
allwinner,pins = "PB22", "PB23";
allwinner,function = "uart0";
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/252-1-dt-sun4i-add-pwm-support.patch b/target/linux/sunxi/patches-3.14/252-1-dt-sun4i-add-pwm-support.patch
index fd06b0bf89..4b16ab2035 100644
--- a/target/linux/sunxi/patches-3.14/252-1-dt-sun4i-add-pwm-support.patch
+++ b/target/linux/sunxi/patches-3.14/252-1-dt-sun4i-add-pwm-support.patch
@@ -11,12 +11,10 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
arch/arm/boot/dts/sun4i-a10.dtsi | 8 ++++++++
1 file changed, 8 insertions(+)
-diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
-index 8810ce4..4dc3761 100644
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
-@@ -563,6 +563,14 @@
- interrupts = <24>;
+@@ -628,6 +628,14 @@
+ status = "disabled";
};
+ pwm: pwm@01c20e00 {
@@ -28,8 +26,5 @@ index 8810ce4..4dc3761 100644
+ };
+
sid: eeprom@01c23800 {
- compatible = "allwinner,sun4i-a10-sid";
+ compatible = "allwinner,sun4i-sid";
reg = <0x01c23800 0x10>;
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/252-2-dt-sun7i-add-pwm-support.patch b/target/linux/sunxi/patches-3.14/252-2-dt-sun7i-add-pwm-support.patch
index 3bb1186523..dc9636b904 100644
--- a/target/linux/sunxi/patches-3.14/252-2-dt-sun7i-add-pwm-support.patch
+++ b/target/linux/sunxi/patches-3.14/252-2-dt-sun7i-add-pwm-support.patch
@@ -11,12 +11,10 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
arch/arm/boot/dts/sun7i-a20.dtsi | 8 ++++++++
1 file changed, 8 insertions(+)
-diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
-index 2eaf7c0f..61a4b5e 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
-@@ -706,6 +706,14 @@
- interrupts = <0 24 4>;
+@@ -764,6 +764,14 @@
+ status = "disabled";
};
+ pwm: pwm@01c20e00 {
@@ -30,6 +28,3 @@ index 2eaf7c0f..61a4b5e 100644
sid: eeprom@01c23800 {
compatible = "allwinner,sun7i-a20-sid";
reg = <0x01c23800 0x200>;
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/260-dt-sun7i-enable-arm-pmu.patch b/target/linux/sunxi/patches-3.14/260-dt-sun7i-enable-arm-pmu.patch
index 41ff076c85..4f703e7811 100644
--- a/target/linux/sunxi/patches-3.14/260-dt-sun7i-enable-arm-pmu.patch
+++ b/target/linux/sunxi/patches-3.14/260-dt-sun7i-enable-arm-pmu.patch
@@ -11,8 +11,6 @@ Reviewed-by: Hans de Goede <hdegoede@redhat.com>
arch/arm/boot/dts/sun7i-a20.dtsi | 6 ++++++
1 file changed, 6 insertions(+)
-diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
-index 9dd904d..f9f5e0c 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -57,6 +57,12 @@
@@ -28,6 +26,3 @@ index 9dd904d..f9f5e0c 100644
clocks {
#address-cells = <1>;
#size-cells = <1>;
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/270-dt-sun7i-add-ss-to-a20.patch b/target/linux/sunxi/patches-3.14/270-dt-sun7i-add-ss-to-a20.patch
index 4a5ceba82e..11a6ed03f5 100644
--- a/target/linux/sunxi/patches-3.14/270-dt-sun7i-add-ss-to-a20.patch
+++ b/target/linux/sunxi/patches-3.14/270-dt-sun7i-add-ss-to-a20.patch
@@ -1,5 +1,3 @@
-diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
-index 6acdbdf..19b1ced 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -529,6 +529,14 @@
@@ -17,7 +15,3 @@ index 6acdbdf..19b1ced 100644
spi2: spi@01c17000 {
compatible = "allwinner,sun4i-a10-spi";
reg = <0x01c17000 0x1000>;
---
-1.8.5.5
-
- \ No newline at end of file
diff --git a/target/linux/sunxi/patches-3.14/271-crypto-add-ss.patch b/target/linux/sunxi/patches-3.14/271-crypto-add-ss.patch
index 782a5373db..a5e2d067a5 100644
--- a/target/linux/sunxi/patches-3.14/271-crypto-add-ss.patch
+++ b/target/linux/sunxi/patches-3.14/271-crypto-add-ss.patch
@@ -1,8 +1,6 @@
-diff --git a/drivers/crypto/Kconfig b/drivers/crypto/Kconfig
-index 03ccdb0..a2acda4 100644
--- a/drivers/crypto/Kconfig
+++ b/drivers/crypto/Kconfig
-@@ -418,4 +418,21 @@ config CRYPTO_DEV_MXS_DCP
+@@ -419,4 +419,21 @@ config CRYPTO_DEV_MXS_DCP
To compile this driver as a module, choose M here: the module
will be called mxs-dcp.
@@ -24,26 +22,18 @@ index 03ccdb0..a2acda4 100644
+ will be called sunxi-ss.
+
endif # CRYPTO_HW
-diff --git a/drivers/crypto/Makefile b/drivers/crypto/Makefile
-index 482f090..855292a 100644
--- a/drivers/crypto/Makefile
+++ b/drivers/crypto/Makefile
-@@ -23,3 +23,4 @@ obj-$(CONFIG_CRYPTO_DEV_S5P) += s5p-sss.o
- obj-$(CONFIG_CRYPTO_DEV_SAHARA) += sahara.o
+@@ -23,3 +23,4 @@ obj-$(CONFIG_CRYPTO_DEV_SAHARA) += sahar
obj-$(CONFIG_CRYPTO_DEV_TALITOS) += talitos.o
+ obj-$(CONFIG_CRYPTO_DEV_TEGRA_AES) += tegra-aes.o
obj-$(CONFIG_CRYPTO_DEV_UX500) += ux500/
+obj-$(CONFIG_CRYPTO_DEV_SUNXI_SS) += sunxi-ss/
-diff --git a/drivers/crypto/sunxi-ss/Makefile b/drivers/crypto/sunxi-ss/Makefile
-new file mode 100644
-index 0000000..8bb287d
--- /dev/null
+++ b/drivers/crypto/sunxi-ss/Makefile
@@ -0,0 +1,2 @@
+obj-$(CONFIG_CRYPTO_DEV_SUNXI_SS) += sunxi-ss.o
+sunxi-ss-y += sunxi-ss-core.o sunxi-ss-hash.o sunxi-ss-cipher.o
-diff --git a/drivers/crypto/sunxi-ss/sunxi-ss-cipher.c b/drivers/crypto/sunxi-ss/sunxi-ss-cipher.c
-new file mode 100644
-index 0000000..c2422f7
--- /dev/null
+++ b/drivers/crypto/sunxi-ss/sunxi-ss-cipher.c
@@ -0,0 +1,461 @@
@@ -508,9 +498,6 @@ index 0000000..c2422f7
+ memcpy(op->key, key, keylen);
+ return 0;
+}
-diff --git a/drivers/crypto/sunxi-ss/sunxi-ss-core.c b/drivers/crypto/sunxi-ss/sunxi-ss-core.c
-new file mode 100644
-index 0000000..c76016e
--- /dev/null
+++ b/drivers/crypto/sunxi-ss/sunxi-ss-core.c
@@ -0,0 +1,308 @@
@@ -822,9 +809,6 @@ index 0000000..c76016e
+MODULE_DESCRIPTION("Allwinner Security System cryptographic accelerator");
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Corentin LABBE <clabbe.montjoie@gmail.com>");
-diff --git a/drivers/crypto/sunxi-ss/sunxi-ss-hash.c b/drivers/crypto/sunxi-ss/sunxi-ss-hash.c
-new file mode 100644
-index 0000000..6412bfb
--- /dev/null
+++ b/drivers/crypto/sunxi-ss/sunxi-ss-hash.c
@@ -0,0 +1,241 @@
@@ -1069,9 +1053,6 @@ index 0000000..6412bfb
+
+ return sunxi_hash_final(areq);
+}
-diff --git a/drivers/crypto/sunxi-ss/sunxi-ss.h b/drivers/crypto/sunxi-ss/sunxi-ss.h
-new file mode 100644
-index 0000000..94aca20
--- /dev/null
+++ b/drivers/crypto/sunxi-ss/sunxi-ss.h
@@ -0,0 +1,183 @@
@@ -1258,7 +1239,3 @@ index 0000000..94aca20
+ unsigned int keylen);
+int sunxi_ss_des3_setkey(struct crypto_ablkcipher *tfm, const u8 *key,
+ unsigned int keylen);
---
-1.8.5.5
-
- \ No newline at end of file
diff --git a/target/linux/sunxi/patches-3.14/300-dt-sun7i-add-pcduino3.patch b/target/linux/sunxi/patches-3.14/300-dt-sun7i-add-pcduino3.patch
index 55b86d3da9..9b844262ab 100644
--- a/target/linux/sunxi/patches-3.14/300-dt-sun7i-add-pcduino3.patch
+++ b/target/linux/sunxi/patches-3.14/300-dt-sun7i-add-pcduino3.patch
@@ -25,12 +25,10 @@ Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2 files changed, 121 insertions(+), 1 deletion(-)
create mode 100644 arch/arm/boot/dts/sun7i-a20-pcduino3.dts
-diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
-index 6967393..b1b59ea 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
-@@ -353,7 +353,8 @@ dtb-$(CONFIG_MACH_SUN7I) += \
- sun6i-a31-colombus.dtb \
+@@ -292,7 +292,8 @@ dtb-$(CONFIG_ARCH_SUNXI) += \
+ sun6i-a31-colombus.dtb \
sun7i-a20-cubieboard2.dtb \
sun7i-a20-cubietruck.dtb \
- sun7i-a20-olinuxino-micro.dtb
@@ -39,9 +37,3 @@ index 6967393..b1b59ea 100644
dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \
tegra20-iris-512.dtb \
tegra20-medcom-wide.dtb \
-diff --git a/arch/arm/boot/dts/sun7i-a20-pcduino3.dts b/arch/arm/boot/dts/sun7i-a20-pcduino3.dts
-new file mode 100644
-index 0000000..fc6a542
---
-2.0.3
-
diff --git a/target/linux/sunxi/patches-3.14/301-dt-sun7i-update-pcduino3.patch b/target/linux/sunxi/patches-3.14/301-dt-sun7i-update-pcduino3.patch
index 7a097d7dc3..7dfc95a975 100644
--- a/target/linux/sunxi/patches-3.14/301-dt-sun7i-update-pcduino3.patch
+++ b/target/linux/sunxi/patches-3.14/301-dt-sun7i-update-pcduino3.patch
@@ -1,6 +1,5 @@
-diff -ruN old/arch/arm/boot/dts/sun7i-a20-pcduino3.dts new/arch/arm/boot/dts/sun7i-a20-pcduino3.dts
---- old/arch/arm/boot/dts/sun7i-a20-pcduino3.dts 2014-08-01 21:28:06.000000000 +0200
-+++ new/arch/arm/boot/dts/sun7i-a20-pcduino3.dts 2014-08-03 16:52:51.621238166 +0200
+--- a/arch/arm/boot/dts/sun7i-a20-pcduino3.dts
++++ b/arch/arm/boot/dts/sun7i-a20-pcduino3.dts
@@ -12,8 +12,7 @@
/dts-v1/;
diff --git a/target/linux/sunxi/patches-3.14/302-dt-sun7i-add-bananapi-Makefile.patch b/target/linux/sunxi/patches-3.14/302-dt-sun7i-add-bananapi-Makefile.patch
index 272b501f44..88fad31536 100644
--- a/target/linux/sunxi/patches-3.14/302-dt-sun7i-add-bananapi-Makefile.patch
+++ b/target/linux/sunxi/patches-3.14/302-dt-sun7i-add-bananapi-Makefile.patch
@@ -1,7 +1,6 @@
-diff -ruN old/arch/arm/boot/dts/Makefile new/arch/arm/boot/dts/Makefile
---- old/arch/arm/boot/dts/Makefile 2014-08-03 22:59:45.000000000 +0200
-+++ new/arch/arm/boot/dts/Makefile 2014-08-03 23:12:30.208474257 +0200
-@@ -290,6 +290,7 @@
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -290,6 +290,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += \
sun5i-a13-olinuxino.dtb \
sun5i-a13-olinuxino-micro.dtb \
sun6i-a31-colombus.dtb \
diff --git a/target/linux/sunxi/patches-3.14/303-dt-sun7i-update-bananapi.patch b/target/linux/sunxi/patches-3.14/303-dt-sun7i-update-bananapi.patch
index 1c8f839c0f..60ea0ebe88 100644
--- a/target/linux/sunxi/patches-3.14/303-dt-sun7i-update-bananapi.patch
+++ b/target/linux/sunxi/patches-3.14/303-dt-sun7i-update-bananapi.patch
@@ -1,6 +1,5 @@
-diff -ruN old/arch/arm/boot/dts/sun7i-a20-bananapi.dts new/arch/arm/boot/dts/sun7i-a20-bananapi.dts
---- old/arch/arm/boot/dts/sun7i-a20-bananapi.dts 2014-08-01 21:28:06.000000000 +0200
-+++ new/arch/arm/boot/dts/sun7i-a20-bananapi.dts 2014-08-04 00:49:24.552906049 +0200
+--- a/arch/arm/boot/dts/sun7i-a20-bananapi.dts
++++ b/arch/arm/boot/dts/sun7i-a20-bananapi.dts
@@ -12,8 +12,7 @@
/dts-v1/;