summaryrefslogtreecommitdiff
path: root/target/arm/solidrun-imx6/patches
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2014-10-27 16:08:15 -0500
committerWaldemar Brodkorb <wbx@openadk.org>2014-10-28 02:25:20 -0500
commit309009db48cf84e4c3bf7785a788e972a519821a (patch)
treea43e39c4e0c7b54a67762554bcf6456fa7c452b2 /target/arm/solidrun-imx6/patches
parent5f591665d8c5000c85eb30737a9484655f3439c5 (diff)
update kernels
Diffstat (limited to 'target/arm/solidrun-imx6/patches')
-rw-r--r--target/arm/solidrun-imx6/patches/3.14.22/solidrun.patch (renamed from target/arm/solidrun-imx6/patches/3.14.17/solidrun.patch)10921
-rw-r--r--target/arm/solidrun-imx6/patches/3.16.4/rmk-wifi.patch569
-rw-r--r--target/arm/solidrun-imx6/patches/3.16.6/rmk.patch7601
3 files changed, 11378 insertions, 7713 deletions
diff --git a/target/arm/solidrun-imx6/patches/3.14.17/solidrun.patch b/target/arm/solidrun-imx6/patches/3.14.22/solidrun.patch
index d2eac10fb..0d9621760 100644
--- a/target/arm/solidrun-imx6/patches/3.14.17/solidrun.patch
+++ b/target/arm/solidrun-imx6/patches/3.14.22/solidrun.patch
@@ -1,6 +1,6 @@
-diff -Nur linux-3.14.17/arch/arm/boot/dts/clcd-panels.dtsi linux-imx6-3.14/arch/arm/boot/dts/clcd-panels.dtsi
---- linux-3.14.17/arch/arm/boot/dts/clcd-panels.dtsi 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/clcd-panels.dtsi 2014-09-11 18:05:52.586000344 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/clcd-panels.dtsi linux-3.14.22/arch/arm/boot/dts/clcd-panels.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/clcd-panels.dtsi 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/clcd-panels.dtsi 2014-10-22 14:55:49.026220001 -0500
@@ -0,0 +1,52 @@
+/*
+ * ARM Ltd. Versatile Express
@@ -54,20 +54,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/clcd-panels.dtsi linux-imx6-3.14/arch/
+ };
+ };
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/dra7-evm.dts linux-imx6-3.14/arch/arm/boot/dts/dra7-evm.dts
---- linux-3.14.17/arch/arm/boot/dts/dra7-evm.dts 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/dra7-evm.dts 2014-09-11 18:05:52.590000359 +0200
-@@ -182,7 +182,6 @@
- regulator-name = "ldo3";
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <1800000>;
-- regulator-always-on;
- regulator-boot-on;
- };
-
-diff -Nur linux-3.14.17/arch/arm/boot/dts/efm32gg-dk3750.dts linux-imx6-3.14/arch/arm/boot/dts/efm32gg-dk3750.dts
---- linux-3.14.17/arch/arm/boot/dts/efm32gg-dk3750.dts 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/efm32gg-dk3750.dts 2014-09-11 18:05:52.590000359 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/efm32gg-dk3750.dts linux-3.14.22/arch/arm/boot/dts/efm32gg-dk3750.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/efm32gg-dk3750.dts 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/efm32gg-dk3750.dts 2014-10-22 14:55:49.030220001 -0500
@@ -26,7 +26,7 @@
};
@@ -77,21 +66,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/efm32gg-dk3750.dts linux-imx6-3.14/arc
status = "ok";
temp@48 {
-diff -Nur linux-3.14.17/arch/arm/boot/dts/hi3620.dtsi linux-imx6-3.14/arch/arm/boot/dts/hi3620.dtsi
---- linux-3.14.17/arch/arm/boot/dts/hi3620.dtsi 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/hi3620.dtsi 2014-09-11 18:05:52.590000359 +0200
-@@ -73,7 +73,7 @@
-
- L2: l2-cache {
- compatible = "arm,pl310-cache";
-- reg = <0x100000 0x100000>;
-+ reg = <0xfc10000 0x100000>;
- interrupts = <0 15 4>;
- cache-unified;
- cache-level = <2>;
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx23.dtsi linux-imx6-3.14/arch/arm/boot/dts/imx23.dtsi
---- linux-3.14.17/arch/arm/boot/dts/imx23.dtsi 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx23.dtsi 2014-09-11 18:05:52.594000374 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx23.dtsi linux-3.14.22/arch/arm/boot/dts/imx23.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx23.dtsi 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx23.dtsi 2014-10-22 14:55:49.030220001 -0500
@@ -363,7 +363,8 @@
compatible = "fsl,imx23-lcdif";
reg = <0x80030000 2000>;
@@ -102,9 +79,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx23.dtsi linux-imx6-3.14/arch/arm/bo
status = "disabled";
};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx25.dtsi linux-imx6-3.14/arch/arm/boot/dts/imx25.dtsi
---- linux-3.14.17/arch/arm/boot/dts/imx25.dtsi 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx25.dtsi 2014-09-11 18:05:52.594000374 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx25.dtsi linux-3.14.22/arch/arm/boot/dts/imx25.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx25.dtsi 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx25.dtsi 2014-10-22 14:55:49.030220001 -0500
@@ -13,6 +13,7 @@
/ {
@@ -121,9 +98,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx25.dtsi linux-imx6-3.14/arch/arm/bo
clock-frequency = <24000000>;
};
};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx25-karo-tx25.dts linux-imx6-3.14/arch/arm/boot/dts/imx25-karo-tx25.dts
---- linux-3.14.17/arch/arm/boot/dts/imx25-karo-tx25.dts 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx25-karo-tx25.dts 2014-09-11 18:05:52.594000374 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx25-karo-tx25.dts linux-3.14.22/arch/arm/boot/dts/imx25-karo-tx25.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx25-karo-tx25.dts 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx25-karo-tx25.dts 2014-10-22 14:55:49.030220001 -0500
@@ -16,6 +16,10 @@
model = "Ka-Ro TX25";
compatible = "karo,imx25-tx25", "fsl,imx25";
@@ -135,9 +112,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx25-karo-tx25.dts linux-imx6-3.14/ar
memory {
reg = <0x80000000 0x02000000 0x90000000 0x02000000>;
};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx27-apf27.dts linux-imx6-3.14/arch/arm/boot/dts/imx27-apf27.dts
---- linux-3.14.17/arch/arm/boot/dts/imx27-apf27.dts 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx27-apf27.dts 2014-09-11 18:05:52.594000374 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx27-apf27.dts linux-3.14.22/arch/arm/boot/dts/imx27-apf27.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx27-apf27.dts 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx27-apf27.dts 2014-10-22 14:55:49.030220001 -0500
@@ -29,6 +29,7 @@
osc26m {
@@ -146,9 +123,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx27-apf27.dts linux-imx6-3.14/arch/a
clock-frequency = <0>;
};
};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx27.dtsi linux-imx6-3.14/arch/arm/boot/dts/imx27.dtsi
---- linux-3.14.17/arch/arm/boot/dts/imx27.dtsi 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx27.dtsi 2014-09-11 18:05:52.594000374 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx27.dtsi linux-3.14.22/arch/arm/boot/dts/imx27.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx27.dtsi 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx27.dtsi 2014-10-22 14:55:49.030220001 -0500
@@ -13,6 +13,7 @@
/ {
@@ -165,9 +142,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx27.dtsi linux-imx6-3.14/arch/arm/bo
clock-frequency = <26000000>;
};
};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dts linux-imx6-3.14/arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dts
---- linux-3.14.17/arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dts 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dts 2014-09-11 18:05:52.594000374 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dts linux-3.14.22/arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dts 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dts 2014-10-22 14:55:49.142220001 -0500
@@ -15,6 +15,10 @@
model = "Phytec pca100 rapid development kit";
compatible = "phytec,imx27-pca100-rdk", "phytec,imx27-pca100", "fsl,imx27";
@@ -179,9 +156,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dts linux-i
display: display {
model = "Primeview-PD050VL1";
native-mode = <&timing0>;
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx28.dtsi linux-imx6-3.14/arch/arm/boot/dts/imx28.dtsi
---- linux-3.14.17/arch/arm/boot/dts/imx28.dtsi 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx28.dtsi 2014-09-11 18:05:52.614000456 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx28.dtsi linux-3.14.22/arch/arm/boot/dts/imx28.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx28.dtsi 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx28.dtsi 2014-10-22 14:55:49.146220001 -0500
@@ -840,7 +840,8 @@
compatible = "fsl,imx28-lcdif";
reg = <0x80030000 0x2000>;
@@ -192,9 +169,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx28.dtsi linux-imx6-3.14/arch/arm/bo
dmas = <&dma_apbh 13>;
dma-names = "rx";
status = "disabled";
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx51-babbage.dts linux-imx6-3.14/arch/arm/boot/dts/imx51-babbage.dts
---- linux-3.14.17/arch/arm/boot/dts/imx51-babbage.dts 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx51-babbage.dts 2014-09-11 18:05:52.614000456 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx51-babbage.dts linux-3.14.22/arch/arm/boot/dts/imx51-babbage.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx51-babbage.dts 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx51-babbage.dts 2014-10-22 14:55:49.146220001 -0500
@@ -17,6 +17,10 @@
model = "Freescale i.MX51 Babbage Board";
compatible = "fsl,imx51-babbage", "fsl,imx51";
@@ -206,9 +183,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx51-babbage.dts linux-imx6-3.14/arch
memory {
reg = <0x90000000 0x20000000>;
};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx51.dtsi linux-imx6-3.14/arch/arm/boot/dts/imx51.dtsi
---- linux-3.14.17/arch/arm/boot/dts/imx51.dtsi 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx51.dtsi 2014-09-11 18:05:52.614000456 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx51.dtsi linux-3.14.22/arch/arm/boot/dts/imx51.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx51.dtsi 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx51.dtsi 2014-10-22 14:55:49.226220001 -0500
@@ -15,6 +15,7 @@
/ {
@@ -243,9 +220,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx51.dtsi linux-imx6-3.14/arch/arm/bo
clock-frequency = <24000000>;
};
};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx53.dtsi linux-imx6-3.14/arch/arm/boot/dts/imx53.dtsi
---- linux-3.14.17/arch/arm/boot/dts/imx53.dtsi 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx53.dtsi 2014-09-11 18:05:52.634000535 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx53.dtsi linux-3.14.22/arch/arm/boot/dts/imx53.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx53.dtsi 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx53.dtsi 2014-10-22 14:55:49.342220001 -0500
@@ -15,6 +15,7 @@
/ {
@@ -280,9 +257,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx53.dtsi linux-imx6-3.14/arch/arm/bo
clock-frequency = <24000000>;
};
};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx53-mba53.dts linux-imx6-3.14/arch/arm/boot/dts/imx53-mba53.dts
---- linux-3.14.17/arch/arm/boot/dts/imx53-mba53.dts 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx53-mba53.dts 2014-09-11 18:05:52.614000456 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx53-mba53.dts linux-3.14.22/arch/arm/boot/dts/imx53-mba53.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx53-mba53.dts 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx53-mba53.dts 2014-10-22 14:55:49.342220001 -0500
@@ -25,6 +25,10 @@
enable-active-low;
};
@@ -294,9 +271,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx53-mba53.dts linux-imx6-3.14/arch/a
backlight {
compatible = "pwm-backlight";
pwms = <&pwm2 0 50000>;
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6dl-dfi-fs700-m60.dts linux-imx6-3.14/arch/arm/boot/dts/imx6dl-dfi-fs700-m60.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6dl-dfi-fs700-m60.dts 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6dl-dfi-fs700-m60.dts 2014-09-11 18:05:52.634000535 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6dl-dfi-fs700-m60.dts linux-3.14.22/arch/arm/boot/dts/imx6dl-dfi-fs700-m60.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6dl-dfi-fs700-m60.dts 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6dl-dfi-fs700-m60.dts 2014-10-22 14:55:49.342220001 -0500
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2013 Sascha Hauer <s.hauer@pengutronix.de>
@@ -321,9 +298,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6dl-dfi-fs700-m60.dts linux-imx6-3.
+ model = "DFI FS700-M60-6DL i.MX6dl Q7 Board";
+ compatible = "dfi,fs700-m60-6dl", "dfi,fs700e-m60", "fsl,imx6dl";
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6dl.dtsi linux-imx6-3.14/arch/arm/boot/dts/imx6dl.dtsi
---- linux-3.14.17/arch/arm/boot/dts/imx6dl.dtsi 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6dl.dtsi 2014-09-11 18:05:52.634000535 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6dl.dtsi linux-3.14.22/arch/arm/boot/dts/imx6dl.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6dl.dtsi 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx6dl.dtsi 2014-10-22 14:55:49.342220001 -0500
@@ -8,6 +8,7 @@
*
*/
@@ -489,9 +466,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6dl.dtsi linux-imx6-3.14/arch/arm/b
status = "disabled";
};
};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6dl-gw51xx.dts linux-imx6-3.14/arch/arm/boot/dts/imx6dl-gw51xx.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6dl-gw51xx.dts 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6dl-gw51xx.dts 2014-09-11 18:05:52.634000535 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6dl-gw51xx.dts linux-3.14.22/arch/arm/boot/dts/imx6dl-gw51xx.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6dl-gw51xx.dts 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6dl-gw51xx.dts 2014-10-22 14:55:49.342220001 -0500
@@ -0,0 +1,19 @@
+/*
+ * Copyright 2013 Gateworks Corporation
@@ -512,9 +489,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6dl-gw51xx.dts linux-imx6-3.14/arch
+ model = "Gateworks Ventana i.MX6 DualLite GW51XX";
+ compatible = "gw,imx6dl-gw51xx", "gw,ventana", "fsl,imx6dl";
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6dl-gw52xx.dts linux-imx6-3.14/arch/arm/boot/dts/imx6dl-gw52xx.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6dl-gw52xx.dts 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6dl-gw52xx.dts 2014-09-11 18:05:52.634000535 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6dl-gw52xx.dts linux-3.14.22/arch/arm/boot/dts/imx6dl-gw52xx.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6dl-gw52xx.dts 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6dl-gw52xx.dts 2014-10-22 14:55:49.342220001 -0500
@@ -0,0 +1,19 @@
+/*
+ * Copyright 2013 Gateworks Corporation
@@ -535,9 +512,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6dl-gw52xx.dts linux-imx6-3.14/arch
+ model = "Gateworks Ventana i.MX6 DualLite GW52XX";
+ compatible = "gw,imx6dl-gw52xx", "gw,ventana", "fsl,imx6dl";
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6dl-gw53xx.dts linux-imx6-3.14/arch/arm/boot/dts/imx6dl-gw53xx.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6dl-gw53xx.dts 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6dl-gw53xx.dts 2014-09-11 18:05:52.634000535 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6dl-gw53xx.dts linux-3.14.22/arch/arm/boot/dts/imx6dl-gw53xx.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6dl-gw53xx.dts 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6dl-gw53xx.dts 2014-10-22 14:55:49.342220001 -0500
@@ -0,0 +1,19 @@
+/*
+ * Copyright 2013 Gateworks Corporation
@@ -558,9 +535,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6dl-gw53xx.dts linux-imx6-3.14/arch
+ model = "Gateworks Ventana i.MX6 DualLite GW53XX";
+ compatible = "gw,imx6dl-gw53xx", "gw,ventana", "fsl,imx6dl";
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6dl-gw54xx.dts linux-imx6-3.14/arch/arm/boot/dts/imx6dl-gw54xx.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6dl-gw54xx.dts 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6dl-gw54xx.dts 2014-09-11 18:05:52.634000535 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6dl-gw54xx.dts linux-3.14.22/arch/arm/boot/dts/imx6dl-gw54xx.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6dl-gw54xx.dts 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6dl-gw54xx.dts 2014-10-22 14:55:49.342220001 -0500
@@ -0,0 +1,19 @@
+/*
+ * Copyright 2013 Gateworks Corporation
@@ -581,9 +558,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6dl-gw54xx.dts linux-imx6-3.14/arch
+ model = "Gateworks Ventana i.MX6 DualLite GW54XX";
+ compatible = "gw,imx6dl-gw54xx", "gw,ventana", "fsl,imx6dl";
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6dl-hummingboard.dts linux-imx6-3.14/arch/arm/boot/dts/imx6dl-hummingboard.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6dl-hummingboard.dts 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6dl-hummingboard.dts 2014-09-11 18:05:52.634000535 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6dl-hummingboard.dts linux-3.14.22/arch/arm/boot/dts/imx6dl-hummingboard.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6dl-hummingboard.dts 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx6dl-hummingboard.dts 2014-10-22 14:55:49.346220001 -0500
@@ -1,163 +1,13 @@
/*
- * Copyright (C) 2013,2014 Russell King
@@ -753,9 +730,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6dl-hummingboard.dts linux-imx6-3.1
+ model = "SolidRun HummingBoard Solo/DualLite";
+ compatible = "solidrun,hummingboard/dl", "fsl,imx6dl";
};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6dl-nitrogen6x.dts linux-imx6-3.14/arch/arm/boot/dts/imx6dl-nitrogen6x.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6dl-nitrogen6x.dts 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6dl-nitrogen6x.dts 2014-09-11 18:05:52.634000535 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6dl-nitrogen6x.dts linux-3.14.22/arch/arm/boot/dts/imx6dl-nitrogen6x.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6dl-nitrogen6x.dts 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6dl-nitrogen6x.dts 2014-10-22 14:55:49.346220001 -0500
@@ -0,0 +1,21 @@
+/*
+ * Copyright 2013 Boundary Devices, Inc.
@@ -778,9 +755,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6dl-nitrogen6x.dts linux-imx6-3.14/
+ model = "Freescale i.MX6 DualLite Nitrogen6x Board";
+ compatible = "fsl,imx6dl-nitrogen6x", "fsl,imx6dl";
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6dl-phytec-pbab01.dts linux-imx6-3.14/arch/arm/boot/dts/imx6dl-phytec-pbab01.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6dl-phytec-pbab01.dts 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6dl-phytec-pbab01.dts 2014-09-11 18:05:52.634000535 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6dl-phytec-pbab01.dts linux-3.14.22/arch/arm/boot/dts/imx6dl-phytec-pbab01.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6dl-phytec-pbab01.dts 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6dl-phytec-pbab01.dts 2014-10-22 14:55:49.346220001 -0500
@@ -0,0 +1,19 @@
+/*
+ * Copyright 2013 Christian Hemp, Phytec Messtechnik GmbH
@@ -801,9 +778,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6dl-phytec-pbab01.dts linux-imx6-3.
+ model = "Phytec phyFLEX-i.MX6 DualLite/Solo Carrier-Board";
+ compatible = "phytec,imx6dl-pbab01", "phytec,imx6dl-pfla02", "fsl,imx6dl";
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6dl-phytec-pfla02.dtsi linux-imx6-3.14/arch/arm/boot/dts/imx6dl-phytec-pfla02.dtsi
---- linux-3.14.17/arch/arm/boot/dts/imx6dl-phytec-pfla02.dtsi 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6dl-phytec-pfla02.dtsi 2014-09-11 18:05:52.634000535 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6dl-phytec-pfla02.dtsi linux-3.14.22/arch/arm/boot/dts/imx6dl-phytec-pfla02.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6dl-phytec-pfla02.dtsi 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6dl-phytec-pfla02.dtsi 2014-10-22 14:55:49.346220001 -0500
@@ -0,0 +1,22 @@
+/*
+ * Copyright 2013 Christian Hemp, Phytec Messtechnik GmbH
@@ -827,9 +804,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6dl-phytec-pfla02.dtsi linux-imx6-3
+ reg = <0x10000000 0x20000000>;
+ };
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6dl-pinfunc.h linux-imx6-3.14/arch/arm/boot/dts/imx6dl-pinfunc.h
---- linux-3.14.17/arch/arm/boot/dts/imx6dl-pinfunc.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6dl-pinfunc.h 2014-09-11 18:05:52.634000535 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6dl-pinfunc.h linux-3.14.22/arch/arm/boot/dts/imx6dl-pinfunc.h
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6dl-pinfunc.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx6dl-pinfunc.h 2014-10-22 14:55:49.346220001 -0500
@@ -755,6 +755,7 @@
#define MX6QDL_PAD_GPIO_5__I2C3_SCL 0x230 0x600 0x878 0x6 0x2
#define MX6QDL_PAD_GPIO_5__ARM_EVENTI 0x230 0x600 0x000 0x7 0x0
@@ -846,9 +823,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6dl-pinfunc.h linux-imx6-3.14/arch/
#define MX6QDL_PAD_SD1_CLK__GPT_CLKIN 0x2dc 0x6c4 0x000 0x3 0x0
#define MX6QDL_PAD_SD1_CLK__GPIO1_IO20 0x2dc 0x6c4 0x000 0x5 0x0
#define MX6QDL_PAD_SD1_CMD__SD1_CMD 0x2e0 0x6c8 0x000 0x0 0x0
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6dl-sabreauto.dts linux-imx6-3.14/arch/arm/boot/dts/imx6dl-sabreauto.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6dl-sabreauto.dts 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6dl-sabreauto.dts 2014-09-11 18:05:52.634000535 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6dl-sabreauto.dts linux-3.14.22/arch/arm/boot/dts/imx6dl-sabreauto.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6dl-sabreauto.dts 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx6dl-sabreauto.dts 2014-10-22 14:55:49.498220001 -0500
@@ -15,3 +15,16 @@
model = "Freescale i.MX6 DualLite/Solo SABRE Automotive Board";
compatible = "fsl,imx6dl-sabreauto", "fsl,imx6dl";
@@ -866,9 +843,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6dl-sabreauto.dts linux-imx6-3.14/a
+&mxcfb2 {
+ status = "okay";
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6dl-sabrelite.dts linux-imx6-3.14/arch/arm/boot/dts/imx6dl-sabrelite.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6dl-sabrelite.dts 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6dl-sabrelite.dts 2014-09-11 18:05:52.634000535 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6dl-sabrelite.dts linux-3.14.22/arch/arm/boot/dts/imx6dl-sabrelite.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6dl-sabrelite.dts 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6dl-sabrelite.dts 2014-10-22 14:55:49.498220001 -0500
@@ -0,0 +1,20 @@
+/*
+ * Copyright 2011 Freescale Semiconductor, Inc.
@@ -890,9 +867,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6dl-sabrelite.dts linux-imx6-3.14/a
+ model = "Freescale i.MX6 DualLite SABRE Lite Board";
+ compatible = "fsl,imx6dl-sabrelite", "fsl,imx6dl";
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6dl-sabresd.dts linux-imx6-3.14/arch/arm/boot/dts/imx6dl-sabresd.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6dl-sabresd.dts 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6dl-sabresd.dts 2014-09-11 18:05:52.634000535 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6dl-sabresd.dts linux-3.14.22/arch/arm/boot/dts/imx6dl-sabresd.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6dl-sabresd.dts 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx6dl-sabresd.dts 2014-10-22 14:55:49.498220001 -0500
@@ -15,3 +15,20 @@
model = "Freescale i.MX6 DualLite SABRE Smart Device Board";
compatible = "fsl,imx6dl-sabresd", "fsl,imx6dl";
@@ -914,9 +891,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6dl-sabresd.dts linux-imx6-3.14/arc
+&mxcfb2 {
+ status = "okay";
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6dl-sabresd-hdcp.dts linux-imx6-3.14/arch/arm/boot/dts/imx6dl-sabresd-hdcp.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6dl-sabresd-hdcp.dts 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6dl-sabresd-hdcp.dts 2014-09-11 18:05:52.634000535 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6dl-sabresd-hdcp.dts linux-3.14.22/arch/arm/boot/dts/imx6dl-sabresd-hdcp.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6dl-sabresd-hdcp.dts 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6dl-sabresd-hdcp.dts 2014-10-22 14:55:49.498220001 -0500
@@ -0,0 +1,19 @@
+/*
+ * Copyright (C) 2013 Freescale Semiconductor, Inc.
@@ -937,9 +914,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6dl-sabresd-hdcp.dts linux-imx6-3.1
+&i2c2 {
+ status = "disable";
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-arm2.dts linux-imx6-3.14/arch/arm/boot/dts/imx6q-arm2.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6q-arm2.dts 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6q-arm2.dts 2014-09-11 18:05:52.634000535 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6q-arm2.dts linux-3.14.22/arch/arm/boot/dts/imx6q-arm2.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6q-arm2.dts 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx6q-arm2.dts 2014-10-22 14:55:49.502220001 -0500
@@ -23,14 +23,27 @@
regulators {
@@ -1150,9 +1127,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-arm2.dts linux-imx6-3.14/arch/ar
+ pinctrl-0 = <&pinctrl_uart4>;
status = "okay";
};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-arm2-hsic.dts linux-imx6-3.14/arch/arm/boot/dts/imx6q-arm2-hsic.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6q-arm2-hsic.dts 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6q-arm2-hsic.dts 2014-09-11 18:05:52.634000535 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6q-arm2-hsic.dts linux-3.14.22/arch/arm/boot/dts/imx6q-arm2-hsic.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6q-arm2-hsic.dts 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6q-arm2-hsic.dts 2014-10-22 14:55:49.502220001 -0500
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2013 Freescale Semiconductor, Inc.
@@ -1186,9 +1163,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-arm2-hsic.dts linux-imx6-3.14/ar
+ osc-clkgate-delay = <0x3>;
+ status = "okay";
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-cm-fx6.dts linux-imx6-3.14/arch/arm/boot/dts/imx6q-cm-fx6.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6q-cm-fx6.dts 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6q-cm-fx6.dts 2014-09-11 18:05:52.634000535 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6q-cm-fx6.dts linux-3.14.22/arch/arm/boot/dts/imx6q-cm-fx6.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6q-cm-fx6.dts 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6q-cm-fx6.dts 2014-10-22 14:55:49.502220001 -0500
@@ -0,0 +1,107 @@
+/*
+ * Copyright 2013 CompuLab Ltd.
@@ -1297,9 +1274,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-cm-fx6.dts linux-imx6-3.14/arch/
+ pinctrl-0 = <&pinctrl_uart4>;
+ status = "okay";
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-cubox-i.dts linux-imx6-3.14/arch/arm/boot/dts/imx6q-cubox-i.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6q-cubox-i.dts 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6q-cubox-i.dts 2014-09-11 18:05:52.634000535 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6q-cubox-i.dts linux-3.14.22/arch/arm/boot/dts/imx6q-cubox-i.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6q-cubox-i.dts 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx6q-cubox-i.dts 2014-10-22 14:55:49.502220001 -0500
@@ -13,4 +13,8 @@
&sata {
@@ -1309,9 +1286,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-cubox-i.dts linux-imx6-3.14/arch
+ fsl,transmit-atten-16ths = <9>;
+ fsl,no-spread-spectrum;
};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-dfi-fs700-m60.dts linux-imx6-3.14/arch/arm/boot/dts/imx6q-dfi-fs700-m60.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6q-dfi-fs700-m60.dts 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6q-dfi-fs700-m60.dts 2014-09-11 18:05:52.634000535 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6q-dfi-fs700-m60.dts linux-3.14.22/arch/arm/boot/dts/imx6q-dfi-fs700-m60.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6q-dfi-fs700-m60.dts 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6q-dfi-fs700-m60.dts 2014-10-22 14:55:49.502220001 -0500
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2013 Sascha Hauer <s.hauer@pengutronix.de>
@@ -1336,9 +1313,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-dfi-fs700-m60.dts linux-imx6-3.1
+ model = "DFI FS700-M60-6QD i.MX6qd Q7 Board";
+ compatible = "dfi,fs700-m60-6qd", "dfi,fs700e-m60", "fsl,imx6q";
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi linux-imx6-3.14/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi
---- linux-3.14.17/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi 2014-09-11 18:05:52.642000568 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi linux-3.14.22/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi 2014-10-22 14:55:49.502220001 -0500
@@ -5,11 +5,33 @@
#include "imx6qdl-microsom-ar8035.dtsi"
@@ -1573,9 +1550,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi linux-imx6-3.14/a
+ fsl,cpu_pdnscr_iso2sw = <0x1>;
+ fsl,cpu_pdnscr_iso = <0x1>;
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl-dfi-fs700-m60.dtsi linux-imx6-3.14/arch/arm/boot/dts/imx6qdl-dfi-fs700-m60.dtsi
---- linux-3.14.17/arch/arm/boot/dts/imx6qdl-dfi-fs700-m60.dtsi 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6qdl-dfi-fs700-m60.dtsi 2014-09-11 18:05:52.642000568 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl-dfi-fs700-m60.dtsi linux-3.14.22/arch/arm/boot/dts/imx6qdl-dfi-fs700-m60.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl-dfi-fs700-m60.dtsi 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6qdl-dfi-fs700-m60.dtsi 2014-10-22 14:55:49.502220001 -0500
@@ -0,0 +1,199 @@
+/ {
+ regulators {
@@ -1776,9 +1753,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl-dfi-fs700-m60.dtsi linux-imx6-
+ non-removable;
+ status = "okay";
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl.dtsi linux-imx6-3.14/arch/arm/boot/dts/imx6qdl.dtsi
---- linux-3.14.17/arch/arm/boot/dts/imx6qdl.dtsi 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6qdl.dtsi 2014-09-11 18:05:52.646000583 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl.dtsi linux-3.14.22/arch/arm/boot/dts/imx6qdl.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl.dtsi 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx6qdl.dtsi 2014-10-22 14:55:49.506220001 -0500
@@ -10,10 +10,16 @@
* http://www.gnu.org/copyleft/gpl.html
*/
@@ -3470,9 +3447,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl.dtsi linux-imx6-3.14/arch/arm/
};
};
};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi linux-imx6-3.14/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi
---- linux-3.14.17/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi 2014-09-11 18:05:52.642000568 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi linux-3.14.22/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi 2014-10-22 14:55:49.510220001 -0500
@@ -0,0 +1,374 @@
+/*
+ * Copyright 2013 Gateworks Corporation
@@ -3848,9 +3825,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi linux-imx6-3.14/ar
+&usbh1 {
+ status = "okay";
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi linux-imx6-3.14/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
---- linux-3.14.17/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi 2014-09-11 18:05:52.642000568 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi linux-3.14.22/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi 2014-10-22 14:55:49.510220001 -0500
@@ -0,0 +1,527 @@
+/*
+ * Copyright 2013 Gateworks Corporation
@@ -4379,9 +4356,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi linux-imx6-3.14/ar
+ vmmc-supply = <&reg_3p3v>;
+ status = "okay";
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi linux-imx6-3.14/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
---- linux-3.14.17/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi 2014-09-11 18:05:52.642000568 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi linux-3.14.22/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi 2014-10-22 14:55:49.510220001 -0500
@@ -0,0 +1,572 @@
+/*
+ * Copyright 2013 Gateworks Corporation
@@ -4955,9 +4932,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi linux-imx6-3.14/ar
+ vmmc-supply = <&reg_3p3v>;
+ status = "okay";
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi linux-imx6-3.14/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
---- linux-3.14.17/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi 2014-09-11 18:05:52.642000568 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi linux-3.14.22/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi 2014-10-22 14:55:49.510220001 -0500
@@ -0,0 +1,599 @@
+/*
+ * Copyright 2013 Gateworks Corporation
@@ -5558,10 +5535,10 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi linux-imx6-3.14/ar
+ vmmc-supply = <&reg_3p3v>;
+ status = "okay";
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl-hummingboard.dtsi linux-imx6-3.14/arch/arm/boot/dts/imx6qdl-hummingboard.dtsi
---- linux-3.14.17/arch/arm/boot/dts/imx6qdl-hummingboard.dtsi 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6qdl-hummingboard.dtsi 2014-09-11 18:05:52.642000568 +0200
-@@ -0,0 +1,339 @@
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl-hummingboard.dtsi linux-3.14.22/arch/arm/boot/dts/imx6qdl-hummingboard.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl-hummingboard.dtsi 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6qdl-hummingboard.dtsi 2014-10-22 14:55:49.514220001 -0500
+@@ -0,0 +1,341 @@
+/*
+ * Copyright (C) 2013,2014 Russell King
+ */
@@ -5717,8 +5694,8 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl-hummingboard.dtsi linux-imx6-3
+ sgtl5000: sgtl5000@0a {
+ clocks = <&clks 201>;
+ compatible = "fsl,sgtl5000";
-+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_hummingboard_sgtl5000>;
++ pinctrl-names = "default";
+ reg = <0x0a>;
+ VDDA-supply = <&reg_3p3v>;
+ VDDIO-supply = <&reg_3p3v>;
@@ -5900,10 +5877,12 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl-hummingboard.dtsi linux-imx6-3
+ >;
+ reset-gpio = <&gpio3 4 0>;
+ status = "okay";
++ no-msi;
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl-microsom-ar8035.dtsi linux-imx6-3.14/arch/arm/boot/dts/imx6qdl-microsom-ar8035.dtsi
---- linux-3.14.17/arch/arm/boot/dts/imx6qdl-microsom-ar8035.dtsi 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6qdl-microsom-ar8035.dtsi 2014-09-11 18:05:52.642000568 +0200
++
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl-microsom-ar8035.dtsi linux-3.14.22/arch/arm/boot/dts/imx6qdl-microsom-ar8035.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl-microsom-ar8035.dtsi 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx6qdl-microsom-ar8035.dtsi 2014-10-22 14:55:49.514220001 -0500
@@ -17,7 +17,7 @@
enet {
pinctrl_microsom_enet_ar8035: microsom-enet-ar8035 {
@@ -5950,9 +5929,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl-microsom-ar8035.dtsi linux-imx
/*
* As the RMII pins are also connected to RGMII
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl-microsom.dtsi linux-imx6-3.14/arch/arm/boot/dts/imx6qdl-microsom.dtsi
---- linux-3.14.17/arch/arm/boot/dts/imx6qdl-microsom.dtsi 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6qdl-microsom.dtsi 2014-09-11 18:05:52.642000568 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl-microsom.dtsi linux-3.14.22/arch/arm/boot/dts/imx6qdl-microsom.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl-microsom.dtsi 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx6qdl-microsom.dtsi 2014-10-22 14:55:49.514220001 -0500
@@ -1,9 +1,69 @@
/*
* Copyright (C) 2013,2014 Russell King
@@ -6080,9 +6059,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl-microsom.dtsi linux-imx6-3.14/
+ status = "okay";
};
+
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi linux-imx6-3.14/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi
---- linux-3.14.17/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi 2014-09-11 18:05:52.642000568 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi linux-3.14.22/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi 2014-10-22 14:55:49.514220001 -0500
@@ -0,0 +1,426 @@
+/*
+ * Copyright 2013 Boundary Devices, Inc.
@@ -6510,9 +6489,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi linux-imx6-3.1
+ vmmc-supply = <&reg_3p3v>;
+ status = "okay";
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl-phytec-pbab01.dtsi linux-imx6-3.14/arch/arm/boot/dts/imx6qdl-phytec-pbab01.dtsi
---- linux-3.14.17/arch/arm/boot/dts/imx6qdl-phytec-pbab01.dtsi 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6qdl-phytec-pbab01.dtsi 2014-09-11 18:05:52.642000568 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl-phytec-pbab01.dtsi linux-3.14.22/arch/arm/boot/dts/imx6qdl-phytec-pbab01.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl-phytec-pbab01.dtsi 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6qdl-phytec-pbab01.dtsi 2014-10-22 14:55:49.514220001 -0500
@@ -0,0 +1,98 @@
+/*
+ * Copyright 2013 Christian Hemp, Phytec Messtechnik GmbH
@@ -6612,9 +6591,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl-phytec-pbab01.dtsi linux-imx6-
+ >;
+ };
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi linux-imx6-3.14/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi
---- linux-3.14.17/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi 2014-09-11 18:05:52.642000568 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi linux-3.14.22/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi 2014-10-22 14:55:49.518220001 -0500
@@ -0,0 +1,356 @@
+/*
+ * Copyright 2013 Christian Hemp, Phytec Messtechnik GmbH
@@ -6972,9 +6951,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi linux-imx6-
+ wp-gpios = <&gpio1 29 0>;
+ status = "disabled";
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi linux-imx6-3.14/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
---- linux-3.14.17/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi 2014-09-11 18:05:52.642000568 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi linux-3.14.22/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi 2014-10-22 14:55:49.518220001 -0500
@@ -10,17 +10,146 @@
* http://www.gnu.org/copyleft/gpl.html
*/
@@ -7673,9 +7652,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi linux-imx6-3.14
+ fsl,cpu_pdnscr_iso2sw = <0x1>;
+ fsl,cpu_pdnscr_iso = <0x1>;
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi linux-imx6-3.14/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
---- linux-3.14.17/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi 2014-09-11 18:05:52.642000568 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi linux-3.14.22/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi 2014-10-22 14:55:49.518220001 -0500
@@ -0,0 +1,427 @@
+/*
+ * Copyright 2011 Freescale Semiconductor, Inc.
@@ -8104,9 +8083,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi linux-imx6-3.14
+ vmmc-supply = <&reg_3p3v>;
+ status = "okay";
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl-sabresd.dtsi linux-imx6-3.14/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
---- linux-3.14.17/arch/arm/boot/dts/imx6qdl-sabresd.dtsi 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6qdl-sabresd.dtsi 2014-09-11 18:05:52.646000583 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl-sabresd.dtsi linux-3.14.22/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl-sabresd.dtsi 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx6qdl-sabresd.dtsi 2014-10-22 14:55:49.566220001 -0500
@@ -10,16 +10,33 @@
* http://www.gnu.org/copyleft/gpl.html
*/
@@ -8799,9 +8778,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl-sabresd.dtsi linux-imx6-3.14/a
+ fsl,cpu_pdnscr_iso2sw = <0x1>;
+ fsl,cpu_pdnscr_iso = <0x1>;
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl-wandboard.dtsi linux-imx6-3.14/arch/arm/boot/dts/imx6qdl-wandboard.dtsi
---- linux-3.14.17/arch/arm/boot/dts/imx6qdl-wandboard.dtsi 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6qdl-wandboard.dtsi 2014-09-11 18:05:52.646000583 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl-wandboard.dtsi linux-3.14.22/arch/arm/boot/dts/imx6qdl-wandboard.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6qdl-wandboard.dtsi 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx6qdl-wandboard.dtsi 2014-10-22 14:55:49.570220001 -0500
@@ -12,17 +12,21 @@
/ {
regulators {
@@ -9026,9 +9005,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6qdl-wandboard.dtsi linux-imx6-3.14
cd-gpios = <&gpio3 9 0>;
status = "okay";
};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts linux-imx6-3.14/arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts 2014-09-11 18:05:52.634000535 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts linux-3.14.22/arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts 2014-10-22 14:55:49.570220001 -0500
@@ -0,0 +1,432 @@
+/*
+ * Copyright 2013 Data Modul AG
@@ -9462,9 +9441,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts linux-imx6-3.14/
+ bus-width = <8>;
+ status = "okay";
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q.dtsi linux-imx6-3.14/arch/arm/boot/dts/imx6q.dtsi
---- linux-3.14.17/arch/arm/boot/dts/imx6q.dtsi 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6q.dtsi 2014-09-11 18:05:52.642000568 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6q.dtsi linux-3.14.22/arch/arm/boot/dts/imx6q.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6q.dtsi 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx6q.dtsi 2014-10-22 14:55:49.570220001 -0500
@@ -8,10 +8,16 @@
*
*/
@@ -9661,9 +9640,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q.dtsi linux-imx6-3.14/arch/arm/bo
- crtcs = <&ipu1 0>, <&ipu1 1>, <&ipu2 0>, <&ipu2 1>;
- };
-};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-gk802.dts linux-imx6-3.14/arch/arm/boot/dts/imx6q-gk802.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6q-gk802.dts 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6q-gk802.dts 2014-09-11 18:05:52.634000535 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6q-gk802.dts linux-3.14.22/arch/arm/boot/dts/imx6q-gk802.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6q-gk802.dts 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6q-gk802.dts 2014-10-22 14:55:49.570220001 -0500
@@ -0,0 +1,229 @@
+/*
+ * Copyright (C) 2013 Philipp Zabel
@@ -9894,9 +9873,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-gk802.dts linux-imx6-3.14/arch/a
+ vmmc-supply = <&reg_3p3v>;
+ status = "okay";
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-gw51xx.dts linux-imx6-3.14/arch/arm/boot/dts/imx6q-gw51xx.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6q-gw51xx.dts 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6q-gw51xx.dts 2014-09-11 18:05:52.634000535 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6q-gw51xx.dts linux-3.14.22/arch/arm/boot/dts/imx6q-gw51xx.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6q-gw51xx.dts 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6q-gw51xx.dts 2014-10-22 14:55:49.570220001 -0500
@@ -0,0 +1,19 @@
+/*
+ * Copyright 2013 Gateworks Corporation
@@ -9917,9 +9896,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-gw51xx.dts linux-imx6-3.14/arch/
+ model = "Gateworks Ventana i.MX6 Quad GW51XX";
+ compatible = "gw,imx6q-gw51xx", "gw,ventana", "fsl,imx6q";
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-gw52xx.dts linux-imx6-3.14/arch/arm/boot/dts/imx6q-gw52xx.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6q-gw52xx.dts 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6q-gw52xx.dts 2014-09-11 18:05:52.634000535 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6q-gw52xx.dts linux-3.14.22/arch/arm/boot/dts/imx6q-gw52xx.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6q-gw52xx.dts 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6q-gw52xx.dts 2014-10-22 14:55:49.570220001 -0500
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2013 Gateworks Corporation
@@ -9944,9 +9923,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-gw52xx.dts linux-imx6-3.14/arch/
+&sata {
+ status = "okay";
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-gw53xx.dts linux-imx6-3.14/arch/arm/boot/dts/imx6q-gw53xx.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6q-gw53xx.dts 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6q-gw53xx.dts 2014-09-11 18:05:52.642000568 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6q-gw53xx.dts linux-3.14.22/arch/arm/boot/dts/imx6q-gw53xx.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6q-gw53xx.dts 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6q-gw53xx.dts 2014-10-22 14:55:49.570220001 -0500
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2013 Gateworks Corporation
@@ -9971,9 +9950,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-gw53xx.dts linux-imx6-3.14/arch/
+&sata {
+ status = "okay";
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-gw5400-a.dts linux-imx6-3.14/arch/arm/boot/dts/imx6q-gw5400-a.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6q-gw5400-a.dts 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6q-gw5400-a.dts 2014-09-11 18:05:52.642000568 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6q-gw5400-a.dts linux-3.14.22/arch/arm/boot/dts/imx6q-gw5400-a.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6q-gw5400-a.dts 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6q-gw5400-a.dts 2014-10-22 14:55:49.574220001 -0500
@@ -0,0 +1,543 @@
+/*
+ * Copyright 2013 Gateworks Corporation
@@ -10518,9 +10497,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-gw5400-a.dts linux-imx6-3.14/arc
+ vmmc-supply = <&reg_3p3v>;
+ status = "okay";
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-gw54xx.dts linux-imx6-3.14/arch/arm/boot/dts/imx6q-gw54xx.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6q-gw54xx.dts 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6q-gw54xx.dts 2014-09-11 18:05:52.642000568 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6q-gw54xx.dts linux-3.14.22/arch/arm/boot/dts/imx6q-gw54xx.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6q-gw54xx.dts 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6q-gw54xx.dts 2014-10-22 14:55:49.574220001 -0500
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2013 Gateworks Corporation
@@ -10545,9 +10524,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-gw54xx.dts linux-imx6-3.14/arch/
+&sata {
+ status = "okay";
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-hummingboard.dts linux-imx6-3.14/arch/arm/boot/dts/imx6q-hummingboard.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6q-hummingboard.dts 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6q-hummingboard.dts 2014-09-11 18:05:52.642000568 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6q-hummingboard.dts linux-3.14.22/arch/arm/boot/dts/imx6q-hummingboard.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6q-hummingboard.dts 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6q-hummingboard.dts 2014-10-22 14:55:49.574220001 -0500
@@ -0,0 +1,21 @@
+/*
+ * Copyright (C) 2014 Rabeeh Khoury (rabeeh@solid-run.com)
@@ -10570,9 +10549,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-hummingboard.dts linux-imx6-3.14
+ fsl,transmit-atten-16ths = <9>;
+ fsl,no-spread-spectrum;
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-nitrogen6x.dts linux-imx6-3.14/arch/arm/boot/dts/imx6q-nitrogen6x.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6q-nitrogen6x.dts 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6q-nitrogen6x.dts 2014-09-11 18:05:52.642000568 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6q-nitrogen6x.dts linux-3.14.22/arch/arm/boot/dts/imx6q-nitrogen6x.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6q-nitrogen6x.dts 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6q-nitrogen6x.dts 2014-10-22 14:55:49.574220001 -0500
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2013 Boundary Devices, Inc.
@@ -10599,9 +10578,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-nitrogen6x.dts linux-imx6-3.14/a
+&sata {
+ status = "okay";
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-phytec-pbab01.dts linux-imx6-3.14/arch/arm/boot/dts/imx6q-phytec-pbab01.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6q-phytec-pbab01.dts 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6q-phytec-pbab01.dts 2014-09-11 18:05:52.642000568 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6q-phytec-pbab01.dts linux-3.14.22/arch/arm/boot/dts/imx6q-phytec-pbab01.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6q-phytec-pbab01.dts 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx6q-phytec-pbab01.dts 2014-10-22 14:55:49.574220001 -0500
@@ -11,24 +11,17 @@
/dts-v1/;
@@ -10633,9 +10612,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-phytec-pbab01.dts linux-imx6-3.1
+&sata {
+ status = "okay";
};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-phytec-pfla02.dtsi linux-imx6-3.14/arch/arm/boot/dts/imx6q-phytec-pfla02.dtsi
---- linux-3.14.17/arch/arm/boot/dts/imx6q-phytec-pfla02.dtsi 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6q-phytec-pfla02.dtsi 2014-09-11 18:05:52.642000568 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6q-phytec-pfla02.dtsi linux-3.14.22/arch/arm/boot/dts/imx6q-phytec-pfla02.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6q-phytec-pfla02.dtsi 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx6q-phytec-pfla02.dtsi 2014-10-22 14:55:49.574220001 -0500
@@ -10,171 +10,13 @@
*/
@@ -10810,9 +10789,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-phytec-pfla02.dtsi linux-imx6-3.
- wp-gpios = <&gpio1 29 0>;
- status = "disabled";
-};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-pinfunc.h linux-imx6-3.14/arch/arm/boot/dts/imx6q-pinfunc.h
---- linux-3.14.17/arch/arm/boot/dts/imx6q-pinfunc.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6q-pinfunc.h 2014-09-11 18:05:52.642000568 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6q-pinfunc.h linux-3.14.22/arch/arm/boot/dts/imx6q-pinfunc.h
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6q-pinfunc.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx6q-pinfunc.h 2014-10-22 14:55:49.578220001 -0500
@@ -673,6 +673,7 @@
#define MX6QDL_PAD_GPIO_3__USB_H1_OC 0x22c 0x5fc 0x948 0x6 0x1
#define MX6QDL_PAD_GPIO_3__MLB_CLK 0x22c 0x5fc 0x900 0x7 0x1
@@ -10829,9 +10808,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-pinfunc.h linux-imx6-3.14/arch/a
#define MX6QDL_PAD_SD1_CLK__GPT_CLKIN 0x350 0x738 0x000 0x3 0x0
#define MX6QDL_PAD_SD1_CLK__GPIO1_IO20 0x350 0x738 0x000 0x5 0x0
#define MX6QDL_PAD_SD2_CLK__SD2_CLK 0x354 0x73c 0x000 0x0 0x0
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-sabreauto.dts linux-imx6-3.14/arch/arm/boot/dts/imx6q-sabreauto.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6q-sabreauto.dts 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6q-sabreauto.dts 2014-09-11 18:05:52.642000568 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6q-sabreauto.dts linux-3.14.22/arch/arm/boot/dts/imx6q-sabreauto.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6q-sabreauto.dts 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx6q-sabreauto.dts 2014-10-22 14:55:49.578220001 -0500
@@ -20,6 +20,22 @@
compatible = "fsl,imx6q-sabreauto", "fsl,imx6q";
};
@@ -10855,9 +10834,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-sabreauto.dts linux-imx6-3.14/ar
&sata {
status = "okay";
};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-sabrelite.dts linux-imx6-3.14/arch/arm/boot/dts/imx6q-sabrelite.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6q-sabrelite.dts 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6q-sabrelite.dts 2014-09-11 18:05:52.642000568 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6q-sabrelite.dts linux-3.14.22/arch/arm/boot/dts/imx6q-sabrelite.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6q-sabrelite.dts 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx6q-sabrelite.dts 2014-10-22 14:55:49.578220001 -0500
@@ -12,189 +12,13 @@
/dts-v1/;
@@ -11049,9 +11028,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-sabrelite.dts linux-imx6-3.14/ar
- vmmc-supply = <&reg_3p3v>;
- status = "okay";
-};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-sabresd.dts linux-imx6-3.14/arch/arm/boot/dts/imx6q-sabresd.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6q-sabresd.dts 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6q-sabresd.dts 2014-09-11 18:05:52.642000568 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6q-sabresd.dts linux-3.14.22/arch/arm/boot/dts/imx6q-sabresd.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6q-sabresd.dts 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx6q-sabresd.dts 2014-10-22 14:55:49.578220001 -0500
@@ -23,3 +23,19 @@
&sata {
status = "okay";
@@ -11072,9 +11051,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-sabresd.dts linux-imx6-3.14/arch
+&mxcfb4 {
+ status = "okay";
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-sabresd-hdcp.dts linux-imx6-3.14/arch/arm/boot/dts/imx6q-sabresd-hdcp.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6q-sabresd-hdcp.dts 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6q-sabresd-hdcp.dts 2014-09-11 18:05:52.642000568 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6q-sabresd-hdcp.dts linux-3.14.22/arch/arm/boot/dts/imx6q-sabresd-hdcp.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6q-sabresd-hdcp.dts 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6q-sabresd-hdcp.dts 2014-10-22 14:55:49.578220001 -0500
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2012-2013 Freescale Semiconductor, Inc.
@@ -11099,9 +11078,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-sabresd-hdcp.dts linux-imx6-3.14
+&i2c2 {
+ status = "disable";
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-sbc6x.dts linux-imx6-3.14/arch/arm/boot/dts/imx6q-sbc6x.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6q-sbc6x.dts 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6q-sbc6x.dts 2014-09-11 18:05:52.642000568 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6q-sbc6x.dts linux-3.14.22/arch/arm/boot/dts/imx6q-sbc6x.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6q-sbc6x.dts 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx6q-sbc6x.dts 2014-10-22 14:55:49.578220001 -0500
@@ -17,28 +17,78 @@
};
};
@@ -11185,9 +11164,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-sbc6x.dts linux-imx6-3.14/arch/a
+ pinctrl-0 = <&pinctrl_usdhc3>;
status = "okay";
};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-udoo.dts linux-imx6-3.14/arch/arm/boot/dts/imx6q-udoo.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6q-udoo.dts 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6q-udoo.dts 2014-09-11 18:05:52.642000568 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6q-udoo.dts linux-3.14.22/arch/arm/boot/dts/imx6q-udoo.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6q-udoo.dts 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx6q-udoo.dts 2014-10-22 14:55:49.578220001 -0500
@@ -16,24 +16,78 @@
model = "Udoo i.MX6 Quad Board";
compatible = "udoo,imx6q-udoo", "fsl,imx6q";
@@ -11269,9 +11248,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6q-udoo.dts linux-imx6-3.14/arch/ar
non-removable;
status = "okay";
};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6sl.dtsi linux-imx6-3.14/arch/arm/boot/dts/imx6sl.dtsi
---- linux-3.14.17/arch/arm/boot/dts/imx6sl.dtsi 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6sl.dtsi 2014-09-11 18:05:52.646000583 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6sl.dtsi linux-3.14.22/arch/arm/boot/dts/imx6sl.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6sl.dtsi 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx6sl.dtsi 2014-10-22 14:55:49.582220001 -0500
@@ -7,12 +7,14 @@
*
*/
@@ -12308,9 +12287,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6sl.dtsi linux-imx6-3.14/arch/arm/b
};
};
};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6sl-evk-csi.dts linux-imx6-3.14/arch/arm/boot/dts/imx6sl-evk-csi.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6sl-evk-csi.dts 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6sl-evk-csi.dts 2014-09-11 18:05:52.646000583 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6sl-evk-csi.dts linux-3.14.22/arch/arm/boot/dts/imx6sl-evk-csi.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6sl-evk-csi.dts 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/imx6sl-evk-csi.dts 2014-10-22 14:55:49.682220001 -0500
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2013 Freescale Semiconductor, Inc.
@@ -12339,9 +12318,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6sl-evk-csi.dts linux-imx6-3.14/arc
+&epdc {
+ status = "disabled";
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6sl-evk.dts linux-imx6-3.14/arch/arm/boot/dts/imx6sl-evk.dts
---- linux-3.14.17/arch/arm/boot/dts/imx6sl-evk.dts 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/imx6sl-evk.dts 2014-09-11 18:05:52.646000583 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/imx6sl-evk.dts linux-3.14.22/arch/arm/boot/dts/imx6sl-evk.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/imx6sl-evk.dts 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/imx6sl-evk.dts 2014-10-22 14:55:49.682220001 -0500
@@ -8,6 +8,8 @@
/dts-v1/;
@@ -13103,9 +13082,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/imx6sl-evk.dts linux-imx6-3.14/arch/ar
+&gpu {
+ pu-supply = <&pu_dummy>; /* ldo-bypass:use pu_dummy if VDDSOC share with VDDPU */
+};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/Makefile linux-imx6-3.14/arch/arm/boot/dts/Makefile
---- linux-3.14.17/arch/arm/boot/dts/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/Makefile 2014-09-11 18:05:52.582000327 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/Makefile linux-3.14.22/arch/arm/boot/dts/Makefile
+--- linux-3.14.22.orig/arch/arm/boot/dts/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/Makefile 2014-10-22 14:55:49.682220001 -0500
@@ -154,16 +154,37 @@
imx53-qsb.dtb \
imx53-smd.dtb \
@@ -13160,9 +13139,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/Makefile linux-imx6-3.14/arch/arm/boot
dtb-$(CONFIG_ARCH_VIRT) += xenvm-4.2.dtb
dtb-$(CONFIG_ARCH_VT8500) += vt8500-bv07.dtb \
wm8505-ref.dtb \
-diff -Nur linux-3.14.17/arch/arm/boot/dts/marco.dtsi linux-imx6-3.14/arch/arm/boot/dts/marco.dtsi
---- linux-3.14.17/arch/arm/boot/dts/marco.dtsi 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/marco.dtsi 2014-09-11 18:05:52.662000648 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/marco.dtsi linux-3.14.22/arch/arm/boot/dts/marco.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/marco.dtsi 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/marco.dtsi 2014-10-22 14:55:49.682220001 -0500
@@ -36,7 +36,7 @@
ranges = <0x40000000 0x40000000 0xa0000000>;
@@ -13172,9 +13151,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/marco.dtsi linux-imx6-3.14/arch/arm/bo
reg = <0xc0030000 0x1000>;
interrupts = <0 59 0>;
arm,tag-latency = <1 1 1>;
-diff -Nur linux-3.14.17/arch/arm/boot/dts/prima2.dtsi linux-imx6-3.14/arch/arm/boot/dts/prima2.dtsi
---- linux-3.14.17/arch/arm/boot/dts/prima2.dtsi 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/prima2.dtsi 2014-09-11 18:05:52.686000742 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/prima2.dtsi linux-3.14.22/arch/arm/boot/dts/prima2.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/prima2.dtsi 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/prima2.dtsi 2014-10-22 14:55:49.686220001 -0500
@@ -48,7 +48,7 @@
ranges = <0x40000000 0x40000000 0x80000000>;
@@ -13184,9 +13163,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/prima2.dtsi linux-imx6-3.14/arch/arm/b
reg = <0x80040000 0x1000>;
interrupts = <59>;
arm,tag-latency = <1 1 1>;
-diff -Nur linux-3.14.17/arch/arm/boot/dts/rtsm_ve-cortex_a15x1.dts linux-imx6-3.14/arch/arm/boot/dts/rtsm_ve-cortex_a15x1.dts
---- linux-3.14.17/arch/arm/boot/dts/rtsm_ve-cortex_a15x1.dts 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/rtsm_ve-cortex_a15x1.dts 2014-09-11 18:05:52.686000742 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/rtsm_ve-cortex_a15x1.dts linux-3.14.22/arch/arm/boot/dts/rtsm_ve-cortex_a15x1.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/rtsm_ve-cortex_a15x1.dts 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/rtsm_ve-cortex_a15x1.dts 2014-10-22 14:55:49.686220001 -0500
@@ -0,0 +1,159 @@
+/*
+ * ARM Ltd. Fast Models
@@ -13347,9 +13326,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/rtsm_ve-cortex_a15x1.dts linux-imx6-3.
+};
+
+/include/ "clcd-panels.dtsi"
-diff -Nur linux-3.14.17/arch/arm/boot/dts/rtsm_ve-cortex_a15x2.dts linux-imx6-3.14/arch/arm/boot/dts/rtsm_ve-cortex_a15x2.dts
---- linux-3.14.17/arch/arm/boot/dts/rtsm_ve-cortex_a15x2.dts 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/rtsm_ve-cortex_a15x2.dts 2014-09-11 18:05:52.686000742 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/rtsm_ve-cortex_a15x2.dts linux-3.14.22/arch/arm/boot/dts/rtsm_ve-cortex_a15x2.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/rtsm_ve-cortex_a15x2.dts 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/rtsm_ve-cortex_a15x2.dts 2014-10-22 14:55:49.686220001 -0500
@@ -0,0 +1,165 @@
+/*
+ * ARM Ltd. Fast Models
@@ -13516,9 +13495,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/rtsm_ve-cortex_a15x2.dts linux-imx6-3.
+};
+
+/include/ "clcd-panels.dtsi"
-diff -Nur linux-3.14.17/arch/arm/boot/dts/rtsm_ve-cortex_a15x4.dts linux-imx6-3.14/arch/arm/boot/dts/rtsm_ve-cortex_a15x4.dts
---- linux-3.14.17/arch/arm/boot/dts/rtsm_ve-cortex_a15x4.dts 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/rtsm_ve-cortex_a15x4.dts 2014-09-11 18:05:52.686000742 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/rtsm_ve-cortex_a15x4.dts linux-3.14.22/arch/arm/boot/dts/rtsm_ve-cortex_a15x4.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/rtsm_ve-cortex_a15x4.dts 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/rtsm_ve-cortex_a15x4.dts 2014-10-22 14:55:49.686220001 -0500
@@ -0,0 +1,177 @@
+/*
+ * ARM Ltd. Fast Models
@@ -13697,9 +13676,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/rtsm_ve-cortex_a15x4.dts linux-imx6-3.
+};
+
+/include/ "clcd-panels.dtsi"
-diff -Nur linux-3.14.17/arch/arm/boot/dts/rtsm_ve-cortex_a9x2.dts linux-imx6-3.14/arch/arm/boot/dts/rtsm_ve-cortex_a9x2.dts
---- linux-3.14.17/arch/arm/boot/dts/rtsm_ve-cortex_a9x2.dts 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/rtsm_ve-cortex_a9x2.dts 2014-09-11 18:05:52.686000742 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/rtsm_ve-cortex_a9x2.dts linux-3.14.22/arch/arm/boot/dts/rtsm_ve-cortex_a9x2.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/rtsm_ve-cortex_a9x2.dts 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/rtsm_ve-cortex_a9x2.dts 2014-10-22 14:55:49.686220001 -0500
@@ -0,0 +1,171 @@
+/*
+ * ARM Ltd. Fast Models
@@ -13872,9 +13851,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/rtsm_ve-cortex_a9x2.dts linux-imx6-3.1
+};
+
+/include/ "clcd-panels.dtsi"
-diff -Nur linux-3.14.17/arch/arm/boot/dts/rtsm_ve-cortex_a9x4.dts linux-imx6-3.14/arch/arm/boot/dts/rtsm_ve-cortex_a9x4.dts
---- linux-3.14.17/arch/arm/boot/dts/rtsm_ve-cortex_a9x4.dts 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/rtsm_ve-cortex_a9x4.dts 2014-09-11 18:05:52.686000742 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/rtsm_ve-cortex_a9x4.dts linux-3.14.22/arch/arm/boot/dts/rtsm_ve-cortex_a9x4.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/rtsm_ve-cortex_a9x4.dts 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/rtsm_ve-cortex_a9x4.dts 2014-10-22 14:55:49.686220001 -0500
@@ -0,0 +1,183 @@
+/*
+ * ARM Ltd. Fast Models
@@ -14059,9 +14038,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/rtsm_ve-cortex_a9x4.dts linux-imx6-3.1
+};
+
+/include/ "clcd-panels.dtsi"
-diff -Nur linux-3.14.17/arch/arm/boot/dts/rtsm_ve-motherboard.dtsi linux-imx6-3.14/arch/arm/boot/dts/rtsm_ve-motherboard.dtsi
---- linux-3.14.17/arch/arm/boot/dts/rtsm_ve-motherboard.dtsi 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/rtsm_ve-motherboard.dtsi 2014-09-11 18:05:52.686000742 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/rtsm_ve-motherboard.dtsi linux-3.14.22/arch/arm/boot/dts/rtsm_ve-motherboard.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/rtsm_ve-motherboard.dtsi 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/rtsm_ve-motherboard.dtsi 2014-10-22 14:55:49.686220001 -0500
@@ -0,0 +1,231 @@
+/*
+ * ARM Ltd. Fast Models
@@ -14294,9 +14273,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/rtsm_ve-motherboard.dtsi linux-imx6-3.
+ };
+ };
+ };
-diff -Nur linux-3.14.17/arch/arm/boot/dts/rtsm_ve-v2p-ca15x1-ca7x1.dts linux-imx6-3.14/arch/arm/boot/dts/rtsm_ve-v2p-ca15x1-ca7x1.dts
---- linux-3.14.17/arch/arm/boot/dts/rtsm_ve-v2p-ca15x1-ca7x1.dts 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/rtsm_ve-v2p-ca15x1-ca7x1.dts 2014-09-11 18:05:52.686000742 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/rtsm_ve-v2p-ca15x1-ca7x1.dts linux-3.14.22/arch/arm/boot/dts/rtsm_ve-v2p-ca15x1-ca7x1.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/rtsm_ve-v2p-ca15x1-ca7x1.dts 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/rtsm_ve-v2p-ca15x1-ca7x1.dts 2014-10-22 14:55:49.686220001 -0500
@@ -0,0 +1,233 @@
+/*
+ * ARM Ltd. Fast Models
@@ -14531,9 +14510,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/rtsm_ve-v2p-ca15x1-ca7x1.dts linux-imx
+};
+
+/include/ "clcd-panels.dtsi"
-diff -Nur linux-3.14.17/arch/arm/boot/dts/rtsm_ve-v2p-ca15x4-ca7x4.dts linux-imx6-3.14/arch/arm/boot/dts/rtsm_ve-v2p-ca15x4-ca7x4.dts
---- linux-3.14.17/arch/arm/boot/dts/rtsm_ve-v2p-ca15x4-ca7x4.dts 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/boot/dts/rtsm_ve-v2p-ca15x4-ca7x4.dts 2014-09-11 18:05:52.686000742 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/rtsm_ve-v2p-ca15x4-ca7x4.dts linux-3.14.22/arch/arm/boot/dts/rtsm_ve-v2p-ca15x4-ca7x4.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/rtsm_ve-v2p-ca15x4-ca7x4.dts 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/boot/dts/rtsm_ve-v2p-ca15x4-ca7x4.dts 2014-10-22 14:55:49.690220001 -0500
@@ -0,0 +1,317 @@
+/*
+ * ARM Ltd. Fast Models
@@ -14852,9 +14831,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/rtsm_ve-v2p-ca15x4-ca7x4.dts linux-imx
+};
+
+/include/ "clcd-panels.dtsi"
-diff -Nur linux-3.14.17/arch/arm/boot/dts/vexpress-v2m.dtsi linux-imx6-3.14/arch/arm/boot/dts/vexpress-v2m.dtsi
---- linux-3.14.17/arch/arm/boot/dts/vexpress-v2m.dtsi 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/vexpress-v2m.dtsi 2014-09-11 18:05:52.742000967 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/vexpress-v2m.dtsi linux-3.14.22/arch/arm/boot/dts/vexpress-v2m.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/vexpress-v2m.dtsi 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/vexpress-v2m.dtsi 2014-10-22 14:55:49.690220001 -0500
@@ -227,6 +227,7 @@
};
@@ -14863,9 +14842,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/vexpress-v2m.dtsi linux-imx6-3.14/arch
compatible = "arm,pl111", "arm,primecell";
reg = <0x1f000 0x1000>;
interrupts = <14>;
-diff -Nur linux-3.14.17/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi linux-imx6-3.14/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi
---- linux-3.14.17/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi 2014-09-11 18:05:52.742000967 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi linux-3.14.22/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi 2014-10-22 14:55:49.690220001 -0500
@@ -228,6 +228,7 @@
};
@@ -14874,9 +14853,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi linux-imx6-3.14/
compatible = "arm,pl111", "arm,primecell";
reg = <0x1f0000 0x1000>;
interrupts = <14>;
-diff -Nur linux-3.14.17/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts linux-imx6-3.14/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts
---- linux-3.14.17/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts 2014-09-11 18:05:52.742000967 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts linux-3.14.22/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts 2014-10-22 14:55:49.690220001 -0500
@@ -9,6 +9,8 @@
/dts-v1/;
@@ -15072,9 +15051,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts linux-imx6-3.
dcc {
compatible = "arm,vexpress,config-bus";
arm,vexpress,config-bridge = <&v2m_sysreg>;
-diff -Nur linux-3.14.17/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts linux-imx6-3.14/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts
---- linux-3.14.17/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts 2014-09-11 18:05:52.742000967 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts linux-3.14.22/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts 2014-10-22 14:55:49.690220001 -0500
@@ -9,6 +9,8 @@
/dts-v1/;
@@ -15093,9 +15072,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts linux-imx6-3
};
memory-controller@2b0a0000 {
-diff -Nur linux-3.14.17/arch/arm/boot/dts/vexpress-v2p-ca5s.dts linux-imx6-3.14/arch/arm/boot/dts/vexpress-v2p-ca5s.dts
---- linux-3.14.17/arch/arm/boot/dts/vexpress-v2p-ca5s.dts 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/vexpress-v2p-ca5s.dts 2014-09-11 18:05:52.742000967 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/vexpress-v2p-ca5s.dts linux-3.14.22/arch/arm/boot/dts/vexpress-v2p-ca5s.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/vexpress-v2p-ca5s.dts 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/vexpress-v2p-ca5s.dts 2014-10-22 14:55:49.690220001 -0500
@@ -9,6 +9,8 @@
/dts-v1/;
@@ -15114,9 +15093,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/vexpress-v2p-ca5s.dts linux-imx6-3.14/
};
memory-controller@2a150000 {
-diff -Nur linux-3.14.17/arch/arm/boot/dts/vexpress-v2p-ca9.dts linux-imx6-3.14/arch/arm/boot/dts/vexpress-v2p-ca9.dts
---- linux-3.14.17/arch/arm/boot/dts/vexpress-v2p-ca9.dts 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/vexpress-v2p-ca9.dts 2014-09-11 18:05:52.746000984 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/vexpress-v2p-ca9.dts linux-3.14.22/arch/arm/boot/dts/vexpress-v2p-ca9.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/vexpress-v2p-ca9.dts 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/vexpress-v2p-ca9.dts 2014-10-22 14:55:49.690220001 -0500
@@ -9,6 +9,8 @@
/dts-v1/;
@@ -15135,9 +15114,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/vexpress-v2p-ca9.dts linux-imx6-3.14/a
};
memory-controller@100e0000 {
-diff -Nur linux-3.14.17/arch/arm/boot/dts/vf610.dtsi linux-imx6-3.14/arch/arm/boot/dts/vf610.dtsi
---- linux-3.14.17/arch/arm/boot/dts/vf610.dtsi 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/vf610.dtsi 2014-09-11 18:05:52.746000984 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/vf610.dtsi linux-3.14.22/arch/arm/boot/dts/vf610.dtsi
+--- linux-3.14.22.orig/arch/arm/boot/dts/vf610.dtsi 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/vf610.dtsi 2014-10-22 14:55:49.694220001 -0500
@@ -44,11 +44,13 @@
sxosc {
@@ -15152,9 +15131,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/vf610.dtsi linux-imx6-3.14/arch/arm/bo
clock-frequency = <24000000>;
};
};
-diff -Nur linux-3.14.17/arch/arm/boot/dts/vf610-twr.dts linux-imx6-3.14/arch/arm/boot/dts/vf610-twr.dts
---- linux-3.14.17/arch/arm/boot/dts/vf610-twr.dts 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/boot/dts/vf610-twr.dts 2014-09-11 18:05:52.746000984 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/boot/dts/vf610-twr.dts linux-3.14.22/arch/arm/boot/dts/vf610-twr.dts
+--- linux-3.14.22.orig/arch/arm/boot/dts/vf610-twr.dts 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/boot/dts/vf610-twr.dts 2014-10-22 14:55:49.694220001 -0500
@@ -25,11 +25,13 @@
clocks {
audio_ext {
@@ -15169,9 +15148,9 @@ diff -Nur linux-3.14.17/arch/arm/boot/dts/vf610-twr.dts linux-imx6-3.14/arch/arm
clock-frequency = <50000000>;
};
};
-diff -Nur linux-3.14.17/arch/arm/common/Makefile linux-imx6-3.14/arch/arm/common/Makefile
---- linux-3.14.17/arch/arm/common/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/common/Makefile 2014-09-11 18:05:52.754001015 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/common/Makefile linux-3.14.22/arch/arm/common/Makefile
+--- linux-3.14.22.orig/arch/arm/common/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/common/Makefile 2014-10-22 14:55:49.694220001 -0500
@@ -13,6 +13,7 @@
obj-$(CONFIG_PCI_HOST_ITE8152) += it8152.o
obj-$(CONFIG_ARM_TIMER_SP804) += timer-sp.o
@@ -15180,9 +15159,9 @@ diff -Nur linux-3.14.17/arch/arm/common/Makefile linux-imx6-3.14/arch/arm/common
AFLAGS_mcpm_head.o := -march=armv7-a
AFLAGS_vlock.o := -march=armv7-a
obj-$(CONFIG_TI_PRIV_EDMA) += edma.o
-diff -Nur linux-3.14.17/arch/arm/configs/imx_v6_v7_defconfig linux-imx6-3.14/arch/arm/configs/imx_v6_v7_defconfig
---- linux-3.14.17/arch/arm/configs/imx_v6_v7_defconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/configs/imx_v6_v7_defconfig 2014-09-11 18:05:52.798001191 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/configs/imx_v6_v7_defconfig linux-3.14.22/arch/arm/configs/imx_v6_v7_defconfig
+--- linux-3.14.22.orig/arch/arm/configs/imx_v6_v7_defconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/configs/imx_v6_v7_defconfig 2014-10-22 14:55:49.694220001 -0500
@@ -45,6 +45,9 @@
CONFIG_AEABI=y
CONFIG_HIGHMEM=y
@@ -15297,9 +15276,9 @@ diff -Nur linux-3.14.17/arch/arm/configs/imx_v6_v7_defconfig linux-imx6-3.14/arc
CONFIG_COMMON_CLK_DEBUG=y
# CONFIG_IOMMU_SUPPORT is not set
CONFIG_PWM=y
-diff -Nur linux-3.14.17/arch/arm/configs/imx_v7_cbi_hb_base_defconfig linux-imx6-3.14/arch/arm/configs/imx_v7_cbi_hb_base_defconfig
---- linux-3.14.17/arch/arm/configs/imx_v7_cbi_hb_base_defconfig 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/configs/imx_v7_cbi_hb_base_defconfig 2014-09-11 18:05:52.798001191 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/configs/imx_v7_cbi_hb_base_defconfig linux-3.14.22/arch/arm/configs/imx_v7_cbi_hb_base_defconfig
+--- linux-3.14.22.orig/arch/arm/configs/imx_v7_cbi_hb_base_defconfig 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/configs/imx_v7_cbi_hb_base_defconfig 2014-10-22 14:55:49.694220001 -0500
@@ -0,0 +1,367 @@
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_KERNEL_LZO=y
@@ -15668,9 +15647,9 @@ diff -Nur linux-3.14.17/arch/arm/configs/imx_v7_cbi_hb_base_defconfig linux-imx6
+CONFIG_IR_IGUANA=m
+CONFIG_IR_TTUSBIR=m
+CONFIG_IR_GPIO_CIR=m
-diff -Nur linux-3.14.17/arch/arm/configs/imx_v7_cbi_hb_defconfig linux-imx6-3.14/arch/arm/configs/imx_v7_cbi_hb_defconfig
---- linux-3.14.17/arch/arm/configs/imx_v7_cbi_hb_defconfig 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/configs/imx_v7_cbi_hb_defconfig 2014-09-11 18:05:52.798001191 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/configs/imx_v7_cbi_hb_defconfig linux-3.14.22/arch/arm/configs/imx_v7_cbi_hb_defconfig
+--- linux-3.14.22.orig/arch/arm/configs/imx_v7_cbi_hb_defconfig 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/configs/imx_v7_cbi_hb_defconfig 2014-10-22 14:55:49.702220001 -0500
@@ -0,0 +1,5138 @@
+#
+# Automatically generated make config: don't edit
@@ -20373,7 +20352,7 @@ diff -Nur linux-3.14.17/arch/arm/configs/imx_v7_cbi_hb_defconfig linux-imx6-3.14
+CONFIG_KPROBES=y
+CONFIG_KPROBE_EVENT=y
+# CONFIG_KPROBES_SANITY_TEST is not set
-+CONFIG_JUMP_LABEL=y
++# CONFIG_JUMP_LABEL is not set
+CONFIG_OPTPROBES=y
+
+CONFIG_HZ_1000=y
@@ -20810,9 +20789,9 @@ diff -Nur linux-3.14.17/arch/arm/configs/imx_v7_cbi_hb_defconfig linux-imx6-3.14
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_PROC_DEVICETREE=y
+
-diff -Nur linux-3.14.17/arch/arm/configs/imx_v7_defconfig linux-imx6-3.14/arch/arm/configs/imx_v7_defconfig
---- linux-3.14.17/arch/arm/configs/imx_v7_defconfig 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/configs/imx_v7_defconfig 2014-09-11 18:05:52.798001191 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/configs/imx_v7_defconfig linux-3.14.22/arch/arm/configs/imx_v7_defconfig
+--- linux-3.14.22.orig/arch/arm/configs/imx_v7_defconfig 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/configs/imx_v7_defconfig 2014-10-22 14:55:49.702220001 -0500
@@ -0,0 +1,343 @@
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_KERNEL_LZO=y
@@ -21157,9 +21136,9 @@ diff -Nur linux-3.14.17/arch/arm/configs/imx_v7_defconfig linux-imx6-3.14/arch/a
+CONFIG_CRC_T10DIF=y
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
-diff -Nur linux-3.14.17/arch/arm/configs/imx_v7_mfg_defconfig linux-imx6-3.14/arch/arm/configs/imx_v7_mfg_defconfig
---- linux-3.14.17/arch/arm/configs/imx_v7_mfg_defconfig 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/configs/imx_v7_mfg_defconfig 2014-09-11 18:05:52.798001191 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/configs/imx_v7_mfg_defconfig linux-3.14.22/arch/arm/configs/imx_v7_mfg_defconfig
+--- linux-3.14.22.orig/arch/arm/configs/imx_v7_mfg_defconfig 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/configs/imx_v7_mfg_defconfig 2014-10-22 14:55:49.702220001 -0500
@@ -0,0 +1,341 @@
+CONFIG_KERNEL_LZO=y
+CONFIG_SYSVIPC=y
@@ -21502,57 +21481,9 @@ diff -Nur linux-3.14.17/arch/arm/configs/imx_v7_mfg_defconfig linux-imx6-3.14/ar
+CONFIG_CRC_T10DIF=y
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
-diff -Nur linux-3.14.17/arch/arm/crypto/aesbs-glue.c linux-imx6-3.14/arch/arm/crypto/aesbs-glue.c
---- linux-3.14.17/arch/arm/crypto/aesbs-glue.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/crypto/aesbs-glue.c 2014-09-11 18:05:52.806001223 +0200
-@@ -137,7 +137,7 @@
- dst += AES_BLOCK_SIZE;
- } while (--blocks);
- }
-- err = blkcipher_walk_done(desc, &walk, walk.nbytes % AES_BLOCK_SIZE);
-+ err = blkcipher_walk_done(desc, &walk, 0);
- }
- return err;
- }
-@@ -158,7 +158,7 @@
- bsaes_cbc_encrypt(walk.src.virt.addr, walk.dst.virt.addr,
- walk.nbytes, &ctx->dec, walk.iv);
- kernel_neon_end();
-- err = blkcipher_walk_done(desc, &walk, walk.nbytes % AES_BLOCK_SIZE);
-+ err = blkcipher_walk_done(desc, &walk, 0);
- }
- while (walk.nbytes) {
- u32 blocks = walk.nbytes / AES_BLOCK_SIZE;
-@@ -182,7 +182,7 @@
- dst += AES_BLOCK_SIZE;
- src += AES_BLOCK_SIZE;
- } while (--blocks);
-- err = blkcipher_walk_done(desc, &walk, walk.nbytes % AES_BLOCK_SIZE);
-+ err = blkcipher_walk_done(desc, &walk, 0);
- }
- return err;
- }
-@@ -268,7 +268,7 @@
- bsaes_xts_encrypt(walk.src.virt.addr, walk.dst.virt.addr,
- walk.nbytes, &ctx->enc, walk.iv);
- kernel_neon_end();
-- err = blkcipher_walk_done(desc, &walk, walk.nbytes % AES_BLOCK_SIZE);
-+ err = blkcipher_walk_done(desc, &walk, 0);
- }
- return err;
- }
-@@ -292,7 +292,7 @@
- bsaes_xts_decrypt(walk.src.virt.addr, walk.dst.virt.addr,
- walk.nbytes, &ctx->dec, walk.iv);
- kernel_neon_end();
-- err = blkcipher_walk_done(desc, &walk, walk.nbytes % AES_BLOCK_SIZE);
-+ err = blkcipher_walk_done(desc, &walk, 0);
- }
- return err;
- }
-diff -Nur linux-3.14.17/arch/arm/include/asm/arch_timer.h linux-imx6-3.14/arch/arm/include/asm/arch_timer.h
---- linux-3.14.17/arch/arm/include/asm/arch_timer.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/include/asm/arch_timer.h 2014-09-11 18:05:52.810001239 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/include/asm/arch_timer.h linux-3.14.22/arch/arm/include/asm/arch_timer.h
+--- linux-3.14.22.orig/arch/arm/include/asm/arch_timer.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/include/asm/arch_timer.h 2014-10-22 14:55:49.702220001 -0500
@@ -107,7 +107,6 @@
/* Also disable virtual event stream */
cntkctl &= ~(ARCH_TIMER_USR_PT_ACCESS_EN
@@ -21561,9 +21492,9 @@ diff -Nur linux-3.14.17/arch/arm/include/asm/arch_timer.h linux-imx6-3.14/arch/a
| ARCH_TIMER_USR_VCT_ACCESS_EN
| ARCH_TIMER_USR_PCT_ACCESS_EN);
arch_timer_set_cntkctl(cntkctl);
-diff -Nur linux-3.14.17/arch/arm/include/asm/atomic.h linux-imx6-3.14/arch/arm/include/asm/atomic.h
---- linux-3.14.17/arch/arm/include/asm/atomic.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/include/asm/atomic.h 2014-09-11 18:05:52.810001239 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/include/asm/atomic.h linux-3.14.22/arch/arm/include/asm/atomic.h
+--- linux-3.14.22.orig/arch/arm/include/asm/atomic.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/include/asm/atomic.h 2014-10-22 14:55:49.702220001 -0500
@@ -60,6 +60,7 @@
int result;
@@ -21692,9 +21623,9 @@ diff -Nur linux-3.14.17/arch/arm/include/asm/atomic.h linux-imx6-3.14/arch/arm/i
__asm__ __volatile__("@ atomic64_add_unless\n"
"1: ldrexd %0, %H0, [%4]\n"
-diff -Nur linux-3.14.17/arch/arm/include/asm/cmpxchg.h linux-imx6-3.14/arch/arm/include/asm/cmpxchg.h
---- linux-3.14.17/arch/arm/include/asm/cmpxchg.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/include/asm/cmpxchg.h 2014-09-11 18:05:52.810001239 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/include/asm/cmpxchg.h linux-3.14.22/arch/arm/include/asm/cmpxchg.h
+--- linux-3.14.22.orig/arch/arm/include/asm/cmpxchg.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/include/asm/cmpxchg.h 2014-10-22 14:55:49.702220001 -0500
@@ -2,6 +2,7 @@
#define __ASM_ARM_CMPXCHG_H
@@ -21729,9 +21660,9 @@ diff -Nur linux-3.14.17/arch/arm/include/asm/cmpxchg.h linux-imx6-3.14/arch/arm/
__asm__ __volatile__(
"1: ldrexd %1, %H1, [%3]\n"
" teq %1, %4\n"
-diff -Nur linux-3.14.17/arch/arm/include/asm/ftrace.h linux-imx6-3.14/arch/arm/include/asm/ftrace.h
---- linux-3.14.17/arch/arm/include/asm/ftrace.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/include/asm/ftrace.h 2014-09-11 18:05:52.810001239 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/include/asm/ftrace.h linux-3.14.22/arch/arm/include/asm/ftrace.h
+--- linux-3.14.22.orig/arch/arm/include/asm/ftrace.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/include/asm/ftrace.h 2014-10-22 14:55:49.890220001 -0500
@@ -52,15 +52,7 @@
#endif
@@ -21749,9 +21680,9 @@ diff -Nur linux-3.14.17/arch/arm/include/asm/ftrace.h linux-imx6-3.14/arch/arm/i
#endif /* ifndef __ASSEMBLY__ */
-diff -Nur linux-3.14.17/arch/arm/include/asm/futex.h linux-imx6-3.14/arch/arm/include/asm/futex.h
---- linux-3.14.17/arch/arm/include/asm/futex.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/include/asm/futex.h 2014-09-11 18:05:52.810001239 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/include/asm/futex.h linux-3.14.22/arch/arm/include/asm/futex.h
+--- linux-3.14.22.orig/arch/arm/include/asm/futex.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/include/asm/futex.h 2014-10-22 14:55:49.890220001 -0500
@@ -23,6 +23,7 @@
#define __futex_atomic_op(insn, ret, oldval, tmp, uaddr, oparg) \
@@ -21769,9 +21700,9 @@ diff -Nur linux-3.14.17/arch/arm/include/asm/futex.h linux-imx6-3.14/arch/arm/in
__asm__ __volatile__("@futex_atomic_cmpxchg_inatomic\n"
"1: ldrex %1, [%4]\n"
" teq %1, %2\n"
-diff -Nur linux-3.14.17/arch/arm/include/asm/glue-cache.h linux-imx6-3.14/arch/arm/include/asm/glue-cache.h
---- linux-3.14.17/arch/arm/include/asm/glue-cache.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/include/asm/glue-cache.h 2014-09-11 18:05:52.810001239 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/include/asm/glue-cache.h linux-3.14.22/arch/arm/include/asm/glue-cache.h
+--- linux-3.14.22.orig/arch/arm/include/asm/glue-cache.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/include/asm/glue-cache.h 2014-10-22 14:55:49.890220001 -0500
@@ -102,19 +102,19 @@
#endif
@@ -21800,9 +21731,9 @@ diff -Nur linux-3.14.17/arch/arm/include/asm/glue-cache.h linux-imx6-3.14/arch/a
#endif
#if defined(CONFIG_CPU_V7M)
-diff -Nur linux-3.14.17/arch/arm/include/asm/hardware/cache-l2x0.h linux-imx6-3.14/arch/arm/include/asm/hardware/cache-l2x0.h
---- linux-3.14.17/arch/arm/include/asm/hardware/cache-l2x0.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/include/asm/hardware/cache-l2x0.h 2014-09-11 18:05:52.814001255 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/include/asm/hardware/cache-l2x0.h linux-3.14.22/arch/arm/include/asm/hardware/cache-l2x0.h
+--- linux-3.14.22.orig/arch/arm/include/asm/hardware/cache-l2x0.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/include/asm/hardware/cache-l2x0.h 2014-10-22 14:55:49.890220001 -0500
@@ -26,8 +26,8 @@
#define L2X0_CACHE_TYPE 0x004
#define L2X0_CTRL 0x100
@@ -21941,9 +21872,9 @@ diff -Nur linux-3.14.17/arch/arm/include/asm/hardware/cache-l2x0.h linux-imx6-3.
#define L2X0_CTRL_EN 1
-diff -Nur linux-3.14.17/arch/arm/include/asm/outercache.h linux-imx6-3.14/arch/arm/include/asm/outercache.h
---- linux-3.14.17/arch/arm/include/asm/outercache.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/include/asm/outercache.h 2014-09-11 18:05:52.898001590 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/include/asm/outercache.h linux-3.14.22/arch/arm/include/asm/outercache.h
+--- linux-3.14.22.orig/arch/arm/include/asm/outercache.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/include/asm/outercache.h 2014-10-22 14:55:49.890220001 -0500
@@ -21,6 +21,7 @@
#ifndef __ASM_OUTERCACHE_H
#define __ASM_OUTERCACHE_H
@@ -22072,9 +22003,9 @@ diff -Nur linux-3.14.17/arch/arm/include/asm/outercache.h linux-imx6-3.14/arch/a
static inline void outer_sync(void)
{
if (outer_cache.sync)
-diff -Nur linux-3.14.17/arch/arm/include/asm/pmu.h linux-imx6-3.14/arch/arm/include/asm/pmu.h
---- linux-3.14.17/arch/arm/include/asm/pmu.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/include/asm/pmu.h 2014-09-11 18:05:52.902001607 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/include/asm/pmu.h linux-3.14.22/arch/arm/include/asm/pmu.h
+--- linux-3.14.22.orig/arch/arm/include/asm/pmu.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/include/asm/pmu.h 2014-10-22 14:55:49.890220001 -0500
@@ -62,9 +62,19 @@
raw_spinlock_t pmu_lock;
};
@@ -22104,9 +22035,9 @@ diff -Nur linux-3.14.17/arch/arm/include/asm/pmu.h linux-imx6-3.14/arch/arm/incl
int num_events;
atomic_t active_events;
struct mutex reserve_mutex;
-diff -Nur linux-3.14.17/arch/arm/include/asm/psci.h linux-imx6-3.14/arch/arm/include/asm/psci.h
---- linux-3.14.17/arch/arm/include/asm/psci.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/include/asm/psci.h 2014-09-11 18:05:52.902001607 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/include/asm/psci.h linux-3.14.22/arch/arm/include/asm/psci.h
+--- linux-3.14.22.orig/arch/arm/include/asm/psci.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/include/asm/psci.h 2014-10-22 14:55:49.890220001 -0500
@@ -16,6 +16,10 @@
#define PSCI_POWER_STATE_TYPE_STANDBY 0
@@ -22131,9 +22062,9 @@ diff -Nur linux-3.14.17/arch/arm/include/asm/psci.h linux-imx6-3.14/arch/arm/inc
+}
+#endif
#endif /* __ASM_ARM_PSCI_H */
-diff -Nur linux-3.14.17/arch/arm/include/asm/topology.h linux-imx6-3.14/arch/arm/include/asm/topology.h
---- linux-3.14.17/arch/arm/include/asm/topology.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/include/asm/topology.h 2014-09-11 18:05:52.906001623 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/include/asm/topology.h linux-3.14.22/arch/arm/include/asm/topology.h
+--- linux-3.14.22.orig/arch/arm/include/asm/topology.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/include/asm/topology.h 2014-10-22 14:55:49.890220001 -0500
@@ -26,11 +26,14 @@
void init_cpu_topology(void);
void store_cpu_topology(unsigned int cpuid);
@@ -22149,9 +22080,9 @@ diff -Nur linux-3.14.17/arch/arm/include/asm/topology.h linux-imx6-3.14/arch/arm
#endif
-diff -Nur linux-3.14.17/arch/arm/Kconfig linux-imx6-3.14/arch/arm/Kconfig
---- linux-3.14.17/arch/arm/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/Kconfig 2014-09-11 18:05:52.578000311 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/Kconfig linux-3.14.22/arch/arm/Kconfig
+--- linux-3.14.22.orig/arch/arm/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/Kconfig 2014-10-22 14:55:49.894220001 -0500
@@ -1216,19 +1216,6 @@
register of the Cortex-A9 which reduces the linefill issuing
capabilities of the processor.
@@ -22269,9 +22200,9 @@ diff -Nur linux-3.14.17/arch/arm/Kconfig linux-imx6-3.14/arch/arm/Kconfig
default "11"
help
The kernel memory allocator divides physically contiguous memory
-diff -Nur linux-3.14.17/arch/arm/kernel/perf_event.c linux-imx6-3.14/arch/arm/kernel/perf_event.c
---- linux-3.14.17/arch/arm/kernel/perf_event.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/kernel/perf_event.c 2014-09-11 18:05:52.950001797 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/kernel/perf_event.c linux-3.14.22/arch/arm/kernel/perf_event.c
+--- linux-3.14.22.orig/arch/arm/kernel/perf_event.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/kernel/perf_event.c 2014-10-22 14:55:49.894220001 -0500
@@ -12,6 +12,7 @@
*/
#define pr_fmt(fmt) "hw perfevents: " fmt
@@ -22340,9 +22271,9 @@ diff -Nur linux-3.14.17/arch/arm/kernel/perf_event.c linux-imx6-3.14/arch/arm/ke
/* does not support taken branch sampling */
if (has_branch_stack(event))
return -EOPNOTSUPP;
-diff -Nur linux-3.14.17/arch/arm/kernel/perf_event_cpu.c linux-imx6-3.14/arch/arm/kernel/perf_event_cpu.c
---- linux-3.14.17/arch/arm/kernel/perf_event_cpu.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/kernel/perf_event_cpu.c 2014-09-11 18:05:52.950001797 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/kernel/perf_event_cpu.c linux-3.14.22/arch/arm/kernel/perf_event_cpu.c
+--- linux-3.14.22.orig/arch/arm/kernel/perf_event_cpu.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/kernel/perf_event_cpu.c 2014-10-22 14:55:49.898220001 -0500
@@ -19,6 +19,7 @@
#define pr_fmt(fmt) "CPU PMU: " fmt
@@ -22606,9 +22537,9 @@ diff -Nur linux-3.14.17/arch/arm/kernel/perf_event_cpu.c linux-imx6-3.14/arch/ar
return err;
}
-diff -Nur linux-3.14.17/arch/arm/kernel/perf_event_v7.c linux-imx6-3.14/arch/arm/kernel/perf_event_v7.c
---- linux-3.14.17/arch/arm/kernel/perf_event_v7.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/kernel/perf_event_v7.c 2014-09-11 18:05:52.950001797 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/kernel/perf_event_v7.c linux-3.14.22/arch/arm/kernel/perf_event_v7.c
+--- linux-3.14.22.orig/arch/arm/kernel/perf_event_v7.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/kernel/perf_event_v7.c 2014-10-22 14:55:49.898220001 -0500
@@ -950,6 +950,51 @@
}
#endif
@@ -22715,9 +22646,9 @@ diff -Nur linux-3.14.17/arch/arm/kernel/perf_event_v7.c linux-imx6-3.14/arch/arm
cpu_pmu->map_event = armv7_a7_map_event;
cpu_pmu->num_events = armv7_read_num_pmnc_events();
cpu_pmu->set_event_filter = armv7pmu_set_event_filter;
-diff -Nur linux-3.14.17/arch/arm/kernel/process.c linux-imx6-3.14/arch/arm/kernel/process.c
---- linux-3.14.17/arch/arm/kernel/process.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/kernel/process.c 2014-09-11 18:05:52.950001797 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/kernel/process.c linux-3.14.22/arch/arm/kernel/process.c
+--- linux-3.14.22.orig/arch/arm/kernel/process.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/kernel/process.c 2014-10-22 14:55:49.898220001 -0500
@@ -172,8 +172,10 @@
*/
void arch_cpu_idle(void)
@@ -22729,9 +22660,9 @@ diff -Nur linux-3.14.17/arch/arm/kernel/process.c linux-imx6-3.14/arch/arm/kerne
}
/*
-diff -Nur linux-3.14.17/arch/arm/kernel/psci.c linux-imx6-3.14/arch/arm/kernel/psci.c
---- linux-3.14.17/arch/arm/kernel/psci.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/kernel/psci.c 2014-09-11 18:05:52.950001797 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/kernel/psci.c linux-3.14.22/arch/arm/kernel/psci.c
+--- linux-3.14.22.orig/arch/arm/kernel/psci.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/kernel/psci.c 2014-10-22 14:55:49.898220001 -0500
@@ -42,6 +42,7 @@
#define PSCI_RET_EOPNOTSUPP -1
#define PSCI_RET_EINVAL -2
@@ -22775,9 +22706,9 @@ diff -Nur linux-3.14.17/arch/arm/kernel/psci.c linux-imx6-3.14/arch/arm/kernel/p
+ of_node_put(np);
+ return ret;
+}
-diff -Nur linux-3.14.17/arch/arm/kernel/setup.c linux-imx6-3.14/arch/arm/kernel/setup.c
---- linux-3.14.17/arch/arm/kernel/setup.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/kernel/setup.c 2014-09-11 18:05:52.950001797 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/kernel/setup.c linux-3.14.22/arch/arm/kernel/setup.c
+--- linux-3.14.22.orig/arch/arm/kernel/setup.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/kernel/setup.c 2014-10-22 14:55:49.898220001 -0500
@@ -273,6 +273,19 @@
int aliasing_icache;
unsigned int id_reg, num_sets, line_size;
@@ -22798,9 +22729,9 @@ diff -Nur linux-3.14.17/arch/arm/kernel/setup.c linux-imx6-3.14/arch/arm/kernel/
/* PIPT caches never alias. */
if (icache_is_pipt())
return 0;
-diff -Nur linux-3.14.17/arch/arm/kernel/topology.c linux-imx6-3.14/arch/arm/kernel/topology.c
---- linux-3.14.17/arch/arm/kernel/topology.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/kernel/topology.c 2014-09-11 18:05:52.970001878 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/kernel/topology.c linux-3.14.22/arch/arm/kernel/topology.c
+--- linux-3.14.22.orig/arch/arm/kernel/topology.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/kernel/topology.c 2014-10-22 14:55:49.902220001 -0500
@@ -267,6 +267,33 @@
}
@@ -22835,9 +22766,9 @@ diff -Nur linux-3.14.17/arch/arm/kernel/topology.c linux-imx6-3.14/arch/arm/kern
* init_cpu_topology is called at boot when only one cpu is running
* which prevent simultaneous write access to cpu_topology array
*/
-diff -Nur linux-3.14.17/arch/arm/lib/bitops.h linux-imx6-3.14/arch/arm/lib/bitops.h
---- linux-3.14.17/arch/arm/lib/bitops.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/lib/bitops.h 2014-09-11 18:05:52.978001911 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/lib/bitops.h linux-3.14.22/arch/arm/lib/bitops.h
+--- linux-3.14.22.orig/arch/arm/lib/bitops.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/lib/bitops.h 2014-10-22 14:55:49.902220001 -0500
@@ -37,6 +37,11 @@
add r1, r1, r0, lsl #2 @ Get word offset
mov r3, r2, lsl r3 @ create mask
@@ -22850,9 +22781,9 @@ diff -Nur linux-3.14.17/arch/arm/lib/bitops.h linux-imx6-3.14/arch/arm/lib/bitop
1: ldrex r2, [r1]
ands r0, r2, r3 @ save old value of bit
\instr r2, r2, r3 @ toggle bit
-diff -Nur linux-3.14.17/arch/arm/mach-berlin/berlin.c linux-imx6-3.14/arch/arm/mach-berlin/berlin.c
---- linux-3.14.17/arch/arm/mach-berlin/berlin.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-berlin/berlin.c 2014-09-11 18:05:53.170002677 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-berlin/berlin.c linux-3.14.22/arch/arm/mach-berlin/berlin.c
+--- linux-3.14.22.orig/arch/arm/mach-berlin/berlin.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-berlin/berlin.c 2014-10-22 14:55:49.902220001 -0500
@@ -24,7 +24,7 @@
* with DT probing for L2CCs, berlin_init_machine can be removed.
* Note: 88DE3005 (Armada 1500-mini) uses pl310 l2cc
@@ -22862,9 +22793,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-berlin/berlin.c linux-imx6-3.14/arch/arm/m
of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
}
-diff -Nur linux-3.14.17/arch/arm/mach-cns3xxx/core.c linux-imx6-3.14/arch/arm/mach-cns3xxx/core.c
---- linux-3.14.17/arch/arm/mach-cns3xxx/core.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-cns3xxx/core.c 2014-09-11 18:05:53.178002711 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-cns3xxx/core.c linux-3.14.22/arch/arm/mach-cns3xxx/core.c
+--- linux-3.14.22.orig/arch/arm/mach-cns3xxx/core.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-cns3xxx/core.c 2014-10-22 14:55:49.902220001 -0500
@@ -240,9 +240,9 @@
*
* 1 cycle of latency for setup, read and write accesses
@@ -22893,9 +22824,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-cns3xxx/core.c linux-imx6-3.14/arch/arm/ma
}
#endif /* CONFIG_CACHE_L2X0 */
-diff -Nur linux-3.14.17/arch/arm/mach-exynos/common.c linux-imx6-3.14/arch/arm/mach-exynos/common.c
---- linux-3.14.17/arch/arm/mach-exynos/common.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-exynos/common.c 2014-09-11 18:05:53.238002950 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-exynos/common.c linux-3.14.22/arch/arm/mach-exynos/common.c
+--- linux-3.14.22.orig/arch/arm/mach-exynos/common.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-exynos/common.c 2014-10-22 14:55:49.902220001 -0500
@@ -45,9 +45,6 @@
#include "common.h"
#include "regs-pmu.h"
@@ -22915,9 +22846,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-exynos/common.c linux-imx6-3.14/arch/arm/m
if (ret)
return ret;
-diff -Nur linux-3.14.17/arch/arm/mach-highbank/highbank.c linux-imx6-3.14/arch/arm/mach-highbank/highbank.c
---- linux-3.14.17/arch/arm/mach-highbank/highbank.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-highbank/highbank.c 2014-09-11 18:05:53.274003094 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-highbank/highbank.c linux-3.14.22/arch/arm/mach-highbank/highbank.c
+--- linux-3.14.22.orig/arch/arm/mach-highbank/highbank.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-highbank/highbank.c 2014-10-22 14:55:49.902220001 -0500
@@ -20,7 +20,7 @@
#include <linux/input.h>
#include <linux/io.h>
@@ -22960,9 +22891,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-highbank/highbank.c linux-imx6-3.14/arch/a
}
}
-diff -Nur linux-3.14.17/arch/arm/mach-imx/anatop.c linux-imx6-3.14/arch/arm/mach-imx/anatop.c
---- linux-3.14.17/arch/arm/mach-imx/anatop.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-imx/anatop.c 2014-09-11 18:05:53.278003110 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-imx/anatop.c linux-3.14.22/arch/arm/mach-imx/anatop.c
+--- linux-3.14.22.orig/arch/arm/mach-imx/anatop.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-imx/anatop.c 2014-10-22 14:55:49.906220001 -0500
@@ -9,6 +9,7 @@
* http://www.gnu.org/copyleft/gpl.html
*/
@@ -23027,9 +22958,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-imx/anatop.c linux-imx6-3.14/arch/arm/mach
default:
revision = IMX_CHIP_REVISION_UNKNOWN;
}
-diff -Nur linux-3.14.17/arch/arm/mach-imx/busfreq_ddr3.c linux-imx6-3.14/arch/arm/mach-imx/busfreq_ddr3.c
---- linux-3.14.17/arch/arm/mach-imx/busfreq_ddr3.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/mach-imx/busfreq_ddr3.c 2014-09-11 18:05:53.278003110 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-imx/busfreq_ddr3.c linux-3.14.22/arch/arm/mach-imx/busfreq_ddr3.c
+--- linux-3.14.22.orig/arch/arm/mach-imx/busfreq_ddr3.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/mach-imx/busfreq_ddr3.c 2014-10-22 14:55:49.906220001 -0500
@@ -0,0 +1,471 @@
+/*
+ * Copyright (C) 2011-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -23502,9 +23433,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-imx/busfreq_ddr3.c linux-imx6-3.14/arch/ar
+
+ return 0;
+}
-diff -Nur linux-3.14.17/arch/arm/mach-imx/busfreq-imx6.c linux-imx6-3.14/arch/arm/mach-imx/busfreq-imx6.c
---- linux-3.14.17/arch/arm/mach-imx/busfreq-imx6.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/mach-imx/busfreq-imx6.c 2014-09-11 18:05:53.278003110 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-imx/busfreq-imx6.c linux-3.14.22/arch/arm/mach-imx/busfreq-imx6.c
+--- linux-3.14.22.orig/arch/arm/mach-imx/busfreq-imx6.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/mach-imx/busfreq-imx6.c 2014-10-22 14:55:49.906220001 -0500
@@ -0,0 +1,952 @@
+/*
+ * Copyright (C) 2011-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -24458,9 +24389,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-imx/busfreq-imx6.c linux-imx6-3.14/arch/ar
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("BusFreq driver");
+MODULE_LICENSE("GPL");
-diff -Nur linux-3.14.17/arch/arm/mach-imx/busfreq_lpddr2.c linux-imx6-3.14/arch/arm/mach-imx/busfreq_lpddr2.c
---- linux-3.14.17/arch/arm/mach-imx/busfreq_lpddr2.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/mach-imx/busfreq_lpddr2.c 2014-09-11 18:05:53.278003110 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-imx/busfreq_lpddr2.c linux-3.14.22/arch/arm/mach-imx/busfreq_lpddr2.c
+--- linux-3.14.22.orig/arch/arm/mach-imx/busfreq_lpddr2.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/mach-imx/busfreq_lpddr2.c 2014-10-22 14:55:49.906220001 -0500
@@ -0,0 +1,183 @@
+/*
+ * Copyright (C) 2011-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -24645,9 +24576,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-imx/busfreq_lpddr2.c linux-imx6-3.14/arch/
+
+ return 0;
+}
-diff -Nur linux-3.14.17/arch/arm/mach-imx/clk.h linux-imx6-3.14/arch/arm/mach-imx/clk.h
---- linux-3.14.17/arch/arm/mach-imx/clk.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-imx/clk.h 2014-09-11 18:05:53.302003205 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-imx/clk.h linux-3.14.22/arch/arm/mach-imx/clk.h
+--- linux-3.14.22.orig/arch/arm/mach-imx/clk.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-imx/clk.h 2014-10-22 14:55:49.906220001 -0500
@@ -23,7 +23,8 @@
};
@@ -24658,9 +24589,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-imx/clk.h linux-imx6-3.14/arch/arm/mach-im
struct clk *clk_register_gate2(struct device *dev, const char *name,
const char *parent_name, unsigned long flags,
-diff -Nur linux-3.14.17/arch/arm/mach-imx/clk-imx6q.c linux-imx6-3.14/arch/arm/mach-imx/clk-imx6q.c
---- linux-3.14.17/arch/arm/mach-imx/clk-imx6q.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-imx/clk-imx6q.c 2014-09-11 18:05:53.278003110 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-imx/clk-imx6q.c linux-3.14.22/arch/arm/mach-imx/clk-imx6q.c
+--- linux-3.14.22.orig/arch/arm/mach-imx/clk-imx6q.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-imx/clk-imx6q.c 2014-10-22 14:55:49.906220001 -0500
@@ -1,5 +1,5 @@
/*
- * Copyright 2011-2013 Freescale Semiconductor, Inc.
@@ -25170,9 +25101,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-imx/clk-imx6q.c linux-imx6-3.14/arch/arm/m
/* Set initial power mode */
imx6q_set_lpm(WAIT_CLOCKED);
-diff -Nur linux-3.14.17/arch/arm/mach-imx/clk-imx6sl.c linux-imx6-3.14/arch/arm/mach-imx/clk-imx6sl.c
---- linux-3.14.17/arch/arm/mach-imx/clk-imx6sl.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-imx/clk-imx6sl.c 2014-09-11 18:05:53.278003110 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-imx/clk-imx6sl.c linux-3.14.22/arch/arm/mach-imx/clk-imx6sl.c
+--- linux-3.14.22.orig/arch/arm/mach-imx/clk-imx6sl.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-imx/clk-imx6sl.c 2014-10-22 14:55:49.906220001 -0500
@@ -7,9 +7,29 @@
*
*/
@@ -25494,9 +25425,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-imx/clk-imx6sl.c linux-imx6-3.14/arch/arm/
np = of_find_compatible_node(NULL, NULL, "fsl,imx6sl-gpt");
base = of_iomap(np, 0);
WARN_ON(!base);
-diff -Nur linux-3.14.17/arch/arm/mach-imx/clk-pfd.c linux-imx6-3.14/arch/arm/mach-imx/clk-pfd.c
---- linux-3.14.17/arch/arm/mach-imx/clk-pfd.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-imx/clk-pfd.c 2014-09-11 18:05:53.282003126 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-imx/clk-pfd.c linux-3.14.22/arch/arm/mach-imx/clk-pfd.c
+--- linux-3.14.22.orig/arch/arm/mach-imx/clk-pfd.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-imx/clk-pfd.c 2014-10-22 14:55:49.906220001 -0500
@@ -1,5 +1,5 @@
/*
- * Copyright 2012 Freescale Semiconductor, Inc.
@@ -25575,9 +25506,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-imx/clk-pfd.c linux-imx6-3.14/arch/arm/mac
tmp = tmp * 18 + rate / 2;
do_div(tmp, rate);
frac = tmp;
-diff -Nur linux-3.14.17/arch/arm/mach-imx/clk-pllv3.c linux-imx6-3.14/arch/arm/mach-imx/clk-pllv3.c
---- linux-3.14.17/arch/arm/mach-imx/clk-pllv3.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-imx/clk-pllv3.c 2014-09-11 18:05:53.302003205 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-imx/clk-pllv3.c linux-3.14.22/arch/arm/mach-imx/clk-pllv3.c
+--- linux-3.14.22.orig/arch/arm/mach-imx/clk-pllv3.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-imx/clk-pllv3.c 2014-10-22 14:55:49.906220001 -0500
@@ -26,12 +26,15 @@
#define BM_PLL_ENABLE (0x1 << 13)
#define BM_PLL_BYPASS (0x1 << 16)
@@ -25946,9 +25877,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-imx/clk-pllv3.c linux-imx6-3.14/arch/arm/m
init.name = name;
init.ops = ops;
-diff -Nur linux-3.14.17/arch/arm/mach-imx/common.h linux-imx6-3.14/arch/arm/mach-imx/common.h
---- linux-3.14.17/arch/arm/mach-imx/common.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-imx/common.h 2014-09-11 18:05:53.302003205 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-imx/common.h linux-3.14.22/arch/arm/mach-imx/common.h
+--- linux-3.14.22.orig/arch/arm/mach-imx/common.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-imx/common.h 2014-10-22 14:55:49.906220001 -0500
@@ -1,5 +1,5 @@
/*
- * Copyright 2004-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -26003,9 +25934,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-imx/common.h linux-imx6-3.14/arch/arm/mach
#ifdef CONFIG_PM
void imx5_pm_init(void);
#else
-diff -Nur linux-3.14.17/arch/arm/mach-imx/cpuidle.h linux-imx6-3.14/arch/arm/mach-imx/cpuidle.h
---- linux-3.14.17/arch/arm/mach-imx/cpuidle.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-imx/cpuidle.h 2014-09-11 18:05:53.306003222 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-imx/cpuidle.h linux-3.14.22/arch/arm/mach-imx/cpuidle.h
+--- linux-3.14.22.orig/arch/arm/mach-imx/cpuidle.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-imx/cpuidle.h 2014-10-22 14:55:49.906220001 -0500
@@ -1,5 +1,5 @@
/*
- * Copyright 2012 Freescale Semiconductor, Inc.
@@ -26030,9 +25961,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-imx/cpuidle.h linux-imx6-3.14/arch/arm/mac
+ return 0;
+}
#endif
-diff -Nur linux-3.14.17/arch/arm/mach-imx/cpuidle-imx6q.c linux-imx6-3.14/arch/arm/mach-imx/cpuidle-imx6q.c
---- linux-3.14.17/arch/arm/mach-imx/cpuidle-imx6q.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-imx/cpuidle-imx6q.c 2014-09-11 18:05:53.302003205 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-imx/cpuidle-imx6q.c linux-3.14.22/arch/arm/mach-imx/cpuidle-imx6q.c
+--- linux-3.14.22.orig/arch/arm/mach-imx/cpuidle-imx6q.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-imx/cpuidle-imx6q.c 2014-10-22 14:55:49.906220001 -0500
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012 Freescale Semiconductor, Inc.
@@ -26051,9 +25982,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-imx/cpuidle-imx6q.c linux-imx6-3.14/arch/a
return cpuidle_register(&imx6q_cpuidle_driver, NULL);
}
-diff -Nur linux-3.14.17/arch/arm/mach-imx/cpuidle-imx6sl.c linux-imx6-3.14/arch/arm/mach-imx/cpuidle-imx6sl.c
---- linux-3.14.17/arch/arm/mach-imx/cpuidle-imx6sl.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/mach-imx/cpuidle-imx6sl.c 2014-09-11 18:05:53.306003222 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-imx/cpuidle-imx6sl.c linux-3.14.22/arch/arm/mach-imx/cpuidle-imx6sl.c
+--- linux-3.14.22.orig/arch/arm/mach-imx/cpuidle-imx6sl.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/mach-imx/cpuidle-imx6sl.c 2014-10-22 14:55:49.906220001 -0500
@@ -0,0 +1,149 @@
+/*
+ * Copyright (C) 2012-2013 Freescale Semiconductor, Inc.
@@ -26204,9 +26135,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-imx/cpuidle-imx6sl.c linux-imx6-3.14/arch/
+
+ return cpuidle_register(&imx6sl_cpuidle_driver, NULL);
+}
-diff -Nur linux-3.14.17/arch/arm/mach-imx/ddr3_freq_imx6.S linux-imx6-3.14/arch/arm/mach-imx/ddr3_freq_imx6.S
---- linux-3.14.17/arch/arm/mach-imx/ddr3_freq_imx6.S 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/mach-imx/ddr3_freq_imx6.S 2014-09-11 18:05:53.306003222 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-imx/ddr3_freq_imx6.S linux-3.14.22/arch/arm/mach-imx/ddr3_freq_imx6.S
+--- linux-3.14.22.orig/arch/arm/mach-imx/ddr3_freq_imx6.S 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/mach-imx/ddr3_freq_imx6.S 2014-10-22 14:55:49.906220001 -0500
@@ -0,0 +1,893 @@
+/*
+ * Copyright (C) 2011-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -27101,9 +27032,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-imx/ddr3_freq_imx6.S linux-imx6-3.14/arch/
+ENTRY(mx6_do_ddr_freq_change)
+ .word mx6_ddr3_freq_change
+ .size mx6_ddr3_freq_change, . - mx6_ddr3_freq_change
-diff -Nur linux-3.14.17/arch/arm/mach-imx/gpc.c linux-imx6-3.14/arch/arm/mach-imx/gpc.c
---- linux-3.14.17/arch/arm/mach-imx/gpc.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-imx/gpc.c 2014-09-11 18:05:53.346003382 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-imx/gpc.c linux-3.14.22/arch/arm/mach-imx/gpc.c
+--- linux-3.14.22.orig/arch/arm/mach-imx/gpc.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-imx/gpc.c 2014-10-22 14:55:49.906220001 -0500
@@ -10,30 +10,69 @@
* http://www.gnu.org/copyleft/gpl.html
*/
@@ -27488,9 +27419,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-imx/gpc.c linux-imx6-3.14/arch/arm/mach-im
+MODULE_AUTHOR("Anson Huang <b20788@freescale.com>");
+MODULE_DESCRIPTION("Freescale i.MX GPC driver");
+MODULE_LICENSE("GPL");
-diff -Nur linux-3.14.17/arch/arm/mach-imx/hardware.h linux-imx6-3.14/arch/arm/mach-imx/hardware.h
---- linux-3.14.17/arch/arm/mach-imx/hardware.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-imx/hardware.h 2014-09-11 18:05:53.346003382 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-imx/hardware.h linux-3.14.22/arch/arm/mach-imx/hardware.h
+--- linux-3.14.22.orig/arch/arm/mach-imx/hardware.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-imx/hardware.h 2014-10-22 14:55:49.910220001 -0500
@@ -1,5 +1,5 @@
/*
- * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -27508,9 +27439,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-imx/hardware.h linux-imx6-3.14/arch/arm/ma
#include <asm/sizes.h>
#define addr_in_module(addr, mod) \
-diff -Nur linux-3.14.17/arch/arm/mach-imx/headsmp.S linux-imx6-3.14/arch/arm/mach-imx/headsmp.S
---- linux-3.14.17/arch/arm/mach-imx/headsmp.S 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-imx/headsmp.S 2014-09-11 18:05:53.346003382 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-imx/headsmp.S linux-3.14.22/arch/arm/mach-imx/headsmp.S
+--- linux-3.14.22.orig/arch/arm/mach-imx/headsmp.S 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-imx/headsmp.S 2014-10-22 14:55:49.910220001 -0500
@@ -12,8 +12,6 @@
#include <linux/linkage.h>
@@ -27558,9 +27489,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-imx/headsmp.S linux-imx6-3.14/arch/arm/mac
- b cpu_resume
-ENDPROC(v7_cpu_resume)
-#endif
-diff -Nur linux-3.14.17/arch/arm/mach-imx/imx6sl_wfi.S linux-imx6-3.14/arch/arm/mach-imx/imx6sl_wfi.S
---- linux-3.14.17/arch/arm/mach-imx/imx6sl_wfi.S 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/mach-imx/imx6sl_wfi.S 2014-09-11 18:05:53.346003382 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-imx/imx6sl_wfi.S linux-3.14.22/arch/arm/mach-imx/imx6sl_wfi.S
+--- linux-3.14.22.orig/arch/arm/mach-imx/imx6sl_wfi.S 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/mach-imx/imx6sl_wfi.S 2014-10-22 14:55:49.910220001 -0500
@@ -0,0 +1,639 @@
+/*
+ * Copyright (C) 2012-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -28201,9 +28132,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-imx/imx6sl_wfi.S linux-imx6-3.14/arch/arm/
+
+ /* Restore registers */
+ mov pc, lr
-diff -Nur linux-3.14.17/arch/arm/mach-imx/Kconfig linux-imx6-3.14/arch/arm/mach-imx/Kconfig
---- linux-3.14.17/arch/arm/mach-imx/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-imx/Kconfig 2014-09-11 18:05:53.278003110 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-imx/Kconfig linux-3.14.22/arch/arm/mach-imx/Kconfig
+--- linux-3.14.22.orig/arch/arm/mach-imx/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-imx/Kconfig 2014-10-22 14:55:49.910220001 -0500
@@ -1,5 +1,6 @@
config ARCH_MXC
bool "Freescale i.MX family" if ARCH_MULTI_V4_V5 || ARCH_MULTI_V6_V7
@@ -28250,9 +28181,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-imx/Kconfig linux-imx6-3.14/arch/arm/mach-
help
This enables support for Freescale i.MX6 Quad processor.
-diff -Nur linux-3.14.17/arch/arm/mach-imx/lpddr2_freq_imx6.S linux-imx6-3.14/arch/arm/mach-imx/lpddr2_freq_imx6.S
---- linux-3.14.17/arch/arm/mach-imx/lpddr2_freq_imx6.S 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/mach-imx/lpddr2_freq_imx6.S 2014-09-11 18:05:53.378003511 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-imx/lpddr2_freq_imx6.S linux-3.14.22/arch/arm/mach-imx/lpddr2_freq_imx6.S
+--- linux-3.14.22.orig/arch/arm/mach-imx/lpddr2_freq_imx6.S 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/mach-imx/lpddr2_freq_imx6.S 2014-10-22 14:55:49.910220001 -0500
@@ -0,0 +1,484 @@
+/*
+ * Copyright (C) 2012-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -28738,9 +28669,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-imx/lpddr2_freq_imx6.S linux-imx6-3.14/arc
+ENTRY(mx6_lpddr2_do_iram)
+ .word mx6_lpddr2_freq_change
+ .size mx6_lpddr2_freq_change, . - mx6_lpddr2_freq_change
-diff -Nur linux-3.14.17/arch/arm/mach-imx/mach-imx6q.c linux-imx6-3.14/arch/arm/mach-imx/mach-imx6q.c
---- linux-3.14.17/arch/arm/mach-imx/mach-imx6q.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-imx/mach-imx6q.c 2014-09-11 18:05:53.382003527 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-imx/mach-imx6q.c linux-3.14.22/arch/arm/mach-imx/mach-imx6q.c
+--- linux-3.14.22.orig/arch/arm/mach-imx/mach-imx6q.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-imx/mach-imx6q.c 2014-10-22 14:55:49.910220001 -0500
@@ -1,5 +1,5 @@
/*
- * Copyright 2011-2013 Freescale Semiconductor, Inc.
@@ -29028,9 +28959,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-imx/mach-imx6q.c linux-imx6-3.14/arch/arm/
.smp = smp_ops(imx_smp_ops),
.map_io = imx6q_map_io,
.init_irq = imx6q_init_irq,
-diff -Nur linux-3.14.17/arch/arm/mach-imx/mach-imx6sl.c linux-imx6-3.14/arch/arm/mach-imx/mach-imx6sl.c
---- linux-3.14.17/arch/arm/mach-imx/mach-imx6sl.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-imx/mach-imx6sl.c 2014-09-11 18:05:53.382003527 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-imx/mach-imx6sl.c linux-3.14.22/arch/arm/mach-imx/mach-imx6sl.c
+--- linux-3.14.22.orig/arch/arm/mach-imx/mach-imx6sl.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-imx/mach-imx6sl.c 2014-10-22 14:55:49.910220001 -0500
@@ -17,8 +17,9 @@
#include <asm/mach/map.h>
@@ -29070,9 +29001,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-imx/mach-imx6sl.c linux-imx6-3.14/arch/arm
}
static void __init imx6sl_init_irq(void)
-diff -Nur linux-3.14.17/arch/arm/mach-imx/mach-vf610.c linux-imx6-3.14/arch/arm/mach-imx/mach-vf610.c
---- linux-3.14.17/arch/arm/mach-imx/mach-vf610.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-imx/mach-vf610.c 2014-09-11 18:05:53.386003542 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-imx/mach-vf610.c linux-3.14.22/arch/arm/mach-imx/mach-vf610.c
+--- linux-3.14.22.orig/arch/arm/mach-imx/mach-vf610.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-imx/mach-vf610.c 2014-10-22 14:55:49.910220001 -0500
@@ -22,7 +22,7 @@
static void __init vf610_init_irq(void)
@@ -29082,9 +29013,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-imx/mach-vf610.c linux-imx6-3.14/arch/arm/
irqchip_init();
}
-diff -Nur linux-3.14.17/arch/arm/mach-imx/Makefile linux-imx6-3.14/arch/arm/mach-imx/Makefile
---- linux-3.14.17/arch/arm/mach-imx/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-imx/Makefile 2014-09-11 18:05:53.278003110 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-imx/Makefile linux-3.14.22/arch/arm/mach-imx/Makefile
+--- linux-3.14.22.orig/arch/arm/mach-imx/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-imx/Makefile 2014-10-22 14:55:49.910220001 -0500
@@ -30,6 +30,7 @@
ifeq ($(CONFIG_CPU_IDLE),y)
obj-$(CONFIG_SOC_IMX5) += cpuidle-imx5.o
@@ -29115,9 +29046,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-imx/Makefile linux-imx6-3.14/arch/arm/mach
# i.MX5 based machines
obj-$(CONFIG_MACH_MX51_BABBAGE) += mach-mx51_babbage.o
-diff -Nur linux-3.14.17/arch/arm/mach-imx/mx6.h linux-imx6-3.14/arch/arm/mach-imx/mx6.h
---- linux-3.14.17/arch/arm/mach-imx/mx6.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/mach-imx/mx6.h 2014-09-11 18:05:53.394003573 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-imx/mx6.h linux-3.14.22/arch/arm/mach-imx/mx6.h
+--- linux-3.14.22.orig/arch/arm/mach-imx/mx6.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/mach-imx/mx6.h 2014-10-22 14:55:49.910220001 -0500
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2004-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -29154,9 +29085,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-imx/mx6.h linux-imx6-3.14/arch/arm/mach-im
+
+#define MX6_SUSPEND_IRAM_SIZE 0x1000
+#endif
-diff -Nur linux-3.14.17/arch/arm/mach-imx/mxc.h linux-imx6-3.14/arch/arm/mach-imx/mxc.h
---- linux-3.14.17/arch/arm/mach-imx/mxc.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-imx/mxc.h 2014-09-11 18:05:53.394003573 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-imx/mxc.h linux-3.14.22/arch/arm/mach-imx/mxc.h
+--- linux-3.14.22.orig/arch/arm/mach-imx/mxc.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-imx/mxc.h 2014-10-22 14:55:49.910220001 -0500
@@ -42,6 +42,8 @@
#define IMX_CHIP_REVISION_1_1 0x11
#define IMX_CHIP_REVISION_1_2 0x12
@@ -29174,9 +29105,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-imx/mxc.h linux-imx6-3.14/arch/arm/mach-im
#define cpu_is_mx3() (cpu_is_mx31() || cpu_is_mx35())
#define cpu_is_mx2() (cpu_is_mx21() || cpu_is_mx27())
-diff -Nur linux-3.14.17/arch/arm/mach-imx/pm-imx6.c linux-imx6-3.14/arch/arm/mach-imx/pm-imx6.c
---- linux-3.14.17/arch/arm/mach-imx/pm-imx6.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/mach-imx/pm-imx6.c 2014-09-11 18:05:53.394003573 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-imx/pm-imx6.c linux-3.14.22/arch/arm/mach-imx/pm-imx6.c
+--- linux-3.14.22.orig/arch/arm/mach-imx/pm-imx6.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/mach-imx/pm-imx6.c 2014-10-22 14:55:49.910220001 -0500
@@ -0,0 +1,580 @@
+/*
+ * Copyright 2011-2014 Freescale Semiconductor, Inc.
@@ -29758,9 +29689,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-imx/pm-imx6.c linux-imx6-3.14/arch/arm/mac
+{
+ imx6_pm_common_init(NULL);
+}
-diff -Nur linux-3.14.17/arch/arm/mach-imx/pm-imx6q.c linux-imx6-3.14/arch/arm/mach-imx/pm-imx6q.c
---- linux-3.14.17/arch/arm/mach-imx/pm-imx6q.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-imx/pm-imx6q.c 1970-01-01 01:00:00.000000000 +0100
+diff -Nur linux-3.14.22.orig/arch/arm/mach-imx/pm-imx6q.c linux-3.14.22/arch/arm/mach-imx/pm-imx6q.c
+--- linux-3.14.22.orig/arch/arm/mach-imx/pm-imx6q.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-imx/pm-imx6q.c 1969-12-31 18:00:00.000000000 -0600
@@ -1,241 +0,0 @@
-/*
- * Copyright 2011-2013 Freescale Semiconductor, Inc.
@@ -30003,9 +29934,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-imx/pm-imx6q.c linux-imx6-3.14/arch/arm/ma
-
- suspend_set_ops(&imx6q_pm_ops);
-}
-diff -Nur linux-3.14.17/arch/arm/mach-imx/suspend-imx6.S linux-imx6-3.14/arch/arm/mach-imx/suspend-imx6.S
---- linux-3.14.17/arch/arm/mach-imx/suspend-imx6.S 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/mach-imx/suspend-imx6.S 2014-09-11 18:05:53.394003573 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-imx/suspend-imx6.S linux-3.14.22/arch/arm/mach-imx/suspend-imx6.S
+--- linux-3.14.22.orig/arch/arm/mach-imx/suspend-imx6.S 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/mach-imx/suspend-imx6.S 2014-10-22 14:55:49.922220001 -0500
@@ -0,0 +1,306 @@
+/*
+ * Copyright 2014 Freescale Semiconductor, Inc.
@@ -30313,9 +30244,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-imx/suspend-imx6.S linux-imx6-3.14/arch/ar
+#endif
+ b cpu_resume
+ENDPROC(v7_cpu_resume)
-diff -Nur linux-3.14.17/arch/arm/mach-imx/system.c linux-imx6-3.14/arch/arm/mach-imx/system.c
---- linux-3.14.17/arch/arm/mach-imx/system.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-imx/system.c 2014-09-11 18:05:53.394003573 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-imx/system.c linux-3.14.22/arch/arm/mach-imx/system.c
+--- linux-3.14.22.orig/arch/arm/mach-imx/system.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-imx/system.c 2014-10-22 14:55:49.922220001 -0500
@@ -34,6 +34,7 @@
static void __iomem *wdog_base;
@@ -30397,9 +30328,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-imx/system.c linux-imx6-3.14/arch/arm/mach
+ l2x0_of_init(0, ~0);
}
#endif
-diff -Nur linux-3.14.17/arch/arm/mach-imx/time.c linux-imx6-3.14/arch/arm/mach-imx/time.c
---- linux-3.14.17/arch/arm/mach-imx/time.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-imx/time.c 2014-09-11 18:05:53.394003573 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-imx/time.c linux-3.14.22/arch/arm/mach-imx/time.c
+--- linux-3.14.22.orig/arch/arm/mach-imx/time.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-imx/time.c 2014-10-22 14:55:49.926220001 -0500
@@ -60,7 +60,11 @@
#define V2_TCTL_WAITEN (1 << 3) /* Wait enable mode */
#define V2_TCTL_CLK_IPG (1 << 6)
@@ -30463,9 +30394,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-imx/time.c linux-imx6-3.14/arch/arm/mach-i
__raw_writel(tctl_val, timer_base + MXC_TCTL);
-diff -Nur linux-3.14.17/arch/arm/mach-nomadik/cpu-8815.c linux-imx6-3.14/arch/arm/mach-nomadik/cpu-8815.c
---- linux-3.14.17/arch/arm/mach-nomadik/cpu-8815.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-nomadik/cpu-8815.c 2014-09-11 18:05:53.698004788 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-nomadik/cpu-8815.c linux-3.14.22/arch/arm/mach-nomadik/cpu-8815.c
+--- linux-3.14.22.orig/arch/arm/mach-nomadik/cpu-8815.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-nomadik/cpu-8815.c 2014-10-22 14:55:49.926220001 -0500
@@ -147,7 +147,7 @@
{
#ifdef CONFIG_CACHE_L2X0
@@ -30475,9 +30406,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-nomadik/cpu-8815.c linux-imx6-3.14/arch/ar
#endif
of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
}
-diff -Nur linux-3.14.17/arch/arm/mach-omap2/common.h linux-imx6-3.14/arch/arm/mach-omap2/common.h
---- linux-3.14.17/arch/arm/mach-omap2/common.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-omap2/common.h 2014-09-11 18:05:53.814005253 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-omap2/common.h linux-3.14.22/arch/arm/mach-omap2/common.h
+--- linux-3.14.22.orig/arch/arm/mach-omap2/common.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-omap2/common.h 2014-10-22 14:55:49.926220001 -0500
@@ -91,6 +91,7 @@
extern void omap3_secure_sync32k_timer_init(void);
extern void omap3_gptimer_timer_init(void);
@@ -30486,9 +30417,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-omap2/common.h linux-imx6-3.14/arch/arm/ma
extern void omap5_realtime_timer_init(void);
void omap2420_init_early(void);
-diff -Nur linux-3.14.17/arch/arm/mach-omap2/io.c linux-imx6-3.14/arch/arm/mach-omap2/io.c
---- linux-3.14.17/arch/arm/mach-omap2/io.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-omap2/io.c 2014-09-11 18:05:53.862005446 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-omap2/io.c linux-3.14.22/arch/arm/mach-omap2/io.c
+--- linux-3.14.22.orig/arch/arm/mach-omap2/io.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-omap2/io.c 2014-10-22 14:55:49.926220001 -0500
@@ -608,6 +608,7 @@
am43xx_clockdomains_init();
am43xx_hwmod_init();
@@ -30505,9 +30436,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-omap2/io.c linux-imx6-3.14/arch/arm/mach-o
omap_clk_soc_init = omap4xxx_dt_clk_init;
}
-diff -Nur linux-3.14.17/arch/arm/mach-omap2/Kconfig linux-imx6-3.14/arch/arm/mach-omap2/Kconfig
---- linux-3.14.17/arch/arm/mach-omap2/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-omap2/Kconfig 2014-09-11 18:05:53.730004917 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-omap2/Kconfig linux-3.14.22/arch/arm/mach-omap2/Kconfig
+--- linux-3.14.22.orig/arch/arm/mach-omap2/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-omap2/Kconfig 2014-10-22 14:55:49.926220001 -0500
@@ -78,6 +78,7 @@
select MULTI_IRQ_HANDLER
select ARM_GIC
@@ -30516,9 +30447,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-omap2/Kconfig linux-imx6-3.14/arch/arm/mac
config SOC_DRA7XX
bool "TI DRA7XX"
-diff -Nur linux-3.14.17/arch/arm/mach-omap2/omap4-common.c linux-imx6-3.14/arch/arm/mach-omap2/omap4-common.c
---- linux-3.14.17/arch/arm/mach-omap2/omap4-common.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-omap2/omap4-common.c 2014-09-11 18:05:53.870005477 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-omap2/omap4-common.c linux-3.14.22/arch/arm/mach-omap2/omap4-common.c
+--- linux-3.14.22.orig/arch/arm/mach-omap2/omap4-common.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-omap2/omap4-common.c 2014-10-22 14:55:49.926220001 -0500
@@ -166,75 +166,57 @@
return l2cache_base;
}
@@ -30629,9 +30560,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-omap2/omap4-common.c linux-imx6-3.14/arch/
#endif
void __iomem *omap4_get_sar_ram_base(void)
-diff -Nur linux-3.14.17/arch/arm/mach-omap2/omap-mpuss-lowpower.c linux-imx6-3.14/arch/arm/mach-omap2/omap-mpuss-lowpower.c
---- linux-3.14.17/arch/arm/mach-omap2/omap-mpuss-lowpower.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-omap2/omap-mpuss-lowpower.c 2014-09-11 18:05:53.866005462 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-omap2/omap-mpuss-lowpower.c linux-3.14.22/arch/arm/mach-omap2/omap-mpuss-lowpower.c
+--- linux-3.14.22.orig/arch/arm/mach-omap2/omap-mpuss-lowpower.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-omap2/omap-mpuss-lowpower.c 2014-10-22 14:55:49.926220001 -0500
@@ -187,19 +187,15 @@
* in every restore MPUSS OFF path.
*/
@@ -30658,9 +30589,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-omap2/omap-mpuss-lowpower.c linux-imx6-3.1
{}
#endif
-diff -Nur linux-3.14.17/arch/arm/mach-prima2/l2x0.c linux-imx6-3.14/arch/arm/mach-prima2/l2x0.c
---- linux-3.14.17/arch/arm/mach-prima2/l2x0.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-prima2/l2x0.c 2014-09-11 18:05:53.898005589 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-prima2/l2x0.c linux-3.14.22/arch/arm/mach-prima2/l2x0.c
+--- linux-3.14.22.orig/arch/arm/mach-prima2/l2x0.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-prima2/l2x0.c 2014-10-22 14:55:49.926220001 -0500
@@ -8,43 +8,10 @@
#include <linux/init.h>
@@ -30706,9 +30637,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-prima2/l2x0.c linux-imx6-3.14/arch/arm/mac
+ return l2x0_of_init(0, ~0);
}
early_initcall(sirfsoc_l2x0_init);
-diff -Nur linux-3.14.17/arch/arm/mach-prima2/pm.c linux-imx6-3.14/arch/arm/mach-prima2/pm.c
---- linux-3.14.17/arch/arm/mach-prima2/pm.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-prima2/pm.c 2014-09-11 18:05:53.898005589 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-prima2/pm.c linux-3.14.22/arch/arm/mach-prima2/pm.c
+--- linux-3.14.22.orig/arch/arm/mach-prima2/pm.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-prima2/pm.c 2014-10-22 14:55:49.926220001 -0500
@@ -71,7 +71,6 @@
case PM_SUSPEND_MEM:
sirfsoc_pre_suspend_power_off();
@@ -30717,9 +30648,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-prima2/pm.c linux-imx6-3.14/arch/arm/mach-
outer_disable();
/* go zzz */
cpu_suspend(0, sirfsoc_finish_suspend);
-diff -Nur linux-3.14.17/arch/arm/mach-realview/realview_eb.c linux-imx6-3.14/arch/arm/mach-realview/realview_eb.c
---- linux-3.14.17/arch/arm/mach-realview/realview_eb.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-realview/realview_eb.c 2014-09-11 18:05:53.954005813 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-realview/realview_eb.c linux-3.14.22/arch/arm/mach-realview/realview_eb.c
+--- linux-3.14.22.orig/arch/arm/mach-realview/realview_eb.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-realview/realview_eb.c 2014-10-22 14:55:49.926220001 -0500
@@ -442,8 +442,13 @@
realview_eb11mp_fixup();
@@ -30736,9 +30667,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-realview/realview_eb.c linux-imx6-3.14/arc
l2x0_init(__io_address(REALVIEW_EB11MP_L220_BASE), 0x00790000, 0xfe000fff);
#endif
platform_device_register(&pmu_device);
-diff -Nur linux-3.14.17/arch/arm/mach-realview/realview_pb1176.c linux-imx6-3.14/arch/arm/mach-realview/realview_pb1176.c
---- linux-3.14.17/arch/arm/mach-realview/realview_pb1176.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-realview/realview_pb1176.c 2014-09-11 18:05:53.954005813 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-realview/realview_pb1176.c linux-3.14.22/arch/arm/mach-realview/realview_pb1176.c
+--- linux-3.14.22.orig/arch/arm/mach-realview/realview_pb1176.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-realview/realview_pb1176.c 2014-10-22 14:55:49.926220001 -0500
@@ -355,7 +355,13 @@
int i;
@@ -30754,9 +30685,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-realview/realview_pb1176.c linux-imx6-3.14
l2x0_init(__io_address(REALVIEW_PB1176_L220_BASE), 0x00730000, 0xfe000fff);
#endif
-diff -Nur linux-3.14.17/arch/arm/mach-realview/realview_pb11mp.c linux-imx6-3.14/arch/arm/mach-realview/realview_pb11mp.c
---- linux-3.14.17/arch/arm/mach-realview/realview_pb11mp.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-realview/realview_pb11mp.c 2014-09-11 18:05:53.954005813 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-realview/realview_pb11mp.c linux-3.14.22/arch/arm/mach-realview/realview_pb11mp.c
+--- linux-3.14.22.orig/arch/arm/mach-realview/realview_pb11mp.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-realview/realview_pb11mp.c 2014-10-22 14:55:49.926220001 -0500
@@ -337,8 +337,13 @@
int i;
@@ -30773,9 +30704,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-realview/realview_pb11mp.c linux-imx6-3.14
l2x0_init(__io_address(REALVIEW_TC11MP_L220_BASE), 0x00790000, 0xfe000fff);
#endif
-diff -Nur linux-3.14.17/arch/arm/mach-realview/realview_pbx.c linux-imx6-3.14/arch/arm/mach-realview/realview_pbx.c
---- linux-3.14.17/arch/arm/mach-realview/realview_pbx.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-realview/realview_pbx.c 2014-09-11 18:05:53.958005828 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-realview/realview_pbx.c linux-3.14.22/arch/arm/mach-realview/realview_pbx.c
+--- linux-3.14.22.orig/arch/arm/mach-realview/realview_pbx.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-realview/realview_pbx.c 2014-10-22 14:55:49.926220001 -0500
@@ -370,8 +370,8 @@
__io_address(REALVIEW_PBX_TILE_L220_BASE);
@@ -30787,9 +30718,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-realview/realview_pbx.c linux-imx6-3.14/ar
/* 16KB way size, 8-way associativity, parity disabled
* Bits: .. 0 0 0 0 1 00 1 0 1 001 0 000 0 .... .... .... */
-diff -Nur linux-3.14.17/arch/arm/mach-rockchip/rockchip.c linux-imx6-3.14/arch/arm/mach-rockchip/rockchip.c
---- linux-3.14.17/arch/arm/mach-rockchip/rockchip.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-rockchip/rockchip.c 2014-09-11 18:05:53.962005845 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-rockchip/rockchip.c linux-3.14.22/arch/arm/mach-rockchip/rockchip.c
+--- linux-3.14.22.orig/arch/arm/mach-rockchip/rockchip.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-rockchip/rockchip.c 2014-10-22 14:55:49.926220001 -0500
@@ -25,7 +25,7 @@
static void __init rockchip_dt_init(void)
@@ -30799,9 +30730,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-rockchip/rockchip.c linux-imx6-3.14/arch/a
of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
}
-diff -Nur linux-3.14.17/arch/arm/mach-shmobile/board-armadillo800eva.c linux-imx6-3.14/arch/arm/mach-shmobile/board-armadillo800eva.c
---- linux-3.14.17/arch/arm/mach-shmobile/board-armadillo800eva.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-shmobile/board-armadillo800eva.c 2014-09-11 18:05:54.134006532 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-shmobile/board-armadillo800eva.c linux-3.14.22/arch/arm/mach-shmobile/board-armadillo800eva.c
+--- linux-3.14.22.orig/arch/arm/mach-shmobile/board-armadillo800eva.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-shmobile/board-armadillo800eva.c 2014-10-22 14:55:49.926220001 -0500
@@ -1270,8 +1270,8 @@
@@ -30813,9 +30744,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-shmobile/board-armadillo800eva.c linux-imx
#endif
i2c_register_board_info(0, i2c0_devices, ARRAY_SIZE(i2c0_devices));
-diff -Nur linux-3.14.17/arch/arm/mach-shmobile/board-armadillo800eva-reference.c linux-imx6-3.14/arch/arm/mach-shmobile/board-armadillo800eva-reference.c
---- linux-3.14.17/arch/arm/mach-shmobile/board-armadillo800eva-reference.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-shmobile/board-armadillo800eva-reference.c 2014-09-11 18:05:54.134006532 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-shmobile/board-armadillo800eva-reference.c linux-3.14.22/arch/arm/mach-shmobile/board-armadillo800eva-reference.c
+--- linux-3.14.22.orig/arch/arm/mach-shmobile/board-armadillo800eva-reference.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-shmobile/board-armadillo800eva-reference.c 2014-10-22 14:55:49.926220001 -0500
@@ -164,8 +164,8 @@
r8a7740_meram_workaround();
@@ -30827,9 +30758,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-shmobile/board-armadillo800eva-reference.c
#endif
r8a7740_add_standard_devices_dt();
-diff -Nur linux-3.14.17/arch/arm/mach-shmobile/board-kzm9g.c linux-imx6-3.14/arch/arm/mach-shmobile/board-kzm9g.c
---- linux-3.14.17/arch/arm/mach-shmobile/board-kzm9g.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-shmobile/board-kzm9g.c 2014-09-11 18:05:54.138006549 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-shmobile/board-kzm9g.c linux-3.14.22/arch/arm/mach-shmobile/board-kzm9g.c
+--- linux-3.14.22.orig/arch/arm/mach-shmobile/board-kzm9g.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-shmobile/board-kzm9g.c 2014-10-22 14:55:49.926220001 -0500
@@ -878,8 +878,8 @@
gpio_request_one(223, GPIOF_IN, NULL); /* IRQ8 */
@@ -30841,9 +30772,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-shmobile/board-kzm9g.c linux-imx6-3.14/arc
#endif
i2c_register_board_info(0, i2c0_devices, ARRAY_SIZE(i2c0_devices));
-diff -Nur linux-3.14.17/arch/arm/mach-shmobile/board-kzm9g-reference.c linux-imx6-3.14/arch/arm/mach-shmobile/board-kzm9g-reference.c
---- linux-3.14.17/arch/arm/mach-shmobile/board-kzm9g-reference.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-shmobile/board-kzm9g-reference.c 2014-09-11 18:05:54.138006549 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-shmobile/board-kzm9g-reference.c linux-3.14.22/arch/arm/mach-shmobile/board-kzm9g-reference.c
+--- linux-3.14.22.orig/arch/arm/mach-shmobile/board-kzm9g-reference.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-shmobile/board-kzm9g-reference.c 2014-10-22 14:55:49.926220001 -0500
@@ -36,8 +36,8 @@
sh73a0_add_standard_devices_dt();
@@ -30855,9 +30786,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-shmobile/board-kzm9g-reference.c linux-imx
#endif
}
-diff -Nur linux-3.14.17/arch/arm/mach-shmobile/setup-r8a7778.c linux-imx6-3.14/arch/arm/mach-shmobile/setup-r8a7778.c
---- linux-3.14.17/arch/arm/mach-shmobile/setup-r8a7778.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-shmobile/setup-r8a7778.c 2014-09-11 18:05:54.142006566 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-shmobile/setup-r8a7778.c linux-3.14.22/arch/arm/mach-shmobile/setup-r8a7778.c
+--- linux-3.14.22.orig/arch/arm/mach-shmobile/setup-r8a7778.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-shmobile/setup-r8a7778.c 2014-10-22 14:55:49.926220001 -0500
@@ -298,10 +298,10 @@
void __iomem *base = ioremap_nocache(0xf0100000, 0x1000);
if (base) {
@@ -30871,9 +30802,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-shmobile/setup-r8a7778.c linux-imx6-3.14/a
}
#endif
-diff -Nur linux-3.14.17/arch/arm/mach-shmobile/setup-r8a7779.c linux-imx6-3.14/arch/arm/mach-shmobile/setup-r8a7779.c
---- linux-3.14.17/arch/arm/mach-shmobile/setup-r8a7779.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-shmobile/setup-r8a7779.c 2014-09-11 18:05:54.142006566 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-shmobile/setup-r8a7779.c linux-3.14.22/arch/arm/mach-shmobile/setup-r8a7779.c
+--- linux-3.14.22.orig/arch/arm/mach-shmobile/setup-r8a7779.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-shmobile/setup-r8a7779.c 2014-10-22 14:55:49.926220001 -0500
@@ -700,8 +700,8 @@
void __init r8a7779_add_standard_devices(void)
{
@@ -30885,9 +30816,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-shmobile/setup-r8a7779.c linux-imx6-3.14/a
#endif
r8a7779_pm_init();
-diff -Nur linux-3.14.17/arch/arm/mach-socfpga/socfpga.c linux-imx6-3.14/arch/arm/mach-socfpga/socfpga.c
---- linux-3.14.17/arch/arm/mach-socfpga/socfpga.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-socfpga/socfpga.c 2014-09-11 18:05:54.146006581 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-socfpga/socfpga.c linux-3.14.22/arch/arm/mach-socfpga/socfpga.c
+--- linux-3.14.22.orig/arch/arm/mach-socfpga/socfpga.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-socfpga/socfpga.c 2014-10-22 14:55:49.926220001 -0500
@@ -104,7 +104,7 @@
static void __init socfpga_cyclone5_init(void)
@@ -30897,9 +30828,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-socfpga/socfpga.c linux-imx6-3.14/arch/arm
of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
socfpga_init_clocks();
}
-diff -Nur linux-3.14.17/arch/arm/mach-spear/platsmp.c linux-imx6-3.14/arch/arm/mach-spear/platsmp.c
---- linux-3.14.17/arch/arm/mach-spear/platsmp.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-spear/platsmp.c 2014-09-11 18:05:54.150006596 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-spear/platsmp.c linux-3.14.22/arch/arm/mach-spear/platsmp.c
+--- linux-3.14.22.orig/arch/arm/mach-spear/platsmp.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-spear/platsmp.c 2014-10-22 14:55:49.926220001 -0500
@@ -20,6 +20,18 @@
#include <mach/spear.h>
#include "generic.h"
@@ -30940,9 +30871,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-spear/platsmp.c linux-imx6-3.14/arch/arm/m
timeout = jiffies + (1 * HZ);
while (time_before(jiffies, timeout)) {
-diff -Nur linux-3.14.17/arch/arm/mach-spear/spear13xx.c linux-imx6-3.14/arch/arm/mach-spear/spear13xx.c
---- linux-3.14.17/arch/arm/mach-spear/spear13xx.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-spear/spear13xx.c 2014-09-11 18:05:54.150006596 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-spear/spear13xx.c linux-3.14.22/arch/arm/mach-spear/spear13xx.c
+--- linux-3.14.22.orig/arch/arm/mach-spear/spear13xx.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-spear/spear13xx.c 2014-10-22 14:55:49.926220001 -0500
@@ -38,15 +38,15 @@
if (!IS_ENABLED(CONFIG_CACHE_L2X0))
return;
@@ -30963,9 +30894,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-spear/spear13xx.c linux-imx6-3.14/arch/arm
}
/*
-diff -Nur linux-3.14.17/arch/arm/mach-sti/board-dt.c linux-imx6-3.14/arch/arm/mach-sti/board-dt.c
---- linux-3.14.17/arch/arm/mach-sti/board-dt.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-sti/board-dt.c 2014-09-11 18:05:54.178006708 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-sti/board-dt.c linux-3.14.22/arch/arm/mach-sti/board-dt.c
+--- linux-3.14.22.orig/arch/arm/mach-sti/board-dt.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-sti/board-dt.c 2014-10-22 14:55:49.926220001 -0500
@@ -16,15 +16,9 @@
void __init stih41x_l2x0_init(void)
@@ -30985,9 +30916,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-sti/board-dt.c linux-imx6-3.14/arch/arm/ma
}
static void __init stih41x_machine_init(void)
-diff -Nur linux-3.14.17/arch/arm/mach-tegra/pm.h linux-imx6-3.14/arch/arm/mach-tegra/pm.h
---- linux-3.14.17/arch/arm/mach-tegra/pm.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-tegra/pm.h 2014-09-11 18:05:54.206006821 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-tegra/pm.h linux-3.14.22/arch/arm/mach-tegra/pm.h
+--- linux-3.14.22.orig/arch/arm/mach-tegra/pm.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-tegra/pm.h 2014-10-22 14:55:49.926220001 -0500
@@ -35,8 +35,6 @@
void tegra30_lp1_iram_hook(void);
void tegra30_sleep_core_init(void);
@@ -30997,9 +30928,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-tegra/pm.h linux-imx6-3.14/arch/arm/mach-t
void tegra_clear_cpu_in_lp2(void);
bool tegra_set_cpu_in_lp2(void);
-diff -Nur linux-3.14.17/arch/arm/mach-tegra/reset-handler.S linux-imx6-3.14/arch/arm/mach-tegra/reset-handler.S
---- linux-3.14.17/arch/arm/mach-tegra/reset-handler.S 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-tegra/reset-handler.S 2014-09-11 18:05:54.206006821 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-tegra/reset-handler.S linux-3.14.22/arch/arm/mach-tegra/reset-handler.S
+--- linux-3.14.22.orig/arch/arm/mach-tegra/reset-handler.S 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-tegra/reset-handler.S 2014-10-22 14:55:49.926220001 -0500
@@ -19,7 +19,6 @@
#include <asm/cache.h>
@@ -31033,9 +30964,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-tegra/reset-handler.S linux-imx6-3.14/arch
.align L1_CACHE_SHIFT
ENTRY(__tegra_cpu_reset_handler_start)
-diff -Nur linux-3.14.17/arch/arm/mach-tegra/sleep.h linux-imx6-3.14/arch/arm/mach-tegra/sleep.h
---- linux-3.14.17/arch/arm/mach-tegra/sleep.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-tegra/sleep.h 2014-09-11 18:05:54.218006868 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-tegra/sleep.h linux-3.14.22/arch/arm/mach-tegra/sleep.h
+--- linux-3.14.22.orig/arch/arm/mach-tegra/sleep.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-tegra/sleep.h 2014-10-22 14:55:49.926220001 -0500
@@ -120,37 +120,6 @@
mov \tmp1, \tmp1, lsr #8
.endm
@@ -31074,9 +31005,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-tegra/sleep.h linux-imx6-3.14/arch/arm/mac
#else
void tegra_pen_lock(void);
void tegra_pen_unlock(void);
-diff -Nur linux-3.14.17/arch/arm/mach-tegra/tegra.c linux-imx6-3.14/arch/arm/mach-tegra/tegra.c
---- linux-3.14.17/arch/arm/mach-tegra/tegra.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-tegra/tegra.c 2014-09-11 18:05:54.218006868 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-tegra/tegra.c linux-3.14.22/arch/arm/mach-tegra/tegra.c
+--- linux-3.14.22.orig/arch/arm/mach-tegra/tegra.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-tegra/tegra.c 2014-10-22 14:55:49.930220001 -0500
@@ -73,27 +73,7 @@
static void __init tegra_init_cache(void)
{
@@ -31106,9 +31037,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-tegra/tegra.c linux-imx6-3.14/arch/arm/mac
#endif
}
-diff -Nur linux-3.14.17/arch/arm/mach-ux500/board-mop500-audio.c linux-imx6-3.14/arch/arm/mach-ux500/board-mop500-audio.c
---- linux-3.14.17/arch/arm/mach-ux500/board-mop500-audio.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-ux500/board-mop500-audio.c 2014-09-11 18:05:54.230006916 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-ux500/board-mop500-audio.c linux-3.14.22/arch/arm/mach-ux500/board-mop500-audio.c
+--- linux-3.14.22.orig/arch/arm/mach-ux500/board-mop500-audio.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-ux500/board-mop500-audio.c 2014-10-22 14:55:49.930220001 -0500
@@ -9,7 +9,6 @@
#include <linux/gpio.h>
#include <linux/platform_data/dma-ste-dma40.h>
@@ -31117,9 +31048,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-ux500/board-mop500-audio.c linux-imx6-3.14
#include <linux/platform_data/asoc-ux500-msp.h>
#include "ste-dma40-db8500.h"
-diff -Nur linux-3.14.17/arch/arm/mach-ux500/cache-l2x0.c linux-imx6-3.14/arch/arm/mach-ux500/cache-l2x0.c
---- linux-3.14.17/arch/arm/mach-ux500/cache-l2x0.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-ux500/cache-l2x0.c 2014-09-11 18:05:54.230006916 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-ux500/cache-l2x0.c linux-3.14.22/arch/arm/mach-ux500/cache-l2x0.c
+--- linux-3.14.22.orig/arch/arm/mach-ux500/cache-l2x0.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-ux500/cache-l2x0.c 2014-10-22 14:55:49.930220001 -0500
@@ -35,10 +35,16 @@
return 0;
}
@@ -31171,9 +31102,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-ux500/cache-l2x0.c linux-imx6-3.14/arch/ar
return 0;
}
-diff -Nur linux-3.14.17/arch/arm/mach-ux500/cpu-db8500.c linux-imx6-3.14/arch/arm/mach-ux500/cpu-db8500.c
---- linux-3.14.17/arch/arm/mach-ux500/cpu-db8500.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-ux500/cpu-db8500.c 2014-09-11 18:05:54.230006916 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-ux500/cpu-db8500.c linux-3.14.22/arch/arm/mach-ux500/cpu-db8500.c
+--- linux-3.14.22.orig/arch/arm/mach-ux500/cpu-db8500.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-ux500/cpu-db8500.c 2014-10-22 14:55:49.930220001 -0500
@@ -27,7 +27,6 @@
#include <asm/mach/map.h>
@@ -31197,9 +31128,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-ux500/cpu-db8500.c linux-imx6-3.14/arch/ar
.version_offset = DB8500_PRCMU_FW_VERSION_OFFSET,
.legacy_offset = DB8500_PRCMU_LEGACY_OFFSET,
};
-diff -Nur linux-3.14.17/arch/arm/mach-ux500/irqs-board-mop500.h linux-imx6-3.14/arch/arm/mach-ux500/irqs-board-mop500.h
---- linux-3.14.17/arch/arm/mach-ux500/irqs-board-mop500.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-ux500/irqs-board-mop500.h 1970-01-01 01:00:00.000000000 +0100
+diff -Nur linux-3.14.22.orig/arch/arm/mach-ux500/irqs-board-mop500.h linux-3.14.22/arch/arm/mach-ux500/irqs-board-mop500.h
+--- linux-3.14.22.orig/arch/arm/mach-ux500/irqs-board-mop500.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-ux500/irqs-board-mop500.h 1969-12-31 18:00:00.000000000 -0600
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson SA 2010
@@ -31256,9 +31187,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-ux500/irqs-board-mop500.h linux-imx6-3.14/
-#endif
-
-#endif
-diff -Nur linux-3.14.17/arch/arm/mach-ux500/irqs-db8500.h linux-imx6-3.14/arch/arm/mach-ux500/irqs-db8500.h
---- linux-3.14.17/arch/arm/mach-ux500/irqs-db8500.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-ux500/irqs-db8500.h 1970-01-01 01:00:00.000000000 +0100
+diff -Nur linux-3.14.22.orig/arch/arm/mach-ux500/irqs-db8500.h linux-3.14.22/arch/arm/mach-ux500/irqs-db8500.h
+--- linux-3.14.22.orig/arch/arm/mach-ux500/irqs-db8500.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-ux500/irqs-db8500.h 1969-12-31 18:00:00.000000000 -0600
@@ -1,125 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson SA 2010
@@ -31385,9 +31316,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-ux500/irqs-db8500.h linux-imx6-3.14/arch/a
-
-#endif /* CONFIG_UX500_SOC_DB8500 */
-#endif
-diff -Nur linux-3.14.17/arch/arm/mach-ux500/irqs.h linux-imx6-3.14/arch/arm/mach-ux500/irqs.h
---- linux-3.14.17/arch/arm/mach-ux500/irqs.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-ux500/irqs.h 1970-01-01 01:00:00.000000000 +0100
+diff -Nur linux-3.14.22.orig/arch/arm/mach-ux500/irqs.h linux-3.14.22/arch/arm/mach-ux500/irqs.h
+--- linux-3.14.22.orig/arch/arm/mach-ux500/irqs.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-ux500/irqs.h 1969-12-31 18:00:00.000000000 -0600
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2008 STMicroelectronics
@@ -31438,9 +31369,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-ux500/irqs.h linux-imx6-3.14/arch/arm/mach
-#define UX500_NR_IRQS IRQ_BOARD_END
-
-#endif /* ASM_ARCH_IRQS_H */
-diff -Nur linux-3.14.17/arch/arm/mach-vexpress/ct-ca9x4.c linux-imx6-3.14/arch/arm/mach-vexpress/ct-ca9x4.c
---- linux-3.14.17/arch/arm/mach-vexpress/ct-ca9x4.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-vexpress/ct-ca9x4.c 2014-09-11 18:05:54.266007061 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-vexpress/ct-ca9x4.c linux-3.14.22/arch/arm/mach-vexpress/ct-ca9x4.c
+--- linux-3.14.22.orig/arch/arm/mach-vexpress/ct-ca9x4.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-vexpress/ct-ca9x4.c 2014-10-22 14:55:49.930220001 -0500
@@ -45,6 +45,23 @@
iotable_init(ct_ca9x4_io_desc, ARRAY_SIZE(ct_ca9x4_io_desc));
}
@@ -31490,9 +31421,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-vexpress/ct-ca9x4.c linux-imx6-3.14/arch/a
for (i = 0; i < ARRAY_SIZE(ct_ca9x4_amba_devs); i++)
amba_device_register(ct_ca9x4_amba_devs[i], &iomem_resource);
-diff -Nur linux-3.14.17/arch/arm/mach-vexpress/dcscb.c linux-imx6-3.14/arch/arm/mach-vexpress/dcscb.c
---- linux-3.14.17/arch/arm/mach-vexpress/dcscb.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-vexpress/dcscb.c 2014-09-11 18:05:54.266007061 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-vexpress/dcscb.c linux-3.14.22/arch/arm/mach-vexpress/dcscb.c
+--- linux-3.14.22.orig/arch/arm/mach-vexpress/dcscb.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-vexpress/dcscb.c 2014-10-22 14:55:49.930220001 -0500
@@ -23,6 +23,7 @@
#include <asm/cacheflush.h>
#include <asm/cputype.h>
@@ -31514,9 +31445,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-vexpress/dcscb.c linux-imx6-3.14/arch/arm/
if (!cci_probed())
return -ENODEV;
-diff -Nur linux-3.14.17/arch/arm/mach-vexpress/Kconfig linux-imx6-3.14/arch/arm/mach-vexpress/Kconfig
---- linux-3.14.17/arch/arm/mach-vexpress/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-vexpress/Kconfig 2014-09-11 18:05:54.266007061 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-vexpress/Kconfig linux-3.14.22/arch/arm/mach-vexpress/Kconfig
+--- linux-3.14.22.orig/arch/arm/mach-vexpress/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-vexpress/Kconfig 2014-10-22 14:55:49.930220001 -0500
@@ -55,6 +55,7 @@
config ARCH_VEXPRESS_CA9X4
@@ -31525,9 +31456,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-vexpress/Kconfig linux-imx6-3.14/arch/arm/
config ARCH_VEXPRESS_DCSCB
bool "Dual Cluster System Control Block (DCSCB) support"
-diff -Nur linux-3.14.17/arch/arm/mach-vexpress/Makefile linux-imx6-3.14/arch/arm/mach-vexpress/Makefile
---- linux-3.14.17/arch/arm/mach-vexpress/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-vexpress/Makefile 2014-09-11 18:05:54.266007061 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-vexpress/Makefile linux-3.14.22/arch/arm/mach-vexpress/Makefile
+--- linux-3.14.22.orig/arch/arm/mach-vexpress/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-vexpress/Makefile 2014-10-22 14:55:49.930220001 -0500
@@ -8,8 +8,15 @@
obj-$(CONFIG_ARCH_VEXPRESS_CA9X4) += ct-ca9x4.o
obj-$(CONFIG_ARCH_VEXPRESS_DCSCB) += dcscb.o dcscb_setup.o
@@ -31544,9 +31475,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-vexpress/Makefile linux-imx6-3.14/arch/arm
+endif
obj-$(CONFIG_SMP) += platsmp.o
obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o
-diff -Nur linux-3.14.17/arch/arm/mach-vexpress/spc.c linux-imx6-3.14/arch/arm/mach-vexpress/spc.c
---- linux-3.14.17/arch/arm/mach-vexpress/spc.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-vexpress/spc.c 2014-09-11 18:05:54.270007076 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-vexpress/spc.c linux-3.14.22/arch/arm/mach-vexpress/spc.c
+--- linux-3.14.22.orig/arch/arm/mach-vexpress/spc.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-vexpress/spc.c 2014-10-22 14:55:49.930220001 -0500
@@ -392,7 +392,7 @@
* +--------------------------+
* | 31 20 | 19 0 |
@@ -31565,9 +31496,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-vexpress/spc.c linux-imx6-3.14/arch/arm/ma
} else {
break;
}
-diff -Nur linux-3.14.17/arch/arm/mach-vexpress/tc2_pm.c linux-imx6-3.14/arch/arm/mach-vexpress/tc2_pm.c
---- linux-3.14.17/arch/arm/mach-vexpress/tc2_pm.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-vexpress/tc2_pm.c 2014-09-11 18:05:54.270007076 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-vexpress/tc2_pm.c linux-3.14.22/arch/arm/mach-vexpress/tc2_pm.c
+--- linux-3.14.22.orig/arch/arm/mach-vexpress/tc2_pm.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-vexpress/tc2_pm.c 2014-10-22 14:55:49.930220001 -0500
@@ -27,6 +27,7 @@
#include <asm/cacheflush.h>
#include <asm/cputype.h>
@@ -31589,9 +31520,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-vexpress/tc2_pm.c linux-imx6-3.14/arch/arm
/*
* The power management-related features are hidden behind
* SCC registers. We need to extract runtime information like
-diff -Nur linux-3.14.17/arch/arm/mach-vexpress/tc2_pm_psci.c linux-imx6-3.14/arch/arm/mach-vexpress/tc2_pm_psci.c
---- linux-3.14.17/arch/arm/mach-vexpress/tc2_pm_psci.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/mach-vexpress/tc2_pm_psci.c 2014-09-11 18:05:54.270007076 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-vexpress/tc2_pm_psci.c linux-3.14.22/arch/arm/mach-vexpress/tc2_pm_psci.c
+--- linux-3.14.22.orig/arch/arm/mach-vexpress/tc2_pm_psci.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/mach-vexpress/tc2_pm_psci.c 2014-10-22 14:55:49.930220001 -0500
@@ -0,0 +1,173 @@
+/*
+ * arch/arm/mach-vexpress/tc2_pm_psci.c - TC2 PSCI support
@@ -31766,9 +31697,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-vexpress/tc2_pm_psci.c linux-imx6-3.14/arc
+}
+
+early_initcall(tc2_pm_psci_init);
-diff -Nur linux-3.14.17/arch/arm/mach-vexpress/v2m.c linux-imx6-3.14/arch/arm/mach-vexpress/v2m.c
---- linux-3.14.17/arch/arm/mach-vexpress/v2m.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-vexpress/v2m.c 2014-09-11 18:05:54.270007076 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-vexpress/v2m.c linux-3.14.22/arch/arm/mach-vexpress/v2m.c
+--- linux-3.14.22.orig/arch/arm/mach-vexpress/v2m.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-vexpress/v2m.c 2014-10-22 14:55:49.930220001 -0500
@@ -7,6 +7,7 @@
#include <linux/io.h>
#include <linux/smp.h>
@@ -31818,9 +31749,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-vexpress/v2m.c linux-imx6-3.14/arch/arm/ma
}
static const struct of_device_id v2m_dt_bus_match[] __initconst = {
-diff -Nur linux-3.14.17/arch/arm/mach-zynq/common.c linux-imx6-3.14/arch/arm/mach-zynq/common.c
---- linux-3.14.17/arch/arm/mach-zynq/common.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mach-zynq/common.c 2014-09-11 18:05:54.274007092 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mach-zynq/common.c linux-3.14.22/arch/arm/mach-zynq/common.c
+--- linux-3.14.22.orig/arch/arm/mach-zynq/common.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mach-zynq/common.c 2014-10-22 14:55:49.930220001 -0500
@@ -67,7 +67,7 @@
/*
* 64KB way size, 8-way associativity, parity disabled
@@ -31830,9 +31761,9 @@ diff -Nur linux-3.14.17/arch/arm/mach-zynq/common.c linux-imx6-3.14/arch/arm/mac
of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
-diff -Nur linux-3.14.17/arch/arm/mm/cache-feroceon-l2.c linux-imx6-3.14/arch/arm/mm/cache-feroceon-l2.c
---- linux-3.14.17/arch/arm/mm/cache-feroceon-l2.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mm/cache-feroceon-l2.c 2014-09-11 18:05:54.278007108 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mm/cache-feroceon-l2.c linux-3.14.22/arch/arm/mm/cache-feroceon-l2.c
+--- linux-3.14.22.orig/arch/arm/mm/cache-feroceon-l2.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mm/cache-feroceon-l2.c 2014-10-22 14:55:49.930220001 -0500
@@ -343,7 +343,6 @@
outer_cache.inv_range = feroceon_l2_inv_range;
outer_cache.clean_range = feroceon_l2_clean_range;
@@ -31841,9 +31772,9 @@ diff -Nur linux-3.14.17/arch/arm/mm/cache-feroceon-l2.c linux-imx6-3.14/arch/arm
enable_l2();
-diff -Nur linux-3.14.17/arch/arm/mm/cache-l2x0.c linux-imx6-3.14/arch/arm/mm/cache-l2x0.c
---- linux-3.14.17/arch/arm/mm/cache-l2x0.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mm/cache-l2x0.c 2014-09-11 18:05:54.278007108 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mm/cache-l2x0.c linux-3.14.22/arch/arm/mm/cache-l2x0.c
+--- linux-3.14.22.orig/arch/arm/mm/cache-l2x0.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mm/cache-l2x0.c 2014-10-22 14:55:49.934220001 -0500
@@ -16,18 +16,33 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
@@ -33660,9 +33591,9 @@ diff -Nur linux-3.14.17/arch/arm/mm/cache-l2x0.c linux-imx6-3.14/arch/arm/mm/cac
return 0;
}
-diff -Nur linux-3.14.17/arch/arm/mm/dma-mapping.c linux-imx6-3.14/arch/arm/mm/dma-mapping.c
---- linux-3.14.17/arch/arm/mm/dma-mapping.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mm/dma-mapping.c 2014-09-11 18:05:54.278007108 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mm/dma-mapping.c linux-3.14.22/arch/arm/mm/dma-mapping.c
+--- linux-3.14.22.orig/arch/arm/mm/dma-mapping.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mm/dma-mapping.c 2014-10-22 14:55:49.934220001 -0500
@@ -26,6 +26,7 @@
#include <linux/io.h>
#include <linux/vmalloc.h>
@@ -33671,9 +33602,9 @@ diff -Nur linux-3.14.17/arch/arm/mm/dma-mapping.c linux-imx6-3.14/arch/arm/mm/dm
#include <asm/memory.h>
#include <asm/highmem.h>
-diff -Nur linux-3.14.17/arch/arm/mm/fault.c linux-imx6-3.14/arch/arm/mm/fault.c
---- linux-3.14.17/arch/arm/mm/fault.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mm/fault.c 2014-09-11 18:05:54.278007108 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mm/fault.c linux-3.14.22/arch/arm/mm/fault.c
+--- linux-3.14.22.orig/arch/arm/mm/fault.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mm/fault.c 2014-10-22 14:55:49.934220001 -0500
@@ -449,8 +449,16 @@
if (pud_none(*pud_k))
@@ -33703,26 +33634,9 @@ diff -Nur linux-3.14.17/arch/arm/mm/fault.c linux-imx6-3.14/arch/arm/mm/fault.c
return 0;
bad_area:
-diff -Nur linux-3.14.17/arch/arm/mm/idmap.c linux-imx6-3.14/arch/arm/mm/idmap.c
---- linux-3.14.17/arch/arm/mm/idmap.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mm/idmap.c 2014-09-11 18:05:54.282007125 +0200
-@@ -25,13 +25,6 @@
- pr_warning("Failed to allocate identity pmd.\n");
- return;
- }
-- /*
-- * Copy the original PMD to ensure that the PMD entries for
-- * the kernel image are preserved.
-- */
-- if (!pud_none(*pud))
-- memcpy(pmd, pmd_offset(pud, 0),
-- PTRS_PER_PMD * sizeof(pmd_t));
- pud_populate(&init_mm, pud, pmd);
- pmd += pmd_index(addr);
- } else
-diff -Nur linux-3.14.17/arch/arm/mm/init.c linux-imx6-3.14/arch/arm/mm/init.c
---- linux-3.14.17/arch/arm/mm/init.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mm/init.c 2014-09-11 18:05:54.282007125 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mm/init.c linux-3.14.22/arch/arm/mm/init.c
+--- linux-3.14.22.orig/arch/arm/mm/init.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mm/init.c 2014-10-22 14:55:49.934220001 -0500
@@ -327,7 +327,7 @@
* reserve memory for DMA contigouos allocations,
* must come from DMA area inside low memory
@@ -33732,9 +33646,9 @@ diff -Nur linux-3.14.17/arch/arm/mm/init.c linux-imx6-3.14/arch/arm/mm/init.c
arm_memblock_steal_permitted = false;
memblock_dump_all();
-diff -Nur linux-3.14.17/arch/arm/mm/Kconfig linux-imx6-3.14/arch/arm/mm/Kconfig
---- linux-3.14.17/arch/arm/mm/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mm/Kconfig 2014-09-11 18:05:54.274007092 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mm/Kconfig linux-3.14.22/arch/arm/mm/Kconfig
+--- linux-3.14.22.orig/arch/arm/mm/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mm/Kconfig 2014-10-22 14:55:49.934220001 -0500
@@ -897,6 +897,57 @@
This option enables optimisations for the PL310 cache
controller.
@@ -33793,9 +33707,9 @@ diff -Nur linux-3.14.17/arch/arm/mm/Kconfig linux-imx6-3.14/arch/arm/mm/Kconfig
config CACHE_TAUROS2
bool "Enable the Tauros2 L2 cache controller"
depends on (ARCH_DOVE || ARCH_MMP || CPU_PJ4)
-diff -Nur linux-3.14.17/arch/arm/mm/l2c-common.c linux-imx6-3.14/arch/arm/mm/l2c-common.c
---- linux-3.14.17/arch/arm/mm/l2c-common.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/mm/l2c-common.c 2014-09-11 18:05:54.282007125 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mm/l2c-common.c linux-3.14.22/arch/arm/mm/l2c-common.c
+--- linux-3.14.22.orig/arch/arm/mm/l2c-common.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/mm/l2c-common.c 2014-10-22 14:55:49.934220001 -0500
@@ -0,0 +1,20 @@
+/*
+ * Copyright (C) 2010 ARM Ltd.
@@ -33817,9 +33731,9 @@ diff -Nur linux-3.14.17/arch/arm/mm/l2c-common.c linux-imx6-3.14/arch/arm/mm/l2c
+ if (outer_cache.disable)
+ outer_cache.disable();
+}
-diff -Nur linux-3.14.17/arch/arm/mm/l2c-l2x0-resume.S linux-imx6-3.14/arch/arm/mm/l2c-l2x0-resume.S
---- linux-3.14.17/arch/arm/mm/l2c-l2x0-resume.S 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm/mm/l2c-l2x0-resume.S 2014-09-11 18:05:54.282007125 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mm/l2c-l2x0-resume.S linux-3.14.22/arch/arm/mm/l2c-l2x0-resume.S
+--- linux-3.14.22.orig/arch/arm/mm/l2c-l2x0-resume.S 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm/mm/l2c-l2x0-resume.S 2014-10-22 14:55:49.934220001 -0500
@@ -0,0 +1,58 @@
+/*
+ * L2C-310 early resume code. This can be used by platforms to restore
@@ -33879,9 +33793,9 @@ diff -Nur linux-3.14.17/arch/arm/mm/l2c-l2x0-resume.S linux-imx6-3.14/arch/arm/m
+
+ .align
+1: .long l2x0_saved_regs - .
-diff -Nur linux-3.14.17/arch/arm/mm/Makefile linux-imx6-3.14/arch/arm/mm/Makefile
---- linux-3.14.17/arch/arm/mm/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mm/Makefile 2014-09-11 18:05:54.274007092 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mm/Makefile linux-3.14.22/arch/arm/mm/Makefile
+--- linux-3.14.22.orig/arch/arm/mm/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mm/Makefile 2014-10-22 14:55:49.934220001 -0500
@@ -95,7 +95,8 @@
AFLAGS_proc-v6.o :=-Wa,-march=armv6
AFLAGS_proc-v7.o :=-Wa,-march=armv7-a
@@ -33892,32 +33806,9 @@ diff -Nur linux-3.14.17/arch/arm/mm/Makefile linux-imx6-3.14/arch/arm/mm/Makefil
+obj-$(CONFIG_CACHE_L2X0) += cache-l2x0.o l2c-l2x0-resume.o
obj-$(CONFIG_CACHE_XSC3L2) += cache-xsc3l2.o
obj-$(CONFIG_CACHE_TAUROS2) += cache-tauros2.o
-diff -Nur linux-3.14.17/arch/arm/mm/mmu.c linux-imx6-3.14/arch/arm/mm/mmu.c
---- linux-3.14.17/arch/arm/mm/mmu.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mm/mmu.c 2014-09-11 18:05:54.282007125 +0200
-@@ -1436,8 +1436,8 @@
- return;
-
- /* remap kernel code and data */
-- map_start = init_mm.start_code & PMD_MASK;
-- map_end = ALIGN(init_mm.brk, PMD_SIZE);
-+ map_start = init_mm.start_code;
-+ map_end = init_mm.brk;
-
- /* get a handle on things... */
- pgd0 = pgd_offset_k(0);
-@@ -1472,7 +1472,7 @@
- }
-
- /* remap pmds for kernel mapping */
-- phys = __pa(map_start);
-+ phys = __pa(map_start) & PMD_MASK;
- do {
- *pmdk++ = __pmd(phys | pmdprot);
- phys += PMD_SIZE;
-diff -Nur linux-3.14.17/arch/arm/mm/proc-v7.S linux-imx6-3.14/arch/arm/mm/proc-v7.S
---- linux-3.14.17/arch/arm/mm/proc-v7.S 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm/mm/proc-v7.S 2014-09-11 18:05:54.286007140 +0200
+diff -Nur linux-3.14.22.orig/arch/arm/mm/proc-v7.S linux-3.14.22/arch/arm/mm/proc-v7.S
+--- linux-3.14.22.orig/arch/arm/mm/proc-v7.S 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm/mm/proc-v7.S 2014-10-22 14:55:49.934220001 -0500
@@ -336,6 +336,17 @@
mcrlt p15, 0, r10, c15, c0, 1 @ write diagnostic register
1:
@@ -33936,9 +33827,9 @@ diff -Nur linux-3.14.17/arch/arm/mm/proc-v7.S linux-imx6-3.14/arch/arm/mm/proc-v
/* Cortex-A15 Errata */
3: ldr r10, =0x00000c0f @ Cortex-A15 primary part number
-diff -Nur linux-3.14.17/arch/arm64/boot/dts/apm-mustang.dts linux-imx6-3.14/arch/arm64/boot/dts/apm-mustang.dts
---- linux-3.14.17/arch/arm64/boot/dts/apm-mustang.dts 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/boot/dts/apm-mustang.dts 2014-09-11 18:05:54.354007412 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/boot/dts/apm-mustang.dts linux-3.14.22/arch/arm64/boot/dts/apm-mustang.dts
+--- linux-3.14.22.orig/arch/arm64/boot/dts/apm-mustang.dts 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/boot/dts/apm-mustang.dts 2014-10-22 14:55:49.934220001 -0500
@@ -24,3 +24,7 @@
reg = < 0x1 0x00000000 0x0 0x80000000 >; /* Updated by bootloader */
};
@@ -33947,9 +33838,9 @@ diff -Nur linux-3.14.17/arch/arm64/boot/dts/apm-mustang.dts linux-imx6-3.14/arch
+&serial0 {
+ status = "ok";
+};
-diff -Nur linux-3.14.17/arch/arm64/boot/dts/apm-storm.dtsi linux-imx6-3.14/arch/arm64/boot/dts/apm-storm.dtsi
---- linux-3.14.17/arch/arm64/boot/dts/apm-storm.dtsi 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/boot/dts/apm-storm.dtsi 2014-09-11 18:05:54.354007412 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/boot/dts/apm-storm.dtsi linux-3.14.22/arch/arm64/boot/dts/apm-storm.dtsi
+--- linux-3.14.22.orig/arch/arm64/boot/dts/apm-storm.dtsi 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/boot/dts/apm-storm.dtsi 2014-10-22 14:55:49.934220001 -0500
@@ -176,16 +176,226 @@
reg-names = "csr-reg";
clock-output-names = "eth8clk";
@@ -34178,9 +34069,9 @@ diff -Nur linux-3.14.17/arch/arm64/boot/dts/apm-storm.dtsi linux-imx6-3.14/arch/
+ };
};
};
-diff -Nur linux-3.14.17/arch/arm64/boot/dts/clcd-panels.dtsi linux-imx6-3.14/arch/arm64/boot/dts/clcd-panels.dtsi
---- linux-3.14.17/arch/arm64/boot/dts/clcd-panels.dtsi 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm64/boot/dts/clcd-panels.dtsi 2014-09-11 18:05:54.354007412 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/boot/dts/clcd-panels.dtsi linux-3.14.22/arch/arm64/boot/dts/clcd-panels.dtsi
+--- linux-3.14.22.orig/arch/arm64/boot/dts/clcd-panels.dtsi 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm64/boot/dts/clcd-panels.dtsi 2014-10-22 14:55:49.934220001 -0500
@@ -0,0 +1,52 @@
+/*
+ * ARM Ltd. Versatile Express
@@ -34234,9 +34125,9 @@ diff -Nur linux-3.14.17/arch/arm64/boot/dts/clcd-panels.dtsi linux-imx6-3.14/arc
+ };
+ };
+};
-diff -Nur linux-3.14.17/arch/arm64/boot/dts/fvp-base-gicv2-psci.dts linux-imx6-3.14/arch/arm64/boot/dts/fvp-base-gicv2-psci.dts
---- linux-3.14.17/arch/arm64/boot/dts/fvp-base-gicv2-psci.dts 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm64/boot/dts/fvp-base-gicv2-psci.dts 2014-09-11 18:05:54.354007412 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/boot/dts/fvp-base-gicv2-psci.dts linux-3.14.22/arch/arm64/boot/dts/fvp-base-gicv2-psci.dts
+--- linux-3.14.22.orig/arch/arm64/boot/dts/fvp-base-gicv2-psci.dts 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm64/boot/dts/fvp-base-gicv2-psci.dts 2014-10-22 14:55:49.934220001 -0500
@@ -0,0 +1,266 @@
+/*
+ * Copyright (c) 2013, ARM Limited. All rights reserved.
@@ -34504,9 +34395,9 @@ diff -Nur linux-3.14.17/arch/arm64/boot/dts/fvp-base-gicv2-psci.dts linux-imx6-3
+};
+
+/include/ "clcd-panels.dtsi"
-diff -Nur linux-3.14.17/arch/arm64/boot/dts/juno.dts linux-imx6-3.14/arch/arm64/boot/dts/juno.dts
---- linux-3.14.17/arch/arm64/boot/dts/juno.dts 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm64/boot/dts/juno.dts 2014-09-11 18:05:54.354007412 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/boot/dts/juno.dts linux-3.14.22/arch/arm64/boot/dts/juno.dts
+--- linux-3.14.22.orig/arch/arm64/boot/dts/juno.dts 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm64/boot/dts/juno.dts 2014-10-22 14:55:49.934220001 -0500
@@ -0,0 +1,498 @@
+/*
+ * ARM Ltd. Juno Plaform
@@ -35006,9 +34897,9 @@ diff -Nur linux-3.14.17/arch/arm64/boot/dts/juno.dts linux-imx6-3.14/arch/arm64/
+ };
+ };
+};
-diff -Nur linux-3.14.17/arch/arm64/boot/dts/Makefile linux-imx6-3.14/arch/arm64/boot/dts/Makefile
---- linux-3.14.17/arch/arm64/boot/dts/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/boot/dts/Makefile 2014-09-11 18:05:54.354007412 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/boot/dts/Makefile linux-3.14.22/arch/arm64/boot/dts/Makefile
+--- linux-3.14.22.orig/arch/arm64/boot/dts/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/boot/dts/Makefile 2014-10-22 14:55:49.934220001 -0500
@@ -1,5 +1,7 @@
-dtb-$(CONFIG_ARCH_VEXPRESS) += rtsm_ve-aemv8a.dtb foundation-v8.dtb
+dtb-$(CONFIG_ARCH_VEXPRESS) += rtsm_ve-aemv8a.dtb foundation-v8.dtb \
@@ -35018,18 +34909,18 @@ diff -Nur linux-3.14.17/arch/arm64/boot/dts/Makefile linux-imx6-3.14/arch/arm64/
targets += dtbs
targets += $(dtb-y)
-diff -Nur linux-3.14.17/arch/arm64/boot/dts/rtsm_ve-aemv8a.dts linux-imx6-3.14/arch/arm64/boot/dts/rtsm_ve-aemv8a.dts
---- linux-3.14.17/arch/arm64/boot/dts/rtsm_ve-aemv8a.dts 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/boot/dts/rtsm_ve-aemv8a.dts 2014-09-11 18:05:54.354007412 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/boot/dts/rtsm_ve-aemv8a.dts linux-3.14.22/arch/arm64/boot/dts/rtsm_ve-aemv8a.dts
+--- linux-3.14.22.orig/arch/arm64/boot/dts/rtsm_ve-aemv8a.dts 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/boot/dts/rtsm_ve-aemv8a.dts 2014-10-22 14:55:49.934220001 -0500
@@ -157,3 +157,5 @@
/include/ "rtsm_ve-motherboard.dtsi"
};
};
+
+/include/ "clcd-panels.dtsi"
-diff -Nur linux-3.14.17/arch/arm64/boot/dts/rtsm_ve-motherboard.dtsi linux-imx6-3.14/arch/arm64/boot/dts/rtsm_ve-motherboard.dtsi
---- linux-3.14.17/arch/arm64/boot/dts/rtsm_ve-motherboard.dtsi 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/boot/dts/rtsm_ve-motherboard.dtsi 2014-09-11 18:05:54.354007412 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/boot/dts/rtsm_ve-motherboard.dtsi linux-3.14.22/arch/arm64/boot/dts/rtsm_ve-motherboard.dtsi
+--- linux-3.14.22.orig/arch/arm64/boot/dts/rtsm_ve-motherboard.dtsi 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/boot/dts/rtsm_ve-motherboard.dtsi 2014-10-22 14:55:49.934220001 -0500
@@ -182,6 +182,9 @@
interrupts = <14>;
clocks = <&v2m_oscclk1>, <&v2m_clk24mhz>;
@@ -35040,9 +34931,9 @@ diff -Nur linux-3.14.17/arch/arm64/boot/dts/rtsm_ve-motherboard.dtsi linux-imx6-
};
virtio_block@0130000 {
-diff -Nur linux-3.14.17/arch/arm64/crypto/aes-ce-ccm-core.S linux-imx6-3.14/arch/arm64/crypto/aes-ce-ccm-core.S
---- linux-3.14.17/arch/arm64/crypto/aes-ce-ccm-core.S 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm64/crypto/aes-ce-ccm-core.S 2014-09-11 18:05:54.354007412 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/crypto/aes-ce-ccm-core.S linux-3.14.22/arch/arm64/crypto/aes-ce-ccm-core.S
+--- linux-3.14.22.orig/arch/arm64/crypto/aes-ce-ccm-core.S 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm64/crypto/aes-ce-ccm-core.S 2014-10-22 14:55:49.934220001 -0500
@@ -0,0 +1,222 @@
+/*
+ * aesce-ccm-core.S - AES-CCM transform for ARMv8 with Crypto Extensions
@@ -35266,9 +35157,9 @@ diff -Nur linux-3.14.17/arch/arm64/crypto/aes-ce-ccm-core.S linux-imx6-3.14/arch
+ENTRY(ce_aes_ccm_decrypt)
+ aes_ccm_do_crypt 0
+ENDPROC(ce_aes_ccm_decrypt)
-diff -Nur linux-3.14.17/arch/arm64/crypto/aes-ce-ccm-glue.c linux-imx6-3.14/arch/arm64/crypto/aes-ce-ccm-glue.c
---- linux-3.14.17/arch/arm64/crypto/aes-ce-ccm-glue.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm64/crypto/aes-ce-ccm-glue.c 2014-09-11 18:05:54.354007412 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/crypto/aes-ce-ccm-glue.c linux-3.14.22/arch/arm64/crypto/aes-ce-ccm-glue.c
+--- linux-3.14.22.orig/arch/arm64/crypto/aes-ce-ccm-glue.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm64/crypto/aes-ce-ccm-glue.c 2014-10-22 14:55:49.938220001 -0500
@@ -0,0 +1,297 @@
+/*
+ * aes-ccm-glue.c - AES-CCM transform for ARMv8 with Crypto Extensions
@@ -35567,9 +35458,9 @@ diff -Nur linux-3.14.17/arch/arm64/crypto/aes-ce-ccm-glue.c linux-imx6-3.14/arch
+MODULE_AUTHOR("Ard Biesheuvel <ard.biesheuvel@linaro.org>");
+MODULE_LICENSE("GPL v2");
+MODULE_ALIAS("ccm(aes)");
-diff -Nur linux-3.14.17/arch/arm64/crypto/aes-ce-cipher.c linux-imx6-3.14/arch/arm64/crypto/aes-ce-cipher.c
---- linux-3.14.17/arch/arm64/crypto/aes-ce-cipher.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm64/crypto/aes-ce-cipher.c 2014-09-11 18:05:54.354007412 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/crypto/aes-ce-cipher.c linux-3.14.22/arch/arm64/crypto/aes-ce-cipher.c
+--- linux-3.14.22.orig/arch/arm64/crypto/aes-ce-cipher.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm64/crypto/aes-ce-cipher.c 2014-10-22 14:55:49.938220001 -0500
@@ -0,0 +1,155 @@
+/*
+ * aes-ce-cipher.c - core AES cipher using ARMv8 Crypto Extensions
@@ -35726,9 +35617,9 @@ diff -Nur linux-3.14.17/arch/arm64/crypto/aes-ce-cipher.c linux-imx6-3.14/arch/a
+
+module_cpu_feature_match(AES, aes_mod_init);
+module_exit(aes_mod_exit);
-diff -Nur linux-3.14.17/arch/arm64/crypto/aes-ce.S linux-imx6-3.14/arch/arm64/crypto/aes-ce.S
---- linux-3.14.17/arch/arm64/crypto/aes-ce.S 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm64/crypto/aes-ce.S 2014-09-11 18:05:54.354007412 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/crypto/aes-ce.S linux-3.14.22/arch/arm64/crypto/aes-ce.S
+--- linux-3.14.22.orig/arch/arm64/crypto/aes-ce.S 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm64/crypto/aes-ce.S 2014-10-22 14:55:49.938220001 -0500
@@ -0,0 +1,133 @@
+/*
+ * linux/arch/arm64/crypto/aes-ce.S - AES cipher for ARMv8 with
@@ -35863,9 +35754,9 @@ diff -Nur linux-3.14.17/arch/arm64/crypto/aes-ce.S linux-imx6-3.14/arch/arm64/cr
+ .endm
+
+#include "aes-modes.S"
-diff -Nur linux-3.14.17/arch/arm64/crypto/aes-glue.c linux-imx6-3.14/arch/arm64/crypto/aes-glue.c
---- linux-3.14.17/arch/arm64/crypto/aes-glue.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm64/crypto/aes-glue.c 2014-09-11 18:05:54.354007412 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/crypto/aes-glue.c linux-3.14.22/arch/arm64/crypto/aes-glue.c
+--- linux-3.14.22.orig/arch/arm64/crypto/aes-glue.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm64/crypto/aes-glue.c 2014-10-22 14:55:49.938220001 -0500
@@ -0,0 +1,446 @@
+/*
+ * linux/arch/arm64/crypto/aes-glue.c - wrapper code for ARMv8 AES
@@ -36313,9 +36204,9 @@ diff -Nur linux-3.14.17/arch/arm64/crypto/aes-glue.c linux-imx6-3.14/arch/arm64/
+module_init(aes_init);
+#endif
+module_exit(aes_exit);
-diff -Nur linux-3.14.17/arch/arm64/crypto/aes-modes.S linux-imx6-3.14/arch/arm64/crypto/aes-modes.S
---- linux-3.14.17/arch/arm64/crypto/aes-modes.S 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm64/crypto/aes-modes.S 2014-09-11 18:05:54.354007412 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/crypto/aes-modes.S linux-3.14.22/arch/arm64/crypto/aes-modes.S
+--- linux-3.14.22.orig/arch/arm64/crypto/aes-modes.S 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm64/crypto/aes-modes.S 2014-10-22 14:55:49.938220001 -0500
@@ -0,0 +1,532 @@
+/*
+ * linux/arch/arm64/crypto/aes-modes.S - chaining mode wrappers for AES
@@ -36849,9 +36740,9 @@ diff -Nur linux-3.14.17/arch/arm64/crypto/aes-modes.S linux-imx6-3.14/arch/arm64
+ FRAME_POP
+ ret
+AES_ENDPROC(aes_xts_decrypt)
-diff -Nur linux-3.14.17/arch/arm64/crypto/aes-neon.S linux-imx6-3.14/arch/arm64/crypto/aes-neon.S
---- linux-3.14.17/arch/arm64/crypto/aes-neon.S 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm64/crypto/aes-neon.S 2014-09-11 18:05:54.394007574 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/crypto/aes-neon.S linux-3.14.22/arch/arm64/crypto/aes-neon.S
+--- linux-3.14.22.orig/arch/arm64/crypto/aes-neon.S 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm64/crypto/aes-neon.S 2014-10-22 14:55:49.938220001 -0500
@@ -0,0 +1,382 @@
+/*
+ * linux/arch/arm64/crypto/aes-neon.S - AES cipher for ARMv8 NEON
@@ -37235,9 +37126,9 @@ diff -Nur linux-3.14.17/arch/arm64/crypto/aes-neon.S linux-imx6-3.14/arch/arm64/
+ .byte 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61
+ .byte 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26
+ .byte 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d
-diff -Nur linux-3.14.17/arch/arm64/crypto/ghash-ce-core.S linux-imx6-3.14/arch/arm64/crypto/ghash-ce-core.S
---- linux-3.14.17/arch/arm64/crypto/ghash-ce-core.S 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm64/crypto/ghash-ce-core.S 2014-09-11 18:05:54.394007574 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/crypto/ghash-ce-core.S linux-3.14.22/arch/arm64/crypto/ghash-ce-core.S
+--- linux-3.14.22.orig/arch/arm64/crypto/ghash-ce-core.S 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm64/crypto/ghash-ce-core.S 2014-10-22 14:55:49.938220001 -0500
@@ -0,0 +1,79 @@
+/*
+ * Accelerated GHASH implementation with ARMv8 PMULL instructions.
@@ -37318,9 +37209,9 @@ diff -Nur linux-3.14.17/arch/arm64/crypto/ghash-ce-core.S linux-imx6-3.14/arch/a
+ st1 {XL.16b}, [x1]
+ ret
+ENDPROC(pmull_ghash_update)
-diff -Nur linux-3.14.17/arch/arm64/crypto/ghash-ce-glue.c linux-imx6-3.14/arch/arm64/crypto/ghash-ce-glue.c
---- linux-3.14.17/arch/arm64/crypto/ghash-ce-glue.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm64/crypto/ghash-ce-glue.c 2014-09-11 18:05:54.394007574 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/crypto/ghash-ce-glue.c linux-3.14.22/arch/arm64/crypto/ghash-ce-glue.c
+--- linux-3.14.22.orig/arch/arm64/crypto/ghash-ce-glue.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm64/crypto/ghash-ce-glue.c 2014-10-22 14:55:49.938220001 -0500
@@ -0,0 +1,156 @@
+/*
+ * Accelerated GHASH implementation with ARMv8 PMULL instructions.
@@ -37478,9 +37369,9 @@ diff -Nur linux-3.14.17/arch/arm64/crypto/ghash-ce-glue.c linux-imx6-3.14/arch/a
+
+module_cpu_feature_match(PMULL, ghash_ce_mod_init);
+module_exit(ghash_ce_mod_exit);
-diff -Nur linux-3.14.17/arch/arm64/crypto/Kconfig linux-imx6-3.14/arch/arm64/crypto/Kconfig
---- linux-3.14.17/arch/arm64/crypto/Kconfig 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm64/crypto/Kconfig 2014-09-11 18:05:54.354007412 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/crypto/Kconfig linux-3.14.22/arch/arm64/crypto/Kconfig
+--- linux-3.14.22.orig/arch/arm64/crypto/Kconfig 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm64/crypto/Kconfig 2014-10-22 14:55:49.938220001 -0500
@@ -0,0 +1,53 @@
+
+menuconfig ARM64_CRYPTO
@@ -37535,9 +37426,9 @@ diff -Nur linux-3.14.17/arch/arm64/crypto/Kconfig linux-imx6-3.14/arch/arm64/cry
+ select CRYPTO_ABLK_HELPER
+
+endif
-diff -Nur linux-3.14.17/arch/arm64/crypto/Makefile linux-imx6-3.14/arch/arm64/crypto/Makefile
---- linux-3.14.17/arch/arm64/crypto/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm64/crypto/Makefile 2014-09-11 18:05:54.354007412 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/crypto/Makefile linux-3.14.22/arch/arm64/crypto/Makefile
+--- linux-3.14.22.orig/arch/arm64/crypto/Makefile 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm64/crypto/Makefile 2014-10-22 14:55:49.938220001 -0500
@@ -0,0 +1,38 @@
+#
+# linux/arch/arm64/crypto/Makefile
@@ -37577,9 +37468,9 @@ diff -Nur linux-3.14.17/arch/arm64/crypto/Makefile linux-imx6-3.14/arch/arm64/cr
+
+$(obj)/aes-glue-%.o: $(src)/aes-glue.c FORCE
+ $(call if_changed_dep,cc_o_c)
-diff -Nur linux-3.14.17/arch/arm64/crypto/sha1-ce-core.S linux-imx6-3.14/arch/arm64/crypto/sha1-ce-core.S
---- linux-3.14.17/arch/arm64/crypto/sha1-ce-core.S 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm64/crypto/sha1-ce-core.S 2014-09-11 18:05:54.394007574 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/crypto/sha1-ce-core.S linux-3.14.22/arch/arm64/crypto/sha1-ce-core.S
+--- linux-3.14.22.orig/arch/arm64/crypto/sha1-ce-core.S 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm64/crypto/sha1-ce-core.S 2014-10-22 14:55:49.938220001 -0500
@@ -0,0 +1,153 @@
+/*
+ * sha1-ce-core.S - SHA-1 secure hash using ARMv8 Crypto Extensions
@@ -37734,9 +37625,9 @@ diff -Nur linux-3.14.17/arch/arm64/crypto/sha1-ce-core.S linux-imx6-3.14/arch/ar
+ str dgb, [x2, #16]
+ ret
+ENDPROC(sha1_ce_transform)
-diff -Nur linux-3.14.17/arch/arm64/crypto/sha1-ce-glue.c linux-imx6-3.14/arch/arm64/crypto/sha1-ce-glue.c
---- linux-3.14.17/arch/arm64/crypto/sha1-ce-glue.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm64/crypto/sha1-ce-glue.c 2014-09-11 18:05:54.394007574 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/crypto/sha1-ce-glue.c linux-3.14.22/arch/arm64/crypto/sha1-ce-glue.c
+--- linux-3.14.22.orig/arch/arm64/crypto/sha1-ce-glue.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm64/crypto/sha1-ce-glue.c 2014-10-22 14:55:49.938220001 -0500
@@ -0,0 +1,174 @@
+/*
+ * sha1-ce-glue.c - SHA-1 secure hash using ARMv8 Crypto Extensions
@@ -37912,9 +37803,9 @@ diff -Nur linux-3.14.17/arch/arm64/crypto/sha1-ce-glue.c linux-imx6-3.14/arch/ar
+
+module_cpu_feature_match(SHA1, sha1_ce_mod_init);
+module_exit(sha1_ce_mod_fini);
-diff -Nur linux-3.14.17/arch/arm64/crypto/sha2-ce-core.S linux-imx6-3.14/arch/arm64/crypto/sha2-ce-core.S
---- linux-3.14.17/arch/arm64/crypto/sha2-ce-core.S 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm64/crypto/sha2-ce-core.S 2014-09-11 18:05:54.394007574 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/crypto/sha2-ce-core.S linux-3.14.22/arch/arm64/crypto/sha2-ce-core.S
+--- linux-3.14.22.orig/arch/arm64/crypto/sha2-ce-core.S 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm64/crypto/sha2-ce-core.S 2014-10-22 14:55:49.938220001 -0500
@@ -0,0 +1,156 @@
+/*
+ * sha2-ce-core.S - core SHA-224/SHA-256 transform using v8 Crypto Extensions
@@ -38072,9 +37963,9 @@ diff -Nur linux-3.14.17/arch/arm64/crypto/sha2-ce-core.S linux-imx6-3.14/arch/ar
+3: stp dga, dgb, [x2]
+ ret
+ENDPROC(sha2_ce_transform)
-diff -Nur linux-3.14.17/arch/arm64/crypto/sha2-ce-glue.c linux-imx6-3.14/arch/arm64/crypto/sha2-ce-glue.c
---- linux-3.14.17/arch/arm64/crypto/sha2-ce-glue.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm64/crypto/sha2-ce-glue.c 2014-09-11 18:05:54.394007574 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/crypto/sha2-ce-glue.c linux-3.14.22/arch/arm64/crypto/sha2-ce-glue.c
+--- linux-3.14.22.orig/arch/arm64/crypto/sha2-ce-glue.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm64/crypto/sha2-ce-glue.c 2014-10-22 14:55:49.938220001 -0500
@@ -0,0 +1,255 @@
+/*
+ * sha2-ce-glue.c - SHA-224/SHA-256 using ARMv8 Crypto Extensions
@@ -38331,9 +38222,9 @@ diff -Nur linux-3.14.17/arch/arm64/crypto/sha2-ce-glue.c linux-imx6-3.14/arch/ar
+
+module_cpu_feature_match(SHA2, sha2_ce_mod_init);
+module_exit(sha2_ce_mod_fini);
-diff -Nur linux-3.14.17/arch/arm64/include/asm/bL_switcher.h linux-imx6-3.14/arch/arm64/include/asm/bL_switcher.h
---- linux-3.14.17/arch/arm64/include/asm/bL_switcher.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm64/include/asm/bL_switcher.h 2014-09-11 18:05:54.398007590 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/include/asm/bL_switcher.h linux-3.14.22/arch/arm64/include/asm/bL_switcher.h
+--- linux-3.14.22.orig/arch/arm64/include/asm/bL_switcher.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm64/include/asm/bL_switcher.h 2014-10-22 14:55:49.938220001 -0500
@@ -0,0 +1,54 @@
+/*
+ * Based on the stubs for the ARM implementation which is:
@@ -38389,9 +38280,9 @@ diff -Nur linux-3.14.17/arch/arm64/include/asm/bL_switcher.h linux-imx6-3.14/arc
+static inline int bL_switcher_get_logical_index(u32 mpidr) { return -EUNATCH; }
+
+#endif
-diff -Nur linux-3.14.17/arch/arm64/include/asm/cacheflush.h linux-imx6-3.14/arch/arm64/include/asm/cacheflush.h
---- linux-3.14.17/arch/arm64/include/asm/cacheflush.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/include/asm/cacheflush.h 2014-09-11 18:05:54.398007590 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/include/asm/cacheflush.h linux-3.14.22/arch/arm64/include/asm/cacheflush.h
+--- linux-3.14.22.orig/arch/arm64/include/asm/cacheflush.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/include/asm/cacheflush.h 2014-10-22 14:55:49.938220001 -0500
@@ -85,6 +85,13 @@
}
@@ -38406,9 +38297,9 @@ diff -Nur linux-3.14.17/arch/arm64/include/asm/cacheflush.h linux-imx6-3.14/arch
* Copy user data from/to a page which is mapped into a different
* processes address space. Really, we want to allow our "user
* space" model to handle this.
-diff -Nur linux-3.14.17/arch/arm64/include/asm/compat.h linux-imx6-3.14/arch/arm64/include/asm/compat.h
---- linux-3.14.17/arch/arm64/include/asm/compat.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/include/asm/compat.h 2014-09-11 18:05:54.398007590 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/include/asm/compat.h linux-3.14.22/arch/arm64/include/asm/compat.h
+--- linux-3.14.22.orig/arch/arm64/include/asm/compat.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/include/asm/compat.h 2014-10-22 14:55:50.170220001 -0500
@@ -228,7 +228,7 @@
return (u32)(unsigned long)uptr;
}
@@ -38430,9 +38321,9 @@ diff -Nur linux-3.14.17/arch/arm64/include/asm/compat.h linux-imx6-3.14/arch/arm
static inline int is_compat_thread(struct thread_info *thread)
{
return 0;
-diff -Nur linux-3.14.17/arch/arm64/include/asm/cpufeature.h linux-imx6-3.14/arch/arm64/include/asm/cpufeature.h
---- linux-3.14.17/arch/arm64/include/asm/cpufeature.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm64/include/asm/cpufeature.h 2014-09-11 18:05:54.398007590 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/include/asm/cpufeature.h linux-3.14.22/arch/arm64/include/asm/cpufeature.h
+--- linux-3.14.22.orig/arch/arm64/include/asm/cpufeature.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm64/include/asm/cpufeature.h 2014-10-22 14:55:50.170220001 -0500
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2014 Linaro Ltd. <ard.biesheuvel@linaro.org>
@@ -38463,9 +38354,9 @@ diff -Nur linux-3.14.17/arch/arm64/include/asm/cpufeature.h linux-imx6-3.14/arch
+}
+
+#endif
-diff -Nur linux-3.14.17/arch/arm64/include/asm/debug-monitors.h linux-imx6-3.14/arch/arm64/include/asm/debug-monitors.h
---- linux-3.14.17/arch/arm64/include/asm/debug-monitors.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/include/asm/debug-monitors.h 2014-09-11 18:05:54.398007590 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/include/asm/debug-monitors.h linux-3.14.22/arch/arm64/include/asm/debug-monitors.h
+--- linux-3.14.22.orig/arch/arm64/include/asm/debug-monitors.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/include/asm/debug-monitors.h 2014-10-22 14:55:50.170220001 -0500
@@ -26,6 +26,53 @@
#define DBG_ESR_EVT_HWWP 0x2
#define DBG_ESR_EVT_BRK 0x6
@@ -38544,9 +38435,9 @@ diff -Nur linux-3.14.17/arch/arm64/include/asm/debug-monitors.h linux-imx6-3.14/
#define DBG_ARCH_ID_RESERVED 0 /* In case of ptrace ABI updates. */
#define DBG_HOOK_HANDLED 0
-diff -Nur linux-3.14.17/arch/arm64/include/asm/dma-mapping.h linux-imx6-3.14/arch/arm64/include/asm/dma-mapping.h
---- linux-3.14.17/arch/arm64/include/asm/dma-mapping.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/include/asm/dma-mapping.h 2014-09-11 18:05:54.398007590 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/include/asm/dma-mapping.h linux-3.14.22/arch/arm64/include/asm/dma-mapping.h
+--- linux-3.14.22.orig/arch/arm64/include/asm/dma-mapping.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/include/asm/dma-mapping.h 2014-10-22 14:55:50.170220001 -0500
@@ -28,6 +28,8 @@
#define DMA_ERROR_CODE (~(dma_addr_t)0)
@@ -38568,9 +38459,9 @@ diff -Nur linux-3.14.17/arch/arm64/include/asm/dma-mapping.h linux-imx6-3.14/arc
#include <asm-generic/dma-mapping-common.h>
static inline dma_addr_t phys_to_dma(struct device *dev, phys_addr_t paddr)
-diff -Nur linux-3.14.17/arch/arm64/include/asm/ftrace.h linux-imx6-3.14/arch/arm64/include/asm/ftrace.h
---- linux-3.14.17/arch/arm64/include/asm/ftrace.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm64/include/asm/ftrace.h 2014-09-11 18:05:54.402007605 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/include/asm/ftrace.h linux-3.14.22/arch/arm64/include/asm/ftrace.h
+--- linux-3.14.22.orig/arch/arm64/include/asm/ftrace.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm64/include/asm/ftrace.h 2014-10-22 14:55:50.170220001 -0500
@@ -0,0 +1,59 @@
+/*
+ * arch/arm64/include/asm/ftrace.h
@@ -38631,9 +38522,9 @@ diff -Nur linux-3.14.17/arch/arm64/include/asm/ftrace.h linux-imx6-3.14/arch/arm
+#endif /* ifndef __ASSEMBLY__ */
+
+#endif /* __ASM_FTRACE_H */
-diff -Nur linux-3.14.17/arch/arm64/include/asm/hwcap.h linux-imx6-3.14/arch/arm64/include/asm/hwcap.h
---- linux-3.14.17/arch/arm64/include/asm/hwcap.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/include/asm/hwcap.h 2014-09-11 18:05:54.402007605 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/include/asm/hwcap.h linux-3.14.22/arch/arm64/include/asm/hwcap.h
+--- linux-3.14.22.orig/arch/arm64/include/asm/hwcap.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/include/asm/hwcap.h 2014-10-22 14:55:50.170220001 -0500
@@ -32,6 +32,12 @@
#define COMPAT_HWCAP_IDIV (COMPAT_HWCAP_IDIVA|COMPAT_HWCAP_IDIVT)
#define COMPAT_HWCAP_EVTSTRM (1 << 21)
@@ -38657,9 +38548,9 @@ diff -Nur linux-3.14.17/arch/arm64/include/asm/hwcap.h linux-imx6-3.14/arch/arm6
#endif
extern unsigned long elf_hwcap;
-diff -Nur linux-3.14.17/arch/arm64/include/asm/insn.h linux-imx6-3.14/arch/arm64/include/asm/insn.h
---- linux-3.14.17/arch/arm64/include/asm/insn.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/include/asm/insn.h 2014-09-11 18:05:54.402007605 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/include/asm/insn.h linux-3.14.22/arch/arm64/include/asm/insn.h
+--- linux-3.14.22.orig/arch/arm64/include/asm/insn.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/include/asm/insn.h 2014-10-22 14:55:50.174220001 -0500
@@ -16,11 +16,14 @@
*/
#ifndef __ASM_INSN_H
@@ -38682,9 +38573,9 @@ diff -Nur linux-3.14.17/arch/arm64/include/asm/insn.h linux-imx6-3.14/arch/arm64
+#endif /* __ASSEMBLY__ */
+
#endif /* __ASM_INSN_H */
-diff -Nur linux-3.14.17/arch/arm64/include/asm/irqflags.h linux-imx6-3.14/arch/arm64/include/asm/irqflags.h
---- linux-3.14.17/arch/arm64/include/asm/irqflags.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/include/asm/irqflags.h 2014-09-11 18:05:54.402007605 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/include/asm/irqflags.h linux-3.14.22/arch/arm64/include/asm/irqflags.h
+--- linux-3.14.22.orig/arch/arm64/include/asm/irqflags.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/include/asm/irqflags.h 2014-10-22 14:55:50.174220001 -0500
@@ -90,5 +90,28 @@
return flags & PSR_I_BIT;
}
@@ -38714,9 +38605,9 @@ diff -Nur linux-3.14.17/arch/arm64/include/asm/irqflags.h linux-imx6-3.14/arch/a
+
#endif
#endif
-diff -Nur linux-3.14.17/arch/arm64/include/asm/Kbuild linux-imx6-3.14/arch/arm64/include/asm/Kbuild
---- linux-3.14.17/arch/arm64/include/asm/Kbuild 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/include/asm/Kbuild 2014-09-11 18:05:54.394007574 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/include/asm/Kbuild linux-3.14.22/arch/arm64/include/asm/Kbuild
+--- linux-3.14.22.orig/arch/arm64/include/asm/Kbuild 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/include/asm/Kbuild 2014-10-22 14:55:50.174220001 -0500
@@ -35,6 +35,7 @@
generic-y += sembuf.h
generic-y += serial.h
@@ -38725,9 +38616,9 @@ diff -Nur linux-3.14.17/arch/arm64/include/asm/Kbuild linux-imx6-3.14/arch/arm64
generic-y += sizes.h
generic-y += socket.h
generic-y += sockios.h
-diff -Nur linux-3.14.17/arch/arm64/include/asm/kgdb.h linux-imx6-3.14/arch/arm64/include/asm/kgdb.h
---- linux-3.14.17/arch/arm64/include/asm/kgdb.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm64/include/asm/kgdb.h 2014-09-11 18:05:54.402007605 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/include/asm/kgdb.h linux-3.14.22/arch/arm64/include/asm/kgdb.h
+--- linux-3.14.22.orig/arch/arm64/include/asm/kgdb.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm64/include/asm/kgdb.h 2014-10-22 14:55:50.174220001 -0500
@@ -0,0 +1,84 @@
+/*
+ * AArch64 KGDB support
@@ -38813,9 +38704,9 @@ diff -Nur linux-3.14.17/arch/arm64/include/asm/kgdb.h linux-imx6-3.14/arch/arm64
+ (_EXTRA_REGS * 4))
+
+#endif /* __ASM_KGDB_H */
-diff -Nur linux-3.14.17/arch/arm64/include/asm/page.h linux-imx6-3.14/arch/arm64/include/asm/page.h
---- linux-3.14.17/arch/arm64/include/asm/page.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/include/asm/page.h 2014-09-11 18:05:54.402007605 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/include/asm/page.h linux-3.14.22/arch/arm64/include/asm/page.h
+--- linux-3.14.22.orig/arch/arm64/include/asm/page.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/include/asm/page.h 2014-10-22 14:55:50.174220001 -0500
@@ -31,6 +31,15 @@
/* We do define AT_SYSINFO_EHDR but don't use the gate mechanism */
#define __HAVE_ARCH_GATE_AREA 1
@@ -38832,9 +38723,9 @@ diff -Nur linux-3.14.17/arch/arm64/include/asm/page.h linux-imx6-3.14/arch/arm64
#ifndef __ASSEMBLY__
#ifdef CONFIG_ARM64_64K_PAGES
-diff -Nur linux-3.14.17/arch/arm64/include/asm/pgtable.h linux-imx6-3.14/arch/arm64/include/asm/pgtable.h
---- linux-3.14.17/arch/arm64/include/asm/pgtable.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/include/asm/pgtable.h 2014-09-11 18:05:54.446007779 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/include/asm/pgtable.h linux-3.14.22/arch/arm64/include/asm/pgtable.h
+--- linux-3.14.22.orig/arch/arm64/include/asm/pgtable.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/include/asm/pgtable.h 2014-10-22 14:55:50.174220001 -0500
@@ -227,36 +227,36 @@
#define __HAVE_ARCH_PTE_SPECIAL
@@ -38927,9 +38818,9 @@ diff -Nur linux-3.14.17/arch/arm64/include/asm/pgtable.h linux-imx6-3.14/arch/ar
/*
* Encode and decode a swap entry:
* bits 0-1: present (must be zero)
-diff -Nur linux-3.14.17/arch/arm64/include/asm/ptrace.h linux-imx6-3.14/arch/arm64/include/asm/ptrace.h
---- linux-3.14.17/arch/arm64/include/asm/ptrace.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/include/asm/ptrace.h 2014-09-11 18:05:54.446007779 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/include/asm/ptrace.h linux-3.14.22/arch/arm64/include/asm/ptrace.h
+--- linux-3.14.22.orig/arch/arm64/include/asm/ptrace.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/include/asm/ptrace.h 2014-10-22 14:55:50.174220001 -0500
@@ -68,6 +68,7 @@
/* Architecturally defined mapping between AArch32 and AArch64 registers */
@@ -38961,9 +38852,9 @@ diff -Nur linux-3.14.17/arch/arm64/include/asm/ptrace.h linux-imx6-3.14/arch/arm
#ifdef CONFIG_SMP
extern unsigned long profile_pc(struct pt_regs *regs);
-diff -Nur linux-3.14.17/arch/arm64/include/asm/syscall.h linux-imx6-3.14/arch/arm64/include/asm/syscall.h
---- linux-3.14.17/arch/arm64/include/asm/syscall.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/include/asm/syscall.h 2014-09-11 18:05:54.450007796 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/include/asm/syscall.h linux-3.14.22/arch/arm64/include/asm/syscall.h
+--- linux-3.14.22.orig/arch/arm64/include/asm/syscall.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/include/asm/syscall.h 2014-10-22 14:55:50.178220001 -0500
@@ -18,6 +18,7 @@
#include <linux/err.h>
@@ -38972,9 +38863,9 @@ diff -Nur linux-3.14.17/arch/arm64/include/asm/syscall.h linux-imx6-3.14/arch/ar
static inline int syscall_get_nr(struct task_struct *task,
struct pt_regs *regs)
-diff -Nur linux-3.14.17/arch/arm64/include/asm/thread_info.h linux-imx6-3.14/arch/arm64/include/asm/thread_info.h
---- linux-3.14.17/arch/arm64/include/asm/thread_info.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/include/asm/thread_info.h 2014-09-11 18:05:54.450007796 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/include/asm/thread_info.h linux-3.14.22/arch/arm64/include/asm/thread_info.h
+--- linux-3.14.22.orig/arch/arm64/include/asm/thread_info.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/include/asm/thread_info.h 2014-10-22 14:55:50.178220001 -0500
@@ -91,6 +91,9 @@
/*
* thread information flags:
@@ -39013,9 +38904,9 @@ diff -Nur linux-3.14.17/arch/arm64/include/asm/thread_info.h linux-imx6-3.14/arc
+
#endif /* __KERNEL__ */
#endif /* __ASM_THREAD_INFO_H */
-diff -Nur linux-3.14.17/arch/arm64/include/asm/topology.h linux-imx6-3.14/arch/arm64/include/asm/topology.h
---- linux-3.14.17/arch/arm64/include/asm/topology.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm64/include/asm/topology.h 2014-09-11 18:05:54.450007796 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/include/asm/topology.h linux-3.14.22/arch/arm64/include/asm/topology.h
+--- linux-3.14.22.orig/arch/arm64/include/asm/topology.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm64/include/asm/topology.h 2014-10-22 14:55:50.178220001 -0500
@@ -0,0 +1,70 @@
+#ifndef __ASM_TOPOLOGY_H
+#define __ASM_TOPOLOGY_H
@@ -39087,18 +38978,18 @@ diff -Nur linux-3.14.17/arch/arm64/include/asm/topology.h linux-imx6-3.14/arch/a
+#include <asm-generic/topology.h>
+
+#endif /* _ASM_ARM_TOPOLOGY_H */
-diff -Nur linux-3.14.17/arch/arm64/include/asm/unistd.h linux-imx6-3.14/arch/arm64/include/asm/unistd.h
---- linux-3.14.17/arch/arm64/include/asm/unistd.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/include/asm/unistd.h 2014-09-11 18:05:54.450007796 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/include/asm/unistd.h linux-3.14.22/arch/arm64/include/asm/unistd.h
+--- linux-3.14.22.orig/arch/arm64/include/asm/unistd.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/include/asm/unistd.h 2014-10-22 14:55:50.178220001 -0500
@@ -28,3 +28,5 @@
#endif
#define __ARCH_WANT_SYS_CLONE
#include <uapi/asm/unistd.h>
+
+#define NR_syscalls (__NR_syscalls)
-diff -Nur linux-3.14.17/arch/arm64/include/uapi/asm/Kbuild linux-imx6-3.14/arch/arm64/include/uapi/asm/Kbuild
---- linux-3.14.17/arch/arm64/include/uapi/asm/Kbuild 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/include/uapi/asm/Kbuild 2014-09-11 18:05:54.458007828 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/include/uapi/asm/Kbuild linux-3.14.22/arch/arm64/include/uapi/asm/Kbuild
+--- linux-3.14.22.orig/arch/arm64/include/uapi/asm/Kbuild 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/include/uapi/asm/Kbuild 2014-10-22 14:55:50.178220001 -0500
@@ -9,6 +9,7 @@
header-y += fcntl.h
header-y += hwcap.h
@@ -39107,9 +38998,9 @@ diff -Nur linux-3.14.17/arch/arm64/include/uapi/asm/Kbuild linux-imx6-3.14/arch/
header-y += param.h
header-y += ptrace.h
header-y += setup.h
-diff -Nur linux-3.14.17/arch/arm64/include/uapi/asm/perf_regs.h linux-imx6-3.14/arch/arm64/include/uapi/asm/perf_regs.h
---- linux-3.14.17/arch/arm64/include/uapi/asm/perf_regs.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm64/include/uapi/asm/perf_regs.h 2014-09-11 18:05:54.458007828 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/include/uapi/asm/perf_regs.h linux-3.14.22/arch/arm64/include/uapi/asm/perf_regs.h
+--- linux-3.14.22.orig/arch/arm64/include/uapi/asm/perf_regs.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm64/include/uapi/asm/perf_regs.h 2014-10-22 14:55:50.178220001 -0500
@@ -0,0 +1,40 @@
+#ifndef _ASM_ARM64_PERF_REGS_H
+#define _ASM_ARM64_PERF_REGS_H
@@ -39151,9 +39042,9 @@ diff -Nur linux-3.14.17/arch/arm64/include/uapi/asm/perf_regs.h linux-imx6-3.14/
+ PERF_REG_ARM64_MAX,
+};
+#endif /* _ASM_ARM64_PERF_REGS_H */
-diff -Nur linux-3.14.17/arch/arm64/Kconfig linux-imx6-3.14/arch/arm64/Kconfig
---- linux-3.14.17/arch/arm64/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/Kconfig 2014-09-11 18:05:54.354007412 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/Kconfig linux-3.14.22/arch/arm64/Kconfig
+--- linux-3.14.22.orig/arch/arm64/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/Kconfig 2014-10-22 14:55:50.178220001 -0500
@@ -4,6 +4,7 @@
select ARCH_USE_CMPXCHG_LOCKREF
select ARCH_SUPPORTS_ATOMIC_RMW
@@ -39351,9 +39242,9 @@ diff -Nur linux-3.14.17/arch/arm64/Kconfig linux-imx6-3.14/arch/arm64/Kconfig
+endif
source "lib/Kconfig"
-diff -Nur linux-3.14.17/arch/arm64/kernel/arm64ksyms.c linux-imx6-3.14/arch/arm64/kernel/arm64ksyms.c
---- linux-3.14.17/arch/arm64/kernel/arm64ksyms.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/kernel/arm64ksyms.c 2014-09-11 18:05:54.458007828 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/kernel/arm64ksyms.c linux-3.14.22/arch/arm64/kernel/arm64ksyms.c
+--- linux-3.14.22.orig/arch/arm64/kernel/arm64ksyms.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/kernel/arm64ksyms.c 2014-10-22 14:55:50.182220001 -0500
@@ -56,3 +56,7 @@
EXPORT_SYMBOL(test_and_clear_bit);
EXPORT_SYMBOL(change_bit);
@@ -39362,9 +39253,9 @@ diff -Nur linux-3.14.17/arch/arm64/kernel/arm64ksyms.c linux-imx6-3.14/arch/arm6
+#ifdef CONFIG_FUNCTION_TRACER
+EXPORT_SYMBOL(_mcount);
+#endif
-diff -Nur linux-3.14.17/arch/arm64/kernel/debug-monitors.c linux-imx6-3.14/arch/arm64/kernel/debug-monitors.c
---- linux-3.14.17/arch/arm64/kernel/debug-monitors.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/kernel/debug-monitors.c 2014-09-11 18:05:54.458007828 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/kernel/debug-monitors.c linux-3.14.22/arch/arm64/kernel/debug-monitors.c
+--- linux-3.14.22.orig/arch/arm64/kernel/debug-monitors.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/kernel/debug-monitors.c 2014-10-22 14:55:50.182220001 -0500
@@ -138,6 +138,7 @@
{
asm volatile("msr oslar_el1, %0" : : "r" (0));
@@ -39383,9 +39274,9 @@ diff -Nur linux-3.14.17/arch/arm64/kernel/debug-monitors.c linux-imx6-3.14/arch/
if (!user_mode(regs))
return -EFAULT;
-diff -Nur linux-3.14.17/arch/arm64/kernel/entry-ftrace.S linux-imx6-3.14/arch/arm64/kernel/entry-ftrace.S
---- linux-3.14.17/arch/arm64/kernel/entry-ftrace.S 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm64/kernel/entry-ftrace.S 2014-09-11 18:05:54.462007844 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/kernel/entry-ftrace.S linux-3.14.22/arch/arm64/kernel/entry-ftrace.S
+--- linux-3.14.22.orig/arch/arm64/kernel/entry-ftrace.S 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm64/kernel/entry-ftrace.S 2014-10-22 14:55:50.182220001 -0500
@@ -0,0 +1,218 @@
+/*
+ * arch/arm64/kernel/entry-ftrace.S
@@ -39605,9 +39496,9 @@ diff -Nur linux-3.14.17/arch/arm64/kernel/entry-ftrace.S linux-imx6-3.14/arch/ar
+ ret
+END(return_to_handler)
+#endif /* CONFIG_FUNCTION_GRAPH_TRACER */
-diff -Nur linux-3.14.17/arch/arm64/kernel/entry.S linux-imx6-3.14/arch/arm64/kernel/entry.S
---- linux-3.14.17/arch/arm64/kernel/entry.S 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/kernel/entry.S 2014-09-11 18:05:54.462007844 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/kernel/entry.S linux-3.14.22/arch/arm64/kernel/entry.S
+--- linux-3.14.22.orig/arch/arm64/kernel/entry.S 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/kernel/entry.S 2014-10-22 14:55:50.182220001 -0500
@@ -630,8 +630,9 @@
enable_irq
@@ -39644,9 +39535,9 @@ diff -Nur linux-3.14.17/arch/arm64/kernel/entry.S linux-imx6-3.14/arch/arm64/ker
b ret_to_user
/*
-diff -Nur linux-3.14.17/arch/arm64/kernel/ftrace.c linux-imx6-3.14/arch/arm64/kernel/ftrace.c
---- linux-3.14.17/arch/arm64/kernel/ftrace.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm64/kernel/ftrace.c 2014-09-11 18:05:54.462007844 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/kernel/ftrace.c linux-3.14.22/arch/arm64/kernel/ftrace.c
+--- linux-3.14.22.orig/arch/arm64/kernel/ftrace.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm64/kernel/ftrace.c 2014-10-22 14:55:50.182220001 -0500
@@ -0,0 +1,177 @@
+/*
+ * arch/arm64/kernel/ftrace.c
@@ -39825,9 +39716,9 @@ diff -Nur linux-3.14.17/arch/arm64/kernel/ftrace.c linux-imx6-3.14/arch/arm64/ke
+}
+#endif /* CONFIG_DYNAMIC_FTRACE */
+#endif /* CONFIG_FUNCTION_GRAPH_TRACER */
-diff -Nur linux-3.14.17/arch/arm64/kernel/head.S linux-imx6-3.14/arch/arm64/kernel/head.S
---- linux-3.14.17/arch/arm64/kernel/head.S 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/kernel/head.S 2014-09-11 18:05:54.462007844 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/kernel/head.S linux-3.14.22/arch/arm64/kernel/head.S
+--- linux-3.14.22.orig/arch/arm64/kernel/head.S 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/kernel/head.S 2014-10-22 14:55:50.182220001 -0500
@@ -26,6 +26,7 @@
#include <asm/assembler.h>
#include <asm/ptrace.h>
@@ -40017,9 +39908,9 @@ diff -Nur linux-3.14.17/arch/arm64/kernel/head.S linux-imx6-3.14/arch/arm64/kern
.quad processor_id // x4
.quad __fdt_pointer // x5
.quad memstart_addr // x6
-diff -Nur linux-3.14.17/arch/arm64/kernel/hw_breakpoint.c linux-imx6-3.14/arch/arm64/kernel/hw_breakpoint.c
---- linux-3.14.17/arch/arm64/kernel/hw_breakpoint.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/kernel/hw_breakpoint.c 2014-09-11 18:05:54.462007844 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/kernel/hw_breakpoint.c linux-3.14.22/arch/arm64/kernel/hw_breakpoint.c
+--- linux-3.14.22.orig/arch/arm64/kernel/hw_breakpoint.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/kernel/hw_breakpoint.c 2014-10-22 14:55:50.182220001 -0500
@@ -20,6 +20,7 @@
#define pr_fmt(fmt) "hw-breakpoint: " fmt
@@ -40036,9 +39927,9 @@ diff -Nur linux-3.14.17/arch/arm64/kernel/hw_breakpoint.c linux-imx6-3.14/arch/a
#include <asm/current.h>
#include <asm/debug-monitors.h>
#include <asm/hw_breakpoint.h>
-diff -Nur linux-3.14.17/arch/arm64/kernel/kgdb.c linux-imx6-3.14/arch/arm64/kernel/kgdb.c
---- linux-3.14.17/arch/arm64/kernel/kgdb.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm64/kernel/kgdb.c 2014-09-11 18:05:54.470007876 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/kernel/kgdb.c linux-3.14.22/arch/arm64/kernel/kgdb.c
+--- linux-3.14.22.orig/arch/arm64/kernel/kgdb.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm64/kernel/kgdb.c 2014-10-22 14:55:50.182220001 -0500
@@ -0,0 +1,336 @@
+/*
+ * AArch64 KGDB support
@@ -40376,9 +40267,9 @@ diff -Nur linux-3.14.17/arch/arm64/kernel/kgdb.c linux-imx6-3.14/arch/arm64/kern
+ KGDB_DYN_BRK_INS_BYTE3,
+ }
+};
-diff -Nur linux-3.14.17/arch/arm64/kernel/Makefile linux-imx6-3.14/arch/arm64/kernel/Makefile
---- linux-3.14.17/arch/arm64/kernel/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/kernel/Makefile 2014-09-11 18:05:54.458007828 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/kernel/Makefile linux-3.14.22/arch/arm64/kernel/Makefile
+--- linux-3.14.22.orig/arch/arm64/kernel/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/kernel/Makefile 2014-10-22 14:55:50.182220001 -0500
@@ -5,21 +5,29 @@
CPPFLAGS_vmlinux.lds := -DTEXT_OFFSET=$(TEXT_OFFSET)
AFLAGS_head.o := -DTEXT_OFFSET=$(TEXT_OFFSET)
@@ -40411,9 +40302,9 @@ diff -Nur linux-3.14.17/arch/arm64/kernel/Makefile linux-imx6-3.14/arch/arm64/ke
obj-y += $(arm64-obj-y) vdso/
obj-m += $(arm64-obj-m)
-diff -Nur linux-3.14.17/arch/arm64/kernel/perf_event.c linux-imx6-3.14/arch/arm64/kernel/perf_event.c
---- linux-3.14.17/arch/arm64/kernel/perf_event.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/kernel/perf_event.c 2014-09-11 18:05:54.474007892 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/kernel/perf_event.c linux-3.14.22/arch/arm64/kernel/perf_event.c
+--- linux-3.14.22.orig/arch/arm64/kernel/perf_event.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/kernel/perf_event.c 2014-10-22 14:55:50.182220001 -0500
@@ -1348,8 +1348,8 @@
* Callchain handling code.
*/
@@ -40524,9 +40415,9 @@ diff -Nur linux-3.14.17/arch/arm64/kernel/perf_event.c linux-imx6-3.14/arch/arm6
walk_stackframe(&frame, callchain_trace, entry);
}
-diff -Nur linux-3.14.17/arch/arm64/kernel/perf_regs.c linux-imx6-3.14/arch/arm64/kernel/perf_regs.c
---- linux-3.14.17/arch/arm64/kernel/perf_regs.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm64/kernel/perf_regs.c 2014-09-11 18:05:54.474007892 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/kernel/perf_regs.c linux-3.14.22/arch/arm64/kernel/perf_regs.c
+--- linux-3.14.22.orig/arch/arm64/kernel/perf_regs.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm64/kernel/perf_regs.c 2014-10-22 14:55:50.182220001 -0500
@@ -0,0 +1,46 @@
+#include <linux/errno.h>
+#include <linux/kernel.h>
@@ -40574,9 +40465,9 @@ diff -Nur linux-3.14.17/arch/arm64/kernel/perf_regs.c linux-imx6-3.14/arch/arm64
+ else
+ return PERF_SAMPLE_REGS_ABI_64;
+}
-diff -Nur linux-3.14.17/arch/arm64/kernel/process.c linux-imx6-3.14/arch/arm64/kernel/process.c
---- linux-3.14.17/arch/arm64/kernel/process.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/kernel/process.c 2014-09-11 18:05:54.474007892 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/kernel/process.c linux-3.14.22/arch/arm64/kernel/process.c
+--- linux-3.14.22.orig/arch/arm64/kernel/process.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/kernel/process.c 2014-10-22 14:55:50.182220001 -0500
@@ -20,6 +20,7 @@
#include <stdarg.h>
@@ -40585,9 +40476,9 @@ diff -Nur linux-3.14.17/arch/arm64/kernel/process.c linux-imx6-3.14/arch/arm64/k
#include <linux/export.h>
#include <linux/sched.h>
#include <linux/kernel.h>
-diff -Nur linux-3.14.17/arch/arm64/kernel/ptrace.c linux-imx6-3.14/arch/arm64/kernel/ptrace.c
---- linux-3.14.17/arch/arm64/kernel/ptrace.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/kernel/ptrace.c 2014-09-11 18:05:54.474007892 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/kernel/ptrace.c linux-3.14.22/arch/arm64/kernel/ptrace.c
+--- linux-3.14.22.orig/arch/arm64/kernel/ptrace.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/kernel/ptrace.c 2014-10-22 14:55:51.062220001 -0500
@@ -19,6 +19,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
@@ -40606,7 +40497,7 @@ diff -Nur linux-3.14.17/arch/arm64/kernel/ptrace.c linux-imx6-3.14/arch/arm64/ke
/*
* TODO: does not yet catch signals sent when the child dies.
* in exit.c or in signal.c.
-@@ -1072,35 +1076,49 @@
+@@ -1073,35 +1077,49 @@
return ptrace_request(child, request, addr, data);
}
@@ -40677,9 +40568,9 @@ diff -Nur linux-3.14.17/arch/arm64/kernel/ptrace.c linux-imx6-3.14/arch/arm64/ke
+ if (test_thread_flag(TIF_SYSCALL_TRACE))
+ tracehook_report_syscall(regs, PTRACE_SYSCALL_EXIT);
+}
-diff -Nur linux-3.14.17/arch/arm64/kernel/return_address.c linux-imx6-3.14/arch/arm64/kernel/return_address.c
---- linux-3.14.17/arch/arm64/kernel/return_address.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm64/kernel/return_address.c 2014-09-11 18:05:54.474007892 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/kernel/return_address.c linux-3.14.22/arch/arm64/kernel/return_address.c
+--- linux-3.14.22.orig/arch/arm64/kernel/return_address.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm64/kernel/return_address.c 2014-10-22 14:55:51.062220001 -0500
@@ -0,0 +1,55 @@
+/*
+ * arch/arm64/kernel/return_address.c
@@ -40736,9 +40627,9 @@ diff -Nur linux-3.14.17/arch/arm64/kernel/return_address.c linux-imx6-3.14/arch/
+ return NULL;
+}
+EXPORT_SYMBOL_GPL(return_address);
-diff -Nur linux-3.14.17/arch/arm64/kernel/setup.c linux-imx6-3.14/arch/arm64/kernel/setup.c
---- linux-3.14.17/arch/arm64/kernel/setup.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/kernel/setup.c 2014-09-11 18:05:54.474007892 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/kernel/setup.c linux-3.14.22/arch/arm64/kernel/setup.c
+--- linux-3.14.22.orig/arch/arm64/kernel/setup.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/kernel/setup.c 2014-10-22 14:55:51.062220001 -0500
@@ -69,6 +69,7 @@
COMPAT_HWCAP_VFPv3|COMPAT_HWCAP_VFPv4|\
COMPAT_HWCAP_NEON|COMPAT_HWCAP_IDIV)
@@ -40795,9 +40686,9 @@ diff -Nur linux-3.14.17/arch/arm64/kernel/setup.c linux-imx6-3.14/arch/arm64/ker
static DEFINE_PER_CPU(struct cpu, cpu_data);
-diff -Nur linux-3.14.17/arch/arm64/kernel/signal.c linux-imx6-3.14/arch/arm64/kernel/signal.c
---- linux-3.14.17/arch/arm64/kernel/signal.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/kernel/signal.c 2014-09-11 18:05:54.474007892 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/kernel/signal.c linux-3.14.22/arch/arm64/kernel/signal.c
+--- linux-3.14.22.orig/arch/arm64/kernel/signal.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/kernel/signal.c 2014-10-22 14:55:51.062220001 -0500
@@ -17,6 +17,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
@@ -40814,9 +40705,9 @@ diff -Nur linux-3.14.17/arch/arm64/kernel/signal.c linux-imx6-3.14/arch/arm64/ke
#include <asm/debug-monitors.h>
#include <asm/elf.h>
#include <asm/cacheflush.h>
-diff -Nur linux-3.14.17/arch/arm64/kernel/smp.c linux-imx6-3.14/arch/arm64/kernel/smp.c
---- linux-3.14.17/arch/arm64/kernel/smp.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/kernel/smp.c 2014-09-11 18:05:54.474007892 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/kernel/smp.c linux-3.14.22/arch/arm64/kernel/smp.c
+--- linux-3.14.22.orig/arch/arm64/kernel/smp.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/kernel/smp.c 2014-10-22 14:55:51.066220001 -0500
@@ -114,6 +114,11 @@
return ret;
}
@@ -40849,9 +40740,9 @@ diff -Nur linux-3.14.17/arch/arm64/kernel/smp.c linux-imx6-3.14/arch/arm64/kerne
/*
* are we trying to boot more cores than exist?
*/
-diff -Nur linux-3.14.17/arch/arm64/kernel/stacktrace.c linux-imx6-3.14/arch/arm64/kernel/stacktrace.c
---- linux-3.14.17/arch/arm64/kernel/stacktrace.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/kernel/stacktrace.c 2014-09-11 18:05:54.474007892 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/kernel/stacktrace.c linux-3.14.22/arch/arm64/kernel/stacktrace.c
+--- linux-3.14.22.orig/arch/arm64/kernel/stacktrace.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/kernel/stacktrace.c 2014-10-22 14:55:51.066220001 -0500
@@ -35,7 +35,7 @@
* ldp x29, x30, [sp]
* add sp, sp, #0x10
@@ -40861,9 +40752,9 @@ diff -Nur linux-3.14.17/arch/arm64/kernel/stacktrace.c linux-imx6-3.14/arch/arm6
{
unsigned long high, low;
unsigned long fp = frame->fp;
-diff -Nur linux-3.14.17/arch/arm64/kernel/topology.c linux-imx6-3.14/arch/arm64/kernel/topology.c
---- linux-3.14.17/arch/arm64/kernel/topology.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/arch/arm64/kernel/topology.c 2014-09-11 18:05:54.478007908 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/kernel/topology.c linux-3.14.22/arch/arm64/kernel/topology.c
+--- linux-3.14.22.orig/arch/arm64/kernel/topology.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/arch/arm64/kernel/topology.c 2014-10-22 14:55:51.066220001 -0500
@@ -0,0 +1,558 @@
+/*
+ * arch/arm64/kernel/topology.c
@@ -41423,9 +41314,9 @@ diff -Nur linux-3.14.17/arch/arm64/kernel/topology.c linux-imx6-3.14/arch/arm64/
+ reset_cpu_power();
+ parse_dt_cpu_power();
+}
-diff -Nur linux-3.14.17/arch/arm64/kernel/vdso/Makefile linux-imx6-3.14/arch/arm64/kernel/vdso/Makefile
---- linux-3.14.17/arch/arm64/kernel/vdso/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/kernel/vdso/Makefile 2014-09-11 18:05:54.478007908 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/kernel/vdso/Makefile linux-3.14.22/arch/arm64/kernel/vdso/Makefile
+--- linux-3.14.22.orig/arch/arm64/kernel/vdso/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/kernel/vdso/Makefile 2014-10-22 14:55:51.066220001 -0500
@@ -47,9 +47,9 @@
$(call if_changed_dep,vdsoas)
@@ -41438,9 +41329,9 @@ diff -Nur linux-3.14.17/arch/arm64/kernel/vdso/Makefile linux-imx6-3.14/arch/arm
cmd_vdsoas = $(CC) $(a_flags) -c -o $@ $<
# Install commands for the unstripped file
-diff -Nur linux-3.14.17/arch/arm64/kernel/vdso.c linux-imx6-3.14/arch/arm64/kernel/vdso.c
---- linux-3.14.17/arch/arm64/kernel/vdso.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/kernel/vdso.c 2014-09-11 18:05:54.478007908 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/kernel/vdso.c linux-3.14.22/arch/arm64/kernel/vdso.c
+--- linux-3.14.22.orig/arch/arm64/kernel/vdso.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/kernel/vdso.c 2014-10-22 14:55:51.066220001 -0500
@@ -156,11 +156,12 @@
int uses_interp)
{
@@ -41515,9 +41406,9 @@ diff -Nur linux-3.14.17/arch/arm64/kernel/vdso.c linux-imx6-3.14/arch/arm64/kern
}
return NULL;
-diff -Nur linux-3.14.17/arch/arm64/kernel/vmlinux.lds.S linux-imx6-3.14/arch/arm64/kernel/vmlinux.lds.S
---- linux-3.14.17/arch/arm64/kernel/vmlinux.lds.S 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/kernel/vmlinux.lds.S 2014-09-11 18:05:54.478007908 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/kernel/vmlinux.lds.S linux-3.14.22/arch/arm64/kernel/vmlinux.lds.S
+--- linux-3.14.22.orig/arch/arm64/kernel/vmlinux.lds.S 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/kernel/vmlinux.lds.S 2014-10-22 14:55:51.066220001 -0500
@@ -104,6 +104,13 @@
_edata = .;
@@ -41532,9 +41423,9 @@ diff -Nur linux-3.14.17/arch/arm64/kernel/vmlinux.lds.S linux-imx6-3.14/arch/arm
_end = .;
STABS_DEBUG
-diff -Nur linux-3.14.17/arch/arm64/Makefile linux-imx6-3.14/arch/arm64/Makefile
---- linux-3.14.17/arch/arm64/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/Makefile 2014-09-11 18:05:54.354007412 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/Makefile linux-3.14.22/arch/arm64/Makefile
+--- linux-3.14.22.orig/arch/arm64/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/Makefile 2014-10-22 14:55:51.066220001 -0500
@@ -45,6 +45,7 @@
core-y += arch/arm64/kernel/ arch/arm64/mm/
core-$(CONFIG_KVM) += arch/arm64/kvm/
@@ -41543,9 +41434,9 @@ diff -Nur linux-3.14.17/arch/arm64/Makefile linux-imx6-3.14/arch/arm64/Makefile
libs-y := arch/arm64/lib/ $(libs-y)
libs-y += $(LIBGCC)
-diff -Nur linux-3.14.17/arch/arm64/mm/cache.S linux-imx6-3.14/arch/arm64/mm/cache.S
---- linux-3.14.17/arch/arm64/mm/cache.S 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/mm/cache.S 2014-09-11 18:05:54.486007940 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/mm/cache.S linux-3.14.22/arch/arm64/mm/cache.S
+--- linux-3.14.22.orig/arch/arm64/mm/cache.S 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/mm/cache.S 2014-10-22 14:55:51.070220001 -0500
@@ -30,7 +30,7 @@
*
* Corrupted registers: x0-x7, x9-x11
@@ -41653,9 +41544,9 @@ diff -Nur linux-3.14.17/arch/arm64/mm/cache.S linux-imx6-3.14/arch/arm64/mm/cach
+ b.ne __dma_inv_range
+ ret
+ENDPROC(__dma_unmap_area)
-diff -Nur linux-3.14.17/arch/arm64/mm/copypage.c linux-imx6-3.14/arch/arm64/mm/copypage.c
---- linux-3.14.17/arch/arm64/mm/copypage.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/mm/copypage.c 2014-09-11 18:05:54.486007940 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/mm/copypage.c linux-3.14.22/arch/arm64/mm/copypage.c
+--- linux-3.14.22.orig/arch/arm64/mm/copypage.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/mm/copypage.c 2014-10-22 14:55:51.070220001 -0500
@@ -27,8 +27,10 @@
copy_page(kto, kfrom);
__flush_dcache_area(kto, PAGE_SIZE);
@@ -41667,9 +41558,9 @@ diff -Nur linux-3.14.17/arch/arm64/mm/copypage.c linux-imx6-3.14/arch/arm64/mm/c
clear_page(kaddr);
}
+EXPORT_SYMBOL_GPL(__cpu_clear_user_page);
-diff -Nur linux-3.14.17/arch/arm64/mm/dma-mapping.c linux-imx6-3.14/arch/arm64/mm/dma-mapping.c
---- linux-3.14.17/arch/arm64/mm/dma-mapping.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/mm/dma-mapping.c 2014-09-11 18:05:54.486007940 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/mm/dma-mapping.c linux-3.14.22/arch/arm64/mm/dma-mapping.c
+--- linux-3.14.22.orig/arch/arm64/mm/dma-mapping.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/mm/dma-mapping.c 2014-10-22 14:55:51.070220001 -0500
@@ -22,26 +22,39 @@
#include <linux/slab.h>
#include <linux/dma-mapping.h>
@@ -41995,9 +41886,9 @@ diff -Nur linux-3.14.17/arch/arm64/mm/dma-mapping.c linux-imx6-3.14/arch/arm64/m
#define PREALLOC_DMA_DEBUG_ENTRIES 4096
-diff -Nur linux-3.14.17/arch/arm64/mm/init.c linux-imx6-3.14/arch/arm64/mm/init.c
---- linux-3.14.17/arch/arm64/mm/init.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/mm/init.c 2014-09-11 18:05:54.486007940 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/mm/init.c linux-3.14.22/arch/arm64/mm/init.c
+--- linux-3.14.22.orig/arch/arm64/mm/init.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/mm/init.c 2014-10-22 14:55:51.070220001 -0500
@@ -30,6 +30,7 @@
#include <linux/memblock.h>
#include <linux/sort.h>
@@ -42094,9 +41985,9 @@ diff -Nur linux-3.14.17/arch/arm64/mm/init.c linux-imx6-3.14/arch/arm64/mm/init.
max_mapnr = pfn_to_page(max_pfn + PHYS_PFN_OFFSET) - mem_map;
#ifndef CONFIG_SPARSEMEM_VMEMMAP
-diff -Nur linux-3.14.17/arch/arm64/mm/proc.S linux-imx6-3.14/arch/arm64/mm/proc.S
---- linux-3.14.17/arch/arm64/mm/proc.S 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/arm64/mm/proc.S 2014-09-11 18:05:54.490007955 +0200
+diff -Nur linux-3.14.22.orig/arch/arm64/mm/proc.S linux-3.14.22/arch/arm64/mm/proc.S
+--- linux-3.14.22.orig/arch/arm64/mm/proc.S 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/arm64/mm/proc.S 2014-10-22 14:55:51.070220001 -0500
@@ -173,12 +173,6 @@
* value of the SCTLR_EL1 register.
*/
@@ -42110,9 +42001,9 @@ diff -Nur linux-3.14.17/arch/arm64/mm/proc.S linux-imx6-3.14/arch/arm64/mm/proc.
ic iallu // I+BTB cache invalidate
tlbi vmalle1is // invalidate I + D TLBs
dsb sy
-diff -Nur linux-3.14.17/arch/avr32/kernel/cpu.c linux-imx6-3.14/arch/avr32/kernel/cpu.c
---- linux-3.14.17/arch/avr32/kernel/cpu.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/avr32/kernel/cpu.c 2014-09-11 18:05:54.514008051 +0200
+diff -Nur linux-3.14.22.orig/arch/avr32/kernel/cpu.c linux-3.14.22/arch/avr32/kernel/cpu.c
+--- linux-3.14.22.orig/arch/avr32/kernel/cpu.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/avr32/kernel/cpu.c 2014-10-22 14:55:51.070220001 -0500
@@ -39,10 +39,12 @@
size_t count)
{
@@ -42209,9 +42100,9 @@ diff -Nur linux-3.14.17/arch/avr32/kernel/cpu.c linux-imx6-3.14/arch/avr32/kerne
if (val)
val = 1;
-diff -Nur linux-3.14.17/arch/blackfin/include/asm/ftrace.h linux-imx6-3.14/arch/blackfin/include/asm/ftrace.h
---- linux-3.14.17/arch/blackfin/include/asm/ftrace.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/blackfin/include/asm/ftrace.h 2014-09-11 18:05:54.538008148 +0200
+diff -Nur linux-3.14.22.orig/arch/blackfin/include/asm/ftrace.h linux-3.14.22/arch/blackfin/include/asm/ftrace.h
+--- linux-3.14.22.orig/arch/blackfin/include/asm/ftrace.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/blackfin/include/asm/ftrace.h 2014-10-22 14:55:51.070220001 -0500
@@ -66,16 +66,7 @@
#endif /* CONFIG_FRAME_POINTER */
@@ -42230,9 +42121,9 @@ diff -Nur linux-3.14.17/arch/blackfin/include/asm/ftrace.h linux-imx6-3.14/arch/
#endif /* __ASSEMBLY__ */
-diff -Nur linux-3.14.17/arch/hexagon/include/asm/elf.h linux-imx6-3.14/arch/hexagon/include/asm/elf.h
---- linux-3.14.17/arch/hexagon/include/asm/elf.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/hexagon/include/asm/elf.h 2014-09-11 18:05:55.318011266 +0200
+diff -Nur linux-3.14.22.orig/arch/hexagon/include/asm/elf.h linux-3.14.22/arch/hexagon/include/asm/elf.h
+--- linux-3.14.22.orig/arch/hexagon/include/asm/elf.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/hexagon/include/asm/elf.h 2014-10-22 14:55:51.926220001 -0500
@@ -1,7 +1,7 @@
/*
* ELF definitions for the Hexagon architecture
@@ -42242,9 +42133,9 @@ diff -Nur linux-3.14.17/arch/hexagon/include/asm/elf.h linux-imx6-3.14/arch/hexa
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
-diff -Nur linux-3.14.17/arch/parisc/include/asm/ftrace.h linux-imx6-3.14/arch/parisc/include/asm/ftrace.h
---- linux-3.14.17/arch/parisc/include/asm/ftrace.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/parisc/include/asm/ftrace.h 2014-09-11 18:05:56.270015072 +0200
+diff -Nur linux-3.14.22.orig/arch/parisc/include/asm/ftrace.h linux-3.14.22/arch/parisc/include/asm/ftrace.h
+--- linux-3.14.22.orig/arch/parisc/include/asm/ftrace.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/parisc/include/asm/ftrace.h 2014-10-22 14:55:51.938220001 -0500
@@ -24,15 +24,7 @@
extern unsigned long return_address(unsigned int);
@@ -42262,21 +42153,9 @@ diff -Nur linux-3.14.17/arch/parisc/include/asm/ftrace.h linux-imx6-3.14/arch/pa
#endif /* __ASSEMBLY__ */
-diff -Nur linux-3.14.17/arch/parisc/include/uapi/asm/signal.h linux-imx6-3.14/arch/parisc/include/uapi/asm/signal.h
---- linux-3.14.17/arch/parisc/include/uapi/asm/signal.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/parisc/include/uapi/asm/signal.h 2014-09-11 18:05:56.278015104 +0200
-@@ -69,6 +69,8 @@
- #define SA_NOMASK SA_NODEFER
- #define SA_ONESHOT SA_RESETHAND
-
-+#define SA_RESTORER 0x04000000 /* obsolete -- ignored */
-+
- #define MINSIGSTKSZ 2048
- #define SIGSTKSZ 8192
-
-diff -Nur linux-3.14.17/arch/s390/include/asm/cio.h linux-imx6-3.14/arch/s390/include/asm/cio.h
---- linux-3.14.17/arch/s390/include/asm/cio.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/s390/include/asm/cio.h 2014-09-11 18:05:56.974017886 +0200
+diff -Nur linux-3.14.22.orig/arch/s390/include/asm/cio.h linux-3.14.22/arch/s390/include/asm/cio.h
+--- linux-3.14.22.orig/arch/s390/include/asm/cio.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/s390/include/asm/cio.h 2014-10-22 14:55:51.942220001 -0500
@@ -199,7 +199,7 @@
/**
* struct irb - interruption response block
@@ -42286,42 +42165,9 @@ diff -Nur linux-3.14.17/arch/s390/include/asm/cio.h linux-imx6-3.14/arch/s390/in
* @ecw: extended control word
*
* The irb that is handed to the device driver when an interrupt occurs. For
-diff -Nur linux-3.14.17/arch/s390/kernel/ptrace.c linux-imx6-3.14/arch/s390/kernel/ptrace.c
---- linux-3.14.17/arch/s390/kernel/ptrace.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/s390/kernel/ptrace.c 2014-09-11 18:05:57.078018301 +0200
-@@ -323,14 +323,9 @@
- unsigned long mask = PSW_MASK_USER;
-
- mask |= is_ri_task(child) ? PSW_MASK_RI : 0;
-- if ((data ^ PSW_USER_BITS) & ~mask)
-- /* Invalid psw mask. */
-- return -EINVAL;
-- if ((data & PSW_MASK_ASC) == PSW_ASC_HOME)
-- /* Invalid address-space-control bits */
-+ if ((data & ~mask) != PSW_USER_BITS)
- return -EINVAL;
- if ((data & PSW_MASK_EA) && !(data & PSW_MASK_BA))
-- /* Invalid addressing mode bits */
- return -EINVAL;
- }
- *(addr_t *)((addr_t) &task_pt_regs(child)->psw + addr) = data;
-@@ -666,12 +661,9 @@
-
- mask |= is_ri_task(child) ? PSW32_MASK_RI : 0;
- /* Build a 64 bit psw mask from 31 bit mask. */
-- if ((tmp ^ PSW32_USER_BITS) & ~mask)
-+ if ((tmp & ~mask) != PSW32_USER_BITS)
- /* Invalid psw mask. */
- return -EINVAL;
-- if ((data & PSW32_MASK_ASC) == PSW32_ASC_HOME)
-- /* Invalid address-space-control bits */
-- return -EINVAL;
- regs->psw.mask = (regs->psw.mask & ~PSW_MASK_USER) |
- (regs->psw.mask & PSW_MASK_BA) |
- (__u64)(tmp & mask) << 32;
-diff -Nur linux-3.14.17/arch/sh/include/asm/ftrace.h linux-imx6-3.14/arch/sh/include/asm/ftrace.h
---- linux-3.14.17/arch/sh/include/asm/ftrace.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/sh/include/asm/ftrace.h 2014-09-11 18:05:57.446019771 +0200
+diff -Nur linux-3.14.22.orig/arch/sh/include/asm/ftrace.h linux-3.14.22/arch/sh/include/asm/ftrace.h
+--- linux-3.14.22.orig/arch/sh/include/asm/ftrace.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/sh/include/asm/ftrace.h 2014-10-22 14:55:51.942220001 -0500
@@ -40,15 +40,7 @@
/* arch/sh/kernel/return_address.c */
extern void *return_address(unsigned int);
@@ -42339,1484 +42185,9 @@ diff -Nur linux-3.14.17/arch/sh/include/asm/ftrace.h linux-imx6-3.14/arch/sh/inc
#endif /* __ASSEMBLY__ */
-diff -Nur linux-3.14.17/arch/sparc/include/asm/pgtable_64.h linux-imx6-3.14/arch/sparc/include/asm/pgtable_64.h
---- linux-3.14.17/arch/sparc/include/asm/pgtable_64.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/sparc/include/asm/pgtable_64.h 2014-09-11 18:05:57.682020716 +0200
-@@ -24,8 +24,7 @@
-
- /* The kernel image occupies 0x4000000 to 0x6000000 (4MB --> 96MB).
- * The page copy blockops can use 0x6000000 to 0x8000000.
-- * The 8K TSB is mapped in the 0x8000000 to 0x8400000 range.
-- * The 4M TSB is mapped in the 0x8400000 to 0x8800000 range.
-+ * The TSB is mapped in the 0x8000000 to 0xa000000 range.
- * The PROM resides in an area spanning 0xf0000000 to 0x100000000.
- * The vmalloc area spans 0x100000000 to 0x200000000.
- * Since modules need to be in the lowest 32-bits of the address space,
-@@ -34,8 +33,7 @@
- * 0x400000000.
- */
- #define TLBTEMP_BASE _AC(0x0000000006000000,UL)
--#define TSBMAP_8K_BASE _AC(0x0000000008000000,UL)
--#define TSBMAP_4M_BASE _AC(0x0000000008400000,UL)
-+#define TSBMAP_BASE _AC(0x0000000008000000,UL)
- #define MODULES_VADDR _AC(0x0000000010000000,UL)
- #define MODULES_LEN _AC(0x00000000e0000000,UL)
- #define MODULES_END _AC(0x00000000f0000000,UL)
-@@ -73,23 +71,6 @@
-
- #include <linux/sched.h>
-
--extern unsigned long sparc64_valid_addr_bitmap[];
--
--/* Needs to be defined here and not in linux/mm.h, as it is arch dependent */
--static inline bool __kern_addr_valid(unsigned long paddr)
--{
-- if ((paddr >> MAX_PHYS_ADDRESS_BITS) != 0UL)
-- return false;
-- return test_bit(paddr >> ILOG2_4MB, sparc64_valid_addr_bitmap);
--}
--
--static inline bool kern_addr_valid(unsigned long addr)
--{
-- unsigned long paddr = __pa(addr);
--
-- return __kern_addr_valid(paddr);
--}
--
- /* Entries per page directory level. */
- #define PTRS_PER_PTE (1UL << (PAGE_SHIFT-3))
- #define PTRS_PER_PMD (1UL << PMD_BITS)
-@@ -98,12 +79,9 @@
- /* Kernel has a separate 44bit address space. */
- #define FIRST_USER_ADDRESS 0
-
--#define pmd_ERROR(e) \
-- pr_err("%s:%d: bad pmd %p(%016lx) seen at (%pS)\n", \
-- __FILE__, __LINE__, &(e), pmd_val(e), __builtin_return_address(0))
--#define pgd_ERROR(e) \
-- pr_err("%s:%d: bad pgd %p(%016lx) seen at (%pS)\n", \
-- __FILE__, __LINE__, &(e), pgd_val(e), __builtin_return_address(0))
-+#define pte_ERROR(e) __builtin_trap()
-+#define pmd_ERROR(e) __builtin_trap()
-+#define pgd_ERROR(e) __builtin_trap()
-
- #endif /* !(__ASSEMBLY__) */
-
-@@ -280,8 +258,8 @@
- {
- unsigned long mask, tmp;
-
-- /* SUN4U: 0x630107ffffffec38 (negated == 0x9cfef800000013c7)
-- * SUN4V: 0x33ffffffffffee07 (negated == 0xcc000000000011f8)
-+ /* SUN4U: 0x600307ffffffecb8 (negated == 0x9ffcf80000001347)
-+ * SUN4V: 0x30ffffffffffee17 (negated == 0xcf000000000011e8)
- *
- * Even if we use negation tricks the result is still a 6
- * instruction sequence, so don't try to play fancy and just
-@@ -311,10 +289,10 @@
- " .previous\n"
- : "=r" (mask), "=r" (tmp)
- : "i" (_PAGE_PADDR_4U | _PAGE_MODIFIED_4U | _PAGE_ACCESSED_4U |
-- _PAGE_CP_4U | _PAGE_CV_4U | _PAGE_E_4U |
-+ _PAGE_CP_4U | _PAGE_CV_4U | _PAGE_E_4U | _PAGE_PRESENT_4U |
- _PAGE_SPECIAL | _PAGE_PMD_HUGE | _PAGE_SZALL_4U),
- "i" (_PAGE_PADDR_4V | _PAGE_MODIFIED_4V | _PAGE_ACCESSED_4V |
-- _PAGE_CP_4V | _PAGE_CV_4V | _PAGE_E_4V |
-+ _PAGE_CP_4V | _PAGE_CV_4V | _PAGE_E_4V | _PAGE_PRESENT_4V |
- _PAGE_SPECIAL | _PAGE_PMD_HUGE | _PAGE_SZALL_4V));
-
- return __pte((pte_val(pte) & mask) | (pgprot_val(prot) & ~mask));
-@@ -655,7 +633,7 @@
- {
- pte_t pte = __pte(pmd_val(pmd));
-
-- return pte_val(pte) & _PAGE_PMD_HUGE;
-+ return (pte_val(pte) & _PAGE_PMD_HUGE) && pte_present(pte);
- }
-
- #ifdef CONFIG_TRANSPARENT_HUGEPAGE
-@@ -741,6 +719,20 @@
- return __pmd(pte_val(pte));
- }
-
-+static inline pmd_t pmd_mknotpresent(pmd_t pmd)
-+{
-+ unsigned long mask;
-+
-+ if (tlb_type == hypervisor)
-+ mask = _PAGE_PRESENT_4V;
-+ else
-+ mask = _PAGE_PRESENT_4U;
-+
-+ pmd_val(pmd) &= ~mask;
-+
-+ return pmd;
-+}
-+
- static inline pmd_t pmd_mksplitting(pmd_t pmd)
- {
- pte_t pte = __pte(pmd_val(pmd));
-@@ -765,20 +757,6 @@
-
- #define pmd_none(pmd) (!pmd_val(pmd))
-
--/* pmd_bad() is only called on non-trans-huge PMDs. Our encoding is
-- * very simple, it's just the physical address. PTE tables are of
-- * size PAGE_SIZE so make sure the sub-PAGE_SIZE bits are clear and
-- * the top bits outside of the range of any physical address size we
-- * support are clear as well. We also validate the physical itself.
-- */
--#define pmd_bad(pmd) ((pmd_val(pmd) & ~PAGE_MASK) || \
-- !__kern_addr_valid(pmd_val(pmd)))
--
--#define pud_none(pud) (!pud_val(pud))
--
--#define pud_bad(pud) ((pud_val(pud) & ~PAGE_MASK) || \
-- !__kern_addr_valid(pud_val(pud)))
--
- #ifdef CONFIG_TRANSPARENT_HUGEPAGE
- extern void set_pmd_at(struct mm_struct *mm, unsigned long addr,
- pmd_t *pmdp, pmd_t pmd);
-@@ -812,7 +790,10 @@
- #define pud_page_vaddr(pud) \
- ((unsigned long) __va(pud_val(pud)))
- #define pud_page(pud) virt_to_page((void *)pud_page_vaddr(pud))
-+#define pmd_bad(pmd) (0)
- #define pmd_clear(pmdp) (pmd_val(*(pmdp)) = 0UL)
-+#define pud_none(pud) (!pud_val(pud))
-+#define pud_bad(pud) (0)
- #define pud_present(pud) (pud_val(pud) != 0U)
- #define pud_clear(pudp) (pud_val(*(pudp)) = 0UL)
-
-@@ -912,10 +893,6 @@
- extern void update_mmu_cache_pmd(struct vm_area_struct *vma, unsigned long addr,
- pmd_t *pmd);
-
--#define __HAVE_ARCH_PMDP_INVALIDATE
--extern void pmdp_invalidate(struct vm_area_struct *vma, unsigned long address,
-- pmd_t *pmdp);
--
- #define __HAVE_ARCH_PGTABLE_DEPOSIT
- extern void pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp,
- pgtable_t pgtable);
-@@ -942,6 +919,18 @@
- extern pte_t pgoff_to_pte(unsigned long);
- #define PTE_FILE_MAX_BITS (64UL - PAGE_SHIFT - 1UL)
-
-+extern unsigned long sparc64_valid_addr_bitmap[];
-+
-+/* Needs to be defined here and not in linux/mm.h, as it is arch dependent */
-+static inline bool kern_addr_valid(unsigned long addr)
-+{
-+ unsigned long paddr = __pa(addr);
-+
-+ if ((paddr >> 41UL) != 0UL)
-+ return false;
-+ return test_bit(paddr >> 22, sparc64_valid_addr_bitmap);
-+}
-+
- extern int page_in_phys_avail(unsigned long paddr);
-
- /*
-diff -Nur linux-3.14.17/arch/sparc/include/asm/tlbflush_64.h linux-imx6-3.14/arch/sparc/include/asm/tlbflush_64.h
---- linux-3.14.17/arch/sparc/include/asm/tlbflush_64.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/sparc/include/asm/tlbflush_64.h 2014-09-11 18:05:57.694020763 +0200
-@@ -34,8 +34,6 @@
- {
- }
-
--void flush_tlb_kernel_range(unsigned long start, unsigned long end);
--
- #define __HAVE_ARCH_ENTER_LAZY_MMU_MODE
-
- extern void flush_tlb_pending(void);
-@@ -50,6 +48,11 @@
-
- #ifndef CONFIG_SMP
-
-+#define flush_tlb_kernel_range(start,end) \
-+do { flush_tsb_kernel_range(start,end); \
-+ __flush_tlb_kernel_range(start,end); \
-+} while (0)
-+
- static inline void global_flush_tlb_page(struct mm_struct *mm, unsigned long vaddr)
- {
- __flush_tlb_page(CTX_HWBITS(mm->context), vaddr);
-@@ -60,6 +63,11 @@
- extern void smp_flush_tlb_kernel_range(unsigned long start, unsigned long end);
- extern void smp_flush_tlb_page(struct mm_struct *mm, unsigned long vaddr);
-
-+#define flush_tlb_kernel_range(start, end) \
-+do { flush_tsb_kernel_range(start,end); \
-+ smp_flush_tlb_kernel_range(start, end); \
-+} while (0)
-+
- #define global_flush_tlb_page(mm, vaddr) \
- smp_flush_tlb_page(mm, vaddr)
-
-diff -Nur linux-3.14.17/arch/sparc/include/asm/tsb.h linux-imx6-3.14/arch/sparc/include/asm/tsb.h
---- linux-3.14.17/arch/sparc/include/asm/tsb.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/sparc/include/asm/tsb.h 2014-09-11 18:05:57.694020763 +0200
-@@ -171,8 +171,7 @@
- andcc REG1, REG2, %g0; \
- be,pt %xcc, 700f; \
- sethi %hi(4 * 1024 * 1024), REG2; \
-- brgez,pn REG1, FAIL_LABEL; \
-- andn REG1, REG2, REG1; \
-+ andn REG1, REG2, REG1; \
- and VADDR, REG2, REG2; \
- brlz,pt REG1, PTE_LABEL; \
- or REG1, REG2, REG1; \
-diff -Nur linux-3.14.17/arch/sparc/kernel/head_64.S linux-imx6-3.14/arch/sparc/kernel/head_64.S
---- linux-3.14.17/arch/sparc/kernel/head_64.S 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/sparc/kernel/head_64.S 2014-09-11 18:05:57.710020827 +0200
-@@ -282,8 +282,8 @@
- stx %l2, [%l4 + 0x0]
- ldx [%sp + 2047 + 128 + 0x50], %l3 ! physaddr low
- /* 4MB align */
-- srlx %l3, ILOG2_4MB, %l3
-- sllx %l3, ILOG2_4MB, %l3
-+ srlx %l3, 22, %l3
-+ sllx %l3, 22, %l3
- stx %l3, [%l4 + 0x8]
-
- /* Leave service as-is, "call-method" */
-diff -Nur linux-3.14.17/arch/sparc/kernel/ktlb.S linux-imx6-3.14/arch/sparc/kernel/ktlb.S
---- linux-3.14.17/arch/sparc/kernel/ktlb.S 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/sparc/kernel/ktlb.S 2014-09-11 18:05:57.714020844 +0200
-@@ -277,7 +277,7 @@
- #ifdef CONFIG_SPARSEMEM_VMEMMAP
- kvmap_vmemmap:
- sub %g4, %g5, %g5
-- srlx %g5, ILOG2_4MB, %g5
-+ srlx %g5, 22, %g5
- sethi %hi(vmemmap_table), %g1
- sllx %g5, 3, %g5
- or %g1, %lo(vmemmap_table), %g1
-diff -Nur linux-3.14.17/arch/sparc/kernel/ldc.c linux-imx6-3.14/arch/sparc/kernel/ldc.c
---- linux-3.14.17/arch/sparc/kernel/ldc.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/sparc/kernel/ldc.c 2014-09-11 18:05:57.714020844 +0200
-@@ -1336,7 +1336,7 @@
- if (!(lp->flags & LDC_FLAG_ALLOCED_QUEUES) ||
- !(lp->flags & LDC_FLAG_REGISTERED_QUEUES) ||
- lp->hs_state != LDC_HS_OPEN)
-- err = ((lp->hs_state > LDC_HS_OPEN) ? 0 : -EINVAL);
-+ err = -EINVAL;
- else
- err = start_handshake(lp);
-
-diff -Nur linux-3.14.17/arch/sparc/kernel/smp_64.c linux-imx6-3.14/arch/sparc/kernel/smp_64.c
---- linux-3.14.17/arch/sparc/kernel/smp_64.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/sparc/kernel/smp_64.c 2014-09-11 18:05:57.754021003 +0200
-@@ -151,7 +151,7 @@
- #define NUM_ROUNDS 64 /* magic value */
- #define NUM_ITERS 5 /* likewise */
-
--static DEFINE_RAW_SPINLOCK(itc_sync_lock);
-+static DEFINE_SPINLOCK(itc_sync_lock);
- static unsigned long go[SLAVE + 1];
-
- #define DEBUG_TICK_SYNC 0
-@@ -259,7 +259,7 @@
- go[MASTER] = 0;
- membar_safe("#StoreLoad");
-
-- raw_spin_lock_irqsave(&itc_sync_lock, flags);
-+ spin_lock_irqsave(&itc_sync_lock, flags);
- {
- for (i = 0; i < NUM_ROUNDS*NUM_ITERS; i++) {
- while (!go[MASTER])
-@@ -270,7 +270,7 @@
- membar_safe("#StoreLoad");
- }
- }
-- raw_spin_unlock_irqrestore(&itc_sync_lock, flags);
-+ spin_unlock_irqrestore(&itc_sync_lock, flags);
- }
-
- #if defined(CONFIG_SUN_LDOMS) && defined(CONFIG_HOTPLUG_CPU)
-diff -Nur linux-3.14.17/arch/sparc/kernel/sys32.S linux-imx6-3.14/arch/sparc/kernel/sys32.S
---- linux-3.14.17/arch/sparc/kernel/sys32.S 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/sparc/kernel/sys32.S 2014-09-11 18:05:57.766021051 +0200
-@@ -44,7 +44,7 @@
- SIGN1(sys32_io_submit, compat_sys_io_submit, %o1)
- SIGN1(sys32_mq_open, compat_sys_mq_open, %o1)
- SIGN1(sys32_select, compat_sys_select, %o0)
--SIGN1(sys32_futex, compat_sys_futex, %o1)
-+SIGN3(sys32_futex, compat_sys_futex, %o1, %o2, %o5)
- SIGN1(sys32_recvfrom, compat_sys_recvfrom, %o0)
- SIGN1(sys32_recvmsg, compat_sys_recvmsg, %o0)
- SIGN1(sys32_sendmsg, compat_sys_sendmsg, %o0)
-diff -Nur linux-3.14.17/arch/sparc/kernel/unaligned_64.c linux-imx6-3.14/arch/sparc/kernel/unaligned_64.c
---- linux-3.14.17/arch/sparc/kernel/unaligned_64.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/sparc/kernel/unaligned_64.c 2014-09-11 18:05:57.774021083 +0200
-@@ -166,23 +166,17 @@
- unsigned long compute_effective_address(struct pt_regs *regs,
- unsigned int insn, unsigned int rd)
- {
-- int from_kernel = (regs->tstate & TSTATE_PRIV) != 0;
- unsigned int rs1 = (insn >> 14) & 0x1f;
- unsigned int rs2 = insn & 0x1f;
-- unsigned long addr;
-+ int from_kernel = (regs->tstate & TSTATE_PRIV) != 0;
-
- if (insn & 0x2000) {
- maybe_flush_windows(rs1, 0, rd, from_kernel);
-- addr = (fetch_reg(rs1, regs) + sign_extend_imm13(insn));
-+ return (fetch_reg(rs1, regs) + sign_extend_imm13(insn));
- } else {
- maybe_flush_windows(rs1, rs2, rd, from_kernel);
-- addr = (fetch_reg(rs1, regs) + fetch_reg(rs2, regs));
-+ return (fetch_reg(rs1, regs) + fetch_reg(rs2, regs));
- }
--
-- if (!from_kernel && test_thread_flag(TIF_32BIT))
-- addr &= 0xffffffff;
--
-- return addr;
- }
-
- /* This is just to make gcc think die_if_kernel does return... */
-diff -Nur linux-3.14.17/arch/sparc/lib/NG2memcpy.S linux-imx6-3.14/arch/sparc/lib/NG2memcpy.S
---- linux-3.14.17/arch/sparc/lib/NG2memcpy.S 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/sparc/lib/NG2memcpy.S 2014-09-11 18:05:57.814021242 +0200
-@@ -236,7 +236,6 @@
- */
- VISEntryHalf
-
-- membar #Sync
- alignaddr %o1, %g0, %g0
-
- add %o1, (64 - 1), %o4
-diff -Nur linux-3.14.17/arch/sparc/math-emu/math_32.c linux-imx6-3.14/arch/sparc/math-emu/math_32.c
---- linux-3.14.17/arch/sparc/math-emu/math_32.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/sparc/math-emu/math_32.c 2014-09-11 18:05:57.866021451 +0200
-@@ -499,7 +499,7 @@
- case 0: fsr = *pfsr;
- if (IR == -1) IR = 2;
- /* fcc is always fcc0 */
-- fsr &= ~0xc00; fsr |= (IR << 10);
-+ fsr &= ~0xc00; fsr |= (IR << 10); break;
- *pfsr = fsr;
- break;
- case 1: rd->s = IR; break;
-diff -Nur linux-3.14.17/arch/sparc/mm/fault_64.c linux-imx6-3.14/arch/sparc/mm/fault_64.c
---- linux-3.14.17/arch/sparc/mm/fault_64.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/sparc/mm/fault_64.c 2014-09-11 18:05:57.866021451 +0200
-@@ -96,51 +96,38 @@
- pte_t *ptep, pte;
- unsigned long pa;
- u32 insn = 0;
-+ unsigned long pstate;
-
-- if (pgd_none(*pgdp) || unlikely(pgd_bad(*pgdp)))
-- goto out;
-+ if (pgd_none(*pgdp))
-+ goto outret;
- pudp = pud_offset(pgdp, tpc);
-- if (pud_none(*pudp) || unlikely(pud_bad(*pudp)))
-- goto out;
-+ if (pud_none(*pudp))
-+ goto outret;
-+ pmdp = pmd_offset(pudp, tpc);
-+ if (pmd_none(*pmdp))
-+ goto outret;
-
- /* This disables preemption for us as well. */
-- local_irq_disable();
-+ __asm__ __volatile__("rdpr %%pstate, %0" : "=r" (pstate));
-+ __asm__ __volatile__("wrpr %0, %1, %%pstate"
-+ : : "r" (pstate), "i" (PSTATE_IE));
-+ ptep = pte_offset_map(pmdp, tpc);
-+ pte = *ptep;
-+ if (!pte_present(pte))
-+ goto out;
-
-- pmdp = pmd_offset(pudp, tpc);
-- if (pmd_none(*pmdp) || unlikely(pmd_bad(*pmdp)))
-- goto out_irq_enable;
-+ pa = (pte_pfn(pte) << PAGE_SHIFT);
-+ pa += (tpc & ~PAGE_MASK);
-+
-+ /* Use phys bypass so we don't pollute dtlb/dcache. */
-+ __asm__ __volatile__("lduwa [%1] %2, %0"
-+ : "=r" (insn)
-+ : "r" (pa), "i" (ASI_PHYS_USE_EC));
-
--#ifdef CONFIG_TRANSPARENT_HUGEPAGE
-- if (pmd_trans_huge(*pmdp)) {
-- if (pmd_trans_splitting(*pmdp))
-- goto out_irq_enable;
--
-- pa = pmd_pfn(*pmdp) << PAGE_SHIFT;
-- pa += tpc & ~HPAGE_MASK;
--
-- /* Use phys bypass so we don't pollute dtlb/dcache. */
-- __asm__ __volatile__("lduwa [%1] %2, %0"
-- : "=r" (insn)
-- : "r" (pa), "i" (ASI_PHYS_USE_EC));
-- } else
--#endif
-- {
-- ptep = pte_offset_map(pmdp, tpc);
-- pte = *ptep;
-- if (pte_present(pte)) {
-- pa = (pte_pfn(pte) << PAGE_SHIFT);
-- pa += (tpc & ~PAGE_MASK);
--
-- /* Use phys bypass so we don't pollute dtlb/dcache. */
-- __asm__ __volatile__("lduwa [%1] %2, %0"
-- : "=r" (insn)
-- : "r" (pa), "i" (ASI_PHYS_USE_EC));
-- }
-- pte_unmap(ptep);
-- }
--out_irq_enable:
-- local_irq_enable();
- out:
-+ pte_unmap(ptep);
-+ __asm__ __volatile__("wrpr %0, 0x0, %%pstate" : : "r" (pstate));
-+outret:
- return insn;
- }
-
-@@ -166,8 +153,7 @@
- }
-
- static void do_fault_siginfo(int code, int sig, struct pt_regs *regs,
-- unsigned long fault_addr, unsigned int insn,
-- int fault_code)
-+ unsigned int insn, int fault_code)
- {
- unsigned long addr;
- siginfo_t info;
-@@ -175,18 +161,10 @@
- info.si_code = code;
- info.si_signo = sig;
- info.si_errno = 0;
-- if (fault_code & FAULT_CODE_ITLB) {
-+ if (fault_code & FAULT_CODE_ITLB)
- addr = regs->tpc;
-- } else {
-- /* If we were able to probe the faulting instruction, use it
-- * to compute a precise fault address. Otherwise use the fault
-- * time provided address which may only have page granularity.
-- */
-- if (insn)
-- addr = compute_effective_address(regs, insn, 0);
-- else
-- addr = fault_addr;
-- }
-+ else
-+ addr = compute_effective_address(regs, insn, 0);
- info.si_addr = (void __user *) addr;
- info.si_trapno = 0;
-
-@@ -261,7 +239,7 @@
- /* The si_code was set to make clear whether
- * this was a SEGV_MAPERR or SEGV_ACCERR fault.
- */
-- do_fault_siginfo(si_code, SIGSEGV, regs, address, insn, fault_code);
-+ do_fault_siginfo(si_code, SIGSEGV, regs, insn, fault_code);
- return;
- }
-
-@@ -281,6 +259,18 @@
- show_regs(regs);
- }
-
-+static void noinline __kprobes bogus_32bit_fault_address(struct pt_regs *regs,
-+ unsigned long addr)
-+{
-+ static int times;
-+
-+ if (times++ < 10)
-+ printk(KERN_ERR "FAULT[%s:%d]: 32-bit process "
-+ "reports 64-bit fault address [%lx]\n",
-+ current->comm, current->pid, addr);
-+ show_regs(regs);
-+}
-+
- asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs)
- {
- enum ctx_state prev_state = exception_enter();
-@@ -310,8 +300,10 @@
- goto intr_or_no_mm;
- }
- }
-- if (unlikely((address >> 32) != 0))
-+ if (unlikely((address >> 32) != 0)) {
-+ bogus_32bit_fault_address(regs, address);
- goto intr_or_no_mm;
-+ }
- }
-
- if (regs->tstate & TSTATE_PRIV) {
-@@ -533,7 +525,7 @@
- * Send a sigbus, regardless of whether we were in kernel
- * or user mode.
- */
-- do_fault_siginfo(BUS_ADRERR, SIGBUS, regs, address, insn, fault_code);
-+ do_fault_siginfo(BUS_ADRERR, SIGBUS, regs, insn, fault_code);
-
- /* Kernel mode? Handle exceptions or die */
- if (regs->tstate & TSTATE_PRIV)
-diff -Nur linux-3.14.17/arch/sparc/mm/gup.c linux-imx6-3.14/arch/sparc/mm/gup.c
---- linux-3.14.17/arch/sparc/mm/gup.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/sparc/mm/gup.c 2014-09-11 18:05:57.866021451 +0200
-@@ -73,7 +73,7 @@
- struct page *head, *page, *tail;
- int refs;
-
-- if (!(pmd_val(pmd) & _PAGE_VALID))
-+ if (!pmd_large(pmd))
- return 0;
-
- if (write && !pmd_write(pmd))
-diff -Nur linux-3.14.17/arch/sparc/mm/init_64.c linux-imx6-3.14/arch/sparc/mm/init_64.c
---- linux-3.14.17/arch/sparc/mm/init_64.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/sparc/mm/init_64.c 2014-09-11 18:05:57.870021467 +0200
-@@ -350,10 +350,6 @@
-
- mm = vma->vm_mm;
-
-- /* Don't insert a non-valid PTE into the TSB, we'll deadlock. */
-- if (!pte_accessible(mm, pte))
-- return;
--
- spin_lock_irqsave(&mm->context.lock, flags);
-
- #if defined(CONFIG_HUGETLB_PAGE) || defined(CONFIG_TRANSPARENT_HUGEPAGE)
-@@ -592,7 +588,7 @@
- int i, tlb_ent = sparc64_highest_locked_tlbent();
-
- tte_vaddr = (unsigned long) KERNBASE;
-- phys_page = (prom_boot_mapping_phys_low >> ILOG2_4MB) << ILOG2_4MB;
-+ phys_page = (prom_boot_mapping_phys_low >> 22UL) << 22UL;
- tte_data = kern_large_tte(phys_page);
-
- kern_locked_tte_data = tte_data;
-@@ -1885,7 +1881,7 @@
-
- BUILD_BUG_ON(NR_CPUS > 4096);
-
-- kern_base = (prom_boot_mapping_phys_low >> ILOG2_4MB) << ILOG2_4MB;
-+ kern_base = (prom_boot_mapping_phys_low >> 22UL) << 22UL;
- kern_size = (unsigned long)&_end - (unsigned long)KERNBASE;
-
- /* Invalidate both kernel TSBs. */
-@@ -1941,7 +1937,7 @@
- shift = kern_base + PAGE_OFFSET - ((unsigned long)KERNBASE);
-
- real_end = (unsigned long)_end;
-- num_kernel_image_mappings = DIV_ROUND_UP(real_end - KERNBASE, 1 << ILOG2_4MB);
-+ num_kernel_image_mappings = DIV_ROUND_UP(real_end - KERNBASE, 1 << 22);
- printk("Kernel: Using %d locked TLB entries for main kernel image.\n",
- num_kernel_image_mappings);
-
-@@ -2098,7 +2094,7 @@
-
- if (new_start <= old_start &&
- new_end >= (old_start + PAGE_SIZE)) {
-- set_bit(old_start >> ILOG2_4MB, bitmap);
-+ set_bit(old_start >> 22, bitmap);
- goto do_next_page;
- }
- }
-@@ -2147,7 +2143,7 @@
- addr = PAGE_OFFSET + kern_base;
- last = PAGE_ALIGN(kern_size) + addr;
- while (addr < last) {
-- set_bit(__pa(addr) >> ILOG2_4MB, sparc64_valid_addr_bitmap);
-+ set_bit(__pa(addr) >> 22, sparc64_valid_addr_bitmap);
- addr += PAGE_SIZE;
- }
-
-@@ -2271,7 +2267,7 @@
- void *block;
-
- if (!(*vmem_pp & _PAGE_VALID)) {
-- block = vmemmap_alloc_block(1UL << ILOG2_4MB, node);
-+ block = vmemmap_alloc_block(1UL << 22, node);
- if (!block)
- return -ENOMEM;
-
-@@ -2618,10 +2614,6 @@
-
- pte = pmd_val(entry);
-
-- /* Don't insert a non-valid PMD into the TSB, we'll deadlock. */
-- if (!(pte & _PAGE_VALID))
-- return;
--
- /* We are fabricating 8MB pages using 4MB real hw pages. */
- pte |= (addr & (1UL << REAL_HPAGE_SHIFT));
-
-@@ -2702,26 +2694,3 @@
- }
- }
- #endif
--
--#ifdef CONFIG_SMP
--#define do_flush_tlb_kernel_range smp_flush_tlb_kernel_range
--#else
--#define do_flush_tlb_kernel_range __flush_tlb_kernel_range
--#endif
--
--void flush_tlb_kernel_range(unsigned long start, unsigned long end)
--{
-- if (start < HI_OBP_ADDRESS && end > LOW_OBP_ADDRESS) {
-- if (start < LOW_OBP_ADDRESS) {
-- flush_tsb_kernel_range(start, LOW_OBP_ADDRESS);
-- do_flush_tlb_kernel_range(start, LOW_OBP_ADDRESS);
-- }
-- if (end > HI_OBP_ADDRESS) {
-- flush_tsb_kernel_range(end, HI_OBP_ADDRESS);
-- do_flush_tlb_kernel_range(end, HI_OBP_ADDRESS);
-- }
-- } else {
-- flush_tsb_kernel_range(start, end);
-- do_flush_tlb_kernel_range(start, end);
-- }
--}
-diff -Nur linux-3.14.17/arch/sparc/mm/tlb.c linux-imx6-3.14/arch/sparc/mm/tlb.c
---- linux-3.14.17/arch/sparc/mm/tlb.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/sparc/mm/tlb.c 2014-09-11 18:05:57.870021467 +0200
-@@ -134,7 +134,7 @@
-
- #ifdef CONFIG_TRANSPARENT_HUGEPAGE
- static void tlb_batch_pmd_scan(struct mm_struct *mm, unsigned long vaddr,
-- pmd_t pmd)
-+ pmd_t pmd, bool exec)
- {
- unsigned long end;
- pte_t *pte;
-@@ -142,11 +142,8 @@
- pte = pte_offset_map(&pmd, vaddr);
- end = vaddr + HPAGE_SIZE;
- while (vaddr < end) {
-- if (pte_val(*pte) & _PAGE_VALID) {
-- bool exec = pte_exec(*pte);
--
-+ if (pte_val(*pte) & _PAGE_VALID)
- tlb_batch_add_one(mm, vaddr, exec);
-- }
- pte++;
- vaddr += PAGE_SIZE;
- }
-@@ -180,30 +177,19 @@
- }
-
- if (!pmd_none(orig)) {
-+ pte_t orig_pte = __pte(pmd_val(orig));
-+ bool exec = pte_exec(orig_pte);
-+
- addr &= HPAGE_MASK;
- if (pmd_trans_huge(orig)) {
-- pte_t orig_pte = __pte(pmd_val(orig));
-- bool exec = pte_exec(orig_pte);
--
- tlb_batch_add_one(mm, addr, exec);
- tlb_batch_add_one(mm, addr + REAL_HPAGE_SIZE, exec);
- } else {
-- tlb_batch_pmd_scan(mm, addr, orig);
-+ tlb_batch_pmd_scan(mm, addr, orig, exec);
- }
- }
- }
-
--void pmdp_invalidate(struct vm_area_struct *vma, unsigned long address,
-- pmd_t *pmdp)
--{
-- pmd_t entry = *pmdp;
--
-- pmd_val(entry) &= ~_PAGE_VALID;
--
-- set_pmd_at(vma->vm_mm, address, pmdp, entry);
-- flush_tlb_range(vma, address, address + HPAGE_PMD_SIZE);
--}
--
- void pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp,
- pgtable_t pgtable)
- {
-diff -Nur linux-3.14.17/arch/sparc/mm/tsb.c linux-imx6-3.14/arch/sparc/mm/tsb.c
---- linux-3.14.17/arch/sparc/mm/tsb.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/sparc/mm/tsb.c 2014-09-11 18:05:57.870021467 +0200
-@@ -133,19 +133,7 @@
- mm->context.tsb_block[tsb_idx].tsb_nentries =
- tsb_bytes / sizeof(struct tsb);
-
-- switch (tsb_idx) {
-- case MM_TSB_BASE:
-- base = TSBMAP_8K_BASE;
-- break;
--#if defined(CONFIG_HUGETLB_PAGE) || defined(CONFIG_TRANSPARENT_HUGEPAGE)
-- case MM_TSB_HUGE:
-- base = TSBMAP_4M_BASE;
-- break;
--#endif
-- default:
-- BUG();
-- }
--
-+ base = TSBMAP_BASE;
- tte = pgprot_val(PAGE_KERNEL_LOCKED);
- tsb_paddr = __pa(mm->context.tsb_block[tsb_idx].tsb);
- BUG_ON(tsb_paddr & (tsb_bytes - 1UL));
-diff -Nur linux-3.14.17/arch/x86/boot/header.S linux-imx6-3.14/arch/x86/boot/header.S
---- linux-3.14.17/arch/x86/boot/header.S 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/x86/boot/header.S 2014-09-11 18:05:58.266023049 +0200
-@@ -91,9 +91,10 @@
-
- .section ".bsdata", "a"
- bugger_off_msg:
-- .ascii "Use a boot loader.\r\n"
-+ .ascii "Direct floppy boot is not supported. "
-+ .ascii "Use a boot loader program instead.\r\n"
- .ascii "\n"
-- .ascii "Remove disk and press any key to reboot...\r\n"
-+ .ascii "Remove disk and press any key to reboot ...\r\n"
- .byte 0
-
- #ifdef CONFIG_EFI_STUB
-@@ -107,7 +108,7 @@
- #else
- .word 0x8664 # x86-64
- #endif
-- .word 4 # nr_sections
-+ .word 3 # nr_sections
- .long 0 # TimeDateStamp
- .long 0 # PointerToSymbolTable
- .long 1 # NumberOfSymbols
-@@ -249,25 +250,6 @@
- .word 0 # NumberOfLineNumbers
- .long 0x60500020 # Characteristics (section flags)
-
-- #
-- # The offset & size fields are filled in by build.c.
-- #
-- .ascii ".bss"
-- .byte 0
-- .byte 0
-- .byte 0
-- .byte 0
-- .long 0
-- .long 0x0
-- .long 0 # Size of initialized data
-- # on disk
-- .long 0x0
-- .long 0 # PointerToRelocations
-- .long 0 # PointerToLineNumbers
-- .word 0 # NumberOfRelocations
-- .word 0 # NumberOfLineNumbers
-- .long 0xc8000080 # Characteristics (section flags)
--
- #endif /* CONFIG_EFI_STUB */
-
- # Kernel attributes; used by setup. This is part 1 of the
-diff -Nur linux-3.14.17/arch/x86/boot/tools/build.c linux-imx6-3.14/arch/x86/boot/tools/build.c
---- linux-3.14.17/arch/x86/boot/tools/build.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/x86/boot/tools/build.c 2014-09-11 18:05:58.326023289 +0200
-@@ -142,7 +142,7 @@
-
- #ifdef CONFIG_EFI_STUB
-
--static void update_pecoff_section_header_fields(char *section_name, u32 vma, u32 size, u32 datasz, u32 offset)
-+static void update_pecoff_section_header(char *section_name, u32 offset, u32 size)
- {
- unsigned int pe_header;
- unsigned short num_sections;
-@@ -163,10 +163,10 @@
- put_unaligned_le32(size, section + 0x8);
-
- /* section header vma field */
-- put_unaligned_le32(vma, section + 0xc);
-+ put_unaligned_le32(offset, section + 0xc);
-
- /* section header 'size of initialised data' field */
-- put_unaligned_le32(datasz, section + 0x10);
-+ put_unaligned_le32(size, section + 0x10);
-
- /* section header 'file offset' field */
- put_unaligned_le32(offset, section + 0x14);
-@@ -178,11 +178,6 @@
- }
- }
-
--static void update_pecoff_section_header(char *section_name, u32 offset, u32 size)
--{
-- update_pecoff_section_header_fields(section_name, offset, size, size, offset);
--}
--
- static void update_pecoff_setup_and_reloc(unsigned int size)
- {
- u32 setup_offset = 0x200;
-@@ -207,6 +202,9 @@
-
- pe_header = get_unaligned_le32(&buf[0x3c]);
-
-+ /* Size of image */
-+ put_unaligned_le32(file_sz, &buf[pe_header + 0x50]);
-+
- /*
- * Size of code: Subtract the size of the first sector (512 bytes)
- * which includes the header.
-@@ -221,22 +219,6 @@
- update_pecoff_section_header(".text", text_start, text_sz);
- }
-
--static void update_pecoff_bss(unsigned int file_sz, unsigned int init_sz)
--{
-- unsigned int pe_header;
-- unsigned int bss_sz = init_sz - file_sz;
--
-- pe_header = get_unaligned_le32(&buf[0x3c]);
--
-- /* Size of uninitialized data */
-- put_unaligned_le32(bss_sz, &buf[pe_header + 0x24]);
--
-- /* Size of image */
-- put_unaligned_le32(init_sz, &buf[pe_header + 0x50]);
--
-- update_pecoff_section_header_fields(".bss", file_sz, bss_sz, 0, 0);
--}
--
- #endif /* CONFIG_EFI_STUB */
-
-
-@@ -288,9 +270,6 @@
- int fd;
- void *kernel;
- u32 crc = 0xffffffffUL;
--#ifdef CONFIG_EFI_STUB
-- unsigned int init_sz;
--#endif
-
- /* Defaults for old kernel */
- #ifdef CONFIG_X86_32
-@@ -364,9 +343,7 @@
- put_unaligned_le32(sys_size, &buf[0x1f4]);
-
- #ifdef CONFIG_EFI_STUB
-- update_pecoff_text(setup_sectors * 512, i + (sys_size * 16));
-- init_sz = get_unaligned_le32(&buf[0x260]);
-- update_pecoff_bss(i + (sys_size * 16), init_sz);
-+ update_pecoff_text(setup_sectors * 512, sz + i + ((sys_size * 16) - sz));
-
- #ifdef CONFIG_X86_64 /* Yes, this is really how we defined it :( */
- efi_stub_entry -= 0x200;
-diff -Nur linux-3.14.17/arch/x86/include/asm/espfix.h linux-imx6-3.14/arch/x86/include/asm/espfix.h
---- linux-3.14.17/arch/x86/include/asm/espfix.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/x86/include/asm/espfix.h 1970-01-01 01:00:00.000000000 +0100
-@@ -1,16 +0,0 @@
--#ifndef _ASM_X86_ESPFIX_H
--#define _ASM_X86_ESPFIX_H
--
--#ifdef CONFIG_X86_64
--
--#include <asm/percpu.h>
--
--DECLARE_PER_CPU_READ_MOSTLY(unsigned long, espfix_stack);
--DECLARE_PER_CPU_READ_MOSTLY(unsigned long, espfix_waddr);
--
--extern void init_espfix_bsp(void);
--extern void init_espfix_ap(void);
--
--#endif /* CONFIG_X86_64 */
--
--#endif /* _ASM_X86_ESPFIX_H */
-diff -Nur linux-3.14.17/arch/x86/include/asm/irqflags.h linux-imx6-3.14/arch/x86/include/asm/irqflags.h
---- linux-3.14.17/arch/x86/include/asm/irqflags.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/x86/include/asm/irqflags.h 2014-09-11 18:05:58.386023528 +0200
-@@ -129,7 +129,7 @@
-
- #define PARAVIRT_ADJUST_EXCEPTION_FRAME /* */
-
--#define INTERRUPT_RETURN jmp native_iret
-+#define INTERRUPT_RETURN iretq
- #define USERGS_SYSRET64 \
- swapgs; \
- sysretq;
-diff -Nur linux-3.14.17/arch/x86/include/asm/pgtable_64_types.h linux-imx6-3.14/arch/x86/include/asm/pgtable_64_types.h
---- linux-3.14.17/arch/x86/include/asm/pgtable_64_types.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/x86/include/asm/pgtable_64_types.h 2014-09-11 18:05:58.390023544 +0200
-@@ -61,8 +61,6 @@
- #define MODULES_VADDR (__START_KERNEL_map + KERNEL_IMAGE_SIZE)
- #define MODULES_END _AC(0xffffffffff000000, UL)
- #define MODULES_LEN (MODULES_END - MODULES_VADDR)
--#define ESPFIX_PGD_ENTRY _AC(-2, UL)
--#define ESPFIX_BASE_ADDR (ESPFIX_PGD_ENTRY << PGDIR_SHIFT)
-
- #define EARLY_DYNAMIC_PAGE_TABLES 64
-
-diff -Nur linux-3.14.17/arch/x86/include/asm/setup.h linux-imx6-3.14/arch/x86/include/asm/setup.h
---- linux-3.14.17/arch/x86/include/asm/setup.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/x86/include/asm/setup.h 2014-09-11 18:05:58.414023641 +0200
-@@ -65,8 +65,6 @@
-
- #ifndef _SETUP
-
--#include <asm/espfix.h>
--
- /*
- * This is set up by the setup-routine at boot-time
- */
-diff -Nur linux-3.14.17/arch/x86/Kconfig linux-imx6-3.14/arch/x86/Kconfig
---- linux-3.14.17/arch/x86/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/x86/Kconfig 2014-09-11 18:05:58.262023032 +0200
-@@ -966,27 +966,10 @@
- default y
- depends on X86_32
- ---help---
-- This option is required by programs like DOSEMU to run
-- 16-bit real mode legacy code on x86 processors. It also may
-- be needed by software like XFree86 to initialize some video
-- cards via BIOS. Disabling this option saves about 6K.
--
--config X86_16BIT
-- bool "Enable support for 16-bit segments" if EXPERT
-- default y
-- ---help---
-- This option is required by programs like Wine to run 16-bit
-- protected mode legacy code on x86 processors. Disabling
-- this option saves about 300 bytes on i386, or around 6K text
-- plus 16K runtime memory on x86-64,
--
--config X86_ESPFIX32
-- def_bool y
-- depends on X86_16BIT && X86_32
--
--config X86_ESPFIX64
-- def_bool y
-- depends on X86_16BIT && X86_64
-+ This option is required by programs like DOSEMU to run 16-bit legacy
-+ code on X86 processors. It also may be needed by software like
-+ XFree86 to initialize some video cards via BIOS. Disabling this
-+ option saves about 6k.
-
- config TOSHIBA
- tristate "Toshiba Laptop support"
-diff -Nur linux-3.14.17/arch/x86/kernel/entry_32.S linux-imx6-3.14/arch/x86/kernel/entry_32.S
---- linux-3.14.17/arch/x86/kernel/entry_32.S 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/x86/kernel/entry_32.S 2014-09-11 18:05:58.538024137 +0200
-@@ -433,8 +433,8 @@
- cmpl $(NR_syscalls), %eax
- jae sysenter_badsys
- call *sys_call_table(,%eax,4)
--sysenter_after_call:
- movl %eax,PT_EAX(%esp)
-+sysenter_after_call:
- LOCKDEP_SYS_EXIT
- DISABLE_INTERRUPTS(CLBR_ANY)
- TRACE_IRQS_OFF
-@@ -514,7 +514,6 @@
- jae syscall_badsys
- syscall_call:
- call *sys_call_table(,%eax,4)
--syscall_after_call:
- movl %eax,PT_EAX(%esp) # store the return value
- syscall_exit:
- LOCKDEP_SYS_EXIT
-@@ -529,7 +528,6 @@
- restore_all:
- TRACE_IRQS_IRET
- restore_all_notrace:
--#ifdef CONFIG_X86_ESPFIX32
- movl PT_EFLAGS(%esp), %eax # mix EFLAGS, SS and CS
- # Warning: PT_OLDSS(%esp) contains the wrong/random values if we
- # are returning to the kernel.
-@@ -540,7 +538,6 @@
- cmpl $((SEGMENT_LDT << 8) | USER_RPL), %eax
- CFI_REMEMBER_STATE
- je ldt_ss # returning to user-space with LDT SS
--#endif
- restore_nocheck:
- RESTORE_REGS 4 # skip orig_eax/error_code
- irq_return:
-@@ -553,7 +550,6 @@
- .previous
- _ASM_EXTABLE(irq_return,iret_exc)
-
--#ifdef CONFIG_X86_ESPFIX32
- CFI_RESTORE_STATE
- ldt_ss:
- #ifdef CONFIG_PARAVIRT
-@@ -597,7 +593,6 @@
- lss (%esp), %esp /* switch to espfix segment */
- CFI_ADJUST_CFA_OFFSET -8
- jmp restore_nocheck
--#endif
- CFI_ENDPROC
- ENDPROC(system_call)
-
-@@ -688,12 +683,12 @@
- END(syscall_fault)
-
- syscall_badsys:
-- movl $-ENOSYS,%eax
-- jmp syscall_after_call
-+ movl $-ENOSYS,PT_EAX(%esp)
-+ jmp syscall_exit
- END(syscall_badsys)
-
- sysenter_badsys:
-- movl $-ENOSYS,%eax
-+ movl $-ENOSYS,PT_EAX(%esp)
- jmp sysenter_after_call
- END(syscall_badsys)
- CFI_ENDPROC
-@@ -710,7 +705,6 @@
- * the high word of the segment base from the GDT and swiches to the
- * normal stack and adjusts ESP with the matching offset.
- */
--#ifdef CONFIG_X86_ESPFIX32
- /* fixup the stack */
- mov GDT_ESPFIX_SS + 4, %al /* bits 16..23 */
- mov GDT_ESPFIX_SS + 7, %ah /* bits 24..31 */
-@@ -720,10 +714,8 @@
- pushl_cfi %eax
- lss (%esp), %esp /* switch to the normal stack segment */
- CFI_ADJUST_CFA_OFFSET -8
--#endif
- .endm
- .macro UNWIND_ESPFIX_STACK
--#ifdef CONFIG_X86_ESPFIX32
- movl %ss, %eax
- /* see if on espfix stack */
- cmpw $__ESPFIX_SS, %ax
-@@ -734,7 +726,6 @@
- /* switch to normal stack */
- FIXUP_ESPFIX_STACK
- 27:
--#endif
- .endm
-
- /*
-@@ -1365,13 +1356,11 @@
- ENTRY(nmi)
- RING0_INT_FRAME
- ASM_CLAC
--#ifdef CONFIG_X86_ESPFIX32
- pushl_cfi %eax
- movl %ss, %eax
- cmpw $__ESPFIX_SS, %ax
- popl_cfi %eax
- je nmi_espfix_stack
--#endif
- cmpl $ia32_sysenter_target,(%esp)
- je nmi_stack_fixup
- pushl_cfi %eax
-@@ -1411,7 +1400,6 @@
- FIX_STACK 24, nmi_stack_correct, 1
- jmp nmi_stack_correct
-
--#ifdef CONFIG_X86_ESPFIX32
- nmi_espfix_stack:
- /* We have a RING0_INT_FRAME here.
- *
-@@ -1433,7 +1421,6 @@
- lss 12+4(%esp), %esp # back to espfix stack
- CFI_ADJUST_CFA_OFFSET -24
- jmp irq_return
--#endif
- CFI_ENDPROC
- END(nmi)
-
-diff -Nur linux-3.14.17/arch/x86/kernel/entry_64.S linux-imx6-3.14/arch/x86/kernel/entry_64.S
---- linux-3.14.17/arch/x86/kernel/entry_64.S 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/x86/kernel/entry_64.S 2014-09-11 18:05:58.538024137 +0200
-@@ -58,7 +58,6 @@
- #include <asm/asm.h>
- #include <asm/context_tracking.h>
- #include <asm/smap.h>
--#include <asm/pgtable_types.h>
- #include <linux/err.h>
-
- /* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this. */
-@@ -1042,45 +1041,12 @@
-
- irq_return:
- INTERRUPT_RETURN
-+ _ASM_EXTABLE(irq_return, bad_iret)
-
-+#ifdef CONFIG_PARAVIRT
- ENTRY(native_iret)
-- /*
-- * Are we returning to a stack segment from the LDT? Note: in
-- * 64-bit mode SS:RSP on the exception stack is always valid.
-- */
--#ifdef CONFIG_X86_ESPFIX64
-- testb $4,(SS-RIP)(%rsp)
-- jnz native_irq_return_ldt
--#endif
--
--native_irq_return_iret:
- iretq
-- _ASM_EXTABLE(native_irq_return_iret, bad_iret)
--
--#ifdef CONFIG_X86_ESPFIX64
--native_irq_return_ldt:
-- pushq_cfi %rax
-- pushq_cfi %rdi
-- SWAPGS
-- movq PER_CPU_VAR(espfix_waddr),%rdi
-- movq %rax,(0*8)(%rdi) /* RAX */
-- movq (2*8)(%rsp),%rax /* RIP */
-- movq %rax,(1*8)(%rdi)
-- movq (3*8)(%rsp),%rax /* CS */
-- movq %rax,(2*8)(%rdi)
-- movq (4*8)(%rsp),%rax /* RFLAGS */
-- movq %rax,(3*8)(%rdi)
-- movq (6*8)(%rsp),%rax /* SS */
-- movq %rax,(5*8)(%rdi)
-- movq (5*8)(%rsp),%rax /* RSP */
-- movq %rax,(4*8)(%rdi)
-- andl $0xffff0000,%eax
-- popq_cfi %rdi
-- orq PER_CPU_VAR(espfix_stack),%rax
-- SWAPGS
-- movq %rax,%rsp
-- popq_cfi %rax
-- jmp native_irq_return_iret
-+ _ASM_EXTABLE(native_iret, bad_iret)
- #endif
-
- .section .fixup,"ax"
-@@ -1144,40 +1110,9 @@
- call preempt_schedule_irq
- jmp exit_intr
- #endif
-- CFI_ENDPROC
--END(common_interrupt)
-
-- /*
-- * If IRET takes a fault on the espfix stack, then we
-- * end up promoting it to a doublefault. In that case,
-- * modify the stack to make it look like we just entered
-- * the #GP handler from user space, similar to bad_iret.
-- */
--#ifdef CONFIG_X86_ESPFIX64
-- ALIGN
--__do_double_fault:
-- XCPT_FRAME 1 RDI+8
-- movq RSP(%rdi),%rax /* Trap on the espfix stack? */
-- sarq $PGDIR_SHIFT,%rax
-- cmpl $ESPFIX_PGD_ENTRY,%eax
-- jne do_double_fault /* No, just deliver the fault */
-- cmpl $__KERNEL_CS,CS(%rdi)
-- jne do_double_fault
-- movq RIP(%rdi),%rax
-- cmpq $native_irq_return_iret,%rax
-- jne do_double_fault /* This shouldn't happen... */
-- movq PER_CPU_VAR(kernel_stack),%rax
-- subq $(6*8-KERNEL_STACK_OFFSET),%rax /* Reset to original stack */
-- movq %rax,RSP(%rdi)
-- movq $0,(%rax) /* Missing (lost) #GP error code */
-- movq $general_protection,RIP(%rdi)
-- retq
- CFI_ENDPROC
--END(__do_double_fault)
--#else
--# define __do_double_fault do_double_fault
--#endif
--
-+END(common_interrupt)
- /*
- * End of kprobes section
- */
-@@ -1379,7 +1314,7 @@
- zeroentry bounds do_bounds
- zeroentry invalid_op do_invalid_op
- zeroentry device_not_available do_device_not_available
--paranoiderrorentry double_fault __do_double_fault
-+paranoiderrorentry double_fault do_double_fault
- zeroentry coprocessor_segment_overrun do_coprocessor_segment_overrun
- errorentry invalid_TSS do_invalid_TSS
- errorentry segment_not_present do_segment_not_present
-@@ -1666,7 +1601,7 @@
- */
- error_kernelspace:
- incl %ebx
-- leaq native_irq_return_iret(%rip),%rcx
-+ leaq irq_return(%rip),%rcx
- cmpq %rcx,RIP+8(%rsp)
- je error_swapgs
- movl %ecx,%eax /* zero extend */
-diff -Nur linux-3.14.17/arch/x86/kernel/espfix_64.c linux-imx6-3.14/arch/x86/kernel/espfix_64.c
---- linux-3.14.17/arch/x86/kernel/espfix_64.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/x86/kernel/espfix_64.c 1970-01-01 01:00:00.000000000 +0100
-@@ -1,208 +0,0 @@
--/* ----------------------------------------------------------------------- *
-- *
-- * Copyright 2014 Intel Corporation; author: H. Peter Anvin
-- *
-- * This program is free software; you can redistribute it and/or modify it
-- * under the terms and conditions of the GNU General Public License,
-- * version 2, as published by the Free Software Foundation.
-- *
-- * This program is distributed in the hope it will be useful, but WITHOUT
-- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
-- * more details.
-- *
-- * ----------------------------------------------------------------------- */
--
--/*
-- * The IRET instruction, when returning to a 16-bit segment, only
-- * restores the bottom 16 bits of the user space stack pointer. This
-- * causes some 16-bit software to break, but it also leaks kernel state
-- * to user space.
-- *
-- * This works around this by creating percpu "ministacks", each of which
-- * is mapped 2^16 times 64K apart. When we detect that the return SS is
-- * on the LDT, we copy the IRET frame to the ministack and use the
-- * relevant alias to return to userspace. The ministacks are mapped
-- * readonly, so if the IRET fault we promote #GP to #DF which is an IST
-- * vector and thus has its own stack; we then do the fixup in the #DF
-- * handler.
-- *
-- * This file sets up the ministacks and the related page tables. The
-- * actual ministack invocation is in entry_64.S.
-- */
--
--#include <linux/init.h>
--#include <linux/init_task.h>
--#include <linux/kernel.h>
--#include <linux/percpu.h>
--#include <linux/gfp.h>
--#include <linux/random.h>
--#include <asm/pgtable.h>
--#include <asm/pgalloc.h>
--#include <asm/setup.h>
--#include <asm/espfix.h>
--
--/*
-- * Note: we only need 6*8 = 48 bytes for the espfix stack, but round
-- * it up to a cache line to avoid unnecessary sharing.
-- */
--#define ESPFIX_STACK_SIZE (8*8UL)
--#define ESPFIX_STACKS_PER_PAGE (PAGE_SIZE/ESPFIX_STACK_SIZE)
--
--/* There is address space for how many espfix pages? */
--#define ESPFIX_PAGE_SPACE (1UL << (PGDIR_SHIFT-PAGE_SHIFT-16))
--
--#define ESPFIX_MAX_CPUS (ESPFIX_STACKS_PER_PAGE * ESPFIX_PAGE_SPACE)
--#if CONFIG_NR_CPUS > ESPFIX_MAX_CPUS
--# error "Need more than one PGD for the ESPFIX hack"
--#endif
--
--#define PGALLOC_GFP (GFP_KERNEL | __GFP_NOTRACK | __GFP_REPEAT | __GFP_ZERO)
--
--/* This contains the *bottom* address of the espfix stack */
--DEFINE_PER_CPU_READ_MOSTLY(unsigned long, espfix_stack);
--DEFINE_PER_CPU_READ_MOSTLY(unsigned long, espfix_waddr);
--
--/* Initialization mutex - should this be a spinlock? */
--static DEFINE_MUTEX(espfix_init_mutex);
--
--/* Page allocation bitmap - each page serves ESPFIX_STACKS_PER_PAGE CPUs */
--#define ESPFIX_MAX_PAGES DIV_ROUND_UP(CONFIG_NR_CPUS, ESPFIX_STACKS_PER_PAGE)
--static void *espfix_pages[ESPFIX_MAX_PAGES];
--
--static __page_aligned_bss pud_t espfix_pud_page[PTRS_PER_PUD]
-- __aligned(PAGE_SIZE);
--
--static unsigned int page_random, slot_random;
--
--/*
-- * This returns the bottom address of the espfix stack for a specific CPU.
-- * The math allows for a non-power-of-two ESPFIX_STACK_SIZE, in which case
-- * we have to account for some amount of padding at the end of each page.
-- */
--static inline unsigned long espfix_base_addr(unsigned int cpu)
--{
-- unsigned long page, slot;
-- unsigned long addr;
--
-- page = (cpu / ESPFIX_STACKS_PER_PAGE) ^ page_random;
-- slot = (cpu + slot_random) % ESPFIX_STACKS_PER_PAGE;
-- addr = (page << PAGE_SHIFT) + (slot * ESPFIX_STACK_SIZE);
-- addr = (addr & 0xffffUL) | ((addr & ~0xffffUL) << 16);
-- addr += ESPFIX_BASE_ADDR;
-- return addr;
--}
--
--#define PTE_STRIDE (65536/PAGE_SIZE)
--#define ESPFIX_PTE_CLONES (PTRS_PER_PTE/PTE_STRIDE)
--#define ESPFIX_PMD_CLONES PTRS_PER_PMD
--#define ESPFIX_PUD_CLONES (65536/(ESPFIX_PTE_CLONES*ESPFIX_PMD_CLONES))
--
--#define PGTABLE_PROT ((_KERNPG_TABLE & ~_PAGE_RW) | _PAGE_NX)
--
--static void init_espfix_random(void)
--{
-- unsigned long rand;
--
-- /*
-- * This is run before the entropy pools are initialized,
-- * but this is hopefully better than nothing.
-- */
-- if (!arch_get_random_long(&rand)) {
-- /* The constant is an arbitrary large prime */
-- rdtscll(rand);
-- rand *= 0xc345c6b72fd16123UL;
-- }
--
-- slot_random = rand % ESPFIX_STACKS_PER_PAGE;
-- page_random = (rand / ESPFIX_STACKS_PER_PAGE)
-- & (ESPFIX_PAGE_SPACE - 1);
--}
--
--void __init init_espfix_bsp(void)
--{
-- pgd_t *pgd_p;
-- pteval_t ptemask;
--
-- ptemask = __supported_pte_mask;
--
-- /* Install the espfix pud into the kernel page directory */
-- pgd_p = &init_level4_pgt[pgd_index(ESPFIX_BASE_ADDR)];
-- pgd_populate(&init_mm, pgd_p, (pud_t *)espfix_pud_page);
--
-- /* Randomize the locations */
-- init_espfix_random();
--
-- /* The rest is the same as for any other processor */
-- init_espfix_ap();
--}
--
--void init_espfix_ap(void)
--{
-- unsigned int cpu, page;
-- unsigned long addr;
-- pud_t pud, *pud_p;
-- pmd_t pmd, *pmd_p;
-- pte_t pte, *pte_p;
-- int n;
-- void *stack_page;
-- pteval_t ptemask;
--
-- /* We only have to do this once... */
-- if (likely(this_cpu_read(espfix_stack)))
-- return; /* Already initialized */
--
-- cpu = smp_processor_id();
-- addr = espfix_base_addr(cpu);
-- page = cpu/ESPFIX_STACKS_PER_PAGE;
--
-- /* Did another CPU already set this up? */
-- stack_page = ACCESS_ONCE(espfix_pages[page]);
-- if (likely(stack_page))
-- goto done;
--
-- mutex_lock(&espfix_init_mutex);
--
-- /* Did we race on the lock? */
-- stack_page = ACCESS_ONCE(espfix_pages[page]);
-- if (stack_page)
-- goto unlock_done;
--
-- ptemask = __supported_pte_mask;
--
-- pud_p = &espfix_pud_page[pud_index(addr)];
-- pud = *pud_p;
-- if (!pud_present(pud)) {
-- pmd_p = (pmd_t *)__get_free_page(PGALLOC_GFP);
-- pud = __pud(__pa(pmd_p) | (PGTABLE_PROT & ptemask));
-- paravirt_alloc_pmd(&init_mm, __pa(pmd_p) >> PAGE_SHIFT);
-- for (n = 0; n < ESPFIX_PUD_CLONES; n++)
-- set_pud(&pud_p[n], pud);
-- }
--
-- pmd_p = pmd_offset(&pud, addr);
-- pmd = *pmd_p;
-- if (!pmd_present(pmd)) {
-- pte_p = (pte_t *)__get_free_page(PGALLOC_GFP);
-- pmd = __pmd(__pa(pte_p) | (PGTABLE_PROT & ptemask));
-- paravirt_alloc_pte(&init_mm, __pa(pte_p) >> PAGE_SHIFT);
-- for (n = 0; n < ESPFIX_PMD_CLONES; n++)
-- set_pmd(&pmd_p[n], pmd);
-- }
--
-- pte_p = pte_offset_kernel(&pmd, addr);
-- stack_page = (void *)__get_free_page(GFP_KERNEL);
-- pte = __pte(__pa(stack_page) | (__PAGE_KERNEL_RO & ptemask));
-- for (n = 0; n < ESPFIX_PTE_CLONES; n++)
-- set_pte(&pte_p[n*PTE_STRIDE], pte);
--
-- /* Job is done for this CPU and any CPU which shares this page */
-- ACCESS_ONCE(espfix_pages[page]) = stack_page;
--
--unlock_done:
-- mutex_unlock(&espfix_init_mutex);
--done:
-- this_cpu_write(espfix_stack, addr);
-- this_cpu_write(espfix_waddr, (unsigned long)stack_page
-- + (addr & ~PAGE_MASK));
--}
-diff -Nur linux-3.14.17/arch/x86/kernel/ldt.c linux-imx6-3.14/arch/x86/kernel/ldt.c
---- linux-3.14.17/arch/x86/kernel/ldt.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/x86/kernel/ldt.c 2014-09-11 18:05:58.546024168 +0200
-@@ -20,6 +20,8 @@
- #include <asm/mmu_context.h>
- #include <asm/syscalls.h>
-
-+int sysctl_ldt16 = 0;
-+
- #ifdef CONFIG_SMP
- static void flush_ldt(void *current_mm)
- {
-@@ -229,10 +231,16 @@
- }
- }
-
-- if (!IS_ENABLED(CONFIG_X86_16BIT) && !ldt_info.seg_32bit) {
-+ /*
-+ * On x86-64 we do not support 16-bit segments due to
-+ * IRET leaking the high bits of the kernel stack address.
-+ */
-+#ifdef CONFIG_X86_64
-+ if (!ldt_info.seg_32bit && !sysctl_ldt16) {
- error = -EINVAL;
- goto out_unlock;
- }
-+#endif
-
- fill_ldt(&ldt, &ldt_info);
- if (oldmode)
-diff -Nur linux-3.14.17/arch/x86/kernel/Makefile linux-imx6-3.14/arch/x86/kernel/Makefile
---- linux-3.14.17/arch/x86/kernel/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/x86/kernel/Makefile 2014-09-11 18:05:58.478023896 +0200
-@@ -29,7 +29,6 @@
- obj-y += syscall_$(BITS).o
- obj-$(CONFIG_X86_64) += vsyscall_64.o
- obj-$(CONFIG_X86_64) += vsyscall_emu_64.o
--obj-$(CONFIG_X86_ESPFIX64) += espfix_64.o
- obj-$(CONFIG_SYSFS) += ksysfs.o
- obj-y += bootflag.o e820.o
- obj-y += pci-dma.o quirks.o topology.o kdebugfs.o
-diff -Nur linux-3.14.17/arch/x86/kernel/paravirt_patch_64.c linux-imx6-3.14/arch/x86/kernel/paravirt_patch_64.c
---- linux-3.14.17/arch/x86/kernel/paravirt_patch_64.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/x86/kernel/paravirt_patch_64.c 2014-09-11 18:05:58.546024168 +0200
-@@ -6,6 +6,7 @@
- DEF_NATIVE(pv_irq_ops, irq_enable, "sti");
- DEF_NATIVE(pv_irq_ops, restore_fl, "pushq %rdi; popfq");
- DEF_NATIVE(pv_irq_ops, save_fl, "pushfq; popq %rax");
-+DEF_NATIVE(pv_cpu_ops, iret, "iretq");
- DEF_NATIVE(pv_mmu_ops, read_cr2, "movq %cr2, %rax");
- DEF_NATIVE(pv_mmu_ops, read_cr3, "movq %cr3, %rax");
- DEF_NATIVE(pv_mmu_ops, write_cr3, "movq %rdi, %cr3");
-@@ -49,6 +50,7 @@
- PATCH_SITE(pv_irq_ops, save_fl);
- PATCH_SITE(pv_irq_ops, irq_enable);
- PATCH_SITE(pv_irq_ops, irq_disable);
-+ PATCH_SITE(pv_cpu_ops, iret);
- PATCH_SITE(pv_cpu_ops, irq_enable_sysexit);
- PATCH_SITE(pv_cpu_ops, usergs_sysret32);
- PATCH_SITE(pv_cpu_ops, usergs_sysret64);
-diff -Nur linux-3.14.17/arch/x86/kernel/setup.c linux-imx6-3.14/arch/x86/kernel/setup.c
---- linux-3.14.17/arch/x86/kernel/setup.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/x86/kernel/setup.c 2014-09-11 18:05:58.578024296 +0200
+diff -Nur linux-3.14.22.orig/arch/x86/kernel/setup.c linux-3.14.22/arch/x86/kernel/setup.c
+--- linux-3.14.22.orig/arch/x86/kernel/setup.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/arch/x86/kernel/setup.c 2014-10-22 14:55:51.942220001 -0500
@@ -1120,7 +1120,7 @@
setup_real_mode();
@@ -43826,375 +42197,9 @@ diff -Nur linux-3.14.17/arch/x86/kernel/setup.c linux-imx6-3.14/arch/x86/kernel/
/*
* NOTE: On x86-32, only from this point on, fixmaps are ready for use.
-diff -Nur linux-3.14.17/arch/x86/kernel/smpboot.c linux-imx6-3.14/arch/x86/kernel/smpboot.c
---- linux-3.14.17/arch/x86/kernel/smpboot.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/x86/kernel/smpboot.c 2014-09-11 18:05:58.582024312 +0200
-@@ -243,13 +243,6 @@
- check_tsc_sync_target();
-
- /*
-- * Enable the espfix hack for this CPU
-- */
--#ifdef CONFIG_X86_ESPFIX64
-- init_espfix_ap();
--#endif
--
-- /*
- * We need to hold vector_lock so there the set of online cpus
- * does not change while we are assigning vectors to cpus. Holding
- * this lock ensures we don't half assign or remove an irq from a cpu.
-diff -Nur linux-3.14.17/arch/x86/mm/dump_pagetables.c linux-imx6-3.14/arch/x86/mm/dump_pagetables.c
---- linux-3.14.17/arch/x86/mm/dump_pagetables.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/x86/mm/dump_pagetables.c 2014-09-11 18:05:58.694024760 +0200
-@@ -30,13 +30,11 @@
- unsigned long start_address;
- unsigned long current_address;
- const struct addr_marker *marker;
-- unsigned long lines;
- };
-
- struct addr_marker {
- unsigned long start_address;
- const char *name;
-- unsigned long max_lines;
- };
-
- /* indices for address_markers; keep sync'd w/ address_markers below */
-@@ -47,7 +45,6 @@
- LOW_KERNEL_NR,
- VMALLOC_START_NR,
- VMEMMAP_START_NR,
-- ESPFIX_START_NR,
- HIGH_KERNEL_NR,
- MODULES_VADDR_NR,
- MODULES_END_NR,
-@@ -70,7 +67,6 @@
- { PAGE_OFFSET, "Low Kernel Mapping" },
- { VMALLOC_START, "vmalloc() Area" },
- { VMEMMAP_START, "Vmemmap" },
-- { ESPFIX_BASE_ADDR, "ESPfix Area", 16 },
- { __START_KERNEL_map, "High Kernel Mapping" },
- { MODULES_VADDR, "Modules" },
- { MODULES_END, "End Modules" },
-@@ -167,7 +163,7 @@
- pgprot_t new_prot, int level)
- {
- pgprotval_t prot, cur;
-- static const char units[] = "BKMGTPE";
-+ static const char units[] = "KMGTPE";
-
- /*
- * If we have a "break" in the series, we need to flush the state that
-@@ -182,7 +178,6 @@
- st->current_prot = new_prot;
- st->level = level;
- st->marker = address_markers;
-- st->lines = 0;
- seq_printf(m, "---[ %s ]---\n", st->marker->name);
- } else if (prot != cur || level != st->level ||
- st->current_address >= st->marker[1].start_address) {
-@@ -193,21 +188,17 @@
- /*
- * Now print the actual finished series
- */
-- if (!st->marker->max_lines ||
-- st->lines < st->marker->max_lines) {
-- seq_printf(m, "0x%0*lx-0x%0*lx ",
-- width, st->start_address,
-- width, st->current_address);
--
-- delta = (st->current_address - st->start_address) >> 10;
-- while (!(delta & 1023) && unit[1]) {
-- delta >>= 10;
-- unit++;
-- }
-- seq_printf(m, "%9lu%c ", delta, *unit);
-- printk_prot(m, st->current_prot, st->level);
-+ seq_printf(m, "0x%0*lx-0x%0*lx ",
-+ width, st->start_address,
-+ width, st->current_address);
-+
-+ delta = (st->current_address - st->start_address) >> 10;
-+ while (!(delta & 1023) && unit[1]) {
-+ delta >>= 10;
-+ unit++;
- }
-- st->lines++;
-+ seq_printf(m, "%9lu%c ", delta, *unit);
-+ printk_prot(m, st->current_prot, st->level);
-
- /*
- * We print markers for special areas of address space,
-diff -Nur linux-3.14.17/arch/x86/vdso/vdso32-setup.c linux-imx6-3.14/arch/x86/vdso/vdso32-setup.c
---- linux-3.14.17/arch/x86/vdso/vdso32-setup.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/x86/vdso/vdso32-setup.c 2014-09-11 18:05:58.862025430 +0200
-@@ -41,6 +41,7 @@
- #ifdef CONFIG_X86_64
- #define vdso_enabled sysctl_vsyscall32
- #define arch_setup_additional_pages syscall32_setup_pages
-+extern int sysctl_ldt16;
- #endif
-
- /*
-@@ -379,6 +380,13 @@
- .maxlen = sizeof(int),
- .mode = 0644,
- .proc_handler = proc_dointvec
-+ },
-+ {
-+ .procname = "ldt16",
-+ .data = &sysctl_ldt16,
-+ .maxlen = sizeof(int),
-+ .mode = 0644,
-+ .proc_handler = proc_dointvec
- },
- {}
- };
-diff -Nur linux-3.14.17/arch/x86/xen/setup.c linux-imx6-3.14/arch/x86/xen/setup.c
---- linux-3.14.17/arch/x86/xen/setup.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/x86/xen/setup.c 2014-09-11 18:05:58.890025543 +0200
-@@ -574,7 +574,13 @@
- }
- #endif /* CONFIG_X86_64 */
- }
--
-+void xen_enable_nmi(void)
-+{
-+#ifdef CONFIG_X86_64
-+ if (register_callback(CALLBACKTYPE_nmi, (char *)nmi))
-+ BUG();
-+#endif
-+}
- void __init xen_pvmmu_arch_setup(void)
- {
- HYPERVISOR_vm_assist(VMASST_CMD_enable, VMASST_TYPE_4gb_segments);
-@@ -589,6 +595,7 @@
-
- xen_enable_sysenter();
- xen_enable_syscall();
-+ xen_enable_nmi();
- }
-
- /* This function is not called for HVM domains */
-diff -Nur linux-3.14.17/arch/xtensa/kernel/vectors.S linux-imx6-3.14/arch/xtensa/kernel/vectors.S
---- linux-3.14.17/arch/xtensa/kernel/vectors.S 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/xtensa/kernel/vectors.S 2014-09-11 18:05:59.070026262 +0200
-@@ -376,42 +376,38 @@
- beqz a2, 1f # if at start of vector, don't restore
-
- addi a0, a0, -128
-- bbsi.l a0, 8, 1f # don't restore except for overflow 8 and 12
--
-- /*
-- * This fixup handler is for the extremely unlikely case where the
-- * overflow handler's reference thru a0 gets a hardware TLB refill
-- * that bumps out the (distinct, aliasing) TLB entry that mapped its
-- * prior references thru a9/a13, and where our reference now thru
-- * a9/a13 gets a 2nd-level miss exception (not hardware TLB refill).
-- */
-- movi a2, window_overflow_restore_a0_fixup
-- s32i a2, a3, EXC_TABLE_FIXUP
-- l32i a2, a3, EXC_TABLE_DOUBLE_SAVE
-- xsr a3, excsave1
--
-- bbsi.l a0, 7, 2f
-+ bbsi a0, 8, 1f # don't restore except for overflow 8 and 12
-+ bbsi a0, 7, 2f
-
- /*
- * Restore a0 as saved by _WindowOverflow8().
-+ *
-+ * FIXME: we really need a fixup handler for this L32E,
-+ * for the extremely unlikely case where the overflow handler's
-+ * reference thru a0 gets a hardware TLB refill that bumps out
-+ * the (distinct, aliasing) TLB entry that mapped its prior
-+ * references thru a9, and where our reference now thru a9
-+ * gets a 2nd-level miss exception (not hardware TLB refill).
- */
-
-- l32e a0, a9, -16
-- wsr a0, depc # replace the saved a0
-- j 3f
-+ l32e a2, a9, -16
-+ wsr a2, depc # replace the saved a0
-+ j 1f
-
- 2:
- /*
- * Restore a0 as saved by _WindowOverflow12().
-+ *
-+ * FIXME: we really need a fixup handler for this L32E,
-+ * for the extremely unlikely case where the overflow handler's
-+ * reference thru a0 gets a hardware TLB refill that bumps out
-+ * the (distinct, aliasing) TLB entry that mapped its prior
-+ * references thru a13, and where our reference now thru a13
-+ * gets a 2nd-level miss exception (not hardware TLB refill).
- */
-
-- l32e a0, a13, -16
-- wsr a0, depc # replace the saved a0
--3:
-- xsr a3, excsave1
-- movi a0, 0
-- s32i a0, a3, EXC_TABLE_FIXUP
-- s32i a2, a3, EXC_TABLE_DOUBLE_SAVE
-+ l32e a2, a13, -16
-+ wsr a2, depc # replace the saved a0
- 1:
- /*
- * Restore WindowBase while leaving all address registers restored.
-@@ -453,7 +449,6 @@
-
- s32i a0, a2, PT_DEPC
-
--_DoubleExceptionVector_handle_exception:
- addx4 a0, a0, a3
- l32i a0, a0, EXC_TABLE_FAST_USER
- xsr a3, excsave1
-@@ -469,120 +464,11 @@
- rotw -3
- j 1b
-
-+ .end literal_prefix
-
- ENDPROC(_DoubleExceptionVector)
-
- /*
-- * Fixup handler for TLB miss in double exception handler for window owerflow.
-- * We get here with windowbase set to the window that was being spilled and
-- * a0 trashed. a0 bit 7 determines if this is a call8 (bit clear) or call12
-- * (bit set) window.
-- *
-- * We do the following here:
-- * - go to the original window retaining a0 value;
-- * - set up exception stack to return back to appropriate a0 restore code
-- * (we'll need to rotate window back and there's no place to save this
-- * information, use different return address for that);
-- * - handle the exception;
-- * - go to the window that was being spilled;
-- * - set up window_overflow_restore_a0_fixup as a fixup routine;
-- * - reload a0;
-- * - restore the original window;
-- * - reset the default fixup routine;
-- * - return to user. By the time we get to this fixup handler all information
-- * about the conditions of the original double exception that happened in
-- * the window overflow handler is lost, so we just return to userspace to
-- * retry overflow from start.
-- *
-- * a0: value of depc, original value in depc
-- * a2: trashed, original value in EXC_TABLE_DOUBLE_SAVE
-- * a3: exctable, original value in excsave1
-- */
--
--ENTRY(window_overflow_restore_a0_fixup)
--
-- rsr a0, ps
-- extui a0, a0, PS_OWB_SHIFT, PS_OWB_WIDTH
-- rsr a2, windowbase
-- sub a0, a2, a0
-- extui a0, a0, 0, 3
-- l32i a2, a3, EXC_TABLE_DOUBLE_SAVE
-- xsr a3, excsave1
--
-- _beqi a0, 1, .Lhandle_1
-- _beqi a0, 3, .Lhandle_3
--
-- .macro overflow_fixup_handle_exception_pane n
--
-- rsr a0, depc
-- rotw -\n
--
-- xsr a3, excsave1
-- wsr a2, depc
-- l32i a2, a3, EXC_TABLE_KSTK
-- s32i a0, a2, PT_AREG0
--
-- movi a0, .Lrestore_\n
-- s32i a0, a2, PT_DEPC
-- rsr a0, exccause
-- j _DoubleExceptionVector_handle_exception
--
-- .endm
--
-- overflow_fixup_handle_exception_pane 2
--.Lhandle_1:
-- overflow_fixup_handle_exception_pane 1
--.Lhandle_3:
-- overflow_fixup_handle_exception_pane 3
--
-- .macro overflow_fixup_restore_a0_pane n
--
-- rotw \n
-- /* Need to preserve a0 value here to be able to handle exception
-- * that may occur on a0 reload from stack. It may occur because
-- * TLB miss handler may not be atomic and pointer to page table
-- * may be lost before we get here. There are no free registers,
-- * so we need to use EXC_TABLE_DOUBLE_SAVE area.
-- */
-- xsr a3, excsave1
-- s32i a2, a3, EXC_TABLE_DOUBLE_SAVE
-- movi a2, window_overflow_restore_a0_fixup
-- s32i a2, a3, EXC_TABLE_FIXUP
-- l32i a2, a3, EXC_TABLE_DOUBLE_SAVE
-- xsr a3, excsave1
-- bbsi.l a0, 7, 1f
-- l32e a0, a9, -16
-- j 2f
--1:
-- l32e a0, a13, -16
--2:
-- rotw -\n
--
-- .endm
--
--.Lrestore_2:
-- overflow_fixup_restore_a0_pane 2
--
--.Lset_default_fixup:
-- xsr a3, excsave1
-- s32i a2, a3, EXC_TABLE_DOUBLE_SAVE
-- movi a2, 0
-- s32i a2, a3, EXC_TABLE_FIXUP
-- l32i a2, a3, EXC_TABLE_DOUBLE_SAVE
-- xsr a3, excsave1
-- rfe
--
--.Lrestore_1:
-- overflow_fixup_restore_a0_pane 1
-- j .Lset_default_fixup
--.Lrestore_3:
-- overflow_fixup_restore_a0_pane 3
-- j .Lset_default_fixup
--
--ENDPROC(window_overflow_restore_a0_fixup)
--
-- .end literal_prefix
--/*
- * Debug interrupt vector
- *
- * There is not much space here, so simply jump to another handler.
-diff -Nur linux-3.14.17/arch/xtensa/kernel/vmlinux.lds.S linux-imx6-3.14/arch/xtensa/kernel/vmlinux.lds.S
---- linux-3.14.17/arch/xtensa/kernel/vmlinux.lds.S 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/arch/xtensa/kernel/vmlinux.lds.S 2014-09-11 18:05:59.070026262 +0200
-@@ -269,13 +269,13 @@
- .UserExceptionVector.literal)
- SECTION_VECTOR (_DoubleExceptionVector_literal,
- .DoubleExceptionVector.literal,
-- DOUBLEEXC_VECTOR_VADDR - 40,
-+ DOUBLEEXC_VECTOR_VADDR - 16,
- SIZEOF(.UserExceptionVector.text),
- .UserExceptionVector.text)
- SECTION_VECTOR (_DoubleExceptionVector_text,
- .DoubleExceptionVector.text,
- DOUBLEEXC_VECTOR_VADDR,
-- 40,
-+ 32,
- .DoubleExceptionVector.literal)
-
- . = (LOADADDR( .DoubleExceptionVector.text ) + SIZEOF( .DoubleExceptionVector.text ) + 3) & ~ 3;
-diff -Nur linux-3.14.17/block/bfq-cgroup.c linux-imx6-3.14/block/bfq-cgroup.c
---- linux-3.14.17/block/bfq-cgroup.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/block/bfq-cgroup.c 2014-09-11 18:05:59.118026454 +0200
+diff -Nur linux-3.14.22.orig/block/bfq-cgroup.c linux-3.14.22/block/bfq-cgroup.c
+--- linux-3.14.22.orig/block/bfq-cgroup.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/block/bfq-cgroup.c 2014-10-22 14:55:51.950220001 -0500
@@ -0,0 +1,932 @@
+/*
+ * BFQ: CGROUPS support.
@@ -45128,9 +43133,9 @@ diff -Nur linux-3.14.17/block/bfq-cgroup.c linux-imx6-3.14/block/bfq-cgroup.c
+ return bfqg;
+}
+#endif
-diff -Nur linux-3.14.17/block/bfq.h linux-imx6-3.14/block/bfq.h
---- linux-3.14.17/block/bfq.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/block/bfq.h 2014-09-11 18:05:59.118026454 +0200
+diff -Nur linux-3.14.22.orig/block/bfq.h linux-3.14.22/block/bfq.h
+--- linux-3.14.22.orig/block/bfq.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/block/bfq.h 2014-10-22 14:55:51.954220001 -0500
@@ -0,0 +1,770 @@
+/*
+ * BFQ-v7r5 for 3.14.0: data structures and common functions prototypes.
@@ -45902,9 +43907,9 @@ diff -Nur linux-3.14.17/block/bfq.h linux-imx6-3.14/block/bfq.h
+static void bfq_exit_bfqq(struct bfq_data *bfqd, struct bfq_queue *bfqq);
+
+#endif /* _BFQ_H */
-diff -Nur linux-3.14.17/block/bfq-ioc.c linux-imx6-3.14/block/bfq-ioc.c
---- linux-3.14.17/block/bfq-ioc.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/block/bfq-ioc.c 2014-09-11 18:05:59.118026454 +0200
+diff -Nur linux-3.14.22.orig/block/bfq-ioc.c linux-3.14.22/block/bfq-ioc.c
+--- linux-3.14.22.orig/block/bfq-ioc.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/block/bfq-ioc.c 2014-10-22 14:55:51.954220001 -0500
@@ -0,0 +1,36 @@
+/*
+ * BFQ: I/O context handling.
@@ -45942,9 +43947,9 @@ diff -Nur linux-3.14.17/block/bfq-ioc.c linux-imx6-3.14/block/bfq-ioc.c
+ return icq_to_bic(ioc_lookup_icq(ioc, bfqd->queue));
+ return NULL;
+}
-diff -Nur linux-3.14.17/block/bfq-iosched.c linux-imx6-3.14/block/bfq-iosched.c
---- linux-3.14.17/block/bfq-iosched.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/block/bfq-iosched.c 2014-09-11 18:05:59.118026454 +0200
+diff -Nur linux-3.14.22.orig/block/bfq-iosched.c linux-3.14.22/block/bfq-iosched.c
+--- linux-3.14.22.orig/block/bfq-iosched.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/block/bfq-iosched.c 2014-10-22 14:55:51.958220001 -0500
@@ -0,0 +1,3919 @@
+/*
+ * Budget Fair Queueing (BFQ) disk scheduler.
@@ -49865,9 +47870,9 @@ diff -Nur linux-3.14.17/block/bfq-iosched.c linux-imx6-3.14/block/bfq-iosched.c
+
+MODULE_AUTHOR("Fabio Checconi, Paolo Valente");
+MODULE_LICENSE("GPL");
-diff -Nur linux-3.14.17/block/bfq-sched.c linux-imx6-3.14/block/bfq-sched.c
---- linux-3.14.17/block/bfq-sched.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/block/bfq-sched.c 2014-09-11 18:05:59.118026454 +0200
+diff -Nur linux-3.14.22.orig/block/bfq-sched.c linux-3.14.22/block/bfq-sched.c
+--- linux-3.14.22.orig/block/bfq-sched.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/block/bfq-sched.c 2014-10-22 14:55:51.958220001 -0500
@@ -0,0 +1,1179 @@
+/*
+ * BFQ: Hierarchical B-WF2Q+ scheduler.
@@ -51048,26 +49053,9 @@ diff -Nur linux-3.14.17/block/bfq-sched.c linux-imx6-3.14/block/bfq-sched.c
+ if (bfqq->wr_coeff > 1)
+ bfqd->wr_busy_queues++;
+}
-diff -Nur linux-3.14.17/block/blk-cgroup.c linux-imx6-3.14/block/blk-cgroup.c
---- linux-3.14.17/block/blk-cgroup.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/block/blk-cgroup.c 2014-09-11 18:05:59.118026454 +0200
-@@ -859,13 +859,6 @@
- {
- lockdep_assert_held(q->queue_lock);
-
-- /*
-- * @q could be exiting and already have destroyed all blkgs as
-- * indicated by NULL root_blkg. If so, don't confuse policies.
-- */
-- if (!q->root_blkg)
-- return;
--
- blk_throtl_drain(q);
- }
-
-diff -Nur linux-3.14.17/block/blk-core.c linux-imx6-3.14/block/blk-core.c
---- linux-3.14.17/block/blk-core.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/block/blk-core.c 2014-09-11 18:05:59.122026470 +0200
+diff -Nur linux-3.14.22.orig/block/blk-core.c linux-3.14.22/block/blk-core.c
+--- linux-3.14.22.orig/block/blk-core.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/block/blk-core.c 2014-10-22 14:55:51.958220001 -0500
@@ -1928,7 +1928,7 @@
* in some cases below, so export this function.
* Request stacking drivers like request-based dm may change the queue
@@ -51077,9 +49065,9 @@ diff -Nur linux-3.14.17/block/blk-core.c linux-imx6-3.14/block/blk-core.c
* the new queue limits again when they dispatch those requests,
* although such checkings are also done against the old queue limits
* when submitting requests.
-diff -Nur linux-3.14.17/block/blk-map.c linux-imx6-3.14/block/blk-map.c
---- linux-3.14.17/block/blk-map.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/block/blk-map.c 2014-09-11 18:05:59.122026470 +0200
+diff -Nur linux-3.14.22.orig/block/blk-map.c linux-3.14.22/block/blk-map.c
+--- linux-3.14.22.orig/block/blk-map.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/block/blk-map.c 2014-10-22 14:55:51.962220001 -0500
@@ -285,7 +285,7 @@
*
* Description:
@@ -51089,88 +49077,9 @@ diff -Nur linux-3.14.17/block/blk-map.c linux-imx6-3.14/block/blk-map.c
* buffers.
*/
int blk_rq_map_kern(struct request_queue *q, struct request *rq, void *kbuf,
-diff -Nur linux-3.14.17/block/blk-tag.c linux-imx6-3.14/block/blk-tag.c
---- linux-3.14.17/block/blk-tag.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/block/blk-tag.c 2014-09-11 18:05:59.122026470 +0200
-@@ -27,15 +27,18 @@
- EXPORT_SYMBOL(blk_queue_find_tag);
-
- /**
-- * blk_free_tags - release a given set of tag maintenance info
-+ * __blk_free_tags - release a given set of tag maintenance info
- * @bqt: the tag map to free
- *
-- * Drop the reference count on @bqt and frees it when the last reference
-- * is dropped.
-+ * Tries to free the specified @bqt. Returns true if it was
-+ * actually freed and false if there are still references using it
- */
--void blk_free_tags(struct blk_queue_tag *bqt)
-+static int __blk_free_tags(struct blk_queue_tag *bqt)
- {
-- if (atomic_dec_and_test(&bqt->refcnt)) {
-+ int retval;
-+
-+ retval = atomic_dec_and_test(&bqt->refcnt);
-+ if (retval) {
- BUG_ON(find_first_bit(bqt->tag_map, bqt->max_depth) <
- bqt->max_depth);
-
-@@ -47,8 +50,9 @@
-
- kfree(bqt);
- }
-+
-+ return retval;
- }
--EXPORT_SYMBOL(blk_free_tags);
-
- /**
- * __blk_queue_free_tags - release tag maintenance info
-@@ -65,13 +69,28 @@
- if (!bqt)
- return;
-
-- blk_free_tags(bqt);
-+ __blk_free_tags(bqt);
-
- q->queue_tags = NULL;
- queue_flag_clear_unlocked(QUEUE_FLAG_QUEUED, q);
- }
-
- /**
-+ * blk_free_tags - release a given set of tag maintenance info
-+ * @bqt: the tag map to free
-+ *
-+ * For externally managed @bqt frees the map. Callers of this
-+ * function must guarantee to have released all the queues that
-+ * might have been using this tag map.
-+ */
-+void blk_free_tags(struct blk_queue_tag *bqt)
-+{
-+ if (unlikely(!__blk_free_tags(bqt)))
-+ BUG();
-+}
-+EXPORT_SYMBOL(blk_free_tags);
-+
-+/**
- * blk_queue_free_tags - release tag maintenance info
- * @q: the request queue for the device
- *
-diff -Nur linux-3.14.17/block/compat_ioctl.c linux-imx6-3.14/block/compat_ioctl.c
---- linux-3.14.17/block/compat_ioctl.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/block/compat_ioctl.c 2014-09-11 18:05:59.126026486 +0200
-@@ -690,7 +690,6 @@
- case BLKROSET:
- case BLKDISCARD:
- case BLKSECDISCARD:
-- case BLKZEROOUT:
- /*
- * the ones below are implemented in blkdev_locked_ioctl,
- * but we call blkdev_ioctl, which gets the lock for us
-diff -Nur linux-3.14.17/block/Kconfig.iosched linux-imx6-3.14/block/Kconfig.iosched
---- linux-3.14.17/block/Kconfig.iosched 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/block/Kconfig.iosched 2014-09-11 18:05:59.118026454 +0200
+diff -Nur linux-3.14.22.orig/block/Kconfig.iosched linux-3.14.22/block/Kconfig.iosched
+--- linux-3.14.22.orig/block/Kconfig.iosched 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/block/Kconfig.iosched 2014-10-22 14:55:51.962220001 -0500
@@ -39,6 +39,27 @@
---help---
Enable group IO scheduling in CFQ.
@@ -51224,9 +49133,9 @@ diff -Nur linux-3.14.17/block/Kconfig.iosched linux-imx6-3.14/block/Kconfig.iosc
default "noop" if DEFAULT_NOOP
endmenu
-diff -Nur linux-3.14.17/block/Makefile linux-imx6-3.14/block/Makefile
---- linux-3.14.17/block/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/block/Makefile 2014-09-11 18:05:59.118026454 +0200
+diff -Nur linux-3.14.22.orig/block/Makefile linux-3.14.22/block/Makefile
+--- linux-3.14.22.orig/block/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/block/Makefile 2014-10-22 14:55:51.962220001 -0500
@@ -16,6 +16,7 @@
obj-$(CONFIG_IOSCHED_NOOP) += noop-iosched.o
obj-$(CONFIG_IOSCHED_DEADLINE) += deadline-iosched.o
@@ -51235,28 +49144,9 @@ diff -Nur linux-3.14.17/block/Makefile linux-imx6-3.14/block/Makefile
obj-$(CONFIG_BLOCK_COMPAT) += compat_ioctl.o
obj-$(CONFIG_BLK_DEV_INTEGRITY) += blk-integrity.o
-diff -Nur linux-3.14.17/crypto/af_alg.c linux-imx6-3.14/crypto/af_alg.c
---- linux-3.14.17/crypto/af_alg.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/crypto/af_alg.c 2014-09-11 18:05:59.134026519 +0200
-@@ -21,7 +21,6 @@
- #include <linux/module.h>
- #include <linux/net.h>
- #include <linux/rwsem.h>
--#include <linux/security.h>
-
- struct alg_type_list {
- const struct af_alg_type *type;
-@@ -244,7 +243,6 @@
-
- sock_init_data(newsock, sk2);
- sock_graft(sk2, newsock);
-- security_sk_clone(sk, sk2);
-
- err = type->accept(ask->private, sk2);
- if (err) {
-diff -Nur linux-3.14.17/crypto/blkcipher.c linux-imx6-3.14/crypto/blkcipher.c
---- linux-3.14.17/crypto/blkcipher.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/crypto/blkcipher.c 2014-09-11 18:05:59.150026582 +0200
+diff -Nur linux-3.14.22.orig/crypto/blkcipher.c linux-3.14.22/crypto/blkcipher.c
+--- linux-3.14.22.orig/crypto/blkcipher.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/crypto/blkcipher.c 2014-10-22 14:55:51.962220001 -0500
@@ -70,14 +70,12 @@
return max(start, end_page);
}
@@ -51456,9 +49346,9 @@ diff -Nur linux-3.14.17/crypto/blkcipher.c linux-imx6-3.14/crypto/blkcipher.c
static int setkey_unaligned(struct crypto_tfm *tfm, const u8 *key,
unsigned int keylen)
{
-diff -Nur linux-3.14.17/crypto/tcrypt.c linux-imx6-3.14/crypto/tcrypt.c
---- linux-3.14.17/crypto/tcrypt.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/crypto/tcrypt.c 2014-09-11 18:05:59.186026726 +0200
+diff -Nur linux-3.14.22.orig/crypto/tcrypt.c linux-3.14.22/crypto/tcrypt.c
+--- linux-3.14.22.orig/crypto/tcrypt.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/crypto/tcrypt.c 2014-10-22 14:55:51.962220001 -0500
@@ -33,6 +33,7 @@
#include <linux/jiffies.h>
#include <linux/timex.h>
@@ -51507,9 +49397,9 @@ diff -Nur linux-3.14.17/crypto/tcrypt.c linux-imx6-3.14/crypto/tcrypt.c
name++;
}
}
-diff -Nur linux-3.14.17/Documentation/ABI/testing/sysfs-class-net-statistics linux-imx6-3.14/Documentation/ABI/testing/sysfs-class-net-statistics
---- linux-3.14.17/Documentation/ABI/testing/sysfs-class-net-statistics 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/Documentation/ABI/testing/sysfs-class-net-statistics 2014-09-11 18:05:51.685996745 +0200
+diff -Nur linux-3.14.22.orig/Documentation/ABI/testing/sysfs-class-net-statistics linux-3.14.22/Documentation/ABI/testing/sysfs-class-net-statistics
+--- linux-3.14.22.orig/Documentation/ABI/testing/sysfs-class-net-statistics 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/Documentation/ABI/testing/sysfs-class-net-statistics 2014-10-22 14:55:51.962220001 -0500
@@ -0,0 +1,201 @@
+What: /sys/class/<iface>/statistics/collisions
+Date: April 2005
@@ -51712,9 +49602,9 @@ diff -Nur linux-3.14.17/Documentation/ABI/testing/sysfs-class-net-statistics lin
+ due to a window collision. The specific meaning depends on the
+ MAC layer used. On Ethernet this is usually used to report
+ late collisions errors.
-diff -Nur linux-3.14.17/Documentation/arm64/booting.txt linux-imx6-3.14/Documentation/arm64/booting.txt
---- linux-3.14.17/Documentation/arm64/booting.txt 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/Documentation/arm64/booting.txt 2014-09-11 18:05:51.793997177 +0200
+diff -Nur linux-3.14.22.orig/Documentation/arm64/booting.txt linux-3.14.22/Documentation/arm64/booting.txt
+--- linux-3.14.22.orig/Documentation/arm64/booting.txt 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/Documentation/arm64/booting.txt 2014-10-22 14:55:51.962220001 -0500
@@ -111,8 +111,14 @@
- Caches, MMUs
The MMU must be off.
@@ -51732,9 +49622,9 @@ diff -Nur linux-3.14.17/Documentation/arm64/booting.txt linux-imx6-3.14/Document
- Architected timers
CNTFRQ must be programmed with the timer frequency and CNTVOFF must
-diff -Nur linux-3.14.17/Documentation/devicetree/bindings/arm/imx/busfreq-imx6.txt linux-imx6-3.14/Documentation/devicetree/bindings/arm/imx/busfreq-imx6.txt
---- linux-3.14.17/Documentation/devicetree/bindings/arm/imx/busfreq-imx6.txt 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/Documentation/devicetree/bindings/arm/imx/busfreq-imx6.txt 2014-09-11 18:05:51.825997304 +0200
+diff -Nur linux-3.14.22.orig/Documentation/devicetree/bindings/arm/imx/busfreq-imx6.txt linux-3.14.22/Documentation/devicetree/bindings/arm/imx/busfreq-imx6.txt
+--- linux-3.14.22.orig/Documentation/devicetree/bindings/arm/imx/busfreq-imx6.txt 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/Documentation/devicetree/bindings/arm/imx/busfreq-imx6.txt 2014-10-22 14:55:51.982220001 -0500
@@ -0,0 +1,64 @@
+Freescale Busfreq driver
+
@@ -51800,9 +49690,9 @@ diff -Nur linux-3.14.17/Documentation/devicetree/bindings/arm/imx/busfreq-imx6.t
+ SET_RUNTIME_PM_OPS(ipu_runtime_suspend, ipu_runtime_resume, NULL)
+ SET_SYSTEM_SLEEP_PM_OPS(ipu_suspend, ipu_resume)
+};
-diff -Nur linux-3.14.17/Documentation/devicetree/bindings/arm/imx/gpc.txt linux-imx6-3.14/Documentation/devicetree/bindings/arm/imx/gpc.txt
---- linux-3.14.17/Documentation/devicetree/bindings/arm/imx/gpc.txt 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/Documentation/devicetree/bindings/arm/imx/gpc.txt 2014-09-11 18:05:51.825997304 +0200
+diff -Nur linux-3.14.22.orig/Documentation/devicetree/bindings/arm/imx/gpc.txt linux-3.14.22/Documentation/devicetree/bindings/arm/imx/gpc.txt
+--- linux-3.14.22.orig/Documentation/devicetree/bindings/arm/imx/gpc.txt 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/Documentation/devicetree/bindings/arm/imx/gpc.txt 2014-10-22 14:55:51.982220001 -0500
@@ -0,0 +1,20 @@
+Freescale imx GPC bindings
+
@@ -51824,9 +49714,9 @@ diff -Nur linux-3.14.17/Documentation/devicetree/bindings/arm/imx/gpc.txt linux-
+ fsl,cpu_pdnscr_iso2sw = <0x1>;
+ fsl,cpu_pdnscr_iso = <0x1>;
+ };
-diff -Nur linux-3.14.17/Documentation/devicetree/bindings/arm/pmu.txt linux-imx6-3.14/Documentation/devicetree/bindings/arm/pmu.txt
---- linux-3.14.17/Documentation/devicetree/bindings/arm/pmu.txt 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/Documentation/devicetree/bindings/arm/pmu.txt 2014-09-11 18:05:51.825997304 +0200
+diff -Nur linux-3.14.22.orig/Documentation/devicetree/bindings/arm/pmu.txt linux-3.14.22/Documentation/devicetree/bindings/arm/pmu.txt
+--- linux-3.14.22.orig/Documentation/devicetree/bindings/arm/pmu.txt 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/Documentation/devicetree/bindings/arm/pmu.txt 2014-10-22 14:55:51.982220001 -0500
@@ -17,6 +17,9 @@
"arm,arm1176-pmu"
"arm,arm1136-pmu"
@@ -51837,9 +49727,9 @@ diff -Nur linux-3.14.17/Documentation/devicetree/bindings/arm/pmu.txt linux-imx6
Example:
-diff -Nur linux-3.14.17/Documentation/devicetree/bindings/ata/ahci-platform.txt linux-imx6-3.14/Documentation/devicetree/bindings/ata/ahci-platform.txt
---- linux-3.14.17/Documentation/devicetree/bindings/ata/ahci-platform.txt 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/Documentation/devicetree/bindings/ata/ahci-platform.txt 2014-09-11 18:05:51.833997337 +0200
+diff -Nur linux-3.14.22.orig/Documentation/devicetree/bindings/ata/ahci-platform.txt linux-3.14.22/Documentation/devicetree/bindings/ata/ahci-platform.txt
+--- linux-3.14.22.orig/Documentation/devicetree/bindings/ata/ahci-platform.txt 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/Documentation/devicetree/bindings/ata/ahci-platform.txt 2014-10-22 14:55:51.982220001 -0500
@@ -4,12 +4,19 @@
Each SATA controller should have its own node.
@@ -51861,9 +49751,9 @@ diff -Nur linux-3.14.17/Documentation/devicetree/bindings/ata/ahci-platform.txt
Example:
sata@ffe08000 {
-diff -Nur linux-3.14.17/Documentation/devicetree/bindings/clock/imx6q-clock.txt linux-imx6-3.14/Documentation/devicetree/bindings/clock/imx6q-clock.txt
---- linux-3.14.17/Documentation/devicetree/bindings/clock/imx6q-clock.txt 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/Documentation/devicetree/bindings/clock/imx6q-clock.txt 2014-09-11 18:05:51.837997352 +0200
+diff -Nur linux-3.14.22.orig/Documentation/devicetree/bindings/clock/imx6q-clock.txt linux-3.14.22/Documentation/devicetree/bindings/clock/imx6q-clock.txt
+--- linux-3.14.22.orig/Documentation/devicetree/bindings/clock/imx6q-clock.txt 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/Documentation/devicetree/bindings/clock/imx6q-clock.txt 2014-10-22 14:55:51.982220001 -0500
@@ -89,8 +89,6 @@
gpu3d_shader 74
ipu1_podf 75
@@ -51894,9 +49784,9 @@ diff -Nur linux-3.14.17/Documentation/devicetree/bindings/clock/imx6q-clock.txt
Examples:
-diff -Nur linux-3.14.17/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt linux-imx6-3.14/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt
---- linux-3.14.17/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt 2014-09-11 18:05:51.845997384 +0200
+diff -Nur linux-3.14.22.orig/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt linux-3.14.22/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt
+--- linux-3.14.22.orig/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt 2014-10-22 14:55:51.982220001 -0500
@@ -47,6 +47,7 @@
20 ASRC
21 ESAI
@@ -51905,9 +49795,9 @@ diff -Nur linux-3.14.17/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt l
The third cell specifies the transfer priority as below.
-diff -Nur linux-3.14.17/Documentation/devicetree/bindings/fb/fsl_ipuv3_fb.txt linux-imx6-3.14/Documentation/devicetree/bindings/fb/fsl_ipuv3_fb.txt
---- linux-3.14.17/Documentation/devicetree/bindings/fb/fsl_ipuv3_fb.txt 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/Documentation/devicetree/bindings/fb/fsl_ipuv3_fb.txt 2014-09-11 18:05:51.845997384 +0200
+diff -Nur linux-3.14.22.orig/Documentation/devicetree/bindings/fb/fsl_ipuv3_fb.txt linux-3.14.22/Documentation/devicetree/bindings/fb/fsl_ipuv3_fb.txt
+--- linux-3.14.22.orig/Documentation/devicetree/bindings/fb/fsl_ipuv3_fb.txt 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/Documentation/devicetree/bindings/fb/fsl_ipuv3_fb.txt 2014-10-22 14:55:51.986220001 -0500
@@ -0,0 +1,146 @@
+* FSL IPUv3 Display/FB
+
@@ -52055,9 +49945,9 @@ diff -Nur linux-3.14.17/Documentation/devicetree/bindings/fb/fsl_ipuv3_fb.txt li
+ resets = <&mipi_dsi_reset>;
+ status = "okay";
+ };
-diff -Nur linux-3.14.17/Documentation/devicetree/bindings/leds/leds-pwm.txt linux-imx6-3.14/Documentation/devicetree/bindings/leds/leds-pwm.txt
---- linux-3.14.17/Documentation/devicetree/bindings/leds/leds-pwm.txt 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/Documentation/devicetree/bindings/leds/leds-pwm.txt 2014-09-11 18:05:51.857997433 +0200
+diff -Nur linux-3.14.22.orig/Documentation/devicetree/bindings/leds/leds-pwm.txt linux-3.14.22/Documentation/devicetree/bindings/leds/leds-pwm.txt
+--- linux-3.14.22.orig/Documentation/devicetree/bindings/leds/leds-pwm.txt 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/Documentation/devicetree/bindings/leds/leds-pwm.txt 2014-10-22 14:55:51.986220001 -0500
@@ -13,6 +13,8 @@
For the pwms and pwm-names property please refer to:
Documentation/devicetree/bindings/pwm/pwm.txt
@@ -52067,9 +49957,9 @@ diff -Nur linux-3.14.17/Documentation/devicetree/bindings/leds/leds-pwm.txt linu
- label : (optional)
see Documentation/devicetree/bindings/leds/common.txt
- linux,default-trigger : (optional)
-diff -Nur linux-3.14.17/Documentation/devicetree/bindings/mailbox/mailbox.txt linux-imx6-3.14/Documentation/devicetree/bindings/mailbox/mailbox.txt
---- linux-3.14.17/Documentation/devicetree/bindings/mailbox/mailbox.txt 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/Documentation/devicetree/bindings/mailbox/mailbox.txt 2014-09-11 18:05:51.857997433 +0200
+diff -Nur linux-3.14.22.orig/Documentation/devicetree/bindings/mailbox/mailbox.txt linux-3.14.22/Documentation/devicetree/bindings/mailbox/mailbox.txt
+--- linux-3.14.22.orig/Documentation/devicetree/bindings/mailbox/mailbox.txt 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/Documentation/devicetree/bindings/mailbox/mailbox.txt 2014-10-22 14:55:51.986220001 -0500
@@ -0,0 +1,33 @@
+* Generic Mailbox Controller and client driver bindings
+
@@ -52104,9 +49994,9 @@ diff -Nur linux-3.14.17/Documentation/devicetree/bindings/mailbox/mailbox.txt li
+ mbox = <&mailbox 0
+ &mailbox 1>;
+ };
-diff -Nur linux-3.14.17/Documentation/devicetree/bindings/mlb/mlb150.txt linux-imx6-3.14/Documentation/devicetree/bindings/mlb/mlb150.txt
---- linux-3.14.17/Documentation/devicetree/bindings/mlb/mlb150.txt 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/Documentation/devicetree/bindings/mlb/mlb150.txt 2014-09-11 18:05:51.865997464 +0200
+diff -Nur linux-3.14.22.orig/Documentation/devicetree/bindings/mlb/mlb150.txt linux-3.14.22/Documentation/devicetree/bindings/mlb/mlb150.txt
+--- linux-3.14.22.orig/Documentation/devicetree/bindings/mlb/mlb150.txt 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/Documentation/devicetree/bindings/mlb/mlb150.txt 2014-10-22 14:55:51.990220001 -0500
@@ -0,0 +1,22 @@
+* Freescale Media Local Bus Host Controller (MLB) for i.MX6Q/DL
+
@@ -52130,9 +50020,9 @@ diff -Nur linux-3.14.17/Documentation/devicetree/bindings/mlb/mlb150.txt linux-i
+ clock-names = "mlb", "pll8_mlb";
+ iram = <&ocram>;
+};
-diff -Nur linux-3.14.17/Documentation/devicetree/bindings/mmc/mmc.txt linux-imx6-3.14/Documentation/devicetree/bindings/mmc/mmc.txt
---- linux-3.14.17/Documentation/devicetree/bindings/mmc/mmc.txt 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/Documentation/devicetree/bindings/mmc/mmc.txt 2014-09-11 18:05:51.865997464 +0200
+diff -Nur linux-3.14.22.orig/Documentation/devicetree/bindings/mmc/mmc.txt linux-3.14.22/Documentation/devicetree/bindings/mmc/mmc.txt
+--- linux-3.14.22.orig/Documentation/devicetree/bindings/mmc/mmc.txt 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/Documentation/devicetree/bindings/mmc/mmc.txt 2014-10-22 14:55:51.990220001 -0500
@@ -5,6 +5,8 @@
Interpreted by the OF core:
- reg: Registers location and length.
@@ -52158,9 +50048,9 @@ diff -Nur linux-3.14.17/Documentation/devicetree/bindings/mmc/mmc.txt linux-imx6
*NOTE* on CD and WP polarity. To use common for all SD/MMC host controllers line
polarity properties, we have to fix the meaning of the "normal" and "inverted"
line levels. We choose to follow the SDHCI standard, which specifies both those
-diff -Nur linux-3.14.17/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt linux-imx6-3.14/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
---- linux-3.14.17/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt 2014-09-11 18:05:51.905997624 +0200
+diff -Nur linux-3.14.22.orig/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt linux-3.14.22/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
+--- linux-3.14.22.orig/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt 2014-10-22 14:55:51.990220001 -0500
@@ -71,6 +71,13 @@
name for integer state ID 0, list entry 1 for state ID 1, and
so on.
@@ -52175,9 +50065,9 @@ diff -Nur linux-3.14.17/Documentation/devicetree/bindings/pinctrl/pinctrl-bindin
For example:
/* For a client device requiring named states */
-diff -Nur linux-3.14.17/Documentation/devicetree/bindings/reset/gpio-reset.txt linux-imx6-3.14/Documentation/devicetree/bindings/reset/gpio-reset.txt
---- linux-3.14.17/Documentation/devicetree/bindings/reset/gpio-reset.txt 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/Documentation/devicetree/bindings/reset/gpio-reset.txt 2014-09-11 18:05:51.929997720 +0200
+diff -Nur linux-3.14.22.orig/Documentation/devicetree/bindings/reset/gpio-reset.txt linux-3.14.22/Documentation/devicetree/bindings/reset/gpio-reset.txt
+--- linux-3.14.22.orig/Documentation/devicetree/bindings/reset/gpio-reset.txt 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/Documentation/devicetree/bindings/reset/gpio-reset.txt 2014-10-22 14:55:51.990220001 -0500
@@ -0,0 +1,35 @@
+GPIO reset controller
+=====================
@@ -52214,9 +50104,9 @@ diff -Nur linux-3.14.17/Documentation/devicetree/bindings/reset/gpio-reset.txt l
+ /* ... */
+ resets = <&sii902x_reset>; /* active-low GPIO5_0, 10 ms delay */
+};
-diff -Nur linux-3.14.17/Documentation/devicetree/bindings/sound/cs42888.txt linux-imx6-3.14/Documentation/devicetree/bindings/sound/cs42888.txt
---- linux-3.14.17/Documentation/devicetree/bindings/sound/cs42888.txt 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/Documentation/devicetree/bindings/sound/cs42888.txt 2014-09-11 18:05:51.937997752 +0200
+diff -Nur linux-3.14.22.orig/Documentation/devicetree/bindings/sound/cs42888.txt linux-3.14.22/Documentation/devicetree/bindings/sound/cs42888.txt
+--- linux-3.14.22.orig/Documentation/devicetree/bindings/sound/cs42888.txt 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/Documentation/devicetree/bindings/sound/cs42888.txt 2014-10-22 14:55:51.990220001 -0500
@@ -0,0 +1,29 @@
+CS42888 audio CODEC
+
@@ -52247,9 +50137,9 @@ diff -Nur linux-3.14.17/Documentation/devicetree/bindings/sound/cs42888.txt linu
+ VLS-supply = <&reg_audio>;
+ VLC-supply = <&reg_audio>;
+};
-diff -Nur linux-3.14.17/Documentation/devicetree/bindings/sound/fsl-asrc-p2p.txt linux-imx6-3.14/Documentation/devicetree/bindings/sound/fsl-asrc-p2p.txt
---- linux-3.14.17/Documentation/devicetree/bindings/sound/fsl-asrc-p2p.txt 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/Documentation/devicetree/bindings/sound/fsl-asrc-p2p.txt 2014-09-11 18:05:51.937997752 +0200
+diff -Nur linux-3.14.22.orig/Documentation/devicetree/bindings/sound/fsl-asrc-p2p.txt linux-3.14.22/Documentation/devicetree/bindings/sound/fsl-asrc-p2p.txt
+--- linux-3.14.22.orig/Documentation/devicetree/bindings/sound/fsl-asrc-p2p.txt 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/Documentation/devicetree/bindings/sound/fsl-asrc-p2p.txt 2014-10-22 14:55:51.994220001 -0500
@@ -0,0 +1,23 @@
+* Freescale Asynchronous Sample Rate Converter (ASRC)
+
@@ -52274,9 +50164,9 @@ diff -Nur linux-3.14.17/Documentation/devicetree/bindings/sound/fsl-asrc-p2p.txt
+ fsl,asrc-dma-tx-events = <20 21 22>;
+ status = "okay";
+};
-diff -Nur linux-3.14.17/Documentation/devicetree/bindings/sound/imx-audio-cs42888.txt linux-imx6-3.14/Documentation/devicetree/bindings/sound/imx-audio-cs42888.txt
---- linux-3.14.17/Documentation/devicetree/bindings/sound/imx-audio-cs42888.txt 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/Documentation/devicetree/bindings/sound/imx-audio-cs42888.txt 2014-09-11 18:05:51.937997752 +0200
+diff -Nur linux-3.14.22.orig/Documentation/devicetree/bindings/sound/imx-audio-cs42888.txt linux-3.14.22/Documentation/devicetree/bindings/sound/imx-audio-cs42888.txt
+--- linux-3.14.22.orig/Documentation/devicetree/bindings/sound/imx-audio-cs42888.txt 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/Documentation/devicetree/bindings/sound/imx-audio-cs42888.txt 2014-10-22 14:55:51.994220001 -0500
@@ -0,0 +1,25 @@
+Freescale i.MX audio complex with CS42888 codec
+
@@ -52303,9 +50193,9 @@ diff -Nur linux-3.14.17/Documentation/devicetree/bindings/sound/imx-audio-cs4288
+ asrc-controller = <&asrc_p2p>;
+ audio-codec = <&codec>;
+};
-diff -Nur linux-3.14.17/Documentation/devicetree/bindings/sound/imx-audio-wm8962.txt linux-imx6-3.14/Documentation/devicetree/bindings/sound/imx-audio-wm8962.txt
---- linux-3.14.17/Documentation/devicetree/bindings/sound/imx-audio-wm8962.txt 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/Documentation/devicetree/bindings/sound/imx-audio-wm8962.txt 2014-09-11 18:05:51.937997752 +0200
+diff -Nur linux-3.14.22.orig/Documentation/devicetree/bindings/sound/imx-audio-wm8962.txt linux-3.14.22/Documentation/devicetree/bindings/sound/imx-audio-wm8962.txt
+--- linux-3.14.22.orig/Documentation/devicetree/bindings/sound/imx-audio-wm8962.txt 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/Documentation/devicetree/bindings/sound/imx-audio-wm8962.txt 2014-10-22 14:55:51.994220001 -0500
@@ -24,6 +24,12 @@
Note: The AUDMUX port numbering should start at 1, which is consistent with
hardware manual.
@@ -52326,9 +50216,9 @@ diff -Nur linux-3.14.17/Documentation/devicetree/bindings/sound/imx-audio-wm8962
+ hp-det-gpios = <&gpio7 8 1>;
+ mic-det-gpios = <&gpio1 9 1>;
};
-diff -Nur linux-3.14.17/Documentation/devicetree/bindings/sound/wm8962.txt linux-imx6-3.14/Documentation/devicetree/bindings/sound/wm8962.txt
---- linux-3.14.17/Documentation/devicetree/bindings/sound/wm8962.txt 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/Documentation/devicetree/bindings/sound/wm8962.txt 2014-09-11 18:05:51.949997800 +0200
+diff -Nur linux-3.14.22.orig/Documentation/devicetree/bindings/sound/wm8962.txt linux-3.14.22/Documentation/devicetree/bindings/sound/wm8962.txt
+--- linux-3.14.22.orig/Documentation/devicetree/bindings/sound/wm8962.txt 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/Documentation/devicetree/bindings/sound/wm8962.txt 2014-10-22 14:55:51.994220001 -0500
@@ -13,6 +13,14 @@
of R51 (Class D Control 2) gets set, indicating that the speaker is
in mono mode.
@@ -52344,9 +50234,9 @@ diff -Nur linux-3.14.17/Documentation/devicetree/bindings/sound/wm8962.txt linux
- mic-cfg : Default register value for R48 (Additional Control 4).
If absent, the default should be the register default.
-diff -Nur linux-3.14.17/Documentation/devicetree/bindings/usb/mxs-phy.txt linux-imx6-3.14/Documentation/devicetree/bindings/usb/mxs-phy.txt
---- linux-3.14.17/Documentation/devicetree/bindings/usb/mxs-phy.txt 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/Documentation/devicetree/bindings/usb/mxs-phy.txt 2014-09-11 18:05:51.977997912 +0200
+diff -Nur linux-3.14.22.orig/Documentation/devicetree/bindings/usb/mxs-phy.txt linux-3.14.22/Documentation/devicetree/bindings/usb/mxs-phy.txt
+--- linux-3.14.22.orig/Documentation/devicetree/bindings/usb/mxs-phy.txt 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/Documentation/devicetree/bindings/usb/mxs-phy.txt 2014-10-22 14:55:51.994220001 -0500
@@ -1,13 +1,16 @@
* Freescale MXS USB Phy Device
@@ -52365,9 +50255,9 @@ diff -Nur linux-3.14.17/Documentation/devicetree/bindings/usb/mxs-phy.txt linux-
interrupts = <0 44 0x04>;
+ fsl,anatop = <&anatop>;
};
-diff -Nur linux-3.14.17/Documentation/devicetree/bindings/video/fsl,csi-v4l2-capture.txt linux-imx6-3.14/Documentation/devicetree/bindings/video/fsl,csi-v4l2-capture.txt
---- linux-3.14.17/Documentation/devicetree/bindings/video/fsl,csi-v4l2-capture.txt 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/Documentation/devicetree/bindings/video/fsl,csi-v4l2-capture.txt 2014-09-11 18:05:51.981997928 +0200
+diff -Nur linux-3.14.22.orig/Documentation/devicetree/bindings/video/fsl,csi-v4l2-capture.txt linux-3.14.22/Documentation/devicetree/bindings/video/fsl,csi-v4l2-capture.txt
+--- linux-3.14.22.orig/Documentation/devicetree/bindings/video/fsl,csi-v4l2-capture.txt 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/Documentation/devicetree/bindings/video/fsl,csi-v4l2-capture.txt 2014-10-22 14:55:51.994220001 -0500
@@ -0,0 +1,61 @@
+* Freescale CMOS Sensor Interface (CSI) V4L2 Capture
+
@@ -52430,9 +50320,9 @@ diff -Nur linux-3.14.17/Documentation/devicetree/bindings/video/fsl,csi-v4l2-cap
+ mclk = <24000000>;
+ mclk_source = <0>;
+ };
-diff -Nur linux-3.14.17/Documentation/devicetree/bindings/video/fsl,mipi-csi2.txt linux-imx6-3.14/Documentation/devicetree/bindings/video/fsl,mipi-csi2.txt
---- linux-3.14.17/Documentation/devicetree/bindings/video/fsl,mipi-csi2.txt 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/Documentation/devicetree/bindings/video/fsl,mipi-csi2.txt 2014-09-11 18:05:51.981997928 +0200
+diff -Nur linux-3.14.22.orig/Documentation/devicetree/bindings/video/fsl,mipi-csi2.txt linux-3.14.22/Documentation/devicetree/bindings/video/fsl,mipi-csi2.txt
+--- linux-3.14.22.orig/Documentation/devicetree/bindings/video/fsl,mipi-csi2.txt 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/Documentation/devicetree/bindings/video/fsl,mipi-csi2.txt 2014-10-22 14:55:51.994220001 -0500
@@ -0,0 +1,42 @@
+* Freescale MIPI CSI2 Controller for i.MX6DQ/i.MX6SDL
+
@@ -52476,9 +50366,9 @@ diff -Nur linux-3.14.17/Documentation/devicetree/bindings/video/fsl,mipi-csi2.tx
+ v_channel = <0>;
+ lanes = <2>;
+ };
-diff -Nur linux-3.14.17/Documentation/devicetree/bindings/video/fsl,pxp.txt linux-imx6-3.14/Documentation/devicetree/bindings/video/fsl,pxp.txt
---- linux-3.14.17/Documentation/devicetree/bindings/video/fsl,pxp.txt 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/Documentation/devicetree/bindings/video/fsl,pxp.txt 2014-09-11 18:05:51.981997928 +0200
+diff -Nur linux-3.14.22.orig/Documentation/devicetree/bindings/video/fsl,pxp.txt linux-3.14.22/Documentation/devicetree/bindings/video/fsl,pxp.txt
+--- linux-3.14.22.orig/Documentation/devicetree/bindings/video/fsl,pxp.txt 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/Documentation/devicetree/bindings/video/fsl,pxp.txt 2014-10-22 14:55:51.994220001 -0500
@@ -0,0 +1,30 @@
+* Freescale PxP Controller for i.MX6DL, i.MX6SL
+
@@ -52510,9 +50400,9 @@ diff -Nur linux-3.14.17/Documentation/devicetree/bindings/video/fsl,pxp.txt linu
+ &pxp {
+ status = "okay";
+ };
-diff -Nur linux-3.14.17/Documentation/devicetree/bindings/video/fsl,v4l2-capture.txt linux-imx6-3.14/Documentation/devicetree/bindings/video/fsl,v4l2-capture.txt
---- linux-3.14.17/Documentation/devicetree/bindings/video/fsl,v4l2-capture.txt 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/Documentation/devicetree/bindings/video/fsl,v4l2-capture.txt 2014-09-11 18:05:51.981997928 +0200
+diff -Nur linux-3.14.22.orig/Documentation/devicetree/bindings/video/fsl,v4l2-capture.txt linux-3.14.22/Documentation/devicetree/bindings/video/fsl,v4l2-capture.txt
+--- linux-3.14.22.orig/Documentation/devicetree/bindings/video/fsl,v4l2-capture.txt 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/Documentation/devicetree/bindings/video/fsl,v4l2-capture.txt 2014-10-22 14:55:51.994220001 -0500
@@ -0,0 +1,102 @@
+* Freescale V4L2 Capture for i.MX6DQ/i.MX6SDL
+
@@ -52616,9 +50506,9 @@ diff -Nur linux-3.14.17/Documentation/devicetree/bindings/video/fsl,v4l2-capture
+ mclk_source = <0>;
+ cvbs = <1>;
+ };
-diff -Nur linux-3.14.17/Documentation/devicetree/bindings/video/mxc_hdmi_video.txt linux-imx6-3.14/Documentation/devicetree/bindings/video/mxc_hdmi_video.txt
---- linux-3.14.17/Documentation/devicetree/bindings/video/mxc_hdmi_video.txt 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/Documentation/devicetree/bindings/video/mxc_hdmi_video.txt 2014-09-11 18:05:51.981997928 +0200
+diff -Nur linux-3.14.22.orig/Documentation/devicetree/bindings/video/mxc_hdmi_video.txt linux-3.14.22/Documentation/devicetree/bindings/video/mxc_hdmi_video.txt
+--- linux-3.14.22.orig/Documentation/devicetree/bindings/video/mxc_hdmi_video.txt 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/Documentation/devicetree/bindings/video/mxc_hdmi_video.txt 2014-10-22 14:55:51.994220001 -0500
@@ -0,0 +1,20 @@
+Device-Tree bindings for hdmi video driver
+
@@ -52640,18 +50530,18 @@ diff -Nur linux-3.14.17/Documentation/devicetree/bindings/video/mxc_hdmi_video.t
+ fsl,phy_reg_cksymtx = <0x800d>;
+ };
+
-diff -Nur linux-3.14.17/Documentation/filesystems/hfsplus.txt linux-imx6-3.14/Documentation/filesystems/hfsplus.txt
---- linux-3.14.17/Documentation/filesystems/hfsplus.txt 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/Documentation/filesystems/hfsplus.txt 2014-09-11 18:05:52.081998328 +0200
+diff -Nur linux-3.14.22.orig/Documentation/filesystems/hfsplus.txt linux-3.14.22/Documentation/filesystems/hfsplus.txt
+--- linux-3.14.22.orig/Documentation/filesystems/hfsplus.txt 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/Documentation/filesystems/hfsplus.txt 2014-10-22 14:55:51.994220001 -0500
@@ -56,4 +56,4 @@
kernel source: <file:fs/hfsplus>
-Apple Technote 1150 http://developer.apple.com/technotes/tn/tn1150.html
+Apple Technote 1150 https://developer.apple.com/legacy/library/technotes/tn/tn1150.html
-diff -Nur linux-3.14.17/Documentation/kernel-parameters.txt linux-imx6-3.14/Documentation/kernel-parameters.txt
---- linux-3.14.17/Documentation/kernel-parameters.txt 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/Documentation/kernel-parameters.txt 2014-09-11 18:05:52.177998711 +0200
+diff -Nur linux-3.14.22.orig/Documentation/kernel-parameters.txt linux-3.14.22/Documentation/kernel-parameters.txt
+--- linux-3.14.22.orig/Documentation/kernel-parameters.txt 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/Documentation/kernel-parameters.txt 2014-10-22 14:55:51.994220001 -0500
@@ -603,8 +603,11 @@
Also note the kernel might malfunction if you disable
some critical bits.
@@ -52666,9 +50556,9 @@ diff -Nur linux-3.14.17/Documentation/kernel-parameters.txt linux-imx6-3.14/Docu
memory allocations. For more information, see
include/linux/dma-contiguous.h
-diff -Nur linux-3.14.17/Documentation/networking/gianfar.txt linux-imx6-3.14/Documentation/networking/gianfar.txt
---- linux-3.14.17/Documentation/networking/gianfar.txt 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/Documentation/networking/gianfar.txt 2014-09-11 18:05:52.233998935 +0200
+diff -Nur linux-3.14.22.orig/Documentation/networking/gianfar.txt linux-3.14.22/Documentation/networking/gianfar.txt
+--- linux-3.14.22.orig/Documentation/networking/gianfar.txt 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/Documentation/networking/gianfar.txt 2014-10-22 14:55:51.994220001 -0500
@@ -1,38 +1,8 @@
The Gianfar Ethernet Driver
-Sysfs File description
@@ -52708,21 +50598,9 @@ diff -Nur linux-3.14.17/Documentation/networking/gianfar.txt linux-imx6-3.14/Doc
CHECKSUM OFFLOADING
-diff -Nur linux-3.14.17/Documentation/x86/x86_64/mm.txt linux-imx6-3.14/Documentation/x86/x86_64/mm.txt
---- linux-3.14.17/Documentation/x86/x86_64/mm.txt 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/Documentation/x86/x86_64/mm.txt 2014-09-11 18:05:52.449999800 +0200
-@@ -12,8 +12,6 @@
- ffffe90000000000 - ffffe9ffffffffff (=40 bits) hole
- ffffea0000000000 - ffffeaffffffffff (=40 bits) virtual memory map (1TB)
- ... unused hole ...
--ffffff0000000000 - ffffff7fffffffff (=39 bits) %esp fixup stacks
--... unused hole ...
- ffffffff80000000 - ffffffffa0000000 (=512 MB) kernel text mapping, from phys 0
- ffffffffa0000000 - ffffffffff5fffff (=1525 MB) module mapping space
- ffffffffff600000 - ffffffffffdfffff (=8 MB) vsyscalls
-diff -Nur linux-3.14.17/drivers/ata/acard-ahci.c linux-imx6-3.14/drivers/ata/acard-ahci.c
---- linux-3.14.17/drivers/ata/acard-ahci.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/acard-ahci.c 2014-09-11 18:05:59.410027622 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/acard-ahci.c linux-3.14.22/drivers/ata/acard-ahci.c
+--- linux-3.14.22.orig/drivers/ata/acard-ahci.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/acard-ahci.c 2014-10-22 14:55:51.994220001 -0500
@@ -36,7 +36,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -52731,9 +50609,9 @@ diff -Nur linux-3.14.17/drivers/ata/acard-ahci.c linux-imx6-3.14/drivers/ata/aca
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
-diff -Nur linux-3.14.17/drivers/ata/ahci.c linux-imx6-3.14/drivers/ata/ahci.c
---- linux-3.14.17/drivers/ata/ahci.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/ahci.c 2014-09-11 18:05:59.410027622 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/ahci.c linux-3.14.22/drivers/ata/ahci.c
+--- linux-3.14.22.orig/drivers/ata/ahci.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/ahci.c 2014-10-22 14:55:51.998220001 -0500
@@ -35,7 +35,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -52742,15 +50620,7 @@ diff -Nur linux-3.14.17/drivers/ata/ahci.c linux-imx6-3.14/drivers/ata/ahci.c
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
-@@ -457,7 +456,6 @@
-
- /* Promise */
- { PCI_VDEVICE(PROMISE, 0x3f20), board_ahci }, /* PDC42819 */
-- { PCI_VDEVICE(PROMISE, 0x3781), board_ahci }, /* FastTrak TX8660 ahci-mode */
-
- /* Asmedia */
- { PCI_VDEVICE(ASMEDIA, 0x0601), board_ahci }, /* ASM1060 */
-@@ -583,6 +581,7 @@
+@@ -593,6 +592,7 @@
unsigned long deadline)
{
struct ata_port *ap = link->ap;
@@ -52758,7 +50628,7 @@ diff -Nur linux-3.14.17/drivers/ata/ahci.c linux-imx6-3.14/drivers/ata/ahci.c
bool online;
int rc;
-@@ -593,7 +592,7 @@
+@@ -603,7 +603,7 @@
rc = sata_link_hardreset(link, sata_ehc_deb_timing(&link->eh_context),
deadline, &online, NULL);
@@ -52767,7 +50637,7 @@ diff -Nur linux-3.14.17/drivers/ata/ahci.c linux-imx6-3.14/drivers/ata/ahci.c
DPRINTK("EXIT, rc=%d, class=%u\n", rc, *class);
-@@ -608,6 +607,7 @@
+@@ -618,6 +618,7 @@
{
struct ata_port *ap = link->ap;
struct ahci_port_priv *pp = ap->private_data;
@@ -52775,7 +50645,7 @@ diff -Nur linux-3.14.17/drivers/ata/ahci.c linux-imx6-3.14/drivers/ata/ahci.c
u8 *d2h_fis = pp->rx_fis + RX_FIS_D2H_REG;
struct ata_taskfile tf;
bool online;
-@@ -623,7 +623,7 @@
+@@ -633,7 +634,7 @@
rc = sata_link_hardreset(link, sata_ehc_deb_timing(&link->eh_context),
deadline, &online, NULL);
@@ -52784,7 +50654,7 @@ diff -Nur linux-3.14.17/drivers/ata/ahci.c linux-imx6-3.14/drivers/ata/ahci.c
/* The pseudo configuration device on SIMG4726 attached to
* ASUS P5W-DH Deluxe doesn't send signature FIS after
-@@ -1119,6 +1119,17 @@
+@@ -1129,6 +1130,17 @@
return pdev->bus->number == (val >> 8) && pdev->devfn == (val & 0xff);
}
@@ -52802,7 +50672,7 @@ diff -Nur linux-3.14.17/drivers/ata/ahci.c linux-imx6-3.14/drivers/ata/ahci.c
#ifdef CONFIG_ATA_ACPI
static void ahci_gtf_filter_workaround(struct ata_host *host)
{
-@@ -1370,6 +1381,10 @@
+@@ -1380,6 +1392,10 @@
hpriv->mmio = pcim_iomap_table(pdev)[ahci_pci_bar];
@@ -52813,9 +50683,9 @@ diff -Nur linux-3.14.17/drivers/ata/ahci.c linux-imx6-3.14/drivers/ata/ahci.c
/* save initial config */
ahci_pci_save_initial_config(pdev, hpriv);
-diff -Nur linux-3.14.17/drivers/ata/ahci.h linux-imx6-3.14/drivers/ata/ahci.h
---- linux-3.14.17/drivers/ata/ahci.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/ahci.h 2014-09-11 18:05:59.414027637 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/ahci.h linux-3.14.22/drivers/ata/ahci.h
+--- linux-3.14.22.orig/drivers/ata/ahci.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/ahci.h 2014-10-22 14:55:51.998220001 -0500
@@ -37,6 +37,8 @@
#include <linux/clk.h>
@@ -52861,9 +50731,9 @@ diff -Nur linux-3.14.17/drivers/ata/ahci.h linux-imx6-3.14/drivers/ata/ahci.h
};
extern int ahci_ignore_sss;
-diff -Nur linux-3.14.17/drivers/ata/ahci_imx.c linux-imx6-3.14/drivers/ata/ahci_imx.c
---- linux-3.14.17/drivers/ata/ahci_imx.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/ahci_imx.c 2014-09-11 18:05:59.414027637 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/ahci_imx.c linux-3.14.22/drivers/ata/ahci_imx.c
+--- linux-3.14.22.orig/drivers/ata/ahci_imx.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/ahci_imx.c 2014-10-22 14:55:51.998220001 -0500
@@ -26,12 +26,29 @@
#include <linux/mfd/syscon.h>
#include <linux/mfd/syscon/imx6q-iomuxc-gpr.h>
@@ -53684,9 +51554,9 @@ diff -Nur linux-3.14.17/drivers/ata/ahci_imx.c linux-imx6-3.14/drivers/ata/ahci_
},
};
module_platform_driver(imx_ahci_driver);
-diff -Nur linux-3.14.17/drivers/ata/ahci_platform.c linux-imx6-3.14/drivers/ata/ahci_platform.c
---- linux-3.14.17/drivers/ata/ahci_platform.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/ahci_platform.c 2014-09-11 18:05:59.414027637 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/ahci_platform.c linux-3.14.22/drivers/ata/ahci_platform.c
+--- linux-3.14.22.orig/drivers/ata/ahci_platform.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/ahci_platform.c 2014-10-22 14:55:51.998220001 -0500
@@ -12,135 +12,36 @@
* any later version.
*/
@@ -54035,9 +51905,9 @@ diff -Nur linux-3.14.17/drivers/ata/ahci_platform.c linux-imx6-3.14/drivers/ata/
};
module_platform_driver(ahci_driver);
-diff -Nur linux-3.14.17/drivers/ata/ata_generic.c linux-imx6-3.14/drivers/ata/ata_generic.c
---- linux-3.14.17/drivers/ata/ata_generic.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/ata_generic.c 2014-09-11 18:05:59.414027637 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/ata_generic.c linux-3.14.22/drivers/ata/ata_generic.c
+--- linux-3.14.22.orig/drivers/ata/ata_generic.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/ata_generic.c 2014-10-22 14:55:51.998220001 -0500
@@ -19,7 +19,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -54046,9 +51916,9 @@ diff -Nur linux-3.14.17/drivers/ata/ata_generic.c linux-imx6-3.14/drivers/ata/at
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <scsi/scsi_host.h>
-diff -Nur linux-3.14.17/drivers/ata/Kconfig linux-imx6-3.14/drivers/ata/Kconfig
---- linux-3.14.17/drivers/ata/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/Kconfig 2014-09-11 18:05:59.410027622 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/Kconfig linux-3.14.22/drivers/ata/Kconfig
+--- linux-3.14.22.orig/drivers/ata/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/Kconfig 2014-10-22 14:55:51.998220001 -0500
@@ -99,7 +99,7 @@
config AHCI_IMX
@@ -54058,9 +51928,9 @@ diff -Nur linux-3.14.17/drivers/ata/Kconfig linux-imx6-3.14/drivers/ata/Kconfig
help
This option enables support for the Freescale i.MX SoC's
onboard AHCI SATA.
-diff -Nur linux-3.14.17/drivers/ata/libahci.c linux-imx6-3.14/drivers/ata/libahci.c
---- linux-3.14.17/drivers/ata/libahci.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/libahci.c 2014-09-11 18:05:59.414027637 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/libahci.c linux-3.14.22/drivers/ata/libahci.c
+--- linux-3.14.22.orig/drivers/ata/libahci.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/libahci.c 2014-10-22 14:55:52.002220001 -0500
@@ -35,7 +35,6 @@
#include <linux/kernel.h>
#include <linux/gfp.h>
@@ -54210,9 +52080,9 @@ diff -Nur linux-3.14.17/drivers/ata/libahci.c linux-imx6-3.14/drivers/ata/libahc
}
static void ahci_pmp_attach(struct ata_port *ap)
-diff -Nur linux-3.14.17/drivers/ata/libahci_platform.c linux-imx6-3.14/drivers/ata/libahci_platform.c
---- linux-3.14.17/drivers/ata/libahci_platform.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/ata/libahci_platform.c 2014-09-11 18:05:59.414027637 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/libahci_platform.c linux-3.14.22/drivers/ata/libahci_platform.c
+--- linux-3.14.22.orig/drivers/ata/libahci_platform.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/ata/libahci_platform.c 2014-10-22 14:55:52.002220001 -0500
@@ -0,0 +1,544 @@
+/*
+ * AHCI SATA platform library
@@ -54758,9 +52628,9 @@ diff -Nur linux-3.14.17/drivers/ata/libahci_platform.c linux-imx6-3.14/drivers/a
+MODULE_DESCRIPTION("AHCI SATA platform library");
+MODULE_AUTHOR("Anton Vorontsov <avorontsov@ru.mvista.com>");
+MODULE_LICENSE("GPL");
-diff -Nur linux-3.14.17/drivers/ata/libata-core.c linux-imx6-3.14/drivers/ata/libata-core.c
---- linux-3.14.17/drivers/ata/libata-core.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/libata-core.c 2014-09-11 18:05:59.418027652 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/libata-core.c linux-3.14.22/drivers/ata/libata-core.c
+--- linux-3.14.22.orig/drivers/ata/libata-core.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/libata-core.c 2014-10-22 14:55:52.002220001 -0500
@@ -1524,7 +1524,7 @@
* @dev: Device to which the command is sent
* @tf: Taskfile registers for the command and the result
@@ -54779,55 +52649,9 @@ diff -Nur linux-3.14.17/drivers/ata/libata-core.c linux-imx6-3.14/drivers/ata/li
* @buf: Data buffer of the command
* @buflen: Length of data buffer
* @timeout: Timeout in msecs (0 for default)
-@@ -4787,10 +4787,6 @@
- * ata_qc_new - Request an available ATA command, for queueing
- * @ap: target port
- *
-- * Some ATA host controllers may implement a queue depth which is less
-- * than ATA_MAX_QUEUE. So we shouldn't allocate a tag which is beyond
-- * the hardware limitation.
-- *
- * LOCKING:
- * None.
- */
-@@ -4798,15 +4794,14 @@
- static struct ata_queued_cmd *ata_qc_new(struct ata_port *ap)
- {
- struct ata_queued_cmd *qc = NULL;
-- unsigned int max_queue = ap->host->n_tags;
- unsigned int i, tag;
-
- /* no command while frozen */
- if (unlikely(ap->pflags & ATA_PFLAG_FROZEN))
- return NULL;
-
-- for (i = 0, tag = ap->last_tag + 1; i < max_queue; i++, tag++) {
-- tag = tag < max_queue ? tag : 0;
-+ for (i = 0; i < ATA_MAX_QUEUE; i++) {
-+ tag = (i + ap->last_tag + 1) % ATA_MAX_QUEUE;
-
- /* the last tag is reserved for internal command. */
- if (tag == ATA_TAG_INTERNAL)
-@@ -6108,7 +6103,6 @@
- {
- spin_lock_init(&host->lock);
- mutex_init(&host->eh_mutex);
-- host->n_tags = ATA_MAX_QUEUE - 1;
- host->dev = dev;
- host->ops = ops;
- }
-@@ -6190,8 +6184,6 @@
- {
- int i, rc;
-
-- host->n_tags = clamp(sht->can_queue, 1, ATA_MAX_QUEUE - 1);
--
- /* host must have been started */
- if (!(host->flags & ATA_HOST_STARTED)) {
- dev_err(host->dev, "BUG: trying to register unstarted host\n");
-diff -Nur linux-3.14.17/drivers/ata/Makefile linux-imx6-3.14/drivers/ata/Makefile
---- linux-3.14.17/drivers/ata/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/Makefile 2014-09-11 18:05:59.410027622 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/Makefile linux-3.14.22/drivers/ata/Makefile
+--- linux-3.14.22.orig/drivers/ata/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/Makefile 2014-10-22 14:55:52.002220001 -0500
@@ -4,13 +4,13 @@
# non-SFF interface
obj-$(CONFIG_SATA_AHCI) += ahci.o libahci.o
@@ -54844,9 +52668,9 @@ diff -Nur linux-3.14.17/drivers/ata/Makefile linux-imx6-3.14/drivers/ata/Makefil
# SFF w/ custom DMA
obj-$(CONFIG_PDC_ADMA) += pdc_adma.o
-diff -Nur linux-3.14.17/drivers/ata/pata_acpi.c linux-imx6-3.14/drivers/ata/pata_acpi.c
---- linux-3.14.17/drivers/ata/pata_acpi.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_acpi.c 2014-09-11 18:05:59.422027668 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_acpi.c linux-3.14.22/drivers/ata/pata_acpi.c
+--- linux-3.14.22.orig/drivers/ata/pata_acpi.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_acpi.c 2014-10-22 14:55:52.002220001 -0500
@@ -7,7 +7,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -54855,9 +52679,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_acpi.c linux-imx6-3.14/drivers/ata/pata
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/device.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_amd.c linux-imx6-3.14/drivers/ata/pata_amd.c
---- linux-3.14.17/drivers/ata/pata_amd.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_amd.c 2014-09-11 18:05:59.422027668 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_amd.c linux-3.14.22/drivers/ata/pata_amd.c
+--- linux-3.14.22.orig/drivers/ata/pata_amd.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_amd.c 2014-10-22 14:55:52.002220001 -0500
@@ -17,7 +17,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -54866,9 +52690,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_amd.c linux-imx6-3.14/drivers/ata/pata_
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <scsi/scsi_host.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_artop.c linux-imx6-3.14/drivers/ata/pata_artop.c
---- linux-3.14.17/drivers/ata/pata_artop.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_artop.c 2014-09-11 18:05:59.422027668 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_artop.c linux-3.14.22/drivers/ata/pata_artop.c
+--- linux-3.14.22.orig/drivers/ata/pata_artop.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_artop.c 2014-10-22 14:55:52.002220001 -0500
@@ -19,7 +19,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -54877,9 +52701,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_artop.c linux-imx6-3.14/drivers/ata/pat
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/device.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_at91.c linux-imx6-3.14/drivers/ata/pata_at91.c
---- linux-3.14.17/drivers/ata/pata_at91.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_at91.c 2014-09-11 18:05:59.422027668 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_at91.c linux-3.14.22/drivers/ata/pata_at91.c
+--- linux-3.14.22.orig/drivers/ata/pata_at91.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_at91.c 2014-10-22 14:55:52.002220001 -0500
@@ -18,7 +18,6 @@
#include <linux/kernel.h>
@@ -54888,9 +52712,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_at91.c linux-imx6-3.14/drivers/ata/pata
#include <linux/blkdev.h>
#include <linux/gfp.h>
#include <scsi/scsi_host.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_atiixp.c linux-imx6-3.14/drivers/ata/pata_atiixp.c
---- linux-3.14.17/drivers/ata/pata_atiixp.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_atiixp.c 2014-09-11 18:05:59.422027668 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_atiixp.c linux-3.14.22/drivers/ata/pata_atiixp.c
+--- linux-3.14.22.orig/drivers/ata/pata_atiixp.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_atiixp.c 2014-10-22 14:55:52.002220001 -0500
@@ -15,7 +15,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -54899,9 +52723,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_atiixp.c linux-imx6-3.14/drivers/ata/pa
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <scsi/scsi_host.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_atp867x.c linux-imx6-3.14/drivers/ata/pata_atp867x.c
---- linux-3.14.17/drivers/ata/pata_atp867x.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_atp867x.c 2014-09-11 18:05:59.422027668 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_atp867x.c linux-3.14.22/drivers/ata/pata_atp867x.c
+--- linux-3.14.22.orig/drivers/ata/pata_atp867x.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_atp867x.c 2014-10-22 14:55:52.002220001 -0500
@@ -29,7 +29,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -54910,9 +52734,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_atp867x.c linux-imx6-3.14/drivers/ata/p
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/device.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_cmd640.c linux-imx6-3.14/drivers/ata/pata_cmd640.c
---- linux-3.14.17/drivers/ata/pata_cmd640.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_cmd640.c 2014-09-11 18:05:59.422027668 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_cmd640.c linux-3.14.22/drivers/ata/pata_cmd640.c
+--- linux-3.14.22.orig/drivers/ata/pata_cmd640.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_cmd640.c 2014-10-22 14:55:52.006220001 -0500
@@ -15,7 +15,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -54921,9 +52745,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_cmd640.c linux-imx6-3.14/drivers/ata/pa
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/gfp.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_cmd64x.c linux-imx6-3.14/drivers/ata/pata_cmd64x.c
---- linux-3.14.17/drivers/ata/pata_cmd64x.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_cmd64x.c 2014-09-11 18:05:59.422027668 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_cmd64x.c linux-3.14.22/drivers/ata/pata_cmd64x.c
+--- linux-3.14.22.orig/drivers/ata/pata_cmd64x.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_cmd64x.c 2014-10-22 14:55:52.006220001 -0500
@@ -26,7 +26,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -54932,9 +52756,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_cmd64x.c linux-imx6-3.14/drivers/ata/pa
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <scsi/scsi_host.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_cs5520.c linux-imx6-3.14/drivers/ata/pata_cs5520.c
---- linux-3.14.17/drivers/ata/pata_cs5520.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_cs5520.c 2014-09-11 18:05:59.422027668 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_cs5520.c linux-3.14.22/drivers/ata/pata_cs5520.c
+--- linux-3.14.22.orig/drivers/ata/pata_cs5520.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_cs5520.c 2014-10-22 14:55:52.006220001 -0500
@@ -34,7 +34,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -54943,9 +52767,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_cs5520.c linux-imx6-3.14/drivers/ata/pa
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <scsi/scsi_host.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_cs5530.c linux-imx6-3.14/drivers/ata/pata_cs5530.c
---- linux-3.14.17/drivers/ata/pata_cs5530.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_cs5530.c 2014-09-11 18:05:59.422027668 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_cs5530.c linux-3.14.22/drivers/ata/pata_cs5530.c
+--- linux-3.14.22.orig/drivers/ata/pata_cs5530.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_cs5530.c 2014-10-22 14:55:52.006220001 -0500
@@ -26,7 +26,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -54954,9 +52778,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_cs5530.c linux-imx6-3.14/drivers/ata/pa
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <scsi/scsi_host.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_cs5535.c linux-imx6-3.14/drivers/ata/pata_cs5535.c
---- linux-3.14.17/drivers/ata/pata_cs5535.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_cs5535.c 2014-09-11 18:05:59.422027668 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_cs5535.c linux-3.14.22/drivers/ata/pata_cs5535.c
+--- linux-3.14.22.orig/drivers/ata/pata_cs5535.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_cs5535.c 2014-10-22 14:55:52.006220001 -0500
@@ -31,7 +31,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -54965,9 +52789,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_cs5535.c linux-imx6-3.14/drivers/ata/pa
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <scsi/scsi_host.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_cs5536.c linux-imx6-3.14/drivers/ata/pata_cs5536.c
---- linux-3.14.17/drivers/ata/pata_cs5536.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_cs5536.c 2014-09-11 18:05:59.422027668 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_cs5536.c linux-3.14.22/drivers/ata/pata_cs5536.c
+--- linux-3.14.22.orig/drivers/ata/pata_cs5536.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_cs5536.c 2014-10-22 14:55:52.006220001 -0500
@@ -33,7 +33,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -54976,9 +52800,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_cs5536.c linux-imx6-3.14/drivers/ata/pa
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/libata.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_cypress.c linux-imx6-3.14/drivers/ata/pata_cypress.c
---- linux-3.14.17/drivers/ata/pata_cypress.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_cypress.c 2014-09-11 18:05:59.422027668 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_cypress.c linux-3.14.22/drivers/ata/pata_cypress.c
+--- linux-3.14.22.orig/drivers/ata/pata_cypress.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_cypress.c 2014-10-22 14:55:52.006220001 -0500
@@ -11,7 +11,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -54987,9 +52811,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_cypress.c linux-imx6-3.14/drivers/ata/p
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <scsi/scsi_host.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_efar.c linux-imx6-3.14/drivers/ata/pata_efar.c
---- linux-3.14.17/drivers/ata/pata_efar.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_efar.c 2014-09-11 18:05:59.426027685 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_efar.c linux-3.14.22/drivers/ata/pata_efar.c
+--- linux-3.14.22.orig/drivers/ata/pata_efar.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_efar.c 2014-10-22 14:55:52.006220001 -0500
@@ -14,7 +14,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -54998,9 +52822,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_efar.c linux-imx6-3.14/drivers/ata/pata
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/device.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_ep93xx.c linux-imx6-3.14/drivers/ata/pata_ep93xx.c
---- linux-3.14.17/drivers/ata/pata_ep93xx.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_ep93xx.c 2014-09-11 18:05:59.426027685 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_ep93xx.c linux-3.14.22/drivers/ata/pata_ep93xx.c
+--- linux-3.14.22.orig/drivers/ata/pata_ep93xx.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_ep93xx.c 2014-10-22 14:55:52.006220001 -0500
@@ -34,7 +34,6 @@
#include <linux/err.h>
#include <linux/kernel.h>
@@ -55009,9 +52833,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_ep93xx.c linux-imx6-3.14/drivers/ata/pa
#include <linux/blkdev.h>
#include <scsi/scsi_host.h>
#include <linux/ata.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_hpt366.c linux-imx6-3.14/drivers/ata/pata_hpt366.c
---- linux-3.14.17/drivers/ata/pata_hpt366.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_hpt366.c 2014-09-11 18:05:59.426027685 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_hpt366.c linux-3.14.22/drivers/ata/pata_hpt366.c
+--- linux-3.14.22.orig/drivers/ata/pata_hpt366.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_hpt366.c 2014-10-22 14:55:52.006220001 -0500
@@ -19,7 +19,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55020,9 +52844,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_hpt366.c linux-imx6-3.14/drivers/ata/pa
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <scsi/scsi_host.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_hpt37x.c linux-imx6-3.14/drivers/ata/pata_hpt37x.c
---- linux-3.14.17/drivers/ata/pata_hpt37x.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_hpt37x.c 2014-09-11 18:05:59.426027685 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_hpt37x.c linux-3.14.22/drivers/ata/pata_hpt37x.c
+--- linux-3.14.22.orig/drivers/ata/pata_hpt37x.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_hpt37x.c 2014-10-22 14:55:52.006220001 -0500
@@ -19,7 +19,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55031,9 +52855,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_hpt37x.c linux-imx6-3.14/drivers/ata/pa
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <scsi/scsi_host.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_hpt3x2n.c linux-imx6-3.14/drivers/ata/pata_hpt3x2n.c
---- linux-3.14.17/drivers/ata/pata_hpt3x2n.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_hpt3x2n.c 2014-09-11 18:05:59.426027685 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_hpt3x2n.c linux-3.14.22/drivers/ata/pata_hpt3x2n.c
+--- linux-3.14.22.orig/drivers/ata/pata_hpt3x2n.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_hpt3x2n.c 2014-10-22 14:55:52.006220001 -0500
@@ -20,7 +20,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55042,9 +52866,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_hpt3x2n.c linux-imx6-3.14/drivers/ata/p
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <scsi/scsi_host.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_hpt3x3.c linux-imx6-3.14/drivers/ata/pata_hpt3x3.c
---- linux-3.14.17/drivers/ata/pata_hpt3x3.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_hpt3x3.c 2014-09-11 18:05:59.426027685 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_hpt3x3.c linux-3.14.22/drivers/ata/pata_hpt3x3.c
+--- linux-3.14.22.orig/drivers/ata/pata_hpt3x3.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_hpt3x3.c 2014-10-22 14:55:52.010220001 -0500
@@ -16,7 +16,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55053,9 +52877,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_hpt3x3.c linux-imx6-3.14/drivers/ata/pa
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <scsi/scsi_host.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_imx.c linux-imx6-3.14/drivers/ata/pata_imx.c
---- linux-3.14.17/drivers/ata/pata_imx.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_imx.c 2014-09-11 18:05:59.426027685 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_imx.c linux-3.14.22/drivers/ata/pata_imx.c
+--- linux-3.14.22.orig/drivers/ata/pata_imx.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_imx.c 2014-10-22 14:55:52.010220001 -0500
@@ -15,7 +15,6 @@
*/
#include <linux/kernel.h>
@@ -55064,9 +52888,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_imx.c linux-imx6-3.14/drivers/ata/pata_
#include <linux/blkdev.h>
#include <scsi/scsi_host.h>
#include <linux/ata.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_it8213.c linux-imx6-3.14/drivers/ata/pata_it8213.c
---- linux-3.14.17/drivers/ata/pata_it8213.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_it8213.c 2014-09-11 18:05:59.426027685 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_it8213.c linux-3.14.22/drivers/ata/pata_it8213.c
+--- linux-3.14.22.orig/drivers/ata/pata_it8213.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_it8213.c 2014-10-22 14:55:52.010220001 -0500
@@ -10,7 +10,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55075,9 +52899,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_it8213.c linux-imx6-3.14/drivers/ata/pa
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/device.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_it821x.c linux-imx6-3.14/drivers/ata/pata_it821x.c
---- linux-3.14.17/drivers/ata/pata_it821x.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_it821x.c 2014-09-11 18:05:59.426027685 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_it821x.c linux-3.14.22/drivers/ata/pata_it821x.c
+--- linux-3.14.22.orig/drivers/ata/pata_it821x.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_it821x.c 2014-10-22 14:55:52.010220001 -0500
@@ -72,7 +72,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55086,9 +52910,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_it821x.c linux-imx6-3.14/drivers/ata/pa
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/slab.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_jmicron.c linux-imx6-3.14/drivers/ata/pata_jmicron.c
---- linux-3.14.17/drivers/ata/pata_jmicron.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_jmicron.c 2014-09-11 18:05:59.426027685 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_jmicron.c linux-3.14.22/drivers/ata/pata_jmicron.c
+--- linux-3.14.22.orig/drivers/ata/pata_jmicron.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_jmicron.c 2014-10-22 14:55:52.010220001 -0500
@@ -10,7 +10,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55097,9 +52921,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_jmicron.c linux-imx6-3.14/drivers/ata/p
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/device.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_marvell.c linux-imx6-3.14/drivers/ata/pata_marvell.c
---- linux-3.14.17/drivers/ata/pata_marvell.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_marvell.c 2014-09-11 18:05:59.430027701 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_marvell.c linux-3.14.22/drivers/ata/pata_marvell.c
+--- linux-3.14.22.orig/drivers/ata/pata_marvell.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_marvell.c 2014-10-22 14:55:52.010220001 -0500
@@ -11,7 +11,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55108,9 +52932,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_marvell.c linux-imx6-3.14/drivers/ata/p
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/device.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_mpiix.c linux-imx6-3.14/drivers/ata/pata_mpiix.c
---- linux-3.14.17/drivers/ata/pata_mpiix.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_mpiix.c 2014-09-11 18:05:59.430027701 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_mpiix.c linux-3.14.22/drivers/ata/pata_mpiix.c
+--- linux-3.14.22.orig/drivers/ata/pata_mpiix.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_mpiix.c 2014-10-22 14:55:52.010220001 -0500
@@ -28,7 +28,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55119,9 +52943,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_mpiix.c linux-imx6-3.14/drivers/ata/pat
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <scsi/scsi_host.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_netcell.c linux-imx6-3.14/drivers/ata/pata_netcell.c
---- linux-3.14.17/drivers/ata/pata_netcell.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_netcell.c 2014-09-11 18:05:59.430027701 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_netcell.c linux-3.14.22/drivers/ata/pata_netcell.c
+--- linux-3.14.22.orig/drivers/ata/pata_netcell.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_netcell.c 2014-10-22 14:55:52.010220001 -0500
@@ -7,7 +7,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55130,9 +52954,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_netcell.c linux-imx6-3.14/drivers/ata/p
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/device.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_ninja32.c linux-imx6-3.14/drivers/ata/pata_ninja32.c
---- linux-3.14.17/drivers/ata/pata_ninja32.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_ninja32.c 2014-09-11 18:05:59.430027701 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_ninja32.c linux-3.14.22/drivers/ata/pata_ninja32.c
+--- linux-3.14.22.orig/drivers/ata/pata_ninja32.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_ninja32.c 2014-10-22 14:55:52.010220001 -0500
@@ -37,7 +37,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55141,9 +52965,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_ninja32.c linux-imx6-3.14/drivers/ata/p
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <scsi/scsi_host.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_ns87410.c linux-imx6-3.14/drivers/ata/pata_ns87410.c
---- linux-3.14.17/drivers/ata/pata_ns87410.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_ns87410.c 2014-09-11 18:05:59.430027701 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_ns87410.c linux-3.14.22/drivers/ata/pata_ns87410.c
+--- linux-3.14.22.orig/drivers/ata/pata_ns87410.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_ns87410.c 2014-10-22 14:55:52.010220001 -0500
@@ -20,7 +20,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55152,9 +52976,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_ns87410.c linux-imx6-3.14/drivers/ata/p
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <scsi/scsi_host.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_ns87415.c linux-imx6-3.14/drivers/ata/pata_ns87415.c
---- linux-3.14.17/drivers/ata/pata_ns87415.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_ns87415.c 2014-09-11 18:05:59.430027701 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_ns87415.c linux-3.14.22/drivers/ata/pata_ns87415.c
+--- linux-3.14.22.orig/drivers/ata/pata_ns87415.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_ns87415.c 2014-10-22 14:55:52.010220001 -0500
@@ -25,7 +25,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55163,9 +52987,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_ns87415.c linux-imx6-3.14/drivers/ata/p
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/device.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_oldpiix.c linux-imx6-3.14/drivers/ata/pata_oldpiix.c
---- linux-3.14.17/drivers/ata/pata_oldpiix.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_oldpiix.c 2014-09-11 18:05:59.430027701 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_oldpiix.c linux-3.14.22/drivers/ata/pata_oldpiix.c
+--- linux-3.14.22.orig/drivers/ata/pata_oldpiix.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_oldpiix.c 2014-10-22 14:55:52.010220001 -0500
@@ -16,7 +16,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55174,9 +52998,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_oldpiix.c linux-imx6-3.14/drivers/ata/p
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/device.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_opti.c linux-imx6-3.14/drivers/ata/pata_opti.c
---- linux-3.14.17/drivers/ata/pata_opti.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_opti.c 2014-09-11 18:05:59.430027701 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_opti.c linux-3.14.22/drivers/ata/pata_opti.c
+--- linux-3.14.22.orig/drivers/ata/pata_opti.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_opti.c 2014-10-22 14:55:52.010220001 -0500
@@ -26,7 +26,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55185,9 +53009,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_opti.c linux-imx6-3.14/drivers/ata/pata
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <scsi/scsi_host.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_optidma.c linux-imx6-3.14/drivers/ata/pata_optidma.c
---- linux-3.14.17/drivers/ata/pata_optidma.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_optidma.c 2014-09-11 18:05:59.430027701 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_optidma.c linux-3.14.22/drivers/ata/pata_optidma.c
+--- linux-3.14.22.orig/drivers/ata/pata_optidma.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_optidma.c 2014-10-22 14:55:52.010220001 -0500
@@ -25,7 +25,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55196,9 +53020,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_optidma.c linux-imx6-3.14/drivers/ata/p
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <scsi/scsi_host.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_pcmcia.c linux-imx6-3.14/drivers/ata/pata_pcmcia.c
---- linux-3.14.17/drivers/ata/pata_pcmcia.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_pcmcia.c 2014-09-11 18:05:59.430027701 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_pcmcia.c linux-3.14.22/drivers/ata/pata_pcmcia.c
+--- linux-3.14.22.orig/drivers/ata/pata_pcmcia.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_pcmcia.c 2014-10-22 14:55:52.010220001 -0500
@@ -26,7 +26,6 @@
#include <linux/kernel.h>
@@ -55207,9 +53031,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_pcmcia.c linux-imx6-3.14/drivers/ata/pa
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/slab.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_pdc2027x.c linux-imx6-3.14/drivers/ata/pata_pdc2027x.c
---- linux-3.14.17/drivers/ata/pata_pdc2027x.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_pdc2027x.c 2014-09-11 18:05:59.430027701 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_pdc2027x.c linux-3.14.22/drivers/ata/pata_pdc2027x.c
+--- linux-3.14.22.orig/drivers/ata/pata_pdc2027x.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_pdc2027x.c 2014-10-22 14:55:52.014220001 -0500
@@ -25,7 +25,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55218,9 +53042,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_pdc2027x.c linux-imx6-3.14/drivers/ata/
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/device.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_pdc202xx_old.c linux-imx6-3.14/drivers/ata/pata_pdc202xx_old.c
---- linux-3.14.17/drivers/ata/pata_pdc202xx_old.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_pdc202xx_old.c 2014-09-11 18:05:59.430027701 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_pdc202xx_old.c linux-3.14.22/drivers/ata/pata_pdc202xx_old.c
+--- linux-3.14.22.orig/drivers/ata/pata_pdc202xx_old.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_pdc202xx_old.c 2014-10-22 14:55:52.014220001 -0500
@@ -15,7 +15,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55229,9 +53053,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_pdc202xx_old.c linux-imx6-3.14/drivers/
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <scsi/scsi_host.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_piccolo.c linux-imx6-3.14/drivers/ata/pata_piccolo.c
---- linux-3.14.17/drivers/ata/pata_piccolo.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_piccolo.c 2014-09-11 18:05:59.430027701 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_piccolo.c linux-3.14.22/drivers/ata/pata_piccolo.c
+--- linux-3.14.22.orig/drivers/ata/pata_piccolo.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_piccolo.c 2014-10-22 14:55:52.014220001 -0500
@@ -18,7 +18,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55240,9 +53064,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_piccolo.c linux-imx6-3.14/drivers/ata/p
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <scsi/scsi_host.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_platform.c linux-imx6-3.14/drivers/ata/pata_platform.c
---- linux-3.14.17/drivers/ata/pata_platform.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_platform.c 2014-09-11 18:05:59.430027701 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_platform.c linux-3.14.22/drivers/ata/pata_platform.c
+--- linux-3.14.22.orig/drivers/ata/pata_platform.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_platform.c 2014-10-22 14:55:52.014220001 -0500
@@ -13,7 +13,6 @@
*/
#include <linux/kernel.h>
@@ -55251,9 +53075,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_platform.c linux-imx6-3.14/drivers/ata/
#include <linux/blkdev.h>
#include <scsi/scsi_host.h>
#include <linux/ata.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_pxa.c linux-imx6-3.14/drivers/ata/pata_pxa.c
---- linux-3.14.17/drivers/ata/pata_pxa.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_pxa.c 2014-09-11 18:05:59.430027701 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_pxa.c linux-3.14.22/drivers/ata/pata_pxa.c
+--- linux-3.14.22.orig/drivers/ata/pata_pxa.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_pxa.c 2014-10-22 14:55:52.014220001 -0500
@@ -20,7 +20,6 @@
#include <linux/kernel.h>
@@ -55262,9 +53086,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_pxa.c linux-imx6-3.14/drivers/ata/pata_
#include <linux/blkdev.h>
#include <linux/ata.h>
#include <linux/libata.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_radisys.c linux-imx6-3.14/drivers/ata/pata_radisys.c
---- linux-3.14.17/drivers/ata/pata_radisys.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_radisys.c 2014-09-11 18:05:59.430027701 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_radisys.c linux-3.14.22/drivers/ata/pata_radisys.c
+--- linux-3.14.22.orig/drivers/ata/pata_radisys.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_radisys.c 2014-10-22 14:55:52.014220001 -0500
@@ -15,7 +15,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55273,9 +53097,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_radisys.c linux-imx6-3.14/drivers/ata/p
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/device.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_rdc.c linux-imx6-3.14/drivers/ata/pata_rdc.c
---- linux-3.14.17/drivers/ata/pata_rdc.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_rdc.c 2014-09-11 18:05:59.430027701 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_rdc.c linux-3.14.22/drivers/ata/pata_rdc.c
+--- linux-3.14.22.orig/drivers/ata/pata_rdc.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_rdc.c 2014-10-22 14:55:52.014220001 -0500
@@ -24,7 +24,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55284,9 +53108,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_rdc.c linux-imx6-3.14/drivers/ata/pata_
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/device.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_rz1000.c linux-imx6-3.14/drivers/ata/pata_rz1000.c
---- linux-3.14.17/drivers/ata/pata_rz1000.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_rz1000.c 2014-09-11 18:05:59.430027701 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_rz1000.c linux-3.14.22/drivers/ata/pata_rz1000.c
+--- linux-3.14.22.orig/drivers/ata/pata_rz1000.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_rz1000.c 2014-10-22 14:55:52.014220001 -0500
@@ -14,7 +14,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55295,9 +53119,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_rz1000.c linux-imx6-3.14/drivers/ata/pa
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <scsi/scsi_host.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_sc1200.c linux-imx6-3.14/drivers/ata/pata_sc1200.c
---- linux-3.14.17/drivers/ata/pata_sc1200.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_sc1200.c 2014-09-11 18:05:59.434027716 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_sc1200.c linux-3.14.22/drivers/ata/pata_sc1200.c
+--- linux-3.14.22.orig/drivers/ata/pata_sc1200.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_sc1200.c 2014-10-22 14:55:52.014220001 -0500
@@ -32,7 +32,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55306,9 +53130,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_sc1200.c linux-imx6-3.14/drivers/ata/pa
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <scsi/scsi_host.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_scc.c linux-imx6-3.14/drivers/ata/pata_scc.c
---- linux-3.14.17/drivers/ata/pata_scc.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_scc.c 2014-09-11 18:05:59.434027716 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_scc.c linux-3.14.22/drivers/ata/pata_scc.c
+--- linux-3.14.22.orig/drivers/ata/pata_scc.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_scc.c 2014-10-22 14:55:52.014220001 -0500
@@ -35,7 +35,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55317,9 +53141,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_scc.c linux-imx6-3.14/drivers/ata/pata_
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/device.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_sch.c linux-imx6-3.14/drivers/ata/pata_sch.c
---- linux-3.14.17/drivers/ata/pata_sch.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_sch.c 2014-09-11 18:05:59.434027716 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_sch.c linux-3.14.22/drivers/ata/pata_sch.c
+--- linux-3.14.22.orig/drivers/ata/pata_sch.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_sch.c 2014-10-22 14:55:52.014220001 -0500
@@ -27,7 +27,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55328,9 +53152,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_sch.c linux-imx6-3.14/drivers/ata/pata_
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/device.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_serverworks.c linux-imx6-3.14/drivers/ata/pata_serverworks.c
---- linux-3.14.17/drivers/ata/pata_serverworks.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_serverworks.c 2014-09-11 18:05:59.434027716 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_serverworks.c linux-3.14.22/drivers/ata/pata_serverworks.c
+--- linux-3.14.22.orig/drivers/ata/pata_serverworks.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_serverworks.c 2014-10-22 14:55:52.014220001 -0500
@@ -34,7 +34,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55339,9 +53163,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_serverworks.c linux-imx6-3.14/drivers/a
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <scsi/scsi_host.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_sil680.c linux-imx6-3.14/drivers/ata/pata_sil680.c
---- linux-3.14.17/drivers/ata/pata_sil680.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_sil680.c 2014-09-11 18:05:59.434027716 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_sil680.c linux-3.14.22/drivers/ata/pata_sil680.c
+--- linux-3.14.22.orig/drivers/ata/pata_sil680.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_sil680.c 2014-10-22 14:55:52.014220001 -0500
@@ -25,7 +25,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55350,9 +53174,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_sil680.c linux-imx6-3.14/drivers/ata/pa
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <scsi/scsi_host.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_sis.c linux-imx6-3.14/drivers/ata/pata_sis.c
---- linux-3.14.17/drivers/ata/pata_sis.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_sis.c 2014-09-11 18:05:59.434027716 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_sis.c linux-3.14.22/drivers/ata/pata_sis.c
+--- linux-3.14.22.orig/drivers/ata/pata_sis.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_sis.c 2014-10-22 14:55:52.014220001 -0500
@@ -26,7 +26,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55361,9 +53185,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_sis.c linux-imx6-3.14/drivers/ata/pata_
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/device.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_sl82c105.c linux-imx6-3.14/drivers/ata/pata_sl82c105.c
---- linux-3.14.17/drivers/ata/pata_sl82c105.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_sl82c105.c 2014-09-11 18:05:59.434027716 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_sl82c105.c linux-3.14.22/drivers/ata/pata_sl82c105.c
+--- linux-3.14.22.orig/drivers/ata/pata_sl82c105.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_sl82c105.c 2014-10-22 14:55:52.018220001 -0500
@@ -19,7 +19,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55372,9 +53196,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_sl82c105.c linux-imx6-3.14/drivers/ata/
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <scsi/scsi_host.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_triflex.c linux-imx6-3.14/drivers/ata/pata_triflex.c
---- linux-3.14.17/drivers/ata/pata_triflex.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_triflex.c 2014-09-11 18:05:59.434027716 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_triflex.c linux-3.14.22/drivers/ata/pata_triflex.c
+--- linux-3.14.22.orig/drivers/ata/pata_triflex.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_triflex.c 2014-10-22 14:55:52.018220001 -0500
@@ -36,7 +36,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55383,9 +53207,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_triflex.c linux-imx6-3.14/drivers/ata/p
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <scsi/scsi_host.h>
-diff -Nur linux-3.14.17/drivers/ata/pata_via.c linux-imx6-3.14/drivers/ata/pata_via.c
---- linux-3.14.17/drivers/ata/pata_via.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pata_via.c 2014-09-11 18:05:59.434027716 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pata_via.c linux-3.14.22/drivers/ata/pata_via.c
+--- linux-3.14.22.orig/drivers/ata/pata_via.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pata_via.c 2014-10-22 14:55:52.018220001 -0500
@@ -55,7 +55,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55394,9 +53218,9 @@ diff -Nur linux-3.14.17/drivers/ata/pata_via.c linux-imx6-3.14/drivers/ata/pata_
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/gfp.h>
-diff -Nur linux-3.14.17/drivers/ata/pdc_adma.c linux-imx6-3.14/drivers/ata/pdc_adma.c
---- linux-3.14.17/drivers/ata/pdc_adma.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/pdc_adma.c 2014-09-11 18:05:59.434027716 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/pdc_adma.c linux-3.14.22/drivers/ata/pdc_adma.c
+--- linux-3.14.22.orig/drivers/ata/pdc_adma.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/pdc_adma.c 2014-10-22 14:55:52.018220001 -0500
@@ -36,7 +36,6 @@
#include <linux/module.h>
#include <linux/gfp.h>
@@ -55405,9 +53229,9 @@ diff -Nur linux-3.14.17/drivers/ata/pdc_adma.c linux-imx6-3.14/drivers/ata/pdc_a
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
-diff -Nur linux-3.14.17/drivers/ata/sata_dwc_460ex.c linux-imx6-3.14/drivers/ata/sata_dwc_460ex.c
---- linux-3.14.17/drivers/ata/sata_dwc_460ex.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/sata_dwc_460ex.c 2014-09-11 18:05:59.434027716 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/sata_dwc_460ex.c linux-3.14.22/drivers/ata/sata_dwc_460ex.c
+--- linux-3.14.22.orig/drivers/ata/sata_dwc_460ex.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/sata_dwc_460ex.c 2014-10-22 14:55:52.018220001 -0500
@@ -29,7 +29,6 @@
#include <linux/kernel.h>
@@ -55416,9 +53240,9 @@ diff -Nur linux-3.14.17/drivers/ata/sata_dwc_460ex.c linux-imx6-3.14/drivers/ata
#include <linux/device.h>
#include <linux/of_address.h>
#include <linux/of_irq.h>
-diff -Nur linux-3.14.17/drivers/ata/sata_highbank.c linux-imx6-3.14/drivers/ata/sata_highbank.c
---- linux-3.14.17/drivers/ata/sata_highbank.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/sata_highbank.c 2014-09-11 18:05:59.434027716 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/sata_highbank.c linux-3.14.22/drivers/ata/sata_highbank.c
+--- linux-3.14.22.orig/drivers/ata/sata_highbank.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/sata_highbank.c 2014-10-22 14:55:52.018220001 -0500
@@ -19,7 +19,6 @@
#include <linux/kernel.h>
#include <linux/gfp.h>
@@ -55444,9 +53268,9 @@ diff -Nur linux-3.14.17/drivers/ata/sata_highbank.c linux-imx6-3.14/drivers/ata/
if (online)
*class = ahci_dev_classify(ap);
-diff -Nur linux-3.14.17/drivers/ata/sata_nv.c linux-imx6-3.14/drivers/ata/sata_nv.c
---- linux-3.14.17/drivers/ata/sata_nv.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/sata_nv.c 2014-09-11 18:05:59.438027733 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/sata_nv.c linux-3.14.22/drivers/ata/sata_nv.c
+--- linux-3.14.22.orig/drivers/ata/sata_nv.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/sata_nv.c 2014-10-22 14:55:52.018220001 -0500
@@ -40,7 +40,6 @@
#include <linux/module.h>
#include <linux/gfp.h>
@@ -55455,9 +53279,9 @@ diff -Nur linux-3.14.17/drivers/ata/sata_nv.c linux-imx6-3.14/drivers/ata/sata_n
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
-diff -Nur linux-3.14.17/drivers/ata/sata_promise.c linux-imx6-3.14/drivers/ata/sata_promise.c
---- linux-3.14.17/drivers/ata/sata_promise.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/sata_promise.c 2014-09-11 18:05:59.438027733 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/sata_promise.c linux-3.14.22/drivers/ata/sata_promise.c
+--- linux-3.14.22.orig/drivers/ata/sata_promise.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/sata_promise.c 2014-10-22 14:55:52.018220001 -0500
@@ -35,7 +35,6 @@
#include <linux/module.h>
#include <linux/gfp.h>
@@ -55466,9 +53290,9 @@ diff -Nur linux-3.14.17/drivers/ata/sata_promise.c linux-imx6-3.14/drivers/ata/s
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
-diff -Nur linux-3.14.17/drivers/ata/sata_qstor.c linux-imx6-3.14/drivers/ata/sata_qstor.c
---- linux-3.14.17/drivers/ata/sata_qstor.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/sata_qstor.c 2014-09-11 18:05:59.438027733 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/sata_qstor.c linux-3.14.22/drivers/ata/sata_qstor.c
+--- linux-3.14.22.orig/drivers/ata/sata_qstor.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/sata_qstor.c 2014-10-22 14:55:52.018220001 -0500
@@ -31,7 +31,6 @@
#include <linux/module.h>
#include <linux/gfp.h>
@@ -55477,9 +53301,9 @@ diff -Nur linux-3.14.17/drivers/ata/sata_qstor.c linux-imx6-3.14/drivers/ata/sat
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
-diff -Nur linux-3.14.17/drivers/ata/sata_sil.c linux-imx6-3.14/drivers/ata/sata_sil.c
---- linux-3.14.17/drivers/ata/sata_sil.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/sata_sil.c 2014-09-11 18:05:59.438027733 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/sata_sil.c linux-3.14.22/drivers/ata/sata_sil.c
+--- linux-3.14.22.orig/drivers/ata/sata_sil.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/sata_sil.c 2014-10-22 14:55:52.018220001 -0500
@@ -37,7 +37,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55488,9 +53312,9 @@ diff -Nur linux-3.14.17/drivers/ata/sata_sil.c linux-imx6-3.14/drivers/ata/sata_
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
-diff -Nur linux-3.14.17/drivers/ata/sata_sis.c linux-imx6-3.14/drivers/ata/sata_sis.c
---- linux-3.14.17/drivers/ata/sata_sis.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/sata_sis.c 2014-09-11 18:05:59.438027733 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/sata_sis.c linux-3.14.22/drivers/ata/sata_sis.c
+--- linux-3.14.22.orig/drivers/ata/sata_sis.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/sata_sis.c 2014-10-22 14:55:52.018220001 -0500
@@ -33,7 +33,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55499,9 +53323,9 @@ diff -Nur linux-3.14.17/drivers/ata/sata_sis.c linux-imx6-3.14/drivers/ata/sata_
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
-diff -Nur linux-3.14.17/drivers/ata/sata_svw.c linux-imx6-3.14/drivers/ata/sata_svw.c
---- linux-3.14.17/drivers/ata/sata_svw.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/sata_svw.c 2014-09-11 18:05:59.438027733 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/sata_svw.c linux-3.14.22/drivers/ata/sata_svw.c
+--- linux-3.14.22.orig/drivers/ata/sata_svw.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/sata_svw.c 2014-10-22 14:55:52.022220001 -0500
@@ -39,7 +39,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55510,9 +53334,9 @@ diff -Nur linux-3.14.17/drivers/ata/sata_svw.c linux-imx6-3.14/drivers/ata/sata_
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
-diff -Nur linux-3.14.17/drivers/ata/sata_sx4.c linux-imx6-3.14/drivers/ata/sata_sx4.c
---- linux-3.14.17/drivers/ata/sata_sx4.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/sata_sx4.c 2014-09-11 18:05:59.438027733 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/sata_sx4.c linux-3.14.22/drivers/ata/sata_sx4.c
+--- linux-3.14.22.orig/drivers/ata/sata_sx4.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/sata_sx4.c 2014-10-22 14:55:52.022220001 -0500
@@ -82,7 +82,6 @@
#include <linux/module.h>
#include <linux/pci.h>
@@ -55521,9 +53345,9 @@ diff -Nur linux-3.14.17/drivers/ata/sata_sx4.c linux-imx6-3.14/drivers/ata/sata_
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
-diff -Nur linux-3.14.17/drivers/ata/sata_uli.c linux-imx6-3.14/drivers/ata/sata_uli.c
---- linux-3.14.17/drivers/ata/sata_uli.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/sata_uli.c 2014-09-11 18:05:59.438027733 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/sata_uli.c linux-3.14.22/drivers/ata/sata_uli.c
+--- linux-3.14.22.orig/drivers/ata/sata_uli.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/sata_uli.c 2014-10-22 14:55:52.022220001 -0500
@@ -28,7 +28,6 @@
#include <linux/module.h>
#include <linux/gfp.h>
@@ -55532,9 +53356,9 @@ diff -Nur linux-3.14.17/drivers/ata/sata_uli.c linux-imx6-3.14/drivers/ata/sata_
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
-diff -Nur linux-3.14.17/drivers/ata/sata_via.c linux-imx6-3.14/drivers/ata/sata_via.c
---- linux-3.14.17/drivers/ata/sata_via.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/sata_via.c 2014-09-11 18:05:59.438027733 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/sata_via.c linux-3.14.22/drivers/ata/sata_via.c
+--- linux-3.14.22.orig/drivers/ata/sata_via.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/sata_via.c 2014-10-22 14:55:52.022220001 -0500
@@ -36,7 +36,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55543,9 +53367,9 @@ diff -Nur linux-3.14.17/drivers/ata/sata_via.c linux-imx6-3.14/drivers/ata/sata_
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/device.h>
-diff -Nur linux-3.14.17/drivers/ata/sata_vsc.c linux-imx6-3.14/drivers/ata/sata_vsc.c
---- linux-3.14.17/drivers/ata/sata_vsc.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ata/sata_vsc.c 2014-09-11 18:05:59.438027733 +0200
+diff -Nur linux-3.14.22.orig/drivers/ata/sata_vsc.c linux-3.14.22/drivers/ata/sata_vsc.c
+--- linux-3.14.22.orig/drivers/ata/sata_vsc.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ata/sata_vsc.c 2014-10-22 14:55:52.022220001 -0500
@@ -37,7 +37,6 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -55554,9 +53378,9 @@ diff -Nur linux-3.14.17/drivers/ata/sata_vsc.c linux-imx6-3.14/drivers/ata/sata_
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
-diff -Nur linux-3.14.17/drivers/base/bus.c linux-imx6-3.14/drivers/base/bus.c
---- linux-3.14.17/drivers/base/bus.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/base/bus.c 2014-09-11 18:05:59.498027972 +0200
+diff -Nur linux-3.14.22.orig/drivers/base/bus.c linux-3.14.22/drivers/base/bus.c
+--- linux-3.14.22.orig/drivers/base/bus.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/base/bus.c 2014-10-22 14:55:52.022220001 -0500
@@ -1218,7 +1218,7 @@
* with the name of the subsystem. The root device can carry subsystem-
* wide attributes. All registered devices are below this single root
@@ -55566,9 +53390,9 @@ diff -Nur linux-3.14.17/drivers/base/bus.c linux-imx6-3.14/drivers/base/bus.c
* only 'id' in the device needs to be set.
*
* Do not use this interface for anything new, it exists for compatibility
-diff -Nur linux-3.14.17/drivers/base/cpu.c linux-imx6-3.14/drivers/base/cpu.c
---- linux-3.14.17/drivers/base/cpu.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/base/cpu.c 2014-09-11 18:05:59.522028069 +0200
+diff -Nur linux-3.14.22.orig/drivers/base/cpu.c linux-3.14.22/drivers/base/cpu.c
+--- linux-3.14.22.orig/drivers/base/cpu.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/base/cpu.c 2014-10-22 14:55:52.022220001 -0500
@@ -15,6 +15,7 @@
#include <linux/percpu.h>
#include <linux/acpi.h>
@@ -55654,9 +53478,9 @@ diff -Nur linux-3.14.17/drivers/base/cpu.c linux-imx6-3.14/drivers/base/cpu.c
&dev_attr_modalias.attr,
#endif
NULL
-diff -Nur linux-3.14.17/drivers/base/dma-buf.c linux-imx6-3.14/drivers/base/dma-buf.c
---- linux-3.14.17/drivers/base/dma-buf.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/base/dma-buf.c 2014-09-11 18:05:59.522028069 +0200
+diff -Nur linux-3.14.22.orig/drivers/base/dma-buf.c linux-3.14.22/drivers/base/dma-buf.c
+--- linux-3.14.22.orig/drivers/base/dma-buf.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/base/dma-buf.c 2014-10-22 14:55:52.022220001 -0500
@@ -251,9 +251,8 @@
* @dmabuf: [in] buffer to attach device to.
* @dev: [in] device to be attached.
@@ -55710,9 +53534,9 @@ diff -Nur linux-3.14.17/drivers/base/dma-buf.c linux-imx6-3.14/drivers/base/dma-
goto out_unlock;
dmabuf->vmap_ptr = ptr;
-diff -Nur linux-3.14.17/drivers/base/dma-contiguous.c linux-imx6-3.14/drivers/base/dma-contiguous.c
---- linux-3.14.17/drivers/base/dma-contiguous.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/base/dma-contiguous.c 2014-09-11 18:05:59.522028069 +0200
+diff -Nur linux-3.14.22.orig/drivers/base/dma-contiguous.c linux-3.14.22/drivers/base/dma-contiguous.c
+--- linux-3.14.22.orig/drivers/base/dma-contiguous.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/base/dma-contiguous.c 2014-10-22 14:55:52.022220001 -0500
@@ -24,22 +24,9 @@
#include <linux/memblock.h>
@@ -56040,9 +53864,9 @@ diff -Nur linux-3.14.17/drivers/base/dma-contiguous.c linux-imx6-3.14/drivers/ba
- return true;
+ return cma_release(dev_get_cma_area(dev), pages, count);
}
-diff -Nur linux-3.14.17/drivers/base/Kconfig linux-imx6-3.14/drivers/base/Kconfig
---- linux-3.14.17/drivers/base/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/base/Kconfig 2014-09-11 18:05:59.498027972 +0200
+diff -Nur linux-3.14.22.orig/drivers/base/Kconfig linux-3.14.22/drivers/base/Kconfig
+--- linux-3.14.22.orig/drivers/base/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/base/Kconfig 2014-10-22 14:55:52.022220001 -0500
@@ -185,6 +185,14 @@
bool
default n
@@ -56075,28 +53899,9 @@ diff -Nur linux-3.14.17/drivers/base/Kconfig linux-imx6-3.14/drivers/base/Kconfi
endif
endmenu
-diff -Nur linux-3.14.17/drivers/base/platform.c linux-imx6-3.14/drivers/base/platform.c
---- linux-3.14.17/drivers/base/platform.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/base/platform.c 2014-09-11 18:05:59.526028085 +0200
-@@ -89,13 +89,8 @@
- return dev->archdata.irqs[num];
- #else
- struct resource *r;
-- if (IS_ENABLED(CONFIG_OF_IRQ) && dev->dev.of_node) {
-- int ret;
--
-- ret = of_irq_get(dev->dev.of_node, num);
-- if (ret >= 0 || ret == -EPROBE_DEFER)
-- return ret;
-- }
-+ if (IS_ENABLED(CONFIG_OF_IRQ) && dev->dev.of_node)
-+ return of_irq_get(dev->dev.of_node, num);
-
- r = platform_get_resource(dev, IORESOURCE_IRQ, num);
-
-diff -Nur linux-3.14.17/drivers/bus/arm-cci.c linux-imx6-3.14/drivers/bus/arm-cci.c
---- linux-3.14.17/drivers/bus/arm-cci.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/bus/arm-cci.c 2014-09-11 18:05:59.666028644 +0200
+diff -Nur linux-3.14.22.orig/drivers/bus/arm-cci.c linux-3.14.22/drivers/bus/arm-cci.c
+--- linux-3.14.22.orig/drivers/bus/arm-cci.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/bus/arm-cci.c 2014-10-22 14:55:52.022220001 -0500
@@ -26,6 +26,7 @@
#include <asm/cacheflush.h>
@@ -56125,9 +53930,9 @@ diff -Nur linux-3.14.17/drivers/bus/arm-cci.c linux-imx6-3.14/drivers/bus/arm-cc
np = of_find_matching_node(NULL, arm_cci_matches);
if (!np)
return -ENODEV;
-diff -Nur linux-3.14.17/drivers/char/fsl_otp.c linux-imx6-3.14/drivers/char/fsl_otp.c
---- linux-3.14.17/drivers/char/fsl_otp.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/char/fsl_otp.c 2014-09-11 18:05:59.682028708 +0200
+diff -Nur linux-3.14.22.orig/drivers/char/fsl_otp.c linux-3.14.22/drivers/char/fsl_otp.c
+--- linux-3.14.22.orig/drivers/char/fsl_otp.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/char/fsl_otp.c 2014-10-22 14:55:52.026220001 -0500
@@ -0,0 +1,299 @@
+/*
+ * Freescale On-Chip OTP driver
@@ -56428,9 +54233,9 @@ diff -Nur linux-3.14.17/drivers/char/fsl_otp.c linux-imx6-3.14/drivers/char/fsl_
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Huang Shijie <b32955@freescale.com>");
+MODULE_DESCRIPTION("Freescale i.MX OCOTP driver");
-diff -Nur linux-3.14.17/drivers/char/Kconfig linux-imx6-3.14/drivers/char/Kconfig
---- linux-3.14.17/drivers/char/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/char/Kconfig 2014-09-11 18:05:59.670028659 +0200
+diff -Nur linux-3.14.22.orig/drivers/char/Kconfig linux-3.14.22/drivers/char/Kconfig
+--- linux-3.14.22.orig/drivers/char/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/char/Kconfig 2014-10-22 14:55:52.026220001 -0500
@@ -82,6 +82,21 @@
If unsure, say N.
@@ -56453,9 +54258,9 @@ diff -Nur linux-3.14.17/drivers/char/Kconfig linux-imx6-3.14/drivers/char/Kconfi
config PRINTER
tristate "Parallel printer support"
depends on PARPORT
-diff -Nur linux-3.14.17/drivers/char/Makefile linux-imx6-3.14/drivers/char/Makefile
---- linux-3.14.17/drivers/char/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/char/Makefile 2014-09-11 18:05:59.670028659 +0200
+diff -Nur linux-3.14.22.orig/drivers/char/Makefile linux-3.14.22/drivers/char/Makefile
+--- linux-3.14.22.orig/drivers/char/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/char/Makefile 2014-10-22 14:55:52.026220001 -0500
@@ -16,6 +16,7 @@
obj-$(CONFIG_IBM_BSR) += bsr.o
obj-$(CONFIG_SGI_MBCS) += mbcs.o
@@ -56464,10 +54269,10 @@ diff -Nur linux-3.14.17/drivers/char/Makefile linux-imx6-3.14/drivers/char/Makef
obj-$(CONFIG_PRINTER) += lp.o
-diff -Nur linux-3.14.17/drivers/clk/clk.c linux-imx6-3.14/drivers/clk/clk.c
---- linux-3.14.17/drivers/clk/clk.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/clk/clk.c 2014-09-11 18:05:59.854029395 +0200
-@@ -1702,6 +1702,7 @@
+diff -Nur linux-3.14.22.orig/drivers/clk/clk.c linux-3.14.22/drivers/clk/clk.c
+--- linux-3.14.22.orig/drivers/clk/clk.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/clk/clk.c 2014-10-22 14:55:52.026220001 -0500
+@@ -1707,6 +1707,7 @@
*/
int clk_set_parent(struct clk *clk, struct clk *parent)
{
@@ -56475,7 +54280,7 @@ diff -Nur linux-3.14.17/drivers/clk/clk.c linux-imx6-3.14/drivers/clk/clk.c
int ret = 0;
int p_index = 0;
unsigned long p_rate = 0;
-@@ -1728,6 +1729,18 @@
+@@ -1733,6 +1734,18 @@
goto out;
}
@@ -56494,9 +54299,9 @@ diff -Nur linux-3.14.17/drivers/clk/clk.c linux-imx6-3.14/drivers/clk/clk.c
/* try finding the new parent index */
if (parent) {
p_index = clk_fetch_parent_index(clk, parent);
-diff -Nur linux-3.14.17/drivers/clk/clk-mux.c linux-imx6-3.14/drivers/clk/clk-mux.c
---- linux-3.14.17/drivers/clk/clk-mux.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/clk/clk-mux.c 2014-09-11 18:05:59.826029283 +0200
+diff -Nur linux-3.14.22.orig/drivers/clk/clk-mux.c linux-3.14.22/drivers/clk/clk-mux.c
+--- linux-3.14.22.orig/drivers/clk/clk-mux.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/clk/clk-mux.c 2014-10-22 14:55:52.026220001 -0500
@@ -143,7 +143,7 @@
init.ops = &clk_mux_ro_ops;
else
@@ -56506,27 +54311,9 @@ diff -Nur linux-3.14.17/drivers/clk/clk-mux.c linux-imx6-3.14/drivers/clk/clk-mu
init.parent_names = parent_names;
init.num_parents = num_parents;
-diff -Nur linux-3.14.17/drivers/cpufreq/cpufreq.c linux-imx6-3.14/drivers/cpufreq/cpufreq.c
---- linux-3.14.17/drivers/cpufreq/cpufreq.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/cpufreq/cpufreq.c 2014-09-11 18:05:59.998029971 +0200
-@@ -1089,12 +1089,10 @@
- * the creation of a brand new one. So we need to perform this update
- * by invoking update_policy_cpu().
- */
-- if (frozen && cpu != policy->cpu) {
-+ if (frozen && cpu != policy->cpu)
- update_policy_cpu(policy, cpu);
-- WARN_ON(kobject_move(&policy->kobj, &dev->kobj));
-- } else {
-+ else
- policy->cpu = cpu;
-- }
-
- policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
- cpumask_copy(policy->cpus, cpumask_of(cpu));
-diff -Nur linux-3.14.17/drivers/cpufreq/cpufreq_interactive.c linux-imx6-3.14/drivers/cpufreq/cpufreq_interactive.c
---- linux-3.14.17/drivers/cpufreq/cpufreq_interactive.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/cpufreq/cpufreq_interactive.c 2014-09-11 18:05:59.998029971 +0200
+diff -Nur linux-3.14.22.orig/drivers/cpufreq/cpufreq_interactive.c linux-3.14.22/drivers/cpufreq/cpufreq_interactive.c
+--- linux-3.14.22.orig/drivers/cpufreq/cpufreq_interactive.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/cpufreq/cpufreq_interactive.c 2014-10-22 14:55:52.026220001 -0500
@@ -0,0 +1,1349 @@
+/*
+ * drivers/cpufreq/cpufreq_interactive.c
@@ -57877,9 +55664,9 @@ diff -Nur linux-3.14.17/drivers/cpufreq/cpufreq_interactive.c linux-imx6-3.14/dr
+MODULE_DESCRIPTION("'cpufreq_interactive' - A cpufreq governor for "
+ "Latency sensitive workloads");
+MODULE_LICENSE("GPL");
-diff -Nur linux-3.14.17/drivers/cpufreq/highbank-cpufreq.c linux-imx6-3.14/drivers/cpufreq/highbank-cpufreq.c
---- linux-3.14.17/drivers/cpufreq/highbank-cpufreq.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/cpufreq/highbank-cpufreq.c 2014-09-11 18:06:00.006030002 +0200
+diff -Nur linux-3.14.22.orig/drivers/cpufreq/highbank-cpufreq.c linux-3.14.22/drivers/cpufreq/highbank-cpufreq.c
+--- linux-3.14.22.orig/drivers/cpufreq/highbank-cpufreq.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/cpufreq/highbank-cpufreq.c 2014-10-22 14:55:52.026220001 -0500
@@ -19,7 +19,7 @@
#include <linux/cpu.h>
#include <linux/err.h>
@@ -57889,9 +55676,9 @@ diff -Nur linux-3.14.17/drivers/cpufreq/highbank-cpufreq.c linux-imx6-3.14/drive
#include <linux/platform_device.h>
#define HB_CPUFREQ_CHANGE_NOTE 0x80000001
-diff -Nur linux-3.14.17/drivers/cpufreq/imx6-cpufreq.c linux-imx6-3.14/drivers/cpufreq/imx6-cpufreq.c
---- linux-3.14.17/drivers/cpufreq/imx6-cpufreq.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/cpufreq/imx6-cpufreq.c 2014-09-11 18:06:00.006030002 +0200
+diff -Nur linux-3.14.22.orig/drivers/cpufreq/imx6-cpufreq.c linux-3.14.22/drivers/cpufreq/imx6-cpufreq.c
+--- linux-3.14.22.orig/drivers/cpufreq/imx6-cpufreq.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/cpufreq/imx6-cpufreq.c 2014-10-22 14:55:52.026220001 -0500
@@ -0,0 +1,393 @@
+/*
+ * Copyright (C) 2013 Freescale Semiconductor, Inc.
@@ -58286,9 +56073,9 @@ diff -Nur linux-3.14.17/drivers/cpufreq/imx6-cpufreq.c linux-imx6-3.14/drivers/c
+MODULE_AUTHOR("Shawn Guo <shawn.guo@linaro.org>");
+MODULE_DESCRIPTION("Freescale i.MX6Q cpufreq driver");
+MODULE_LICENSE("GPL");
-diff -Nur linux-3.14.17/drivers/cpufreq/imx6q-cpufreq.c linux-imx6-3.14/drivers/cpufreq/imx6q-cpufreq.c
---- linux-3.14.17/drivers/cpufreq/imx6q-cpufreq.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/cpufreq/imx6q-cpufreq.c 1970-01-01 01:00:00.000000000 +0100
+diff -Nur linux-3.14.22.orig/drivers/cpufreq/imx6q-cpufreq.c linux-3.14.22/drivers/cpufreq/imx6q-cpufreq.c
+--- linux-3.14.22.orig/drivers/cpufreq/imx6q-cpufreq.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/cpufreq/imx6q-cpufreq.c 1969-12-31 18:00:00.000000000 -0600
@@ -1,330 +0,0 @@
-/*
- * Copyright (C) 2013 Freescale Semiconductor, Inc.
@@ -58620,9 +56407,9 @@ diff -Nur linux-3.14.17/drivers/cpufreq/imx6q-cpufreq.c linux-imx6-3.14/drivers/
-MODULE_AUTHOR("Shawn Guo <shawn.guo@linaro.org>");
-MODULE_DESCRIPTION("Freescale i.MX6Q cpufreq driver");
-MODULE_LICENSE("GPL");
-diff -Nur linux-3.14.17/drivers/cpufreq/Kconfig linux-imx6-3.14/drivers/cpufreq/Kconfig
---- linux-3.14.17/drivers/cpufreq/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/cpufreq/Kconfig 2014-09-11 18:05:59.970029858 +0200
+diff -Nur linux-3.14.22.orig/drivers/cpufreq/Kconfig linux-3.14.22/drivers/cpufreq/Kconfig
+--- linux-3.14.22.orig/drivers/cpufreq/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/cpufreq/Kconfig 2014-10-22 14:55:52.042220001 -0500
@@ -91,6 +91,15 @@
governor. If unsure have a look at the help section of the
driver. Fallback governor will be the performance governor.
@@ -58664,9 +56451,9 @@ diff -Nur linux-3.14.17/drivers/cpufreq/Kconfig linux-imx6-3.14/drivers/cpufreq/
If in doubt, say N.
config CPU_FREQ_GOV_CONSERVATIVE
-diff -Nur linux-3.14.17/drivers/cpufreq/Kconfig.arm linux-imx6-3.14/drivers/cpufreq/Kconfig.arm
---- linux-3.14.17/drivers/cpufreq/Kconfig.arm 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/cpufreq/Kconfig.arm 2014-09-11 18:05:59.970029858 +0200
+diff -Nur linux-3.14.22.orig/drivers/cpufreq/Kconfig.arm linux-3.14.22/drivers/cpufreq/Kconfig.arm
+--- linux-3.14.22.orig/drivers/cpufreq/Kconfig.arm 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/cpufreq/Kconfig.arm 2014-10-22 14:55:52.042220001 -0500
@@ -4,7 +4,8 @@
config ARM_BIG_LITTLE_CPUFREQ
@@ -58686,9 +56473,9 @@ diff -Nur linux-3.14.17/drivers/cpufreq/Kconfig.arm linux-imx6-3.14/drivers/cpuf
tristate "Freescale i.MX6 cpufreq support"
depends on ARCH_MXC
depends on REGULATOR_ANATOP
-diff -Nur linux-3.14.17/drivers/cpufreq/Makefile linux-imx6-3.14/drivers/cpufreq/Makefile
---- linux-3.14.17/drivers/cpufreq/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/cpufreq/Makefile 2014-09-11 18:05:59.970029858 +0200
+diff -Nur linux-3.14.22.orig/drivers/cpufreq/Makefile linux-3.14.22/drivers/cpufreq/Makefile
+--- linux-3.14.22.orig/drivers/cpufreq/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/cpufreq/Makefile 2014-10-22 14:55:52.042220001 -0500
@@ -8,6 +8,7 @@
obj-$(CONFIG_CPU_FREQ_GOV_POWERSAVE) += cpufreq_powersave.o
obj-$(CONFIG_CPU_FREQ_GOV_USERSPACE) += cpufreq_userspace.o
@@ -58706,9 +56493,9 @@ diff -Nur linux-3.14.17/drivers/cpufreq/Makefile linux-imx6-3.14/drivers/cpufreq
obj-$(CONFIG_ARM_INTEGRATOR) += integrator-cpufreq.o
obj-$(CONFIG_ARM_KIRKWOOD_CPUFREQ) += kirkwood-cpufreq.o
obj-$(CONFIG_ARM_OMAP2PLUS_CPUFREQ) += omap-cpufreq.o
-diff -Nur linux-3.14.17/drivers/crypto/caam/secvio.c linux-imx6-3.14/drivers/crypto/caam/secvio.c
---- linux-3.14.17/drivers/crypto/caam/secvio.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/crypto/caam/secvio.c 2014-09-11 18:06:00.054030194 +0200
+diff -Nur linux-3.14.22.orig/drivers/crypto/caam/secvio.c linux-3.14.22/drivers/crypto/caam/secvio.c
+--- linux-3.14.22.orig/drivers/crypto/caam/secvio.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/crypto/caam/secvio.c 2014-10-22 14:55:52.042220001 -0500
@@ -0,0 +1,335 @@
+
+/*
@@ -59045,9 +56832,9 @@ diff -Nur linux-3.14.17/drivers/crypto/caam/secvio.c linux-imx6-3.14/drivers/cry
+MODULE_DESCRIPTION("FSL CAAM/SNVS Security Violation Handler");
+MODULE_AUTHOR("Freescale Semiconductor - NMSG/MAD");
+#endif
-diff -Nur linux-3.14.17/drivers/crypto/caam/secvio.h linux-imx6-3.14/drivers/crypto/caam/secvio.h
---- linux-3.14.17/drivers/crypto/caam/secvio.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/crypto/caam/secvio.h 2014-09-11 18:06:00.062030226 +0200
+diff -Nur linux-3.14.22.orig/drivers/crypto/caam/secvio.h linux-3.14.22/drivers/crypto/caam/secvio.h
+--- linux-3.14.22.orig/drivers/crypto/caam/secvio.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/crypto/caam/secvio.h 2014-10-22 14:55:52.042220001 -0500
@@ -0,0 +1,64 @@
+
+/*
@@ -59113,9 +56900,9 @@ diff -Nur linux-3.14.17/drivers/crypto/caam/secvio.h linux-imx6-3.14/drivers/cry
+};
+
+#endif /* SECVIO_H */
-diff -Nur linux-3.14.17/drivers/crypto/caam/sm.h linux-imx6-3.14/drivers/crypto/caam/sm.h
---- linux-3.14.17/drivers/crypto/caam/sm.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/crypto/caam/sm.h 2014-09-11 18:06:00.066030242 +0200
+diff -Nur linux-3.14.22.orig/drivers/crypto/caam/sm.h linux-3.14.22/drivers/crypto/caam/sm.h
+--- linux-3.14.22.orig/drivers/crypto/caam/sm.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/crypto/caam/sm.h 2014-10-22 14:55:52.042220001 -0500
@@ -0,0 +1,88 @@
+
+/*
@@ -59205,9 +56992,9 @@ diff -Nur linux-3.14.17/drivers/crypto/caam/sm.h linux-imx6-3.14/drivers/crypto/
+};
+
+#endif /* SM_H */
-diff -Nur linux-3.14.17/drivers/crypto/caam/sm_store.c linux-imx6-3.14/drivers/crypto/caam/sm_store.c
---- linux-3.14.17/drivers/crypto/caam/sm_store.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/crypto/caam/sm_store.c 2014-09-11 18:06:00.066030242 +0200
+diff -Nur linux-3.14.22.orig/drivers/crypto/caam/sm_store.c linux-3.14.22/drivers/crypto/caam/sm_store.c
+--- linux-3.14.22.orig/drivers/crypto/caam/sm_store.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/crypto/caam/sm_store.c 2014-10-22 14:55:52.046220001 -0500
@@ -0,0 +1,896 @@
+
+/*
@@ -60105,9 +57892,9 @@ diff -Nur linux-3.14.17/drivers/crypto/caam/sm_store.c linux-imx6-3.14/drivers/c
+MODULE_DESCRIPTION("FSL CAAM Secure Memory / Keystore");
+MODULE_AUTHOR("Freescale Semiconductor - NMSG/MAD");
+#endif
-diff -Nur linux-3.14.17/drivers/crypto/caam/sm_test.c linux-imx6-3.14/drivers/crypto/caam/sm_test.c
---- linux-3.14.17/drivers/crypto/caam/sm_test.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/crypto/caam/sm_test.c 2014-09-11 18:06:00.066030242 +0200
+diff -Nur linux-3.14.22.orig/drivers/crypto/caam/sm_test.c linux-3.14.22/drivers/crypto/caam/sm_test.c
+--- linux-3.14.22.orig/drivers/crypto/caam/sm_test.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/crypto/caam/sm_test.c 2014-10-22 14:55:52.046220001 -0500
@@ -0,0 +1,844 @@
+/*
+ * Secure Memory / Keystore Exemplification Module
@@ -60953,9 +58740,9 @@ diff -Nur linux-3.14.17/drivers/crypto/caam/sm_test.c linux-imx6-3.14/drivers/cr
+MODULE_DESCRIPTION("FSL CAAM Keystore Usage Example");
+MODULE_AUTHOR("Freescale Semiconductor - NMSG/MAD");
+#endif
-diff -Nur linux-3.14.17/drivers/crypto/caam/snvsregs.h linux-imx6-3.14/drivers/crypto/caam/snvsregs.h
---- linux-3.14.17/drivers/crypto/caam/snvsregs.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/crypto/caam/snvsregs.h 2014-09-11 18:06:00.066030242 +0200
+diff -Nur linux-3.14.22.orig/drivers/crypto/caam/snvsregs.h linux-3.14.22/drivers/crypto/caam/snvsregs.h
+--- linux-3.14.22.orig/drivers/crypto/caam/snvsregs.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/crypto/caam/snvsregs.h 2014-10-22 14:55:52.046220001 -0500
@@ -0,0 +1,237 @@
+/*
+ * SNVS hardware register-level view
@@ -61194,9 +58981,9 @@ diff -Nur linux-3.14.17/drivers/crypto/caam/snvsregs.h linux-imx6-3.14/drivers/c
+};
+
+#endif /* SNVSREGS_H */
-diff -Nur linux-3.14.17/drivers/dma/imx-sdma.c linux-imx6-3.14/drivers/dma/imx-sdma.c
---- linux-3.14.17/drivers/dma/imx-sdma.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/dma/imx-sdma.c 2014-09-11 18:06:00.162030626 +0200
+diff -Nur linux-3.14.22.orig/drivers/dma/imx-sdma.c linux-3.14.22/drivers/dma/imx-sdma.c
+--- linux-3.14.22.orig/drivers/dma/imx-sdma.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/dma/imx-sdma.c 2014-10-22 14:55:52.046220001 -0500
@@ -29,6 +29,7 @@
#include <linux/semaphore.h>
#include <linux/spinlock.h>
@@ -61793,9 +59580,9 @@ diff -Nur linux-3.14.17/drivers/dma/imx-sdma.c linux-imx6-3.14/drivers/dma/imx-s
ret = sdma_init(sdma);
if (ret)
goto err_init;
-diff -Nur linux-3.14.17/drivers/dma/Kconfig linux-imx6-3.14/drivers/dma/Kconfig
---- linux-3.14.17/drivers/dma/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/dma/Kconfig 2014-09-11 18:06:00.122030466 +0200
+diff -Nur linux-3.14.22.orig/drivers/dma/Kconfig linux-3.14.22/drivers/dma/Kconfig
+--- linux-3.14.22.orig/drivers/dma/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/dma/Kconfig 2014-10-22 14:55:52.046220001 -0500
@@ -137,6 +137,19 @@
To avoid bloating the irq_desc[] array we allocate a sufficient
number of IRQ slots and map them dynamically to specific sources.
@@ -61816,9 +59603,9 @@ diff -Nur linux-3.14.17/drivers/dma/Kconfig linux-imx6-3.14/drivers/dma/Kconfig
config TXX9_DMAC
tristate "Toshiba TXx9 SoC DMA support"
depends on MACH_TX49XX || MACH_TX39XX
-diff -Nur linux-3.14.17/drivers/dma/Makefile linux-imx6-3.14/drivers/dma/Makefile
---- linux-3.14.17/drivers/dma/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/dma/Makefile 2014-09-11 18:06:00.122030466 +0200
+diff -Nur linux-3.14.22.orig/drivers/dma/Makefile linux-3.14.22/drivers/dma/Makefile
+--- linux-3.14.22.orig/drivers/dma/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/dma/Makefile 2014-10-22 14:55:52.046220001 -0500
@@ -18,6 +18,7 @@
obj-$(CONFIG_DW_DMAC_CORE) += dw/
obj-$(CONFIG_AT_HDMAC) += at_hdmac.o
@@ -61827,15 +59614,15 @@ diff -Nur linux-3.14.17/drivers/dma/Makefile linux-imx6-3.14/drivers/dma/Makefil
obj-$(CONFIG_TXX9_DMAC) += txx9dmac.o
obj-$(CONFIG_SH_DMAE_BASE) += sh/
obj-$(CONFIG_COH901318) += coh901318.o coh901318_lli.o
-diff -Nur linux-3.14.17/drivers/dma/pxp/Makefile linux-imx6-3.14/drivers/dma/pxp/Makefile
---- linux-3.14.17/drivers/dma/pxp/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/dma/pxp/Makefile 2014-09-11 18:06:00.198030770 +0200
+diff -Nur linux-3.14.22.orig/drivers/dma/pxp/Makefile linux-3.14.22/drivers/dma/pxp/Makefile
+--- linux-3.14.22.orig/drivers/dma/pxp/Makefile 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/dma/pxp/Makefile 2014-10-22 14:55:52.046220001 -0500
@@ -0,0 +1,2 @@
+obj-$(CONFIG_MXC_PXP_V2) += pxp_dma_v2.o
+obj-$(CONFIG_MXC_PXP_CLIENT_DEVICE) += pxp_device.o
-diff -Nur linux-3.14.17/drivers/dma/pxp/pxp_device.c linux-imx6-3.14/drivers/dma/pxp/pxp_device.c
---- linux-3.14.17/drivers/dma/pxp/pxp_device.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/dma/pxp/pxp_device.c 2014-09-11 18:06:00.198030770 +0200
+diff -Nur linux-3.14.22.orig/drivers/dma/pxp/pxp_device.c linux-3.14.22/drivers/dma/pxp/pxp_device.c
+--- linux-3.14.22.orig/drivers/dma/pxp/pxp_device.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/dma/pxp/pxp_device.c 2014-10-22 14:55:52.046220001 -0500
@@ -0,0 +1,765 @@
+/*
+ * Copyright (C) 2010-2014 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -62602,9 +60389,9 @@ diff -Nur linux-3.14.17/drivers/dma/pxp/pxp_device.c linux-imx6-3.14/drivers/dma
+ pxp_ht_destroy(&bufhash);
+ misc_deregister(&pxp_device_miscdev);
+}
-diff -Nur linux-3.14.17/drivers/dma/pxp/pxp_dma_v2.c linux-imx6-3.14/drivers/dma/pxp/pxp_dma_v2.c
---- linux-3.14.17/drivers/dma/pxp/pxp_dma_v2.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/dma/pxp/pxp_dma_v2.c 2014-09-11 18:06:00.198030770 +0200
+diff -Nur linux-3.14.22.orig/drivers/dma/pxp/pxp_dma_v2.c linux-3.14.22/drivers/dma/pxp/pxp_dma_v2.c
+--- linux-3.14.22.orig/drivers/dma/pxp/pxp_dma_v2.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/dma/pxp/pxp_dma_v2.c 2014-10-22 14:55:52.046220001 -0500
@@ -0,0 +1,1854 @@
+/*
+ * Copyright (C) 2010-2013 Freescale Semiconductor, Inc.
@@ -64460,9 +62247,9 @@ diff -Nur linux-3.14.17/drivers/dma/pxp/pxp_dma_v2.c linux-imx6-3.14/drivers/dma
+MODULE_DESCRIPTION("i.MX PxP driver");
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_LICENSE("GPL");
-diff -Nur linux-3.14.17/drivers/dma/pxp/regs-pxp_v2.h linux-imx6-3.14/drivers/dma/pxp/regs-pxp_v2.h
---- linux-3.14.17/drivers/dma/pxp/regs-pxp_v2.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/dma/pxp/regs-pxp_v2.h 2014-09-11 18:06:00.198030770 +0200
+diff -Nur linux-3.14.22.orig/drivers/dma/pxp/regs-pxp_v2.h linux-3.14.22/drivers/dma/pxp/regs-pxp_v2.h
+--- linux-3.14.22.orig/drivers/dma/pxp/regs-pxp_v2.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/dma/pxp/regs-pxp_v2.h 2014-10-22 14:55:52.050220001 -0500
@@ -0,0 +1,1152 @@
+/*
+ * Freescale PXP Register Definitions
@@ -65616,9 +63403,9 @@ diff -Nur linux-3.14.17/drivers/dma/pxp/regs-pxp_v2.h linux-imx6-3.14/drivers/dm
+#define BF_PXP_VERSION_STEP(v) \
+ (((v) << 0) & BM_PXP_VERSION_STEP)
+#endif /* __ARCH_ARM___PXP_H */
-diff -Nur linux-3.14.17/drivers/gpio/gpio-pca953x.c linux-imx6-3.14/drivers/gpio/gpio-pca953x.c
---- linux-3.14.17/drivers/gpio/gpio-pca953x.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/gpio/gpio-pca953x.c 2014-09-11 18:06:00.354031392 +0200
+diff -Nur linux-3.14.22.orig/drivers/gpio/gpio-pca953x.c linux-3.14.22/drivers/gpio/gpio-pca953x.c
+--- linux-3.14.22.orig/drivers/gpio/gpio-pca953x.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/gpio/gpio-pca953x.c 2014-10-22 14:55:52.050220001 -0500
@@ -19,6 +19,7 @@
#include <linux/irqdomain.h>
#include <linux/i2c.h>
@@ -65638,9 +63425,9 @@ diff -Nur linux-3.14.17/drivers/gpio/gpio-pca953x.c linux-imx6-3.14/drivers/gpio
/* initialize cached registers from their original values.
* we can't share this chip with another i2c master.
*/
-diff -Nur linux-3.14.17/drivers/gpu/drm/drm_crtc_helper.c linux-imx6-3.14/drivers/gpu/drm/drm_crtc_helper.c
---- linux-3.14.17/drivers/gpu/drm/drm_crtc_helper.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/gpu/drm/drm_crtc_helper.c 2014-09-11 18:06:00.478031888 +0200
+diff -Nur linux-3.14.22.orig/drivers/gpu/drm/drm_crtc_helper.c linux-3.14.22/drivers/gpu/drm/drm_crtc_helper.c
+--- linux-3.14.22.orig/drivers/gpu/drm/drm_crtc_helper.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/gpu/drm/drm_crtc_helper.c 2014-10-22 14:55:52.050220001 -0500
@@ -564,7 +564,7 @@
* Caller must hold mode config lock.
*
@@ -65650,9 +63437,9 @@ diff -Nur linux-3.14.17/drivers/gpu/drm/drm_crtc_helper.c linux-imx6-3.14/driver
* enable it. This is the main helper functions for drivers that implement
* kernel mode setting with the crtc helper functions and the assorted
* ->prepare(), ->modeset() and ->commit() helper callbacks.
-diff -Nur linux-3.14.17/drivers/gpu/drm/drm_prime.c linux-imx6-3.14/drivers/gpu/drm/drm_prime.c
---- linux-3.14.17/drivers/gpu/drm/drm_prime.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/gpu/drm/drm_prime.c 2014-09-11 18:06:00.494031953 +0200
+diff -Nur linux-3.14.22.orig/drivers/gpu/drm/drm_prime.c linux-3.14.22/drivers/gpu/drm/drm_prime.c
+--- linux-3.14.22.orig/drivers/gpu/drm/drm_prime.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/gpu/drm/drm_prime.c 2014-10-22 14:55:52.050220001 -0500
@@ -471,7 +471,7 @@
get_dma_buf(dma_buf);
@@ -65662,9 +63449,9 @@ diff -Nur linux-3.14.17/drivers/gpu/drm/drm_prime.c linux-imx6-3.14/drivers/gpu/
ret = PTR_ERR(sgt);
goto fail_detach;
}
-diff -Nur linux-3.14.17/drivers/gpu/drm/exynos/exynos_drm_dmabuf.c linux-imx6-3.14/drivers/gpu/drm/exynos/exynos_drm_dmabuf.c
---- linux-3.14.17/drivers/gpu/drm/exynos/exynos_drm_dmabuf.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/gpu/drm/exynos/exynos_drm_dmabuf.c 2014-09-11 18:06:00.498031968 +0200
+diff -Nur linux-3.14.22.orig/drivers/gpu/drm/exynos/exynos_drm_dmabuf.c linux-3.14.22/drivers/gpu/drm/exynos/exynos_drm_dmabuf.c
+--- linux-3.14.22.orig/drivers/gpu/drm/exynos/exynos_drm_dmabuf.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/gpu/drm/exynos/exynos_drm_dmabuf.c 2014-10-22 14:55:52.050220001 -0500
@@ -224,7 +224,7 @@
get_dma_buf(dma_buf);
@@ -65674,9 +63461,9 @@ diff -Nur linux-3.14.17/drivers/gpu/drm/exynos/exynos_drm_dmabuf.c linux-imx6-3.
ret = PTR_ERR(sgt);
goto err_buf_detach;
}
-diff -Nur linux-3.14.17/drivers/gpu/drm/Kconfig linux-imx6-3.14/drivers/gpu/drm/Kconfig
---- linux-3.14.17/drivers/gpu/drm/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/gpu/drm/Kconfig 2014-09-11 18:06:00.394031553 +0200
+diff -Nur linux-3.14.22.orig/drivers/gpu/drm/Kconfig linux-3.14.22/drivers/gpu/drm/Kconfig
+--- linux-3.14.22.orig/drivers/gpu/drm/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/gpu/drm/Kconfig 2014-10-22 14:55:52.050220001 -0500
@@ -166,6 +166,13 @@
Choose this option if you have a Savage3D/4/SuperSavage/Pro/Twister
chipset. If M is selected the module will be called savage.
@@ -65691,9 +63478,9 @@ diff -Nur linux-3.14.17/drivers/gpu/drm/Kconfig linux-imx6-3.14/drivers/gpu/drm/
source "drivers/gpu/drm/exynos/Kconfig"
source "drivers/gpu/drm/vmwgfx/Kconfig"
-diff -Nur linux-3.14.17/drivers/gpu/drm/Makefile linux-imx6-3.14/drivers/gpu/drm/Makefile
---- linux-3.14.17/drivers/gpu/drm/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/gpu/drm/Makefile 2014-09-11 18:06:00.394031553 +0200
+diff -Nur linux-3.14.22.orig/drivers/gpu/drm/Makefile linux-3.14.22/drivers/gpu/drm/Makefile
+--- linux-3.14.22.orig/drivers/gpu/drm/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/gpu/drm/Makefile 2014-10-22 14:55:52.050220001 -0500
@@ -1,3 +1,24 @@
+##############################################################################
+#
@@ -65727,61 +63514,9 @@ diff -Nur linux-3.14.17/drivers/gpu/drm/Makefile linux-imx6-3.14/drivers/gpu/drm
obj-$(CONFIG_DRM_TDFX) += tdfx/
obj-$(CONFIG_DRM_R128) += r128/
obj-$(CONFIG_DRM_RADEON)+= radeon/
-diff -Nur linux-3.14.17/drivers/gpu/drm/radeon/cik.c linux-imx6-3.14/drivers/gpu/drm/radeon/cik.c
---- linux-3.14.17/drivers/gpu/drm/radeon/cik.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/gpu/drm/radeon/cik.c 2014-09-11 18:06:00.878033486 +0200
-@@ -2219,7 +2219,6 @@
- gb_tile_moden = 0;
- break;
- }
-- rdev->config.cik.macrotile_mode_array[reg_offset] = gb_tile_moden;
- WREG32(GB_MACROTILE_MODE0 + (reg_offset * 4), gb_tile_moden);
- }
- } else if (num_pipe_configs == 8) {
-@@ -7271,7 +7270,6 @@
- tmp = RREG32(IH_RB_CNTL);
- tmp |= IH_WPTR_OVERFLOW_CLEAR;
- WREG32(IH_RB_CNTL, tmp);
-- wptr &= ~RB_OVERFLOW;
- }
- return (wptr & rdev->ih.ptr_mask);
- }
-diff -Nur linux-3.14.17/drivers/gpu/drm/radeon/evergreen.c linux-imx6-3.14/drivers/gpu/drm/radeon/evergreen.c
---- linux-3.14.17/drivers/gpu/drm/radeon/evergreen.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/gpu/drm/radeon/evergreen.c 2014-09-11 18:06:00.882033502 +0200
-@@ -4763,7 +4763,6 @@
- tmp = RREG32(IH_RB_CNTL);
- tmp |= IH_WPTR_OVERFLOW_CLEAR;
- WREG32(IH_RB_CNTL, tmp);
-- wptr &= ~RB_OVERFLOW;
- }
- return (wptr & rdev->ih.ptr_mask);
- }
-diff -Nur linux-3.14.17/drivers/gpu/drm/radeon/r600.c linux-imx6-3.14/drivers/gpu/drm/radeon/r600.c
---- linux-3.14.17/drivers/gpu/drm/radeon/r600.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/gpu/drm/radeon/r600.c 2014-09-11 18:06:00.890033535 +0200
-@@ -3795,7 +3795,6 @@
- tmp = RREG32(IH_RB_CNTL);
- tmp |= IH_WPTR_OVERFLOW_CLEAR;
- WREG32(IH_RB_CNTL, tmp);
-- wptr &= ~RB_OVERFLOW;
- }
- return (wptr & rdev->ih.ptr_mask);
- }
-diff -Nur linux-3.14.17/drivers/gpu/drm/radeon/si.c linux-imx6-3.14/drivers/gpu/drm/radeon/si.c
---- linux-3.14.17/drivers/gpu/drm/radeon/si.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/gpu/drm/radeon/si.c 2014-09-11 18:06:00.910033615 +0200
-@@ -6098,7 +6098,6 @@
- tmp = RREG32(IH_RB_CNTL);
- tmp |= IH_WPTR_OVERFLOW_CLEAR;
- WREG32(IH_RB_CNTL, tmp);
-- wptr &= ~RB_OVERFLOW;
- }
- return (wptr & rdev->ih.ptr_mask);
- }
-diff -Nur linux-3.14.17/drivers/gpu/drm/vivante/Makefile linux-imx6-3.14/drivers/gpu/drm/vivante/Makefile
---- linux-3.14.17/drivers/gpu/drm/vivante/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/gpu/drm/vivante/Makefile 2014-09-11 18:06:00.966033837 +0200
+diff -Nur linux-3.14.22.orig/drivers/gpu/drm/vivante/Makefile linux-3.14.22/drivers/gpu/drm/vivante/Makefile
+--- linux-3.14.22.orig/drivers/gpu/drm/vivante/Makefile 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/gpu/drm/vivante/Makefile 2014-10-22 14:55:52.050220001 -0500
@@ -0,0 +1,29 @@
+##############################################################################
+#
@@ -65812,9 +63547,9 @@ diff -Nur linux-3.14.17/drivers/gpu/drm/vivante/Makefile linux-imx6-3.14/drivers
+vivante-y := vivante_drv.o
+
+obj-$(CONFIG_DRM_VIVANTE) += vivante.o
-diff -Nur linux-3.14.17/drivers/gpu/drm/vivante/vivante_drv.c linux-imx6-3.14/drivers/gpu/drm/vivante/vivante_drv.c
---- linux-3.14.17/drivers/gpu/drm/vivante/vivante_drv.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/gpu/drm/vivante/vivante_drv.c 2014-09-11 18:06:00.966033837 +0200
+diff -Nur linux-3.14.22.orig/drivers/gpu/drm/vivante/vivante_drv.c linux-3.14.22/drivers/gpu/drm/vivante/vivante_drv.c
+--- linux-3.14.22.orig/drivers/gpu/drm/vivante/vivante_drv.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/gpu/drm/vivante/vivante_drv.c 2014-10-22 14:55:52.050220001 -0500
@@ -0,0 +1,108 @@
+/****************************************************************************
+*
@@ -65924,9 +63659,9 @@ diff -Nur linux-3.14.17/drivers/gpu/drm/vivante/vivante_drv.c linux-imx6-3.14/dr
+MODULE_AUTHOR(DRIVER_AUTHOR);
+MODULE_DESCRIPTION(DRIVER_DESC);
+MODULE_LICENSE("GPL and additional rights");
-diff -Nur linux-3.14.17/drivers/gpu/drm/vivante/vivante_drv.h linux-imx6-3.14/drivers/gpu/drm/vivante/vivante_drv.h
---- linux-3.14.17/drivers/gpu/drm/vivante/vivante_drv.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/gpu/drm/vivante/vivante_drv.h 2014-09-11 18:06:00.966033837 +0200
+diff -Nur linux-3.14.22.orig/drivers/gpu/drm/vivante/vivante_drv.h linux-3.14.22/drivers/gpu/drm/vivante/vivante_drv.h
+--- linux-3.14.22.orig/drivers/gpu/drm/vivante/vivante_drv.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/gpu/drm/vivante/vivante_drv.h 2014-10-22 14:55:52.050220001 -0500
@@ -0,0 +1,66 @@
+/****************************************************************************
+*
@@ -65994,9 +63729,9 @@ diff -Nur linux-3.14.17/drivers/gpu/drm/vivante/vivante_drv.h linux-imx6-3.14/dr
+#define DRIVER_PATCHLEVEL 0
+
+#endif
-diff -Nur linux-3.14.17/drivers/hwmon/Kconfig linux-imx6-3.14/drivers/hwmon/Kconfig
---- linux-3.14.17/drivers/hwmon/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/hwmon/Kconfig 2014-09-11 18:06:01.102034382 +0200
+diff -Nur linux-3.14.22.orig/drivers/hwmon/Kconfig linux-3.14.22/drivers/hwmon/Kconfig
+--- linux-3.14.22.orig/drivers/hwmon/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/hwmon/Kconfig 2014-10-22 14:55:52.050220001 -0500
@@ -1584,4 +1584,19 @@
endif # ACPI
@@ -66017,9 +63752,9 @@ diff -Nur linux-3.14.17/drivers/hwmon/Kconfig linux-imx6-3.14/drivers/hwmon/Kcon
+ default y
+
endif # HWMON
-diff -Nur linux-3.14.17/drivers/hwmon/mag3110.c linux-imx6-3.14/drivers/hwmon/mag3110.c
---- linux-3.14.17/drivers/hwmon/mag3110.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/hwmon/mag3110.c 2014-09-11 18:06:01.178034686 +0200
+diff -Nur linux-3.14.22.orig/drivers/hwmon/mag3110.c linux-3.14.22/drivers/hwmon/mag3110.c
+--- linux-3.14.22.orig/drivers/hwmon/mag3110.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/hwmon/mag3110.c 2014-10-22 14:55:52.054220001 -0500
@@ -0,0 +1,611 @@
+/*
+ *
@@ -66632,9 +64367,9 @@ diff -Nur linux-3.14.17/drivers/hwmon/mag3110.c linux-imx6-3.14/drivers/hwmon/ma
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("Freescale mag3110 3-axis magnetometer driver");
+MODULE_LICENSE("GPL");
-diff -Nur linux-3.14.17/drivers/hwmon/Makefile linux-imx6-3.14/drivers/hwmon/Makefile
---- linux-3.14.17/drivers/hwmon/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/hwmon/Makefile 2014-09-11 18:06:01.102034382 +0200
+diff -Nur linux-3.14.22.orig/drivers/hwmon/Makefile linux-3.14.22/drivers/hwmon/Makefile
+--- linux-3.14.22.orig/drivers/hwmon/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/hwmon/Makefile 2014-10-22 14:55:52.054220001 -0500
@@ -142,6 +142,8 @@
obj-$(CONFIG_SENSORS_W83L786NG) += w83l786ng.o
obj-$(CONFIG_SENSORS_WM831X) += wm831x-hwmon.o
@@ -66644,9 +64379,9 @@ diff -Nur linux-3.14.17/drivers/hwmon/Makefile linux-imx6-3.14/drivers/hwmon/Mak
obj-$(CONFIG_PMBUS) += pmbus/
-diff -Nur linux-3.14.17/drivers/hwmon/mxc_mma8451.c linux-imx6-3.14/drivers/hwmon/mxc_mma8451.c
---- linux-3.14.17/drivers/hwmon/mxc_mma8451.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/hwmon/mxc_mma8451.c 2014-09-11 18:06:01.178034686 +0200
+diff -Nur linux-3.14.22.orig/drivers/hwmon/mxc_mma8451.c linux-3.14.22/drivers/hwmon/mxc_mma8451.c
+--- linux-3.14.22.orig/drivers/hwmon/mxc_mma8451.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/hwmon/mxc_mma8451.c 2014-10-22 14:55:52.054220001 -0500
@@ -0,0 +1,598 @@
+/*
+ * mma8451.c - Linux kernel modules for 3-Axis Orientation/Motion
@@ -67246,30 +64981,9 @@ diff -Nur linux-3.14.17/drivers/hwmon/mxc_mma8451.c linux-imx6-3.14/drivers/hwmo
+
+module_init(mma8451_init);
+module_exit(mma8451_exit);
-diff -Nur linux-3.14.17/drivers/hwmon/smsc47m192.c linux-imx6-3.14/drivers/hwmon/smsc47m192.c
---- linux-3.14.17/drivers/hwmon/smsc47m192.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/hwmon/smsc47m192.c 2014-09-11 18:06:01.198034765 +0200
-@@ -86,7 +86,7 @@
- */
- static inline s8 TEMP_TO_REG(int val)
- {
-- return SCALE(clamp_val(val, -128000, 127000), 1, 1000);
-+ return clamp_val(SCALE(val, 1, 1000), -128000, 127000);
- }
-
- static inline int TEMP_FROM_REG(s8 val)
-@@ -384,8 +384,6 @@
- err = kstrtoul(buf, 10, &val);
- if (err)
- return err;
-- if (val > 255)
-- return -EINVAL;
-
- data->vrm = val;
- return count;
-diff -Nur linux-3.14.17/drivers/i2c/busses/i2c-imx.c linux-imx6-3.14/drivers/i2c/busses/i2c-imx.c
---- linux-3.14.17/drivers/i2c/busses/i2c-imx.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/i2c/busses/i2c-imx.c 2014-09-11 18:06:01.214034829 +0200
+diff -Nur linux-3.14.22.orig/drivers/i2c/busses/i2c-imx.c linux-3.14.22/drivers/i2c/busses/i2c-imx.c
+--- linux-3.14.22.orig/drivers/i2c/busses/i2c-imx.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/i2c/busses/i2c-imx.c 2014-10-22 14:55:52.054220001 -0500
@@ -184,6 +184,9 @@
int stopped;
unsigned int ifdr; /* IMX_I2C_IFDR */
@@ -67411,90 +65125,9 @@ diff -Nur linux-3.14.17/drivers/i2c/busses/i2c-imx.c linux-imx6-3.14/drivers/i2c
/* Set up chip registers to defaults */
imx_i2c_write_reg(i2c_imx->hwdata->i2cr_ien_opcode ^ I2CR_IEN,
-diff -Nur linux-3.14.17/drivers/iio/accel/bma180.c linux-imx6-3.14/drivers/iio/accel/bma180.c
---- linux-3.14.17/drivers/iio/accel/bma180.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/iio/accel/bma180.c 2014-09-11 18:06:01.246034957 +0200
-@@ -68,13 +68,13 @@
- /* Defaults values */
- #define BMA180_DEF_PMODE 0
- #define BMA180_DEF_BW 20
--#define BMA180_DEF_SCALE 2452
-+#define BMA180_DEF_SCALE 250
-
- /* Available values for sysfs */
- #define BMA180_FLP_FREQ_AVAILABLE \
- "10 20 40 75 150 300"
- #define BMA180_SCALE_AVAILABLE \
-- "0.001275 0.001863 0.002452 0.003727 0.004903 0.009709 0.019417"
-+ "0.000130 0.000190 0.000250 0.000380 0.000500 0.000990 0.001980"
-
- struct bma180_data {
- struct i2c_client *client;
-@@ -94,7 +94,7 @@
- };
-
- static int bw_table[] = { 10, 20, 40, 75, 150, 300 }; /* Hz */
--static int scale_table[] = { 1275, 1863, 2452, 3727, 4903, 9709, 19417 };
-+static int scale_table[] = { 130, 190, 250, 380, 500, 990, 1980 };
-
- static int bma180_get_acc_reg(struct bma180_data *data, enum bma180_axis axis)
- {
-@@ -376,8 +376,6 @@
- mutex_unlock(&data->mutex);
- return ret;
- case IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY:
-- if (val2)
-- return -EINVAL;
- mutex_lock(&data->mutex);
- ret = bma180_set_bw(data, val);
- mutex_unlock(&data->mutex);
-diff -Nur linux-3.14.17/drivers/iio/industrialio-buffer.c linux-imx6-3.14/drivers/iio/industrialio-buffer.c
---- linux-3.14.17/drivers/iio/industrialio-buffer.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/iio/industrialio-buffer.c 2014-09-11 18:06:01.286035116 +0200
-@@ -953,7 +953,7 @@
-
- /* Now we have the two masks, work from least sig and build up sizes */
- for_each_set_bit(out_ind,
-- buffer->scan_mask,
-+ indio_dev->active_scan_mask,
- indio_dev->masklength) {
- in_ind = find_next_bit(indio_dev->active_scan_mask,
- indio_dev->masklength,
-diff -Nur linux-3.14.17/drivers/input/input.c linux-imx6-3.14/drivers/input/input.c
---- linux-3.14.17/drivers/input/input.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/input/input.c 2014-09-11 18:06:01.434035708 +0200
-@@ -257,10 +257,9 @@
- }
-
- static int input_get_disposition(struct input_dev *dev,
-- unsigned int type, unsigned int code, int *pval)
-+ unsigned int type, unsigned int code, int value)
- {
- int disposition = INPUT_IGNORE_EVENT;
-- int value = *pval;
-
- switch (type) {
-
-@@ -358,7 +357,6 @@
- break;
- }
-
-- *pval = value;
- return disposition;
- }
-
-@@ -367,7 +365,7 @@
- {
- int disposition;
-
-- disposition = input_get_disposition(dev, type, code, &value);
-+ disposition = input_get_disposition(dev, type, code, value);
-
- if ((disposition & INPUT_PASS_TO_DEVICE) && dev->event)
- dev->event(dev, type, code, value);
-diff -Nur linux-3.14.17/drivers/input/keyboard/gpio_keys.c linux-imx6-3.14/drivers/input/keyboard/gpio_keys.c
---- linux-3.14.17/drivers/input/keyboard/gpio_keys.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/input/keyboard/gpio_keys.c 2014-09-11 18:06:01.486035915 +0200
+diff -Nur linux-3.14.22.orig/drivers/input/keyboard/gpio_keys.c linux-3.14.22/drivers/input/keyboard/gpio_keys.c
+--- linux-3.14.22.orig/drivers/input/keyboard/gpio_keys.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/input/keyboard/gpio_keys.c 2014-10-22 14:55:52.054220001 -0500
@@ -3,6 +3,7 @@
*
* Copyright 2005 Phil Blundell
@@ -67512,9 +65145,9 @@ diff -Nur linux-3.14.17/drivers/input/keyboard/gpio_keys.c linux-imx6-3.14/drive
} else {
if (!button->irq) {
-diff -Nur linux-3.14.17/drivers/input/keyboard/imx_keypad.c linux-imx6-3.14/drivers/input/keyboard/imx_keypad.c
---- linux-3.14.17/drivers/input/keyboard/imx_keypad.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/input/keyboard/imx_keypad.c 2014-09-11 18:06:01.486035915 +0200
+diff -Nur linux-3.14.22.orig/drivers/input/keyboard/imx_keypad.c linux-3.14.22/drivers/input/keyboard/imx_keypad.c
+--- linux-3.14.22.orig/drivers/input/keyboard/imx_keypad.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/input/keyboard/imx_keypad.c 2014-10-22 14:55:52.054220001 -0500
@@ -1,6 +1,7 @@
/*
* Driver for the IMX keypad port.
@@ -67541,9 +65174,9 @@ diff -Nur linux-3.14.17/drivers/input/keyboard/imx_keypad.c linux-imx6-3.14/driv
mutex_lock(&input_dev->mutex);
-diff -Nur linux-3.14.17/drivers/input/misc/mma8450.c linux-imx6-3.14/drivers/input/misc/mma8450.c
---- linux-3.14.17/drivers/input/misc/mma8450.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/input/misc/mma8450.c 2014-09-11 18:06:01.498035963 +0200
+diff -Nur linux-3.14.22.orig/drivers/input/misc/mma8450.c linux-3.14.22/drivers/input/misc/mma8450.c
+--- linux-3.14.22.orig/drivers/input/misc/mma8450.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/input/misc/mma8450.c 2014-10-22 14:55:52.054220001 -0500
@@ -1,7 +1,7 @@
/*
* Driver for Freescale's 3-Axis Accelerometer MMA8450
@@ -67814,31 +65447,9 @@ diff -Nur linux-3.14.17/drivers/input/misc/mma8450.c linux-imx6-3.14/drivers/inp
input_unregister_polled_device(idev);
input_free_polled_device(idev);
kfree(m);
-diff -Nur linux-3.14.17/drivers/input/mouse/synaptics.c linux-imx6-3.14/drivers/input/mouse/synaptics.c
---- linux-3.14.17/drivers/input/mouse/synaptics.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/input/mouse/synaptics.c 2014-09-11 18:06:01.526036075 +0200
-@@ -132,8 +132,7 @@
- 1232, 5710, 1156, 4696
- },
- {
-- (const char * const []){"LEN0034", "LEN0036", "LEN2002",
-- "LEN2004", NULL},
-+ (const char * const []){"LEN0034", "LEN0036", "LEN2004", NULL},
- 1024, 5112, 2024, 4832
- },
- {
-@@ -169,7 +168,7 @@
- "LEN0049",
- "LEN2000",
- "LEN2001", /* Edge E431 */
-- "LEN2002", /* Edge E531 */
-+ "LEN2002",
- "LEN2003",
- "LEN2004", /* L440 */
- "LEN2005",
-diff -Nur linux-3.14.17/drivers/input/sparse-keymap.c linux-imx6-3.14/drivers/input/sparse-keymap.c
---- linux-3.14.17/drivers/input/sparse-keymap.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/input/sparse-keymap.c 2014-09-11 18:06:01.554036186 +0200
+diff -Nur linux-3.14.22.orig/drivers/input/sparse-keymap.c linux-3.14.22/drivers/input/sparse-keymap.c
+--- linux-3.14.22.orig/drivers/input/sparse-keymap.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/input/sparse-keymap.c 2014-10-22 14:55:52.090220001 -0500
@@ -236,7 +236,7 @@
* in an input device that was set up by sparse_keymap_setup().
* NOTE: It is safe to cal this function while input device is
@@ -67848,9 +65459,9 @@ diff -Nur linux-3.14.17/drivers/input/sparse-keymap.c linux-imx6-3.14/drivers/in
* before freeing the keymap).
*/
void sparse_keymap_free(struct input_dev *dev)
-diff -Nur linux-3.14.17/drivers/Kconfig linux-imx6-3.14/drivers/Kconfig
---- linux-3.14.17/drivers/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/Kconfig 2014-09-11 18:05:59.194026757 +0200
+diff -Nur linux-3.14.22.orig/drivers/Kconfig linux-3.14.22/drivers/Kconfig
+--- linux-3.14.22.orig/drivers/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/Kconfig 2014-10-22 14:55:52.094220001 -0500
@@ -96,6 +96,8 @@
source "drivers/memstick/Kconfig"
@@ -67860,9 +65471,9 @@ diff -Nur linux-3.14.17/drivers/Kconfig linux-imx6-3.14/drivers/Kconfig
source "drivers/leds/Kconfig"
source "drivers/accessibility/Kconfig"
-diff -Nur linux-3.14.17/drivers/leds/leds-gpio.c linux-imx6-3.14/drivers/leds/leds-gpio.c
---- linux-3.14.17/drivers/leds/leds-gpio.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/leds/leds-gpio.c 2014-09-11 18:06:01.842037338 +0200
+diff -Nur linux-3.14.22.orig/drivers/leds/leds-gpio.c linux-3.14.22/drivers/leds/leds-gpio.c
+--- linux-3.14.22.orig/drivers/leds/leds-gpio.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/leds/leds-gpio.c 2014-10-22 14:55:52.094220001 -0500
@@ -3,7 +3,7 @@
*
* Copyright (C) 2007 8D Technologies inc.
@@ -67881,9 +65492,9 @@ diff -Nur linux-3.14.17/drivers/leds/leds-gpio.c linux-imx6-3.14/drivers/leds/le
ret = create_gpio_led(&led, &priv->leds[priv->num_leds++],
&pdev->dev, NULL);
-diff -Nur linux-3.14.17/drivers/leds/leds-pwm.c linux-imx6-3.14/drivers/leds/leds-pwm.c
---- linux-3.14.17/drivers/leds/leds-pwm.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/leds/leds-pwm.c 2014-09-11 18:06:01.846037353 +0200
+diff -Nur linux-3.14.22.orig/drivers/leds/leds-pwm.c linux-3.14.22/drivers/leds/leds-pwm.c
+--- linux-3.14.22.orig/drivers/leds/leds-pwm.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/leds/leds-pwm.c 2014-10-22 14:55:52.598220001 -0500
@@ -70,6 +70,10 @@
duty *= brightness;
@@ -68069,9 +65680,9 @@ diff -Nur linux-3.14.17/drivers/leds/leds-pwm.c linux-imx6-3.14/drivers/leds/led
}
static int led_pwm_remove(struct platform_device *pdev)
-diff -Nur linux-3.14.17/drivers/mailbox/mailbox.c linux-imx6-3.14/drivers/mailbox/mailbox.c
---- linux-3.14.17/drivers/mailbox/mailbox.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mailbox/mailbox.c 2014-09-11 18:06:01.890037529 +0200
+diff -Nur linux-3.14.22.orig/drivers/mailbox/mailbox.c linux-3.14.22/drivers/mailbox/mailbox.c
+--- linux-3.14.22.orig/drivers/mailbox/mailbox.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mailbox/mailbox.c 2014-10-22 14:55:52.602220001 -0500
@@ -0,0 +1,488 @@
+/*
+ * Mailbox: Common code for Mailbox controllers and users
@@ -68561,9 +66172,9 @@ diff -Nur linux-3.14.17/drivers/mailbox/mailbox.c linux-imx6-3.14/drivers/mailbo
+ mutex_unlock(&con_mutex);
+}
+EXPORT_SYMBOL_GPL(mbox_controller_unregister);
-diff -Nur linux-3.14.17/drivers/mailbox/Makefile linux-imx6-3.14/drivers/mailbox/Makefile
---- linux-3.14.17/drivers/mailbox/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mailbox/Makefile 2014-09-11 18:06:01.890037529 +0200
+diff -Nur linux-3.14.22.orig/drivers/mailbox/Makefile linux-3.14.22/drivers/mailbox/Makefile
+--- linux-3.14.22.orig/drivers/mailbox/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mailbox/Makefile 2014-10-22 14:55:52.602220001 -0500
@@ -1,3 +1,7 @@
+# Generic MAILBOX API
+
@@ -68572,9 +66183,9 @@ diff -Nur linux-3.14.17/drivers/mailbox/Makefile linux-imx6-3.14/drivers/mailbox
obj-$(CONFIG_PL320_MBOX) += pl320-ipc.o
obj-$(CONFIG_OMAP_MBOX) += omap-mailbox.o
-diff -Nur linux-3.14.17/drivers/mailbox/pl320-ipc.c linux-imx6-3.14/drivers/mailbox/pl320-ipc.c
---- linux-3.14.17/drivers/mailbox/pl320-ipc.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mailbox/pl320-ipc.c 2014-09-11 18:06:01.890037529 +0200
+diff -Nur linux-3.14.22.orig/drivers/mailbox/pl320-ipc.c linux-3.14.22/drivers/mailbox/pl320-ipc.c
+--- linux-3.14.22.orig/drivers/mailbox/pl320-ipc.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mailbox/pl320-ipc.c 2014-10-22 14:55:52.602220001 -0500
@@ -26,7 +26,7 @@
#include <linux/device.h>
#include <linux/amba/bus.h>
@@ -68584,9 +66195,9 @@ diff -Nur linux-3.14.17/drivers/mailbox/pl320-ipc.c linux-imx6-3.14/drivers/mail
#define IPCMxSOURCE(m) ((m) * 0x40)
#define IPCMxDSET(m) (((m) * 0x40) + 0x004)
-diff -Nur linux-3.14.17/drivers/Makefile linux-imx6-3.14/drivers/Makefile
---- linux-3.14.17/drivers/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/Makefile 2014-09-11 18:05:59.194026757 +0200
+diff -Nur linux-3.14.22.orig/drivers/Makefile linux-3.14.22/drivers/Makefile
+--- linux-3.14.22.orig/drivers/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/Makefile 2014-10-22 14:55:52.602220001 -0500
@@ -111,6 +111,7 @@
obj-$(CONFIG_CPU_FREQ) += cpufreq/
obj-$(CONFIG_CPU_IDLE) += cpuidle/
@@ -68595,113 +66206,9 @@ diff -Nur linux-3.14.17/drivers/Makefile linux-imx6-3.14/drivers/Makefile
obj-$(CONFIG_MEMSTICK) += memstick/
obj-y += leds/
obj-$(CONFIG_INFINIBAND) += infiniband/
-diff -Nur linux-3.14.17/drivers/md/dm-bufio.c linux-imx6-3.14/drivers/md/dm-bufio.c
---- linux-3.14.17/drivers/md/dm-bufio.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/md/dm-bufio.c 2014-09-11 18:06:01.898037562 +0200
-@@ -1541,7 +1541,7 @@
- BUG_ON(block_size < 1 << SECTOR_SHIFT ||
- (block_size & (block_size - 1)));
-
-- c = kzalloc(sizeof(*c), GFP_KERNEL);
-+ c = kmalloc(sizeof(*c), GFP_KERNEL);
- if (!c) {
- r = -ENOMEM;
- goto bad_client;
-diff -Nur linux-3.14.17/drivers/md/dm-cache-target.c linux-imx6-3.14/drivers/md/dm-cache-target.c
---- linux-3.14.17/drivers/md/dm-cache-target.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/md/dm-cache-target.c 2014-09-11 18:06:01.902037577 +0200
-@@ -231,7 +231,7 @@
- /*
- * cache_size entries, dirty if set
- */
-- atomic_t nr_dirty;
-+ dm_cblock_t nr_dirty;
- unsigned long *dirty_bitset;
-
- /*
-@@ -493,7 +493,7 @@
- static void set_dirty(struct cache *cache, dm_oblock_t oblock, dm_cblock_t cblock)
- {
- if (!test_and_set_bit(from_cblock(cblock), cache->dirty_bitset)) {
-- atomic_inc(&cache->nr_dirty);
-+ cache->nr_dirty = to_cblock(from_cblock(cache->nr_dirty) + 1);
- policy_set_dirty(cache->policy, oblock);
- }
- }
-@@ -502,7 +502,8 @@
- {
- if (test_and_clear_bit(from_cblock(cblock), cache->dirty_bitset)) {
- policy_clear_dirty(cache->policy, oblock);
-- if (atomic_dec_return(&cache->nr_dirty) == 0)
-+ cache->nr_dirty = to_cblock(from_cblock(cache->nr_dirty) - 1);
-+ if (!from_cblock(cache->nr_dirty))
- dm_table_event(cache->ti->table);
- }
- }
-@@ -2285,7 +2286,7 @@
- atomic_set(&cache->quiescing_ack, 0);
-
- r = -ENOMEM;
-- atomic_set(&cache->nr_dirty, 0);
-+ cache->nr_dirty = 0;
- cache->dirty_bitset = alloc_bitset(from_cblock(cache->cache_size));
- if (!cache->dirty_bitset) {
- *error = "could not allocate dirty bitset";
-@@ -2827,7 +2828,7 @@
-
- residency = policy_residency(cache->policy);
-
-- DMEMIT("%u %llu/%llu %u %llu/%llu %u %u %u %u %u %u %lu ",
-+ DMEMIT("%u %llu/%llu %u %llu/%llu %u %u %u %u %u %u %llu ",
- (unsigned)(DM_CACHE_METADATA_BLOCK_SIZE >> SECTOR_SHIFT),
- (unsigned long long)(nr_blocks_metadata - nr_free_blocks_metadata),
- (unsigned long long)nr_blocks_metadata,
-@@ -2840,7 +2841,7 @@
- (unsigned) atomic_read(&cache->stats.write_miss),
- (unsigned) atomic_read(&cache->stats.demotion),
- (unsigned) atomic_read(&cache->stats.promotion),
-- (unsigned long) atomic_read(&cache->nr_dirty));
-+ (unsigned long long) from_cblock(cache->nr_dirty));
-
- if (writethrough_mode(&cache->features))
- DMEMIT("1 writethrough ");
-diff -Nur linux-3.14.17/drivers/media/dvb-frontends/tda10071.c linux-imx6-3.14/drivers/media/dvb-frontends/tda10071.c
---- linux-3.14.17/drivers/media/dvb-frontends/tda10071.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/media/dvb-frontends/tda10071.c 2014-09-11 18:06:02.026038073 +0200
-@@ -667,7 +667,6 @@
- struct dtv_frontend_properties *c = &fe->dtv_property_cache;
- int ret, i;
- u8 mode, rolloff, pilot, inversion, div;
-- fe_modulation_t modulation;
-
- dev_dbg(&priv->i2c->dev, "%s: delivery_system=%d modulation=%d " \
- "frequency=%d symbol_rate=%d inversion=%d pilot=%d " \
-@@ -702,13 +701,10 @@
-
- switch (c->delivery_system) {
- case SYS_DVBS:
-- modulation = QPSK;
- rolloff = 0;
- pilot = 2;
- break;
- case SYS_DVBS2:
-- modulation = c->modulation;
--
- switch (c->rolloff) {
- case ROLLOFF_20:
- rolloff = 2;
-@@ -753,7 +749,7 @@
-
- for (i = 0, mode = 0xff; i < ARRAY_SIZE(TDA10071_MODCOD); i++) {
- if (c->delivery_system == TDA10071_MODCOD[i].delivery_system &&
-- modulation == TDA10071_MODCOD[i].modulation &&
-+ c->modulation == TDA10071_MODCOD[i].modulation &&
- c->fec_inner == TDA10071_MODCOD[i].fec) {
- mode = TDA10071_MODCOD[i].val;
- dev_dbg(&priv->i2c->dev, "%s: mode found=%02x\n",
-diff -Nur linux-3.14.17/drivers/media/platform/Kconfig linux-imx6-3.14/drivers/media/platform/Kconfig
---- linux-3.14.17/drivers/media/platform/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/media/platform/Kconfig 2014-09-11 18:06:02.238038919 +0200
+diff -Nur linux-3.14.22.orig/drivers/media/platform/Kconfig linux-3.14.22/drivers/media/platform/Kconfig
+--- linux-3.14.22.orig/drivers/media/platform/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/media/platform/Kconfig 2014-10-22 14:55:52.602220001 -0500
@@ -115,6 +115,21 @@
To compile this driver as a module, choose M here: the module
will be called s3c-camif.
@@ -68724,9 +66231,9 @@ diff -Nur linux-3.14.17/drivers/media/platform/Kconfig linux-imx6-3.14/drivers/m
source "drivers/media/platform/soc_camera/Kconfig"
source "drivers/media/platform/exynos4-is/Kconfig"
source "drivers/media/platform/s5p-tv/Kconfig"
-diff -Nur linux-3.14.17/drivers/media/platform/Makefile linux-imx6-3.14/drivers/media/platform/Makefile
---- linux-3.14.17/drivers/media/platform/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/media/platform/Makefile 2014-09-11 18:06:02.238038919 +0200
+diff -Nur linux-3.14.22.orig/drivers/media/platform/Makefile linux-3.14.22/drivers/media/platform/Makefile
+--- linux-3.14.22.orig/drivers/media/platform/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/media/platform/Makefile 2014-10-22 14:55:52.602220001 -0500
@@ -51,4 +51,7 @@
obj-$(CONFIG_ARCH_OMAP) += omap/
@@ -68735,9 +66242,9 @@ diff -Nur linux-3.14.17/drivers/media/platform/Makefile linux-imx6-3.14/drivers/
+obj-$(CONFIG_VIDEO_MXC_OUTPUT) += mxc/output/
+
ccflags-y += -I$(srctree)/drivers/media/i2c
-diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/adv7180.c linux-imx6-3.14/drivers/media/platform/mxc/capture/adv7180.c
---- linux-3.14.17/drivers/media/platform/mxc/capture/adv7180.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/media/platform/mxc/capture/adv7180.c 2014-09-11 18:06:02.254038983 +0200
+diff -Nur linux-3.14.22.orig/drivers/media/platform/mxc/capture/adv7180.c linux-3.14.22/drivers/media/platform/mxc/capture/adv7180.c
+--- linux-3.14.22.orig/drivers/media/platform/mxc/capture/adv7180.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/media/platform/mxc/capture/adv7180.c 2014-10-22 14:55:52.606220001 -0500
@@ -0,0 +1,1344 @@
+/*
+ * Copyright 2005-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -70083,9 +67590,9 @@ diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/adv7180.c linux-imx6-
+MODULE_AUTHOR("Freescale Semiconductor");
+MODULE_DESCRIPTION("Anolog Device ADV7180 video decoder driver");
+MODULE_LICENSE("GPL");
-diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/csi_v4l2_capture.c linux-imx6-3.14/drivers/media/platform/mxc/capture/csi_v4l2_capture.c
---- linux-3.14.17/drivers/media/platform/mxc/capture/csi_v4l2_capture.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/media/platform/mxc/capture/csi_v4l2_capture.c 2014-09-11 18:06:02.254038983 +0200
+diff -Nur linux-3.14.22.orig/drivers/media/platform/mxc/capture/csi_v4l2_capture.c linux-3.14.22/drivers/media/platform/mxc/capture/csi_v4l2_capture.c
+--- linux-3.14.22.orig/drivers/media/platform/mxc/capture/csi_v4l2_capture.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/media/platform/mxc/capture/csi_v4l2_capture.c 2014-10-22 14:55:52.610220001 -0500
@@ -0,0 +1,2047 @@
+/*
+ * Copyright 2009-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -72134,9 +69641,9 @@ diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/csi_v4l2_capture.c li
+MODULE_DESCRIPTION("V4L2 capture driver for Mx25 based cameras");
+MODULE_LICENSE("GPL");
+MODULE_SUPPORTED_DEVICE("video");
-diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/fsl_csi.c linux-imx6-3.14/drivers/media/platform/mxc/capture/fsl_csi.c
---- linux-3.14.17/drivers/media/platform/mxc/capture/fsl_csi.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/media/platform/mxc/capture/fsl_csi.c 2014-09-11 18:06:02.254038983 +0200
+diff -Nur linux-3.14.22.orig/drivers/media/platform/mxc/capture/fsl_csi.c linux-3.14.22/drivers/media/platform/mxc/capture/fsl_csi.c
+--- linux-3.14.22.orig/drivers/media/platform/mxc/capture/fsl_csi.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/media/platform/mxc/capture/fsl_csi.c 2014-10-22 14:55:52.614220001 -0500
@@ -0,0 +1,302 @@
+/*
+ * Copyright 2009-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -72440,9 +69947,9 @@ diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/fsl_csi.c linux-imx6-
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("fsl CSI driver");
+MODULE_LICENSE("GPL");
-diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/fsl_csi.h linux-imx6-3.14/drivers/media/platform/mxc/capture/fsl_csi.h
---- linux-3.14.17/drivers/media/platform/mxc/capture/fsl_csi.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/media/platform/mxc/capture/fsl_csi.h 2014-09-11 18:06:02.254038983 +0200
+diff -Nur linux-3.14.22.orig/drivers/media/platform/mxc/capture/fsl_csi.h linux-3.14.22/drivers/media/platform/mxc/capture/fsl_csi.h
+--- linux-3.14.22.orig/drivers/media/platform/mxc/capture/fsl_csi.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/media/platform/mxc/capture/fsl_csi.h 2014-10-22 14:55:52.614220001 -0500
@@ -0,0 +1,198 @@
+/*
+ * Copyright 2009-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -72642,9 +70149,9 @@ diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/fsl_csi.h linux-imx6-
+void csi_mclk_disable(void);
+void csi_dmareq_rff_enable(void);
+void csi_dmareq_rff_disable(void);
-diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/ipu_bg_overlay_sdc.c linux-imx6-3.14/drivers/media/platform/mxc/capture/ipu_bg_overlay_sdc.c
---- linux-3.14.17/drivers/media/platform/mxc/capture/ipu_bg_overlay_sdc.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/media/platform/mxc/capture/ipu_bg_overlay_sdc.c 2014-09-11 18:06:02.254038983 +0200
+diff -Nur linux-3.14.22.orig/drivers/media/platform/mxc/capture/ipu_bg_overlay_sdc.c linux-3.14.22/drivers/media/platform/mxc/capture/ipu_bg_overlay_sdc.c
+--- linux-3.14.22.orig/drivers/media/platform/mxc/capture/ipu_bg_overlay_sdc.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/media/platform/mxc/capture/ipu_bg_overlay_sdc.c 2014-10-22 14:55:52.614220001 -0500
@@ -0,0 +1,546 @@
+
+/*
@@ -73192,9 +70699,9 @@ diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/ipu_bg_overlay_sdc.c
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("IPU PRP VF SDC Backgroud Driver");
+MODULE_LICENSE("GPL");
-diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/ipu_csi_enc.c linux-imx6-3.14/drivers/media/platform/mxc/capture/ipu_csi_enc.c
---- linux-3.14.17/drivers/media/platform/mxc/capture/ipu_csi_enc.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/media/platform/mxc/capture/ipu_csi_enc.c 2014-09-11 18:06:02.254038983 +0200
+diff -Nur linux-3.14.22.orig/drivers/media/platform/mxc/capture/ipu_csi_enc.c linux-3.14.22/drivers/media/platform/mxc/capture/ipu_csi_enc.c
+--- linux-3.14.22.orig/drivers/media/platform/mxc/capture/ipu_csi_enc.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/media/platform/mxc/capture/ipu_csi_enc.c 2014-10-22 14:55:52.614220001 -0500
@@ -0,0 +1,418 @@
+/*
+ * Copyright 2009-2014 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -73614,9 +71121,9 @@ diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/ipu_csi_enc.c linux-i
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("CSI ENC Driver");
+MODULE_LICENSE("GPL");
-diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/ipu_fg_overlay_sdc.c linux-imx6-3.14/drivers/media/platform/mxc/capture/ipu_fg_overlay_sdc.c
---- linux-3.14.17/drivers/media/platform/mxc/capture/ipu_fg_overlay_sdc.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/media/platform/mxc/capture/ipu_fg_overlay_sdc.c 2014-09-11 18:06:02.254038983 +0200
+diff -Nur linux-3.14.22.orig/drivers/media/platform/mxc/capture/ipu_fg_overlay_sdc.c linux-3.14.22/drivers/media/platform/mxc/capture/ipu_fg_overlay_sdc.c
+--- linux-3.14.22.orig/drivers/media/platform/mxc/capture/ipu_fg_overlay_sdc.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/media/platform/mxc/capture/ipu_fg_overlay_sdc.c 2014-10-22 14:55:52.618220001 -0500
@@ -0,0 +1,634 @@
+/*
+ * Copyright 2004-2014 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -74252,9 +71759,9 @@ diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/ipu_fg_overlay_sdc.c
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("IPU PRP VF SDC Driver");
+MODULE_LICENSE("GPL");
-diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/ipu_prp_enc.c linux-imx6-3.14/drivers/media/platform/mxc/capture/ipu_prp_enc.c
---- linux-3.14.17/drivers/media/platform/mxc/capture/ipu_prp_enc.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/media/platform/mxc/capture/ipu_prp_enc.c 2014-09-11 18:06:02.254038983 +0200
+diff -Nur linux-3.14.22.orig/drivers/media/platform/mxc/capture/ipu_prp_enc.c linux-3.14.22/drivers/media/platform/mxc/capture/ipu_prp_enc.c
+--- linux-3.14.22.orig/drivers/media/platform/mxc/capture/ipu_prp_enc.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/media/platform/mxc/capture/ipu_prp_enc.c 2014-10-22 14:55:52.618220001 -0500
@@ -0,0 +1,595 @@
+/*
+ * Copyright 2004-2014 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -74851,9 +72358,9 @@ diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/ipu_prp_enc.c linux-i
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("IPU PRP ENC Driver");
+MODULE_LICENSE("GPL");
-diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/ipu_prp_sw.h linux-imx6-3.14/drivers/media/platform/mxc/capture/ipu_prp_sw.h
---- linux-3.14.17/drivers/media/platform/mxc/capture/ipu_prp_sw.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/media/platform/mxc/capture/ipu_prp_sw.h 2014-09-11 18:06:02.254038983 +0200
+diff -Nur linux-3.14.22.orig/drivers/media/platform/mxc/capture/ipu_prp_sw.h linux-3.14.22/drivers/media/platform/mxc/capture/ipu_prp_sw.h
+--- linux-3.14.22.orig/drivers/media/platform/mxc/capture/ipu_prp_sw.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/media/platform/mxc/capture/ipu_prp_sw.h 2014-10-22 14:55:52.618220001 -0500
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2004-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -74898,9 +72405,9 @@ diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/ipu_prp_sw.h linux-im
+int prp_still_deselect(void *private);
+
+#endif
-diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/ipu_prp_vf_sdc_bg.c linux-imx6-3.14/drivers/media/platform/mxc/capture/ipu_prp_vf_sdc_bg.c
---- linux-3.14.17/drivers/media/platform/mxc/capture/ipu_prp_vf_sdc_bg.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/media/platform/mxc/capture/ipu_prp_vf_sdc_bg.c 2014-09-11 18:06:02.254038983 +0200
+diff -Nur linux-3.14.22.orig/drivers/media/platform/mxc/capture/ipu_prp_vf_sdc_bg.c linux-3.14.22/drivers/media/platform/mxc/capture/ipu_prp_vf_sdc_bg.c
+--- linux-3.14.22.orig/drivers/media/platform/mxc/capture/ipu_prp_vf_sdc_bg.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/media/platform/mxc/capture/ipu_prp_vf_sdc_bg.c 2014-10-22 14:55:52.618220001 -0500
@@ -0,0 +1,521 @@
+/*
+ * Copyright 2004-2014 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -75423,9 +72930,9 @@ diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/ipu_prp_vf_sdc_bg.c l
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("IPU PRP VF SDC Backgroud Driver");
+MODULE_LICENSE("GPL");
-diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/ipu_prp_vf_sdc.c linux-imx6-3.14/drivers/media/platform/mxc/capture/ipu_prp_vf_sdc.c
---- linux-3.14.17/drivers/media/platform/mxc/capture/ipu_prp_vf_sdc.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/media/platform/mxc/capture/ipu_prp_vf_sdc.c 2014-09-11 18:06:02.254038983 +0200
+diff -Nur linux-3.14.22.orig/drivers/media/platform/mxc/capture/ipu_prp_vf_sdc.c linux-3.14.22/drivers/media/platform/mxc/capture/ipu_prp_vf_sdc.c
+--- linux-3.14.22.orig/drivers/media/platform/mxc/capture/ipu_prp_vf_sdc.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/media/platform/mxc/capture/ipu_prp_vf_sdc.c 2014-10-22 14:55:52.618220001 -0500
@@ -0,0 +1,582 @@
+/*
+ * Copyright 2004-2014 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -76009,9 +73516,9 @@ diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/ipu_prp_vf_sdc.c linu
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("IPU PRP VF SDC Driver");
+MODULE_LICENSE("GPL");
-diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/ipu_still.c linux-imx6-3.14/drivers/media/platform/mxc/capture/ipu_still.c
---- linux-3.14.17/drivers/media/platform/mxc/capture/ipu_still.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/media/platform/mxc/capture/ipu_still.c 2014-09-11 18:06:02.254038983 +0200
+diff -Nur linux-3.14.22.orig/drivers/media/platform/mxc/capture/ipu_still.c linux-3.14.22/drivers/media/platform/mxc/capture/ipu_still.c
+--- linux-3.14.22.orig/drivers/media/platform/mxc/capture/ipu_still.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/media/platform/mxc/capture/ipu_still.c 2014-10-22 14:55:52.618220001 -0500
@@ -0,0 +1,268 @@
+/*
+ * Copyright 2004-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -76281,9 +73788,9 @@ diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/ipu_still.c linux-imx
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("IPU PRP STILL IMAGE Driver");
+MODULE_LICENSE("GPL");
-diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/Kconfig linux-imx6-3.14/drivers/media/platform/mxc/capture/Kconfig
---- linux-3.14.17/drivers/media/platform/mxc/capture/Kconfig 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/media/platform/mxc/capture/Kconfig 2014-09-11 18:06:02.250038968 +0200
+diff -Nur linux-3.14.22.orig/drivers/media/platform/mxc/capture/Kconfig linux-3.14.22/drivers/media/platform/mxc/capture/Kconfig
+--- linux-3.14.22.orig/drivers/media/platform/mxc/capture/Kconfig 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/media/platform/mxc/capture/Kconfig 2014-10-22 14:55:52.618220001 -0500
@@ -0,0 +1,86 @@
+if VIDEO_MXC_CAPTURE
+
@@ -76371,9 +73878,9 @@ diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/Kconfig linux-imx6-3.
+endmenu
+
+endif
-diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/Makefile linux-imx6-3.14/drivers/media/platform/mxc/capture/Makefile
---- linux-3.14.17/drivers/media/platform/mxc/capture/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/media/platform/mxc/capture/Makefile 2014-09-11 18:06:02.250038968 +0200
+diff -Nur linux-3.14.22.orig/drivers/media/platform/mxc/capture/Makefile linux-3.14.22/drivers/media/platform/mxc/capture/Makefile
+--- linux-3.14.22.orig/drivers/media/platform/mxc/capture/Makefile 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/media/platform/mxc/capture/Makefile 2014-10-22 14:55:52.618220001 -0500
@@ -0,0 +1,21 @@
+obj-$(CONFIG_VIDEO_MXC_CSI_CAMERA) += fsl_csi.o csi_v4l2_capture.o
+
@@ -76396,9 +73903,9 @@ diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/Makefile linux-imx6-3
+
+adv7180_tvin-objs := adv7180.o
+obj-$(CONFIG_MXC_TVIN_ADV7180) += adv7180_tvin.o
-diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/mxc_v4l2_capture.c linux-imx6-3.14/drivers/media/platform/mxc/capture/mxc_v4l2_capture.c
---- linux-3.14.17/drivers/media/platform/mxc/capture/mxc_v4l2_capture.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/media/platform/mxc/capture/mxc_v4l2_capture.c 2014-09-11 18:06:02.254038983 +0200
+diff -Nur linux-3.14.22.orig/drivers/media/platform/mxc/capture/mxc_v4l2_capture.c linux-3.14.22/drivers/media/platform/mxc/capture/mxc_v4l2_capture.c
+--- linux-3.14.22.orig/drivers/media/platform/mxc/capture/mxc_v4l2_capture.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/media/platform/mxc/capture/mxc_v4l2_capture.c 2014-10-22 14:55:52.618220001 -0500
@@ -0,0 +1,3102 @@
+/*
+ * Copyright 2004-2014 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -79502,9 +77009,9 @@ diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/mxc_v4l2_capture.c li
+MODULE_DESCRIPTION("V4L2 capture driver for Mxc based cameras");
+MODULE_LICENSE("GPL");
+MODULE_SUPPORTED_DEVICE("video");
-diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/mxc_v4l2_capture.h linux-imx6-3.14/drivers/media/platform/mxc/capture/mxc_v4l2_capture.h
---- linux-3.14.17/drivers/media/platform/mxc/capture/mxc_v4l2_capture.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/media/platform/mxc/capture/mxc_v4l2_capture.h 2014-09-11 18:06:02.254038983 +0200
+diff -Nur linux-3.14.22.orig/drivers/media/platform/mxc/capture/mxc_v4l2_capture.h linux-3.14.22/drivers/media/platform/mxc/capture/mxc_v4l2_capture.h
+--- linux-3.14.22.orig/drivers/media/platform/mxc/capture/mxc_v4l2_capture.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/media/platform/mxc/capture/mxc_v4l2_capture.h 2014-10-22 14:55:52.618220001 -0500
@@ -0,0 +1,260 @@
+/*
+ * Copyright 2004-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -79766,9 +77273,9 @@ diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/mxc_v4l2_capture.h li
+
+void set_mclk_rate(uint32_t *p_mclk_freq, uint32_t csi);
+#endif /* __MXC_V4L2_CAPTURE_H__ */
-diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/ov5640.c linux-imx6-3.14/drivers/media/platform/mxc/capture/ov5640.c
---- linux-3.14.17/drivers/media/platform/mxc/capture/ov5640.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/media/platform/mxc/capture/ov5640.c 2014-09-11 18:06:02.254038983 +0200
+diff -Nur linux-3.14.22.orig/drivers/media/platform/mxc/capture/ov5640.c linux-3.14.22/drivers/media/platform/mxc/capture/ov5640.c
+--- linux-3.14.22.orig/drivers/media/platform/mxc/capture/ov5640.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/media/platform/mxc/capture/ov5640.c 2014-10-22 14:55:52.622220001 -0500
@@ -0,0 +1,1951 @@
+/*
+ * Copyright (C) 2012-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -81721,9 +79228,9 @@ diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/ov5640.c linux-imx6-3
+MODULE_LICENSE("GPL");
+MODULE_VERSION("1.0");
+MODULE_ALIAS("CSI");
-diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/ov5640_mipi.c linux-imx6-3.14/drivers/media/platform/mxc/capture/ov5640_mipi.c
---- linux-3.14.17/drivers/media/platform/mxc/capture/ov5640_mipi.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/media/platform/mxc/capture/ov5640_mipi.c 2014-09-11 18:06:02.254038983 +0200
+diff -Nur linux-3.14.22.orig/drivers/media/platform/mxc/capture/ov5640_mipi.c linux-3.14.22/drivers/media/platform/mxc/capture/ov5640_mipi.c
+--- linux-3.14.22.orig/drivers/media/platform/mxc/capture/ov5640_mipi.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/media/platform/mxc/capture/ov5640_mipi.c 2014-10-22 14:55:52.622220001 -0500
@@ -0,0 +1,2104 @@
+/*
+ * Copyright (C) 2011-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -83829,9 +81336,9 @@ diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/ov5640_mipi.c linux-i
+MODULE_LICENSE("GPL");
+MODULE_VERSION("1.0");
+MODULE_ALIAS("CSI");
-diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/ov5642.c linux-imx6-3.14/drivers/media/platform/mxc/capture/ov5642.c
---- linux-3.14.17/drivers/media/platform/mxc/capture/ov5642.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/media/platform/mxc/capture/ov5642.c 2014-09-11 18:06:02.254038983 +0200
+diff -Nur linux-3.14.22.orig/drivers/media/platform/mxc/capture/ov5642.c linux-3.14.22/drivers/media/platform/mxc/capture/ov5642.c
+--- linux-3.14.22.orig/drivers/media/platform/mxc/capture/ov5642.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/media/platform/mxc/capture/ov5642.c 2014-10-22 14:55:52.626220001 -0500
@@ -0,0 +1,4252 @@
+/*
+ * Copyright (C) 2012-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -88085,23 +85592,23 @@ diff -Nur linux-3.14.17/drivers/media/platform/mxc/capture/ov5642.c linux-imx6-3
+MODULE_LICENSE("GPL");
+MODULE_VERSION("1.0");
+MODULE_ALIAS("CSI");
-diff -Nur linux-3.14.17/drivers/media/platform/mxc/output/Kconfig linux-imx6-3.14/drivers/media/platform/mxc/output/Kconfig
---- linux-3.14.17/drivers/media/platform/mxc/output/Kconfig 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/media/platform/mxc/output/Kconfig 2014-09-11 18:06:02.254038983 +0200
+diff -Nur linux-3.14.22.orig/drivers/media/platform/mxc/output/Kconfig linux-3.14.22/drivers/media/platform/mxc/output/Kconfig
+--- linux-3.14.22.orig/drivers/media/platform/mxc/output/Kconfig 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/media/platform/mxc/output/Kconfig 2014-10-22 14:55:52.626220001 -0500
@@ -0,0 +1,5 @@
+config VIDEO_MXC_IPU_OUTPUT
+ tristate "IPU v4l2 output support"
+ depends on VIDEO_MXC_OUTPUT && MXC_IPU
+ ---help---
+ This is the video4linux2 driver for IPU post processing video output.
-diff -Nur linux-3.14.17/drivers/media/platform/mxc/output/Makefile linux-imx6-3.14/drivers/media/platform/mxc/output/Makefile
---- linux-3.14.17/drivers/media/platform/mxc/output/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/media/platform/mxc/output/Makefile 2014-09-11 18:06:02.254038983 +0200
+diff -Nur linux-3.14.22.orig/drivers/media/platform/mxc/output/Makefile linux-3.14.22/drivers/media/platform/mxc/output/Makefile
+--- linux-3.14.22.orig/drivers/media/platform/mxc/output/Makefile 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/media/platform/mxc/output/Makefile 2014-10-22 14:55:52.626220001 -0500
@@ -0,0 +1 @@
+obj-$(CONFIG_VIDEO_MXC_IPU_OUTPUT) += mxc_vout.o
-diff -Nur linux-3.14.17/drivers/media/platform/mxc/output/mxc_vout.c linux-imx6-3.14/drivers/media/platform/mxc/output/mxc_vout.c
---- linux-3.14.17/drivers/media/platform/mxc/output/mxc_vout.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/media/platform/mxc/output/mxc_vout.c 2014-09-11 18:06:02.258038999 +0200
+diff -Nur linux-3.14.22.orig/drivers/media/platform/mxc/output/mxc_vout.c linux-3.14.22/drivers/media/platform/mxc/output/mxc_vout.c
+--- linux-3.14.22.orig/drivers/media/platform/mxc/output/mxc_vout.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/media/platform/mxc/output/mxc_vout.c 2014-10-22 14:55:52.626220001 -0500
@@ -0,0 +1,2265 @@
+/*
+ * Copyright (C) 2011-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -90368,55 +87875,9 @@ diff -Nur linux-3.14.17/drivers/media/platform/mxc/output/mxc_vout.c linux-imx6-
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("V4L2-driver for MXC video output");
+MODULE_LICENSE("GPL");
-diff -Nur linux-3.14.17/drivers/media/usb/hdpvr/hdpvr-video.c linux-imx6-3.14/drivers/media/usb/hdpvr/hdpvr-video.c
---- linux-3.14.17/drivers/media/usb/hdpvr/hdpvr-video.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/media/usb/hdpvr/hdpvr-video.c 2014-09-11 18:06:02.730040885 +0200
-@@ -82,7 +82,7 @@
- }
-
- /*=========================================================================*/
--/* buffer bits */
-+/* bufffer bits */
-
- /* function expects dev->io_mutex to be hold by caller */
- int hdpvr_cancel_queue(struct hdpvr_device *dev)
-@@ -926,7 +926,7 @@
- case V4L2_CID_MPEG_AUDIO_ENCODING:
- if (dev->flags & HDPVR_FLAG_AC3_CAP) {
- opt->audio_codec = ctrl->val;
-- return hdpvr_set_audio(dev, opt->audio_input + 1,
-+ return hdpvr_set_audio(dev, opt->audio_input,
- opt->audio_codec);
- }
- return 0;
-@@ -1198,7 +1198,7 @@
- v4l2_ctrl_new_std_menu(hdl, &hdpvr_ctrl_ops,
- V4L2_CID_MPEG_AUDIO_ENCODING,
- ac3 ? V4L2_MPEG_AUDIO_ENCODING_AC3 : V4L2_MPEG_AUDIO_ENCODING_AAC,
-- 0x7, ac3 ? dev->options.audio_codec : V4L2_MPEG_AUDIO_ENCODING_AAC);
-+ 0x7, V4L2_MPEG_AUDIO_ENCODING_AAC);
- v4l2_ctrl_new_std_menu(hdl, &hdpvr_ctrl_ops,
- V4L2_CID_MPEG_VIDEO_ENCODING,
- V4L2_MPEG_VIDEO_ENCODING_MPEG_4_AVC, 0x3,
-diff -Nur linux-3.14.17/drivers/media/v4l2-core/v4l2-dv-timings.c linux-imx6-3.14/drivers/media/v4l2-core/v4l2-dv-timings.c
---- linux-3.14.17/drivers/media/v4l2-core/v4l2-dv-timings.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/media/v4l2-core/v4l2-dv-timings.c 2014-09-11 18:06:02.834041301 +0200
-@@ -595,10 +595,10 @@
- aspect.denominator = 9;
- } else if (ratio == 34) {
- aspect.numerator = 4;
-- aspect.denominator = 3;
-+ aspect.numerator = 3;
- } else if (ratio == 68) {
- aspect.numerator = 15;
-- aspect.denominator = 9;
-+ aspect.numerator = 9;
- } else {
- aspect.numerator = hor_landscape + 99;
- aspect.denominator = 100;
-diff -Nur linux-3.14.17/drivers/media/v4l2-core/videobuf2-dma-contig.c linux-imx6-3.14/drivers/media/v4l2-core/videobuf2-dma-contig.c
---- linux-3.14.17/drivers/media/v4l2-core/videobuf2-dma-contig.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/media/v4l2-core/videobuf2-dma-contig.c 2014-09-11 18:06:02.838041316 +0200
+diff -Nur linux-3.14.22.orig/drivers/media/v4l2-core/videobuf2-dma-contig.c linux-3.14.22/drivers/media/v4l2-core/videobuf2-dma-contig.c
+--- linux-3.14.22.orig/drivers/media/v4l2-core/videobuf2-dma-contig.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/media/v4l2-core/videobuf2-dma-contig.c 2014-10-22 14:55:52.626220001 -0500
@@ -719,7 +719,7 @@
/* get the associated scatterlist for this buffer */
@@ -90426,9 +87887,9 @@ diff -Nur linux-3.14.17/drivers/media/v4l2-core/videobuf2-dma-contig.c linux-imx
pr_err("Error getting dmabuf scatterlist\n");
return -EINVAL;
}
-diff -Nur linux-3.14.17/drivers/media/v4l2-core/videobuf-dma-contig.c linux-imx6-3.14/drivers/media/v4l2-core/videobuf-dma-contig.c
---- linux-3.14.17/drivers/media/v4l2-core/videobuf-dma-contig.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/media/v4l2-core/videobuf-dma-contig.c 2014-09-11 18:06:02.834041301 +0200
+diff -Nur linux-3.14.22.orig/drivers/media/v4l2-core/videobuf-dma-contig.c linux-3.14.22/drivers/media/v4l2-core/videobuf-dma-contig.c
+--- linux-3.14.22.orig/drivers/media/v4l2-core/videobuf-dma-contig.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/media/v4l2-core/videobuf-dma-contig.c 2014-10-22 14:55:52.626220001 -0500
@@ -304,7 +304,7 @@
/* Try to remap memory */
@@ -90438,9 +87899,9 @@ diff -Nur linux-3.14.17/drivers/media/v4l2-core/videobuf-dma-contig.c linux-imx6
retval = vm_iomap_memory(vma, vma->vm_start, size);
if (retval) {
dev_err(q->dev, "mmap: remap failed with error %d. ",
-diff -Nur linux-3.14.17/drivers/mfd/ab8500-core.c linux-imx6-3.14/drivers/mfd/ab8500-core.c
---- linux-3.14.17/drivers/mfd/ab8500-core.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mfd/ab8500-core.c 2014-09-11 18:06:02.862041412 +0200
+diff -Nur linux-3.14.22.orig/drivers/mfd/ab8500-core.c linux-3.14.22/drivers/mfd/ab8500-core.c
+--- linux-3.14.22.orig/drivers/mfd/ab8500-core.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mfd/ab8500-core.c 2014-10-22 14:55:52.626220001 -0500
@@ -592,7 +592,7 @@
/* If ->irq_base is zero this will give a linear mapping */
@@ -90526,9 +87987,9 @@ diff -Nur linux-3.14.17/drivers/mfd/ab8500-core.c linux-imx6-3.14/drivers/mfd/ab
if (ret)
dev_err(ab8500->dev, "error adding bm devices\n");
}
-diff -Nur linux-3.14.17/drivers/mfd/db8500-prcmu.c linux-imx6-3.14/drivers/mfd/db8500-prcmu.c
---- linux-3.14.17/drivers/mfd/db8500-prcmu.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mfd/db8500-prcmu.c 2014-09-11 18:06:02.866041428 +0200
+diff -Nur linux-3.14.22.orig/drivers/mfd/db8500-prcmu.c linux-3.14.22/drivers/mfd/db8500-prcmu.c
+--- linux-3.14.22.orig/drivers/mfd/db8500-prcmu.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mfd/db8500-prcmu.c 2014-10-22 14:55:52.626220001 -0500
@@ -25,6 +25,7 @@
#include <linux/bitops.h>
#include <linux/fs.h>
@@ -90610,9 +88071,9 @@ diff -Nur linux-3.14.17/drivers/mfd/db8500-prcmu.c linux-imx6-3.14/drivers/mfd/d
if (err) {
mfd_remove_devices(&pdev->dev);
pr_err("prcmu: Failed to add ab8500 subdevice\n");
-diff -Nur linux-3.14.17/drivers/mfd/Kconfig linux-imx6-3.14/drivers/mfd/Kconfig
---- linux-3.14.17/drivers/mfd/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mfd/Kconfig 2014-09-11 18:06:02.862041412 +0200
+diff -Nur linux-3.14.22.orig/drivers/mfd/Kconfig linux-3.14.22/drivers/mfd/Kconfig
+--- linux-3.14.22.orig/drivers/mfd/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mfd/Kconfig 2014-10-22 14:55:52.630220001 -0500
@@ -163,6 +163,14 @@
Additional drivers must be enabled in order to use the functionality
of the device.
@@ -90633,17 +88094,17 @@ diff -Nur linux-3.14.17/drivers/mfd/Kconfig linux-imx6-3.14/drivers/mfd/Kconfig
Platform configuration infrastructure for the ARM Ltd.
Versatile Express.
+
-diff -Nur linux-3.14.17/drivers/mfd/Makefile linux-imx6-3.14/drivers/mfd/Makefile
---- linux-3.14.17/drivers/mfd/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mfd/Makefile 2014-09-11 18:06:02.862041412 +0200
+diff -Nur linux-3.14.22.orig/drivers/mfd/Makefile linux-3.14.22/drivers/mfd/Makefile
+--- linux-3.14.22.orig/drivers/mfd/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mfd/Makefile 2014-10-22 14:55:52.630220001 -0500
@@ -166,3 +166,4 @@
obj-$(CONFIG_MFD_AS3711) += as3711.o
obj-$(CONFIG_MFD_AS3722) += as3722.o
obj-$(CONFIG_MFD_STW481X) += stw481x.o
+obj-$(CONFIG_MFD_MXC_HDMI) += mxc-hdmi-core.o
-diff -Nur linux-3.14.17/drivers/mfd/mxc-hdmi-core.c linux-imx6-3.14/drivers/mfd/mxc-hdmi-core.c
---- linux-3.14.17/drivers/mfd/mxc-hdmi-core.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mfd/mxc-hdmi-core.c 2014-09-11 18:06:02.874041460 +0200
+diff -Nur linux-3.14.22.orig/drivers/mfd/mxc-hdmi-core.c linux-3.14.22/drivers/mfd/mxc-hdmi-core.c
+--- linux-3.14.22.orig/drivers/mfd/mxc-hdmi-core.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mfd/mxc-hdmi-core.c 2014-10-22 14:55:52.630220001 -0500
@@ -0,0 +1,798 @@
+/*
+ * Copyright (C) 2011-2014 Freescale Semiconductor, Inc.
@@ -91443,9 +88904,9 @@ diff -Nur linux-3.14.17/drivers/mfd/mxc-hdmi-core.c linux-imx6-3.14/drivers/mfd/
+MODULE_DESCRIPTION("Core driver for Freescale i.Mx on-chip HDMI");
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_LICENSE("GPL");
-diff -Nur linux-3.14.17/drivers/mfd/si476x-cmd.c linux-imx6-3.14/drivers/mfd/si476x-cmd.c
---- linux-3.14.17/drivers/mfd/si476x-cmd.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mfd/si476x-cmd.c 2014-09-11 18:06:02.910041603 +0200
+diff -Nur linux-3.14.22.orig/drivers/mfd/si476x-cmd.c linux-3.14.22/drivers/mfd/si476x-cmd.c
+--- linux-3.14.22.orig/drivers/mfd/si476x-cmd.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mfd/si476x-cmd.c 2014-10-22 14:55:52.630220001 -0500
@@ -303,13 +303,13 @@
* possible racing conditions when working in polling mode */
atomic_set(&core->cts, 0);
@@ -91467,9 +88928,9 @@ diff -Nur linux-3.14.17/drivers/mfd/si476x-cmd.c linux-imx6-3.14/drivers/mfd/si4
/*
When working in polling mode, for some reason the tuner will
-diff -Nur linux-3.14.17/drivers/mfd/si476x-i2c.c linux-imx6-3.14/drivers/mfd/si476x-i2c.c
---- linux-3.14.17/drivers/mfd/si476x-i2c.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mfd/si476x-i2c.c 2014-09-11 18:06:02.910041603 +0200
+diff -Nur linux-3.14.22.orig/drivers/mfd/si476x-i2c.c linux-3.14.22/drivers/mfd/si476x-i2c.c
+--- linux-3.14.22.orig/drivers/mfd/si476x-i2c.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mfd/si476x-i2c.c 2014-10-22 14:55:52.630220001 -0500
@@ -303,7 +303,7 @@
*/
udelay(100);
@@ -91517,9 +88978,9 @@ diff -Nur linux-3.14.17/drivers/mfd/si476x-i2c.c linux-imx6-3.14/drivers/mfd/si4
rval = si476x_core_get_revision_info(core);
if (rval < 0) {
rval = -ENODEV;
-diff -Nur linux-3.14.17/drivers/mfd/si476x-prop.c linux-imx6-3.14/drivers/mfd/si476x-prop.c
---- linux-3.14.17/drivers/mfd/si476x-prop.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mfd/si476x-prop.c 2014-09-11 18:06:02.910041603 +0200
+diff -Nur linux-3.14.22.orig/drivers/mfd/si476x-prop.c linux-3.14.22/drivers/mfd/si476x-prop.c
+--- linux-3.14.22.orig/drivers/mfd/si476x-prop.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mfd/si476x-prop.c 2014-10-22 14:55:52.630220001 -0500
@@ -217,15 +217,36 @@
return 0;
}
@@ -91557,9 +89018,9 @@ diff -Nur linux-3.14.17/drivers/mfd/si476x-prop.c linux-imx6-3.14/drivers/mfd/si
.reg_read = si476x_core_regmap_read,
.reg_write = si476x_core_regmap_write,
-diff -Nur linux-3.14.17/drivers/misc/sram.c linux-imx6-3.14/drivers/misc/sram.c
---- linux-3.14.17/drivers/misc/sram.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/misc/sram.c 2014-09-11 18:06:03.010042004 +0200
+diff -Nur linux-3.14.22.orig/drivers/misc/sram.c linux-3.14.22/drivers/misc/sram.c
+--- linux-3.14.22.orig/drivers/misc/sram.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/misc/sram.c 2014-10-22 14:55:52.630220001 -0500
@@ -29,7 +29,7 @@
#include <linux/spinlock.h>
#include <linux/genalloc.h>
@@ -91569,9 +89030,9 @@ diff -Nur linux-3.14.17/drivers/misc/sram.c linux-imx6-3.14/drivers/misc/sram.c
struct sram_dev {
struct gen_pool *pool;
-diff -Nur linux-3.14.17/drivers/mmc/core/core.c linux-imx6-3.14/drivers/mmc/core/core.c
---- linux-3.14.17/drivers/mmc/core/core.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mmc/core/core.c 2014-09-11 18:06:03.018042035 +0200
+diff -Nur linux-3.14.22.orig/drivers/mmc/core/core.c linux-3.14.22/drivers/mmc/core/core.c
+--- linux-3.14.22.orig/drivers/mmc/core/core.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mmc/core/core.c 2014-10-22 14:55:52.630220001 -0500
@@ -13,11 +13,13 @@
#include <linux/module.h>
#include <linux/init.h>
@@ -91640,9 +89101,9 @@ diff -Nur linux-3.14.17/drivers/mmc/core/core.c linux-imx6-3.14/drivers/mmc/core
mmc_host_clk_hold(host);
host->ios.vdd = fls(ocr) - 1;
-diff -Nur linux-3.14.17/drivers/mmc/core/host.c linux-imx6-3.14/drivers/mmc/core/host.c
---- linux-3.14.17/drivers/mmc/core/host.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mmc/core/host.c 2014-09-11 18:06:03.018042035 +0200
+diff -Nur linux-3.14.22.orig/drivers/mmc/core/host.c linux-3.14.22/drivers/mmc/core/host.c
+--- linux-3.14.22.orig/drivers/mmc/core/host.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mmc/core/host.c 2014-10-22 14:55:52.630220001 -0500
@@ -12,14 +12,18 @@
* MMC host class device management
*/
@@ -91740,9 +89201,9 @@ diff -Nur linux-3.14.17/drivers/mmc/core/host.c linux-imx6-3.14/drivers/mmc/core
WARN_ON((host->caps & MMC_CAP_SDIO_IRQ) &&
!host->ops->enable_sdio_irq);
-diff -Nur linux-3.14.17/drivers/mmc/core/mmc.c linux-imx6-3.14/drivers/mmc/core/mmc.c
---- linux-3.14.17/drivers/mmc/core/mmc.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mmc/core/mmc.c 2014-09-11 18:06:03.018042035 +0200
+diff -Nur linux-3.14.22.orig/drivers/mmc/core/mmc.c linux-3.14.22/drivers/mmc/core/mmc.c
+--- linux-3.14.22.orig/drivers/mmc/core/mmc.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mmc/core/mmc.c 2014-10-22 14:55:52.630220001 -0500
@@ -317,6 +317,11 @@
mmc_card_set_blockaddr(card);
}
@@ -92148,9 +89609,9 @@ diff -Nur linux-3.14.17/drivers/mmc/core/mmc.c linux-imx6-3.14/drivers/mmc/core/
NULL,
};
-diff -Nur linux-3.14.17/drivers/mmc/core/sdio_irq.c linux-imx6-3.14/drivers/mmc/core/sdio_irq.c
---- linux-3.14.17/drivers/mmc/core/sdio_irq.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mmc/core/sdio_irq.c 2014-09-11 18:06:03.022042051 +0200
+diff -Nur linux-3.14.22.orig/drivers/mmc/core/sdio_irq.c linux-3.14.22/drivers/mmc/core/sdio_irq.c
+--- linux-3.14.22.orig/drivers/mmc/core/sdio_irq.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mmc/core/sdio_irq.c 2014-10-22 14:55:52.630220001 -0500
@@ -90,6 +90,15 @@
return ret;
}
@@ -92213,9 +89674,9 @@ diff -Nur linux-3.14.17/drivers/mmc/core/sdio_irq.c linux-imx6-3.14/drivers/mmc/
}
return 0;
-diff -Nur linux-3.14.17/drivers/mmc/host/dw_mmc.c linux-imx6-3.14/drivers/mmc/host/dw_mmc.c
---- linux-3.14.17/drivers/mmc/host/dw_mmc.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mmc/host/dw_mmc.c 2014-09-11 18:06:03.026042067 +0200
+diff -Nur linux-3.14.22.orig/drivers/mmc/host/dw_mmc.c linux-3.14.22/drivers/mmc/host/dw_mmc.c
+--- linux-3.14.22.orig/drivers/mmc/host/dw_mmc.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mmc/host/dw_mmc.c 2014-10-22 14:55:52.630220001 -0500
@@ -2140,6 +2140,8 @@
if (!mmc)
return -ENOMEM;
@@ -92225,9 +89686,9 @@ diff -Nur linux-3.14.17/drivers/mmc/host/dw_mmc.c linux-imx6-3.14/drivers/mmc/ho
slot = mmc_priv(mmc);
slot->id = id;
slot->mmc = mmc;
-diff -Nur linux-3.14.17/drivers/mmc/host/Kconfig linux-imx6-3.14/drivers/mmc/host/Kconfig
---- linux-3.14.17/drivers/mmc/host/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mmc/host/Kconfig 2014-09-11 18:06:03.022042051 +0200
+diff -Nur linux-3.14.22.orig/drivers/mmc/host/Kconfig linux-3.14.22/drivers/mmc/host/Kconfig
+--- linux-3.14.22.orig/drivers/mmc/host/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mmc/host/Kconfig 2014-10-22 14:55:52.634220001 -0500
@@ -25,8 +25,7 @@
If unsure, say N.
@@ -92423,9 +89884,9 @@ diff -Nur linux-3.14.17/drivers/mmc/host/Kconfig linux-imx6-3.14/drivers/mmc/hos
help
This selects the BCM2835 SD/MMC controller. If you have a BCM2835
platform with SD or MMC devices, say Y or M here.
-diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-acpi.c linux-imx6-3.14/drivers/mmc/host/sdhci-acpi.c
---- linux-3.14.17/drivers/mmc/host/sdhci-acpi.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mmc/host/sdhci-acpi.c 2014-09-11 18:06:03.030042084 +0200
+diff -Nur linux-3.14.22.orig/drivers/mmc/host/sdhci-acpi.c linux-3.14.22/drivers/mmc/host/sdhci-acpi.c
+--- linux-3.14.22.orig/drivers/mmc/host/sdhci-acpi.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mmc/host/sdhci-acpi.c 2014-10-22 14:55:52.634220001 -0500
@@ -101,11 +101,19 @@
}
@@ -92446,9 +89907,9 @@ diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-acpi.c linux-imx6-3.14/drivers/mm
.hw_reset = sdhci_acpi_int_hw_reset,
};
-diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-bcm2835.c linux-imx6-3.14/drivers/mmc/host/sdhci-bcm2835.c
---- linux-3.14.17/drivers/mmc/host/sdhci-bcm2835.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mmc/host/sdhci-bcm2835.c 2014-09-11 18:06:03.030042084 +0200
+diff -Nur linux-3.14.22.orig/drivers/mmc/host/sdhci-bcm2835.c linux-3.14.22/drivers/mmc/host/sdhci-bcm2835.c
+--- linux-3.14.22.orig/drivers/mmc/host/sdhci-bcm2835.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mmc/host/sdhci-bcm2835.c 2014-10-22 14:55:52.634220001 -0500
@@ -131,8 +131,12 @@
.read_l = bcm2835_sdhci_readl,
.read_w = bcm2835_sdhci_readw,
@@ -92462,9 +89923,9 @@ diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-bcm2835.c linux-imx6-3.14/drivers
};
static const struct sdhci_pltfm_data bcm2835_sdhci_pdata = {
-diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-bcm-kona.c linux-imx6-3.14/drivers/mmc/host/sdhci-bcm-kona.c
---- linux-3.14.17/drivers/mmc/host/sdhci-bcm-kona.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mmc/host/sdhci-bcm-kona.c 2014-09-11 18:06:03.030042084 +0200
+diff -Nur linux-3.14.22.orig/drivers/mmc/host/sdhci-bcm-kona.c linux-3.14.22/drivers/mmc/host/sdhci-bcm-kona.c
+--- linux-3.14.22.orig/drivers/mmc/host/sdhci-bcm-kona.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mmc/host/sdhci-bcm-kona.c 2014-10-22 14:55:52.634220001 -0500
@@ -205,9 +205,13 @@
}
@@ -92479,9 +89940,9 @@ diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-bcm-kona.c linux-imx6-3.14/driver
.card_event = sdhci_bcm_kona_card_event,
};
-diff -Nur linux-3.14.17/drivers/mmc/host/sdhci.c linux-imx6-3.14/drivers/mmc/host/sdhci.c
---- linux-3.14.17/drivers/mmc/host/sdhci.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mmc/host/sdhci.c 2014-09-11 18:06:03.034042099 +0200
+diff -Nur linux-3.14.22.orig/drivers/mmc/host/sdhci.c linux-3.14.22/drivers/mmc/host/sdhci.c
+--- linux-3.14.22.orig/drivers/mmc/host/sdhci.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mmc/host/sdhci.c 2014-10-22 14:55:52.634220001 -0500
@@ -44,6 +44,8 @@
#define MAX_TUNING_LOOP 40
@@ -93735,9 +91196,9 @@ diff -Nur linux-3.14.17/drivers/mmc/host/sdhci.c linux-imx6-3.14/drivers/mmc/hos
kfree(host->align_buffer);
host->adma_desc = NULL;
-diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-cns3xxx.c linux-imx6-3.14/drivers/mmc/host/sdhci-cns3xxx.c
---- linux-3.14.17/drivers/mmc/host/sdhci-cns3xxx.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mmc/host/sdhci-cns3xxx.c 2014-09-11 18:06:03.030042084 +0200
+diff -Nur linux-3.14.22.orig/drivers/mmc/host/sdhci-cns3xxx.c linux-3.14.22/drivers/mmc/host/sdhci-cns3xxx.c
+--- linux-3.14.22.orig/drivers/mmc/host/sdhci-cns3xxx.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mmc/host/sdhci-cns3xxx.c 2014-10-22 14:55:52.634220001 -0500
@@ -30,13 +30,12 @@
u16 clk;
unsigned long timeout;
@@ -93781,9 +91242,9 @@ diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-cns3xxx.c linux-imx6-3.14/drivers
};
static int sdhci_cns3xxx_probe(struct platform_device *pdev)
-diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-dove.c linux-imx6-3.14/drivers/mmc/host/sdhci-dove.c
---- linux-3.14.17/drivers/mmc/host/sdhci-dove.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mmc/host/sdhci-dove.c 2014-09-11 18:06:03.030042084 +0200
+diff -Nur linux-3.14.22.orig/drivers/mmc/host/sdhci-dove.c linux-3.14.22/drivers/mmc/host/sdhci-dove.c
+--- linux-3.14.22.orig/drivers/mmc/host/sdhci-dove.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mmc/host/sdhci-dove.c 2014-10-22 14:55:52.634220001 -0500
@@ -86,6 +86,10 @@
static const struct sdhci_ops sdhci_dove_ops = {
.read_w = sdhci_dove_readw,
@@ -93795,9 +91256,9 @@ diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-dove.c linux-imx6-3.14/drivers/mm
};
static const struct sdhci_pltfm_data sdhci_dove_pdata = {
-diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-esdhc.h linux-imx6-3.14/drivers/mmc/host/sdhci-esdhc.h
---- linux-3.14.17/drivers/mmc/host/sdhci-esdhc.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mmc/host/sdhci-esdhc.h 2014-09-11 18:06:03.030042084 +0200
+diff -Nur linux-3.14.22.orig/drivers/mmc/host/sdhci-esdhc.h linux-3.14.22/drivers/mmc/host/sdhci-esdhc.h
+--- linux-3.14.22.orig/drivers/mmc/host/sdhci-esdhc.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mmc/host/sdhci-esdhc.h 2014-10-22 14:55:52.634220001 -0500
@@ -20,12 +20,11 @@
#define ESDHC_DEFAULT_QUIRKS (SDHCI_QUIRK_FORCE_BLK_SZ_2048 | \
@@ -93813,9 +91274,9 @@ diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-esdhc.h linux-imx6-3.14/drivers/m
#define ESDHC_CLOCK_MASK 0x0000fff0
#define ESDHC_PREDIV_SHIFT 8
#define ESDHC_DIVIDER_SHIFT 4
-diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-esdhc-imx.c linux-imx6-3.14/drivers/mmc/host/sdhci-esdhc-imx.c
---- linux-3.14.17/drivers/mmc/host/sdhci-esdhc-imx.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mmc/host/sdhci-esdhc-imx.c 2014-09-11 18:06:03.030042084 +0200
+diff -Nur linux-3.14.22.orig/drivers/mmc/host/sdhci-esdhc-imx.c linux-3.14.22/drivers/mmc/host/sdhci-esdhc-imx.c
+--- linux-3.14.22.orig/drivers/mmc/host/sdhci-esdhc-imx.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mmc/host/sdhci-esdhc-imx.c 2014-10-22 14:55:52.634220001 -0500
@@ -11,6 +11,7 @@
* the Free Software Foundation; either version 2 of the License.
*/
@@ -94229,9 +91690,9 @@ diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-esdhc-imx.c linux-imx6-3.14/drive
clk_prepare_enable(imx_data->clk_ahb);
return sdhci_runtime_resume_host(host);
-diff -Nur linux-3.14.17/drivers/mmc/host/sdhci.h linux-imx6-3.14/drivers/mmc/host/sdhci.h
---- linux-3.14.17/drivers/mmc/host/sdhci.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mmc/host/sdhci.h 2014-09-11 18:06:03.034042099 +0200
+diff -Nur linux-3.14.22.orig/drivers/mmc/host/sdhci.h linux-3.14.22/drivers/mmc/host/sdhci.h
+--- linux-3.14.22.orig/drivers/mmc/host/sdhci.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mmc/host/sdhci.h 2014-10-22 14:55:52.634220001 -0500
@@ -281,18 +281,15 @@
unsigned int (*get_max_clock)(struct sdhci_host *host);
unsigned int (*get_min_clock)(struct sdhci_host *host);
@@ -94272,9 +91733,9 @@ diff -Nur linux-3.14.17/drivers/mmc/host/sdhci.h linux-imx6-3.14/drivers/mmc/hos
#ifdef CONFIG_PM
extern int sdhci_suspend_host(struct sdhci_host *host);
extern int sdhci_resume_host(struct sdhci_host *host);
-diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-of-arasan.c linux-imx6-3.14/drivers/mmc/host/sdhci-of-arasan.c
---- linux-3.14.17/drivers/mmc/host/sdhci-of-arasan.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mmc/host/sdhci-of-arasan.c 2014-09-11 18:06:03.030042084 +0200
+diff -Nur linux-3.14.22.orig/drivers/mmc/host/sdhci-of-arasan.c linux-3.14.22/drivers/mmc/host/sdhci-of-arasan.c
+--- linux-3.14.22.orig/drivers/mmc/host/sdhci-of-arasan.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mmc/host/sdhci-of-arasan.c 2014-10-22 14:55:52.634220001 -0500
@@ -52,8 +52,12 @@
}
@@ -94288,9 +91749,9 @@ diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-of-arasan.c linux-imx6-3.14/drive
};
static struct sdhci_pltfm_data sdhci_arasan_pdata = {
-diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-of-esdhc.c linux-imx6-3.14/drivers/mmc/host/sdhci-of-esdhc.c
---- linux-3.14.17/drivers/mmc/host/sdhci-of-esdhc.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mmc/host/sdhci-of-esdhc.c 2014-09-11 18:06:03.030042084 +0200
+diff -Nur linux-3.14.22.orig/drivers/mmc/host/sdhci-of-esdhc.c linux-3.14.22/drivers/mmc/host/sdhci-of-esdhc.c
+--- linux-3.14.22.orig/drivers/mmc/host/sdhci-of-esdhc.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mmc/host/sdhci-of-esdhc.c 2014-10-22 14:55:52.634220001 -0500
@@ -199,13 +199,14 @@
static void esdhc_of_set_clock(struct sdhci_host *host, unsigned int clock)
@@ -94412,9 +91873,9 @@ diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-of-esdhc.c linux-imx6-3.14/driver
},
.probe = sdhci_esdhc_probe,
.remove = sdhci_esdhc_remove,
-diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-of-hlwd.c linux-imx6-3.14/drivers/mmc/host/sdhci-of-hlwd.c
---- linux-3.14.17/drivers/mmc/host/sdhci-of-hlwd.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mmc/host/sdhci-of-hlwd.c 2014-09-11 18:06:03.030042084 +0200
+diff -Nur linux-3.14.22.orig/drivers/mmc/host/sdhci-of-hlwd.c linux-3.14.22/drivers/mmc/host/sdhci-of-hlwd.c
+--- linux-3.14.22.orig/drivers/mmc/host/sdhci-of-hlwd.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mmc/host/sdhci-of-hlwd.c 2014-10-22 14:55:52.634220001 -0500
@@ -58,6 +58,10 @@
.write_l = sdhci_hlwd_writel,
.write_w = sdhci_hlwd_writew,
@@ -94426,9 +91887,9 @@ diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-of-hlwd.c linux-imx6-3.14/drivers
};
static const struct sdhci_pltfm_data sdhci_hlwd_pdata = {
-diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-pci.c linux-imx6-3.14/drivers/mmc/host/sdhci-pci.c
---- linux-3.14.17/drivers/mmc/host/sdhci-pci.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mmc/host/sdhci-pci.c 2014-09-11 18:06:03.030042084 +0200
+diff -Nur linux-3.14.22.orig/drivers/mmc/host/sdhci-pci.c linux-3.14.22/drivers/mmc/host/sdhci-pci.c
+--- linux-3.14.22.orig/drivers/mmc/host/sdhci-pci.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mmc/host/sdhci-pci.c 2014-10-22 14:55:52.738220001 -0500
@@ -1011,7 +1011,7 @@
return 0;
}
@@ -94460,9 +91921,9 @@ diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-pci.c linux-imx6-3.14/drivers/mmc
.hw_reset = sdhci_pci_hw_reset,
};
-diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-pltfm.c linux-imx6-3.14/drivers/mmc/host/sdhci-pltfm.c
---- linux-3.14.17/drivers/mmc/host/sdhci-pltfm.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mmc/host/sdhci-pltfm.c 2014-09-11 18:06:03.030042084 +0200
+diff -Nur linux-3.14.22.orig/drivers/mmc/host/sdhci-pltfm.c linux-3.14.22/drivers/mmc/host/sdhci-pltfm.c
+--- linux-3.14.22.orig/drivers/mmc/host/sdhci-pltfm.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mmc/host/sdhci-pltfm.c 2014-10-22 14:55:52.738220001 -0500
@@ -45,6 +45,10 @@
EXPORT_SYMBOL_GPL(sdhci_pltfm_clk_get_max_clock);
@@ -94474,9 +91935,9 @@ diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-pltfm.c linux-imx6-3.14/drivers/m
};
#ifdef CONFIG_OF
-diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-pxav2.c linux-imx6-3.14/drivers/mmc/host/sdhci-pxav2.c
---- linux-3.14.17/drivers/mmc/host/sdhci-pxav2.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mmc/host/sdhci-pxav2.c 2014-09-11 18:06:03.030042084 +0200
+diff -Nur linux-3.14.22.orig/drivers/mmc/host/sdhci-pxav2.c linux-3.14.22/drivers/mmc/host/sdhci-pxav2.c
+--- linux-3.14.22.orig/drivers/mmc/host/sdhci-pxav2.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mmc/host/sdhci-pxav2.c 2014-10-22 14:55:52.738220001 -0500
@@ -51,11 +51,13 @@
#define MMC_CARD 0x1000
#define MMC_WIDTH 0x0100
@@ -94520,9 +91981,9 @@ diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-pxav2.c linux-imx6-3.14/drivers/m
};
#ifdef CONFIG_OF
-diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-pxav3.c linux-imx6-3.14/drivers/mmc/host/sdhci-pxav3.c
---- linux-3.14.17/drivers/mmc/host/sdhci-pxav3.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mmc/host/sdhci-pxav3.c 2014-09-11 18:06:03.030042084 +0200
+diff -Nur linux-3.14.22.orig/drivers/mmc/host/sdhci-pxav3.c linux-3.14.22/drivers/mmc/host/sdhci-pxav3.c
+--- linux-3.14.22.orig/drivers/mmc/host/sdhci-pxav3.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mmc/host/sdhci-pxav3.c 2014-10-22 14:55:52.738220001 -0500
@@ -57,11 +57,13 @@
#define SDCE_MISC_INT (1<<2)
#define SDCE_MISC_INT_EN (1<<1)
@@ -94567,9 +92028,9 @@ diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-pxav3.c linux-imx6-3.14/drivers/m
};
static struct sdhci_pltfm_data sdhci_pxav3_pdata = {
-diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-s3c.c linux-imx6-3.14/drivers/mmc/host/sdhci-s3c.c
---- linux-3.14.17/drivers/mmc/host/sdhci-s3c.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mmc/host/sdhci-s3c.c 2014-09-11 18:06:03.034042099 +0200
+diff -Nur linux-3.14.22.orig/drivers/mmc/host/sdhci-s3c.c linux-3.14.22/drivers/mmc/host/sdhci-s3c.c
+--- linux-3.14.22.orig/drivers/mmc/host/sdhci-s3c.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mmc/host/sdhci-s3c.c 2014-10-22 14:55:52.742220001 -0500
@@ -57,6 +57,8 @@
struct clk *clk_io;
@@ -94708,9 +92169,9 @@ diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-s3c.c linux-imx6-3.14/drivers/mmc
};
#define EXYNOS4_SDHCI_DRV_DATA ((kernel_ulong_t)&exynos4_sdhci_drv_data)
#else
-diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-sirf.c linux-imx6-3.14/drivers/mmc/host/sdhci-sirf.c
---- linux-3.14.17/drivers/mmc/host/sdhci-sirf.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mmc/host/sdhci-sirf.c 2014-09-11 18:06:03.034042099 +0200
+diff -Nur linux-3.14.22.orig/drivers/mmc/host/sdhci-sirf.c linux-3.14.22/drivers/mmc/host/sdhci-sirf.c
+--- linux-3.14.22.orig/drivers/mmc/host/sdhci-sirf.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mmc/host/sdhci-sirf.c 2014-10-22 14:55:52.742220001 -0500
@@ -28,7 +28,11 @@
}
@@ -94723,9 +92184,9 @@ diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-sirf.c linux-imx6-3.14/drivers/mm
};
static struct sdhci_pltfm_data sdhci_sirf_pdata = {
-diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-spear.c linux-imx6-3.14/drivers/mmc/host/sdhci-spear.c
---- linux-3.14.17/drivers/mmc/host/sdhci-spear.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mmc/host/sdhci-spear.c 2014-09-11 18:06:03.034042099 +0200
+diff -Nur linux-3.14.22.orig/drivers/mmc/host/sdhci-spear.c linux-3.14.22/drivers/mmc/host/sdhci-spear.c
+--- linux-3.14.22.orig/drivers/mmc/host/sdhci-spear.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mmc/host/sdhci-spear.c 2014-10-22 14:55:52.742220001 -0500
@@ -37,7 +37,10 @@
/* sdhci ops */
@@ -94738,9 +92199,9 @@ diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-spear.c linux-imx6-3.14/drivers/m
};
/* gpio card detection interrupt handler */
-diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-tegra.c linux-imx6-3.14/drivers/mmc/host/sdhci-tegra.c
---- linux-3.14.17/drivers/mmc/host/sdhci-tegra.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mmc/host/sdhci-tegra.c 2014-09-11 18:06:03.034042099 +0200
+diff -Nur linux-3.14.22.orig/drivers/mmc/host/sdhci-tegra.c linux-3.14.22/drivers/mmc/host/sdhci-tegra.c
+--- linux-3.14.22.orig/drivers/mmc/host/sdhci-tegra.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mmc/host/sdhci-tegra.c 2014-10-22 14:55:52.742220001 -0500
@@ -48,19 +48,6 @@
int power_gpio;
};
@@ -94807,9 +92268,9 @@ diff -Nur linux-3.14.17/drivers/mmc/host/sdhci-tegra.c linux-imx6-3.14/drivers/m
};
static const struct sdhci_pltfm_data sdhci_tegra20_pdata = {
-diff -Nur linux-3.14.17/drivers/mtd/chips/cfi_cmdset_0002.c linux-imx6-3.14/drivers/mtd/chips/cfi_cmdset_0002.c
---- linux-3.14.17/drivers/mtd/chips/cfi_cmdset_0002.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mtd/chips/cfi_cmdset_0002.c 2014-09-11 18:06:03.038042115 +0200
+diff -Nur linux-3.14.22.orig/drivers/mtd/chips/cfi_cmdset_0002.c linux-3.14.22/drivers/mtd/chips/cfi_cmdset_0002.c
+--- linux-3.14.22.orig/drivers/mtd/chips/cfi_cmdset_0002.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mtd/chips/cfi_cmdset_0002.c 2014-10-22 14:55:52.746220001 -0500
@@ -1058,17 +1058,13 @@
#define UDELAY(map, chip, adr, usec) \
@@ -94828,9 +92289,9 @@ diff -Nur linux-3.14.17/drivers/mtd/chips/cfi_cmdset_0002.c linux-imx6-3.14/driv
} while (0)
#endif
-diff -Nur linux-3.14.17/drivers/mtd/ubi/build.c linux-imx6-3.14/drivers/mtd/ubi/build.c
---- linux-3.14.17/drivers/mtd/ubi/build.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/mtd/ubi/build.c 2014-09-11 18:06:03.074042259 +0200
+diff -Nur linux-3.14.22.orig/drivers/mtd/ubi/build.c linux-3.14.22/drivers/mtd/ubi/build.c
+--- linux-3.14.22.orig/drivers/mtd/ubi/build.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/mtd/ubi/build.c 2014-10-22 14:55:52.746220001 -0500
@@ -640,7 +640,7 @@
dbg_gen("sizeof(struct ubi_ainf_peb) %zu", sizeof(struct ubi_ainf_peb));
dbg_gen("sizeof(struct ubi_wl_entry) %zu", sizeof(struct ubi_wl_entry));
@@ -94840,9 +92301,9 @@ diff -Nur linux-3.14.17/drivers/mtd/ubi/build.c linux-imx6-3.14/drivers/mtd/ubi/
/*
* Some flashes have several erase regions. Different regions
* may have different eraseblock size and other
-diff -Nur linux-3.14.17/drivers/mxc/asrc/Kconfig linux-imx6-3.14/drivers/mxc/asrc/Kconfig
---- linux-3.14.17/drivers/mxc/asrc/Kconfig 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/asrc/Kconfig 2014-09-11 18:06:03.078042276 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/asrc/Kconfig linux-3.14.22/drivers/mxc/asrc/Kconfig
+--- linux-3.14.22.orig/drivers/mxc/asrc/Kconfig 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/asrc/Kconfig 2014-10-22 14:55:52.746220001 -0500
@@ -0,0 +1,14 @@
+#
+# ASRC configuration
@@ -94858,17 +92319,17 @@ diff -Nur linux-3.14.17/drivers/mxc/asrc/Kconfig linux-imx6-3.14/drivers/mxc/asr
+ Say Y to get the ASRC service.
+
+endmenu
-diff -Nur linux-3.14.17/drivers/mxc/asrc/Makefile linux-imx6-3.14/drivers/mxc/asrc/Makefile
---- linux-3.14.17/drivers/mxc/asrc/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/asrc/Makefile 2014-09-11 18:06:03.078042276 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/asrc/Makefile linux-3.14.22/drivers/mxc/asrc/Makefile
+--- linux-3.14.22.orig/drivers/mxc/asrc/Makefile 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/asrc/Makefile 2014-10-22 14:55:52.810220001 -0500
@@ -0,0 +1,4 @@
+#
+# Makefile for the kernel Asynchronous Sample Rate Converter driver
+#
+obj-$(CONFIG_MXC_ASRC) += mxc_asrc.o
-diff -Nur linux-3.14.17/drivers/mxc/asrc/mxc_asrc.c linux-imx6-3.14/drivers/mxc/asrc/mxc_asrc.c
---- linux-3.14.17/drivers/mxc/asrc/mxc_asrc.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/asrc/mxc_asrc.c 2014-09-11 18:06:03.078042276 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/asrc/mxc_asrc.c linux-3.14.22/drivers/mxc/asrc/mxc_asrc.c
+--- linux-3.14.22.orig/drivers/mxc/asrc/mxc_asrc.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/asrc/mxc_asrc.c 2014-10-22 14:55:52.810220001 -0500
@@ -0,0 +1,1957 @@
+/*
+ * Freescale Asynchronous Sample Rate Converter (ASRC) driver
@@ -96827,9 +94288,9 @@ diff -Nur linux-3.14.17/drivers/mxc/asrc/mxc_asrc.c linux-imx6-3.14/drivers/mxc/
+MODULE_DESCRIPTION("Asynchronous Sample Rate Converter");
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:mxc_asrc");
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_command_vg.c linux-imx6-3.14/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_command_vg.c
---- linux-3.14.17/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_command_vg.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_command_vg.c 2014-09-11 18:06:03.078042276 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_command_vg.c linux-3.14.22/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_command_vg.c
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_command_vg.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_command_vg.c 2014-10-22 14:55:52.810220001 -0500
@@ -0,0 +1,932 @@
+/****************************************************************************
+*
@@ -97763,9 +95224,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_
+
+#endif /* gcdENABLE_VG */
+
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_command_vg.h linux-imx6-3.14/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_command_vg.h
---- linux-3.14.17/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_command_vg.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_command_vg.h 2014-09-11 18:06:03.078042276 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_command_vg.h linux-3.14.22/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_command_vg.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_command_vg.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_command_vg.h 2014-10-22 14:55:52.810220001 -0500
@@ -0,0 +1,319 @@
+/****************************************************************************
+*
@@ -98086,9 +95547,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_
+
+#endif /* __gc_hal_kernel_hardware_command_h_ */
+
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.c linux-imx6-3.14/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.c
---- linux-3.14.17/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.c 2014-09-11 18:06:03.078042276 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.c linux-3.14.22/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.c
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.c 2014-10-22 14:55:52.814220001 -0500
@@ -0,0 +1,2114 @@
+/****************************************************************************
+*
@@ -100204,9 +97665,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_
+}
+#endif /* gcdENABLE_VG */
+
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.h linux-imx6-3.14/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.h
---- linux-3.14.17/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.h 2014-09-11 18:06:03.078042276 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.h linux-3.14.22/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.h 2014-10-22 14:55:52.814220001 -0500
@@ -0,0 +1,75 @@
+/****************************************************************************
+*
@@ -100283,9 +97744,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_
+
+#endif /* __gc_hal_kernel_hardware_h_ */
+
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_context.c linux-imx6-3.14/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_context.c
---- linux-3.14.17/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_context.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_context.c 2014-09-11 18:06:03.082042291 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_context.c linux-3.14.22/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_context.c
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_context.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_context.c 2014-10-22 14:55:52.814220001 -0500
@@ -0,0 +1,1735 @@
+/****************************************************************************
+*
@@ -102022,9 +99483,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_c
+#endif
+}
+
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_context.h linux-imx6-3.14/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_context.h
---- linux-3.14.17/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_context.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_context.h 2014-09-11 18:06:03.082042291 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_context.h linux-3.14.22/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_context.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_context.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_context.h 2014-10-22 14:55:52.814220001 -0500
@@ -0,0 +1,157 @@
+/****************************************************************************
+*
@@ -102183,9 +99644,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_c
+
+#endif /* __gc_hal_kernel_context_h_ */
+
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c linux-imx6-3.14/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c
---- linux-3.14.17/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c 2014-09-11 18:06:03.082042291 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c linux-3.14.22/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c 2014-10-22 14:55:52.822220001 -0500
@@ -0,0 +1,7280 @@
+/****************************************************************************
+*
@@ -109467,9 +106928,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_h
+#endif
+
+
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.h linux-imx6-3.14/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.h
---- linux-3.14.17/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.h 2014-09-11 18:06:03.082042291 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.h linux-3.14.22/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.h 2014-10-22 14:55:52.822220001 -0500
@@ -0,0 +1,136 @@
+/****************************************************************************
+*
@@ -109607,9 +107068,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_h
+
+#endif /* __gc_hal_kernel_hardware_h_ */
+
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/config linux-imx6-3.14/drivers/mxc/gpu-viv/config
---- linux-3.14.17/drivers/mxc/gpu-viv/config 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/config 2014-09-11 18:06:03.082042291 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/config linux-3.14.22/drivers/mxc/gpu-viv/config
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/config 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/config 2014-10-22 14:55:52.822220001 -0500
@@ -0,0 +1,38 @@
+##############################################################################
+#
@@ -109649,9 +107110,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/config linux-imx6-3.14/drivers/mxc/g
+BANK_CHANNEL_BIT ?= 12
+ENABLE_GPU_CLOCK_BY_DRIVER = 1
+
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c 2014-09-11 18:06:03.082042291 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c 2014-10-22 14:55:52.826220001 -0500
@@ -0,0 +1,3967 @@
+/****************************************************************************
+*
@@ -113620,9 +111081,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c linux-imx
+***** Test Code ****************************************************************
+*******************************************************************************/
+
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c 2014-09-11 18:06:03.082042291 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c 2014-10-22 14:55:52.826220001 -0500
@@ -0,0 +1,3042 @@
+/****************************************************************************
+*
@@ -116666,9 +114127,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c l
+#endif
+}
+#endif
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command_vg.c linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command_vg.c
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command_vg.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command_vg.c 2014-09-11 18:06:03.082042291 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command_vg.c linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command_vg.c
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command_vg.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command_vg.c 2014-10-22 14:55:52.830220001 -0500
@@ -0,0 +1,3677 @@
+/****************************************************************************
+*
@@ -120347,9 +117808,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command_vg.
+}
+
+#endif /* gcdENABLE_VG */
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.c linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.c
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.c 2014-09-11 18:06:03.086042307 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.c linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.c
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.c 2014-10-22 14:55:52.830220001 -0500
@@ -0,0 +1,1604 @@
+/****************************************************************************
+*
@@ -121955,9 +119416,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.c linux-
+ gcmkFOOTER_NO();
+ return gcvSTATUS_OK;
+}
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_debug.c linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_debug.c
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_debug.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_debug.c 2014-09-11 18:06:03.086042307 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_debug.c linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_debug.c
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_debug.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_debug.c 2014-10-22 14:55:52.830220001 -0500
@@ -0,0 +1,2559 @@
+/****************************************************************************
+*
@@ -124518,9 +121979,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_debug.c lin
+ return "nil";
+ }
+}
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_event.c linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_event.c
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_event.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_event.c 2014-09-11 18:06:03.110042404 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_event.c linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_event.c
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_event.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_event.c 2014-10-22 14:55:52.834220001 -0500
@@ -0,0 +1,2898 @@
+/****************************************************************************
+*
@@ -127420,9 +124881,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_event.c lin
+
+ return gcvSTATUS_OK;
+}
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h 2014-09-11 18:06:03.082042291 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h 2014-10-22 14:55:52.834220001 -0500
@@ -0,0 +1,1011 @@
+/****************************************************************************
+*
@@ -128435,9 +125896,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h linux-imx
+#endif
+
+#endif /* __gc_hal_kernel_h_ */
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_heap.c linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_heap.c
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_heap.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_heap.c 2014-09-11 18:06:03.110042404 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_heap.c linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_heap.c
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_heap.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_heap.c 2014-10-22 14:55:52.834220001 -0500
@@ -0,0 +1,859 @@
+/****************************************************************************
+*
@@ -129298,9 +126759,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_heap.c linu
+***** Test Code ****************************************************************
+*******************************************************************************/
+
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_interrupt_vg.c linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_interrupt_vg.c
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_interrupt_vg.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_interrupt_vg.c 2014-09-11 18:06:03.110042404 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_interrupt_vg.c linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_interrupt_vg.c
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_interrupt_vg.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_interrupt_vg.c 2014-10-22 14:55:52.834220001 -0500
@@ -0,0 +1,877 @@
+/****************************************************************************
+*
@@ -130179,9 +127640,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_interrupt_v
+}
+
+#endif /* gcdENABLE_VG */
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c 2014-09-11 18:06:03.114042420 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c 2014-10-22 14:55:52.834220001 -0500
@@ -0,0 +1,1982 @@
+/****************************************************************************
+*
@@ -132165,9 +129626,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c linux
+****************************** T E S T C O D E ******************************
+******************************************************************************/
+
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu_vg.c linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu_vg.c
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu_vg.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu_vg.c 2014-09-11 18:06:03.114042420 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu_vg.c linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu_vg.c
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu_vg.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu_vg.c 2014-10-22 14:55:52.834220001 -0500
@@ -0,0 +1,522 @@
+/****************************************************************************
+*
@@ -132691,9 +130152,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu_vg.c li
+}
+
+#endif /* gcdENABLE_VG */
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_power.c linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_power.c
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_power.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_power.c 2014-09-11 18:06:03.114042420 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_power.c linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_power.c
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_power.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_power.c 2014-10-22 14:55:52.838220001 -0500
@@ -0,0 +1,347 @@
+/****************************************************************************
+*
@@ -133042,9 +130503,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_power.c lin
+ return gcvSTATUS_OK;
+}
+#endif
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_precomp.h linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_precomp.h
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_precomp.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_precomp.h 2014-09-11 18:06:03.114042420 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_precomp.h linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_precomp.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_precomp.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_precomp.h 2014-10-22 14:55:52.838220001 -0500
@@ -0,0 +1,29 @@
+/****************************************************************************
+*
@@ -133075,9 +130536,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_precomp.h l
+#include "gc_hal_kernel.h"
+
+#endif /* __gc_hal_kernel_precomp_h_ */
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_vg.c linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_vg.c
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_vg.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_vg.c 2014-09-11 18:06:03.114042420 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_vg.c linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_vg.c
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_vg.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_vg.c 2014-10-22 14:55:52.838220001 -0500
@@ -0,0 +1,895 @@
+/****************************************************************************
+*
@@ -133974,9 +131435,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_vg.c linux-
+}
+
+#endif /* gcdENABLE_VG */
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_vg.h linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_vg.h
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_vg.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_vg.h 2014-09-11 18:06:03.114042420 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_vg.h linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_vg.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_vg.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_vg.h 2014-10-22 14:55:52.838220001 -0500
@@ -0,0 +1,85 @@
+/****************************************************************************
+*
@@ -134063,9 +131524,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_vg.h linux-
+};
+
+#endif /* __gc_hal_kernel_h_ */
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c 2014-09-11 18:06:03.114042420 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c 2014-10-22 14:55:52.838220001 -0500
@@ -0,0 +1,2264 @@
+/****************************************************************************
+*
@@ -136331,9 +133792,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memor
+ gcmkFOOTER();
+ return status;
+}
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h 2014-09-11 18:06:03.118042434 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h 2014-10-22 14:55:52.838220001 -0500
@@ -0,0 +1,3896 @@
+/****************************************************************************
+*
@@ -140231,9 +137692,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h linux-i
+#endif
+
+#endif /* __gc_hal_base_h_ */
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_compiler.h linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_compiler.h
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_compiler.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_compiler.h 2014-09-11 18:06:03.118042434 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_compiler.h linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_compiler.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_compiler.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_compiler.h 2014-10-22 14:55:52.842220001 -0500
@@ -0,0 +1,4298 @@
+/****************************************************************************
+*
@@ -144533,9 +141994,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_compiler.h lin
+
+#endif /* VIVANTE_NO_3D */
+#endif /* __gc_hal_compiler_h_ */
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h 2014-09-11 18:06:03.118042434 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h 2014-10-22 14:55:52.842220001 -0500
@@ -0,0 +1,1051 @@
+/****************************************************************************
+*
@@ -145588,9 +143049,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h linux
+#endif
+
+#endif /* __gc_hal_driver_h_ */
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver_vg.h linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver_vg.h
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver_vg.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver_vg.h 2014-09-11 18:06:03.118042434 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver_vg.h linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver_vg.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver_vg.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver_vg.h 2014-10-22 14:55:52.842220001 -0500
@@ -0,0 +1,270 @@
+/****************************************************************************
+*
@@ -145862,9 +143323,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver_vg.h li
+#endif
+
+#endif /* __gc_hal_driver_h_ */
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_dump.h linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_dump.h
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_dump.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_dump.h 2014-09-11 18:06:03.118042434 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_dump.h linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_dump.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_dump.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_dump.h 2014-10-22 14:55:52.842220001 -0500
@@ -0,0 +1,88 @@
+/****************************************************************************
+*
@@ -145954,9 +143415,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_dump.h linux-i
+
+#endif /* __gc_hal_dump_h_ */
+
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform.h linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform.h
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform.h 2014-09-11 18:06:03.118042434 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform.h linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform.h 2014-10-22 14:55:52.842220001 -0500
@@ -0,0 +1,627 @@
+/****************************************************************************
+*
@@ -146585,9 +144046,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform.h
+#endif
+
+#endif /* __gc_hal_eglplatform_h_ */
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform_type.h linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform_type.h
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform_type.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform_type.h 2014-09-11 18:06:03.118042434 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform_type.h linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform_type.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform_type.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform_type.h 2014-10-22 14:55:52.842220001 -0500
@@ -0,0 +1,286 @@
+/****************************************************************************
+*
@@ -146875,9 +144336,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform_ty
+#endif
+
+#endif /* __gc_hal_eglplatform_type_h_ */
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h 2014-09-11 18:06:03.118042434 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h 2014-10-22 14:55:52.846220001 -0500
@@ -0,0 +1,2053 @@
+/****************************************************************************
+*
@@ -148932,9 +146393,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h linux
+
+#endif /* VIVANTE_NO_3D */
+#endif /* __gc_hal_engine_h_ */
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine_vg.h linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine_vg.h
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine_vg.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine_vg.h 2014-09-11 18:06:03.118042434 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine_vg.h linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine_vg.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine_vg.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine_vg.h 2014-10-22 14:55:52.846220001 -0500
@@ -0,0 +1,904 @@
+/****************************************************************************
+*
@@ -149840,9 +147301,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine_vg.h li
+#endif
+
+#endif /* __gc_hal_vg_h_ */
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h 2014-09-11 18:06:03.118042434 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h 2014-10-22 14:55:52.846220001 -0500
@@ -0,0 +1,965 @@
+/****************************************************************************
+*
@@ -150809,9 +148270,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h linux-i
+#endif
+
+#endif /* __gc_hal_enum_h_ */
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h 2014-09-11 18:06:03.114042420 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h 2014-10-22 14:55:52.846220001 -0500
@@ -0,0 +1,2661 @@
+/****************************************************************************
+*
@@ -153474,9 +150935,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h linux-imx6-3
+#endif
+
+#endif /* __gc_hal_h_ */
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_kernel_buffer.h linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_kernel_buffer.h
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_kernel_buffer.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_kernel_buffer.h 2014-09-11 18:06:03.122042450 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_kernel_buffer.h linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_kernel_buffer.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_kernel_buffer.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_kernel_buffer.h 2014-10-22 14:55:52.846220001 -0500
@@ -0,0 +1,185 @@
+/****************************************************************************
+*
@@ -153663,9 +151124,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_kernel_buffer.
+#endif
+
+#endif /* __gc_hal_kernel_buffer_h_ */
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_mem.h linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_mem.h
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_mem.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_mem.h 2014-09-11 18:06:03.122042450 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_mem.h linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_mem.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_mem.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_mem.h 2014-10-22 14:55:52.846220001 -0500
@@ -0,0 +1,530 @@
+/****************************************************************************
+*
@@ -154197,9 +151658,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_mem.h linux-im
+
+#endif /* VIVANTE_NO_3D */
+#endif /* __gc_hal_mem_h_ */
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h 2014-09-11 18:06:03.122042450 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h 2014-10-22 14:55:52.846220001 -0500
@@ -0,0 +1,947 @@
+/****************************************************************************
+*
@@ -155148,9 +152609,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h linu
+#endif
+
+#endif /* __gc_hal_options_h_ */
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_profiler.h linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_profiler.h
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_profiler.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_profiler.h 2014-09-11 18:06:03.122042450 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_profiler.h linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_profiler.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_profiler.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_profiler.h 2014-10-22 14:55:52.846220001 -0500
@@ -0,0 +1,584 @@
+/****************************************************************************
+*
@@ -155736,9 +153197,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_profiler.h lin
+#endif
+
+#endif /* __gc_hal_profiler_h_ */
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_raster.h linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_raster.h
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_raster.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_raster.h 2014-09-11 18:06:03.122042450 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_raster.h linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_raster.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_raster.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_raster.h 2014-10-22 14:55:52.850220001 -0500
@@ -0,0 +1,1010 @@
+/****************************************************************************
+*
@@ -156750,9 +154211,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_raster.h linux
+#endif
+
+#endif /* __gc_hal_raster_h_ */
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_rename.h linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_rename.h
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_rename.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_rename.h 2014-09-11 18:06:03.122042450 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_rename.h linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_rename.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_rename.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_rename.h 2014-10-22 14:55:52.850220001 -0500
@@ -0,0 +1,248 @@
+/****************************************************************************
+*
@@ -157002,9 +154463,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_rename.h linux
+#endif
+
+#endif /* __gc_hal_rename_h_ */
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_statistics.h linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_statistics.h
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_statistics.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_statistics.h 2014-09-11 18:06:03.122042450 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_statistics.h linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_statistics.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_statistics.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_statistics.h 2014-10-22 14:55:52.850220001 -0500
@@ -0,0 +1,115 @@
+/****************************************************************************
+*
@@ -157121,9 +154582,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_statistics.h l
+
+#endif /*__gc_hal_statistics_h_ */
+
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_types.h linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_types.h
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_types.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_types.h 2014-09-11 18:06:03.122042450 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_types.h linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_types.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_types.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_types.h 2014-10-22 14:55:52.850220001 -0500
@@ -0,0 +1,1080 @@
+/****************************************************************************
+*
@@ -158205,9 +155666,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_types.h linux-
+#endif
+
+#endif /* __gc_hal_types_h_ */
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h 2014-09-11 18:06:03.122042450 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h 2014-10-22 14:55:52.850220001 -0500
@@ -0,0 +1,37 @@
+/****************************************************************************
+*
@@ -158246,9 +155707,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h linu
+#define gcvVERSION_TIME __TIME__
+
+#endif /* __gc_hal_version_h_ */
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_vg.h linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_vg.h
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_vg.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_vg.h 2014-09-11 18:06:03.122042450 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_vg.h linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_vg.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_vg.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_vg.h 2014-10-22 14:55:52.850220001 -0500
@@ -0,0 +1,913 @@
+/****************************************************************************
+*
@@ -159163,9 +156624,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_vg.h linux-imx
+#endif
+
+#endif /* __gc_hal_h_ */
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debugfs.c linux-imx6-3.14/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debugfs.c
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debugfs.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debugfs.c 2014-09-11 18:06:03.126042465 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debugfs.c linux-3.14.22/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debugfs.c
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debugfs.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debugfs.c 2014-10-22 14:55:52.850220001 -0500
@@ -0,0 +1,795 @@
+/****************************************************************************
+*
@@ -159962,9 +157423,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_de
+{
+ gcmkDBGFSPRINT ( _GetArgumentSize ( Message ) , Message ) ;
+}
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debugfs.h linux-imx6-3.14/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debugfs.h
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debugfs.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debugfs.h 2014-09-11 18:06:03.126042465 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debugfs.h linux-3.14.22/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debugfs.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debugfs.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debugfs.h 2014-10-22 14:55:52.850220001 -0500
@@ -0,0 +1,84 @@
+/****************************************************************************
+*
@@ -160050,9 +157511,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_de
+#endif
+
+
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debug.h linux-imx6-3.14/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debug.h
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debug.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debug.h 2014-09-11 18:06:03.126042465 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debug.h linux-3.14.22/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debug.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debug.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debug.h 2014-10-22 14:55:52.850220001 -0500
@@ -0,0 +1,102 @@
+/****************************************************************************
+*
@@ -160156,9 +157617,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_de
+#endif
+
+#endif /* __gc_hal_kernel_debug_h_ */
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c linux-imx6-3.14/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c 2014-09-11 18:06:03.126042465 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c linux-3.14.22/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c 2014-10-22 14:55:52.850220001 -0500
@@ -0,0 +1,1676 @@
+/****************************************************************************
+*
@@ -161836,9 +159297,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_de
+ gcmkFOOTER();
+ return status;
+}
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.h linux-imx6-3.14/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.h
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.h 2014-09-11 18:06:03.126042465 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.h linux-3.14.22/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.h 2014-10-22 14:55:52.854220001 -0500
@@ -0,0 +1,192 @@
+/****************************************************************************
+*
@@ -162032,9 +159493,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_de
+ );
+
+#endif /* __gc_hal_kernel_device_h_ */
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c linux-imx6-3.14/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c 2014-09-11 18:06:03.126042465 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c linux-3.14.22/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c 2014-10-22 14:55:52.854220001 -0500
@@ -0,0 +1,1471 @@
+/****************************************************************************
+*
@@ -163507,9 +160968,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_dr
+module_exit(gpu_exit);
+
+#endif
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.c linux-imx6-3.14/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.c
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.c 2014-09-11 18:06:03.126042465 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.c linux-3.14.22/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.c
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.c 2014-10-22 14:55:52.854220001 -0500
@@ -0,0 +1,481 @@
+/****************************************************************************
+*
@@ -163992,9 +161453,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_li
+ gcmkFOOTER_ARG("Settings->signal=%d", Settings->signal);
+ return gcvSTATUS_OK;
+}
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.h linux-imx6-3.14/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.h
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.h 2014-09-11 18:06:03.126042465 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.h linux-3.14.22/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.h 2014-10-22 14:55:52.854220001 -0500
@@ -0,0 +1,94 @@
+/****************************************************************************
+*
@@ -164090,9 +161551,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_li
+}
+
+#endif /* __gc_hal_kernel_linux_h_ */
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_math.c linux-imx6-3.14/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_math.c
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_math.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_math.c 2014-09-11 18:06:03.126042465 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_math.c linux-3.14.22/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_math.c
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_math.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_math.c 2014-10-22 14:55:52.854220001 -0500
@@ -0,0 +1,32 @@
+/****************************************************************************
+*
@@ -164126,9 +161587,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_ma
+ if(Y ==0) {return 0;}
+ else {return X % Y;}
+}
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c linux-imx6-3.14/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c 2014-09-11 18:06:03.130042483 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c linux-3.14.22/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c 2014-10-22 14:55:52.858220001 -0500
@@ -0,0 +1,9019 @@
+/****************************************************************************
+*
@@ -173149,9 +170610,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os
+ return status;
+}
+#endif
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.h linux-imx6-3.14/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.h
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.h 2014-09-11 18:06:03.130042483 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.h linux-3.14.22/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.h 2014-10-22 14:55:52.858220001 -0500
@@ -0,0 +1,83 @@
+/****************************************************************************
+*
@@ -173236,9 +170697,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os
+DRIVER_ARGS;
+
+#endif /* __gc_hal_kernel_os_h_ */
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.c linux-imx6-3.14/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.c
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.c 2014-09-11 18:06:03.130042483 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.c linux-3.14.22/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.c
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.c 2014-10-22 14:55:52.858220001 -0500
@@ -0,0 +1,174 @@
+/****************************************************************************
+*
@@ -173414,9 +170875,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sy
+}
+
+#endif
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.h linux-imx6-3.14/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.h
---- linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.h 2014-09-11 18:06:03.130042483 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.h linux-3.14.22/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.h
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.h 2014-10-22 14:55:52.858220001 -0500
@@ -0,0 +1,71 @@
+/****************************************************************************
+*
@@ -173489,9 +170950,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sy
+ );
+
+#endif /* __gc_hal_kernel_sync_h_ */
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/Kbuild linux-imx6-3.14/drivers/mxc/gpu-viv/Kbuild
---- linux-3.14.17/drivers/mxc/gpu-viv/Kbuild 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/Kbuild 2014-09-11 18:06:03.078042276 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/Kbuild linux-3.14.22/drivers/mxc/gpu-viv/Kbuild
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/Kbuild 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/Kbuild 2014-10-22 14:55:52.858220001 -0500
@@ -0,0 +1,236 @@
+##############################################################################
+#
@@ -173729,9 +171190,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/Kbuild linux-imx6-3.14/drivers/mxc/g
+galcore-objs := $(OBJS)
+
+endif
-diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/Kconfig linux-imx6-3.14/drivers/mxc/gpu-viv/Kconfig
---- linux-3.14.17/drivers/mxc/gpu-viv/Kconfig 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/gpu-viv/Kconfig 2014-09-11 18:06:03.078042276 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/gpu-viv/Kconfig linux-3.14.22/drivers/mxc/gpu-viv/Kconfig
+--- linux-3.14.22.orig/drivers/mxc/gpu-viv/Kconfig 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/gpu-viv/Kconfig 2014-10-22 14:55:52.858220001 -0500
@@ -0,0 +1,9 @@
+menu "MXC Vivante GPU support"
+ depends on SOC_IMX6Q
@@ -173742,9 +171203,9 @@ diff -Nur linux-3.14.17/drivers/mxc/gpu-viv/Kconfig linux-imx6-3.14/drivers/mxc/
+ Say Y to get the GPU driver support.
+
+endmenu
-diff -Nur linux-3.14.17/drivers/mxc/hdmi-cec/Kconfig linux-imx6-3.14/drivers/mxc/hdmi-cec/Kconfig
---- linux-3.14.17/drivers/mxc/hdmi-cec/Kconfig 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/hdmi-cec/Kconfig 2014-09-11 18:06:03.130042483 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/hdmi-cec/Kconfig linux-3.14.22/drivers/mxc/hdmi-cec/Kconfig
+--- linux-3.14.22.orig/drivers/mxc/hdmi-cec/Kconfig 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/hdmi-cec/Kconfig 2014-10-22 14:55:52.858220001 -0500
@@ -0,0 +1,11 @@
+
+menu "MXC HDMI CEC (Consumer Electronics Control) support"
@@ -173757,14 +171218,14 @@ diff -Nur linux-3.14.17/drivers/mxc/hdmi-cec/Kconfig linux-imx6-3.14/drivers/mxc
+ The HDMI CEC device implement low level protocol on i.MX6x platforms.
+
+endmenu
-diff -Nur linux-3.14.17/drivers/mxc/hdmi-cec/Makefile linux-imx6-3.14/drivers/mxc/hdmi-cec/Makefile
---- linux-3.14.17/drivers/mxc/hdmi-cec/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/hdmi-cec/Makefile 2014-09-11 18:06:03.130042483 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/hdmi-cec/Makefile linux-3.14.22/drivers/mxc/hdmi-cec/Makefile
+--- linux-3.14.22.orig/drivers/mxc/hdmi-cec/Makefile 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/hdmi-cec/Makefile 2014-10-22 14:55:52.858220001 -0500
@@ -0,0 +1 @@
+obj-$(CONFIG_MXC_HDMI_CEC) += mxc_hdmi-cec.o
-diff -Nur linux-3.14.17/drivers/mxc/hdmi-cec/mxc_hdmi-cec.c linux-imx6-3.14/drivers/mxc/hdmi-cec/mxc_hdmi-cec.c
---- linux-3.14.17/drivers/mxc/hdmi-cec/mxc_hdmi-cec.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/hdmi-cec/mxc_hdmi-cec.c 2014-09-11 18:06:03.130042483 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/hdmi-cec/mxc_hdmi-cec.c linux-3.14.22/drivers/mxc/hdmi-cec/mxc_hdmi-cec.c
+--- linux-3.14.22.orig/drivers/mxc/hdmi-cec/mxc_hdmi-cec.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/hdmi-cec/mxc_hdmi-cec.c 2014-10-22 14:55:52.858220001 -0500
@@ -0,0 +1,629 @@
+/*
+ * Copyright (C) 2012-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -174395,9 +171856,9 @@ diff -Nur linux-3.14.17/drivers/mxc/hdmi-cec/mxc_hdmi-cec.c linux-imx6-3.14/driv
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:mxc_hdmi_cec");
+
-diff -Nur linux-3.14.17/drivers/mxc/hdmi-cec/mxc_hdmi-cec.h linux-imx6-3.14/drivers/mxc/hdmi-cec/mxc_hdmi-cec.h
---- linux-3.14.17/drivers/mxc/hdmi-cec/mxc_hdmi-cec.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/hdmi-cec/mxc_hdmi-cec.h 2014-09-11 18:06:03.130042483 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/hdmi-cec/mxc_hdmi-cec.h linux-3.14.22/drivers/mxc/hdmi-cec/mxc_hdmi-cec.h
+--- linux-3.14.22.orig/drivers/mxc/hdmi-cec/mxc_hdmi-cec.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/hdmi-cec/mxc_hdmi-cec.h 2014-10-22 14:55:52.858220001 -0500
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2005-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -174437,9 +171898,9 @@ diff -Nur linux-3.14.17/drivers/mxc/hdmi-cec/mxc_hdmi-cec.h linux-imx6-3.14/driv
+ _IOR(HDMICEC_IOC_MAGIC, 4, unsigned char[4])
+
+#endif /* !_HDMICEC_H_ */
-diff -Nur linux-3.14.17/drivers/mxc/ipu3/ipu_calc_stripes_sizes.c linux-imx6-3.14/drivers/mxc/ipu3/ipu_calc_stripes_sizes.c
---- linux-3.14.17/drivers/mxc/ipu3/ipu_calc_stripes_sizes.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/ipu3/ipu_calc_stripes_sizes.c 2014-09-11 18:06:03.130042483 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/ipu3/ipu_calc_stripes_sizes.c linux-3.14.22/drivers/mxc/ipu3/ipu_calc_stripes_sizes.c
+--- linux-3.14.22.orig/drivers/mxc/ipu3/ipu_calc_stripes_sizes.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/ipu3/ipu_calc_stripes_sizes.c 2014-10-22 14:55:52.858220001 -0500
@@ -0,0 +1,495 @@
+/*
+ * Copyright 2009-2014 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -174936,9 +172397,9 @@ diff -Nur linux-3.14.17/drivers/mxc/ipu3/ipu_calc_stripes_sizes.c linux-imx6-3.1
+ return status;
+}
+EXPORT_SYMBOL(ipu_calc_stripes_sizes);
-diff -Nur linux-3.14.17/drivers/mxc/ipu3/ipu_capture.c linux-imx6-3.14/drivers/mxc/ipu3/ipu_capture.c
---- linux-3.14.17/drivers/mxc/ipu3/ipu_capture.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/ipu3/ipu_capture.c 2014-09-11 18:06:03.130042483 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/ipu3/ipu_capture.c linux-3.14.22/drivers/mxc/ipu3/ipu_capture.c
+--- linux-3.14.22.orig/drivers/mxc/ipu3/ipu_capture.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/ipu3/ipu_capture.c 2014-10-22 14:55:52.858220001 -0500
@@ -0,0 +1,816 @@
+/*
+ * Copyright 2008-2014 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -175756,9 +173217,9 @@ diff -Nur linux-3.14.17/drivers/mxc/ipu3/ipu_capture.c linux-imx6-3.14/drivers/m
+ ipu_free_irq(ipu, irq, ipu);
+ dev_dbg(ipu->dev, "CSI stop timeout - %d * 10ms\n", 5 - ret);
+}
-diff -Nur linux-3.14.17/drivers/mxc/ipu3/ipu_common.c linux-imx6-3.14/drivers/mxc/ipu3/ipu_common.c
---- linux-3.14.17/drivers/mxc/ipu3/ipu_common.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/ipu3/ipu_common.c 2014-09-11 18:06:03.134042499 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/ipu3/ipu_common.c linux-3.14.22/drivers/mxc/ipu3/ipu_common.c
+--- linux-3.14.22.orig/drivers/mxc/ipu3/ipu_common.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/ipu3/ipu_common.c 2014-10-22 14:55:52.862220001 -0500
@@ -0,0 +1,3134 @@
+/*
+ * Copyright 2005-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -178894,9 +176355,9 @@ diff -Nur linux-3.14.17/drivers/mxc/ipu3/ipu_common.c linux-imx6-3.14/drivers/mx
+}
+
+module_exit(ipu_gen_uninit);
-diff -Nur linux-3.14.17/drivers/mxc/ipu3/ipu_device.c linux-imx6-3.14/drivers/mxc/ipu3/ipu_device.c
---- linux-3.14.17/drivers/mxc/ipu3/ipu_device.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/ipu3/ipu_device.c 2014-09-11 18:06:03.134042499 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/ipu3/ipu_device.c linux-3.14.22/drivers/mxc/ipu3/ipu_device.c
+--- linux-3.14.22.orig/drivers/mxc/ipu3/ipu_device.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/ipu3/ipu_device.c 2014-10-22 14:55:52.862220001 -0500
@@ -0,0 +1,3717 @@
+/*
+ * Copyright 2005-2014 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -182615,9 +180076,9 @@ diff -Nur linux-3.14.17/drivers/mxc/ipu3/ipu_device.c linux-imx6-3.14/drivers/mx
+ major = 0;
+ }
+}
-diff -Nur linux-3.14.17/drivers/mxc/ipu3/ipu_disp.c linux-imx6-3.14/drivers/mxc/ipu3/ipu_disp.c
---- linux-3.14.17/drivers/mxc/ipu3/ipu_disp.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/ipu3/ipu_disp.c 2014-09-11 18:06:03.134042499 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/ipu3/ipu_disp.c linux-3.14.22/drivers/mxc/ipu3/ipu_disp.c
+--- linux-3.14.22.orig/drivers/mxc/ipu3/ipu_disp.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/ipu3/ipu_disp.c 2014-10-22 14:55:52.862220001 -0500
@@ -0,0 +1,1962 @@
+/*
+ * Copyright 2005-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -184581,9 +182042,9 @@ diff -Nur linux-3.14.17/drivers/mxc/ipu3/ipu_disp.c linux-imx6-3.14/drivers/mxc/
+ _ipu_init_dc_mappings(ipu);
+ _ipu_dmfc_init(ipu, DMFC_NORMAL, 1);
+}
-diff -Nur linux-3.14.17/drivers/mxc/ipu3/ipu_ic.c linux-imx6-3.14/drivers/mxc/ipu3/ipu_ic.c
---- linux-3.14.17/drivers/mxc/ipu3/ipu_ic.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/ipu3/ipu_ic.c 2014-09-11 18:06:03.134042499 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/ipu3/ipu_ic.c linux-3.14.22/drivers/mxc/ipu3/ipu_ic.c
+--- linux-3.14.22.orig/drivers/mxc/ipu3/ipu_ic.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/ipu3/ipu_ic.c 2014-10-22 14:55:52.866220001 -0500
@@ -0,0 +1,924 @@
+/*
+ * Copyright 2005-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -185509,9 +182970,9 @@ diff -Nur linux-3.14.17/drivers/mxc/ipu3/ipu_ic.c linux-imx6-3.14/drivers/mxc/ip
+
+ ipu_vdi_write(ipu, reg, VDI_C);
+}
-diff -Nur linux-3.14.17/drivers/mxc/ipu3/ipu_param_mem.h linux-imx6-3.14/drivers/mxc/ipu3/ipu_param_mem.h
---- linux-3.14.17/drivers/mxc/ipu3/ipu_param_mem.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/ipu3/ipu_param_mem.h 2014-09-11 18:06:03.134042499 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/ipu3/ipu_param_mem.h linux-3.14.22/drivers/mxc/ipu3/ipu_param_mem.h
+--- linux-3.14.22.orig/drivers/mxc/ipu3/ipu_param_mem.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/ipu3/ipu_param_mem.h 2014-10-22 14:55:52.866220001 -0500
@@ -0,0 +1,921 @@
+/*
+ * Copyright 2005-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -186434,9 +183895,9 @@ diff -Nur linux-3.14.17/drivers/mxc/ipu3/ipu_param_mem.h linux-imx6-3.14/drivers
+ return false;
+}
+#endif
-diff -Nur linux-3.14.17/drivers/mxc/ipu3/ipu_pixel_clk.c linux-imx6-3.14/drivers/mxc/ipu3/ipu_pixel_clk.c
---- linux-3.14.17/drivers/mxc/ipu3/ipu_pixel_clk.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/ipu3/ipu_pixel_clk.c 2014-09-11 18:06:03.134042499 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/ipu3/ipu_pixel_clk.c linux-3.14.22/drivers/mxc/ipu3/ipu_pixel_clk.c
+--- linux-3.14.22.orig/drivers/mxc/ipu3/ipu_pixel_clk.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/ipu3/ipu_pixel_clk.c 2014-10-22 14:55:52.866220001 -0500
@@ -0,0 +1,317 @@
+/*
+ * Copyright (C) 2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -186755,9 +184216,9 @@ diff -Nur linux-3.14.17/drivers/mxc/ipu3/ipu_pixel_clk.c linux-imx6-3.14/drivers
+
+ return clk;
+}
-diff -Nur linux-3.14.17/drivers/mxc/ipu3/ipu_prv.h linux-imx6-3.14/drivers/mxc/ipu3/ipu_prv.h
---- linux-3.14.17/drivers/mxc/ipu3/ipu_prv.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/ipu3/ipu_prv.h 2014-09-11 18:06:03.138042515 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/ipu3/ipu_prv.h linux-3.14.22/drivers/mxc/ipu3/ipu_prv.h
+--- linux-3.14.22.orig/drivers/mxc/ipu3/ipu_prv.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/ipu3/ipu_prv.h 2014-10-22 14:55:52.866220001 -0500
@@ -0,0 +1,356 @@
+/*
+ * Copyright 2005-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -187115,9 +184576,9 @@ diff -Nur linux-3.14.17/drivers/mxc/ipu3/ipu_prv.h linux-imx6-3.14/drivers/mxc/i
+ const char *parent_name, unsigned long flags,
+ u8 ipu_id, u8 di_id, u8 clk_gate_flags);
+#endif /* __INCLUDE_IPU_PRV_H__ */
-diff -Nur linux-3.14.17/drivers/mxc/ipu3/ipu_regs.h linux-imx6-3.14/drivers/mxc/ipu3/ipu_regs.h
---- linux-3.14.17/drivers/mxc/ipu3/ipu_regs.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/ipu3/ipu_regs.h 2014-09-11 18:06:03.138042515 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/ipu3/ipu_regs.h linux-3.14.22/drivers/mxc/ipu3/ipu_regs.h
+--- linux-3.14.22.orig/drivers/mxc/ipu3/ipu_regs.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/ipu3/ipu_regs.h 2014-10-22 14:55:52.866220001 -0500
@@ -0,0 +1,743 @@
+/*
+ * Copyright (C) 2005-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -187862,23 +185323,23 @@ diff -Nur linux-3.14.17/drivers/mxc/ipu3/ipu_regs.h linux-imx6-3.14/drivers/mxc/
+#define WRG (0x01)
+
+#endif
-diff -Nur linux-3.14.17/drivers/mxc/ipu3/Kconfig linux-imx6-3.14/drivers/mxc/ipu3/Kconfig
---- linux-3.14.17/drivers/mxc/ipu3/Kconfig 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/ipu3/Kconfig 2014-09-11 18:06:03.130042483 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/ipu3/Kconfig linux-3.14.22/drivers/mxc/ipu3/Kconfig
+--- linux-3.14.22.orig/drivers/mxc/ipu3/Kconfig 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/ipu3/Kconfig 2014-10-22 14:55:52.866220001 -0500
@@ -0,0 +1,2 @@
+config MXC_IPU_V3
+ bool
-diff -Nur linux-3.14.17/drivers/mxc/ipu3/Makefile linux-imx6-3.14/drivers/mxc/ipu3/Makefile
---- linux-3.14.17/drivers/mxc/ipu3/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/ipu3/Makefile 2014-09-11 18:06:03.130042483 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/ipu3/Makefile linux-3.14.22/drivers/mxc/ipu3/Makefile
+--- linux-3.14.22.orig/drivers/mxc/ipu3/Makefile 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/ipu3/Makefile 2014-10-22 14:55:52.866220001 -0500
@@ -0,0 +1,4 @@
+obj-$(CONFIG_MXC_IPU_V3) = mxc_ipu.o
+
+mxc_ipu-objs := ipu_common.o ipu_ic.o ipu_disp.o ipu_capture.o ipu_device.o \
+ ipu_calc_stripes_sizes.o vdoa.o ipu_pixel_clk.o
-diff -Nur linux-3.14.17/drivers/mxc/ipu3/vdoa.c linux-imx6-3.14/drivers/mxc/ipu3/vdoa.c
---- linux-3.14.17/drivers/mxc/ipu3/vdoa.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/ipu3/vdoa.c 2014-09-11 18:06:03.138042515 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/ipu3/vdoa.c linux-3.14.22/drivers/mxc/ipu3/vdoa.c
+--- linux-3.14.22.orig/drivers/mxc/ipu3/vdoa.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/ipu3/vdoa.c 2014-10-22 14:55:52.866220001 -0500
@@ -0,0 +1,543 @@
+/*
+ * Copyright (C) 2012-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -188423,9 +185884,9 @@ diff -Nur linux-3.14.17/drivers/mxc/ipu3/vdoa.c linux-imx6-3.14/drivers/mxc/ipu3
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("i.MX Video Data Order Adapter(VDOA) driver");
+MODULE_LICENSE("GPL");
-diff -Nur linux-3.14.17/drivers/mxc/ipu3/vdoa.h linux-imx6-3.14/drivers/mxc/ipu3/vdoa.h
---- linux-3.14.17/drivers/mxc/ipu3/vdoa.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/ipu3/vdoa.h 2014-09-11 18:06:03.138042515 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/ipu3/vdoa.h linux-3.14.22/drivers/mxc/ipu3/vdoa.h
+--- linux-3.14.22.orig/drivers/mxc/ipu3/vdoa.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/ipu3/vdoa.h 2014-10-22 14:55:52.866220001 -0500
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2012-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -188496,9 +185957,9 @@ diff -Nur linux-3.14.17/drivers/mxc/ipu3/vdoa.h linux-imx6-3.14/drivers/mxc/ipu3
+void vdoa_get_handle(vdoa_handle_t *handle);
+void vdoa_put_handle(vdoa_handle_t *handle);
+#endif
-diff -Nur linux-3.14.17/drivers/mxc/Kconfig linux-imx6-3.14/drivers/mxc/Kconfig
---- linux-3.14.17/drivers/mxc/Kconfig 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/Kconfig 2014-09-11 18:06:03.078042276 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/Kconfig linux-3.14.22/drivers/mxc/Kconfig
+--- linux-3.14.22.orig/drivers/mxc/Kconfig 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/Kconfig 2014-10-22 14:55:52.866220001 -0500
@@ -0,0 +1,24 @@
+# drivers/mxc/Kconfig
+
@@ -188524,9 +185985,9 @@ diff -Nur linux-3.14.17/drivers/mxc/Kconfig linux-imx6-3.14/drivers/mxc/Kconfig
+endmenu
+
+endif
-diff -Nur linux-3.14.17/drivers/mxc/Makefile linux-imx6-3.14/drivers/mxc/Makefile
---- linux-3.14.17/drivers/mxc/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/Makefile 2014-09-11 18:06:03.078042276 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/Makefile linux-3.14.22/drivers/mxc/Makefile
+--- linux-3.14.22.orig/drivers/mxc/Makefile 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/Makefile 2014-10-22 14:55:52.866220001 -0500
@@ -0,0 +1,7 @@
+obj-$(CONFIG_MXC_GPU_VIV) += gpu-viv/
+obj-$(CONFIG_MXC_IPU_V3) += ipu3/
@@ -188535,9 +185996,9 @@ diff -Nur linux-3.14.17/drivers/mxc/Makefile linux-imx6-3.14/drivers/mxc/Makefil
+obj-$(CONFIG_MXC_HDMI_CEC) += hdmi-cec/
+obj-$(CONFIG_MXC_MIPI_CSI2) += mipi/
+obj-$(CONFIG_MXC_MLB) += mlb/
-diff -Nur linux-3.14.17/drivers/mxc/mipi/Kconfig linux-imx6-3.14/drivers/mxc/mipi/Kconfig
---- linux-3.14.17/drivers/mxc/mipi/Kconfig 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/mipi/Kconfig 2014-09-11 18:06:03.138042515 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/mipi/Kconfig linux-3.14.22/drivers/mxc/mipi/Kconfig
+--- linux-3.14.22.orig/drivers/mxc/mipi/Kconfig 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/mipi/Kconfig 2014-10-22 14:55:52.866220001 -0500
@@ -0,0 +1,14 @@
+#
+# MIPI configuration
@@ -188553,17 +186014,17 @@ diff -Nur linux-3.14.17/drivers/mxc/mipi/Kconfig linux-imx6-3.14/drivers/mxc/mip
+ Say Y to get the MIPI CSI2 support.
+
+endmenu
-diff -Nur linux-3.14.17/drivers/mxc/mipi/Makefile linux-imx6-3.14/drivers/mxc/mipi/Makefile
---- linux-3.14.17/drivers/mxc/mipi/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/mipi/Makefile 2014-09-11 18:06:03.138042515 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/mipi/Makefile linux-3.14.22/drivers/mxc/mipi/Makefile
+--- linux-3.14.22.orig/drivers/mxc/mipi/Makefile 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/mipi/Makefile 2014-10-22 14:55:52.866220001 -0500
@@ -0,0 +1,4 @@
+#
+# Makefile for the mipi interface driver
+#
+obj-$(CONFIG_MXC_MIPI_CSI2) += mxc_mipi_csi2.o
-diff -Nur linux-3.14.17/drivers/mxc/mipi/mxc_mipi_csi2.c linux-imx6-3.14/drivers/mxc/mipi/mxc_mipi_csi2.c
---- linux-3.14.17/drivers/mxc/mipi/mxc_mipi_csi2.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/mipi/mxc_mipi_csi2.c 2014-09-11 18:06:03.138042515 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/mipi/mxc_mipi_csi2.c linux-3.14.22/drivers/mxc/mipi/mxc_mipi_csi2.c
+--- linux-3.14.22.orig/drivers/mxc/mipi/mxc_mipi_csi2.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/mipi/mxc_mipi_csi2.c 2014-10-22 14:55:52.866220001 -0500
@@ -0,0 +1,540 @@
+/*
+ * Copyright (C) 2011-2014 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -189105,9 +186566,9 @@ diff -Nur linux-3.14.17/drivers/mxc/mipi/mxc_mipi_csi2.c linux-imx6-3.14/drivers
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("i.MX MIPI CSI2 driver");
+MODULE_LICENSE("GPL");
-diff -Nur linux-3.14.17/drivers/mxc/mipi/mxc_mipi_csi2.h linux-imx6-3.14/drivers/mxc/mipi/mxc_mipi_csi2.h
---- linux-3.14.17/drivers/mxc/mipi/mxc_mipi_csi2.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/mipi/mxc_mipi_csi2.h 2014-09-11 18:06:03.138042515 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/mipi/mxc_mipi_csi2.h linux-3.14.22/drivers/mxc/mipi/mxc_mipi_csi2.h
+--- linux-3.14.22.orig/drivers/mxc/mipi/mxc_mipi_csi2.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/mipi/mxc_mipi_csi2.h 2014-10-22 14:55:52.866220001 -0500
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2011-2014 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -189155,9 +186616,9 @@ diff -Nur linux-3.14.17/drivers/mxc/mipi/mxc_mipi_csi2.h linux-imx6-3.14/drivers
+};
+
+#endif
-diff -Nur linux-3.14.17/drivers/mxc/mlb/Kconfig linux-imx6-3.14/drivers/mxc/mlb/Kconfig
---- linux-3.14.17/drivers/mxc/mlb/Kconfig 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/mlb/Kconfig 2014-09-11 18:06:03.138042515 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/mlb/Kconfig linux-3.14.22/drivers/mxc/mlb/Kconfig
+--- linux-3.14.22.orig/drivers/mxc/mlb/Kconfig 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/mlb/Kconfig 2014-10-22 14:55:52.866220001 -0500
@@ -0,0 +1,17 @@
+#
+# MLB150 configuration
@@ -189176,18 +186637,18 @@ diff -Nur linux-3.14.17/drivers/mxc/mlb/Kconfig linux-imx6-3.14/drivers/mxc/mlb/
+ Say Y to get the MLB150 support.
+
+endmenu
-diff -Nur linux-3.14.17/drivers/mxc/mlb/Makefile linux-imx6-3.14/drivers/mxc/mlb/Makefile
---- linux-3.14.17/drivers/mxc/mlb/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/mlb/Makefile 2014-09-11 18:06:03.138042515 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/mlb/Makefile linux-3.14.22/drivers/mxc/mlb/Makefile
+--- linux-3.14.22.orig/drivers/mxc/mlb/Makefile 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/mlb/Makefile 2014-10-22 14:55:52.866220001 -0500
@@ -0,0 +1,5 @@
+#
+# Makefile for the i.MX6Q/DL MLB150 driver
+#
+
+obj-$(CONFIG_MXC_MLB150) += mxc_mlb150.o
-diff -Nur linux-3.14.17/drivers/mxc/mlb/mxc_mlb150.c linux-imx6-3.14/drivers/mxc/mlb/mxc_mlb150.c
---- linux-3.14.17/drivers/mxc/mlb/mxc_mlb150.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/mlb/mxc_mlb150.c 2014-09-11 18:06:03.142042530 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/mlb/mxc_mlb150.c linux-3.14.22/drivers/mxc/mlb/mxc_mlb150.c
+--- linux-3.14.22.orig/drivers/mxc/mlb/mxc_mlb150.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/mlb/mxc_mlb150.c 2014-10-22 14:55:52.870220001 -0500
@@ -0,0 +1,2778 @@
+/*
+ * Copyright (C) 2011-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -191967,9 +189428,9 @@ diff -Nur linux-3.14.17/drivers/mxc/mlb/mxc_mlb150.c linux-imx6-3.14/drivers/mxc
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("MLB150 low level driver");
+MODULE_LICENSE("GPL");
-diff -Nur linux-3.14.17/drivers/mxc/vpu/Kconfig linux-imx6-3.14/drivers/mxc/vpu/Kconfig
---- linux-3.14.17/drivers/mxc/vpu/Kconfig 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/vpu/Kconfig 2014-09-11 18:06:03.142042530 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/vpu/Kconfig linux-3.14.22/drivers/mxc/vpu/Kconfig
+--- linux-3.14.22.orig/drivers/mxc/vpu/Kconfig 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/vpu/Kconfig 2014-10-22 14:55:52.870220001 -0500
@@ -0,0 +1,31 @@
+#
+# Codec configuration
@@ -192002,9 +189463,9 @@ diff -Nur linux-3.14.17/drivers/mxc/vpu/Kconfig linux-imx6-3.14/drivers/mxc/vpu/
+ This config is used for special VPU use case.
+
+endmenu
-diff -Nur linux-3.14.17/drivers/mxc/vpu/Makefile linux-imx6-3.14/drivers/mxc/vpu/Makefile
---- linux-3.14.17/drivers/mxc/vpu/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/vpu/Makefile 2014-09-11 18:06:03.142042530 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/vpu/Makefile linux-3.14.22/drivers/mxc/vpu/Makefile
+--- linux-3.14.22.orig/drivers/mxc/vpu/Makefile 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/vpu/Makefile 2014-10-22 14:55:52.870220001 -0500
@@ -0,0 +1,9 @@
+#
+# Makefile for the VPU drivers.
@@ -192015,9 +189476,9 @@ diff -Nur linux-3.14.17/drivers/mxc/vpu/Makefile linux-imx6-3.14/drivers/mxc/vpu
+ifeq ($(CONFIG_MXC_VPU_DEBUG),y)
+EXTRA_CFLAGS += -DDEBUG
+endif
-diff -Nur linux-3.14.17/drivers/mxc/vpu/mxc_vpu.c linux-imx6-3.14/drivers/mxc/vpu/mxc_vpu.c
---- linux-3.14.17/drivers/mxc/vpu/mxc_vpu.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/mxc/vpu/mxc_vpu.c 2014-09-11 18:06:03.142042530 +0200
+diff -Nur linux-3.14.22.orig/drivers/mxc/vpu/mxc_vpu.c linux-3.14.22/drivers/mxc/vpu/mxc_vpu.c
+--- linux-3.14.22.orig/drivers/mxc/vpu/mxc_vpu.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/mxc/vpu/mxc_vpu.c 2014-10-22 14:55:52.870220001 -0500
@@ -0,0 +1,1342 @@
+/*
+ * Copyright 2006-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -193361,9 +190822,9 @@ diff -Nur linux-3.14.17/drivers/mxc/vpu/mxc_vpu.c linux-imx6-3.14/drivers/mxc/vp
+
+module_init(vpu_init);
+module_exit(vpu_exit);
-diff -Nur linux-3.14.17/drivers/net/bonding/bonding.h linux-imx6-3.14/drivers/net/bonding/bonding.h
---- linux-3.14.17/drivers/net/bonding/bonding.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/bonding/bonding.h 2014-09-11 18:06:03.218042834 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/bonding/bonding.h linux-3.14.22/drivers/net/bonding/bonding.h
+--- linux-3.14.22.orig/drivers/net/bonding/bonding.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/bonding/bonding.h 2014-10-22 14:55:52.870220001 -0500
@@ -188,7 +188,8 @@
struct net_device *dev; /* first - useful for panic debug */
struct bonding *bond; /* our master */
@@ -193374,9 +190835,9 @@ diff -Nur linux-3.14.17/drivers/net/bonding/bonding.h linux-imx6-3.14/drivers/ne
unsigned long last_arp_rx;
unsigned long target_last_arp_rx[BOND_MAX_ARP_TARGETS];
s8 link; /* one of BOND_LINK_XXXX */
-diff -Nur linux-3.14.17/drivers/net/bonding/bond_main.c linux-imx6-3.14/drivers/net/bonding/bond_main.c
---- linux-3.14.17/drivers/net/bonding/bond_main.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/bonding/bond_main.c 2014-09-11 18:06:03.218042834 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/bonding/bond_main.c linux-3.14.22/drivers/net/bonding/bond_main.c
+--- linux-3.14.22.orig/drivers/net/bonding/bond_main.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/bonding/bond_main.c 2014-10-22 14:55:53.018220001 -0500
@@ -798,7 +798,7 @@
return;
@@ -193477,9 +190938,9 @@ diff -Nur linux-3.14.17/drivers/net/bonding/bond_main.c linux-imx6-3.14/drivers/
rcu_assign_pointer(bond->current_arp_slave, new_slave);
check_state:
-diff -Nur linux-3.14.17/drivers/net/can/flexcan.c linux-imx6-3.14/drivers/net/can/flexcan.c
---- linux-3.14.17/drivers/net/can/flexcan.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/can/flexcan.c 2014-09-11 18:06:03.246042945 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/can/flexcan.c linux-3.14.22/drivers/net/can/flexcan.c
+--- linux-3.14.22.orig/drivers/net/can/flexcan.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/can/flexcan.c 2014-10-22 14:55:53.022220001 -0500
@@ -125,7 +125,8 @@
FLEXCAN_ESR_BOFF_INT | FLEXCAN_ESR_ERR_INT)
@@ -193519,9 +190980,9 @@ diff -Nur linux-3.14.17/drivers/net/can/flexcan.c linux-imx6-3.14/drivers/net/ca
return NETDEV_TX_OK;
}
-diff -Nur linux-3.14.17/drivers/net/ethernet/adi/bfin_mac.c linux-imx6-3.14/drivers/net/ethernet/adi/bfin_mac.c
---- linux-3.14.17/drivers/net/ethernet/adi/bfin_mac.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/ethernet/adi/bfin_mac.c 2014-09-11 18:06:03.270043041 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/ethernet/adi/bfin_mac.c linux-3.14.22/drivers/net/ethernet/adi/bfin_mac.c
+--- linux-3.14.22.orig/drivers/net/ethernet/adi/bfin_mac.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/ethernet/adi/bfin_mac.c 2014-10-22 14:55:53.022220001 -0500
@@ -1040,6 +1040,7 @@
.n_alarm = 0,
.n_ext_ts = 0,
@@ -193530,46 +190991,9 @@ diff -Nur linux-3.14.17/drivers/net/ethernet/adi/bfin_mac.c linux-imx6-3.14/driv
.pps = 0,
.adjfreq = bfin_ptp_adjfreq,
.adjtime = bfin_ptp_adjtime,
-diff -Nur linux-3.14.17/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c linux-imx6-3.14/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
---- linux-3.14.17/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c 2014-09-11 18:06:03.362043409 +0200
-@@ -223,12 +223,6 @@
- --nbd;
- bd_idx = TX_BD(NEXT_TX_IDX(bd_idx));
-
-- if (tx_buf->flags & BNX2X_HAS_SECOND_PBD) {
-- /* Skip second parse bd... */
-- --nbd;
-- bd_idx = TX_BD(NEXT_TX_IDX(bd_idx));
-- }
--
- /* TSO headers+data bds share a common mapping. See bnx2x_tx_split() */
- if (tx_buf->flags & BNX2X_TSO_SPLIT_BD) {
- tx_data_bd = &txdata->tx_desc_ring[bd_idx].reg_bd;
-@@ -3874,9 +3868,6 @@
- /* set encapsulation flag in start BD */
- SET_FLAG(tx_start_bd->general_data,
- ETH_TX_START_BD_TUNNEL_EXIST, 1);
--
-- tx_buf->flags |= BNX2X_HAS_SECOND_PBD;
--
- nbd++;
- } else if (xmit_type & XMIT_CSUM) {
- /* Set PBD in checksum offload case w/o encapsulation */
-diff -Nur linux-3.14.17/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h linux-imx6-3.14/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h
---- linux-3.14.17/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h 2014-09-11 18:06:03.362043409 +0200
-@@ -337,7 +337,6 @@
- u8 flags;
- /* Set on the first BD descriptor when there is a split BD */
- #define BNX2X_TSO_SPLIT_BD (1<<0)
--#define BNX2X_HAS_SECOND_PBD (1<<1)
- };
-
- struct sw_rx_page {
-diff -Nur linux-3.14.17/drivers/net/ethernet/broadcom/tg3.c linux-imx6-3.14/drivers/net/ethernet/broadcom/tg3.c
---- linux-3.14.17/drivers/net/ethernet/broadcom/tg3.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/ethernet/broadcom/tg3.c 2014-09-11 18:06:03.422043649 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/ethernet/broadcom/tg3.c linux-3.14.22/drivers/net/ethernet/broadcom/tg3.c
+--- linux-3.14.22.orig/drivers/net/ethernet/broadcom/tg3.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/ethernet/broadcom/tg3.c 2014-10-22 14:55:53.030220001 -0500
@@ -6322,6 +6322,7 @@
.n_alarm = 0,
.n_ext_ts = 0,
@@ -193578,24 +191002,10 @@ diff -Nur linux-3.14.17/drivers/net/ethernet/broadcom/tg3.c linux-imx6-3.14/driv
.pps = 0,
.adjfreq = tg3_ptp_adjfreq,
.adjtime = tg3_ptp_adjtime,
-diff -Nur linux-3.14.17/drivers/net/ethernet/brocade/bna/bnad.c linux-imx6-3.14/drivers/net/ethernet/brocade/bna/bnad.c
---- linux-3.14.17/drivers/net/ethernet/brocade/bna/bnad.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/ethernet/brocade/bna/bnad.c 2014-09-11 18:06:03.426043665 +0200
-@@ -600,9 +600,9 @@
- prefetch(bnad->netdev);
-
- cq = ccb->sw_q;
-+ cmpl = &cq[ccb->producer_index];
-
- while (packets < budget) {
-- cmpl = &cq[ccb->producer_index];
- if (!cmpl->valid)
- break;
- /* The 'valid' field is set by the adapter, only after writing
-diff -Nur linux-3.14.17/drivers/net/ethernet/cadence/macb.c linux-imx6-3.14/drivers/net/ethernet/cadence/macb.c
---- linux-3.14.17/drivers/net/ethernet/cadence/macb.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/ethernet/cadence/macb.c 2014-09-11 18:06:03.430043681 +0200
-@@ -605,25 +605,16 @@
+diff -Nur linux-3.14.22.orig/drivers/net/ethernet/cadence/macb.c linux-3.14.22/drivers/net/ethernet/cadence/macb.c
+--- linux-3.14.22.orig/drivers/net/ethernet/cadence/macb.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/ethernet/cadence/macb.c 2014-10-22 14:55:53.034220001 -0500
+@@ -604,25 +604,16 @@
{
unsigned int entry;
struct sk_buff *skb;
@@ -193621,7 +191031,7 @@ diff -Nur linux-3.14.17/drivers/net/ethernet/cadence/macb.c linux-imx6-3.14/driv
if (bp->rx_skbuff[entry] == NULL) {
/* allocate sk_buff for this free entry in ring */
skb = netdev_alloc_skb(bp->dev, bp->rx_buffer_size);
-@@ -704,7 +695,6 @@
+@@ -703,7 +694,6 @@
if (!(addr & MACB_BIT(RX_USED)))
break;
@@ -193629,9 +191039,9 @@ diff -Nur linux-3.14.17/drivers/net/ethernet/cadence/macb.c linux-imx6-3.14/driv
bp->rx_tail++;
count++;
-diff -Nur linux-3.14.17/drivers/net/ethernet/chelsio/cxgb4vf/sge.c linux-imx6-3.14/drivers/net/ethernet/chelsio/cxgb4vf/sge.c
---- linux-3.14.17/drivers/net/ethernet/chelsio/cxgb4vf/sge.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/ethernet/chelsio/cxgb4vf/sge.c 2014-09-11 18:06:03.478043873 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/ethernet/chelsio/cxgb4vf/sge.c linux-3.14.22/drivers/net/ethernet/chelsio/cxgb4vf/sge.c
+--- linux-3.14.22.orig/drivers/net/ethernet/chelsio/cxgb4vf/sge.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/ethernet/chelsio/cxgb4vf/sge.c 2014-10-22 14:55:53.034220001 -0500
@@ -1510,7 +1510,8 @@
{
struct sk_buff *skb;
@@ -193653,9 +191063,9 @@ diff -Nur linux-3.14.17/drivers/net/ethernet/chelsio/cxgb4vf/sge.c linux-imx6-3.
if (!pkt->ip_frag)
skb->ip_summed = CHECKSUM_UNNECESSARY;
else {
-diff -Nur linux-3.14.17/drivers/net/ethernet/freescale/fec.h linux-imx6-3.14/drivers/net/ethernet/freescale/fec.h
---- linux-3.14.17/drivers/net/ethernet/freescale/fec.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/ethernet/freescale/fec.h 2014-09-11 18:06:03.498043952 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/ethernet/freescale/fec.h linux-3.14.22/drivers/net/ethernet/freescale/fec.h
+--- linux-3.14.22.orig/drivers/net/ethernet/freescale/fec.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/ethernet/freescale/fec.h 2014-10-22 14:55:53.034220001 -0500
@@ -221,7 +221,7 @@
#define BD_ENET_TX_RCMASK ((ushort)0x003c)
#define BD_ENET_TX_UN ((ushort)0x0002)
@@ -193726,9 +191136,9 @@ diff -Nur linux-3.14.17/drivers/net/ethernet/freescale/fec.h linux-imx6-3.14/dri
struct regulator *reg_phy;
};
-diff -Nur linux-3.14.17/drivers/net/ethernet/freescale/fec_main.c linux-imx6-3.14/drivers/net/ethernet/freescale/fec_main.c
---- linux-3.14.17/drivers/net/ethernet/freescale/fec_main.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/ethernet/freescale/fec_main.c 2014-09-11 18:06:03.498043952 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/ethernet/freescale/fec_main.c linux-3.14.22/drivers/net/ethernet/freescale/fec_main.c
+--- linux-3.14.22.orig/drivers/net/ethernet/freescale/fec_main.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/ethernet/freescale/fec_main.c 2014-10-22 14:55:53.038220001 -0500
@@ -36,6 +36,7 @@
#include <linux/in.h>
#include <linux/ip.h>
@@ -195401,9 +192811,9 @@ diff -Nur linux-3.14.17/drivers/net/ethernet/freescale/fec_main.c linux-imx6-3.1
static struct platform_driver fec_driver = {
.driver = {
-diff -Nur linux-3.14.17/drivers/net/ethernet/freescale/fec_ptp.c linux-imx6-3.14/drivers/net/ethernet/freescale/fec_ptp.c
---- linux-3.14.17/drivers/net/ethernet/freescale/fec_ptp.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/ethernet/freescale/fec_ptp.c 2014-09-11 18:06:03.498043952 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/ethernet/freescale/fec_ptp.c linux-3.14.22/drivers/net/ethernet/freescale/fec_ptp.c
+--- linux-3.14.22.orig/drivers/net/ethernet/freescale/fec_ptp.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/ethernet/freescale/fec_ptp.c 2014-10-22 14:55:53.038220001 -0500
@@ -372,6 +372,7 @@
fep->ptp_caps.n_alarm = 0;
fep->ptp_caps.n_ext_ts = 0;
@@ -195412,9 +192822,9 @@ diff -Nur linux-3.14.17/drivers/net/ethernet/freescale/fec_ptp.c linux-imx6-3.14
fep->ptp_caps.pps = 0;
fep->ptp_caps.adjfreq = fec_ptp_adjfreq;
fep->ptp_caps.adjtime = fec_ptp_adjtime;
-diff -Nur linux-3.14.17/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c linux-imx6-3.14/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
---- linux-3.14.17/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c 2014-09-11 18:06:03.498043952 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c linux-3.14.22/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
+--- linux-3.14.22.orig/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c 2014-10-22 14:55:53.038220001 -0500
@@ -91,6 +91,9 @@
u16 pkt_len, sc;
int curidx;
@@ -195456,9 +192866,9 @@ diff -Nur linux-3.14.17/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c li
if (of_device_is_compatible(ofdev->dev.of_node, "fsl,mpc5125-fec")) {
phy_connection_type = of_get_property(ofdev->dev.of_node,
-diff -Nur linux-3.14.17/drivers/net/ethernet/freescale/fs_enet/mii-fec.c linux-imx6-3.14/drivers/net/ethernet/freescale/fs_enet/mii-fec.c
---- linux-3.14.17/drivers/net/ethernet/freescale/fs_enet/mii-fec.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/ethernet/freescale/fs_enet/mii-fec.c 2014-09-11 18:06:03.498043952 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/ethernet/freescale/fs_enet/mii-fec.c linux-3.14.22/drivers/net/ethernet/freescale/fs_enet/mii-fec.c
+--- linux-3.14.22.orig/drivers/net/ethernet/freescale/fs_enet/mii-fec.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/ethernet/freescale/fs_enet/mii-fec.c 2014-10-22 14:55:53.038220001 -0500
@@ -95,12 +95,6 @@
}
@@ -195480,9 +192890,9 @@ diff -Nur linux-3.14.17/drivers/net/ethernet/freescale/fs_enet/mii-fec.c linux-i
ret = of_address_to_resource(ofdev->dev.of_node, 0, &res);
if (ret)
-diff -Nur linux-3.14.17/drivers/net/ethernet/freescale/gianfar.c linux-imx6-3.14/drivers/net/ethernet/freescale/gianfar.c
---- linux-3.14.17/drivers/net/ethernet/freescale/gianfar.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/ethernet/freescale/gianfar.c 2014-09-11 18:06:03.502043969 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/ethernet/freescale/gianfar.c linux-3.14.22/drivers/net/ethernet/freescale/gianfar.c
+--- linux-3.14.22.orig/drivers/net/ethernet/freescale/gianfar.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/ethernet/freescale/gianfar.c 2014-10-22 14:55:53.038220001 -0500
@@ -9,7 +9,7 @@
* Maintainer: Kumar Gala
* Modifier: Sandeep Gopalpet <sandeep.kumar@freescale.com>
@@ -197685,9 +195095,9 @@ diff -Nur linux-3.14.17/drivers/net/ethernet/freescale/gianfar.c linux-imx6-3.14
static struct of_device_id gfar_match[] =
{
{
-diff -Nur linux-3.14.17/drivers/net/ethernet/freescale/gianfar_ethtool.c linux-imx6-3.14/drivers/net/ethernet/freescale/gianfar_ethtool.c
---- linux-3.14.17/drivers/net/ethernet/freescale/gianfar_ethtool.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/ethernet/freescale/gianfar_ethtool.c 2014-09-11 18:06:03.502043969 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/ethernet/freescale/gianfar_ethtool.c linux-3.14.22/drivers/net/ethernet/freescale/gianfar_ethtool.c
+--- linux-3.14.22.orig/drivers/net/ethernet/freescale/gianfar_ethtool.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/ethernet/freescale/gianfar_ethtool.c 2014-10-22 14:55:53.038220001 -0500
@@ -44,10 +44,6 @@
#include "gianfar.h"
@@ -197967,9 +195377,9 @@ diff -Nur linux-3.14.17/drivers/net/ethernet/freescale/gianfar_ethtool.c linux-i
mutex_lock(&priv->rx_queue_access);
switch (cmd->cmd) {
-diff -Nur linux-3.14.17/drivers/net/ethernet/freescale/gianfar.h linux-imx6-3.14/drivers/net/ethernet/freescale/gianfar.h
---- linux-3.14.17/drivers/net/ethernet/freescale/gianfar.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/ethernet/freescale/gianfar.h 2014-09-11 18:06:03.502043969 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/ethernet/freescale/gianfar.h linux-3.14.22/drivers/net/ethernet/freescale/gianfar.h
+--- linux-3.14.22.orig/drivers/net/ethernet/freescale/gianfar.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/ethernet/freescale/gianfar.h 2014-10-22 14:55:53.038220001 -0500
@@ -9,7 +9,7 @@
* Maintainer: Kumar Gala
* Modifier: Sandeep Gopalpet <sandeep.kumar@freescale.com>
@@ -198209,9 +195619,9 @@ diff -Nur linux-3.14.17/drivers/net/ethernet/freescale/gianfar.h linux-imx6-3.14
extern const struct ethtool_ops gfar_ethtool_ops;
-diff -Nur linux-3.14.17/drivers/net/ethernet/freescale/gianfar_ptp.c linux-imx6-3.14/drivers/net/ethernet/freescale/gianfar_ptp.c
---- linux-3.14.17/drivers/net/ethernet/freescale/gianfar_ptp.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/ethernet/freescale/gianfar_ptp.c 2014-09-11 18:06:03.502043969 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/ethernet/freescale/gianfar_ptp.c linux-3.14.22/drivers/net/ethernet/freescale/gianfar_ptp.c
+--- linux-3.14.22.orig/drivers/net/ethernet/freescale/gianfar_ptp.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/ethernet/freescale/gianfar_ptp.c 2014-10-22 14:55:53.042220001 -0500
@@ -414,6 +414,7 @@
.n_alarm = 0,
.n_ext_ts = N_EXT_TS,
@@ -198220,9 +195630,9 @@ diff -Nur linux-3.14.17/drivers/net/ethernet/freescale/gianfar_ptp.c linux-imx6-
.pps = 1,
.adjfreq = ptp_gianfar_adjfreq,
.adjtime = ptp_gianfar_adjtime,
-diff -Nur linux-3.14.17/drivers/net/ethernet/freescale/gianfar_sysfs.c linux-imx6-3.14/drivers/net/ethernet/freescale/gianfar_sysfs.c
---- linux-3.14.17/drivers/net/ethernet/freescale/gianfar_sysfs.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/ethernet/freescale/gianfar_sysfs.c 1970-01-01 01:00:00.000000000 +0100
+diff -Nur linux-3.14.22.orig/drivers/net/ethernet/freescale/gianfar_sysfs.c linux-3.14.22/drivers/net/ethernet/freescale/gianfar_sysfs.c
+--- linux-3.14.22.orig/drivers/net/ethernet/freescale/gianfar_sysfs.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/ethernet/freescale/gianfar_sysfs.c 1969-12-31 18:00:00.000000000 -0600
@@ -1,340 +0,0 @@
-/*
- * drivers/net/ethernet/freescale/gianfar_sysfs.c
@@ -198564,9 +195974,9 @@ diff -Nur linux-3.14.17/drivers/net/ethernet/freescale/gianfar_sysfs.c linux-imx
- if (rc)
- dev_err(&dev->dev, "Error creating gianfar sysfs files\n");
-}
-diff -Nur linux-3.14.17/drivers/net/ethernet/freescale/Kconfig linux-imx6-3.14/drivers/net/ethernet/freescale/Kconfig
---- linux-3.14.17/drivers/net/ethernet/freescale/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/ethernet/freescale/Kconfig 2014-09-11 18:06:03.498043952 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/ethernet/freescale/Kconfig linux-3.14.22/drivers/net/ethernet/freescale/Kconfig
+--- linux-3.14.22.orig/drivers/net/ethernet/freescale/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/ethernet/freescale/Kconfig 2014-10-22 14:55:53.042220001 -0500
@@ -67,6 +67,7 @@
tristate "Freescale XGMAC MDIO"
depends on FSL_SOC
@@ -198575,9 +195985,9 @@ diff -Nur linux-3.14.17/drivers/net/ethernet/freescale/Kconfig linux-imx6-3.14/d
---help---
This driver supports the MDIO bus on the Fman 10G Ethernet MACs.
-diff -Nur linux-3.14.17/drivers/net/ethernet/freescale/Makefile linux-imx6-3.14/drivers/net/ethernet/freescale/Makefile
---- linux-3.14.17/drivers/net/ethernet/freescale/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/ethernet/freescale/Makefile 2014-09-11 18:06:03.498043952 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/ethernet/freescale/Makefile linux-3.14.22/drivers/net/ethernet/freescale/Makefile
+--- linux-3.14.22.orig/drivers/net/ethernet/freescale/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/ethernet/freescale/Makefile 2014-10-22 14:55:53.042220001 -0500
@@ -14,7 +14,6 @@
obj-$(CONFIG_GIANFAR) += gianfar_driver.o
obj-$(CONFIG_PTP_1588_CLOCK_GIANFAR) += gianfar_ptp.o
@@ -198587,9 +195997,9 @@ diff -Nur linux-3.14.17/drivers/net/ethernet/freescale/Makefile linux-imx6-3.14/
+ gianfar_ethtool.o
obj-$(CONFIG_UCC_GETH) += ucc_geth_driver.o
ucc_geth_driver-objs := ucc_geth.o ucc_geth_ethtool.o
-diff -Nur linux-3.14.17/drivers/net/ethernet/freescale/ucc_geth.c linux-imx6-3.14/drivers/net/ethernet/freescale/ucc_geth.c
---- linux-3.14.17/drivers/net/ethernet/freescale/ucc_geth.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/ethernet/freescale/ucc_geth.c 2014-09-11 18:06:03.502043969 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/ethernet/freescale/ucc_geth.c linux-3.14.22/drivers/net/ethernet/freescale/ucc_geth.c
+--- linux-3.14.22.orig/drivers/net/ethernet/freescale/ucc_geth.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/ethernet/freescale/ucc_geth.c 2014-10-22 14:55:53.042220001 -0500
@@ -1728,9 +1728,6 @@
phydev = of_phy_connect(dev, ug_info->phy_node, &adjust_link, 0,
@@ -198627,9 +196037,9 @@ diff -Nur linux-3.14.17/drivers/net/ethernet/freescale/ucc_geth.c linux-imx6-3.1
/* Find the TBI PHY node. If it's not there, we don't support SGMII */
ug_info->tbi_node = of_parse_phandle(np, "tbi-handle", 0);
-diff -Nur linux-3.14.17/drivers/net/ethernet/freescale/xgmac_mdio.c linux-imx6-3.14/drivers/net/ethernet/freescale/xgmac_mdio.c
---- linux-3.14.17/drivers/net/ethernet/freescale/xgmac_mdio.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/ethernet/freescale/xgmac_mdio.c 2014-09-11 18:06:03.502043969 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/ethernet/freescale/xgmac_mdio.c linux-3.14.22/drivers/net/ethernet/freescale/xgmac_mdio.c
+--- linux-3.14.22.orig/drivers/net/ethernet/freescale/xgmac_mdio.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/ethernet/freescale/xgmac_mdio.c 2014-10-22 14:55:53.042220001 -0500
@@ -162,7 +162,9 @@
/* Return all Fs if nothing was there */
@@ -198641,9 +196051,9 @@ diff -Nur linux-3.14.17/drivers/net/ethernet/freescale/xgmac_mdio.c linux-imx6-3
return 0xffff;
}
-diff -Nur linux-3.14.17/drivers/net/ethernet/intel/e1000e/ptp.c linux-imx6-3.14/drivers/net/ethernet/intel/e1000e/ptp.c
---- linux-3.14.17/drivers/net/ethernet/intel/e1000e/ptp.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/ethernet/intel/e1000e/ptp.c 2014-09-11 18:06:03.558044192 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/ethernet/intel/e1000e/ptp.c linux-3.14.22/drivers/net/ethernet/intel/e1000e/ptp.c
+--- linux-3.14.22.orig/drivers/net/ethernet/intel/e1000e/ptp.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/ethernet/intel/e1000e/ptp.c 2014-10-22 14:55:53.042220001 -0500
@@ -191,6 +191,7 @@
.n_alarm = 0,
.n_ext_ts = 0,
@@ -198652,9 +196062,9 @@ diff -Nur linux-3.14.17/drivers/net/ethernet/intel/e1000e/ptp.c linux-imx6-3.14/
.pps = 0,
.adjfreq = e1000e_phc_adjfreq,
.adjtime = e1000e_phc_adjtime,
-diff -Nur linux-3.14.17/drivers/net/ethernet/mellanox/mlx4/en_clock.c linux-imx6-3.14/drivers/net/ethernet/mellanox/mlx4/en_clock.c
---- linux-3.14.17/drivers/net/ethernet/mellanox/mlx4/en_clock.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/ethernet/mellanox/mlx4/en_clock.c 2014-09-11 18:06:03.614044416 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/ethernet/mellanox/mlx4/en_clock.c linux-3.14.22/drivers/net/ethernet/mellanox/mlx4/en_clock.c
+--- linux-3.14.22.orig/drivers/net/ethernet/mellanox/mlx4/en_clock.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/ethernet/mellanox/mlx4/en_clock.c 2014-10-22 14:55:53.042220001 -0500
@@ -276,6 +276,7 @@
.n_alarm = 0,
.n_ext_ts = 0,
@@ -198663,9 +196073,9 @@ diff -Nur linux-3.14.17/drivers/net/ethernet/mellanox/mlx4/en_clock.c linux-imx6
.pps = 0,
.adjfreq = mlx4_en_phc_adjfreq,
.adjtime = mlx4_en_phc_adjtime,
-diff -Nur linux-3.14.17/drivers/net/ethernet/sfc/ptp.c linux-imx6-3.14/drivers/net/ethernet/sfc/ptp.c
---- linux-3.14.17/drivers/net/ethernet/sfc/ptp.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/ethernet/sfc/ptp.c 2014-09-11 18:06:03.674044656 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/ethernet/sfc/ptp.c linux-3.14.22/drivers/net/ethernet/sfc/ptp.c
+--- linux-3.14.22.orig/drivers/net/ethernet/sfc/ptp.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/ethernet/sfc/ptp.c 2014-10-22 14:55:53.042220001 -0500
@@ -1208,6 +1208,7 @@
.n_alarm = 0,
.n_ext_ts = 0,
@@ -198674,9 +196084,9 @@ diff -Nur linux-3.14.17/drivers/net/ethernet/sfc/ptp.c linux-imx6-3.14/drivers/n
.pps = 1,
.adjfreq = efx_phc_adjfreq,
.adjtime = efx_phc_adjtime,
-diff -Nur linux-3.14.17/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c linux-imx6-3.14/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c
---- linux-3.14.17/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c 2014-09-11 18:06:03.690044720 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c linux-3.14.22/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c
+--- linux-3.14.22.orig/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c 2014-10-22 14:55:53.042220001 -0500
@@ -164,6 +164,7 @@
.n_alarm = 0,
.n_ext_ts = 0,
@@ -198685,9 +196095,9 @@ diff -Nur linux-3.14.17/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c linux-i
.pps = 0,
.adjfreq = stmmac_adjust_freq,
.adjtime = stmmac_adjust_time,
-diff -Nur linux-3.14.17/drivers/net/ethernet/ti/cpts.c linux-imx6-3.14/drivers/net/ethernet/ti/cpts.c
---- linux-3.14.17/drivers/net/ethernet/ti/cpts.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/ethernet/ti/cpts.c 2014-09-11 18:06:03.698044751 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/ethernet/ti/cpts.c linux-3.14.22/drivers/net/ethernet/ti/cpts.c
+--- linux-3.14.22.orig/drivers/net/ethernet/ti/cpts.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/ethernet/ti/cpts.c 2014-10-22 14:55:53.042220001 -0500
@@ -217,6 +217,7 @@
.name = "CTPS timer",
.max_adj = 1000000,
@@ -198696,9 +196106,9 @@ diff -Nur linux-3.14.17/drivers/net/ethernet/ti/cpts.c linux-imx6-3.14/drivers/n
.pps = 0,
.adjfreq = cpts_ptp_adjfreq,
.adjtime = cpts_ptp_adjtime,
-diff -Nur linux-3.14.17/drivers/net/ethernet/tile/tilegx.c linux-imx6-3.14/drivers/net/ethernet/tile/tilegx.c
---- linux-3.14.17/drivers/net/ethernet/tile/tilegx.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/ethernet/tile/tilegx.c 2014-09-11 18:06:03.702044768 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/ethernet/tile/tilegx.c linux-3.14.22/drivers/net/ethernet/tile/tilegx.c
+--- linux-3.14.22.orig/drivers/net/ethernet/tile/tilegx.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/ethernet/tile/tilegx.c 2014-10-22 14:55:53.042220001 -0500
@@ -870,6 +870,7 @@
.name = "mPIPE clock",
.max_adj = 999999999,
@@ -198707,9 +196117,9 @@ diff -Nur linux-3.14.17/drivers/net/ethernet/tile/tilegx.c linux-imx6-3.14/drive
.pps = 0,
.adjfreq = ptp_mpipe_adjfreq,
.adjtime = ptp_mpipe_adjtime,
-diff -Nur linux-3.14.17/drivers/net/ieee802154/Kconfig linux-imx6-3.14/drivers/net/ieee802154/Kconfig
---- linux-3.14.17/drivers/net/ieee802154/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/ieee802154/Kconfig 2014-09-11 18:06:03.730044879 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/ieee802154/Kconfig linux-3.14.22/drivers/net/ieee802154/Kconfig
+--- linux-3.14.22.orig/drivers/net/ieee802154/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/ieee802154/Kconfig 2014-10-22 14:55:53.042220001 -0500
@@ -15,9 +15,9 @@
depends on IEEE802154_DRIVERS
---help---
@@ -198751,20 +196161,9 @@ diff -Nur linux-3.14.17/drivers/net/ieee802154/Kconfig linux-imx6-3.14/drivers/n
- the module will be called 'mrf24j40'.
+ This driver can also be built as a module. To do so, say M here.
+ the module will be called 'mrf24j40'.
-diff -Nur linux-3.14.17/drivers/net/macvlan.c linux-imx6-3.14/drivers/net/macvlan.c
---- linux-3.14.17/drivers/net/macvlan.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/macvlan.c 2014-09-11 18:06:03.746044943 +0200
-@@ -548,7 +548,6 @@
- (lowerdev->state & MACVLAN_STATE_MASK);
- dev->features = lowerdev->features & MACVLAN_FEATURES;
- dev->features |= ALWAYS_ON_FEATURES;
-- dev->vlan_features = lowerdev->vlan_features & MACVLAN_FEATURES;
- dev->gso_max_size = lowerdev->gso_max_size;
- dev->iflink = lowerdev->ifindex;
- dev->hard_header_len = lowerdev->hard_header_len;
-diff -Nur linux-3.14.17/drivers/net/phy/at803x.c linux-imx6-3.14/drivers/net/phy/at803x.c
---- linux-3.14.17/drivers/net/phy/at803x.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/phy/at803x.c 2014-09-11 18:06:03.746044943 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/phy/at803x.c linux-3.14.22/drivers/net/phy/at803x.c
+--- linux-3.14.22.orig/drivers/net/phy/at803x.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/phy/at803x.c 2014-10-22 14:55:53.042220001 -0500
@@ -27,6 +27,9 @@
#define AT803X_MMD_ACCESS_CONTROL 0x0D
#define AT803X_MMD_ACCESS_CONTROL_DATA 0x0E
@@ -198871,18 +196270,9 @@ diff -Nur linux-3.14.17/drivers/net/phy/at803x.c linux-imx6-3.14/drivers/net/phy
}
module_init(atheros_init);
-diff -Nur linux-3.14.17/drivers/net/phy/phy_device.c linux-imx6-3.14/drivers/net/phy/phy_device.c
---- linux-3.14.17/drivers/net/phy/phy_device.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/phy/phy_device.c 2014-09-11 18:06:03.750044960 +0200
-@@ -353,7 +353,7 @@
- phydev->bus->phy_map[phydev->addr] = phydev;
-
- /* Run all of the fixups for this PHY */
-- err = phy_scan_fixups(phydev);
-+ err = phy_init_hw(phydev);
- if (err) {
- pr_err("PHY %d failed to initialize\n", phydev->addr);
- goto out;
+diff -Nur linux-3.14.22.orig/drivers/net/phy/phy_device.c linux-3.14.22/drivers/net/phy/phy_device.c
+--- linux-3.14.22.orig/drivers/net/phy/phy_device.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/phy/phy_device.c 2014-10-22 14:55:53.042220001 -0500
@@ -1029,7 +1029,7 @@
return 0;
}
@@ -198901,9 +196291,9 @@ diff -Nur linux-3.14.17/drivers/net/phy/phy_device.c linux-imx6-3.14/drivers/net
static int gen10g_config_init(struct phy_device *phydev)
{
/* Temporarily just say we support everything */
-diff -Nur linux-3.14.17/drivers/net/phy/smsc.c linux-imx6-3.14/drivers/net/phy/smsc.c
---- linux-3.14.17/drivers/net/phy/smsc.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/phy/smsc.c 2014-09-11 18:06:03.750044960 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/phy/smsc.c linux-3.14.22/drivers/net/phy/smsc.c
+--- linux-3.14.22.orig/drivers/net/phy/smsc.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/phy/smsc.c 2014-10-22 14:55:53.042220001 -0500
@@ -249,8 +249,7 @@
static void __exit smsc_exit(void)
@@ -198914,9 +196304,9 @@ diff -Nur linux-3.14.17/drivers/net/phy/smsc.c linux-imx6-3.14/drivers/net/phy/s
}
MODULE_DESCRIPTION("SMSC PHY driver");
-diff -Nur linux-3.14.17/drivers/net/phy/vitesse.c linux-imx6-3.14/drivers/net/phy/vitesse.c
---- linux-3.14.17/drivers/net/phy/vitesse.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/phy/vitesse.c 2014-09-11 18:06:03.750044960 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/phy/vitesse.c linux-3.14.22/drivers/net/phy/vitesse.c
+--- linux-3.14.22.orig/drivers/net/phy/vitesse.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/phy/vitesse.c 2014-10-22 14:55:53.042220001 -0500
@@ -319,8 +319,7 @@
static void __exit vsc82xx_exit(void)
@@ -198927,21 +196317,9 @@ diff -Nur linux-3.14.17/drivers/net/phy/vitesse.c linux-imx6-3.14/drivers/net/ph
}
module_init(vsc82xx_init);
-diff -Nur linux-3.14.17/drivers/net/ppp/pptp.c linux-imx6-3.14/drivers/net/ppp/pptp.c
---- linux-3.14.17/drivers/net/ppp/pptp.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/ppp/pptp.c 2014-09-11 18:06:03.754044975 +0200
-@@ -281,7 +281,7 @@
- nf_reset(skb);
-
- skb->ip_summed = CHECKSUM_NONE;
-- ip_select_ident(skb, NULL);
-+ ip_select_ident(skb, &rt->dst, NULL);
- ip_send_check(iph);
-
- ip_local_out(skb);
-diff -Nur linux-3.14.17/drivers/net/veth.c linux-imx6-3.14/drivers/net/veth.c
---- linux-3.14.17/drivers/net/veth.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/veth.c 2014-09-11 18:06:03.790045119 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/veth.c linux-3.14.22/drivers/net/veth.c
+--- linux-3.14.22.orig/drivers/net/veth.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/veth.c 2014-10-22 14:55:53.042220001 -0500
@@ -14,6 +14,7 @@
#include <linux/etherdevice.h>
#include <linux/u64_stats_sync.h>
@@ -198964,9 +196342,9 @@ diff -Nur linux-3.14.17/drivers/net/veth.c linux-imx6-3.14/drivers/net/veth.c
if (err < 0)
return err;
-diff -Nur linux-3.14.17/drivers/net/wireless/ath/ar5523/ar5523.c linux-imx6-3.14/drivers/net/wireless/ath/ar5523/ar5523.c
---- linux-3.14.17/drivers/net/wireless/ath/ar5523/ar5523.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/ath/ar5523/ar5523.c 2014-09-11 18:06:03.806045183 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/ath/ar5523/ar5523.c linux-3.14.22/drivers/net/wireless/ath/ar5523/ar5523.c
+--- linux-3.14.22.orig/drivers/net/wireless/ath/ar5523/ar5523.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/ath/ar5523/ar5523.c 2014-10-22 14:55:53.046220001 -0500
@@ -1090,7 +1090,8 @@
return ret;
}
@@ -198977,9 +196355,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/ath/ar5523/ar5523.c linux-imx6-3.14
{
struct ar5523 *ar = hw->priv;
-diff -Nur linux-3.14.17/drivers/net/wireless/ath/ath10k/mac.c linux-imx6-3.14/drivers/net/wireless/ath/ath10k/mac.c
---- linux-3.14.17/drivers/net/wireless/ath/ath10k/mac.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/ath/ath10k/mac.c 2014-09-11 18:06:03.818045231 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/ath/ath10k/mac.c linux-3.14.22/drivers/net/wireless/ath/ath10k/mac.c
+--- linux-3.14.22.orig/drivers/net/wireless/ath/ath10k/mac.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/ath/ath10k/mac.c 2014-10-22 14:55:53.046220001 -0500
@@ -3183,7 +3183,8 @@
return ret;
}
@@ -198990,9 +196368,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/ath/ath10k/mac.c linux-imx6-3.14/dr
{
struct ath10k *ar = hw->priv;
bool skip;
-diff -Nur linux-3.14.17/drivers/net/wireless/ath/ath6kl/cfg80211.c linux-imx6-3.14/drivers/net/wireless/ath/ath6kl/cfg80211.c
---- linux-3.14.17/drivers/net/wireless/ath/ath6kl/cfg80211.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/ath/ath6kl/cfg80211.c 2014-09-11 18:06:03.850045358 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/ath/ath6kl/cfg80211.c linux-3.14.22/drivers/net/wireless/ath/ath6kl/cfg80211.c
+--- linux-3.14.22.orig/drivers/net/wireless/ath/ath6kl/cfg80211.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/ath/ath6kl/cfg80211.c 2014-10-22 14:55:53.046220001 -0500
@@ -790,7 +790,7 @@
if (nw_type & ADHOC_NETWORK) {
ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "ad-hoc %s selected\n",
@@ -199017,9 +196395,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/ath/ath6kl/cfg80211.c linux-imx6-3.
return;
}
-diff -Nur linux-3.14.17/drivers/net/wireless/ath/ath6kl/hif.h linux-imx6-3.14/drivers/net/wireless/ath/ath6kl/hif.h
---- linux-3.14.17/drivers/net/wireless/ath/ath6kl/hif.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/ath/ath6kl/hif.h 2014-09-11 18:06:03.850045358 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/ath/ath6kl/hif.h linux-3.14.22/drivers/net/wireless/ath/ath6kl/hif.h
+--- linux-3.14.22.orig/drivers/net/wireless/ath/ath6kl/hif.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/ath/ath6kl/hif.h 2014-10-22 14:55:53.046220001 -0500
@@ -197,9 +197,9 @@
/* bounce buffer for upper layers to copy to/from */
u8 *virt_dma_buf;
@@ -199032,9 +196410,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/ath/ath6kl/hif.h linux-imx6-3.14/dr
};
struct ath6kl_irq_proc_registers {
-diff -Nur linux-3.14.17/drivers/net/wireless/ath/ath6kl/sdio.c linux-imx6-3.14/drivers/net/wireless/ath/ath6kl/sdio.c
---- linux-3.14.17/drivers/net/wireless/ath/ath6kl/sdio.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/ath/ath6kl/sdio.c 2014-09-11 18:06:03.850045358 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/ath/ath6kl/sdio.c linux-3.14.22/drivers/net/wireless/ath/ath6kl/sdio.c
+--- linux-3.14.22.orig/drivers/net/wireless/ath/ath6kl/sdio.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/ath/ath6kl/sdio.c 2014-10-22 14:55:53.046220001 -0500
@@ -222,6 +222,7 @@
struct mmc_data *data)
{
@@ -199072,9 +196450,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/ath/ath6kl/sdio.c linux-imx6-3.14/d
scat_req_sz = sizeof(*s_req) + scat_list_sz;
if (!virt_scat)
-diff -Nur linux-3.14.17/drivers/net/wireless/ath/ath9k/main.c linux-imx6-3.14/drivers/net/wireless/ath/ath9k/main.c
---- linux-3.14.17/drivers/net/wireless/ath/ath9k/main.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/ath/ath9k/main.c 2014-09-11 18:06:03.870045438 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/ath/ath9k/main.c linux-3.14.22/drivers/net/wireless/ath/ath9k/main.c
+--- linux-3.14.22.orig/drivers/net/wireless/ath/ath9k/main.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/ath/ath9k/main.c 2014-10-22 14:55:53.046220001 -0500
@@ -1883,7 +1883,8 @@
return !!npend;
}
@@ -199085,28 +196463,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/ath/ath9k/main.c linux-imx6-3.14/dr
{
struct ath_softc *sc = hw->priv;
struct ath_hw *ah = sc->sc_ah;
-diff -Nur linux-3.14.17/drivers/net/wireless/ath/ath9k/xmit.c linux-imx6-3.14/drivers/net/wireless/ath/ath9k/xmit.c
---- linux-3.14.17/drivers/net/wireless/ath/ath9k/xmit.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/ath/ath9k/xmit.c 2014-09-11 18:06:03.874045454 +0200
-@@ -890,15 +890,6 @@
-
- tx_info = IEEE80211_SKB_CB(skb);
- tx_info->flags &= ~IEEE80211_TX_CTL_CLEAR_PS_FILT;
--
-- /*
-- * No aggregation session is running, but there may be frames
-- * from a previous session or a failed attempt in the queue.
-- * Send them out as normal data frames
-- */
-- if (!tid->active)
-- tx_info->flags &= ~IEEE80211_TX_CTL_AMPDU;
--
- if (!(tx_info->flags & IEEE80211_TX_CTL_AMPDU)) {
- bf->bf_state.bf_type = 0;
- return bf;
-diff -Nur linux-3.14.17/drivers/net/wireless/ath/carl9170/main.c linux-imx6-3.14/drivers/net/wireless/ath/carl9170/main.c
---- linux-3.14.17/drivers/net/wireless/ath/carl9170/main.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/ath/carl9170/main.c 2014-09-11 18:06:03.878045470 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/ath/carl9170/main.c linux-3.14.22/drivers/net/wireless/ath/carl9170/main.c
+--- linux-3.14.22.orig/drivers/net/wireless/ath/carl9170/main.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/ath/carl9170/main.c 2014-10-22 14:55:53.046220001 -0500
@@ -1707,7 +1707,9 @@
return 0;
}
@@ -199118,9 +196477,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/ath/carl9170/main.c linux-imx6-3.14
{
struct ar9170 *ar = hw->priv;
unsigned int vid;
-diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c
---- linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c 2014-09-11 18:06:03.902045566 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c
+--- linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c 2014-10-22 14:55:53.046220001 -0500
@@ -43,7 +43,6 @@
#include "dhd_bus.h"
#include "dhd_dbg.h"
@@ -199379,9 +196738,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c linux-i
{
brcmf_dbg(SDIO, "Enter\n");
-diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/chip.c linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/chip.c
---- linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/chip.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/chip.c 2014-09-11 18:06:03.902045566 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/chip.c linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/chip.c
+--- linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/chip.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/chip.c 2014-10-22 14:55:53.046220001 -0500
@@ -0,0 +1,1035 @@
+/*
+ * Copyright (c) 2014 Broadcom Corporation
@@ -200418,9 +197777,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/chip.c linux-imx
+ PMU_RCTL_LOGIC_DISABLE_MASK)) == 0;
+ }
+}
-diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/chip.h linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/chip.h
---- linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/chip.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/chip.h 2014-09-11 18:06:03.902045566 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/chip.h linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/chip.h
+--- linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/chip.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/chip.h 2014-10-22 14:55:53.046220001 -0500
@@ -0,0 +1,91 @@
+/*
+ * Copyright (c) 2014 Broadcom Corporation
@@ -200513,9 +197872,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/chip.h linux-imx
+bool brcmf_chip_sr_capable(struct brcmf_chip *pub);
+
+#endif /* BRCMF_AXIDMP_H */
-diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/dhd_bus.h linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/dhd_bus.h
---- linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/dhd_bus.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/dhd_bus.h 2014-09-11 18:06:03.902045566 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/dhd_bus.h linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/dhd_bus.h
+--- linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/dhd_bus.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/dhd_bus.h 2014-10-22 14:55:53.046220001 -0500
@@ -63,7 +63,6 @@
*/
struct brcmf_bus_ops {
@@ -200544,9 +197903,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/dhd_bus.h linux-
static inline void brcmf_bus_stop(struct brcmf_bus *bus)
{
bus->ops->stop(bus->dev);
-diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c
---- linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c 2014-09-11 18:06:03.902045566 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c
+--- linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c 2014-10-22 14:55:53.046220001 -0500
@@ -32,6 +32,9 @@
#define BRCMF_DEFAULT_SCAN_UNASSOC_TIME 40
#define BRCMF_DEFAULT_PACKET_FILTER "100 0 0 0 0x01 0x00"
@@ -200586,9 +197945,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c lin
/* Setup event_msgs, enable E_IF */
err = brcmf_fil_iovar_data_get(ifp, "event_msgs", eventmask,
BRCMF_EVENTING_MASK_LEN);
-diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/dhd.h linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/dhd.h
---- linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/dhd.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/dhd.h 2014-09-11 18:06:03.902045566 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/dhd.h linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/dhd.h
+--- linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/dhd.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/dhd.h 2014-10-22 14:55:53.050220001 -0500
@@ -186,7 +186,7 @@
void brcmf_txflowblock_if(struct brcmf_if *ifp,
enum brcmf_netif_stop_reason reason, bool state);
@@ -200598,9 +197957,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/dhd.h linux-imx6
bool success);
/* Sets dongle media info (drv_version, mac address). */
-diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c
---- linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c 2014-09-11 18:06:03.902045566 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c
+--- linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c 2014-10-22 14:55:53.050220001 -0500
@@ -190,7 +190,7 @@
int ret;
struct brcmf_if *ifp = netdev_priv(ndev);
@@ -200620,6 +197979,24 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c linu
ret = brcmf_fws_process_skb(ifp, skb);
done:
+@@ -511,7 +514,7 @@
+
+ void brcmf_rx_frame(struct device *dev, struct sk_buff *skb)
+ {
+- struct brcmf_if *ifp;
++ struct brcmf_if *ifp = NULL;
+ struct brcmf_bus *bus_if = dev_get_drvdata(dev);
+ struct brcmf_pub *drvr = bus_if->drvr;
+ struct brcmf_skb_reorder_data *rd;
+@@ -522,7 +525,7 @@
+
+ /* process and remove protocol-specific header */
+ ret = brcmf_proto_hdrpull(drvr, true, &ifidx, skb);
+- ifp = drvr->iflist[ifidx];
++ if (!ret) ifp = drvr->iflist[ifidx];
+
+ if (ret || !ifp || !ifp->ndev) {
+ if ((ret != -ENODATA) && ifp)
@@ -538,31 +541,26 @@
brcmf_netif_rx(ifp, skb);
}
@@ -200709,9 +198086,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c linu
brcmf_debugfs_detach(drvr);
bus_if->drvr = NULL;
kfree(drvr);
-diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c
---- linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c 2014-09-11 18:06:03.906045582 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c
+--- linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c 2014-10-22 14:55:53.050220001 -0500
@@ -23,6 +23,7 @@
#include <linux/interrupt.h>
#include <linux/sched.h>
@@ -202586,9 +199963,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c linux
}
kfree(bus->rxbuf);
-diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/firmware.c linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/firmware.c
---- linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/firmware.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/firmware.c 2014-09-11 18:06:03.906045582 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/firmware.c linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/firmware.c
+--- linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/firmware.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/firmware.c 2014-10-22 14:55:53.050220001 -0500
@@ -0,0 +1,332 @@
+/*
+ * Copyright (c) 2013 Broadcom Corporation
@@ -202922,9 +200299,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/firmware.c linux
+ GFP_KERNEL, fwctx,
+ brcmf_fw_request_code_done);
+}
-diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/firmware.h linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/firmware.h
---- linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/firmware.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/firmware.h 2014-09-11 18:06:03.906045582 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/firmware.h linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/firmware.h
+--- linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/firmware.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/firmware.h 2014-10-22 14:55:53.050220001 -0500
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2013 Broadcom Corporation
@@ -202962,9 +200339,18 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/firmware.h linux
+ void *nvram_image, u32 nvram_len));
+
+#endif /* BRCMFMAC_FIRMWARE_H */
-diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/fwil.c linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/fwil.c
---- linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/fwil.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/fwil.c 2014-09-11 18:06:03.906045582 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/fwil.c linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/fwil.c
+--- linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/fwil.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/fwil.c 2014-10-22 14:55:53.050220001 -0500
+@@ -54,7 +54,7 @@
+ if (err >= 0)
+ err = 0;
+ else
+- brcmf_err("Failed err=%d\n", err);
++ brcmf_dbg(FIL, "Failed err=%d\n", err);
+
+ return err;
+ }
@@ -124,7 +124,8 @@
}
@@ -202984,9 +200370,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/fwil.c linux-imx
u32 len)
{
struct brcmf_pub *drvr = ifp->drvr;
-diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/fwil.h linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/fwil.h
---- linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/fwil.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/fwil.h 2014-09-11 18:06:03.906045582 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/fwil.h linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/fwil.h
+--- linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/fwil.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/fwil.h 2014-10-22 14:55:53.050220001 -0500
@@ -83,7 +83,7 @@
s32 brcmf_fil_cmd_int_set(struct brcmf_if *ifp, u32 cmd, u32 data);
s32 brcmf_fil_cmd_int_get(struct brcmf_if *ifp, u32 cmd, u32 *data);
@@ -202996,9 +200382,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/fwil.h linux-imx
u32 len);
s32 brcmf_fil_iovar_data_get(struct brcmf_if *ifp, char *name, void *data,
u32 len);
-diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/fwil_types.h linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/fwil_types.h
---- linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/fwil_types.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/fwil_types.h 2014-09-11 18:06:03.906045582 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/fwil_types.h linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/fwil_types.h
+--- linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/fwil_types.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/fwil_types.h 2014-10-22 14:55:53.050220001 -0500
@@ -48,6 +48,19 @@
#define BRCMF_MAXRATES_IN_SET 16 /* max # of rates in rateset */
@@ -203054,9 +200440,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/fwil_types.h lin
/* used for join with or without a specific bssid and channel list */
struct brcmf_join_params {
struct brcmf_ssid_le ssid_le;
-diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c
---- linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c 2014-09-11 18:06:03.906045582 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c
+--- linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c 2014-10-22 14:55:53.050220001 -0500
@@ -476,6 +476,7 @@
bool bus_flow_blocked;
bool creditmap_received;
@@ -203219,9 +200605,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c linux
fws->fws_wq = create_singlethread_workqueue("brcmf_fws_wq");
if (fws->fws_wq == NULL) {
brcmf_err("workqueue creation failed\n");
-diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/Makefile linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/Makefile
---- linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/Makefile 2014-09-11 18:06:03.902045566 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/Makefile linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/Makefile
+--- linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/Makefile 2014-10-22 14:55:53.050220001 -0500
@@ -24,6 +24,7 @@
obj-$(CONFIG_BRCMFMAC) += brcmfmac.o
brcmfmac-objs += \
@@ -203245,9 +200631,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/Makefile linux-i
brcmfmac-$(CONFIG_BRCMFMAC_USB) += \
usb.o
brcmfmac-$(CONFIG_BRCMDBG) += \
-diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/nvram.c linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/nvram.c
---- linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/nvram.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/nvram.c 1970-01-01 01:00:00.000000000 +0100
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/nvram.c linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/nvram.c
+--- linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/nvram.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/nvram.c 1969-12-31 18:00:00.000000000 -0600
@@ -1,94 +0,0 @@
-/*
- * Copyright (c) 2013 Broadcom Corporation
@@ -203343,9 +200729,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/nvram.c linux-im
-}
-
-
-diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/nvram.h linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/nvram.h
---- linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/nvram.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/nvram.h 1970-01-01 01:00:00.000000000 +0100
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/nvram.h linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/nvram.h
+--- linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/nvram.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/nvram.h 1969-12-31 18:00:00.000000000 -0600
@@ -1,24 +0,0 @@
-/*
- * Copyright (c) 2013 Broadcom Corporation
@@ -203371,9 +200757,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/nvram.h linux-im
-
-
-#endif /* BRCMFMAC_NVRAM_H */
-diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/p2p.c linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/p2p.c
---- linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/p2p.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/p2p.c 2014-09-11 18:06:03.906045582 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/p2p.c linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/p2p.c
+--- linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/p2p.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/p2p.c 2014-10-22 14:55:53.050220001 -0500
@@ -797,7 +797,8 @@
/* SOCIAL CHANNELS 1, 6, 11 */
search_state = WL_P2P_DISC_ST_SEARCH;
@@ -203404,9 +200790,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/p2p.c linux-imx6
break;
case NL80211_IFTYPE_P2P_DEVICE:
return brcmf_p2p_create_p2pdev(&cfg->p2p, wiphy,
-diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.c linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.c
---- linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.c 1970-01-01 01:00:00.000000000 +0100
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.c linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.c
+--- linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.c 1969-12-31 18:00:00.000000000 -0600
@@ -1,973 +0,0 @@
-/*
- * Copyright (c) 2011 Broadcom Corporation
@@ -204381,9 +201767,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.c linu
-
- return brcmf_sdio_chip_cr4_exitdl(sdiodev, ci, rstvec);
-}
-diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.h linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.h
---- linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.h 1970-01-01 01:00:00.000000000 +0100
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.h linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.h
+--- linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.h 1969-12-31 18:00:00.000000000 -0600
@@ -1,231 +0,0 @@
-/*
- * Copyright (c) 2011 Broadcom Corporation
@@ -204616,9 +202002,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.h linu
- struct brcmf_chip *ci, u32 rstvec);
-
-#endif /* _BRCMFMAC_SDIO_CHIP_H_ */
-diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/sdio_host.h linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/sdio_host.h
---- linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/sdio_host.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/sdio_host.h 2014-09-11 18:06:03.906045582 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/sdio_host.h linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/sdio_host.h
+--- linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/sdio_host.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/sdio_host.h 2014-10-22 14:55:53.054220001 -0500
@@ -180,6 +180,97 @@
uint max_request_size;
ushort max_segment_count;
@@ -204717,9 +202103,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/sdio_host.h linu
};
/* Register/deregister interrupt handler. */
-diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/usb.c linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/usb.c
---- linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/usb.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/usb.c 2014-09-11 18:06:03.906045582 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/usb.c linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/usb.c
+--- linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/usb.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/usb.c 2014-10-22 14:55:53.054220001 -0500
@@ -25,6 +25,7 @@
#include <dhd_bus.h>
#include <dhd_dbg.h>
@@ -205171,9 +202557,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/usb.c linux-imx6
- INIT_LIST_HEAD(&fw_image_list);
usb_register(&brcmf_usbdrvr);
}
-diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
---- linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c 2014-09-11 18:06:03.910045599 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
+--- linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c 2014-10-22 14:55:53.054220001 -0500
@@ -18,6 +18,7 @@
#include <linux/kernel.h>
@@ -205213,7 +202599,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
/* Quarter dBm units to mW
* Table starts at QDBM_OFFSET, so the first entry is mW for qdBm=153
* Table is offset so the last entry is largest mW value that fits in
-@@ -335,6 +341,60 @@
+@@ -335,6 +341,61 @@
return qdbm;
}
@@ -205228,6 +202614,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
+ ch_inf.chnum = ieee80211_frequency_to_channel(ch->center_freq1);
+ primary_offset = ch->center_freq1 - ch->chan->center_freq;
+ switch (ch->width) {
++ case NL80211_CHAN_WIDTH_20_NOHT:
+ case NL80211_CHAN_WIDTH_20:
+ ch_inf.bw = BRCMU_CHAN_BW_20;
+ WARN_ON(primary_offset != 0);
@@ -205274,7 +202661,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
u16 channel_to_chanspec(struct brcmu_d11inf *d11inf,
struct ieee80211_channel *ch)
{
-@@ -351,13 +411,11 @@
+@@ -351,13 +412,11 @@
* triples, returning a pointer to the substring whose first element
* matches tag
*/
@@ -205292,7 +202679,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
/* find tagged parameter */
while (totlen >= TLV_HDR_LEN) {
-@@ -378,8 +436,8 @@
+@@ -378,8 +437,8 @@
* not update the tlvs buffer pointer/length.
*/
static bool
@@ -205303,7 +202690,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
{
/* If the contents match the OUI and the type */
if (ie[TLV_LEN_OFF] >= oui_len + 1 &&
-@@ -401,12 +459,12 @@
+@@ -401,12 +460,12 @@
}
static struct brcmf_vs_tlv *
@@ -205319,7 +202706,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
WPA_OUI, TLV_OUI_LEN, WPA_OUI_TYPE))
return (struct brcmf_vs_tlv *)ie;
}
-@@ -414,9 +472,9 @@
+@@ -414,9 +473,9 @@
}
static struct brcmf_vs_tlv *
@@ -205331,7 +202718,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
while ((ie = brcmf_parse_tlvs(parse, len, WLAN_EID_VENDOR_SPECIFIC))) {
if (brcmf_tlv_has_ie((u8 *)ie, &parse, &len,
-@@ -491,6 +549,19 @@
+@@ -491,6 +550,19 @@
return err;
}
@@ -205351,7 +202738,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
static struct wireless_dev *brcmf_cfg80211_add_iface(struct wiphy *wiphy,
const char *name,
enum nl80211_iftype type,
-@@ -569,6 +640,9 @@
+@@ -569,6 +641,9 @@
if (err)
brcmf_err("Scan abort failed\n");
}
@@ -205361,7 +202748,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
/*
* e-scan can be initiated by scheduled scan
* which takes precedence.
-@@ -578,12 +652,10 @@
+@@ -578,12 +653,10 @@
cfg->sched_escan = false;
if (!aborted)
cfg80211_sched_scan_results(cfg_to_wiphy(cfg));
@@ -205374,7 +202761,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
}
if (!test_and_clear_bit(BRCMF_SCAN_STATUS_BUSY, &cfg->scan_status))
brcmf_dbg(SCAN, "Scan complete, probably P2P scan\n");
-@@ -651,7 +723,6 @@
+@@ -651,7 +724,6 @@
type);
return -EOPNOTSUPP;
case NL80211_IFTYPE_ADHOC:
@@ -205382,7 +202769,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
infra = 0;
break;
case NL80211_IFTYPE_STATION:
-@@ -667,12 +738,10 @@
+@@ -667,12 +739,10 @@
*/
return 0;
}
@@ -205395,7 +202782,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
ap = 1;
break;
default:
-@@ -696,7 +765,7 @@
+@@ -696,7 +766,7 @@
err = -EAGAIN;
goto done;
}
@@ -205404,7 +202791,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
"Adhoc" : "Infra");
}
ndev->ieee80211_ptr->iftype = type;
-@@ -1222,8 +1291,8 @@
+@@ -1222,8 +1292,8 @@
params->chandef.chan->center_freq);
if (params->channel_fixed) {
/* adding chanspec */
@@ -205415,7 +202802,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
join_params.params_le.chanspec_list[0] =
cpu_to_le16(chanspec);
join_params.params_le.chanspec_num = cpu_to_le32(1);
-@@ -1340,13 +1409,14 @@
+@@ -1340,13 +1410,14 @@
}
static s32
@@ -205432,7 +202819,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
s32 err = 0;
if (sme->crypto.n_ciphers_pairwise) {
-@@ -1398,7 +1468,12 @@
+@@ -1398,7 +1469,12 @@
if (brcmf_find_wpsie(sme->ie, sme->ie_len) && !pval && !gval &&
sme->privacy)
pval = AES_ENABLED;
@@ -205446,7 +202833,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
if (err) {
brcmf_err("error (%d)\n", err);
return err;
-@@ -1562,13 +1637,12 @@
+@@ -1562,13 +1638,12 @@
struct ieee80211_channel *chan = sme->channel;
struct brcmf_join_params join_params;
size_t join_params_size;
@@ -205463,7 +202850,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
s32 err = 0;
brcmf_dbg(TRACE, "Enter\n");
-@@ -1591,7 +1665,8 @@
+@@ -1591,7 +1666,8 @@
ie_len = wpa_ie->len + TLV_HDR_LEN;
} else {
/* find the RSN_IE */
@@ -205473,7 +202860,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
WLAN_EID_RSN);
if (rsn_ie) {
ie = rsn_ie;
-@@ -1636,7 +1711,7 @@
+@@ -1636,7 +1712,7 @@
goto done;
}
@@ -205482,7 +202869,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
if (err) {
brcmf_err("wl_set_set_cipher failed (%d)\n", err);
goto done;
-@@ -1678,22 +1753,9 @@
+@@ -1678,22 +1754,9 @@
ext_join_params->ssid_le.SSID_len = cpu_to_le32(profile->ssid.SSID_len);
memcpy(&ext_join_params->ssid_le.SSID, sme->ssid,
profile->ssid.SSID_len);
@@ -205506,7 +202893,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
ext_join_params->scan_le.home_time = cpu_to_le32(-1);
if (sme->bssid)
-@@ -1706,6 +1768,25 @@
+@@ -1706,6 +1769,25 @@
ext_join_params->assoc_le.chanspec_list[0] =
cpu_to_le16(chanspec);
@@ -205532,7 +202919,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
}
err = brcmf_fil_bsscfg_data_set(ifp, "join", ext_join_params,
-@@ -1913,7 +1994,7 @@
+@@ -1913,7 +1995,7 @@
brcmf_dbg(CONN, "Setting the key index %d\n", key.index);
memcpy(key.data, params->key, key.len);
@@ -205541,7 +202928,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
(params->cipher == WLAN_CIPHER_SUITE_TKIP)) {
brcmf_dbg(CONN, "Swapping RX/TX MIC key\n");
memcpy(keybuf, &key.data[24], sizeof(keybuf));
-@@ -1981,7 +2062,9 @@
+@@ -1981,7 +2063,9 @@
if (!check_vif_up(ifp->vif))
return -EIO;
@@ -205552,7 +202939,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
brcmf_dbg(TRACE, "Exit");
return brcmf_add_keyext(wiphy, ndev, key_idx, mac_addr, params);
}
-@@ -2010,7 +2093,7 @@
+@@ -2010,7 +2094,7 @@
brcmf_dbg(CONN, "WLAN_CIPHER_SUITE_WEP104\n");
break;
case WLAN_CIPHER_SUITE_TKIP:
@@ -205561,7 +202948,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
brcmf_dbg(CONN, "Swapping RX/TX MIC key\n");
memcpy(keybuf, &key.data[24], sizeof(keybuf));
memcpy(&key.data[24], &key.data[16], sizeof(keybuf));
-@@ -2164,12 +2247,14 @@
+@@ -2164,12 +2248,14 @@
s32 err = 0;
u8 *bssid = profile->bssid;
struct brcmf_sta_info_le sta_info_le;
@@ -205577,7 +202964,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
memcpy(&sta_info_le, mac, ETH_ALEN);
err = brcmf_fil_iovar_data_get(ifp, "sta_info",
&sta_info_le,
-@@ -2186,7 +2271,7 @@
+@@ -2186,7 +2272,7 @@
}
brcmf_dbg(TRACE, "STA idle time : %d ms, connected time :%d sec\n",
sinfo->inactive_time, sinfo->connected_time);
@@ -205586,7 +202973,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
if (memcmp(mac, bssid, ETH_ALEN)) {
brcmf_err("Wrong Mac address cfg_mac-%pM wl_bssid-%pM\n",
mac, bssid);
-@@ -2218,6 +2303,30 @@
+@@ -2218,6 +2304,30 @@
sinfo->signal = rssi;
brcmf_dbg(CONN, "RSSI %d dBm\n", rssi);
}
@@ -205617,7 +203004,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
}
} else
err = -EPERM;
-@@ -2444,18 +2553,13 @@
+@@ -2444,18 +2554,13 @@
return err;
}
@@ -205637,7 +203024,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
u16 beacon_interval;
u8 dtim_period;
size_t ie_len;
-@@ -3075,7 +3179,7 @@
+@@ -3075,7 +3180,7 @@
}
if (!request->n_ssids || !request->n_match_sets) {
@@ -205646,7 +203033,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
request->n_ssids);
return -EINVAL;
}
-@@ -3220,8 +3324,9 @@
+@@ -3220,8 +3325,9 @@
}
static s32
@@ -205658,7 +203045,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
{
struct brcmf_if *ifp = netdev_priv(ndev);
u32 auth = 0; /* d11 open authentication */
-@@ -3684,42 +3789,26 @@
+@@ -3684,42 +3790,26 @@
}
static s32
@@ -205709,7 +203096,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
brcmf_dbg(TRACE, "ssid=%s(%zu), auth_type=%d, inactivity_timeout=%d\n",
settings->ssid, settings->ssid_len, settings->auth_type,
settings->inactivity_timeout);
-@@ -3776,9 +3865,10 @@
+@@ -3776,9 +3866,10 @@
brcmf_config_ap_mgmt_ie(ifp->vif, &settings->beacon);
@@ -205722,7 +203109,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
goto exit;
}
-@@ -4220,32 +4310,6 @@
+@@ -4220,32 +4311,6 @@
CFG80211_TESTMODE_CMD(brcmf_cfg80211_testmode)
};
@@ -205755,7 +203142,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
static void brcmf_wiphy_pno_params(struct wiphy *wiphy)
{
/* scheduled scan settings */
-@@ -4340,6 +4404,8 @@
+@@ -4340,6 +4405,8 @@
WIPHY_FLAG_OFFCHAN_TX |
WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL |
WIPHY_FLAG_SUPPORTS_TDLS;
@@ -205764,7 +203151,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
wiphy->mgmt_stypes = brcmf_txrx_stypes;
wiphy->max_remain_on_channel_duration = 5000;
brcmf_wiphy_pno_params(wiphy);
-@@ -4370,7 +4436,6 @@
+@@ -4370,7 +4437,6 @@
vif->wdev.wiphy = cfg->wiphy;
vif->wdev.iftype = type;
@@ -205772,7 +203159,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
vif->pm_block = pm_block;
vif->roam_off = -1;
-@@ -4416,7 +4481,9 @@
+@@ -4416,7 +4482,9 @@
u32 event = e->event_code;
u16 flags = e->flags;
@@ -205783,7 +203170,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
brcmf_dbg(CONN, "Processing link down\n");
return true;
}
-@@ -4658,16 +4725,18 @@
+@@ -4658,16 +4726,18 @@
struct brcmf_cfg80211_info *cfg = ifp->drvr->config;
struct net_device *ndev = ifp->ndev;
struct brcmf_cfg80211_profile *profile = &ifp->vif->profile;
@@ -205804,7 +203191,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
clear_bit(BRCMF_VIF_STATUS_CONNECTING,
&ifp->vif->sme_state);
set_bit(BRCMF_VIF_STATUS_CONNECTED,
-@@ -4678,10 +4747,6 @@
+@@ -4678,10 +4748,6 @@
brcmf_dbg(CONN, "Linkdown\n");
if (!brcmf_is_ibssmode(ifp->vif)) {
brcmf_bss_connect_done(cfg, ndev, e, false);
@@ -205815,7 +203202,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
}
brcmf_link_down(ifp->vif);
brcmf_init_prof(ndev_to_prof(ndev));
-@@ -4875,11 +4940,8 @@
+@@ -4875,11 +4941,8 @@
cfg->scan_request = NULL;
cfg->pwr_save = true;
@@ -205829,7 +203216,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
err = brcmf_init_priv_mem(cfg);
if (err)
return err;
-@@ -4904,6 +4966,30 @@
+@@ -4904,6 +4967,30 @@
mutex_init(&event->vif_event_lock);
}
@@ -205860,7 +203247,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
struct brcmf_cfg80211_info *brcmf_cfg80211_attach(struct brcmf_pub *drvr,
struct device *busdev)
{
-@@ -4961,6 +5047,17 @@
+@@ -4961,6 +5048,17 @@
goto cfg80211_p2p_attach_out;
}
@@ -205878,7 +203265,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
err = brcmf_fil_iovar_int_set(ifp, "tdls_enable", 1);
if (err) {
brcmf_dbg(INFO, "TDLS not enabled (%d)\n", err);
-@@ -4999,7 +5096,7 @@
+@@ -4999,7 +5097,7 @@
}
static s32
@@ -205887,7 +203274,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
{
s32 err = 0;
__le32 roamtrigger[2];
-@@ -5009,7 +5106,7 @@
+@@ -5009,7 +5107,7 @@
* Setup timeout if Beacons are lost and roam is
* off to report link down
*/
@@ -205896,7 +203283,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
err = brcmf_fil_iovar_int_set(ifp, "bcn_timeout", bcn_timeout);
if (err) {
brcmf_err("bcn_timeout error (%d)\n", err);
-@@ -5021,8 +5118,9 @@
+@@ -5021,8 +5119,9 @@
* Enable/Disable built-in roaming to allow supplicant
* to take care of roaming
*/
@@ -205908,7 +203295,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
if (err) {
brcmf_err("roam_off error (%d)\n", err);
goto dongle_rom_out;
-@@ -5148,6 +5246,9 @@
+@@ -5148,6 +5247,9 @@
if (!(bw_cap[band] & WLC_BW_40MHZ_BIT) &&
ch.bw == BRCMU_CHAN_BW_40)
continue;
@@ -205918,7 +203305,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
update = false;
for (j = 0; (j < *n_cnt && (*n_cnt < array_size)); j++) {
if (band_chan_arr[j].hw_value == ch.chnum) {
-@@ -5164,13 +5265,13 @@
+@@ -5164,13 +5266,13 @@
ieee80211_channel_to_frequency(ch.chnum, band);
band_chan_arr[index].hw_value = ch.chnum;
@@ -205939,7 +203326,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
ht40_flag = band_chan_arr[index].flags &
IEEE80211_CHAN_NO_HT40;
if (ch.sb == BRCMU_CHAN_SB_U) {
-@@ -5191,8 +5292,13 @@
+@@ -5191,8 +5293,13 @@
IEEE80211_CHAN_NO_HT40MINUS;
}
} else {
@@ -205954,7 +203341,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
ch.bw = BRCMU_CHAN_BW_20;
cfg->d11inf.encchspec(&ch);
channel = ch.chspec;
-@@ -5259,14 +5365,66 @@
+@@ -5259,14 +5366,66 @@
}
}
@@ -206022,7 +203409,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
s8 phy;
s32 err;
u32 nband;
-@@ -5294,14 +5452,26 @@
+@@ -5294,14 +5453,26 @@
brcmf_dbg(INFO, "BRCMF_C_GET_BANDLIST reported: 0x%08x 0x%08x 0x%08x phy\n",
band_list[0], band_list[1], band_list[2]);
@@ -206051,7 +203438,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
err = brcmf_construct_reginfo(cfg, bw_cap);
if (err) {
-@@ -5322,20 +5492,10 @@
+@@ -5322,20 +5493,10 @@
else
continue;
@@ -206076,7 +203463,7 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
bands[band->band] = band;
}
-@@ -5381,7 +5541,7 @@
+@@ -5381,7 +5542,7 @@
brcmf_dbg(INFO, "power save set to %s\n",
(power_mode ? "enabled" : "disabled"));
@@ -206085,9 +203472,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c li
if (err)
goto default_conf_out;
err = brcmf_cfg80211_change_iface(wdev->wiphy, ndev, wdev->iftype,
-diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.h linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.h
---- linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.h 2014-09-11 18:06:03.910045599 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.h linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.h
+--- linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.h 2014-10-22 14:55:53.054220001 -0500
@@ -89,21 +89,6 @@
BRCMF_SCAN_STATUS_SUPPRESS,
};
@@ -206144,9 +203531,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.h li
u16 channel_to_chanspec(struct brcmu_d11inf *d11inf,
struct ieee80211_channel *ch);
u32 wl_get_vif_state_all(struct brcmf_cfg80211_info *cfg, unsigned long state);
-diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
---- linux-3.14.17/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c 2014-09-11 18:06:03.914045614 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c linux-3.14.22/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
+--- linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c 2014-10-22 14:55:53.054220001 -0500
@@ -897,7 +897,8 @@
return result;
}
@@ -206170,9 +203557,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c li
* is called in brcms_bcma_probe() context, therefore no locking required.
*/
static struct brcms_info *brcms_attach(struct bcma_device *pdev)
-diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmsmac/main.c linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmsmac/main.c
---- linux-3.14.17/drivers/net/wireless/brcm80211/brcmsmac/main.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmsmac/main.c 2014-09-11 18:06:03.914045614 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmsmac/main.c linux-3.14.22/drivers/net/wireless/brcm80211/brcmsmac/main.c
+--- linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmsmac/main.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/brcm80211/brcmsmac/main.c 2014-10-22 14:55:53.058220001 -0500
@@ -4870,14 +4870,11 @@
/*
* low level detach
@@ -206217,9 +203604,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmsmac/main.c linux-imx
if (!brcms_c_radio_monitor_stop(wlc))
callbacks++;
-diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmutil/d11.c linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmutil/d11.c
---- linux-3.14.17/drivers/net/wireless/brcm80211/brcmutil/d11.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/brcm80211/brcmutil/d11.c 2014-09-11 18:06:03.922045646 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmutil/d11.c linux-3.14.22/drivers/net/wireless/brcm80211/brcmutil/d11.c
+--- linux-3.14.22.orig/drivers/net/wireless/brcm80211/brcmutil/d11.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/brcm80211/brcmutil/d11.c 2014-10-22 14:55:53.058220001 -0500
@@ -21,19 +21,46 @@
#include <brcmu_wifi.h>
#include <brcmu_d11.h>
@@ -206361,9 +203748,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/brcmutil/d11.c linux-imx6
break;
case BRCMU_CHSPEC_D11AC_BW_8080:
case BRCMU_CHSPEC_D11AC_BW_160:
-diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h linux-imx6-3.14/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h
---- linux-3.14.17/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h 2014-09-11 18:06:03.926045662 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h linux-3.14.22/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h
+--- linux-3.14.22.orig/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h 2014-10-22 14:55:53.058220001 -0500
@@ -43,5 +43,6 @@
#define BCM4335_CHIP_ID 0x4335
#define BCM43362_CHIP_ID 43362
@@ -206371,9 +203758,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h lin
+#define BCM4354_CHIP_ID 0x4354
#endif /* _BRCM_HW_IDS_H_ */
-diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/include/brcmu_d11.h linux-imx6-3.14/drivers/net/wireless/brcm80211/include/brcmu_d11.h
---- linux-3.14.17/drivers/net/wireless/brcm80211/include/brcmu_d11.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/brcm80211/include/brcmu_d11.h 2014-09-11 18:06:03.926045662 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/brcm80211/include/brcmu_d11.h linux-3.14.22/drivers/net/wireless/brcm80211/include/brcmu_d11.h
+--- linux-3.14.22.orig/drivers/net/wireless/brcm80211/include/brcmu_d11.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/brcm80211/include/brcmu_d11.h 2014-10-22 14:55:53.058220001 -0500
@@ -108,13 +108,7 @@
};
@@ -206402,9 +203789,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/include/brcmu_d11.h linux
};
struct brcmu_chan {
-diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/include/brcmu_wifi.h linux-imx6-3.14/drivers/net/wireless/brcm80211/include/brcmu_wifi.h
---- linux-3.14.17/drivers/net/wireless/brcm80211/include/brcmu_wifi.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/brcm80211/include/brcmu_wifi.h 2014-09-11 18:06:03.926045662 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/brcm80211/include/brcmu_wifi.h linux-3.14.22/drivers/net/wireless/brcm80211/include/brcmu_wifi.h
+--- linux-3.14.22.orig/drivers/net/wireless/brcm80211/include/brcmu_wifi.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/brcm80211/include/brcmu_wifi.h 2014-10-22 14:55:53.058220001 -0500
@@ -29,6 +29,7 @@
#define CH_UPPER_SB 0x01
#define CH_LOWER_SB 0x02
@@ -206423,9 +203810,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/brcm80211/include/brcmu_wifi.h linu
/* WPA authentication mode bitvec */
#define WPA_AUTH_DISABLED 0x0000 /* Legacy (i.e., non-WPA) */
-diff -Nur linux-3.14.17/drivers/net/wireless/cw1200/sta.c linux-imx6-3.14/drivers/net/wireless/cw1200/sta.c
---- linux-3.14.17/drivers/net/wireless/cw1200/sta.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/cw1200/sta.c 2014-09-11 18:06:03.926045662 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/cw1200/sta.c linux-3.14.22/drivers/net/wireless/cw1200/sta.c
+--- linux-3.14.22.orig/drivers/net/wireless/cw1200/sta.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/cw1200/sta.c 2014-10-22 14:55:53.058220001 -0500
@@ -936,7 +936,8 @@
return ret;
}
@@ -206436,9 +203823,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/cw1200/sta.c linux-imx6-3.14/driver
{
struct cw1200_common *priv = hw->priv;
-diff -Nur linux-3.14.17/drivers/net/wireless/cw1200/sta.h linux-imx6-3.14/drivers/net/wireless/cw1200/sta.h
---- linux-3.14.17/drivers/net/wireless/cw1200/sta.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/cw1200/sta.h 2014-09-11 18:06:03.926045662 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/cw1200/sta.h linux-3.14.22/drivers/net/wireless/cw1200/sta.h
+--- linux-3.14.22.orig/drivers/net/wireless/cw1200/sta.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/cw1200/sta.h 2014-10-22 14:55:53.058220001 -0500
@@ -40,7 +40,8 @@
int cw1200_set_rts_threshold(struct ieee80211_hw *hw, u32 value);
@@ -206449,9 +203836,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/cw1200/sta.h linux-imx6-3.14/driver
u64 cw1200_prepare_multicast(struct ieee80211_hw *hw,
struct netdev_hw_addr_list *mc_list);
-diff -Nur linux-3.14.17/drivers/net/wireless/iwlegacy/common.c linux-imx6-3.14/drivers/net/wireless/iwlegacy/common.c
---- linux-3.14.17/drivers/net/wireless/iwlegacy/common.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/iwlegacy/common.c 2014-09-11 18:06:03.942045725 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/iwlegacy/common.c linux-3.14.22/drivers/net/wireless/iwlegacy/common.c
+--- linux-3.14.22.orig/drivers/net/wireless/iwlegacy/common.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/iwlegacy/common.c 2014-10-22 14:55:53.058220001 -0500
@@ -4701,7 +4701,8 @@
}
EXPORT_SYMBOL(il_mac_change_interface);
@@ -206462,9 +203849,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/iwlegacy/common.c linux-imx6-3.14/d
{
struct il_priv *il = hw->priv;
unsigned long timeout = jiffies + msecs_to_jiffies(500);
-diff -Nur linux-3.14.17/drivers/net/wireless/iwlegacy/common.h linux-imx6-3.14/drivers/net/wireless/iwlegacy/common.h
---- linux-3.14.17/drivers/net/wireless/iwlegacy/common.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/iwlegacy/common.h 2014-09-11 18:06:03.946045742 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/iwlegacy/common.h linux-3.14.22/drivers/net/wireless/iwlegacy/common.h
+--- linux-3.14.22.orig/drivers/net/wireless/iwlegacy/common.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/iwlegacy/common.h 2014-10-22 14:55:53.058220001 -0500
@@ -1722,7 +1722,8 @@
struct ieee80211_vif *vif);
int il_mac_change_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
@@ -206475,9 +203862,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/iwlegacy/common.h linux-imx6-3.14/d
int il_alloc_txq_mem(struct il_priv *il);
void il_free_txq_mem(struct il_priv *il);
-diff -Nur linux-3.14.17/drivers/net/wireless/iwlwifi/dvm/mac80211.c linux-imx6-3.14/drivers/net/wireless/iwlwifi/dvm/mac80211.c
---- linux-3.14.17/drivers/net/wireless/iwlwifi/dvm/mac80211.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/iwlwifi/dvm/mac80211.c 2014-09-11 18:06:03.950045758 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/iwlwifi/dvm/mac80211.c linux-3.14.22/drivers/net/wireless/iwlwifi/dvm/mac80211.c
+--- linux-3.14.22.orig/drivers/net/wireless/iwlwifi/dvm/mac80211.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/iwlwifi/dvm/mac80211.c 2014-10-22 14:55:53.058220001 -0500
@@ -1091,7 +1091,8 @@
FIF_BCN_PRBRESP_PROMISC | FIF_CONTROL;
}
@@ -206488,9 +203875,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/iwlwifi/dvm/mac80211.c linux-imx6-3
{
struct iwl_priv *priv = IWL_MAC80211_GET_DVM(hw);
-diff -Nur linux-3.14.17/drivers/net/wireless/libertas/cfg.c linux-imx6-3.14/drivers/net/wireless/libertas/cfg.c
---- linux-3.14.17/drivers/net/wireless/libertas/cfg.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/libertas/cfg.c 2014-09-11 18:06:04.002045966 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/libertas/cfg.c linux-3.14.22/drivers/net/wireless/libertas/cfg.c
+--- linux-3.14.22.orig/drivers/net/wireless/libertas/cfg.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/libertas/cfg.c 2014-10-22 14:55:53.058220001 -0500
@@ -1766,7 +1766,8 @@
memcpy(priv->wdev->ssid, params->ssid, params->ssid_len);
priv->wdev->ssid_len = params->ssid_len;
@@ -206501,9 +203888,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/libertas/cfg.c linux-imx6-3.14/driv
/* TODO: consider doing this at MACREG_INT_CODE_LINK_SENSED time */
priv->connect_status = LBS_CONNECTED;
-diff -Nur linux-3.14.17/drivers/net/wireless/mac80211_hwsim.c linux-imx6-3.14/drivers/net/wireless/mac80211_hwsim.c
---- linux-3.14.17/drivers/net/wireless/mac80211_hwsim.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/mac80211_hwsim.c 2014-09-11 18:06:04.014046014 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/mac80211_hwsim.c linux-3.14.22/drivers/net/wireless/mac80211_hwsim.c
+--- linux-3.14.22.orig/drivers/net/wireless/mac80211_hwsim.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/mac80211_hwsim.c 2014-10-22 14:55:53.058220001 -0500
@@ -1671,7 +1671,9 @@
return 0;
}
@@ -206515,9 +203902,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/mac80211_hwsim.c linux-imx6-3.14/dr
{
/* Not implemented, queues only on kernel side */
}
-diff -Nur linux-3.14.17/drivers/net/wireless/mwifiex/cfg80211.c linux-imx6-3.14/drivers/net/wireless/mwifiex/cfg80211.c
---- linux-3.14.17/drivers/net/wireless/mwifiex/cfg80211.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/mwifiex/cfg80211.c 2014-09-11 18:06:04.014046014 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/mwifiex/cfg80211.c linux-3.14.22/drivers/net/wireless/mwifiex/cfg80211.c
+--- linux-3.14.22.orig/drivers/net/wireless/mwifiex/cfg80211.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/mwifiex/cfg80211.c 2014-10-22 14:55:53.062220001 -0500
@@ -1881,7 +1881,8 @@
params->privacy);
done:
@@ -206528,9 +203915,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/mwifiex/cfg80211.c linux-imx6-3.14/
dev_dbg(priv->adapter->dev,
"info: joined/created adhoc network with bssid"
" %pM successfully\n", priv->cfg_bssid);
-diff -Nur linux-3.14.17/drivers/net/wireless/mwifiex/main.h linux-imx6-3.14/drivers/net/wireless/mwifiex/main.h
---- linux-3.14.17/drivers/net/wireless/mwifiex/main.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/mwifiex/main.h 2014-09-11 18:06:04.026046061 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/mwifiex/main.h linux-3.14.22/drivers/net/wireless/mwifiex/main.h
+--- linux-3.14.22.orig/drivers/net/wireless/mwifiex/main.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/mwifiex/main.h 2014-10-22 14:55:53.062220001 -0500
@@ -1078,7 +1078,7 @@
const u8 *key, int key_len, u8 key_index,
const u8 *mac_addr, int disable);
@@ -206540,9 +203927,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/mwifiex/main.h linux-imx6-3.14/driv
int mwifiex_get_ver_ext(struct mwifiex_private *priv);
-diff -Nur linux-3.14.17/drivers/net/wireless/mwifiex/sta_ioctl.c linux-imx6-3.14/drivers/net/wireless/mwifiex/sta_ioctl.c
---- linux-3.14.17/drivers/net/wireless/mwifiex/sta_ioctl.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/mwifiex/sta_ioctl.c 2014-09-11 18:06:04.034046094 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/mwifiex/sta_ioctl.c linux-3.14.22/drivers/net/wireless/mwifiex/sta_ioctl.c
+--- linux-3.14.22.orig/drivers/net/wireless/mwifiex/sta_ioctl.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/mwifiex/sta_ioctl.c 2014-10-22 14:55:53.062220001 -0500
@@ -1391,7 +1391,7 @@
* with requisite parameters and calls the IOCTL handler.
*/
@@ -206552,9 +203939,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/mwifiex/sta_ioctl.c linux-imx6-3.14
{
struct mwifiex_ds_misc_gen_ie gen_ie;
-diff -Nur linux-3.14.17/drivers/net/wireless/p54/main.c linux-imx6-3.14/drivers/net/wireless/p54/main.c
---- linux-3.14.17/drivers/net/wireless/p54/main.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/p54/main.c 2014-09-11 18:06:04.054046173 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/p54/main.c linux-3.14.22/drivers/net/wireless/p54/main.c
+--- linux-3.14.22.orig/drivers/net/wireless/p54/main.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/p54/main.c 2014-10-22 14:55:53.062220001 -0500
@@ -669,7 +669,8 @@
return total;
}
@@ -206565,9 +203952,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/p54/main.c linux-imx6-3.14/drivers/
{
struct p54_common *priv = dev->priv;
unsigned int total, i;
-diff -Nur linux-3.14.17/drivers/net/wireless/rndis_wlan.c linux-imx6-3.14/drivers/net/wireless/rndis_wlan.c
---- linux-3.14.17/drivers/net/wireless/rndis_wlan.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/rndis_wlan.c 2014-09-11 18:06:04.062046206 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/rndis_wlan.c linux-3.14.22/drivers/net/wireless/rndis_wlan.c
+--- linux-3.14.22.orig/drivers/net/wireless/rndis_wlan.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/rndis_wlan.c 2014-10-22 14:55:53.062220001 -0500
@@ -2835,7 +2835,9 @@
bssid, req_ie, req_ie_len,
resp_ie, resp_ie_len, GFP_KERNEL);
@@ -206579,9 +203966,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/rndis_wlan.c linux-imx6-3.14/driver
kfree(info);
-diff -Nur linux-3.14.17/drivers/net/wireless/rt2x00/rt2x00.h linux-imx6-3.14/drivers/net/wireless/rt2x00/rt2x00.h
---- linux-3.14.17/drivers/net/wireless/rt2x00/rt2x00.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/rt2x00/rt2x00.h 2014-09-11 18:06:04.086046302 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/rt2x00/rt2x00.h linux-3.14.22/drivers/net/wireless/rt2x00/rt2x00.h
+--- linux-3.14.22.orig/drivers/net/wireless/rt2x00/rt2x00.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/rt2x00/rt2x00.h 2014-10-22 14:55:53.062220001 -0500
@@ -1449,7 +1449,8 @@
struct ieee80211_vif *vif, u16 queue,
const struct ieee80211_tx_queue_params *params);
@@ -206592,9 +203979,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/rt2x00/rt2x00.h linux-imx6-3.14/dri
int rt2x00mac_set_antenna(struct ieee80211_hw *hw, u32 tx_ant, u32 rx_ant);
int rt2x00mac_get_antenna(struct ieee80211_hw *hw, u32 *tx_ant, u32 *rx_ant);
void rt2x00mac_get_ringparam(struct ieee80211_hw *hw,
-diff -Nur linux-3.14.17/drivers/net/wireless/rt2x00/rt2x00mac.c linux-imx6-3.14/drivers/net/wireless/rt2x00/rt2x00mac.c
---- linux-3.14.17/drivers/net/wireless/rt2x00/rt2x00mac.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/rt2x00/rt2x00mac.c 2014-09-11 18:06:04.086046302 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/rt2x00/rt2x00mac.c linux-3.14.22/drivers/net/wireless/rt2x00/rt2x00mac.c
+--- linux-3.14.22.orig/drivers/net/wireless/rt2x00/rt2x00mac.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/rt2x00/rt2x00mac.c 2014-10-22 14:55:53.062220001 -0500
@@ -751,7 +751,8 @@
}
EXPORT_SYMBOL_GPL(rt2x00mac_rfkill_poll);
@@ -206605,9 +203992,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/rt2x00/rt2x00mac.c linux-imx6-3.14/
{
struct rt2x00_dev *rt2x00dev = hw->priv;
struct data_queue *queue;
-diff -Nur linux-3.14.17/drivers/net/wireless/rtl818x/rtl8187/dev.c linux-imx6-3.14/drivers/net/wireless/rtl818x/rtl8187/dev.c
---- linux-3.14.17/drivers/net/wireless/rtl818x/rtl8187/dev.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/rtl818x/rtl8187/dev.c 2014-09-11 18:06:04.110046397 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/rtl818x/rtl8187/dev.c linux-3.14.22/drivers/net/wireless/rtl818x/rtl8187/dev.c
+--- linux-3.14.22.orig/drivers/net/wireless/rtl818x/rtl8187/dev.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/rtl818x/rtl8187/dev.c 2014-10-22 14:55:53.062220001 -0500
@@ -1636,10 +1636,10 @@
err_free_dmabuf:
@@ -206621,9 +204008,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/rtl818x/rtl8187/dev.c linux-imx6-3.
return err;
}
-diff -Nur linux-3.14.17/drivers/net/wireless/rtlwifi/core.c linux-imx6-3.14/drivers/net/wireless/rtlwifi/core.c
---- linux-3.14.17/drivers/net/wireless/rtlwifi/core.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/rtlwifi/core.c 2014-09-11 18:06:04.110046397 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/rtlwifi/core.c linux-3.14.22/drivers/net/wireless/rtlwifi/core.c
+--- linux-3.14.22.orig/drivers/net/wireless/rtlwifi/core.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/rtlwifi/core.c 2014-10-22 14:55:53.062220001 -0500
@@ -1309,7 +1309,8 @@
* before switch channel or power save, or tx buffer packet
* maybe send after offchannel or rf sleep, this may cause
@@ -206634,9 +204021,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/rtlwifi/core.c linux-imx6-3.14/driv
{
struct rtl_priv *rtlpriv = rtl_priv(hw);
-diff -Nur linux-3.14.17/drivers/net/wireless/ti/wlcore/main.c linux-imx6-3.14/drivers/net/wireless/ti/wlcore/main.c
---- linux-3.14.17/drivers/net/wireless/ti/wlcore/main.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/net/wireless/ti/wlcore/main.c 2014-09-11 18:06:04.150046556 +0200
+diff -Nur linux-3.14.22.orig/drivers/net/wireless/ti/wlcore/main.c linux-3.14.22/drivers/net/wireless/ti/wlcore/main.c
+--- linux-3.14.22.orig/drivers/net/wireless/ti/wlcore/main.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/net/wireless/ti/wlcore/main.c 2014-10-22 14:55:53.062220001 -0500
@@ -5156,7 +5156,8 @@
mutex_unlock(&wl->mutex);
}
@@ -206647,38 +204034,9 @@ diff -Nur linux-3.14.17/drivers/net/wireless/ti/wlcore/main.c linux-imx6-3.14/dr
{
struct wl1271 *wl = hw->priv;
-diff -Nur linux-3.14.17/drivers/parport/Kconfig linux-imx6-3.14/drivers/parport/Kconfig
---- linux-3.14.17/drivers/parport/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/parport/Kconfig 2014-09-11 18:06:04.270047036 +0200
-@@ -5,12 +5,6 @@
- # Parport configuration.
- #
-
--config ARCH_MIGHT_HAVE_PC_PARPORT
-- bool
-- help
-- Select this config option from the architecture Kconfig if
-- the architecture might have PC parallel port hardware.
--
- menuconfig PARPORT
- tristate "Parallel port support"
- depends on HAS_IOMEM
-@@ -37,6 +31,12 @@
-
- If unsure, say Y.
-
-+config ARCH_MIGHT_HAVE_PC_PARPORT
-+ bool
-+ help
-+ Select this config option from the architecture Kconfig if
-+ the architecture might have PC parallel port hardware.
-+
- if PARPORT
-
- config PARPORT_PC
-diff -Nur linux-3.14.17/drivers/pci/host/Kconfig linux-imx6-3.14/drivers/pci/host/Kconfig
---- linux-3.14.17/drivers/pci/host/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/pci/host/Kconfig 2014-09-11 18:06:04.274047051 +0200
+diff -Nur linux-3.14.22.orig/drivers/pci/host/Kconfig linux-3.14.22/drivers/pci/host/Kconfig
+--- linux-3.14.22.orig/drivers/pci/host/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/pci/host/Kconfig 2014-10-22 14:55:53.062220001 -0500
@@ -21,6 +21,23 @@
select PCIEPORTBUS
select PCIE_DW
@@ -206703,9 +204061,9 @@ diff -Nur linux-3.14.17/drivers/pci/host/Kconfig linux-imx6-3.14/drivers/pci/hos
config PCI_TEGRA
bool "NVIDIA Tegra PCIe controller"
depends on ARCH_TEGRA
-diff -Nur linux-3.14.17/drivers/pci/host/Makefile linux-imx6-3.14/drivers/pci/host/Makefile
---- linux-3.14.17/drivers/pci/host/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/pci/host/Makefile 2014-09-11 18:06:04.274047051 +0200
+diff -Nur linux-3.14.22.orig/drivers/pci/host/Makefile linux-3.14.22/drivers/pci/host/Makefile
+--- linux-3.14.22.orig/drivers/pci/host/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/pci/host/Makefile 2014-10-22 14:55:53.062220001 -0500
@@ -1,6 +1,7 @@
obj-$(CONFIG_PCIE_DW) += pcie-designware.o
obj-$(CONFIG_PCI_EXYNOS) += pci-exynos.o
@@ -206714,9 +204072,9 @@ diff -Nur linux-3.14.17/drivers/pci/host/Makefile linux-imx6-3.14/drivers/pci/ho
obj-$(CONFIG_PCI_MVEBU) += pci-mvebu.o
obj-$(CONFIG_PCI_TEGRA) += pci-tegra.o
obj-$(CONFIG_PCI_RCAR_GEN2) += pci-rcar-gen2.o
-diff -Nur linux-3.14.17/drivers/pci/host/pcie-designware.c linux-imx6-3.14/drivers/pci/host/pcie-designware.c
---- linux-3.14.17/drivers/pci/host/pcie-designware.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/pci/host/pcie-designware.c 2014-09-11 18:06:04.274047051 +0200
+diff -Nur linux-3.14.22.orig/drivers/pci/host/pcie-designware.c linux-3.14.22/drivers/pci/host/pcie-designware.c
+--- linux-3.14.22.orig/drivers/pci/host/pcie-designware.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/pci/host/pcie-designware.c 2014-10-22 14:55:53.066220001 -0500
@@ -23,48 +23,6 @@
#include "pcie-designware.h"
@@ -206923,9 +204281,9 @@ diff -Nur linux-3.14.17/drivers/pci/host/pcie-designware.c linux-imx6-3.14/drive
}
static void dw_pcie_add_bus(struct pci_bus *bus)
-diff -Nur linux-3.14.17/drivers/pci/host/pcie-designware.h linux-imx6-3.14/drivers/pci/host/pcie-designware.h
---- linux-3.14.17/drivers/pci/host/pcie-designware.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/pci/host/pcie-designware.h 2014-09-11 18:06:04.274047051 +0200
+diff -Nur linux-3.14.22.orig/drivers/pci/host/pcie-designware.h linux-3.14.22/drivers/pci/host/pcie-designware.h
+--- linux-3.14.22.orig/drivers/pci/host/pcie-designware.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/pci/host/pcie-designware.h 2014-10-22 14:55:53.066220001 -0500
@@ -14,6 +14,48 @@
#ifndef _PCIE_DESIGNWARE_H
#define _PCIE_DESIGNWARE_H
@@ -206987,9 +204345,9 @@ diff -Nur linux-3.14.17/drivers/pci/host/pcie-designware.h linux-imx6-3.14/drive
int msi_irq;
struct irq_domain *irq_domain;
unsigned long msi_data;
-diff -Nur linux-3.14.17/drivers/pci/host/pci-imx6.c linux-imx6-3.14/drivers/pci/host/pci-imx6.c
---- linux-3.14.17/drivers/pci/host/pci-imx6.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/pci/host/pci-imx6.c 2014-09-11 18:06:04.274047051 +0200
+diff -Nur linux-3.14.22.orig/drivers/pci/host/pci-imx6.c linux-3.14.22/drivers/pci/host/pci-imx6.c
+--- linux-3.14.22.orig/drivers/pci/host/pci-imx6.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/pci/host/pci-imx6.c 2014-10-22 14:55:53.066220001 -0500
@@ -1,6 +1,7 @@
/*
* PCIe host controller driver for Freescale i.MX6 SoCs
@@ -207006,12 +204364,13 @@ diff -Nur linux-3.14.17/drivers/pci/host/pci-imx6.c linux-imx6-3.14/drivers/pci/
#include <linux/kernel.h>
#include <linux/mfd/syscon.h>
#include <linux/mfd/syscon/imx6q-iomuxc-gpr.h>
-@@ -25,11 +27,21 @@
+@@ -25,11 +27,22 @@
#include <linux/resource.h>
#include <linux/signal.h>
#include <linux/types.h>
+#include <linux/busfreq-imx6.h>
++#include "../pci.h"
#include "pcie-designware.h"
#define to_imx6_pcie(x) container_of(x, struct imx6_pcie, pp)
@@ -207028,7 +204387,7 @@ diff -Nur linux-3.14.17/drivers/pci/host/pci-imx6.c linux-imx6-3.14/drivers/pci/
struct imx6_pcie {
int reset_gpio;
int power_on_gpio;
-@@ -52,6 +64,9 @@
+@@ -52,6 +65,9 @@
/* PCIe Port Logic registers (memory-mapped) */
#define PL_OFFSET 0x700
@@ -207038,7 +204397,7 @@ diff -Nur linux-3.14.17/drivers/pci/host/pci-imx6.c linux-imx6-3.14/drivers/pci/
#define PCIE_PHY_DEBUG_R0 (PL_OFFSET + 0x28)
#define PCIE_PHY_DEBUG_R1 (PL_OFFSET + 0x2c)
#define PCIE_PHY_DEBUG_R1_XMLH_LINK_IN_TRAINING (1 << 29)
-@@ -216,14 +231,14 @@
+@@ -216,14 +232,14 @@
static int imx6_pcie_assert_core_reset(struct pcie_port *pp)
{
@@ -207059,7 +204418,7 @@ diff -Nur linux-3.14.17/drivers/pci/host/pci-imx6.c linux-imx6-3.14/drivers/pci/
}
static int imx6_pcie_deassert_core_reset(struct pcie_port *pp)
-@@ -234,10 +249,7 @@
+@@ -234,10 +250,7 @@
if (gpio_is_valid(imx6_pcie->power_on_gpio))
gpio_set_value(imx6_pcie->power_on_gpio, 1);
@@ -207071,7 +204430,7 @@ diff -Nur linux-3.14.17/drivers/pci/host/pci-imx6.c linux-imx6-3.14/drivers/pci/
ret = clk_prepare_enable(imx6_pcie->sata_ref_100m);
if (ret) {
-@@ -251,10 +263,13 @@
+@@ -251,10 +264,13 @@
goto err_pcie_ref;
}
@@ -207089,7 +204448,7 @@ diff -Nur linux-3.14.17/drivers/pci/host/pci-imx6.c linux-imx6-3.14/drivers/pci/
}
ret = clk_prepare_enable(imx6_pcie->pcie_axi);
-@@ -266,6 +281,12 @@
+@@ -266,6 +282,12 @@
/* allow the clocks to stabilize */
usleep_range(200, 500);
@@ -207102,7 +204461,7 @@ diff -Nur linux-3.14.17/drivers/pci/host/pci-imx6.c linux-imx6-3.14/drivers/pci/
/* Some boards don't have PCIe reset GPIO. */
if (gpio_is_valid(imx6_pcie->reset_gpio)) {
gpio_set_value(imx6_pcie->reset_gpio, 0);
-@@ -281,6 +302,7 @@
+@@ -281,6 +303,7 @@
err_pcie_ref:
clk_disable_unprepare(imx6_pcie->sata_ref_100m);
err_sata_ref:
@@ -207110,7 +204469,7 @@ diff -Nur linux-3.14.17/drivers/pci/host/pci-imx6.c linux-imx6-3.14/drivers/pci/
return ret;
}
-@@ -288,13 +310,44 @@
+@@ -288,13 +311,44 @@
static void imx6_pcie_init_phy(struct pcie_port *pp)
{
struct imx6_pcie *imx6_pcie = to_imx6_pcie(pp);
@@ -207157,7 +204516,7 @@ diff -Nur linux-3.14.17/drivers/pci/host/pci-imx6.c linux-imx6-3.14/drivers/pci/
regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR12,
IMX6Q_GPR12_LOS_LEVEL, 9 << 4);
-@@ -326,6 +379,12 @@
+@@ -326,6 +380,12 @@
return -EINVAL;
}
@@ -207170,7 +204529,7 @@ diff -Nur linux-3.14.17/drivers/pci/host/pci-imx6.c linux-imx6-3.14/drivers/pci/
return 0;
}
-@@ -392,6 +451,15 @@
+@@ -392,6 +452,15 @@
return ret;
}
@@ -207186,7 +204545,7 @@ diff -Nur linux-3.14.17/drivers/pci/host/pci-imx6.c linux-imx6-3.14/drivers/pci/
static void imx6_pcie_host_init(struct pcie_port *pp)
{
imx6_pcie_assert_core_reset(pp);
-@@ -498,6 +566,22 @@
+@@ -498,6 +567,22 @@
return -ENODEV;
}
@@ -207209,7 +204568,7 @@ diff -Nur linux-3.14.17/drivers/pci/host/pci-imx6.c linux-imx6-3.14/drivers/pci/
pp->root_bus_nr = -1;
pp->ops = &imx6_pcie_host_ops;
-@@ -511,29 +595,188 @@
+@@ -511,29 +596,188 @@
return 0;
}
@@ -207403,7 +204762,7 @@ diff -Nur linux-3.14.17/drivers/pci/host/pci-imx6.c linux-imx6-3.14/drivers/pci/
/* Fetch GPIOs */
imx6_pcie->reset_gpio = of_get_named_gpio(np, "reset-gpio", 0);
-@@ -542,7 +785,7 @@
+@@ -542,7 +786,7 @@
GPIOF_OUT_INIT_LOW, "PCIe reset");
if (ret) {
dev_err(&pdev->dev, "unable to get reset gpio\n");
@@ -207412,7 +204771,7 @@ diff -Nur linux-3.14.17/drivers/pci/host/pci-imx6.c linux-imx6-3.14/drivers/pci/
}
}
-@@ -554,7 +797,7 @@
+@@ -554,7 +798,7 @@
"PCIe power enable");
if (ret) {
dev_err(&pdev->dev, "unable to get power-on gpio\n");
@@ -207421,7 +204780,7 @@ diff -Nur linux-3.14.17/drivers/pci/host/pci-imx6.c linux-imx6-3.14/drivers/pci/
}
}
-@@ -566,7 +809,7 @@
+@@ -566,7 +810,7 @@
"PCIe wake up");
if (ret) {
dev_err(&pdev->dev, "unable to get wake-up gpio\n");
@@ -207430,7 +204789,7 @@ diff -Nur linux-3.14.17/drivers/pci/host/pci-imx6.c linux-imx6-3.14/drivers/pci/
}
}
-@@ -578,7 +821,7 @@
+@@ -578,7 +822,7 @@
"PCIe disable endpoint");
if (ret) {
dev_err(&pdev->dev, "unable to get disable-ep gpio\n");
@@ -207439,7 +204798,7 @@ diff -Nur linux-3.14.17/drivers/pci/host/pci-imx6.c linux-imx6-3.14/drivers/pci/
}
}
-@@ -587,28 +830,32 @@
+@@ -587,28 +831,32 @@
if (IS_ERR(imx6_pcie->lvds_gate)) {
dev_err(&pdev->dev,
"lvds_gate clock select missing or invalid\n");
@@ -207476,7 +204835,7 @@ diff -Nur linux-3.14.17/drivers/pci/host/pci-imx6.c linux-imx6-3.14/drivers/pci/
}
/* Grab GPR config register range */
-@@ -616,15 +863,175 @@
+@@ -616,15 +864,178 @@
syscon_regmap_lookup_by_compatible("fsl,imx6q-iomuxc-gpr");
if (IS_ERR(imx6_pcie->iomuxc_gpr)) {
dev_err(&pdev->dev, "unable to find iomuxc registers\n");
@@ -207488,6 +204847,11 @@ diff -Nur linux-3.14.17/drivers/pci/host/pci-imx6.c linux-imx6-3.14/drivers/pci/
- ret = imx6_add_pcie_port(pp, pdev);
- if (ret < 0)
- return ret;
++ if (of_find_property(np, "no-msi", NULL))
++ pci_no_msi();
+
+- platform_set_drvdata(pdev, imx6_pcie);
+- return 0;
+ if (IS_ENABLED(CONFIG_EP_MODE_IN_EP_RC_SYS)) {
+ if (IS_ENABLED(CONFIG_EP_SELF_IO_TEST)) {
+ /* Prepare the test regions and data */
@@ -207521,9 +204885,7 @@ diff -Nur linux-3.14.17/drivers/pci/host/pci-imx6.c linux-imx6-3.14/drivers/pci/
+ writel(0xDEADBEAF, test_reg2 + i);
+ }
+ }
-
-- platform_set_drvdata(pdev, imx6_pcie);
-- return 0;
++
+ imx6_pcie_init_phy(pp);
+
+ imx6_pcie_deassert_core_reset(pp);
@@ -207658,7 +205020,7 @@ diff -Nur linux-3.14.17/drivers/pci/host/pci-imx6.c linux-imx6-3.14/drivers/pci/
}
static const struct of_device_id imx6_pcie_of_match[] = {
-@@ -639,6 +1046,7 @@
+@@ -639,6 +1050,7 @@
.owner = THIS_MODULE,
.of_match_table = imx6_pcie_of_match,
},
@@ -207666,9 +205028,9 @@ diff -Nur linux-3.14.17/drivers/pci/host/pci-imx6.c linux-imx6-3.14/drivers/pci/
};
/* Freescale PCIe driver does not allow module unload */
-diff -Nur linux-3.14.17/drivers/pci/host/pci-imx6-ep-driver.c linux-imx6-3.14/drivers/pci/host/pci-imx6-ep-driver.c
---- linux-3.14.17/drivers/pci/host/pci-imx6-ep-driver.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/pci/host/pci-imx6-ep-driver.c 2014-09-11 18:06:04.274047051 +0200
+diff -Nur linux-3.14.22.orig/drivers/pci/host/pci-imx6-ep-driver.c linux-3.14.22/drivers/pci/host/pci-imx6-ep-driver.c
+--- linux-3.14.22.orig/drivers/pci/host/pci-imx6-ep-driver.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/pci/host/pci-imx6-ep-driver.c 2014-10-22 14:55:53.066220001 -0500
@@ -0,0 +1,159 @@
+/*
+ * PCIe endpoint skeleton driver for IMX6 SOCs
@@ -207829,9 +205191,9 @@ diff -Nur linux-3.14.17/drivers/pci/host/pci-imx6-ep-driver.c linux-imx6-3.14/dr
+MODULE_VERSION(DRV_VERSION);
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("imx_pcie_ep");
-diff -Nur linux-3.14.17/drivers/pinctrl/devicetree.c linux-imx6-3.14/drivers/pinctrl/devicetree.c
---- linux-3.14.17/drivers/pinctrl/devicetree.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/pinctrl/devicetree.c 2014-09-11 18:06:04.358047388 +0200
+diff -Nur linux-3.14.22.orig/drivers/pinctrl/devicetree.c linux-3.14.22/drivers/pinctrl/devicetree.c
+--- linux-3.14.22.orig/drivers/pinctrl/devicetree.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/pinctrl/devicetree.c 2014-10-22 14:55:53.066220001 -0500
@@ -18,6 +18,7 @@
#include <linux/device.h>
@@ -207897,9 +205259,9 @@ diff -Nur linux-3.14.17/drivers/pinctrl/devicetree.c linux-imx6-3.14/drivers/pin
/* We may store pointers to property names within the node */
of_node_get(np);
-diff -Nur linux-3.14.17/drivers/pinctrl/pinctrl-imx6sl.c linux-imx6-3.14/drivers/pinctrl/pinctrl-imx6sl.c
---- linux-3.14.17/drivers/pinctrl/pinctrl-imx6sl.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/pinctrl/pinctrl-imx6sl.c 2014-09-11 18:06:04.390047515 +0200
+diff -Nur linux-3.14.22.orig/drivers/pinctrl/pinctrl-imx6sl.c linux-3.14.22/drivers/pinctrl/pinctrl-imx6sl.c
+--- linux-3.14.22.orig/drivers/pinctrl/pinctrl-imx6sl.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/pinctrl/pinctrl-imx6sl.c 2014-10-22 14:55:53.066220001 -0500
@@ -384,6 +384,10 @@
},
.probe = imx6sl_pinctrl_probe,
@@ -207911,9 +205273,9 @@ diff -Nur linux-3.14.17/drivers/pinctrl/pinctrl-imx6sl.c linux-imx6-3.14/drivers
};
static int __init imx6sl_pinctrl_init(void)
-diff -Nur linux-3.14.17/drivers/pinctrl/pinctrl-imx.c linux-imx6-3.14/drivers/pinctrl/pinctrl-imx.c
---- linux-3.14.17/drivers/pinctrl/pinctrl-imx.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/pinctrl/pinctrl-imx.c 2014-09-11 18:06:04.370047435 +0200
+diff -Nur linux-3.14.22.orig/drivers/pinctrl/pinctrl-imx.c linux-3.14.22/drivers/pinctrl/pinctrl-imx.c
+--- linux-3.14.22.orig/drivers/pinctrl/pinctrl-imx.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/pinctrl/pinctrl-imx.c 2014-10-22 14:55:53.066220001 -0500
@@ -1,7 +1,7 @@
/*
* Core driver for the imx pin controller
@@ -207949,9 +205311,9 @@ diff -Nur linux-3.14.17/drivers/pinctrl/pinctrl-imx.c linux-imx6-3.14/drivers/pi
+ return pinctrl_force_default(ipctl->pctl);
+}
+#endif
-diff -Nur linux-3.14.17/drivers/pinctrl/pinctrl-imx.h linux-imx6-3.14/drivers/pinctrl/pinctrl-imx.h
---- linux-3.14.17/drivers/pinctrl/pinctrl-imx.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/pinctrl/pinctrl-imx.h 2014-09-11 18:06:04.370047435 +0200
+diff -Nur linux-3.14.22.orig/drivers/pinctrl/pinctrl-imx.h linux-3.14.22/drivers/pinctrl/pinctrl-imx.h
+--- linux-3.14.22.orig/drivers/pinctrl/pinctrl-imx.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/pinctrl/pinctrl-imx.h 2014-10-22 14:55:53.066220001 -0500
@@ -1,7 +1,7 @@
/*
* IMX pinmux core definitions
@@ -207970,22 +205332,9 @@ diff -Nur linux-3.14.17/drivers/pinctrl/pinctrl-imx.h linux-imx6-3.14/drivers/pi
+int imx_pinctrl_resume(struct platform_device *pdev);
+#endif
#endif /* __DRIVERS_PINCTRL_IMX_H */
-diff -Nur linux-3.14.17/drivers/pnp/pnpacpi/core.c linux-imx6-3.14/drivers/pnp/pnpacpi/core.c
---- linux-3.14.17/drivers/pnp/pnpacpi/core.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/pnp/pnpacpi/core.c 2014-09-11 18:06:04.434047691 +0200
-@@ -339,7 +339,8 @@
- struct pnp_dev *pnp = _pnp;
-
- /* true means it matched */
-- return pnp->data == acpi;
-+ return !acpi->physical_node_count
-+ && compare_pnp_id(pnp->id, acpi_device_hid(acpi));
- }
-
- static struct acpi_device * __init acpi_pnp_find_companion(struct device *dev)
-diff -Nur linux-3.14.17/drivers/power/imx6_usb_charger.c linux-imx6-3.14/drivers/power/imx6_usb_charger.c
---- linux-3.14.17/drivers/power/imx6_usb_charger.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/power/imx6_usb_charger.c 2014-09-11 18:06:04.446047739 +0200
+diff -Nur linux-3.14.22.orig/drivers/power/imx6_usb_charger.c linux-3.14.22/drivers/power/imx6_usb_charger.c
+--- linux-3.14.22.orig/drivers/power/imx6_usb_charger.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/power/imx6_usb_charger.c 2014-10-22 14:55:53.066220001 -0500
@@ -0,0 +1,294 @@
+/*
+ * Copyright (C) 2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -208281,9 +205630,9 @@ diff -Nur linux-3.14.17/drivers/power/imx6_usb_charger.c linux-imx6-3.14/drivers
+ power_supply_unregister(&charger->psy);
+}
+EXPORT_SYMBOL(imx6_usb_remove_charger);
-diff -Nur linux-3.14.17/drivers/power/Kconfig linux-imx6-3.14/drivers/power/Kconfig
---- linux-3.14.17/drivers/power/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/power/Kconfig 2014-09-11 18:06:04.438047706 +0200
+diff -Nur linux-3.14.22.orig/drivers/power/Kconfig linux-3.14.22/drivers/power/Kconfig
+--- linux-3.14.22.orig/drivers/power/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/power/Kconfig 2014-10-22 14:55:53.202220001 -0500
@@ -389,6 +389,12 @@
Say Y to enable support for the battery and AC power in the
Goldfish emulator.
@@ -208297,17 +205646,17 @@ diff -Nur linux-3.14.17/drivers/power/Kconfig linux-imx6-3.14/drivers/power/Kcon
source "drivers/power/reset/Kconfig"
endif # POWER_SUPPLY
-diff -Nur linux-3.14.17/drivers/power/Makefile linux-imx6-3.14/drivers/power/Makefile
---- linux-3.14.17/drivers/power/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/power/Makefile 2014-09-11 18:06:04.438047706 +0200
+diff -Nur linux-3.14.22.orig/drivers/power/Makefile linux-3.14.22/drivers/power/Makefile
+--- linux-3.14.22.orig/drivers/power/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/power/Makefile 2014-10-22 14:55:53.282220001 -0500
@@ -58,3 +58,4 @@
obj-$(CONFIG_CHARGER_SMB347) += smb347-charger.o
obj-$(CONFIG_CHARGER_TPS65090) += tps65090-charger.o
obj-$(CONFIG_POWER_RESET) += reset/
+obj-$(CONFIG_IMX6_USB_CHARGER) += imx6_usb_charger.o
-diff -Nur linux-3.14.17/drivers/ptp/ptp_chardev.c linux-imx6-3.14/drivers/ptp/ptp_chardev.c
---- linux-3.14.17/drivers/ptp/ptp_chardev.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ptp/ptp_chardev.c 2014-09-11 18:06:04.482047883 +0200
+diff -Nur linux-3.14.22.orig/drivers/ptp/ptp_chardev.c linux-3.14.22/drivers/ptp/ptp_chardev.c
+--- linux-3.14.22.orig/drivers/ptp/ptp_chardev.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ptp/ptp_chardev.c 2014-10-22 14:55:53.282220001 -0500
@@ -25,6 +25,96 @@
#include "ptp_private.h"
@@ -208469,9 +205818,9 @@ diff -Nur linux-3.14.17/drivers/ptp/ptp_chardev.c linux-imx6-3.14/drivers/ptp/pt
default:
err = -ENOTTY;
break;
-diff -Nur linux-3.14.17/drivers/ptp/ptp_clock.c linux-imx6-3.14/drivers/ptp/ptp_clock.c
---- linux-3.14.17/drivers/ptp/ptp_clock.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ptp/ptp_clock.c 2014-09-11 18:06:04.482047883 +0200
+diff -Nur linux-3.14.22.orig/drivers/ptp/ptp_clock.c linux-3.14.22/drivers/ptp/ptp_clock.c
+--- linux-3.14.22.orig/drivers/ptp/ptp_clock.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ptp/ptp_clock.c 2014-10-22 14:55:53.286220001 -0500
@@ -169,6 +169,7 @@
struct ptp_clock *ptp = container_of(pc, struct ptp_clock, clock);
@@ -208523,9 +205872,9 @@ diff -Nur linux-3.14.17/drivers/ptp/ptp_clock.c linux-imx6-3.14/drivers/ptp/ptp_
/* module operations */
static void __exit ptp_exit(void)
-diff -Nur linux-3.14.17/drivers/ptp/ptp_ixp46x.c linux-imx6-3.14/drivers/ptp/ptp_ixp46x.c
---- linux-3.14.17/drivers/ptp/ptp_ixp46x.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ptp/ptp_ixp46x.c 2014-09-11 18:06:04.482047883 +0200
+diff -Nur linux-3.14.22.orig/drivers/ptp/ptp_ixp46x.c linux-3.14.22/drivers/ptp/ptp_ixp46x.c
+--- linux-3.14.22.orig/drivers/ptp/ptp_ixp46x.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ptp/ptp_ixp46x.c 2014-10-22 14:55:53.286220001 -0500
@@ -244,6 +244,7 @@
.name = "IXP46X timer",
.max_adj = 66666655,
@@ -208534,9 +205883,9 @@ diff -Nur linux-3.14.17/drivers/ptp/ptp_ixp46x.c linux-imx6-3.14/drivers/ptp/ptp
.pps = 0,
.adjfreq = ptp_ixp_adjfreq,
.adjtime = ptp_ixp_adjtime,
-diff -Nur linux-3.14.17/drivers/ptp/ptp_pch.c linux-imx6-3.14/drivers/ptp/ptp_pch.c
---- linux-3.14.17/drivers/ptp/ptp_pch.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ptp/ptp_pch.c 2014-09-11 18:06:04.482047883 +0200
+diff -Nur linux-3.14.22.orig/drivers/ptp/ptp_pch.c linux-3.14.22/drivers/ptp/ptp_pch.c
+--- linux-3.14.22.orig/drivers/ptp/ptp_pch.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ptp/ptp_pch.c 2014-10-22 14:55:53.286220001 -0500
@@ -514,6 +514,7 @@
.name = "PCH timer",
.max_adj = 50000000,
@@ -208545,9 +205894,9 @@ diff -Nur linux-3.14.17/drivers/ptp/ptp_pch.c linux-imx6-3.14/drivers/ptp/ptp_pc
.pps = 0,
.adjfreq = ptp_pch_adjfreq,
.adjtime = ptp_pch_adjtime,
-diff -Nur linux-3.14.17/drivers/ptp/ptp_private.h linux-imx6-3.14/drivers/ptp/ptp_private.h
---- linux-3.14.17/drivers/ptp/ptp_private.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/ptp/ptp_private.h 2014-09-11 18:06:04.482047883 +0200
+diff -Nur linux-3.14.22.orig/drivers/ptp/ptp_private.h linux-3.14.22/drivers/ptp/ptp_private.h
+--- linux-3.14.22.orig/drivers/ptp/ptp_private.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/ptp/ptp_private.h 2014-10-22 14:55:53.286220001 -0500
@@ -48,6 +48,7 @@
long dialed_frequency; /* remembers the frequency adjustment */
struct timestamp_event_queue tsevq; /* simple fifo for time stamps */
@@ -208567,9 +205916,9 @@ diff -Nur linux-3.14.17/drivers/ptp/ptp_private.h linux-imx6-3.14/drivers/ptp/pt
long ptp_ioctl(struct posix_clock *pc,
unsigned int cmd, unsigned long arg);
-diff -Nur linux-3.14.17/drivers/pwm/pwm-imx.c linux-imx6-3.14/drivers/pwm/pwm-imx.c
---- linux-3.14.17/drivers/pwm/pwm-imx.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/pwm/pwm-imx.c 2014-09-11 18:06:04.482047883 +0200
+diff -Nur linux-3.14.22.orig/drivers/pwm/pwm-imx.c linux-3.14.22/drivers/pwm/pwm-imx.c
+--- linux-3.14.22.orig/drivers/pwm/pwm-imx.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/pwm/pwm-imx.c 2014-10-22 14:55:53.286220001 -0500
@@ -1,4 +1,5 @@
/*
+ * Copyright (C) 2013 Freescale Semiconductor, Inc.
@@ -208611,34 +205960,9 @@ diff -Nur linux-3.14.17/drivers/pwm/pwm-imx.c linux-imx6-3.14/drivers/pwm/pwm-im
},
.probe = imx_pwm_probe,
.remove = imx_pwm_remove,
-diff -Nur linux-3.14.17/drivers/rapidio/devices/tsi721_dma.c linux-imx6-3.14/drivers/rapidio/devices/tsi721_dma.c
---- linux-3.14.17/drivers/rapidio/devices/tsi721_dma.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/rapidio/devices/tsi721_dma.c 2014-09-11 18:06:04.486047898 +0200
-@@ -287,12 +287,6 @@
- "desc %p not ACKed\n", tx_desc);
- }
-
-- if (ret == NULL) {
-- dev_dbg(bdma_chan->dchan.device->dev,
-- "%s: unable to obtain tx descriptor\n", __func__);
-- goto err_out;
-- }
--
- i = bdma_chan->wr_count_next % bdma_chan->bd_num;
- if (i == bdma_chan->bd_num - 1) {
- i = 0;
-@@ -303,7 +297,7 @@
- tx_desc->txd.phys = bdma_chan->bd_phys +
- i * sizeof(struct tsi721_dma_desc);
- tx_desc->hw_desc = &((struct tsi721_dma_desc *)bdma_chan->bd_base)[i];
--err_out:
-+
- spin_unlock_bh(&bdma_chan->lock);
-
- return ret;
-diff -Nur linux-3.14.17/drivers/regulator/anatop-regulator.c linux-imx6-3.14/drivers/regulator/anatop-regulator.c
---- linux-3.14.17/drivers/regulator/anatop-regulator.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/regulator/anatop-regulator.c 2014-09-11 18:06:04.490047915 +0200
+diff -Nur linux-3.14.22.orig/drivers/regulator/anatop-regulator.c linux-3.14.22/drivers/regulator/anatop-regulator.c
+--- linux-3.14.22.orig/drivers/regulator/anatop-regulator.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/regulator/anatop-regulator.c 2014-10-22 14:55:53.286220001 -0500
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -208764,9 +206088,9 @@ diff -Nur linux-3.14.17/drivers/regulator/anatop-regulator.c linux-imx6-3.14/dri
/* register regulator */
rdev = devm_regulator_register(dev, rdesc, &config);
-diff -Nur linux-3.14.17/drivers/regulator/core.c linux-imx6-3.14/drivers/regulator/core.c
---- linux-3.14.17/drivers/regulator/core.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/regulator/core.c 2014-09-11 18:06:04.490047915 +0200
+diff -Nur linux-3.14.22.orig/drivers/regulator/core.c linux-3.14.22/drivers/regulator/core.c
+--- linux-3.14.22.orig/drivers/regulator/core.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/regulator/core.c 2014-10-22 14:55:53.290220001 -0500
@@ -3,6 +3,7 @@
*
* Copyright 2007, 2008 Wolfson Microelectronics PLC.
@@ -208885,9 +206209,9 @@ diff -Nur linux-3.14.17/drivers/regulator/core.c linux-imx6-3.14/drivers/regulat
ret = regulator_ena_gpio_request(rdev, config);
if (ret != 0) {
rdev_err(rdev, "Failed to request enable GPIO%d: %d\n",
-diff -Nur linux-3.14.17/drivers/regulator/dummy.c linux-imx6-3.14/drivers/regulator/dummy.c
---- linux-3.14.17/drivers/regulator/dummy.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/regulator/dummy.c 2014-09-11 18:06:04.510047994 +0200
+diff -Nur linux-3.14.22.orig/drivers/regulator/dummy.c linux-3.14.22/drivers/regulator/dummy.c
+--- linux-3.14.22.orig/drivers/regulator/dummy.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/regulator/dummy.c 2014-10-22 14:55:53.290220001 -0500
@@ -44,6 +44,7 @@
config.dev = &pdev->dev;
@@ -208896,9 +206220,9 @@ diff -Nur linux-3.14.17/drivers/regulator/dummy.c linux-imx6-3.14/drivers/regula
dummy_regulator_rdev = regulator_register(&dummy_desc, &config);
if (IS_ERR(dummy_regulator_rdev)) {
-diff -Nur linux-3.14.17/drivers/regulator/fixed.c linux-imx6-3.14/drivers/regulator/fixed.c
---- linux-3.14.17/drivers/regulator/fixed.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/regulator/fixed.c 2014-09-11 18:06:04.510047994 +0200
+diff -Nur linux-3.14.22.orig/drivers/regulator/fixed.c linux-3.14.22/drivers/regulator/fixed.c
+--- linux-3.14.22.orig/drivers/regulator/fixed.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/regulator/fixed.c 2014-10-22 14:55:53.290220001 -0500
@@ -163,9 +163,7 @@
drvdata->desc.n_voltages = 1;
@@ -208910,9 +206234,9 @@ diff -Nur linux-3.14.17/drivers/regulator/fixed.c linux-imx6-3.14/drivers/regula
cfg.ena_gpio_invert = !config->enable_high;
if (config->enabled_at_boot) {
if (config->enable_high)
-diff -Nur linux-3.14.17/drivers/reset/gpio-reset.c linux-imx6-3.14/drivers/reset/gpio-reset.c
---- linux-3.14.17/drivers/reset/gpio-reset.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/reset/gpio-reset.c 2014-09-11 18:06:04.530048075 +0200
+diff -Nur linux-3.14.22.orig/drivers/reset/gpio-reset.c linux-3.14.22/drivers/reset/gpio-reset.c
+--- linux-3.14.22.orig/drivers/reset/gpio-reset.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/reset/gpio-reset.c 2014-10-22 14:55:53.290220001 -0500
@@ -0,0 +1,187 @@
+/*
+ * GPIO Reset Controller driver
@@ -209101,9 +206425,9 @@ diff -Nur linux-3.14.17/drivers/reset/gpio-reset.c linux-imx6-3.14/drivers/reset
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:gpio-reset");
+MODULE_DEVICE_TABLE(of, gpio_reset_dt_ids);
-diff -Nur linux-3.14.17/drivers/reset/Kconfig linux-imx6-3.14/drivers/reset/Kconfig
---- linux-3.14.17/drivers/reset/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/reset/Kconfig 2014-09-11 18:06:04.530048075 +0200
+diff -Nur linux-3.14.22.orig/drivers/reset/Kconfig linux-3.14.22/drivers/reset/Kconfig
+--- linux-3.14.22.orig/drivers/reset/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/reset/Kconfig 2014-10-22 14:55:53.290220001 -0500
@@ -11,3 +11,15 @@
via GPIOs or SoC-internal reset controller modules.
@@ -209120,16 +206444,16 @@ diff -Nur linux-3.14.17/drivers/reset/Kconfig linux-imx6-3.14/drivers/reset/Kcon
+ directly by GPIOs.
+
+endif
-diff -Nur linux-3.14.17/drivers/reset/Makefile linux-imx6-3.14/drivers/reset/Makefile
---- linux-3.14.17/drivers/reset/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/reset/Makefile 2014-09-11 18:06:04.530048075 +0200
+diff -Nur linux-3.14.22.orig/drivers/reset/Makefile linux-3.14.22/drivers/reset/Makefile
+--- linux-3.14.22.orig/drivers/reset/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/reset/Makefile 2014-10-22 14:55:53.290220001 -0500
@@ -1,2 +1,3 @@
obj-$(CONFIG_RESET_CONTROLLER) += core.o
+obj-$(CONFIG_RESET_GPIO) += gpio-reset.o
obj-$(CONFIG_ARCH_SUNXI) += reset-sunxi.o
-diff -Nur linux-3.14.17/drivers/rtc/rtc-pcf8523.c linux-imx6-3.14/drivers/rtc/rtc-pcf8523.c
---- linux-3.14.17/drivers/rtc/rtc-pcf8523.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/rtc/rtc-pcf8523.c 2014-09-11 18:06:04.546048138 +0200
+diff -Nur linux-3.14.22.orig/drivers/rtc/rtc-pcf8523.c linux-3.14.22/drivers/rtc/rtc-pcf8523.c
+--- linux-3.14.22.orig/drivers/rtc/rtc-pcf8523.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/rtc/rtc-pcf8523.c 2014-10-22 14:55:53.294220001 -0500
@@ -7,6 +7,7 @@
*/
@@ -209261,9 +206585,9 @@ diff -Nur linux-3.14.17/drivers/rtc/rtc-pcf8523.c linux-imx6-3.14/drivers/rtc/rt
err = pcf8523_set_pm(client, 0);
if (err < 0)
return err;
-diff -Nur linux-3.14.17/drivers/rtc/rtc-snvs.c linux-imx6-3.14/drivers/rtc/rtc-snvs.c
---- linux-3.14.17/drivers/rtc/rtc-snvs.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/rtc/rtc-snvs.c 2014-09-11 18:06:04.550048154 +0200
+diff -Nur linux-3.14.22.orig/drivers/rtc/rtc-snvs.c linux-3.14.22/drivers/rtc/rtc-snvs.c
+--- linux-3.14.22.orig/drivers/rtc/rtc-snvs.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/rtc/rtc-snvs.c 2014-10-22 14:55:53.294220001 -0500
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2012 Freescale Semiconductor, Inc.
@@ -209326,75 +206650,9 @@ diff -Nur linux-3.14.17/drivers/rtc/rtc-snvs.c linux-imx6-3.14/drivers/rtc/rtc-s
return 0;
}
-diff -Nur linux-3.14.17/drivers/sbus/char/bbc_envctrl.c linux-imx6-3.14/drivers/sbus/char/bbc_envctrl.c
---- linux-3.14.17/drivers/sbus/char/bbc_envctrl.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/sbus/char/bbc_envctrl.c 2014-09-11 18:06:04.622048441 +0200
-@@ -452,9 +452,6 @@
- if (!tp)
- return;
-
-- INIT_LIST_HEAD(&tp->bp_list);
-- INIT_LIST_HEAD(&tp->glob_list);
--
- tp->client = bbc_i2c_attach(bp, op);
- if (!tp->client) {
- kfree(tp);
-@@ -500,9 +497,6 @@
- if (!fp)
- return;
-
-- INIT_LIST_HEAD(&fp->bp_list);
-- INIT_LIST_HEAD(&fp->glob_list);
--
- fp->client = bbc_i2c_attach(bp, op);
- if (!fp->client) {
- kfree(fp);
-diff -Nur linux-3.14.17/drivers/sbus/char/bbc_i2c.c linux-imx6-3.14/drivers/sbus/char/bbc_i2c.c
---- linux-3.14.17/drivers/sbus/char/bbc_i2c.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/sbus/char/bbc_i2c.c 2014-09-11 18:06:04.622048441 +0200
-@@ -300,18 +300,13 @@
- if (!bp)
- return NULL;
-
-- INIT_LIST_HEAD(&bp->temps);
-- INIT_LIST_HEAD(&bp->fans);
--
- bp->i2c_control_regs = of_ioremap(&op->resource[0], 0, 0x2, "bbc_i2c_regs");
- if (!bp->i2c_control_regs)
- goto fail;
-
-- if (op->num_resources == 2) {
-- bp->i2c_bussel_reg = of_ioremap(&op->resource[1], 0, 0x1, "bbc_i2c_bussel");
-- if (!bp->i2c_bussel_reg)
-- goto fail;
-- }
-+ bp->i2c_bussel_reg = of_ioremap(&op->resource[1], 0, 0x1, "bbc_i2c_bussel");
-+ if (!bp->i2c_bussel_reg)
-+ goto fail;
-
- bp->waiting = 0;
- init_waitqueue_head(&bp->wq);
-diff -Nur linux-3.14.17/drivers/scsi/scsi_lib.c linux-imx6-3.14/drivers/scsi/scsi_lib.c
---- linux-3.14.17/drivers/scsi/scsi_lib.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/scsi/scsi_lib.c 2014-09-11 18:06:07.698060725 +0200
-@@ -831,14 +831,6 @@
- scsi_next_command(cmd);
- return;
- }
-- } else if (blk_rq_bytes(req) == 0 && result && !sense_deferred) {
-- /*
-- * Certain non BLOCK_PC requests are commands that don't
-- * actually transfer anything (FLUSH), so cannot use
-- * good_bytes != blk_rq_bytes(req) as the signal for an error.
-- * This sets the error explicitly for the problem case.
-- */
-- error = __scsi_error_from_host_byte(cmd, result);
- }
-
- /* no bidi support for !REQ_TYPE_BLOCK_PC yet */
-diff -Nur linux-3.14.17/drivers/scsi/scsi_transport_iscsi.c linux-imx6-3.14/drivers/scsi/scsi_transport_iscsi.c
---- linux-3.14.17/drivers/scsi/scsi_transport_iscsi.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/scsi/scsi_transport_iscsi.c 2014-09-11 18:06:07.698060725 +0200
+diff -Nur linux-3.14.22.orig/drivers/scsi/scsi_transport_iscsi.c linux-3.14.22/drivers/scsi/scsi_transport_iscsi.c
+--- linux-3.14.22.orig/drivers/scsi/scsi_transport_iscsi.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/scsi/scsi_transport_iscsi.c 2014-10-22 14:55:53.294220001 -0500
@@ -1225,7 +1225,7 @@
* Adds a sysfs entry for the flashnode session attributes
*
@@ -209422,9 +206680,9 @@ diff -Nur linux-3.14.17/drivers/scsi/scsi_transport_iscsi.c linux-imx6-3.14/driv
* @shost: pointer to host data
*
* Destroys all the flashnode session entries and all corresponding children
-diff -Nur linux-3.14.17/drivers/staging/bcm/Typedefs.h linux-imx6-3.14/drivers/staging/bcm/Typedefs.h
---- linux-3.14.17/drivers/staging/bcm/Typedefs.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/staging/bcm/Typedefs.h 2014-09-11 18:06:08.118062401 +0200
+diff -Nur linux-3.14.22.orig/drivers/staging/bcm/Typedefs.h linux-3.14.22/drivers/staging/bcm/Typedefs.h
+--- linux-3.14.22.orig/drivers/staging/bcm/Typedefs.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/staging/bcm/Typedefs.h 2014-10-22 14:55:53.298220001 -0500
@@ -25,16 +25,16 @@
typedef unsigned long ULONG;
typedef unsigned long DWORD;
@@ -209451,20 +206709,811 @@ diff -Nur linux-3.14.17/drivers/staging/bcm/Typedefs.h linux-imx6-3.14/drivers/s
typedef unsigned long long ULONG64;
typedef unsigned long long LARGE_INTEGER;
typedef unsigned int UINT32;
-diff -Nur linux-3.14.17/drivers/staging/media/omap4iss/Kconfig linux-imx6-3.14/drivers/staging/media/omap4iss/Kconfig
---- linux-3.14.17/drivers/staging/media/omap4iss/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/staging/media/omap4iss/Kconfig 2014-09-11 18:06:08.558064158 +0200
-@@ -1,6 +1,6 @@
- config VIDEO_OMAP4
- bool "OMAP 4 Camera support"
-- depends on VIDEO_V4L2=y && VIDEO_V4L2_SUBDEV_API && I2C=y && ARCH_OMAP4
-+ depends on VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API && I2C && ARCH_OMAP4
- select VIDEOBUF2_DMA_CONTIG
- ---help---
- Driver for an OMAP 4 ISS controller.
-diff -Nur linux-3.14.17/drivers/staging/octeon/ethernet-rgmii.c linux-imx6-3.14/drivers/staging/octeon/ethernet-rgmii.c
---- linux-3.14.17/drivers/staging/octeon/ethernet-rgmii.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/staging/octeon/ethernet-rgmii.c 2014-09-11 18:06:08.570064206 +0200
+diff -Nur linux-3.14.22.orig/drivers/staging/media/lirc/Kconfig linux-3.14.22/drivers/staging/media/lirc/Kconfig
+--- linux-3.14.22.orig/drivers/staging/media/lirc/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/staging/media/lirc/Kconfig 2014-10-22 14:55:53.298220001 -0500
+@@ -38,6 +38,12 @@
+ help
+ Driver for Homebrew Parallel Port Receivers
+
++config LIRC_GPIO
++ tristate "Homebrew GPIO Port Receiver/Transmitter"
++ depends on LIRC
++ help
++ Driver for Homebrew GPIO Port Receiver/Transmitter
++
+ config LIRC_SASEM
+ tristate "Sasem USB IR Remote"
+ depends on LIRC && USB
+diff -Nur linux-3.14.22.orig/drivers/staging/media/lirc/lirc_gpio.c linux-3.14.22/drivers/staging/media/lirc/lirc_gpio.c
+--- linux-3.14.22.orig/drivers/staging/media/lirc/lirc_gpio.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/staging/media/lirc/lirc_gpio.c 2014-10-22 14:55:53.298220001 -0500
+@@ -0,0 +1,782 @@
++/*
++ * lirc_gpio.c
++ *
++ * lirc_gpio - Device driver that records pulse- and pause-lengths
++ * (space-lengths) (just like the lirc_serial driver does)
++ * between GPIO interrupt events on GPIO capable devices.
++ * Lots of code has been taken from the lirc_serial and the
++ * lirc_rpi modules so I would like say thanks to the authors.
++ *
++ * Copyright (C) 2014 CurlyMo <curlymoo1@gmail.com>
++ * Aron Robert Szabo <aron@reon.hu>,
++ * Michael Bishop <cleverca22@gmail.com>
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ */
++
++/*
++ lirc_gpio {
++ compatible = "lirc_gpio";
++ gpios = <&gpio3 6 1 &gpio3 7 2>;
++ pinctrl-names = "default";
++ pinctrl-0 = <&pinctrl_hummingboard_gpio3_6>;
++ pinctrl-1 = <&pinctrl_hummingboard_gpio3_7>;
++ linux,sense = <-1>;
++ linux,softcarrier = <1>;
++ linux,validgpios = <1 73 72 71 70 194 195 67>;
++ };
++ */
++
++
++#include <linux/module.h>
++#include <linux/errno.h>
++#include <linux/interrupt.h>
++#include <linux/sched.h>
++#include <linux/kernel.h>
++#include <linux/time.h>
++#include <linux/string.h>
++#include <linux/delay.h>
++#include <linux/platform_device.h>
++#include <linux/irq.h>
++#include <linux/spinlock.h>
++#include <media/lirc.h>
++#include <media/lirc_dev.h>
++#include <linux/gpio.h>
++#include <linux/of.h>
++#include <linux/of_gpio.h>
++
++#define LIRC_DRIVER_NAME "lirc_gpio"
++#define RBUF_LEN 256
++#define LIRC_TRANSMITTER_LATENCY 256
++
++#ifndef MAX_UDELAY_MS
++#define MAX_UDELAY_US 5000
++#else
++#define MAX_UDELAY_US (MAX_UDELAY_MS*1000)
++#endif
++
++static ssize_t lirc_write(struct file *file, const char *buf, size_t n, loff_t *ppos);
++static long lirc_ioctl(struct file *filep, unsigned int cmd, unsigned long arg);
++static int set_use_inc(void *data);
++static void set_use_dec(void *data);
++static int lirc_gpio_probe(struct platform_device *pdev);
++static int lirc_gpio_remove(struct platform_device *pdev);
++
++struct lirc_gpio_platform_data {
++ int gpio_rx_nr;
++ int gpio_tx_nr;
++ bool active_rx_low;
++ bool active_tx_low;
++ u64 allowed_rx_protos;
++ u64 allowed_tx_protos;
++ int sense;
++ int softcarrier;
++ int validgpios[255];
++};
++
++struct lirc_gpio_dev {
++ int gpio_rx_nr;
++ int gpio_tx_nr;
++ int sense;
++ int softcarrier;
++ int validgpios[255];
++};
++
++struct lirc_gpio_dev *gpio_dev;
++
++static const struct file_operations lirc_fops = {
++ .owner = THIS_MODULE,
++ .write = lirc_write,
++ .unlocked_ioctl = lirc_ioctl,
++ .read = lirc_dev_fop_read,
++ .poll = lirc_dev_fop_poll,
++ .open = lirc_dev_fop_open,
++ .release = lirc_dev_fop_close,
++ .llseek = no_llseek,
++};
++
++struct irq_chip *irqchip;
++struct irq_data *irqdata;
++
++static struct timeval lasttv = { 0, 0 };
++static struct lirc_buffer rbuf;
++static spinlock_t lock;
++
++/* set the default GPIO input pin */
++static int gpio_in_pin = -1;
++/* set the default GPIO output pin */
++static int gpio_out_pin = -1;
++/* -1 = auto, 0 = active high, 1 = active low */
++static int sense = -2;
++/* use softcarrier by default */
++static int softcarrier = -1;
++
++/* initialized/set in init_timing_params() */
++static unsigned int freq = 38000;
++static unsigned int duty_cycle = 50;
++static unsigned long period;
++static unsigned long pulse_width;
++static unsigned long space_width;
++
++static struct lirc_driver driver = {
++ .name = LIRC_DRIVER_NAME,
++ .minor = -1,
++ .code_length = 1,
++ .sample_rate = 0,
++ .data = NULL,
++ .add_to_buf = NULL,
++ .rbuf = &rbuf,
++ .set_use_inc = set_use_inc,
++ .set_use_dec = set_use_dec,
++ .fops = &lirc_fops,
++ .dev = NULL,
++ .owner = THIS_MODULE,
++};
++
++static struct of_device_id lirc_gpio_of_match[] = {
++ { .compatible = "lirc_gpio", },
++ {}
++};
++
++static struct platform_driver lirc_gpio_driver = {
++ .probe = lirc_gpio_probe,
++ .remove = lirc_gpio_remove,
++ .driver = {
++ .name = LIRC_DRIVER_NAME,
++ .owner = THIS_MODULE,
++ .of_match_table = lirc_gpio_of_match,
++ },
++};
++
++static void safe_udelay(unsigned long usecs) {
++ while (usecs > MAX_UDELAY_US) {
++ udelay(MAX_UDELAY_US);
++ usecs -= MAX_UDELAY_US;
++ }
++ udelay(usecs);
++}
++
++static int init_timing_params(unsigned int new_duty_cycle, unsigned int new_freq) {
++ /*
++ * period, pulse/space width are kept with 8 binary places -
++ * IE multiplied by 256.
++ */
++ if(256 * 1000000L / new_freq * new_duty_cycle / 100 <=
++ LIRC_TRANSMITTER_LATENCY)
++ return -EINVAL;
++ if(256 * 1000000L / new_freq * (100 - new_duty_cycle) / 100 <=
++ LIRC_TRANSMITTER_LATENCY)
++ return -EINVAL;
++ duty_cycle = new_duty_cycle;
++ freq = new_freq;
++ period = 256 * 1000000L / freq;
++ pulse_width = period * duty_cycle / 100;
++ space_width = period - pulse_width;
++ return 0;
++}
++
++
++static long send_pulse_softcarrier(unsigned long length) {
++ int flag;
++ unsigned long actual, target, d;
++
++ if(gpio_dev->gpio_tx_nr >= 0) {
++ length <<= 8;
++
++ actual = 0; target = 0; flag = 0;
++ while(actual < length) {
++ if(flag) {
++ gpio_set_value(gpio_dev->gpio_tx_nr, 0);
++ target += space_width;
++ } else {
++ gpio_set_value(gpio_dev->gpio_tx_nr, 1);
++ target += pulse_width;
++ }
++ d = (target - actual - LIRC_TRANSMITTER_LATENCY + 128) >> 8;
++ /*
++ * Note - we've checked in ioctl that the pulse/space
++ * widths are big enough so that d is > 0
++ */
++ udelay(d);
++ actual += (d << 8) + LIRC_TRANSMITTER_LATENCY;
++ flag = !flag;
++ }
++ return (actual-length) >> 8;
++ }
++ return 0;
++}
++
++static long send_pulse(unsigned long length) {
++ if(length <= 0)
++ return 0;
++
++ if(gpio_dev->gpio_tx_nr >= 0) {
++ if(gpio_dev->softcarrier) {
++ return send_pulse_softcarrier(length);
++ } else {
++ gpio_set_value(gpio_dev->gpio_tx_nr, 1);
++ safe_udelay(length);
++ return 0;
++ }
++ }
++ return 0;
++}
++
++static void send_space(long length) {
++ if(gpio_dev->gpio_tx_nr >= 0) {
++ gpio_set_value(gpio_dev->gpio_tx_nr, 0);
++ if(length <= 0)
++ return;
++ safe_udelay(length);
++ }
++}
++
++static void rbwrite(int l) {
++ if (lirc_buffer_full(&rbuf)) {
++ /* no new signals will be accepted */
++ return;
++ }
++ lirc_buffer_write(&rbuf, (void *)&l);
++}
++
++static void frbwrite(int l) {
++ /* simple noise filter */
++ static int pulse, space;
++ static unsigned int ptr;
++
++ if(ptr > 0 && (l & PULSE_BIT)) {
++ pulse += l & PULSE_MASK;
++ if(pulse > 250) {
++ rbwrite(space);
++ rbwrite(pulse | PULSE_BIT);
++ ptr = 0;
++ pulse = 0;
++ }
++ return;
++ }
++ if(!(l & PULSE_BIT)) {
++ if(ptr == 0) {
++ if (l > 20000) {
++ space = l;
++ ptr++;
++ return;
++ }
++ } else {
++ if(l > 20000) {
++ space += pulse;
++ if (space > PULSE_MASK)
++ space = PULSE_MASK;
++ space += l;
++ if (space > PULSE_MASK)
++ space = PULSE_MASK;
++ pulse = 0;
++ return;
++ }
++ rbwrite(space);
++ rbwrite(pulse | PULSE_BIT);
++ ptr = 0;
++ pulse = 0;
++ }
++ }
++ rbwrite(l);
++}
++
++static irqreturn_t irq_handler(int i, void *blah, struct pt_regs *regs) {
++ struct timeval tv;
++ long deltv;
++ int data;
++ int signal;
++
++ /* use the GPIO signal level */
++ signal = gpio_get_value(gpio_dev->gpio_rx_nr);
++
++ /* unmask the irq */
++ irqchip->irq_unmask(irqdata);
++
++ if(gpio_dev->sense != -1) {
++ /* The HB GPIO input acts like it is an analogue input.
++ Therefor a high signal is 256 and a low signal is 1.
++ For Lirc to properly interpret the spaces and pulses,
++ we need to transform these to ones and zeros. To be
++ on the safe side, every signal higher then 128 will
++ be interpreted as a high and vice versa. */
++ if (signal > 128) {
++ signal = 1;
++ } else {
++ signal = 0;
++ }
++ /* get current time */
++ do_gettimeofday(&tv);
++
++ /* calc time since last interrupt in microseconds */
++ deltv = tv.tv_sec-lasttv.tv_sec;
++ if(tv.tv_sec < lasttv.tv_sec ||
++ (tv.tv_sec == lasttv.tv_sec &&
++ tv.tv_usec < lasttv.tv_usec)) {
++ printk(KERN_WARNING LIRC_DRIVER_NAME
++ ": AIEEEE: your clock just jumped backwards\n");
++ printk(KERN_WARNING LIRC_DRIVER_NAME
++ ": %d %d %lx %lx %lx %lx\n", signal, gpio_dev->sense,
++ tv.tv_sec, lasttv.tv_sec,
++ tv.tv_usec, lasttv.tv_usec);
++ data = PULSE_MASK;
++ } else if (deltv > 15) {
++ data = PULSE_MASK; /* really long time */
++ if(!(signal^gpio_dev->sense)) {
++ /* sanity check */
++ printk(KERN_WARNING LIRC_DRIVER_NAME
++ ": AIEEEE: %d %d %lx %lx %lx %lx\n",
++ signal, gpio_dev->sense, tv.tv_sec, lasttv.tv_sec,
++ tv.tv_usec, lasttv.tv_usec);
++ /*
++ * detecting pulse while this
++ * MUST be a space!
++ */
++ gpio_dev->sense = gpio_dev->sense ? 0 : 1;
++ }
++ } else {
++ data = (int) (deltv*1000000 +
++ (tv.tv_usec - lasttv.tv_usec));
++ }
++ frbwrite(signal^gpio_dev->sense ? data : (data|PULSE_BIT));
++ lasttv = tv;
++ wake_up_interruptible(&rbuf.wait_poll);
++ }
++
++ return IRQ_HANDLED;
++}
++
++// called when the character device is opened
++static int set_use_inc(void *data) {
++ int result;
++ unsigned long flags;
++
++ /* initialize timestamp */
++ do_gettimeofday(&lasttv);
++
++ if(gpio_dev->gpio_rx_nr >= 0) {
++ result = request_irq(gpio_to_irq(gpio_dev->gpio_rx_nr),
++ (irq_handler_t) irq_handler, 0,
++ LIRC_DRIVER_NAME, (void*) 0);
++
++ switch (result) {
++ case -EBUSY:
++ printk(KERN_ERR LIRC_DRIVER_NAME
++ ": IRQ %d is busy\n",
++ gpio_to_irq(gpio_dev->gpio_rx_nr));
++ return -EBUSY;
++ case -EINVAL:
++ printk(KERN_ERR LIRC_DRIVER_NAME
++ ": Bad irq number or handler\n");
++ return -EINVAL;
++ default:
++ break;
++ };
++
++ /* initialize pulse/space widths */
++ init_timing_params(duty_cycle, freq);
++
++ spin_lock_irqsave(&lock, flags);
++
++ /* GPIO Pin Falling/Rising Edge Detect Enable */
++ irqchip->irq_set_type(irqdata,
++ IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING);
++
++ /* unmask the irq */
++ irqchip->irq_unmask(irqdata);
++
++ spin_unlock_irqrestore(&lock, flags);
++ }
++
++ return 0;
++}
++
++static void set_use_dec(void *data) {
++ unsigned long flags;
++ if(gpio_dev->gpio_rx_nr >= 0) {
++ spin_lock_irqsave(&lock, flags);
++
++ /* GPIO Pin Falling/Rising Edge Detect Disable */
++ irqchip->irq_set_type(irqdata, 0);
++ irqchip->irq_mask(irqdata);
++
++ spin_unlock_irqrestore(&lock, flags);
++
++ free_irq(gpio_to_irq(gpio_dev->gpio_rx_nr), (void *) 0);
++ }
++}
++
++static ssize_t lirc_write(struct file *file, const char *buf, size_t n, loff_t *ppos) {
++ int i, count;
++ unsigned long flags;
++ long delta = 0;
++ int *wbuf;
++
++ if(gpio_dev->gpio_tx_nr >= 0) {
++ count = n / sizeof(int);
++ if(n % sizeof(int) || count % 2 == 0)
++ return -EINVAL;
++ wbuf = memdup_user(buf, n);
++ if(IS_ERR(wbuf))
++ return PTR_ERR(wbuf);
++ spin_lock_irqsave(&lock, flags);
++
++ for(i = 0; i < count; i++) {
++ if(i%2)
++ send_space(wbuf[i] - delta);
++ else
++ delta = send_pulse(wbuf[i]);
++ }
++ gpio_set_value(gpio_dev->gpio_tx_nr, 0);
++
++ spin_unlock_irqrestore(&lock, flags);
++ kfree(wbuf);
++ return n;
++ }
++ return 0;
++}
++
++
++static long lirc_ioctl(struct file *filep, unsigned int cmd, unsigned long arg) {
++ int result;
++ __u32 value;
++
++ switch(cmd) {
++ case LIRC_GET_SEND_MODE:
++ return -ENOIOCTLCMD;
++ break;
++
++ case LIRC_SET_SEND_MODE:
++ result = get_user(value, (__u32 *) arg);
++ if(result)
++ return result;
++ /* only LIRC_MODE_PULSE supported */
++ if(value != LIRC_MODE_PULSE)
++ return -ENOSYS;
++ break;
++
++ case LIRC_GET_LENGTH:
++ return -ENOSYS;
++ break;
++
++ case LIRC_SET_SEND_DUTY_CYCLE:
++ result = get_user(value, (__u32 *) arg);
++ if (result)
++ return result;
++ if (value <= 0 || value > 100)
++ return -EINVAL;
++ return init_timing_params(value, freq);
++ break;
++
++ case LIRC_SET_SEND_CARRIER:
++ result = get_user(value, (__u32 *) arg);
++ if(result)
++ return result;
++ if(value > 500000 || value < 20000)
++ return -EINVAL;
++ return init_timing_params(duty_cycle, value);
++ break;
++
++ default:
++ return lirc_dev_fop_ioctl(filep, cmd, arg);
++ }
++ return 0;
++}
++
++static int lirc_gpio_get_devtree_pdata(struct device *dev, struct lirc_gpio_platform_data *pdata) {
++ struct device_node *np = dev->of_node;
++ enum of_gpio_flags flags;
++ struct property *prop;
++ const __be32 *cur;
++ int gpio = -1;
++ int ret = 0;
++ int i = 0;
++
++ if(np) {
++ gpio = of_get_gpio_flags(np, 0, &flags);
++ if(gpio < 0) {
++ if(gpio != -EPROBE_DEFER)
++ dev_err(dev, "RX gpio not defined (%d)\n", gpio);
++
++ pdata->gpio_rx_nr = -1;
++ pdata->active_rx_low = 0;
++ pdata->allowed_rx_protos = 0;
++ } else {
++ pdata->gpio_rx_nr = gpio;
++ pdata->active_rx_low = (flags & OF_GPIO_ACTIVE_LOW);
++ pdata->allowed_rx_protos = 0;
++ }
++
++ gpio = of_get_gpio_flags(np, 1, &flags);
++ if(gpio < 0) {
++ if(gpio != -EPROBE_DEFER)
++ dev_err(dev, "TX gpio not defined (%d)\n", gpio);
++
++ pdata->gpio_tx_nr = -1;
++ pdata->active_tx_low = 0;
++ pdata->allowed_tx_protos = 0;
++ } else {
++ pdata->gpio_tx_nr = gpio;
++ pdata->active_tx_low = (flags & OF_GPIO_ACTIVE_LOW);
++ pdata->allowed_tx_protos = 0;
++ }
++ ret = of_property_read_u32(np, "linux,sense", &pdata->sense);
++ if(ret) {
++ pdata->sense = -1;
++ }
++ ret = of_property_read_u32(np, "linux,softcarrier", &pdata->softcarrier);
++ if(ret) {
++ pdata->softcarrier = 1;
++ }
++ i = 0;
++ printk(KERN_DEBUG LIRC_DRIVER_NAME ": valid gpios");
++ of_property_for_each_u32(np, "linux,validgpios", prop, cur, gpio) {
++ printk(" %d", gpio);
++ pdata->validgpios[i++] = gpio;
++ }
++ printk("\n");
++ pdata->validgpios[i] = -1;
++ }
++
++ return 0;
++}
++
++static int init_port(void) {
++ int i, nlow, nhigh, ret, irq;
++
++ if(gpio_dev->gpio_tx_nr >= 0) {
++ if(gpio_request(gpio_dev->gpio_tx_nr, LIRC_DRIVER_NAME " ir/out")) {
++ printk(KERN_ALERT LIRC_DRIVER_NAME ": cant claim gpio pin %d\n", gpio_dev->gpio_tx_nr);
++ ret = -ENODEV;
++ goto exit_init_port;
++ }
++ }
++
++ if(gpio_dev->gpio_rx_nr >= 0) {
++ if(gpio_request(gpio_dev->gpio_rx_nr, LIRC_DRIVER_NAME " ir/in")) {
++ printk(KERN_ALERT LIRC_DRIVER_NAME ": cant claim gpio pin %d\n", gpio_dev->gpio_rx_nr);
++ ret = -ENODEV;
++ goto exit_gpio_free_out_pin;
++ }
++ }
++
++ if(gpio_dev->gpio_rx_nr >= 0) {
++ gpio_direction_input(gpio_dev->gpio_rx_nr);
++ }
++ if(gpio_dev->gpio_tx_nr >= 0) {
++ gpio_direction_output(gpio_dev->gpio_tx_nr, 1);
++ gpio_set_value(gpio_dev->gpio_tx_nr, 0);
++ }
++
++ if(gpio_dev->gpio_rx_nr >= 0) {
++ irq = gpio_to_irq(gpio_dev->gpio_rx_nr);
++ irqdata = irq_get_irq_data(irq);
++
++ if(irqdata && irqdata->chip) {
++ irqchip = irqdata->chip;
++ } else {
++ ret = -ENODEV;
++ goto exit_gpio_free_in_pin;
++ }
++
++ /* if pin is high, then this must be an active low receiver. */
++ if(gpio_dev->sense == -1) {
++ /* wait 1/2 sec for the power supply */
++ msleep(500);
++
++ /*
++ * probe 9 times every 0.04s, collect "votes" for
++ * active high/low
++ */
++ nlow = 0;
++ nhigh = 0;
++ for(i = 0; i < 9; i++) {
++ if(gpio_get_value(gpio_dev->gpio_rx_nr))
++ nlow++;
++ else
++ nhigh++;
++ msleep(40);
++ }
++ gpio_dev->sense = (nlow >= nhigh ? 1 : 0);
++ printk(KERN_INFO LIRC_DRIVER_NAME ": auto-detected active %s receiver on GPIO pin %d\n",
++ gpio_dev->sense ? "low" : "high", gpio_dev->gpio_rx_nr);
++ } else {
++ printk(KERN_INFO LIRC_DRIVER_NAME ": manually using active %s receiver on GPIO pin %d\n",
++ gpio_dev->sense ? "low" : "high", gpio_dev->gpio_rx_nr);
++ }
++ }
++
++ return 0;
++
++exit_gpio_free_in_pin:
++ gpio_free(gpio_dev->gpio_rx_nr);
++
++exit_gpio_free_out_pin:
++ gpio_free(gpio_dev->gpio_tx_nr);
++
++exit_init_port:
++ return ret;
++}
++
++static void lirc_gpio_exit(void) {
++ if(gpio_dev->gpio_tx_nr >= 0) {
++ gpio_free(gpio_dev->gpio_tx_nr);
++ }
++ if(gpio_dev->gpio_rx_nr >= 0) {
++ gpio_free(gpio_dev->gpio_rx_nr);
++ }
++
++ lirc_unregister_driver(driver.minor);
++ lirc_buffer_free(&rbuf);
++}
++
++static int lirc_gpio_probe(struct platform_device *pdev) {
++ const struct lirc_gpio_platform_data *pdata =
++ pdev->dev.platform_data;
++ int rc;
++ int result = 0;
++ int match = 0;
++ int i = 0;
++
++ if(pdev->dev.of_node) {
++ struct lirc_gpio_platform_data *dtpdata = devm_kzalloc(&pdev->dev, sizeof(*dtpdata), GFP_KERNEL);
++ if(!dtpdata)
++ return -ENOMEM;
++ rc = lirc_gpio_get_devtree_pdata(&pdev->dev, dtpdata);
++ if(rc)
++ return rc;
++ pdata = dtpdata;
++ }
++
++ if(!pdata)
++ return -EINVAL;
++
++ gpio_dev = kzalloc(sizeof(struct lirc_gpio_dev), GFP_KERNEL);
++ if(!gpio_dev)
++ return -ENOMEM;
++
++ gpio_dev->gpio_rx_nr = pdata->gpio_rx_nr;
++ gpio_dev->gpio_tx_nr = pdata->gpio_tx_nr;
++ gpio_dev->sense = pdata->sense;
++ gpio_dev->softcarrier = pdata->softcarrier;
++ memcpy(gpio_dev->validgpios, pdata->validgpios, 255);
++
++ if(gpio_in_pin != gpio_out_pin) {
++ match = 0;
++ for(i = 0; (i < ARRAY_SIZE(gpio_dev->validgpios)) && (!match) && (gpio_dev->validgpios[i] != -1); i++) {
++ if(gpio_in_pin == gpio_dev->validgpios[i]) {
++ match = 1;
++ break;
++ }
++ }
++ if(gpio_in_pin > -1) {
++ if(!match) {
++ printk(KERN_ERR LIRC_DRIVER_NAME
++ ": invalid RX GPIO pin specified!\n");
++ return -EINVAL;
++ } else {
++ gpio_dev->gpio_rx_nr = gpio_in_pin;
++ }
++ }
++ match = 0;
++ for(i = 0; (i < ARRAY_SIZE(gpio_dev->validgpios)) && (!match) && (gpio_dev->validgpios[i] != -1); i++) {
++ if(gpio_out_pin == gpio_dev->validgpios[i]) {
++ match = 1;
++ break;
++ }
++ }
++ if(gpio_out_pin > -1) {
++ if(!match) {
++ printk(KERN_ERR LIRC_DRIVER_NAME
++ ": invalid TX GPIO pin specified!\n");
++ return -EINVAL;
++ } else {
++ gpio_dev->gpio_tx_nr = gpio_out_pin;
++ }
++ }
++ }
++ if(sense > -2) {
++ gpio_dev->sense = sense;
++ }
++ if(softcarrier >= 0) {
++ gpio_dev->softcarrier = softcarrier;
++ }
++
++ printk(KERN_DEBUG LIRC_DRIVER_NAME ": rx %d, tx %d, sense %d, softcarrier %d\n",
++ gpio_dev->gpio_rx_nr, gpio_dev->gpio_tx_nr, gpio_dev->sense, gpio_dev->softcarrier);
++
++ platform_set_drvdata(pdev, gpio_dev);
++
++ result = lirc_buffer_init(&rbuf, sizeof(int), RBUF_LEN);
++ if(result < 0)
++ return -ENOMEM;
++
++ driver.features = LIRC_CAN_SET_SEND_DUTY_CYCLE |
++ LIRC_CAN_SET_SEND_CARRIER |
++ LIRC_CAN_SEND_PULSE |
++ LIRC_CAN_REC_MODE2;
++
++ driver.dev = &pdev->dev;
++ driver.minor = lirc_register_driver(&driver);
++
++ if(driver.minor < 0) {
++ printk(KERN_ERR LIRC_DRIVER_NAME ": device registration failed with %d\n", result);
++ result = -EIO;
++ goto exit_gpio;
++ }
++
++ result = init_port();
++ if(result < 0)
++ goto exit_gpio;
++
++ return 0;
++
++exit_gpio:
++ lirc_gpio_exit();
++
++ return result;
++}
++
++static int lirc_gpio_remove(struct platform_device *pdev) {
++ struct lirc_gpio_dev *gpio_dev = platform_get_drvdata(pdev);
++
++ lirc_gpio_exit();
++
++ kfree(gpio_dev);
++
++ return 0;
++}
++
++MODULE_DEVICE_TABLE(of, lirc_gpio_of_match);
++module_platform_driver(lirc_gpio_driver);
++
++MODULE_DESCRIPTION("Infra-red GPIO receiver and blaster driver.");
++MODULE_AUTHOR("CurlyMo <development@xbian.org>");
++MODULE_AUTHOR("Aron Robert Szabo <aron@reon.hu>");
++MODULE_AUTHOR("Michael Bishop <cleverca22@gmail.com>");
++MODULE_LICENSE("GPL");
++
++module_param(gpio_out_pin, int, S_IRUGO);
++MODULE_PARM_DESC(gpio_out_pin, "GPIO output/transmitter pin number");
++
++module_param(gpio_in_pin, int, S_IRUGO);
++MODULE_PARM_DESC(gpio_in_pin, "GPIO input/receiver pin number.");
++
++module_param(sense, int, S_IRUGO);
++MODULE_PARM_DESC(sense, "Override autodetection of IR receiver circuit"
++ " (0 = active high, 1 = active low )");
++
++module_param(softcarrier, int, S_IRUGO);
++MODULE_PARM_DESC(softcarrier, "Software carrier (0 = off, 1 = on, default on)");
++
+diff -Nur linux-3.14.22.orig/drivers/staging/octeon/ethernet-rgmii.c linux-3.14.22/drivers/staging/octeon/ethernet-rgmii.c
+--- linux-3.14.22.orig/drivers/staging/octeon/ethernet-rgmii.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/staging/octeon/ethernet-rgmii.c 2014-10-22 14:55:53.298220001 -0500
@@ -166,9 +166,8 @@
if (use_global_register_lock)
@@ -209476,9 +207525,9 @@ diff -Nur linux-3.14.17/drivers/staging/octeon/ethernet-rgmii.c linux-imx6-3.14/
if (priv->phydev == NULL) {
/* Tell core. */
-diff -Nur linux-3.14.17/drivers/staging/rtl8821ae/core.c linux-imx6-3.14/drivers/staging/rtl8821ae/core.c
---- linux-3.14.17/drivers/staging/rtl8821ae/core.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/staging/rtl8821ae/core.c 2014-09-11 18:06:08.650064525 +0200
+diff -Nur linux-3.14.22.orig/drivers/staging/rtl8821ae/core.c linux-3.14.22/drivers/staging/rtl8821ae/core.c
+--- linux-3.14.22.orig/drivers/staging/rtl8821ae/core.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/staging/rtl8821ae/core.c 2014-10-22 14:55:53.302220001 -0500
@@ -1414,23 +1414,15 @@
* before switch channle or power save, or tx buffer packet
* maybe send after offchannel or rf sleep, this may cause
@@ -209506,52 +207555,9 @@ diff -Nur linux-3.14.17/drivers/staging/rtl8821ae/core.c linux-imx6-3.14/drivers
const struct ieee80211_ops rtl_ops = {
.start = rtl_op_start,
-diff -Nur linux-3.14.17/drivers/staging/vt6655/bssdb.c linux-imx6-3.14/drivers/staging/vt6655/bssdb.c
---- linux-3.14.17/drivers/staging/vt6655/bssdb.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/staging/vt6655/bssdb.c 2014-09-11 18:06:08.798065116 +0200
-@@ -983,7 +983,7 @@
- pDevice->byERPFlag &= ~(WLAN_SET_ERP_USE_PROTECTION(1));
- }
-
-- if (pDevice->eCommandState == WLAN_ASSOCIATE_WAIT) {
-+ {
- pDevice->byReAssocCount++;
- /* 10 sec timeout */
- if ((pDevice->byReAssocCount > 10) && (!pDevice->bLinkPass)) {
-diff -Nur linux-3.14.17/drivers/staging/vt6655/device_main.c linux-imx6-3.14/drivers/staging/vt6655/device_main.c
---- linux-3.14.17/drivers/staging/vt6655/device_main.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/staging/vt6655/device_main.c 2014-09-11 18:06:08.802065132 +0200
-@@ -2430,7 +2430,6 @@
- int handled = 0;
- unsigned char byData = 0;
- int ii = 0;
-- unsigned long flags;
- // unsigned char byRSSI;
-
- MACvReadISR(pDevice->PortOffset, &pDevice->dwIsr);
-@@ -2456,8 +2455,7 @@
-
- handled = 1;
- MACvIntDisable(pDevice->PortOffset);
--
-- spin_lock_irqsave(&pDevice->lock, flags);
-+ spin_lock_irq(&pDevice->lock);
-
- //Make sure current page is 0
- VNSvInPortB(pDevice->PortOffset + MAC_REG_PAGE1SEL, &byOrgPageSel);
-@@ -2698,8 +2696,7 @@
- MACvSelectPage1(pDevice->PortOffset);
- }
-
-- spin_unlock_irqrestore(&pDevice->lock, flags);
--
-+ spin_unlock_irq(&pDevice->lock);
- MACvIntEnable(pDevice->PortOffset, IMR_MASK_VALUE);
-
- return IRQ_RETVAL(handled);
-diff -Nur linux-3.14.17/drivers/thermal/device_cooling.c linux-imx6-3.14/drivers/thermal/device_cooling.c
---- linux-3.14.17/drivers/thermal/device_cooling.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/thermal/device_cooling.c 2014-09-11 18:06:08.970065802 +0200
+diff -Nur linux-3.14.22.orig/drivers/thermal/device_cooling.c linux-3.14.22/drivers/thermal/device_cooling.c
+--- linux-3.14.22.orig/drivers/thermal/device_cooling.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/thermal/device_cooling.c 2014-10-22 14:55:53.302220001 -0500
@@ -0,0 +1,151 @@
+/*
+ * Copyright (C) 2013 Freescale Semiconductor, Inc.
@@ -209704,9 +207710,9 @@ diff -Nur linux-3.14.17/drivers/thermal/device_cooling.c linux-imx6-3.14/drivers
+ kfree(devfreq_dev);
+}
+EXPORT_SYMBOL_GPL(devfreq_cooling_unregister);
-diff -Nur linux-3.14.17/drivers/thermal/imx_thermal.c linux-imx6-3.14/drivers/thermal/imx_thermal.c
---- linux-3.14.17/drivers/thermal/imx_thermal.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/thermal/imx_thermal.c 2014-09-11 18:06:08.970065802 +0200
+diff -Nur linux-3.14.22.orig/drivers/thermal/imx_thermal.c linux-3.14.22/drivers/thermal/imx_thermal.c
+--- linux-3.14.22.orig/drivers/thermal/imx_thermal.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/thermal/imx_thermal.c 2014-10-22 14:55:53.302220001 -0500
@@ -12,6 +12,7 @@
#include <linux/cpufreq.h>
#include <linux/delay.h>
@@ -209805,9 +207811,9 @@ diff -Nur linux-3.14.17/drivers/thermal/imx_thermal.c linux-imx6-3.14/drivers/th
return 0;
}
-diff -Nur linux-3.14.17/drivers/thermal/Kconfig linux-imx6-3.14/drivers/thermal/Kconfig
---- linux-3.14.17/drivers/thermal/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/thermal/Kconfig 2014-09-11 18:06:08.966065786 +0200
+diff -Nur linux-3.14.22.orig/drivers/thermal/Kconfig linux-3.14.22/drivers/thermal/Kconfig
+--- linux-3.14.22.orig/drivers/thermal/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/thermal/Kconfig 2014-10-22 14:55:53.302220001 -0500
@@ -125,6 +125,13 @@
cpufreq is used as the cooling device to throttle CPUs when the
passive trip is crossed.
@@ -209822,9 +207828,9 @@ diff -Nur linux-3.14.17/drivers/thermal/Kconfig linux-imx6-3.14/drivers/thermal/
config SPEAR_THERMAL
bool "SPEAr thermal sensor driver"
depends on PLAT_SPEAR
-diff -Nur linux-3.14.17/drivers/thermal/Makefile linux-imx6-3.14/drivers/thermal/Makefile
---- linux-3.14.17/drivers/thermal/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/thermal/Makefile 2014-09-11 18:06:08.966065786 +0200
+diff -Nur linux-3.14.22.orig/drivers/thermal/Makefile linux-3.14.22/drivers/thermal/Makefile
+--- linux-3.14.22.orig/drivers/thermal/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/thermal/Makefile 2014-10-22 14:55:53.302220001 -0500
@@ -26,6 +26,7 @@
obj-$(CONFIG_DB8500_THERMAL) += db8500_thermal.o
obj-$(CONFIG_ARMADA_THERMAL) += armada_thermal.o
@@ -209833,9 +207839,9 @@ diff -Nur linux-3.14.17/drivers/thermal/Makefile linux-imx6-3.14/drivers/thermal
obj-$(CONFIG_DB8500_CPUFREQ_COOLING) += db8500_cpufreq_cooling.o
obj-$(CONFIG_INTEL_POWERCLAMP) += intel_powerclamp.o
obj-$(CONFIG_X86_PKG_TEMP_THERMAL) += x86_pkg_temp_thermal.o
-diff -Nur linux-3.14.17/drivers/tty/serial/earlycon.c linux-imx6-3.14/drivers/tty/serial/earlycon.c
---- linux-3.14.17/drivers/tty/serial/earlycon.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/tty/serial/earlycon.c 2014-09-11 18:06:09.002065930 +0200
+diff -Nur linux-3.14.22.orig/drivers/tty/serial/earlycon.c linux-3.14.22/drivers/tty/serial/earlycon.c
+--- linux-3.14.22.orig/drivers/tty/serial/earlycon.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/tty/serial/earlycon.c 2014-10-22 14:55:53.302220001 -0500
@@ -0,0 +1,152 @@
+/*
+ * Copyright (C) 2014 Linaro Ltd.
@@ -209989,9 +207995,9 @@ diff -Nur linux-3.14.17/drivers/tty/serial/earlycon.c linux-imx6-3.14/drivers/tt
+ register_console(early_console_dev.con);
+ return 0;
+}
-diff -Nur linux-3.14.17/drivers/tty/serial/Kconfig linux-imx6-3.14/drivers/tty/serial/Kconfig
---- linux-3.14.17/drivers/tty/serial/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/tty/serial/Kconfig 2014-09-11 18:06:08.994065898 +0200
+diff -Nur linux-3.14.22.orig/drivers/tty/serial/Kconfig linux-3.14.22/drivers/tty/serial/Kconfig
+--- linux-3.14.22.orig/drivers/tty/serial/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/tty/serial/Kconfig 2014-10-22 14:55:53.302220001 -0500
@@ -7,6 +7,13 @@
menu "Serial drivers"
depends on HAS_IOMEM
@@ -210006,9 +208012,9 @@ diff -Nur linux-3.14.17/drivers/tty/serial/Kconfig linux-imx6-3.14/drivers/tty/s
source "drivers/tty/serial/8250/Kconfig"
comment "Non-8250 serial port support"
-diff -Nur linux-3.14.17/drivers/tty/serial/Makefile linux-imx6-3.14/drivers/tty/serial/Makefile
---- linux-3.14.17/drivers/tty/serial/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/tty/serial/Makefile 2014-09-11 18:06:08.994065898 +0200
+diff -Nur linux-3.14.22.orig/drivers/tty/serial/Makefile linux-3.14.22/drivers/tty/serial/Makefile
+--- linux-3.14.22.orig/drivers/tty/serial/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/tty/serial/Makefile 2014-10-22 14:55:53.326220001 -0500
@@ -5,6 +5,8 @@
obj-$(CONFIG_SERIAL_CORE) += serial_core.o
obj-$(CONFIG_SERIAL_21285) += 21285.o
@@ -210018,28 +208024,9 @@ diff -Nur linux-3.14.17/drivers/tty/serial/Makefile linux-imx6-3.14/drivers/tty/
# These Sparc drivers have to appear before others such as 8250
# which share ttySx minor node space. Otherwise console device
# names change and other unplesantries.
-diff -Nur linux-3.14.17/drivers/tty/serial/sunsab.c linux-imx6-3.14/drivers/tty/serial/sunsab.c
---- linux-3.14.17/drivers/tty/serial/sunsab.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/tty/serial/sunsab.c 2014-09-11 18:06:09.018065994 +0200
-@@ -157,15 +157,6 @@
- (up->port.line == up->port.cons->index))
- saw_console_brk = 1;
-
-- if (count == 0) {
-- if (unlikely(stat->sreg.isr1 & SAB82532_ISR1_BRK)) {
-- stat->sreg.isr0 &= ~(SAB82532_ISR0_PERR |
-- SAB82532_ISR0_FERR);
-- up->port.icount.brk++;
-- uart_handle_break(&up->port);
-- }
-- }
--
- for (i = 0; i < count; i++) {
- unsigned char ch = buf[i], flag;
-
-diff -Nur linux-3.14.17/drivers/usb/chipidea/ci.h linux-imx6-3.14/drivers/usb/chipidea/ci.h
---- linux-3.14.17/drivers/usb/chipidea/ci.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/usb/chipidea/ci.h 2014-09-11 18:06:09.078066233 +0200
+diff -Nur linux-3.14.22.orig/drivers/usb/chipidea/ci.h linux-3.14.22/drivers/usb/chipidea/ci.h
+--- linux-3.14.22.orig/drivers/usb/chipidea/ci.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/usb/chipidea/ci.h 2014-10-22 14:55:53.330220001 -0500
@@ -139,8 +139,8 @@
* @roles: array of supported roles for this controller
* @role: current role
@@ -210084,9 +208071,9 @@ diff -Nur linux-3.14.17/drivers/usb/chipidea/ci.h linux-imx6-3.14/drivers/usb/ch
};
static inline struct ci_role_driver *ci_role(struct ci_hdrc *ci)
-diff -Nur linux-3.14.17/drivers/usb/chipidea/ci_hdrc_imx.c linux-imx6-3.14/drivers/usb/chipidea/ci_hdrc_imx.c
---- linux-3.14.17/drivers/usb/chipidea/ci_hdrc_imx.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/usb/chipidea/ci_hdrc_imx.c 2014-09-11 18:06:09.078066233 +0200
+diff -Nur linux-3.14.22.orig/drivers/usb/chipidea/ci_hdrc_imx.c linux-3.14.22/drivers/usb/chipidea/ci_hdrc_imx.c
+--- linux-3.14.22.orig/drivers/usb/chipidea/ci_hdrc_imx.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/usb/chipidea/ci_hdrc_imx.c 2014-10-22 14:55:53.330220001 -0500
@@ -19,11 +19,14 @@
#include <linux/dma-mapping.h>
#include <linux/usb/chipidea.h>
@@ -210344,9 +208331,9 @@ diff -Nur linux-3.14.17/drivers/usb/chipidea/ci_hdrc_imx.c linux-imx6-3.14/drive
},
};
-diff -Nur linux-3.14.17/drivers/usb/chipidea/ci_hdrc_imx.h linux-imx6-3.14/drivers/usb/chipidea/ci_hdrc_imx.h
---- linux-3.14.17/drivers/usb/chipidea/ci_hdrc_imx.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/usb/chipidea/ci_hdrc_imx.h 2014-09-11 18:06:09.078066233 +0200
+diff -Nur linux-3.14.22.orig/drivers/usb/chipidea/ci_hdrc_imx.h linux-3.14.22/drivers/usb/chipidea/ci_hdrc_imx.h
+--- linux-3.14.22.orig/drivers/usb/chipidea/ci_hdrc_imx.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/usb/chipidea/ci_hdrc_imx.h 2014-10-22 14:55:53.330220001 -0500
@@ -1,5 +1,5 @@
/*
- * Copyright 2012 Freescale Semiconductor, Inc.
@@ -210373,9 +208360,9 @@ diff -Nur linux-3.14.17/drivers/usb/chipidea/ci_hdrc_imx.h linux-imx6-3.14/drive
+int imx_usbmisc_set_wakeup(struct imx_usbmisc_data *, bool);
#endif /* __DRIVER_USB_CHIPIDEA_CI_HDRC_IMX_H */
-diff -Nur linux-3.14.17/drivers/usb/chipidea/ci_hdrc_msm.c linux-imx6-3.14/drivers/usb/chipidea/ci_hdrc_msm.c
---- linux-3.14.17/drivers/usb/chipidea/ci_hdrc_msm.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/usb/chipidea/ci_hdrc_msm.c 2014-09-11 18:06:09.078066233 +0200
+diff -Nur linux-3.14.22.orig/drivers/usb/chipidea/ci_hdrc_msm.c linux-3.14.22/drivers/usb/chipidea/ci_hdrc_msm.c
+--- linux-3.14.22.orig/drivers/usb/chipidea/ci_hdrc_msm.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/usb/chipidea/ci_hdrc_msm.c 2014-10-22 14:55:53.330220001 -0500
@@ -17,7 +17,7 @@
#define MSM_USB_BASE (ci->hw_bank.abs)
@@ -210384,8 +208371,8 @@ diff -Nur linux-3.14.17/drivers/usb/chipidea/ci_hdrc_msm.c linux-imx6-3.14/drive
+static int ci_hdrc_msm_notify_event(struct ci_hdrc *ci, unsigned event)
{
struct device *dev = ci->gadget.dev.parent;
- int val;
-@@ -43,6 +43,8 @@
+
+@@ -40,6 +40,8 @@
dev_dbg(dev, "unknown ci_hdrc event\n");
break;
}
@@ -210394,9 +208381,9 @@ diff -Nur linux-3.14.17/drivers/usb/chipidea/ci_hdrc_msm.c linux-imx6-3.14/drive
}
static struct ci_hdrc_platform_data ci_hdrc_msm_platdata = {
-diff -Nur linux-3.14.17/drivers/usb/chipidea/core.c linux-imx6-3.14/drivers/usb/chipidea/core.c
---- linux-3.14.17/drivers/usb/chipidea/core.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/usb/chipidea/core.c 2014-09-11 18:06:09.078066233 +0200
+diff -Nur linux-3.14.22.orig/drivers/usb/chipidea/core.c linux-3.14.22/drivers/usb/chipidea/core.c
+--- linux-3.14.22.orig/drivers/usb/chipidea/core.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/usb/chipidea/core.c 2014-10-22 14:55:53.334220001 -0500
@@ -165,25 +165,30 @@
return hw_read(ci, OP_PORTSC, PORTSC_PTC) >> __ffs(PORTSC_PTC);
}
@@ -210705,9 +208692,9 @@ diff -Nur linux-3.14.17/drivers/usb/chipidea/core.c linux-imx6-3.14/drivers/usb/
},
};
-diff -Nur linux-3.14.17/drivers/usb/chipidea/host.c linux-imx6-3.14/drivers/usb/chipidea/host.c
---- linux-3.14.17/drivers/usb/chipidea/host.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/usb/chipidea/host.c 2014-09-11 18:06:09.078066233 +0200
+diff -Nur linux-3.14.22.orig/drivers/usb/chipidea/host.c linux-3.14.22/drivers/usb/chipidea/host.c
+--- linux-3.14.22.orig/drivers/usb/chipidea/host.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/usb/chipidea/host.c 2014-10-22 14:55:53.334220001 -0500
@@ -33,6 +33,176 @@
#include "host.h"
@@ -210909,9 +208896,9 @@ diff -Nur linux-3.14.17/drivers/usb/chipidea/host.c linux-imx6-3.14/drivers/usb/
+
return 0;
}
-diff -Nur linux-3.14.17/drivers/usb/chipidea/otg.c linux-imx6-3.14/drivers/usb/chipidea/otg.c
---- linux-3.14.17/drivers/usb/chipidea/otg.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/usb/chipidea/otg.c 2014-09-11 18:06:09.078066233 +0200
+diff -Nur linux-3.14.22.orig/drivers/usb/chipidea/otg.c linux-3.14.22/drivers/usb/chipidea/otg.c
+--- linux-3.14.22.orig/drivers/usb/chipidea/otg.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/usb/chipidea/otg.c 2014-10-22 14:55:53.334220001 -0500
@@ -18,6 +18,8 @@
#include <linux/usb/otg.h>
#include <linux/usb/gadget.h>
@@ -211010,9 +208997,9 @@ diff -Nur linux-3.14.17/drivers/usb/chipidea/otg.c linux-imx6-3.14/drivers/usb/c
ci_disable_otg_interrupt(ci, OTGSC_INT_EN_BITS);
ci_clear_otg_interrupt(ci, OTGSC_INT_STATUS_BITS);
}
-diff -Nur linux-3.14.17/drivers/usb/chipidea/udc.c linux-imx6-3.14/drivers/usb/chipidea/udc.c
---- linux-3.14.17/drivers/usb/chipidea/udc.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/usb/chipidea/udc.c 2014-09-11 18:06:09.134066455 +0200
+diff -Nur linux-3.14.22.orig/drivers/usb/chipidea/udc.c linux-3.14.22/drivers/usb/chipidea/udc.c
+--- linux-3.14.22.orig/drivers/usb/chipidea/udc.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/usb/chipidea/udc.c 2014-10-22 14:55:53.334220001 -0500
@@ -681,12 +681,6 @@
struct ci_hdrc *ci = container_of(gadget, struct ci_hdrc, gadget);
unsigned long flags;
@@ -211105,9 +209092,9 @@ diff -Nur linux-3.14.17/drivers/usb/chipidea/udc.c linux-imx6-3.14/drivers/usb/c
if (!ci->remote_wakeup) {
ret = -EOPNOTSUPP;
goto out;
-diff -Nur linux-3.14.17/drivers/usb/chipidea/usbmisc_imx.c linux-imx6-3.14/drivers/usb/chipidea/usbmisc_imx.c
---- linux-3.14.17/drivers/usb/chipidea/usbmisc_imx.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/usb/chipidea/usbmisc_imx.c 2014-09-11 18:06:09.134066455 +0200
+diff -Nur linux-3.14.22.orig/drivers/usb/chipidea/usbmisc_imx.c linux-3.14.22/drivers/usb/chipidea/usbmisc_imx.c
+--- linux-3.14.22.orig/drivers/usb/chipidea/usbmisc_imx.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/usb/chipidea/usbmisc_imx.c 2014-10-22 14:55:53.338220001 -0500
@@ -1,5 +1,5 @@
/*
- * Copyright 2012 Freescale Semiconductor, Inc.
@@ -211282,10 +209269,10 @@ diff -Nur linux-3.14.17/drivers/usb/chipidea/usbmisc_imx.c linux-imx6-3.14/drive
usbmisc = NULL;
return 0;
}
-diff -Nur linux-3.14.17/drivers/usb/core/hub.c linux-imx6-3.14/drivers/usb/core/hub.c
---- linux-3.14.17/drivers/usb/core/hub.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/usb/core/hub.c 2014-09-11 18:06:09.138066472 +0200
-@@ -3867,6 +3867,12 @@
+diff -Nur linux-3.14.22.orig/drivers/usb/core/hub.c linux-3.14.22/drivers/usb/core/hub.c
+--- linux-3.14.22.orig/drivers/usb/core/hub.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/usb/core/hub.c 2014-10-22 14:55:53.338220001 -0500
+@@ -3916,6 +3916,12 @@
void usb_enable_ltm(struct usb_device *udev) { }
EXPORT_SYMBOL_GPL(usb_enable_ltm);
@@ -211298,7 +209285,7 @@ diff -Nur linux-3.14.17/drivers/usb/core/hub.c linux-imx6-3.14/drivers/usb/core/
#endif /* CONFIG_PM */
-@@ -4460,8 +4466,7 @@
+@@ -4509,8 +4515,7 @@
/* Disconnect any existing devices under this port */
if (udev) {
@@ -211308,9 +209295,9 @@ diff -Nur linux-3.14.17/drivers/usb/core/hub.c linux-imx6-3.14/drivers/usb/core/
usb_phy_notify_disconnect(hcd->phy, udev->speed);
usb_disconnect(&hub->ports[port1 - 1]->child);
}
-diff -Nur linux-3.14.17/drivers/usb/core/message.c linux-imx6-3.14/drivers/usb/core/message.c
---- linux-3.14.17/drivers/usb/core/message.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/usb/core/message.c 2014-09-11 18:06:09.138066472 +0200
+diff -Nur linux-3.14.22.orig/drivers/usb/core/message.c linux-3.14.22/drivers/usb/core/message.c
+--- linux-3.14.22.orig/drivers/usb/core/message.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/usb/core/message.c 2014-10-22 14:55:53.390220001 -0500
@@ -178,7 +178,7 @@
*
* Return:
@@ -211320,9 +209307,9 @@ diff -Nur linux-3.14.17/drivers/usb/core/message.c linux-imx6-3.14/drivers/usb/c
*/
int usb_interrupt_msg(struct usb_device *usb_dev, unsigned int pipe,
void *data, int len, int *actual_length, int timeout)
-diff -Nur linux-3.14.17/drivers/usb/core/urb.c linux-imx6-3.14/drivers/usb/core/urb.c
---- linux-3.14.17/drivers/usb/core/urb.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/usb/core/urb.c 2014-09-11 18:06:09.142066489 +0200
+diff -Nur linux-3.14.22.orig/drivers/usb/core/urb.c linux-3.14.22/drivers/usb/core/urb.c
+--- linux-3.14.22.orig/drivers/usb/core/urb.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/usb/core/urb.c 2014-10-22 14:55:53.390220001 -0500
@@ -831,7 +831,7 @@
*
* this allows all outstanding URBs to be unlinked starting
@@ -211332,9 +209319,9 @@ diff -Nur linux-3.14.17/drivers/usb/core/urb.c linux-imx6-3.14/drivers/usb/core/
* function has returned.
*
* This routine should not be called by a driver after its disconnect
-diff -Nur linux-3.14.17/drivers/usb/gadget/f_mass_storage.c linux-imx6-3.14/drivers/usb/gadget/f_mass_storage.c
---- linux-3.14.17/drivers/usb/gadget/f_mass_storage.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/usb/gadget/f_mass_storage.c 2014-09-11 18:06:09.154066537 +0200
+diff -Nur linux-3.14.22.orig/drivers/usb/gadget/f_mass_storage.c linux-3.14.22/drivers/usb/gadget/f_mass_storage.c
+--- linux-3.14.22.orig/drivers/usb/gadget/f_mass_storage.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/usb/gadget/f_mass_storage.c 2014-10-22 14:55:53.394220001 -0500
@@ -336,8 +336,15 @@
struct usb_ep *bulk_in;
@@ -211456,9 +209443,9 @@ diff -Nur linux-3.14.17/drivers/usb/gadget/f_mass_storage.c linux-imx6-3.14/driv
}
static inline struct fsg_lun_opts *to_fsg_lun_opts(struct config_item *item)
-diff -Nur linux-3.14.17/drivers/usb/gadget/fsl_updater.c linux-imx6-3.14/drivers/usb/gadget/fsl_updater.c
---- linux-3.14.17/drivers/usb/gadget/fsl_updater.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/usb/gadget/fsl_updater.c 2014-09-11 18:06:09.158066553 +0200
+diff -Nur linux-3.14.22.orig/drivers/usb/gadget/fsl_updater.c linux-3.14.22/drivers/usb/gadget/fsl_updater.c
+--- linux-3.14.22.orig/drivers/usb/gadget/fsl_updater.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/usb/gadget/fsl_updater.c 2014-10-22 14:55:53.394220001 -0500
@@ -0,0 +1,594 @@
+/*
+ * Freescale UUT driver
@@ -212054,9 +210041,9 @@ diff -Nur linux-3.14.17/drivers/usb/gadget/fsl_updater.c linux-imx6-3.14/drivers
+ utp_send_status(fsg);
+ return -1;
+}
-diff -Nur linux-3.14.17/drivers/usb/gadget/fsl_updater.h linux-imx6-3.14/drivers/usb/gadget/fsl_updater.h
---- linux-3.14.17/drivers/usb/gadget/fsl_updater.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/usb/gadget/fsl_updater.h 2014-09-11 18:06:09.158066553 +0200
+diff -Nur linux-3.14.22.orig/drivers/usb/gadget/fsl_updater.h linux-3.14.22/drivers/usb/gadget/fsl_updater.h
+--- linux-3.14.22.orig/drivers/usb/gadget/fsl_updater.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/usb/gadget/fsl_updater.h 2014-10-22 14:55:53.398220001 -0500
@@ -0,0 +1,150 @@
+/*
+ * Freescale UUT driver
@@ -212208,9 +210195,9 @@ diff -Nur linux-3.14.17/drivers/usb/gadget/fsl_updater.h linux-imx6-3.14/drivers
+
+#endif /* __FSL_UPDATER_H */
+
-diff -Nur linux-3.14.17/drivers/usb/gadget/Kconfig linux-imx6-3.14/drivers/usb/gadget/Kconfig
---- linux-3.14.17/drivers/usb/gadget/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/usb/gadget/Kconfig 2014-09-11 18:06:09.146066506 +0200
+diff -Nur linux-3.14.22.orig/drivers/usb/gadget/Kconfig linux-3.14.22/drivers/usb/gadget/Kconfig
+--- linux-3.14.22.orig/drivers/usb/gadget/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/usb/gadget/Kconfig 2014-10-22 14:55:53.398220001 -0500
@@ -952,6 +952,12 @@
Say "y" to link the driver statically, or "m" to build
a dynamically linked module called "g_mass_storage".
@@ -212224,9 +210211,9 @@ diff -Nur linux-3.14.17/drivers/usb/gadget/Kconfig linux-imx6-3.14/drivers/usb/g
config USB_GADGET_TARGET
tristate "USB Gadget Target Fabric Module"
depends on TARGET_CORE
-diff -Nur linux-3.14.17/drivers/usb/gadget/mass_storage.c linux-imx6-3.14/drivers/usb/gadget/mass_storage.c
---- linux-3.14.17/drivers/usb/gadget/mass_storage.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/usb/gadget/mass_storage.c 2014-09-11 18:06:09.162066569 +0200
+diff -Nur linux-3.14.22.orig/drivers/usb/gadget/mass_storage.c linux-3.14.22/drivers/usb/gadget/mass_storage.c
+--- linux-3.14.22.orig/drivers/usb/gadget/mass_storage.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/usb/gadget/mass_storage.c 2014-10-22 14:55:53.398220001 -0500
@@ -266,7 +266,7 @@
{
return usb_composite_probe(&msg_driver);
@@ -212236,9 +210223,9 @@ diff -Nur linux-3.14.17/drivers/usb/gadget/mass_storage.c linux-imx6-3.14/driver
static void msg_cleanup(void)
{
-diff -Nur linux-3.14.17/drivers/usb/host/ehci-h20ahb.c linux-imx6-3.14/drivers/usb/host/ehci-h20ahb.c
---- linux-3.14.17/drivers/usb/host/ehci-h20ahb.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/usb/host/ehci-h20ahb.c 2014-09-11 18:06:09.170066601 +0200
+diff -Nur linux-3.14.22.orig/drivers/usb/host/ehci-h20ahb.c linux-3.14.22/drivers/usb/host/ehci-h20ahb.c
+--- linux-3.14.22.orig/drivers/usb/host/ehci-h20ahb.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/usb/host/ehci-h20ahb.c 2014-10-22 14:55:53.398220001 -0500
@@ -0,0 +1,341 @@
+/*
+ * Copyright (C) 2007-2013 Texas Instruments, Inc.
@@ -212581,9 +210568,9 @@ diff -Nur linux-3.14.17/drivers/usb/host/ehci-h20ahb.c linux-imx6-3.14/drivers/u
+
+MODULE_DESCRIPTION(DRIVER_DESC);
+MODULE_LICENSE("GPL");
-diff -Nur linux-3.14.17/drivers/usb/host/ehci-hcd.c linux-imx6-3.14/drivers/usb/host/ehci-hcd.c
---- linux-3.14.17/drivers/usb/host/ehci-hcd.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/usb/host/ehci-hcd.c 2014-09-11 18:06:09.174066617 +0200
+diff -Nur linux-3.14.22.orig/drivers/usb/host/ehci-hcd.c linux-3.14.22/drivers/usb/host/ehci-hcd.c
+--- linux-3.14.22.orig/drivers/usb/host/ehci-hcd.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/usb/host/ehci-hcd.c 2014-10-22 14:55:53.398220001 -0500
@@ -590,11 +590,16 @@
*/
hcc_params = ehci_readl(ehci, &ehci->caps->hcc_params);
@@ -212604,9 +210591,9 @@ diff -Nur linux-3.14.17/drivers/usb/host/ehci-hcd.c linux-imx6-3.14/drivers/usb/
#endif
}
-diff -Nur linux-3.14.17/drivers/usb/host/ehci-hub.c linux-imx6-3.14/drivers/usb/host/ehci-hub.c
---- linux-3.14.17/drivers/usb/host/ehci-hub.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/usb/host/ehci-hub.c 2014-09-11 18:06:09.174066617 +0200
+diff -Nur linux-3.14.22.orig/drivers/usb/host/ehci-hub.c linux-3.14.22/drivers/usb/host/ehci-hub.c
+--- linux-3.14.22.orig/drivers/usb/host/ehci-hub.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/usb/host/ehci-hub.c 2014-10-22 14:55:53.402220001 -0500
@@ -313,6 +313,15 @@
USB_PORT_STAT_HIGH_SPEED)
fs_idle_delay = true;
@@ -212623,9 +210610,9 @@ diff -Nur linux-3.14.17/drivers/usb/host/ehci-hub.c linux-imx6-3.14/drivers/usb/
changed = 1;
}
}
-diff -Nur linux-3.14.17/drivers/usb/host/Kconfig linux-imx6-3.14/drivers/usb/host/Kconfig
---- linux-3.14.17/drivers/usb/host/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/usb/host/Kconfig 2014-09-11 18:06:09.170066601 +0200
+diff -Nur linux-3.14.22.orig/drivers/usb/host/Kconfig linux-3.14.22/drivers/usb/host/Kconfig
+--- linux-3.14.22.orig/drivers/usb/host/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/usb/host/Kconfig 2014-10-22 14:55:53.402220001 -0500
@@ -158,6 +158,13 @@
Enables support for the on-chip EHCI controller on
ST SPEAr chips.
@@ -212640,9 +210627,9 @@ diff -Nur linux-3.14.17/drivers/usb/host/Kconfig linux-imx6-3.14/drivers/usb/hos
config USB_EHCI_HCD_AT91
tristate "Support for Atmel on-chip EHCI USB controller"
depends on USB_EHCI_HCD && ARCH_AT91
-diff -Nur linux-3.14.17/drivers/usb/host/Makefile linux-imx6-3.14/drivers/usb/host/Makefile
---- linux-3.14.17/drivers/usb/host/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/usb/host/Makefile 2014-09-11 18:06:09.170066601 +0200
+diff -Nur linux-3.14.22.orig/drivers/usb/host/Makefile linux-3.14.22/drivers/usb/host/Makefile
+--- linux-3.14.22.orig/drivers/usb/host/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/usb/host/Makefile 2014-10-22 14:55:53.402220001 -0500
@@ -33,6 +33,8 @@
obj-$(CONFIG_USB_EHCI_HCD_ORION) += ehci-orion.o
obj-$(CONFIG_USB_EHCI_HCD_SPEAR) += ehci-spear.o
@@ -212652,9 +210639,9 @@ diff -Nur linux-3.14.17/drivers/usb/host/Makefile linux-imx6-3.14/drivers/usb/ho
obj-$(CONFIG_USB_EHCI_HCD_AT91) += ehci-atmel.o
obj-$(CONFIG_USB_EHCI_MSM) += ehci-msm.o
obj-$(CONFIG_USB_EHCI_TEGRA) += ehci-tegra.o
-diff -Nur linux-3.14.17/drivers/usb/phy/Kconfig linux-imx6-3.14/drivers/usb/phy/Kconfig
---- linux-3.14.17/drivers/usb/phy/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/usb/phy/Kconfig 2014-09-11 18:06:09.250066921 +0200
+diff -Nur linux-3.14.22.orig/drivers/usb/phy/Kconfig linux-3.14.22/drivers/usb/phy/Kconfig
+--- linux-3.14.22.orig/drivers/usb/phy/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/usb/phy/Kconfig 2014-10-22 14:55:53.402220001 -0500
@@ -253,7 +253,7 @@
config USB_ULPI
@@ -212664,9 +210651,9 @@ diff -Nur linux-3.14.17/drivers/usb/phy/Kconfig linux-imx6-3.14/drivers/usb/phy/
help
Enable this to support ULPI connected USB OTG transceivers which
are likely found on embedded boards.
-diff -Nur linux-3.14.17/drivers/usb/phy/phy-mxs-usb.c linux-imx6-3.14/drivers/usb/phy/phy-mxs-usb.c
---- linux-3.14.17/drivers/usb/phy/phy-mxs-usb.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/usb/phy/phy-mxs-usb.c 2014-09-11 18:06:09.254066936 +0200
+diff -Nur linux-3.14.22.orig/drivers/usb/phy/phy-mxs-usb.c linux-3.14.22/drivers/usb/phy/phy-mxs-usb.c
+--- linux-3.14.22.orig/drivers/usb/phy/phy-mxs-usb.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/usb/phy/phy-mxs-usb.c 2014-10-22 14:55:53.402220001 -0500
@@ -1,5 +1,5 @@
/*
- * Copyright 2012 Freescale Semiconductor, Inc.
@@ -213199,9 +211186,9 @@ diff -Nur linux-3.14.17/drivers/usb/phy/phy-mxs-usb.c linux-imx6-3.14/drivers/us
},
};
-diff -Nur linux-3.14.17/drivers/usb/phy/phy-ulpi.c linux-imx6-3.14/drivers/usb/phy/phy-ulpi.c
---- linux-3.14.17/drivers/usb/phy/phy-ulpi.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/usb/phy/phy-ulpi.c 2014-09-11 18:06:09.254066936 +0200
+diff -Nur linux-3.14.22.orig/drivers/usb/phy/phy-ulpi.c linux-3.14.22/drivers/usb/phy/phy-ulpi.c
+--- linux-3.14.22.orig/drivers/usb/phy/phy-ulpi.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/usb/phy/phy-ulpi.c 2014-10-22 14:55:53.406220001 -0500
@@ -48,6 +48,7 @@
ULPI_INFO(ULPI_ID(0x04cc, 0x1504), "NXP ISP1504"),
ULPI_INFO(ULPI_ID(0x0424, 0x0006), "SMSC USB331x"),
@@ -213210,21 +211197,9 @@ diff -Nur linux-3.14.17/drivers/usb/phy/phy-ulpi.c linux-imx6-3.14/drivers/usb/p
ULPI_INFO(ULPI_ID(0x0451, 0x1507), "TI TUSB1210"),
};
-diff -Nur linux-3.14.17/drivers/usb/serial/option.c linux-imx6-3.14/drivers/usb/serial/option.c
---- linux-3.14.17/drivers/usb/serial/option.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/usb/serial/option.c 2014-09-11 18:06:09.274067016 +0200
-@@ -1917,6 +1917,8 @@
- dev_dbg(dev, "%s: type %x req %x\n", __func__,
- req_pkt->bRequestType, req_pkt->bRequest);
- }
-+ } else if (status == -ENOENT || status == -ESHUTDOWN) {
-+ dev_dbg(dev, "%s: urb stopped: %d\n", __func__, status);
- } else
- dev_err(dev, "%s: error %d\n", __func__, status);
-
-diff -Nur linux-3.14.17/drivers/video/amba-clcd.c linux-imx6-3.14/drivers/video/amba-clcd.c
---- linux-3.14.17/drivers/video/amba-clcd.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/video/amba-clcd.c 2014-09-11 18:06:09.354067336 +0200
+diff -Nur linux-3.14.22.orig/drivers/video/amba-clcd.c linux-3.14.22/drivers/video/amba-clcd.c
+--- linux-3.14.22.orig/drivers/video/amba-clcd.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/video/amba-clcd.c 2014-10-22 14:55:56.614220001 -0500
@@ -17,7 +17,10 @@
#include <linux/string.h>
#include <linux/slab.h>
@@ -213570,9 +211545,9 @@ diff -Nur linux-3.14.17/drivers/video/amba-clcd.c linux-imx6-3.14/drivers/video/
ret = dma_set_mask_and_coherent(&dev->dev, DMA_BIT_MASK(32));
if (ret)
-diff -Nur linux-3.14.17/drivers/video/arm-hdlcd.c linux-imx6-3.14/drivers/video/arm-hdlcd.c
---- linux-3.14.17/drivers/video/arm-hdlcd.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/video/arm-hdlcd.c 2014-09-11 18:06:09.354067336 +0200
+diff -Nur linux-3.14.22.orig/drivers/video/arm-hdlcd.c linux-3.14.22/drivers/video/arm-hdlcd.c
+--- linux-3.14.22.orig/drivers/video/arm-hdlcd.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/video/arm-hdlcd.c 2014-10-22 14:55:56.638220001 -0500
@@ -0,0 +1,844 @@
+/*
+ * drivers/video/arm-hdlcd.c
@@ -214418,9 +212393,9 @@ diff -Nur linux-3.14.17/drivers/video/arm-hdlcd.c linux-imx6-3.14/drivers/video/
+MODULE_AUTHOR("Liviu Dudau");
+MODULE_DESCRIPTION("ARM HDLCD core driver");
+MODULE_LICENSE("GPL v2");
-diff -Nur linux-3.14.17/drivers/video/backlight/backlight.c linux-imx6-3.14/drivers/video/backlight/backlight.c
---- linux-3.14.17/drivers/video/backlight/backlight.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/video/backlight/backlight.c 2014-09-11 18:06:09.362067367 +0200
+diff -Nur linux-3.14.22.orig/drivers/video/backlight/backlight.c linux-3.14.22/drivers/video/backlight/backlight.c
+--- linux-3.14.22.orig/drivers/video/backlight/backlight.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/video/backlight/backlight.c 2014-10-22 14:55:56.638220001 -0500
@@ -41,6 +41,8 @@
{
struct backlight_device *bd;
@@ -214461,9 +212436,9 @@ diff -Nur linux-3.14.17/drivers/video/backlight/backlight.c linux-imx6-3.14/driv
}
mutex_unlock(&bd->ops_lock);
return 0;
-diff -Nur linux-3.14.17/drivers/video/Kconfig linux-imx6-3.14/drivers/video/Kconfig
---- linux-3.14.17/drivers/video/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/video/Kconfig 2014-09-11 18:06:09.354067336 +0200
+diff -Nur linux-3.14.22.orig/drivers/video/Kconfig linux-3.14.22/drivers/video/Kconfig
+--- linux-3.14.22.orig/drivers/video/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/video/Kconfig 2014-10-22 14:55:56.638220001 -0500
@@ -39,6 +39,11 @@
config HDMI
bool
@@ -214509,9 +212484,9 @@ diff -Nur linux-3.14.17/drivers/video/Kconfig linux-imx6-3.14/drivers/video/Kcon
if VT
source "drivers/video/console/Kconfig"
endif
-diff -Nur linux-3.14.17/drivers/video/Makefile linux-imx6-3.14/drivers/video/Makefile
---- linux-3.14.17/drivers/video/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/video/Makefile 2014-09-11 18:06:09.354067336 +0200
+diff -Nur linux-3.14.22.orig/drivers/video/Makefile linux-3.14.22/drivers/video/Makefile
+--- linux-3.14.22.orig/drivers/video/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/video/Makefile 2014-10-22 14:55:56.638220001 -0500
@@ -53,6 +53,7 @@
obj-$(CONFIG_FB_SAVAGE) += savage/
obj-$(CONFIG_FB_GEODE) += geode/
@@ -214535,9 +212510,9 @@ diff -Nur linux-3.14.17/drivers/video/Makefile linux-imx6-3.14/drivers/video/Mak
+
+# platform specific output drivers
+obj-$(CONFIG_VEXPRESS_DVI_CONTROL) += vexpress-dvi.o
-diff -Nur linux-3.14.17/drivers/video/mxc/Kconfig linux-imx6-3.14/drivers/video/mxc/Kconfig
---- linux-3.14.17/drivers/video/mxc/Kconfig 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/video/mxc/Kconfig 2014-09-11 18:06:09.534068054 +0200
+diff -Nur linux-3.14.22.orig/drivers/video/mxc/Kconfig linux-3.14.22/drivers/video/mxc/Kconfig
+--- linux-3.14.22.orig/drivers/video/mxc/Kconfig 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/video/mxc/Kconfig 2014-10-22 14:55:56.638220001 -0500
@@ -0,0 +1,48 @@
+config FB_MXC
+ tristate "MXC Framebuffer support"
@@ -214587,9 +212562,9 @@ diff -Nur linux-3.14.17/drivers/video/mxc/Kconfig linux-imx6-3.14/drivers/video/
+ depends on FB_MXC && I2C
+ tristate "MXC EDID support"
+ default y
-diff -Nur linux-3.14.17/drivers/video/mxc/ldb.c linux-imx6-3.14/drivers/video/mxc/ldb.c
---- linux-3.14.17/drivers/video/mxc/ldb.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/video/mxc/ldb.c 2014-09-11 18:06:09.534068054 +0200
+diff -Nur linux-3.14.22.orig/drivers/video/mxc/ldb.c linux-3.14.22/drivers/video/mxc/ldb.c
+--- linux-3.14.22.orig/drivers/video/mxc/ldb.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/video/mxc/ldb.c 2014-10-22 14:55:56.642220001 -0500
@@ -0,0 +1,1036 @@
+/*
+ * Copyright (C) 2012-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -215627,9 +213602,9 @@ diff -Nur linux-3.14.17/drivers/video/mxc/ldb.c linux-imx6-3.14/drivers/video/mx
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("MXC LDB driver");
+MODULE_LICENSE("GPL");
-diff -Nur linux-3.14.17/drivers/video/mxc/Makefile linux-imx6-3.14/drivers/video/mxc/Makefile
---- linux-3.14.17/drivers/video/mxc/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/video/mxc/Makefile 2014-09-11 18:06:09.534068054 +0200
+diff -Nur linux-3.14.22.orig/drivers/video/mxc/Makefile linux-3.14.22/drivers/video/mxc/Makefile
+--- linux-3.14.22.orig/drivers/video/mxc/Makefile 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/video/mxc/Makefile 2014-10-22 14:55:56.642220001 -0500
@@ -0,0 +1,6 @@
+obj-$(CONFIG_FB_MXC_LDB) += ldb.o
+obj-$(CONFIG_FB_MXC_MIPI_DSI) += mipi_dsi.o
@@ -215637,9 +213612,9 @@ diff -Nur linux-3.14.17/drivers/video/mxc/Makefile linux-imx6-3.14/drivers/video
+obj-$(CONFIG_FB_MXC_HDMI) += mxc_hdmi.o
+obj-$(CONFIG_FB_MXC_EDID) += mxc_edid.o
+obj-$(CONFIG_FB_MXC_SYNC_PANEL) += mxc_dispdrv.o mxc_lcdif.o mxc_ipuv3_fb.o
-diff -Nur linux-3.14.17/drivers/video/mxc/mipi_dsi.c linux-imx6-3.14/drivers/video/mxc/mipi_dsi.c
---- linux-3.14.17/drivers/video/mxc/mipi_dsi.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/video/mxc/mipi_dsi.c 2014-09-11 18:06:09.534068054 +0200
+diff -Nur linux-3.14.22.orig/drivers/video/mxc/mipi_dsi.c linux-3.14.22/drivers/video/mxc/mipi_dsi.c
+--- linux-3.14.22.orig/drivers/video/mxc/mipi_dsi.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/video/mxc/mipi_dsi.c 2014-10-22 14:55:56.642220001 -0500
@@ -0,0 +1,953 @@
+/*
+ * Copyright (C) 2011-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -216594,9 +214569,9 @@ diff -Nur linux-3.14.17/drivers/video/mxc/mipi_dsi.c linux-imx6-3.14/drivers/vid
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("i.MX MIPI DSI driver");
+MODULE_LICENSE("GPL");
-diff -Nur linux-3.14.17/drivers/video/mxc/mipi_dsi.h linux-imx6-3.14/drivers/video/mxc/mipi_dsi.h
---- linux-3.14.17/drivers/video/mxc/mipi_dsi.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/video/mxc/mipi_dsi.h 2014-09-11 18:06:09.534068054 +0200
+diff -Nur linux-3.14.22.orig/drivers/video/mxc/mipi_dsi.h linux-3.14.22/drivers/video/mxc/mipi_dsi.h
+--- linux-3.14.22.orig/drivers/video/mxc/mipi_dsi.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/video/mxc/mipi_dsi.h 2014-10-22 14:55:56.646220001 -0500
@@ -0,0 +1,112 @@
+/*
+ * Copyright (C) 2011-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -216710,9 +214685,9 @@ diff -Nur linux-3.14.17/drivers/video/mxc/mipi_dsi.h linux-imx6-3.14/drivers/vid
+#endif
+
+#endif
-diff -Nur linux-3.14.17/drivers/video/mxc/mxc_dispdrv.c linux-imx6-3.14/drivers/video/mxc/mxc_dispdrv.c
---- linux-3.14.17/drivers/video/mxc/mxc_dispdrv.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/video/mxc/mxc_dispdrv.c 2014-09-11 18:06:09.534068054 +0200
+diff -Nur linux-3.14.22.orig/drivers/video/mxc/mxc_dispdrv.c linux-3.14.22/drivers/video/mxc/mxc_dispdrv.c
+--- linux-3.14.22.orig/drivers/video/mxc/mxc_dispdrv.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/video/mxc/mxc_dispdrv.c 2014-10-22 14:55:56.646220001 -0500
@@ -0,0 +1,150 @@
+/*
+ * Copyright (C) 2011-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -216864,9 +214839,9 @@ diff -Nur linux-3.14.17/drivers/video/mxc/mxc_dispdrv.c linux-imx6-3.14/drivers/
+ return ERR_PTR(-EINVAL);
+}
+EXPORT_SYMBOL_GPL(mxc_dispdrv_getdata);
-diff -Nur linux-3.14.17/drivers/video/mxc/mxc_dispdrv.h linux-imx6-3.14/drivers/video/mxc/mxc_dispdrv.h
---- linux-3.14.17/drivers/video/mxc/mxc_dispdrv.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/video/mxc/mxc_dispdrv.h 2014-09-11 18:06:09.534068054 +0200
+diff -Nur linux-3.14.22.orig/drivers/video/mxc/mxc_dispdrv.h linux-3.14.22/drivers/video/mxc/mxc_dispdrv.h
+--- linux-3.14.22.orig/drivers/video/mxc/mxc_dispdrv.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/video/mxc/mxc_dispdrv.h 2014-10-22 14:55:56.646220001 -0500
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2011-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -216922,9 +214897,9 @@ diff -Nur linux-3.14.17/drivers/video/mxc/mxc_dispdrv.h linux-imx6-3.14/drivers/
+int mxc_dispdrv_setdata(struct mxc_dispdrv_handle *handle, void *data);
+void *mxc_dispdrv_getdata(struct mxc_dispdrv_handle *handle);
+#endif
-diff -Nur linux-3.14.17/drivers/video/mxc/mxc_edid.c linux-imx6-3.14/drivers/video/mxc/mxc_edid.c
---- linux-3.14.17/drivers/video/mxc/mxc_edid.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/video/mxc/mxc_edid.c 2014-09-11 18:06:09.534068054 +0200
+diff -Nur linux-3.14.22.orig/drivers/video/mxc/mxc_edid.c linux-3.14.22/drivers/video/mxc/mxc_edid.c
+--- linux-3.14.22.orig/drivers/video/mxc/mxc_edid.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/video/mxc/mxc_edid.c 2014-10-22 14:55:56.646220001 -0500
@@ -0,0 +1,762 @@
+/*
+ * Copyright 2009-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -217688,9 +215663,9 @@ diff -Nur linux-3.14.17/drivers/video/mxc/mxc_edid.c linux-imx6-3.14/drivers/vid
+}
+EXPORT_SYMBOL(mxc_edid_read);
+
-diff -Nur linux-3.14.17/drivers/video/mxc/mxcfb_hx8369_wvga.c linux-imx6-3.14/drivers/video/mxc/mxcfb_hx8369_wvga.c
---- linux-3.14.17/drivers/video/mxc/mxcfb_hx8369_wvga.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/video/mxc/mxcfb_hx8369_wvga.c 2014-09-11 18:06:09.534068054 +0200
+diff -Nur linux-3.14.22.orig/drivers/video/mxc/mxcfb_hx8369_wvga.c linux-3.14.22/drivers/video/mxc/mxcfb_hx8369_wvga.c
+--- linux-3.14.22.orig/drivers/video/mxc/mxcfb_hx8369_wvga.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/video/mxc/mxcfb_hx8369_wvga.c 2014-10-22 14:55:56.646220001 -0500
@@ -0,0 +1,449 @@
+/*
+ * Copyright (C) 2011-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -218141,10 +216116,10 @@ diff -Nur linux-3.14.17/drivers/video/mxc/mxcfb_hx8369_wvga.c linux-imx6-3.14/dr
+ mipid_bl_update_status(bl);
+ return 0;
+}
-diff -Nur linux-3.14.17/drivers/video/mxc/mxc_hdmi.c linux-imx6-3.14/drivers/video/mxc/mxc_hdmi.c
---- linux-3.14.17/drivers/video/mxc/mxc_hdmi.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/video/mxc/mxc_hdmi.c 2014-09-11 18:06:09.534068054 +0200
-@@ -0,0 +1,3022 @@
+diff -Nur linux-3.14.22.orig/drivers/video/mxc/mxc_hdmi.c linux-3.14.22/drivers/video/mxc/mxc_hdmi.c
+--- linux-3.14.22.orig/drivers/video/mxc/mxc_hdmi.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/video/mxc/mxc_hdmi.c 2014-10-22 14:55:56.650220001 -0500
+@@ -0,0 +1,3042 @@
+/*
+ * Copyright (C) 2011-2014 Freescale Semiconductor, Inc.
+ *
@@ -218640,8 +216615,10 @@ diff -Nur linux-3.14.17/drivers/video/mxc/mxc_hdmi.c linux-imx6-3.14/drivers/vid
+
+static int isColorSpaceConversion(struct mxc_hdmi *hdmi)
+{
-+ return (hdmi->hdmi_data.enc_in_format !=
-+ hdmi->hdmi_data.enc_out_format);
++ return (hdmi->hdmi_data.enc_in_format != hdmi->hdmi_data.enc_out_format) ||
++ (hdmi->hdmi_data.enc_out_format == RGB &&
++ ((hdmi->hdmi_data.rgb_quant_range == HDMI_FC_AVICONF2_RGB_QUANT_LIMITED_RANGE) ||
++ (hdmi->hdmi_data.rgb_quant_range == HDMI_FC_AVICONF2_RGB_QUANT_DEFAULT && hdmi->vic > 1)));
+}
+
+static int isColorSpaceDecimation(struct mxc_hdmi *hdmi)
@@ -218670,7 +216647,25 @@ diff -Nur linux-3.14.17/drivers/video/mxc/mxc_hdmi.c linux-imx6-3.14/drivers/vid
+
+ if (isColorSpaceConversion(hdmi)) { /* csc needed */
+ if (hdmi->hdmi_data.enc_out_format == RGB) {
-+ if (hdmi->hdmi_data.colorimetry == eITU601) {
++ if (hdmi->hdmi_data.enc_in_format == RGB) {
++ csc_coeff[0][0] = 0x1b80;
++ csc_coeff[0][1] = 0x0000;
++ csc_coeff[0][2] = 0x0000;
++ csc_coeff[0][3] = 0x0020;
++
++ csc_coeff[1][0] = 0x0000;
++ csc_coeff[1][1] = 0x1b80;
++ csc_coeff[1][2] = 0x0000;
++ csc_coeff[1][3] = 0x0020;
++
++ csc_coeff[2][0] = 0x0000;
++ csc_coeff[2][1] = 0x0000;
++ csc_coeff[2][2] = 0x1b80;
++ csc_coeff[2][3] = 0x0020;
++
++ csc_scale = 1;
++ coeff_selected = true;
++ } else if (hdmi->hdmi_data.colorimetry == eITU601) {
+ csc_coeff[0][0] = 0x2000;
+ csc_coeff[0][1] = 0x6926;
+ csc_coeff[0][2] = 0x74fd;
@@ -218829,7 +216824,7 @@ diff -Nur linux-3.14.17/drivers/video/mxc/mxc_hdmi.c linux-imx6-3.14/drivers/vid
+{
+ int color_depth = 0;
+ int interpolation = HDMI_CSC_CFG_INTMODE_DISABLE;
-+ int decimation = 0;
++ int decimation = HDMI_CSC_CFG_DECMODE_DISABLE;
+ u8 val;
+
+ /* YCC422 interpolation to 444 mode */
@@ -219917,7 +217912,7 @@ diff -Nur linux-3.14.17/drivers/video/mxc/mxc_hdmi.c linux-imx6-3.14/drivers/vid
+ hdmi_writeb(clkdis, HDMI_MC_CLKDIS);
+
+ /* Enable csc path */
-+ if (isColorSpaceConversion(hdmi)) {
++ if (isColorSpaceConversion(hdmi) && !hdmi->hdmi_data.video_mode.mDVI) {
+ clkdis &= ~HDMI_MC_CLKDIS_CSCCLK_DISABLE;
+ hdmi_writeb(clkdis, HDMI_MC_CLKDIS);
+ }
@@ -221167,9 +219162,9 @@ diff -Nur linux-3.14.17/drivers/video/mxc/mxc_hdmi.c linux-imx6-3.14/drivers/vid
+module_exit(mxc_hdmi_i2c_exit);
+
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
-diff -Nur linux-3.14.17/drivers/video/mxc/mxc_ipuv3_fb.c linux-imx6-3.14/drivers/video/mxc/mxc_ipuv3_fb.c
---- linux-3.14.17/drivers/video/mxc/mxc_ipuv3_fb.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/video/mxc/mxc_ipuv3_fb.c 2014-09-11 18:06:09.534068054 +0200
+diff -Nur linux-3.14.22.orig/drivers/video/mxc/mxc_ipuv3_fb.c linux-3.14.22/drivers/video/mxc/mxc_ipuv3_fb.c
+--- linux-3.14.22.orig/drivers/video/mxc/mxc_ipuv3_fb.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/video/mxc/mxc_ipuv3_fb.c 2014-10-22 14:55:56.650220001 -0500
@@ -0,0 +1,2578 @@
+/*
+ * Copyright 2004-2014 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -223749,9 +221744,9 @@ diff -Nur linux-3.14.17/drivers/video/mxc/mxc_ipuv3_fb.c linux-imx6-3.14/drivers
+MODULE_DESCRIPTION("MXC framebuffer driver");
+MODULE_LICENSE("GPL");
+MODULE_SUPPORTED_DEVICE("fb");
-diff -Nur linux-3.14.17/drivers/video/mxc/mxc_lcdif.c linux-imx6-3.14/drivers/video/mxc/mxc_lcdif.c
---- linux-3.14.17/drivers/video/mxc/mxc_lcdif.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/video/mxc/mxc_lcdif.c 2014-09-11 18:06:09.534068054 +0200
+diff -Nur linux-3.14.22.orig/drivers/video/mxc/mxc_lcdif.c linux-3.14.22/drivers/video/mxc/mxc_lcdif.c
+--- linux-3.14.22.orig/drivers/video/mxc/mxc_lcdif.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/video/mxc/mxc_lcdif.c 2014-10-22 14:55:56.650220001 -0500
@@ -0,0 +1,235 @@
+/*
+ * Copyright (C) 2011-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -223988,9 +221983,9 @@ diff -Nur linux-3.14.17/drivers/video/mxc/mxc_lcdif.c linux-imx6-3.14/drivers/vi
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("i.MX ipuv3 LCD extern port driver");
+MODULE_LICENSE("GPL");
-diff -Nur linux-3.14.17/drivers/video/mxsfb.c linux-imx6-3.14/drivers/video/mxsfb.c
---- linux-3.14.17/drivers/video/mxsfb.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/drivers/video/mxsfb.c 2014-09-11 18:06:09.534068054 +0200
+diff -Nur linux-3.14.22.orig/drivers/video/mxsfb.c linux-3.14.22/drivers/video/mxsfb.c
+--- linux-3.14.22.orig/drivers/video/mxsfb.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/drivers/video/mxsfb.c 2014-10-22 14:55:56.650220001 -0500
@@ -96,9 +96,10 @@
#define CTRL_DF24 (1 << 1)
#define CTRL_RUN (1 << 0)
@@ -224206,9 +222201,9 @@ diff -Nur linux-3.14.17/drivers/video/mxsfb.c linux-imx6-3.14/drivers/video/mxsf
}
static struct platform_device_id mxsfb_devtype[] = {
-diff -Nur linux-3.14.17/drivers/video/vexpress-dvi.c linux-imx6-3.14/drivers/video/vexpress-dvi.c
---- linux-3.14.17/drivers/video/vexpress-dvi.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/drivers/video/vexpress-dvi.c 2014-09-11 18:06:09.850069315 +0200
+diff -Nur linux-3.14.22.orig/drivers/video/vexpress-dvi.c linux-3.14.22/drivers/video/vexpress-dvi.c
+--- linux-3.14.22.orig/drivers/video/vexpress-dvi.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/drivers/video/vexpress-dvi.c 2014-10-22 14:55:56.650220001 -0500
@@ -0,0 +1,220 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
@@ -224430,9 +222425,9 @@ diff -Nur linux-3.14.17/drivers/video/vexpress-dvi.c linux-imx6-3.14/drivers/vid
+ return platform_driver_register(&vexpress_dvi_driver);
+}
+device_initcall(vexpress_dvi_init);
-diff -Nur linux-3.14.17/firmware/imx/sdma/sdma-imx6q.bin.ihex linux-imx6-3.14/firmware/imx/sdma/sdma-imx6q.bin.ihex
---- linux-3.14.17/firmware/imx/sdma/sdma-imx6q.bin.ihex 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/firmware/imx/sdma/sdma-imx6q.bin.ihex 2014-09-11 18:06:10.050070113 +0200
+diff -Nur linux-3.14.22.orig/firmware/imx/sdma/sdma-imx6q.bin.ihex linux-3.14.22/firmware/imx/sdma/sdma-imx6q.bin.ihex
+--- linux-3.14.22.orig/firmware/imx/sdma/sdma-imx6q.bin.ihex 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/firmware/imx/sdma/sdma-imx6q.bin.ihex 2014-10-22 14:55:56.650220001 -0500
@@ -0,0 +1,116 @@
+:1000000053444D4101000000010000001C000000AD
+:1000100026000000B40000007A0600008202000002
@@ -224550,9 +222545,9 @@ diff -Nur linux-3.14.17/firmware/imx/sdma/sdma-imx6q.bin.ihex linux-imx6-3.14/fi
+:10071000DD6F087FD169010FC86FDD6F037F0101B5
+:0E0720000004129B0700FF680C680002129B89
+:00000001FF
-diff -Nur linux-3.14.17/firmware/Makefile linux-imx6-3.14/firmware/Makefile
---- linux-3.14.17/firmware/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/firmware/Makefile 2014-09-11 18:06:09.998069907 +0200
+diff -Nur linux-3.14.22.orig/firmware/Makefile linux-3.14.22/firmware/Makefile
+--- linux-3.14.22.orig/firmware/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/firmware/Makefile 2014-10-22 14:55:56.650220001 -0500
@@ -61,6 +61,7 @@
radeon/RV770_pfp.bin radeon/RV770_me.bin \
radeon/RV730_pfp.bin radeon/RV730_me.bin \
@@ -224570,9 +222565,9 @@ diff -Nur linux-3.14.17/firmware/Makefile linux-imx6-3.14/firmware/Makefile
# Don't depend on ihex2fw if we're installing and it already exists.
# Putting it after | in the dependencies doesn't seem sufficient when
# we're installing after a cross-compile, because ihex2fw has dependencies
-diff -Nur linux-3.14.17/fs/btrfs/Kconfig linux-imx6-3.14/fs/btrfs/Kconfig
---- linux-3.14.17/fs/btrfs/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/fs/btrfs/Kconfig 2014-09-11 18:06:10.122070401 +0200
+diff -Nur linux-3.14.22.orig/fs/btrfs/Kconfig linux-3.14.22/fs/btrfs/Kconfig
+--- linux-3.14.22.orig/fs/btrfs/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/fs/btrfs/Kconfig 2014-10-22 14:55:56.650220001 -0500
@@ -1,5 +1,6 @@
config BTRFS_FS
tristate "Btrfs filesystem support"
@@ -224580,10 +222575,10 @@ diff -Nur linux-3.14.17/fs/btrfs/Kconfig linux-imx6-3.14/fs/btrfs/Kconfig
select CRYPTO
select CRYPTO_CRC32C
select ZLIB_INFLATE
-diff -Nur linux-3.14.17/fs/buffer.c linux-imx6-3.14/fs/buffer.c
---- linux-3.14.17/fs/buffer.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/fs/buffer.c 2014-09-11 18:06:10.218070784 +0200
-@@ -3088,7 +3088,7 @@
+diff -Nur linux-3.14.22.orig/fs/buffer.c linux-3.14.22/fs/buffer.c
+--- linux-3.14.22.orig/fs/buffer.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/fs/buffer.c 2014-10-22 14:55:56.654220001 -0500
+@@ -3090,7 +3090,7 @@
* until the buffer gets unlocked).
*
* ll_rw_block sets b_end_io to simple completion handler that marks
@@ -224592,9 +222587,9 @@ diff -Nur linux-3.14.17/fs/buffer.c linux-imx6-3.14/fs/buffer.c
* any waiters.
*
* All of the buffers must be for the same device, and must also be a
-diff -Nur linux-3.14.17/fs/compat_binfmt_elf.c linux-imx6-3.14/fs/compat_binfmt_elf.c
---- linux-3.14.17/fs/compat_binfmt_elf.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/fs/compat_binfmt_elf.c 2014-09-11 18:06:10.286071055 +0200
+diff -Nur linux-3.14.22.orig/fs/compat_binfmt_elf.c linux-3.14.22/fs/compat_binfmt_elf.c
+--- linux-3.14.22.orig/fs/compat_binfmt_elf.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/fs/compat_binfmt_elf.c 2014-10-22 14:55:56.654220001 -0500
@@ -88,6 +88,11 @@
#define ELF_HWCAP COMPAT_ELF_HWCAP
#endif
@@ -224607,21 +222602,9 @@ diff -Nur linux-3.14.17/fs/compat_binfmt_elf.c linux-imx6-3.14/fs/compat_binfmt_
#ifdef COMPAT_ARCH_DLINFO
#undef ARCH_DLINFO
#define ARCH_DLINFO COMPAT_ARCH_DLINFO
-diff -Nur linux-3.14.17/fs/coredump.c linux-imx6-3.14/fs/coredump.c
---- linux-3.14.17/fs/coredump.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/fs/coredump.c 2014-09-11 18:06:10.290071071 +0200
-@@ -306,7 +306,7 @@
- if (unlikely(nr < 0))
- return nr;
-
-- tsk->flags |= PF_DUMPCORE;
-+ tsk->flags = PF_DUMPCORE;
- if (atomic_read(&mm->mm_users) == nr + 1)
- goto done;
- /*
-diff -Nur linux-3.14.17/fs/debugfs/inode.c linux-imx6-3.14/fs/debugfs/inode.c
---- linux-3.14.17/fs/debugfs/inode.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/fs/debugfs/inode.c 2014-09-11 18:06:10.294071087 +0200
+diff -Nur linux-3.14.22.orig/fs/debugfs/inode.c linux-3.14.22/fs/debugfs/inode.c
+--- linux-3.14.22.orig/fs/debugfs/inode.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/fs/debugfs/inode.c 2014-10-22 14:55:56.654220001 -0500
@@ -358,7 +358,7 @@
* @name: a pointer to a string containing the name of the file to create.
* @mode: the permission that the file should have.
@@ -224649,173 +222632,9 @@ diff -Nur linux-3.14.17/fs/debugfs/inode.c linux-imx6-3.14/fs/debugfs/inode.c
* then the symbolic link will be created in the root of the debugfs
* filesystem.
* @target: a pointer to a string containing the path to the target of the
-diff -Nur linux-3.14.17/fs/namei.c linux-imx6-3.14/fs/namei.c
---- linux-3.14.17/fs/namei.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/fs/namei.c 2014-09-11 18:06:10.446071695 +0200
-@@ -2247,10 +2247,9 @@
- goto out;
- }
- path->dentry = dentry;
-- path->mnt = nd->path.mnt;
-+ path->mnt = mntget(nd->path.mnt);
- if (should_follow_link(dentry, nd->flags & LOOKUP_FOLLOW))
- return 1;
-- mntget(path->mnt);
- follow_mount(path);
- error = 0;
- out:
-diff -Nur linux-3.14.17/fs/nfs/nfs3acl.c linux-imx6-3.14/fs/nfs/nfs3acl.c
---- linux-3.14.17/fs/nfs/nfs3acl.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/fs/nfs/nfs3acl.c 2014-09-11 18:06:10.458071742 +0200
-@@ -247,46 +247,3 @@
- &posix_acl_default_xattr_handler,
- NULL,
- };
--
--static int
--nfs3_list_one_acl(struct inode *inode, int type, const char *name, void *data,
-- size_t size, ssize_t *result)
--{
-- struct posix_acl *acl;
-- char *p = data + *result;
--
-- acl = get_acl(inode, type);
-- if (!acl)
-- return 0;
--
-- posix_acl_release(acl);
--
-- *result += strlen(name);
-- *result += 1;
-- if (!size)
-- return 0;
-- if (*result > size)
-- return -ERANGE;
--
-- strcpy(p, name);
-- return 0;
--}
--
--ssize_t
--nfs3_listxattr(struct dentry *dentry, char *data, size_t size)
--{
-- struct inode *inode = dentry->d_inode;
-- ssize_t result = 0;
-- int error;
--
-- error = nfs3_list_one_acl(inode, ACL_TYPE_ACCESS,
-- POSIX_ACL_XATTR_ACCESS, data, size, &result);
-- if (error)
-- return error;
--
-- error = nfs3_list_one_acl(inode, ACL_TYPE_DEFAULT,
-- POSIX_ACL_XATTR_DEFAULT, data, size, &result);
-- if (error)
-- return error;
-- return result;
--}
-diff -Nur linux-3.14.17/fs/nfs/nfs3proc.c linux-imx6-3.14/fs/nfs/nfs3proc.c
---- linux-3.14.17/fs/nfs/nfs3proc.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/fs/nfs/nfs3proc.c 2014-09-11 18:06:10.458071742 +0200
-@@ -926,7 +926,7 @@
- .getattr = nfs_getattr,
- .setattr = nfs_setattr,
- #ifdef CONFIG_NFS_V3_ACL
-- .listxattr = nfs3_listxattr,
-+ .listxattr = generic_listxattr,
- .getxattr = generic_getxattr,
- .setxattr = generic_setxattr,
- .removexattr = generic_removexattr,
-@@ -940,7 +940,7 @@
- .getattr = nfs_getattr,
- .setattr = nfs_setattr,
- #ifdef CONFIG_NFS_V3_ACL
-- .listxattr = nfs3_listxattr,
-+ .listxattr = generic_listxattr,
- .getxattr = generic_getxattr,
- .setxattr = generic_setxattr,
- .removexattr = generic_removexattr,
-diff -Nur linux-3.14.17/fs/xfs/xfs_log_cil.c linux-imx6-3.14/fs/xfs/xfs_log_cil.c
---- linux-3.14.17/fs/xfs/xfs_log_cil.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/fs/xfs/xfs_log_cil.c 2014-09-11 18:06:10.606072333 +0200
-@@ -97,7 +97,7 @@
- {
- /* Account for the new LV being passed in */
- if (lv->lv_buf_len != XFS_LOG_VEC_ORDERED) {
-- *diff_len += lv->lv_bytes;
-+ *diff_len += lv->lv_buf_len;
- *diff_iovecs += lv->lv_niovecs;
- }
-
-@@ -111,7 +111,7 @@
- else if (old_lv != lv) {
- ASSERT(lv->lv_buf_len != XFS_LOG_VEC_ORDERED);
-
-- *diff_len -= old_lv->lv_bytes;
-+ *diff_len -= old_lv->lv_buf_len;
- *diff_iovecs -= old_lv->lv_niovecs;
- kmem_free(old_lv);
- }
-@@ -239,7 +239,7 @@
- * that the space reservation accounting is correct.
- */
- *diff_iovecs -= lv->lv_niovecs;
-- *diff_len -= lv->lv_bytes;
-+ *diff_len -= lv->lv_buf_len;
- } else {
- /* allocate new data chunk */
- lv = kmem_zalloc(buf_size, KM_SLEEP|KM_NOFS);
-@@ -259,7 +259,6 @@
-
- /* The allocated data region lies beyond the iovec region */
- lv->lv_buf_len = 0;
-- lv->lv_bytes = 0;
- lv->lv_buf = (char *)lv + buf_size - nbytes;
- ASSERT(IS_ALIGNED((unsigned long)lv->lv_buf, sizeof(uint64_t)));
-
-diff -Nur linux-3.14.17/fs/xfs/xfs_log.h linux-imx6-3.14/fs/xfs/xfs_log.h
---- linux-3.14.17/fs/xfs/xfs_log.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/fs/xfs/xfs_log.h 2014-09-11 18:06:10.602072317 +0200
-@@ -24,8 +24,7 @@
- struct xfs_log_iovec *lv_iovecp; /* iovec array */
- struct xfs_log_item *lv_item; /* owner */
- char *lv_buf; /* formatted buffer */
-- int lv_bytes; /* accounted space in buffer */
-- int lv_buf_len; /* aligned size of buffer */
-+ int lv_buf_len; /* size of formatted buffer */
- int lv_size; /* size of allocated lv */
- };
-
-@@ -53,21 +52,15 @@
- return vec->i_addr;
- }
-
--/*
-- * We need to make sure the next buffer is naturally aligned for the biggest
-- * basic data type we put into it. We already accounted for this padding when
-- * sizing the buffer.
-- *
-- * However, this padding does not get written into the log, and hence we have to
-- * track the space used by the log vectors separately to prevent log space hangs
-- * due to inaccurate accounting (i.e. a leak) of the used log space through the
-- * CIL context ticket.
-- */
- static inline void
- xlog_finish_iovec(struct xfs_log_vec *lv, struct xfs_log_iovec *vec, int len)
- {
-+ /*
-+ * We need to make sure the next buffer is naturally aligned for the
-+ * biggest basic data type we put into it. We already accounted for
-+ * this when sizing the buffer.
-+ */
- lv->lv_buf_len += round_up(len, sizeof(uint64_t));
-- lv->lv_bytes += len;
- vec->i_len = len;
- }
-
-diff -Nur linux-3.14.17/include/asm-generic/word-at-a-time.h linux-imx6-3.14/include/asm-generic/word-at-a-time.h
---- linux-3.14.17/include/asm-generic/word-at-a-time.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/asm-generic/word-at-a-time.h 2014-09-11 18:06:10.650072508 +0200
+diff -Nur linux-3.14.22.orig/include/asm-generic/word-at-a-time.h linux-3.14.22/include/asm-generic/word-at-a-time.h
+--- linux-3.14.22.orig/include/asm-generic/word-at-a-time.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/asm-generic/word-at-a-time.h 2014-10-22 14:55:56.654220001 -0500
@@ -50,7 +50,7 @@
}
@@ -224825,9 +222644,9 @@ diff -Nur linux-3.14.17/include/asm-generic/word-at-a-time.h linux-imx6-3.14/inc
#endif
#endif /* _ASM_WORD_AT_A_TIME_H */
-diff -Nur linux-3.14.17/include/crypto/algapi.h linux-imx6-3.14/include/crypto/algapi.h
---- linux-3.14.17/include/crypto/algapi.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/crypto/algapi.h 2014-09-11 18:06:10.650072508 +0200
+diff -Nur linux-3.14.22.orig/include/crypto/algapi.h linux-3.14.22/include/crypto/algapi.h
+--- linux-3.14.22.orig/include/crypto/algapi.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/crypto/algapi.h 2014-10-22 14:55:56.654220001 -0500
@@ -100,9 +100,12 @@
void *page;
u8 *buffer;
@@ -224853,9 +222672,9 @@ diff -Nur linux-3.14.17/include/crypto/algapi.h linux-imx6-3.14/include/crypto/a
int ablkcipher_walk_done(struct ablkcipher_request *req,
struct ablkcipher_walk *walk, int err);
-diff -Nur linux-3.14.17/include/drm/drm_fb_helper.h linux-imx6-3.14/include/drm/drm_fb_helper.h
---- linux-3.14.17/include/drm/drm_fb_helper.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/drm/drm_fb_helper.h 2014-09-11 18:06:10.674072603 +0200
+diff -Nur linux-3.14.22.orig/include/drm/drm_fb_helper.h linux-3.14.22/include/drm/drm_fb_helper.h
+--- linux-3.14.22.orig/include/drm/drm_fb_helper.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/drm/drm_fb_helper.h 2014-10-22 14:55:56.654220001 -0500
@@ -55,7 +55,7 @@
* save the current lut when force-restoring the fbdev for e.g.
* kdbg.
@@ -224865,9 +222684,9 @@ diff -Nur linux-3.14.17/include/drm/drm_fb_helper.h linux-imx6-3.14/include/drm/
* framebuffer used to back the fbdev.
* @initial_config: Setup an initial fbdev display configuration
*
-diff -Nur linux-3.14.17/include/dt-bindings/clock/imx6sl-clock.h linux-imx6-3.14/include/dt-bindings/clock/imx6sl-clock.h
---- linux-3.14.17/include/dt-bindings/clock/imx6sl-clock.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/dt-bindings/clock/imx6sl-clock.h 2014-09-11 18:06:10.686072652 +0200
+diff -Nur linux-3.14.22.orig/include/dt-bindings/clock/imx6sl-clock.h linux-3.14.22/include/dt-bindings/clock/imx6sl-clock.h
+--- linux-3.14.22.orig/include/dt-bindings/clock/imx6sl-clock.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/dt-bindings/clock/imx6sl-clock.h 2014-10-22 14:55:56.654220001 -0500
@@ -1,5 +1,5 @@
/*
- * Copyright 2013 Freescale Semiconductor, Inc.
@@ -224895,35 +222714,9 @@ diff -Nur linux-3.14.17/include/dt-bindings/clock/imx6sl-clock.h linux-imx6-3.14
+#define IMX6SL_CLK_END 136
#endif /* __DT_BINDINGS_CLOCK_IMX6SL_H */
-diff -Nur linux-3.14.17/include/dt-bindings/pinctrl/dra.h linux-imx6-3.14/include/dt-bindings/pinctrl/dra.h
---- linux-3.14.17/include/dt-bindings/pinctrl/dra.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/dt-bindings/pinctrl/dra.h 2014-09-11 18:06:10.702072715 +0200
-@@ -30,8 +30,7 @@
- #define MUX_MODE14 0xe
- #define MUX_MODE15 0xf
-
--#define PULL_ENA (0 << 16)
--#define PULL_DIS (1 << 16)
-+#define PULL_ENA (1 << 16)
- #define PULL_UP (1 << 17)
- #define INPUT_EN (1 << 18)
- #define SLEWCONTROL (1 << 19)
-@@ -39,10 +38,10 @@
- #define WAKEUP_EVENT (1 << 25)
-
- /* Active pin states */
--#define PIN_OUTPUT (0 | PULL_DIS)
-+#define PIN_OUTPUT 0
- #define PIN_OUTPUT_PULLUP (PIN_OUTPUT | PULL_ENA | PULL_UP)
- #define PIN_OUTPUT_PULLDOWN (PIN_OUTPUT | PULL_ENA)
--#define PIN_INPUT (INPUT_EN | PULL_DIS)
-+#define PIN_INPUT INPUT_EN
- #define PIN_INPUT_SLEW (INPUT_EN | SLEWCONTROL)
- #define PIN_INPUT_PULLUP (PULL_ENA | INPUT_EN | PULL_UP)
- #define PIN_INPUT_PULLDOWN (PULL_ENA | INPUT_EN)
-diff -Nur linux-3.14.17/include/linux/ahci_platform.h linux-imx6-3.14/include/linux/ahci_platform.h
---- linux-3.14.17/include/linux/ahci_platform.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/ahci_platform.h 2014-09-11 18:06:10.706072732 +0200
+diff -Nur linux-3.14.22.orig/include/linux/ahci_platform.h linux-3.14.22/include/linux/ahci_platform.h
+--- linux-3.14.22.orig/include/linux/ahci_platform.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/ahci_platform.h 2014-10-22 14:55:56.654220001 -0500
@@ -19,15 +19,38 @@
struct device;
@@ -224966,9 +222759,9 @@ diff -Nur linux-3.14.17/include/linux/ahci_platform.h linux-imx6-3.14/include/li
+int ahci_platform_resume(struct device *dev);
+
#endif /* _AHCI_PLATFORM_H */
-diff -Nur linux-3.14.17/include/linux/amba/clcd.h linux-imx6-3.14/include/linux/amba/clcd.h
---- linux-3.14.17/include/linux/amba/clcd.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/amba/clcd.h 2014-09-11 18:06:10.706072732 +0200
+diff -Nur linux-3.14.22.orig/include/linux/amba/clcd.h linux-3.14.22/include/linux/amba/clcd.h
+--- linux-3.14.22.orig/include/linux/amba/clcd.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/amba/clcd.h 2014-10-22 14:55:56.706220001 -0500
@@ -243,6 +243,9 @@
val |= CNTL_BGR;
}
@@ -224998,9 +222791,9 @@ diff -Nur linux-3.14.17/include/linux/amba/clcd.h linux-imx6-3.14/include/linux/
break;
}
-diff -Nur linux-3.14.17/include/linux/arm-hdlcd.h linux-imx6-3.14/include/linux/arm-hdlcd.h
---- linux-3.14.17/include/linux/arm-hdlcd.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/linux/arm-hdlcd.h 2014-09-11 18:06:10.710072748 +0200
+diff -Nur linux-3.14.22.orig/include/linux/arm-hdlcd.h linux-3.14.22/include/linux/arm-hdlcd.h
+--- linux-3.14.22.orig/include/linux/arm-hdlcd.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/linux/arm-hdlcd.h 2014-10-22 14:55:56.706220001 -0500
@@ -0,0 +1,122 @@
+/*
+ * include/linux/arm-hdlcd.h
@@ -225124,9 +222917,9 @@ diff -Nur linux-3.14.17/include/linux/arm-hdlcd.h linux-imx6-3.14/include/linux/
+ struct completion vsync_completion;
+ unsigned char *edid;
+};
-diff -Nur linux-3.14.17/include/linux/backlight.h linux-imx6-3.14/include/linux/backlight.h
---- linux-3.14.17/include/linux/backlight.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/backlight.h 2014-09-11 18:06:10.722072796 +0200
+diff -Nur linux-3.14.22.orig/include/linux/backlight.h linux-3.14.22/include/linux/backlight.h
+--- linux-3.14.22.orig/include/linux/backlight.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/backlight.h 2014-10-22 14:55:56.710220001 -0500
@@ -9,6 +9,7 @@
#define _LINUX_BACKLIGHT_H
@@ -225147,9 +222940,9 @@ diff -Nur linux-3.14.17/include/linux/backlight.h linux-imx6-3.14/include/linux/
};
static inline void backlight_update_status(struct backlight_device *bd)
-diff -Nur linux-3.14.17/include/linux/busfreq-imx6.h linux-imx6-3.14/include/linux/busfreq-imx6.h
---- linux-3.14.17/include/linux/busfreq-imx6.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/linux/busfreq-imx6.h 2014-09-11 18:06:10.730072828 +0200
+diff -Nur linux-3.14.22.orig/include/linux/busfreq-imx6.h linux-3.14.22/include/linux/busfreq-imx6.h
+--- linux-3.14.22.orig/include/linux/busfreq-imx6.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/linux/busfreq-imx6.h 2014-10-22 14:55:56.710220001 -0500
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2012-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -225174,9 +222967,9 @@ diff -Nur linux-3.14.17/include/linux/busfreq-imx6.h linux-imx6-3.14/include/lin
+void request_bus_freq(enum bus_freq_mode mode);
+void release_bus_freq(enum bus_freq_mode mode);
+#endif
-diff -Nur linux-3.14.17/include/linux/cgroup_subsys.h linux-imx6-3.14/include/linux/cgroup_subsys.h
---- linux-3.14.17/include/linux/cgroup_subsys.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/cgroup_subsys.h 2014-09-11 18:06:10.734072844 +0200
+diff -Nur linux-3.14.22.orig/include/linux/cgroup_subsys.h linux-3.14.22/include/linux/cgroup_subsys.h
+--- linux-3.14.22.orig/include/linux/cgroup_subsys.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/cgroup_subsys.h 2014-10-22 14:55:56.710220001 -0500
@@ -39,6 +39,10 @@
SUBSYS(blkio)
#endif
@@ -225188,9 +222981,9 @@ diff -Nur linux-3.14.17/include/linux/cgroup_subsys.h linux-imx6-3.14/include/li
#if IS_SUBSYS_ENABLED(CONFIG_CGROUP_PERF)
SUBSYS(perf)
#endif
-diff -Nur linux-3.14.17/include/linux/clk-provider.h linux-imx6-3.14/include/linux/clk-provider.h
---- linux-3.14.17/include/linux/clk-provider.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/clk-provider.h 2014-09-11 18:06:10.734072844 +0200
+diff -Nur linux-3.14.22.orig/include/linux/clk-provider.h linux-3.14.22/include/linux/clk-provider.h
+--- linux-3.14.22.orig/include/linux/clk-provider.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/clk-provider.h 2014-10-22 14:55:56.710220001 -0500
@@ -30,6 +30,13 @@
#define CLK_GET_RATE_NOCACHE BIT(6) /* do not use the cached clk rate */
#define CLK_SET_RATE_NO_REPARENT BIT(7) /* don't re-parent on rate change */
@@ -225205,9 +222998,9 @@ diff -Nur linux-3.14.17/include/linux/clk-provider.h linux-imx6-3.14/include/lin
struct clk_hw;
-diff -Nur linux-3.14.17/include/linux/cma.h linux-imx6-3.14/include/linux/cma.h
---- linux-3.14.17/include/linux/cma.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/linux/cma.h 2014-09-11 18:06:10.758072940 +0200
+diff -Nur linux-3.14.22.orig/include/linux/cma.h linux-3.14.22/include/linux/cma.h
+--- linux-3.14.22.orig/include/linux/cma.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/linux/cma.h 2014-10-22 14:55:56.710220001 -0500
@@ -0,0 +1,27 @@
+#ifndef __CMA_H__
+#define __CMA_H__
@@ -225236,9 +223029,9 @@ diff -Nur linux-3.14.17/include/linux/cma.h linux-imx6-3.14/include/linux/cma.h
+extern struct page *cma_alloc(struct cma *cma, int count, unsigned int align);
+extern bool cma_release(struct cma *cma, struct page *pages, int count);
+#endif
-diff -Nur linux-3.14.17/include/linux/cpufeature.h linux-imx6-3.14/include/linux/cpufeature.h
---- linux-3.14.17/include/linux/cpufeature.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/linux/cpufeature.h 2014-09-11 18:06:10.762072955 +0200
+diff -Nur linux-3.14.22.orig/include/linux/cpufeature.h linux-3.14.22/include/linux/cpufeature.h
+--- linux-3.14.22.orig/include/linux/cpufeature.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/linux/cpufeature.h 2014-10-22 14:55:56.710220001 -0500
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2014 Linaro Ltd. <ard.biesheuvel@linaro.org>
@@ -225300,9 +223093,9 @@ diff -Nur linux-3.14.17/include/linux/cpufeature.h linux-imx6-3.14/include/linux
+
+#endif
+#endif
-diff -Nur linux-3.14.17/include/linux/cpufreq.h linux-imx6-3.14/include/linux/cpufreq.h
---- linux-3.14.17/include/linux/cpufreq.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/cpufreq.h 2014-09-11 18:06:10.762072955 +0200
+diff -Nur linux-3.14.22.orig/include/linux/cpufreq.h linux-3.14.22/include/linux/cpufreq.h
+--- linux-3.14.22.orig/include/linux/cpufreq.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/cpufreq.h 2014-10-22 14:55:56.710220001 -0500
@@ -429,6 +429,9 @@
#elif defined(CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND)
extern struct cpufreq_governor cpufreq_gov_ondemand;
@@ -225313,9 +223106,9 @@ diff -Nur linux-3.14.17/include/linux/cpufreq.h linux-imx6-3.14/include/linux/cp
#elif defined(CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE)
extern struct cpufreq_governor cpufreq_gov_conservative;
#define CPUFREQ_DEFAULT_GOVERNOR (&cpufreq_gov_conservative)
-diff -Nur linux-3.14.17/include/linux/cpu.h linux-imx6-3.14/include/linux/cpu.h
---- linux-3.14.17/include/linux/cpu.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/cpu.h 2014-09-11 18:06:10.762072955 +0200
+diff -Nur linux-3.14.22.orig/include/linux/cpu.h linux-3.14.22/include/linux/cpu.h
+--- linux-3.14.22.orig/include/linux/cpu.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/cpu.h 2014-10-22 14:55:56.714220001 -0500
@@ -226,4 +226,11 @@
void arch_cpu_idle_exit(void);
void arch_cpu_idle_dead(void);
@@ -225328,9 +223121,9 @@ diff -Nur linux-3.14.17/include/linux/cpu.h linux-imx6-3.14/include/linux/cpu.h
+void idle_notifier_call_chain(unsigned long val);
+
#endif /* _LINUX_CPU_H_ */
-diff -Nur linux-3.14.17/include/linux/device_cooling.h linux-imx6-3.14/include/linux/device_cooling.h
---- linux-3.14.17/include/linux/device_cooling.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/linux/device_cooling.h 2014-09-11 18:06:10.770072987 +0200
+diff -Nur linux-3.14.22.orig/include/linux/device_cooling.h linux-3.14.22/include/linux/device_cooling.h
+--- linux-3.14.22.orig/include/linux/device_cooling.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/linux/device_cooling.h 2014-10-22 14:55:56.714220001 -0500
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2013 Freescale Semiconductor, Inc.
@@ -225377,9 +223170,9 @@ diff -Nur linux-3.14.17/include/linux/device_cooling.h linux-imx6-3.14/include/l
+}
+#endif
+#endif /* __DEVICE_THERMAL_H__ */
-diff -Nur linux-3.14.17/include/linux/dma-contiguous.h linux-imx6-3.14/include/linux/dma-contiguous.h
---- linux-3.14.17/include/linux/dma-contiguous.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/dma-contiguous.h 2014-09-11 18:06:10.770072987 +0200
+diff -Nur linux-3.14.22.orig/include/linux/dma-contiguous.h linux-3.14.22/include/linux/dma-contiguous.h
+--- linux-3.14.22.orig/include/linux/dma-contiguous.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/dma-contiguous.h 2014-10-22 14:55:56.714220001 -0500
@@ -53,18 +53,13 @@
#ifdef __KERNEL__
@@ -225440,9 +223233,9 @@ diff -Nur linux-3.14.17/include/linux/dma-contiguous.h linux-imx6-3.14/include/l
return -ENOSYS;
}
-diff -Nur linux-3.14.17/include/linux/dmaengine.h linux-imx6-3.14/include/linux/dmaengine.h
---- linux-3.14.17/include/linux/dmaengine.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/dmaengine.h 2014-09-11 18:06:10.774073003 +0200
+diff -Nur linux-3.14.22.orig/include/linux/dmaengine.h linux-3.14.22/include/linux/dmaengine.h
+--- linux-3.14.22.orig/include/linux/dmaengine.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/dmaengine.h 2014-10-22 14:55:56.714220001 -0500
@@ -333,6 +333,8 @@
* @slave_id: Slave requester id. Only valid for slave channels. The dma
* slave peripheral will have unique id as dma requester which need to be
@@ -225461,9 +223254,9 @@ diff -Nur linux-3.14.17/include/linux/dmaengine.h linux-imx6-3.14/include/linux/
};
/**
-diff -Nur linux-3.14.17/include/linux/ftrace.h linux-imx6-3.14/include/linux/ftrace.h
---- linux-3.14.17/include/linux/ftrace.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/ftrace.h 2014-09-11 18:06:10.794073083 +0200
+diff -Nur linux-3.14.22.orig/include/linux/ftrace.h linux-3.14.22/include/linux/ftrace.h
+--- linux-3.14.22.orig/include/linux/ftrace.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/ftrace.h 2014-10-22 14:55:56.714220001 -0500
@@ -605,25 +605,27 @@
#endif
}
@@ -225508,9 +223301,9 @@ diff -Nur linux-3.14.17/include/linux/ftrace.h linux-imx6-3.14/include/linux/ftr
#ifdef CONFIG_IRQSOFF_TRACER
extern void time_hardirqs_on(unsigned long a0, unsigned long a1);
-diff -Nur linux-3.14.17/include/linux/hardirq.h linux-imx6-3.14/include/linux/hardirq.h
---- linux-3.14.17/include/linux/hardirq.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/hardirq.h 2014-09-11 18:06:10.794073083 +0200
+diff -Nur linux-3.14.22.orig/include/linux/hardirq.h linux-3.14.22/include/linux/hardirq.h
+--- linux-3.14.22.orig/include/linux/hardirq.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/hardirq.h 2014-10-22 14:55:56.718220001 -0500
@@ -9,6 +9,7 @@
@@ -225519,9 +223312,9 @@ diff -Nur linux-3.14.17/include/linux/hardirq.h linux-imx6-3.14/include/linux/ha
#if defined(CONFIG_TINY_RCU)
-diff -Nur linux-3.14.17/include/linux/hsi/hsi.h linux-imx6-3.14/include/linux/hsi/hsi.h
---- linux-3.14.17/include/linux/hsi/hsi.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/hsi/hsi.h 2014-09-11 18:06:10.798073099 +0200
+diff -Nur linux-3.14.22.orig/include/linux/hsi/hsi.h linux-3.14.22/include/linux/hsi/hsi.h
+--- linux-3.14.22.orig/include/linux/hsi/hsi.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/hsi/hsi.h 2014-10-22 14:55:56.718220001 -0500
@@ -178,7 +178,7 @@
* @complete: Transfer completion callback
* @destructor: Destructor to free resources when flushing
@@ -225531,9 +223324,9 @@ diff -Nur linux-3.14.17/include/linux/hsi/hsi.h linux-imx6-3.14/include/linux/hs
* @channel: Channel were to TX/RX the message
* @ttype: Transfer type (TX if set, RX otherwise)
* @break_frame: if true HSI will send/receive a break frame. Data buffers are
-diff -Nur linux-3.14.17/include/linux/ipu.h linux-imx6-3.14/include/linux/ipu.h
---- linux-3.14.17/include/linux/ipu.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/linux/ipu.h 2014-09-11 18:06:10.850073307 +0200
+diff -Nur linux-3.14.22.orig/include/linux/ipu.h linux-3.14.22/include/linux/ipu.h
+--- linux-3.14.22.orig/include/linux/ipu.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/linux/ipu.h 2014-10-22 14:55:56.718220001 -0500
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2005-2013 Freescale Semiconductor, Inc.
@@ -225573,9 +223366,9 @@ diff -Nur linux-3.14.17/include/linux/ipu.h linux-imx6-3.14/include/linux/ipu.h
+int ipu_check_task(struct ipu_task *task);
+
+#endif
-diff -Nur linux-3.14.17/include/linux/ipu-v3.h linux-imx6-3.14/include/linux/ipu-v3.h
---- linux-3.14.17/include/linux/ipu-v3.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/linux/ipu-v3.h 2014-09-11 18:06:10.850073307 +0200
+diff -Nur linux-3.14.22.orig/include/linux/ipu-v3.h linux-3.14.22/include/linux/ipu-v3.h
+--- linux-3.14.22.orig/include/linux/ipu-v3.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/linux/ipu-v3.h 2014-10-22 14:55:56.718220001 -0500
@@ -0,0 +1,752 @@
+/*
+ * Copyright (c) 2010 Sascha Hauer <s.hauer@pengutronix.de>
@@ -226329,9 +224122,9 @@ diff -Nur linux-3.14.17/include/linux/ipu-v3.h linux-imx6-3.14/include/linux/ipu
+};
+
+#endif /* __LINUX_IPU_V3_H_ */
-diff -Nur linux-3.14.17/include/linux/isl29023.h linux-imx6-3.14/include/linux/isl29023.h
---- linux-3.14.17/include/linux/isl29023.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/linux/isl29023.h 2014-09-11 18:06:10.854073322 +0200
+diff -Nur linux-3.14.22.orig/include/linux/isl29023.h linux-3.14.22/include/linux/isl29023.h
+--- linux-3.14.22.orig/include/linux/isl29023.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/linux/isl29023.h 2014-10-22 14:55:56.718220001 -0500
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2011-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -226380,9 +224173,9 @@ diff -Nur linux-3.14.17/include/linux/isl29023.h linux-imx6-3.14/include/linux/i
+#define ISL29023_RANGE_64K 0x3
+
+#endif
-diff -Nur linux-3.14.17/include/linux/kfifo.h linux-imx6-3.14/include/linux/kfifo.h
---- linux-3.14.17/include/linux/kfifo.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/kfifo.h 2014-09-11 18:06:10.858073338 +0200
+diff -Nur linux-3.14.22.orig/include/linux/kfifo.h linux-3.14.22/include/linux/kfifo.h
+--- linux-3.14.22.orig/include/linux/kfifo.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/kfifo.h 2014-10-22 14:55:56.718220001 -0500
@@ -722,7 +722,7 @@
/**
* kfifo_dma_out_finish - finish a DMA OUT operation
@@ -226392,20 +224185,9 @@ diff -Nur linux-3.14.17/include/linux/kfifo.h linux-imx6-3.14/include/linux/kfif
*
* This macro finish a DMA OUT operation. The out counter will be updated by
* the len parameter. No error checking will be done.
-diff -Nur linux-3.14.17/include/linux/libata.h linux-imx6-3.14/include/linux/libata.h
---- linux-3.14.17/include/linux/libata.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/libata.h 2014-09-11 18:06:10.862073355 +0200
-@@ -593,7 +593,6 @@
- struct device *dev;
- void __iomem * const *iomap;
- unsigned int n_ports;
-- unsigned int n_tags; /* nr of NCQ tags */
- void *private_data;
- struct ata_port_operations *ops;
- unsigned long flags;
-diff -Nur linux-3.14.17/include/linux/mailbox_client.h linux-imx6-3.14/include/linux/mailbox_client.h
---- linux-3.14.17/include/linux/mailbox_client.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/linux/mailbox_client.h 2014-09-11 18:06:10.866073370 +0200
+diff -Nur linux-3.14.22.orig/include/linux/mailbox_client.h linux-3.14.22/include/linux/mailbox_client.h
+--- linux-3.14.22.orig/include/linux/mailbox_client.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/linux/mailbox_client.h 2014-10-22 14:55:56.722220001 -0500
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2014 Linaro Ltd.
@@ -226453,9 +224235,9 @@ diff -Nur linux-3.14.17/include/linux/mailbox_client.h linux-imx6-3.14/include/l
+void mbox_free_channel(struct mbox_chan *chan);
+
+#endif /* __MAILBOX_CLIENT_H */
-diff -Nur linux-3.14.17/include/linux/mailbox_controller.h linux-imx6-3.14/include/linux/mailbox_controller.h
---- linux-3.14.17/include/linux/mailbox_controller.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/linux/mailbox_controller.h 2014-09-11 18:06:10.866073370 +0200
+diff -Nur linux-3.14.22.orig/include/linux/mailbox_controller.h linux-3.14.22/include/linux/mailbox_controller.h
+--- linux-3.14.22.orig/include/linux/mailbox_controller.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/linux/mailbox_controller.h 2014-10-22 14:55:56.722220001 -0500
@@ -0,0 +1,121 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
@@ -226578,9 +224360,9 @@ diff -Nur linux-3.14.17/include/linux/mailbox_controller.h linux-imx6-3.14/inclu
+void mbox_controller_unregister(struct mbox_controller *mbox);
+
+#endif /* __MAILBOX_CONTROLLER_H */
-diff -Nur linux-3.14.17/include/linux/mailbox.h linux-imx6-3.14/include/linux/mailbox.h
---- linux-3.14.17/include/linux/mailbox.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/mailbox.h 1970-01-01 01:00:00.000000000 +0100
+diff -Nur linux-3.14.22.orig/include/linux/mailbox.h linux-3.14.22/include/linux/mailbox.h
+--- linux-3.14.22.orig/include/linux/mailbox.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/mailbox.h 1969-12-31 18:00:00.000000000 -0600
@@ -1,17 +0,0 @@
-/*
- * This program is free software; you can redistribute it and/or modify it
@@ -226599,9 +224381,9 @@ diff -Nur linux-3.14.17/include/linux/mailbox.h linux-imx6-3.14/include/linux/ma
-int pl320_ipc_transmit(u32 *data);
-int pl320_ipc_register_notifier(struct notifier_block *nb);
-int pl320_ipc_unregister_notifier(struct notifier_block *nb);
-diff -Nur linux-3.14.17/include/linux/memblock.h linux-imx6-3.14/include/linux/memblock.h
---- linux-3.14.17/include/linux/memblock.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/memblock.h 2014-09-11 18:06:10.866073370 +0200
+diff -Nur linux-3.14.22.orig/include/linux/memblock.h linux-3.14.22/include/linux/memblock.h
+--- linux-3.14.22.orig/include/linux/memblock.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/memblock.h 2014-10-22 14:55:56.722220001 -0500
@@ -221,6 +221,8 @@
#define MEMBLOCK_ALLOC_ANYWHERE (~(phys_addr_t)0)
#define MEMBLOCK_ALLOC_ACCESSIBLE 0
@@ -226611,9 +224393,9 @@ diff -Nur linux-3.14.17/include/linux/memblock.h linux-imx6-3.14/include/linux/m
phys_addr_t memblock_alloc_base(phys_addr_t size, phys_addr_t align,
phys_addr_t max_addr);
phys_addr_t __memblock_alloc_base(phys_addr_t size, phys_addr_t align,
-diff -Nur linux-3.14.17/include/linux/mfd/abx500/ab8500.h linux-imx6-3.14/include/linux/mfd/abx500/ab8500.h
---- linux-3.14.17/include/linux/mfd/abx500/ab8500.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/mfd/abx500/ab8500.h 2014-09-11 18:06:10.870073386 +0200
+diff -Nur linux-3.14.22.orig/include/linux/mfd/abx500/ab8500.h linux-3.14.22/include/linux/mfd/abx500/ab8500.h
+--- linux-3.14.22.orig/include/linux/mfd/abx500/ab8500.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/mfd/abx500/ab8500.h 2014-10-22 14:55:56.722220001 -0500
@@ -347,7 +347,6 @@
struct mutex lock;
struct mutex irq_lock;
@@ -226630,9 +224412,9 @@ diff -Nur linux-3.14.17/include/linux/mfd/abx500/ab8500.h linux-imx6-3.14/includ
void (*init) (struct ab8500 *);
struct ab8500_regulator_platform_data *regulator;
struct ab8500_codec_platform_data *codec;
-diff -Nur linux-3.14.17/include/linux/mfd/dbx500-prcmu.h linux-imx6-3.14/include/linux/mfd/dbx500-prcmu.h
---- linux-3.14.17/include/linux/mfd/dbx500-prcmu.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/mfd/dbx500-prcmu.h 2014-09-11 18:06:10.874073403 +0200
+diff -Nur linux-3.14.22.orig/include/linux/mfd/dbx500-prcmu.h linux-3.14.22/include/linux/mfd/dbx500-prcmu.h
+--- linux-3.14.22.orig/include/linux/mfd/dbx500-prcmu.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/mfd/dbx500-prcmu.h 2014-10-22 14:55:56.722220001 -0500
@@ -183,8 +183,6 @@
bool enable_set_ddr_opp;
bool enable_ape_opp_100_voltage;
@@ -226642,9 +224424,9 @@ diff -Nur linux-3.14.17/include/linux/mfd/dbx500-prcmu.h linux-imx6-3.14/include
u32 version_offset;
u32 legacy_offset;
u32 adt_offset;
-diff -Nur linux-3.14.17/include/linux/mfd/mxc-hdmi-core.h linux-imx6-3.14/include/linux/mfd/mxc-hdmi-core.h
---- linux-3.14.17/include/linux/mfd/mxc-hdmi-core.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/linux/mfd/mxc-hdmi-core.h 2014-09-11 18:06:10.878073418 +0200
+diff -Nur linux-3.14.22.orig/include/linux/mfd/mxc-hdmi-core.h linux-3.14.22/include/linux/mfd/mxc-hdmi-core.h
+--- linux-3.14.22.orig/include/linux/mfd/mxc-hdmi-core.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/linux/mfd/mxc-hdmi-core.h 2014-10-22 14:55:56.722220001 -0500
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2011-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -226714,9 +224496,9 @@ diff -Nur linux-3.14.17/include/linux/mfd/mxc-hdmi-core.h linux-imx6-3.14/includ
+void hdmi_cec_stop_device(void);
+
+#endif
-diff -Nur linux-3.14.17/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h linux-imx6-3.14/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h
---- linux-3.14.17/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h 2014-09-11 18:06:10.882073433 +0200
+diff -Nur linux-3.14.22.orig/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h linux-3.14.22/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h
+--- linux-3.14.22.orig/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h 2014-10-22 14:55:56.722220001 -0500
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012 Freescale Semiconductor, Inc.
@@ -226735,9 +224517,9 @@ diff -Nur linux-3.14.17/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h linux-imx6-3
#define IMX6Q_GPR1_ADDRS3_MASK (0x3 << 10)
#define IMX6Q_GPR1_ADDRS3_32MB (0x0 << 10)
#define IMX6Q_GPR1_ADDRS3_64MB (0x1 << 10)
-diff -Nur linux-3.14.17/include/linux/mipi_csi2.h linux-imx6-3.14/include/linux/mipi_csi2.h
---- linux-3.14.17/include/linux/mipi_csi2.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/linux/mipi_csi2.h 2014-09-11 18:06:10.890073466 +0200
+diff -Nur linux-3.14.22.orig/include/linux/mipi_csi2.h linux-3.14.22/include/linux/mipi_csi2.h
+--- linux-3.14.22.orig/include/linux/mipi_csi2.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/linux/mipi_csi2.h 2014-10-22 14:55:56.722220001 -0500
@@ -0,0 +1,93 @@
+/*
+ * Copyright (C) 2011-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -226832,9 +224614,9 @@ diff -Nur linux-3.14.17/include/linux/mipi_csi2.h linux-imx6-3.14/include/linux/
+int mipi_csi2_reset(struct mipi_csi2_info *info);
+
+#endif
-diff -Nur linux-3.14.17/include/linux/mipi_dsi.h linux-imx6-3.14/include/linux/mipi_dsi.h
---- linux-3.14.17/include/linux/mipi_dsi.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/linux/mipi_dsi.h 2014-09-11 18:06:10.890073466 +0200
+diff -Nur linux-3.14.22.orig/include/linux/mipi_dsi.h linux-3.14.22/include/linux/mipi_dsi.h
+--- linux-3.14.22.orig/include/linux/mipi_dsi.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/linux/mipi_dsi.h 2014-10-22 14:55:56.726220001 -0500
@@ -0,0 +1,171 @@
+/*
+ * Copyright (C) 2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -227007,9 +224789,9 @@ diff -Nur linux-3.14.17/include/linux/mipi_dsi.h linux-imx6-3.14/include/linux/m
+#define DSI_PHY_CLK_INIT_COMMAND (0x44)
+#define DSI_GEN_PLD_DATA_BUF_SIZE (0x4)
+#endif
-diff -Nur linux-3.14.17/include/linux/mmc/card.h linux-imx6-3.14/include/linux/mmc/card.h
---- linux-3.14.17/include/linux/mmc/card.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/mmc/card.h 2014-09-11 18:06:10.890073466 +0200
+diff -Nur linux-3.14.22.orig/include/linux/mmc/card.h linux-3.14.22/include/linux/mmc/card.h
+--- linux-3.14.22.orig/include/linux/mmc/card.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/mmc/card.h 2014-10-22 14:55:56.726220001 -0500
@@ -86,10 +86,13 @@
unsigned int data_sector_size; /* 512 bytes or 4KB */
unsigned int data_tag_unit_size; /* DATA TAG UNIT size */
@@ -227032,9 +224814,9 @@ diff -Nur linux-3.14.17/include/linux/mmc/card.h linux-imx6-3.14/include/linux/m
u8 raw_sec_trim_mult; /* 229 */
u8 raw_sec_erase_mult; /* 230 */
u8 raw_sec_feature_support;/* 231 */
-diff -Nur linux-3.14.17/include/linux/mmc/host.h linux-imx6-3.14/include/linux/mmc/host.h
---- linux-3.14.17/include/linux/mmc/host.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/mmc/host.h 2014-09-11 18:06:10.890073466 +0200
+diff -Nur linux-3.14.22.orig/include/linux/mmc/host.h linux-3.14.22/include/linux/mmc/host.h
+--- linux-3.14.22.orig/include/linux/mmc/host.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/mmc/host.h 2014-10-22 14:55:56.726220001 -0500
@@ -282,6 +282,7 @@
MMC_CAP2_PACKED_WR)
#define MMC_CAP2_NO_PRESCAN_POWERUP (1 << 14) /* Don't power up before scan */
@@ -227064,9 +224846,9 @@ diff -Nur linux-3.14.17/include/linux/mmc/host.h linux-imx6-3.14/include/linux/m
#ifdef CONFIG_REGULATOR
int mmc_regulator_get_ocrmask(struct regulator *supply);
int mmc_regulator_set_ocr(struct mmc_host *mmc,
-diff -Nur linux-3.14.17/include/linux/mmc/mmc.h linux-imx6-3.14/include/linux/mmc/mmc.h
---- linux-3.14.17/include/linux/mmc/mmc.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/mmc/mmc.h 2014-09-11 18:06:10.890073466 +0200
+diff -Nur linux-3.14.22.orig/include/linux/mmc/mmc.h linux-3.14.22/include/linux/mmc/mmc.h
+--- linux-3.14.22.orig/include/linux/mmc/mmc.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/mmc/mmc.h 2014-10-22 14:55:56.726220001 -0500
@@ -292,6 +292,7 @@
#define EXT_CSD_RPMB_MULT 168 /* RO */
#define EXT_CSD_BOOT_WP 173 /* R/W */
@@ -227113,9 +224895,9 @@ diff -Nur linux-3.14.17/include/linux/mmc/mmc.h linux-imx6-3.14/include/linux/mm
#define EXT_CSD_RST_N_EN_MASK 0x3
#define EXT_CSD_RST_N_ENABLED 1 /* RST_n is enabled on card */
-diff -Nur linux-3.14.17/include/linux/mmc/sdhci.h linux-imx6-3.14/include/linux/mmc/sdhci.h
---- linux-3.14.17/include/linux/mmc/sdhci.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/mmc/sdhci.h 2014-09-11 18:06:10.890073466 +0200
+diff -Nur linux-3.14.22.orig/include/linux/mmc/sdhci.h linux-3.14.22/include/linux/mmc/sdhci.h
+--- linux-3.14.22.orig/include/linux/mmc/sdhci.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/mmc/sdhci.h 2014-10-22 14:55:56.726220001 -0500
@@ -57,12 +57,8 @@
#define SDHCI_QUIRK_BROKEN_CARD_DETECTION (1<<15)
/* Controller reports inverted write-protect state */
@@ -227169,9 +224951,9 @@ diff -Nur linux-3.14.17/include/linux/mmc/sdhci.h linux-imx6-3.14/include/linux/
wait_queue_head_t buf_ready_int; /* Waitqueue for Buffer Read Ready interrupt */
unsigned int tuning_done; /* Condition flag set when CMD19 succeeds */
-diff -Nur linux-3.14.17/include/linux/mmc/sdio_ids.h linux-imx6-3.14/include/linux/mmc/sdio_ids.h
---- linux-3.14.17/include/linux/mmc/sdio_ids.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/mmc/sdio_ids.h 2014-09-11 18:06:10.894073482 +0200
+diff -Nur linux-3.14.22.orig/include/linux/mmc/sdio_ids.h linux-3.14.22/include/linux/mmc/sdio_ids.h
+--- linux-3.14.22.orig/include/linux/mmc/sdio_ids.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/mmc/sdio_ids.h 2014-10-22 14:55:56.726220001 -0500
@@ -31,6 +31,7 @@
#define SDIO_DEVICE_ID_BROADCOM_4334 0x4334
#define SDIO_DEVICE_ID_BROADCOM_4335_4339 0x4335
@@ -227180,9 +224962,9 @@ diff -Nur linux-3.14.17/include/linux/mmc/sdio_ids.h linux-imx6-3.14/include/lin
#define SDIO_VENDOR_ID_INTEL 0x0089
#define SDIO_DEVICE_ID_INTEL_IWMC3200WIMAX 0x1402
-diff -Nur linux-3.14.17/include/linux/mod_devicetable.h linux-imx6-3.14/include/linux/mod_devicetable.h
---- linux-3.14.17/include/linux/mod_devicetable.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/mod_devicetable.h 2014-09-11 18:06:10.894073482 +0200
+diff -Nur linux-3.14.22.orig/include/linux/mod_devicetable.h linux-3.14.22/include/linux/mod_devicetable.h
+--- linux-3.14.22.orig/include/linux/mod_devicetable.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/mod_devicetable.h 2014-10-22 14:55:56.726220001 -0500
@@ -564,6 +564,15 @@
#define X86_MODEL_ANY 0
#define X86_FEATURE_ANY 0 /* Same as FPU, you can't test for that */
@@ -227199,9 +224981,9 @@ diff -Nur linux-3.14.17/include/linux/mod_devicetable.h linux-imx6-3.14/include/
#define IPACK_ANY_FORMAT 0xff
#define IPACK_ANY_ID (~0)
struct ipack_device_id {
-diff -Nur linux-3.14.17/include/linux/mtd/map.h linux-imx6-3.14/include/linux/mtd/map.h
---- linux-3.14.17/include/linux/mtd/map.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/mtd/map.h 2014-09-11 18:06:10.894073482 +0200
+diff -Nur linux-3.14.22.orig/include/linux/mtd/map.h linux-3.14.22/include/linux/mtd/map.h
+--- linux-3.14.22.orig/include/linux/mtd/map.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/mtd/map.h 2014-10-22 14:55:56.726220001 -0500
@@ -438,7 +438,7 @@
if (map->cached)
memcpy(to, (char *)map->cached + from, len);
@@ -227211,9 +224993,9 @@ diff -Nur linux-3.14.17/include/linux/mtd/map.h linux-imx6-3.14/include/linux/mt
}
static inline void inline_map_copy_to(struct map_info *map, unsigned long to, const void *from, ssize_t len)
-diff -Nur linux-3.14.17/include/linux/mxc_asrc.h linux-imx6-3.14/include/linux/mxc_asrc.h
---- linux-3.14.17/include/linux/mxc_asrc.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/linux/mxc_asrc.h 2014-09-11 18:06:10.898073499 +0200
+diff -Nur linux-3.14.22.orig/include/linux/mxc_asrc.h linux-3.14.22/include/linux/mxc_asrc.h
+--- linux-3.14.22.orig/include/linux/mxc_asrc.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/linux/mxc_asrc.h 2014-10-22 14:55:56.726220001 -0500
@@ -0,0 +1,386 @@
+/*
+ * Copyright 2008-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -227601,9 +225383,9 @@ diff -Nur linux-3.14.17/include/linux/mxc_asrc.h linux-imx6-3.14/include/linux/m
+ u32 in_wm, u32 out_wm);
+
+#endif/* __MXC_ASRC_H__ */
-diff -Nur linux-3.14.17/include/linux/mxcfb.h linux-imx6-3.14/include/linux/mxcfb.h
---- linux-3.14.17/include/linux/mxcfb.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/linux/mxcfb.h 2014-09-11 18:06:10.898073499 +0200
+diff -Nur linux-3.14.22.orig/include/linux/mxcfb.h linux-3.14.22/include/linux/mxcfb.h
+--- linux-3.14.22.orig/include/linux/mxcfb.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/linux/mxcfb.h 2014-10-22 14:55:56.726220001 -0500
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2004-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -227651,9 +225433,9 @@ diff -Nur linux-3.14.17/include/linux/mxcfb.h linux-imx6-3.14/include/linux/mxcf
+ int num_modes, int dev_mode);
+
+#endif
-diff -Nur linux-3.14.17/include/linux/mxc_mlb.h linux-imx6-3.14/include/linux/mxc_mlb.h
---- linux-3.14.17/include/linux/mxc_mlb.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/linux/mxc_mlb.h 2014-09-11 18:06:10.898073499 +0200
+diff -Nur linux-3.14.22.orig/include/linux/mxc_mlb.h linux-3.14.22/include/linux/mxc_mlb.h
+--- linux-3.14.22.orig/include/linux/mxc_mlb.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/linux/mxc_mlb.h 2014-10-22 14:55:56.726220001 -0500
@@ -0,0 +1,55 @@
+/*
+ * mxc_mlb.h
@@ -227710,9 +225492,9 @@ diff -Nur linux-3.14.17/include/linux/mxc_mlb.h linux-imx6-3.14/include/linux/mx
+
+
+#endif /* _MXC_MLB_H */
-diff -Nur linux-3.14.17/include/linux/mxc_v4l2.h linux-imx6-3.14/include/linux/mxc_v4l2.h
---- linux-3.14.17/include/linux/mxc_v4l2.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/linux/mxc_v4l2.h 2014-09-11 18:06:10.898073499 +0200
+diff -Nur linux-3.14.22.orig/include/linux/mxc_v4l2.h linux-3.14.22/include/linux/mxc_v4l2.h
+--- linux-3.14.22.orig/include/linux/mxc_v4l2.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/linux/mxc_v4l2.h 2014-10-22 14:55:56.726220001 -0500
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2004-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -227741,9 +225523,9 @@ diff -Nur linux-3.14.17/include/linux/mxc_v4l2.h linux-imx6-3.14/include/linux/m
+#include <uapi/linux/mxc_v4l2.h>
+
+#endif
-diff -Nur linux-3.14.17/include/linux/mxc_vpu.h linux-imx6-3.14/include/linux/mxc_vpu.h
---- linux-3.14.17/include/linux/mxc_vpu.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/linux/mxc_vpu.h 2014-09-11 18:06:10.898073499 +0200
+diff -Nur linux-3.14.22.orig/include/linux/mxc_vpu.h linux-3.14.22/include/linux/mxc_vpu.h
+--- linux-3.14.22.orig/include/linux/mxc_vpu.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/linux/mxc_vpu.h 2014-10-22 14:55:56.726220001 -0500
@@ -0,0 +1,118 @@
+/*
+ * Copyright 2004-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -227863,9 +225645,9 @@ diff -Nur linux-3.14.17/include/linux/mxc_vpu.h linux-imx6-3.14/include/linux/mx
+void vl2cc_cleanup(void);
+
+#endif
-diff -Nur linux-3.14.17/include/linux/phy.h linux-imx6-3.14/include/linux/phy.h
---- linux-3.14.17/include/linux/phy.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/phy.h 2014-09-11 18:06:10.970073785 +0200
+diff -Nur linux-3.14.22.orig/include/linux/phy.h linux-3.14.22/include/linux/phy.h
+--- linux-3.14.22.orig/include/linux/phy.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/phy.h 2014-10-22 14:55:56.726220001 -0500
@@ -609,6 +609,7 @@
return phydev->drv->read_status(phydev);
}
@@ -227874,9 +225656,9 @@ diff -Nur linux-3.14.17/include/linux/phy.h linux-imx6-3.14/include/linux/phy.h
int genphy_setup_forced(struct phy_device *phydev);
int genphy_restart_aneg(struct phy_device *phydev);
int genphy_config_aneg(struct phy_device *phydev);
-diff -Nur linux-3.14.17/include/linux/pipe_fs_i.h linux-imx6-3.14/include/linux/pipe_fs_i.h
---- linux-3.14.17/include/linux/pipe_fs_i.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/pipe_fs_i.h 2014-09-11 18:06:10.974073802 +0200
+diff -Nur linux-3.14.22.orig/include/linux/pipe_fs_i.h linux-3.14.22/include/linux/pipe_fs_i.h
+--- linux-3.14.22.orig/include/linux/pipe_fs_i.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/pipe_fs_i.h 2014-10-22 14:55:56.726220001 -0500
@@ -35,7 +35,7 @@
* @tmp_page: cached released page
* @readers: number of current readers of this pipe
@@ -227886,9 +225668,9 @@ diff -Nur linux-3.14.17/include/linux/pipe_fs_i.h linux-imx6-3.14/include/linux/
* @waiting_writers: number of writers blocked waiting for room
* @r_counter: reader counter
* @w_counter: writer counter
-diff -Nur linux-3.14.17/include/linux/pl320-ipc.h linux-imx6-3.14/include/linux/pl320-ipc.h
---- linux-3.14.17/include/linux/pl320-ipc.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/linux/pl320-ipc.h 2014-09-11 18:06:10.978073817 +0200
+diff -Nur linux-3.14.22.orig/include/linux/pl320-ipc.h linux-3.14.22/include/linux/pl320-ipc.h
+--- linux-3.14.22.orig/include/linux/pl320-ipc.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/linux/pl320-ipc.h 2014-10-22 14:55:56.726220001 -0500
@@ -0,0 +1,17 @@
+/*
+ * This program is free software; you can redistribute it and/or modify it
@@ -227907,9 +225689,9 @@ diff -Nur linux-3.14.17/include/linux/pl320-ipc.h linux-imx6-3.14/include/linux/
+int pl320_ipc_transmit(u32 *data);
+int pl320_ipc_register_notifier(struct notifier_block *nb);
+int pl320_ipc_unregister_notifier(struct notifier_block *nb);
-diff -Nur linux-3.14.17/include/linux/platform_data/dma-imx.h linux-imx6-3.14/include/linux/platform_data/dma-imx.h
---- linux-3.14.17/include/linux/platform_data/dma-imx.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/platform_data/dma-imx.h 2014-09-11 18:06:10.982073833 +0200
+diff -Nur linux-3.14.22.orig/include/linux/platform_data/dma-imx.h linux-3.14.22/include/linux/platform_data/dma-imx.h
+--- linux-3.14.22.orig/include/linux/platform_data/dma-imx.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/platform_data/dma-imx.h 2014-10-22 14:55:56.726220001 -0500
@@ -1,5 +1,5 @@
/*
- * Copyright 2004-2009 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -227950,9 +225732,9 @@ diff -Nur linux-3.14.17/include/linux/platform_data/dma-imx.h linux-imx6-3.14/in
static inline int imx_dma_is_general_purpose(struct dma_chan *chan)
{
return !strcmp(chan->device->dev->driver->name, "imx-sdma") ||
-diff -Nur linux-3.14.17/include/linux/power/imx6_usb_charger.h linux-imx6-3.14/include/linux/power/imx6_usb_charger.h
---- linux-3.14.17/include/linux/power/imx6_usb_charger.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/linux/power/imx6_usb_charger.h 2014-09-11 18:06:10.994073881 +0200
+diff -Nur linux-3.14.22.orig/include/linux/power/imx6_usb_charger.h linux-3.14.22/include/linux/power/imx6_usb_charger.h
+--- linux-3.14.22.orig/include/linux/power/imx6_usb_charger.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/linux/power/imx6_usb_charger.h 2014-10-22 14:55:56.726220001 -0500
@@ -0,0 +1,80 @@
+/*
+ * Copyright (C) 2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -228034,33 +225816,9 @@ diff -Nur linux-3.14.17/include/linux/power/imx6_usb_charger.h linux-imx6-3.14/i
+#endif
+
+#endif /* __IMXUSB6_CHARGER_H */
-diff -Nur linux-3.14.17/include/linux/printk.h linux-imx6-3.14/include/linux/printk.h
---- linux-3.14.17/include/linux/printk.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/printk.h 2014-09-11 18:06:10.994073881 +0200
-@@ -132,9 +132,9 @@
- int printk(const char *fmt, ...);
-
- /*
-- * Special printk facility for scheduler/timekeeping use only, _DO_NOT_USE_ !
-+ * Special printk facility for scheduler use only, _DO_NOT_USE_ !
- */
--__printf(1, 2) __cold int printk_deferred(const char *fmt, ...);
-+__printf(1, 2) __cold int printk_sched(const char *fmt, ...);
-
- /*
- * Please don't use printk_ratelimit(), because it shares ratelimiting state
-@@ -169,7 +169,7 @@
- return 0;
- }
- static inline __printf(1, 2) __cold
--int printk_deferred(const char *s, ...)
-+int printk_sched(const char *s, ...)
- {
- return 0;
- }
-diff -Nur linux-3.14.17/include/linux/ptp_clock_kernel.h linux-imx6-3.14/include/linux/ptp_clock_kernel.h
---- linux-3.14.17/include/linux/ptp_clock_kernel.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/ptp_clock_kernel.h 2014-09-11 18:06:10.998073898 +0200
+diff -Nur linux-3.14.22.orig/include/linux/ptp_clock_kernel.h linux-3.14.22/include/linux/ptp_clock_kernel.h
+--- linux-3.14.22.orig/include/linux/ptp_clock_kernel.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/ptp_clock_kernel.h 2014-10-22 14:55:56.726220001 -0500
@@ -49,7 +49,11 @@
* @n_alarm: The number of programmable alarms.
* @n_ext_ts: The number of external time stamp channels.
@@ -228128,9 +225886,9 @@ diff -Nur linux-3.14.17/include/linux/ptp_clock_kernel.h linux-imx6-3.14/include
+ enum ptp_pin_function func, unsigned int chan);
+
#endif
-diff -Nur linux-3.14.17/include/linux/pxp_device.h linux-imx6-3.14/include/linux/pxp_device.h
---- linux-3.14.17/include/linux/pxp_device.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/linux/pxp_device.h 2014-09-11 18:06:10.998073898 +0200
+diff -Nur linux-3.14.22.orig/include/linux/pxp_device.h linux-3.14.22/include/linux/pxp_device.h
+--- linux-3.14.22.orig/include/linux/pxp_device.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/linux/pxp_device.h 2014-10-22 14:55:56.726220001 -0500
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2013-2014 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -228200,9 +225958,9 @@ diff -Nur linux-3.14.17/include/linux/pxp_device.h linux-imx6-3.14/include/linux
+};
+
+#endif
-diff -Nur linux-3.14.17/include/linux/pxp_dma.h linux-imx6-3.14/include/linux/pxp_dma.h
---- linux-3.14.17/include/linux/pxp_dma.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/linux/pxp_dma.h 2014-09-11 18:06:10.998073898 +0200
+diff -Nur linux-3.14.22.orig/include/linux/pxp_dma.h linux-3.14.22/include/linux/pxp_dma.h
+--- linux-3.14.22.orig/include/linux/pxp_dma.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/linux/pxp_dma.h 2014-10-22 14:55:56.726220001 -0500
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2010-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -228276,9 +226034,9 @@ diff -Nur linux-3.14.17/include/linux/pxp_dma.h linux-imx6-3.14/include/linux/px
+#endif
+
+#endif
-diff -Nur linux-3.14.17/include/linux/regulator/consumer.h linux-imx6-3.14/include/linux/regulator/consumer.h
---- linux-3.14.17/include/linux/regulator/consumer.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/regulator/consumer.h 2014-09-11 18:06:11.002073913 +0200
+diff -Nur linux-3.14.22.orig/include/linux/regulator/consumer.h linux-3.14.22/include/linux/regulator/consumer.h
+--- linux-3.14.22.orig/include/linux/regulator/consumer.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/regulator/consumer.h 2014-10-22 14:55:56.726220001 -0500
@@ -2,6 +2,7 @@
* consumer.h -- SoC Regulator consumer support.
*
@@ -228296,9 +226054,9 @@ diff -Nur linux-3.14.17/include/linux/regulator/consumer.h linux-imx6-3.14/inclu
struct regulator;
-diff -Nur linux-3.14.17/include/linux/reset.h linux-imx6-3.14/include/linux/reset.h
---- linux-3.14.17/include/linux/reset.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/reset.h 2014-09-11 18:06:11.002073913 +0200
+diff -Nur linux-3.14.22.orig/include/linux/reset.h linux-3.14.22/include/linux/reset.h
+--- linux-3.14.22.orig/include/linux/reset.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/reset.h 2014-10-22 14:55:56.726220001 -0500
@@ -12,6 +12,13 @@
void reset_control_put(struct reset_control *rstc);
struct reset_control *devm_reset_control_get(struct device *dev, const char *id);
@@ -228313,9 +226071,9 @@ diff -Nur linux-3.14.17/include/linux/reset.h linux-imx6-3.14/include/linux/rese
+#endif /* CONFIG_RESET_CONTROLLER */
#endif
-diff -Nur linux-3.14.17/include/linux/serial_core.h linux-imx6-3.14/include/linux/serial_core.h
---- linux-3.14.17/include/linux/serial_core.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/serial_core.h 2014-09-11 18:06:11.010073945 +0200
+diff -Nur linux-3.14.22.orig/include/linux/serial_core.h linux-3.14.22/include/linux/serial_core.h
+--- linux-3.14.22.orig/include/linux/serial_core.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/serial_core.h 2014-10-22 14:55:56.726220001 -0500
@@ -285,6 +285,22 @@
/*
* Console helpers.
@@ -228339,9 +226097,9 @@ diff -Nur linux-3.14.17/include/linux/serial_core.h linux-imx6-3.14/include/linu
struct uart_port *uart_get_console(struct uart_port *ports, int nr,
struct console *c);
void uart_parse_options(char *options, int *baud, int *parity, int *bits,
-diff -Nur linux-3.14.17/include/linux/skbuff.h linux-imx6-3.14/include/linux/skbuff.h
---- linux-3.14.17/include/linux/skbuff.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/skbuff.h 2014-09-11 18:06:11.010073945 +0200
+diff -Nur linux-3.14.22.orig/include/linux/skbuff.h linux-3.14.22/include/linux/skbuff.h
+--- linux-3.14.22.orig/include/linux/skbuff.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/skbuff.h 2014-10-22 14:55:56.730220001 -0500
@@ -2038,7 +2038,7 @@
}
@@ -228351,9 +226109,9 @@ diff -Nur linux-3.14.17/include/linux/skbuff.h linux-imx6-3.14/include/linux/skb
* @frag: the paged fragment
*
* Returns the &struct page associated with @frag.
-diff -Nur linux-3.14.17/include/linux/spi/spi.h linux-imx6-3.14/include/linux/spi/spi.h
---- linux-3.14.17/include/linux/spi/spi.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/spi/spi.h 2014-09-11 18:06:11.014073961 +0200
+diff -Nur linux-3.14.22.orig/include/linux/spi/spi.h linux-3.14.22/include/linux/spi/spi.h
+--- linux-3.14.22.orig/include/linux/spi/spi.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/spi/spi.h 2014-10-22 14:55:56.730220001 -0500
@@ -234,7 +234,7 @@
* @mode_bits: flags understood by this controller driver
* @bits_per_word_mask: A mask indicating which values of bits_per_word are
@@ -228390,9 +226148,9 @@ diff -Nur linux-3.14.17/include/linux/spi/spi.h linux-imx6-3.14/include/linux/sp
* from device through @tx_nbits and @rx_nbits. In Bi-direction, these
* two should both be set. User can set transfer mode with SPI_NBITS_SINGLE(1x)
* SPI_NBITS_DUAL(2x) and SPI_NBITS_QUAD(4x) to support these three transfer.
-diff -Nur linux-3.14.17/include/linux/syscalls.h linux-imx6-3.14/include/linux/syscalls.h
---- linux-3.14.17/include/linux/syscalls.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/syscalls.h 2014-09-11 18:06:11.022073994 +0200
+diff -Nur linux-3.14.22.orig/include/linux/syscalls.h linux-3.14.22/include/linux/syscalls.h
+--- linux-3.14.22.orig/include/linux/syscalls.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/syscalls.h 2014-10-22 14:55:56.762220001 -0500
@@ -744,6 +744,9 @@
int newdfd, const char __user *newname, int flags);
asmlinkage long sys_renameat(int olddfd, const char __user * oldname,
@@ -228403,9 +226161,9 @@ diff -Nur linux-3.14.17/include/linux/syscalls.h linux-imx6-3.14/include/linux/s
asmlinkage long sys_futimesat(int dfd, const char __user *filename,
struct timeval __user *utimes);
asmlinkage long sys_faccessat(int dfd, const char __user *filename, int mode);
-diff -Nur linux-3.14.17/include/linux/usb/chipidea.h linux-imx6-3.14/include/linux/usb/chipidea.h
---- linux-3.14.17/include/linux/usb/chipidea.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/usb/chipidea.h 2014-09-11 18:06:11.030074024 +0200
+diff -Nur linux-3.14.22.orig/include/linux/usb/chipidea.h linux-3.14.22/include/linux/usb/chipidea.h
+--- linux-3.14.22.orig/include/linux/usb/chipidea.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/usb/chipidea.h 2014-10-22 14:55:56.762220001 -0500
@@ -18,6 +18,7 @@
unsigned long flags;
#define CI_HDRC_REGS_SHARED BIT(0)
@@ -228429,9 +226187,9 @@ diff -Nur linux-3.14.17/include/linux/usb/chipidea.h linux-imx6-3.14/include/lin
+/* Get current available role */
+enum usb_dr_mode ci_hdrc_query_available_role(struct platform_device *pdev);
#endif
-diff -Nur linux-3.14.17/include/linux/usb/composite.h linux-imx6-3.14/include/linux/usb/composite.h
---- linux-3.14.17/include/linux/usb/composite.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/usb/composite.h 2014-09-11 18:06:11.034074040 +0200
+diff -Nur linux-3.14.22.orig/include/linux/usb/composite.h linux-3.14.22/include/linux/usb/composite.h
+--- linux-3.14.22.orig/include/linux/usb/composite.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/usb/composite.h 2014-10-22 14:55:56.762220001 -0500
@@ -92,7 +92,7 @@
* @suspend: Notifies functions when the host stops sending USB traffic.
* @resume: Notifies functions when the host restarts USB traffic.
@@ -228441,9 +226199,9 @@ diff -Nur linux-3.14.17/include/linux/usb/composite.h linux-imx6-3.14/include/li
* @func_suspend: callback to be called when
* SetFeature(FUNCTION_SUSPEND) is reseived
*
-diff -Nur linux-3.14.17/include/linux/usb/phy.h linux-imx6-3.14/include/linux/usb/phy.h
---- linux-3.14.17/include/linux/usb/phy.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/linux/usb/phy.h 2014-09-11 18:06:11.034074040 +0200
+diff -Nur linux-3.14.22.orig/include/linux/usb/phy.h linux-3.14.22/include/linux/usb/phy.h
+--- linux-3.14.22.orig/include/linux/usb/phy.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/linux/usb/phy.h 2014-10-22 14:55:56.762220001 -0500
@@ -111,11 +111,23 @@
int (*set_suspend)(struct usb_phy *x,
int suspend);
@@ -228509,9 +226267,9 @@ diff -Nur linux-3.14.17/include/linux/usb/phy.h linux-imx6-3.14/include/linux/us
/* notifiers */
static inline int
-diff -Nur linux-3.14.17/include/net/cfg80211.h linux-imx6-3.14/include/net/cfg80211.h
---- linux-3.14.17/include/net/cfg80211.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/net/cfg80211.h 2014-09-11 18:06:14.058086106 +0200
+diff -Nur linux-3.14.22.orig/include/net/cfg80211.h linux-3.14.22/include/net/cfg80211.h
+--- linux-3.14.22.orig/include/net/cfg80211.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/net/cfg80211.h 2014-10-22 14:55:56.766220001 -0500
@@ -1729,7 +1729,7 @@
u8 *ssid;
size_t ssid_len;
@@ -228539,127 +226297,9 @@ diff -Nur linux-3.14.17/include/net/cfg80211.h linux-imx6-3.14/include/net/cfg80
/**
* cfg80211_notify_new_candidate - notify cfg80211 of a new mesh peer candidate
-diff -Nur linux-3.14.17/include/net/inetpeer.h linux-imx6-3.14/include/net/inetpeer.h
---- linux-3.14.17/include/net/inetpeer.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/net/inetpeer.h 2014-09-11 18:06:14.066086140 +0200
-@@ -41,13 +41,14 @@
- struct rcu_head gc_rcu;
- };
- /*
-- * Once inet_peer is queued for deletion (refcnt == -1), following field
-- * is not available: rid
-+ * Once inet_peer is queued for deletion (refcnt == -1), following fields
-+ * are not available: rid, ip_id_count
- * We can share memory with rcu_head to help keep inet_peer small.
- */
- union {
- struct {
- atomic_t rid; /* Frag reception counter */
-+ atomic_t ip_id_count; /* IP ID for the next packet */
- };
- struct rcu_head rcu;
- struct inet_peer *gc_next;
-@@ -164,7 +165,7 @@
- void inetpeer_invalidate_tree(struct inet_peer_base *);
-
- /*
-- * temporary check to make sure we dont access rid, tcp_ts,
-+ * temporary check to make sure we dont access rid, ip_id_count, tcp_ts,
- * tcp_ts_stamp if no refcount is taken on inet_peer
- */
- static inline void inet_peer_refcheck(const struct inet_peer *p)
-@@ -172,4 +173,13 @@
- WARN_ON_ONCE(atomic_read(&p->refcnt) <= 0);
- }
-
-+
-+/* can be called with or without local BH being disabled */
-+static inline int inet_getid(struct inet_peer *p, int more)
-+{
-+ more++;
-+ inet_peer_refcheck(p);
-+ return atomic_add_return(more, &p->ip_id_count) - more;
-+}
-+
- #endif /* _NET_INETPEER_H */
-diff -Nur linux-3.14.17/include/net/ip.h linux-imx6-3.14/include/net/ip.h
---- linux-3.14.17/include/net/ip.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/net/ip.h 2014-09-11 18:06:14.066086140 +0200
-@@ -297,10 +297,9 @@
- }
- }
-
--u32 ip_idents_reserve(u32 hash, int segs);
--void __ip_select_ident(struct iphdr *iph, int segs);
-+void __ip_select_ident(struct iphdr *iph, struct dst_entry *dst, int more);
-
--static inline void ip_select_ident_segs(struct sk_buff *skb, struct sock *sk, int segs)
-+static inline void ip_select_ident(struct sk_buff *skb, struct dst_entry *dst, struct sock *sk)
- {
- struct iphdr *iph = ip_hdr(skb);
-
-@@ -310,20 +309,24 @@
- * does not change, they drop every other packet in
- * a TCP stream using header compression.
- */
-- if (sk && inet_sk(sk)->inet_daddr) {
-- iph->id = htons(inet_sk(sk)->inet_id);
-- inet_sk(sk)->inet_id += segs;
-- } else {
-- iph->id = 0;
-- }
-- } else {
-- __ip_select_ident(iph, segs);
-- }
-+ iph->id = (sk && inet_sk(sk)->inet_daddr) ?
-+ htons(inet_sk(sk)->inet_id++) : 0;
-+ } else
-+ __ip_select_ident(iph, dst, 0);
- }
-
--static inline void ip_select_ident(struct sk_buff *skb, struct sock *sk)
-+static inline void ip_select_ident_more(struct sk_buff *skb, struct dst_entry *dst, struct sock *sk, int more)
- {
-- ip_select_ident_segs(skb, sk, 1);
-+ struct iphdr *iph = ip_hdr(skb);
-+
-+ if ((iph->frag_off & htons(IP_DF)) && !skb->local_df) {
-+ if (sk && inet_sk(sk)->inet_daddr) {
-+ iph->id = htons(inet_sk(sk)->inet_id);
-+ inet_sk(sk)->inet_id += 1 + more;
-+ } else
-+ iph->id = 0;
-+ } else
-+ __ip_select_ident(iph, dst, more);
- }
-
- /*
-diff -Nur linux-3.14.17/include/net/ip_tunnels.h linux-imx6-3.14/include/net/ip_tunnels.h
---- linux-3.14.17/include/net/ip_tunnels.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/net/ip_tunnels.h 2014-09-11 18:06:14.066086140 +0200
-@@ -40,7 +40,6 @@
-
- struct ip_tunnel_dst {
- struct dst_entry __rcu *dst;
-- __be32 saddr;
- };
-
- struct ip_tunnel {
-diff -Nur linux-3.14.17/include/net/ipv6.h linux-imx6-3.14/include/net/ipv6.h
---- linux-3.14.17/include/net/ipv6.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/net/ipv6.h 2014-09-11 18:06:14.066086140 +0200
-@@ -660,6 +660,8 @@
- return __ipv6_addr_diff(a1, a2, sizeof(struct in6_addr));
- }
-
-+void ipv6_select_ident(struct frag_hdr *fhdr, struct rt6_info *rt);
-+
- int ip6_dst_hoplimit(struct dst_entry *dst);
-
- /*
-diff -Nur linux-3.14.17/include/net/mac80211.h linux-imx6-3.14/include/net/mac80211.h
---- linux-3.14.17/include/net/mac80211.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/net/mac80211.h 2014-09-11 18:06:14.082086204 +0200
+diff -Nur linux-3.14.22.orig/include/net/mac80211.h linux-3.14.22/include/net/mac80211.h
+--- linux-3.14.22.orig/include/net/mac80211.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/net/mac80211.h 2014-10-22 14:55:56.794220001 -0500
@@ -1895,7 +1895,7 @@
*
* Driver informs U-APSD client support by enabling
@@ -228705,9 +226345,9 @@ diff -Nur linux-3.14.17/include/net/mac80211.h linux-imx6-3.14/include/net/mac80
void (*channel_switch)(struct ieee80211_hw *hw,
struct ieee80211_channel_switch *ch_switch);
int (*napi_poll)(struct ieee80211_hw *hw, int budget);
-diff -Nur linux-3.14.17/include/net/rtnetlink.h linux-imx6-3.14/include/net/rtnetlink.h
---- linux-3.14.17/include/net/rtnetlink.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/net/rtnetlink.h 2014-09-11 18:06:14.118086347 +0200
+diff -Nur linux-3.14.22.orig/include/net/rtnetlink.h linux-3.14.22/include/net/rtnetlink.h
+--- linux-3.14.22.orig/include/net/rtnetlink.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/net/rtnetlink.h 2014-10-22 14:55:56.794220001 -0500
@@ -140,7 +140,7 @@
struct nlattr *tb[]);
int rtnl_configure_link(struct net_device *dev, const struct ifinfomsg *ifm);
@@ -228717,21 +226357,9 @@ diff -Nur linux-3.14.17/include/net/rtnetlink.h linux-imx6-3.14/include/net/rtne
#define MODULE_ALIAS_RTNL_LINK(kind) MODULE_ALIAS("rtnl-link-" kind)
-diff -Nur linux-3.14.17/include/net/secure_seq.h linux-imx6-3.14/include/net/secure_seq.h
---- linux-3.14.17/include/net/secure_seq.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/net/secure_seq.h 2014-09-11 18:06:14.142086442 +0200
-@@ -3,6 +3,8 @@
-
- #include <linux/types.h>
-
-+__u32 secure_ip_id(__be32 daddr);
-+__u32 secure_ipv6_id(const __be32 daddr[4]);
- u32 secure_ipv4_port_ephemeral(__be32 saddr, __be32 daddr, __be16 dport);
- u32 secure_ipv6_port_ephemeral(const __be32 *saddr, const __be32 *daddr,
- __be16 dport);
-diff -Nur linux-3.14.17/include/net/tso.h linux-imx6-3.14/include/net/tso.h
---- linux-3.14.17/include/net/tso.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/net/tso.h 2014-09-11 18:06:14.142086442 +0200
+diff -Nur linux-3.14.22.orig/include/net/tso.h linux-3.14.22/include/net/tso.h
+--- linux-3.14.22.orig/include/net/tso.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/net/tso.h 2014-10-22 14:55:56.794220001 -0500
@@ -0,0 +1,20 @@
+#ifndef _TSO_H
+#define _TSO_H
@@ -228753,9 +226381,9 @@ diff -Nur linux-3.14.17/include/net/tso.h linux-imx6-3.14/include/net/tso.h
+void tso_start(struct sk_buff *skb, struct tso_t *tso);
+
+#endif /* _TSO_H */
-diff -Nur linux-3.14.17/include/sound/wm8962.h linux-imx6-3.14/include/sound/wm8962.h
---- linux-3.14.17/include/sound/wm8962.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/sound/wm8962.h 2014-09-11 18:06:14.210086714 +0200
+diff -Nur linux-3.14.22.orig/include/sound/wm8962.h linux-3.14.22/include/sound/wm8962.h
+--- linux-3.14.22.orig/include/sound/wm8962.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/sound/wm8962.h 2014-10-22 14:55:56.794220001 -0500
@@ -55,6 +55,9 @@
* in a DC measurement configuration.
*/
@@ -228766,9 +226394,9 @@ diff -Nur linux-3.14.17/include/sound/wm8962.h linux-imx6-3.14/include/sound/wm8
};
#endif
-diff -Nur linux-3.14.17/include/trace/events/cpufreq_interactive.h linux-imx6-3.14/include/trace/events/cpufreq_interactive.h
---- linux-3.14.17/include/trace/events/cpufreq_interactive.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/trace/events/cpufreq_interactive.h 2014-09-11 18:06:14.210086714 +0200
+diff -Nur linux-3.14.22.orig/include/trace/events/cpufreq_interactive.h linux-3.14.22/include/trace/events/cpufreq_interactive.h
+--- linux-3.14.22.orig/include/trace/events/cpufreq_interactive.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/trace/events/cpufreq_interactive.h 2014-10-22 14:55:56.802220001 -0500
@@ -0,0 +1,112 @@
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM cpufreq_interactive
@@ -228882,9 +226510,9 @@ diff -Nur linux-3.14.17/include/trace/events/cpufreq_interactive.h linux-imx6-3.
+
+/* This part must be outside protection */
+#include <trace/define_trace.h>
-diff -Nur linux-3.14.17/include/uapi/linux/ipu.h linux-imx6-3.14/include/uapi/linux/ipu.h
---- linux-3.14.17/include/uapi/linux/ipu.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/uapi/linux/ipu.h 2014-09-11 18:06:14.378087384 +0200
+diff -Nur linux-3.14.22.orig/include/uapi/linux/ipu.h linux-3.14.22/include/uapi/linux/ipu.h
+--- linux-3.14.22.orig/include/uapi/linux/ipu.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/uapi/linux/ipu.h 2014-10-22 14:55:56.806220001 -0500
@@ -0,0 +1,282 @@
+/*
+ * Copyright (C) 2013 Freescale Semiconductor, Inc. All Rights Reserved
@@ -229168,9 +226796,9 @@ diff -Nur linux-3.14.17/include/uapi/linux/ipu.h linux-imx6-3.14/include/uapi/li
+#define IPU_FREE _IOW('I', 0x4, int)
+
+#endif
-diff -Nur linux-3.14.17/include/uapi/linux/isl29023.h linux-imx6-3.14/include/uapi/linux/isl29023.h
---- linux-3.14.17/include/uapi/linux/isl29023.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/uapi/linux/isl29023.h 2014-09-11 18:06:14.378087384 +0200
+diff -Nur linux-3.14.22.orig/include/uapi/linux/isl29023.h linux-3.14.22/include/uapi/linux/isl29023.h
+--- linux-3.14.22.orig/include/uapi/linux/isl29023.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/uapi/linux/isl29023.h 2014-10-22 14:55:56.806220001 -0500
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2011-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -229219,9 +226847,9 @@ diff -Nur linux-3.14.17/include/uapi/linux/isl29023.h linux-imx6-3.14/include/ua
+#define ISL29023_RANGE_64K 0x3
+
+#endif
-diff -Nur linux-3.14.17/include/uapi/linux/Kbuild linux-imx6-3.14/include/uapi/linux/Kbuild
---- linux-3.14.17/include/uapi/linux/Kbuild 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/uapi/linux/Kbuild 2014-09-11 18:06:14.290087032 +0200
+diff -Nur linux-3.14.22.orig/include/uapi/linux/Kbuild linux-3.14.22/include/uapi/linux/Kbuild
+--- linux-3.14.22.orig/include/uapi/linux/Kbuild 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/uapi/linux/Kbuild 2014-10-22 14:55:56.806220001 -0500
@@ -226,6 +226,7 @@
header-y += kvm_para.h
endif
@@ -229249,9 +226877,9 @@ diff -Nur linux-3.14.17/include/uapi/linux/Kbuild linux-imx6-3.14/include/uapi/l
header-y += qnx4_fs.h
header-y += qnxtypes.h
header-y += quota.h
-diff -Nur linux-3.14.17/include/uapi/linux/mxc_asrc.h linux-imx6-3.14/include/uapi/linux/mxc_asrc.h
---- linux-3.14.17/include/uapi/linux/mxc_asrc.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/uapi/linux/mxc_asrc.h 2014-09-11 18:06:14.386087416 +0200
+diff -Nur linux-3.14.22.orig/include/uapi/linux/mxc_asrc.h linux-3.14.22/include/uapi/linux/mxc_asrc.h
+--- linux-3.14.22.orig/include/uapi/linux/mxc_asrc.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/uapi/linux/mxc_asrc.h 2014-10-22 14:55:56.806220001 -0500
@@ -0,0 +1,143 @@
+/*
+ * Copyright 2008-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -229396,9 +227024,9 @@ diff -Nur linux-3.14.17/include/uapi/linux/mxc_asrc.h linux-imx6-3.14/include/ua
+ ASRC_INPUT_BUFFER_UNDERRUN = 0x10,
+};
+#endif/* __MXC_ASRC_UAPI_H__ */
-diff -Nur linux-3.14.17/include/uapi/linux/mxcfb.h linux-imx6-3.14/include/uapi/linux/mxcfb.h
---- linux-3.14.17/include/uapi/linux/mxcfb.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/uapi/linux/mxcfb.h 2014-09-11 18:06:14.386087416 +0200
+diff -Nur linux-3.14.22.orig/include/uapi/linux/mxcfb.h linux-3.14.22/include/uapi/linux/mxcfb.h
+--- linux-3.14.22.orig/include/uapi/linux/mxcfb.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/uapi/linux/mxcfb.h 2014-10-22 14:55:56.806220001 -0500
@@ -0,0 +1,174 @@
+/*
+ * Copyright (C) 2013 Freescale Semiconductor, Inc. All Rights Reserved
@@ -229574,9 +227202,9 @@ diff -Nur linux-3.14.17/include/uapi/linux/mxcfb.h linux-imx6-3.14/include/uapi/
+#define MXCFB_SET_UPDATE_SCHEME _IOW('F', 0x32, __u32)
+#define MXCFB_GET_WORK_BUFFER _IOWR('F', 0x34, unsigned long)
+#endif
-diff -Nur linux-3.14.17/include/uapi/linux/mxc_mlb.h linux-imx6-3.14/include/uapi/linux/mxc_mlb.h
---- linux-3.14.17/include/uapi/linux/mxc_mlb.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/uapi/linux/mxc_mlb.h 2014-09-11 18:06:14.386087416 +0200
+diff -Nur linux-3.14.22.orig/include/uapi/linux/mxc_mlb.h linux-3.14.22/include/uapi/linux/mxc_mlb.h
+--- linux-3.14.22.orig/include/uapi/linux/mxc_mlb.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/uapi/linux/mxc_mlb.h 2014-10-22 14:55:56.806220001 -0500
@@ -0,0 +1,55 @@
+/*
+ * mxc_mlb.h
@@ -229633,9 +227261,9 @@ diff -Nur linux-3.14.17/include/uapi/linux/mxc_mlb.h linux-imx6-3.14/include/uap
+
+
+#endif /* _MXC_MLB_H */
-diff -Nur linux-3.14.17/include/uapi/linux/mxc_v4l2.h linux-imx6-3.14/include/uapi/linux/mxc_v4l2.h
---- linux-3.14.17/include/uapi/linux/mxc_v4l2.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/uapi/linux/mxc_v4l2.h 2014-09-11 18:06:14.386087416 +0200
+diff -Nur linux-3.14.22.orig/include/uapi/linux/mxc_v4l2.h linux-3.14.22/include/uapi/linux/mxc_v4l2.h
+--- linux-3.14.22.orig/include/uapi/linux/mxc_v4l2.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/uapi/linux/mxc_v4l2.h 2014-10-22 14:55:56.806220001 -0500
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2013 Freescale Semiconductor, Inc. All Rights Reserved
@@ -229693,9 +227321,9 @@ diff -Nur linux-3.14.17/include/uapi/linux/mxc_v4l2.h linux-imx6-3.14/include/ua
+};
+
+#endif
-diff -Nur linux-3.14.17/include/uapi/linux/ptp_clock.h linux-imx6-3.14/include/uapi/linux/ptp_clock.h
---- linux-3.14.17/include/uapi/linux/ptp_clock.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/include/uapi/linux/ptp_clock.h 2014-09-11 18:06:14.414087528 +0200
+diff -Nur linux-3.14.22.orig/include/uapi/linux/ptp_clock.h linux-3.14.22/include/uapi/linux/ptp_clock.h
+--- linux-3.14.22.orig/include/uapi/linux/ptp_clock.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/include/uapi/linux/ptp_clock.h 2014-10-22 14:55:56.810220001 -0500
@@ -50,7 +50,8 @@
int n_ext_ts; /* Number of external time stamp channels. */
int n_per_out; /* Number of programmable periodic signals. */
@@ -229756,9 +227384,9 @@ diff -Nur linux-3.14.17/include/uapi/linux/ptp_clock.h linux-imx6-3.14/include/u
struct ptp_extts_event {
struct ptp_clock_time t; /* Time event occured. */
-diff -Nur linux-3.14.17/include/uapi/linux/pxp_device.h linux-imx6-3.14/include/uapi/linux/pxp_device.h
---- linux-3.14.17/include/uapi/linux/pxp_device.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/uapi/linux/pxp_device.h 2014-09-11 18:06:14.414087528 +0200
+diff -Nur linux-3.14.22.orig/include/uapi/linux/pxp_device.h linux-3.14.22/include/uapi/linux/pxp_device.h
+--- linux-3.14.22.orig/include/uapi/linux/pxp_device.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/uapi/linux/pxp_device.h 2014-10-22 14:55:56.810220001 -0500
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2013-2014 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -229823,9 +227451,9 @@ diff -Nur linux-3.14.17/include/uapi/linux/pxp_device.h linux-imx6-3.14/include/
+#define CACHE_FLUSH 0x4
+
+#endif
-diff -Nur linux-3.14.17/include/uapi/linux/pxp_dma.h linux-imx6-3.14/include/uapi/linux/pxp_dma.h
---- linux-3.14.17/include/uapi/linux/pxp_dma.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/uapi/linux/pxp_dma.h 2014-09-11 18:06:14.414087528 +0200
+diff -Nur linux-3.14.22.orig/include/uapi/linux/pxp_dma.h linux-3.14.22/include/uapi/linux/pxp_dma.h
+--- linux-3.14.22.orig/include/uapi/linux/pxp_dma.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/uapi/linux/pxp_dma.h 2014-10-22 14:55:56.810220001 -0500
@@ -0,0 +1,173 @@
+/*
+ * Copyright (C) 2013-2014 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -230000,9 +227628,9 @@ diff -Nur linux-3.14.17/include/uapi/linux/pxp_dma.h linux-imx6-3.14/include/uap
+
+
+#endif
-diff -Nur linux-3.14.17/include/video/mxc_edid.h linux-imx6-3.14/include/video/mxc_edid.h
---- linux-3.14.17/include/video/mxc_edid.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/video/mxc_edid.h 2014-09-11 18:06:14.438087624 +0200
+diff -Nur linux-3.14.22.orig/include/video/mxc_edid.h linux-3.14.22/include/video/mxc_edid.h
+--- linux-3.14.22.orig/include/video/mxc_edid.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/video/mxc_edid.h 2014-10-22 14:55:56.810220001 -0500
@@ -0,0 +1,105 @@
+/*
+ * Copyright 2009-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -230109,9 +227737,9 @@ diff -Nur linux-3.14.17/include/video/mxc_edid.h linux-imx6-3.14/include/video/m
+int mxc_edid_parse_ext_blk(unsigned char *edid, struct mxc_edid_cfg *cfg,
+ struct fb_monspecs *specs);
+#endif
-diff -Nur linux-3.14.17/include/video/mxc_hdmi.h linux-imx6-3.14/include/video/mxc_hdmi.h
---- linux-3.14.17/include/video/mxc_hdmi.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/include/video/mxc_hdmi.h 2014-09-11 18:06:14.438087624 +0200
+diff -Nur linux-3.14.22.orig/include/video/mxc_hdmi.h linux-3.14.22/include/video/mxc_hdmi.h
+--- linux-3.14.22.orig/include/video/mxc_hdmi.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/include/video/mxc_hdmi.h 2014-10-22 14:55:56.814220001 -0500
@@ -0,0 +1,1027 @@
+/*
+ * Copyright (C) 2011-2013 Freescale Semiconductor, Inc.
@@ -231140,23 +228768,9 @@ diff -Nur linux-3.14.17/include/video/mxc_hdmi.h linux-imx6-3.14/include/video/m
+
+
+#endif /* __MXC_HDMI_H__ */
-diff -Nur linux-3.14.17/init/main.c linux-imx6-3.14/init/main.c
---- linux-3.14.17/init/main.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/init/main.c 2014-09-11 18:06:14.446087655 +0200
-@@ -617,10 +617,6 @@
- if (efi_enabled(EFI_RUNTIME_SERVICES))
- efi_enter_virtual_mode();
- #endif
--#ifdef CONFIG_X86_ESPFIX64
-- /* Should be run before the first non-init thread is created */
-- init_espfix_bsp();
--#endif
- thread_info_cache_init();
- cred_init();
- fork_init(totalram_pages);
-diff -Nur linux-3.14.17/kernel/cpu.c linux-imx6-3.14/kernel/cpu.c
---- linux-3.14.17/kernel/cpu.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/kernel/cpu.c 2014-09-11 18:06:14.486087815 +0200
+diff -Nur linux-3.14.22.orig/kernel/cpu.c linux-3.14.22/kernel/cpu.c
+--- linux-3.14.22.orig/kernel/cpu.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/kernel/cpu.c 2014-10-22 14:55:56.814220001 -0500
@@ -722,3 +722,22 @@
{
cpumask_copy(to_cpumask(cpu_online_bits), src);
@@ -231180,9 +228794,9 @@ diff -Nur linux-3.14.17/kernel/cpu.c linux-imx6-3.14/kernel/cpu.c
+ atomic_notifier_call_chain(&idle_notifier, val, NULL);
+}
+EXPORT_SYMBOL_GPL(idle_notifier_call_chain);
-diff -Nur linux-3.14.17/kernel/irq/manage.c linux-imx6-3.14/kernel/irq/manage.c
---- linux-3.14.17/kernel/irq/manage.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/kernel/irq/manage.c 2014-09-11 18:06:14.630088390 +0200
+diff -Nur linux-3.14.22.orig/kernel/irq/manage.c linux-3.14.22/kernel/irq/manage.c
+--- linux-3.14.22.orig/kernel/irq/manage.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/kernel/irq/manage.c 2014-10-22 14:55:56.814220001 -0500
@@ -32,24 +32,10 @@
early_param("threadirqs", setup_forced_irqthreads);
#endif
@@ -231271,21 +228885,9 @@ diff -Nur linux-3.14.17/kernel/irq/manage.c linux-imx6-3.14/kernel/irq/manage.c
}
EXPORT_SYMBOL(synchronize_irq);
-diff -Nur linux-3.14.17/kernel/printk/printk.c linux-imx6-3.14/kernel/printk/printk.c
---- linux-3.14.17/kernel/printk/printk.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/kernel/printk/printk.c 2014-09-11 18:06:14.678088581 +0200
-@@ -2468,7 +2468,7 @@
- preempt_enable();
- }
-
--int printk_deferred(const char *fmt, ...)
-+int printk_sched(const char *fmt, ...)
- {
- unsigned long flags;
- va_list args;
-diff -Nur linux-3.14.17/kernel/relay.c linux-imx6-3.14/kernel/relay.c
---- linux-3.14.17/kernel/relay.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/kernel/relay.c 2014-09-11 18:06:14.746088855 +0200
+diff -Nur linux-3.14.22.orig/kernel/relay.c linux-3.14.22/kernel/relay.c
+--- linux-3.14.22.orig/kernel/relay.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/kernel/relay.c 2014-10-22 14:55:56.830220001 -0500
@@ -227,7 +227,7 @@
* relay_remove_buf - remove a channel buffer
* @kref: target kernel reference that contains the relay buffer
@@ -231295,45 +228897,9 @@ diff -Nur linux-3.14.17/kernel/relay.c linux-imx6-3.14/kernel/relay.c
* rchan_buf_struct and the channel buffer. Should only be called from
* kref_put().
*/
-diff -Nur linux-3.14.17/kernel/sched/core.c linux-imx6-3.14/kernel/sched/core.c
---- linux-3.14.17/kernel/sched/core.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/kernel/sched/core.c 2014-09-11 18:06:14.750088870 +0200
-@@ -1322,7 +1322,7 @@
- * leave kernel.
- */
- if (p->mm && printk_ratelimit()) {
-- printk_deferred("process %d (%s) no longer affine to cpu%d\n",
-+ printk_sched("process %d (%s) no longer affine to cpu%d\n",
- task_pid_nr(p), p->comm, cpu);
- }
- }
-diff -Nur linux-3.14.17/kernel/sched/deadline.c linux-imx6-3.14/kernel/sched/deadline.c
---- linux-3.14.17/kernel/sched/deadline.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/kernel/sched/deadline.c 2014-09-11 18:06:14.754088885 +0200
-@@ -329,7 +329,7 @@
-
- if (!lag_once) {
- lag_once = true;
-- printk_deferred("sched: DL replenish lagged to much\n");
-+ printk_sched("sched: DL replenish lagged to much\n");
- }
- dl_se->deadline = rq_clock(rq) + pi_se->dl_deadline;
- dl_se->runtime = pi_se->dl_runtime;
-diff -Nur linux-3.14.17/kernel/sched/rt.c linux-imx6-3.14/kernel/sched/rt.c
---- linux-3.14.17/kernel/sched/rt.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/kernel/sched/rt.c 2014-09-11 18:06:14.754088885 +0200
-@@ -837,7 +837,7 @@
-
- if (!once) {
- once = true;
-- printk_deferred("sched: RT throttling activated\n");
-+ printk_sched("sched: RT throttling activated\n");
- }
- } else {
- /*
-diff -Nur linux-3.14.17/kernel/signal.c linux-imx6-3.14/kernel/signal.c
---- linux-3.14.17/kernel/signal.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/kernel/signal.c 2014-09-11 18:06:14.754088885 +0200
+diff -Nur linux-3.14.22.orig/kernel/signal.c linux-3.14.22/kernel/signal.c
+--- linux-3.14.22.orig/kernel/signal.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/kernel/signal.c 2014-10-22 14:55:56.830220001 -0500
@@ -2382,7 +2382,7 @@
* @regs: user register state
* @stepping: nonzero if debugger single-step or block-step in use
@@ -231343,102 +228909,9 @@ diff -Nur linux-3.14.17/kernel/signal.c linux-imx6-3.14/kernel/signal.c
* delivered. It updates the blocked signals accordingly (@ka->sa.sa_mask
* is always blocked, and the signal itself is blocked unless %SA_NODEFER
* is set in @ka->sa.sa_flags. Tracing is notified.
-diff -Nur linux-3.14.17/kernel/time/clockevents.c linux-imx6-3.14/kernel/time/clockevents.c
---- linux-3.14.17/kernel/time/clockevents.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/kernel/time/clockevents.c 2014-09-11 18:06:14.758088900 +0200
-@@ -146,8 +146,7 @@
- {
- /* Nothing to do if we already reached the limit */
- if (dev->min_delta_ns >= MIN_DELTA_LIMIT) {
-- printk_deferred(KERN_WARNING
-- "CE: Reprogramming failure. Giving up\n");
-+ printk(KERN_WARNING "CE: Reprogramming failure. Giving up\n");
- dev->next_event.tv64 = KTIME_MAX;
- return -ETIME;
- }
-@@ -160,10 +159,9 @@
- if (dev->min_delta_ns > MIN_DELTA_LIMIT)
- dev->min_delta_ns = MIN_DELTA_LIMIT;
-
-- printk_deferred(KERN_WARNING
-- "CE: %s increased min_delta_ns to %llu nsec\n",
-- dev->name ? dev->name : "?",
-- (unsigned long long) dev->min_delta_ns);
-+ printk(KERN_WARNING "CE: %s increased min_delta_ns to %llu nsec\n",
-+ dev->name ? dev->name : "?",
-+ (unsigned long long) dev->min_delta_ns);
- return 0;
- }
-
-diff -Nur linux-3.14.17/kernel/time/sched_clock.c linux-imx6-3.14/kernel/time/sched_clock.c
---- linux-3.14.17/kernel/time/sched_clock.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/kernel/time/sched_clock.c 2014-09-11 18:06:15.154090207 +0200
-@@ -204,8 +204,7 @@
-
- static int sched_clock_suspend(void)
- {
-- update_sched_clock();
-- hrtimer_cancel(&sched_clock_timer);
-+ sched_clock_poll(&sched_clock_timer);
- cd.suspended = true;
- return 0;
- }
-@@ -213,7 +212,6 @@
- static void sched_clock_resume(void)
- {
- cd.epoch_cyc = read_sched_clock();
-- hrtimer_start(&sched_clock_timer, cd.wrap_kt, HRTIMER_MODE_REL);
- cd.suspended = false;
- }
-
-diff -Nur linux-3.14.17/kernel/trace/trace.c linux-imx6-3.14/kernel/trace/trace.c
---- linux-3.14.17/kernel/trace/trace.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/kernel/trace/trace.c 2014-09-11 18:06:15.162090371 +0200
-@@ -811,7 +811,7 @@
- { trace_clock_local, "local", 1 },
- { trace_clock_global, "global", 1 },
- { trace_clock_counter, "counter", 0 },
-- { trace_clock_jiffies, "uptime", 0 },
-+ { trace_clock_jiffies, "uptime", 1 },
- { trace_clock, "perf", 1 },
- ARCH_TRACE_CLOCKS
- };
-diff -Nur linux-3.14.17/kernel/trace/trace_clock.c linux-imx6-3.14/kernel/trace/trace_clock.c
---- linux-3.14.17/kernel/trace/trace_clock.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/kernel/trace/trace_clock.c 2014-09-11 18:06:15.162090371 +0200
-@@ -59,14 +59,13 @@
-
- /*
- * trace_jiffy_clock(): Simply use jiffies as a clock counter.
-- * Note that this use of jiffies_64 is not completely safe on
-- * 32-bit systems. But the window is tiny, and the effect if
-- * we are affected is that we will have an obviously bogus
-- * timestamp on a trace event - i.e. not life threatening.
- */
- u64 notrace trace_clock_jiffies(void)
- {
-- return jiffies_64_to_clock_t(jiffies_64 - INITIAL_JIFFIES);
-+ u64 jiffy = jiffies - INITIAL_JIFFIES;
-+
-+ /* Return nsecs */
-+ return (u64)jiffies_to_usecs(jiffy) * 1000ULL;
- }
-
- /*
-diff -Nur linux-3.14.17/lib/btree.c linux-imx6-3.14/lib/btree.c
---- linux-3.14.17/lib/btree.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/lib/btree.c 2014-09-11 18:06:15.278090964 +0200
-@@ -198,7 +198,6 @@
-
- void btree_destroy(struct btree_head *head)
- {
-- mempool_free(head->node, head->mempool);
- mempool_destroy(head->mempool);
- head->mempool = NULL;
- }
-diff -Nur linux-3.14.17/linaro/configs/android.conf linux-imx6-3.14/linaro/configs/android.conf
---- linux-3.14.17/linaro/configs/android.conf 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/linaro/configs/android.conf 2014-09-11 18:06:15.338091214 +0200
+diff -Nur linux-3.14.22.orig/linaro/configs/android.conf linux-3.14.22/linaro/configs/android.conf
+--- linux-3.14.22.orig/linaro/configs/android.conf 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/linaro/configs/android.conf 2014-10-22 14:55:56.834220001 -0500
@@ -0,0 +1,42 @@
+CONFIG_IPV6=y
+# CONFIG_IPV6_SIT is not set
@@ -231482,9 +228955,9 @@ diff -Nur linux-3.14.17/linaro/configs/android.conf linux-imx6-3.14/linaro/confi
+CONFIG_ADF_MEMBLOCK=y
+CONFIG_DMA_SHARED_BUFFER=y
+CONFIG_TUN=y
-diff -Nur linux-3.14.17/linaro/configs/arndale.conf linux-imx6-3.14/linaro/configs/arndale.conf
---- linux-3.14.17/linaro/configs/arndale.conf 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/linaro/configs/arndale.conf 2014-09-11 18:06:15.342091230 +0200
+diff -Nur linux-3.14.22.orig/linaro/configs/arndale.conf linux-3.14.22/linaro/configs/arndale.conf
+--- linux-3.14.22.orig/linaro/configs/arndale.conf 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/linaro/configs/arndale.conf 2014-10-22 14:55:56.834220001 -0500
@@ -0,0 +1,66 @@
+CONFIG_KALLSYMS_ALL=y
+CONFIG_PARTITION_ADVANCED=y
@@ -231552,31 +229025,31 @@ diff -Nur linux-3.14.17/linaro/configs/arndale.conf linux-imx6-3.14/linaro/confi
+CONFIG_RCU_CPU_STALL_TIMEOUT=60
+CONFIG_DEBUG_USER=y
+CONFIG_TUN=y
-diff -Nur linux-3.14.17/linaro/configs/bigendian.conf linux-imx6-3.14/linaro/configs/bigendian.conf
---- linux-3.14.17/linaro/configs/bigendian.conf 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/linaro/configs/bigendian.conf 2014-09-11 18:06:15.342091230 +0200
+diff -Nur linux-3.14.22.orig/linaro/configs/bigendian.conf linux-3.14.22/linaro/configs/bigendian.conf
+--- linux-3.14.22.orig/linaro/configs/bigendian.conf 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/linaro/configs/bigendian.conf 2014-10-22 14:55:56.834220001 -0500
@@ -0,0 +1,4 @@
+CONFIG_CPU_BIG_ENDIAN=y
+CONFIG_CPU_ENDIAN_BE8=y
+# CONFIG_VIRTUALIZATION is not set
+# CONFIG_MMC_DW_IDMAC is not set
-diff -Nur linux-3.14.17/linaro/configs/big-LITTLE-IKS.conf linux-imx6-3.14/linaro/configs/big-LITTLE-IKS.conf
---- linux-3.14.17/linaro/configs/big-LITTLE-IKS.conf 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/linaro/configs/big-LITTLE-IKS.conf 2014-09-11 18:06:15.342091230 +0200
+diff -Nur linux-3.14.22.orig/linaro/configs/big-LITTLE-IKS.conf linux-3.14.22/linaro/configs/big-LITTLE-IKS.conf
+--- linux-3.14.22.orig/linaro/configs/big-LITTLE-IKS.conf 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/linaro/configs/big-LITTLE-IKS.conf 2014-10-22 14:55:56.834220001 -0500
@@ -0,0 +1,5 @@
+CONFIG_BIG_LITTLE=y
+CONFIG_BL_SWITCHER=y
+CONFIG_ARM_DT_BL_CPUFREQ=y
+CONFIG_ARM_VEXPRESS_BL_CPUFREQ=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
-diff -Nur linux-3.14.17/linaro/configs/debug.conf linux-imx6-3.14/linaro/configs/debug.conf
---- linux-3.14.17/linaro/configs/debug.conf 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/linaro/configs/debug.conf 2014-09-11 18:06:15.342091230 +0200
+diff -Nur linux-3.14.22.orig/linaro/configs/debug.conf linux-3.14.22/linaro/configs/debug.conf
+--- linux-3.14.22.orig/linaro/configs/debug.conf 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/linaro/configs/debug.conf 2014-10-22 14:55:56.834220001 -0500
@@ -0,0 +1 @@
+CONFIG_PROVE_LOCKING=y
-diff -Nur linux-3.14.17/linaro/configs/distribution.conf linux-imx6-3.14/linaro/configs/distribution.conf
---- linux-3.14.17/linaro/configs/distribution.conf 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/linaro/configs/distribution.conf 2014-09-11 18:06:15.342091230 +0200
+diff -Nur linux-3.14.22.orig/linaro/configs/distribution.conf linux-3.14.22/linaro/configs/distribution.conf
+--- linux-3.14.22.orig/linaro/configs/distribution.conf 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/linaro/configs/distribution.conf 2014-10-22 14:55:56.834220001 -0500
@@ -0,0 +1,49 @@
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_CGROUPS=y
@@ -231627,9 +229100,9 @@ diff -Nur linux-3.14.17/linaro/configs/distribution.conf linux-imx6-3.14/linaro/
+CONFIG_HUGETLB_PAGE=y
+CONFIG_TRANSPARENT_HUGEPAGE=y
+CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
-diff -Nur linux-3.14.17/linaro/configs/highbank.conf linux-imx6-3.14/linaro/configs/highbank.conf
---- linux-3.14.17/linaro/configs/highbank.conf 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/linaro/configs/highbank.conf 2014-09-11 18:06:15.342091230 +0200
+diff -Nur linux-3.14.22.orig/linaro/configs/highbank.conf linux-3.14.22/linaro/configs/highbank.conf
+--- linux-3.14.22.orig/linaro/configs/highbank.conf 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/linaro/configs/highbank.conf 2014-10-22 14:55:56.834220001 -0500
@@ -0,0 +1,40 @@
+CONFIG_EXPERIMENTAL=y
+CONFIG_NO_HZ=y
@@ -231671,9 +229144,9 @@ diff -Nur linux-3.14.17/linaro/configs/highbank.conf linux-imx6-3.14/linaro/conf
+CONFIG_RTC_DRV_PL031=y
+CONFIG_DMADEVICES=y
+CONFIG_PL330_DMA=y
-diff -Nur linux-3.14.17/linaro/configs/kvm-guest.conf linux-imx6-3.14/linaro/configs/kvm-guest.conf
---- linux-3.14.17/linaro/configs/kvm-guest.conf 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/linaro/configs/kvm-guest.conf 2014-09-11 18:06:15.342091230 +0200
+diff -Nur linux-3.14.22.orig/linaro/configs/kvm-guest.conf linux-3.14.22/linaro/configs/kvm-guest.conf
+--- linux-3.14.22.orig/linaro/configs/kvm-guest.conf 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/linaro/configs/kvm-guest.conf 2014-10-22 14:55:56.834220001 -0500
@@ -0,0 +1,11 @@
+CONFIG_BALLOON_COMPACTION=y
+CONFIG_VIRTIO_BLK=y
@@ -231686,9 +229159,9 @@ diff -Nur linux-3.14.17/linaro/configs/kvm-guest.conf linux-imx6-3.14/linaro/con
+CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
+CONFIG_VIRTUALIZATION=y
+# CONFIG_THUMB2_KERNEL is not set
-diff -Nur linux-3.14.17/linaro/configs/kvm-host.conf linux-imx6-3.14/linaro/configs/kvm-host.conf
---- linux-3.14.17/linaro/configs/kvm-host.conf 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/linaro/configs/kvm-host.conf 2014-09-11 18:06:15.342091230 +0200
+diff -Nur linux-3.14.22.orig/linaro/configs/kvm-host.conf linux-3.14.22/linaro/configs/kvm-host.conf
+--- linux-3.14.22.orig/linaro/configs/kvm-host.conf 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/linaro/configs/kvm-host.conf 2014-10-22 14:55:56.834220001 -0500
@@ -0,0 +1,11 @@
+CONFIG_VIRTUALIZATION=y
+CONFIG_ARM_LPAE=y
@@ -231701,9 +229174,9 @@ diff -Nur linux-3.14.17/linaro/configs/kvm-host.conf linux-imx6-3.14/linaro/conf
+CONFIG_KVM_MMIO=y
+CONFIG_KVM=y
+CONFIG_BLK_DEV_NBD=m
-diff -Nur linux-3.14.17/linaro/configs/linaro-base.conf linux-imx6-3.14/linaro/configs/linaro-base.conf
---- linux-3.14.17/linaro/configs/linaro-base.conf 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/linaro/configs/linaro-base.conf 2014-09-11 18:06:15.342091230 +0200
+diff -Nur linux-3.14.22.orig/linaro/configs/linaro-base.conf linux-3.14.22/linaro/configs/linaro-base.conf
+--- linux-3.14.22.orig/linaro/configs/linaro-base.conf 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/linaro/configs/linaro-base.conf 2014-10-22 14:55:56.834220001 -0500
@@ -0,0 +1,115 @@
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
@@ -231820,9 +229293,9 @@ diff -Nur linux-3.14.17/linaro/configs/linaro-base.conf linux-imx6-3.14/linaro/c
+CONFIG_LSM_MMAP_MIN_ADDR=4096
+CONFIG_SECURITY_SELINUX=y
+CONFIG_EXT4_FS_SECURITY=y
-diff -Nur linux-3.14.17/linaro/configs/omap4.conf linux-imx6-3.14/linaro/configs/omap4.conf
---- linux-3.14.17/linaro/configs/omap4.conf 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/linaro/configs/omap4.conf 2014-09-11 18:06:15.342091230 +0200
+diff -Nur linux-3.14.22.orig/linaro/configs/omap4.conf linux-3.14.22/linaro/configs/omap4.conf
+--- linux-3.14.22.orig/linaro/configs/omap4.conf 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/linaro/configs/omap4.conf 2014-10-22 14:55:56.838220001 -0500
@@ -0,0 +1,196 @@
+CONFIG_EXPERT=y
+CONFIG_KPROBES=y
@@ -232020,17 +229493,17 @@ diff -Nur linux-3.14.17/linaro/configs/omap4.conf linux-imx6-3.14/linaro/configs
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+CONFIG_LIBCRC32C=y
+# CONFIG_CPU_FREQ is not set
-diff -Nur linux-3.14.17/linaro/configs/preempt-rt.conf linux-imx6-3.14/linaro/configs/preempt-rt.conf
---- linux-3.14.17/linaro/configs/preempt-rt.conf 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/linaro/configs/preempt-rt.conf 2014-09-11 18:06:15.342091230 +0200
+diff -Nur linux-3.14.22.orig/linaro/configs/preempt-rt.conf linux-3.14.22/linaro/configs/preempt-rt.conf
+--- linux-3.14.22.orig/linaro/configs/preempt-rt.conf 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/linaro/configs/preempt-rt.conf 2014-10-22 14:55:56.838220001 -0500
@@ -0,0 +1,4 @@
+CONFIG_PREEMPT=y
+CONFIG_PREEMPT_RT_FULL=y
+CONFIG_SLUB=y
+# CONFIG_CPU_FREQ is not set
-diff -Nur linux-3.14.17/linaro/configs/vexpress64.conf linux-imx6-3.14/linaro/configs/vexpress64.conf
---- linux-3.14.17/linaro/configs/vexpress64.conf 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/linaro/configs/vexpress64.conf 2014-09-11 18:06:15.342091230 +0200
+diff -Nur linux-3.14.22.orig/linaro/configs/vexpress64.conf linux-3.14.22/linaro/configs/vexpress64.conf
+--- linux-3.14.22.orig/linaro/configs/vexpress64.conf 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/linaro/configs/vexpress64.conf 2014-10-22 14:55:56.838220001 -0500
@@ -0,0 +1,56 @@
+CONFIG_ARCH_VEXPRESS=y
+CONFIG_SMP=y
@@ -232088,9 +229561,9 @@ diff -Nur linux-3.14.17/linaro/configs/vexpress64.conf linux-imx6-3.14/linaro/co
+CONFIG_ARM_DT_BL_CPUFREQ=y
+CONFIG_ARM64_CPUIDLE=y
+CONFIG_ARM64_CRYPTO=y
-diff -Nur linux-3.14.17/linaro/configs/vexpress.conf linux-imx6-3.14/linaro/configs/vexpress.conf
---- linux-3.14.17/linaro/configs/vexpress.conf 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/linaro/configs/vexpress.conf 2014-09-11 18:06:15.342091230 +0200
+diff -Nur linux-3.14.22.orig/linaro/configs/vexpress.conf linux-3.14.22/linaro/configs/vexpress.conf
+--- linux-3.14.22.orig/linaro/configs/vexpress.conf 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/linaro/configs/vexpress.conf 2014-10-22 14:55:56.838220001 -0500
@@ -0,0 +1,64 @@
+CONFIG_ARCH_VEXPRESS=y
+CONFIG_ARCH_VEXPRESS_CA9X4=y
@@ -232156,14 +229629,14 @@ diff -Nur linux-3.14.17/linaro/configs/vexpress.conf linux-imx6-3.14/linaro/conf
+CONFIG_VIRTIO_BLK=y
+CONFIG_VIRTIO_MMIO=y
+CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
-diff -Nur linux-3.14.17/linaro/configs/vexpress-tuning.conf linux-imx6-3.14/linaro/configs/vexpress-tuning.conf
---- linux-3.14.17/linaro/configs/vexpress-tuning.conf 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/linaro/configs/vexpress-tuning.conf 2014-09-11 18:06:15.342091230 +0200
+diff -Nur linux-3.14.22.orig/linaro/configs/vexpress-tuning.conf linux-3.14.22/linaro/configs/vexpress-tuning.conf
+--- linux-3.14.22.orig/linaro/configs/vexpress-tuning.conf 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/linaro/configs/vexpress-tuning.conf 2014-10-22 14:55:56.838220001 -0500
@@ -0,0 +1 @@
+# CONFIG_PROVE_LOCKING is not set
-diff -Nur linux-3.14.17/linaro/configs/xen.conf linux-imx6-3.14/linaro/configs/xen.conf
---- linux-3.14.17/linaro/configs/xen.conf 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/linaro/configs/xen.conf 2014-09-11 18:06:15.342091230 +0200
+diff -Nur linux-3.14.22.orig/linaro/configs/xen.conf linux-3.14.22/linaro/configs/xen.conf
+--- linux-3.14.22.orig/linaro/configs/xen.conf 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/linaro/configs/xen.conf 2014-10-22 14:55:56.838220001 -0500
@@ -0,0 +1,7 @@
+CONFIG_XEN=y
+CONFIG_XEN_NETDEV_FRONTEND=y
@@ -232172,9 +229645,9 @@ diff -Nur linux-3.14.17/linaro/configs/xen.conf linux-imx6-3.14/linaro/configs/x
+CONFIG_XEN_BLKDEV_BACKEND=y
+CONFIG_XENFS=y
+CONFIG_XEN_COMPAT_XENFS=y
-diff -Nur linux-3.14.17/MAINTAINERS linux-imx6-3.14/MAINTAINERS
---- linux-3.14.17/MAINTAINERS 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/MAINTAINERS 2014-09-11 18:05:52.461999847 +0200
+diff -Nur linux-3.14.22.orig/MAINTAINERS linux-3.14.22/MAINTAINERS
+--- linux-3.14.22.orig/MAINTAINERS 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/MAINTAINERS 2014-10-22 14:55:56.842220001 -0500
@@ -5511,6 +5511,14 @@
F: drivers/net/macvlan.c
F: include/linux/if_macvlan.h
@@ -232190,21 +229663,9 @@ diff -Nur linux-3.14.17/MAINTAINERS linux-imx6-3.14/MAINTAINERS
MAN-PAGES: MANUAL PAGES FOR LINUX -- Sections 2, 3, 4, 5, and 7
M: Michael Kerrisk <mtk.manpages@gmail.com>
W: http://www.kernel.org/doc/man-pages
-diff -Nur linux-3.14.17/Makefile linux-imx6-3.14/Makefile
---- linux-3.14.17/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/Makefile 2014-09-11 18:09:02.718753157 +0200
-@@ -639,8 +639,6 @@
- endif
- endif
-
--KBUILD_CFLAGS += $(call cc-option, -fno-var-tracking-assignments)
--
- ifdef CONFIG_DEBUG_INFO
- KBUILD_CFLAGS += -g
- KBUILD_AFLAGS += -Wa,--gdwarf-2
-diff -Nur linux-3.14.17/mm/cma.c linux-imx6-3.14/mm/cma.c
---- linux-3.14.17/mm/cma.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/mm/cma.c 2014-09-11 18:06:15.342091230 +0200
+diff -Nur linux-3.14.22.orig/mm/cma.c linux-3.14.22/mm/cma.c
+--- linux-3.14.22.orig/mm/cma.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/mm/cma.c 2014-10-22 14:55:56.842220001 -0500
@@ -0,0 +1,356 @@
+/*
+ * Contiguous Memory Allocator
@@ -232562,20 +230023,9 @@ diff -Nur linux-3.14.17/mm/cma.c linux-imx6-3.14/mm/cma.c
+
+ return true;
+}
-diff -Nur linux-3.14.17/mm/hugetlb.c linux-imx6-3.14/mm/hugetlb.c
---- linux-3.14.17/mm/hugetlb.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/mm/hugetlb.c 2014-09-11 18:06:15.346091247 +0200
-@@ -2422,7 +2422,6 @@
- } else {
- if (cow)
- huge_ptep_set_wrprotect(src, addr, src_pte);
-- entry = huge_ptep_get(src_pte);
- ptepage = pte_page(entry);
- get_page(ptepage);
- page_dup_rmap(ptepage);
-diff -Nur linux-3.14.17/mm/Kconfig linux-imx6-3.14/mm/Kconfig
---- linux-3.14.17/mm/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/mm/Kconfig 2014-09-11 18:06:15.342091230 +0200
+diff -Nur linux-3.14.22.orig/mm/Kconfig linux-3.14.22/mm/Kconfig
+--- linux-3.14.22.orig/mm/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/mm/Kconfig 2014-10-22 14:55:56.842220001 -0500
@@ -514,6 +514,17 @@
processing calls such as dma_alloc_from_contiguous().
This option does not affect warning and error messages.
@@ -232594,18 +230044,18 @@ diff -Nur linux-3.14.17/mm/Kconfig linux-imx6-3.14/mm/Kconfig
config ZBUD
tristate
default n
-diff -Nur linux-3.14.17/mm/Makefile linux-imx6-3.14/mm/Makefile
---- linux-3.14.17/mm/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/mm/Makefile 2014-09-11 18:06:15.342091230 +0200
+diff -Nur linux-3.14.22.orig/mm/Makefile linux-3.14.22/mm/Makefile
+--- linux-3.14.22.orig/mm/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/mm/Makefile 2014-10-22 14:55:56.842220001 -0500
@@ -61,3 +61,4 @@
obj-$(CONFIG_MEMORY_ISOLATION) += page_isolation.o
obj-$(CONFIG_ZBUD) += zbud.o
obj-$(CONFIG_ZSMALLOC) += zsmalloc.o
+obj-$(CONFIG_CMA) += cma.o
-diff -Nur linux-3.14.17/mm/memblock.c linux-imx6-3.14/mm/memblock.c
---- linux-3.14.17/mm/memblock.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/mm/memblock.c 2014-09-11 18:06:15.346091247 +0200
-@@ -975,22 +975,35 @@
+diff -Nur linux-3.14.22.orig/mm/memblock.c linux-3.14.22/mm/memblock.c
+--- linux-3.14.22.orig/mm/memblock.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/mm/memblock.c 2014-10-22 14:55:56.842220001 -0500
+@@ -974,22 +974,35 @@
}
#endif /* CONFIG_HAVE_MEMBLOCK_NODE_MAP */
@@ -232645,93 +230095,9 @@ diff -Nur linux-3.14.17/mm/memblock.c linux-imx6-3.14/mm/memblock.c
phys_addr_t __init memblock_alloc_nid(phys_addr_t size, phys_addr_t align, int nid)
{
return memblock_alloc_base_nid(size, align, MEMBLOCK_ALLOC_ACCESSIBLE, nid);
-diff -Nur linux-3.14.17/mm/memcontrol.c linux-imx6-3.14/mm/memcontrol.c
---- linux-3.14.17/mm/memcontrol.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/mm/memcontrol.c 2014-09-11 18:06:15.346091247 +0200
-@@ -5670,12 +5670,8 @@
- {
- struct mem_cgroup_eventfd_list *ev;
-
-- spin_lock(&memcg_oom_lock);
--
- list_for_each_entry(ev, &memcg->oom_notify, list)
- eventfd_signal(ev->eventfd, 1);
--
-- spin_unlock(&memcg_oom_lock);
- return 0;
- }
-
-diff -Nur linux-3.14.17/mm/page_alloc.c linux-imx6-3.14/mm/page_alloc.c
---- linux-3.14.17/mm/page_alloc.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/mm/page_alloc.c 2014-09-11 18:06:15.354091278 +0200
-@@ -2434,7 +2434,7 @@
- gfp_to_alloc_flags(gfp_t gfp_mask)
- {
- int alloc_flags = ALLOC_WMARK_MIN | ALLOC_CPUSET;
-- const bool atomic = !(gfp_mask & (__GFP_WAIT | __GFP_NO_KSWAPD));
-+ const gfp_t wait = gfp_mask & __GFP_WAIT;
-
- /* __GFP_HIGH is assumed to be the same as ALLOC_HIGH to save a branch. */
- BUILD_BUG_ON(__GFP_HIGH != (__force gfp_t) ALLOC_HIGH);
-@@ -2443,20 +2443,20 @@
- * The caller may dip into page reserves a bit more if the caller
- * cannot run direct reclaim, or if the caller has realtime scheduling
- * policy or is asking for __GFP_HIGH memory. GFP_ATOMIC requests will
-- * set both ALLOC_HARDER (atomic == true) and ALLOC_HIGH (__GFP_HIGH).
-+ * set both ALLOC_HARDER (!wait) and ALLOC_HIGH (__GFP_HIGH).
- */
- alloc_flags |= (__force int) (gfp_mask & __GFP_HIGH);
-
-- if (atomic) {
-+ if (!wait) {
- /*
-- * Not worth trying to allocate harder for __GFP_NOMEMALLOC even
-- * if it can't schedule.
-+ * Not worth trying to allocate harder for
-+ * __GFP_NOMEMALLOC even if it can't schedule.
- */
-- if (!(gfp_mask & __GFP_NOMEMALLOC))
-+ if (!(gfp_mask & __GFP_NOMEMALLOC))
- alloc_flags |= ALLOC_HARDER;
- /*
-- * Ignore cpuset mems for GFP_ATOMIC rather than fail, see the
-- * comment for __cpuset_node_allowed_softwall().
-+ * Ignore cpuset if GFP_ATOMIC (!wait) rather than fail alloc.
-+ * See also cpuset_zone_allowed() comment in kernel/cpuset.c.
- */
- alloc_flags &= ~ALLOC_CPUSET;
- } else if (unlikely(rt_task(current)) && !in_interrupt())
-diff -Nur linux-3.14.17/mm/page-writeback.c linux-imx6-3.14/mm/page-writeback.c
---- linux-3.14.17/mm/page-writeback.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/mm/page-writeback.c 2014-09-11 18:06:15.354091278 +0200
-@@ -1324,9 +1324,9 @@
- *bdi_thresh = bdi_dirty_limit(bdi, dirty_thresh);
-
- if (bdi_bg_thresh)
-- *bdi_bg_thresh = dirty_thresh ? div_u64((u64)*bdi_thresh *
-- background_thresh,
-- dirty_thresh) : 0;
-+ *bdi_bg_thresh = div_u64((u64)*bdi_thresh *
-+ background_thresh,
-+ dirty_thresh);
-
- /*
- * In order to avoid the stacked BDI deadlock we need
-diff -Nur linux-3.14.17/mm/slab_common.c linux-imx6-3.14/mm/slab_common.c
---- linux-3.14.17/mm/slab_common.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/mm/slab_common.c 2014-09-11 18:06:15.358091295 +0200
-@@ -56,7 +56,7 @@
- continue;
- }
-
--#if !defined(CONFIG_SLUB)
-+#if !defined(CONFIG_SLUB) || !defined(CONFIG_SLUB_DEBUG_ON)
- /*
- * For simplicity, we won't check this in the list of memcg
- * caches. We have control over memcg naming, and if there
-diff -Nur linux-3.14.17/net/atm/svc.c linux-imx6-3.14/net/atm/svc.c
---- linux-3.14.17/net/atm/svc.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/atm/svc.c 2014-09-11 18:06:15.426091565 +0200
+diff -Nur linux-3.14.22.orig/net/atm/svc.c linux-3.14.22/net/atm/svc.c
+--- linux-3.14.22.orig/net/atm/svc.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/net/atm/svc.c 2014-10-22 14:55:56.842220001 -0500
@@ -263,17 +263,11 @@
goto out;
}
@@ -232752,65 +230118,9 @@ diff -Nur linux-3.14.17/net/atm/svc.c linux-imx6-3.14/net/atm/svc.c
error = vcc_connect(sock, vcc->itf, vcc->vpi, vcc->vci);
if (!error)
sock->state = SS_CONNECTED;
-diff -Nur linux-3.14.17/net/batman-adv/fragmentation.c linux-imx6-3.14/net/batman-adv/fragmentation.c
---- linux-3.14.17/net/batman-adv/fragmentation.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/batman-adv/fragmentation.c 2014-09-11 18:06:15.434091598 +0200
-@@ -128,7 +128,6 @@
- {
- struct batadv_frag_table_entry *chain;
- struct batadv_frag_list_entry *frag_entry_new = NULL, *frag_entry_curr;
-- struct batadv_frag_list_entry *frag_entry_last = NULL;
- struct batadv_frag_packet *frag_packet;
- uint8_t bucket;
- uint16_t seqno, hdr_size = sizeof(struct batadv_frag_packet);
-@@ -181,14 +180,11 @@
- ret = true;
- goto out;
- }
--
-- /* store current entry because it could be the last in list */
-- frag_entry_last = frag_entry_curr;
- }
-
-- /* Reached the end of the list, so insert after 'frag_entry_last'. */
-- if (likely(frag_entry_last)) {
-- hlist_add_after(&frag_entry_last->list, &frag_entry_new->list);
-+ /* Reached the end of the list, so insert after 'frag_entry_curr'. */
-+ if (likely(frag_entry_curr)) {
-+ hlist_add_after(&frag_entry_curr->list, &frag_entry_new->list);
- chain->size += skb->len - hdr_size;
- chain->timestamp = jiffies;
- ret = true;
-diff -Nur linux-3.14.17/net/compat.c linux-imx6-3.14/net/compat.c
---- linux-3.14.17/net/compat.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/compat.c 2014-09-11 18:06:15.510091900 +0200
-@@ -85,7 +85,7 @@
- {
- int tot_len;
-
-- if (kern_msg->msg_name && kern_msg->msg_namelen) {
-+ if (kern_msg->msg_namelen) {
- if (mode == VERIFY_READ) {
- int err = move_addr_to_kernel(kern_msg->msg_name,
- kern_msg->msg_namelen,
-@@ -93,11 +93,10 @@
- if (err < 0)
- return err;
- }
-- kern_msg->msg_name = kern_address;
-- } else {
-+ if (kern_msg->msg_name)
-+ kern_msg->msg_name = kern_address;
-+ } else
- kern_msg->msg_name = NULL;
-- kern_msg->msg_namelen = 0;
-- }
-
- tot_len = iov_from_user_compat_to_kern(kern_iov,
- (struct compat_iovec __user *)kern_msg->msg_iov,
-diff -Nur linux-3.14.17/net/core/dev.c linux-imx6-3.14/net/core/dev.c
---- linux-3.14.17/net/core/dev.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/core/dev.c 2014-09-11 18:06:15.510091900 +0200
+diff -Nur linux-3.14.22.orig/net/core/dev.c linux-3.14.22/net/core/dev.c
+--- linux-3.14.22.orig/net/core/dev.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/net/core/dev.c 2014-10-22 14:55:56.842220001 -0500
@@ -3453,7 +3453,7 @@
* @rx_handler: receive handler to register
* @rx_handler_data: data pointer that is used by rx handler
@@ -232820,45 +230130,9 @@ diff -Nur linux-3.14.17/net/core/dev.c linux-imx6-3.14/net/core/dev.c
* called from __netif_receive_skb. A negative errno code is returned
* on a failure.
*
-diff -Nur linux-3.14.17/net/core/iovec.c linux-imx6-3.14/net/core/iovec.c
---- linux-3.14.17/net/core/iovec.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/core/iovec.c 2014-09-11 18:06:15.514091916 +0200
-@@ -39,7 +39,7 @@
- {
- int size, ct, err;
-
-- if (m->msg_name && m->msg_namelen) {
-+ if (m->msg_namelen) {
- if (mode == VERIFY_READ) {
- void __user *namep;
- namep = (void __user __force *) m->msg_name;
-@@ -48,10 +48,10 @@
- if (err < 0)
- return err;
- }
-- m->msg_name = address;
-+ if (m->msg_name)
-+ m->msg_name = address;
- } else {
- m->msg_name = NULL;
-- m->msg_namelen = 0;
- }
-
- size = m->msg_iovlen * sizeof(struct iovec);
-@@ -107,10 +107,6 @@
- int memcpy_fromiovecend(unsigned char *kdata, const struct iovec *iov,
- int offset, int len)
- {
-- /* No data? Done! */
-- if (len == 0)
-- return 0;
--
- /* Skip over the finished iovecs */
- while (offset >= iov->iov_len) {
- offset -= iov->iov_len;
-diff -Nur linux-3.14.17/net/core/Makefile linux-imx6-3.14/net/core/Makefile
---- linux-3.14.17/net/core/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/core/Makefile 2014-09-11 18:06:15.510091900 +0200
+diff -Nur linux-3.14.22.orig/net/core/Makefile linux-3.14.22/net/core/Makefile
+--- linux-3.14.22.orig/net/core/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/net/core/Makefile 2014-10-22 14:55:56.842220001 -0500
@@ -9,7 +9,7 @@
obj-y += dev.o ethtool.o dev_addr_lists.o dst.o netevent.o \
@@ -232868,10 +230142,10 @@ diff -Nur linux-3.14.17/net/core/Makefile linux-imx6-3.14/net/core/Makefile
obj-$(CONFIG_XFRM) += flow.o
obj-y += net-sysfs.o
-diff -Nur linux-3.14.17/net/core/rtnetlink.c linux-imx6-3.14/net/core/rtnetlink.c
---- linux-3.14.17/net/core/rtnetlink.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/core/rtnetlink.c 2014-09-11 18:06:15.518091933 +0200
-@@ -1156,73 +1156,7 @@
+diff -Nur linux-3.14.22.orig/net/core/rtnetlink.c linux-3.14.22/net/core/rtnetlink.c
+--- linux-3.14.22.orig/net/core/rtnetlink.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/net/core/rtnetlink.c 2014-10-22 14:55:56.842220001 -0500
+@@ -1157,73 +1157,7 @@
return -EMSGSIZE;
}
@@ -232946,7 +230220,7 @@ diff -Nur linux-3.14.17/net/core/rtnetlink.c linux-imx6-3.14/net/core/rtnetlink.
[IFLA_IFNAME] = { .type = NLA_STRING, .len = IFNAMSIZ-1 },
[IFLA_ADDRESS] = { .type = NLA_BINARY, .len = MAX_ADDR_LEN },
[IFLA_BROADCAST] = { .type = NLA_BINARY, .len = MAX_ADDR_LEN },
-@@ -1249,7 +1183,6 @@
+@@ -1250,7 +1184,6 @@
[IFLA_NUM_RX_QUEUES] = { .type = NLA_U32 },
[IFLA_PHYS_PORT_ID] = { .type = NLA_BINARY, .len = MAX_PHYS_PORT_ID_LEN },
};
@@ -232954,7 +230228,7 @@ diff -Nur linux-3.14.17/net/core/rtnetlink.c linux-imx6-3.14/net/core/rtnetlink.
static const struct nla_policy ifla_info_policy[IFLA_INFO_MAX+1] = {
[IFLA_INFO_KIND] = { .type = NLA_STRING },
-@@ -1287,6 +1220,61 @@
+@@ -1288,6 +1221,61 @@
[IFLA_PORT_RESPONSE] = { .type = NLA_U16, },
};
@@ -233016,58 +230290,9 @@ diff -Nur linux-3.14.17/net/core/rtnetlink.c linux-imx6-3.14/net/core/rtnetlink.
struct net *rtnl_link_get_net(struct net *src_net, struct nlattr *tb[])
{
struct net *net;
-diff -Nur linux-3.14.17/net/core/secure_seq.c linux-imx6-3.14/net/core/secure_seq.c
---- linux-3.14.17/net/core/secure_seq.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/core/secure_seq.c 2014-09-11 18:06:15.518091933 +0200
-@@ -85,6 +85,31 @@
- #endif
-
- #ifdef CONFIG_INET
-+__u32 secure_ip_id(__be32 daddr)
-+{
-+ u32 hash[MD5_DIGEST_WORDS];
-+
-+ net_secret_init();
-+ hash[0] = (__force __u32) daddr;
-+ hash[1] = net_secret[13];
-+ hash[2] = net_secret[14];
-+ hash[3] = net_secret[15];
-+
-+ md5_transform(hash, net_secret);
-+
-+ return hash[0];
-+}
-+
-+__u32 secure_ipv6_id(const __be32 daddr[4])
-+{
-+ __u32 hash[4];
-+
-+ net_secret_init();
-+ memcpy(hash, daddr, 16);
-+ md5_transform(hash, net_secret);
-+
-+ return hash[0];
-+}
-
- __u32 secure_tcp_sequence_number(__be32 saddr, __be32 daddr,
- __be16 sport, __be16 dport)
-diff -Nur linux-3.14.17/net/core/skbuff.c linux-imx6-3.14/net/core/skbuff.c
---- linux-3.14.17/net/core/skbuff.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/core/skbuff.c 2014-09-11 18:06:15.518091933 +0200
-@@ -2968,9 +2968,9 @@
- tail = nskb;
-
- __copy_skb_header(nskb, head_skb);
-+ nskb->mac_len = head_skb->mac_len;
-
- skb_headers_offset_update(nskb, skb_headroom(nskb) - headroom);
-- skb_reset_mac_len(nskb);
-
- skb_copy_from_linear_data_offset(head_skb, -tnl_hlen,
- nskb->data - tnl_hlen,
-diff -Nur linux-3.14.17/net/core/tso.c linux-imx6-3.14/net/core/tso.c
---- linux-3.14.17/net/core/tso.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/net/core/tso.c 2014-09-11 18:06:15.522091948 +0200
+diff -Nur linux-3.14.22.orig/net/core/tso.c linux-3.14.22/net/core/tso.c
+--- linux-3.14.22.orig/net/core/tso.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/net/core/tso.c 2014-10-22 14:55:56.842220001 -0500
@@ -0,0 +1,72 @@
+#include <net/ip.h>
+#include <net/tso.h>
@@ -233141,9 +230366,9 @@ diff -Nur linux-3.14.17/net/core/tso.c linux-imx6-3.14/net/core/tso.c
+ tso->next_frag_idx++;
+ }
+}
-diff -Nur linux-3.14.17/net/ieee802154/Kconfig linux-imx6-3.14/net/ieee802154/Kconfig
---- linux-3.14.17/net/ieee802154/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/ieee802154/Kconfig 2014-09-11 18:06:15.578092171 +0200
+diff -Nur linux-3.14.22.orig/net/ieee802154/Kconfig linux-3.14.22/net/ieee802154/Kconfig
+--- linux-3.14.22.orig/net/ieee802154/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/net/ieee802154/Kconfig 2014-10-22 14:55:56.846220001 -0500
@@ -15,7 +15,7 @@
depends on IEEE802154 && IPV6
select 6LOWPAN_IPHC
@@ -233153,445 +230378,9 @@ diff -Nur linux-3.14.17/net/ieee802154/Kconfig linux-imx6-3.14/net/ieee802154/Kc
config 6LOWPAN_IPHC
tristate
-diff -Nur linux-3.14.17/net/ipv4/igmp.c linux-imx6-3.14/net/ipv4/igmp.c
---- linux-3.14.17/net/ipv4/igmp.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/ipv4/igmp.c 2014-09-11 18:06:15.586092204 +0200
-@@ -369,7 +369,7 @@
- pip->saddr = fl4.saddr;
- pip->protocol = IPPROTO_IGMP;
- pip->tot_len = 0; /* filled in later */
-- ip_select_ident(skb, NULL);
-+ ip_select_ident(skb, &rt->dst, NULL);
- ((u8 *)&pip[1])[0] = IPOPT_RA;
- ((u8 *)&pip[1])[1] = 4;
- ((u8 *)&pip[1])[2] = 0;
-@@ -714,7 +714,7 @@
- iph->daddr = dst;
- iph->saddr = fl4.saddr;
- iph->protocol = IPPROTO_IGMP;
-- ip_select_ident(skb, NULL);
-+ ip_select_ident(skb, &rt->dst, NULL);
- ((u8 *)&iph[1])[0] = IPOPT_RA;
- ((u8 *)&iph[1])[1] = 4;
- ((u8 *)&iph[1])[2] = 0;
-diff -Nur linux-3.14.17/net/ipv4/inetpeer.c linux-imx6-3.14/net/ipv4/inetpeer.c
---- linux-3.14.17/net/ipv4/inetpeer.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/ipv4/inetpeer.c 2014-09-11 18:06:15.586092204 +0200
-@@ -26,7 +26,20 @@
- * Theory of operations.
- * We keep one entry for each peer IP address. The nodes contains long-living
- * information about the peer which doesn't depend on routes.
-+ * At this moment this information consists only of ID field for the next
-+ * outgoing IP packet. This field is incremented with each packet as encoded
-+ * in inet_getid() function (include/net/inetpeer.h).
-+ * At the moment of writing this notes identifier of IP packets is generated
-+ * to be unpredictable using this code only for packets subjected
-+ * (actually or potentially) to defragmentation. I.e. DF packets less than
-+ * PMTU in size when local fragmentation is disabled use a constant ID and do
-+ * not use this code (see ip_select_ident() in include/net/ip.h).
- *
-+ * Route cache entries hold references to our nodes.
-+ * New cache entries get references via lookup by destination IP address in
-+ * the avl tree. The reference is grabbed only when it's needed i.e. only
-+ * when we try to output IP packet which needs an unpredictable ID (see
-+ * __ip_select_ident() in net/ipv4/route.c).
- * Nodes are removed only when reference counter goes to 0.
- * When it's happened the node may be removed when a sufficient amount of
- * time has been passed since its last use. The less-recently-used entry can
-@@ -49,6 +62,7 @@
- * refcnt: atomically against modifications on other CPU;
- * usually under some other lock to prevent node disappearing
- * daddr: unchangeable
-+ * ip_id_count: atomic value (no lock needed)
- */
-
- static struct kmem_cache *peer_cachep __read_mostly;
-@@ -483,6 +497,10 @@
- p->daddr = *daddr;
- atomic_set(&p->refcnt, 1);
- atomic_set(&p->rid, 0);
-+ atomic_set(&p->ip_id_count,
-+ (daddr->family == AF_INET) ?
-+ secure_ip_id(daddr->addr.a4) :
-+ secure_ipv6_id(daddr->addr.a6));
- p->metrics[RTAX_LOCK-1] = INETPEER_METRICS_NEW;
- p->rate_tokens = 0;
- /* 60*HZ is arbitrary, but chosen enough high so that the first
-diff -Nur linux-3.14.17/net/ipv4/ipmr.c linux-imx6-3.14/net/ipv4/ipmr.c
---- linux-3.14.17/net/ipv4/ipmr.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/ipv4/ipmr.c 2014-09-11 18:06:15.590092220 +0200
-@@ -1663,7 +1663,7 @@
- iph->protocol = IPPROTO_IPIP;
- iph->ihl = 5;
- iph->tot_len = htons(skb->len);
-- ip_select_ident(skb, NULL);
-+ ip_select_ident(skb, skb_dst(skb), NULL);
- ip_send_check(iph);
-
- memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt));
-diff -Nur linux-3.14.17/net/ipv4/ip_output.c linux-imx6-3.14/net/ipv4/ip_output.c
---- linux-3.14.17/net/ipv4/ip_output.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/ipv4/ip_output.c 2014-09-11 18:06:15.590092220 +0200
-@@ -148,7 +148,7 @@
- iph->daddr = (opt && opt->opt.srr ? opt->opt.faddr : daddr);
- iph->saddr = saddr;
- iph->protocol = sk->sk_protocol;
-- ip_select_ident(skb, sk);
-+ ip_select_ident(skb, &rt->dst, sk);
-
- if (opt && opt->opt.optlen) {
- iph->ihl += opt->opt.optlen>>2;
-@@ -386,7 +386,8 @@
- ip_options_build(skb, &inet_opt->opt, inet->inet_daddr, rt, 0);
- }
-
-- ip_select_ident_segs(skb, sk, skb_shinfo(skb)->gso_segs ?: 1);
-+ ip_select_ident_more(skb, &rt->dst, sk,
-+ (skb_shinfo(skb)->gso_segs ?: 1) - 1);
-
- skb->priority = sk->sk_priority;
- skb->mark = sk->sk_mark;
-@@ -1337,7 +1338,7 @@
- iph->ttl = ttl;
- iph->protocol = sk->sk_protocol;
- ip_copy_addrs(iph, fl4);
-- ip_select_ident(skb, sk);
-+ ip_select_ident(skb, &rt->dst, sk);
-
- if (opt) {
- iph->ihl += opt->optlen>>2;
-diff -Nur linux-3.14.17/net/ipv4/ip_tunnel.c linux-imx6-3.14/net/ipv4/ip_tunnel.c
---- linux-3.14.17/net/ipv4/ip_tunnel.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/ipv4/ip_tunnel.c 2014-09-11 18:06:15.590092220 +0200
-@@ -69,25 +69,23 @@
- }
-
- static void __tunnel_dst_set(struct ip_tunnel_dst *idst,
-- struct dst_entry *dst, __be32 saddr)
-+ struct dst_entry *dst)
- {
- struct dst_entry *old_dst;
-
- dst_clone(dst);
- old_dst = xchg((__force struct dst_entry **)&idst->dst, dst);
- dst_release(old_dst);
-- idst->saddr = saddr;
- }
-
--static void tunnel_dst_set(struct ip_tunnel *t,
-- struct dst_entry *dst, __be32 saddr)
-+static void tunnel_dst_set(struct ip_tunnel *t, struct dst_entry *dst)
- {
-- __tunnel_dst_set(this_cpu_ptr(t->dst_cache), dst, saddr);
-+ __tunnel_dst_set(this_cpu_ptr(t->dst_cache), dst);
- }
-
- static void tunnel_dst_reset(struct ip_tunnel *t)
- {
-- tunnel_dst_set(t, NULL, 0);
-+ tunnel_dst_set(t, NULL);
- }
-
- void ip_tunnel_dst_reset_all(struct ip_tunnel *t)
-@@ -95,25 +93,20 @@
- int i;
-
- for_each_possible_cpu(i)
-- __tunnel_dst_set(per_cpu_ptr(t->dst_cache, i), NULL, 0);
-+ __tunnel_dst_set(per_cpu_ptr(t->dst_cache, i), NULL);
- }
- EXPORT_SYMBOL(ip_tunnel_dst_reset_all);
-
--static struct rtable *tunnel_rtable_get(struct ip_tunnel *t,
-- u32 cookie, __be32 *saddr)
-+static struct rtable *tunnel_rtable_get(struct ip_tunnel *t, u32 cookie)
- {
-- struct ip_tunnel_dst *idst;
- struct dst_entry *dst;
-
- rcu_read_lock();
-- idst = this_cpu_ptr(t->dst_cache);
-- dst = rcu_dereference(idst->dst);
-+ dst = rcu_dereference(this_cpu_ptr(t->dst_cache)->dst);
- if (dst && !atomic_inc_not_zero(&dst->__refcnt))
- dst = NULL;
- if (dst) {
-- if (!dst->obsolete || dst->ops->check(dst, cookie)) {
-- *saddr = idst->saddr;
-- } else {
-+ if (dst->obsolete && dst->ops->check(dst, cookie) == NULL) {
- tunnel_dst_reset(t);
- dst_release(dst);
- dst = NULL;
-@@ -369,7 +362,7 @@
-
- if (!IS_ERR(rt)) {
- tdev = rt->dst.dev;
-- tunnel_dst_set(tunnel, &rt->dst, fl4.saddr);
-+ tunnel_dst_set(tunnel, &rt->dst);
- ip_rt_put(rt);
- }
- if (dev->type != ARPHRD_ETHER)
-@@ -613,7 +606,7 @@
- init_tunnel_flow(&fl4, protocol, dst, tnl_params->saddr,
- tunnel->parms.o_key, RT_TOS(tos), tunnel->parms.link);
-
-- rt = connected ? tunnel_rtable_get(tunnel, 0, &fl4.saddr) : NULL;
-+ rt = connected ? tunnel_rtable_get(tunnel, 0) : NULL;
-
- if (!rt) {
- rt = ip_route_output_key(tunnel->net, &fl4);
-@@ -623,7 +616,7 @@
- goto tx_error;
- }
- if (connected)
-- tunnel_dst_set(tunnel, &rt->dst, fl4.saddr);
-+ tunnel_dst_set(tunnel, &rt->dst);
- }
-
- if (rt->dst.dev == dev) {
-diff -Nur linux-3.14.17/net/ipv4/ip_tunnel_core.c linux-imx6-3.14/net/ipv4/ip_tunnel_core.c
---- linux-3.14.17/net/ipv4/ip_tunnel_core.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/ipv4/ip_tunnel_core.c 2014-09-11 18:06:15.590092220 +0200
-@@ -74,7 +74,7 @@
- iph->daddr = dst;
- iph->saddr = src;
- iph->ttl = ttl;
-- __ip_select_ident(iph, skb_shinfo(skb)->gso_segs ?: 1);
-+ __ip_select_ident(iph, &rt->dst, (skb_shinfo(skb)->gso_segs ?: 1) - 1);
-
- err = ip_local_out(skb);
- if (unlikely(net_xmit_eval(err)))
-diff -Nur linux-3.14.17/net/ipv4/raw.c linux-imx6-3.14/net/ipv4/raw.c
---- linux-3.14.17/net/ipv4/raw.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/ipv4/raw.c 2014-09-11 18:06:15.626092363 +0200
-@@ -389,7 +389,7 @@
- iph->check = 0;
- iph->tot_len = htons(length);
- if (!iph->id)
-- ip_select_ident(skb, NULL);
-+ ip_select_ident(skb, &rt->dst, NULL);
-
- iph->check = ip_fast_csum((unsigned char *)iph, iph->ihl);
- }
-diff -Nur linux-3.14.17/net/ipv4/route.c linux-imx6-3.14/net/ipv4/route.c
---- linux-3.14.17/net/ipv4/route.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/ipv4/route.c 2014-09-11 18:06:15.630092380 +0200
-@@ -89,7 +89,6 @@
- #include <linux/rcupdate.h>
- #include <linux/times.h>
- #include <linux/slab.h>
--#include <linux/jhash.h>
- #include <net/dst.h>
- #include <net/net_namespace.h>
- #include <net/protocol.h>
-@@ -463,45 +462,39 @@
- return neigh_create(&arp_tbl, pkey, dev);
- }
-
--#define IP_IDENTS_SZ 2048u
--struct ip_ident_bucket {
-- atomic_t id;
-- u32 stamp32;
--};
--
--static struct ip_ident_bucket *ip_idents __read_mostly;
--
--/* In order to protect privacy, we add a perturbation to identifiers
-- * if one generator is seldom used. This makes hard for an attacker
-- * to infer how many packets were sent between two points in time.
-+/*
-+ * Peer allocation may fail only in serious out-of-memory conditions. However
-+ * we still can generate some output.
-+ * Random ID selection looks a bit dangerous because we have no chances to
-+ * select ID being unique in a reasonable period of time.
-+ * But broken packet identifier may be better than no packet at all.
- */
--u32 ip_idents_reserve(u32 hash, int segs)
-+static void ip_select_fb_ident(struct iphdr *iph)
- {
-- struct ip_ident_bucket *bucket = ip_idents + hash % IP_IDENTS_SZ;
-- u32 old = ACCESS_ONCE(bucket->stamp32);
-- u32 now = (u32)jiffies;
-- u32 delta = 0;
--
-- if (old != now && cmpxchg(&bucket->stamp32, old, now) == old)
-- delta = prandom_u32_max(now - old);
-+ static DEFINE_SPINLOCK(ip_fb_id_lock);
-+ static u32 ip_fallback_id;
-+ u32 salt;
-
-- return atomic_add_return(segs + delta, &bucket->id) - segs;
-+ spin_lock_bh(&ip_fb_id_lock);
-+ salt = secure_ip_id((__force __be32)ip_fallback_id ^ iph->daddr);
-+ iph->id = htons(salt & 0xFFFF);
-+ ip_fallback_id = salt;
-+ spin_unlock_bh(&ip_fb_id_lock);
- }
--EXPORT_SYMBOL(ip_idents_reserve);
-
--void __ip_select_ident(struct iphdr *iph, int segs)
-+void __ip_select_ident(struct iphdr *iph, struct dst_entry *dst, int more)
- {
-- static u32 ip_idents_hashrnd __read_mostly;
-- u32 hash, id;
-+ struct net *net = dev_net(dst->dev);
-+ struct inet_peer *peer;
-
-- net_get_random_once(&ip_idents_hashrnd, sizeof(ip_idents_hashrnd));
-+ peer = inet_getpeer_v4(net->ipv4.peers, iph->daddr, 1);
-+ if (peer) {
-+ iph->id = htons(inet_getid(peer, more));
-+ inet_putpeer(peer);
-+ return;
-+ }
-
-- hash = jhash_3words((__force u32)iph->daddr,
-- (__force u32)iph->saddr,
-- iph->protocol,
-- ip_idents_hashrnd);
-- id = ip_idents_reserve(hash, segs);
-- iph->id = htons(id);
-+ ip_select_fb_ident(iph);
- }
- EXPORT_SYMBOL(__ip_select_ident);
-
-@@ -2725,12 +2718,6 @@
- {
- int rc = 0;
-
-- ip_idents = kmalloc(IP_IDENTS_SZ * sizeof(*ip_idents), GFP_KERNEL);
-- if (!ip_idents)
-- panic("IP: failed to allocate ip_idents\n");
--
-- prandom_bytes(ip_idents, IP_IDENTS_SZ * sizeof(*ip_idents));
--
- #ifdef CONFIG_IP_ROUTE_CLASSID
- ip_rt_acct = __alloc_percpu(256 * sizeof(struct ip_rt_acct), __alignof__(struct ip_rt_acct));
- if (!ip_rt_acct)
-diff -Nur linux-3.14.17/net/ipv4/tcp_vegas.c linux-imx6-3.14/net/ipv4/tcp_vegas.c
---- linux-3.14.17/net/ipv4/tcp_vegas.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/ipv4/tcp_vegas.c 2014-09-11 18:06:15.642092428 +0200
-@@ -219,8 +219,7 @@
- * This is:
- * (actual rate in segments) * baseRTT
- */
-- target_cwnd = (u64)tp->snd_cwnd * vegas->baseRTT;
-- do_div(target_cwnd, rtt);
-+ target_cwnd = tp->snd_cwnd * vegas->baseRTT / rtt;
-
- /* Calculate the difference between the window we had,
- * and the window we would like to have. This quantity
-diff -Nur linux-3.14.17/net/ipv4/tcp_veno.c linux-imx6-3.14/net/ipv4/tcp_veno.c
---- linux-3.14.17/net/ipv4/tcp_veno.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/ipv4/tcp_veno.c 2014-09-11 18:06:15.642092428 +0200
-@@ -145,7 +145,7 @@
-
- rtt = veno->minrtt;
-
-- target_cwnd = (u64)tp->snd_cwnd * veno->basertt;
-+ target_cwnd = (tp->snd_cwnd * veno->basertt);
- target_cwnd <<= V_PARAM_SHIFT;
- do_div(target_cwnd, rtt);
-
-diff -Nur linux-3.14.17/net/ipv4/xfrm4_mode_tunnel.c linux-imx6-3.14/net/ipv4/xfrm4_mode_tunnel.c
---- linux-3.14.17/net/ipv4/xfrm4_mode_tunnel.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/ipv4/xfrm4_mode_tunnel.c 2014-09-11 18:06:15.642092428 +0200
-@@ -117,12 +117,12 @@
-
- top_iph->frag_off = (flags & XFRM_STATE_NOPMTUDISC) ?
- 0 : (XFRM_MODE_SKB_CB(skb)->frag_off & htons(IP_DF));
-+ ip_select_ident(skb, dst->child, NULL);
-
- top_iph->ttl = ip4_dst_hoplimit(dst->child);
-
- top_iph->saddr = x->props.saddr.a4;
- top_iph->daddr = x->id.daddr.a4;
-- ip_select_ident(skb, NULL);
-
- return 0;
- }
-diff -Nur linux-3.14.17/net/ipv6/ip6_output.c linux-imx6-3.14/net/ipv6/ip6_output.c
---- linux-3.14.17/net/ipv6/ip6_output.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/ipv6/ip6_output.c 2014-09-11 18:06:15.654092474 +0200
-@@ -537,20 +537,6 @@
- skb_copy_secmark(to, from);
- }
-
--static void ipv6_select_ident(struct frag_hdr *fhdr, struct rt6_info *rt)
--{
-- static u32 ip6_idents_hashrnd __read_mostly;
-- u32 hash, id;
--
-- net_get_random_once(&ip6_idents_hashrnd, sizeof(ip6_idents_hashrnd));
--
-- hash = __ipv6_addr_jhash(&rt->rt6i_dst.addr, ip6_idents_hashrnd);
-- hash = __ipv6_addr_jhash(&rt->rt6i_src.addr, hash);
--
-- id = ip_idents_reserve(hash, 1);
-- fhdr->identification = htonl(id);
--}
--
- int ip6_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *))
- {
- struct sk_buff *frag;
-diff -Nur linux-3.14.17/net/ipv6/output_core.c linux-imx6-3.14/net/ipv6/output_core.c
---- linux-3.14.17/net/ipv6/output_core.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/ipv6/output_core.c 2014-09-11 18:06:15.662092507 +0200
-@@ -7,6 +7,29 @@
- #include <net/ip6_fib.h>
- #include <net/addrconf.h>
-
-+void ipv6_select_ident(struct frag_hdr *fhdr, struct rt6_info *rt)
-+{
-+ static atomic_t ipv6_fragmentation_id;
-+ int ident;
-+
-+#if IS_ENABLED(CONFIG_IPV6)
-+ if (rt && !(rt->dst.flags & DST_NOPEER)) {
-+ struct inet_peer *peer;
-+ struct net *net;
-+
-+ net = dev_net(rt->dst.dev);
-+ peer = inet_getpeer_v6(net->ipv6.peers, &rt->rt6i_dst.addr, 1);
-+ if (peer) {
-+ fhdr->identification = htonl(inet_getid(peer, 0));
-+ inet_putpeer(peer);
-+ return;
-+ }
-+ }
-+#endif
-+ ident = atomic_inc_return(&ipv6_fragmentation_id);
-+ fhdr->identification = htonl(ident);
-+}
-+EXPORT_SYMBOL(ipv6_select_ident);
-
- int ip6_find_1stfragopt(struct sk_buff *skb, u8 **nexthdr)
- {
-diff -Nur linux-3.14.17/net/l2tp/l2tp_ppp.c linux-imx6-3.14/net/l2tp/l2tp_ppp.c
---- linux-3.14.17/net/l2tp/l2tp_ppp.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/l2tp/l2tp_ppp.c 2014-09-11 18:06:15.742092826 +0200
-@@ -1368,7 +1368,7 @@
- int err;
-
- if (level != SOL_PPPOL2TP)
-- return -EINVAL;
-+ return udp_prot.setsockopt(sk, level, optname, optval, optlen);
-
- if (optlen < sizeof(int))
- return -EINVAL;
-@@ -1494,7 +1494,7 @@
- struct pppol2tp_session *ps;
-
- if (level != SOL_PPPOL2TP)
-- return -EINVAL;
-+ return udp_prot.getsockopt(sk, level, optname, optval, optlen);
-
- if (get_user(len, optlen))
- return -EFAULT;
-diff -Nur linux-3.14.17/net/mac80211/driver-ops.h linux-imx6-3.14/net/mac80211/driver-ops.h
---- linux-3.14.17/net/mac80211/driver-ops.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/mac80211/driver-ops.h 2014-09-11 18:06:15.754092874 +0200
+diff -Nur linux-3.14.22.orig/net/mac80211/driver-ops.h linux-3.14.22/net/mac80211/driver-ops.h
+--- linux-3.14.22.orig/net/mac80211/driver-ops.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/net/mac80211/driver-ops.h 2014-10-22 14:55:56.846220001 -0500
@@ -722,13 +722,19 @@
}
@@ -233613,9 +230402,9 @@ diff -Nur linux-3.14.17/net/mac80211/driver-ops.h linux-imx6-3.14/net/mac80211/d
trace_drv_return_void(local);
}
-diff -Nur linux-3.14.17/net/mac80211/ibss.c linux-imx6-3.14/net/mac80211/ibss.c
---- linux-3.14.17/net/mac80211/ibss.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/mac80211/ibss.c 2014-09-11 18:06:15.754092874 +0200
+diff -Nur linux-3.14.22.orig/net/mac80211/ibss.c linux-3.14.22/net/mac80211/ibss.c
+--- linux-3.14.22.orig/net/mac80211/ibss.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/net/mac80211/ibss.c 2014-10-22 14:55:56.846220001 -0500
@@ -386,7 +386,7 @@
presp->head_len, 0, GFP_KERNEL);
cfg80211_put_bss(local->hw.wiphy, bss);
@@ -233625,69 +230414,9 @@ diff -Nur linux-3.14.17/net/mac80211/ibss.c linux-imx6-3.14/net/mac80211/ibss.c
}
static void ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata,
-diff -Nur linux-3.14.17/net/mac80211/tx.c linux-imx6-3.14/net/mac80211/tx.c
---- linux-3.14.17/net/mac80211/tx.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/mac80211/tx.c 2014-09-11 18:06:15.778092969 +0200
-@@ -414,9 +414,6 @@
- if (ieee80211_has_order(hdr->frame_control))
- return TX_CONTINUE;
-
-- if (ieee80211_is_probe_req(hdr->frame_control))
-- return TX_CONTINUE;
--
- if (tx->local->hw.flags & IEEE80211_HW_QUEUE_CONTROL)
- info->hw_queue = tx->sdata->vif.cab_queue;
-
-@@ -467,7 +464,6 @@
- {
- struct sta_info *sta = tx->sta;
- struct ieee80211_tx_info *info = IEEE80211_SKB_CB(tx->skb);
-- struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)tx->skb->data;
- struct ieee80211_local *local = tx->local;
-
- if (unlikely(!sta))
-@@ -478,15 +474,6 @@
- !(info->flags & IEEE80211_TX_CTL_NO_PS_BUFFER))) {
- int ac = skb_get_queue_mapping(tx->skb);
-
-- /* only deauth, disassoc and action are bufferable MMPDUs */
-- if (ieee80211_is_mgmt(hdr->frame_control) &&
-- !ieee80211_is_deauth(hdr->frame_control) &&
-- !ieee80211_is_disassoc(hdr->frame_control) &&
-- !ieee80211_is_action(hdr->frame_control)) {
-- info->flags |= IEEE80211_TX_CTL_NO_PS_BUFFER;
-- return TX_CONTINUE;
-- }
--
- ps_dbg(sta->sdata, "STA %pM aid %d: PS buffer for AC %d\n",
- sta->sta.addr, sta->sta.aid, ac);
- if (tx->local->total_ps_buffered >= TOTAL_MAX_TX_BUFFER)
-@@ -545,8 +532,22 @@
- static ieee80211_tx_result debug_noinline
- ieee80211_tx_h_ps_buf(struct ieee80211_tx_data *tx)
- {
-+ struct ieee80211_tx_info *info = IEEE80211_SKB_CB(tx->skb);
-+ struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)tx->skb->data;
-+
- if (unlikely(tx->flags & IEEE80211_TX_PS_BUFFERED))
- return TX_CONTINUE;
-+
-+ /* only deauth, disassoc and action are bufferable MMPDUs */
-+ if (ieee80211_is_mgmt(hdr->frame_control) &&
-+ !ieee80211_is_deauth(hdr->frame_control) &&
-+ !ieee80211_is_disassoc(hdr->frame_control) &&
-+ !ieee80211_is_action(hdr->frame_control)) {
-+ if (tx->flags & IEEE80211_TX_UNICAST)
-+ info->flags |= IEEE80211_TX_CTL_NO_PS_BUFFER;
-+ return TX_CONTINUE;
-+ }
-+
- if (tx->flags & IEEE80211_TX_UNICAST)
- return ieee80211_tx_h_unicast_ps_buf(tx);
- else
-diff -Nur linux-3.14.17/net/mac80211/util.c linux-imx6-3.14/net/mac80211/util.c
---- linux-3.14.17/net/mac80211/util.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/mac80211/util.c 2014-09-11 18:06:15.778092969 +0200
+diff -Nur linux-3.14.22.orig/net/mac80211/util.c linux-3.14.22/net/mac80211/util.c
+--- linux-3.14.22.orig/net/mac80211/util.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/net/mac80211/util.c 2014-10-22 14:55:56.846220001 -0500
@@ -554,7 +554,7 @@
ieee80211_stop_queues_by_reason(&local->hw, IEEE80211_MAX_QUEUE_MAP,
IEEE80211_QUEUE_STOP_REASON_FLUSH);
@@ -233697,44 +230426,9 @@ diff -Nur linux-3.14.17/net/mac80211/util.c linux-imx6-3.14/net/mac80211/util.c
ieee80211_wake_queues_by_reason(&local->hw, IEEE80211_MAX_QUEUE_MAP,
IEEE80211_QUEUE_STOP_REASON_FLUSH);
-diff -Nur linux-3.14.17/net/netfilter/ipvs/ip_vs_xmit.c linux-imx6-3.14/net/netfilter/ipvs/ip_vs_xmit.c
---- linux-3.14.17/net/netfilter/ipvs/ip_vs_xmit.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/netfilter/ipvs/ip_vs_xmit.c 2014-09-11 18:06:15.790093017 +0200
-@@ -883,7 +883,7 @@
- iph->daddr = cp->daddr.ip;
- iph->saddr = saddr;
- iph->ttl = old_iph->ttl;
-- ip_select_ident(skb, NULL);
-+ ip_select_ident(skb, &rt->dst, NULL);
-
- /* Another hack: avoid icmp_send in ip_fragment */
- skb->local_df = 1;
-diff -Nur linux-3.14.17/net/sctp/associola.c linux-imx6-3.14/net/sctp/associola.c
---- linux-3.14.17/net/sctp/associola.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/sctp/associola.c 2014-09-11 18:06:16.074094150 +0200
-@@ -1151,7 +1151,6 @@
- asoc->c = new->c;
- asoc->peer.rwnd = new->peer.rwnd;
- asoc->peer.sack_needed = new->peer.sack_needed;
-- asoc->peer.auth_capable = new->peer.auth_capable;
- asoc->peer.i = new->peer.i;
- sctp_tsnmap_init(&asoc->peer.tsn_map, SCTP_TSN_MAP_INITIAL,
- asoc->peer.i.initial_tsn, GFP_ATOMIC);
-diff -Nur linux-3.14.17/net/sctp/output.c linux-imx6-3.14/net/sctp/output.c
---- linux-3.14.17/net/sctp/output.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/sctp/output.c 2014-09-11 18:06:16.074094150 +0200
-@@ -599,7 +599,7 @@
- return err;
- no_route:
- kfree_skb(nskb);
-- IP_INC_STATS(sock_net(asoc->base.sk), IPSTATS_MIB_OUTNOROUTES);
-+ IP_INC_STATS_BH(sock_net(asoc->base.sk), IPSTATS_MIB_OUTNOROUTES);
-
- /* FIXME: Returning the 'err' will effect all the associations
- * associated with a socket, although only one of the paths of the
-diff -Nur linux-3.14.17/net/wireless/core.h linux-imx6-3.14/net/wireless/core.h
---- linux-3.14.17/net/wireless/core.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/wireless/core.h 2014-09-11 18:06:16.190094613 +0200
+diff -Nur linux-3.14.22.orig/net/wireless/core.h linux-3.14.22/net/wireless/core.h
+--- linux-3.14.22.orig/net/wireless/core.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/net/wireless/core.h 2014-10-22 14:55:56.846220001 -0500
@@ -211,6 +211,7 @@
} dc;
struct {
@@ -233753,9 +230447,9 @@ diff -Nur linux-3.14.17/net/wireless/core.h linux-imx6-3.14/net/wireless/core.h
int cfg80211_ibss_wext_join(struct cfg80211_registered_device *rdev,
struct wireless_dev *wdev);
-diff -Nur linux-3.14.17/net/wireless/ibss.c linux-imx6-3.14/net/wireless/ibss.c
---- linux-3.14.17/net/wireless/ibss.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/wireless/ibss.c 2014-09-11 18:06:16.190094613 +0200
+diff -Nur linux-3.14.22.orig/net/wireless/ibss.c linux-3.14.22/net/wireless/ibss.c
+--- linux-3.14.22.orig/net/wireless/ibss.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/net/wireless/ibss.c 2014-10-22 14:55:56.846220001 -0500
@@ -14,7 +14,8 @@
#include "rdev-ops.h"
@@ -233806,47 +230500,10 @@ diff -Nur linux-3.14.17/net/wireless/ibss.c linux-imx6-3.14/net/wireless/ibss.c
spin_lock_irqsave(&wdev->event_lock, flags);
list_add_tail(&ev->list, &wdev->event_list);
-diff -Nur linux-3.14.17/net/wireless/nl80211.c linux-imx6-3.14/net/wireless/nl80211.c
---- linux-3.14.17/net/wireless/nl80211.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/wireless/nl80211.c 2014-09-11 18:06:16.198094644 +0200
-@@ -1450,17 +1450,18 @@
- }
- CMD(start_p2p_device, START_P2P_DEVICE);
- CMD(set_mcast_rate, SET_MCAST_RATE);
--#ifdef CONFIG_NL80211_TESTMODE
-- CMD(testmode_cmd, TESTMODE);
--#endif
- if (state->split) {
- CMD(crit_proto_start, CRIT_PROTOCOL_START);
- CMD(crit_proto_stop, CRIT_PROTOCOL_STOP);
- if (dev->wiphy.flags & WIPHY_FLAG_HAS_CHANNEL_SWITCH)
- CMD(channel_switch, CHANNEL_SWITCH);
-- CMD(set_qos_map, SET_QOS_MAP);
- }
-- /* add into the if now */
-+ CMD(set_qos_map, SET_QOS_MAP);
-+
-+#ifdef CONFIG_NL80211_TESTMODE
-+ CMD(testmode_cmd, TESTMODE);
-+#endif
-+
- #undef CMD
-
- if (dev->ops->connect || dev->ops->auth) {
-diff -Nur linux-3.14.17/net/wireless/trace.h linux-imx6-3.14/net/wireless/trace.h
---- linux-3.14.17/net/wireless/trace.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/wireless/trace.h 2014-09-11 18:06:16.202094661 +0200
-@@ -2068,8 +2068,7 @@
- MAC_ASSIGN(addr, addr);
- __entry->key_type = key_type;
- __entry->key_id = key_id;
-- if (tsc)
-- memcpy(__entry->tsc, tsc, 6);
-+ memcpy(__entry->tsc, tsc, 6);
- ),
- TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT ", key type: %d, key id: %d, tsc: %pm",
- NETDEV_PR_ARG, MAC_PR_ARG(addr), __entry->key_type,
-@@ -2279,11 +2278,6 @@
+diff -Nur linux-3.14.22.orig/net/wireless/trace.h linux-3.14.22/net/wireless/trace.h
+--- linux-3.14.22.orig/net/wireless/trace.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/net/wireless/trace.h 2014-10-22 14:55:56.846220001 -0500
+@@ -2279,11 +2279,6 @@
TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT, NETDEV_PR_ARG, MAC_PR_ARG(addr))
);
@@ -233858,7 +230515,7 @@ diff -Nur linux-3.14.17/net/wireless/trace.h linux-imx6-3.14/net/wireless/trace.
DEFINE_EVENT(cfg80211_rx_evt, cfg80211_rx_spurious_frame,
TP_PROTO(struct net_device *netdev, const u8 *addr),
TP_ARGS(netdev, addr)
-@@ -2294,6 +2288,24 @@
+@@ -2294,6 +2289,24 @@
TP_ARGS(netdev, addr)
);
@@ -233883,9 +230540,9 @@ diff -Nur linux-3.14.17/net/wireless/trace.h linux-imx6-3.14/net/wireless/trace.
TRACE_EVENT(cfg80211_probe_status,
TP_PROTO(struct net_device *netdev, const u8 *addr, u64 cookie,
bool acked),
-diff -Nur linux-3.14.17/net/wireless/util.c linux-imx6-3.14/net/wireless/util.c
---- linux-3.14.17/net/wireless/util.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/wireless/util.c 2014-09-11 18:06:16.202094661 +0200
+diff -Nur linux-3.14.22.orig/net/wireless/util.c linux-3.14.22/net/wireless/util.c
+--- linux-3.14.22.orig/net/wireless/util.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/net/wireless/util.c 2014-10-22 14:55:56.846220001 -0500
@@ -820,7 +820,8 @@
ev->dc.reason, true);
break;
@@ -233896,33 +230553,9 @@ diff -Nur linux-3.14.17/net/wireless/util.c linux-imx6-3.14/net/wireless/util.c
break;
}
wdev_unlock(wdev);
-diff -Nur linux-3.14.17/net/xfrm/xfrm_user.c linux-imx6-3.14/net/xfrm/xfrm_user.c
---- linux-3.14.17/net/xfrm/xfrm_user.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/net/xfrm/xfrm_user.c 2014-09-11 18:06:16.218094725 +0200
-@@ -176,7 +176,9 @@
- attrs[XFRMA_ALG_AEAD] ||
- attrs[XFRMA_ALG_CRYPT] ||
- attrs[XFRMA_ALG_COMP] ||
-- attrs[XFRMA_TFCPAD])
-+ attrs[XFRMA_TFCPAD] ||
-+ (ntohl(p->id.spi) >= 0x10000))
-+
- goto out;
- break;
-
-@@ -204,8 +206,7 @@
- attrs[XFRMA_ALG_AUTH] ||
- attrs[XFRMA_ALG_AUTH_TRUNC] ||
- attrs[XFRMA_ALG_CRYPT] ||
-- attrs[XFRMA_TFCPAD] ||
-- (ntohl(p->id.spi) >= 0x10000))
-+ attrs[XFRMA_TFCPAD])
- goto out;
- break;
-
-diff -Nur linux-3.14.17/scripts/Makefile.lib linux-imx6-3.14/scripts/Makefile.lib
---- linux-3.14.17/scripts/Makefile.lib 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/scripts/Makefile.lib 2014-09-11 18:06:16.334095188 +0200
+diff -Nur linux-3.14.22.orig/scripts/Makefile.lib linux-3.14.22/scripts/Makefile.lib
+--- linux-3.14.22.orig/scripts/Makefile.lib 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/scripts/Makefile.lib 2014-10-22 14:55:56.846220001 -0500
@@ -153,6 +153,7 @@
-I$(srctree)/arch/$(SRCARCH)/boot/dts \
-I$(srctree)/arch/$(SRCARCH)/boot/dts/include \
@@ -233931,9 +230564,9 @@ diff -Nur linux-3.14.17/scripts/Makefile.lib linux-imx6-3.14/scripts/Makefile.li
-undef -D__DTS__
# Finds the multi-part object the current object will be linked into
-diff -Nur linux-3.14.17/scripts/mod/devicetable-offsets.c linux-imx6-3.14/scripts/mod/devicetable-offsets.c
---- linux-3.14.17/scripts/mod/devicetable-offsets.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/scripts/mod/devicetable-offsets.c 2014-09-11 18:06:16.482095778 +0200
+diff -Nur linux-3.14.22.orig/scripts/mod/devicetable-offsets.c linux-3.14.22/scripts/mod/devicetable-offsets.c
+--- linux-3.14.22.orig/scripts/mod/devicetable-offsets.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/scripts/mod/devicetable-offsets.c 2014-10-22 14:55:56.846220001 -0500
@@ -174,6 +174,9 @@
DEVID_FIELD(x86_cpu_id, model);
DEVID_FIELD(x86_cpu_id, vendor);
@@ -233944,9 +230577,9 @@ diff -Nur linux-3.14.17/scripts/mod/devicetable-offsets.c linux-imx6-3.14/script
DEVID(mei_cl_device_id);
DEVID_FIELD(mei_cl_device_id, name);
-diff -Nur linux-3.14.17/scripts/mod/file2alias.c linux-imx6-3.14/scripts/mod/file2alias.c
---- linux-3.14.17/scripts/mod/file2alias.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/scripts/mod/file2alias.c 2014-09-11 18:06:16.486095794 +0200
+diff -Nur linux-3.14.22.orig/scripts/mod/file2alias.c linux-3.14.22/scripts/mod/file2alias.c
+--- linux-3.14.22.orig/scripts/mod/file2alias.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/scripts/mod/file2alias.c 2014-10-22 14:55:56.846220001 -0500
@@ -1135,6 +1135,16 @@
}
ADD_TO_DEVTABLE("x86cpu", x86_cpu_id, do_x86cpu_entry);
@@ -233964,9 +230597,9 @@ diff -Nur linux-3.14.17/scripts/mod/file2alias.c linux-imx6-3.14/scripts/mod/fil
/* Looks like: mei:S */
static int do_mei_entry(const char *filename, void *symval,
char *alias)
-diff -Nur linux-3.14.17/scripts/recordmcount.c linux-imx6-3.14/scripts/recordmcount.c
---- linux-3.14.17/scripts/recordmcount.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/scripts/recordmcount.c 2014-09-11 18:06:16.490095810 +0200
+diff -Nur linux-3.14.22.orig/scripts/recordmcount.c linux-3.14.22/scripts/recordmcount.c
+--- linux-3.14.22.orig/scripts/recordmcount.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/scripts/recordmcount.c 2014-10-22 14:55:56.846220001 -0500
@@ -40,6 +40,11 @@
#define R_METAG_NONE 3
#endif
@@ -233988,9 +230621,9 @@ diff -Nur linux-3.14.17/scripts/recordmcount.c linux-imx6-3.14/scripts/recordmco
case EM_IA_64: reltype = R_IA64_IMM64; gpfx = '_'; break;
case EM_METAG: reltype = R_METAG_ADDR32;
altmcount = "_mcount_wrapper";
-diff -Nur linux-3.14.17/scripts/recordmcount.pl linux-imx6-3.14/scripts/recordmcount.pl
---- linux-3.14.17/scripts/recordmcount.pl 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/scripts/recordmcount.pl 2014-09-11 18:06:16.490095810 +0200
+diff -Nur linux-3.14.22.orig/scripts/recordmcount.pl linux-3.14.22/scripts/recordmcount.pl
+--- linux-3.14.22.orig/scripts/recordmcount.pl 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/scripts/recordmcount.pl 2014-10-22 14:55:56.846220001 -0500
@@ -279,6 +279,11 @@
$mcount_regex = "^\\s*([0-9a-fA-F]+):\\s*R_ARM_(CALL|PC24|THM_CALL)" .
"\\s+(__gnu_mcount_nc|mcount)\$";
@@ -234003,9 +230636,9 @@ diff -Nur linux-3.14.17/scripts/recordmcount.pl linux-imx6-3.14/scripts/recordmc
} elsif ($arch eq "ia64") {
$mcount_regex = "^\\s*([0-9a-fA-F]+):.*\\s_mcount\$";
$type = "data8";
-diff -Nur linux-3.14.17/sound/soc/codecs/cs42888.c linux-imx6-3.14/sound/soc/codecs/cs42888.c
---- linux-3.14.17/sound/soc/codecs/cs42888.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/sound/soc/codecs/cs42888.c 2014-09-11 18:06:18.638104376 +0200
+diff -Nur linux-3.14.22.orig/sound/soc/codecs/cs42888.c linux-3.14.22/sound/soc/codecs/cs42888.c
+--- linux-3.14.22.orig/sound/soc/codecs/cs42888.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/sound/soc/codecs/cs42888.c 2014-10-22 14:55:56.846220001 -0500
@@ -0,0 +1,934 @@
+/*
+ * cs42888.c -- CS42888 ALSA SoC Audio Driver
@@ -234941,9 +231574,9 @@ diff -Nur linux-3.14.17/sound/soc/codecs/cs42888.c linux-imx6-3.14/sound/soc/cod
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("Cirrus Logic CS42888 ALSA SoC Codec Driver");
+MODULE_LICENSE("GPL");
-diff -Nur linux-3.14.17/sound/soc/codecs/cs42888.h linux-imx6-3.14/sound/soc/codecs/cs42888.h
---- linux-3.14.17/sound/soc/codecs/cs42888.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/sound/soc/codecs/cs42888.h 2014-09-11 18:06:18.638104376 +0200
+diff -Nur linux-3.14.22.orig/sound/soc/codecs/cs42888.h linux-3.14.22/sound/soc/codecs/cs42888.h
+--- linux-3.14.22.orig/sound/soc/codecs/cs42888.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/sound/soc/codecs/cs42888.h 2014-10-22 14:55:56.850220001 -0500
@@ -0,0 +1,123 @@
+/*
+ * Copyright (C) 2010-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -235068,9 +231701,9 @@ diff -Nur linux-3.14.17/sound/soc/codecs/cs42888.h linux-imx6-3.14/sound/soc/cod
+
+
+#endif
-diff -Nur linux-3.14.17/sound/soc/codecs/Kconfig linux-imx6-3.14/sound/soc/codecs/Kconfig
---- linux-3.14.17/sound/soc/codecs/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/sound/soc/codecs/Kconfig 2014-09-11 18:06:18.630104344 +0200
+diff -Nur linux-3.14.22.orig/sound/soc/codecs/Kconfig linux-3.14.22/sound/soc/codecs/Kconfig
+--- linux-3.14.22.orig/sound/soc/codecs/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/sound/soc/codecs/Kconfig 2014-10-22 14:55:56.850220001 -0500
@@ -37,6 +37,7 @@
select SND_SOC_CS42L73 if I2C
select SND_SOC_CS4270 if I2C
@@ -235089,9 +231722,9 @@ diff -Nur linux-3.14.17/sound/soc/codecs/Kconfig linux-imx6-3.14/sound/soc/codec
config SND_SOC_CX20442
tristate
depends on TTY
-diff -Nur linux-3.14.17/sound/soc/codecs/Makefile linux-imx6-3.14/sound/soc/codecs/Makefile
---- linux-3.14.17/sound/soc/codecs/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/sound/soc/codecs/Makefile 2014-09-11 18:06:18.630104344 +0200
+diff -Nur linux-3.14.22.orig/sound/soc/codecs/Makefile linux-3.14.22/sound/soc/codecs/Makefile
+--- linux-3.14.22.orig/sound/soc/codecs/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/sound/soc/codecs/Makefile 2014-10-22 14:55:56.850220001 -0500
@@ -23,6 +23,7 @@
snd-soc-cs42l73-objs := cs42l73.o
snd-soc-cs4270-objs := cs4270.o
@@ -235108,9 +231741,9 @@ diff -Nur linux-3.14.17/sound/soc/codecs/Makefile linux-imx6-3.14/sound/soc/code
obj-$(CONFIG_SND_SOC_CX20442) += snd-soc-cx20442.o
obj-$(CONFIG_SND_SOC_DA7210) += snd-soc-da7210.o
obj-$(CONFIG_SND_SOC_DA7213) += snd-soc-da7213.o
-diff -Nur linux-3.14.17/sound/soc/codecs/sgtl5000.c linux-imx6-3.14/sound/soc/codecs/sgtl5000.c
---- linux-3.14.17/sound/soc/codecs/sgtl5000.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/sound/soc/codecs/sgtl5000.c 2014-09-11 18:06:18.646104409 +0200
+diff -Nur linux-3.14.22.orig/sound/soc/codecs/sgtl5000.c linux-3.14.22/sound/soc/codecs/sgtl5000.c
+--- linux-3.14.22.orig/sound/soc/codecs/sgtl5000.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/sound/soc/codecs/sgtl5000.c 2014-10-22 14:55:56.850220001 -0500
@@ -756,7 +756,7 @@
struct ldo_regulator *ldo = rdev_get_drvdata(dev);
struct snd_soc_codec *codec = (struct snd_soc_codec *)ldo->codec_data;
@@ -235220,9 +231853,9 @@ diff -Nur linux-3.14.17/sound/soc/codecs/sgtl5000.c linux-imx6-3.14/sound/soc/co
ldo_regulator_remove(codec);
return 0;
-diff -Nur linux-3.14.17/sound/soc/codecs/spdif_transmitter.c linux-imx6-3.14/sound/soc/codecs/spdif_transmitter.c
---- linux-3.14.17/sound/soc/codecs/spdif_transmitter.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/sound/soc/codecs/spdif_transmitter.c 2014-09-11 18:06:18.646104409 +0200
+diff -Nur linux-3.14.22.orig/sound/soc/codecs/spdif_transmitter.c linux-3.14.22/sound/soc/codecs/spdif_transmitter.c
+--- linux-3.14.22.orig/sound/soc/codecs/spdif_transmitter.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/sound/soc/codecs/spdif_transmitter.c 2014-10-22 14:55:56.850220001 -0500
@@ -24,7 +24,7 @@
#define DRV_NAME "spdif-dit"
@@ -235232,9 +231865,9 @@ diff -Nur linux-3.14.17/sound/soc/codecs/spdif_transmitter.c linux-imx6-3.14/sou
#define STUB_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | \
SNDRV_PCM_FMTBIT_S20_3LE | \
SNDRV_PCM_FMTBIT_S24_LE)
-diff -Nur linux-3.14.17/sound/soc/codecs/wm8962.c linux-imx6-3.14/sound/soc/codecs/wm8962.c
---- linux-3.14.17/sound/soc/codecs/wm8962.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/sound/soc/codecs/wm8962.c 2014-09-11 18:06:18.674104519 +0200
+diff -Nur linux-3.14.22.orig/sound/soc/codecs/wm8962.c linux-3.14.22/sound/soc/codecs/wm8962.c
+--- linux-3.14.22.orig/sound/soc/codecs/wm8962.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/sound/soc/codecs/wm8962.c 2014-10-22 14:55:56.850220001 -0500
@@ -16,6 +16,7 @@
#include <linux/init.h>
#include <linux/delay.h>
@@ -235358,9 +231991,9 @@ diff -Nur linux-3.14.17/sound/soc/codecs/wm8962.c linux-imx6-3.14/sound/soc/code
return 0;
}
#endif
-diff -Nur linux-3.14.17/sound/soc/fsl/fsl_asrc.c linux-imx6-3.14/sound/soc/fsl/fsl_asrc.c
---- linux-3.14.17/sound/soc/fsl/fsl_asrc.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/sound/soc/fsl/fsl_asrc.c 2014-09-11 18:06:18.690104584 +0200
+diff -Nur linux-3.14.22.orig/sound/soc/fsl/fsl_asrc.c linux-3.14.22/sound/soc/fsl/fsl_asrc.c
+--- linux-3.14.22.orig/sound/soc/fsl/fsl_asrc.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/sound/soc/fsl/fsl_asrc.c 2014-10-22 14:55:56.850220001 -0500
@@ -0,0 +1,498 @@
+/*
+ * Copyright (C) 2010-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -235860,9 +232493,9 @@ diff -Nur linux-3.14.17/sound/soc/fsl/fsl_asrc.c linux-imx6-3.14/sound/soc/fsl/f
+MODULE_DESCRIPTION("i.MX ASoC ASRC P2P driver");
+MODULE_ALIAS("platform:fsl-asrc-p2p");
+MODULE_LICENSE("GPL");
-diff -Nur linux-3.14.17/sound/soc/fsl/fsl_asrc.h linux-imx6-3.14/sound/soc/fsl/fsl_asrc.h
---- linux-3.14.17/sound/soc/fsl/fsl_asrc.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/sound/soc/fsl/fsl_asrc.h 2014-09-11 18:06:18.690104584 +0200
+diff -Nur linux-3.14.22.orig/sound/soc/fsl/fsl_asrc.h linux-3.14.22/sound/soc/fsl/fsl_asrc.h
+--- linux-3.14.22.orig/sound/soc/fsl/fsl_asrc.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/sound/soc/fsl/fsl_asrc.h 2014-10-22 14:55:56.850220001 -0500
@@ -0,0 +1,48 @@
+/*
+ * fsl_asrc.h - ALSA ASRC interface
@@ -235912,9 +232545,9 @@ diff -Nur linux-3.14.17/sound/soc/fsl/fsl_asrc.h linux-imx6-3.14/sound/soc/fsl/f
+};
+
+#endif
-diff -Nur linux-3.14.17/sound/soc/fsl/fsl_asrc_pcm.c linux-imx6-3.14/sound/soc/fsl/fsl_asrc_pcm.c
---- linux-3.14.17/sound/soc/fsl/fsl_asrc_pcm.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/sound/soc/fsl/fsl_asrc_pcm.c 2014-09-11 18:06:18.690104584 +0200
+diff -Nur linux-3.14.22.orig/sound/soc/fsl/fsl_asrc_pcm.c linux-3.14.22/sound/soc/fsl/fsl_asrc_pcm.c
+--- linux-3.14.22.orig/sound/soc/fsl/fsl_asrc_pcm.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/sound/soc/fsl/fsl_asrc_pcm.c 2014-10-22 14:55:56.850220001 -0500
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2010-2013 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -235957,9 +232590,9 @@ diff -Nur linux-3.14.17/sound/soc/fsl/fsl_asrc_pcm.c linux-imx6-3.14/sound/soc/f
+MODULE_DESCRIPTION("i.MX ASoC PCM driver");
+MODULE_ALIAS("platform:imx-pcm-asrc");
+MODULE_LICENSE("GPL");
-diff -Nur linux-3.14.17/sound/soc/fsl/fsl_esai.c linux-imx6-3.14/sound/soc/fsl/fsl_esai.c
---- linux-3.14.17/sound/soc/fsl/fsl_esai.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/sound/soc/fsl/fsl_esai.c 2014-09-11 18:06:18.690104584 +0200
+diff -Nur linux-3.14.22.orig/sound/soc/fsl/fsl_esai.c linux-3.14.22/sound/soc/fsl/fsl_esai.c
+--- linux-3.14.22.orig/sound/soc/fsl/fsl_esai.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/sound/soc/fsl/fsl_esai.c 2014-10-22 14:55:56.850220001 -0500
@@ -785,7 +785,7 @@
return ret;
}
@@ -235969,9 +232602,9 @@ diff -Nur linux-3.14.17/sound/soc/fsl/fsl_esai.c linux-imx6-3.14/sound/soc/fsl/f
if (ret)
dev_err(&pdev->dev, "failed to init imx pcm dma: %d\n", ret);
-diff -Nur linux-3.14.17/sound/soc/fsl/fsl_hdmi.c linux-imx6-3.14/sound/soc/fsl/fsl_hdmi.c
---- linux-3.14.17/sound/soc/fsl/fsl_hdmi.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/sound/soc/fsl/fsl_hdmi.c 2014-09-11 18:06:18.690104584 +0200
+diff -Nur linux-3.14.22.orig/sound/soc/fsl/fsl_hdmi.c linux-3.14.22/sound/soc/fsl/fsl_hdmi.c
+--- linux-3.14.22.orig/sound/soc/fsl/fsl_hdmi.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/sound/soc/fsl/fsl_hdmi.c 2014-10-22 14:55:56.850220001 -0500
@@ -0,0 +1,614 @@
+/*
+ * ALSA SoC HDMI Audio Layer for Freescale i.MX
@@ -236587,9 +233220,9 @@ diff -Nur linux-3.14.17/sound/soc/fsl/fsl_hdmi.c linux-imx6-3.14/sound/soc/fsl/f
+MODULE_DESCRIPTION("IMX HDMI TX DAI");
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:fsl-hdmi-dai");
-diff -Nur linux-3.14.17/sound/soc/fsl/fsl_spdif.c linux-imx6-3.14/sound/soc/fsl/fsl_spdif.c
---- linux-3.14.17/sound/soc/fsl/fsl_spdif.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/sound/soc/fsl/fsl_spdif.c 2014-09-11 18:06:18.690104584 +0200
+diff -Nur linux-3.14.22.orig/sound/soc/fsl/fsl_spdif.c linux-3.14.22/sound/soc/fsl/fsl_spdif.c
+--- linux-3.14.22.orig/sound/soc/fsl/fsl_spdif.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/sound/soc/fsl/fsl_spdif.c 2014-10-22 14:55:56.850220001 -0500
@@ -21,6 +21,8 @@
#include <linux/of_address.h>
#include <linux/of_device.h>
@@ -236915,9 +233548,9 @@ diff -Nur linux-3.14.17/sound/soc/fsl/fsl_spdif.c linux-imx6-3.14/sound/soc/fsl/
},
.probe = fsl_spdif_probe,
};
-diff -Nur linux-3.14.17/sound/soc/fsl/fsl_spdif.h linux-imx6-3.14/sound/soc/fsl/fsl_spdif.h
---- linux-3.14.17/sound/soc/fsl/fsl_spdif.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/sound/soc/fsl/fsl_spdif.h 2014-09-11 18:06:18.690104584 +0200
+diff -Nur linux-3.14.22.orig/sound/soc/fsl/fsl_spdif.h linux-3.14.22/sound/soc/fsl/fsl_spdif.h
+--- linux-3.14.22.orig/sound/soc/fsl/fsl_spdif.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/sound/soc/fsl/fsl_spdif.h 2014-10-22 14:55:56.850220001 -0500
@@ -157,13 +157,19 @@
#define STC_TXCLK_DIV(x) ((((x) - 1) << STC_TXCLK_DIV_OFFSET) & STC_TXCLK_DIV_MASK)
#define STC_TXCLK_SRC_MAX 8
@@ -236952,9 +233585,9 @@ diff -Nur linux-3.14.17/sound/soc/fsl/fsl_spdif.h linux-imx6-3.14/sound/soc/fsl/
#define FSL_SPDIF_RATES_CAPTURE (SNDRV_PCM_RATE_16000 | \
SNDRV_PCM_RATE_32000 | \
-diff -Nur linux-3.14.17/sound/soc/fsl/fsl_ssi.c linux-imx6-3.14/sound/soc/fsl/fsl_ssi.c
---- linux-3.14.17/sound/soc/fsl/fsl_ssi.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/sound/soc/fsl/fsl_ssi.c 2014-09-11 18:06:18.690104584 +0200
+diff -Nur linux-3.14.22.orig/sound/soc/fsl/fsl_ssi.c linux-3.14.22/sound/soc/fsl/fsl_ssi.c
+--- linux-3.14.22.orig/sound/soc/fsl/fsl_ssi.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/sound/soc/fsl/fsl_ssi.c 2014-10-22 14:55:56.850220001 -0500
@@ -3,7 +3,7 @@
*
* Author: Timur Tabi <timur@freescale.com>
@@ -237234,7 +233867,7 @@ diff -Nur linux-3.14.17/sound/soc/fsl/fsl_ssi.c linux-imx6-3.14/sound/soc/fsl/fs
goto error_pcm;
} else {
- ret = imx_pcm_dma_init(pdev);
-+ ret = imx_pcm_dma_init(pdev, SND_DMAENGINE_PCM_FLAG_NO_RESIDUE,
++ ret = imx_pcm_dma_init(pdev, NULL,
+ IMX_SSI_DMABUF_SIZE);
if (ret)
goto error_pcm;
@@ -237278,9 +233911,9 @@ diff -Nur linux-3.14.17/sound/soc/fsl/fsl_ssi.c linux-imx6-3.14/sound/soc/fsl/fs
},
.probe = fsl_ssi_probe,
.remove = fsl_ssi_remove,
-diff -Nur linux-3.14.17/sound/soc/fsl/imx-cs42888.c linux-imx6-3.14/sound/soc/fsl/imx-cs42888.c
---- linux-3.14.17/sound/soc/fsl/imx-cs42888.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/sound/soc/fsl/imx-cs42888.c 2014-09-11 18:06:18.714104678 +0200
+diff -Nur linux-3.14.22.orig/sound/soc/fsl/imx-cs42888.c linux-3.14.22/sound/soc/fsl/imx-cs42888.c
+--- linux-3.14.22.orig/sound/soc/fsl/imx-cs42888.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/sound/soc/fsl/imx-cs42888.c 2014-10-22 14:55:56.854220001 -0500
@@ -0,0 +1,369 @@
+/*
+ * Copyright (C) 2010-2014 Freescale Semiconductor, Inc. All Rights Reserved.
@@ -237651,9 +234284,9 @@ diff -Nur linux-3.14.17/sound/soc/fsl/imx-cs42888.c linux-imx6-3.14/sound/soc/fs
+MODULE_DESCRIPTION("ALSA SoC cs42888 Machine Layer Driver");
+MODULE_ALIAS("platform:imx-cs42888");
+MODULE_LICENSE("GPL");
-diff -Nur linux-3.14.17/sound/soc/fsl/imx-hdmi.c linux-imx6-3.14/sound/soc/fsl/imx-hdmi.c
---- linux-3.14.17/sound/soc/fsl/imx-hdmi.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/sound/soc/fsl/imx-hdmi.c 2014-09-11 18:06:18.714104678 +0200
+diff -Nur linux-3.14.22.orig/sound/soc/fsl/imx-hdmi.c linux-3.14.22/sound/soc/fsl/imx-hdmi.c
+--- linux-3.14.22.orig/sound/soc/fsl/imx-hdmi.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/sound/soc/fsl/imx-hdmi.c 2014-10-22 14:55:56.854220001 -0500
@@ -0,0 +1,113 @@
+/*
+ * ASoC HDMI Transmitter driver for IMX development boards
@@ -237768,9 +234401,9 @@ diff -Nur linux-3.14.17/sound/soc/fsl/imx-hdmi.c linux-imx6-3.14/sound/soc/fsl/i
+MODULE_DESCRIPTION("IMX HDMI TX ASoC driver");
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:imx-audio-hdmi");
-diff -Nur linux-3.14.17/sound/soc/fsl/imx-hdmi-dma.c linux-imx6-3.14/sound/soc/fsl/imx-hdmi-dma.c
---- linux-3.14.17/sound/soc/fsl/imx-hdmi-dma.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/sound/soc/fsl/imx-hdmi-dma.c 2014-09-11 18:06:18.714104678 +0200
+diff -Nur linux-3.14.22.orig/sound/soc/fsl/imx-hdmi-dma.c linux-3.14.22/sound/soc/fsl/imx-hdmi-dma.c
+--- linux-3.14.22.orig/sound/soc/fsl/imx-hdmi-dma.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/sound/soc/fsl/imx-hdmi-dma.c 2014-10-22 14:55:56.854220001 -0500
@@ -0,0 +1,1240 @@
+/*
+ * imx-hdmi-dma.c -- HDMI DMA driver for ALSA Soc Audio Layer
@@ -239012,9 +235645,9 @@ diff -Nur linux-3.14.17/sound/soc/fsl/imx-hdmi-dma.c linux-imx6-3.14/sound/soc/f
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("i.MX HDMI audio DMA");
+MODULE_LICENSE("GPL");
-diff -Nur linux-3.14.17/sound/soc/fsl/imx-hdmi.h linux-imx6-3.14/sound/soc/fsl/imx-hdmi.h
---- linux-3.14.17/sound/soc/fsl/imx-hdmi.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-imx6-3.14/sound/soc/fsl/imx-hdmi.h 2014-09-11 18:06:18.714104678 +0200
+diff -Nur linux-3.14.22.orig/sound/soc/fsl/imx-hdmi.h linux-3.14.22/sound/soc/fsl/imx-hdmi.h
+--- linux-3.14.22.orig/sound/soc/fsl/imx-hdmi.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.14.22/sound/soc/fsl/imx-hdmi.h 2014-10-22 14:55:56.854220001 -0500
@@ -0,0 +1,105 @@
+/*
+ * Copyright (C) 2011-2013 Freescale Semiconductor, Inc.
@@ -239121,9 +235754,9 @@ diff -Nur linux-3.14.17/sound/soc/fsl/imx-hdmi.h linux-imx6-3.14/sound/soc/fsl/i
+ } while (0)
+
+#endif /* __IMX_HDMI_H */
-diff -Nur linux-3.14.17/sound/soc/fsl/imx-pcm-dma.c linux-imx6-3.14/sound/soc/fsl/imx-pcm-dma.c
---- linux-3.14.17/sound/soc/fsl/imx-pcm-dma.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/sound/soc/fsl/imx-pcm-dma.c 2014-09-11 18:06:18.714104678 +0200
+diff -Nur linux-3.14.22.orig/sound/soc/fsl/imx-pcm-dma.c linux-3.14.22/sound/soc/fsl/imx-pcm-dma.c
+--- linux-3.14.22.orig/sound/soc/fsl/imx-pcm-dma.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/sound/soc/fsl/imx-pcm-dma.c 2014-10-22 14:55:56.854220001 -0500
@@ -11,6 +11,10 @@
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
@@ -239251,9 +235884,9 @@ diff -Nur linux-3.14.17/sound/soc/fsl/imx-pcm-dma.c linux-imx6-3.14/sound/soc/fs
}
EXPORT_SYMBOL_GPL(imx_pcm_dma_init);
-diff -Nur linux-3.14.17/sound/soc/fsl/imx-pcm.h linux-imx6-3.14/sound/soc/fsl/imx-pcm.h
---- linux-3.14.17/sound/soc/fsl/imx-pcm.h 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/sound/soc/fsl/imx-pcm.h 2014-09-11 18:06:18.714104678 +0200
+diff -Nur linux-3.14.22.orig/sound/soc/fsl/imx-pcm.h linux-3.14.22/sound/soc/fsl/imx-pcm.h
+--- linux-3.14.22.orig/sound/soc/fsl/imx-pcm.h 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/sound/soc/fsl/imx-pcm.h 2014-10-22 14:55:56.854220001 -0500
@@ -18,13 +18,17 @@
/*
* Do not change this as the FIQ handler depends on this size
@@ -239286,9 +235919,9 @@ diff -Nur linux-3.14.17/sound/soc/fsl/imx-pcm.h linux-imx6-3.14/sound/soc/fsl/im
{
return -ENODEV;
}
-diff -Nur linux-3.14.17/sound/soc/fsl/imx-spdif.c linux-imx6-3.14/sound/soc/fsl/imx-spdif.c
---- linux-3.14.17/sound/soc/fsl/imx-spdif.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/sound/soc/fsl/imx-spdif.c 2014-09-11 18:06:18.714104678 +0200
+diff -Nur linux-3.14.22.orig/sound/soc/fsl/imx-spdif.c linux-3.14.22/sound/soc/fsl/imx-spdif.c
+--- linux-3.14.22.orig/sound/soc/fsl/imx-spdif.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/sound/soc/fsl/imx-spdif.c 2014-10-22 14:55:56.854220001 -0500
@@ -65,14 +65,15 @@
if (ret)
goto end;
@@ -239315,9 +235948,9 @@ diff -Nur linux-3.14.17/sound/soc/fsl/imx-spdif.c linux-imx6-3.14/sound/soc/fsl/
.of_match_table = imx_spdif_dt_ids,
},
.probe = imx_spdif_audio_probe,
-diff -Nur linux-3.14.17/sound/soc/fsl/imx-ssi.c linux-imx6-3.14/sound/soc/fsl/imx-ssi.c
---- linux-3.14.17/sound/soc/fsl/imx-ssi.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/sound/soc/fsl/imx-ssi.c 2014-09-11 18:06:18.714104678 +0200
+diff -Nur linux-3.14.22.orig/sound/soc/fsl/imx-ssi.c linux-3.14.22/sound/soc/fsl/imx-ssi.c
+--- linux-3.14.22.orig/sound/soc/fsl/imx-ssi.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/sound/soc/fsl/imx-ssi.c 2014-10-22 14:55:56.854220001 -0500
@@ -602,7 +602,8 @@
ssi->fiq_params.dma_params_tx = &ssi->dma_params_tx;
@@ -239328,9 +235961,9 @@ diff -Nur linux-3.14.17/sound/soc/fsl/imx-ssi.c linux-imx6-3.14/sound/soc/fsl/im
if (ssi->fiq_init && ssi->dma_init) {
ret = ssi->fiq_init;
-diff -Nur linux-3.14.17/sound/soc/fsl/imx-wm8962.c linux-imx6-3.14/sound/soc/fsl/imx-wm8962.c
---- linux-3.14.17/sound/soc/fsl/imx-wm8962.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/sound/soc/fsl/imx-wm8962.c 2014-09-11 18:06:18.718104695 +0200
+diff -Nur linux-3.14.22.orig/sound/soc/fsl/imx-wm8962.c linux-3.14.22/sound/soc/fsl/imx-wm8962.c
+--- linux-3.14.22.orig/sound/soc/fsl/imx-wm8962.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/sound/soc/fsl/imx-wm8962.c 2014-10-22 14:55:56.854220001 -0500
@@ -1,9 +1,9 @@
/*
- * Copyright 2013 Freescale Semiconductor, Inc.
@@ -239775,9 +236408,9 @@ diff -Nur linux-3.14.17/sound/soc/fsl/imx-wm8962.c linux-imx6-3.14/sound/soc/fsl
return 0;
}
-diff -Nur linux-3.14.17/sound/soc/fsl/Kconfig linux-imx6-3.14/sound/soc/fsl/Kconfig
---- linux-3.14.17/sound/soc/fsl/Kconfig 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/sound/soc/fsl/Kconfig 2014-09-11 18:37:37.616046899 +0200
+diff -Nur linux-3.14.22.orig/sound/soc/fsl/Kconfig linux-3.14.22/sound/soc/fsl/Kconfig
+--- linux-3.14.22.orig/sound/soc/fsl/Kconfig 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/sound/soc/fsl/Kconfig 2014-10-22 14:55:56.854220001 -0500
@@ -11,6 +11,12 @@
config SND_SOC_FSL_ESAI
tristate
@@ -239796,7 +236429,7 @@ diff -Nur linux-3.14.17/sound/soc/fsl/Kconfig linux-imx6-3.14/sound/soc/fsl/Kcon
select SND_SOC_GENERIC_DMAENGINE_PCM
+config SND_SOC_IMX_HDMI_DMA
-+ tristate
++ bool
+ select SND_SOC_GENERIC_DMAENGINE_PCM
+ select SND_SOC_IMX_PCM_DMA
+
@@ -239840,9 +236473,9 @@ diff -Nur linux-3.14.17/sound/soc/fsl/Kconfig linux-imx6-3.14/sound/soc/fsl/Kcon
config SND_SOC_IMX_MC13783
tristate "SoC Audio support for I.MX boards with mc13783"
depends on MFD_MC13XXX && ARM
-diff -Nur linux-3.14.17/sound/soc/fsl/Makefile linux-imx6-3.14/sound/soc/fsl/Makefile
---- linux-3.14.17/sound/soc/fsl/Makefile 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/sound/soc/fsl/Makefile 2014-09-11 18:06:18.690104584 +0200
+diff -Nur linux-3.14.22.orig/sound/soc/fsl/Makefile linux-3.14.22/sound/soc/fsl/Makefile
+--- linux-3.14.22.orig/sound/soc/fsl/Makefile 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/sound/soc/fsl/Makefile 2014-10-22 14:55:56.854220001 -0500
@@ -14,13 +14,19 @@
snd-soc-fsl-sai-objs := fsl_sai.o
snd-soc-fsl-ssi-objs := fsl_ssi.o
@@ -239891,9 +236524,9 @@ diff -Nur linux-3.14.17/sound/soc/fsl/Makefile linux-imx6-3.14/sound/soc/fsl/Mak
obj-$(CONFIG_SND_SOC_IMX_SPDIF) += snd-soc-imx-spdif.o
+obj-$(CONFIG_SND_SOC_IMX_HDMI) += snd-soc-imx-hdmi.o
obj-$(CONFIG_SND_SOC_IMX_MC13783) += snd-soc-imx-mc13783.o
-diff -Nur linux-3.14.17/sound/soc/soc-pcm.c linux-imx6-3.14/sound/soc/soc-pcm.c
---- linux-3.14.17/sound/soc/soc-pcm.c 2014-08-14 03:38:34.000000000 +0200
-+++ linux-imx6-3.14/sound/soc/soc-pcm.c 2014-09-11 18:06:18.754104839 +0200
+diff -Nur linux-3.14.22.orig/sound/soc/soc-pcm.c linux-3.14.22/sound/soc/soc-pcm.c
+--- linux-3.14.22.orig/sound/soc/soc-pcm.c 2014-10-15 01:42:04.000000000 -0500
++++ linux-3.14.22/sound/soc/soc-pcm.c 2014-10-22 14:55:56.854220001 -0500
@@ -945,7 +945,7 @@
}
}
diff --git a/target/arm/solidrun-imx6/patches/3.16.4/rmk-wifi.patch b/target/arm/solidrun-imx6/patches/3.16.4/rmk-wifi.patch
deleted file mode 100644
index 0ba3a7951..000000000
--- a/target/arm/solidrun-imx6/patches/3.16.4/rmk-wifi.patch
+++ /dev/null
@@ -1,569 +0,0 @@
-diff -Nur linux-3.16.orig/arch/arm/boot/dts/imx6qdl-microsom.dtsi linux-3.16/arch/arm/boot/dts/imx6qdl-microsom.dtsi
---- linux-3.16.orig/arch/arm/boot/dts/imx6qdl-microsom.dtsi 2014-08-04 00:25:02.000000000 +0200
-+++ linux-3.16/arch/arm/boot/dts/imx6qdl-microsom.dtsi 2014-08-11 12:34:43.603892919 +0200
-@@ -2,14 +2,92 @@
- * Copyright (C) 2013,2014 Russell King
- */
-
-+#include <dt-bindings/gpio/gpio.h>
-+/ {
-+ regulators {
-+ compatible = "simple-bus";
-+
-+ reg_brcm_osc: brcm-osc-reg {
-+ compatible = "regulator-fixed";
-+ enable-active-high;
-+ gpio = <&gpio5 5 0>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_microsom_brcm_osc_reg>;
-+ regulator-name = "brcm_osc_reg";
-+ regulator-min-microvolt = <3300000>;
-+ regulator-max-microvolt = <3300000>;
-+ regulator-always-on;
-+ regulator-boot-on;
-+ };
-+
-+ reg_brcm: brcm-reg {
-+ compatible = "regulator-fixed";
-+ enable-active-high;
-+ gpio = <&gpio3 19 0>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_microsom_brcm_reg>;
-+ regulator-name = "brcm_reg";
-+ regulator-min-microvolt = <3300000>;
-+ regulator-max-microvolt = <3300000>;
-+ startup-delay-us = <200000>;
-+ };
-+ };
-+};
-+
- &iomuxc {
- microsom {
-+ pinctrl_microsom_brcm_bt: microsom-brcm-bt {
-+ fsl,pins = <
-+ MX6QDL_PAD_CSI0_DAT14__GPIO6_IO00 0x40013070
-+ MX6QDL_PAD_CSI0_DAT15__GPIO6_IO01 0x40013070
-+ MX6QDL_PAD_CSI0_DAT18__GPIO6_IO04 0x40013070
-+ >;
-+ };
-+
-+ pinctrl_microsom_brcm_osc_reg: microsom-brcm-osc-reg {
-+ fsl,pins = <
-+ MX6QDL_PAD_DISP0_DAT11__GPIO5_IO05 0x40013070
-+ >;
-+ };
-+
-+ pinctrl_microsom_brcm_reg: microsom-brcm-reg {
-+ fsl,pins = <
-+ MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x40013070
-+ >;
-+ };
-+
-+ pinctrl_microsom_brcm_wifi: microsom-brcm-wifi {
-+ fsl,pins = <
-+ MX6QDL_PAD_GPIO_8__XTALOSC_REF_CLK_32K 0x1b0b0
-+ MX6QDL_PAD_CSI0_DATA_EN__GPIO5_IO20 0x40013070
-+ MX6QDL_PAD_CSI0_DAT8__GPIO5_IO26 0x40013070
-+ MX6QDL_PAD_CSI0_DAT9__GPIO5_IO27 0x40013070
-+ >;
-+ };
- pinctrl_microsom_uart1: microsom-uart1 {
- fsl,pins = <
- MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA 0x1b0b1
- MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA 0x1b0b1
- >;
- };
-+ pinctrl_microsom_uart4_1: microsom-uart4 {
-+ fsl,pins = <
-+ MX6QDL_PAD_CSI0_DAT12__UART4_TX_DATA 0x1b0b1
-+ MX6QDL_PAD_CSI0_DAT13__UART4_RX_DATA 0x1b0b1
-+ MX6QDL_PAD_CSI0_DAT16__UART4_RTS_B 0x1b0b1
-+ MX6QDL_PAD_CSI0_DAT17__UART4_CTS_B 0x1b0b1
-+ >;
-+ };
-+ pinctrl_microsom_usdhc1: microsom-usdhc1 {
-+ fsl,pins = <
-+ MX6QDL_PAD_SD1_CMD__SD1_CMD 0x17059
-+ MX6QDL_PAD_SD1_CLK__SD1_CLK 0x10059
-+ MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x17059
-+ MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x17059
-+ MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x17059
-+ MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x17059
-+ >;
-+ };
- };
- };
-
-@@ -18,3 +96,23 @@
- pinctrl-0 = <&pinctrl_microsom_uart1>;
- status = "okay";
- };
-+
-+/* UART4 - Connected to optional BRCM Wifi/BT/FM */
-+&uart4 {
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_microsom_brcm_bt &pinctrl_microsom_uart4_1>;
-+ fsl,uart-has-rtscts;
-+ status = "okay";
-+};
-+
-+/* USDHC1 - Connected to optional BRCM Wifi/BT/FM */
-+&usdhc1 {
-+ card-external-vcc-supply = <&reg_brcm>;
-+ card-reset-gpios = <&gpio5 26 GPIO_ACTIVE_LOW>, <&gpio6 0 GPIO_ACTIVE_LOW>;
-+ keep-power-in-suspend;
-+ non-removable;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_microsom_brcm_wifi &pinctrl_microsom_usdhc1>;
-+ vmmc-supply = <&reg_brcm>;
-+ status = "okay";
-+};
-diff -Nur linux-3.16.orig/Documentation/devicetree/bindings/mmc/mmc.txt linux-3.16/Documentation/devicetree/bindings/mmc/mmc.txt
---- linux-3.16.orig/Documentation/devicetree/bindings/mmc/mmc.txt 2014-08-04 00:25:02.000000000 +0200
-+++ linux-3.16/Documentation/devicetree/bindings/mmc/mmc.txt 2014-08-11 12:34:15.535644516 +0200
-@@ -5,6 +5,8 @@
- Interpreted by the OF core:
- - reg: Registers location and length.
- - interrupts: Interrupts used by the MMC controller.
-+- clocks: Clocks needed for the host controller, if any.
-+- clock-names: Goes with clocks above.
-
- Card detection:
- If no property below is supplied, host native card detect is used.
-@@ -41,6 +43,15 @@
- - mmc-hs400-1_8v: eMMC HS400 mode(1.8V I/O) is supported
- - mmc-hs400-1_2v: eMMC HS400 mode(1.2V I/O) is supported
-
-+Card power and reset control:
-+The following properties can be specified for cases where the MMC
-+peripheral needs additional reset, regulator and clock lines. It is for
-+example common for WiFi/BT adapters to have these separate from the main
-+MMC bus:
-+ - card-reset-gpios: Specify GPIOs for card reset (reset active low)
-+ - card-external-vcc-supply: Regulator to drive (independent) card VCC
-+ - clock with name "card_ext_clock": External clock provided to the card
-+
- *NOTE* on CD and WP polarity. To use common for all SD/MMC host controllers line
- polarity properties, we have to fix the meaning of the "normal" and "inverted"
- line levels. We choose to follow the SDHCI standard, which specifies both those
-diff -Nur linux-3.16.orig/drivers/mmc/core/core.c linux-3.16/drivers/mmc/core/core.c
---- linux-3.16.orig/drivers/mmc/core/core.c 2014-08-04 00:25:02.000000000 +0200
-+++ linux-3.16/drivers/mmc/core/core.c 2014-08-11 12:34:15.555644693 +0200
-@@ -13,11 +13,13 @@
- #include <linux/module.h>
- #include <linux/init.h>
- #include <linux/interrupt.h>
-+#include <linux/clk.h>
- #include <linux/completion.h>
- #include <linux/device.h>
- #include <linux/delay.h>
- #include <linux/pagemap.h>
- #include <linux/err.h>
-+#include <linux/gpio/consumer.h>
- #include <linux/leds.h>
- #include <linux/scatterlist.h>
- #include <linux/log2.h>
-@@ -1515,6 +1517,43 @@
- mmc_host_clk_release(host);
- }
-
-+static void mmc_card_power_up(struct mmc_host *host)
-+{
-+ int i;
-+ struct gpio_desc **gds = host->card_reset_gpios;
-+
-+ for (i = 0; i < ARRAY_SIZE(host->card_reset_gpios); i++) {
-+ if (gds[i]) {
-+ dev_dbg(host->parent, "Asserting reset line %d", i);
-+ gpiod_set_value(gds[i], 1);
-+ }
-+ }
-+
-+ if (host->card_regulator) {
-+ dev_dbg(host->parent, "Enabling external regulator");
-+ if (regulator_enable(host->card_regulator))
-+ dev_err(host->parent, "Failed to enable external regulator");
-+ }
-+
-+ if (host->card_clk) {
-+ dev_dbg(host->parent, "Enabling external clock");
-+ clk_prepare_enable(host->card_clk);
-+ }
-+
-+ /* 2ms delay to let clocks and power settle */
-+ mmc_delay(20);
-+
-+ for (i = 0; i < ARRAY_SIZE(host->card_reset_gpios); i++) {
-+ if (gds[i]) {
-+ dev_dbg(host->parent, "Deasserting reset line %d", i);
-+ gpiod_set_value(gds[i], 0);
-+ }
-+ }
-+
-+ /* 2ms delay to after reset release */
-+ mmc_delay(20);
-+}
-+
- /*
- * Apply power to the MMC stack. This is a two-stage process.
- * First, we enable power to the card without the clock running.
-@@ -1531,6 +1570,9 @@
- if (host->ios.power_mode == MMC_POWER_ON)
- return;
-
-+ /* Power up the card/module first, if needed */
-+ mmc_card_power_up(host);
-+
- mmc_host_clk_hold(host);
-
- host->ios.vdd = fls(ocr) - 1;
-diff -Nur linux-3.16.orig/drivers/mmc/core/host.c linux-3.16/drivers/mmc/core/host.c
---- linux-3.16.orig/drivers/mmc/core/host.c 2014-08-04 00:25:02.000000000 +0200
-+++ linux-3.16/drivers/mmc/core/host.c 2014-08-11 12:34:27.995754826 +0200
-@@ -12,14 +12,18 @@
- * MMC host class device management
- */
-
-+#include <linux/kernel.h>
-+#include <linux/clk.h>
- #include <linux/device.h>
- #include <linux/err.h>
-+#include <linux/gpio/consumer.h>
- #include <linux/idr.h>
- #include <linux/of.h>
- #include <linux/of_gpio.h>
- #include <linux/pagemap.h>
- #include <linux/export.h>
- #include <linux/leds.h>
-+#include <linux/regulator/consumer.h>
- #include <linux/slab.h>
- #include <linux/suspend.h>
-
-@@ -461,6 +465,66 @@
-
- EXPORT_SYMBOL(mmc_of_parse);
-
-+static int mmc_of_parse_child(struct mmc_host *host)
-+{
-+ struct device_node *np;
-+ struct clk *clk;
-+ int i;
-+
-+ if (!host->parent || !host->parent->of_node)
-+ return 0;
-+
-+ np = host->parent->of_node;
-+
-+ host->card_regulator = regulator_get(host->parent, "card-external-vcc");
-+ if (IS_ERR(host->card_regulator)) {
-+ if (PTR_ERR(host->card_regulator) == -EPROBE_DEFER)
-+ return PTR_ERR(host->card_regulator);
-+ host->card_regulator = NULL;
-+ }
-+
-+ /* Parse card power/reset/clock control */
-+ if (of_find_property(np, "card-reset-gpios", NULL)) {
-+ struct gpio_desc *gpd;
-+ int level = 0;
-+
-+ /*
-+ * If the regulator is enabled, then we can hold the
-+ * card in reset with an active high resets. Otherwise,
-+ * hold the resets low.
-+ */
-+ if (host->card_regulator && regulator_is_enabled(host->card_regulator))
-+ level = 1;
-+
-+ for (i = 0; i < ARRAY_SIZE(host->card_reset_gpios); i++) {
-+ gpd = devm_gpiod_get_index(host->parent, "card-reset", i);
-+ if (IS_ERR(gpd)) {
-+ if (PTR_ERR(gpd) == -EPROBE_DEFER)
-+ return PTR_ERR(gpd);
-+ break;
-+ }
-+ gpiod_direction_output(gpd, gpiod_is_active_low(gpd) | level);
-+ host->card_reset_gpios[i] = gpd;
-+ }
-+
-+ gpd = devm_gpiod_get_index(host->parent, "card-reset", ARRAY_SIZE(host->card_reset_gpios));
-+ if (!IS_ERR(gpd)) {
-+ dev_warn(host->parent, "More reset gpios than we can handle");
-+ gpiod_put(gpd);
-+ }
-+ }
-+
-+ clk = of_clk_get_by_name(np, "card_ext_clock");
-+ if (IS_ERR(clk)) {
-+ if (PTR_ERR(clk) == -EPROBE_DEFER)
-+ return PTR_ERR(clk);
-+ clk = NULL;
-+ }
-+ host->card_clk = clk;
-+
-+ return 0;
-+}
-+
- /**
- * mmc_alloc_host - initialise the per-host structure.
- * @extra: sizeof private data structure
-@@ -540,6 +604,10 @@
- {
- int err;
-
-+ err = mmc_of_parse_child(host);
-+ if (err)
-+ return err;
-+
- WARN_ON((host->caps & MMC_CAP_SDIO_IRQ) &&
- !host->ops->enable_sdio_irq);
-
-diff -Nur linux-3.16.orig/drivers/mmc/host/dw_mmc.c linux-3.16/drivers/mmc/host/dw_mmc.c
---- linux-3.16.orig/drivers/mmc/host/dw_mmc.c 2014-08-04 00:25:02.000000000 +0200
-+++ linux-3.16/drivers/mmc/host/dw_mmc.c 2014-08-11 12:34:22.043702140 +0200
-@@ -2049,6 +2049,8 @@
- if (!mmc)
- return -ENOMEM;
-
-+ mmc_of_parse(mmc);
-+
- slot = mmc_priv(mmc);
- slot->id = id;
- slot->mmc = mmc;
-diff -Nur linux-3.16.orig/drivers/mmc/host/Kconfig linux-3.16/drivers/mmc/host/Kconfig
---- linux-3.16.orig/drivers/mmc/host/Kconfig 2014-08-04 00:25:02.000000000 +0200
-+++ linux-3.16/drivers/mmc/host/Kconfig 2014-08-11 12:34:03.391536946 +0200
-@@ -25,8 +25,7 @@
- If unsure, say N.
-
- config MMC_SDHCI
-- tristate "Secure Digital Host Controller Interface support"
-- depends on HAS_DMA
-+ tristate
- help
- This selects the generic Secure Digital Host Controller Interface.
- It is used by manufacturers such as Texas Instruments(R), Ricoh(R)
-@@ -59,7 +58,8 @@
-
- config MMC_SDHCI_PCI
- tristate "SDHCI support on PCI bus"
-- depends on MMC_SDHCI && PCI
-+ depends on PCI && HAS_DMA
-+ select MMC_SDHCI
- help
- This selects the PCI Secure Digital Host Controller Interface.
- Most controllers found today are PCI devices.
-@@ -83,7 +83,8 @@
-
- config MMC_SDHCI_ACPI
- tristate "SDHCI support for ACPI enumerated SDHCI controllers"
-- depends on MMC_SDHCI && ACPI
-+ depends on ACPI && HAS_DMA
-+ select MMC_SDHCI
- help
- This selects support for ACPI enumerated SDHCI controllers,
- identified by ACPI Compatibility ID PNP0D40 or specific
-@@ -94,8 +95,8 @@
- If unsure, say N.
-
- config MMC_SDHCI_PLTFM
-- tristate "SDHCI platform and OF driver helper"
-- depends on MMC_SDHCI
-+ tristate
-+ select MMC_SDHCI
- help
- This selects the common helper functions support for Secure Digital
- Host Controller Interface based platform and OF drivers.
-@@ -106,8 +107,8 @@
-
- config MMC_SDHCI_OF_ARASAN
- tristate "SDHCI OF support for the Arasan SDHCI controllers"
-- depends on MMC_SDHCI_PLTFM
-- depends on OF
-+ depends on OF && HAS_DMA
-+ select MMC_SDHCI_PLTFM
- help
- This selects the Arasan Secure Digital Host Controller Interface
- (SDHCI). This hardware is found e.g. in Xilinx' Zynq SoC.
-@@ -118,9 +119,9 @@
-
- config MMC_SDHCI_OF_ESDHC
- tristate "SDHCI OF support for the Freescale eSDHC controller"
-- depends on MMC_SDHCI_PLTFM
-- depends on PPC_OF
-+ depends on PPC_OF && HAS_DMA
- select MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER
-+ select MMC_SDHCI_PLTFM
- help
- This selects the Freescale eSDHC controller support.
-
-@@ -130,9 +131,9 @@
-
- config MMC_SDHCI_OF_HLWD
- tristate "SDHCI OF support for the Nintendo Wii SDHCI controllers"
-- depends on MMC_SDHCI_PLTFM
-- depends on PPC_OF
-+ depends on PPC_OF && HAS_DMA
- select MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER
-+ select MMC_SDHCI_PLTFM
- help
- This selects the Secure Digital Host Controller Interface (SDHCI)
- found in the "Hollywood" chipset of the Nintendo Wii video game
-@@ -144,8 +145,8 @@
-
- config MMC_SDHCI_CNS3XXX
- tristate "SDHCI support on the Cavium Networks CNS3xxx SoC"
-- depends on ARCH_CNS3XXX
-- depends on MMC_SDHCI_PLTFM
-+ depends on ARCH_CNS3XXX && HAS_DMA
-+ select MMC_SDHCI_PLTFM
- help
- This selects the SDHCI support for CNS3xxx System-on-Chip devices.
-
-@@ -155,9 +156,9 @@
-
- config MMC_SDHCI_ESDHC_IMX
- tristate "SDHCI support for the Freescale eSDHC/uSDHC i.MX controller"
-- depends on ARCH_MXC
-- depends on MMC_SDHCI_PLTFM
-+ depends on ARCH_MXC && HAS_DMA
- select MMC_SDHCI_IO_ACCESSORS
-+ select MMC_SDHCI_PLTFM
- help
- This selects the Freescale eSDHC/uSDHC controller support
- found on i.MX25, i.MX35 i.MX5x and i.MX6x.
-@@ -168,9 +169,9 @@
-
- config MMC_SDHCI_DOVE
- tristate "SDHCI support on Marvell's Dove SoC"
-- depends on ARCH_DOVE || MACH_DOVE
-- depends on MMC_SDHCI_PLTFM
-+ depends on (ARCH_DOVE || MACH_DOVE) && HAS_DMA
- select MMC_SDHCI_IO_ACCESSORS
-+ select MMC_SDHCI_PLTFM
- help
- This selects the Secure Digital Host Controller Interface in
- Marvell's Dove SoC.
-@@ -181,9 +182,9 @@
-
- config MMC_SDHCI_TEGRA
- tristate "SDHCI platform support for the Tegra SD/MMC Controller"
-- depends on ARCH_TEGRA
-- depends on MMC_SDHCI_PLTFM
-+ depends on ARCH_TEGRA && HAS_DMA
- select MMC_SDHCI_IO_ACCESSORS
-+ select MMC_SDHCI_PLTFM
- help
- This selects the Tegra SD/MMC controller. If you have a Tegra
- platform with SD or MMC devices, say Y or M here.
-@@ -192,7 +193,8 @@
-
- config MMC_SDHCI_S3C
- tristate "SDHCI support on Samsung S3C SoC"
-- depends on MMC_SDHCI && PLAT_SAMSUNG
-+ depends on PLAT_SAMSUNG && HAS_DMA
-+ select MMC_SDHCI
- help
- This selects the Secure Digital Host Controller Interface (SDHCI)
- often referrered to as the HSMMC block in some of the Samsung S3C
-@@ -204,8 +206,8 @@
-
- config MMC_SDHCI_SIRF
- tristate "SDHCI support on CSR SiRFprimaII and SiRFmarco SoCs"
-- depends on ARCH_SIRF
-- depends on MMC_SDHCI_PLTFM
-+ depends on ARCH_SIRF && HAS_DMA
-+ select MMC_SDHCI_PLTFM
- help
- This selects the SDHCI support for SiRF System-on-Chip devices.
-
-@@ -215,8 +217,8 @@
-
- config MMC_SDHCI_PXAV3
- tristate "Marvell MMP2 SD Host Controller support (PXAV3)"
-- depends on CLKDEV_LOOKUP
-- depends on MMC_SDHCI_PLTFM
-+ depends on CLKDEV_LOOKUP && HAS_DMA
-+ select MMC_SDHCI_PLTFM
- default CPU_MMP2
- help
- This selects the Marvell(R) PXAV3 SD Host Controller.
-@@ -227,8 +229,8 @@
-
- config MMC_SDHCI_PXAV2
- tristate "Marvell PXA9XX SD Host Controller support (PXAV2)"
-- depends on CLKDEV_LOOKUP
-- depends on MMC_SDHCI_PLTFM
-+ depends on CLKDEV_LOOKUP && HAS_DMA
-+ select MMC_SDHCI_PLTFM
- default CPU_PXA910
- help
- This selects the Marvell(R) PXAV2 SD Host Controller.
-@@ -239,7 +241,8 @@
-
- config MMC_SDHCI_SPEAR
- tristate "SDHCI support on ST SPEAr platform"
-- depends on MMC_SDHCI && PLAT_SPEAR
-+ depends on PLAT_SPEAR && HAS_DMA
-+ select MMC_SDHCI
- help
- This selects the Secure Digital Host Controller Interface (SDHCI)
- often referrered to as the HSMMC block in some of the ST SPEAR range
-@@ -261,8 +264,8 @@
-
- config MMC_SDHCI_BCM_KONA
- tristate "SDHCI support on Broadcom KONA platform"
-- depends on ARCH_BCM_MOBILE
-- depends on MMC_SDHCI_PLTFM
-+ depends on ARCH_BCM_MOBILE && HAS_DMA
-+ select MMC_SDHCI_PLTFM
- help
- This selects the Broadcom Kona Secure Digital Host Controller
- Interface(SDHCI) support.
-@@ -272,9 +275,9 @@
-
- config MMC_SDHCI_BCM2835
- tristate "SDHCI platform support for the BCM2835 SD/MMC Controller"
-- depends on ARCH_BCM2835
-- depends on MMC_SDHCI_PLTFM
-+ depends on ARCH_BCM2835 && HAS_DMA
- select MMC_SDHCI_IO_ACCESSORS
-+ select MMC_SDHCI_PLTFM
- help
- This selects the BCM2835 SD/MMC controller. If you have a BCM2835
- platform with SD or MMC devices, say Y or M here.
-diff -Nur linux-3.16.orig/drivers/mmc/host/sdhci.c linux-3.16/drivers/mmc/host/sdhci.c
---- linux-3.16.orig/drivers/mmc/host/sdhci.c 2014-08-04 00:25:02.000000000 +0200
-+++ linux-3.16/drivers/mmc/host/sdhci.c 2014-08-11 12:34:08.763584537 +0200
-@@ -1530,7 +1530,6 @@
- host->ops->set_clock(host, host->clock);
- }
-
--
- /* Reset SD Clock Enable */
- clk = sdhci_readw(host, SDHCI_CLOCK_CONTROL);
- clk &= ~SDHCI_CLOCK_CARD_EN;
-@@ -1763,9 +1762,6 @@
- ctrl |= SDHCI_CTRL_VDD_180;
- sdhci_writew(host, ctrl, SDHCI_HOST_CONTROL2);
-
-- /* Wait for 5ms */
-- usleep_range(5000, 5500);
--
- /* 1.8V regulator output should be stable within 5 ms */
- ctrl = sdhci_readw(host, SDHCI_HOST_CONTROL2);
- if (ctrl & SDHCI_CTRL_VDD_180)
-diff -Nur linux-3.16.orig/include/linux/mmc/host.h linux-3.16/include/linux/mmc/host.h
---- linux-3.16.orig/include/linux/mmc/host.h 2014-08-04 00:25:02.000000000 +0200
-+++ linux-3.16/include/linux/mmc/host.h 2014-08-11 12:34:15.559644729 +0200
-@@ -298,6 +298,11 @@
- unsigned long clkgate_delay;
- #endif
-
-+ /* card specific properties to deal with power and reset */
-+ struct regulator *card_regulator; /* External VCC needed by the card */
-+ struct gpio_desc *card_reset_gpios[2]; /* External resets, active low */
-+ struct clk *card_clk; /* External clock needed by the card */
-+
- /* host specific block data */
- unsigned int max_seg_size; /* see blk_queue_max_segment_size */
- unsigned short max_segs; /* see blk_queue_max_segments */
diff --git a/target/arm/solidrun-imx6/patches/3.16.6/rmk.patch b/target/arm/solidrun-imx6/patches/3.16.6/rmk.patch
new file mode 100644
index 000000000..a0e0e7495
--- /dev/null
+++ b/target/arm/solidrun-imx6/patches/3.16.6/rmk.patch
@@ -0,0 +1,7601 @@
+diff -Nur linux-3.16.6.orig/arch/arm/boot/dts/imx6dl-hummingboard.dts linux-3.16.6/arch/arm/boot/dts/imx6dl-hummingboard.dts
+--- linux-3.16.6.orig/arch/arm/boot/dts/imx6dl-hummingboard.dts 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/arch/arm/boot/dts/imx6dl-hummingboard.dts 2014-10-23 12:37:45.114220003 -0500
+@@ -56,15 +56,32 @@
+ };
+ };
+
++ sound-sgtl5000 {
++ audio-codec = <&sgtl5000>;
++ audio-routing =
++ "MIC_IN", "Mic Jack",
++ "Mic Jack", "Mic Bias",
++ "Headphone Jack", "HP_OUT";
++ compatible = "fsl,imx-audio-sgtl5000";
++ model = "On-board Codec";
++ mux-ext-port = <5>;
++ mux-int-port = <1>;
++ ssi-controller = <&ssi1>;
++ };
++
+ sound-spdif {
+ compatible = "fsl,imx-audio-spdif";
+- model = "imx-spdif";
++ model = "On-board SPDIF";
+ /* IMX6 doesn't implement this yet */
+ spdif-controller = <&spdif>;
+ spdif-out;
+ };
+ };
+
++&audmux {
++ status = "okay";
++};
++
+ &can1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_hummingboard_flexcan1>;
+@@ -81,16 +98,24 @@
+ &i2c1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_hummingboard_i2c1>;
+-
+- /*
+- * Not fitted on Carrier-1 board... yet
+ status = "okay";
+
++ /* Pro model */
+ rtc: pcf8523@68 {
+ compatible = "nxp,pcf8523";
+ reg = <0x68>;
+ };
+- */
++
++ /* Pro model */
++ sgtl5000: sgtl5000@0a {
++ clocks = <&clks 201>;
++ compatible = "fsl,sgtl5000";
++ pinctrl-names = "default";
++ pinctrl-0 = <&pinctrl_hummingboard_sgtl5000>;
++ reg = <0x0a>;
++ VDDA-supply = <&reg_3p3v>;
++ VDDIO-supply = <&reg_3p3v>;
++ };
+ };
+
+ &i2c2 {
+@@ -135,6 +160,16 @@
+ >;
+ };
+
++ pinctrl_hummingboard_sgtl5000: hummingboard-sgtl5000 {
++ fsl,pins = <
++ MX6QDL_PAD_DISP0_DAT19__AUD5_RXD 0x130b0 /*brk*/
++ MX6QDL_PAD_KEY_COL0__AUD5_TXC 0x130b0 /*ok*/
++ MX6QDL_PAD_KEY_ROW0__AUD5_TXD 0x110b0 /*brk*/
++ MX6QDL_PAD_KEY_COL1__AUD5_TXFS 0x130b0 /*ok*/
++ MX6QDL_PAD_GPIO_5__CCM_CLKO1 0x130b0
++ >;
++ };
++
+ pinctrl_hummingboard_spdif: hummingboard-spdif {
+ fsl,pins = <MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x13091>;
+ };
+@@ -180,12 +215,19 @@
+ status = "okay";
+ };
+
++&ssi1 {
++ fsl,mode = "i2s-slave";
++ status = "okay";
++};
++
+ &usbh1 {
++ disable-over-current;
+ vbus-supply = <&reg_usbh1_vbus>;
+ status = "okay";
+ };
+
+ &usbotg {
++ disable-over-current;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_hummingboard_usbotg_id>;
+ vbus-supply = <&reg_usbotg_vbus>;
+diff -Nur linux-3.16.6.orig/arch/arm/boot/dts/imx6q-cubox-i.dts linux-3.16.6/arch/arm/boot/dts/imx6q-cubox-i.dts
+--- linux-3.16.6.orig/arch/arm/boot/dts/imx6q-cubox-i.dts 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/arch/arm/boot/dts/imx6q-cubox-i.dts 2014-10-23 12:26:42.106220014 -0500
+@@ -13,4 +13,8 @@
+
+ &sata {
+ status = "okay";
++ fsl,transmit-level-mV = <1104>;
++ fsl,transmit-boost-mdB = <0>;
++ fsl,transmit-atten-16ths = <9>;
++ fsl,no-spread-spectrum;
+ };
+diff -Nur linux-3.16.6.orig/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi linux-3.16.6/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi
+--- linux-3.16.6.orig/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi 2014-10-23 12:34:41.266219992 -0500
+@@ -61,7 +61,7 @@
+
+ sound-spdif {
+ compatible = "fsl,imx-audio-spdif";
+- model = "imx-spdif";
++ model = "Integrated SPDIF";
+ /* IMX6 doesn't implement this yet */
+ spdif-controller = <&spdif>;
+ spdif-out;
+@@ -130,16 +130,23 @@
+ fsl,pins = <MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x13091>;
+ };
+
++ pinctrl_cubox_i_usbh1: cubox-i-usbh1 {
++ fsl,pins = <MX6QDL_PAD_GPIO_3__USB_H1_OC 0x1b0b0>;
++ };
++
+ pinctrl_cubox_i_usbh1_vbus: cubox-i-usbh1-vbus {
+ fsl,pins = <MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x4001b0b0>;
+ };
+
+- pinctrl_cubox_i_usbotg_id: cubox-i-usbotg-id {
++ pinctrl_cubox_i_usbotg: cubox-i-usbotg {
+ /*
+- * The Cubox-i pulls this low, but as it's pointless
++ * The Cubox-i pulls ID low, but as it's pointless
+ * leaving it as a pull-up, even if it is just 10uA.
+ */
+- fsl,pins = <MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x13059>;
++ fsl,pins = <
++ MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x13059
++ MX6QDL_PAD_KEY_COL4__USB_OTG_OC 0x1b0b0
++ >;
+ };
+
+ pinctrl_cubox_i_usbotg_vbus: cubox-i-usbotg-vbus {
+@@ -163,6 +170,28 @@
+ MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x13059
+ >;
+ };
++
++ pinctrl_cubox_i_usdhc2_100mhz: cubox-i-usdhc2-100mhz {
++ fsl,pins = <
++ MX6QDL_PAD_SD2_CMD__SD2_CMD 0x170b9
++ MX6QDL_PAD_SD2_CLK__SD2_CLK 0x100b9
++ MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x170b9
++ MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x170b9
++ MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x170b9
++ MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x130b9
++ >;
++ };
++
++ pinctrl_cubox_i_usdhc2_200mhz: cubox-i-usdhc2-200mhz {
++ fsl,pins = <
++ MX6QDL_PAD_SD2_CMD__SD2_CMD 0x170f9
++ MX6QDL_PAD_SD2_CLK__SD2_CLK 0x100f9
++ MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x170f9
++ MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x170f9
++ MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x170f9
++ MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x130f9
++ >;
++ };
+ };
+ };
+
+@@ -173,20 +202,24 @@
+ };
+
+ &usbh1 {
++ pinctrl-names = "default";
++ pinctrl-0 = <&pinctrl_cubox_i_usbh1>;
+ vbus-supply = <&reg_usbh1_vbus>;
+ status = "okay";
+ };
+
+ &usbotg {
+ pinctrl-names = "default";
+- pinctrl-0 = <&pinctrl_cubox_i_usbotg_id>;
++ pinctrl-0 = <&pinctrl_cubox_i_usbotg>;
+ vbus-supply = <&reg_usbotg_vbus>;
+ status = "okay";
+ };
+
+ &usdhc2 {
+- pinctrl-names = "default";
++ pinctrl-names = "default", "state_100mhz", "state_200mhz";
+ pinctrl-0 = <&pinctrl_cubox_i_usdhc2_aux &pinctrl_cubox_i_usdhc2>;
++ pinctrl-1 = <&pinctrl_cubox_i_usdhc2_aux &pinctrl_cubox_i_usdhc2_100mhz>;
++ pinctrl-2 = <&pinctrl_cubox_i_usdhc2_aux &pinctrl_cubox_i_usdhc2_200mhz>;
+ vmmc-supply = <&reg_3p3v>;
+ cd-gpios = <&gpio1 4 0>;
+ status = "okay";
+diff -Nur linux-3.16.6.orig/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi.orig linux-3.16.6/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi.orig
+--- linux-3.16.6.orig/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi.orig 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.16.6/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi.orig 2014-10-23 12:27:10.986220036 -0500
+@@ -0,0 +1,202 @@
++/*
++ * Copyright (C) 2014 Russell King
++ */
++#include "imx6qdl-microsom.dtsi"
++#include "imx6qdl-microsom-ar8035.dtsi"
++
++/ {
++ ir_recv: ir-receiver {
++ compatible = "gpio-ir-receiver";
++ gpios = <&gpio3 9 1>;
++ pinctrl-names = "default";
++ pinctrl-0 = <&pinctrl_cubox_i_ir>;
++ };
++
++ pwmleds {
++ compatible = "pwm-leds";
++ pinctrl-names = "default";
++ pinctrl-0 = <&pinctrl_cubox_i_pwm1>;
++
++ front {
++ active-low;
++ label = "imx6:red:front";
++ max-brightness = <248>;
++ pwms = <&pwm1 0 50000>;
++ };
++ };
++
++ regulators {
++ compatible = "simple-bus";
++
++ reg_3p3v: 3p3v {
++ compatible = "regulator-fixed";
++ regulator-name = "3P3V";
++ regulator-min-microvolt = <3300000>;
++ regulator-max-microvolt = <3300000>;
++ regulator-always-on;
++ };
++
++ reg_usbh1_vbus: usb-h1-vbus {
++ compatible = "regulator-fixed";
++ enable-active-high;
++ gpio = <&gpio1 0 0>;
++ pinctrl-names = "default";
++ pinctrl-0 = <&pinctrl_cubox_i_usbh1_vbus>;
++ regulator-name = "usb_h1_vbus";
++ regulator-min-microvolt = <5000000>;
++ regulator-max-microvolt = <5000000>;
++ };
++
++ reg_usbotg_vbus: usb-otg-vbus {
++ compatible = "regulator-fixed";
++ enable-active-high;
++ gpio = <&gpio3 22 0>;
++ pinctrl-names = "default";
++ pinctrl-0 = <&pinctrl_cubox_i_usbotg_vbus>;
++ regulator-name = "usb_otg_vbus";
++ regulator-min-microvolt = <5000000>;
++ regulator-max-microvolt = <5000000>;
++ };
++ };
++
++ sound-spdif {
++ compatible = "fsl,imx-audio-spdif";
++ model = "Integrated SPDIF";
++ /* IMX6 doesn't implement this yet */
++ spdif-controller = <&spdif>;
++ spdif-out;
++ };
++};
++
++&hdmi {
++ pinctrl-names = "default";
++ pinctrl-0 = <&pinctrl_cubox_i_hdmi>;
++ ddc-i2c-bus = <&i2c2>;
++ status = "okay";
++};
++
++&i2c2 {
++ clock-frequency = <100000>;
++ pinctrl-names = "default";
++ pinctrl-0 = <&pinctrl_cubox_i_i2c2>;
++ status = "okay";
++};
++
++&i2c3 {
++ pinctrl-names = "default";
++ pinctrl-0 = <&pinctrl_cubox_i_i2c3>;
++
++ status = "okay";
++
++ rtc: pcf8523@68 {
++ compatible = "nxp,pcf8523";
++ reg = <0x68>;
++ };
++};
++
++&iomuxc {
++ cubox_i {
++ pinctrl_cubox_i_hdmi: cubox-i-hdmi {
++ fsl,pins = <
++ MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE 0x1f8b0
++ >;
++ };
++
++ pinctrl_cubox_i_i2c2: cubox-i-i2c2 {
++ fsl,pins = <
++ MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
++ MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
++ >;
++ };
++
++ pinctrl_cubox_i_i2c3: cubox-i-i2c3 {
++ fsl,pins = <
++ MX6QDL_PAD_EIM_D17__I2C3_SCL 0x4001b8b1
++ MX6QDL_PAD_EIM_D18__I2C3_SDA 0x4001b8b1
++ >;
++ };
++
++ pinctrl_cubox_i_ir: cubox-i-ir {
++ fsl,pins = <
++ MX6QDL_PAD_EIM_DA9__GPIO3_IO09 0x80000000
++ >;
++ };
++
++ pinctrl_cubox_i_pwm1: cubox-i-pwm1-front-led {
++ fsl,pins = <MX6QDL_PAD_DISP0_DAT8__PWM1_OUT 0x1b0b0>;
++ };
++
++ pinctrl_cubox_i_spdif: cubox-i-spdif {
++ fsl,pins = <MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x13091>;
++ };
++
++ pinctrl_cubox_i_usbh1: cubox-i-usbh1 {
++ fsl,pins = <MX6QDL_PAD_GPIO_3__USB_H1_OC 0x1b0b0>;
++ };
++
++ pinctrl_cubox_i_usbh1_vbus: cubox-i-usbh1-vbus {
++ fsl,pins = <MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x4001b0b0>;
++ };
++
++ pinctrl_cubox_i_usbotg: cubox-i-usbotg {
++ /*
++ * The Cubox-i pulls ID low, but as it's pointless
++ * leaving it as a pull-up, even if it is just 10uA.
++ */
++ fsl,pins = <
++ MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x13059
++ MX6QDL_PAD_KEY_COL4__USB_OTG_OC 0x1b0b0
++ >;
++ };
++
++ pinctrl_cubox_i_usbotg_vbus: cubox-i-usbotg-vbus {
++ fsl,pins = <MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x4001b0b0>;
++ };
++
++ pinctrl_cubox_i_usdhc2_aux: cubox-i-usdhc2-aux {
++ fsl,pins = <
++ MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1f071
++ MX6QDL_PAD_KEY_ROW1__SD2_VSELECT 0x1b071
++ >;
++ };
++
++ pinctrl_cubox_i_usdhc2: cubox-i-usdhc2 {
++ fsl,pins = <
++ MX6QDL_PAD_SD2_CMD__SD2_CMD 0x17059
++ MX6QDL_PAD_SD2_CLK__SD2_CLK 0x10059
++ MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17059
++ MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17059
++ MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17059
++ MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x13059
++ >;
++ };
++ };
++};
++
++&spdif {
++ pinctrl-names = "default";
++ pinctrl-0 = <&pinctrl_cubox_i_spdif>;
++ status = "okay";
++};
++
++&usbh1 {
++ pinctrl-names = "default";
++ pinctrl-0 = <&pinctrl_cubox_i_usbh1>;
++ vbus-supply = <&reg_usbh1_vbus>;
++ status = "okay";
++};
++
++&usbotg {
++ pinctrl-names = "default";
++ pinctrl-0 = <&pinctrl_cubox_i_usbotg>;
++ vbus-supply = <&reg_usbotg_vbus>;
++ status = "okay";
++};
++
++&usdhc2 {
++ pinctrl-names = "default";
++ pinctrl-0 = <&pinctrl_cubox_i_usdhc2_aux &pinctrl_cubox_i_usdhc2>;
++ vmmc-supply = <&reg_3p3v>;
++ cd-gpios = <&gpio1 4 0>;
++ status = "okay";
++};
+diff -Nur linux-3.16.6.orig/arch/arm/boot/dts/imx6qdl-microsom.dtsi linux-3.16.6/arch/arm/boot/dts/imx6qdl-microsom.dtsi
+--- linux-3.16.6.orig/arch/arm/boot/dts/imx6qdl-microsom.dtsi 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/arch/arm/boot/dts/imx6qdl-microsom.dtsi 2014-10-23 12:34:48.394220240 -0500
+@@ -1,15 +1,95 @@
+ /*
+ * Copyright (C) 2013,2014 Russell King
+ */
++#include <dt-bindings/gpio/gpio.h>
++/ {
++ regulators {
++ compatible = "simple-bus";
++
++ reg_brcm_osc: brcm-osc-reg {
++ compatible = "regulator-fixed";
++ enable-active-high;
++ gpio = <&gpio5 5 0>;
++ pinctrl-names = "default";
++ pinctrl-0 = <&pinctrl_microsom_brcm_osc_reg>;
++ regulator-name = "brcm_osc_reg";
++ regulator-min-microvolt = <3300000>;
++ regulator-max-microvolt = <3300000>;
++ regulator-always-on;
++ regulator-boot-on;
++ };
++
++ reg_brcm: brcm-reg {
++ compatible = "regulator-fixed";
++ enable-active-high;
++ gpio = <&gpio3 19 0>;
++ pinctrl-names = "default";
++ pinctrl-0 = <&pinctrl_microsom_brcm_reg>;
++ regulator-name = "brcm_reg";
++ regulator-min-microvolt = <3300000>;
++ regulator-max-microvolt = <3300000>;
++ startup-delay-us = <200000>;
++ };
++ };
++};
+
+ &iomuxc {
+ microsom {
++ pinctrl_microsom_brcm_bt: microsom-brcm-bt {
++ fsl,pins = <
++ MX6QDL_PAD_CSI0_DAT14__GPIO6_IO00 0x40013070
++ MX6QDL_PAD_CSI0_DAT15__GPIO6_IO01 0x40013070
++ MX6QDL_PAD_CSI0_DAT18__GPIO6_IO04 0x40013070
++ >;
++ };
++
++ pinctrl_microsom_brcm_osc_reg: microsom-brcm-osc-reg {
++ fsl,pins = <
++ MX6QDL_PAD_DISP0_DAT11__GPIO5_IO05 0x40013070
++ >;
++ };
++
++ pinctrl_microsom_brcm_reg: microsom-brcm-reg {
++ fsl,pins = <
++ MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x40013070
++ >;
++ };
++
++ pinctrl_microsom_brcm_wifi: microsom-brcm-wifi {
++ fsl,pins = <
++ MX6QDL_PAD_GPIO_8__XTALOSC_REF_CLK_32K 0x1b0b0
++ MX6QDL_PAD_CSI0_DATA_EN__GPIO5_IO20 0x40013070
++ MX6QDL_PAD_CSI0_DAT8__GPIO5_IO26 0x40013070
++ MX6QDL_PAD_CSI0_DAT9__GPIO5_IO27 0x40013070
++ >;
++ };
++
+ pinctrl_microsom_uart1: microsom-uart1 {
+ fsl,pins = <
+ MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA 0x1b0b1
+ MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA 0x1b0b1
+ >;
+ };
++
++ pinctrl_microsom_uart4_1: microsom-uart4 {
++ fsl,pins = <
++ MX6QDL_PAD_CSI0_DAT12__UART4_TX_DATA 0x1b0b1
++ MX6QDL_PAD_CSI0_DAT13__UART4_RX_DATA 0x1b0b1
++ MX6QDL_PAD_CSI0_DAT16__UART4_RTS_B 0x1b0b1
++ MX6QDL_PAD_CSI0_DAT17__UART4_CTS_B 0x1b0b1
++ >;
++ };
++
++ pinctrl_microsom_usdhc1: microsom-usdhc1 {
++ fsl,pins = <
++ MX6QDL_PAD_SD1_CMD__SD1_CMD 0x17059
++ MX6QDL_PAD_SD1_CLK__SD1_CLK 0x10059
++ MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x17059
++ MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x17059
++ MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x17059
++ MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x17059
++ >;
++ };
+ };
+ };
+
+@@ -18,3 +98,23 @@
+ pinctrl-0 = <&pinctrl_microsom_uart1>;
+ status = "okay";
+ };
++
++/* UART4 - Connected to optional BRCM Wifi/BT/FM */
++&uart4 {
++ pinctrl-names = "default";
++ pinctrl-0 = <&pinctrl_microsom_brcm_bt &pinctrl_microsom_uart4_1>;
++ fsl,uart-has-rtscts;
++ status = "okay";
++};
++
++/* USDHC1 - Connected to optional BRCM Wifi/BT/FM */
++&usdhc1 {
++ card-external-vcc-supply = <&reg_brcm>;
++ card-reset-gpios = <&gpio5 26 GPIO_ACTIVE_LOW>, <&gpio6 0 GPIO_ACTIVE_LOW>;
++ keep-power-in-suspend;
++ non-removable;
++ pinctrl-names = "default";
++ pinctrl-0 = <&pinctrl_microsom_brcm_wifi &pinctrl_microsom_usdhc1>;
++ vmmc-supply = <&reg_brcm>;
++ status = "okay";
++};
+diff -Nur linux-3.16.6.orig/arch/arm/mach-imx/clk-imx6q.c linux-3.16.6/arch/arm/mach-imx/clk-imx6q.c
+--- linux-3.16.6.orig/arch/arm/mach-imx/clk-imx6q.c 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/arch/arm/mach-imx/clk-imx6q.c 2014-10-23 12:36:09.214219998 -0500
+@@ -461,6 +461,9 @@
+ clk_set_parent(clk[ipu2_di0_sel], clk[ipu2_di0_pre]);
+ clk_set_parent(clk[ipu2_di1_sel], clk[ipu2_di1_pre]);
+
++ if (cpu_is_imx6dl())
++ clk_set_parent(clk[ipu1_sel], clk[pll3_pfd1_540m]);
++
+ /*
+ * The gpmi needs 100MHz frequency in the EDO/Sync mode,
+ * We can not get the 100MHz from the pll2_pfd0_352m.
+diff -Nur linux-3.16.6.orig/arch/arm/mach-imx/clk-pllv3.c linux-3.16.6/arch/arm/mach-imx/clk-pllv3.c
+--- linux-3.16.6.orig/arch/arm/mach-imx/clk-pllv3.c 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/arch/arm/mach-imx/clk-pllv3.c 2014-10-23 12:36:01.390219997 -0500
+@@ -273,9 +273,10 @@
+ struct clk_pllv3 *pll = to_clk_pllv3(hw);
+ unsigned long min_rate = parent_rate * 27;
+ unsigned long max_rate = parent_rate * 54;
+- u32 val, div;
++ u32 val, newval, div;
+ u32 mfn, mfd = 1000000;
+ s64 temp64;
++ int ret;
+
+ if (rate < min_rate || rate > max_rate)
+ return -EINVAL;
+@@ -287,13 +288,27 @@
+ mfn = temp64;
+
+ val = readl_relaxed(pll->base);
+- val &= ~pll->div_mask;
+- val |= div;
+- writel_relaxed(val, pll->base);
++
++ /* set the PLL into bypass mode */
++ newval = val | BM_PLL_BYPASS;
++ writel_relaxed(newval, pll->base);
++
++ /* configure the new frequency */
++ newval &= ~pll->div_mask;
++ newval |= div;
++ writel_relaxed(newval, pll->base);
+ writel_relaxed(mfn, pll->base + PLL_NUM_OFFSET);
+- writel_relaxed(mfd, pll->base + PLL_DENOM_OFFSET);
++ writel(mfd, pll->base + PLL_DENOM_OFFSET);
++
++ ret = clk_pllv3_wait_lock(pll);
++ if (ret == 0 && val & BM_PLL_POWER) {
++ /* only if it locked can we switch back to the PLL */
++ newval &= ~BM_PLL_BYPASS;
++ newval |= val & BM_PLL_BYPASS;
++ writel(newval, pll->base);
++ }
+
+- return clk_pllv3_wait_lock(pll);
++ return ret;
+ }
+
+ static const struct clk_ops clk_pllv3_av_ops = {
+diff -Nur linux-3.16.6.orig/Documentation/devicetree/bindings/ata/ahci-platform.txt linux-3.16.6/Documentation/devicetree/bindings/ata/ahci-platform.txt
+--- linux-3.16.6.orig/Documentation/devicetree/bindings/ata/ahci-platform.txt 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/Documentation/devicetree/bindings/ata/ahci-platform.txt 2014-10-23 12:15:35.154220017 -0500
+@@ -6,8 +6,6 @@
+ Required properties:
+ - compatible : compatible string, one of:
+ - "allwinner,sun4i-a10-ahci"
+- - "fsl,imx53-ahci"
+- - "fsl,imx6q-ahci"
+ - "hisilicon,hisi-ahci"
+ - "ibm,476gtr-ahci"
+ - "marvell,armada-380-ahci"
+@@ -22,10 +20,6 @@
+ - clocks : a list of phandle + clock specifier pairs
+ - target-supply : regulator for SATA target power
+
+-"fsl,imx53-ahci", "fsl,imx6q-ahci" required properties:
+-- clocks : must contain the sata, sata_ref and ahb clocks
+-- clock-names : must contain "ahb" for the ahb clock
+-
+ Examples:
+ sata@ffe08000 {
+ compatible = "snps,spear-ahci";
+diff -Nur linux-3.16.6.orig/Documentation/devicetree/bindings/ata/imx-sata.txt linux-3.16.6/Documentation/devicetree/bindings/ata/imx-sata.txt
+--- linux-3.16.6.orig/Documentation/devicetree/bindings/ata/imx-sata.txt 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.16.6/Documentation/devicetree/bindings/ata/imx-sata.txt 2014-10-23 12:26:27.434219953 -0500
+@@ -0,0 +1,36 @@
++* Freescale i.MX AHCI SATA Controller
++
++The Freescale i.MX SATA controller mostly conforms to the AHCI interface
++with some special extensions at integration level.
++
++Required properties:
++- compatible : should be one of the following:
++ - "fsl,imx53-ahci" for i.MX53 SATA controller
++ - "fsl,imx6q-ahci" for i.MX6Q SATA controller
++- interrupts : interrupt mapping for SATA IRQ
++- reg : registers mapping
++- clocks : list of clock specifiers, must contain an entry for each
++ required entry in clock-names
++- clock-names : should include "sata", "sata_ref" and "ahb" entries
++
++Optional properties:
++- fsl,transmit-level-mV : transmit voltage level, in millivolts.
++- fsl,transmit-boost-mdB : transmit boost level, in milli-decibels
++- fsl,transmit-atten-16ths : transmit attenuation, in 16ths
++- fsl,receive-eq-mdB : receive equalisation, in milli-decibels
++ Please refer to the technical documentation or the driver source code
++ for the list of legal values for these options.
++- fsl,no-spread-spectrum : disable spread-spectrum clocking on the SATA
++ link.
++
++Examples:
++
++sata@02200000 {
++ compatible = "fsl,imx6q-ahci";
++ reg = <0x02200000 0x4000>;
++ interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
++ clocks = <&clks IMX6QDL_CLK_SATA>,
++ <&clks IMX6QDL_CLK_SATA_REF_100M>,
++ <&clks IMX6QDL_CLK_AHB>;
++ clock-names = "sata", "sata_ref", "ahb";
++};
+diff -Nur linux-3.16.6.orig/Documentation/devicetree/bindings/mmc/mmc.txt linux-3.16.6/Documentation/devicetree/bindings/mmc/mmc.txt
+--- linux-3.16.6.orig/Documentation/devicetree/bindings/mmc/mmc.txt 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/Documentation/devicetree/bindings/mmc/mmc.txt 2014-10-23 12:34:18.694220003 -0500
+@@ -5,6 +5,8 @@
+ Interpreted by the OF core:
+ - reg: Registers location and length.
+ - interrupts: Interrupts used by the MMC controller.
++- clocks: Clocks needed for the host controller, if any.
++- clock-names: Goes with clocks above.
+
+ Card detection:
+ If no property below is supplied, host native card detect is used.
+@@ -41,6 +43,15 @@
+ - mmc-hs400-1_8v: eMMC HS400 mode(1.8V I/O) is supported
+ - mmc-hs400-1_2v: eMMC HS400 mode(1.2V I/O) is supported
+
++Card power and reset control:
++The following properties can be specified for cases where the MMC
++peripheral needs additional reset, regulator and clock lines. It is for
++example common for WiFi/BT adapters to have these separate from the main
++MMC bus:
++ - card-reset-gpios: Specify GPIOs for card reset (reset active low)
++ - card-external-vcc-supply: Regulator to drive (independent) card VCC
++ - clock with name "card_ext_clock": External clock provided to the card
++
+ *NOTE* on CD and WP polarity. To use common for all SD/MMC host controllers line
+ polarity properties, we have to fix the meaning of the "normal" and "inverted"
+ line levels. We choose to follow the SDHCI standard, which specifies both those
+diff -Nur linux-3.16.6.orig/Documentation/devicetree/bindings/staging/imx-drm/fsl-imx-drm.txt linux-3.16.6/Documentation/devicetree/bindings/staging/imx-drm/fsl-imx-drm.txt
+--- linux-3.16.6.orig/Documentation/devicetree/bindings/staging/imx-drm/fsl-imx-drm.txt 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/Documentation/devicetree/bindings/staging/imx-drm/fsl-imx-drm.txt 2014-10-23 12:35:30.946219998 -0500
+@@ -60,8 +60,8 @@
+ - compatible: Should be "fsl,imx-parallel-display"
+ Optional properties:
+ - interface_pix_fmt: How this display is connected to the
+- display interface. Currently supported types: "rgb24", "rgb565", "bgr666"
+- and "lvds666".
++ display interface. Currently supported types: "rgb24", "rgb565", "bgr666",
++ "rgb666" and "lvds666".
+ - edid: verbatim EDID data block describing attached display.
+ - ddc: phandle describing the i2c bus handling the display data
+ channel
+diff -Nur linux-3.16.6.orig/Documentation/DocBook/media/v4l/pixfmt-packed-rgb.xml linux-3.16.6/Documentation/DocBook/media/v4l/pixfmt-packed-rgb.xml
+--- linux-3.16.6.orig/Documentation/DocBook/media/v4l/pixfmt-packed-rgb.xml 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/Documentation/DocBook/media/v4l/pixfmt-packed-rgb.xml 2014-10-23 12:35:23.678220004 -0500
+@@ -279,6 +279,45 @@
+ <entry></entry>
+ <entry></entry>
+ </row>
++ <row id="V4L2-PIX-FMT-RGB666">
++ <entry><constant>V4L2_PIX_FMT_RGB666</constant></entry>
++ <entry>'RGBH'</entry>
++ <entry></entry>
++ <entry>r<subscript>5</subscript></entry>
++ <entry>r<subscript>4</subscript></entry>
++ <entry>r<subscript>3</subscript></entry>
++ <entry>r<subscript>2</subscript></entry>
++ <entry>r<subscript>1</subscript></entry>
++ <entry>r<subscript>0</subscript></entry>
++ <entry>g<subscript>5</subscript></entry>
++ <entry>g<subscript>4</subscript></entry>
++ <entry></entry>
++ <entry>g<subscript>3</subscript></entry>
++ <entry>g<subscript>2</subscript></entry>
++ <entry>g<subscript>1</subscript></entry>
++ <entry>g<subscript>0</subscript></entry>
++ <entry>b<subscript>5</subscript></entry>
++ <entry>b<subscript>4</subscript></entry>
++ <entry>b<subscript>3</subscript></entry>
++ <entry>b<subscript>2</subscript></entry>
++ <entry></entry>
++ <entry>b<subscript>1</subscript></entry>
++ <entry>b<subscript>0</subscript></entry>
++ <entry></entry>
++ <entry></entry>
++ <entry></entry>
++ <entry></entry>
++ <entry></entry>
++ <entry></entry>
++ <entry></entry>
++ <entry></entry>
++ <entry></entry>
++ <entry></entry>
++ <entry></entry>
++ <entry></entry>
++ <entry></entry>
++ <entry></entry>
++ </row>
+ <row id="V4L2-PIX-FMT-BGR24">
+ <entry><constant>V4L2_PIX_FMT_BGR24</constant></entry>
+ <entry>'BGR3'</entry>
+diff -Nur linux-3.16.6.orig/drivers/ata/ahci_imx.c linux-3.16.6/drivers/ata/ahci_imx.c
+--- linux-3.16.6.orig/drivers/ata/ahci_imx.c 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/drivers/ata/ahci_imx.c 2014-10-23 12:26:19.770220044 -0500
+@@ -64,6 +64,7 @@
+ struct regmap *gpr;
+ bool no_device;
+ bool first_time;
++ u32 phy_params;
+ };
+
+ static int ahci_imx_hotplug;
+@@ -248,14 +249,7 @@
+ IMX6Q_GPR13_SATA_TX_LVL_MASK |
+ IMX6Q_GPR13_SATA_MPLL_CLK_EN |
+ IMX6Q_GPR13_SATA_TX_EDGE_RATE,
+- IMX6Q_GPR13_SATA_RX_EQ_VAL_3_0_DB |
+- IMX6Q_GPR13_SATA_RX_LOS_LVL_SATA2M |
+- IMX6Q_GPR13_SATA_RX_DPLL_MODE_2P_4F |
+- IMX6Q_GPR13_SATA_SPD_MODE_3P0G |
+- IMX6Q_GPR13_SATA_MPLL_SS_EN |
+- IMX6Q_GPR13_SATA_TX_ATTEN_9_16 |
+- IMX6Q_GPR13_SATA_TX_BOOST_3_33_DB |
+- IMX6Q_GPR13_SATA_TX_LVL_1_025_V);
++ imxpriv->phy_params);
+ regmap_update_bits(imxpriv->gpr, IOMUXC_GPR13,
+ IMX6Q_GPR13_SATA_MPLL_CLK_EN,
+ IMX6Q_GPR13_SATA_MPLL_CLK_EN);
+@@ -369,6 +363,165 @@
+ };
+ MODULE_DEVICE_TABLE(of, imx_ahci_of_match);
+
++struct reg_value {
++ u32 of_value;
++ u32 reg_value;
++};
++
++struct reg_property {
++ const char *name;
++ const struct reg_value *values;
++ size_t num_values;
++ u32 def_value;
++ u32 set_value;
++};
++
++static const struct reg_value gpr13_tx_level[] = {
++ { 937, IMX6Q_GPR13_SATA_TX_LVL_0_937_V },
++ { 947, IMX6Q_GPR13_SATA_TX_LVL_0_947_V },
++ { 957, IMX6Q_GPR13_SATA_TX_LVL_0_957_V },
++ { 966, IMX6Q_GPR13_SATA_TX_LVL_0_966_V },
++ { 976, IMX6Q_GPR13_SATA_TX_LVL_0_976_V },
++ { 986, IMX6Q_GPR13_SATA_TX_LVL_0_986_V },
++ { 996, IMX6Q_GPR13_SATA_TX_LVL_0_996_V },
++ { 1005, IMX6Q_GPR13_SATA_TX_LVL_1_005_V },
++ { 1015, IMX6Q_GPR13_SATA_TX_LVL_1_015_V },
++ { 1025, IMX6Q_GPR13_SATA_TX_LVL_1_025_V },
++ { 1035, IMX6Q_GPR13_SATA_TX_LVL_1_035_V },
++ { 1045, IMX6Q_GPR13_SATA_TX_LVL_1_045_V },
++ { 1054, IMX6Q_GPR13_SATA_TX_LVL_1_054_V },
++ { 1064, IMX6Q_GPR13_SATA_TX_LVL_1_064_V },
++ { 1074, IMX6Q_GPR13_SATA_TX_LVL_1_074_V },
++ { 1084, IMX6Q_GPR13_SATA_TX_LVL_1_084_V },
++ { 1094, IMX6Q_GPR13_SATA_TX_LVL_1_094_V },
++ { 1104, IMX6Q_GPR13_SATA_TX_LVL_1_104_V },
++ { 1113, IMX6Q_GPR13_SATA_TX_LVL_1_113_V },
++ { 1123, IMX6Q_GPR13_SATA_TX_LVL_1_123_V },
++ { 1133, IMX6Q_GPR13_SATA_TX_LVL_1_133_V },
++ { 1143, IMX6Q_GPR13_SATA_TX_LVL_1_143_V },
++ { 1152, IMX6Q_GPR13_SATA_TX_LVL_1_152_V },
++ { 1162, IMX6Q_GPR13_SATA_TX_LVL_1_162_V },
++ { 1172, IMX6Q_GPR13_SATA_TX_LVL_1_172_V },
++ { 1182, IMX6Q_GPR13_SATA_TX_LVL_1_182_V },
++ { 1191, IMX6Q_GPR13_SATA_TX_LVL_1_191_V },
++ { 1201, IMX6Q_GPR13_SATA_TX_LVL_1_201_V },
++ { 1211, IMX6Q_GPR13_SATA_TX_LVL_1_211_V },
++ { 1221, IMX6Q_GPR13_SATA_TX_LVL_1_221_V },
++ { 1230, IMX6Q_GPR13_SATA_TX_LVL_1_230_V },
++ { 1240, IMX6Q_GPR13_SATA_TX_LVL_1_240_V }
++};
++
++static const struct reg_value gpr13_tx_boost[] = {
++ { 0, IMX6Q_GPR13_SATA_TX_BOOST_0_00_DB },
++ { 370, IMX6Q_GPR13_SATA_TX_BOOST_0_37_DB },
++ { 740, IMX6Q_GPR13_SATA_TX_BOOST_0_74_DB },
++ { 1110, IMX6Q_GPR13_SATA_TX_BOOST_1_11_DB },
++ { 1480, IMX6Q_GPR13_SATA_TX_BOOST_1_48_DB },
++ { 1850, IMX6Q_GPR13_SATA_TX_BOOST_1_85_DB },
++ { 2220, IMX6Q_GPR13_SATA_TX_BOOST_2_22_DB },
++ { 2590, IMX6Q_GPR13_SATA_TX_BOOST_2_59_DB },
++ { 2960, IMX6Q_GPR13_SATA_TX_BOOST_2_96_DB },
++ { 3330, IMX6Q_GPR13_SATA_TX_BOOST_3_33_DB },
++ { 3700, IMX6Q_GPR13_SATA_TX_BOOST_3_70_DB },
++ { 4070, IMX6Q_GPR13_SATA_TX_BOOST_4_07_DB },
++ { 4440, IMX6Q_GPR13_SATA_TX_BOOST_4_44_DB },
++ { 4810, IMX6Q_GPR13_SATA_TX_BOOST_4_81_DB },
++ { 5280, IMX6Q_GPR13_SATA_TX_BOOST_5_28_DB },
++ { 5750, IMX6Q_GPR13_SATA_TX_BOOST_5_75_DB }
++};
++
++static const struct reg_value gpr13_tx_atten[] = {
++ { 8, IMX6Q_GPR13_SATA_TX_ATTEN_8_16 },
++ { 9, IMX6Q_GPR13_SATA_TX_ATTEN_9_16 },
++ { 10, IMX6Q_GPR13_SATA_TX_ATTEN_10_16 },
++ { 12, IMX6Q_GPR13_SATA_TX_ATTEN_12_16 },
++ { 14, IMX6Q_GPR13_SATA_TX_ATTEN_14_16 },
++ { 16, IMX6Q_GPR13_SATA_TX_ATTEN_16_16 },
++};
++
++static const struct reg_value gpr13_rx_eq[] = {
++ { 500, IMX6Q_GPR13_SATA_RX_EQ_VAL_0_5_DB },
++ { 1000, IMX6Q_GPR13_SATA_RX_EQ_VAL_1_0_DB },
++ { 1500, IMX6Q_GPR13_SATA_RX_EQ_VAL_1_5_DB },
++ { 2000, IMX6Q_GPR13_SATA_RX_EQ_VAL_2_0_DB },
++ { 2500, IMX6Q_GPR13_SATA_RX_EQ_VAL_2_5_DB },
++ { 3000, IMX6Q_GPR13_SATA_RX_EQ_VAL_3_0_DB },
++ { 3500, IMX6Q_GPR13_SATA_RX_EQ_VAL_3_5_DB },
++ { 4000, IMX6Q_GPR13_SATA_RX_EQ_VAL_4_0_DB },
++};
++
++static const struct reg_property gpr13_props[] = {
++ {
++ .name = "fsl,transmit-level-mV",
++ .values = gpr13_tx_level,
++ .num_values = ARRAY_SIZE(gpr13_tx_level),
++ .def_value = IMX6Q_GPR13_SATA_TX_LVL_1_025_V,
++ }, {
++ .name = "fsl,transmit-boost-mdB",
++ .values = gpr13_tx_boost,
++ .num_values = ARRAY_SIZE(gpr13_tx_boost),
++ .def_value = IMX6Q_GPR13_SATA_TX_BOOST_3_33_DB,
++ }, {
++ .name = "fsl,transmit-atten-16ths",
++ .values = gpr13_tx_atten,
++ .num_values = ARRAY_SIZE(gpr13_tx_atten),
++ .def_value = IMX6Q_GPR13_SATA_TX_ATTEN_9_16,
++ }, {
++ .name = "fsl,receive-eq-mdB",
++ .values = gpr13_rx_eq,
++ .num_values = ARRAY_SIZE(gpr13_rx_eq),
++ .def_value = IMX6Q_GPR13_SATA_RX_EQ_VAL_3_0_DB,
++ }, {
++ .name = "fsl,no-spread-spectrum",
++ .def_value = IMX6Q_GPR13_SATA_MPLL_SS_EN,
++ .set_value = 0,
++ },
++};
++
++static u32 imx_ahci_parse_props(struct device *dev,
++ const struct reg_property *prop, size_t num)
++{
++ struct device_node *np = dev->of_node;
++ u32 reg_value = 0;
++ int i, j;
++
++ for (i = 0; i < num; i++, prop++) {
++ u32 of_val;
++
++ if (prop->num_values == 0) {
++ if (of_property_read_bool(np, prop->name))
++ reg_value |= prop->set_value;
++ else
++ reg_value |= prop->def_value;
++ continue;
++ }
++
++ if (of_property_read_u32(np, prop->name, &of_val)) {
++ dev_info(dev, "%s not specified, using %08x\n",
++ prop->name, prop->def_value);
++ reg_value |= prop->def_value;
++ continue;
++ }
++
++ for (j = 0; j < prop->num_values; j++) {
++ if (prop->values[j].of_value == of_val) {
++ dev_info(dev, "%s value %u, using %08x\n",
++ prop->name, of_val, prop->values[j].reg_value);
++ reg_value |= prop->values[j].reg_value;
++ break;
++ }
++ }
++
++ if (j == prop->num_values) {
++ dev_err(dev, "DT property %s is not a valid value\n",
++ prop->name);
++ reg_value |= prop->def_value;
++ }
++ }
++
++ return reg_value;
++}
++
+ static int imx_ahci_probe(struct platform_device *pdev)
+ {
+ struct device *dev = &pdev->dev;
+@@ -410,6 +563,8 @@
+ }
+
+ if (imxpriv->type == AHCI_IMX6Q) {
++ u32 reg_value;
++
+ imxpriv->gpr = syscon_regmap_lookup_by_compatible(
+ "fsl,imx6q-iomuxc-gpr");
+ if (IS_ERR(imxpriv->gpr)) {
+@@ -417,6 +572,15 @@
+ "failed to find fsl,imx6q-iomux-gpr regmap\n");
+ return PTR_ERR(imxpriv->gpr);
+ }
++
++ reg_value = imx_ahci_parse_props(dev, gpr13_props,
++ ARRAY_SIZE(gpr13_props));
++
++ imxpriv->phy_params =
++ IMX6Q_GPR13_SATA_RX_LOS_LVL_SATA2M |
++ IMX6Q_GPR13_SATA_RX_DPLL_MODE_2P_4F |
++ IMX6Q_GPR13_SATA_SPD_MODE_3P0G |
++ reg_value;
+ }
+
+ hpriv = ahci_platform_get_resources(pdev);
+diff -Nur linux-3.16.6.orig/drivers/ata/ahci_imx.c.orig linux-3.16.6/drivers/ata/ahci_imx.c.orig
+--- linux-3.16.6.orig/drivers/ata/ahci_imx.c.orig 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.16.6/drivers/ata/ahci_imx.c.orig 2014-10-23 12:18:59.602219672 -0500
+@@ -0,0 +1,679 @@
++/*
++ * copyright (c) 2013 Freescale Semiconductor, Inc.
++ * Freescale IMX AHCI SATA platform driver
++ *
++ * based on the AHCI SATA platform driver by Jeff Garzik and Anton Vorontsov
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms and conditions of the GNU General Public License,
++ * version 2, as published by the Free Software Foundation.
++ *
++ * This program is distributed in the hope it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
++ * more details.
++ *
++ * You should have received a copy of the GNU General Public License along with
++ * this program. If not, see <http://www.gnu.org/licenses/>.
++ */
++
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/platform_device.h>
++#include <linux/regmap.h>
++#include <linux/ahci_platform.h>
++#include <linux/of_device.h>
++#include <linux/mfd/syscon.h>
++#include <linux/mfd/syscon/imx6q-iomuxc-gpr.h>
++#include <linux/libata.h>
++#include "ahci.h"
++
++enum {
++ /* Timer 1-ms Register */
++ IMX_TIMER1MS = 0x00e0,
++ /* Port0 PHY Control Register */
++ IMX_P0PHYCR = 0x0178,
++ IMX_P0PHYCR_TEST_PDDQ = 1 << 20,
++ IMX_P0PHYCR_CR_READ = 1 << 19,
++ IMX_P0PHYCR_CR_WRITE = 1 << 18,
++ IMX_P0PHYCR_CR_CAP_DATA = 1 << 17,
++ IMX_P0PHYCR_CR_CAP_ADDR = 1 << 16,
++ /* Port0 PHY Status Register */
++ IMX_P0PHYSR = 0x017c,
++ IMX_P0PHYSR_CR_ACK = 1 << 18,
++ IMX_P0PHYSR_CR_DATA_OUT = 0xffff << 0,
++ /* Lane0 Output Status Register */
++ IMX_LANE0_OUT_STAT = 0x2003,
++ IMX_LANE0_OUT_STAT_RX_PLL_STATE = 1 << 1,
++ /* Clock Reset Register */
++ IMX_CLOCK_RESET = 0x7f3f,
++ IMX_CLOCK_RESET_RESET = 1 << 0,
++};
++
++enum ahci_imx_type {
++ AHCI_IMX53,
++ AHCI_IMX6Q,
++};
++
++struct imx_ahci_priv {
++ struct platform_device *ahci_pdev;
++ enum ahci_imx_type type;
++ struct clk *sata_clk;
++ struct clk *sata_ref_clk;
++ struct clk *ahb_clk;
++ struct regmap *gpr;
++ bool no_device;
++ bool first_time;
++ u32 phy_params;
++};
++
++static int ahci_imx_hotplug;
++module_param_named(hotplug, ahci_imx_hotplug, int, 0644);
++MODULE_PARM_DESC(hotplug, "AHCI IMX hot-plug support (0=Don't support, 1=support)");
++
++static void ahci_imx_host_stop(struct ata_host *host);
++
++static int imx_phy_crbit_assert(void __iomem *mmio, u32 bit, bool assert)
++{
++ int timeout = 10;
++ u32 crval;
++ u32 srval;
++
++ /* Assert or deassert the bit */
++ crval = readl(mmio + IMX_P0PHYCR);
++ if (assert)
++ crval |= bit;
++ else
++ crval &= ~bit;
++ writel(crval, mmio + IMX_P0PHYCR);
++
++ /* Wait for the cr_ack signal */
++ do {
++ srval = readl(mmio + IMX_P0PHYSR);
++ if ((assert ? srval : ~srval) & IMX_P0PHYSR_CR_ACK)
++ break;
++ usleep_range(100, 200);
++ } while (--timeout);
++
++ return timeout ? 0 : -ETIMEDOUT;
++}
++
++static int imx_phy_reg_addressing(u16 addr, void __iomem *mmio)
++{
++ u32 crval = addr;
++ int ret;
++
++ /* Supply the address on cr_data_in */
++ writel(crval, mmio + IMX_P0PHYCR);
++
++ /* Assert the cr_cap_addr signal */
++ ret = imx_phy_crbit_assert(mmio, IMX_P0PHYCR_CR_CAP_ADDR, true);
++ if (ret)
++ return ret;
++
++ /* Deassert cr_cap_addr */
++ ret = imx_phy_crbit_assert(mmio, IMX_P0PHYCR_CR_CAP_ADDR, false);
++ if (ret)
++ return ret;
++
++ return 0;
++}
++
++static int imx_phy_reg_write(u16 val, void __iomem *mmio)
++{
++ u32 crval = val;
++ int ret;
++
++ /* Supply the data on cr_data_in */
++ writel(crval, mmio + IMX_P0PHYCR);
++
++ /* Assert the cr_cap_data signal */
++ ret = imx_phy_crbit_assert(mmio, IMX_P0PHYCR_CR_CAP_DATA, true);
++ if (ret)
++ return ret;
++
++ /* Deassert cr_cap_data */
++ ret = imx_phy_crbit_assert(mmio, IMX_P0PHYCR_CR_CAP_DATA, false);
++ if (ret)
++ return ret;
++
++ if (val & IMX_CLOCK_RESET_RESET) {
++ /*
++ * In case we're resetting the phy, it's unable to acknowledge,
++ * so we return immediately here.
++ */
++ crval |= IMX_P0PHYCR_CR_WRITE;
++ writel(crval, mmio + IMX_P0PHYCR);
++ goto out;
++ }
++
++ /* Assert the cr_write signal */
++ ret = imx_phy_crbit_assert(mmio, IMX_P0PHYCR_CR_WRITE, true);
++ if (ret)
++ return ret;
++
++ /* Deassert cr_write */
++ ret = imx_phy_crbit_assert(mmio, IMX_P0PHYCR_CR_WRITE, false);
++ if (ret)
++ return ret;
++
++out:
++ return 0;
++}
++
++static int imx_phy_reg_read(u16 *val, void __iomem *mmio)
++{
++ int ret;
++
++ /* Assert the cr_read signal */
++ ret = imx_phy_crbit_assert(mmio, IMX_P0PHYCR_CR_READ, true);
++ if (ret)
++ return ret;
++
++ /* Capture the data from cr_data_out[] */
++ *val = readl(mmio + IMX_P0PHYSR) & IMX_P0PHYSR_CR_DATA_OUT;
++
++ /* Deassert cr_read */
++ ret = imx_phy_crbit_assert(mmio, IMX_P0PHYCR_CR_READ, false);
++ if (ret)
++ return ret;
++
++ return 0;
++}
++
++static int imx_sata_phy_reset(struct ahci_host_priv *hpriv)
++{
++ void __iomem *mmio = hpriv->mmio;
++ int timeout = 10;
++ u16 val;
++ int ret;
++
++ /* Reset SATA PHY by setting RESET bit of PHY register CLOCK_RESET */
++ ret = imx_phy_reg_addressing(IMX_CLOCK_RESET, mmio);
++ if (ret)
++ return ret;
++ ret = imx_phy_reg_write(IMX_CLOCK_RESET_RESET, mmio);
++ if (ret)
++ return ret;
++
++ /* Wait for PHY RX_PLL to be stable */
++ do {
++ usleep_range(100, 200);
++ ret = imx_phy_reg_addressing(IMX_LANE0_OUT_STAT, mmio);
++ if (ret)
++ return ret;
++ ret = imx_phy_reg_read(&val, mmio);
++ if (ret)
++ return ret;
++ if (val & IMX_LANE0_OUT_STAT_RX_PLL_STATE)
++ break;
++ } while (--timeout);
++
++ return timeout ? 0 : -ETIMEDOUT;
++}
++
++static int imx_sata_enable(struct ahci_host_priv *hpriv)
++{
++ struct imx_ahci_priv *imxpriv = hpriv->plat_data;
++ struct device *dev = &imxpriv->ahci_pdev->dev;
++ int ret;
++
++ if (imxpriv->no_device)
++ return 0;
++
++ if (hpriv->target_pwr) {
++ ret = regulator_enable(hpriv->target_pwr);
++ if (ret)
++ return ret;
++ }
++
++ ret = clk_prepare_enable(imxpriv->sata_ref_clk);
++ if (ret < 0)
++ goto disable_regulator;
++
++ if (imxpriv->type == AHCI_IMX6Q) {
++ /*
++ * set PHY Paremeters, two steps to configure the GPR13,
++ * one write for rest of parameters, mask of first write
++ * is 0x07ffffff, and the other one write for setting
++ * the mpll_clk_en.
++ */
++ regmap_update_bits(imxpriv->gpr, IOMUXC_GPR13,
++ IMX6Q_GPR13_SATA_RX_EQ_VAL_MASK |
++ IMX6Q_GPR13_SATA_RX_LOS_LVL_MASK |
++ IMX6Q_GPR13_SATA_RX_DPLL_MODE_MASK |
++ IMX6Q_GPR13_SATA_SPD_MODE_MASK |
++ IMX6Q_GPR13_SATA_MPLL_SS_EN |
++ IMX6Q_GPR13_SATA_TX_ATTEN_MASK |
++ IMX6Q_GPR13_SATA_TX_BOOST_MASK |
++ IMX6Q_GPR13_SATA_TX_LVL_MASK |
++ IMX6Q_GPR13_SATA_MPLL_CLK_EN |
++ IMX6Q_GPR13_SATA_TX_EDGE_RATE,
++ imxpriv->phy_params);
++ regmap_update_bits(imxpriv->gpr, IOMUXC_GPR13,
++ IMX6Q_GPR13_SATA_MPLL_CLK_EN,
++ IMX6Q_GPR13_SATA_MPLL_CLK_EN);
++
++ usleep_range(100, 200);
++
++ ret = imx_sata_phy_reset(hpriv);
++ if (ret) {
++ dev_err(dev, "failed to reset phy: %d\n", ret);
++ goto disable_regulator;
++ }
++ }
++
++ usleep_range(1000, 2000);
++
++ return 0;
++
++disable_regulator:
++ if (hpriv->target_pwr)
++ regulator_disable(hpriv->target_pwr);
++
++ return ret;
++}
++
++static void imx_sata_disable(struct ahci_host_priv *hpriv)
++{
++ struct imx_ahci_priv *imxpriv = hpriv->plat_data;
++
++ if (imxpriv->no_device)
++ return;
++
++ if (imxpriv->type == AHCI_IMX6Q) {
++ regmap_update_bits(imxpriv->gpr, IOMUXC_GPR13,
++ IMX6Q_GPR13_SATA_MPLL_CLK_EN,
++ !IMX6Q_GPR13_SATA_MPLL_CLK_EN);
++ }
++
++ clk_disable_unprepare(imxpriv->sata_ref_clk);
++
++ if (hpriv->target_pwr)
++ regulator_disable(hpriv->target_pwr);
++}
++
++static void ahci_imx_error_handler(struct ata_port *ap)
++{
++ u32 reg_val;
++ struct ata_device *dev;
++ struct ata_host *host = dev_get_drvdata(ap->dev);
++ struct ahci_host_priv *hpriv = host->private_data;
++ void __iomem *mmio = hpriv->mmio;
++ struct imx_ahci_priv *imxpriv = hpriv->plat_data;
++
++ ahci_error_handler(ap);
++
++ if (!(imxpriv->first_time) || ahci_imx_hotplug)
++ return;
++
++ imxpriv->first_time = false;
++
++ ata_for_each_dev(dev, &ap->link, ENABLED)
++ return;
++ /*
++ * Disable link to save power. An imx ahci port can't be recovered
++ * without full reset once the pddq mode is enabled making it
++ * impossible to use as part of libata LPM.
++ */
++ reg_val = readl(mmio + IMX_P0PHYCR);
++ writel(reg_val | IMX_P0PHYCR_TEST_PDDQ, mmio + IMX_P0PHYCR);
++ imx_sata_disable(hpriv);
++ imxpriv->no_device = true;
++
++ dev_info(ap->dev, "no device found, disabling link.\n");
++ dev_info(ap->dev, "pass " MODULE_PARAM_PREFIX ".hotplug=1 to enable hotplug\n");
++}
++
++static int ahci_imx_softreset(struct ata_link *link, unsigned int *class,
++ unsigned long deadline)
++{
++ struct ata_port *ap = link->ap;
++ struct ata_host *host = dev_get_drvdata(ap->dev);
++ struct ahci_host_priv *hpriv = host->private_data;
++ struct imx_ahci_priv *imxpriv = hpriv->plat_data;
++ int ret = -EIO;
++
++ if (imxpriv->type == AHCI_IMX53)
++ ret = ahci_pmp_retry_srst_ops.softreset(link, class, deadline);
++ else if (imxpriv->type == AHCI_IMX6Q)
++ ret = ahci_ops.softreset(link, class, deadline);
++
++ return ret;
++}
++
++static struct ata_port_operations ahci_imx_ops = {
++ .inherits = &ahci_ops,
++ .host_stop = ahci_imx_host_stop,
++ .error_handler = ahci_imx_error_handler,
++ .softreset = ahci_imx_softreset,
++};
++
++static const struct ata_port_info ahci_imx_port_info = {
++ .flags = AHCI_FLAG_COMMON,
++ .pio_mask = ATA_PIO4,
++ .udma_mask = ATA_UDMA6,
++ .port_ops = &ahci_imx_ops,
++};
++
++static const struct of_device_id imx_ahci_of_match[] = {
++ { .compatible = "fsl,imx53-ahci", .data = (void *)AHCI_IMX53 },
++ { .compatible = "fsl,imx6q-ahci", .data = (void *)AHCI_IMX6Q },
++ {},
++};
++MODULE_DEVICE_TABLE(of, imx_ahci_of_match);
++
++struct reg_value {
++ u32 of_value;
++ u32 reg_value;
++};
++
++struct reg_property {
++ const char *name;
++ const struct reg_value *values;
++ size_t num_values;
++ u32 def_value;
++};
++
++static const struct reg_value gpr13_tx_level[] = {
++ { 937, IMX6Q_GPR13_SATA_TX_LVL_0_937_V },
++ { 947, IMX6Q_GPR13_SATA_TX_LVL_0_947_V },
++ { 957, IMX6Q_GPR13_SATA_TX_LVL_0_957_V },
++ { 966, IMX6Q_GPR13_SATA_TX_LVL_0_966_V },
++ { 976, IMX6Q_GPR13_SATA_TX_LVL_0_976_V },
++ { 986, IMX6Q_GPR13_SATA_TX_LVL_0_986_V },
++ { 996, IMX6Q_GPR13_SATA_TX_LVL_0_996_V },
++ { 1005, IMX6Q_GPR13_SATA_TX_LVL_1_005_V },
++ { 1015, IMX6Q_GPR13_SATA_TX_LVL_1_015_V },
++ { 1025, IMX6Q_GPR13_SATA_TX_LVL_1_025_V },
++ { 1035, IMX6Q_GPR13_SATA_TX_LVL_1_035_V },
++ { 1045, IMX6Q_GPR13_SATA_TX_LVL_1_045_V },
++ { 1054, IMX6Q_GPR13_SATA_TX_LVL_1_054_V },
++ { 1064, IMX6Q_GPR13_SATA_TX_LVL_1_064_V },
++ { 1074, IMX6Q_GPR13_SATA_TX_LVL_1_074_V },
++ { 1084, IMX6Q_GPR13_SATA_TX_LVL_1_084_V },
++ { 1094, IMX6Q_GPR13_SATA_TX_LVL_1_094_V },
++ { 1104, IMX6Q_GPR13_SATA_TX_LVL_1_104_V },
++ { 1113, IMX6Q_GPR13_SATA_TX_LVL_1_113_V },
++ { 1123, IMX6Q_GPR13_SATA_TX_LVL_1_123_V },
++ { 1133, IMX6Q_GPR13_SATA_TX_LVL_1_133_V },
++ { 1143, IMX6Q_GPR13_SATA_TX_LVL_1_143_V },
++ { 1152, IMX6Q_GPR13_SATA_TX_LVL_1_152_V },
++ { 1162, IMX6Q_GPR13_SATA_TX_LVL_1_162_V },
++ { 1172, IMX6Q_GPR13_SATA_TX_LVL_1_172_V },
++ { 1182, IMX6Q_GPR13_SATA_TX_LVL_1_182_V },
++ { 1191, IMX6Q_GPR13_SATA_TX_LVL_1_191_V },
++ { 1201, IMX6Q_GPR13_SATA_TX_LVL_1_201_V },
++ { 1211, IMX6Q_GPR13_SATA_TX_LVL_1_211_V },
++ { 1221, IMX6Q_GPR13_SATA_TX_LVL_1_221_V },
++ { 1230, IMX6Q_GPR13_SATA_TX_LVL_1_230_V },
++ { 1240, IMX6Q_GPR13_SATA_TX_LVL_1_240_V }
++};
++
++static const struct reg_value gpr13_tx_boost[] = {
++ { 0, IMX6Q_GPR13_SATA_TX_BOOST_0_00_DB },
++ { 370, IMX6Q_GPR13_SATA_TX_BOOST_0_37_DB },
++ { 740, IMX6Q_GPR13_SATA_TX_BOOST_0_74_DB },
++ { 1110, IMX6Q_GPR13_SATA_TX_BOOST_1_11_DB },
++ { 1480, IMX6Q_GPR13_SATA_TX_BOOST_1_48_DB },
++ { 1850, IMX6Q_GPR13_SATA_TX_BOOST_1_85_DB },
++ { 2220, IMX6Q_GPR13_SATA_TX_BOOST_2_22_DB },
++ { 2590, IMX6Q_GPR13_SATA_TX_BOOST_2_59_DB },
++ { 2960, IMX6Q_GPR13_SATA_TX_BOOST_2_96_DB },
++ { 3330, IMX6Q_GPR13_SATA_TX_BOOST_3_33_DB },
++ { 3700, IMX6Q_GPR13_SATA_TX_BOOST_3_70_DB },
++ { 4070, IMX6Q_GPR13_SATA_TX_BOOST_4_07_DB },
++ { 4440, IMX6Q_GPR13_SATA_TX_BOOST_4_44_DB },
++ { 4810, IMX6Q_GPR13_SATA_TX_BOOST_4_81_DB },
++ { 5280, IMX6Q_GPR13_SATA_TX_BOOST_5_28_DB },
++ { 5750, IMX6Q_GPR13_SATA_TX_BOOST_5_75_DB }
++};
++
++static const struct reg_value gpr13_tx_atten[] = {
++ { 8, IMX6Q_GPR13_SATA_TX_ATTEN_8_16 },
++ { 9, IMX6Q_GPR13_SATA_TX_ATTEN_9_16 },
++ { 10, IMX6Q_GPR13_SATA_TX_ATTEN_10_16 },
++ { 12, IMX6Q_GPR13_SATA_TX_ATTEN_12_16 },
++ { 14, IMX6Q_GPR13_SATA_TX_ATTEN_14_16 },
++ { 16, IMX6Q_GPR13_SATA_TX_ATTEN_16_16 },
++};
++
++static const struct reg_value gpr13_rx_eq[] = {
++ { 500, IMX6Q_GPR13_SATA_RX_EQ_VAL_0_5_DB },
++ { 1000, IMX6Q_GPR13_SATA_RX_EQ_VAL_1_0_DB },
++ { 1500, IMX6Q_GPR13_SATA_RX_EQ_VAL_1_5_DB },
++ { 2000, IMX6Q_GPR13_SATA_RX_EQ_VAL_2_0_DB },
++ { 2500, IMX6Q_GPR13_SATA_RX_EQ_VAL_2_5_DB },
++ { 3000, IMX6Q_GPR13_SATA_RX_EQ_VAL_3_0_DB },
++ { 3500, IMX6Q_GPR13_SATA_RX_EQ_VAL_3_5_DB },
++ { 4000, IMX6Q_GPR13_SATA_RX_EQ_VAL_4_0_DB },
++};
++
++static const struct reg_property gpr13_props[] = {
++ {
++ .name = "fsl,transmit-level-mV",
++ .values = gpr13_tx_level,
++ .num_values = ARRAY_SIZE(gpr13_tx_level),
++ .def_value = IMX6Q_GPR13_SATA_TX_LVL_1_025_V,
++ }, {
++ .name = "fsl,transmit-boost-mdB",
++ .values = gpr13_tx_boost,
++ .num_values = ARRAY_SIZE(gpr13_tx_boost),
++ .def_value = IMX6Q_GPR13_SATA_TX_BOOST_3_33_DB,
++ }, {
++ .name = "fsl,transmit-atten-16ths",
++ .values = gpr13_tx_atten,
++ .num_values = ARRAY_SIZE(gpr13_tx_atten),
++ .def_value = IMX6Q_GPR13_SATA_TX_ATTEN_9_16,
++ }, {
++ .name = "fsl,receive-eq-mdB",
++ .values = gpr13_rx_eq,
++ .num_values = ARRAY_SIZE(gpr13_rx_eq),
++ .def_value = IMX6Q_GPR13_SATA_RX_EQ_VAL_3_0_DB,
++ },
++};
++
++static u32 imx_ahci_parse_props(struct device *dev,
++ const struct reg_property *prop, size_t num)
++{
++ struct device_node *np = dev->of_node;
++ u32 reg_value = 0;
++ int i, j;
++
++ for (i = 0; i < num; i++, prop++) {
++ u32 of_val;
++
++ if (of_property_read_u32(np, prop->name, &of_val)) {
++ dev_info(dev, "%s not specified, using %08x\n",
++ prop->name, prop->def_value);
++ reg_value |= prop->def_value;
++ continue;
++ }
++
++ for (j = 0; j < prop->num_values; j++) {
++ if (prop->values[j].of_value == of_val) {
++ dev_info(dev, "%s value %u, using %08x\n",
++ prop->name, of_val, prop->values[j].reg_value);
++ reg_value |= prop->values[j].reg_value;
++ break;
++ }
++ }
++
++ if (j == prop->num_values) {
++ dev_err(dev, "DT property %s is not a valid value\n",
++ prop->name);
++ reg_value |= prop->def_value;
++ }
++ }
++
++ return reg_value;
++}
++
++static int imx_ahci_probe(struct platform_device *pdev)
++{
++ struct device *dev = &pdev->dev;
++ const struct of_device_id *of_id;
++ struct ahci_host_priv *hpriv;
++ struct imx_ahci_priv *imxpriv;
++ unsigned int reg_val;
++ int ret;
++
++ of_id = of_match_device(imx_ahci_of_match, dev);
++ if (!of_id)
++ return -EINVAL;
++
++ imxpriv = devm_kzalloc(dev, sizeof(*imxpriv), GFP_KERNEL);
++ if (!imxpriv)
++ return -ENOMEM;
++
++ imxpriv->ahci_pdev = pdev;
++ imxpriv->no_device = false;
++ imxpriv->first_time = true;
++ imxpriv->type = (enum ahci_imx_type)of_id->data;
++
++ imxpriv->sata_clk = devm_clk_get(dev, "sata");
++ if (IS_ERR(imxpriv->sata_clk)) {
++ dev_err(dev, "can't get sata clock.\n");
++ return PTR_ERR(imxpriv->sata_clk);
++ }
++
++ imxpriv->sata_ref_clk = devm_clk_get(dev, "sata_ref");
++ if (IS_ERR(imxpriv->sata_ref_clk)) {
++ dev_err(dev, "can't get sata_ref clock.\n");
++ return PTR_ERR(imxpriv->sata_ref_clk);
++ }
++
++ imxpriv->ahb_clk = devm_clk_get(dev, "ahb");
++ if (IS_ERR(imxpriv->ahb_clk)) {
++ dev_err(dev, "can't get ahb clock.\n");
++ return PTR_ERR(imxpriv->ahb_clk);
++ }
++
++ if (imxpriv->type == AHCI_IMX6Q) {
++ u32 reg_value;
++
++ imxpriv->gpr = syscon_regmap_lookup_by_compatible(
++ "fsl,imx6q-iomuxc-gpr");
++ if (IS_ERR(imxpriv->gpr)) {
++ dev_err(dev,
++ "failed to find fsl,imx6q-iomux-gpr regmap\n");
++ return PTR_ERR(imxpriv->gpr);
++ }
++
++ reg_value = imx_ahci_parse_props(dev, gpr13_props,
++ ARRAY_SIZE(gpr13_props));
++
++ imxpriv->phy_params =
++ IMX6Q_GPR13_SATA_RX_LOS_LVL_SATA2M |
++ IMX6Q_GPR13_SATA_RX_DPLL_MODE_2P_4F |
++ IMX6Q_GPR13_SATA_SPD_MODE_3P0G |
++ IMX6Q_GPR13_SATA_MPLL_SS_EN |
++ reg_value;
++ }
++
++ hpriv = ahci_platform_get_resources(pdev);
++ if (IS_ERR(hpriv))
++ return PTR_ERR(hpriv);
++
++ hpriv->plat_data = imxpriv;
++
++ ret = clk_prepare_enable(imxpriv->sata_clk);
++ if (ret)
++ return ret;
++
++ ret = imx_sata_enable(hpriv);
++ if (ret)
++ goto disable_clk;
++
++ /*
++ * Configure the HWINIT bits of the HOST_CAP and HOST_PORTS_IMPL,
++ * and IP vendor specific register IMX_TIMER1MS.
++ * Configure CAP_SSS (support stagered spin up).
++ * Implement the port0.
++ * Get the ahb clock rate, and configure the TIMER1MS register.
++ */
++ reg_val = readl(hpriv->mmio + HOST_CAP);
++ if (!(reg_val & HOST_CAP_SSS)) {
++ reg_val |= HOST_CAP_SSS;
++ writel(reg_val, hpriv->mmio + HOST_CAP);
++ }
++ reg_val = readl(hpriv->mmio + HOST_PORTS_IMPL);
++ if (!(reg_val & 0x1)) {
++ reg_val |= 0x1;
++ writel(reg_val, hpriv->mmio + HOST_PORTS_IMPL);
++ }
++
++ reg_val = clk_get_rate(imxpriv->ahb_clk) / 1000;
++ writel(reg_val, hpriv->mmio + IMX_TIMER1MS);
++
++ ret = ahci_platform_init_host(pdev, hpriv, &ahci_imx_port_info,
++ 0, 0, 0);
++ if (ret)
++ goto disable_sata;
++
++ return 0;
++
++disable_sata:
++ imx_sata_disable(hpriv);
++disable_clk:
++ clk_disable_unprepare(imxpriv->sata_clk);
++ return ret;
++}
++
++static void ahci_imx_host_stop(struct ata_host *host)
++{
++ struct ahci_host_priv *hpriv = host->private_data;
++ struct imx_ahci_priv *imxpriv = hpriv->plat_data;
++
++ imx_sata_disable(hpriv);
++ clk_disable_unprepare(imxpriv->sata_clk);
++}
++
++#ifdef CONFIG_PM_SLEEP
++static int imx_ahci_suspend(struct device *dev)
++{
++ struct ata_host *host = dev_get_drvdata(dev);
++ struct ahci_host_priv *hpriv = host->private_data;
++ int ret;
++
++ ret = ahci_platform_suspend_host(dev);
++ if (ret)
++ return ret;
++
++ imx_sata_disable(hpriv);
++
++ return 0;
++}
++
++static int imx_ahci_resume(struct device *dev)
++{
++ struct ata_host *host = dev_get_drvdata(dev);
++ struct ahci_host_priv *hpriv = host->private_data;
++ int ret;
++
++ ret = imx_sata_enable(hpriv);
++ if (ret)
++ return ret;
++
++ return ahci_platform_resume_host(dev);
++}
++#endif
++
++static SIMPLE_DEV_PM_OPS(ahci_imx_pm_ops, imx_ahci_suspend, imx_ahci_resume);
++
++static struct platform_driver imx_ahci_driver = {
++ .probe = imx_ahci_probe,
++ .remove = ata_platform_remove_one,
++ .driver = {
++ .name = "ahci-imx",
++ .owner = THIS_MODULE,
++ .of_match_table = imx_ahci_of_match,
++ .pm = &ahci_imx_pm_ops,
++ },
++};
++module_platform_driver(imx_ahci_driver);
++
++MODULE_DESCRIPTION("Freescale i.MX AHCI SATA platform driver");
++MODULE_AUTHOR("Richard Zhu <Hong-Xing.Zhu@freescale.com>");
++MODULE_LICENSE("GPL");
++MODULE_ALIAS("ahci:imx");
+diff -Nur linux-3.16.6.orig/drivers/cec/cec-dev.c linux-3.16.6/drivers/cec/cec-dev.c
+--- linux-3.16.6.orig/drivers/cec/cec-dev.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.16.6/drivers/cec/cec-dev.c 2014-10-23 12:37:18.374219998 -0500
+@@ -0,0 +1,384 @@
++/*
++ * HDMI Consumer Electronics Control
++ *
++ * This provides the user API for communication with HDMI CEC complaint
++ * devices in kernel drivers, and is based upon the protocol developed
++ * by Freescale for their i.MX SoCs.
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++#include <linux/cec-dev.h>
++#include <linux/device.h>
++#include <linux/fs.h>
++#include <linux/module.h>
++#include <linux/poll.h>
++#include <linux/sched.h>
++#include <linux/slab.h>
++
++struct cec_event {
++ struct cec_user_event usr;
++ struct list_head node;
++};
++
++static struct class *cec_class;
++static int cec_major;
++
++static void cec_dev_send_message(struct cec_dev *cec_dev, u8 *msg,
++ size_t count)
++{
++ unsigned long flags;
++
++ spin_lock_irqsave(&cec_dev->lock, flags);
++ cec_dev->retries = 5;
++ cec_dev->write_busy = 1;
++ cec_dev->send_message(cec_dev, msg, count);
++ spin_unlock_irqrestore(&cec_dev->lock, flags);
++}
++
++void cec_dev_event(struct cec_dev *cec_dev, int type, u8 *msg, size_t len)
++{
++ struct cec_event *event;
++ unsigned long flags;
++
++ event = kzalloc(sizeof(*event), GFP_ATOMIC);
++ if (event) {
++ event->usr.event_type = type;
++ event->usr.msg_len = len;
++ if (msg)
++ memcpy(event->usr.msg, msg, len);
++
++ spin_lock_irqsave(&cec_dev->lock, flags);
++ list_add_tail(&event->node, &cec_dev->events);
++ spin_unlock_irqrestore(&cec_dev->lock, flags);
++ wake_up(&cec_dev->waitq);
++ }
++}
++EXPORT_SYMBOL_GPL(cec_dev_event);
++
++static int cec_dev_lock_write(struct cec_dev *cec_dev, struct file *file)
++ __acquires(cec_dev->mutex)
++{
++ int ret;
++
++ do {
++ if (file->f_flags & O_NONBLOCK) {
++ if (cec_dev->write_busy)
++ return -EAGAIN;
++ } else {
++ ret = wait_event_interruptible(cec_dev->waitq,
++ !cec_dev->write_busy);
++ if (ret)
++ break;
++ }
++
++ ret = mutex_lock_interruptible(&cec_dev->mutex);
++ if (ret)
++ break;
++
++ if (!cec_dev->write_busy)
++ break;
++
++ mutex_unlock(&cec_dev->mutex);
++ } while (1);
++
++ return ret;
++}
++
++static ssize_t cec_dev_read(struct file *file, char __user *buf,
++ size_t count, loff_t *ppos)
++{
++ struct cec_dev *cec_dev = file->private_data;
++ ssize_t ret;
++
++ if (count > sizeof(struct cec_user_event))
++ count = sizeof(struct cec_user_event);
++
++ if (!access_ok(VERIFY_WRITE, buf, count))
++ return -EFAULT;
++
++ do {
++ struct cec_event *event = NULL;
++ unsigned long flags;
++
++ spin_lock_irqsave(&cec_dev->lock, flags);
++ if (!list_empty(&cec_dev->events)) {
++ event = list_first_entry(&cec_dev->events,
++ struct cec_event, node);
++ list_del(&event->node);
++ }
++ spin_unlock_irqrestore(&cec_dev->lock, flags);
++
++ if (event) {
++ ret = __copy_to_user(buf, &event->usr, count) ?
++ -EFAULT : count;
++ kfree(event);
++ break;
++ }
++
++ if (file->f_flags & O_NONBLOCK) {
++ ret = -EAGAIN;
++ break;
++ }
++
++ ret = wait_event_interruptible(cec_dev->waitq,
++ !list_empty(&cec_dev->events));
++ if (ret)
++ break;
++ } while (1);
++
++ return ret;
++}
++
++static ssize_t cec_dev_write(struct file *file, const char __user *buf,
++ size_t count, loff_t *ppos)
++{
++ struct cec_dev *cec_dev = file->private_data;
++ u8 msg[MAX_MESSAGE_LEN];
++ int ret;
++
++ if (count > sizeof(msg))
++ return -E2BIG;
++
++ if (copy_from_user(msg, buf, count))
++ return -EFAULT;
++
++ ret = cec_dev_lock_write(cec_dev, file);
++ if (ret)
++ return ret;
++
++ cec_dev_send_message(cec_dev, msg, count);
++
++ mutex_unlock(&cec_dev->mutex);
++
++ return count;
++}
++
++static long cec_dev_ioctl(struct file *file, u_int cmd, unsigned long arg)
++{
++ struct cec_dev *cec_dev = file->private_data;
++ int ret;
++
++ switch (cmd) {
++ case HDMICEC_IOC_O_SETLOGICALADDRESS:
++ case HDMICEC_IOC_SETLOGICALADDRESS:
++ if (arg > 15) {
++ ret = -EINVAL;
++ break;
++ }
++
++ ret = cec_dev_lock_write(cec_dev, file);
++ if (ret == 0) {
++ unsigned char msg[1];
++
++ cec_dev->addresses = BIT(arg);
++ cec_dev->set_address(cec_dev, cec_dev->addresses);
++
++ /*
++ * Send a ping message with the source and destination
++ * set to our address; the result indicates whether
++ * unit has chosen our address simultaneously.
++ */
++ msg[0] = arg << 4 | arg;
++ cec_dev_send_message(cec_dev, msg, sizeof(msg));
++ mutex_unlock(&cec_dev->mutex);
++ }
++ break;
++
++ case HDMICEC_IOC_STARTDEVICE:
++ ret = mutex_lock_interruptible(&cec_dev->mutex);
++ if (ret == 0) {
++ cec_dev->addresses = BIT(15);
++ cec_dev->set_address(cec_dev, cec_dev->addresses);
++ mutex_unlock(&cec_dev->mutex);
++ }
++ break;
++
++ case HDMICEC_IOC_STOPDEVICE:
++ ret = 0;
++ break;
++
++ case HDMICEC_IOC_GETPHYADDRESS:
++ ret = put_user(cec_dev->physical, (u16 __user *)arg);
++ ret = -ENOIOCTLCMD;
++ break;
++
++ default:
++ ret = -ENOIOCTLCMD;
++ break;
++ }
++
++ return ret;
++}
++
++static unsigned cec_dev_poll(struct file *file, poll_table *wait)
++{
++ struct cec_dev *cec_dev = file->private_data;
++ unsigned mask = 0;
++
++ poll_wait(file, &cec_dev->waitq, wait);
++
++ if (cec_dev->write_busy == 0)
++ mask |= POLLOUT | POLLWRNORM;
++ if (!list_empty(&cec_dev->events))
++ mask |= POLLIN | POLLRDNORM;
++
++ return mask;
++}
++
++static int cec_dev_release(struct inode *inode, struct file *file)
++{
++ struct cec_dev *cec_dev = file->private_data;
++
++ mutex_lock(&cec_dev->mutex);
++ if (cec_dev->users >= 1)
++ cec_dev->users -= 1;
++ if (cec_dev->users == 0) {
++ /*
++ * Wait for any write to complete before shutting down.
++ * A message should complete in a maximum of 2.75ms *
++ * 160 bits + 4.7ms, or 444.7ms. Let's call that 500ms.
++ * If we time out, shutdown anyway.
++ */
++ wait_event_timeout(cec_dev->waitq, !cec_dev->write_busy,
++ msecs_to_jiffies(500));
++
++ cec_dev->release(cec_dev);
++
++ while (!list_empty(&cec_dev->events)) {
++ struct cec_event *event;
++
++ event = list_first_entry(&cec_dev->events,
++ struct cec_event, node);
++ list_del(&event->node);
++ kfree(event);
++ }
++ }
++ mutex_unlock(&cec_dev->mutex);
++ return 0;
++}
++
++static int cec_dev_open(struct inode *inode, struct file *file)
++{
++ struct cec_dev *cec_dev = container_of(inode->i_cdev, struct cec_dev,
++ cdev);
++ int ret = 0;
++
++ nonseekable_open(inode, file);
++
++ file->private_data = cec_dev;
++
++ ret = mutex_lock_interruptible(&cec_dev->mutex);
++ if (ret)
++ return ret;
++
++ if (cec_dev->users++ == 0) {
++ cec_dev->addresses = BIT(15);
++
++ ret = cec_dev->open(cec_dev);
++ if (ret < 0)
++ cec_dev->users = 0;
++ }
++ mutex_unlock(&cec_dev->mutex);
++
++ return ret;
++}
++
++static const struct file_operations hdmi_cec_fops = {
++ .owner = THIS_MODULE,
++ .read = cec_dev_read,
++ .write = cec_dev_write,
++ .open = cec_dev_open,
++ .unlocked_ioctl = cec_dev_ioctl,
++ .release = cec_dev_release,
++ .poll = cec_dev_poll,
++};
++
++void cec_dev_init(struct cec_dev *cec_dev, struct module *module)
++{
++ cec_dev->devn = MKDEV(cec_major, 0);
++
++ INIT_LIST_HEAD(&cec_dev->events);
++ init_waitqueue_head(&cec_dev->waitq);
++ spin_lock_init(&cec_dev->lock);
++ mutex_init(&cec_dev->mutex);
++
++ cec_dev->addresses = BIT(15);
++
++ cdev_init(&cec_dev->cdev, &hdmi_cec_fops);
++ cec_dev->cdev.owner = module;
++}
++EXPORT_SYMBOL_GPL(cec_dev_init);
++
++int cec_dev_add(struct cec_dev *cec_dev, struct device *dev, const char *name)
++{
++ struct device *cd;
++ int ret;
++
++ ret = cdev_add(&cec_dev->cdev, cec_dev->devn, 1);
++ if (ret < 0)
++ goto err_cdev;
++
++ cd = device_create(cec_class, dev, cec_dev->devn, NULL, name);
++ if (IS_ERR(cd)) {
++ ret = PTR_ERR(cd);
++ dev_err(dev, "can't create device: %d\n", ret);
++ goto err_dev;
++ }
++
++ return 0;
++
++ err_dev:
++ cdev_del(&cec_dev->cdev);
++ err_cdev:
++ return ret;
++}
++EXPORT_SYMBOL_GPL(cec_dev_add);
++
++void cec_dev_remove(struct cec_dev *cec_dev)
++{
++ device_destroy(cec_class, cec_dev->devn);
++ cdev_del(&cec_dev->cdev);
++}
++EXPORT_SYMBOL_GPL(cec_dev_remove);
++
++static int cec_init(void)
++{
++ dev_t dev;
++ int ret;
++
++ cec_class = class_create(THIS_MODULE, "hdmi-cec");
++ if (IS_ERR(cec_class)) {
++ ret = PTR_ERR(cec_class);
++ pr_err("cec: can't create cec class: %d\n", ret);
++ goto err_class;
++ }
++
++ ret = alloc_chrdev_region(&dev, 0, 1, "hdmi-cec");
++ if (ret) {
++ pr_err("cec: can't create character devices: %d\n", ret);
++ goto err_chrdev;
++ }
++
++ cec_major = MAJOR(dev);
++
++ return 0;
++
++ err_chrdev:
++ class_destroy(cec_class);
++ err_class:
++ return ret;
++}
++subsys_initcall(cec_init);
++
++static void cec_exit(void)
++{
++ unregister_chrdev_region(MKDEV(cec_major, 0), 1);
++ class_destroy(cec_class);
++}
++module_exit(cec_exit);
++
++MODULE_AUTHOR("Russell King <rmk+kernel@arm.linux.org.uk>");
++MODULE_DESCRIPTION("Generic HDMI CEC driver");
++MODULE_LICENSE("GPL");
+diff -Nur linux-3.16.6.orig/drivers/cec/Kconfig linux-3.16.6/drivers/cec/Kconfig
+--- linux-3.16.6.orig/drivers/cec/Kconfig 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.16.6/drivers/cec/Kconfig 2014-10-23 12:37:18.350220009 -0500
+@@ -0,0 +1,14 @@
++#
++# Consumer Electroncs Control support
++#
++
++menu "Consumer Electronics Control devices"
++
++config CEC
++ bool
++
++config HDMI_CEC_CORE
++ tristate
++ select CEC
++
++endmenu
+diff -Nur linux-3.16.6.orig/drivers/cec/Makefile linux-3.16.6/drivers/cec/Makefile
+--- linux-3.16.6.orig/drivers/cec/Makefile 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.16.6/drivers/cec/Makefile 2014-10-23 12:37:18.374219998 -0500
+@@ -0,0 +1 @@
++obj-$(CONFIG_HDMI_CEC_CORE) += cec-dev.o
+diff -Nur linux-3.16.6.orig/drivers/dma/imx-sdma.c linux-3.16.6/drivers/dma/imx-sdma.c
+--- linux-3.16.6.orig/drivers/dma/imx-sdma.c 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/drivers/dma/imx-sdma.c 2014-10-23 12:35:52.990220019 -0500
+@@ -255,7 +255,6 @@
+ enum dma_slave_buswidth word_size;
+ unsigned int buf_tail;
+ unsigned int num_bd;
+- unsigned int period_len;
+ struct sdma_buffer_descriptor *bd;
+ dma_addr_t bd_phys;
+ unsigned int pc_from_device, pc_to_device;
+@@ -594,12 +593,6 @@
+
+ static void sdma_handle_channel_loop(struct sdma_channel *sdmac)
+ {
+- if (sdmac->desc.callback)
+- sdmac->desc.callback(sdmac->desc.callback_param);
+-}
+-
+-static void sdma_update_channel_loop(struct sdma_channel *sdmac)
+-{
+ struct sdma_buffer_descriptor *bd;
+
+ /*
+@@ -618,6 +611,9 @@
+ bd->mode.status |= BD_DONE;
+ sdmac->buf_tail++;
+ sdmac->buf_tail %= sdmac->num_bd;
++
++ if (sdmac->desc.callback)
++ sdmac->desc.callback(sdmac->desc.callback_param);
+ }
+ }
+
+@@ -673,9 +669,6 @@
+ int channel = fls(stat) - 1;
+ struct sdma_channel *sdmac = &sdma->channel[channel];
+
+- if (sdmac->flags & IMX_DMA_SG_LOOP)
+- sdma_update_channel_loop(sdmac);
+-
+ tasklet_schedule(&sdmac->tasklet);
+
+ __clear_bit(channel, &stat);
+@@ -1136,7 +1129,6 @@
+ sdmac->status = DMA_IN_PROGRESS;
+
+ sdmac->buf_tail = 0;
+- sdmac->period_len = period_len;
+
+ sdmac->flags |= IMX_DMA_SG_LOOP;
+ sdmac->direction = direction;
+@@ -1233,15 +1225,9 @@
+ struct dma_tx_state *txstate)
+ {
+ struct sdma_channel *sdmac = to_sdma_chan(chan);
+- u32 residue;
+-
+- if (sdmac->flags & IMX_DMA_SG_LOOP)
+- residue = (sdmac->num_bd - sdmac->buf_tail) * sdmac->period_len;
+- else
+- residue = sdmac->chn_count - sdmac->chn_real_count;
+
+ dma_set_tx_state(txstate, chan->completed_cookie, chan->cookie,
+- residue);
++ sdmac->chn_count - sdmac->chn_real_count);
+
+ return sdmac->status;
+ }
+diff -Nur linux-3.16.6.orig/drivers/dma/imx-sdma.c.orig linux-3.16.6/drivers/dma/imx-sdma.c.orig
+--- linux-3.16.6.orig/drivers/dma/imx-sdma.c.orig 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.16.6/drivers/dma/imx-sdma.c.orig 2014-10-15 05:05:43.000000000 -0500
+@@ -0,0 +1,1656 @@
++/*
++ * drivers/dma/imx-sdma.c
++ *
++ * This file contains a driver for the Freescale Smart DMA engine
++ *
++ * Copyright 2010 Sascha Hauer, Pengutronix <s.hauer@pengutronix.de>
++ *
++ * Based on code from Freescale:
++ *
++ * Copyright 2004-2009 Freescale Semiconductor, Inc. All Rights Reserved.
++ *
++ * The code contained herein is licensed under the GNU General Public
++ * License. You may obtain a copy of the GNU General Public License
++ * Version 2 or later at the following locations:
++ *
++ * http://www.opensource.org/licenses/gpl-license.html
++ * http://www.gnu.org/copyleft/gpl.html
++ */
++
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/types.h>
++#include <linux/bitops.h>
++#include <linux/mm.h>
++#include <linux/interrupt.h>
++#include <linux/clk.h>
++#include <linux/delay.h>
++#include <linux/sched.h>
++#include <linux/semaphore.h>
++#include <linux/spinlock.h>
++#include <linux/device.h>
++#include <linux/dma-mapping.h>
++#include <linux/firmware.h>
++#include <linux/slab.h>
++#include <linux/platform_device.h>
++#include <linux/dmaengine.h>
++#include <linux/of.h>
++#include <linux/of_device.h>
++#include <linux/of_dma.h>
++
++#include <asm/irq.h>
++#include <linux/platform_data/dma-imx-sdma.h>
++#include <linux/platform_data/dma-imx.h>
++
++#include "dmaengine.h"
++
++/* SDMA registers */
++#define SDMA_H_C0PTR 0x000
++#define SDMA_H_INTR 0x004
++#define SDMA_H_STATSTOP 0x008
++#define SDMA_H_START 0x00c
++#define SDMA_H_EVTOVR 0x010
++#define SDMA_H_DSPOVR 0x014
++#define SDMA_H_HOSTOVR 0x018
++#define SDMA_H_EVTPEND 0x01c
++#define SDMA_H_DSPENBL 0x020
++#define SDMA_H_RESET 0x024
++#define SDMA_H_EVTERR 0x028
++#define SDMA_H_INTRMSK 0x02c
++#define SDMA_H_PSW 0x030
++#define SDMA_H_EVTERRDBG 0x034
++#define SDMA_H_CONFIG 0x038
++#define SDMA_ONCE_ENB 0x040
++#define SDMA_ONCE_DATA 0x044
++#define SDMA_ONCE_INSTR 0x048
++#define SDMA_ONCE_STAT 0x04c
++#define SDMA_ONCE_CMD 0x050
++#define SDMA_EVT_MIRROR 0x054
++#define SDMA_ILLINSTADDR 0x058
++#define SDMA_CHN0ADDR 0x05c
++#define SDMA_ONCE_RTB 0x060
++#define SDMA_XTRIG_CONF1 0x070
++#define SDMA_XTRIG_CONF2 0x074
++#define SDMA_CHNENBL0_IMX35 0x200
++#define SDMA_CHNENBL0_IMX31 0x080
++#define SDMA_CHNPRI_0 0x100
++
++/*
++ * Buffer descriptor status values.
++ */
++#define BD_DONE 0x01
++#define BD_WRAP 0x02
++#define BD_CONT 0x04
++#define BD_INTR 0x08
++#define BD_RROR 0x10
++#define BD_LAST 0x20
++#define BD_EXTD 0x80
++
++/*
++ * Data Node descriptor status values.
++ */
++#define DND_END_OF_FRAME 0x80
++#define DND_END_OF_XFER 0x40
++#define DND_DONE 0x20
++#define DND_UNUSED 0x01
++
++/*
++ * IPCV2 descriptor status values.
++ */
++#define BD_IPCV2_END_OF_FRAME 0x40
++
++#define IPCV2_MAX_NODES 50
++/*
++ * Error bit set in the CCB status field by the SDMA,
++ * in setbd routine, in case of a transfer error
++ */
++#define DATA_ERROR 0x10000000
++
++/*
++ * Buffer descriptor commands.
++ */
++#define C0_ADDR 0x01
++#define C0_LOAD 0x02
++#define C0_DUMP 0x03
++#define C0_SETCTX 0x07
++#define C0_GETCTX 0x03
++#define C0_SETDM 0x01
++#define C0_SETPM 0x04
++#define C0_GETDM 0x02
++#define C0_GETPM 0x08
++/*
++ * Change endianness indicator in the BD command field
++ */
++#define CHANGE_ENDIANNESS 0x80
++
++/*
++ * Mode/Count of data node descriptors - IPCv2
++ */
++struct sdma_mode_count {
++ u32 count : 16; /* size of the buffer pointed by this BD */
++ u32 status : 8; /* E,R,I,C,W,D status bits stored here */
++ u32 command : 8; /* command mostlky used for channel 0 */
++};
++
++/*
++ * Buffer descriptor
++ */
++struct sdma_buffer_descriptor {
++ struct sdma_mode_count mode;
++ u32 buffer_addr; /* address of the buffer described */
++ u32 ext_buffer_addr; /* extended buffer address */
++} __attribute__ ((packed));
++
++/**
++ * struct sdma_channel_control - Channel control Block
++ *
++ * @current_bd_ptr current buffer descriptor processed
++ * @base_bd_ptr first element of buffer descriptor array
++ * @unused padding. The SDMA engine expects an array of 128 byte
++ * control blocks
++ */
++struct sdma_channel_control {
++ u32 current_bd_ptr;
++ u32 base_bd_ptr;
++ u32 unused[2];
++} __attribute__ ((packed));
++
++/**
++ * struct sdma_state_registers - SDMA context for a channel
++ *
++ * @pc: program counter
++ * @t: test bit: status of arithmetic & test instruction
++ * @rpc: return program counter
++ * @sf: source fault while loading data
++ * @spc: loop start program counter
++ * @df: destination fault while storing data
++ * @epc: loop end program counter
++ * @lm: loop mode
++ */
++struct sdma_state_registers {
++ u32 pc :14;
++ u32 unused1: 1;
++ u32 t : 1;
++ u32 rpc :14;
++ u32 unused0: 1;
++ u32 sf : 1;
++ u32 spc :14;
++ u32 unused2: 1;
++ u32 df : 1;
++ u32 epc :14;
++ u32 lm : 2;
++} __attribute__ ((packed));
++
++/**
++ * struct sdma_context_data - sdma context specific to a channel
++ *
++ * @channel_state: channel state bits
++ * @gReg: general registers
++ * @mda: burst dma destination address register
++ * @msa: burst dma source address register
++ * @ms: burst dma status register
++ * @md: burst dma data register
++ * @pda: peripheral dma destination address register
++ * @psa: peripheral dma source address register
++ * @ps: peripheral dma status register
++ * @pd: peripheral dma data register
++ * @ca: CRC polynomial register
++ * @cs: CRC accumulator register
++ * @dda: dedicated core destination address register
++ * @dsa: dedicated core source address register
++ * @ds: dedicated core status register
++ * @dd: dedicated core data register
++ */
++struct sdma_context_data {
++ struct sdma_state_registers channel_state;
++ u32 gReg[8];
++ u32 mda;
++ u32 msa;
++ u32 ms;
++ u32 md;
++ u32 pda;
++ u32 psa;
++ u32 ps;
++ u32 pd;
++ u32 ca;
++ u32 cs;
++ u32 dda;
++ u32 dsa;
++ u32 ds;
++ u32 dd;
++ u32 scratch0;
++ u32 scratch1;
++ u32 scratch2;
++ u32 scratch3;
++ u32 scratch4;
++ u32 scratch5;
++ u32 scratch6;
++ u32 scratch7;
++} __attribute__ ((packed));
++
++#define NUM_BD (int)(PAGE_SIZE / sizeof(struct sdma_buffer_descriptor))
++
++struct sdma_engine;
++
++/**
++ * struct sdma_channel - housekeeping for a SDMA channel
++ *
++ * @sdma pointer to the SDMA engine for this channel
++ * @channel the channel number, matches dmaengine chan_id + 1
++ * @direction transfer type. Needed for setting SDMA script
++ * @peripheral_type Peripheral type. Needed for setting SDMA script
++ * @event_id0 aka dma request line
++ * @event_id1 for channels that use 2 events
++ * @word_size peripheral access size
++ * @buf_tail ID of the buffer that was processed
++ * @num_bd max NUM_BD. number of descriptors currently handling
++ */
++struct sdma_channel {
++ struct sdma_engine *sdma;
++ unsigned int channel;
++ enum dma_transfer_direction direction;
++ enum sdma_peripheral_type peripheral_type;
++ unsigned int event_id0;
++ unsigned int event_id1;
++ enum dma_slave_buswidth word_size;
++ unsigned int buf_tail;
++ unsigned int num_bd;
++ unsigned int period_len;
++ struct sdma_buffer_descriptor *bd;
++ dma_addr_t bd_phys;
++ unsigned int pc_from_device, pc_to_device;
++ unsigned long flags;
++ dma_addr_t per_address;
++ unsigned long event_mask[2];
++ unsigned long watermark_level;
++ u32 shp_addr, per_addr;
++ struct dma_chan chan;
++ spinlock_t lock;
++ struct dma_async_tx_descriptor desc;
++ enum dma_status status;
++ unsigned int chn_count;
++ unsigned int chn_real_count;
++ struct tasklet_struct tasklet;
++};
++
++#define IMX_DMA_SG_LOOP BIT(0)
++
++#define MAX_DMA_CHANNELS 32
++#define MXC_SDMA_DEFAULT_PRIORITY 1
++#define MXC_SDMA_MIN_PRIORITY 1
++#define MXC_SDMA_MAX_PRIORITY 7
++
++#define SDMA_FIRMWARE_MAGIC 0x414d4453
++
++/**
++ * struct sdma_firmware_header - Layout of the firmware image
++ *
++ * @magic "SDMA"
++ * @version_major increased whenever layout of struct sdma_script_start_addrs
++ * changes.
++ * @version_minor firmware minor version (for binary compatible changes)
++ * @script_addrs_start offset of struct sdma_script_start_addrs in this image
++ * @num_script_addrs Number of script addresses in this image
++ * @ram_code_start offset of SDMA ram image in this firmware image
++ * @ram_code_size size of SDMA ram image
++ * @script_addrs Stores the start address of the SDMA scripts
++ * (in SDMA memory space)
++ */
++struct sdma_firmware_header {
++ u32 magic;
++ u32 version_major;
++ u32 version_minor;
++ u32 script_addrs_start;
++ u32 num_script_addrs;
++ u32 ram_code_start;
++ u32 ram_code_size;
++};
++
++struct sdma_driver_data {
++ int chnenbl0;
++ int num_events;
++ struct sdma_script_start_addrs *script_addrs;
++};
++
++struct sdma_engine {
++ struct device *dev;
++ struct device_dma_parameters dma_parms;
++ struct sdma_channel channel[MAX_DMA_CHANNELS];
++ struct sdma_channel_control *channel_control;
++ void __iomem *regs;
++ struct sdma_context_data *context;
++ dma_addr_t context_phys;
++ struct dma_device dma_device;
++ struct clk *clk_ipg;
++ struct clk *clk_ahb;
++ spinlock_t channel_0_lock;
++ u32 script_number;
++ struct sdma_script_start_addrs *script_addrs;
++ const struct sdma_driver_data *drvdata;
++};
++
++static struct sdma_driver_data sdma_imx31 = {
++ .chnenbl0 = SDMA_CHNENBL0_IMX31,
++ .num_events = 32,
++};
++
++static struct sdma_script_start_addrs sdma_script_imx25 = {
++ .ap_2_ap_addr = 729,
++ .uart_2_mcu_addr = 904,
++ .per_2_app_addr = 1255,
++ .mcu_2_app_addr = 834,
++ .uartsh_2_mcu_addr = 1120,
++ .per_2_shp_addr = 1329,
++ .mcu_2_shp_addr = 1048,
++ .ata_2_mcu_addr = 1560,
++ .mcu_2_ata_addr = 1479,
++ .app_2_per_addr = 1189,
++ .app_2_mcu_addr = 770,
++ .shp_2_per_addr = 1407,
++ .shp_2_mcu_addr = 979,
++};
++
++static struct sdma_driver_data sdma_imx25 = {
++ .chnenbl0 = SDMA_CHNENBL0_IMX35,
++ .num_events = 48,
++ .script_addrs = &sdma_script_imx25,
++};
++
++static struct sdma_driver_data sdma_imx35 = {
++ .chnenbl0 = SDMA_CHNENBL0_IMX35,
++ .num_events = 48,
++};
++
++static struct sdma_script_start_addrs sdma_script_imx51 = {
++ .ap_2_ap_addr = 642,
++ .uart_2_mcu_addr = 817,
++ .mcu_2_app_addr = 747,
++ .mcu_2_shp_addr = 961,
++ .ata_2_mcu_addr = 1473,
++ .mcu_2_ata_addr = 1392,
++ .app_2_per_addr = 1033,
++ .app_2_mcu_addr = 683,
++ .shp_2_per_addr = 1251,
++ .shp_2_mcu_addr = 892,
++};
++
++static struct sdma_driver_data sdma_imx51 = {
++ .chnenbl0 = SDMA_CHNENBL0_IMX35,
++ .num_events = 48,
++ .script_addrs = &sdma_script_imx51,
++};
++
++static struct sdma_script_start_addrs sdma_script_imx53 = {
++ .ap_2_ap_addr = 642,
++ .app_2_mcu_addr = 683,
++ .mcu_2_app_addr = 747,
++ .uart_2_mcu_addr = 817,
++ .shp_2_mcu_addr = 891,
++ .mcu_2_shp_addr = 960,
++ .uartsh_2_mcu_addr = 1032,
++ .spdif_2_mcu_addr = 1100,
++ .mcu_2_spdif_addr = 1134,
++ .firi_2_mcu_addr = 1193,
++ .mcu_2_firi_addr = 1290,
++};
++
++static struct sdma_driver_data sdma_imx53 = {
++ .chnenbl0 = SDMA_CHNENBL0_IMX35,
++ .num_events = 48,
++ .script_addrs = &sdma_script_imx53,
++};
++
++static struct sdma_script_start_addrs sdma_script_imx6q = {
++ .ap_2_ap_addr = 642,
++ .uart_2_mcu_addr = 817,
++ .mcu_2_app_addr = 747,
++ .per_2_per_addr = 6331,
++ .uartsh_2_mcu_addr = 1032,
++ .mcu_2_shp_addr = 960,
++ .app_2_mcu_addr = 683,
++ .shp_2_mcu_addr = 891,
++ .spdif_2_mcu_addr = 1100,
++ .mcu_2_spdif_addr = 1134,
++};
++
++static struct sdma_driver_data sdma_imx6q = {
++ .chnenbl0 = SDMA_CHNENBL0_IMX35,
++ .num_events = 48,
++ .script_addrs = &sdma_script_imx6q,
++};
++
++static struct platform_device_id sdma_devtypes[] = {
++ {
++ .name = "imx25-sdma",
++ .driver_data = (unsigned long)&sdma_imx25,
++ }, {
++ .name = "imx31-sdma",
++ .driver_data = (unsigned long)&sdma_imx31,
++ }, {
++ .name = "imx35-sdma",
++ .driver_data = (unsigned long)&sdma_imx35,
++ }, {
++ .name = "imx51-sdma",
++ .driver_data = (unsigned long)&sdma_imx51,
++ }, {
++ .name = "imx53-sdma",
++ .driver_data = (unsigned long)&sdma_imx53,
++ }, {
++ .name = "imx6q-sdma",
++ .driver_data = (unsigned long)&sdma_imx6q,
++ }, {
++ /* sentinel */
++ }
++};
++MODULE_DEVICE_TABLE(platform, sdma_devtypes);
++
++static const struct of_device_id sdma_dt_ids[] = {
++ { .compatible = "fsl,imx6q-sdma", .data = &sdma_imx6q, },
++ { .compatible = "fsl,imx53-sdma", .data = &sdma_imx53, },
++ { .compatible = "fsl,imx51-sdma", .data = &sdma_imx51, },
++ { .compatible = "fsl,imx35-sdma", .data = &sdma_imx35, },
++ { .compatible = "fsl,imx31-sdma", .data = &sdma_imx31, },
++ { .compatible = "fsl,imx25-sdma", .data = &sdma_imx25, },
++ { /* sentinel */ }
++};
++MODULE_DEVICE_TABLE(of, sdma_dt_ids);
++
++#define SDMA_H_CONFIG_DSPDMA BIT(12) /* indicates if the DSPDMA is used */
++#define SDMA_H_CONFIG_RTD_PINS BIT(11) /* indicates if Real-Time Debug pins are enabled */
++#define SDMA_H_CONFIG_ACR BIT(4) /* indicates if AHB freq /core freq = 2 or 1 */
++#define SDMA_H_CONFIG_CSM (3) /* indicates which context switch mode is selected*/
++
++static inline u32 chnenbl_ofs(struct sdma_engine *sdma, unsigned int event)
++{
++ u32 chnenbl0 = sdma->drvdata->chnenbl0;
++ return chnenbl0 + event * 4;
++}
++
++static int sdma_config_ownership(struct sdma_channel *sdmac,
++ bool event_override, bool mcu_override, bool dsp_override)
++{
++ struct sdma_engine *sdma = sdmac->sdma;
++ int channel = sdmac->channel;
++ unsigned long evt, mcu, dsp;
++
++ if (event_override && mcu_override && dsp_override)
++ return -EINVAL;
++
++ evt = readl_relaxed(sdma->regs + SDMA_H_EVTOVR);
++ mcu = readl_relaxed(sdma->regs + SDMA_H_HOSTOVR);
++ dsp = readl_relaxed(sdma->regs + SDMA_H_DSPOVR);
++
++ if (dsp_override)
++ __clear_bit(channel, &dsp);
++ else
++ __set_bit(channel, &dsp);
++
++ if (event_override)
++ __clear_bit(channel, &evt);
++ else
++ __set_bit(channel, &evt);
++
++ if (mcu_override)
++ __clear_bit(channel, &mcu);
++ else
++ __set_bit(channel, &mcu);
++
++ writel_relaxed(evt, sdma->regs + SDMA_H_EVTOVR);
++ writel_relaxed(mcu, sdma->regs + SDMA_H_HOSTOVR);
++ writel_relaxed(dsp, sdma->regs + SDMA_H_DSPOVR);
++
++ return 0;
++}
++
++static void sdma_enable_channel(struct sdma_engine *sdma, int channel)
++{
++ writel(BIT(channel), sdma->regs + SDMA_H_START);
++}
++
++/*
++ * sdma_run_channel0 - run a channel and wait till it's done
++ */
++static int sdma_run_channel0(struct sdma_engine *sdma)
++{
++ int ret;
++ unsigned long timeout = 500;
++
++ sdma_enable_channel(sdma, 0);
++
++ while (!(ret = readl_relaxed(sdma->regs + SDMA_H_INTR) & 1)) {
++ if (timeout-- <= 0)
++ break;
++ udelay(1);
++ }
++
++ if (ret) {
++ /* Clear the interrupt status */
++ writel_relaxed(ret, sdma->regs + SDMA_H_INTR);
++ } else {
++ dev_err(sdma->dev, "Timeout waiting for CH0 ready\n");
++ }
++
++ return ret ? 0 : -ETIMEDOUT;
++}
++
++static int sdma_load_script(struct sdma_engine *sdma, void *buf, int size,
++ u32 address)
++{
++ struct sdma_buffer_descriptor *bd0 = sdma->channel[0].bd;
++ void *buf_virt;
++ dma_addr_t buf_phys;
++ int ret;
++ unsigned long flags;
++
++ buf_virt = dma_alloc_coherent(NULL,
++ size,
++ &buf_phys, GFP_KERNEL);
++ if (!buf_virt) {
++ return -ENOMEM;
++ }
++
++ spin_lock_irqsave(&sdma->channel_0_lock, flags);
++
++ bd0->mode.command = C0_SETPM;
++ bd0->mode.status = BD_DONE | BD_INTR | BD_WRAP | BD_EXTD;
++ bd0->mode.count = size / 2;
++ bd0->buffer_addr = buf_phys;
++ bd0->ext_buffer_addr = address;
++
++ memcpy(buf_virt, buf, size);
++
++ ret = sdma_run_channel0(sdma);
++
++ spin_unlock_irqrestore(&sdma->channel_0_lock, flags);
++
++ dma_free_coherent(NULL, size, buf_virt, buf_phys);
++
++ return ret;
++}
++
++static void sdma_event_enable(struct sdma_channel *sdmac, unsigned int event)
++{
++ struct sdma_engine *sdma = sdmac->sdma;
++ int channel = sdmac->channel;
++ unsigned long val;
++ u32 chnenbl = chnenbl_ofs(sdma, event);
++
++ val = readl_relaxed(sdma->regs + chnenbl);
++ __set_bit(channel, &val);
++ writel_relaxed(val, sdma->regs + chnenbl);
++}
++
++static void sdma_event_disable(struct sdma_channel *sdmac, unsigned int event)
++{
++ struct sdma_engine *sdma = sdmac->sdma;
++ int channel = sdmac->channel;
++ u32 chnenbl = chnenbl_ofs(sdma, event);
++ unsigned long val;
++
++ val = readl_relaxed(sdma->regs + chnenbl);
++ __clear_bit(channel, &val);
++ writel_relaxed(val, sdma->regs + chnenbl);
++}
++
++static void sdma_handle_channel_loop(struct sdma_channel *sdmac)
++{
++ if (sdmac->desc.callback)
++ sdmac->desc.callback(sdmac->desc.callback_param);
++}
++
++static void sdma_update_channel_loop(struct sdma_channel *sdmac)
++{
++ struct sdma_buffer_descriptor *bd;
++
++ /*
++ * loop mode. Iterate over descriptors, re-setup them and
++ * call callback function.
++ */
++ while (1) {
++ bd = &sdmac->bd[sdmac->buf_tail];
++
++ if (bd->mode.status & BD_DONE)
++ break;
++
++ if (bd->mode.status & BD_RROR)
++ sdmac->status = DMA_ERROR;
++
++ bd->mode.status |= BD_DONE;
++ sdmac->buf_tail++;
++ sdmac->buf_tail %= sdmac->num_bd;
++ }
++}
++
++static void mxc_sdma_handle_channel_normal(struct sdma_channel *sdmac)
++{
++ struct sdma_buffer_descriptor *bd;
++ int i, error = 0;
++
++ sdmac->chn_real_count = 0;
++ /*
++ * non loop mode. Iterate over all descriptors, collect
++ * errors and call callback function
++ */
++ for (i = 0; i < sdmac->num_bd; i++) {
++ bd = &sdmac->bd[i];
++
++ if (bd->mode.status & (BD_DONE | BD_RROR))
++ error = -EIO;
++ sdmac->chn_real_count += bd->mode.count;
++ }
++
++ if (error)
++ sdmac->status = DMA_ERROR;
++ else
++ sdmac->status = DMA_COMPLETE;
++
++ dma_cookie_complete(&sdmac->desc);
++ if (sdmac->desc.callback)
++ sdmac->desc.callback(sdmac->desc.callback_param);
++}
++
++static void sdma_tasklet(unsigned long data)
++{
++ struct sdma_channel *sdmac = (struct sdma_channel *) data;
++
++ if (sdmac->flags & IMX_DMA_SG_LOOP)
++ sdma_handle_channel_loop(sdmac);
++ else
++ mxc_sdma_handle_channel_normal(sdmac);
++}
++
++static irqreturn_t sdma_int_handler(int irq, void *dev_id)
++{
++ struct sdma_engine *sdma = dev_id;
++ unsigned long stat;
++
++ stat = readl_relaxed(sdma->regs + SDMA_H_INTR);
++ /* not interested in channel 0 interrupts */
++ stat &= ~1;
++ writel_relaxed(stat, sdma->regs + SDMA_H_INTR);
++
++ while (stat) {
++ int channel = fls(stat) - 1;
++ struct sdma_channel *sdmac = &sdma->channel[channel];
++
++ if (sdmac->flags & IMX_DMA_SG_LOOP)
++ sdma_update_channel_loop(sdmac);
++
++ tasklet_schedule(&sdmac->tasklet);
++
++ __clear_bit(channel, &stat);
++ }
++
++ return IRQ_HANDLED;
++}
++
++/*
++ * sets the pc of SDMA script according to the peripheral type
++ */
++static void sdma_get_pc(struct sdma_channel *sdmac,
++ enum sdma_peripheral_type peripheral_type)
++{
++ struct sdma_engine *sdma = sdmac->sdma;
++ int per_2_emi = 0, emi_2_per = 0;
++ /*
++ * These are needed once we start to support transfers between
++ * two peripherals or memory-to-memory transfers
++ */
++ int per_2_per = 0, emi_2_emi = 0;
++
++ sdmac->pc_from_device = 0;
++ sdmac->pc_to_device = 0;
++
++ switch (peripheral_type) {
++ case IMX_DMATYPE_MEMORY:
++ emi_2_emi = sdma->script_addrs->ap_2_ap_addr;
++ break;
++ case IMX_DMATYPE_DSP:
++ emi_2_per = sdma->script_addrs->bp_2_ap_addr;
++ per_2_emi = sdma->script_addrs->ap_2_bp_addr;
++ break;
++ case IMX_DMATYPE_FIRI:
++ per_2_emi = sdma->script_addrs->firi_2_mcu_addr;
++ emi_2_per = sdma->script_addrs->mcu_2_firi_addr;
++ break;
++ case IMX_DMATYPE_UART:
++ per_2_emi = sdma->script_addrs->uart_2_mcu_addr;
++ emi_2_per = sdma->script_addrs->mcu_2_app_addr;
++ break;
++ case IMX_DMATYPE_UART_SP:
++ per_2_emi = sdma->script_addrs->uartsh_2_mcu_addr;
++ emi_2_per = sdma->script_addrs->mcu_2_shp_addr;
++ break;
++ case IMX_DMATYPE_ATA:
++ per_2_emi = sdma->script_addrs->ata_2_mcu_addr;
++ emi_2_per = sdma->script_addrs->mcu_2_ata_addr;
++ break;
++ case IMX_DMATYPE_CSPI:
++ case IMX_DMATYPE_EXT:
++ case IMX_DMATYPE_SSI:
++ per_2_emi = sdma->script_addrs->app_2_mcu_addr;
++ emi_2_per = sdma->script_addrs->mcu_2_app_addr;
++ break;
++ case IMX_DMATYPE_SSI_DUAL:
++ per_2_emi = sdma->script_addrs->ssish_2_mcu_addr;
++ emi_2_per = sdma->script_addrs->mcu_2_ssish_addr;
++ break;
++ case IMX_DMATYPE_SSI_SP:
++ case IMX_DMATYPE_MMC:
++ case IMX_DMATYPE_SDHC:
++ case IMX_DMATYPE_CSPI_SP:
++ case IMX_DMATYPE_ESAI:
++ case IMX_DMATYPE_MSHC_SP:
++ per_2_emi = sdma->script_addrs->shp_2_mcu_addr;
++ emi_2_per = sdma->script_addrs->mcu_2_shp_addr;
++ break;
++ case IMX_DMATYPE_ASRC:
++ per_2_emi = sdma->script_addrs->asrc_2_mcu_addr;
++ emi_2_per = sdma->script_addrs->asrc_2_mcu_addr;
++ per_2_per = sdma->script_addrs->per_2_per_addr;
++ break;
++ case IMX_DMATYPE_MSHC:
++ per_2_emi = sdma->script_addrs->mshc_2_mcu_addr;
++ emi_2_per = sdma->script_addrs->mcu_2_mshc_addr;
++ break;
++ case IMX_DMATYPE_CCM:
++ per_2_emi = sdma->script_addrs->dptc_dvfs_addr;
++ break;
++ case IMX_DMATYPE_SPDIF:
++ per_2_emi = sdma->script_addrs->spdif_2_mcu_addr;
++ emi_2_per = sdma->script_addrs->mcu_2_spdif_addr;
++ break;
++ case IMX_DMATYPE_IPU_MEMORY:
++ emi_2_per = sdma->script_addrs->ext_mem_2_ipu_addr;
++ break;
++ default:
++ break;
++ }
++
++ sdmac->pc_from_device = per_2_emi;
++ sdmac->pc_to_device = emi_2_per;
++}
++
++static int sdma_load_context(struct sdma_channel *sdmac)
++{
++ struct sdma_engine *sdma = sdmac->sdma;
++ int channel = sdmac->channel;
++ int load_address;
++ struct sdma_context_data *context = sdma->context;
++ struct sdma_buffer_descriptor *bd0 = sdma->channel[0].bd;
++ int ret;
++ unsigned long flags;
++
++ if (sdmac->direction == DMA_DEV_TO_MEM) {
++ load_address = sdmac->pc_from_device;
++ } else {
++ load_address = sdmac->pc_to_device;
++ }
++
++ if (load_address < 0)
++ return load_address;
++
++ dev_dbg(sdma->dev, "load_address = %d\n", load_address);
++ dev_dbg(sdma->dev, "wml = 0x%08x\n", (u32)sdmac->watermark_level);
++ dev_dbg(sdma->dev, "shp_addr = 0x%08x\n", sdmac->shp_addr);
++ dev_dbg(sdma->dev, "per_addr = 0x%08x\n", sdmac->per_addr);
++ dev_dbg(sdma->dev, "event_mask0 = 0x%08x\n", (u32)sdmac->event_mask[0]);
++ dev_dbg(sdma->dev, "event_mask1 = 0x%08x\n", (u32)sdmac->event_mask[1]);
++
++ spin_lock_irqsave(&sdma->channel_0_lock, flags);
++
++ memset(context, 0, sizeof(*context));
++ context->channel_state.pc = load_address;
++
++ /* Send by context the event mask,base address for peripheral
++ * and watermark level
++ */
++ context->gReg[0] = sdmac->event_mask[1];
++ context->gReg[1] = sdmac->event_mask[0];
++ context->gReg[2] = sdmac->per_addr;
++ context->gReg[6] = sdmac->shp_addr;
++ context->gReg[7] = sdmac->watermark_level;
++
++ bd0->mode.command = C0_SETDM;
++ bd0->mode.status = BD_DONE | BD_INTR | BD_WRAP | BD_EXTD;
++ bd0->mode.count = sizeof(*context) / 4;
++ bd0->buffer_addr = sdma->context_phys;
++ bd0->ext_buffer_addr = 2048 + (sizeof(*context) / 4) * channel;
++ ret = sdma_run_channel0(sdma);
++
++ spin_unlock_irqrestore(&sdma->channel_0_lock, flags);
++
++ return ret;
++}
++
++static void sdma_disable_channel(struct sdma_channel *sdmac)
++{
++ struct sdma_engine *sdma = sdmac->sdma;
++ int channel = sdmac->channel;
++
++ writel_relaxed(BIT(channel), sdma->regs + SDMA_H_STATSTOP);
++ sdmac->status = DMA_ERROR;
++}
++
++static int sdma_config_channel(struct sdma_channel *sdmac)
++{
++ int ret;
++
++ sdma_disable_channel(sdmac);
++
++ sdmac->event_mask[0] = 0;
++ sdmac->event_mask[1] = 0;
++ sdmac->shp_addr = 0;
++ sdmac->per_addr = 0;
++
++ if (sdmac->event_id0) {
++ if (sdmac->event_id0 >= sdmac->sdma->drvdata->num_events)
++ return -EINVAL;
++ sdma_event_enable(sdmac, sdmac->event_id0);
++ }
++
++ switch (sdmac->peripheral_type) {
++ case IMX_DMATYPE_DSP:
++ sdma_config_ownership(sdmac, false, true, true);
++ break;
++ case IMX_DMATYPE_MEMORY:
++ sdma_config_ownership(sdmac, false, true, false);
++ break;
++ default:
++ sdma_config_ownership(sdmac, true, true, false);
++ break;
++ }
++
++ sdma_get_pc(sdmac, sdmac->peripheral_type);
++
++ if ((sdmac->peripheral_type != IMX_DMATYPE_MEMORY) &&
++ (sdmac->peripheral_type != IMX_DMATYPE_DSP)) {
++ /* Handle multiple event channels differently */
++ if (sdmac->event_id1) {
++ sdmac->event_mask[1] = BIT(sdmac->event_id1 % 32);
++ if (sdmac->event_id1 > 31)
++ __set_bit(31, &sdmac->watermark_level);
++ sdmac->event_mask[0] = BIT(sdmac->event_id0 % 32);
++ if (sdmac->event_id0 > 31)
++ __set_bit(30, &sdmac->watermark_level);
++ } else {
++ __set_bit(sdmac->event_id0, sdmac->event_mask);
++ }
++ /* Watermark Level */
++ sdmac->watermark_level |= sdmac->watermark_level;
++ /* Address */
++ sdmac->shp_addr = sdmac->per_address;
++ } else {
++ sdmac->watermark_level = 0; /* FIXME: M3_BASE_ADDRESS */
++ }
++
++ ret = sdma_load_context(sdmac);
++
++ return ret;
++}
++
++static int sdma_set_channel_priority(struct sdma_channel *sdmac,
++ unsigned int priority)
++{
++ struct sdma_engine *sdma = sdmac->sdma;
++ int channel = sdmac->channel;
++
++ if (priority < MXC_SDMA_MIN_PRIORITY
++ || priority > MXC_SDMA_MAX_PRIORITY) {
++ return -EINVAL;
++ }
++
++ writel_relaxed(priority, sdma->regs + SDMA_CHNPRI_0 + 4 * channel);
++
++ return 0;
++}
++
++static int sdma_request_channel(struct sdma_channel *sdmac)
++{
++ struct sdma_engine *sdma = sdmac->sdma;
++ int channel = sdmac->channel;
++ int ret = -EBUSY;
++
++ sdmac->bd = dma_alloc_coherent(NULL, PAGE_SIZE, &sdmac->bd_phys, GFP_KERNEL);
++ if (!sdmac->bd) {
++ ret = -ENOMEM;
++ goto out;
++ }
++
++ memset(sdmac->bd, 0, PAGE_SIZE);
++
++ sdma->channel_control[channel].base_bd_ptr = sdmac->bd_phys;
++ sdma->channel_control[channel].current_bd_ptr = sdmac->bd_phys;
++
++ sdma_set_channel_priority(sdmac, MXC_SDMA_DEFAULT_PRIORITY);
++ return 0;
++out:
++
++ return ret;
++}
++
++static struct sdma_channel *to_sdma_chan(struct dma_chan *chan)
++{
++ return container_of(chan, struct sdma_channel, chan);
++}
++
++static dma_cookie_t sdma_tx_submit(struct dma_async_tx_descriptor *tx)
++{
++ unsigned long flags;
++ struct sdma_channel *sdmac = to_sdma_chan(tx->chan);
++ dma_cookie_t cookie;
++
++ spin_lock_irqsave(&sdmac->lock, flags);
++
++ cookie = dma_cookie_assign(tx);
++
++ spin_unlock_irqrestore(&sdmac->lock, flags);
++
++ return cookie;
++}
++
++static int sdma_alloc_chan_resources(struct dma_chan *chan)
++{
++ struct sdma_channel *sdmac = to_sdma_chan(chan);
++ struct imx_dma_data *data = chan->private;
++ int prio, ret;
++
++ if (!data)
++ return -EINVAL;
++
++ switch (data->priority) {
++ case DMA_PRIO_HIGH:
++ prio = 3;
++ break;
++ case DMA_PRIO_MEDIUM:
++ prio = 2;
++ break;
++ case DMA_PRIO_LOW:
++ default:
++ prio = 1;
++ break;
++ }
++
++ sdmac->peripheral_type = data->peripheral_type;
++ sdmac->event_id0 = data->dma_request;
++
++ clk_enable(sdmac->sdma->clk_ipg);
++ clk_enable(sdmac->sdma->clk_ahb);
++
++ ret = sdma_request_channel(sdmac);
++ if (ret)
++ return ret;
++
++ ret = sdma_set_channel_priority(sdmac, prio);
++ if (ret)
++ return ret;
++
++ dma_async_tx_descriptor_init(&sdmac->desc, chan);
++ sdmac->desc.tx_submit = sdma_tx_submit;
++ /* txd.flags will be overwritten in prep funcs */
++ sdmac->desc.flags = DMA_CTRL_ACK;
++
++ return 0;
++}
++
++static void sdma_free_chan_resources(struct dma_chan *chan)
++{
++ struct sdma_channel *sdmac = to_sdma_chan(chan);
++ struct sdma_engine *sdma = sdmac->sdma;
++
++ sdma_disable_channel(sdmac);
++
++ if (sdmac->event_id0)
++ sdma_event_disable(sdmac, sdmac->event_id0);
++ if (sdmac->event_id1)
++ sdma_event_disable(sdmac, sdmac->event_id1);
++
++ sdmac->event_id0 = 0;
++ sdmac->event_id1 = 0;
++
++ sdma_set_channel_priority(sdmac, 0);
++
++ dma_free_coherent(NULL, PAGE_SIZE, sdmac->bd, sdmac->bd_phys);
++
++ clk_disable(sdma->clk_ipg);
++ clk_disable(sdma->clk_ahb);
++}
++
++static struct dma_async_tx_descriptor *sdma_prep_slave_sg(
++ struct dma_chan *chan, struct scatterlist *sgl,
++ unsigned int sg_len, enum dma_transfer_direction direction,
++ unsigned long flags, void *context)
++{
++ struct sdma_channel *sdmac = to_sdma_chan(chan);
++ struct sdma_engine *sdma = sdmac->sdma;
++ int ret, i, count;
++ int channel = sdmac->channel;
++ struct scatterlist *sg;
++
++ if (sdmac->status == DMA_IN_PROGRESS)
++ return NULL;
++ sdmac->status = DMA_IN_PROGRESS;
++
++ sdmac->flags = 0;
++
++ sdmac->buf_tail = 0;
++
++ dev_dbg(sdma->dev, "setting up %d entries for channel %d.\n",
++ sg_len, channel);
++
++ sdmac->direction = direction;
++ ret = sdma_load_context(sdmac);
++ if (ret)
++ goto err_out;
++
++ if (sg_len > NUM_BD) {
++ dev_err(sdma->dev, "SDMA channel %d: maximum number of sg exceeded: %d > %d\n",
++ channel, sg_len, NUM_BD);
++ ret = -EINVAL;
++ goto err_out;
++ }
++
++ sdmac->chn_count = 0;
++ for_each_sg(sgl, sg, sg_len, i) {
++ struct sdma_buffer_descriptor *bd = &sdmac->bd[i];
++ int param;
++
++ bd->buffer_addr = sg->dma_address;
++
++ count = sg_dma_len(sg);
++
++ if (count > 0xffff) {
++ dev_err(sdma->dev, "SDMA channel %d: maximum bytes for sg entry exceeded: %d > %d\n",
++ channel, count, 0xffff);
++ ret = -EINVAL;
++ goto err_out;
++ }
++
++ bd->mode.count = count;
++ sdmac->chn_count += count;
++
++ if (sdmac->word_size > DMA_SLAVE_BUSWIDTH_4_BYTES) {
++ ret = -EINVAL;
++ goto err_out;
++ }
++
++ switch (sdmac->word_size) {
++ case DMA_SLAVE_BUSWIDTH_4_BYTES:
++ bd->mode.command = 0;
++ if (count & 3 || sg->dma_address & 3)
++ return NULL;
++ break;
++ case DMA_SLAVE_BUSWIDTH_2_BYTES:
++ bd->mode.command = 2;
++ if (count & 1 || sg->dma_address & 1)
++ return NULL;
++ break;
++ case DMA_SLAVE_BUSWIDTH_1_BYTE:
++ bd->mode.command = 1;
++ break;
++ default:
++ return NULL;
++ }
++
++ param = BD_DONE | BD_EXTD | BD_CONT;
++
++ if (i + 1 == sg_len) {
++ param |= BD_INTR;
++ param |= BD_LAST;
++ param &= ~BD_CONT;
++ }
++
++ dev_dbg(sdma->dev, "entry %d: count: %d dma: %#llx %s%s\n",
++ i, count, (u64)sg->dma_address,
++ param & BD_WRAP ? "wrap" : "",
++ param & BD_INTR ? " intr" : "");
++
++ bd->mode.status = param;
++ }
++
++ sdmac->num_bd = sg_len;
++ sdma->channel_control[channel].current_bd_ptr = sdmac->bd_phys;
++
++ return &sdmac->desc;
++err_out:
++ sdmac->status = DMA_ERROR;
++ return NULL;
++}
++
++static struct dma_async_tx_descriptor *sdma_prep_dma_cyclic(
++ struct dma_chan *chan, dma_addr_t dma_addr, size_t buf_len,
++ size_t period_len, enum dma_transfer_direction direction,
++ unsigned long flags, void *context)
++{
++ struct sdma_channel *sdmac = to_sdma_chan(chan);
++ struct sdma_engine *sdma = sdmac->sdma;
++ int num_periods = buf_len / period_len;
++ int channel = sdmac->channel;
++ int ret, i = 0, buf = 0;
++
++ dev_dbg(sdma->dev, "%s channel: %d\n", __func__, channel);
++
++ if (sdmac->status == DMA_IN_PROGRESS)
++ return NULL;
++
++ sdmac->status = DMA_IN_PROGRESS;
++
++ sdmac->buf_tail = 0;
++ sdmac->period_len = period_len;
++
++ sdmac->flags |= IMX_DMA_SG_LOOP;
++ sdmac->direction = direction;
++ ret = sdma_load_context(sdmac);
++ if (ret)
++ goto err_out;
++
++ if (num_periods > NUM_BD) {
++ dev_err(sdma->dev, "SDMA channel %d: maximum number of sg exceeded: %d > %d\n",
++ channel, num_periods, NUM_BD);
++ goto err_out;
++ }
++
++ if (period_len > 0xffff) {
++ dev_err(sdma->dev, "SDMA channel %d: maximum period size exceeded: %d > %d\n",
++ channel, period_len, 0xffff);
++ goto err_out;
++ }
++
++ while (buf < buf_len) {
++ struct sdma_buffer_descriptor *bd = &sdmac->bd[i];
++ int param;
++
++ bd->buffer_addr = dma_addr;
++
++ bd->mode.count = period_len;
++
++ if (sdmac->word_size > DMA_SLAVE_BUSWIDTH_4_BYTES)
++ goto err_out;
++ if (sdmac->word_size == DMA_SLAVE_BUSWIDTH_4_BYTES)
++ bd->mode.command = 0;
++ else
++ bd->mode.command = sdmac->word_size;
++
++ param = BD_DONE | BD_EXTD | BD_CONT | BD_INTR;
++ if (i + 1 == num_periods)
++ param |= BD_WRAP;
++
++ dev_dbg(sdma->dev, "entry %d: count: %d dma: %#llx %s%s\n",
++ i, period_len, (u64)dma_addr,
++ param & BD_WRAP ? "wrap" : "",
++ param & BD_INTR ? " intr" : "");
++
++ bd->mode.status = param;
++
++ dma_addr += period_len;
++ buf += period_len;
++
++ i++;
++ }
++
++ sdmac->num_bd = num_periods;
++ sdma->channel_control[channel].current_bd_ptr = sdmac->bd_phys;
++
++ return &sdmac->desc;
++err_out:
++ sdmac->status = DMA_ERROR;
++ return NULL;
++}
++
++static int sdma_control(struct dma_chan *chan, enum dma_ctrl_cmd cmd,
++ unsigned long arg)
++{
++ struct sdma_channel *sdmac = to_sdma_chan(chan);
++ struct dma_slave_config *dmaengine_cfg = (void *)arg;
++
++ switch (cmd) {
++ case DMA_TERMINATE_ALL:
++ sdma_disable_channel(sdmac);
++ return 0;
++ case DMA_SLAVE_CONFIG:
++ if (dmaengine_cfg->direction == DMA_DEV_TO_MEM) {
++ sdmac->per_address = dmaengine_cfg->src_addr;
++ sdmac->watermark_level = dmaengine_cfg->src_maxburst *
++ dmaengine_cfg->src_addr_width;
++ sdmac->word_size = dmaengine_cfg->src_addr_width;
++ } else {
++ sdmac->per_address = dmaengine_cfg->dst_addr;
++ sdmac->watermark_level = dmaengine_cfg->dst_maxburst *
++ dmaengine_cfg->dst_addr_width;
++ sdmac->word_size = dmaengine_cfg->dst_addr_width;
++ }
++ sdmac->direction = dmaengine_cfg->direction;
++ return sdma_config_channel(sdmac);
++ default:
++ return -ENOSYS;
++ }
++
++ return -EINVAL;
++}
++
++static enum dma_status sdma_tx_status(struct dma_chan *chan,
++ dma_cookie_t cookie,
++ struct dma_tx_state *txstate)
++{
++ struct sdma_channel *sdmac = to_sdma_chan(chan);
++ u32 residue;
++
++ if (sdmac->flags & IMX_DMA_SG_LOOP)
++ residue = (sdmac->num_bd - sdmac->buf_tail) * sdmac->period_len;
++ else
++ residue = sdmac->chn_count - sdmac->chn_real_count;
++
++ dma_set_tx_state(txstate, chan->completed_cookie, chan->cookie,
++ residue);
++
++ return sdmac->status;
++}
++
++static void sdma_issue_pending(struct dma_chan *chan)
++{
++ struct sdma_channel *sdmac = to_sdma_chan(chan);
++ struct sdma_engine *sdma = sdmac->sdma;
++
++ if (sdmac->status == DMA_IN_PROGRESS)
++ sdma_enable_channel(sdma, sdmac->channel);
++}
++
++#define SDMA_SCRIPT_ADDRS_ARRAY_SIZE_V1 34
++#define SDMA_SCRIPT_ADDRS_ARRAY_SIZE_V2 38
++
++static void sdma_add_scripts(struct sdma_engine *sdma,
++ const struct sdma_script_start_addrs *addr)
++{
++ s32 *addr_arr = (u32 *)addr;
++ s32 *saddr_arr = (u32 *)sdma->script_addrs;
++ int i;
++
++ /* use the default firmware in ROM if missing external firmware */
++ if (!sdma->script_number)
++ sdma->script_number = SDMA_SCRIPT_ADDRS_ARRAY_SIZE_V1;
++
++ for (i = 0; i < sdma->script_number; i++)
++ if (addr_arr[i] > 0)
++ saddr_arr[i] = addr_arr[i];
++}
++
++static void sdma_load_firmware(const struct firmware *fw, void *context)
++{
++ struct sdma_engine *sdma = context;
++ const struct sdma_firmware_header *header;
++ const struct sdma_script_start_addrs *addr;
++ unsigned short *ram_code;
++
++ if (!fw) {
++ dev_err(sdma->dev, "firmware not found\n");
++ return;
++ }
++
++ if (fw->size < sizeof(*header))
++ goto err_firmware;
++
++ header = (struct sdma_firmware_header *)fw->data;
++
++ if (header->magic != SDMA_FIRMWARE_MAGIC)
++ goto err_firmware;
++ if (header->ram_code_start + header->ram_code_size > fw->size)
++ goto err_firmware;
++ switch (header->version_major) {
++ case 1:
++ sdma->script_number = SDMA_SCRIPT_ADDRS_ARRAY_SIZE_V1;
++ break;
++ case 2:
++ sdma->script_number = SDMA_SCRIPT_ADDRS_ARRAY_SIZE_V2;
++ break;
++ default:
++ dev_err(sdma->dev, "unknown firmware version\n");
++ goto err_firmware;
++ }
++
++ addr = (void *)header + header->script_addrs_start;
++ ram_code = (void *)header + header->ram_code_start;
++
++ clk_enable(sdma->clk_ipg);
++ clk_enable(sdma->clk_ahb);
++ /* download the RAM image for SDMA */
++ sdma_load_script(sdma, ram_code,
++ header->ram_code_size,
++ addr->ram_code_start_addr);
++ clk_disable(sdma->clk_ipg);
++ clk_disable(sdma->clk_ahb);
++
++ sdma_add_scripts(sdma, addr);
++
++ dev_info(sdma->dev, "loaded firmware %d.%d\n",
++ header->version_major,
++ header->version_minor);
++
++err_firmware:
++ release_firmware(fw);
++}
++
++static int __init sdma_get_firmware(struct sdma_engine *sdma,
++ const char *fw_name)
++{
++ int ret;
++
++ ret = request_firmware_nowait(THIS_MODULE,
++ FW_ACTION_HOTPLUG, fw_name, sdma->dev,
++ GFP_KERNEL, sdma, sdma_load_firmware);
++
++ return ret;
++}
++
++static int __init sdma_init(struct sdma_engine *sdma)
++{
++ int i, ret;
++ dma_addr_t ccb_phys;
++
++ clk_enable(sdma->clk_ipg);
++ clk_enable(sdma->clk_ahb);
++
++ /* Be sure SDMA has not started yet */
++ writel_relaxed(0, sdma->regs + SDMA_H_C0PTR);
++
++ sdma->channel_control = dma_alloc_coherent(NULL,
++ MAX_DMA_CHANNELS * sizeof (struct sdma_channel_control) +
++ sizeof(struct sdma_context_data),
++ &ccb_phys, GFP_KERNEL);
++
++ if (!sdma->channel_control) {
++ ret = -ENOMEM;
++ goto err_dma_alloc;
++ }
++
++ sdma->context = (void *)sdma->channel_control +
++ MAX_DMA_CHANNELS * sizeof (struct sdma_channel_control);
++ sdma->context_phys = ccb_phys +
++ MAX_DMA_CHANNELS * sizeof (struct sdma_channel_control);
++
++ /* Zero-out the CCB structures array just allocated */
++ memset(sdma->channel_control, 0,
++ MAX_DMA_CHANNELS * sizeof (struct sdma_channel_control));
++
++ /* disable all channels */
++ for (i = 0; i < sdma->drvdata->num_events; i++)
++ writel_relaxed(0, sdma->regs + chnenbl_ofs(sdma, i));
++
++ /* All channels have priority 0 */
++ for (i = 0; i < MAX_DMA_CHANNELS; i++)
++ writel_relaxed(0, sdma->regs + SDMA_CHNPRI_0 + i * 4);
++
++ ret = sdma_request_channel(&sdma->channel[0]);
++ if (ret)
++ goto err_dma_alloc;
++
++ sdma_config_ownership(&sdma->channel[0], false, true, false);
++
++ /* Set Command Channel (Channel Zero) */
++ writel_relaxed(0x4050, sdma->regs + SDMA_CHN0ADDR);
++
++ /* Set bits of CONFIG register but with static context switching */
++ /* FIXME: Check whether to set ACR bit depending on clock ratios */
++ writel_relaxed(0, sdma->regs + SDMA_H_CONFIG);
++
++ writel_relaxed(ccb_phys, sdma->regs + SDMA_H_C0PTR);
++
++ /* Set bits of CONFIG register with given context switching mode */
++ writel_relaxed(SDMA_H_CONFIG_CSM, sdma->regs + SDMA_H_CONFIG);
++
++ /* Initializes channel's priorities */
++ sdma_set_channel_priority(&sdma->channel[0], 7);
++
++ clk_disable(sdma->clk_ipg);
++ clk_disable(sdma->clk_ahb);
++
++ return 0;
++
++err_dma_alloc:
++ clk_disable(sdma->clk_ipg);
++ clk_disable(sdma->clk_ahb);
++ dev_err(sdma->dev, "initialisation failed with %d\n", ret);
++ return ret;
++}
++
++static bool sdma_filter_fn(struct dma_chan *chan, void *fn_param)
++{
++ struct imx_dma_data *data = fn_param;
++
++ if (!imx_dma_is_general_purpose(chan))
++ return false;
++
++ chan->private = data;
++
++ return true;
++}
++
++static struct dma_chan *sdma_xlate(struct of_phandle_args *dma_spec,
++ struct of_dma *ofdma)
++{
++ struct sdma_engine *sdma = ofdma->of_dma_data;
++ dma_cap_mask_t mask = sdma->dma_device.cap_mask;
++ struct imx_dma_data data;
++
++ if (dma_spec->args_count != 3)
++ return NULL;
++
++ data.dma_request = dma_spec->args[0];
++ data.peripheral_type = dma_spec->args[1];
++ data.priority = dma_spec->args[2];
++
++ return dma_request_channel(mask, sdma_filter_fn, &data);
++}
++
++static int __init sdma_probe(struct platform_device *pdev)
++{
++ const struct of_device_id *of_id =
++ of_match_device(sdma_dt_ids, &pdev->dev);
++ struct device_node *np = pdev->dev.of_node;
++ const char *fw_name;
++ int ret;
++ int irq;
++ struct resource *iores;
++ struct sdma_platform_data *pdata = dev_get_platdata(&pdev->dev);
++ int i;
++ struct sdma_engine *sdma;
++ s32 *saddr_arr;
++ const struct sdma_driver_data *drvdata = NULL;
++
++ if (of_id)
++ drvdata = of_id->data;
++ else if (pdev->id_entry)
++ drvdata = (void *)pdev->id_entry->driver_data;
++
++ if (!drvdata) {
++ dev_err(&pdev->dev, "unable to find driver data\n");
++ return -EINVAL;
++ }
++
++ ret = dma_coerce_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
++ if (ret)
++ return ret;
++
++ sdma = kzalloc(sizeof(*sdma), GFP_KERNEL);
++ if (!sdma)
++ return -ENOMEM;
++
++ spin_lock_init(&sdma->channel_0_lock);
++
++ sdma->dev = &pdev->dev;
++ sdma->drvdata = drvdata;
++
++ iores = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++ irq = platform_get_irq(pdev, 0);
++ if (!iores || irq < 0) {
++ ret = -EINVAL;
++ goto err_irq;
++ }
++
++ if (!request_mem_region(iores->start, resource_size(iores), pdev->name)) {
++ ret = -EBUSY;
++ goto err_request_region;
++ }
++
++ sdma->clk_ipg = devm_clk_get(&pdev->dev, "ipg");
++ if (IS_ERR(sdma->clk_ipg)) {
++ ret = PTR_ERR(sdma->clk_ipg);
++ goto err_clk;
++ }
++
++ sdma->clk_ahb = devm_clk_get(&pdev->dev, "ahb");
++ if (IS_ERR(sdma->clk_ahb)) {
++ ret = PTR_ERR(sdma->clk_ahb);
++ goto err_clk;
++ }
++
++ clk_prepare(sdma->clk_ipg);
++ clk_prepare(sdma->clk_ahb);
++
++ sdma->regs = ioremap(iores->start, resource_size(iores));
++ if (!sdma->regs) {
++ ret = -ENOMEM;
++ goto err_ioremap;
++ }
++
++ ret = request_irq(irq, sdma_int_handler, 0, "sdma", sdma);
++ if (ret)
++ goto err_request_irq;
++
++ sdma->script_addrs = kzalloc(sizeof(*sdma->script_addrs), GFP_KERNEL);
++ if (!sdma->script_addrs) {
++ ret = -ENOMEM;
++ goto err_alloc;
++ }
++
++ /* initially no scripts available */
++ saddr_arr = (s32 *)sdma->script_addrs;
++ for (i = 0; i < SDMA_SCRIPT_ADDRS_ARRAY_SIZE_V1; i++)
++ saddr_arr[i] = -EINVAL;
++
++ dma_cap_set(DMA_SLAVE, sdma->dma_device.cap_mask);
++ dma_cap_set(DMA_CYCLIC, sdma->dma_device.cap_mask);
++
++ INIT_LIST_HEAD(&sdma->dma_device.channels);
++ /* Initialize channel parameters */
++ for (i = 0; i < MAX_DMA_CHANNELS; i++) {
++ struct sdma_channel *sdmac = &sdma->channel[i];
++
++ sdmac->sdma = sdma;
++ spin_lock_init(&sdmac->lock);
++
++ sdmac->chan.device = &sdma->dma_device;
++ dma_cookie_init(&sdmac->chan);
++ sdmac->channel = i;
++
++ tasklet_init(&sdmac->tasklet, sdma_tasklet,
++ (unsigned long) sdmac);
++ /*
++ * Add the channel to the DMAC list. Do not add channel 0 though
++ * because we need it internally in the SDMA driver. This also means
++ * that channel 0 in dmaengine counting matches sdma channel 1.
++ */
++ if (i)
++ list_add_tail(&sdmac->chan.device_node,
++ &sdma->dma_device.channels);
++ }
++
++ ret = sdma_init(sdma);
++ if (ret)
++ goto err_init;
++
++ if (sdma->drvdata->script_addrs)
++ sdma_add_scripts(sdma, sdma->drvdata->script_addrs);
++ if (pdata && pdata->script_addrs)
++ sdma_add_scripts(sdma, pdata->script_addrs);
++
++ if (pdata) {
++ ret = sdma_get_firmware(sdma, pdata->fw_name);
++ if (ret)
++ dev_warn(&pdev->dev, "failed to get firmware from platform data\n");
++ } else {
++ /*
++ * Because that device tree does not encode ROM script address,
++ * the RAM script in firmware is mandatory for device tree
++ * probe, otherwise it fails.
++ */
++ ret = of_property_read_string(np, "fsl,sdma-ram-script-name",
++ &fw_name);
++ if (ret)
++ dev_warn(&pdev->dev, "failed to get firmware name\n");
++ else {
++ ret = sdma_get_firmware(sdma, fw_name);
++ if (ret)
++ dev_warn(&pdev->dev, "failed to get firmware from device tree\n");
++ }
++ }
++
++ sdma->dma_device.dev = &pdev->dev;
++
++ sdma->dma_device.device_alloc_chan_resources = sdma_alloc_chan_resources;
++ sdma->dma_device.device_free_chan_resources = sdma_free_chan_resources;
++ sdma->dma_device.device_tx_status = sdma_tx_status;
++ sdma->dma_device.device_prep_slave_sg = sdma_prep_slave_sg;
++ sdma->dma_device.device_prep_dma_cyclic = sdma_prep_dma_cyclic;
++ sdma->dma_device.device_control = sdma_control;
++ sdma->dma_device.device_issue_pending = sdma_issue_pending;
++ sdma->dma_device.dev->dma_parms = &sdma->dma_parms;
++ dma_set_max_seg_size(sdma->dma_device.dev, 65535);
++
++ ret = dma_async_device_register(&sdma->dma_device);
++ if (ret) {
++ dev_err(&pdev->dev, "unable to register\n");
++ goto err_init;
++ }
++
++ if (np) {
++ ret = of_dma_controller_register(np, sdma_xlate, sdma);
++ if (ret) {
++ dev_err(&pdev->dev, "failed to register controller\n");
++ goto err_register;
++ }
++ }
++
++ dev_info(sdma->dev, "initialized\n");
++
++ return 0;
++
++err_register:
++ dma_async_device_unregister(&sdma->dma_device);
++err_init:
++ kfree(sdma->script_addrs);
++err_alloc:
++ free_irq(irq, sdma);
++err_request_irq:
++ iounmap(sdma->regs);
++err_ioremap:
++err_clk:
++ release_mem_region(iores->start, resource_size(iores));
++err_request_region:
++err_irq:
++ kfree(sdma);
++ return ret;
++}
++
++static int sdma_remove(struct platform_device *pdev)
++{
++ return -EBUSY;
++}
++
++static struct platform_driver sdma_driver = {
++ .driver = {
++ .name = "imx-sdma",
++ .of_match_table = sdma_dt_ids,
++ },
++ .id_table = sdma_devtypes,
++ .remove = sdma_remove,
++};
++
++static int __init sdma_module_init(void)
++{
++ return platform_driver_probe(&sdma_driver, sdma_probe);
++}
++module_init(sdma_module_init);
++
++MODULE_AUTHOR("Sascha Hauer, Pengutronix <s.hauer@pengutronix.de>");
++MODULE_DESCRIPTION("i.MX SDMA driver");
++MODULE_LICENSE("GPL");
+diff -Nur linux-3.16.6.orig/drivers/gpu/ipu-v3/ipu-dc.c linux-3.16.6/drivers/gpu/ipu-v3/ipu-dc.c
+--- linux-3.16.6.orig/drivers/gpu/ipu-v3/ipu-dc.c 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/drivers/gpu/ipu-v3/ipu-dc.c 2014-10-23 12:35:30.966220009 -0500
+@@ -93,6 +93,7 @@
+ IPU_DC_MAP_BGR666,
+ IPU_DC_MAP_LVDS666,
+ IPU_DC_MAP_BGR24,
++ IPU_DC_MAP_RGB666,
+ };
+
+ struct ipu_dc {
+@@ -161,6 +162,8 @@
+ return IPU_DC_MAP_LVDS666;
+ case V4L2_PIX_FMT_BGR24:
+ return IPU_DC_MAP_BGR24;
++ case V4L2_PIX_FMT_RGB666:
++ return IPU_DC_MAP_RGB666;
+ default:
+ return -EINVAL;
+ }
+@@ -452,6 +455,12 @@
+ ipu_dc_map_config(priv, IPU_DC_MAP_BGR24, 1, 15, 0xff); /* green */
+ ipu_dc_map_config(priv, IPU_DC_MAP_BGR24, 0, 23, 0xff); /* blue */
+
++ /* rgb666 */
++ ipu_dc_map_clear(priv, IPU_DC_MAP_RGB666);
++ ipu_dc_map_config(priv, IPU_DC_MAP_RGB666, 0, 5, 0xfc); /* blue */
++ ipu_dc_map_config(priv, IPU_DC_MAP_RGB666, 1, 11, 0xfc); /* green */
++ ipu_dc_map_config(priv, IPU_DC_MAP_RGB666, 2, 17, 0xfc); /* red */
++
+ return 0;
+ }
+
+diff -Nur linux-3.16.6.orig/drivers/gpu/ipu-v3/ipu-di.c linux-3.16.6/drivers/gpu/ipu-v3/ipu-di.c
+--- linux-3.16.6.orig/drivers/gpu/ipu-v3/ipu-di.c 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/drivers/gpu/ipu-v3/ipu-di.c 2014-10-23 12:35:38.078220007 -0500
+@@ -595,7 +595,7 @@
+ }
+ }
+
+- if (sig->clk_pol)
++ if (sig->clk_pol == CLK_POL_POSEDGE)
+ di_gen |= DI_GEN_POLARITY_DISP_CLK;
+
+ ipu_di_write(di, di_gen, DI_GENERAL);
+@@ -606,7 +606,7 @@
+ reg = ipu_di_read(di, DI_POL);
+ reg &= ~(DI_POL_DRDY_DATA_POLARITY | DI_POL_DRDY_POLARITY_15);
+
+- if (sig->enable_pol)
++ if (sig->enable_pol == ENABLE_POL_HIGH)
+ reg |= DI_POL_DRDY_POLARITY_15;
+ if (sig->data_pol)
+ reg |= DI_POL_DRDY_DATA_POLARITY;
+diff -Nur linux-3.16.6.orig/drivers/Kconfig linux-3.16.6/drivers/Kconfig
+--- linux-3.16.6.orig/drivers/Kconfig 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/drivers/Kconfig 2014-10-23 12:37:18.314220004 -0500
+@@ -176,4 +176,6 @@
+
+ source "drivers/mcb/Kconfig"
+
++source "drivers/cec/Kconfig"
++
+ endmenu
+diff -Nur linux-3.16.6.orig/drivers/Makefile linux-3.16.6/drivers/Makefile
+--- linux-3.16.6.orig/drivers/Makefile 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/drivers/Makefile 2014-10-23 12:37:18.350220009 -0500
+@@ -158,3 +158,4 @@
+ obj-$(CONFIG_FMC) += fmc/
+ obj-$(CONFIG_POWERCAP) += powercap/
+ obj-$(CONFIG_MCB) += mcb/
++obj-$(CONFIG_CEC) += cec/
+diff -Nur linux-3.16.6.orig/drivers/mmc/core/core.c linux-3.16.6/drivers/mmc/core/core.c
+--- linux-3.16.6.orig/drivers/mmc/core/core.c 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/drivers/mmc/core/core.c 2014-10-23 12:34:18.710219997 -0500
+@@ -13,11 +13,13 @@
+ #include <linux/module.h>
+ #include <linux/init.h>
+ #include <linux/interrupt.h>
++#include <linux/clk.h>
+ #include <linux/completion.h>
+ #include <linux/device.h>
+ #include <linux/delay.h>
+ #include <linux/pagemap.h>
+ #include <linux/err.h>
++#include <linux/gpio/consumer.h>
+ #include <linux/leds.h>
+ #include <linux/scatterlist.h>
+ #include <linux/log2.h>
+@@ -1515,6 +1517,43 @@
+ mmc_host_clk_release(host);
+ }
+
++static void mmc_card_power_up(struct mmc_host *host)
++{
++ int i;
++ struct gpio_desc **gds = host->card_reset_gpios;
++
++ for (i = 0; i < ARRAY_SIZE(host->card_reset_gpios); i++) {
++ if (gds[i]) {
++ dev_dbg(host->parent, "Asserting reset line %d", i);
++ gpiod_set_value(gds[i], 1);
++ }
++ }
++
++ if (host->card_regulator) {
++ dev_dbg(host->parent, "Enabling external regulator");
++ if (regulator_enable(host->card_regulator))
++ dev_err(host->parent, "Failed to enable external regulator");
++ }
++
++ if (host->card_clk) {
++ dev_dbg(host->parent, "Enabling external clock");
++ clk_prepare_enable(host->card_clk);
++ }
++
++ /* 2ms delay to let clocks and power settle */
++ mmc_delay(20);
++
++ for (i = 0; i < ARRAY_SIZE(host->card_reset_gpios); i++) {
++ if (gds[i]) {
++ dev_dbg(host->parent, "Deasserting reset line %d", i);
++ gpiod_set_value(gds[i], 0);
++ }
++ }
++
++ /* 2ms delay to after reset release */
++ mmc_delay(20);
++}
++
+ /*
+ * Apply power to the MMC stack. This is a two-stage process.
+ * First, we enable power to the card without the clock running.
+@@ -1531,6 +1570,9 @@
+ if (host->ios.power_mode == MMC_POWER_ON)
+ return;
+
++ /* Power up the card/module first, if needed */
++ mmc_card_power_up(host);
++
+ mmc_host_clk_hold(host);
+
+ host->ios.vdd = fls(ocr) - 1;
+diff -Nur linux-3.16.6.orig/drivers/mmc/core/host.c linux-3.16.6/drivers/mmc/core/host.c
+--- linux-3.16.6.orig/drivers/mmc/core/host.c 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/drivers/mmc/core/host.c 2014-10-23 12:34:34.134220000 -0500
+@@ -12,14 +12,18 @@
+ * MMC host class device management
+ */
+
++#include <linux/kernel.h>
++#include <linux/clk.h>
+ #include <linux/device.h>
+ #include <linux/err.h>
++#include <linux/gpio/consumer.h>
+ #include <linux/idr.h>
+ #include <linux/of.h>
+ #include <linux/of_gpio.h>
+ #include <linux/pagemap.h>
+ #include <linux/export.h>
+ #include <linux/leds.h>
++#include <linux/regulator/consumer.h>
+ #include <linux/slab.h>
+ #include <linux/suspend.h>
+
+@@ -461,6 +465,66 @@
+
+ EXPORT_SYMBOL(mmc_of_parse);
+
++static int mmc_of_parse_child(struct mmc_host *host)
++{
++ struct device_node *np;
++ struct clk *clk;
++ int i;
++
++ if (!host->parent || !host->parent->of_node)
++ return 0;
++
++ np = host->parent->of_node;
++
++ host->card_regulator = regulator_get(host->parent, "card-external-vcc");
++ if (IS_ERR(host->card_regulator)) {
++ if (PTR_ERR(host->card_regulator) == -EPROBE_DEFER)
++ return PTR_ERR(host->card_regulator);
++ host->card_regulator = NULL;
++ }
++
++ /* Parse card power/reset/clock control */
++ if (of_find_property(np, "card-reset-gpios", NULL)) {
++ struct gpio_desc *gpd;
++ int level = 0;
++
++ /*
++ * If the regulator is enabled, then we can hold the
++ * card in reset with an active high resets. Otherwise,
++ * hold the resets low.
++ */
++ if (host->card_regulator && regulator_is_enabled(host->card_regulator))
++ level = 1;
++
++ for (i = 0; i < ARRAY_SIZE(host->card_reset_gpios); i++) {
++ gpd = devm_gpiod_get_index(host->parent, "card-reset", i);
++ if (IS_ERR(gpd)) {
++ if (PTR_ERR(gpd) == -EPROBE_DEFER)
++ return PTR_ERR(gpd);
++ break;
++ }
++ gpiod_direction_output(gpd, gpiod_is_active_low(gpd) | level);
++ host->card_reset_gpios[i] = gpd;
++ }
++
++ gpd = devm_gpiod_get_index(host->parent, "card-reset", ARRAY_SIZE(host->card_reset_gpios));
++ if (!IS_ERR(gpd)) {
++ dev_warn(host->parent, "More reset gpios than we can handle");
++ gpiod_put(gpd);
++ }
++ }
++
++ clk = of_clk_get_by_name(np, "card_ext_clock");
++ if (IS_ERR(clk)) {
++ if (PTR_ERR(clk) == -EPROBE_DEFER)
++ return PTR_ERR(clk);
++ clk = NULL;
++ }
++ host->card_clk = clk;
++
++ return 0;
++}
++
+ /**
+ * mmc_alloc_host - initialise the per-host structure.
+ * @extra: sizeof private data structure
+@@ -540,6 +604,10 @@
+ {
+ int err;
+
++ err = mmc_of_parse_child(host);
++ if (err)
++ return err;
++
+ WARN_ON((host->caps & MMC_CAP_SDIO_IRQ) &&
+ !host->ops->enable_sdio_irq);
+
+diff -Nur linux-3.16.6.orig/drivers/mmc/host/dw_mmc.c linux-3.16.6/drivers/mmc/host/dw_mmc.c
+--- linux-3.16.6.orig/drivers/mmc/host/dw_mmc.c 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/drivers/mmc/host/dw_mmc.c 2014-10-23 12:34:26.238219996 -0500
+@@ -2049,6 +2049,8 @@
+ if (!mmc)
+ return -ENOMEM;
+
++ mmc_of_parse(mmc);
++
+ slot = mmc_priv(mmc);
+ slot->id = id;
+ slot->mmc = mmc;
+diff -Nur linux-3.16.6.orig/drivers/mmc/host/Kconfig linux-3.16.6/drivers/mmc/host/Kconfig
+--- linux-3.16.6.orig/drivers/mmc/host/Kconfig 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/drivers/mmc/host/Kconfig 2014-10-23 12:34:04.318220041 -0500
+@@ -25,8 +25,7 @@
+ If unsure, say N.
+
+ config MMC_SDHCI
+- tristate "Secure Digital Host Controller Interface support"
+- depends on HAS_DMA
++ tristate
+ help
+ This selects the generic Secure Digital Host Controller Interface.
+ It is used by manufacturers such as Texas Instruments(R), Ricoh(R)
+@@ -59,7 +58,8 @@
+
+ config MMC_SDHCI_PCI
+ tristate "SDHCI support on PCI bus"
+- depends on MMC_SDHCI && PCI
++ depends on PCI && HAS_DMA
++ select MMC_SDHCI
+ help
+ This selects the PCI Secure Digital Host Controller Interface.
+ Most controllers found today are PCI devices.
+@@ -83,7 +83,8 @@
+
+ config MMC_SDHCI_ACPI
+ tristate "SDHCI support for ACPI enumerated SDHCI controllers"
+- depends on MMC_SDHCI && ACPI
++ depends on ACPI && HAS_DMA
++ select MMC_SDHCI
+ help
+ This selects support for ACPI enumerated SDHCI controllers,
+ identified by ACPI Compatibility ID PNP0D40 or specific
+@@ -94,8 +95,8 @@
+ If unsure, say N.
+
+ config MMC_SDHCI_PLTFM
+- tristate "SDHCI platform and OF driver helper"
+- depends on MMC_SDHCI
++ tristate
++ select MMC_SDHCI
+ help
+ This selects the common helper functions support for Secure Digital
+ Host Controller Interface based platform and OF drivers.
+@@ -106,8 +107,8 @@
+
+ config MMC_SDHCI_OF_ARASAN
+ tristate "SDHCI OF support for the Arasan SDHCI controllers"
+- depends on MMC_SDHCI_PLTFM
+- depends on OF
++ depends on OF && HAS_DMA
++ select MMC_SDHCI_PLTFM
+ help
+ This selects the Arasan Secure Digital Host Controller Interface
+ (SDHCI). This hardware is found e.g. in Xilinx' Zynq SoC.
+@@ -118,9 +119,9 @@
+
+ config MMC_SDHCI_OF_ESDHC
+ tristate "SDHCI OF support for the Freescale eSDHC controller"
+- depends on MMC_SDHCI_PLTFM
+- depends on PPC_OF
++ depends on PPC_OF && HAS_DMA
+ select MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER
++ select MMC_SDHCI_PLTFM
+ help
+ This selects the Freescale eSDHC controller support.
+
+@@ -130,9 +131,9 @@
+
+ config MMC_SDHCI_OF_HLWD
+ tristate "SDHCI OF support for the Nintendo Wii SDHCI controllers"
+- depends on MMC_SDHCI_PLTFM
+- depends on PPC_OF
++ depends on PPC_OF && HAS_DMA
+ select MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER
++ select MMC_SDHCI_PLTFM
+ help
+ This selects the Secure Digital Host Controller Interface (SDHCI)
+ found in the "Hollywood" chipset of the Nintendo Wii video game
+@@ -144,8 +145,8 @@
+
+ config MMC_SDHCI_CNS3XXX
+ tristate "SDHCI support on the Cavium Networks CNS3xxx SoC"
+- depends on ARCH_CNS3XXX
+- depends on MMC_SDHCI_PLTFM
++ depends on ARCH_CNS3XXX && HAS_DMA
++ select MMC_SDHCI_PLTFM
+ help
+ This selects the SDHCI support for CNS3xxx System-on-Chip devices.
+
+@@ -155,9 +156,9 @@
+
+ config MMC_SDHCI_ESDHC_IMX
+ tristate "SDHCI support for the Freescale eSDHC/uSDHC i.MX controller"
+- depends on ARCH_MXC
+- depends on MMC_SDHCI_PLTFM
++ depends on ARCH_MXC && HAS_DMA
+ select MMC_SDHCI_IO_ACCESSORS
++ select MMC_SDHCI_PLTFM
+ help
+ This selects the Freescale eSDHC/uSDHC controller support
+ found on i.MX25, i.MX35 i.MX5x and i.MX6x.
+@@ -168,9 +169,9 @@
+
+ config MMC_SDHCI_DOVE
+ tristate "SDHCI support on Marvell's Dove SoC"
+- depends on ARCH_DOVE || MACH_DOVE
+- depends on MMC_SDHCI_PLTFM
++ depends on (ARCH_DOVE || MACH_DOVE) && HAS_DMA
+ select MMC_SDHCI_IO_ACCESSORS
++ select MMC_SDHCI_PLTFM
+ help
+ This selects the Secure Digital Host Controller Interface in
+ Marvell's Dove SoC.
+@@ -181,9 +182,9 @@
+
+ config MMC_SDHCI_TEGRA
+ tristate "SDHCI platform support for the Tegra SD/MMC Controller"
+- depends on ARCH_TEGRA
+- depends on MMC_SDHCI_PLTFM
++ depends on ARCH_TEGRA && HAS_DMA
+ select MMC_SDHCI_IO_ACCESSORS
++ select MMC_SDHCI_PLTFM
+ help
+ This selects the Tegra SD/MMC controller. If you have a Tegra
+ platform with SD or MMC devices, say Y or M here.
+@@ -192,7 +193,8 @@
+
+ config MMC_SDHCI_S3C
+ tristate "SDHCI support on Samsung S3C SoC"
+- depends on MMC_SDHCI && PLAT_SAMSUNG
++ depends on PLAT_SAMSUNG && HAS_DMA
++ select MMC_SDHCI
+ help
+ This selects the Secure Digital Host Controller Interface (SDHCI)
+ often referrered to as the HSMMC block in some of the Samsung S3C
+@@ -204,8 +206,8 @@
+
+ config MMC_SDHCI_SIRF
+ tristate "SDHCI support on CSR SiRFprimaII and SiRFmarco SoCs"
+- depends on ARCH_SIRF
+- depends on MMC_SDHCI_PLTFM
++ depends on ARCH_SIRF && HAS_DMA
++ select MMC_SDHCI_PLTFM
+ help
+ This selects the SDHCI support for SiRF System-on-Chip devices.
+
+@@ -215,8 +217,8 @@
+
+ config MMC_SDHCI_PXAV3
+ tristate "Marvell MMP2 SD Host Controller support (PXAV3)"
+- depends on CLKDEV_LOOKUP
+- depends on MMC_SDHCI_PLTFM
++ depends on CLKDEV_LOOKUP && HAS_DMA
++ select MMC_SDHCI_PLTFM
+ default CPU_MMP2
+ help
+ This selects the Marvell(R) PXAV3 SD Host Controller.
+@@ -227,8 +229,8 @@
+
+ config MMC_SDHCI_PXAV2
+ tristate "Marvell PXA9XX SD Host Controller support (PXAV2)"
+- depends on CLKDEV_LOOKUP
+- depends on MMC_SDHCI_PLTFM
++ depends on CLKDEV_LOOKUP && HAS_DMA
++ select MMC_SDHCI_PLTFM
+ default CPU_PXA910
+ help
+ This selects the Marvell(R) PXAV2 SD Host Controller.
+@@ -239,7 +241,8 @@
+
+ config MMC_SDHCI_SPEAR
+ tristate "SDHCI support on ST SPEAr platform"
+- depends on MMC_SDHCI && PLAT_SPEAR
++ depends on PLAT_SPEAR && HAS_DMA
++ select MMC_SDHCI
+ help
+ This selects the Secure Digital Host Controller Interface (SDHCI)
+ often referrered to as the HSMMC block in some of the ST SPEAR range
+@@ -261,8 +264,8 @@
+
+ config MMC_SDHCI_BCM_KONA
+ tristate "SDHCI support on Broadcom KONA platform"
+- depends on ARCH_BCM_MOBILE
+- depends on MMC_SDHCI_PLTFM
++ depends on ARCH_BCM_MOBILE && HAS_DMA
++ select MMC_SDHCI_PLTFM
+ help
+ This selects the Broadcom Kona Secure Digital Host Controller
+ Interface(SDHCI) support.
+@@ -272,9 +275,9 @@
+
+ config MMC_SDHCI_BCM2835
+ tristate "SDHCI platform support for the BCM2835 SD/MMC Controller"
+- depends on ARCH_BCM2835
+- depends on MMC_SDHCI_PLTFM
++ depends on ARCH_BCM2835 && HAS_DMA
+ select MMC_SDHCI_IO_ACCESSORS
++ select MMC_SDHCI_PLTFM
+ help
+ This selects the BCM2835 SD/MMC controller. If you have a BCM2835
+ platform with SD or MMC devices, say Y or M here.
+diff -Nur linux-3.16.6.orig/drivers/mmc/host/sdhci.c linux-3.16.6/drivers/mmc/host/sdhci.c
+--- linux-3.16.6.orig/drivers/mmc/host/sdhci.c 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/drivers/mmc/host/sdhci.c 2014-10-23 12:34:10.650220104 -0500
+@@ -1530,7 +1530,6 @@
+ host->ops->set_clock(host, host->clock);
+ }
+
+-
+ /* Reset SD Clock Enable */
+ clk = sdhci_readw(host, SDHCI_CLOCK_CONTROL);
+ clk &= ~SDHCI_CLOCK_CARD_EN;
+@@ -1763,9 +1762,6 @@
+ ctrl |= SDHCI_CTRL_VDD_180;
+ sdhci_writew(host, ctrl, SDHCI_HOST_CONTROL2);
+
+- /* Wait for 5ms */
+- usleep_range(5000, 5500);
+-
+ /* 1.8V regulator output should be stable within 5 ms */
+ ctrl = sdhci_readw(host, SDHCI_HOST_CONTROL2);
+ if (ctrl & SDHCI_CTRL_VDD_180)
+diff -Nur linux-3.16.6.orig/drivers/regulator/anatop-regulator.c linux-3.16.6/drivers/regulator/anatop-regulator.c
+--- linux-3.16.6.orig/drivers/regulator/anatop-regulator.c 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/drivers/regulator/anatop-regulator.c 2014-10-23 12:36:22.798219997 -0500
+@@ -267,6 +267,7 @@
+ config.driver_data = sreg;
+ config.of_node = pdev->dev.of_node;
+ config.regmap = sreg->anatop;
++ config.ena_gpio = -EINVAL;
+
+ /* Only core regulators have the ramp up delay configuration. */
+ if (sreg->control_reg && sreg->delay_bit_width) {
+diff -Nur linux-3.16.6.orig/drivers/regulator/core.c linux-3.16.6/drivers/regulator/core.c
+--- linux-3.16.6.orig/drivers/regulator/core.c 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/drivers/regulator/core.c 2014-10-23 12:36:22.802220004 -0500
+@@ -24,6 +24,7 @@
+ #include <linux/suspend.h>
+ #include <linux/delay.h>
+ #include <linux/gpio.h>
++#include <linux/gpio/consumer.h>
+ #include <linux/of.h>
+ #include <linux/regmap.h>
+ #include <linux/regulator/of_regulator.h>
+@@ -77,7 +78,7 @@
+ */
+ struct regulator_enable_gpio {
+ struct list_head list;
+- int gpio;
++ struct gpio_desc *gpiod;
+ u32 enable_count; /* a number of enabled shared GPIO */
+ u32 request_count; /* a number of requested shared GPIO */
+ unsigned int ena_gpio_invert:1;
+@@ -1660,10 +1661,13 @@
+ const struct regulator_config *config)
+ {
+ struct regulator_enable_gpio *pin;
++ struct gpio_desc *gpiod;
+ int ret;
+
++ gpiod = gpio_to_desc(config->ena_gpio);
++
+ list_for_each_entry(pin, &regulator_ena_gpio_list, list) {
+- if (pin->gpio == config->ena_gpio) {
++ if (pin->gpiod == gpiod) {
+ rdev_dbg(rdev, "GPIO %d is already used\n",
+ config->ena_gpio);
+ goto update_ena_gpio_to_rdev;
+@@ -1682,7 +1686,7 @@
+ return -ENOMEM;
+ }
+
+- pin->gpio = config->ena_gpio;
++ pin->gpiod = gpiod;
+ pin->ena_gpio_invert = config->ena_gpio_invert;
+ list_add(&pin->list, &regulator_ena_gpio_list);
+
+@@ -1701,10 +1705,10 @@
+
+ /* Free the GPIO only in case of no use */
+ list_for_each_entry_safe(pin, n, &regulator_ena_gpio_list, list) {
+- if (pin->gpio == rdev->ena_pin->gpio) {
++ if (pin->gpiod == rdev->ena_pin->gpiod) {
+ if (pin->request_count <= 1) {
+ pin->request_count = 0;
+- gpio_free(pin->gpio);
++ gpiod_put(pin->gpiod);
+ list_del(&pin->list);
+ kfree(pin);
+ } else {
+@@ -1732,8 +1736,8 @@
+ if (enable) {
+ /* Enable GPIO at initial use */
+ if (pin->enable_count == 0)
+- gpio_set_value_cansleep(pin->gpio,
+- !pin->ena_gpio_invert);
++ gpiod_set_value_cansleep(pin->gpiod,
++ !pin->ena_gpio_invert);
+
+ pin->enable_count++;
+ } else {
+@@ -1744,8 +1748,8 @@
+
+ /* Disable GPIO if not used */
+ if (pin->enable_count <= 1) {
+- gpio_set_value_cansleep(pin->gpio,
+- pin->ena_gpio_invert);
++ gpiod_set_value_cansleep(pin->gpiod,
++ pin->ena_gpio_invert);
+ pin->enable_count = 0;
+ }
+ }
+@@ -3470,7 +3474,7 @@
+
+ dev_set_drvdata(&rdev->dev, rdev);
+
+- if (config->ena_gpio && gpio_is_valid(config->ena_gpio)) {
++ if (gpio_is_valid(config->ena_gpio)) {
+ ret = regulator_ena_gpio_request(rdev, config);
+ if (ret != 0) {
+ rdev_err(rdev, "Failed to request enable GPIO%d: %d\n",
+diff -Nur linux-3.16.6.orig/drivers/regulator/dummy.c linux-3.16.6/drivers/regulator/dummy.c
+--- linux-3.16.6.orig/drivers/regulator/dummy.c 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/drivers/regulator/dummy.c 2014-10-23 12:36:22.810220006 -0500
+@@ -48,6 +48,7 @@
+
+ config.dev = &pdev->dev;
+ config.init_data = &dummy_initdata;
++ config.ena_gpio = -EINVAL;
+
+ dummy_regulator_rdev = regulator_register(&dummy_desc, &config);
+ if (IS_ERR(dummy_regulator_rdev)) {
+diff -Nur linux-3.16.6.orig/drivers/regulator/fixed.c linux-3.16.6/drivers/regulator/fixed.c
+--- linux-3.16.6.orig/drivers/regulator/fixed.c 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/drivers/regulator/fixed.c 2014-10-23 12:36:22.810220006 -0500
+@@ -156,9 +156,7 @@
+ drvdata->desc.n_voltages = 1;
+
+ drvdata->desc.fixed_uV = config->microvolts;
+-
+- if (config->gpio >= 0)
+- cfg.ena_gpio = config->gpio;
++ cfg.ena_gpio = config->gpio;
+ cfg.ena_gpio_invert = !config->enable_high;
+ if (config->enabled_at_boot) {
+ if (config->enable_high)
+diff -Nur linux-3.16.6.orig/drivers/staging/imx-drm/drm-ddc-connector.c linux-3.16.6/drivers/staging/imx-drm/drm-ddc-connector.c
+--- linux-3.16.6.orig/drivers/staging/imx-drm/drm-ddc-connector.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.16.6/drivers/staging/imx-drm/drm-ddc-connector.c 2014-10-23 12:37:30.178219970 -0500
+@@ -0,0 +1,88 @@
++#include <linux/i2c.h>
++#include <linux/module.h>
++#include <drm/drmP.h>
++#include <drm/drm_crtc_helper.h>
++#include <drm/drm_edid.h>
++
++#include "drm-ddc-connector.h"
++
++enum drm_connector_status
++drm_ddc_connector_always_connected(struct drm_connector *connector, bool force)
++{
++ return connector_status_connected;
++}
++EXPORT_SYMBOL_GPL(drm_ddc_connector_always_connected);
++
++int drm_ddc_connector_get_modes(struct drm_connector *connector)
++{
++ struct drm_ddc_connector *ddc_conn = to_ddc_conn(connector);
++ struct edid *edid;
++ int ret = 0;
++
++ if (!ddc_conn->ddc)
++ return 0;
++
++ edid = drm_get_edid(connector, ddc_conn->ddc);
++ if (edid) {
++ drm_mode_connector_update_edid_property(connector, edid);
++ ret = drm_add_edid_modes(connector, edid);
++ /* Store the ELD */
++ drm_edid_to_eld(connector, edid);
++ kfree(edid);
++ }
++
++ return ret;
++}
++EXPORT_SYMBOL_GPL(drm_ddc_connector_get_modes);
++
++void drm_ddc_connector_destroy(struct drm_connector *connector)
++{
++ struct drm_ddc_connector *ddc_conn = to_ddc_conn(connector);
++
++ pr_info("%s: %p\n", __func__, ddc_conn);
++
++ drm_sysfs_connector_remove(connector);
++ drm_connector_cleanup(connector);
++ if (ddc_conn->ddc)
++ i2c_put_adapter(ddc_conn->ddc);
++ kfree(ddc_conn);
++}
++EXPORT_SYMBOL_GPL(drm_ddc_connector_destroy);
++
++void drm_ddc_connector_add(struct drm_device *drm,
++ struct drm_ddc_connector *ddc_conn,
++ struct drm_connector_funcs *funcs, int connector_type)
++{
++ drm_connector_init(drm, &ddc_conn->connector, funcs, connector_type);
++}
++EXPORT_SYMBOL_GPL(drm_ddc_connector_add);
++
++struct drm_ddc_connector *drm_ddc_connector_create(struct drm_device *drm,
++ struct device_node *np, void *private)
++{
++ struct drm_ddc_connector *ddc_conn;
++ struct device_node *ddc_node;
++
++ ddc_conn = kzalloc(sizeof(*ddc_conn), GFP_KERNEL);
++ if (!ddc_conn)
++ return ERR_PTR(-ENOMEM);
++
++ ddc_conn->private = private;
++
++ ddc_node = of_parse_phandle(np, "ddc-i2c-bus", 0);
++ if (ddc_node) {
++ ddc_conn->ddc = of_find_i2c_adapter_by_node(ddc_node);
++ of_node_put(ddc_node);
++ if (!ddc_conn->ddc) {
++ kfree(ddc_conn);
++ return ERR_PTR(-EPROBE_DEFER);
++ }
++ }
++
++ return ddc_conn;
++}
++EXPORT_SYMBOL_GPL(drm_ddc_connector_create);
++
++MODULE_AUTHOR("Russell King <rmk+kernel@arm.linux.org.uk>");
++MODULE_DESCRIPTION("Generic DRM DDC connector module");
++MODULE_LICENSE("GPL v2");
+diff -Nur linux-3.16.6.orig/drivers/staging/imx-drm/drm-ddc-connector.h linux-3.16.6/drivers/staging/imx-drm/drm-ddc-connector.h
+--- linux-3.16.6.orig/drivers/staging/imx-drm/drm-ddc-connector.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.16.6/drivers/staging/imx-drm/drm-ddc-connector.h 2014-10-23 12:37:30.178219970 -0500
+@@ -0,0 +1,31 @@
++#ifndef DRM_DDC_CONNECTOR_H
++#define DRM_DDC_CONNECTOR_H
++
++#include <drm/drm_crtc.h>
++
++struct drm_ddc_connector {
++ struct i2c_adapter *ddc;
++ struct drm_connector connector;
++ void *private;
++};
++
++#define to_ddc_conn(c) container_of(c, struct drm_ddc_connector, connector)
++
++enum drm_connector_status drm_ddc_connector_always_connected(
++ struct drm_connector *connector, bool force);
++int drm_ddc_connector_get_modes(struct drm_connector *connector);
++void drm_ddc_connector_add(struct drm_device *drm,
++ struct drm_ddc_connector *ddc_conn,
++ struct drm_connector_funcs *funcs, int connector_type);
++void drm_ddc_connector_destroy(struct drm_connector *connector);
++struct drm_ddc_connector *drm_ddc_connector_create(struct drm_device *drm,
++ struct device_node *np, void *private);
++
++static inline void *drm_ddc_private(struct drm_connector *connector)
++{
++ struct drm_ddc_connector *ddc_conn = to_ddc_conn(connector);
++
++ return ddc_conn->private;
++}
++
++#endif
+diff -Nur linux-3.16.6.orig/drivers/staging/imx-drm/dw-hdmi-audio.c linux-3.16.6/drivers/staging/imx-drm/dw-hdmi-audio.c
+--- linux-3.16.6.orig/drivers/staging/imx-drm/dw-hdmi-audio.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.16.6/drivers/staging/imx-drm/dw-hdmi-audio.c 2014-10-23 12:37:11.394219951 -0500
+@@ -0,0 +1,654 @@
++/*
++ * DesignWare HDMI audio driver
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * Written and tested against the (alleged) DW HDMI Tx found in iMX6S.
++ */
++#include <linux/delay.h>
++#include <linux/io.h>
++#include <linux/interrupt.h>
++#include <linux/module.h>
++#include <linux/platform_device.h>
++
++#include <sound/asoundef.h>
++#include <sound/core.h>
++#include <sound/initval.h>
++#include <sound/pcm.h>
++
++#include "dw-hdmi-audio.h"
++
++#define DRIVER_NAME "dw-hdmi-audio"
++
++/* Provide some bits rather than bit offsets */
++enum {
++ HDMI_AHB_DMA_CONF0_SW_FIFO_RST = BIT(7),
++ HDMI_AHB_DMA_CONF0_EN_HLOCK = BIT(3),
++ HDMI_AHB_DMA_START_START = BIT(0),
++ HDMI_AHB_DMA_STOP_STOP = BIT(0),
++ HDMI_IH_MUTE_AHBDMAAUD_STAT0_ERROR = BIT(5),
++ HDMI_IH_MUTE_AHBDMAAUD_STAT0_LOST = BIT(4),
++ HDMI_IH_MUTE_AHBDMAAUD_STAT0_RETRY = BIT(3),
++ HDMI_IH_MUTE_AHBDMAAUD_STAT0_DONE = BIT(2),
++ HDMI_IH_MUTE_AHBDMAAUD_STAT0_BUFFFULL = BIT(1),
++ HDMI_IH_MUTE_AHBDMAAUD_STAT0_BUFFEMPTY = BIT(0),
++ HDMI_IH_MUTE_AHBDMAAUD_STAT0_ALL =
++ HDMI_IH_MUTE_AHBDMAAUD_STAT0_ERROR |
++ HDMI_IH_MUTE_AHBDMAAUD_STAT0_LOST |
++ HDMI_IH_MUTE_AHBDMAAUD_STAT0_RETRY |
++ HDMI_IH_MUTE_AHBDMAAUD_STAT0_DONE |
++ HDMI_IH_MUTE_AHBDMAAUD_STAT0_BUFFFULL |
++ HDMI_IH_MUTE_AHBDMAAUD_STAT0_BUFFEMPTY,
++ HDMI_IH_AHBDMAAUD_STAT0_ERROR = BIT(5),
++ HDMI_IH_AHBDMAAUD_STAT0_LOST = BIT(4),
++ HDMI_IH_AHBDMAAUD_STAT0_RETRY = BIT(3),
++ HDMI_IH_AHBDMAAUD_STAT0_DONE = BIT(2),
++ HDMI_IH_AHBDMAAUD_STAT0_BUFFFULL = BIT(1),
++ HDMI_IH_AHBDMAAUD_STAT0_BUFFEMPTY = BIT(0),
++ HDMI_IH_AHBDMAAUD_STAT0_ALL =
++ HDMI_IH_AHBDMAAUD_STAT0_ERROR |
++ HDMI_IH_AHBDMAAUD_STAT0_LOST |
++ HDMI_IH_AHBDMAAUD_STAT0_RETRY |
++ HDMI_IH_AHBDMAAUD_STAT0_DONE |
++ HDMI_IH_AHBDMAAUD_STAT0_BUFFFULL |
++ HDMI_IH_AHBDMAAUD_STAT0_BUFFEMPTY,
++ HDMI_AHB_DMA_CONF0_INCR16 = 2 << 1,
++ HDMI_AHB_DMA_CONF0_INCR8 = 1 << 1,
++ HDMI_AHB_DMA_CONF0_INCR4 = 0,
++ HDMI_AHB_DMA_CONF0_BURST_MODE = BIT(0),
++ HDMI_AHB_DMA_MASK_DONE = BIT(7),
++ HDMI_REVISION_ID = 0x0001,
++ HDMI_IH_AHBDMAAUD_STAT0 = 0x0109,
++ HDMI_IH_MUTE_AHBDMAAUD_STAT0 = 0x0189,
++ HDMI_AUD_N1 = 0x3200,
++ HDMI_AUD_CTS1 = 0x3203,
++ HDMI_AHB_DMA_CONF0 = 0x3600,
++ HDMI_AHB_DMA_START = 0x3601,
++ HDMI_AHB_DMA_STOP = 0x3602,
++ HDMI_AHB_DMA_THRSLD = 0x3603,
++ HDMI_AHB_DMA_STRADDR0 = 0x3604,
++ HDMI_AHB_DMA_STPADDR0 = 0x3608,
++ HDMI_AHB_DMA_STAT = 0x3612,
++ HDMI_AHB_DMA_STAT_FULL = BIT(1),
++ HDMI_AHB_DMA_MASK = 0x3614,
++ HDMI_AHB_DMA_POL = 0x3615,
++ HDMI_AHB_DMA_CONF1 = 0x3616,
++ HDMI_AHB_DMA_BUFFPOL = 0x361a,
++};
++
++struct snd_dw_hdmi {
++ struct snd_card *card;
++ struct snd_pcm *pcm;
++ struct dw_hdmi_audio_data data;
++ struct snd_pcm_substream *substream;
++ void (*reformat)(struct snd_dw_hdmi *, size_t, size_t);
++ void *buf_src;
++ void *buf_dst;
++ dma_addr_t buf_addr;
++ unsigned buf_offset;
++ unsigned buf_period;
++ unsigned buf_size;
++ unsigned channels;
++ uint8_t revision;
++ uint8_t iec_offset;
++ uint8_t cs[192][8];
++};
++
++static void dw_hdmi_writel(unsigned long val, void __iomem *ptr)
++{
++ writeb_relaxed(val, ptr);
++ writeb_relaxed(val >> 8, ptr + 1);
++ writeb_relaxed(val >> 16, ptr + 2);
++ writeb_relaxed(val >> 24, ptr + 3);
++}
++
++/*
++ * Convert to hardware format: The userspace buffer contains IEC958 samples,
++ * with the PCUV bits in bits 31..28 and audio samples in bits 27..4. We
++ * need these to be in bits 27..24, with the IEC B bit in bit 28, and audio
++ * samples in 23..0.
++ *
++ * Default preamble in bits 3..0: 8 = block start, 4 = even 2 = odd
++ *
++ * Ideally, we could do with having the data properly formatted in userspace.
++ */
++static void dw_hdmi_reformat_iec958(struct snd_dw_hdmi *dw,
++ size_t offset, size_t bytes)
++{
++ uint32_t *src = dw->buf_src + offset;
++ uint32_t *dst = dw->buf_dst + offset;
++ uint32_t *end = dw->buf_src + offset + bytes;
++
++ do {
++ uint32_t b, sample = *src++;
++
++ b = (sample & 8) << (28 - 3);
++
++ sample >>= 4;
++
++ *dst++ = sample | b;
++ } while (src < end);
++}
++
++static uint32_t parity(uint32_t sample)
++{
++ sample ^= sample >> 16;
++ sample ^= sample >> 8;
++ sample ^= sample >> 4;
++ sample ^= sample >> 2;
++ sample ^= sample >> 1;
++ return (sample & 1) << 27;
++}
++
++static void dw_hdmi_reformat_s24(struct snd_dw_hdmi *dw,
++ size_t offset, size_t bytes)
++{
++ uint32_t *src = dw->buf_src + offset;
++ uint32_t *dst = dw->buf_dst + offset;
++ uint32_t *end = dw->buf_src + offset + bytes;
++
++ do {
++ unsigned i;
++ uint8_t *cs;
++
++ cs = dw->cs[dw->iec_offset++];
++ if (dw->iec_offset >= 192)
++ dw->iec_offset = 0;
++
++ i = dw->channels;
++ do {
++ uint32_t sample = *src++;
++
++ sample &= ~0xff000000;
++ sample |= *cs++ << 24;
++ sample |= parity(sample & ~0xf8000000);
++
++ *dst++ = sample;
++ } while (--i);
++ } while (src < end);
++}
++
++static void dw_hdmi_create_cs(struct snd_dw_hdmi *dw,
++ struct snd_pcm_runtime *runtime)
++{
++ uint8_t cs[4];
++ unsigned ch, i, j;
++
++ cs[0] = IEC958_AES0_CON_NOT_COPYRIGHT | IEC958_AES0_CON_EMPHASIS_NONE;
++ cs[1] = IEC958_AES1_CON_GENERAL;
++ cs[2] = IEC958_AES2_CON_SOURCE_UNSPEC;
++ cs[3] = IEC958_AES3_CON_CLOCK_1000PPM;
++
++ switch (runtime->rate) {
++ case 32000:
++ cs[3] |= IEC958_AES3_CON_FS_32000;
++ break;
++ case 44100:
++ cs[3] |= IEC958_AES3_CON_FS_44100;
++ break;
++ case 48000:
++ cs[3] |= IEC958_AES3_CON_FS_48000;
++ break;
++ case 88200:
++ cs[3] |= IEC958_AES3_CON_FS_88200;
++ break;
++ case 96000:
++ cs[3] |= IEC958_AES3_CON_FS_96000;
++ break;
++ case 176400:
++ cs[3] |= IEC958_AES3_CON_FS_176400;
++ break;
++ case 192000:
++ cs[3] |= IEC958_AES3_CON_FS_192000;
++ break;
++ }
++
++ memset(dw->cs, 0, sizeof(dw->cs));
++
++ for (ch = 0; ch < 8; ch++) {
++ cs[2] &= ~IEC958_AES2_CON_CHANNEL;
++ cs[2] |= (ch + 1) << 4;
++
++ for (i = 0; i < ARRAY_SIZE(cs); i++) {
++ unsigned c = cs[i];
++
++ for (j = 0; j < 8; j++, c >>= 1)
++ dw->cs[i * 8 + j][ch] = (c & 1) << 2;
++ }
++ }
++ dw->cs[0][0] |= BIT(4);
++}
++
++static void dw_hdmi_start_dma(struct snd_dw_hdmi *dw)
++{
++ void __iomem *base = dw->data.base;
++ unsigned offset = dw->buf_offset;
++ unsigned period = dw->buf_period;
++ u32 start, stop;
++
++ dw->reformat(dw, offset, period);
++
++ /* Clear all irqs before enabling irqs and starting DMA */
++ writeb_relaxed(HDMI_IH_AHBDMAAUD_STAT0_ALL,
++ base + HDMI_IH_AHBDMAAUD_STAT0);
++
++ start = dw->buf_addr + offset;
++ stop = start + period - 1;
++
++ /* Setup the hardware start/stop addresses */
++ dw_hdmi_writel(start, base + HDMI_AHB_DMA_STRADDR0);
++ dw_hdmi_writel(stop, base + HDMI_AHB_DMA_STPADDR0);
++
++ writeb_relaxed((u8)~HDMI_AHB_DMA_MASK_DONE, base + HDMI_AHB_DMA_MASK);
++ writeb(HDMI_AHB_DMA_START_START, base + HDMI_AHB_DMA_START);
++
++ offset += period;
++ if (offset >= dw->buf_size)
++ offset = 0;
++ dw->buf_offset = offset;
++}
++
++static void dw_hdmi_stop_dma(struct snd_dw_hdmi *dw)
++{
++ dw->substream = NULL;
++
++ /* Disable interrupts before disabling DMA */
++ writeb_relaxed(~0, dw->data.base + HDMI_AHB_DMA_MASK);
++ writeb_relaxed(HDMI_AHB_DMA_STOP_STOP, dw->data.base + HDMI_AHB_DMA_STOP);
++ synchronize_irq(dw->data.irq);
++}
++
++static irqreturn_t snd_dw_hdmi_irq(int irq, void *data)
++{
++ struct snd_dw_hdmi *dw = data;
++ struct snd_pcm_substream *substream;
++ unsigned stat;
++
++ stat = readb_relaxed(dw->data.base + HDMI_IH_AHBDMAAUD_STAT0);
++ if (!stat)
++ return IRQ_NONE;
++
++ writeb_relaxed(stat, dw->data.base + HDMI_IH_AHBDMAAUD_STAT0);
++
++ substream = dw->substream;
++ if (stat & HDMI_IH_AHBDMAAUD_STAT0_DONE && substream) {
++ snd_pcm_period_elapsed(substream);
++ if (dw->substream)
++ dw_hdmi_start_dma(dw);
++ }
++
++ return IRQ_HANDLED;
++}
++
++static struct snd_pcm_hardware dw_hdmi_hw = {
++ .info = SNDRV_PCM_INFO_INTERLEAVED |
++ SNDRV_PCM_INFO_BLOCK_TRANSFER |
++ SNDRV_PCM_INFO_MMAP |
++ SNDRV_PCM_INFO_MMAP_VALID,
++ .formats = SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE |
++ SNDRV_PCM_FMTBIT_S24_LE,
++ .rates = SNDRV_PCM_RATE_32000 |
++ SNDRV_PCM_RATE_44100 |
++ SNDRV_PCM_RATE_48000 |
++ SNDRV_PCM_RATE_88200 |
++ SNDRV_PCM_RATE_96000 |
++ SNDRV_PCM_RATE_176400 |
++ SNDRV_PCM_RATE_192000,
++ .channels_min = 2,
++ .channels_max = 8,
++ .buffer_bytes_max = 64 * 1024,
++ .period_bytes_min = 256,
++ .period_bytes_max = 8192, /* ERR004323: must limit to 8k */
++ .periods_min = 2,
++ .periods_max = 16,
++ .fifo_size = 0,
++};
++
++static unsigned rates_mask[] = {
++ SNDRV_PCM_RATE_32000,
++ SNDRV_PCM_RATE_44100,
++ SNDRV_PCM_RATE_48000,
++ SNDRV_PCM_RATE_88200,
++ SNDRV_PCM_RATE_96000,
++ SNDRV_PCM_RATE_176400,
++ SNDRV_PCM_RATE_192000,
++};
++
++static void dw_hdmi_parse_eld(struct snd_dw_hdmi *dw,
++ struct snd_pcm_runtime *runtime)
++{
++ u8 *sad, *eld = dw->data.eld;
++ unsigned eld_ver, mnl, sad_count, rates, rate_mask, i;
++ unsigned max_channels;
++
++ eld_ver = eld[0] >> 3;
++ if (eld_ver != 2 && eld_ver != 31)
++ return;
++
++ mnl = eld[4] & 0x1f;
++ if (mnl > 16)
++ return;
++
++ sad_count = eld[5] >> 4;
++ sad = eld + 20 + mnl;
++
++ /* Start from the basic audio settings */
++ max_channels = 2;
++ rates = 7;
++ while (sad_count > 0) {
++ switch (sad[0] & 0x78) {
++ case 0x08: /* PCM */
++ max_channels = max(max_channels, (sad[0] & 7) + 1u);
++ rates |= sad[1];
++ break;
++ }
++ sad += 3;
++ sad_count -= 1;
++ }
++
++ for (rate_mask = i = 0; i < ARRAY_SIZE(rates_mask); i++)
++ if (rates & 1 << i)
++ rate_mask |= rates_mask[i];
++
++ runtime->hw.rates &= rate_mask;
++ runtime->hw.channels_max = min(runtime->hw.channels_max, max_channels);
++}
++
++static int dw_hdmi_open(struct snd_pcm_substream *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct snd_dw_hdmi *dw = substream->private_data;
++ void __iomem *base = dw->data.base;
++ int ret;
++
++ /* Clear FIFO */
++ writeb_relaxed(HDMI_AHB_DMA_CONF0_SW_FIFO_RST,
++ base + HDMI_AHB_DMA_CONF0);
++
++ /* Configure interrupt polarities */
++ writeb_relaxed(~0, base + HDMI_AHB_DMA_POL);
++ writeb_relaxed(~0, base + HDMI_AHB_DMA_BUFFPOL);
++
++ /* Keep interrupts masked, and clear any pending */
++ writeb_relaxed(~0, base + HDMI_AHB_DMA_MASK);
++ writeb_relaxed(~0, base + HDMI_IH_AHBDMAAUD_STAT0);
++
++ ret = request_irq(dw->data.irq, snd_dw_hdmi_irq, IRQF_SHARED,
++ "dw-hdmi-audio", dw);
++ if (ret)
++ return ret;
++
++ /* Un-mute done interrupt */
++ writeb_relaxed(HDMI_IH_MUTE_AHBDMAAUD_STAT0_ALL &
++ ~HDMI_IH_MUTE_AHBDMAAUD_STAT0_DONE,
++ base + HDMI_IH_MUTE_AHBDMAAUD_STAT0);
++
++ runtime->hw = dw_hdmi_hw;
++ dw_hdmi_parse_eld(dw, runtime);
++ snd_pcm_limit_hw_rates(runtime);
++ snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS);
++
++ return 0;
++}
++
++static int dw_hdmi_close(struct snd_pcm_substream *substream)
++{
++ struct snd_dw_hdmi *dw = substream->private_data;
++
++ /* Mute all interrupts */
++ writeb_relaxed(HDMI_IH_MUTE_AHBDMAAUD_STAT0_ALL,
++ dw->data.base + HDMI_IH_MUTE_AHBDMAAUD_STAT0);
++
++ free_irq(dw->data.irq, dw);
++
++ return 0;
++}
++
++static int dw_hdmi_hw_free(struct snd_pcm_substream *substream)
++{
++ return snd_pcm_lib_free_vmalloc_buffer(substream);
++}
++
++static int dw_hdmi_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ return snd_pcm_lib_alloc_vmalloc_buffer(substream,
++ params_buffer_bytes(params));
++}
++
++static int dw_hdmi_prepare(struct snd_pcm_substream *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct snd_dw_hdmi *dw = substream->private_data;
++ uint8_t threshold, conf0, conf1;
++
++ /* Setup as per 3.0.5 FSL 4.1.0 BSP */
++ switch (dw->revision) {
++ case 0x0a:
++ conf0 = HDMI_AHB_DMA_CONF0_BURST_MODE |
++ HDMI_AHB_DMA_CONF0_INCR4;
++ if (runtime->channels == 2)
++ threshold = 126;
++ else
++ threshold = 124;
++ break;
++ case 0x1a:
++ conf0 = HDMI_AHB_DMA_CONF0_BURST_MODE |
++ HDMI_AHB_DMA_CONF0_INCR8;
++ threshold = 128;
++ break;
++ default:
++ /* NOTREACHED */
++ return -EINVAL;
++ }
++
++ dw->data.set_sample_rate(dw->data.hdmi, runtime->rate);
++
++ /* Minimum number of bytes in the fifo. */
++ runtime->hw.fifo_size = threshold * 32;
++
++ conf0 |= HDMI_AHB_DMA_CONF0_EN_HLOCK;
++ conf1 = (1 << runtime->channels) - 1;
++
++ writeb_relaxed(threshold, dw->data.base + HDMI_AHB_DMA_THRSLD);
++ writeb_relaxed(conf0, dw->data.base + HDMI_AHB_DMA_CONF0);
++ writeb_relaxed(conf1, dw->data.base + HDMI_AHB_DMA_CONF1);
++
++ switch (runtime->format) {
++ case SNDRV_PCM_FORMAT_IEC958_SUBFRAME_LE:
++ dw->reformat = dw_hdmi_reformat_iec958;
++ break;
++ case SNDRV_PCM_FORMAT_S24_LE:
++ dw_hdmi_create_cs(dw, runtime);
++ dw->reformat = dw_hdmi_reformat_s24;
++ break;
++ }
++ dw->iec_offset = 0;
++ dw->channels = runtime->channels;
++ dw->buf_src = runtime->dma_area;
++ dw->buf_dst = substream->dma_buffer.area;
++ dw->buf_addr = substream->dma_buffer.addr;
++ dw->buf_period = snd_pcm_lib_period_bytes(substream);
++ dw->buf_size = snd_pcm_lib_buffer_bytes(substream);
++
++ return 0;
++}
++
++static int dw_hdmi_trigger(struct snd_pcm_substream *substream, int cmd)
++{
++ struct snd_dw_hdmi *dw = substream->private_data;
++ void __iomem *base = dw->data.base;
++ unsigned n[3], cts[3];
++ int ret = 0, i;
++ bool err005174;
++
++ switch (cmd) {
++ case SNDRV_PCM_TRIGGER_START:
++ err005174 = dw->revision == 0x0a;
++ if (err005174) {
++ for (i = 2; i >= 1; i--) {
++ n[i] = readb_relaxed(base + HDMI_AUD_N1 + i);
++ cts[i] = readb_relaxed(base + HDMI_AUD_CTS1 + i);
++ writeb_relaxed(0, base + HDMI_AUD_N1 + i);
++ writeb_relaxed(0, base + HDMI_AUD_CTS1 + i);
++ }
++ }
++
++ dw->buf_offset = 0;
++ dw->substream = substream;
++ dw_hdmi_start_dma(dw);
++
++ if (err005174) {
++ for (i = 2; i >= 1; i--)
++ writeb_relaxed(cts[i], base + HDMI_AUD_CTS1 + i);
++ for (i = 2; i >= 1; i--)
++ writeb_relaxed(n[i], base + HDMI_AUD_N1 + i);
++ }
++
++ substream->runtime->delay = substream->runtime->period_size;
++ break;
++
++ case SNDRV_PCM_TRIGGER_STOP:
++ dw_hdmi_stop_dma(dw);
++ break;
++
++ default:
++ ret = -EINVAL;
++ break;
++ }
++
++ return ret;
++}
++
++static snd_pcm_uframes_t dw_hdmi_pointer(struct snd_pcm_substream *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct snd_dw_hdmi *dw = substream->private_data;
++
++ return bytes_to_frames(runtime, dw->buf_offset);
++}
++
++static struct snd_pcm_ops snd_dw_hdmi_ops = {
++ .open = dw_hdmi_open,
++ .close = dw_hdmi_close,
++ .ioctl = snd_pcm_lib_ioctl,
++ .hw_params = dw_hdmi_hw_params,
++ .hw_free = dw_hdmi_hw_free,
++ .prepare = dw_hdmi_prepare,
++ .trigger = dw_hdmi_trigger,
++ .pointer = dw_hdmi_pointer,
++ .page = snd_pcm_lib_get_vmalloc_page,
++};
++
++static int snd_dw_hdmi_probe(struct platform_device *pdev)
++{
++ const struct dw_hdmi_audio_data *data = pdev->dev.platform_data;
++ struct device *dev = pdev->dev.parent;
++ struct snd_dw_hdmi *dw;
++ struct snd_card *card;
++ struct snd_pcm *pcm;
++ unsigned revision;
++ int ret;
++
++ writeb_relaxed(HDMI_IH_MUTE_AHBDMAAUD_STAT0_ALL,
++ data->base + HDMI_IH_MUTE_AHBDMAAUD_STAT0);
++ revision = readb_relaxed(data->base + HDMI_REVISION_ID);
++ if (revision != 0x0a && revision != 0x1a) {
++ dev_err(dev, "dw-hdmi-audio: unknown revision 0x%02x\n",
++ revision);
++ return -ENXIO;
++ }
++
++ ret = snd_card_new(dev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1,
++ THIS_MODULE, sizeof(struct snd_dw_hdmi), &card);
++ if (ret < 0)
++ return ret;
++
++ strlcpy(card->driver, DRIVER_NAME, sizeof(card->driver));
++ strlcpy(card->shortname, "DW-HDMI", sizeof(card->shortname));
++ snprintf(card->longname, sizeof(card->longname),
++ "%s rev 0x%02x, irq %d", card->shortname, revision,
++ data->irq);
++
++ dw = card->private_data;
++ dw->card = card;
++ dw->data = *data;
++ dw->revision = revision;
++
++ ret = snd_pcm_new(card, "DW HDMI", 0, 1, 0, &pcm);
++ if (ret < 0)
++ goto err;
++
++ dw->pcm = pcm;
++ pcm->private_data = dw;
++ strlcpy(pcm->name, DRIVER_NAME, sizeof(pcm->name));
++ snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_dw_hdmi_ops);
++
++ snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV,
++ dev, 64 * 1024, 64 * 1024);
++
++ ret = snd_card_register(card);
++ if (ret < 0)
++ goto err;
++
++ platform_set_drvdata(pdev, dw);
++
++ return 0;
++
++err:
++ snd_card_free(card);
++ return ret;
++}
++
++static int snd_dw_hdmi_remove(struct platform_device *pdev)
++{
++ struct snd_dw_hdmi *dw = platform_get_drvdata(pdev);
++
++ snd_card_free(dw->card);
++
++ return 0;
++}
++
++#ifdef CONFIG_PM_SLEEP
++static int snd_dw_hdmi_suspend(struct device *dev)
++{
++ struct snd_dw_hdmi *dw = dev_get_drvdata(dev);
++
++ snd_power_change_state(dw->card, SNDRV_CTL_POWER_D3cold);
++ snd_pcm_suspend_all(dw->pcm);
++
++ return 0;
++}
++
++static int snd_dw_hdmi_resume(struct device *dev)
++{
++ struct snd_dw_hdmi *dw = dev_get_drvdata(dev);
++
++ snd_power_change_state(dw->card, SNDRV_CTL_POWER_D0);
++
++ return 0;
++}
++
++static SIMPLE_DEV_PM_OPS(snd_dw_hdmi_pm, snd_dw_hdmi_suspend,
++ snd_dw_hdmi_resume);
++#define PM_OPS &snd_dw_hdmi_pm
++#else
++#define PM_OPS NULL
++#endif
++
++static struct platform_driver snd_dw_hdmi_driver = {
++ .probe = snd_dw_hdmi_probe,
++ .remove = snd_dw_hdmi_remove,
++ .driver = {
++ .name = "dw-hdmi-audio",
++ .owner = THIS_MODULE,
++ .pm = PM_OPS,
++ },
++};
++
++module_platform_driver(snd_dw_hdmi_driver);
++
++MODULE_AUTHOR("Russell King <rmk+kernel@arm.linux.org.uk>");
++MODULE_LICENSE("GPL");
+diff -Nur linux-3.16.6.orig/drivers/staging/imx-drm/dw-hdmi-audio.h linux-3.16.6/drivers/staging/imx-drm/dw-hdmi-audio.h
+--- linux-3.16.6.orig/drivers/staging/imx-drm/dw-hdmi-audio.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.16.6/drivers/staging/imx-drm/dw-hdmi-audio.h 2014-10-23 12:36:44.258220010 -0500
+@@ -0,0 +1,15 @@
++#ifndef DW_HDMI_AUDIO_H
++#define DW_HDMI_AUDIO_H
++
++struct imx_hdmi;
++
++struct dw_hdmi_audio_data {
++ phys_addr_t phys;
++ void __iomem *base;
++ int irq;
++ struct imx_hdmi *hdmi;
++ u8 *eld;
++ void (*set_sample_rate)(struct imx_hdmi *, unsigned);
++};
++
++#endif
+diff -Nur linux-3.16.6.orig/drivers/staging/imx-drm/dw-hdmi-cec.c linux-3.16.6/drivers/staging/imx-drm/dw-hdmi-cec.c
+--- linux-3.16.6.orig/drivers/staging/imx-drm/dw-hdmi-cec.c 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.16.6/drivers/staging/imx-drm/dw-hdmi-cec.c 2014-10-23 12:37:23.890220362 -0500
+@@ -0,0 +1,207 @@
++/* http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/tree/drivers/mxc/hdmi-cec/mxc_hdmi-cec.c?h=imx_3.0.35_4.1.0 */
++#include <linux/cec-dev.h>
++#include <linux/interrupt.h>
++#include <linux/io.h>
++#include <linux/module.h>
++#include <linux/platform_device.h>
++#include <linux/sched.h>
++#include <linux/slab.h>
++
++#include "imx-hdmi.h"
++#include "dw-hdmi-cec.h"
++
++#define DEV_NAME "mxc_hdmi_cec"
++
++enum {
++ CEC_STAT_DONE = BIT(0),
++ CEC_STAT_EOM = BIT(1),
++ CEC_STAT_NACK = BIT(2),
++ CEC_STAT_ARBLOST = BIT(3),
++ CEC_STAT_ERROR_INIT = BIT(4),
++ CEC_STAT_ERROR_FOLL = BIT(5),
++ CEC_STAT_WAKEUP = BIT(6),
++
++ CEC_CTRL_START = BIT(0),
++ CEC_CTRL_NORMAL = 1 << 1,
++};
++
++struct dw_hdmi_cec {
++ struct cec_dev cec;
++
++ struct device *dev;
++ void __iomem *base;
++ const struct dw_hdmi_cec_ops *ops;
++ void *ops_data;
++ int irq;
++};
++
++static void dw_hdmi_set_address(struct cec_dev *cec_dev, unsigned addresses)
++{
++ struct dw_hdmi_cec *cec = container_of(cec_dev, struct dw_hdmi_cec, cec);
++
++ writeb(addresses & 255, cec->base + HDMI_CEC_ADDR_L);
++ writeb(addresses >> 8, cec->base + HDMI_CEC_ADDR_H);
++}
++
++static void dw_hdmi_send_message(struct cec_dev *cec_dev, u8 *msg,
++ size_t count)
++{
++ struct dw_hdmi_cec *cec = container_of(cec_dev, struct dw_hdmi_cec, cec);
++ unsigned i;
++
++ for (i = 0; i < count; i++)
++ writeb(msg[i], cec->base + HDMI_CEC_TX_DATA0 + i);
++
++ writeb(count, cec->base + HDMI_CEC_TX_CNT);
++ writeb(CEC_CTRL_NORMAL | CEC_CTRL_START, cec->base + HDMI_CEC_CTRL);
++}
++
++static irqreturn_t dw_hdmi_cec_irq(int irq, void *data)
++{
++ struct dw_hdmi_cec *cec = data;
++ struct cec_dev *cec_dev = &cec->cec;
++ unsigned stat = readb(cec->base + HDMI_IH_CEC_STAT0);
++
++ if (stat == 0)
++ return IRQ_NONE;
++
++ writeb(stat, cec->base + HDMI_IH_CEC_STAT0);
++
++ if (stat & CEC_STAT_ERROR_INIT) {
++ if (cec->cec.retries) {
++ unsigned v = readb(cec->base + HDMI_CEC_CTRL);
++ writeb(v | CEC_CTRL_START, cec->base + HDMI_CEC_CTRL);
++ cec->cec.retries -= 1;
++ } else {
++ cec->cec.write_busy = 0;
++ cec_dev_event(cec_dev, MESSAGE_TYPE_SEND_ERROR, NULL, 0);
++ }
++ } else if (stat & (CEC_STAT_DONE | CEC_STAT_NACK))
++ cec_dev_send_complete(cec_dev, stat & CEC_STAT_DONE);
++
++ if (stat & CEC_STAT_EOM) {
++ unsigned len, i;
++ u8 msg[MAX_MESSAGE_LEN];
++
++ len = readb(cec->base + HDMI_CEC_RX_CNT);
++ if (len > sizeof(msg))
++ len = sizeof(msg);
++
++ for (i = 0; i < len; i++)
++ msg[i] = readb(cec->base + HDMI_CEC_RX_DATA0 + i);
++
++ writeb(0, cec->base + HDMI_CEC_LOCK);
++
++ cec_dev_receive(cec_dev, msg, len);
++ }
++
++ return IRQ_HANDLED;
++}
++EXPORT_SYMBOL(dw_hdmi_cec_irq);
++
++static void dw_hdmi_cec_release(struct cec_dev *cec_dev)
++{
++ struct dw_hdmi_cec *cec = container_of(cec_dev, struct dw_hdmi_cec, cec);
++
++ writeb(~0, cec->base + HDMI_CEC_MASK);
++ writeb(~0, cec->base + HDMI_IH_MUTE_CEC_STAT0);
++ writeb(0, cec->base + HDMI_CEC_POLARITY);
++
++ free_irq(cec->irq, cec);
++
++ cec->ops->disable(cec->ops_data);
++}
++
++static int dw_hdmi_cec_open(struct cec_dev *cec_dev)
++{
++ struct dw_hdmi_cec *cec = container_of(cec_dev, struct dw_hdmi_cec, cec);
++ unsigned irqs;
++ int ret;
++
++ writeb(0, cec->base + HDMI_CEC_CTRL);
++ writeb(~0, cec->base + HDMI_IH_CEC_STAT0);
++ writeb(0, cec->base + HDMI_CEC_LOCK);
++
++ ret = request_irq(cec->irq, dw_hdmi_cec_irq, IRQF_SHARED,
++ DEV_NAME, cec);
++ if (ret < 0)
++ return ret;
++
++ dw_hdmi_set_address(cec_dev, cec_dev->addresses);
++
++ cec->ops->enable(cec->ops_data);
++
++ irqs = CEC_STAT_ERROR_INIT | CEC_STAT_NACK | CEC_STAT_EOM |
++ CEC_STAT_DONE;
++ writeb(irqs, cec->base + HDMI_CEC_POLARITY);
++ writeb(~irqs, cec->base + HDMI_CEC_MASK);
++ writeb(~irqs, cec->base + HDMI_IH_MUTE_CEC_STAT0);
++
++ return 0;
++}
++
++static int dw_hdmi_cec_probe(struct platform_device *pdev)
++{
++ struct dw_hdmi_cec_data *data = dev_get_platdata(&pdev->dev);
++ struct dw_hdmi_cec *cec;
++
++ if (!data)
++ return -ENXIO;
++
++ cec = devm_kzalloc(&pdev->dev, sizeof(*cec), GFP_KERNEL);
++ if (!cec)
++ return -ENOMEM;
++
++ cec->dev = &pdev->dev;
++ cec->base = data->base;
++ cec->irq = data->irq;
++ cec->ops = data->ops;
++ cec->ops_data = data->ops_data;
++ cec->cec.open = dw_hdmi_cec_open;
++ cec->cec.release = dw_hdmi_cec_release;
++ cec->cec.send_message = dw_hdmi_send_message;
++ cec->cec.set_address = dw_hdmi_set_address;
++
++ cec_dev_init(&cec->cec, THIS_MODULE);
++
++ /* FIXME: soft-reset the CEC interface */
++
++ dw_hdmi_set_address(&cec->cec, cec->cec.addresses);
++ writeb(0, cec->base + HDMI_CEC_TX_CNT);
++ writeb(~0, cec->base + HDMI_CEC_MASK);
++ writeb(~0, cec->base + HDMI_IH_MUTE_CEC_STAT0);
++ writeb(0, cec->base + HDMI_CEC_POLARITY);
++
++ platform_set_drvdata(pdev, cec);
++
++ /*
++ * Our device is just a convenience - we want to link to the real
++ * hardware device here, so that userspace can see the association
++ * between the HDMI hardware and its associated CEC chardev.
++ */
++ return cec_dev_add(&cec->cec, cec->dev->parent, DEV_NAME);
++}
++
++static int dw_hdmi_cec_remove(struct platform_device *pdev)
++{
++ struct dw_hdmi_cec *cec = platform_get_drvdata(pdev);
++
++ cec_dev_remove(&cec->cec);
++
++ return 0;
++}
++
++static struct platform_driver dw_hdmi_cec_driver = {
++ .probe = dw_hdmi_cec_probe,
++ .remove = dw_hdmi_cec_remove,
++ .driver = {
++ .name = "dw-hdmi-cec",
++ .owner = THIS_MODULE,
++ },
++};
++module_platform_driver(dw_hdmi_cec_driver);
++
++MODULE_AUTHOR("Russell King <rmk+kernel@arm.linux.org.uk>");
++MODULE_DESCRIPTION("Synopsis Designware HDMI CEC driver for i.MX");
++MODULE_LICENSE("GPL");
++MODULE_ALIAS(PLATFORM_MODULE_PREFIX "dw-hdmi-cec");
+diff -Nur linux-3.16.6.orig/drivers/staging/imx-drm/dw-hdmi-cec.h linux-3.16.6/drivers/staging/imx-drm/dw-hdmi-cec.h
+--- linux-3.16.6.orig/drivers/staging/imx-drm/dw-hdmi-cec.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.16.6/drivers/staging/imx-drm/dw-hdmi-cec.h 2014-10-23 12:37:23.890220362 -0500
+@@ -0,0 +1,16 @@
++#ifndef DW_HDMI_CEC_H
++#define DW_HDMI_CEC_H
++
++struct dw_hdmi_cec_ops {
++ void (*enable)(void *);
++ void (*disable)(void *);
++};
++
++struct dw_hdmi_cec_data {
++ void __iomem *base;
++ int irq;
++ const struct dw_hdmi_cec_ops *ops;
++ void *ops_data;
++};
++
++#endif
+diff -Nur linux-3.16.6.orig/drivers/staging/imx-drm/imx-drm-core.c linux-3.16.6/drivers/staging/imx-drm/imx-drm-core.c
+--- linux-3.16.6.orig/drivers/staging/imx-drm/imx-drm-core.c 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/drivers/staging/imx-drm/imx-drm-core.c 2014-10-23 12:37:37.690220197 -0500
+@@ -115,8 +115,7 @@
+ helper = &imx_crtc->imx_drm_helper_funcs;
+ if (helper->set_interface_pix_fmt)
+ return helper->set_interface_pix_fmt(encoder->crtc,
+- encoder->encoder_type, interface_pix_fmt,
+- hsync_pin, vsync_pin);
++ interface_pix_fmt, hsync_pin, vsync_pin);
+ return 0;
+ }
+ EXPORT_SYMBOL_GPL(imx_drm_panel_format_pins);
+diff -Nur linux-3.16.6.orig/drivers/staging/imx-drm/imx-drm.h linux-3.16.6/drivers/staging/imx-drm/imx-drm.h
+--- linux-3.16.6.orig/drivers/staging/imx-drm/imx-drm.h 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/drivers/staging/imx-drm/imx-drm.h 2014-10-23 12:37:37.690220197 -0500
+@@ -17,7 +17,7 @@
+ struct imx_drm_crtc_helper_funcs {
+ int (*enable_vblank)(struct drm_crtc *crtc);
+ void (*disable_vblank)(struct drm_crtc *crtc);
+- int (*set_interface_pix_fmt)(struct drm_crtc *crtc, u32 encoder_type,
++ int (*set_interface_pix_fmt)(struct drm_crtc *crtc,
+ u32 pix_fmt, int hsync_pin, int vsync_pin);
+ const struct drm_crtc_helper_funcs *crtc_helper_funcs;
+ const struct drm_crtc_funcs *crtc_funcs;
+diff -Nur linux-3.16.6.orig/drivers/staging/imx-drm/imx-hdmi.c linux-3.16.6/drivers/staging/imx-drm/imx-hdmi.c
+--- linux-3.16.6.orig/drivers/staging/imx-drm/imx-hdmi.c 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/drivers/staging/imx-drm/imx-hdmi.c 2014-10-23 12:37:30.178219970 -0500
+@@ -29,6 +29,9 @@
+ #include <drm/drm_encoder_slave.h>
+ #include <video/imx-ipu-v3.h>
+
++#include "drm-ddc-connector.h"
++#include "dw-hdmi-audio.h"
++#include "dw-hdmi-cec.h"
+ #include "imx-hdmi.h"
+ #include "imx-drm.h"
+
+@@ -112,9 +115,11 @@
+ };
+
+ struct imx_hdmi {
+- struct drm_connector connector;
++ struct drm_ddc_connector *ddc_conn;
+ struct drm_encoder encoder;
+
++ struct platform_device *audio;
++ struct platform_device *cec;
+ enum imx_hdmi_devtype dev_type;
+ struct device *dev;
+ struct clk *isfr_clk;
+@@ -124,13 +129,13 @@
+ int vic;
+
+ u8 edid[HDMI_EDID_LEN];
++ u8 mc_clkdis;
+ bool cable_plugin;
+
+ bool phy_enabled;
+ struct drm_display_mode previous_mode;
+
+ struct regmap *regmap;
+- struct i2c_adapter *ddc;
+ void __iomem *regs;
+
+ unsigned int sample_rate;
+@@ -361,6 +366,12 @@
+ hdmi_set_clk_regenerator(hdmi, hdmi->hdmi_data.video_mode.mpixelclock);
+ }
+
++static void imx_hdmi_set_sample_rate(struct imx_hdmi *hdmi, unsigned rate)
++{
++ hdmi->sample_rate = rate;
++ hdmi_set_clk_regenerator(hdmi, hdmi->hdmi_data.video_mode.mpixelclock);
++}
++
+ /*
+ * this submodule is responsible for the video data synchronization.
+ * for example, for RGB 4:4:4 input, the data map is defined as
+@@ -1144,8 +1155,6 @@
+ /* HDMI Initialization Step B.4 */
+ static void imx_hdmi_enable_video_path(struct imx_hdmi *hdmi)
+ {
+- u8 clkdis;
+-
+ /* control period minimum duration */
+ hdmi_writeb(hdmi, 12, HDMI_FC_CTRLDUR);
+ hdmi_writeb(hdmi, 32, HDMI_FC_EXCTRLDUR);
+@@ -1157,23 +1166,28 @@
+ hdmi_writeb(hdmi, 0x21, HDMI_FC_CH2PREAM);
+
+ /* Enable pixel clock and tmds data path */
+- clkdis = 0x7F;
+- clkdis &= ~HDMI_MC_CLKDIS_PIXELCLK_DISABLE;
+- hdmi_writeb(hdmi, clkdis, HDMI_MC_CLKDIS);
++ hdmi->mc_clkdis |= HDMI_MC_CLKDIS_HDCPCLK_DISABLE |
++ HDMI_MC_CLKDIS_CSCCLK_DISABLE |
++ HDMI_MC_CLKDIS_AUDCLK_DISABLE |
++ HDMI_MC_CLKDIS_PREPCLK_DISABLE |
++ HDMI_MC_CLKDIS_TMDSCLK_DISABLE;
++ hdmi->mc_clkdis &= ~HDMI_MC_CLKDIS_PIXELCLK_DISABLE;
++ hdmi_writeb(hdmi, hdmi->mc_clkdis, HDMI_MC_CLKDIS);
+
+- clkdis &= ~HDMI_MC_CLKDIS_TMDSCLK_DISABLE;
+- hdmi_writeb(hdmi, clkdis, HDMI_MC_CLKDIS);
++ hdmi->mc_clkdis &= ~HDMI_MC_CLKDIS_TMDSCLK_DISABLE;
++ hdmi_writeb(hdmi, hdmi->mc_clkdis, HDMI_MC_CLKDIS);
+
+ /* Enable csc path */
+ if (is_color_space_conversion(hdmi)) {
+- clkdis &= ~HDMI_MC_CLKDIS_CSCCLK_DISABLE;
+- hdmi_writeb(hdmi, clkdis, HDMI_MC_CLKDIS);
++ hdmi->mc_clkdis &= ~HDMI_MC_CLKDIS_CSCCLK_DISABLE;
++ hdmi_writeb(hdmi, hdmi->mc_clkdis, HDMI_MC_CLKDIS);
+ }
+ }
+
+ static void hdmi_enable_audio_clk(struct imx_hdmi *hdmi)
+ {
+- hdmi_modb(hdmi, 0, HDMI_MC_CLKDIS_AUDCLK_DISABLE, HDMI_MC_CLKDIS);
++ hdmi->mc_clkdis &= ~HDMI_MC_CLKDIS_AUDCLK_DISABLE;
++ hdmi_writeb(hdmi, hdmi->mc_clkdis, HDMI_MC_CLKDIS);
+ }
+
+ /* Workaround to clear the overflow condition */
+@@ -1376,43 +1390,16 @@
+ static enum drm_connector_status imx_hdmi_connector_detect(struct drm_connector
+ *connector, bool force)
+ {
+- struct imx_hdmi *hdmi = container_of(connector, struct imx_hdmi,
+- connector);
++ struct imx_hdmi *hdmi = drm_ddc_private(connector);
+
+ return hdmi_readb(hdmi, HDMI_PHY_STAT0) & HDMI_PHY_HPD ?
+ connector_status_connected : connector_status_disconnected;
+ }
+
+-static int imx_hdmi_connector_get_modes(struct drm_connector *connector)
+-{
+- struct imx_hdmi *hdmi = container_of(connector, struct imx_hdmi,
+- connector);
+- struct edid *edid;
+- int ret;
+-
+- if (!hdmi->ddc)
+- return 0;
+-
+- edid = drm_get_edid(connector, hdmi->ddc);
+- if (edid) {
+- dev_dbg(hdmi->dev, "got edid: width[%d] x height[%d]\n",
+- edid->width_cm, edid->height_cm);
+-
+- drm_mode_connector_update_edid_property(connector, edid);
+- ret = drm_add_edid_modes(connector, edid);
+- kfree(edid);
+- } else {
+- dev_dbg(hdmi->dev, "failed to get edid\n");
+- }
+-
+- return 0;
+-}
+-
+ static struct drm_encoder *imx_hdmi_connector_best_encoder(struct drm_connector
+ *connector)
+ {
+- struct imx_hdmi *hdmi = container_of(connector, struct imx_hdmi,
+- connector);
++ struct imx_hdmi *hdmi = drm_ddc_private(connector);
+
+ return &hdmi->encoder;
+ }
+@@ -1485,11 +1472,11 @@
+ .dpms = drm_helper_connector_dpms,
+ .fill_modes = drm_helper_probe_single_connector_modes,
+ .detect = imx_hdmi_connector_detect,
+- .destroy = imx_drm_connector_destroy,
++ .destroy = drm_ddc_connector_destroy,
+ };
+
+ static struct drm_connector_helper_funcs imx_hdmi_connector_helper_funcs = {
+- .get_modes = imx_hdmi_connector_get_modes,
++ .get_modes = drm_ddc_connector_get_modes,
+ .best_encoder = imx_hdmi_connector_best_encoder,
+ };
+
+@@ -1530,7 +1517,7 @@
+
+ imx_hdmi_poweroff(hdmi);
+ }
+- drm_helper_hpd_irq_event(hdmi->connector.dev);
++ drm_helper_hpd_irq_event(hdmi->ddc_conn->connector.dev);
+ }
+
+ hdmi_writeb(hdmi, intr_stat, HDMI_IH_PHY_STAT0);
+@@ -1548,24 +1535,43 @@
+ if (ret)
+ return ret;
+
+- hdmi->connector.polled = DRM_CONNECTOR_POLL_HPD;
++ hdmi->ddc_conn->connector.polled = DRM_CONNECTOR_POLL_HPD;
+
+ drm_encoder_helper_add(&hdmi->encoder, &imx_hdmi_encoder_helper_funcs);
+ drm_encoder_init(drm, &hdmi->encoder, &imx_hdmi_encoder_funcs,
+ DRM_MODE_ENCODER_TMDS);
+
+- drm_connector_helper_add(&hdmi->connector,
++ drm_connector_helper_add(&hdmi->ddc_conn->connector,
+ &imx_hdmi_connector_helper_funcs);
+- drm_connector_init(drm, &hdmi->connector, &imx_hdmi_connector_funcs,
+- DRM_MODE_CONNECTOR_HDMIA);
++ drm_ddc_connector_add(drm, hdmi->ddc_conn, &imx_hdmi_connector_funcs,
++ DRM_MODE_CONNECTOR_HDMIA);
+
+- hdmi->connector.encoder = &hdmi->encoder;
+-
+- drm_mode_connector_attach_encoder(&hdmi->connector, &hdmi->encoder);
++ drm_mode_connector_attach_encoder(&hdmi->ddc_conn->connector, &hdmi->encoder);
+
+ return 0;
+ }
+
++static void imx_hdmi_cec_enable(void *data)
++{
++ struct imx_hdmi *hdmi = data;
++
++ hdmi->mc_clkdis &= ~HDMI_MC_CLKDIS_CECCLK_DISABLE;
++ hdmi_writeb(hdmi, hdmi->mc_clkdis, HDMI_MC_CLKDIS);
++}
++
++static void imx_hdmi_cec_disable(void *data)
++{
++ struct imx_hdmi *hdmi = data;
++
++ hdmi->mc_clkdis |= HDMI_MC_CLKDIS_CECCLK_DISABLE;
++ hdmi_writeb(hdmi, hdmi->mc_clkdis, HDMI_MC_CLKDIS);
++}
++
++static const struct dw_hdmi_cec_ops imx_hdmi_cec_ops = {
++ .enable = imx_hdmi_cec_enable,
++ .disable = imx_hdmi_cec_disable,
++};
++
+ static struct platform_device_id imx_hdmi_devtype[] = {
+ {
+ .name = "imx6q-hdmi",
+@@ -1587,11 +1593,13 @@
+ static int imx_hdmi_bind(struct device *dev, struct device *master, void *data)
+ {
+ struct platform_device *pdev = to_platform_device(dev);
++ struct platform_device_info pdevinfo;
+ const struct of_device_id *of_id =
+ of_match_device(imx_hdmi_dt_ids, dev);
+ struct drm_device *drm = data;
+ struct device_node *np = dev->of_node;
+- struct device_node *ddc_node;
++ struct dw_hdmi_audio_data audio;
++ struct dw_hdmi_cec_data cec;
+ struct imx_hdmi *hdmi;
+ struct resource *iores;
+ int ret, irq;
+@@ -1600,9 +1608,14 @@
+ if (!hdmi)
+ return -ENOMEM;
+
++ hdmi->ddc_conn = drm_ddc_connector_create(drm, np, hdmi);
++ if (IS_ERR(hdmi->ddc_conn))
++ return PTR_ERR(hdmi->ddc_conn);
++
+ hdmi->dev = dev;
+ hdmi->sample_rate = 48000;
+ hdmi->ratio = 100;
++ hdmi->mc_clkdis = 0x7f;
+
+ if (of_id) {
+ const struct platform_device_id *device_id = of_id->data;
+@@ -1610,17 +1623,6 @@
+ hdmi->dev_type = device_id->driver_data;
+ }
+
+- ddc_node = of_parse_phandle(np, "ddc-i2c-bus", 0);
+- if (ddc_node) {
+- hdmi->ddc = of_find_i2c_adapter_by_node(ddc_node);
+- if (!hdmi->ddc)
+- dev_dbg(hdmi->dev, "failed to read ddc node\n");
+-
+- of_node_put(ddc_node);
+- } else {
+- dev_dbg(hdmi->dev, "no ddc property found\n");
+- }
+-
+ irq = platform_get_irq(pdev, 0);
+ if (irq < 0)
+ return irq;
+@@ -1706,6 +1708,35 @@
+ /* Unmute interrupts */
+ hdmi_writeb(hdmi, ~HDMI_IH_PHY_STAT0_HPD, HDMI_IH_MUTE_PHY_STAT0);
+
++ memset(&pdevinfo, 0, sizeof(pdevinfo));
++ pdevinfo.parent = dev;
++ pdevinfo.id = PLATFORM_DEVID_AUTO;
++
++ audio.phys = iores->start;
++ audio.base = hdmi->regs;
++ audio.irq = irq;
++ audio.hdmi = hdmi;
++ audio.eld = hdmi->ddc_conn->connector.eld;
++ audio.set_sample_rate = imx_hdmi_set_sample_rate;
++
++ pdevinfo.name = "dw-hdmi-audio";
++ pdevinfo.data = &audio;
++ pdevinfo.size_data = sizeof(audio);
++ pdevinfo.dma_mask = DMA_BIT_MASK(32);
++ hdmi->audio = platform_device_register_full(&pdevinfo);
++
++ cec.base = hdmi->regs;
++ cec.irq = irq;
++ cec.ops = &imx_hdmi_cec_ops;
++ cec.ops_data = hdmi;
++
++ pdevinfo.name = "dw-hdmi-cec";
++ pdevinfo.data = &cec;
++ pdevinfo.size_data = sizeof(cec);
++ pdevinfo.dma_mask = 0;
++
++ hdmi->cec = platform_device_register_full(&pdevinfo);
++
+ dev_set_drvdata(dev, hdmi);
+
+ return 0;
+@@ -1723,15 +1754,18 @@
+ {
+ struct imx_hdmi *hdmi = dev_get_drvdata(dev);
+
++ if (!IS_ERR(hdmi->audio))
++ platform_device_unregister(hdmi->audio);
++ if (!IS_ERR(hdmi->cec))
++ platform_device_unregister(hdmi->cec);
++
+ /* Disable all interrupts */
+ hdmi_writeb(hdmi, ~0, HDMI_IH_MUTE_PHY_STAT0);
+
+- hdmi->connector.funcs->destroy(&hdmi->connector);
+ hdmi->encoder.funcs->destroy(&hdmi->encoder);
+
+ clk_disable_unprepare(hdmi->iahb_clk);
+ clk_disable_unprepare(hdmi->isfr_clk);
+- i2c_put_adapter(hdmi->ddc);
+ }
+
+ static const struct component_ops hdmi_ops = {
+diff -Nur linux-3.16.6.orig/drivers/staging/imx-drm/imx-ldb.c linux-3.16.6/drivers/staging/imx-drm/imx-ldb.c
+--- linux-3.16.6.orig/drivers/staging/imx-drm/imx-ldb.c 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/drivers/staging/imx-drm/imx-ldb.c 2014-10-23 12:35:16.922220006 -0500
+@@ -24,6 +24,7 @@
+ #include <drm/drmP.h>
+ #include <drm/drm_fb_helper.h>
+ #include <drm/drm_crtc_helper.h>
++#include <drm/drm_panel.h>
+ #include <linux/mfd/syscon.h>
+ #include <linux/mfd/syscon/imx6q-iomuxc-gpr.h>
+ #include <linux/of_address.h>
+@@ -60,6 +61,7 @@
+ struct imx_ldb *ldb;
+ struct drm_connector connector;
+ struct drm_encoder encoder;
++ struct drm_panel *panel;
+ struct device_node *child;
+ int chno;
+ void *edid;
+@@ -96,6 +98,13 @@
+ struct imx_ldb_channel *imx_ldb_ch = con_to_imx_ldb_ch(connector);
+ int num_modes = 0;
+
++ if (imx_ldb_ch->panel && imx_ldb_ch->panel->funcs &&
++ imx_ldb_ch->panel->funcs->get_modes) {
++ num_modes = imx_ldb_ch->panel->funcs->get_modes(imx_ldb_ch->panel);
++ if (num_modes > 0)
++ return num_modes;
++ }
++
+ if (imx_ldb_ch->edid) {
+ drm_mode_connector_update_edid_property(connector,
+ imx_ldb_ch->edid);
+@@ -243,6 +252,8 @@
+ }
+
+ regmap_write(ldb->regmap, IOMUXC_GPR2, ldb->ldb_ctrl);
++
++ drm_panel_enable(imx_ldb_ch->panel);
+ }
+
+ static void imx_ldb_encoder_mode_set(struct drm_encoder *encoder,
+@@ -294,6 +305,8 @@
+ (ldb->ldb_ctrl & LDB_CH1_MODE_EN_MASK) == 0)
+ return;
+
++ drm_panel_disable(imx_ldb_ch->panel);
++
+ if (imx_ldb_ch == &ldb->channel[0])
+ ldb->ldb_ctrl &= ~LDB_CH0_MODE_EN_MASK;
+ else if (imx_ldb_ch == &ldb->channel[1])
+@@ -378,6 +391,9 @@
+ drm_connector_init(drm, &imx_ldb_ch->connector,
+ &imx_ldb_connector_funcs, DRM_MODE_CONNECTOR_LVDS);
+
++ if (imx_ldb_ch->panel)
++ drm_panel_attach(imx_ldb_ch->panel, &imx_ldb_ch->connector);
++
+ drm_mode_connector_attach_encoder(&imx_ldb_ch->connector,
+ &imx_ldb_ch->encoder);
+
+@@ -492,6 +508,7 @@
+
+ for_each_child_of_node(np, child) {
+ struct imx_ldb_channel *channel;
++ struct device_node *panel_node;
+
+ ret = of_property_read_u32(child, "reg", &i);
+ if (ret || i < 0 || i > 1)
+@@ -555,6 +572,10 @@
+ return -EINVAL;
+ }
+
++ panel_node = of_parse_phandle(child, "fsl,panel", 0);
++ if (panel_node)
++ channel->panel = of_drm_find_panel(panel_node);
++
+ ret = imx_ldb_register(drm, channel);
+ if (ret)
+ return ret;
+@@ -574,9 +595,6 @@
+ for (i = 0; i < 2; i++) {
+ struct imx_ldb_channel *channel = &imx_ldb->channel[i];
+
+- if (!channel->connector.funcs)
+- continue;
+-
+ channel->connector.funcs->destroy(&channel->connector);
+ channel->encoder.funcs->destroy(&channel->encoder);
+ }
+diff -Nur linux-3.16.6.orig/drivers/staging/imx-drm/imx-ldb.c.orig linux-3.16.6/drivers/staging/imx-drm/imx-ldb.c.orig
+--- linux-3.16.6.orig/drivers/staging/imx-drm/imx-ldb.c.orig 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.16.6/drivers/staging/imx-drm/imx-ldb.c.orig 2014-10-15 05:05:43.000000000 -0500
+@@ -0,0 +1,616 @@
++/*
++ * i.MX drm driver - LVDS display bridge
++ *
++ * Copyright (C) 2012 Sascha Hauer, Pengutronix
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2
++ * of the License, or (at your option) any later version.
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
++ * MA 02110-1301, USA.
++ */
++
++#include <linux/module.h>
++#include <linux/clk.h>
++#include <linux/component.h>
++#include <drm/drmP.h>
++#include <drm/drm_fb_helper.h>
++#include <drm/drm_crtc_helper.h>
++#include <linux/mfd/syscon.h>
++#include <linux/mfd/syscon/imx6q-iomuxc-gpr.h>
++#include <linux/of_address.h>
++#include <linux/of_device.h>
++#include <video/of_videomode.h>
++#include <linux/regmap.h>
++#include <linux/videodev2.h>
++
++#include "imx-drm.h"
++
++#define DRIVER_NAME "imx-ldb"
++
++#define LDB_CH0_MODE_EN_TO_DI0 (1 << 0)
++#define LDB_CH0_MODE_EN_TO_DI1 (3 << 0)
++#define LDB_CH0_MODE_EN_MASK (3 << 0)
++#define LDB_CH1_MODE_EN_TO_DI0 (1 << 2)
++#define LDB_CH1_MODE_EN_TO_DI1 (3 << 2)
++#define LDB_CH1_MODE_EN_MASK (3 << 2)
++#define LDB_SPLIT_MODE_EN (1 << 4)
++#define LDB_DATA_WIDTH_CH0_24 (1 << 5)
++#define LDB_BIT_MAP_CH0_JEIDA (1 << 6)
++#define LDB_DATA_WIDTH_CH1_24 (1 << 7)
++#define LDB_BIT_MAP_CH1_JEIDA (1 << 8)
++#define LDB_DI0_VS_POL_ACT_LOW (1 << 9)
++#define LDB_DI1_VS_POL_ACT_LOW (1 << 10)
++#define LDB_BGREF_RMODE_INT (1 << 15)
++
++#define con_to_imx_ldb_ch(x) container_of(x, struct imx_ldb_channel, connector)
++#define enc_to_imx_ldb_ch(x) container_of(x, struct imx_ldb_channel, encoder)
++
++struct imx_ldb;
++
++struct imx_ldb_channel {
++ struct imx_ldb *ldb;
++ struct drm_connector connector;
++ struct drm_encoder encoder;
++ struct device_node *child;
++ int chno;
++ void *edid;
++ int edid_len;
++ struct drm_display_mode mode;
++ int mode_valid;
++};
++
++struct bus_mux {
++ int reg;
++ int shift;
++ int mask;
++};
++
++struct imx_ldb {
++ struct regmap *regmap;
++ struct device *dev;
++ struct imx_ldb_channel channel[2];
++ struct clk *clk[2]; /* our own clock */
++ struct clk *clk_sel[4]; /* parent of display clock */
++ struct clk *clk_pll[2]; /* upstream clock we can adjust */
++ u32 ldb_ctrl;
++ const struct bus_mux *lvds_mux;
++};
++
++static enum drm_connector_status imx_ldb_connector_detect(
++ struct drm_connector *connector, bool force)
++{
++ return connector_status_connected;
++}
++
++static int imx_ldb_connector_get_modes(struct drm_connector *connector)
++{
++ struct imx_ldb_channel *imx_ldb_ch = con_to_imx_ldb_ch(connector);
++ int num_modes = 0;
++
++ if (imx_ldb_ch->edid) {
++ drm_mode_connector_update_edid_property(connector,
++ imx_ldb_ch->edid);
++ num_modes = drm_add_edid_modes(connector, imx_ldb_ch->edid);
++ }
++
++ if (imx_ldb_ch->mode_valid) {
++ struct drm_display_mode *mode;
++
++ mode = drm_mode_create(connector->dev);
++ if (!mode)
++ return -EINVAL;
++ drm_mode_copy(mode, &imx_ldb_ch->mode);
++ mode->type |= DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED;
++ drm_mode_probed_add(connector, mode);
++ num_modes++;
++ }
++
++ return num_modes;
++}
++
++static struct drm_encoder *imx_ldb_connector_best_encoder(
++ struct drm_connector *connector)
++{
++ struct imx_ldb_channel *imx_ldb_ch = con_to_imx_ldb_ch(connector);
++
++ return &imx_ldb_ch->encoder;
++}
++
++static void imx_ldb_encoder_dpms(struct drm_encoder *encoder, int mode)
++{
++}
++
++static bool imx_ldb_encoder_mode_fixup(struct drm_encoder *encoder,
++ const struct drm_display_mode *mode,
++ struct drm_display_mode *adjusted_mode)
++{
++ return true;
++}
++
++static void imx_ldb_set_clock(struct imx_ldb *ldb, int mux, int chno,
++ unsigned long serial_clk, unsigned long di_clk)
++{
++ int ret;
++
++ dev_dbg(ldb->dev, "%s: now: %ld want: %ld\n", __func__,
++ clk_get_rate(ldb->clk_pll[chno]), serial_clk);
++ clk_set_rate(ldb->clk_pll[chno], serial_clk);
++
++ dev_dbg(ldb->dev, "%s after: %ld\n", __func__,
++ clk_get_rate(ldb->clk_pll[chno]));
++
++ dev_dbg(ldb->dev, "%s: now: %ld want: %ld\n", __func__,
++ clk_get_rate(ldb->clk[chno]),
++ (long int)di_clk);
++ clk_set_rate(ldb->clk[chno], di_clk);
++
++ dev_dbg(ldb->dev, "%s after: %ld\n", __func__,
++ clk_get_rate(ldb->clk[chno]));
++
++ /* set display clock mux to LDB input clock */
++ ret = clk_set_parent(ldb->clk_sel[mux], ldb->clk[chno]);
++ if (ret)
++ dev_err(ldb->dev,
++ "unable to set di%d parent clock to ldb_di%d\n", mux,
++ chno);
++}
++
++static void imx_ldb_encoder_prepare(struct drm_encoder *encoder)
++{
++ struct imx_ldb_channel *imx_ldb_ch = enc_to_imx_ldb_ch(encoder);
++ struct imx_ldb *ldb = imx_ldb_ch->ldb;
++ struct drm_display_mode *mode = &encoder->crtc->mode;
++ u32 pixel_fmt;
++ unsigned long serial_clk;
++ unsigned long di_clk = mode->clock * 1000;
++ int mux = imx_drm_encoder_get_mux_id(imx_ldb_ch->child, encoder);
++
++ if (ldb->ldb_ctrl & LDB_SPLIT_MODE_EN) {
++ /* dual channel LVDS mode */
++ serial_clk = 3500UL * mode->clock;
++ imx_ldb_set_clock(ldb, mux, 0, serial_clk, di_clk);
++ imx_ldb_set_clock(ldb, mux, 1, serial_clk, di_clk);
++ } else {
++ serial_clk = 7000UL * mode->clock;
++ imx_ldb_set_clock(ldb, mux, imx_ldb_ch->chno, serial_clk,
++ di_clk);
++ }
++
++ switch (imx_ldb_ch->chno) {
++ case 0:
++ pixel_fmt = (ldb->ldb_ctrl & LDB_DATA_WIDTH_CH0_24) ?
++ V4L2_PIX_FMT_RGB24 : V4L2_PIX_FMT_BGR666;
++ break;
++ case 1:
++ pixel_fmt = (ldb->ldb_ctrl & LDB_DATA_WIDTH_CH1_24) ?
++ V4L2_PIX_FMT_RGB24 : V4L2_PIX_FMT_BGR666;
++ break;
++ default:
++ dev_err(ldb->dev, "unable to config di%d panel format\n",
++ imx_ldb_ch->chno);
++ pixel_fmt = V4L2_PIX_FMT_RGB24;
++ }
++
++ imx_drm_panel_format(encoder, pixel_fmt);
++}
++
++static void imx_ldb_encoder_commit(struct drm_encoder *encoder)
++{
++ struct imx_ldb_channel *imx_ldb_ch = enc_to_imx_ldb_ch(encoder);
++ struct imx_ldb *ldb = imx_ldb_ch->ldb;
++ int dual = ldb->ldb_ctrl & LDB_SPLIT_MODE_EN;
++ int mux = imx_drm_encoder_get_mux_id(imx_ldb_ch->child, encoder);
++
++ if (dual) {
++ clk_prepare_enable(ldb->clk[0]);
++ clk_prepare_enable(ldb->clk[1]);
++ }
++
++ if (imx_ldb_ch == &ldb->channel[0] || dual) {
++ ldb->ldb_ctrl &= ~LDB_CH0_MODE_EN_MASK;
++ if (mux == 0 || ldb->lvds_mux)
++ ldb->ldb_ctrl |= LDB_CH0_MODE_EN_TO_DI0;
++ else if (mux == 1)
++ ldb->ldb_ctrl |= LDB_CH0_MODE_EN_TO_DI1;
++ }
++ if (imx_ldb_ch == &ldb->channel[1] || dual) {
++ ldb->ldb_ctrl &= ~LDB_CH1_MODE_EN_MASK;
++ if (mux == 1 || ldb->lvds_mux)
++ ldb->ldb_ctrl |= LDB_CH1_MODE_EN_TO_DI1;
++ else if (mux == 0)
++ ldb->ldb_ctrl |= LDB_CH1_MODE_EN_TO_DI0;
++ }
++
++ if (ldb->lvds_mux) {
++ const struct bus_mux *lvds_mux = NULL;
++
++ if (imx_ldb_ch == &ldb->channel[0])
++ lvds_mux = &ldb->lvds_mux[0];
++ else if (imx_ldb_ch == &ldb->channel[1])
++ lvds_mux = &ldb->lvds_mux[1];
++
++ regmap_update_bits(ldb->regmap, lvds_mux->reg, lvds_mux->mask,
++ mux << lvds_mux->shift);
++ }
++
++ regmap_write(ldb->regmap, IOMUXC_GPR2, ldb->ldb_ctrl);
++}
++
++static void imx_ldb_encoder_mode_set(struct drm_encoder *encoder,
++ struct drm_display_mode *mode,
++ struct drm_display_mode *adjusted_mode)
++{
++ struct imx_ldb_channel *imx_ldb_ch = enc_to_imx_ldb_ch(encoder);
++ struct imx_ldb *ldb = imx_ldb_ch->ldb;
++ int dual = ldb->ldb_ctrl & LDB_SPLIT_MODE_EN;
++
++ if (mode->clock > 170000) {
++ dev_warn(ldb->dev,
++ "%s: mode exceeds 170 MHz pixel clock\n", __func__);
++ }
++ if (mode->clock > 85000 && !dual) {
++ dev_warn(ldb->dev,
++ "%s: mode exceeds 85 MHz pixel clock\n", __func__);
++ }
++
++ /* FIXME - assumes straight connections DI0 --> CH0, DI1 --> CH1 */
++ if (imx_ldb_ch == &ldb->channel[0]) {
++ if (mode->flags & DRM_MODE_FLAG_NVSYNC)
++ ldb->ldb_ctrl |= LDB_DI0_VS_POL_ACT_LOW;
++ else if (mode->flags & DRM_MODE_FLAG_PVSYNC)
++ ldb->ldb_ctrl &= ~LDB_DI0_VS_POL_ACT_LOW;
++ }
++ if (imx_ldb_ch == &ldb->channel[1]) {
++ if (mode->flags & DRM_MODE_FLAG_NVSYNC)
++ ldb->ldb_ctrl |= LDB_DI1_VS_POL_ACT_LOW;
++ else if (mode->flags & DRM_MODE_FLAG_PVSYNC)
++ ldb->ldb_ctrl &= ~LDB_DI1_VS_POL_ACT_LOW;
++ }
++}
++
++static void imx_ldb_encoder_disable(struct drm_encoder *encoder)
++{
++ struct imx_ldb_channel *imx_ldb_ch = enc_to_imx_ldb_ch(encoder);
++ struct imx_ldb *ldb = imx_ldb_ch->ldb;
++
++ /*
++ * imx_ldb_encoder_disable is called by
++ * drm_helper_disable_unused_functions without
++ * the encoder being enabled before.
++ */
++ if (imx_ldb_ch == &ldb->channel[0] &&
++ (ldb->ldb_ctrl & LDB_CH0_MODE_EN_MASK) == 0)
++ return;
++ else if (imx_ldb_ch == &ldb->channel[1] &&
++ (ldb->ldb_ctrl & LDB_CH1_MODE_EN_MASK) == 0)
++ return;
++
++ if (imx_ldb_ch == &ldb->channel[0])
++ ldb->ldb_ctrl &= ~LDB_CH0_MODE_EN_MASK;
++ else if (imx_ldb_ch == &ldb->channel[1])
++ ldb->ldb_ctrl &= ~LDB_CH1_MODE_EN_MASK;
++
++ regmap_write(ldb->regmap, IOMUXC_GPR2, ldb->ldb_ctrl);
++
++ if (ldb->ldb_ctrl & LDB_SPLIT_MODE_EN) {
++ clk_disable_unprepare(ldb->clk[0]);
++ clk_disable_unprepare(ldb->clk[1]);
++ }
++}
++
++static struct drm_connector_funcs imx_ldb_connector_funcs = {
++ .dpms = drm_helper_connector_dpms,
++ .fill_modes = drm_helper_probe_single_connector_modes,
++ .detect = imx_ldb_connector_detect,
++ .destroy = imx_drm_connector_destroy,
++};
++
++static struct drm_connector_helper_funcs imx_ldb_connector_helper_funcs = {
++ .get_modes = imx_ldb_connector_get_modes,
++ .best_encoder = imx_ldb_connector_best_encoder,
++};
++
++static struct drm_encoder_funcs imx_ldb_encoder_funcs = {
++ .destroy = imx_drm_encoder_destroy,
++};
++
++static struct drm_encoder_helper_funcs imx_ldb_encoder_helper_funcs = {
++ .dpms = imx_ldb_encoder_dpms,
++ .mode_fixup = imx_ldb_encoder_mode_fixup,
++ .prepare = imx_ldb_encoder_prepare,
++ .commit = imx_ldb_encoder_commit,
++ .mode_set = imx_ldb_encoder_mode_set,
++ .disable = imx_ldb_encoder_disable,
++};
++
++static int imx_ldb_get_clk(struct imx_ldb *ldb, int chno)
++{
++ char clkname[16];
++
++ snprintf(clkname, sizeof(clkname), "di%d", chno);
++ ldb->clk[chno] = devm_clk_get(ldb->dev, clkname);
++ if (IS_ERR(ldb->clk[chno]))
++ return PTR_ERR(ldb->clk[chno]);
++
++ snprintf(clkname, sizeof(clkname), "di%d_pll", chno);
++ ldb->clk_pll[chno] = devm_clk_get(ldb->dev, clkname);
++
++ return PTR_ERR_OR_ZERO(ldb->clk_pll[chno]);
++}
++
++static int imx_ldb_register(struct drm_device *drm,
++ struct imx_ldb_channel *imx_ldb_ch)
++{
++ struct imx_ldb *ldb = imx_ldb_ch->ldb;
++ int ret;
++
++ ret = imx_drm_encoder_parse_of(drm, &imx_ldb_ch->encoder,
++ imx_ldb_ch->child);
++ if (ret)
++ return ret;
++
++ ret = imx_ldb_get_clk(ldb, imx_ldb_ch->chno);
++ if (ret)
++ return ret;
++
++ if (ldb->ldb_ctrl & LDB_SPLIT_MODE_EN) {
++ ret = imx_ldb_get_clk(ldb, 1);
++ if (ret)
++ return ret;
++ }
++
++ drm_encoder_helper_add(&imx_ldb_ch->encoder,
++ &imx_ldb_encoder_helper_funcs);
++ drm_encoder_init(drm, &imx_ldb_ch->encoder, &imx_ldb_encoder_funcs,
++ DRM_MODE_ENCODER_LVDS);
++
++ drm_connector_helper_add(&imx_ldb_ch->connector,
++ &imx_ldb_connector_helper_funcs);
++ drm_connector_init(drm, &imx_ldb_ch->connector,
++ &imx_ldb_connector_funcs, DRM_MODE_CONNECTOR_LVDS);
++
++ drm_mode_connector_attach_encoder(&imx_ldb_ch->connector,
++ &imx_ldb_ch->encoder);
++
++ return 0;
++}
++
++enum {
++ LVDS_BIT_MAP_SPWG,
++ LVDS_BIT_MAP_JEIDA
++};
++
++static const char * const imx_ldb_bit_mappings[] = {
++ [LVDS_BIT_MAP_SPWG] = "spwg",
++ [LVDS_BIT_MAP_JEIDA] = "jeida",
++};
++
++static const int of_get_data_mapping(struct device_node *np)
++{
++ const char *bm;
++ int ret, i;
++
++ ret = of_property_read_string(np, "fsl,data-mapping", &bm);
++ if (ret < 0)
++ return ret;
++
++ for (i = 0; i < ARRAY_SIZE(imx_ldb_bit_mappings); i++)
++ if (!strcasecmp(bm, imx_ldb_bit_mappings[i]))
++ return i;
++
++ return -EINVAL;
++}
++
++static struct bus_mux imx6q_lvds_mux[2] = {
++ {
++ .reg = IOMUXC_GPR3,
++ .shift = 6,
++ .mask = IMX6Q_GPR3_LVDS0_MUX_CTL_MASK,
++ }, {
++ .reg = IOMUXC_GPR3,
++ .shift = 8,
++ .mask = IMX6Q_GPR3_LVDS1_MUX_CTL_MASK,
++ }
++};
++
++/*
++ * For a device declaring compatible = "fsl,imx6q-ldb", "fsl,imx53-ldb",
++ * of_match_device will walk through this list and take the first entry
++ * matching any of its compatible values. Therefore, the more generic
++ * entries (in this case fsl,imx53-ldb) need to be ordered last.
++ */
++static const struct of_device_id imx_ldb_dt_ids[] = {
++ { .compatible = "fsl,imx6q-ldb", .data = imx6q_lvds_mux, },
++ { .compatible = "fsl,imx53-ldb", .data = NULL, },
++ { }
++};
++MODULE_DEVICE_TABLE(of, imx_ldb_dt_ids);
++
++static int imx_ldb_bind(struct device *dev, struct device *master, void *data)
++{
++ struct drm_device *drm = data;
++ struct device_node *np = dev->of_node;
++ const struct of_device_id *of_id =
++ of_match_device(imx_ldb_dt_ids, dev);
++ struct device_node *child;
++ const u8 *edidp;
++ struct imx_ldb *imx_ldb;
++ int datawidth;
++ int mapping;
++ int dual;
++ int ret;
++ int i;
++
++ imx_ldb = devm_kzalloc(dev, sizeof(*imx_ldb), GFP_KERNEL);
++ if (!imx_ldb)
++ return -ENOMEM;
++
++ imx_ldb->regmap = syscon_regmap_lookup_by_phandle(np, "gpr");
++ if (IS_ERR(imx_ldb->regmap)) {
++ dev_err(dev, "failed to get parent regmap\n");
++ return PTR_ERR(imx_ldb->regmap);
++ }
++
++ imx_ldb->dev = dev;
++
++ if (of_id)
++ imx_ldb->lvds_mux = of_id->data;
++
++ dual = of_property_read_bool(np, "fsl,dual-channel");
++ if (dual)
++ imx_ldb->ldb_ctrl |= LDB_SPLIT_MODE_EN;
++
++ /*
++ * There are three different possible clock mux configurations:
++ * i.MX53: ipu1_di0_sel, ipu1_di1_sel
++ * i.MX6q: ipu1_di0_sel, ipu1_di1_sel, ipu2_di0_sel, ipu2_di1_sel
++ * i.MX6dl: ipu1_di0_sel, ipu1_di1_sel, lcdif_sel
++ * Map them all to di0_sel...di3_sel.
++ */
++ for (i = 0; i < 4; i++) {
++ char clkname[16];
++
++ sprintf(clkname, "di%d_sel", i);
++ imx_ldb->clk_sel[i] = devm_clk_get(imx_ldb->dev, clkname);
++ if (IS_ERR(imx_ldb->clk_sel[i])) {
++ ret = PTR_ERR(imx_ldb->clk_sel[i]);
++ imx_ldb->clk_sel[i] = NULL;
++ break;
++ }
++ }
++ if (i == 0)
++ return ret;
++
++ for_each_child_of_node(np, child) {
++ struct imx_ldb_channel *channel;
++
++ ret = of_property_read_u32(child, "reg", &i);
++ if (ret || i < 0 || i > 1)
++ return -EINVAL;
++
++ if (dual && i > 0) {
++ dev_warn(dev, "dual-channel mode, ignoring second output\n");
++ continue;
++ }
++
++ if (!of_device_is_available(child))
++ continue;
++
++ channel = &imx_ldb->channel[i];
++ channel->ldb = imx_ldb;
++ channel->chno = i;
++ channel->child = child;
++
++ edidp = of_get_property(child, "edid", &channel->edid_len);
++ if (edidp) {
++ channel->edid = kmemdup(edidp, channel->edid_len,
++ GFP_KERNEL);
++ } else {
++ ret = of_get_drm_display_mode(child, &channel->mode, 0);
++ if (!ret)
++ channel->mode_valid = 1;
++ }
++
++ ret = of_property_read_u32(child, "fsl,data-width", &datawidth);
++ if (ret)
++ datawidth = 0;
++ else if (datawidth != 18 && datawidth != 24)
++ return -EINVAL;
++
++ mapping = of_get_data_mapping(child);
++ switch (mapping) {
++ case LVDS_BIT_MAP_SPWG:
++ if (datawidth == 24) {
++ if (i == 0 || dual)
++ imx_ldb->ldb_ctrl |=
++ LDB_DATA_WIDTH_CH0_24;
++ if (i == 1 || dual)
++ imx_ldb->ldb_ctrl |=
++ LDB_DATA_WIDTH_CH1_24;
++ }
++ break;
++ case LVDS_BIT_MAP_JEIDA:
++ if (datawidth == 18) {
++ dev_err(dev, "JEIDA standard only supported in 24 bit\n");
++ return -EINVAL;
++ }
++ if (i == 0 || dual)
++ imx_ldb->ldb_ctrl |= LDB_DATA_WIDTH_CH0_24 |
++ LDB_BIT_MAP_CH0_JEIDA;
++ if (i == 1 || dual)
++ imx_ldb->ldb_ctrl |= LDB_DATA_WIDTH_CH1_24 |
++ LDB_BIT_MAP_CH1_JEIDA;
++ break;
++ default:
++ dev_err(dev, "data mapping not specified or invalid\n");
++ return -EINVAL;
++ }
++
++ ret = imx_ldb_register(drm, channel);
++ if (ret)
++ return ret;
++ }
++
++ dev_set_drvdata(dev, imx_ldb);
++
++ return 0;
++}
++
++static void imx_ldb_unbind(struct device *dev, struct device *master,
++ void *data)
++{
++ struct imx_ldb *imx_ldb = dev_get_drvdata(dev);
++ int i;
++
++ for (i = 0; i < 2; i++) {
++ struct imx_ldb_channel *channel = &imx_ldb->channel[i];
++
++ if (!channel->connector.funcs)
++ continue;
++
++ channel->connector.funcs->destroy(&channel->connector);
++ channel->encoder.funcs->destroy(&channel->encoder);
++ }
++}
++
++static const struct component_ops imx_ldb_ops = {
++ .bind = imx_ldb_bind,
++ .unbind = imx_ldb_unbind,
++};
++
++static int imx_ldb_probe(struct platform_device *pdev)
++{
++ return component_add(&pdev->dev, &imx_ldb_ops);
++}
++
++static int imx_ldb_remove(struct platform_device *pdev)
++{
++ component_del(&pdev->dev, &imx_ldb_ops);
++ return 0;
++}
++
++static struct platform_driver imx_ldb_driver = {
++ .probe = imx_ldb_probe,
++ .remove = imx_ldb_remove,
++ .driver = {
++ .of_match_table = imx_ldb_dt_ids,
++ .name = DRIVER_NAME,
++ .owner = THIS_MODULE,
++ },
++};
++
++module_platform_driver(imx_ldb_driver);
++
++MODULE_DESCRIPTION("i.MX LVDS driver");
++MODULE_AUTHOR("Sascha Hauer, Pengutronix");
++MODULE_LICENSE("GPL");
++MODULE_ALIAS("platform:" DRIVER_NAME);
+diff -Nur linux-3.16.6.orig/drivers/staging/imx-drm/imx-tve.c linux-3.16.6/drivers/staging/imx-drm/imx-tve.c
+--- linux-3.16.6.orig/drivers/staging/imx-drm/imx-tve.c 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/drivers/staging/imx-drm/imx-tve.c 2014-10-23 12:37:30.182220005 -0500
+@@ -22,7 +22,6 @@
+ #include <linux/clk-provider.h>
+ #include <linux/component.h>
+ #include <linux/module.h>
+-#include <linux/i2c.h>
+ #include <linux/regmap.h>
+ #include <linux/regulator/consumer.h>
+ #include <linux/spinlock.h>
+@@ -32,6 +31,7 @@
+ #include <drm/drm_crtc_helper.h>
+ #include <video/imx-ipu-v3.h>
+
++#include "drm-ddc-connector.h"
+ #include "imx-drm.h"
+
+ #define TVE_COM_CONF_REG 0x00
+@@ -111,7 +111,7 @@
+ };
+
+ struct imx_tve {
+- struct drm_connector connector;
++ struct drm_ddc_connector *ddc_conn;
+ struct drm_encoder encoder;
+ struct device *dev;
+ spinlock_t lock; /* register lock */
+@@ -120,7 +120,6 @@
+
+ struct regmap *regmap;
+ struct regulator *dac_reg;
+- struct i2c_adapter *ddc;
+ struct clk *clk;
+ struct clk *di_sel_clk;
+ struct clk_hw clk_hw_di;
+@@ -219,35 +218,10 @@
+ return 0;
+ }
+
+-static enum drm_connector_status imx_tve_connector_detect(
+- struct drm_connector *connector, bool force)
+-{
+- return connector_status_connected;
+-}
+-
+-static int imx_tve_connector_get_modes(struct drm_connector *connector)
+-{
+- struct imx_tve *tve = con_to_tve(connector);
+- struct edid *edid;
+- int ret = 0;
+-
+- if (!tve->ddc)
+- return 0;
+-
+- edid = drm_get_edid(connector, tve->ddc);
+- if (edid) {
+- drm_mode_connector_update_edid_property(connector, edid);
+- ret = drm_add_edid_modes(connector, edid);
+- kfree(edid);
+- }
+-
+- return ret;
+-}
+-
+ static int imx_tve_connector_mode_valid(struct drm_connector *connector,
+ struct drm_display_mode *mode)
+ {
+- struct imx_tve *tve = con_to_tve(connector);
++ struct imx_tve *tve = to_ddc_conn(connector)->private;
+ unsigned long rate;
+
+ /* pixel clock with 2x oversampling */
+@@ -269,7 +243,7 @@
+ static struct drm_encoder *imx_tve_connector_best_encoder(
+ struct drm_connector *connector)
+ {
+- struct imx_tve *tve = con_to_tve(connector);
++ struct imx_tve *tve = drm_ddc_private(connector);
+
+ return &tve->encoder;
+ }
+@@ -360,12 +334,12 @@
+ static struct drm_connector_funcs imx_tve_connector_funcs = {
+ .dpms = drm_helper_connector_dpms,
+ .fill_modes = drm_helper_probe_single_connector_modes,
+- .detect = imx_tve_connector_detect,
+- .destroy = imx_drm_connector_destroy,
++ .detect = drm_ddc_connector_always_connected,
++ .destroy = drm_ddc_connector_destroy,
+ };
+
+ static struct drm_connector_helper_funcs imx_tve_connector_helper_funcs = {
+- .get_modes = imx_tve_connector_get_modes,
++ .get_modes = drm_ddc_connector_get_modes,
+ .best_encoder = imx_tve_connector_best_encoder,
+ .mode_valid = imx_tve_connector_mode_valid,
+ };
+@@ -508,12 +482,13 @@
+ drm_encoder_init(drm, &tve->encoder, &imx_tve_encoder_funcs,
+ encoder_type);
+
+- drm_connector_helper_add(&tve->connector,
++ drm_connector_helper_add(&tve->ddc_conn->connector,
+ &imx_tve_connector_helper_funcs);
+- drm_connector_init(drm, &tve->connector, &imx_tve_connector_funcs,
+- DRM_MODE_CONNECTOR_VGA);
++ drm_ddc_connector_add(drm, tve->ddc_conn, &imx_tve_connector_funcs,
++ DRM_MODE_CONNECTOR_VGA);
+
+- drm_mode_connector_attach_encoder(&tve->connector, &tve->encoder);
++ drm_mode_connector_attach_encoder(&tve->ddc_conn->connector,
++ &tve->encoder);
+
+ return 0;
+ }
+@@ -562,7 +537,6 @@
+ struct platform_device *pdev = to_platform_device(dev);
+ struct drm_device *drm = data;
+ struct device_node *np = dev->of_node;
+- struct device_node *ddc_node;
+ struct imx_tve *tve;
+ struct resource *res;
+ void __iomem *base;
+@@ -574,15 +548,13 @@
+ if (!tve)
+ return -ENOMEM;
+
++ tve->ddc_conn = drm_ddc_connector_create(drm, np, tve);
++ if (IS_ERR(tve->ddc_conn))
++ return PTR_ERR(tve->ddc_conn);
++
+ tve->dev = dev;
+ spin_lock_init(&tve->lock);
+
+- ddc_node = of_parse_phandle(np, "ddc-i2c-bus", 0);
+- if (ddc_node) {
+- tve->ddc = of_find_i2c_adapter_by_node(ddc_node);
+- of_node_put(ddc_node);
+- }
+-
+ tve->mode = of_get_tve_mode(np);
+ if (tve->mode != TVE_MODE_VGA) {
+ dev_err(dev, "only VGA mode supported, currently\n");
+@@ -689,7 +661,6 @@
+ {
+ struct imx_tve *tve = dev_get_drvdata(dev);
+
+- tve->connector.funcs->destroy(&tve->connector);
+ tve->encoder.funcs->destroy(&tve->encoder);
+
+ if (!IS_ERR(tve->dac_reg))
+diff -Nur linux-3.16.6.orig/drivers/staging/imx-drm/ipuv3-crtc.c linux-3.16.6/drivers/staging/imx-drm/ipuv3-crtc.c
+--- linux-3.16.6.orig/drivers/staging/imx-drm/ipuv3-crtc.c 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/drivers/staging/imx-drm/ipuv3-crtc.c 2014-10-23 12:37:37.690220197 -0500
+@@ -51,7 +51,6 @@
+ struct drm_framebuffer *newfb;
+ int irq;
+ u32 interface_pix_fmt;
+- unsigned long di_clkflags;
+ int di_hsync_pin;
+ int di_vsync_pin;
+ };
+@@ -146,10 +145,13 @@
+ int x, int y,
+ struct drm_framebuffer *old_fb)
+ {
++ struct drm_device *dev = crtc->dev;
++ struct drm_encoder *encoder;
+ struct ipu_crtc *ipu_crtc = to_ipu_crtc(crtc);
+- int ret;
+ struct ipu_di_signal_cfg sig_cfg = {};
++ unsigned long encoder_types = 0;
+ u32 out_pixel_fmt;
++ int ret;
+
+ dev_dbg(ipu_crtc->dev, "%s: mode->hdisplay: %d\n", __func__,
+ mode->hdisplay);
+@@ -165,8 +167,26 @@
+ if (mode->flags & DRM_MODE_FLAG_PVSYNC)
+ sig_cfg.Vsync_pol = 1;
+
+- sig_cfg.enable_pol = 1;
+- sig_cfg.clk_pol = 0;
++ list_for_each_entry(encoder, &dev->mode_config.encoder_list, head)
++ if (encoder->crtc == crtc)
++ encoder_types |= BIT(encoder->encoder_type);
++
++ dev_dbg(ipu_crtc->dev, "%s: attached to encoder types 0x%lx\n",
++ __func__, encoder_types);
++
++ /*
++ * If we have DAC, TVDAC or LDB, then we need the IPU DI clock
++ * to be the same as the LDB DI clock.
++ */
++ if (encoder_types & (BIT(DRM_MODE_ENCODER_DAC) |
++ BIT(DRM_MODE_ENCODER_TVDAC) |
++ BIT(DRM_MODE_ENCODER_LVDS)))
++ sig_cfg.clkflags = IPU_DI_CLKMODE_SYNC | IPU_DI_CLKMODE_EXT;
++ else
++ sig_cfg.clkflags = 0;
++
++ sig_cfg.enable_pol = ENABLE_POL_HIGH;
++ sig_cfg.clk_pol = CLK_POL_NEGEDGE;
+ sig_cfg.width = mode->hdisplay;
+ sig_cfg.height = mode->vdisplay;
+ sig_cfg.pixel_fmt = out_pixel_fmt;
+@@ -178,7 +198,6 @@
+ sig_cfg.v_sync_width = mode->vsync_end - mode->vsync_start;
+ sig_cfg.v_end_width = mode->vsync_start - mode->vdisplay;
+ sig_cfg.pixelclock = mode->clock * 1000;
+- sig_cfg.clkflags = ipu_crtc->di_clkflags;
+
+ sig_cfg.v_to_h_sync = 0;
+
+@@ -277,7 +296,7 @@
+ ipu_crtc->newfb = NULL;
+ }
+
+-static int ipu_set_interface_pix_fmt(struct drm_crtc *crtc, u32 encoder_type,
++static int ipu_set_interface_pix_fmt(struct drm_crtc *crtc,
+ u32 pixfmt, int hsync_pin, int vsync_pin)
+ {
+ struct ipu_crtc *ipu_crtc = to_ipu_crtc(crtc);
+@@ -286,19 +305,6 @@
+ ipu_crtc->di_hsync_pin = hsync_pin;
+ ipu_crtc->di_vsync_pin = vsync_pin;
+
+- switch (encoder_type) {
+- case DRM_MODE_ENCODER_DAC:
+- case DRM_MODE_ENCODER_TVDAC:
+- case DRM_MODE_ENCODER_LVDS:
+- ipu_crtc->di_clkflags = IPU_DI_CLKMODE_SYNC |
+- IPU_DI_CLKMODE_EXT;
+- break;
+- case DRM_MODE_ENCODER_TMDS:
+- case DRM_MODE_ENCODER_NONE:
+- ipu_crtc->di_clkflags = 0;
+- break;
+- }
+-
+ return 0;
+ }
+
+diff -Nur linux-3.16.6.orig/drivers/staging/imx-drm/ipuv3-plane.c linux-3.16.6/drivers/staging/imx-drm/ipuv3-plane.c
+--- linux-3.16.6.orig/drivers/staging/imx-drm/ipuv3-plane.c 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/drivers/staging/imx-drm/ipuv3-plane.c 2014-10-23 12:35:00.842220709 -0500
+@@ -281,8 +281,7 @@
+
+ ipu_idmac_put(ipu_plane->ipu_ch);
+ ipu_dmfc_put(ipu_plane->dmfc);
+- if (ipu_plane->dp)
+- ipu_dp_put(ipu_plane->dp);
++ ipu_dp_put(ipu_plane->dp);
+ }
+ }
+
+diff -Nur linux-3.16.6.orig/drivers/staging/imx-drm/ipuv3-plane.c.orig linux-3.16.6/drivers/staging/imx-drm/ipuv3-plane.c.orig
+--- linux-3.16.6.orig/drivers/staging/imx-drm/ipuv3-plane.c.orig 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.16.6/drivers/staging/imx-drm/ipuv3-plane.c.orig 2014-10-15 05:05:43.000000000 -0500
+@@ -0,0 +1,388 @@
++/*
++ * i.MX IPUv3 DP Overlay Planes
++ *
++ * Copyright (C) 2013 Philipp Zabel, Pengutronix
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2
++ * of the License, or (at your option) any later version.
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ */
++
++#include <drm/drmP.h>
++#include <drm/drm_fb_cma_helper.h>
++#include <drm/drm_gem_cma_helper.h>
++
++#include "video/imx-ipu-v3.h"
++#include "ipuv3-plane.h"
++
++#define to_ipu_plane(x) container_of(x, struct ipu_plane, base)
++
++static const uint32_t ipu_plane_formats[] = {
++ DRM_FORMAT_XRGB1555,
++ DRM_FORMAT_XBGR1555,
++ DRM_FORMAT_ARGB8888,
++ DRM_FORMAT_XRGB8888,
++ DRM_FORMAT_ABGR8888,
++ DRM_FORMAT_XBGR8888,
++ DRM_FORMAT_YUYV,
++ DRM_FORMAT_YVYU,
++ DRM_FORMAT_YUV420,
++ DRM_FORMAT_YVU420,
++};
++
++int ipu_plane_irq(struct ipu_plane *ipu_plane)
++{
++ return ipu_idmac_channel_irq(ipu_plane->ipu, ipu_plane->ipu_ch,
++ IPU_IRQ_EOF);
++}
++
++static int calc_vref(struct drm_display_mode *mode)
++{
++ unsigned long htotal, vtotal;
++
++ htotal = mode->htotal;
++ vtotal = mode->vtotal;
++
++ if (!htotal || !vtotal)
++ return 60;
++
++ return DIV_ROUND_UP(mode->clock * 1000, vtotal * htotal);
++}
++
++static inline int calc_bandwidth(int width, int height, unsigned int vref)
++{
++ return width * height * vref;
++}
++
++int ipu_plane_set_base(struct ipu_plane *ipu_plane, struct drm_framebuffer *fb,
++ int x, int y)
++{
++ struct ipu_ch_param __iomem *cpmem;
++ struct drm_gem_cma_object *cma_obj;
++ unsigned long eba;
++
++ cma_obj = drm_fb_cma_get_gem_obj(fb, 0);
++ if (!cma_obj) {
++ DRM_DEBUG_KMS("entry is null.\n");
++ return -EFAULT;
++ }
++
++ dev_dbg(ipu_plane->base.dev->dev, "phys = %pad, x = %d, y = %d",
++ &cma_obj->paddr, x, y);
++
++ cpmem = ipu_get_cpmem(ipu_plane->ipu_ch);
++ ipu_cpmem_set_stride(cpmem, fb->pitches[0]);
++
++ eba = cma_obj->paddr + fb->offsets[0] +
++ fb->pitches[0] * y + (fb->bits_per_pixel >> 3) * x;
++ ipu_cpmem_set_buffer(cpmem, 0, eba);
++ ipu_cpmem_set_buffer(cpmem, 1, eba);
++
++ /* cache offsets for subsequent pageflips */
++ ipu_plane->x = x;
++ ipu_plane->y = y;
++
++ return 0;
++}
++
++int ipu_plane_mode_set(struct ipu_plane *ipu_plane, struct drm_crtc *crtc,
++ struct drm_display_mode *mode,
++ struct drm_framebuffer *fb, int crtc_x, int crtc_y,
++ unsigned int crtc_w, unsigned int crtc_h,
++ uint32_t src_x, uint32_t src_y,
++ uint32_t src_w, uint32_t src_h)
++{
++ struct ipu_ch_param __iomem *cpmem;
++ struct device *dev = ipu_plane->base.dev->dev;
++ int ret;
++
++ /* no scaling */
++ if (src_w != crtc_w || src_h != crtc_h)
++ return -EINVAL;
++
++ /* clip to crtc bounds */
++ if (crtc_x < 0) {
++ if (-crtc_x > crtc_w)
++ return -EINVAL;
++ src_x += -crtc_x;
++ src_w -= -crtc_x;
++ crtc_w -= -crtc_x;
++ crtc_x = 0;
++ }
++ if (crtc_y < 0) {
++ if (-crtc_y > crtc_h)
++ return -EINVAL;
++ src_y += -crtc_y;
++ src_h -= -crtc_y;
++ crtc_h -= -crtc_y;
++ crtc_y = 0;
++ }
++ if (crtc_x + crtc_w > mode->hdisplay) {
++ if (crtc_x > mode->hdisplay)
++ return -EINVAL;
++ crtc_w = mode->hdisplay - crtc_x;
++ src_w = crtc_w;
++ }
++ if (crtc_y + crtc_h > mode->vdisplay) {
++ if (crtc_y > mode->vdisplay)
++ return -EINVAL;
++ crtc_h = mode->vdisplay - crtc_y;
++ src_h = crtc_h;
++ }
++ /* full plane minimum width is 13 pixels */
++ if (crtc_w < 13 && (ipu_plane->dp_flow != IPU_DP_FLOW_SYNC_FG))
++ return -EINVAL;
++ if (crtc_h < 2)
++ return -EINVAL;
++
++ switch (ipu_plane->dp_flow) {
++ case IPU_DP_FLOW_SYNC_BG:
++ ret = ipu_dp_setup_channel(ipu_plane->dp,
++ IPUV3_COLORSPACE_RGB,
++ IPUV3_COLORSPACE_RGB);
++ if (ret) {
++ dev_err(dev,
++ "initializing display processor failed with %d\n",
++ ret);
++ return ret;
++ }
++ ipu_dp_set_global_alpha(ipu_plane->dp, 1, 0, 1);
++ break;
++ case IPU_DP_FLOW_SYNC_FG:
++ ipu_dp_setup_channel(ipu_plane->dp,
++ ipu_drm_fourcc_to_colorspace(fb->pixel_format),
++ IPUV3_COLORSPACE_UNKNOWN);
++ ipu_dp_set_window_pos(ipu_plane->dp, crtc_x, crtc_y);
++ break;
++ }
++
++ ret = ipu_dmfc_init_channel(ipu_plane->dmfc, crtc_w);
++ if (ret) {
++ dev_err(dev, "initializing dmfc channel failed with %d\n", ret);
++ return ret;
++ }
++
++ ret = ipu_dmfc_alloc_bandwidth(ipu_plane->dmfc,
++ calc_bandwidth(crtc_w, crtc_h,
++ calc_vref(mode)), 64);
++ if (ret) {
++ dev_err(dev, "allocating dmfc bandwidth failed with %d\n", ret);
++ return ret;
++ }
++
++ cpmem = ipu_get_cpmem(ipu_plane->ipu_ch);
++ ipu_ch_param_zero(cpmem);
++ ipu_cpmem_set_resolution(cpmem, src_w, src_h);
++ ret = ipu_cpmem_set_fmt(cpmem, fb->pixel_format);
++ if (ret < 0) {
++ dev_err(dev, "unsupported pixel format 0x%08x\n",
++ fb->pixel_format);
++ return ret;
++ }
++ ipu_cpmem_set_high_priority(ipu_plane->ipu_ch);
++
++ ret = ipu_plane_set_base(ipu_plane, fb, src_x, src_y);
++ if (ret < 0)
++ return ret;
++
++ return 0;
++}
++
++void ipu_plane_put_resources(struct ipu_plane *ipu_plane)
++{
++ if (!IS_ERR_OR_NULL(ipu_plane->dp))
++ ipu_dp_put(ipu_plane->dp);
++ if (!IS_ERR_OR_NULL(ipu_plane->dmfc))
++ ipu_dmfc_put(ipu_plane->dmfc);
++ if (!IS_ERR_OR_NULL(ipu_plane->ipu_ch))
++ ipu_idmac_put(ipu_plane->ipu_ch);
++}
++
++int ipu_plane_get_resources(struct ipu_plane *ipu_plane)
++{
++ int ret;
++
++ ipu_plane->ipu_ch = ipu_idmac_get(ipu_plane->ipu, ipu_plane->dma);
++ if (IS_ERR(ipu_plane->ipu_ch)) {
++ ret = PTR_ERR(ipu_plane->ipu_ch);
++ DRM_ERROR("failed to get idmac channel: %d\n", ret);
++ return ret;
++ }
++
++ ipu_plane->dmfc = ipu_dmfc_get(ipu_plane->ipu, ipu_plane->dma);
++ if (IS_ERR(ipu_plane->dmfc)) {
++ ret = PTR_ERR(ipu_plane->dmfc);
++ DRM_ERROR("failed to get dmfc: ret %d\n", ret);
++ goto err_out;
++ }
++
++ if (ipu_plane->dp_flow >= 0) {
++ ipu_plane->dp = ipu_dp_get(ipu_plane->ipu, ipu_plane->dp_flow);
++ if (IS_ERR(ipu_plane->dp)) {
++ ret = PTR_ERR(ipu_plane->dp);
++ DRM_ERROR("failed to get dp flow: %d\n", ret);
++ goto err_out;
++ }
++ }
++
++ return 0;
++err_out:
++ ipu_plane_put_resources(ipu_plane);
++
++ return ret;
++}
++
++void ipu_plane_enable(struct ipu_plane *ipu_plane)
++{
++ if (ipu_plane->dp)
++ ipu_dp_enable(ipu_plane->ipu);
++ ipu_dmfc_enable_channel(ipu_plane->dmfc);
++ ipu_idmac_enable_channel(ipu_plane->ipu_ch);
++ if (ipu_plane->dp)
++ ipu_dp_enable_channel(ipu_plane->dp);
++
++ ipu_plane->enabled = true;
++}
++
++void ipu_plane_disable(struct ipu_plane *ipu_plane)
++{
++ ipu_plane->enabled = false;
++
++ ipu_idmac_wait_busy(ipu_plane->ipu_ch, 50);
++
++ if (ipu_plane->dp)
++ ipu_dp_disable_channel(ipu_plane->dp);
++ ipu_idmac_disable_channel(ipu_plane->ipu_ch);
++ ipu_dmfc_disable_channel(ipu_plane->dmfc);
++ if (ipu_plane->dp)
++ ipu_dp_disable(ipu_plane->ipu);
++}
++
++static void ipu_plane_dpms(struct ipu_plane *ipu_plane, int mode)
++{
++ bool enable;
++
++ DRM_DEBUG_KMS("mode = %d", mode);
++
++ enable = (mode == DRM_MODE_DPMS_ON);
++
++ if (enable == ipu_plane->enabled)
++ return;
++
++ if (enable) {
++ ipu_plane_enable(ipu_plane);
++ } else {
++ ipu_plane_disable(ipu_plane);
++
++ ipu_idmac_put(ipu_plane->ipu_ch);
++ ipu_dmfc_put(ipu_plane->dmfc);
++ if (ipu_plane->dp)
++ ipu_dp_put(ipu_plane->dp);
++ }
++}
++
++/*
++ * drm_plane API
++ */
++
++static int ipu_update_plane(struct drm_plane *plane, struct drm_crtc *crtc,
++ struct drm_framebuffer *fb, int crtc_x, int crtc_y,
++ unsigned int crtc_w, unsigned int crtc_h,
++ uint32_t src_x, uint32_t src_y,
++ uint32_t src_w, uint32_t src_h)
++{
++ struct ipu_plane *ipu_plane = to_ipu_plane(plane);
++ int ret = 0;
++
++ DRM_DEBUG_KMS("plane - %p\n", plane);
++
++ if (!ipu_plane->enabled)
++ ret = ipu_plane_get_resources(ipu_plane);
++ if (ret < 0)
++ return ret;
++
++ ret = ipu_plane_mode_set(ipu_plane, crtc, &crtc->hwmode, fb,
++ crtc_x, crtc_y, crtc_w, crtc_h,
++ src_x >> 16, src_y >> 16, src_w >> 16, src_h >> 16);
++ if (ret < 0) {
++ ipu_plane_put_resources(ipu_plane);
++ return ret;
++ }
++
++ if (crtc != plane->crtc)
++ dev_info(plane->dev->dev, "crtc change: %p -> %p\n",
++ plane->crtc, crtc);
++ plane->crtc = crtc;
++
++ ipu_plane_dpms(ipu_plane, DRM_MODE_DPMS_ON);
++
++ return 0;
++}
++
++static int ipu_disable_plane(struct drm_plane *plane)
++{
++ struct ipu_plane *ipu_plane = to_ipu_plane(plane);
++
++ DRM_DEBUG_KMS("[%d] %s\n", __LINE__, __func__);
++
++ ipu_plane_dpms(ipu_plane, DRM_MODE_DPMS_OFF);
++
++ ipu_plane_put_resources(ipu_plane);
++
++ return 0;
++}
++
++static void ipu_plane_destroy(struct drm_plane *plane)
++{
++ struct ipu_plane *ipu_plane = to_ipu_plane(plane);
++
++ DRM_DEBUG_KMS("[%d] %s\n", __LINE__, __func__);
++
++ ipu_disable_plane(plane);
++ drm_plane_cleanup(plane);
++ kfree(ipu_plane);
++}
++
++static struct drm_plane_funcs ipu_plane_funcs = {
++ .update_plane = ipu_update_plane,
++ .disable_plane = ipu_disable_plane,
++ .destroy = ipu_plane_destroy,
++};
++
++struct ipu_plane *ipu_plane_init(struct drm_device *dev, struct ipu_soc *ipu,
++ int dma, int dp, unsigned int possible_crtcs,
++ bool priv)
++{
++ struct ipu_plane *ipu_plane;
++ int ret;
++
++ DRM_DEBUG_KMS("channel %d, dp flow %d, possible_crtcs=0x%x\n",
++ dma, dp, possible_crtcs);
++
++ ipu_plane = kzalloc(sizeof(*ipu_plane), GFP_KERNEL);
++ if (!ipu_plane) {
++ DRM_ERROR("failed to allocate plane\n");
++ return ERR_PTR(-ENOMEM);
++ }
++
++ ipu_plane->ipu = ipu;
++ ipu_plane->dma = dma;
++ ipu_plane->dp_flow = dp;
++
++ ret = drm_plane_init(dev, &ipu_plane->base, possible_crtcs,
++ &ipu_plane_funcs, ipu_plane_formats,
++ ARRAY_SIZE(ipu_plane_formats),
++ priv);
++ if (ret) {
++ DRM_ERROR("failed to initialize plane\n");
++ kfree(ipu_plane);
++ return ERR_PTR(ret);
++ }
++
++ return ipu_plane;
++}
+diff -Nur linux-3.16.6.orig/drivers/staging/imx-drm/Kconfig linux-3.16.6/drivers/staging/imx-drm/Kconfig
+--- linux-3.16.6.orig/drivers/staging/imx-drm/Kconfig 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/drivers/staging/imx-drm/Kconfig 2014-10-23 12:37:23.890220362 -0500
+@@ -35,6 +35,7 @@
+ config DRM_IMX_LDB
+ tristate "Support for LVDS displays"
+ depends on DRM_IMX && MFD_SYSCON
++ select DRM_PANEL
+ help
+ Choose this to enable the internal LVDS Display Bridge (LDB)
+ found on i.MX53 and i.MX6 processors.
+@@ -51,3 +52,20 @@
+ depends on DRM_IMX
+ help
+ Choose this if you want to use HDMI on i.MX6.
++
++config DRM_DW_HDMI_AUDIO
++ tristate "Synopsis Designware Audio interface"
++ depends on DRM_IMX_HDMI != n
++ help
++ Support the Audio interface which is part of the Synopsis
++ Designware HDMI block. This is used in conjunction with
++ the i.MX HDMI driver.
++
++config DRM_DW_HDMI_CEC
++ tristate "Synopsis Designware CEC interface"
++ depends on DRM_IMX_HDMI != n
++ select HDMI_CEC_CORE
++ help
++ Support the CEC interface which is part of the Synposis
++ Designware HDMI block. This is used in conjunction with
++ the i.MX HDMI driver.
+diff -Nur linux-3.16.6.orig/drivers/staging/imx-drm/Kconfig.orig linux-3.16.6/drivers/staging/imx-drm/Kconfig.orig
+--- linux-3.16.6.orig/drivers/staging/imx-drm/Kconfig.orig 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.16.6/drivers/staging/imx-drm/Kconfig.orig 2014-10-23 12:35:45.310219999 -0500
+@@ -0,0 +1,62 @@
++config DRM_IMX
++ tristate "DRM Support for Freescale i.MX"
++ select DRM_KMS_HELPER
++ select DRM_KMS_FB_HELPER
++ select VIDEOMODE_HELPERS
++ select DRM_GEM_CMA_HELPER
++ select DRM_KMS_CMA_HELPER
++ depends on DRM && (ARCH_MXC || ARCH_MULTIPLATFORM)
++ help
++ enable i.MX graphics support
++
++config DRM_IMX_FB_HELPER
++ tristate "provide legacy framebuffer /dev/fb0"
++ select DRM_KMS_CMA_HELPER
++ depends on DRM_IMX
++ help
++ The DRM framework can provide a legacy /dev/fb0 framebuffer
++ for your device. This is necessary to get a framebuffer console
++ and also for applications using the legacy framebuffer API
++
++config DRM_IMX_PARALLEL_DISPLAY
++ tristate "Support for parallel displays"
++ select DRM_PANEL
++ depends on DRM_IMX
++ select VIDEOMODE_HELPERS
++
++config DRM_IMX_TVE
++ tristate "Support for TV and VGA displays"
++ depends on DRM_IMX
++ select REGMAP_MMIO
++ help
++ Choose this to enable the internal Television Encoder (TVe)
++ found on i.MX53 processors.
++
++config DRM_IMX_LDB
++ tristate "Support for LVDS displays"
++ depends on DRM_IMX && MFD_SYSCON
++ select DRM_PANEL
++ help
++ Choose this to enable the internal LVDS Display Bridge (LDB)
++ found on i.MX53 and i.MX6 processors.
++
++config DRM_IMX_IPUV3
++ tristate "DRM Support for i.MX IPUv3"
++ depends on DRM_IMX
++ depends on IMX_IPUV3_CORE
++ help
++ Choose this if you have a i.MX5 or i.MX6 processor.
++
++config DRM_IMX_HDMI
++ tristate "Freescale i.MX DRM HDMI"
++ depends on DRM_IMX
++ help
++ Choose this if you want to use HDMI on i.MX6.
++
++config DRM_DW_HDMI_AUDIO
++ tristate "Synopsis Designware Audio interface"
++ depends on DRM_IMX_HDMI != n
++ help
++ Support the Audio interface which is part of the Synopsis
++ Designware HDMI block. This is used in conjunction with
++ the i.MX HDMI driver.
+diff -Nur linux-3.16.6.orig/drivers/staging/imx-drm/Makefile linux-3.16.6/drivers/staging/imx-drm/Makefile
+--- linux-3.16.6.orig/drivers/staging/imx-drm/Makefile 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/drivers/staging/imx-drm/Makefile 2014-10-23 12:37:30.178219970 -0500
+@@ -3,6 +3,7 @@
+
+ obj-$(CONFIG_DRM_IMX) += imxdrm.o
+
++obj-$(CONFIG_DRM_IMX) += drm-ddc-connector.o
+ obj-$(CONFIG_DRM_IMX_PARALLEL_DISPLAY) += parallel-display.o
+ obj-$(CONFIG_DRM_IMX_TVE) += imx-tve.o
+ obj-$(CONFIG_DRM_IMX_LDB) += imx-ldb.o
+@@ -10,3 +11,5 @@
+ imx-ipuv3-crtc-objs := ipuv3-crtc.o ipuv3-plane.o
+ obj-$(CONFIG_DRM_IMX_IPUV3) += imx-ipuv3-crtc.o
+ obj-$(CONFIG_DRM_IMX_HDMI) += imx-hdmi.o
++obj-$(CONFIG_DRM_DW_HDMI_AUDIO) += dw-hdmi-audio.o
++obj-$(CONFIG_DRM_DW_HDMI_CEC) += dw-hdmi-cec.o
+diff -Nur linux-3.16.6.orig/drivers/staging/imx-drm/parallel-display.c linux-3.16.6/drivers/staging/imx-drm/parallel-display.c
+--- linux-3.16.6.orig/drivers/staging/imx-drm/parallel-display.c 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/drivers/staging/imx-drm/parallel-display.c 2014-10-23 12:35:30.986219995 -0500
+@@ -225,6 +225,8 @@
+ imxpd->interface_pix_fmt = V4L2_PIX_FMT_RGB565;
+ else if (!strcmp(fmt, "bgr666"))
+ imxpd->interface_pix_fmt = V4L2_PIX_FMT_BGR666;
++ else if (!strcmp(fmt, "rgb666"))
++ imxpd->interface_pix_fmt = V4L2_PIX_FMT_RGB666;
+ else if (!strcmp(fmt, "lvds666"))
+ imxpd->interface_pix_fmt = v4l2_fourcc('L', 'V', 'D', '6');
+ }
+diff -Nur linux-3.16.6.orig/include/linux/cec-dev.h linux-3.16.6/include/linux/cec-dev.h
+--- linux-3.16.6.orig/include/linux/cec-dev.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.16.6/include/linux/cec-dev.h 2014-10-23 12:37:18.374219998 -0500
+@@ -0,0 +1,69 @@
++#ifndef _LINUX_CEC_DEV_H
++#define _LINUX_CEC_DEV_H
++
++#include <linux/cdev.h>
++#include <linux/list.h>
++#include <linux/mutex.h>
++#include <linux/spinlock.h>
++#include <linux/wait.h>
++
++#include <uapi/linux/cec-dev.h>
++
++struct device;
++
++struct cec_dev {
++ struct cdev cdev;
++ dev_t devn;
++
++ struct mutex mutex;
++ unsigned users;
++
++ spinlock_t lock;
++ wait_queue_head_t waitq;
++ struct list_head events;
++ u8 write_busy;
++
++ u8 retries;
++ u16 addresses;
++ u16 physical;
++
++ int (*open)(struct cec_dev *);
++ void (*release)(struct cec_dev *);
++ void (*send_message)(struct cec_dev *, u8 *, size_t);
++ void (*set_address)(struct cec_dev *, unsigned);
++};
++
++void cec_dev_event(struct cec_dev *cec_dev, int type, u8 *msg, size_t len);
++
++static inline void cec_dev_receive(struct cec_dev *cec_dev, u8 *msg,
++ unsigned len)
++{
++ cec_dev_event(cec_dev, MESSAGE_TYPE_RECEIVE_SUCCESS, msg, len);
++}
++
++static inline void cec_dev_send_complete(struct cec_dev *cec_dev, int ack)
++{
++ cec_dev->retries = 0;
++ cec_dev->write_busy = 0;
++
++ cec_dev_event(cec_dev, ack ? MESSAGE_TYPE_SEND_SUCCESS :
++ MESSAGE_TYPE_NOACK, NULL, 0);
++}
++
++static inline void cec_dev_disconnect(struct cec_dev *cec_dev)
++{
++ cec_dev->physical = 0;
++ cec_dev_event(cec_dev, MESSAGE_TYPE_DISCONNECTED, NULL, 0);
++}
++
++static inline void cec_dev_connect(struct cec_dev *cec_dev, u32 phys)
++{
++ cec_dev->physical = phys;
++ cec_dev_event(cec_dev, MESSAGE_TYPE_CONNECTED, NULL, 0);
++}
++
++void cec_dev_init(struct cec_dev *cec_dev, struct module *);
++int cec_dev_add(struct cec_dev *cec_dev, struct device *, const char *name);
++void cec_dev_remove(struct cec_dev *cec_dev);
++
++#endif
+diff -Nur linux-3.16.6.orig/include/linux/mmc/host.h linux-3.16.6/include/linux/mmc/host.h
+--- linux-3.16.6.orig/include/linux/mmc/host.h 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/include/linux/mmc/host.h 2014-10-23 12:34:18.742220000 -0500
+@@ -298,6 +298,11 @@
+ unsigned long clkgate_delay;
+ #endif
+
++ /* card specific properties to deal with power and reset */
++ struct regulator *card_regulator; /* External VCC needed by the card */
++ struct gpio_desc *card_reset_gpios[2]; /* External resets, active low */
++ struct clk *card_clk; /* External clock needed by the card */
++
+ /* host specific block data */
+ unsigned int max_seg_size; /* see blk_queue_max_segment_size */
+ unsigned short max_segs; /* see blk_queue_max_segments */
+diff -Nur linux-3.16.6.orig/include/uapi/linux/cec-dev.h linux-3.16.6/include/uapi/linux/cec-dev.h
+--- linux-3.16.6.orig/include/uapi/linux/cec-dev.h 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.16.6/include/uapi/linux/cec-dev.h 2014-10-23 12:37:18.374219998 -0500
+@@ -0,0 +1,34 @@
++#ifndef _UAPI_LINUX_CEC_DEV_H
++#define _UAPI_LINUX_CEC_DEV_H
++
++#include <linux/ioctl.h>
++#include <linux/types.h>
++
++#define MAX_MESSAGE_LEN 16
++
++enum {
++ HDMICEC_IOC_MAGIC = 'H',
++ /* This is wrong: we pass the argument as a number, not a pointer */
++ HDMICEC_IOC_O_SETLOGICALADDRESS = _IOW(HDMICEC_IOC_MAGIC, 1, unsigned char),
++ HDMICEC_IOC_SETLOGICALADDRESS = _IO(HDMICEC_IOC_MAGIC, 1),
++ HDMICEC_IOC_STARTDEVICE = _IO(HDMICEC_IOC_MAGIC, 2),
++ HDMICEC_IOC_STOPDEVICE = _IO(HDMICEC_IOC_MAGIC, 3),
++ HDMICEC_IOC_GETPHYADDRESS = _IOR(HDMICEC_IOC_MAGIC, 4, unsigned char[4]),
++};
++
++enum {
++ MESSAGE_TYPE_RECEIVE_SUCCESS = 1,
++ MESSAGE_TYPE_NOACK,
++ MESSAGE_TYPE_DISCONNECTED,
++ MESSAGE_TYPE_CONNECTED,
++ MESSAGE_TYPE_SEND_SUCCESS,
++ MESSAGE_TYPE_SEND_ERROR,
++};
++
++struct cec_user_event {
++ __u32 event_type;
++ __u32 msg_len;
++ __u8 msg[MAX_MESSAGE_LEN];
++};
++
++#endif
+diff -Nur linux-3.16.6.orig/include/uapi/linux/videodev2.h linux-3.16.6/include/uapi/linux/videodev2.h
+--- linux-3.16.6.orig/include/uapi/linux/videodev2.h 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/include/uapi/linux/videodev2.h 2014-10-23 12:35:23.722220002 -0500
+@@ -299,6 +299,7 @@
+ #define V4L2_PIX_FMT_RGB555X v4l2_fourcc('R', 'G', 'B', 'Q') /* 16 RGB-5-5-5 BE */
+ #define V4L2_PIX_FMT_RGB565X v4l2_fourcc('R', 'G', 'B', 'R') /* 16 RGB-5-6-5 BE */
+ #define V4L2_PIX_FMT_BGR666 v4l2_fourcc('B', 'G', 'R', 'H') /* 18 BGR-6-6-6 */
++#define V4L2_PIX_FMT_RGB666 v4l2_fourcc('R', 'G', 'B', 'H') /* 18 RGB-6-6-6 */
+ #define V4L2_PIX_FMT_BGR24 v4l2_fourcc('B', 'G', 'R', '3') /* 24 BGR-8-8-8 */
+ #define V4L2_PIX_FMT_RGB24 v4l2_fourcc('R', 'G', 'B', '3') /* 24 RGB-8-8-8 */
+ #define V4L2_PIX_FMT_BGR32 v4l2_fourcc('B', 'G', 'R', '4') /* 32 BGR-8-8-8-8 */
+diff -Nur linux-3.16.6.orig/include/video/imx-ipu-v3.h linux-3.16.6/include/video/imx-ipu-v3.h
+--- linux-3.16.6.orig/include/video/imx-ipu-v3.h 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/include/video/imx-ipu-v3.h 2014-10-23 12:35:38.090219994 -0500
+@@ -27,6 +27,12 @@
+
+ #define IPU_PIX_FMT_GBR24 v4l2_fourcc('G', 'B', 'R', '3')
+
++#define CLK_POL_NEGEDGE 0
++#define CLK_POL_POSEDGE 1
++
++#define ENABLE_POL_LOW 0
++#define ENABLE_POL_HIGH 1
++
+ /*
+ * Bitfield of Display Interface signal polarities.
+ */
+@@ -37,7 +43,7 @@
+ unsigned clksel_en:1;
+ unsigned clkidle_en:1;
+ unsigned data_pol:1; /* true = inverted */
+- unsigned clk_pol:1; /* true = rising edge */
++ unsigned clk_pol:1;
+ unsigned enable_pol:1;
+ unsigned Hsync_pol:1; /* true = active high */
+ unsigned Vsync_pol:1;
+diff -Nur linux-3.16.6.orig/sound/soc/codecs/sgtl5000.c linux-3.16.6/sound/soc/codecs/sgtl5000.c
+--- linux-3.16.6.orig/sound/soc/codecs/sgtl5000.c 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/sound/soc/codecs/sgtl5000.c 2014-10-23 12:37:45.114220003 -0500
+@@ -773,7 +773,7 @@
+ struct ldo_regulator *ldo = rdev_get_drvdata(dev);
+ struct snd_soc_codec *codec = (struct snd_soc_codec *)ldo->codec_data;
+ int reg;
+-
++dev_info(codec->dev, "%s(): enabled %u\n", __func__, ldo->enabled);
+ if (ldo_regulator_is_enabled(dev))
+ return 0;
+
+@@ -805,10 +805,16 @@
+ {
+ struct ldo_regulator *ldo = rdev_get_drvdata(dev);
+ struct snd_soc_codec *codec = (struct snd_soc_codec *)ldo->codec_data;
++dev_info(codec->dev, "%s(): enabled %u\n", __func__, ldo->enabled);
++
++ snd_soc_update_bits(codec, SGTL5000_CHIP_ANA_POWER,
++ SGTL5000_LINREG_SIMPLE_POWERUP,
++ SGTL5000_LINREG_SIMPLE_POWERUP);
+
+ snd_soc_update_bits(codec, SGTL5000_CHIP_ANA_POWER,
+ SGTL5000_LINEREG_D_POWERUP,
+ 0);
++dev_info(codec->dev, "%s: ANA_POWER = 0x%04x\n", __func__, snd_soc_read(codec, SGTL5000_CHIP_ANA_POWER));
+
+ /* clear voltage info */
+ snd_soc_update_bits(codec, SGTL5000_CHIP_LINREG_CTRL,
+@@ -866,6 +872,7 @@
+ config.dev = codec->dev;
+ config.driver_data = ldo;
+ config.init_data = init_data;
++ config.ena_gpio = -EINVAL;
+
+ ldo->dev = regulator_register(&ldo->desc, &config);
+ if (IS_ERR(ldo->dev)) {
+@@ -1159,8 +1166,11 @@
+ * if vddio and vddd > 3.1v,
+ * charge pump should be clean before set ana_pwr
+ */
+- snd_soc_update_bits(codec, SGTL5000_CHIP_ANA_POWER,
+- SGTL5000_VDDC_CHRGPMP_POWERUP, 0);
++// FIXME: this is total crap - we have read this register above into
++// ana_pwr, which we then modify (above), and then write back to the
++// register below. This modification just gets completely overwritten.
++// snd_soc_update_bits(codec, SGTL5000_CHIP_ANA_POWER,
++// SGTL5000_VDDC_CHRGPMP_POWERUP, 0);
+
+ /* VDDC use VDDIO rail */
+ lreg_ctrl |= SGTL5000_VDDC_ASSN_OVRD;
+@@ -1304,6 +1314,9 @@
+ int ret;
+ struct sgtl5000_priv *sgtl5000 = snd_soc_codec_get_drvdata(codec);
+
++ if (!devres_open_group(codec->dev, NULL, GFP_KERNEL))
++ return -ENOMEM;
++
+ ret = sgtl5000_enable_regulators(codec);
+ if (ret)
+ return ret;
+@@ -1361,6 +1374,9 @@
+ err:
+ regulator_bulk_disable(ARRAY_SIZE(sgtl5000->supplies),
+ sgtl5000->supplies);
++
++ devres_release_group(codec->dev, NULL);
++
+ ldo_regulator_remove(codec);
+
+ return ret;
+@@ -1374,6 +1390,9 @@
+
+ regulator_bulk_disable(ARRAY_SIZE(sgtl5000->supplies),
+ sgtl5000->supplies);
++
++ devres_release_group(codec->dev, NULL);
++
+ ldo_regulator_remove(codec);
+
+ return 0;
+diff -Nur linux-3.16.6.orig/sound/soc/fsl/imx-pcm-dma.c linux-3.16.6/sound/soc/fsl/imx-pcm-dma.c
+--- linux-3.16.6.orig/sound/soc/fsl/imx-pcm-dma.c 2014-10-15 05:05:43.000000000 -0500
++++ linux-3.16.6/sound/soc/fsl/imx-pcm-dma.c 2014-10-23 12:35:54.206220260 -0500
+@@ -43,7 +43,7 @@
+ .buffer_bytes_max = IMX_SSI_DMABUF_SIZE,
+ .period_bytes_min = 128,
+ .period_bytes_max = 65535, /* Limited by SDMA engine */
+- .periods_min = 2,
++ .periods_min = 4,
+ .periods_max = 255,
+ .fifo_size = 0,
+ };
+@@ -59,6 +59,7 @@
+ {
+ return devm_snd_dmaengine_pcm_register(&pdev->dev,
+ &imx_dmaengine_pcm_config,
++ SND_DMAENGINE_PCM_FLAG_NO_RESIDUE |
+ SND_DMAENGINE_PCM_FLAG_COMPAT);
+ }
+ EXPORT_SYMBOL_GPL(imx_pcm_dma_init);
+diff -Nur linux-3.16.6.orig/sound/soc/fsl/imx-pcm-dma.c.orig linux-3.16.6/sound/soc/fsl/imx-pcm-dma.c.orig
+--- linux-3.16.6.orig/sound/soc/fsl/imx-pcm-dma.c.orig 1969-12-31 18:00:00.000000000 -0600
++++ linux-3.16.6/sound/soc/fsl/imx-pcm-dma.c.orig 2014-10-23 12:26:49.542220041 -0500
+@@ -0,0 +1,66 @@
++/*
++ * imx-pcm-dma-mx2.c -- ALSA Soc Audio Layer
++ *
++ * Copyright 2009 Sascha Hauer <s.hauer@pengutronix.de>
++ *
++ * This code is based on code copyrighted by Freescale,
++ * Liam Girdwood, Javier Martin and probably others.
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ */
++#include <linux/platform_device.h>
++#include <linux/dmaengine.h>
++#include <linux/types.h>
++#include <linux/module.h>
++
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/soc.h>
++#include <sound/dmaengine_pcm.h>
++
++#include "imx-pcm.h"
++
++static bool filter(struct dma_chan *chan, void *param)
++{
++ if (!imx_dma_is_general_purpose(chan))
++ return false;
++
++ chan->private = param;
++
++ return true;
++}
++
++static const struct snd_pcm_hardware imx_pcm_hardware = {
++ .info = SNDRV_PCM_INFO_INTERLEAVED |
++ SNDRV_PCM_INFO_BLOCK_TRANSFER |
++ SNDRV_PCM_INFO_MMAP |
++ SNDRV_PCM_INFO_MMAP_VALID |
++ SNDRV_PCM_INFO_PAUSE |
++ SNDRV_PCM_INFO_RESUME,
++ .buffer_bytes_max = IMX_SSI_DMABUF_SIZE,
++ .period_bytes_min = 128,
++ .period_bytes_max = 65535, /* Limited by SDMA engine */
++ .periods_min = 4,
++ .periods_max = 255,
++ .fifo_size = 0,
++};
++
++static const struct snd_dmaengine_pcm_config imx_dmaengine_pcm_config = {
++ .pcm_hardware = &imx_pcm_hardware,
++ .prepare_slave_config = snd_dmaengine_pcm_prepare_slave_config,
++ .compat_filter_fn = filter,
++ .prealloc_buffer_size = IMX_SSI_DMABUF_SIZE,
++};
++
++int imx_pcm_dma_init(struct platform_device *pdev)
++{
++ return devm_snd_dmaengine_pcm_register(&pdev->dev,
++ &imx_dmaengine_pcm_config,
++ SND_DMAENGINE_PCM_FLAG_COMPAT);
++}
++EXPORT_SYMBOL_GPL(imx_pcm_dma_init);
++
++MODULE_LICENSE("GPL");