diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2014-10-27 16:08:15 -0500 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2014-10-28 02:25:20 -0500 |
commit | 309009db48cf84e4c3bf7785a788e972a519821a (patch) | |
tree | a43e39c4e0c7b54a67762554bcf6456fa7c452b2 /target/arm/solidrun-imx6/patches | |
parent | 5f591665d8c5000c85eb30737a9484655f3439c5 (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.patch | 569 | ||||
-rw-r--r-- | target/arm/solidrun-imx6/patches/3.16.6/rmk.patch | 7601 |
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 = <®_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 = <®_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 = <®_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 = <®_3p3v>; + VDDIO-supply = <®_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 = <®_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 = <®_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 = <®_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 = <®_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 = <®_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 = <®_audio>; + VLC-supply = <®_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 = <®_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 = <®_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 = <®_3p3v>; ++ VDDIO-supply = <®_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 = <®_usbh1_vbus>; + status = "okay"; + }; + + &usbotg { ++ disable-over-current; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_hummingboard_usbotg_id>; + vbus-supply = <®_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 = <®_usbh1_vbus>; + status = "okay"; + }; + + &usbotg { + pinctrl-names = "default"; +- pinctrl-0 = <&pinctrl_cubox_i_usbotg_id>; ++ pinctrl-0 = <&pinctrl_cubox_i_usbotg>; + vbus-supply = <®_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 = <®_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 = <®_usbh1_vbus>; ++ status = "okay"; ++}; ++ ++&usbotg { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_cubox_i_usbotg>; ++ vbus-supply = <®_usbotg_vbus>; ++ status = "okay"; ++}; ++ ++&usdhc2 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_cubox_i_usdhc2_aux &pinctrl_cubox_i_usdhc2>; ++ vmmc-supply = <®_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 = <®_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 = <®_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, ®ulator_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, ®ulator_ena_gpio_list); + +@@ -1701,10 +1705,10 @@ + + /* Free the GPIO only in case of no use */ + list_for_each_entry_safe(pin, n, ®ulator_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"); |