diff options
author | Waldemar Brodkorb <wbrodkorb@conet.de> | 2015-01-19 14:52:06 +0100 |
---|---|---|
committer | Waldemar Brodkorb <wbrodkorb@conet.de> | 2015-01-19 14:52:06 +0100 |
commit | ff00cdac1c5bdbe4159b081e291717d6349da941 (patch) | |
tree | 7da7f70be10d3b27452fa76d90d0bb7fb62c61f8 | |
parent | ee0a8b0fb0aa82ff6bbf04990ed74916c1b5f709 (diff) |
update to latest stable linux kernel
-rw-r--r-- | mk/kernel-ver.mk | 6 | ||||
-rw-r--r-- | target/arm/raspberry-pi/patches/3.18.3/raspberry-pi.patch (renamed from target/arm/raspberry-pi/patches/3.18.2/raspberry-pi.patch) | 3384 | ||||
-rw-r--r-- | target/config/Config.in.kernelversion.choice | 6 | ||||
-rw-r--r-- | target/config/Config.in.kernelversion.default | 2 | ||||
-rw-r--r-- | target/linux/patches/3.18.3/bsd-compatibility.patch (renamed from target/linux/patches/3.18.2/bsd-compatibility.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.18.3/cleankernel.patch (renamed from target/linux/patches/3.18.2/cleankernel.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.18.3/cris-header.patch (renamed from target/linux/patches/3.18.2/cris-header.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.18.3/defaults.patch (renamed from target/linux/patches/3.18.2/defaults.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.18.3/export-symbol-for-exmap.patch (renamed from target/linux/patches/3.18.2/export-symbol-for-exmap.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.18.3/gemalto.patch (renamed from target/linux/patches/3.18.2/gemalto.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.18.3/initramfs-nosizelimit.patch (renamed from target/linux/patches/3.18.2/initramfs-nosizelimit.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.18.3/lemote-rfkill.patch (renamed from target/linux/patches/3.18.2/lemote-rfkill.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.18.3/microblaze-axi.patch (renamed from target/linux/patches/3.18.2/microblaze-axi.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.18.3/microblaze-ethernet.patch (renamed from target/linux/patches/3.18.2/microblaze-ethernet.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.18.3/mkpiggy.patch (renamed from target/linux/patches/3.18.2/mkpiggy.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.18.3/mtd-rootfs.patch (renamed from target/linux/patches/3.18.2/mtd-rootfs.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.18.3/nfsv3-tcp.patch (renamed from target/linux/patches/3.18.2/nfsv3-tcp.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.18.3/non-static.patch (renamed from target/linux/patches/3.18.2/non-static.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.18.3/patch-fblogo (renamed from target/linux/patches/3.18.2/patch-fblogo) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.18.3/patch-yaffs2 (renamed from target/linux/patches/3.18.2/patch-yaffs2) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.18.3/ppc64-missing-zlib.patch (renamed from target/linux/patches/3.18.2/ppc64-missing-zlib.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.18.3/relocs.patch (renamed from target/linux/patches/3.18.2/relocs.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.18.3/sgidefs.patch (renamed from target/linux/patches/3.18.2/sgidefs.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.18.3/sortext.patch (renamed from target/linux/patches/3.18.2/sortext.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.18.3/startup.patch (renamed from target/linux/patches/3.18.2/startup.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.18.3/wlan-cf.patch (renamed from target/linux/patches/3.18.2/wlan-cf.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/3.18.3/xargs.patch (renamed from target/linux/patches/3.18.2/xargs.patch) | 0 | ||||
-rw-r--r-- | target/m68k/qemu-m68k/patches/3.18.3/m68k-coldfire-fec.patch (renamed from target/m68k/qemu-m68k/patches/3.18.2/m68k-coldfire-fec.patch) | 0 | ||||
-rw-r--r-- | target/m68k/qemu-m68k/patches/3.18.3/qemu-coldfire.patch (renamed from target/m68k/qemu-m68k/patches/3.18.2/qemu-coldfire.patch) | 0 | ||||
-rw-r--r-- | target/mips64/lemote-yeelong/patches/3.18.3/sm7xx-fb.patch (renamed from target/mips64/lemote-yeelong/patches/3.18.2/sm7xx-fb.patch) | 0 |
30 files changed, 1439 insertions, 1959 deletions
diff --git a/mk/kernel-ver.mk b/mk/kernel-ver.mk index 2089f0193..d04b4281e 100644 --- a/mk/kernel-ver.mk +++ b/mk/kernel-ver.mk @@ -1,8 +1,8 @@ -ifeq ($(ADK_KERNEL_VERSION_3_18_2),y) -KERNEL_VERSION:= 3.18.2 +ifeq ($(ADK_KERNEL_VERSION_3_18_3),y) +KERNEL_VERSION:= 3.18.3 KERNEL_MOD_VERSION:= $(KERNEL_VERSION) KERNEL_RELEASE:= 1 -KERNEL_HASH:= 1090fa94ddddc38e514f07872315af84032ba7cdb9715c21d5a562a1072b1abf +KERNEL_HASH:= 0e024cd0bba93f777e733381b1ee2d55a76e4b30e096b0668aba979390e94255 endif ifeq ($(ADK_KERNEL_VERSION_3_14_28),y) KERNEL_VERSION:= 3.14.28 diff --git a/target/arm/raspberry-pi/patches/3.18.2/raspberry-pi.patch b/target/arm/raspberry-pi/patches/3.18.3/raspberry-pi.patch index 6fb100f30..4543ea066 100644 --- a/target/arm/raspberry-pi/patches/3.18.2/raspberry-pi.patch +++ b/target/arm/raspberry-pi/patches/3.18.3/raspberry-pi.patch @@ -1,6 +1,6 @@ -diff -Nur linux-3.18.1/arch/arm/boot/dts/bcm2708.dtsi linux-rpi/arch/arm/boot/dts/bcm2708.dtsi ---- linux-3.18.1/arch/arm/boot/dts/bcm2708.dtsi 1969-12-31 18:00:00.000000000 -0600 -+++ linux-rpi/arch/arm/boot/dts/bcm2708.dtsi 2015-01-09 13:30:02.180124919 -0600 +diff -Nur linux-3.18.3/arch/arm/boot/dts/bcm2708.dtsi linux-rpi-3.18.x/arch/arm/boot/dts/bcm2708.dtsi +--- linux-3.18.3/arch/arm/boot/dts/bcm2708.dtsi 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/boot/dts/bcm2708.dtsi 2015-01-19 14:30:16.166226125 +0100 @@ -0,0 +1,110 @@ +/include/ "skeleton.dtsi" + @@ -112,9 +112,9 @@ diff -Nur linux-3.18.1/arch/arm/boot/dts/bcm2708.dtsi linux-rpi/arch/arm/boot/dt + }; + }; +}; -diff -Nur linux-3.18.1/arch/arm/boot/dts/bcm2708-rpi-b.dts linux-rpi/arch/arm/boot/dts/bcm2708-rpi-b.dts ---- linux-3.18.1/arch/arm/boot/dts/bcm2708-rpi-b.dts 1969-12-31 18:00:00.000000000 -0600 -+++ linux-rpi/arch/arm/boot/dts/bcm2708-rpi-b.dts 2015-01-09 13:30:02.180124919 -0600 +diff -Nur linux-3.18.3/arch/arm/boot/dts/bcm2708-rpi-b.dts linux-rpi-3.18.x/arch/arm/boot/dts/bcm2708-rpi-b.dts +--- linux-3.18.3/arch/arm/boot/dts/bcm2708-rpi-b.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/boot/dts/bcm2708-rpi-b.dts 2015-01-19 14:30:16.166226125 +0100 @@ -0,0 +1,101 @@ +/dts-v1/; + @@ -217,9 +217,9 @@ diff -Nur linux-3.18.1/arch/arm/boot/dts/bcm2708-rpi-b.dts linux-rpi/arch/arm/bo + act_led_trigger = <&act_led>,"linux,default-trigger"; + }; +}; -diff -Nur linux-3.18.1/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts linux-rpi/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts ---- linux-3.18.1/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts 1969-12-31 18:00:00.000000000 -0600 -+++ linux-rpi/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts 2015-01-09 13:30:02.180124919 -0600 +diff -Nur linux-3.18.3/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts linux-rpi-3.18.x/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts +--- linux-3.18.3/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts 2015-01-19 14:30:16.166226125 +0100 @@ -0,0 +1,101 @@ +/dts-v1/; + @@ -322,9 +322,9 @@ diff -Nur linux-3.18.1/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts linux-rpi/arch/a + act_led_trigger = <&act_led>,"linux,default-trigger"; + }; +}; -diff -Nur linux-3.18.1/arch/arm/boot/dts/hifiberry-dac-overlay.dts linux-rpi/arch/arm/boot/dts/hifiberry-dac-overlay.dts ---- linux-3.18.1/arch/arm/boot/dts/hifiberry-dac-overlay.dts 1969-12-31 18:00:00.000000000 -0600 -+++ linux-rpi/arch/arm/boot/dts/hifiberry-dac-overlay.dts 2015-01-09 13:30:02.188124917 -0600 +diff -Nur linux-3.18.3/arch/arm/boot/dts/hifiberry-dac-overlay.dts linux-rpi-3.18.x/arch/arm/boot/dts/hifiberry-dac-overlay.dts +--- linux-3.18.3/arch/arm/boot/dts/hifiberry-dac-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/boot/dts/hifiberry-dac-overlay.dts 2015-01-19 14:30:16.170226125 +0100 @@ -0,0 +1,34 @@ +// Definitions for HiFiBerry DAC +/dts-v1/; @@ -360,9 +360,9 @@ diff -Nur linux-3.18.1/arch/arm/boot/dts/hifiberry-dac-overlay.dts linux-rpi/arc + }; + }; +}; -diff -Nur linux-3.18.1/arch/arm/boot/dts/hifiberry-dacplus-overlay.dts linux-rpi/arch/arm/boot/dts/hifiberry-dacplus-overlay.dts ---- linux-3.18.1/arch/arm/boot/dts/hifiberry-dacplus-overlay.dts 1969-12-31 18:00:00.000000000 -0600 -+++ linux-rpi/arch/arm/boot/dts/hifiberry-dacplus-overlay.dts 2015-01-09 13:30:02.188124917 -0600 +diff -Nur linux-3.18.3/arch/arm/boot/dts/hifiberry-dacplus-overlay.dts linux-rpi-3.18.x/arch/arm/boot/dts/hifiberry-dacplus-overlay.dts +--- linux-3.18.3/arch/arm/boot/dts/hifiberry-dacplus-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/boot/dts/hifiberry-dacplus-overlay.dts 2015-01-19 14:30:16.170226125 +0100 @@ -0,0 +1,39 @@ +// Definitions for HiFiBerry DAC+ +/dts-v1/; @@ -403,9 +403,9 @@ diff -Nur linux-3.18.1/arch/arm/boot/dts/hifiberry-dacplus-overlay.dts linux-rpi + }; + }; +}; -diff -Nur linux-3.18.1/arch/arm/boot/dts/hifiberry-digi-overlay.dts linux-rpi/arch/arm/boot/dts/hifiberry-digi-overlay.dts ---- linux-3.18.1/arch/arm/boot/dts/hifiberry-digi-overlay.dts 1969-12-31 18:00:00.000000000 -0600 -+++ linux-rpi/arch/arm/boot/dts/hifiberry-digi-overlay.dts 2015-01-09 13:30:02.188124917 -0600 +diff -Nur linux-3.18.3/arch/arm/boot/dts/hifiberry-digi-overlay.dts linux-rpi-3.18.x/arch/arm/boot/dts/hifiberry-digi-overlay.dts +--- linux-3.18.3/arch/arm/boot/dts/hifiberry-digi-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/boot/dts/hifiberry-digi-overlay.dts 2015-01-19 14:30:16.170226125 +0100 @@ -0,0 +1,39 @@ +// Definitions for HiFiBerry Digi +/dts-v1/; @@ -446,9 +446,9 @@ diff -Nur linux-3.18.1/arch/arm/boot/dts/hifiberry-digi-overlay.dts linux-rpi/ar + }; + }; +}; -diff -Nur linux-3.18.1/arch/arm/boot/dts/iqaudio-dac-overlay.dts linux-rpi/arch/arm/boot/dts/iqaudio-dac-overlay.dts ---- linux-3.18.1/arch/arm/boot/dts/iqaudio-dac-overlay.dts 1969-12-31 18:00:00.000000000 -0600 -+++ linux-rpi/arch/arm/boot/dts/iqaudio-dac-overlay.dts 2015-01-09 13:30:02.200124917 -0600 +diff -Nur linux-3.18.3/arch/arm/boot/dts/iqaudio-dac-overlay.dts linux-rpi-3.18.x/arch/arm/boot/dts/iqaudio-dac-overlay.dts +--- linux-3.18.3/arch/arm/boot/dts/iqaudio-dac-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/boot/dts/iqaudio-dac-overlay.dts 2015-01-19 14:30:16.178226125 +0100 @@ -0,0 +1,39 @@ +// Definitions for IQaudIO DAC +/dts-v1/; @@ -489,9 +489,9 @@ diff -Nur linux-3.18.1/arch/arm/boot/dts/iqaudio-dac-overlay.dts linux-rpi/arch/ + }; + }; +}; -diff -Nur linux-3.18.1/arch/arm/boot/dts/iqaudio-dacplus-overlay.dts linux-rpi/arch/arm/boot/dts/iqaudio-dacplus-overlay.dts ---- linux-3.18.1/arch/arm/boot/dts/iqaudio-dacplus-overlay.dts 1969-12-31 18:00:00.000000000 -0600 -+++ linux-rpi/arch/arm/boot/dts/iqaudio-dacplus-overlay.dts 2015-01-09 13:30:02.200124917 -0600 +diff -Nur linux-3.18.3/arch/arm/boot/dts/iqaudio-dacplus-overlay.dts linux-rpi-3.18.x/arch/arm/boot/dts/iqaudio-dacplus-overlay.dts +--- linux-3.18.3/arch/arm/boot/dts/iqaudio-dacplus-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/boot/dts/iqaudio-dacplus-overlay.dts 2015-01-19 14:30:16.178226125 +0100 @@ -0,0 +1,39 @@ +// Definitions for IQaudIO DAC+ +/dts-v1/; @@ -532,9 +532,9 @@ diff -Nur linux-3.18.1/arch/arm/boot/dts/iqaudio-dacplus-overlay.dts linux-rpi/a + }; + }; +}; -diff -Nur linux-3.18.1/arch/arm/boot/dts/lirc-rpi-overlay.dts linux-rpi/arch/arm/boot/dts/lirc-rpi-overlay.dts ---- linux-3.18.1/arch/arm/boot/dts/lirc-rpi-overlay.dts 1969-12-31 18:00:00.000000000 -0600 -+++ linux-rpi/arch/arm/boot/dts/lirc-rpi-overlay.dts 2015-01-09 13:30:02.204124917 -0600 +diff -Nur linux-3.18.3/arch/arm/boot/dts/lirc-rpi-overlay.dts linux-rpi-3.18.x/arch/arm/boot/dts/lirc-rpi-overlay.dts +--- linux-3.18.3/arch/arm/boot/dts/lirc-rpi-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/boot/dts/lirc-rpi-overlay.dts 2015-01-19 14:30:16.182226125 +0100 @@ -0,0 +1,57 @@ +// Definitions for lirc-rpi module +/dts-v1/; @@ -593,9 +593,9 @@ diff -Nur linux-3.18.1/arch/arm/boot/dts/lirc-rpi-overlay.dts linux-rpi/arch/arm + debug = <&lirc_rpi>,"rpi,debug:0"; + }; +}; -diff -Nur linux-3.18.1/arch/arm/boot/dts/Makefile linux-rpi/arch/arm/boot/dts/Makefile ---- linux-3.18.1/arch/arm/boot/dts/Makefile 2014-12-16 11:39:45.000000000 -0600 -+++ linux-rpi/arch/arm/boot/dts/Makefile 2015-01-09 13:30:02.172124919 -0600 +diff -Nur linux-3.18.3/arch/arm/boot/dts/Makefile linux-rpi-3.18.x/arch/arm/boot/dts/Makefile +--- linux-3.18.3/arch/arm/boot/dts/Makefile 2015-01-16 16:04:08.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/boot/dts/Makefile 2015-01-19 14:30:16.162226125 +0100 @@ -53,6 +53,8 @@ dtb-$(CONFIG_ARCH_ATLAS6) += atlas6-evb.dtb @@ -613,10 +613,10 @@ diff -Nur linux-3.18.1/arch/arm/boot/dts/Makefile linux-rpi/arch/arm/boot/dts/Ma endif # *.dtb used to be generated in the directory above. Clean out the -diff -Nur linux-3.18.1/arch/arm/configs/bcmrpi_defconfig linux-rpi/arch/arm/configs/bcmrpi_defconfig ---- linux-3.18.1/arch/arm/configs/bcmrpi_defconfig 1969-12-31 18:00:00.000000000 -0600 -+++ linux-rpi/arch/arm/configs/bcmrpi_defconfig 2015-01-09 13:30:02.232124918 -0600 -@@ -0,0 +1,1120 @@ +diff -Nur linux-3.18.3/arch/arm/configs/bcmrpi_defconfig linux-rpi-3.18.x/arch/arm/configs/bcmrpi_defconfig +--- linux-3.18.3/arch/arm/configs/bcmrpi_defconfig 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/configs/bcmrpi_defconfig 2015-01-19 14:30:16.198226124 +0100 +@@ -0,0 +1,1123 @@ +# CONFIG_ARM_PATCH_PHYS_VIRT is not set +CONFIG_PHYS_OFFSET=0 +# CONFIG_LOCALVERSION_AUTO is not set @@ -1056,8 +1056,11 @@ diff -Nur linux-3.18.1/arch/arm/configs/bcmrpi_defconfig linux-rpi/arch/arm/conf +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_CDC_EEM=m +CONFIG_USB_NET_CDC_NCM=m ++CONFIG_USB_NET_HUAWEI_CDC_NCM=m +CONFIG_USB_NET_CDC_MBIM=m +CONFIG_USB_NET_DM9601=m ++CONFIG_USB_NET_SR9700=m ++CONFIG_USB_NET_SR9800=m +CONFIG_USB_NET_SMSC75XX=m +CONFIG_USB_NET_SMSC95XX=y +CONFIG_USB_NET_GL620A=m @@ -1737,9 +1740,9 @@ diff -Nur linux-3.18.1/arch/arm/configs/bcmrpi_defconfig linux-rpi/arch/arm/conf +# CONFIG_CRYPTO_HW is not set +CONFIG_CRC_ITU_T=y +CONFIG_LIBCRC32C=y -diff -Nur linux-3.18.1/arch/arm/configs/bcmrpi_quick_defconfig linux-rpi/arch/arm/configs/bcmrpi_quick_defconfig ---- linux-3.18.1/arch/arm/configs/bcmrpi_quick_defconfig 1969-12-31 18:00:00.000000000 -0600 -+++ linux-rpi/arch/arm/configs/bcmrpi_quick_defconfig 2015-01-09 13:30:02.232124918 -0600 +diff -Nur linux-3.18.3/arch/arm/configs/bcmrpi_quick_defconfig linux-rpi-3.18.x/arch/arm/configs/bcmrpi_quick_defconfig +--- linux-3.18.3/arch/arm/configs/bcmrpi_quick_defconfig 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/configs/bcmrpi_quick_defconfig 2015-01-19 14:30:16.198226124 +0100 @@ -0,0 +1,197 @@ +# CONFIG_ARM_PATCH_PHYS_VIRT is not set +CONFIG_LOCALVERSION="-quick" @@ -1938,9 +1941,9 @@ diff -Nur linux-3.18.1/arch/arm/configs/bcmrpi_quick_defconfig linux-rpi/arch/ar +# CONFIG_CRYPTO_HW is not set +CONFIG_CRC_ITU_T=y +CONFIG_LIBCRC32C=y -diff -Nur linux-3.18.1/arch/arm/include/asm/dma-mapping.h linux-rpi/arch/arm/include/asm/dma-mapping.h ---- linux-3.18.1/arch/arm/include/asm/dma-mapping.h 2014-12-16 11:39:45.000000000 -0600 -+++ linux-rpi/arch/arm/include/asm/dma-mapping.h 2015-01-09 13:30:02.240124918 -0600 +diff -Nur linux-3.18.3/arch/arm/include/asm/dma-mapping.h linux-rpi-3.18.x/arch/arm/include/asm/dma-mapping.h +--- linux-3.18.3/arch/arm/include/asm/dma-mapping.h 2015-01-16 16:04:08.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/include/asm/dma-mapping.h 2015-01-19 14:30:16.206226124 +0100 @@ -58,37 +58,21 @@ #ifndef __arch_pfn_to_dma static inline dma_addr_t pfn_to_dma(struct device *dev, unsigned long pfn) @@ -1980,9 +1983,9 @@ diff -Nur linux-3.18.1/arch/arm/include/asm/dma-mapping.h linux-rpi/arch/arm/inc return (dma_addr_t)__virt_to_bus((unsigned long)(addr)); } -diff -Nur linux-3.18.1/arch/arm/include/asm/irqflags.h linux-rpi/arch/arm/include/asm/irqflags.h ---- linux-3.18.1/arch/arm/include/asm/irqflags.h 2014-12-16 11:39:45.000000000 -0600 -+++ linux-rpi/arch/arm/include/asm/irqflags.h 2015-01-09 12:27:20.304159359 -0600 +diff -Nur linux-3.18.3/arch/arm/include/asm/irqflags.h linux-rpi-3.18.x/arch/arm/include/asm/irqflags.h +--- linux-3.18.3/arch/arm/include/asm/irqflags.h 2015-01-16 16:04:08.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/include/asm/irqflags.h 2015-01-19 14:27:12.494231582 +0100 @@ -145,12 +145,22 @@ } @@ -2009,9 +2012,9 @@ diff -Nur linux-3.18.1/arch/arm/include/asm/irqflags.h linux-rpi/arch/arm/includ : : "r" (flags) : "memory", "cc"); -diff -Nur linux-3.18.1/arch/arm/include/asm/string.h linux-rpi/arch/arm/include/asm/string.h ---- linux-3.18.1/arch/arm/include/asm/string.h 2014-12-16 11:39:45.000000000 -0600 -+++ linux-rpi/arch/arm/include/asm/string.h 2015-01-09 12:27:20.308159360 -0600 +diff -Nur linux-3.18.3/arch/arm/include/asm/string.h linux-rpi-3.18.x/arch/arm/include/asm/string.h +--- linux-3.18.3/arch/arm/include/asm/string.h 2015-01-16 16:04:08.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/include/asm/string.h 2015-01-19 14:27:12.498231582 +0100 @@ -24,6 +24,11 @@ #define __HAVE_ARCH_MEMSET extern void * memset(void *, int, __kernel_size_t); @@ -2024,9 +2027,9 @@ diff -Nur linux-3.18.1/arch/arm/include/asm/string.h linux-rpi/arch/arm/include/ extern void __memzero(void *ptr, __kernel_size_t n); #define memset(p,v,n) \ -diff -Nur linux-3.18.1/arch/arm/include/asm/uaccess.h linux-rpi/arch/arm/include/asm/uaccess.h ---- linux-3.18.1/arch/arm/include/asm/uaccess.h 2014-12-16 11:39:45.000000000 -0600 -+++ linux-rpi/arch/arm/include/asm/uaccess.h 2015-01-09 13:30:02.244124918 -0600 +diff -Nur linux-3.18.3/arch/arm/include/asm/uaccess.h linux-rpi-3.18.x/arch/arm/include/asm/uaccess.h +--- linux-3.18.3/arch/arm/include/asm/uaccess.h 2015-01-16 16:04:08.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/include/asm/uaccess.h 2015-01-19 14:30:16.210226124 +0100 @@ -475,6 +475,7 @@ #ifdef CONFIG_MMU @@ -2035,9 +2038,9 @@ diff -Nur linux-3.18.1/arch/arm/include/asm/uaccess.h linux-rpi/arch/arm/include extern unsigned long __must_check __copy_to_user(void __user *to, const void *from, unsigned long n); extern unsigned long __must_check __copy_to_user_std(void __user *to, const void *from, unsigned long n); extern unsigned long __must_check __clear_user(void __user *addr, unsigned long n); -diff -Nur linux-3.18.1/arch/arm/Kconfig linux-rpi/arch/arm/Kconfig ---- linux-3.18.1/arch/arm/Kconfig 2014-12-16 11:39:45.000000000 -0600 -+++ linux-rpi/arch/arm/Kconfig 2015-01-09 13:30:02.172124919 -0600 +diff -Nur linux-3.18.3/arch/arm/Kconfig linux-rpi-3.18.x/arch/arm/Kconfig +--- linux-3.18.3/arch/arm/Kconfig 2015-01-16 16:04:08.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/Kconfig 2015-01-19 14:30:16.158226125 +0100 @@ -381,6 +381,23 @@ This enables support for systems based on Atmel AT91RM9200 and AT91SAM9* processors. @@ -2070,9 +2073,9 @@ diff -Nur linux-3.18.1/arch/arm/Kconfig linux-rpi/arch/arm/Kconfig source "arch/arm/mach-zynq/Kconfig" -diff -Nur linux-3.18.1/arch/arm/Kconfig.debug linux-rpi/arch/arm/Kconfig.debug ---- linux-3.18.1/arch/arm/Kconfig.debug 2014-12-16 11:39:45.000000000 -0600 -+++ linux-rpi/arch/arm/Kconfig.debug 2015-01-09 13:30:02.172124919 -0600 +diff -Nur linux-3.18.3/arch/arm/Kconfig.debug linux-rpi-3.18.x/arch/arm/Kconfig.debug +--- linux-3.18.3/arch/arm/Kconfig.debug 2015-01-16 16:04:08.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/Kconfig.debug 2015-01-19 14:30:16.158226125 +0100 @@ -985,6 +985,14 @@ options; the platform specific options are deprecated and will be soon removed. @@ -2088,9 +2091,9 @@ diff -Nur linux-3.18.1/arch/arm/Kconfig.debug linux-rpi/arch/arm/Kconfig.debug endchoice config DEBUG_EXYNOS_UART -diff -Nur linux-3.18.1/arch/arm/kernel/fiqasm.S linux-rpi/arch/arm/kernel/fiqasm.S ---- linux-3.18.1/arch/arm/kernel/fiqasm.S 2014-12-16 11:39:45.000000000 -0600 -+++ linux-rpi/arch/arm/kernel/fiqasm.S 2015-01-09 13:30:02.248124918 -0600 +diff -Nur linux-3.18.3/arch/arm/kernel/fiqasm.S linux-rpi-3.18.x/arch/arm/kernel/fiqasm.S +--- linux-3.18.3/arch/arm/kernel/fiqasm.S 2015-01-16 16:04:08.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/kernel/fiqasm.S 2015-01-19 14:30:16.210226124 +0100 @@ -47,3 +47,7 @@ mov r0, r0 @ avoid hazard prior to ARMv4 ret lr @@ -2099,9 +2102,9 @@ diff -Nur linux-3.18.1/arch/arm/kernel/fiqasm.S linux-rpi/arch/arm/kernel/fiqasm +ENTRY(__FIQ_Branch) + mov pc, r8 +ENDPROC(__FIQ_Branch) -diff -Nur linux-3.18.1/arch/arm/kernel/process.c linux-rpi/arch/arm/kernel/process.c ---- linux-3.18.1/arch/arm/kernel/process.c 2014-12-16 11:39:45.000000000 -0600 -+++ linux-rpi/arch/arm/kernel/process.c 2015-01-09 13:30:02.252124918 -0600 +diff -Nur linux-3.18.3/arch/arm/kernel/process.c linux-rpi-3.18.x/arch/arm/kernel/process.c +--- linux-3.18.3/arch/arm/kernel/process.c 2015-01-16 16:04:08.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/kernel/process.c 2015-01-19 14:30:16.214226124 +0100 @@ -166,6 +166,16 @@ } #endif @@ -2119,9 +2122,9 @@ diff -Nur linux-3.18.1/arch/arm/kernel/process.c linux-rpi/arch/arm/kernel/proce /* * Called by kexec, immediately prior to machine_kexec(). * -diff -Nur linux-3.18.1/arch/arm/lib/arm-mem.h linux-rpi/arch/arm/lib/arm-mem.h ---- linux-3.18.1/arch/arm/lib/arm-mem.h 1969-12-31 18:00:00.000000000 -0600 -+++ linux-rpi/arch/arm/lib/arm-mem.h 2015-01-09 12:27:20.320159360 -0600 +diff -Nur linux-3.18.3/arch/arm/lib/arm-mem.h linux-rpi-3.18.x/arch/arm/lib/arm-mem.h +--- linux-3.18.3/arch/arm/lib/arm-mem.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/lib/arm-mem.h 2015-01-19 14:27:12.506231582 +0100 @@ -0,0 +1,159 @@ +/* +Copyright (c) 2013, Raspberry Pi Foundation @@ -2282,9 +2285,9 @@ diff -Nur linux-3.18.1/arch/arm/lib/arm-mem.h linux-rpi/arch/arm/lib/arm-mem.h + .endif +92: +.endm -diff -Nur linux-3.18.1/arch/arm/lib/copy_from_user.S linux-rpi/arch/arm/lib/copy_from_user.S ---- linux-3.18.1/arch/arm/lib/copy_from_user.S 2014-12-16 11:39:45.000000000 -0600 -+++ linux-rpi/arch/arm/lib/copy_from_user.S 2015-01-09 12:27:20.320159360 -0600 +diff -Nur linux-3.18.3/arch/arm/lib/copy_from_user.S linux-rpi-3.18.x/arch/arm/lib/copy_from_user.S +--- linux-3.18.3/arch/arm/lib/copy_from_user.S 2015-01-16 16:04:08.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/lib/copy_from_user.S 2015-01-19 14:27:12.506231582 +0100 @@ -84,11 +84,13 @@ .text @@ -2300,9 +2303,9 @@ diff -Nur linux-3.18.1/arch/arm/lib/copy_from_user.S linux-rpi/arch/arm/lib/copy .pushsection .fixup,"ax" .align 0 -diff -Nur linux-3.18.1/arch/arm/lib/exports_rpi.c linux-rpi/arch/arm/lib/exports_rpi.c ---- linux-3.18.1/arch/arm/lib/exports_rpi.c 1969-12-31 18:00:00.000000000 -0600 -+++ linux-rpi/arch/arm/lib/exports_rpi.c 2015-01-09 12:27:20.324159360 -0600 +diff -Nur linux-3.18.3/arch/arm/lib/exports_rpi.c linux-rpi-3.18.x/arch/arm/lib/exports_rpi.c +--- linux-3.18.3/arch/arm/lib/exports_rpi.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/lib/exports_rpi.c 2015-01-19 14:27:12.506231582 +0100 @@ -0,0 +1,37 @@ +/** + * Copyright (c) 2014, Raspberry Pi (Trading) Ltd. @@ -2341,9 +2344,9 @@ diff -Nur linux-3.18.1/arch/arm/lib/exports_rpi.c linux-rpi/arch/arm/lib/exports +#include <linux/module.h> + +EXPORT_SYMBOL(memcmp); -diff -Nur linux-3.18.1/arch/arm/lib/Makefile linux-rpi/arch/arm/lib/Makefile ---- linux-3.18.1/arch/arm/lib/Makefile 2014-12-16 11:39:45.000000000 -0600 -+++ linux-rpi/arch/arm/lib/Makefile 2015-01-09 13:30:02.256124918 -0600 +diff -Nur linux-3.18.3/arch/arm/lib/Makefile linux-rpi-3.18.x/arch/arm/lib/Makefile +--- linux-3.18.3/arch/arm/lib/Makefile 2015-01-16 16:04:08.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/lib/Makefile 2015-01-19 14:30:16.218226124 +0100 @@ -6,15 +6,24 @@ lib-y := backtrace.o changebit.o csumipv6.o csumpartial.o \ @@ -2372,9 +2375,9 @@ diff -Nur linux-3.18.1/arch/arm/lib/Makefile linux-rpi/arch/arm/lib/Makefile mmu-y := clear_user.o copy_page.o getuser.o putuser.o # the code in uaccess.S is not preemption safe and -diff -Nur linux-3.18.1/arch/arm/lib/memcmp_rpi.S linux-rpi/arch/arm/lib/memcmp_rpi.S ---- linux-3.18.1/arch/arm/lib/memcmp_rpi.S 1969-12-31 18:00:00.000000000 -0600 -+++ linux-rpi/arch/arm/lib/memcmp_rpi.S 2015-01-09 12:27:20.324159360 -0600 +diff -Nur linux-3.18.3/arch/arm/lib/memcmp_rpi.S linux-rpi-3.18.x/arch/arm/lib/memcmp_rpi.S +--- linux-3.18.3/arch/arm/lib/memcmp_rpi.S 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/lib/memcmp_rpi.S 2015-01-19 14:27:12.506231582 +0100 @@ -0,0 +1,285 @@ +/* +Copyright (c) 2013, Raspberry Pi Foundation @@ -2661,9 +2664,9 @@ diff -Nur linux-3.18.1/arch/arm/lib/memcmp_rpi.S linux-rpi/arch/arm/lib/memcmp_r + .unreq DAT7 + .unreq OFF +ENDPROC(memcmp) -diff -Nur linux-3.18.1/arch/arm/lib/memcpymove.h linux-rpi/arch/arm/lib/memcpymove.h ---- linux-3.18.1/arch/arm/lib/memcpymove.h 1969-12-31 18:00:00.000000000 -0600 -+++ linux-rpi/arch/arm/lib/memcpymove.h 2015-01-09 12:27:20.324159360 -0600 +diff -Nur linux-3.18.3/arch/arm/lib/memcpymove.h linux-rpi-3.18.x/arch/arm/lib/memcpymove.h +--- linux-3.18.3/arch/arm/lib/memcpymove.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/lib/memcpymove.h 2015-01-19 14:27:12.506231582 +0100 @@ -0,0 +1,506 @@ +/* +Copyright (c) 2013, Raspberry Pi Foundation @@ -3171,9 +3174,9 @@ diff -Nur linux-3.18.1/arch/arm/lib/memcpymove.h linux-rpi/arch/arm/lib/memcpymo + .unreq LAST + .unreq OFF +.endm -diff -Nur linux-3.18.1/arch/arm/lib/memcpy_rpi.S linux-rpi/arch/arm/lib/memcpy_rpi.S ---- linux-3.18.1/arch/arm/lib/memcpy_rpi.S 1969-12-31 18:00:00.000000000 -0600 -+++ linux-rpi/arch/arm/lib/memcpy_rpi.S 2015-01-09 12:27:20.324159360 -0600 +diff -Nur linux-3.18.3/arch/arm/lib/memcpy_rpi.S linux-rpi-3.18.x/arch/arm/lib/memcpy_rpi.S +--- linux-3.18.3/arch/arm/lib/memcpy_rpi.S 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/lib/memcpy_rpi.S 2015-01-19 14:27:12.506231582 +0100 @@ -0,0 +1,59 @@ +/* +Copyright (c) 2013, Raspberry Pi Foundation @@ -3234,9 +3237,9 @@ diff -Nur linux-3.18.1/arch/arm/lib/memcpy_rpi.S linux-rpi/arch/arm/lib/memcpy_r +ENTRY(memcpy) + memcpy 0 +ENDPROC(memcpy) -diff -Nur linux-3.18.1/arch/arm/lib/memmove_rpi.S linux-rpi/arch/arm/lib/memmove_rpi.S ---- linux-3.18.1/arch/arm/lib/memmove_rpi.S 1969-12-31 18:00:00.000000000 -0600 -+++ linux-rpi/arch/arm/lib/memmove_rpi.S 2015-01-09 12:27:20.324159360 -0600 +diff -Nur linux-3.18.3/arch/arm/lib/memmove_rpi.S linux-rpi-3.18.x/arch/arm/lib/memmove_rpi.S +--- linux-3.18.3/arch/arm/lib/memmove_rpi.S 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/lib/memmove_rpi.S 2015-01-19 14:27:12.506231582 +0100 @@ -0,0 +1,61 @@ +/* +Copyright (c) 2013, Raspberry Pi Foundation @@ -3299,9 +3302,9 @@ diff -Nur linux-3.18.1/arch/arm/lib/memmove_rpi.S linux-rpi/arch/arm/lib/memmove + bpl memcpy /* pl works even over -1 - 0 and 0x7fffffff - 0x80000000 boundaries */ + memcpy 1 +ENDPROC(memmove) -diff -Nur linux-3.18.1/arch/arm/lib/memset_rpi.S linux-rpi/arch/arm/lib/memset_rpi.S ---- linux-3.18.1/arch/arm/lib/memset_rpi.S 1969-12-31 18:00:00.000000000 -0600 -+++ linux-rpi/arch/arm/lib/memset_rpi.S 2015-01-09 12:27:20.324159360 -0600 +diff -Nur linux-3.18.3/arch/arm/lib/memset_rpi.S linux-rpi-3.18.x/arch/arm/lib/memset_rpi.S +--- linux-3.18.3/arch/arm/lib/memset_rpi.S 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/lib/memset_rpi.S 2015-01-19 14:27:12.506231582 +0100 @@ -0,0 +1,121 @@ +/* +Copyright (c) 2013, Raspberry Pi Foundation @@ -3424,9 +3427,9 @@ diff -Nur linux-3.18.1/arch/arm/lib/memset_rpi.S linux-rpi/arch/arm/lib/memset_r + .unreq DAT2 + .unreq DAT3 +ENDPROC(memset) -diff -Nur linux-3.18.1/arch/arm/lib/uaccess_with_memcpy.c linux-rpi/arch/arm/lib/uaccess_with_memcpy.c ---- linux-3.18.1/arch/arm/lib/uaccess_with_memcpy.c 2014-12-16 11:39:45.000000000 -0600 -+++ linux-rpi/arch/arm/lib/uaccess_with_memcpy.c 2015-01-09 13:30:02.260124918 -0600 +diff -Nur linux-3.18.3/arch/arm/lib/uaccess_with_memcpy.c linux-rpi-3.18.x/arch/arm/lib/uaccess_with_memcpy.c +--- linux-3.18.3/arch/arm/lib/uaccess_with_memcpy.c 2015-01-16 16:04:08.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/lib/uaccess_with_memcpy.c 2015-01-19 14:30:16.218226124 +0100 @@ -22,6 +22,14 @@ #include <asm/current.h> #include <asm/page.h> @@ -3570,9 +3573,9 @@ diff -Nur linux-3.18.1/arch/arm/lib/uaccess_with_memcpy.c linux-rpi/arch/arm/lib static unsigned long noinline __clear_user_memset(void __user *addr, unsigned long n) -diff -Nur linux-3.18.1/arch/arm/mach-bcm2708/armctrl.c linux-rpi/arch/arm/mach-bcm2708/armctrl.c ---- linux-3.18.1/arch/arm/mach-bcm2708/armctrl.c 1969-12-31 18:00:00.000000000 -0600 -+++ linux-rpi/arch/arm/mach-bcm2708/armctrl.c 2015-01-09 13:30:02.268124918 -0600 +diff -Nur linux-3.18.3/arch/arm/mach-bcm2708/armctrl.c linux-rpi-3.18.x/arch/arm/mach-bcm2708/armctrl.c +--- linux-3.18.3/arch/arm/mach-bcm2708/armctrl.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/mach-bcm2708/armctrl.c 2015-01-19 14:30:16.226226123 +0100 @@ -0,0 +1,315 @@ +/* + * linux/arch/arm/mach-bcm2708/armctrl.c @@ -3889,9 +3892,9 @@ diff -Nur linux-3.18.1/arch/arm/mach-bcm2708/armctrl.c linux-rpi/arch/arm/mach-b + armctrl_dt_init(); + return 0; +} -diff -Nur linux-3.18.1/arch/arm/mach-bcm2708/armctrl.h linux-rpi/arch/arm/mach-bcm2708/armctrl.h ---- linux-3.18.1/arch/arm/mach-bcm2708/armctrl.h 1969-12-31 18:00:00.000000000 -0600 -+++ linux-rpi/arch/arm/mach-bcm2708/armctrl.h 2015-01-09 12:27:20.336159360 -0600 +diff -Nur linux-3.18.3/arch/arm/mach-bcm2708/armctrl.h linux-rpi-3.18.x/arch/arm/mach-bcm2708/armctrl.h +--- linux-3.18.3/arch/arm/mach-bcm2708/armctrl.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/mach-bcm2708/armctrl.h 2015-01-19 14:27:12.514231581 +0100 @@ -0,0 +1,27 @@ +/* + * linux/arch/arm/mach-bcm2708/armctrl.h @@ -3920,9 +3923,9 @@ diff -Nur linux-3.18.1/arch/arm/mach-bcm2708/armctrl.h linux-rpi/arch/arm/mach-b + u32 armctrl_sources, u32 resume_sources); + +#endif -diff -Nur linux-3.18.1/arch/arm/mach-bcm2708/bcm2708.c linux-rpi/arch/arm/mach-bcm2708/bcm2708.c ---- linux-3.18.1/arch/arm/mach-bcm2708/bcm2708.c 1969-12-31 18:00:00.000000000 -0600 -+++ linux-rpi/arch/arm/mach-bcm2708/bcm2708.c 2015-01-09 13:30:02.268124918 -0600 +diff -Nur linux-3.18.3/arch/arm/mach-bcm2708/bcm2708.c linux-rpi-3.18.x/arch/arm/mach-bcm2708/bcm2708.c +--- linux-3.18.3/arch/arm/mach-bcm2708/bcm2708.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/mach-bcm2708/bcm2708.c 2015-01-19 14:30:16.226226123 +0100 @@ -0,0 +1,1095 @@ +/* + * linux/arch/arm/mach-bcm2708/bcm2708.c @@ -5019,10 +5022,10 @@ diff -Nur linux-3.18.1/arch/arm/mach-bcm2708/bcm2708.c linux-rpi/arch/arm/mach-b +module_param(reboot_part, uint, 0644); +module_param(w1_gpio_pin, uint, 0644); +module_param(w1_gpio_pullup, uint, 0644); -diff -Nur linux-3.18.1/arch/arm/mach-bcm2708/bcm2708_gpio.c linux-rpi/arch/arm/mach-bcm2708/bcm2708_gpio.c ---- linux-3.18.1/arch/arm/mach-bcm2708/bcm2708_gpio.c 1969-12-31 18:00:00.000000000 -0600 -+++ linux-rpi/arch/arm/mach-bcm2708/bcm2708_gpio.c 2015-01-09 13:30:02.268124918 -0600 -@@ -0,0 +1,402 @@ +diff -Nur linux-3.18.3/arch/arm/mach-bcm2708/bcm2708_gpio.c linux-rpi-3.18.x/arch/arm/mach-bcm2708/bcm2708_gpio.c +--- linux-3.18.3/arch/arm/mach-bcm2708/bcm2708_gpio.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi-3.18.x/arch/arm/mach-bcm2708/bcm2708_gpio.c 2015-01-19 14:30:16.226226123 +0100 +@@ -0,0 +1,426 @@ +/* + * linux/arch/arm/mach-bcm2708/bcm2708_gpio.c + * @@ -5068,6 +5071,8 @@ diff -Nur linux-3.18.1/arch/arm/mach-bcm2708/bcm2708_gpio.c linux-rpi/arch/arm/m +#define GPIOUD(x) (0x94+(x)*4) +#define GPIOUDCLK(x) (0x98+(x)*4) + ++#define GPIO_BANKS 2 ++ +enum { GPIO_FSEL_INPUT, GPIO_FSEL_OUTPUT, + GPIO_FSEL_ALT5, GPIO_FSEL_ALT_4, + GPIO_FSEL_ALT0, GPIO_FSEL_ALT1, @@ -5264,8 +5269,6 @@ diff -Nur linux-3.18.1/arch/arm/mach-bcm2708/bcm2708_gpio.c linux-rpi/arch/arm/m + unsigned long high = readl(gpio->base + GPIOHEN(gb)); + unsigned long low = readl(gpio->base + GPIOLEN(gb)); + -+ writel(1 << go, gpio->base + GPIOEDS(gb)); -+ + if (gpio->rising[gb] & (1 << go)) { + writel(rising | (1 << go), gpio->base + GPIOREN(gb)); + } else { @@ -5306,12 +5309,24 @@ diff -Nur linux-3.18.1/arch/arm/mach-bcm2708/bcm2708_gpio.c linux-rpi/arch/arm/m + unsigned bank; + int i; + unsigned gpio; -+ for (bank = 0; bank <= 1; bank++) { ++ unsigned level_bits; ++ struct bcm2708_gpio *gpio_data = dev_id; ++ ++ for (bank = 0; bank < GPIO_BANKS; bank++) { + edsr = readl(__io_address(GPIO_BASE) + GPIOEDS(bank)); ++ level_bits = gpio_data->high[bank] | gpio_data->low[bank]; ++ + for_each_set_bit(i, &edsr, 32) { + gpio = i + bank * 32; ++ /* ack edge triggered IRQs immediately */ ++ if (!(level_bits & (1<<i))) ++ writel(1<<i, ++ __io_address(GPIO_BASE) + GPIOEDS(bank)); + generic_handle_irq(gpio_to_irq(gpio)); -+ writel(1<<i,__io_address(GPIO_BASE) + GPIOEDS(bank)); ++ /* ack level triggered IRQ after handling them */ ++ if (level_bits & (1<<i)) ++ writel(1<<i, ++ __io_address(GPIO_BASE) + GPIOEDS(bank)); + } + } + return IRQ_HANDLED; @@ -5331,9 +5346,12 @@ diff -Nur linux-3.18.1/arch/arm/mach-bcm2708/bcm2708_gpio.c linux-rpi/arch/arm/m + + for (irq = GPIO_IRQ_START; irq < (GPIO_IRQ_START + GPIO_IRQS); irq++) { + irq_set_chip_data(irq, ucb); -+ irq_set_chip(irq, &bcm2708_irqchip); ++ irq_set_chip_and_handler(irq, &bcm2708_irqchip, ++ handle_simple_irq); + set_irq_flags(irq, IRQF_VALID); + } ++ ++ bcm2708_gpio_irq.dev_id = ucb; + setup_irq(IRQ_GPIO3, &bcm2708_gpio_irq); +} + @@ -5349,6 +5367,7 @@ diff -Nur linux-3.18.1/arch/arm/mach-bcm2708/bcm2708_gpio.c linux-rpi/arch/arm/m +{ + struct bcm2708_gpio *ucb; + struct resource *res; ++ int bank; + int err = 0; + + printk(KERN_INFO DRIVER_NAME ": bcm2708_gpio_probe %p\n", dev); @@ -5377,11 +5396,19 @@ diff -Nur linux-3.18.1/arch/arm/mach-bcm2708/bcm2708_gpio.c linux-rpi/arch/arm/m + ucb->gc.set = bcm2708_gpio_set; + ucb->gc.can_sleep = 0; + ++ for (bank = 0; bank < GPIO_BANKS; bank++) { ++ writel(0, ucb->base + GPIOREN(bank)); ++ writel(0, ucb->base + GPIOFEN(bank)); ++ writel(0, ucb->base + GPIOHEN(bank)); ++ writel(0, ucb->base + GPIOLEN(bank)); ++ writel(0, ucb->base + GPIOAREN(bank)); ++ writel(0, ucb->base + GPIOAFEN(bank)); ++ writel(~0, ucb->base + GPIOEDS(bank)); ++ } ++ + bcm2708_gpio_irq_init(ucb); + + err = gpiochip_add(&ucb->gc); -+ if (err) -+ goto err; + +err: + return err; @@ -5425,9 +5452,9 @@ diff -Nur linux-3.18.1/arch/arm/mach-bcm2708/bcm2708_gpio.c linux-rpi/arch/arm/m + +MODULE_DESCRIPTION("Broadcom BCM2708 GPIO driver"); +MODULE_LICENSE("GPL"); -diff -Nur linux-3.18.1/arch/arm/mach-bcm2708/bcm2708.h linux-rpi/arch/arm/mach-bcm2708/bcm2708.h ---- linux-3.18.1/arch/arm/mach-bcm2708/bcm2708.h 1969-12-31 18:00:00.000000000 -0600 -+++ linux-rpi/arch/arm/mach-bcm2708/bcm2708.h 2015-01-09 12:27:20.336159360 -0600 +diff -Nur linux-3.18.3/arch/arm/mac |