diff options
Diffstat (limited to 'target/arm')
-rw-r--r-- | target/arm/cubox-i/patches/3.15.4/rmk.patch (renamed from target/arm/cubox-i/patches/3.15.2/rmk.patch) | 0 | ||||
-rw-r--r-- | target/arm/cubox-i/patches/3.15.4/sdma-firmware-cubox-i.patch (renamed from target/arm/cubox-i/patches/3.15.2/sdma-firmware-cubox-i.patch) | 0 | ||||
-rw-r--r-- | target/arm/raspberry-pi/patches/3.15.4/raspberrypi.patch (renamed from target/arm/raspberry-pi/patches/3.15.2/raspberrypi.patch) | 4329 |
3 files changed, 3568 insertions, 761 deletions
diff --git a/target/arm/cubox-i/patches/3.15.2/rmk.patch b/target/arm/cubox-i/patches/3.15.4/rmk.patch index 7ccbf3b4a..7ccbf3b4a 100644 --- a/target/arm/cubox-i/patches/3.15.2/rmk.patch +++ b/target/arm/cubox-i/patches/3.15.4/rmk.patch diff --git a/target/arm/cubox-i/patches/3.15.2/sdma-firmware-cubox-i.patch b/target/arm/cubox-i/patches/3.15.4/sdma-firmware-cubox-i.patch index 13f94a208..13f94a208 100644 --- a/target/arm/cubox-i/patches/3.15.2/sdma-firmware-cubox-i.patch +++ b/target/arm/cubox-i/patches/3.15.4/sdma-firmware-cubox-i.patch diff --git a/target/arm/raspberry-pi/patches/3.15.2/raspberrypi.patch b/target/arm/raspberry-pi/patches/3.15.4/raspberrypi.patch index bfc70b248..4607439bc 100644 --- a/target/arm/raspberry-pi/patches/3.15.2/raspberrypi.patch +++ b/target/arm/raspberry-pi/patches/3.15.4/raspberrypi.patch @@ -1,6 +1,6 @@ -diff -Nur linux-3.15/arch/arm/configs/bcmrpi_cutdown_defconfig linux-rpi/arch/arm/configs/bcmrpi_cutdown_defconfig ---- linux-3.15/arch/arm/configs/bcmrpi_cutdown_defconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/configs/bcmrpi_cutdown_defconfig 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/configs/bcmrpi_cutdown_defconfig linux-rpi/arch/arm/configs/bcmrpi_cutdown_defconfig +--- linux-3.15.4/arch/arm/configs/bcmrpi_cutdown_defconfig 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/configs/bcmrpi_cutdown_defconfig 2014-07-07 10:44:57.000000000 +0200 @@ -0,0 +1,503 @@ +CONFIG_EXPERIMENTAL=y +# CONFIG_LOCALVERSION_AUTO is not set @@ -505,9 +505,9 @@ diff -Nur linux-3.15/arch/arm/configs/bcmrpi_cutdown_defconfig linux-rpi/arch/ar +CONFIG_SPI=y +CONFIG_SPI_MASTER=y +CONFIG_SPI_BCM2708=m -diff -Nur linux-3.15/arch/arm/configs/bcmrpi_defconfig linux-rpi/arch/arm/configs/bcmrpi_defconfig ---- linux-3.15/arch/arm/configs/bcmrpi_defconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/configs/bcmrpi_defconfig 2014-06-11 21:05:18.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/configs/bcmrpi_defconfig linux-rpi/arch/arm/configs/bcmrpi_defconfig +--- linux-3.15.4/arch/arm/configs/bcmrpi_defconfig 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/configs/bcmrpi_defconfig 2014-07-07 10:44:57.000000000 +0200 @@ -0,0 +1,1099 @@ +# CONFIG_ARM_PATCH_PHYS_VIRT is not set +# CONFIG_LOCALVERSION_AUTO is not set @@ -1608,9 +1608,9 @@ diff -Nur linux-3.15/arch/arm/configs/bcmrpi_defconfig linux-rpi/arch/arm/config +# CONFIG_CRYPTO_HW is not set +CONFIG_CRC_ITU_T=y +CONFIG_LIBCRC32C=y -diff -Nur linux-3.15/arch/arm/configs/bcmrpi_emergency_defconfig linux-rpi/arch/arm/configs/bcmrpi_emergency_defconfig ---- linux-3.15/arch/arm/configs/bcmrpi_emergency_defconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/configs/bcmrpi_emergency_defconfig 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/configs/bcmrpi_emergency_defconfig linux-rpi/arch/arm/configs/bcmrpi_emergency_defconfig +--- linux-3.15.4/arch/arm/configs/bcmrpi_emergency_defconfig 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/configs/bcmrpi_emergency_defconfig 2014-07-07 10:44:57.000000000 +0200 @@ -0,0 +1,532 @@ +CONFIG_EXPERIMENTAL=y +# CONFIG_LOCALVERSION_AUTO is not set @@ -2144,9 +2144,9 @@ diff -Nur linux-3.15/arch/arm/configs/bcmrpi_emergency_defconfig linux-rpi/arch/ +# CONFIG_CRYPTO_HW is not set +CONFIG_CRC_ITU_T=y +CONFIG_LIBCRC32C=y -diff -Nur linux-3.15/arch/arm/configs/bcmrpi_quick_defconfig linux-rpi/arch/arm/configs/bcmrpi_quick_defconfig ---- linux-3.15/arch/arm/configs/bcmrpi_quick_defconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/configs/bcmrpi_quick_defconfig 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/configs/bcmrpi_quick_defconfig linux-rpi/arch/arm/configs/bcmrpi_quick_defconfig +--- linux-3.15.4/arch/arm/configs/bcmrpi_quick_defconfig 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/configs/bcmrpi_quick_defconfig 2014-04-13 17:32:40.000000000 +0200 @@ -0,0 +1,197 @@ +# CONFIG_ARM_PATCH_PHYS_VIRT is not set +CONFIG_LOCALVERSION="-quick" @@ -2345,9 +2345,9 @@ diff -Nur linux-3.15/arch/arm/configs/bcmrpi_quick_defconfig linux-rpi/arch/arm/ +# CONFIG_CRYPTO_HW is not set +CONFIG_CRC_ITU_T=y +CONFIG_LIBCRC32C=y -diff -Nur linux-3.15/arch/arm/include/asm/irqflags.h linux-rpi/arch/arm/include/asm/irqflags.h ---- linux-3.15/arch/arm/include/asm/irqflags.h 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/arch/arm/include/asm/irqflags.h 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/include/asm/irqflags.h linux-rpi/arch/arm/include/asm/irqflags.h +--- linux-3.15.4/arch/arm/include/asm/irqflags.h 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/arch/arm/include/asm/irqflags.h 2014-07-07 10:44:57.000000000 +0200 @@ -145,12 +145,22 @@ } @@ -2374,9 +2374,9 @@ diff -Nur linux-3.15/arch/arm/include/asm/irqflags.h linux-rpi/arch/arm/include/ : : "r" (flags) : "memory", "cc"); -diff -Nur linux-3.15/arch/arm/Kconfig linux-rpi/arch/arm/Kconfig ---- linux-3.15/arch/arm/Kconfig 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/arch/arm/Kconfig 2014-06-11 21:05:18.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/Kconfig linux-rpi/arch/arm/Kconfig +--- linux-3.15.4/arch/arm/Kconfig 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/arch/arm/Kconfig 2014-07-07 10:44:57.000000000 +0200 @@ -384,6 +384,24 @@ This enables support for systems based on Atmel AT91RM9200 and AT91SAM9* processors. @@ -2410,9 +2410,9 @@ diff -Nur linux-3.15/arch/arm/Kconfig linux-rpi/arch/arm/Kconfig source "arch/arm/mach-zynq/Kconfig" -diff -Nur linux-3.15/arch/arm/Kconfig.debug linux-rpi/arch/arm/Kconfig.debug ---- linux-3.15/arch/arm/Kconfig.debug 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/arch/arm/Kconfig.debug 2014-06-11 21:05:18.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/Kconfig.debug linux-rpi/arch/arm/Kconfig.debug +--- linux-3.15.4/arch/arm/Kconfig.debug 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/arch/arm/Kconfig.debug 2014-07-07 10:44:57.000000000 +0200 @@ -916,6 +916,14 @@ options; the platform specific options are deprecated and will be soon removed. @@ -2428,9 +2428,9 @@ diff -Nur linux-3.15/arch/arm/Kconfig.debug linux-rpi/arch/arm/Kconfig.debug endchoice config DEBUG_EXYNOS_UART -diff -Nur linux-3.15/arch/arm/kernel/fiqasm.S linux-rpi/arch/arm/kernel/fiqasm.S ---- linux-3.15/arch/arm/kernel/fiqasm.S 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/arch/arm/kernel/fiqasm.S 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/kernel/fiqasm.S linux-rpi/arch/arm/kernel/fiqasm.S +--- linux-3.15.4/arch/arm/kernel/fiqasm.S 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/arch/arm/kernel/fiqasm.S 2014-07-07 10:44:57.000000000 +0200 @@ -47,3 +47,7 @@ mov r0, r0 @ avoid hazard prior to ARMv4 mov pc, lr @@ -2439,9 +2439,9 @@ diff -Nur linux-3.15/arch/arm/kernel/fiqasm.S linux-rpi/arch/arm/kernel/fiqasm.S +ENTRY(__FIQ_Branch) + mov pc, r8 +ENDPROC(__FIQ_Branch) -diff -Nur linux-3.15/arch/arm/kernel/process.c linux-rpi/arch/arm/kernel/process.c ---- linux-3.15/arch/arm/kernel/process.c 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/arch/arm/kernel/process.c 2014-06-11 21:05:18.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/kernel/process.c linux-rpi/arch/arm/kernel/process.c +--- linux-3.15.4/arch/arm/kernel/process.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/arch/arm/kernel/process.c 2014-07-07 10:44:57.000000000 +0200 @@ -171,6 +171,16 @@ } #endif @@ -2459,9 +2459,9 @@ diff -Nur linux-3.15/arch/arm/kernel/process.c linux-rpi/arch/arm/kernel/process /* * Called by kexec, immediately prior to machine_kexec(). * -diff -Nur linux-3.15/arch/arm/mach-bcm2708/armctrl.c linux-rpi/arch/arm/mach-bcm2708/armctrl.c ---- linux-3.15/arch/arm/mach-bcm2708/armctrl.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/armctrl.c 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/armctrl.c linux-rpi/arch/arm/mach-bcm2708/armctrl.c +--- linux-3.15.4/arch/arm/mach-bcm2708/armctrl.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/armctrl.c 2014-04-13 17:32:40.000000000 +0200 @@ -0,0 +1,219 @@ +/* + * linux/arch/arm/mach-bcm2708/armctrl.c @@ -2682,9 +2682,9 @@ diff -Nur linux-3.15/arch/arm/mach-bcm2708/armctrl.c linux-rpi/arch/arm/mach-bcm + init_FIQ(FIQ_START); + return 0; +} -diff -Nur linux-3.15/arch/arm/mach-bcm2708/armctrl.h linux-rpi/arch/arm/mach-bcm2708/armctrl.h ---- linux-3.15/arch/arm/mach-bcm2708/armctrl.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/armctrl.h 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/armctrl.h linux-rpi/arch/arm/mach-bcm2708/armctrl.h +--- linux-3.15.4/arch/arm/mach-bcm2708/armctrl.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/armctrl.h 2014-04-13 17:32:40.000000000 +0200 @@ -0,0 +1,27 @@ +/* + * linux/arch/arm/mach-bcm2708/armctrl.h @@ -2713,9 +2713,9 @@ diff -Nur linux-3.15/arch/arm/mach-bcm2708/armctrl.h linux-rpi/arch/arm/mach-bcm + u32 armctrl_sources, u32 resume_sources); + +#endif -diff -Nur linux-3.15/arch/arm/mach-bcm2708/bcm2708.c linux-rpi/arch/arm/mach-bcm2708/bcm2708.c ---- linux-3.15/arch/arm/mach-bcm2708/bcm2708.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/bcm2708.c 2014-06-11 21:05:18.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/bcm2708.c linux-rpi/arch/arm/mach-bcm2708/bcm2708.c +--- linux-3.15.4/arch/arm/mach-bcm2708/bcm2708.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/bcm2708.c 2014-07-07 10:44:57.000000000 +0200 @@ -0,0 +1,1031 @@ +/* + * linux/arch/arm/mach-bcm2708/bcm2708.c @@ -3748,9 +3748,9 @@ diff -Nur linux-3.15/arch/arm/mach-bcm2708/bcm2708.c linux-rpi/arch/arm/mach-bcm +module_param(reboot_part, uint, 0644); +module_param(w1_gpio_pin, uint, 0644); +module_param(w1_gpio_pullup, uint, 0644); -diff -Nur linux-3.15/arch/arm/mach-bcm2708/bcm2708_gpio.c linux-rpi/arch/arm/mach-bcm2708/bcm2708_gpio.c ---- linux-3.15/arch/arm/mach-bcm2708/bcm2708_gpio.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/bcm2708_gpio.c 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/bcm2708_gpio.c linux-rpi/arch/arm/mach-bcm2708/bcm2708_gpio.c +--- linux-3.15.4/arch/arm/mach-bcm2708/bcm2708_gpio.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/bcm2708_gpio.c 2014-06-29 11:34:17.000000000 +0200 @@ -0,0 +1,361 @@ +/* + * linux/arch/arm/mach-bcm2708/bcm2708_gpio.c @@ -4113,9 +4113,9 @@ diff -Nur linux-3.15/arch/arm/mach-bcm2708/bcm2708_gpio.c linux-rpi/arch/arm/mac + +MODULE_DESCRIPTION("Broadcom BCM2708 GPIO driver"); +MODULE_LICENSE("GPL"); -diff -Nur linux-3.15/arch/arm/mach-bcm2708/bcm2708.h linux-rpi/arch/arm/mach-bcm2708/bcm2708.h ---- linux-3.15/arch/arm/mach-bcm2708/bcm2708.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/bcm2708.h 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/bcm2708.h linux-rpi/arch/arm/mach-bcm2708/bcm2708.h +--- linux-3.15.4/arch/arm/mach-bcm2708/bcm2708.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/bcm2708.h 2014-07-07 10:44:57.000000000 +0200 @@ -0,0 +1,49 @@ +/* + * linux/arch/arm/mach-bcm2708/bcm2708.h @@ -4166,9 +4166,9 @@ diff -Nur linux-3.15/arch/arm/mach-bcm2708/bcm2708.h linux-rpi/arch/arm/mach-bcm +} + +#endif -diff -Nur linux-3.15/arch/arm/mach-bcm2708/clock.c linux-rpi/arch/arm/mach-bcm2708/clock.c ---- linux-3.15/arch/arm/mach-bcm2708/clock.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/clock.c 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/clock.c linux-rpi/arch/arm/mach-bcm2708/clock.c +--- linux-3.15.4/arch/arm/mach-bcm2708/clock.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/clock.c 2014-04-13 17:32:40.000000000 +0200 @@ -0,0 +1,61 @@ +/* + * linux/arch/arm/mach-bcm2708/clock.c @@ -4231,9 +4231,9 @@ diff -Nur linux-3.15/arch/arm/mach-bcm2708/clock.c linux-rpi/arch/arm/mach-bcm27 + return -EIO; +} +EXPORT_SYMBOL(clk_set_rate); -diff -Nur linux-3.15/arch/arm/mach-bcm2708/clock.h linux-rpi/arch/arm/mach-bcm2708/clock.h ---- linux-3.15/arch/arm/mach-bcm2708/clock.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/clock.h 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/clock.h linux-rpi/arch/arm/mach-bcm2708/clock.h +--- linux-3.15.4/arch/arm/mach-bcm2708/clock.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/clock.h 2014-04-13 17:32:40.000000000 +0200 @@ -0,0 +1,24 @@ +/* + * linux/arch/arm/mach-bcm2708/clock.h @@ -4259,9 +4259,9 @@ diff -Nur linux-3.15/arch/arm/mach-bcm2708/clock.h linux-rpi/arch/arm/mach-bcm27 +struct clk { + unsigned long rate; +}; -diff -Nur linux-3.15/arch/arm/mach-bcm2708/dma.c linux-rpi/arch/arm/mach-bcm2708/dma.c ---- linux-3.15/arch/arm/mach-bcm2708/dma.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/dma.c 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/dma.c linux-rpi/arch/arm/mach-bcm2708/dma.c +--- linux-3.15.4/arch/arm/mach-bcm2708/dma.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/dma.c 2014-04-13 17:32:40.000000000 +0200 @@ -0,0 +1,407 @@ +/* + * linux/arch/arm/mach-bcm2708/dma.c @@ -4670,9 +4670,9 @@ diff -Nur linux-3.15/arch/arm/mach-bcm2708/dma.c linux-rpi/arch/arm/mach-bcm2708 +MODULE_LICENSE("GPL"); + +MODULE_PARM_DESC(dmachans, "Bitmap of DMA channels available to the ARM"); -diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/arm_control.h linux-rpi/arch/arm/mach-bcm2708/include/mach/arm_control.h ---- linux-3.15/arch/arm/mach-bcm2708/include/mach/arm_control.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/include/mach/arm_control.h 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/include/mach/arm_control.h linux-rpi/arch/arm/mach-bcm2708/include/mach/arm_control.h +--- linux-3.15.4/arch/arm/mach-bcm2708/include/mach/arm_control.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/arm_control.h 2014-04-13 17:32:40.000000000 +0200 @@ -0,0 +1,419 @@ +/* + * linux/arch/arm/mach-bcm2708/arm_control.h @@ -5093,9 +5093,9 @@ diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/arm_control.h linux-rpi/ +#define AJBTDO HW_REGISTER_RW(AJB_BASE+0x0c) + +#endif -diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/arm_power.h linux-rpi/arch/arm/mach-bcm2708/include/mach/arm_power.h ---- linux-3.15/arch/arm/mach-bcm2708/include/mach/arm_power.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/include/mach/arm_power.h 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/include/mach/arm_power.h linux-rpi/arch/arm/mach-bcm2708/include/mach/arm_power.h +--- linux-3.15.4/arch/arm/mach-bcm2708/include/mach/arm_power.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/arm_power.h 2014-04-13 17:32:40.000000000 +0200 @@ -0,0 +1,60 @@ +/* + * linux/arch/arm/mach-bcm2708/include/mach/arm_power.h @@ -5157,9 +5157,9 @@ diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/arm_power.h linux-rpi/ar +}; + +#endif -diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/clkdev.h linux-rpi/arch/arm/mach-bcm2708/include/mach/clkdev.h ---- linux-3.15/arch/arm/mach-bcm2708/include/mach/clkdev.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/include/mach/clkdev.h 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/include/mach/clkdev.h linux-rpi/arch/arm/mach-bcm2708/include/mach/clkdev.h +--- linux-3.15.4/arch/arm/mach-bcm2708/include/mach/clkdev.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/clkdev.h 2014-04-13 17:32:40.000000000 +0200 @@ -0,0 +1,7 @@ +#ifndef __ASM_MACH_CLKDEV_H +#define __ASM_MACH_CLKDEV_H @@ -5168,9 +5168,9 @@ diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/clkdev.h linux-rpi/arch/ +#define __clk_put(clk) do { } while (0) + +#endif -diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/debug-macro.S linux-rpi/arch/arm/mach-bcm2708/include/mach/debug-macro.S ---- linux-3.15/arch/arm/mach-bcm2708/include/mach/debug-macro.S 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/include/mach/debug-macro.S 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/include/mach/debug-macro.S linux-rpi/arch/arm/mach-bcm2708/include/mach/debug-macro.S +--- linux-3.15.4/arch/arm/mach-bcm2708/include/mach/debug-macro.S 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/debug-macro.S 2014-07-07 10:44:57.000000000 +0200 @@ -0,0 +1,22 @@ +/* arch/arm/mach-bcm2708/include/mach/debug-macro.S + * @@ -5194,9 +5194,9 @@ diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/debug-macro.S linux-rpi/ + .endm + +#include <debug/pl01x.S> -diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/dma.h linux-rpi/arch/arm/mach-bcm2708/include/mach/dma.h ---- linux-3.15/arch/arm/mach-bcm2708/include/mach/dma.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/include/mach/dma.h 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/include/mach/dma.h linux-rpi/arch/arm/mach-bcm2708/include/mach/dma.h +--- linux-3.15.4/arch/arm/mach-bcm2708/include/mach/dma.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/dma.h 2014-04-13 17:32:40.000000000 +0200 @@ -0,0 +1,90 @@ +/* + * linux/arch/arm/mach-bcm2708/include/mach/dma.h @@ -5288,9 +5288,9 @@ diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/dma.h linux-rpi/arch/arm + + +#endif /* _MACH_BCM2708_DMA_H */ -diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/entry-macro.S linux-rpi/arch/arm/mach-bcm2708/include/mach/entry-macro.S ---- linux-3.15/arch/arm/mach-bcm2708/include/mach/entry-macro.S 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/include/mach/entry-macro.S 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/include/mach/entry-macro.S linux-rpi/arch/arm/mach-bcm2708/include/mach/entry-macro.S +--- linux-3.15.4/arch/arm/mach-bcm2708/include/mach/entry-macro.S 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/entry-macro.S 2014-04-13 17:32:40.000000000 +0200 @@ -0,0 +1,69 @@ +/* + * arch/arm/mach-bcm2708/include/mach/entry-macro.S @@ -5361,9 +5361,9 @@ diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/entry-macro.S linux-rpi/ +1020: @ EQ will be set if no irqs pending + + .endm -diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/frc.h linux-rpi/arch/arm/mach-bcm2708/include/mach/frc.h ---- linux-3.15/arch/arm/mach-bcm2708/include/mach/frc.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/include/mach/frc.h 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/include/mach/frc.h linux-rpi/arch/arm/mach-bcm2708/include/mach/frc.h +--- linux-3.15.4/arch/arm/mach-bcm2708/include/mach/frc.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/frc.h 2014-04-13 17:32:40.000000000 +0200 @@ -0,0 +1,38 @@ +/* + * arch/arm/mach-bcm2708/include/mach/timex.h @@ -5403,9 +5403,9 @@ diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/frc.h linux-rpi/arch/arm +extern unsigned long long frc_clock_ticks63(void); + +#endif -diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/gpio.h linux-rpi/arch/arm/mach-bcm2708/include/mach/gpio.h ---- linux-3.15/arch/arm/mach-bcm2708/include/mach/gpio.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/include/mach/gpio.h 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/include/mach/gpio.h linux-rpi/arch/arm/mach-bcm2708/include/mach/gpio.h +--- linux-3.15.4/arch/arm/mach-bcm2708/include/mach/gpio.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/gpio.h 2014-07-07 10:44:57.000000000 +0200 @@ -0,0 +1,17 @@ +/* + * arch/arm/mach-bcm2708/include/mach/gpio.h @@ -5424,9 +5424,9 @@ diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/gpio.h linux-rpi/arch/ar +#define irq_to_gpio(x) ((x) - GPIO_IRQ_START) + +#endif -diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/hardware.h linux-rpi/arch/arm/mach-bcm2708/include/mach/hardware.h ---- linux-3.15/arch/arm/mach-bcm2708/include/mach/hardware.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/include/mach/hardware.h 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/include/mach/hardware.h linux-rpi/arch/arm/mach-bcm2708/include/mach/hardware.h +--- linux-3.15.4/arch/arm/mach-bcm2708/include/mach/hardware.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/hardware.h 2014-04-13 17:32:40.000000000 +0200 @@ -0,0 +1,28 @@ +/* + * arch/arm/mach-bcm2708/include/mach/hardware.h @@ -5456,9 +5456,9 @@ diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/hardware.h linux-rpi/arc +#include <mach/platform.h> + +#endif -diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/io.h linux-rpi/arch/arm/mach-bcm2708/include/mach/io.h ---- linux-3.15/arch/arm/mach-bcm2708/include/mach/io.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/include/mach/io.h 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/include/mach/io.h linux-rpi/arch/arm/mach-bcm2708/include/mach/io.h +--- linux-3.15.4/arch/arm/mach-bcm2708/include/mach/io.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/io.h 2014-04-13 17:32:40.000000000 +0200 @@ -0,0 +1,27 @@ +/* + * arch/arm/mach-bcm2708/include/mach/io.h @@ -5487,9 +5487,9 @@ diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/io.h linux-rpi/arch/arm/ +#define __io(a) __typesafe_io(a) + +#endif -diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/irqs.h linux-rpi/arch/arm/mach-bcm2708/include/mach/irqs.h ---- linux-3.15/arch/arm/mach-bcm2708/include/mach/irqs.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/include/mach/irqs.h 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/include/mach/irqs.h linux-rpi/arch/arm/mach-bcm2708/include/mach/irqs.h +--- linux-3.15.4/arch/arm/mach-bcm2708/include/mach/irqs.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/irqs.h 2014-07-07 10:44:57.000000000 +0200 @@ -0,0 +1,197 @@ +/* + * arch/arm/mach-bcm2708/include/mach/irqs.h @@ -5688,9 +5688,9 @@ diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/irqs.h linux-rpi/arch/ar +#define NR_IRQS (HARD_IRQS+FIQ_IRQS+GPIO_IRQS+SPARE_IRQS) + +#endif /* _BCM2708_IRQS_H_ */ -diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/memory.h linux-rpi/arch/arm/mach-bcm2708/include/mach/memory.h ---- linux-3.15/arch/arm/mach-bcm2708/include/mach/memory.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/include/mach/memory.h 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/include/mach/memory.h linux-rpi/arch/arm/mach-bcm2708/include/mach/memory.h +--- linux-3.15.4/arch/arm/mach-bcm2708/include/mach/memory.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/memory.h 2014-04-13 17:32:40.000000000 +0200 @@ -0,0 +1,57 @@ +/* + * arch/arm/mach-bcm2708/include/mach/memory.h @@ -5749,9 +5749,9 @@ diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/memory.h linux-rpi/arch/ +#define __bus_to_pfn(x) __phys_to_pfn((x) - (BUS_OFFSET - PLAT_PHYS_OFFSET)) + +#endif -diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/platform.h linux-rpi/arch/arm/mach-bcm2708/include/mach/platform.h ---- linux-3.15/arch/arm/mach-bcm2708/include/mach/platform.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/include/mach/platform.h 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/include/mach/platform.h linux-rpi/arch/arm/mach-bcm2708/include/mach/platform.h +--- linux-3.15.4/arch/arm/mach-bcm2708/include/mach/platform.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/platform.h 2014-04-13 17:32:40.000000000 +0200 @@ -0,0 +1,228 @@ +/* + * arch/arm/mach-bcm2708/include/mach/platform.h @@ -5981,9 +5981,9 @@ diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/platform.h linux-rpi/arc +#endif + +/* END */ -diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/power.h linux-rpi/arch/arm/mach-bcm2708/include/mach/power.h ---- linux-3.15/arch/arm/mach-bcm2708/include/mach/power.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/include/mach/power.h 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/include/mach/power.h linux-rpi/arch/arm/mach-bcm2708/include/mach/power.h +--- linux-3.15.4/arch/arm/mach-bcm2708/include/mach/power.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/power.h 2014-04-13 17:32:40.000000000 +0200 @@ -0,0 +1,26 @@ +/* + * linux/arch/arm/mach-bcm2708/power.h @@ -6011,9 +6011,9 @@ diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/power.h linux-rpi/arch/a +extern int bcm_power_close(BCM_POWER_HANDLE_T handle); + +#endif -diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/system.h linux-rpi/arch/arm/mach-bcm2708/include/mach/system.h ---- linux-3.15/arch/arm/mach-bcm2708/include/mach/system.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/include/mach/system.h 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/include/mach/system.h linux-rpi/arch/arm/mach-bcm2708/include/mach/system.h +--- linux-3.15.4/arch/arm/mach-bcm2708/include/mach/system.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/system.h 2014-04-13 17:32:40.000000000 +0200 @@ -0,0 +1,38 @@ +/* + * arch/arm/mach-bcm2708/include/mach/system.h @@ -6053,9 +6053,9 @@ diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/system.h linux-rpi/arch/ +} + +#endif -diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/timex.h linux-rpi/arch/arm/mach-bcm2708/include/mach/timex.h ---- linux-3.15/arch/arm/mach-bcm2708/include/mach/timex.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/include/mach/timex.h 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/include/mach/timex.h linux-rpi/arch/arm/mach-bcm2708/include/mach/timex.h +--- linux-3.15.4/arch/arm/mach-bcm2708/include/mach/timex.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/timex.h 2014-04-13 17:32:40.000000000 +0200 @@ -0,0 +1,23 @@ +/* + * arch/arm/mach-bcm2708/include/mach/timex.h @@ -6080,9 +6080,9 @@ diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/timex.h linux-rpi/arch/a + */ + +#define CLOCK_TICK_RATE (1000000) -diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/uncompress.h linux-rpi/arch/arm/mach-bcm2708/include/mach/uncompress.h ---- linux-3.15/arch/arm/mach-bcm2708/include/mach/uncompress.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/include/mach/uncompress.h 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/include/mach/uncompress.h linux-rpi/arch/arm/mach-bcm2708/include/mach/uncompress.h +--- linux-3.15.4/arch/arm/mach-bcm2708/include/mach/uncompress.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/uncompress.h 2014-07-07 10:44:57.000000000 +0200 @@ -0,0 +1,84 @@ +/* + * arch/arm/mach-bcn2708/include/mach/uncompress.h @@ -6168,9 +6168,9 @@ diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/uncompress.h linux-rpi/a + * nothing to do + */ +#define arch_decomp_wdog() -diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/vcio.h linux-rpi/arch/arm/mach-bcm2708/include/mach/vcio.h ---- linux-3.15/arch/arm/mach-bcm2708/include/mach/vcio.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/include/mach/vcio.h 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/include/mach/vcio.h linux-rpi/arch/arm/mach-bcm2708/include/mach/vcio.h +--- linux-3.15.4/arch/arm/mach-bcm2708/include/mach/vcio.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/vcio.h 2014-07-07 10:44:57.000000000 +0200 @@ -0,0 +1,141 @@ +/* + * arch/arm/mach-bcm2708/include/mach/vcio.h @@ -6313,9 +6313,9 @@ diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/vcio.h linux-rpi/arch/ar +#define DEVICE_FILE_NAME "char_dev" + +#endif -diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/vc_mem.h linux-rpi/arch/arm/mach-bcm2708/include/mach/vc_mem.h ---- linux-3.15/arch/arm/mach-bcm2708/include/mach/vc_mem.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/include/mach/vc_mem.h 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/include/mach/vc_mem.h linux-rpi/arch/arm/mach-bcm2708/include/mach/vc_mem.h +--- linux-3.15.4/arch/arm/mach-bcm2708/include/mach/vc_mem.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/vc_mem.h 2014-07-07 10:44:57.000000000 +0200 @@ -0,0 +1,35 @@ +/***************************************************************************** +* Copyright 2010 - 2011 Broadcom Corporation. All rights reserved. @@ -6352,9 +6352,9 @@ diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/vc_mem.h linux-rpi/arch/ +#endif + +#endif /* VC_MEM_H */ -diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/vmalloc.h linux-rpi/arch/arm/mach-bcm2708/include/mach/vmalloc.h ---- linux-3.15/arch/arm/mach-bcm2708/include/mach/vmalloc.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/include/mach/vmalloc.h 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/include/mach/vmalloc.h linux-rpi/arch/arm/mach-bcm2708/include/mach/vmalloc.h +--- linux-3.15.4/arch/arm/mach-bcm2708/include/mach/vmalloc.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/vmalloc.h 2014-04-13 17:32:40.000000000 +0200 @@ -0,0 +1,20 @@ +/* + * arch/arm/mach-bcm2708/include/mach/vmalloc.h @@ -6376,9 +6376,9 @@ diff -Nur linux-3.15/arch/arm/mach-bcm2708/include/mach/vmalloc.h linux-rpi/arch + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +#define VMALLOC_END (0xe8000000) -diff -Nur linux-3.15/arch/arm/mach-bcm2708/Kconfig linux-rpi/arch/arm/mach-bcm2708/Kconfig ---- linux-3.15/arch/arm/mach-bcm2708/Kconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/Kconfig 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/Kconfig linux-rpi/arch/arm/mach-bcm2708/Kconfig +--- linux-3.15.4/arch/arm/mach-bcm2708/Kconfig 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/Kconfig 2014-07-07 10:44:57.000000000 +0200 @@ -0,0 +1,41 @@ +menu "Broadcom BCM2708 Implementations" + depends on ARCH_BCM2708 @@ -6421,9 +6421,9 @@ diff -Nur linux-3.15/arch/arm/mach-bcm2708/Kconfig linux-rpi/arch/arm/mach-bcm27 + help + Binds spidev driver to the SPI0 master +endmenu -diff -Nur linux-3.15/arch/arm/mach-bcm2708/Makefile linux-rpi/arch/arm/mach-bcm2708/Makefile ---- linux-3.15/arch/arm/mach-bcm2708/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/Makefile 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/Makefile linux-rpi/arch/arm/mach-bcm2708/Makefile +--- linux-3.15.4/arch/arm/mach-bcm2708/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/Makefile 2014-07-07 10:44:57.000000000 +0200 @@ -0,0 +1,7 @@ +# +# Makefile for the linux kernel. @@ -6432,16 +6432,16 @@ diff -Nur linux-3.15/arch/arm/mach-bcm2708/Makefile linux-rpi/arch/arm/mach-bcm2 +obj-$(CONFIG_MACH_BCM2708) += clock.o bcm2708.o armctrl.o vcio.o power.o dma.o +obj-$(CONFIG_BCM2708_GPIO) += bcm2708_gpio.o +obj-$(CONFIG_BCM2708_VCMEM) += vc_mem.o -diff -Nur linux-3.15/arch/arm/mach-bcm2708/Makefile.boot linux-rpi/arch/arm/mach-bcm2708/Makefile.boot ---- linux-3.15/arch/arm/mach-bcm2708/Makefile.boot 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/Makefile.boot 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/Makefile.boot linux-rpi/arch/arm/mach-bcm2708/Makefile.boot +--- linux-3.15.4/arch/arm/mach-bcm2708/Makefile.boot 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/Makefile.boot 2014-04-13 17:32:40.000000000 +0200 @@ -0,0 +1,3 @@ + zreladdr-y := 0x00008000 +params_phys-y := 0x00000100 +initrd_phys-y := 0x00800000 -diff -Nur linux-3.15/arch/arm/mach-bcm2708/power.c linux-rpi/arch/arm/mach-bcm2708/power.c ---- linux-3.15/arch/arm/mach-bcm2708/power.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/power.c 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/power.c linux-rpi/arch/arm/mach-bcm2708/power.c +--- linux-3.15.4/arch/arm/mach-bcm2708/power.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/power.c 2014-04-13 17:32:40.000000000 +0200 @@ -0,0 +1,194 @@ +/* + * linux/arch/arm/mach-bcm2708/power.c @@ -6637,9 +6637,9 @@ diff -Nur linux-3.15/arch/arm/mach-bcm2708/power.c linux-rpi/arch/arm/mach-bcm27 +MODULE_AUTHOR("Phil Elwell"); +MODULE_DESCRIPTION("Interface to BCM2708 power management"); +MODULE_LICENSE("GPL"); -diff -Nur linux-3.15/arch/arm/mach-bcm2708/vcio.c linux-rpi/arch/arm/mach-bcm2708/vcio.c ---- linux-3.15/arch/arm/mach-bcm2708/vcio.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/vcio.c 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/vcio.c linux-rpi/arch/arm/mach-bcm2708/vcio.c +--- linux-3.15.4/arch/arm/mach-bcm2708/vcio.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/vcio.c 2014-07-07 10:44:57.000000000 +0200 @@ -0,0 +1,474 @@ +/* + * linux/arch/arm/mach-bcm2708/vcio.c @@ -7115,9 +7115,9 @@ diff -Nur linux-3.15/arch/arm/mach-bcm2708/vcio.c linux-rpi/arch/arm/mach-bcm270 +MODULE_DESCRIPTION("ARM I/O to VideoCore processor"); +MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:bcm-mbox"); -diff -Nur linux-3.15/arch/arm/mach-bcm2708/vc_mem.c linux-rpi/arch/arm/mach-bcm2708/vc_mem.c ---- linux-3.15/arch/arm/mach-bcm2708/vc_mem.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/arch/arm/mach-bcm2708/vc_mem.c 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mach-bcm2708/vc_mem.c linux-rpi/arch/arm/mach-bcm2708/vc_mem.c +--- linux-3.15.4/arch/arm/mach-bcm2708/vc_mem.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/arch/arm/mach-bcm2708/vc_mem.c 2014-04-13 17:32:40.000000000 +0200 @@ -0,0 +1,432 @@ +/***************************************************************************** +* Copyright 2010 - 2011 Broadcom Corporation. All rights reserved. @@ -7551,9 +7551,9 @@ diff -Nur linux-3.15/arch/arm/mach-bcm2708/vc_mem.c linux-rpi/arch/arm/mach-bcm2 +module_param(mem_size, uint, 0644); +module_param(mem_base, uint, 0644); + -diff -Nur linux-3.15/arch/arm/Makefile linux-rpi/arch/arm/Makefile ---- linux-3.15/arch/arm/Makefile 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/arch/arm/Makefile 2014-06-11 21:05:18.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/Makefile linux-rpi/arch/arm/Makefile +--- linux-3.15.4/arch/arm/Makefile 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/arch/arm/Makefile 2014-07-07 10:44:57.000000000 +0200 @@ -143,6 +143,7 @@ # by CONFIG_* macro name. machine-$(CONFIG_ARCH_AT91) += at91 @@ -7562,9 +7562,9 @@ diff -Nur linux-3.15/arch/arm/Makefile linux-rpi/arch/arm/Makefile machine-$(CONFIG_ARCH_BERLIN) += berlin machine-$(CONFIG_ARCH_CLPS711X) += clps711x machine-$(CONFIG_ARCH_CNS3XXX) += cns3xxx -diff -Nur linux-3.15/arch/arm/mm/Kconfig linux-rpi/arch/arm/mm/Kconfig ---- linux-3.15/arch/arm/mm/Kconfig 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/arch/arm/mm/Kconfig 2014-06-11 21:05:18.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mm/Kconfig linux-rpi/arch/arm/mm/Kconfig +--- linux-3.15.4/arch/arm/mm/Kconfig 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/arch/arm/mm/Kconfig 2014-07-07 10:44:58.000000000 +0200 @@ -358,7 +358,7 @@ # ARMv6 @@ -7574,9 +7574,9 @@ diff -Nur linux-3.15/arch/arm/mm/Kconfig linux-rpi/arch/arm/mm/Kconfig select CPU_32v6 select CPU_ABRT_EV6 select CPU_CACHE_V6 -diff -Nur linux-3.15/arch/arm/mm/proc-v6.S linux-rpi/arch/arm/mm/proc-v6.S ---- linux-3.15/arch/arm/mm/proc-v6.S 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/arch/arm/mm/proc-v6.S 2014-06-11 21:05:18.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/mm/proc-v6.S linux-rpi/arch/arm/mm/proc-v6.S +--- linux-3.15.4/arch/arm/mm/proc-v6.S 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/arch/arm/mm/proc-v6.S 2014-07-07 10:44:58.000000000 +0200 @@ -73,10 +73,19 @@ * * IRQs are already disabled. @@ -7600,9 +7600,9 @@ diff -Nur linux-3.15/arch/arm/mm/proc-v6.S linux-rpi/arch/arm/mm/proc-v6.S mov pc, lr ENTRY(cpu_v6_dcache_clean_area) -diff -Nur linux-3.15/arch/arm/tools/mach-types linux-rpi/arch/arm/tools/mach-types ---- linux-3.15/arch/arm/tools/mach-types 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/arch/arm/tools/mach-types 2014-06-11 21:03:20.000000000 +0200 +diff -Nur linux-3.15.4/arch/arm/tools/mach-types linux-rpi/arch/arm/tools/mach-types +--- linux-3.15.4/arch/arm/tools/mach-types 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/arch/arm/tools/mach-types 2014-04-13 17:32:41.000000000 +0200 @@ -522,6 +522,7 @@ prima2_evb MACH_PRIMA2_EVB PRIMA2_EVB 3103 paz00 MACH_PAZ00 PAZ00 3128 @@ -7611,9 +7611,1012 @@ diff -Nur linux-3.15/arch/arm/tools/mach-types linux-rpi/arch/arm/tools/mach-typ ag5evm MACH_AG5EVM AG5EVM 3189 ics_if_voip MACH_ICS_IF_VOIP ICS_IF_VOIP 3206 wlf_cragg_6410 MACH_WLF_CRAGG_6410 WLF_CRAGG_6410 3207 -diff -Nur linux-3.15/Documentation/video4linux/bcm2835-v4l2.txt linux-rpi/Documentation/video4linux/bcm2835-v4l2.txt ---- linux-3.15/Documentation/video4linux/bcm2835-v4l2.txt 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/Documentation/video4linux/bcm2835-v4l2.txt 2014-06-11 21:03:19.000000000 +0200 +diff -Nur linux-3.15.4/arch/mips/include/asm/sigcontext.h linux-rpi/arch/mips/include/asm/sigcontext.h +--- linux-3.15.4/arch/mips/include/asm/sigcontext.h 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/arch/mips/include/asm/sigcontext.h 2014-07-07 10:44:58.000000000 +0200 +@@ -32,6 +32,8 @@ + __u32 sc_lo2; + __u32 sc_hi3; + __u32 sc_lo3; ++ __u64 sc_msaregs[32]; /* Most significant 64 bits */ ++ __u32 sc_msa_csr; + }; + #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32 */ + #endif /* _ASM_SIGCONTEXT_H */ +diff -Nur linux-3.15.4/arch/mips/include/uapi/asm/sigcontext.h linux-rpi/arch/mips/include/uapi/asm/sigcontext.h +--- linux-3.15.4/arch/mips/include/uapi/asm/sigcontext.h 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/arch/mips/include/uapi/asm/sigcontext.h 2014-07-07 10:44:58.000000000 +0200 +@@ -12,6 +12,10 @@ + #include <linux/types.h> + #include <asm/sgidefs.h> + ++/* Bits which may be set in sc_used_math */ ++#define USEDMATH_FP (1 << 0) ++#define USEDMATH_MSA (1 << 1) ++ + #if _MIPS_SIM == _MIPS_SIM_ABI32 + + /* +@@ -37,6 +41,8 @@ + unsigned long sc_lo2; + unsigned long sc_hi3; + unsigned long sc_lo3; ++ unsigned long long sc_msaregs[32]; /* Most significant 64 bits */ ++ unsigned long sc_msa_csr; + }; + + #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */ +@@ -70,6 +76,8 @@ + __u32 sc_used_math; + __u32 sc_dsp; + __u32 sc_reserved; ++ __u64 sc_msaregs[32]; ++ __u32 sc_msa_csr; + }; + + +diff -Nur linux-3.15.4/arch/mips/kernel/asm-offsets.c linux-rpi/arch/mips/kernel/asm-offsets.c +--- linux-3.15.4/arch/mips/kernel/asm-offsets.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/arch/mips/kernel/asm-offsets.c 2014-07-07 10:44:58.000000000 +0200 +@@ -295,6 +295,7 @@ + OFFSET(SC_LO2, sigcontext, sc_lo2); + OFFSET(SC_HI3, sigcontext, sc_hi3); + OFFSET(SC_LO3, sigcontext, sc_lo3); ++ OFFSET(SC_MSAREGS, sigcontext, sc_msaregs); + BLANK(); + } + #endif +@@ -309,6 +310,7 @@ + OFFSET(SC_MDLO, sigcontext, sc_mdlo); + OFFSET(SC_PC, sigcontext, sc_pc); + OFFSET(SC_FPC_CSR, sigcontext, sc_fpc_csr); ++ OFFSET(SC_MSAREGS, sigcontext, sc_msaregs); + BLANK(); + } + #endif +@@ -320,6 +322,7 @@ + OFFSET(SC32_FPREGS, sigcontext32, sc_fpregs); + OFFSET(SC32_FPC_CSR, sigcontext32, sc_fpc_csr); + OFFSET(SC32_FPC_EIR, sigcontext32, sc_fpc_eir); ++ OFFSET(SC32_MSAREGS, sigcontext32, sc_msaregs); + BLANK(); + } + #endif +diff -Nur linux-3.15.4/arch/mips/kernel/irq-msc01.c linux-rpi/arch/mips/kernel/irq-msc01.c +--- linux-3.15.4/arch/mips/kernel/irq-msc01.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/arch/mips/kernel/irq-msc01.c 2014-04-13 17:32:42.000000000 +0200 +@@ -131,7 +131,7 @@ + + board_bind_eic_interrupt = &msc_bind_eic_interrupt; + +- for (; nirq > 0; nirq--, imp++) { ++ for (; nirq >= 0; nirq--, imp++) { + int n = imp->im_irq; + + switch (imp->im_type) { +diff -Nur linux-3.15.4/arch/mips/kernel/r4k_fpu.S linux-rpi/arch/mips/kernel/r4k_fpu.S +--- linux-3.15.4/arch/mips/kernel/r4k_fpu.S 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/arch/mips/kernel/r4k_fpu.S 2014-07-07 10:44:58.000000000 +0200 +@@ -13,6 +13,7 @@ + * Copyright (C) 1999, 2001 Silicon Graphics, Inc. + */ + #include <asm/asm.h> ++#include <asm/asmmacro.h> + #include <asm/errno.h> + #include <asm/fpregdef.h> + #include <asm/mipsregs.h> +@@ -245,6 +246,218 @@ + END(_restore_fp_context32) + #endif + ++#ifdef CONFIG_CPU_HAS_MSA ++ ++ .macro save_sc_msareg wr, off, sc, tmp ++#ifdef CONFIG_64BIT ++ copy_u_d \tmp, \wr, 1 ++ EX sd \tmp, (\off+(\wr*8))(\sc) ++#elif defined(CONFIG_CPU_LITTLE_ENDIAN) ++ copy_u_w \tmp, \wr, 2 ++ EX sw \tmp, (\off+(\wr*8)+0)(\sc) ++ copy_u_w \tmp, \wr, 3 ++ EX sw \tmp, (\off+(\wr*8)+4)(\sc) ++#else /* CONFIG_CPU_BIG_ENDIAN */ ++ copy_u_w \tmp, \wr, 2 ++ EX sw \tmp, (\off+(\wr*8)+4)(\sc) ++ copy_u_w \tmp, \wr, 3 ++ EX sw \tmp, (\off+(\wr*8)+0)(\sc) ++#endif ++ .endm ++ ++/* ++ * int _save_msa_context(struct sigcontext *sc) ++ * ++ * Save the upper 64 bits of each vector register along with the MSA_CSR ++ * register into sc. Returns zero on success, else non-zero. ++ */ ++LEAF(_save_msa_context) ++ save_sc_msareg 0, SC_MSAREGS, a0, t0 ++ save_sc_msareg 1, SC_MSAREGS, a0, t0 ++ save_sc_msareg 2, SC_MSAREGS, a0, t0 ++ save_sc_msareg 3, SC_MSAREGS, a0, t0 ++ save_sc_msareg 4, SC_MSAREGS, a0, t0 ++ save_sc_msareg 5, SC_MSAREGS, a0, t0 ++ save_sc_msareg 6, SC_MSAREGS, a0, t0 ++ save_sc_msareg 7, SC_MSAREGS, a0, t0 ++ save_sc_msareg 8, SC_MSAREGS, a0, t0 ++ save_sc_msareg 9, SC_MSAREGS, a0, t0 ++ save_sc_msareg 10, SC_MSAREGS, a0, t0 ++ save_sc_msareg 11, SC_MSAREGS, a0, t0 ++ save_sc_msareg 12, SC_MSAREGS, a0, t0 ++ save_sc_msareg 13, SC_MSAREGS, a0, t0 ++ save_sc_msareg 14, SC_MSAREGS, a0, t0 ++ save_sc_msareg 15, SC_MSAREGS, a0, t0 ++ save_sc_msareg 16, SC_MSAREGS, a0, t0 ++ save_sc_msareg 17, SC_MSAREGS, a0, t0 ++ save_sc_msareg 18, SC_MSAREGS, a0, t0 ++ save_sc_msareg 19, SC_MSAREGS, a0, t0 ++ save_sc_msareg 20, SC_MSAREGS, a0, t0 ++ save_sc_msareg 21, SC_MSAREGS, a0, t0 ++ save_sc_msareg 22, SC_MSAREGS, a0, t0 ++ save_sc_msareg 23, SC_MSAREGS, a0, t0 ++ save_sc_msareg 24, SC_MSAREGS, a0, t0 ++ save_sc_msareg 25, SC_MSAREGS, a0, t0 ++ save_sc_msareg 26, SC_MSAREGS, a0, t0 ++ save_sc_msareg 27, SC_MSAREGS, a0, t0 ++ save_sc_msareg 28, SC_MSAREGS, a0, t0 ++ save_sc_msareg 29, SC_MSAREGS, a0, t0 ++ save_sc_msareg 30, SC_MSAREGS, a0, t0 ++ save_sc_msareg 31, SC_MSAREGS, a0, t0 ++ jr ra ++ li v0, 0 ++ END(_save_msa_context) ++ ++#ifdef CONFIG_MIPS32_COMPAT ++ ++/* ++ * int _save_msa_context32(struct sigcontext32 *sc) ++ * ++ * Save the upper 64 bits of each vector register along with the MSA_CSR ++ * register into sc. Returns zero on success, else non-zero. ++ */ ++LEAF(_save_msa_context32) ++ save_sc_msareg 0, SC32_MSAREGS, a0, t0 ++ save_sc_msareg 1, SC32_MSAREGS, a0, t0 ++ save_sc_msareg 2, SC32_MSAREGS, a0, t0 ++ save_sc_msareg 3, SC32_MSAREGS, a0, t0 ++ save_sc_msareg 4, SC32_MSAREGS, a0, t0 ++ save_sc_msareg 5, SC32_MSAREGS, a0, t0 ++ save_sc_msareg 6, SC32_MSAREGS, a0, t0 ++ save_sc_msareg 7, SC32_MSAREGS, a0, t0 ++ save_sc_msareg 8, SC32_MSAREGS, a0, t0 ++ save_sc_msareg 9, SC32_MSAREGS, a0, t0 ++ save_sc_msareg 10, SC32_MSAREGS, a0, t0 ++ save_sc_msareg 11, SC32_MSAREGS, a0, t0 ++ save_sc_msareg 12, SC32_MSAREGS, a0, t0 ++ save_sc_msareg 13, SC32_MSAREGS, a0, t0 ++ save_sc_msareg 14, SC32_MSAREGS, a0, t0 ++ save_sc_msareg 15, SC32_MSAREGS, a0, t0 ++ save_sc_msareg 16, SC32_MSAREGS, a0, t0 ++ save_sc_msareg 17, SC32_MSAREGS, a0, t0 ++ save_sc_msareg 18, SC32_MSAREGS, a0, t0 ++ save_sc_msareg 19, SC32_MSAREGS, a0, t0 ++ save_sc_msareg 20, SC32_MSAREGS, a0, t0 ++ save_sc_msareg 21, SC32_MSAREGS, a0, t0 ++ save_sc_msareg 22, SC32_MSAREGS, a0, t0 ++ save_sc_msareg 23, SC32_MSAREGS, a0, t0 ++ save_sc_msareg 24, SC32_MSAREGS, a0, t0 ++ save_sc_msareg 25, SC32_MSAREGS, a0, t0 ++ save_sc_msareg 26, SC32_MSAREGS, a0, t0 ++ save_sc_msareg 27, SC32_MSAREGS, a0, t0 ++ save_sc_msareg 28, SC32_MSAREGS, a0, t0 ++ save_sc_msareg 29, SC32_MSAREGS, a0, t0 ++ save_sc_msareg 30, SC32_MSAREGS, a0, t0 ++ save_sc_msareg 31, SC32_MSAREGS, a0, t0 ++ jr ra ++ li v0, 0 ++ END(_save_msa_context32) ++ ++#endif /* CONFIG_MIPS32_COMPAT */ ++ ++ .macro restore_sc_msareg wr, off, sc, tmp ++#ifdef CONFIG_64BIT ++ EX ld \tmp, (\off+(\wr*8))(\sc) ++ insert_d \wr, 1, \tmp ++#elif defined(CONFIG_CPU_LITTLE_ENDIAN) ++ EX lw \tmp, (\off+(\wr*8)+0)(\sc) ++ insert_w \wr, 2, \tmp ++ EX lw \tmp, (\off+(\wr*8)+4)(\sc) ++ insert_w \wr, 3, \tmp ++#else /* CONFIG_CPU_BIG_ENDIAN */ ++ EX lw \tmp, (\off+(\wr*8)+4)(\sc) ++ insert_w \wr, 2, \tmp ++ EX lw \tmp, (\off+(\wr*8)+0)(\sc) ++ insert_w \wr, 3, \tmp ++#endif ++ .endm ++ ++/* ++ * int _restore_msa_context(struct sigcontext *sc) ++ */ ++LEAF(_restore_msa_context) ++ restore_sc_msareg 0, SC_MSAREGS, a0, t0 ++ restore_sc_msareg 1, SC_MSAREGS, a0, t0 ++ restore_sc_msareg 2, SC_MSAREGS, a0, t0 ++ restore_sc_msareg 3, SC_MSAREGS, a0, t0 ++ restore_sc_msareg 4, SC_MSAREGS, a0, t0 ++ restore_sc_msareg 5, SC_MSAREGS, a0, t0 ++ restore_sc_msareg 6, SC_MSAREGS, a0, t0 ++ restore_sc_msareg 7, SC_MSAREGS, a0, t0 ++ restore_sc_msareg 8, SC_MSAREGS, a0, t0 ++ restore_sc_msareg 9, SC_MSAREGS, a0, t0 ++ restore_sc_msareg 10, SC_MSAREGS, a0, t0 ++ restore_sc_msareg 11, SC_MSAREGS, a0, t0 ++ restore_sc_msareg 12, SC_MSAREGS, a0, t0 ++ restore_sc_msareg 13, SC_MSAREGS, a0, t0 ++ restore_sc_msareg 14, SC_MSAREGS, a0, t0 ++ restore_sc_msareg 15, SC_MSAREGS, a0, t0 ++ restore_sc_msareg 16, SC_MSAREGS, a0, t0 ++ restore_sc_msareg 17, SC_MSAREGS, a0, t0 ++ restore_sc_msareg 18, SC_MSAREGS, a0, t0 ++ restore_sc_msareg 19, SC_MSAREGS, a0, t0 ++ restore_sc_msareg 20, SC_MSAREGS, a0, t0 ++ restore_sc_msareg 21, SC_MSAREGS, a0, t0 ++ restore_sc_msareg 22, SC_MSAREGS, a0, t0 ++ restore_sc_msareg 23, SC_MSAREGS, a0, t0 ++ restore_sc_msareg 24, SC_MSAREGS, a0, t0 ++ restore_sc_msareg 25, SC_MSAREGS, a0, t0 ++ restore_sc_msareg 26, SC_MSAREGS, a0, t0 ++ restore_sc_msareg 27, SC_MSAREGS, a0, t0 ++ restore_sc_msareg 28, SC_MSAREGS, a0, t0 ++ restore_sc_msareg 29, SC_MSAREGS, a0, t0 ++ restore_sc_msareg 30, SC_MSAREGS, a0, t0 ++ restore_sc_msareg 31, SC_MSAREGS, a0, t0 ++ jr ra ++ li v0, 0 ++ END(_restore_msa_context) ++ ++#ifdef CONFIG_MIPS32_COMPAT ++ ++/* ++ * int _restore_msa_context32(struct sigcontext32 *sc) ++ */ ++LEAF(_restore_msa_context32) ++ restore_sc_msareg 0, SC32_MSAREGS, a0, t0 ++ restore_sc_msareg 1, SC32_MSAREGS, a0, t0 ++ restore_sc_msareg 2, SC32_MSAREGS, a0, t0 ++ restore_sc_msareg 3, SC32_MSAREGS, a0, t0 ++ restore_sc_msareg 4, SC32_MSAREGS, a0, t0 ++ restore_sc_msareg 5, SC32_MSAREGS, a0, t0 ++ restore_sc_msareg 6, SC32_MSAREGS, a0, t0 ++ restore_sc_msareg 7, SC32_MSAREGS, a0, t0 ++ restore_sc_msareg 8, SC32_MSAREGS, a0, t0 ++ restore_sc_msareg 9, SC32_MSAREGS, a0, t0 ++ restore_sc_msareg 10, SC32_MSAREGS, a0, t0 ++ restore_sc_msareg 11, SC32_MSAREGS, a0, t0 ++ restore_sc_msareg 12, SC32_MSAREGS, a0, t0 ++ restore_sc_msareg 13, SC32_MSAREGS, a0, t0 ++ restore_sc_msareg 14, SC32_MSAREGS, a0, t0 ++ restore_sc_msareg 15, SC32_MSAREGS, a0, t0 ++ restore_sc_msareg 16, SC32_MSAREGS, a0, t0 ++ restore_sc_msareg 17, SC32_MSAREGS, a0, t0 ++ restore_sc_msareg 18, SC32_MSAREGS, a0, t0 ++ restore_sc_msareg 19, SC32_MSAREGS, a0, t0 ++ restore_sc_msareg 20, SC32_MSAREGS, a0, t0 ++ restore_sc_msareg 21, SC32_MSAREGS, a0, t0 ++ restore_sc_msareg 22, SC32_MSAREGS, a0, t0 ++ restore_sc_msareg 23, SC32_MSAREGS, a0, t0 ++ restore_sc_msareg 24, SC32_MSAREGS, a0, t0 ++ restore_sc_msareg 25, SC32_MSAREGS, a0, t0 ++ restore_sc_msareg 26, SC32_MSAREGS, a0, t0 ++ restore_sc_msareg 27, SC32_MSAREGS, a0, t0 ++ restore_sc_msareg 28, SC32_MSAREGS, a0, t0 ++ restore_sc_msareg 29, SC32_MSAREGS, a0, t0 ++ restore_sc_msareg 30, SC32_MSAREGS, a0, t0 ++ restore_sc_msareg 31, SC32_MSAREGS, a0, t0 ++ jr ra ++ li v0, 0 ++ END(_restore_msa_context32) ++ ++#endif /* CONFIG_MIPS32_COMPAT */ ++ ++#endif /* CONFIG_CPU_HAS_MSA */ ++ + .set reorder + + .type fault@function +diff -Nur linux-3.15.4/arch/mips/kernel/signal32.c linux-rpi/arch/mips/kernel/signal32.c +--- linux-3.15.4/arch/mips/kernel/signal32.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/arch/mips/kernel/signal32.c 2014-07-07 10:44:58.000000000 +0200 +@@ -30,6 +30,7 @@ + #include <asm/sim.h> + #include <asm/ucontext.h> + #include <asm/fpu.h> ++#include <asm/msa.h> + #include <asm/war.h> + #include <asm/vdso.h> + #include <asm/dsp.h> +@@ -42,6 +43,9 @@ + extern asmlinkage int _save_fp_context32(struct sigcontext32 __user *sc); + extern asmlinkage int _restore_fp_context32(struct sigcontext32 __user *sc); + ++extern asmlinkage int _save_msa_context32(struct sigcontext32 __user *sc); ++extern asmlinkage int _restore_msa_context32(struct sigcontext32 __user *sc); ++ + /* + * Including <asm/unistd.h> would give use the 64-bit syscall numbers ... + */ +@@ -111,19 +115,59 @@ + } + + /* ++ * These functions will save only the upper 64 bits of the vector registers, ++ * since the lower 64 bits have already been saved as the scalar FP context. ++ */ ++static int copy_msa_to_sigcontext32(struct sigcontext32 __user *sc) ++{ ++ int i; ++ int err = 0; ++ ++ for (i = 0; i < NUM_FPU_REGS; i++) { ++ err |= ++ __put_user(get_fpr64(¤t->thread.fpu.fpr[i], 1), ++ &sc->sc_msaregs[i]); ++ } ++ err |= __put_user(current->thread.fpu.msacsr, &sc->sc_msa_csr); ++ ++ return err; ++} ++ ++static int copy_msa_from_sigcontext32(struct sigcontext32 __user *sc) ++{ ++ int i; ++ int err = 0; ++ u64 val; ++ ++ for (i = 0; i < NUM_FPU_REGS; i++) { ++ err |= __get_user(val, &sc->sc_msaregs[i]); ++ set_fpr64(¤t->thread.fpu.fpr[i], 1, val); ++ } ++ err |= __get_user(current->thread.fpu.msacsr, &sc->sc_msa_csr); ++ ++ return err; ++} ++ ++/* + * sigcontext handlers + */ +-static int protected_save_fp_context32(struct sigcontext32 __user *sc) ++static int protected_save_fp_context32(struct sigcontext32 __user *sc, ++ unsigned used_math) + { + int err; ++ bool save_msa = cpu_has_msa && (used_math & USEDMATH_MSA); + while (1) { + lock_fpu_owner(); + if (is_fpu_owner()) { + err = save_fp_context32(sc); ++ if (save_msa && !err) ++ err = _save_msa_context32(sc); + unlock_fpu_owner(); + } else { + unlock_fpu_owner(); + err = copy_fp_to_sigcontext32(sc); ++ if (save_msa && !err) ++ err = copy_msa_to_sigcontext32(sc); + } + if (likely(!err)) + break; +@@ -137,17 +181,28 @@ + return err; + } + +-static int protected_restore_fp_context32(struct sigcontext32 __user *sc) ++static int protected_restore_fp_context32(struct sigcontext32 __user *sc, ++ unsigned used_math) + { + int err, tmp __maybe_unused; ++ bool restore_msa = cpu_has_msa && (used_math & USEDMATH_MSA); + while (1) { + lock_fpu_owner(); + if (is_fpu_owner()) { + err = restore_fp_context32(sc); ++ if (restore_msa && !err) { ++ enable_msa(); ++ err = _restore_msa_context32(sc); ++ } else { ++ /* signal handler may have used MSA */ ++ disable_msa(); ++ } + unlock_fpu_owner(); + } else { + unlock_fpu_owner(); + err = copy_fp_from_sigcontext32(sc); ++ if (restore_msa && !err) ++ err = copy_msa_from_sigcontext32(sc); + } + if (likely(!err)) + break; +@@ -186,7 +241,8 @@ + err |= __put_user(mflo3(), &sc->sc_lo3); + } + +- used_math = !!used_math(); ++ used_math = used_math() ? USEDMATH_FP : 0; ++ used_math |= thread_msa_context_live() ? USEDMATH_MSA : 0; + err |= __put_user(used_math, &sc->sc_used_math); + + if (used_math) { +@@ -194,20 +250,21 @@ + * Save FPU state to signal context. Signal handler + * will "inherit" current FPU state. + */ +- err |= protected_save_fp_context32(sc); ++ err |= protected_save_fp_context32(sc, used_math); + } + return err; + } + + static int +-check_and_restore_fp_context32(struct sigcontext32 __user *sc) ++check_and_restore_fp_context32(struct sigcontext32 __user *sc, ++ unsigned used_math) + { + int err, sig; + + err = sig = fpcsr_pending(&sc->sc_fpc_csr); + if (err > 0) + err = 0; +- err |= protected_restore_fp_context32(sc); ++ err |= protected_restore_fp_context32(sc, used_math); + return err ?: sig; + } + +@@ -244,9 +301,10 @@ + if (used_math) { + /* restore fpu context if we have used it before */ + if (!err) +- err = check_and_restore_fp_context32(sc); ++ err = check_and_restore_fp_context32(sc, used_math); + } else { +- /* signal handler may have used FPU. Give it up. */ ++ /* signal handler may have used FPU or MSA. Disable them. */ ++ disable_msa(); + lose_fpu(0); + } + +diff -Nur linux-3.15.4/arch/mips/kernel/signal.c linux-rpi/arch/mips/kernel/signal.c +--- linux-3.15.4/arch/mips/kernel/signal.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/arch/mips/kernel/signal.c 2014-07-07 10:44:58.000000000 +0200 +@@ -31,6 +31,7 @@ + #include <linux/bitops.h> + #include <asm/cacheflush.h> + #include <asm/fpu.h> ++#include <asm/msa.h> + #include <asm/sim.h> + #include <asm/ucontext.h> + #include <asm/cpu-features.h> +@@ -47,6 +48,9 @@ + extern asmlinkage int _save_fp_context(struct sigcontext __user *sc); + extern asmlinkage int _restore_fp_context(struct sigcontext __user *sc); + ++extern asmlinkage int _save_msa_context(struct sigcontext __user *sc); ++extern asmlinkage int _restore_msa_context(struct sigcontext __user *sc); ++ + struct sigframe { + u32 sf_ass[4]; /* argument save space for o32 */ + u32 sf_pad[2]; /* Was: signal trampoline */ +@@ -96,20 +100,60 @@ + } + + /* ++ * These functions will save only the upper 64 bits of the vector registers, ++ * since the lower 64 bits have already been saved as the scalar FP context. ++ */ ++static int copy_msa_to_sigcontext(struct sigcontext __user *sc) ++{ ++ int i; ++ int err = 0; ++ ++ for (i = 0; i < NUM_FPU_REGS; i++) { ++ err |= ++ __put_user(get_fpr64(¤t->thread.fpu.fpr[i], 1), ++ &sc->sc_msaregs[i]); ++ } ++ err |= __put_user(current->thread.fpu.msacsr, &sc->sc_msa_csr); ++ ++ return err; ++} ++ ++static int copy_msa_from_sigcontext(struct sigcontext __user *sc) ++{ ++ int i; ++ int err = 0; ++ u64 val; ++ ++ for (i = 0; i < NUM_FPU_REGS; i++) { ++ err |= __get_user(val, &sc->sc_msaregs[i]); ++ set_fpr64(¤t->thread.fpu.fpr[i], 1, val); ++ } ++ err |= __get_user(current->thread.fpu.msacsr, &sc->sc_msa_csr); ++ ++ return err; ++} ++ ++/* + * Helper routines + */ +-static int protected_save_fp_context(struct sigcontext __user *sc) ++static int protected_save_fp_context(struct sigcontext __user *sc, ++ unsigned used_math) + { + int err; ++ bool save_msa = cpu_has_msa && (used_math & USEDMATH_MSA); + #ifndef CONFIG_EVA + while (1) { + lock_fpu_owner(); + if (is_fpu_owner()) { + err = save_fp_context(sc); ++ if (save_msa && !err) ++ err = _save_msa_context(sc); + unlock_fpu_owner(); + } else { + unlock_fpu_owner(); + err = copy_fp_to_sigcontext(sc); ++ if (save_msa && !err) ++ err = copy_msa_to_sigcontext(sc); + } + if (likely(!err)) + break; +@@ -125,24 +169,38 @@ + * EVA does not have FPU EVA instructions so saving fpu context directly + * does not work. + */ ++ disable_msa(); + lose_fpu(1); + err = save_fp_context(sc); /* this might fail */ ++ if (save_msa && !err) ++ err = copy_msa_to_sigcontext(sc); + #endif + return err; + } + +-static int protected_restore_fp_context(struct sigcontext __user *sc) ++static int protected_restore_fp_context(struct sigcontext __user *sc, ++ unsigned used_math) + { + int err, tmp __maybe_unused; ++ bool restore_msa = cpu_has_msa && (used_math & USEDMATH_MSA); + #ifndef CONFIG_EVA + while (1) { + lock_fpu_owner(); + if (is_fpu_owner()) { + err = restore_fp_context(sc); ++ if (restore_msa && !err) { ++ enable_msa(); ++ err = _restore_msa_context(sc); ++ } else { ++ /* signal handler may have used MSA */ ++ disable_msa(); ++ } + unlock_fpu_owner(); + } else { + unlock_fpu_owner(); + err = copy_fp_from_sigcontext(sc); ++ if (!err && (used_math & USEDMATH_MSA)) ++ err = copy_msa_from_sigcontext(sc); + } + if (likely(!err)) + break; +@@ -158,8 +216,11 @@ + * EVA does not have FPU EVA instructions so restoring fpu context + * directly does not work. + */ ++ enable_msa(); + lose_fpu(0); + err = restore_fp_context(sc); /* this might fail */ ++ if (restore_msa && !err) ++ err = copy_msa_from_sigcontext(sc); + #endif + return err; + } +@@ -191,7 +252,8 @@ + err |= __put_user(rddsp(DSP_MASK), &sc->sc_dsp); + } + +- used_math = !!used_math(); ++ used_math = used_math() ? USEDMATH_FP : 0; ++ used_math |= thread_msa_context_live() ? USEDMATH_MSA : 0; + err |= __put_user(used_math, &sc->sc_used_math); + + if (used_math) { +@@ -199,7 +261,7 @@ + * Save FPU state to signal context. Signal handler + * will "inherit" current FPU state. + */ +- err |= protected_save_fp_context(sc); ++ err |= protected_save_fp_context(sc, used_math); + } + return err; + } +@@ -224,14 +286,14 @@ + } + + static int +-check_and_restore_fp_context(struct sigcontext __user *sc) ++check_and_restore_fp_context(struct sigcontext __user *sc, unsigned used_math) + { + int err, sig; + + err = sig = fpcsr_pending(&sc->sc_fpc_csr); + if (err > 0) + err = 0; +- err |= protected_restore_fp_context(sc); ++ err |= protected_restore_fp_context(sc, used_math); + return err ?: sig; + } + +@@ -271,9 +333,10 @@ + if (used_math) { + /* restore fpu context if we have used it before */ + if (!err) +- err = check_and_restore_fp_context(sc); ++ err = check_and_restore_fp_context(sc, used_math); + } else { +- /* signal handler may have used FPU. Give it up. */ ++ /* signal handler may have used FPU or MSA. Disable them. */ ++ disable_msa(); + lose_fpu(0); + } + +diff -Nur linux-3.15.4/arch/mips/kvm/kvm_mips.c linux-rpi/arch/mips/kvm/kvm_mips.c +--- linux-3.15.4/arch/mips/kvm/kvm_mips.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/arch/mips/kvm/kvm_mips.c 2014-07-07 10:44:58.000000000 +0200 +@@ -149,7 +149,9 @@ + if (kvm->arch.guest_pmap[i] != KVM_INVALID_PAGE) + kvm_mips_release_pfn_clean(kvm->arch.guest_pmap[i]); + } +- kfree(kvm->arch.guest_pmap); ++ ++ if (kvm->arch.guest_pmap) ++ kfree(kvm->arch.guest_pmap); + + kvm_for_each_vcpu(i, vcpu, kvm) { + kvm_arch_vcpu_free(vcpu); +@@ -387,9 +389,12 @@ + + kvm_mips_dump_stats(vcpu); + +- kfree(vcpu->arch.guest_ebase); +- kfree(vcpu->arch.kseg0_commpage); +- kfree(vcpu); ++ if (vcpu->arch.guest_ebase) ++ kfree(vcpu->arch.guest_ebase); ++ ++ if (vcpu->arch.kseg0_commpage) ++ kfree(vcpu->arch.kseg0_commpage); ++ + } + + void kvm_arch_vcpu_destroy(struct kvm_vcpu *vcpu) +diff -Nur linux-3.15.4/arch/powerpc/include/asm/switch_to.h linux-rpi/arch/powerpc/include/asm/switch_to.h +--- linux-3.15.4/arch/powerpc/include/asm/switch_to.h 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/arch/powerpc/include/asm/switch_to.h 2014-07-07 10:44:59.000000000 +0200 +@@ -84,8 +84,6 @@ + { + #ifdef CONFIG_PPC_BOOK3S_64 + /* EBB perf events are not inherited, so clear all EBB state. */ +- t->thread.ebbrr = 0; +- t->thread.ebbhr = 0; + t->thread.bescr = 0; + t->thread.mmcr2 = 0; + t->thread.mmcr0 = 0; +diff -Nur linux-3.15.4/arch/powerpc/include/asm/systbl.h linux-rpi/arch/powerpc/include/asm/systbl.h +--- linux-3.15.4/arch/powerpc/include/asm/systbl.h 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/arch/powerpc/include/asm/systbl.h 2014-07-07 10:44:59.000000000 +0200 +@@ -190,7 +190,7 @@ + SYSCALL_SPU(capget) + SYSCALL_SPU(capset) + COMPAT_SYS(sigaltstack) +-SYSX_SPU(sys_sendfile64,compat_sys_sendfile,sys_sendfile) ++COMPAT_SYS_SPU(sendfile) + SYSCALL(ni_syscall) + SYSCALL(ni_syscall) + PPC_SYS(vfork) +diff -Nur linux-3.15.4/arch/powerpc/include/uapi/asm/cputable.h linux-rpi/arch/powerpc/include/uapi/asm/cputable.h +--- linux-3.15.4/arch/powerpc/include/uapi/asm/cputable.h 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/arch/powerpc/include/uapi/asm/cputable.h 2014-04-13 17:32:42.000000000 +0200 +@@ -41,6 +41,5 @@ + #define PPC_FEATURE2_EBB 0x10000000 + #define PPC_FEATURE2_ISEL 0x08000000 + #define PPC_FEATURE2_TAR 0x04000000 +-#define PPC_FEATURE2_VEC_CRYPTO 0x02000000 + + #endif /* _UAPI__ASM_POWERPC_CPUTABLE_H */ +diff -Nur linux-3.15.4/arch/powerpc/kernel/cputable.c linux-rpi/arch/powerpc/kernel/cputable.c +--- linux-3.15.4/arch/powerpc/kernel/cputable.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/arch/powerpc/kernel/cputable.c 2014-07-07 10:44:59.000000000 +0200 +@@ -109,8 +109,7 @@ + PPC_FEATURE_PSERIES_PERFMON_COMPAT) + #define COMMON_USER2_POWER8 (PPC_FEATURE2_ARCH_2_07 | \ + PPC_FEATURE2_HTM_COMP | PPC_FEATURE2_DSCR | \ +- PPC_FEATURE2_ISEL | PPC_FEATURE2_TAR | \ +- PPC_FEATURE2_VEC_CRYPTO) ++ PPC_FEATURE2_ISEL | PPC_FEATURE2_TAR) + #define COMMON_USER_PA6T (COMMON_USER_PPC64 | PPC_FEATURE_PA6T |\ + PPC_FEATURE_TRUE_LE | \ + PPC_FEATURE_HAS_ALTIVEC_COMP) +diff -Nur linux-3.15.4/arch/powerpc/kernel/legacy_serial.c linux-rpi/arch/powerpc/kernel/legacy_serial.c +--- linux-3.15.4/arch/powerpc/kernel/legacy_serial.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/arch/powerpc/kernel/legacy_serial.c 2014-07-07 10:44:59.000000000 +0200 +@@ -48,9 +48,6 @@ + static unsigned int legacy_serial_count; + static int legacy_serial_console = -1; + +-static const upf_t legacy_port_flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | +- UPF_SHARE_IRQ | UPF_FIXED_PORT; +- + static unsigned int tsi_serial_in(struct uart_port *p, int offset) + { + unsigned int tmp; +@@ -156,6 +153,8 @@ + { + u64 addr; + const __be32 *addrp; ++ upf_t flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_SHARE_IRQ ++ | UPF_FIXED_PORT; + struct device_node *tsi = of_get_parent(np); + + /* We only support ports that have a clock frequency properly +@@ -186,11 +185,9 @@ + * IO port value. It will be fixed up later along with the irq + */ + if (tsi && !strcmp(tsi->type, "tsi-bridge")) +- return add_legacy_port(np, -1, UPIO_TSI, addr, addr, +- NO_IRQ, legacy_port_flags, 0); ++ return add_legacy_port(np, -1, UPIO_TSI, addr, addr, NO_IRQ, flags, 0); + else +- return add_legacy_port(np, -1, UPIO_MEM, addr, addr, +- NO_IRQ, legacy_port_flags, 0); ++ return add_legacy_port(np, -1, UPIO_MEM, addr, addr, NO_IRQ, flags, 0); + } + + static int __init add_legacy_isa_port(struct device_node *np, +@@ -236,7 +233,7 @@ + + /* Add port, irq will be dealt with later */ + return add_legacy_port(np, index, UPIO_PORT, be32_to_cpu(reg[1]), +- taddr, NO_IRQ, legacy_port_flags, 0); ++ taddr, NO_IRQ, UPF_BOOT_AUTOCONF, 0); + + } + +@@ -309,7 +306,7 @@ + * IO port value. It will be fixed up later along with the irq + */ + return add_legacy_port(np, index, iotype, base, addr, NO_IRQ, +- legacy_port_flags, np != pci_dev); ++ UPF_BOOT_AUTOCONF, np != pci_dev); + } + #endif + +diff -Nur linux-3.15.4/arch/powerpc/kernel/setup-common.c linux-rpi/arch/powerpc/kernel/setup-common.c +--- linux-3.15.4/arch/powerpc/kernel/setup-common.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/arch/powerpc/kernel/setup-common.c 2014-07-07 10:44:59.000000000 +0200 +@@ -459,17 +459,9 @@ + } + + for (j = 0; j < nthreads && cpu < nr_cpu_ids; j++) { +- bool avail; +- + DBG(" thread %d -> cpu %d (hard id %d)\n", + j, cpu, be32_to_cpu(intserv[j])); +- +- avail = of_device_is_available(dn); +- if (!avail) +- avail = !of_property_match_string(dn, +- "enable-method", "spin-table"); +- +- set_cpu_present(cpu, avail); ++ set_cpu_present(cpu, true); + set_hard_smp_processor_id(cpu, be32_to_cpu(intserv[j])); + set_cpu_possible(cpu, true); + cpu++; +diff -Nur linux-3.15.4/arch/powerpc/kernel/time.c linux-rpi/arch/powerpc/kernel/time.c +--- linux-3.15.4/arch/powerpc/kernel/time.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/arch/powerpc/kernel/time.c 2014-07-07 10:44:59.000000000 +0200 +@@ -551,7 +551,7 @@ + may_hard_irq_enable(); + + +-#if defined(CONFIG_PPC32) && defined(CONFIG_PPC_PMAC) ++#if defined(CONFIG_PPC32) && defined(CONFIG_PMAC) + if (atomic_read(&ppc_n_lost_interrupts) != 0) + do_IRQ(regs); + #endif +diff -Nur linux-3.15.4/arch/powerpc/lib/sstep.c linux-rpi/arch/powerpc/lib/sstep.c +--- linux-3.15.4/arch/powerpc/lib/sstep.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/arch/powerpc/lib/sstep.c 2014-07-07 10:44:59.000000000 +0200 +@@ -1470,7 +1470,7 @@ + regs->gpr[rd] = byterev_4(val); + goto ldst_done; + +-#ifdef CONFIG_PPC_FPU ++#ifdef CONFIG_PPC_CPU + case 535: /* lfsx */ + case 567: /* lfsux */ + if (!(regs->msr & MSR_FP)) +diff -Nur linux-3.15.4/arch/powerpc/mm/hash_utils_64.c linux-rpi/arch/powerpc/mm/hash_utils_64.c +--- linux-3.15.4/arch/powerpc/mm/hash_utils_64.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/arch/powerpc/mm/hash_utils_64.c 2014-07-07 10:44:59.000000000 +0200 +@@ -964,22 +964,6 @@ + trap, vsid, ssize, psize, lpsize, pte); + } + +-static void check_paca_psize(unsigned long ea, struct mm_struct *mm, +- int psize, bool user_region) +-{ +- if (user_region) { +- if (psize != get_paca_psize(ea)) { +- get_paca()->context = mm->context; +- slb_flush_and_rebolt(); +- } +- } else if (get_paca()->vmalloc_sllp != +- mmu_psize_defs[mmu_vmalloc_psize].sllp) { +- get_paca()->vmalloc_sllp = +- mmu_psize_defs[mmu_vmalloc_psize].sllp; +- slb_vmalloc_update(); +- } +-} +- + /* Result code is: + * 0 - handled + * 1 - normal page fault +@@ -1101,8 +1085,6 @@ + WARN_ON(1); + } + #endif +- check_paca_psize(ea, mm, psize, user_region); +- + goto bail; + } + +@@ -1143,8 +1125,17 @@ + #endif + } + } +- +- check_paca_psize(ea, mm, psize, user_region); ++ if (user_region) { ++ if (psize != get_paca_psize(ea)) { ++ get_paca()->context = mm->context; ++ slb_flush_and_rebolt(); ++ } ++ } else if (get_paca()->vmalloc_sllp != ++ mmu_psize_defs[mmu_vmalloc_psize].sllp) { ++ get_paca()->vmalloc_sllp = ++ mmu_psize_defs[mmu_vmalloc_psize].sllp; ++ slb_vmalloc_update(); ++ } + #endif /* CONFIG_PPC_64K_PAGES */ + + #ifdef CONFIG_PPC_HAS_HASH_64K +diff -Nur linux-3.15.4/arch/powerpc/platforms/powernv/opal-sysparam.c linux-rpi/arch/powerpc/platforms/powernv/opal-sysparam.c +--- linux-3.15.4/arch/powerpc/platforms/powernv/opal-sysparam.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/arch/powerpc/platforms/powernv/opal-sysparam.c 2014-07-07 10:44:59.000000000 +0200 +@@ -260,10 +260,10 @@ + attr[i].kobj_attr.attr.mode = S_IRUGO; + break; + case OPAL_SYSPARAM_WRITE: +- attr[i].kobj_attr.attr.mode = S_IWUSR; ++ attr[i].kobj_attr.attr.mode = S_IWUGO; + break; + case OPAL_SYSPARAM_RW: +- attr[i].kobj_attr.attr.mode = S_IRUGO | S_IWUSR; ++ attr[i].kobj_attr.attr.mode = S_IRUGO | S_IWUGO; + break; + default: + break; +diff -Nur linux-3.15.4/arch/powerpc/platforms/pseries/eeh_pseries.c linux-rpi/arch/powerpc/platforms/pseries/eeh_pseries.c +--- linux-3.15.4/arch/powerpc/platforms/pseries/eeh_pseries.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/arch/powerpc/platforms/pseries/eeh_pseries.c 2014-07-07 10:44:59.000000000 +0200 +@@ -464,7 +464,6 @@ + } else { + result = EEH_STATE_NOT_SUPPORT; + } +- break; + default: + result = EEH_STATE_NOT_SUPPORT; + } +diff -Nur linux-3.15.4/arch/x86/include/asm/ptrace.h linux-rpi/arch/x86/include/asm/ptrace.h +--- linux-3.15.4/arch/x86/include/asm/ptrace.h 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/arch/x86/include/asm/ptrace.h 2014-07-07 10:44:59.000000000 +0200 +@@ -231,22 +231,6 @@ + + #define ARCH_HAS_USER_SINGLE_STEP_INFO + +-/* +- * When hitting ptrace_stop(), we cannot return using SYSRET because +- * that does not restore the full CPU state, only a minimal set. The +- * ptracer can change arbitrary register values, which is usually okay +- * because the usual ptrace stops run off the signal delivery path which +- * forces IRET; however, ptrace_event() stops happen in arbitrary places +- * in the kernel and don't force IRET path. +- * +- * So force IRET path after a ptrace stop. +- */ +-#define arch_ptrace_stop_needed(code, info) \ +-({ \ +- set_thread_flag(TIF_NOTIFY_RESUME); \ +- false; \ +-}) +- + struct user_desc; + extern int do_get_thread_area(struct task_struct *p, int idx, + struct user_desc __user *info); +diff -Nur linux-3.15.4/Documentation/sound/alsa/HD-Audio-Models.txt linux-rpi/Documentation/sound/alsa/HD-Audio-Models.txt +--- linux-3.15.4/Documentation/sound/alsa/HD-Audio-Models.txt 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/Documentation/sound/alsa/HD-Audio-Models.txt 2014-07-07 10:44:57.000000000 +0200 +@@ -286,11 +286,6 @@ + hp-inv-led HP with broken BIOS for inverted mute LED + auto BIOS setup (default) + +-STAC92HD95 +-========== +- hp-led LED support for HP laptops +- hp-bass Bass HPF setup for HP Spectre 13 +- + STAC9872 + ======== + vaio VAIO laptop without SPDIF +diff -Nur linux-3.15.4/Documentation/SubmittingPatches linux-rpi/Documentation/SubmittingPatches +--- linux-3.15.4/Documentation/SubmittingPatches 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/Documentation/SubmittingPatches 2014-07-07 10:44:56.000000000 +0200 +@@ -132,20 +132,6 @@ + platform_set_drvdata(), but left the variable "dev" unused, + delete it. + +-If your patch fixes a bug in a specific commit, e.g. you found an issue using +-git-bisect, please use the 'Fixes:' tag with the first 12 characters of the +-SHA-1 ID, and the one line summary. +-Example: +- +- Fixes: e21d2170f366 ("video: remove unnecessary platform_set_drvdata()") +- +-The following git-config settings can be used to add a pretty format for +-outputting the above style in the git log or git show commands +- +- [core] +- abbrev = 12 +- [pretty] +- fixes = Fixes: %h (\"%s\") + + 3) Separate your changes. + +@@ -457,7 +443,7 @@ + have been included in the discussion + + +-14) Using Reported-by:, Tested-by:, Reviewed-by:, Suggested-by: and Fixes: ++14) Using Reported-by:, Tested-by:, Reviewed-by: and Suggested-by: + + If this patch fixes a problem reported by somebody else, consider adding a + Reported-by: tag to credit the reporter for their contribution. Please +@@ -512,12 +498,6 @@ + idea reporters, they will, hopefully, be inspired to help us again in the + future. + +-A Fixes: tag indicates that the patch fixes an issue in a previous commit. It +-is used to make it easy to determine where a bug originated, which can help +-review a bug fix. This tag also assists the stable kernel team in determining +-which stable kernel versions should receive your fix. This is the preferred +-method for indicating a bug fixed by the patch. See #2 above for more details. +- + + 15) The canonical patch format + +diff -Nur linux-3.15.4/Documentation/video4linux/bcm2835-v4l2.txt linux-rpi/Documentation/video4linux/bcm2835-v4l2.txt +--- linux-3.15.4/Documentation/video4linux/bcm2835-v4l2.txt 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/Documentation/video4linux/bcm2835-v4l2.txt 2014-04-13 17:32:39.000000000 +0200 @@ -0,0 +1,60 @@ + +BCM2835 (aka Raspberry Pi) V4L2 driver @@ -7675,9 +8678,196 @@ diff -Nur linux-3.15/Documentation/video4linux/bcm2835-v4l2.txt linux-rpi/Docume +List of available formats: + +$ v4l2-ctl --list-formats -diff -Nur linux-3.15/drivers/char/broadcom/Kconfig linux-rpi/drivers/char/broadcom/Kconfig ---- linux-3.15/drivers/char/broadcom/Kconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/char/broadcom/Kconfig 2014-06-11 21:03:22.000000000 +0200 +diff -Nur linux-3.15.4/drivers/block/mtip32xx/mtip32xx.c linux-rpi/drivers/block/mtip32xx/mtip32xx.c +--- linux-3.15.4/drivers/block/mtip32xx/mtip32xx.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/block/mtip32xx/mtip32xx.c 2014-07-07 10:45:00.000000000 +0200 +@@ -1529,37 +1529,6 @@ + be16_to_cpus(&buf[i]); + } + +-static void mtip_set_timeout(struct driver_data *dd, +- struct host_to_dev_fis *fis, +- unsigned int *timeout, u8 erasemode) +-{ +- switch (fis->command) { +- case ATA_CMD_DOWNLOAD_MICRO: +- *timeout = 120000; /* 2 minutes */ +- break; +- case ATA_CMD_SEC_ERASE_UNIT: +- case 0xFC: +- if (erasemode) +- *timeout = ((*(dd->port->identify + 90) * 2) * 60000); +- else +- *timeout = ((*(dd->port->identify + 89) * 2) * 60000); +- break; +- case ATA_CMD_STANDBYNOW1: +- *timeout = 120000; /* 2 minutes */ +- break; +- case 0xF7: +- case 0xFA: +- *timeout = 60000; /* 60 seconds */ +- break; +- case ATA_CMD_SMART: +- *timeout = 15000; /* 15 seconds */ +- break; +- default: +- *timeout = MTIP_IOCTL_COMMAND_TIMEOUT_MS; +- break; +- } +-} +- + /* + * Request the device identity information. + * +@@ -1675,7 +1644,6 @@ + int rv; + struct host_to_dev_fis fis; + unsigned long start; +- unsigned int timeout; + + /* Build the FIS. */ + memset(&fis, 0, sizeof(struct host_to_dev_fis)); +@@ -1683,8 +1651,6 @@ + fis.opts = 1 << 7; + fis.command = ATA_CMD_STANDBYNOW1; + +- mtip_set_timeout(port->dd, &fis, &timeout, 0); +- + start = jiffies; + rv = mtip_exec_internal_command(port, + &fis, +@@ -1693,7 +1659,7 @@ + 0, + 0, + GFP_ATOMIC, +- timeout); ++ 15000); + dbg_printk(MTIP_DRV_NAME "Time taken to complete standby cmd: %d ms\n", + jiffies_to_msecs(jiffies - start)); + if (rv) +@@ -2236,6 +2202,36 @@ + } + return rv; + } ++static void mtip_set_timeout(struct driver_data *dd, ++ struct host_to_dev_fis *fis, ++ unsigned int *timeout, u8 erasemode) ++{ ++ switch (fis->command) { ++ case ATA_CMD_DOWNLOAD_MICRO: ++ *timeout = 120000; /* 2 minutes */ ++ break; ++ case ATA_CMD_SEC_ERASE_UNIT: ++ case 0xFC: ++ if (erasemode) ++ *timeout = ((*(dd->port->identify + 90) * 2) * 60000); ++ else ++ *timeout = ((*(dd->port->identify + 89) * 2) * 60000); ++ break; ++ case ATA_CMD_STANDBYNOW1: ++ *timeout = 120000; /* 2 minutes */ ++ break; ++ case 0xF7: ++ case 0xFA: ++ *timeout = 60000; /* 60 seconds */ ++ break; ++ case ATA_CMD_SMART: ++ *timeout = 15000; /* 15 seconds */ ++ break; ++ default: ++ *timeout = MTIP_IOCTL_COMMAND_TIMEOUT_MS; ++ break; ++ } ++} + + /* + * Executes a taskfile +@@ -4483,57 +4479,6 @@ + static DEFINE_HANDLER(6); + static DEFINE_HANDLER(7); + +-static void mtip_disable_link_opts(struct driver_data *dd, struct pci_dev *pdev) +-{ +- int pos; +- unsigned short pcie_dev_ctrl; +- +- pos = pci_find_capability(pdev, PCI_CAP_ID_EXP); +- if (pos) { +- pci_read_config_word(pdev, +- pos + PCI_EXP_DEVCTL, +- &pcie_dev_ctrl); +- if (pcie_dev_ctrl & (1 << 11) || +- pcie_dev_ctrl & (1 << 4)) { +- dev_info(&dd->pdev->dev, +- "Disabling ERO/No-Snoop on bridge device %04x:%04x\n", +- pdev->vendor, pdev->device); +- pcie_dev_ctrl &= ~(PCI_EXP_DEVCTL_NOSNOOP_EN | +- PCI_EXP_DEVCTL_RELAX_EN); +- pci_write_config_word(pdev, +- pos + PCI_EXP_DEVCTL, +- pcie_dev_ctrl); +- } +- } +-} +- +-static void mtip_fix_ero_nosnoop(struct driver_data *dd, struct pci_dev *pdev) +-{ +- /* +- * This workaround is specific to AMD/ATI chipset with a PCI upstream +- * device with device id 0x5aXX +- */ +- if (pdev->bus && pdev->bus->self) { +- if (pdev->bus->self->vendor == PCI_VENDOR_ID_ATI && +- ((pdev->bus->self->device & 0xff00) == 0x5a00)) { +- mtip_disable_link_opts(dd, pdev->bus->self); +- } else { +- /* Check further up the topology */ +- struct pci_dev *parent_dev = pdev->bus->self; +- if (parent_dev->bus && +- parent_dev->bus->parent && +- parent_dev->bus->parent->self && +- parent_dev->bus->parent->self->vendor == +- PCI_VENDOR_ID_ATI && +- (parent_dev->bus->parent->self->device & +- 0xff00) == 0x5a00) { +- mtip_disable_link_opts(dd, +- parent_dev->bus->parent->self); +- } +- } +- } +-} +- + /* + * Called for each supported PCI device detected. + * +@@ -4685,8 +4630,6 @@ + goto msi_initialize_err; + } + +- mtip_fix_ero_nosnoop(dd, pdev); +- + /* Initialize the block layer. */ + rv = mtip_block_initialize(dd); + if (rv < 0) { +@@ -4992,13 +4935,13 @@ + */ + static void __exit mtip_exit(void) + { ++ debugfs_remove_recursive(dfs_parent); ++ + /* Release the allocated major block device number. */ + unregister_blkdev(mtip_major, MTIP_DRV_NAME); + + /* Unregister the PCI driver. */ + pci_unregister_driver(&mtip_pci_driver); +- +- debugfs_remove_recursive(dfs_parent); + } + + MODULE_AUTHOR("Micron Technology, Inc"); +diff -Nur linux-3.15.4/drivers/char/broadcom/Kconfig linux-rpi/drivers/char/broadcom/Kconfig +--- linux-3.15.4/drivers/char/broadcom/Kconfig 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/char/broadcom/Kconfig 2014-07-07 10:45:00.000000000 +0200 @@ -0,0 +1,16 @@ +# +# Broadcom char driver config @@ -7695,14 +8885,14 @@ diff -Nur linux-3.15/drivers/char/broadcom/Kconfig linux-rpi/drivers/char/broadc + help + Helper for videocore CMA access. + -diff -Nur linux-3.15/drivers/char/broadcom/Makefile linux-rpi/drivers/char/broadcom/Makefile ---- linux-3.15/drivers/char/broadcom/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/char/broadcom/Makefile 2014-06-11 21:03:22.000000000 +0200 +diff -Nur linux-3.15.4/drivers/char/broadcom/Makefile linux-rpi/drivers/char/broadcom/Makefile +--- linux-3.15.4/drivers/char/broadcom/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/char/broadcom/Makefile 2014-07-07 10:45:00.000000000 +0200 @@ -0,0 +1 @@ +obj-$(CONFIG_BCM_VC_CMA) += vc_cma/ -diff -Nur linux-3.15/drivers/char/broadcom/vc_cma/Makefile linux-rpi/drivers/char/broadcom/vc_cma/Makefile ---- linux-3.15/drivers/char/broadcom/vc_cma/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/char/broadcom/vc_cma/Makefile 2014-06-11 21:03:22.000000000 +0200 +diff -Nur linux-3.15.4/drivers/char/broadcom/vc_cma/Makefile linux-rpi/drivers/char/broadcom/vc_cma/Makefile +--- linux-3.15.4/drivers/char/broadcom/vc_cma/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/char/broadcom/vc_cma/Makefile 2014-07-07 10:45:00.000000000 +0200 @@ -0,0 +1,14 @@ +ccflags-y += -Wall -Wstrict-prototypes -Wno-trigraphs +ccflags-y += -Werror @@ -7718,9 +8908,9 @@ diff -Nur linux-3.15/drivers/char/broadcom/vc_cma/Makefile linux-rpi/drivers/cha +obj-$(CONFIG_BCM_VC_CMA) += vc-cma.o + +vc-cma-objs := vc_cma.o -diff -Nur linux-3.15/drivers/char/broadcom/vc_cma/vc_cma.c linux-rpi/drivers/char/broadcom/vc_cma/vc_cma.c ---- linux-3.15/drivers/char/broadcom/vc_cma/vc_cma.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/char/broadcom/vc_cma/vc_cma.c 2014-06-11 21:03:22.000000000 +0200 +diff -Nur linux-3.15.4/drivers/char/broadcom/vc_cma/vc_cma.c linux-rpi/drivers/char/broadcom/vc_cma/vc_cma.c +--- linux-3.15.4/drivers/char/broadcom/vc_cma/vc_cma.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/char/broadcom/vc_cma/vc_cma.c 2014-07-07 10:45:00.000000000 +0200 @@ -0,0 +1,1143 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -8865,9 +10055,9 @@ diff -Nur linux-3.15/drivers/char/broadcom/vc_cma/vc_cma.c linux-rpi/drivers/cha +module_exit(vc_cma_exit); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Broadcom Corporation"); -diff -Nur linux-3.15/drivers/char/hw_random/bcm2708-rng.c linux-rpi/drivers/char/hw_random/bcm2708-rng.c ---- linux-3.15/drivers/char/hw_random/bcm2708-rng.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/char/hw_random/bcm2708-rng.c 2014-06-11 21:05:19.000000000 +0200 +diff -Nur linux-3.15.4/drivers/char/hw_random/bcm2708-rng.c linux-rpi/drivers/char/hw_random/bcm2708-rng.c +--- linux-3.15.4/drivers/char/hw_random/bcm2708-rng.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/char/hw_random/bcm2708-rng.c 2014-07-07 10:45:00.000000000 +0200 @@ -0,0 +1,118 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -8987,9 +10177,9 @@ diff -Nur linux-3.15/drivers/char/hw_random/bcm2708-rng.c linux-rpi/drivers/char + +MODULE_DESCRIPTION("BCM2708 H/W Random Number Generator (RNG) driver"); +MODULE_LICENSE("GPL and additional rights"); -diff -Nur linux-3.15/drivers/char/hw_random/Kconfig linux-rpi/drivers/char/hw_random/Kconfig ---- linux-3.15/drivers/char/hw_random/Kconfig 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/char/hw_random/Kconfig 2014-06-11 21:05:19.000000000 +0200 +diff -Nur linux-3.15.4/drivers/char/hw_random/Kconfig linux-rpi/drivers/char/hw_random/Kconfig +--- linux-3.15.4/drivers/char/hw_random/Kconfig 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/char/hw_random/Kconfig 2014-07-07 10:45:00.000000000 +0200 @@ -341,6 +341,17 @@ If unsure, say Y. @@ -9008,18 +10198,18 @@ diff -Nur linux-3.15/drivers/char/hw_random/Kconfig linux-rpi/drivers/char/hw_ra config HW_RANDOM_MSM tristate "Qualcomm SoCs Random Number Generator support" depends on HW_RANDOM && ARCH_QCOM -diff -Nur linux-3.15/drivers/char/hw_random/Makefile linux-rpi/drivers/char/hw_random/Makefile ---- linux-3.15/drivers/char/hw_random/Makefile 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/char/hw_random/Makefile 2014-06-11 21:05:19.000000000 +0200 +diff -Nur linux-3.15.4/drivers/char/hw_random/Makefile linux-rpi/drivers/char/hw_random/Makefile +--- linux-3.15.4/drivers/char/hw_random/Makefile 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/char/hw_random/Makefile 2014-07-07 10:45:00.000000000 +0200 @@ -29,4 +29,5 @@ obj-$(CONFIG_HW_RANDOM_EXYNOS) += exynos-rng.o obj-$(CONFIG_HW_RANDOM_TPM) += tpm-rng.o obj-$(CONFIG_HW_RANDOM_BCM2835) += bcm2835-rng.o +obj-$(CONFIG_HW_RANDOM_BCM2708) += bcm2708-rng.o obj-$(CONFIG_HW_RANDOM_MSM) += msm-rng.o -diff -Nur linux-3.15/drivers/char/Kconfig linux-rpi/drivers/char/Kconfig ---- linux-3.15/drivers/char/Kconfig 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/char/Kconfig 2014-06-11 21:05:19.000000000 +0200 +diff -Nur linux-3.15.4/drivers/char/Kconfig linux-rpi/drivers/char/Kconfig +--- linux-3.15.4/drivers/char/Kconfig 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/char/Kconfig 2014-07-07 10:45:00.000000000 +0200 @@ -581,6 +581,8 @@ source "drivers/s390/char/Kconfig" @@ -9029,18 +10219,18 @@ diff -Nur linux-3.15/drivers/char/Kconfig linux-rpi/drivers/char/Kconfig config MSM_SMD_PKT bool "Enable device interface for some SMD packet ports" default n -diff -Nur linux-3.15/drivers/char/Makefile linux-rpi/drivers/char/Makefile ---- linux-3.15/drivers/char/Makefile 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/char/Makefile 2014-06-11 21:05:19.000000000 +0200 +diff -Nur linux-3.15.4/drivers/char/Makefile linux-rpi/drivers/char/Makefile +--- linux-3.15.4/drivers/char/Makefile 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/char/Makefile 2014-07-07 10:45:00.000000000 +0200 @@ -61,3 +61,5 @@ js-rtc-y = rtc.o obj-$(CONFIG_TILE_SROM) += tile-srom.o + +obj-$(CONFIG_BRCM_CHAR_DRIVERS) += broadcom/ -diff -Nur linux-3.15/drivers/cpufreq/bcm2835-cpufreq.c linux-rpi/drivers/cpufreq/bcm2835-cpufreq.c ---- linux-3.15/drivers/cpufreq/bcm2835-cpufreq.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/cpufreq/bcm2835-cpufreq.c 2014-06-11 21:03:22.000000000 +0200 +diff -Nur linux-3.15.4/drivers/cpufreq/bcm2835-cpufreq.c linux-rpi/drivers/cpufreq/bcm2835-cpufreq.c +--- linux-3.15.4/drivers/cpufreq/bcm2835-cpufreq.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/cpufreq/bcm2835-cpufreq.c 2014-07-07 10:45:00.000000000 +0200 @@ -0,0 +1,239 @@ +/***************************************************************************** +* Copyright 2011 Broadcom Corporation. All rights reserved. @@ -9281,9 +10471,46 @@ diff -Nur linux-3.15/drivers/cpufreq/bcm2835-cpufreq.c linux-rpi/drivers/cpufreq + +module_init(bcm2835_cpufreq_module_init); +module_exit(bcm2835_cpufreq_module_exit); -diff -Nur linux-3.15/drivers/cpufreq/Kconfig.arm linux-rpi/drivers/cpufreq/Kconfig.arm ---- linux-3.15/drivers/cpufreq/Kconfig.arm 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/cpufreq/Kconfig.arm 2014-06-11 21:05:19.000000000 +0200 +diff -Nur linux-3.15.4/drivers/cpufreq/cpufreq.c linux-rpi/drivers/cpufreq/cpufreq.c +--- linux-3.15.4/drivers/cpufreq/cpufreq.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/cpufreq/cpufreq.c 2014-07-07 10:45:00.000000000 +0200 +@@ -2166,8 +2166,10 @@ + struct cpufreq_policy new_policy; + int ret; + +- if (!policy) +- return -ENODEV; ++ if (!policy) { ++ ret = -ENODEV; ++ goto no_policy; ++ } + + down_write(&policy->rwsem); + +@@ -2186,7 +2188,7 @@ + new_policy.cur = cpufreq_driver->get(cpu); + if (WARN_ON(!new_policy.cur)) { + ret = -EIO; +- goto unlock; ++ goto no_policy; + } + + if (!policy->cur) { +@@ -2201,10 +2203,10 @@ + + ret = cpufreq_set_policy(policy, &new_policy); + +-unlock: + up_write(&policy->rwsem); + + cpufreq_cpu_put(policy); ++no_policy: + return ret; + } + EXPORT_SYMBOL(cpufreq_update_policy); +diff -Nur linux-3.15.4/drivers/cpufreq/Kconfig.arm linux-rpi/drivers/cpufreq/Kconfig.arm +--- linux-3.15.4/drivers/cpufreq/Kconfig.arm 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/cpufreq/Kconfig.arm 2014-07-07 10:45:00.000000000 +0200 @@ -240,6 +240,14 @@ help This adds the CPUFreq driver support for SPEAr SOCs. @@ -9299,9 +10526,9 @@ diff -Nur linux-3.15/drivers/cpufreq/Kconfig.arm linux-rpi/drivers/cpufreq/Kconf config ARM_TEGRA_CPUFREQ bool "TEGRA CPUFreq support" depends on ARCH_TEGRA -diff -Nur linux-3.15/drivers/cpufreq/Makefile linux-rpi/drivers/cpufreq/Makefile ---- linux-3.15/drivers/cpufreq/Makefile 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/cpufreq/Makefile 2014-06-11 21:05:19.000000000 +0200 +diff -Nur linux-3.15.4/drivers/cpufreq/Makefile linux-rpi/drivers/cpufreq/Makefile +--- linux-3.15.4/drivers/cpufreq/Makefile 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/cpufreq/Makefile 2014-07-07 10:45:00.000000000 +0200 @@ -73,6 +73,7 @@ obj-$(CONFIG_ARM_SA1100_CPUFREQ) += sa1100-cpufreq.o obj-$(CONFIG_ARM_SA1110_CPUFREQ) += sa1110-cpufreq.o @@ -9310,9 +10537,35 @@ diff -Nur linux-3.15/drivers/cpufreq/Makefile linux-rpi/drivers/cpufreq/Makefile obj-$(CONFIG_ARM_TEGRA_CPUFREQ) += tegra-cpufreq.o obj-$(CONFIG_ARM_VEXPRESS_SPC_CPUFREQ) += vexpress-spc-cpufreq.o -diff -Nur linux-3.15/drivers/dma/bcm2708-dmaengine.c linux-rpi/drivers/dma/bcm2708-dmaengine.c ---- linux-3.15/drivers/dma/bcm2708-dmaengine.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/dma/bcm2708-dmaengine.c 2014-06-11 21:05:19.000000000 +0200 +diff -Nur linux-3.15.4/drivers/cpufreq/ppc-corenet-cpufreq.c linux-rpi/drivers/cpufreq/ppc-corenet-cpufreq.c +--- linux-3.15.4/drivers/cpufreq/ppc-corenet-cpufreq.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/cpufreq/ppc-corenet-cpufreq.c 2014-07-07 10:45:01.000000000 +0200 +@@ -138,7 +138,7 @@ + struct cpufreq_frequency_table *table; + struct cpu_data *data; + unsigned int cpu = policy->cpu; +- u64 u64temp; ++ u64 transition_latency_hz; + + np = of_get_cpu_node(cpu, NULL); + if (!np) +@@ -206,10 +206,9 @@ + for_each_cpu(i, per_cpu(cpu_mask, cpu)) + per_cpu(cpu_data, i) = data; + +- /* Minimum transition latency is 12 platform clocks */ +- u64temp = 12ULL * NSEC_PER_SEC; +- do_div(u64temp, fsl_get_sys_freq()); +- policy->cpuinfo.transition_latency = u64temp + 1; ++ transition_latency_hz = 12ULL * NSEC_PER_SEC; ++ policy->cpuinfo.transition_latency = ++ do_div(transition_latency_hz, fsl_get_sys_freq()); + + of_node_put(np); + +diff -Nur linux-3.15.4/drivers/dma/bcm2708-dmaengine.c linux-rpi/drivers/dma/bcm2708-dmaengine.c +--- linux-3.15.4/drivers/dma/bcm2708-dmaengine.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/dma/bcm2708-dmaengine.c 2014-07-07 10:45:01.000000000 +0200 @@ -0,0 +1,588 @@ +/* + * BCM2708 DMA engine support @@ -9902,9 +11155,9 @@ diff -Nur linux-3.15/drivers/dma/bcm2708-dmaengine.c linux-rpi/drivers/dma/bcm27 +MODULE_DESCRIPTION("BCM2708 DMA engine driver"); +MODULE_AUTHOR("Florian Meier <florian.meier@koalo.de>"); +MODULE_LICENSE("GPL v2"); -diff -Nur linux-3.15/drivers/dma/Kconfig linux-rpi/drivers/dma/Kconfig ---- linux-3.15/drivers/dma/Kconfig 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/dma/Kconfig 2014-06-11 21:05:19.000000000 +0200 +diff -Nur linux-3.15.4/drivers/dma/Kconfig linux-rpi/drivers/dma/Kconfig +--- linux-3.15.4/drivers/dma/Kconfig 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/dma/Kconfig 2014-07-07 10:45:01.000000000 +0200 @@ -312,6 +312,12 @@ select DMA_ENGINE select DMA_VIRTUAL_CHANNELS @@ -9918,9 +11171,9 @@ diff -Nur linux-3.15/drivers/dma/Kconfig linux-rpi/drivers/dma/Kconfig config TI_CPPI41 tristate "AM33xx CPPI41 DMA support" depends on ARCH_OMAP -diff -Nur linux-3.15/drivers/dma/Makefile linux-rpi/drivers/dma/Makefile ---- linux-3.15/drivers/dma/Makefile 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/dma/Makefile 2014-06-11 21:05:19.000000000 +0200 +diff -Nur linux-3.15.4/drivers/dma/Makefile linux-rpi/drivers/dma/Makefile +--- linux-3.15.4/drivers/dma/Makefile 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/dma/Makefile 2014-07-07 10:45:01.000000000 +0200 @@ -39,6 +39,7 @@ obj-$(CONFIG_MMP_TDMA) += mmp_tdma.o obj-$(CONFIG_DMA_OMAP) += omap-dma.o @@ -9929,9 +11182,9 @@ diff -Nur linux-3.15/drivers/dma/Makefile linux-rpi/drivers/dma/Makefile obj-$(CONFIG_MMP_PDMA) += mmp_pdma.o obj-$(CONFIG_DMA_JZ4740) += dma-jz4740.o obj-$(CONFIG_TI_CPPI41) += cppi41.o -diff -Nur linux-3.15/drivers/hwmon/bcm2835-hwmon.c linux-rpi/drivers/hwmon/bcm2835-hwmon.c ---- linux-3.15/drivers/hwmon/bcm2835-hwmon.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/hwmon/bcm2835-hwmon.c 2014-06-11 21:03:30.000000000 +0200 +diff -Nur linux-3.15.4/drivers/hwmon/bcm2835-hwmon.c linux-rpi/drivers/hwmon/bcm2835-hwmon.c +--- linux-3.15.4/drivers/hwmon/bcm2835-hwmon.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/hwmon/bcm2835-hwmon.c 2014-04-13 17:32:56.000000000 +0200 @@ -0,0 +1,219 @@ +/***************************************************************************** +* Copyright 2011 Broadcom Corporation. All rights reserved. @@ -10152,9 +11405,9 @@ diff -Nur linux-3.15/drivers/hwmon/bcm2835-hwmon.c linux-rpi/drivers/hwmon/bcm28 +MODULE_DESCRIPTION("HW Monitor driver for bcm2835 chip"); + +module_platform_driver(bcm2835_hwmon_driver); -diff -Nur linux-3.15/drivers/hwmon/Kconfig linux-rpi/drivers/hwmon/Kconfig ---- linux-3.15/drivers/hwmon/Kconfig 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/hwmon/Kconfig 2014-06-11 21:05:19.000000000 +0200 +diff -Nur linux-3.15.4/drivers/hwmon/Kconfig linux-rpi/drivers/hwmon/Kconfig +--- linux-3.15.4/drivers/hwmon/Kconfig 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/hwmon/Kconfig 2014-07-07 10:45:09.000000000 +0200 @@ -1602,6 +1602,16 @@ This driver provides support for the Ultra45 workstation environmental sensors. @@ -10172,9 +11425,9 @@ diff -Nur linux-3.15/drivers/hwmon/Kconfig linux-rpi/drivers/hwmon/Kconfig if ACPI comment "ACPI drivers" -diff -Nur linux-3.15/drivers/hwmon/Makefile linux-rpi/drivers/hwmon/Makefile ---- linux-3.15/drivers/hwmon/Makefile 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/hwmon/Makefile 2014-06-11 21:05:19.000000000 +0200 +diff -Nur linux-3.15.4/drivers/hwmon/Makefile linux-rpi/drivers/hwmon/Makefile +--- linux-3.15.4/drivers/hwmon/Makefile 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/hwmon/Makefile 2014-07-07 10:45:09.000000000 +0200 @@ -146,6 +146,7 @@ obj-$(CONFIG_SENSORS_W83L786NG) += w83l786ng.o obj-$(CONFIG_SENSORS_WM831X) += wm831x-hwmon.o @@ -10183,9 +11436,9 @@ diff -Nur linux-3.15/drivers/hwmon/Makefile linux-rpi/drivers/hwmon/Makefile obj-$(CONFIG_PMBUS) += pmbus/ -diff -Nur linux-3.15/drivers/i2c/busses/i2c-bcm2708.c linux-rpi/drivers/i2c/busses/i2c-bcm2708.c ---- linux-3.15/drivers/i2c/busses/i2c-bcm2708.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/i2c/busses/i2c-bcm2708.c 2014-06-11 21:05:19.000000000 +0200 +diff -Nur linux-3.15.4/drivers/i2c/busses/i2c-bcm2708.c linux-rpi/drivers/i2c/busses/i2c-bcm2708.c +--- linux-3.15.4/drivers/i2c/busses/i2c-bcm2708.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/i2c/busses/i2c-bcm2708.c 2014-07-07 10:45:09.000000000 +0200 @@ -0,0 +1,448 @@ +/* + * Driver for Broadcom BCM2708 BSC Controllers @@ -10635,9 +11888,9 @@ diff -Nur linux-3.15/drivers/i2c/busses/i2c-bcm2708.c linux-rpi/drivers/i2c/buss +MODULE_AUTHOR("Chris Boot <bootc@bootc.net>"); +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:" DRV_NAME); -diff -Nur linux-3.15/drivers/i2c/busses/Kconfig linux-rpi/drivers/i2c/busses/Kconfig ---- linux-3.15/drivers/i2c/busses/Kconfig 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/i2c/busses/Kconfig 2014-06-11 21:05:19.000000000 +0200 +diff -Nur linux-3.15.4/drivers/i2c/busses/Kconfig linux-rpi/drivers/i2c/busses/Kconfig +--- linux-3.15.4/drivers/i2c/busses/Kconfig 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/i2c/busses/Kconfig 2014-07-07 10:45:09.000000000 +0200 @@ -348,6 +348,25 @@ This support is also available as a module. If so, the module will be called i2c-bcm2835. @@ -10664,9 +11917,9 @@ diff -Nur linux-3.15/drivers/i2c/busses/Kconfig linux-rpi/drivers/i2c/busses/Kco config I2C_BCM_KONA tristate "BCM Kona I2C adapter" depends on ARCH_BCM_MOBILE -diff -Nur linux-3.15/drivers/i2c/busses/Makefile linux-rpi/drivers/i2c/busses/Makefile ---- linux-3.15/drivers/i2c/busses/Makefile 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/i2c/busses/Makefile 2014-06-11 21:05:19.000000000 +0200 +diff -Nur linux-3.15.4/drivers/i2c/busses/Makefile linux-rpi/drivers/i2c/busses/Makefile +--- linux-3.15.4/drivers/i2c/busses/Makefile 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/i2c/busses/Makefile 2014-07-07 10:45:09.000000000 +0200 @@ -32,6 +32,7 @@ obj-$(CONFIG_I2C_AT91) += i2c-at91.o obj-$(CONFIG_I2C_AU1550) += i2c-au1550.o @@ -10675,9 +11928,526 @@ diff -Nur linux-3.15/drivers/i2c/busses/Makefile linux-rpi/drivers/i2c/busses/Ma obj-$(CONFIG_I2C_BLACKFIN_TWI) += i2c-bfin-twi.o obj-$(CONFIG_I2C_CADENCE) += i2c-cadence.o obj-$(CONFIG_I2C_CBUS_GPIO) += i2c-cbus-gpio.o -diff -Nur linux-3.15/drivers/media/platform/bcm2835/bcm2835-camera.c linux-rpi/drivers/media/platform/bcm2835/bcm2835-camera.c ---- linux-3.15/drivers/media/platform/bcm2835/bcm2835-camera.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/media/platform/bcm2835/bcm2835-camera.c 2014-06-11 21:05:19.000000000 +0200 +diff -Nur linux-3.15.4/drivers/infiniband/core/user_mad.c linux-rpi/drivers/infiniband/core/user_mad.c +--- linux-3.15.4/drivers/infiniband/core/user_mad.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/infiniband/core/user_mad.c 2014-04-13 17:32:56.000000000 +0200 +@@ -98,7 +98,7 @@ + + struct ib_umad_device { + int start_port, end_port; +- struct kobject kobj; ++ struct kref ref; + struct ib_umad_port port[0]; + }; + +@@ -134,18 +134,14 @@ + static void ib_umad_add_one(struct ib_device *device); + static void ib_umad_remove_one(struct ib_device *device); + +-static void ib_umad_release_dev(struct kobject *kobj) ++static void ib_umad_release_dev(struct kref *ref) + { + struct ib_umad_device *dev = +- container_of(kobj, struct ib_umad_device, kobj); ++ container_of(ref, struct ib_umad_device, ref); + + kfree(dev); + } + +-static struct kobj_type ib_umad_dev_ktype = { +- .release = ib_umad_release_dev, +-}; +- + static int hdr_size(struct ib_umad_file *file) + { + return file->use_pkey_index ? sizeof (struct ib_user_mad_hdr) : +@@ -784,19 +780,27 @@ + { + struct ib_umad_port *port; + struct ib_umad_file *file; +- int ret = -ENXIO; ++ int ret; + + port = container_of(inode->i_cdev, struct ib_umad_port, cdev); ++ if (port) ++ kref_get(&port->umad_dev->ref); ++ else ++ return -ENXIO; + + mutex_lock(&port->file_mutex); + +- if (!port->ib_dev) ++ if (!port->ib_dev) { ++ ret = -ENXIO; + goto out; ++ } + +- ret = -ENOMEM; + file = kzalloc(sizeof *file, GFP_KERNEL); +- if (!file) ++ if (!file) { ++ kref_put(&port->umad_dev->ref, ib_umad_release_dev); ++ ret = -ENOMEM; + goto out; ++ } + + mutex_init(&file->mutex); + spin_lock_init(&file->send_lock); +@@ -810,13 +814,6 @@ + list_add_tail(&file->port_list, &port->file_list); + + ret = nonseekable_open(inode, filp); +- if (ret) { +- list_del(&file->port_list); +- kfree(file); +- goto out; +- } +- +- kobject_get(&port->umad_dev->kobj); + + out: + mutex_unlock(&port->file_mutex); +@@ -855,7 +852,7 @@ + mutex_unlock(&file->port->file_mutex); + + kfree(file); +- kobject_put(&dev->kobj); ++ kref_put(&dev->ref, ib_umad_release_dev); + + return 0; + } +@@ -883,6 +880,10 @@ + int ret; + + port = container_of(inode->i_cdev, struct ib_umad_port, sm_cdev); ++ if (port) ++ kref_get(&port->umad_dev->ref); ++ else ++ return -ENXIO; + + if (filp->f_flags & O_NONBLOCK) { + if (down_trylock(&port->sm_sem)) { +@@ -897,27 +898,17 @@ + } + + ret = ib_modify_port(port->ib_dev, port->port_num, 0, &props); +- if (ret) +- goto err_up_sem; ++ if (ret) { ++ up(&port->sm_sem); ++ goto fail; ++ } + + filp->private_data = port; + +- ret = nonseekable_open(inode, filp); +- if (ret) +- goto err_clr_sm_cap; +- +- kobject_get(&port->umad_dev->kobj); +- +- return 0; +- +-err_clr_sm_cap: +- swap(props.set_port_cap_mask, props.clr_port_cap_mask); +- ib_modify_port(port->ib_dev, port->port_num, 0, &props); +- +-err_up_sem: +- up(&port->sm_sem); ++ return nonseekable_open(inode, filp); + + fail: ++ kref_put(&port->umad_dev->ref, ib_umad_release_dev); + return ret; + } + +@@ -936,7 +927,7 @@ + + up(&port->sm_sem); + +- kobject_put(&port->umad_dev->kobj); ++ kref_put(&port->umad_dev->ref, ib_umad_release_dev); + + return ret; + } +@@ -1004,7 +995,6 @@ + } + + static int ib_umad_init_port(struct ib_device *device, int port_num, +- struct ib_umad_device *umad_dev, + struct ib_umad_port *port) + { + int devnum; +@@ -1037,7 +1027,6 @@ + + cdev_init(&port->cdev, &umad_fops); + port->cdev.owner = THIS_MODULE; +- port->cdev.kobj.parent = &umad_dev->kobj; + kobject_set_name(&port->cdev.kobj, "umad%d", port->dev_num); + if (cdev_add(&port->cdev, base, 1)) + goto err_cdev; +@@ -1056,7 +1045,6 @@ + base += IB_UMAD_MAX_PORTS; + cdev_init(&port->sm_cdev, &umad_sm_fops); + port->sm_cdev.owner = THIS_MODULE; +- port->sm_cdev.kobj.parent = &umad_dev->kobj; + kobject_set_name(&port->sm_cdev.kobj, "issm%d", port->dev_num); + if (cdev_add(&port->sm_cdev, base, 1)) + goto err_sm_cdev; +@@ -1150,7 +1138,7 @@ + if (!umad_dev) + return; + +- kobject_init(&umad_dev->kobj, &ib_umad_dev_ktype); ++ kref_init(&umad_dev->ref); + + umad_dev->start_port = s; + umad_dev->end_port = e; +@@ -1158,8 +1146,7 @@ + for (i = s; i <= e; ++i) { + umad_dev->port[i - s].umad_dev = umad_dev; + +- if (ib_umad_init_port(device, i, umad_dev, +- &umad_dev->port[i - s])) ++ if (ib_umad_init_port(device, i, &umad_dev->port[i - s])) + goto err; + } + +@@ -1171,7 +1158,7 @@ + while (--i >= s) + ib_umad_kill_port(&umad_dev->port[i - s]); + +- kobject_put(&umad_dev->kobj); ++ kref_put(&umad_dev->ref, ib_umad_release_dev); + } + + static void ib_umad_remove_one(struct ib_device *device) +@@ -1185,7 +1172,7 @@ + for (i = 0; i <= umad_dev->end_port - umad_dev->start_port; ++i) + ib_umad_kill_port(&umad_dev->port[i]); + +- kobject_put(&umad_dev->kobj); ++ kref_put(&umad_dev->ref, ib_umad_release_dev); + } + + static char *umad_devnode(struct device *dev, umode_t *mode) +diff -Nur linux-3.15.4/drivers/infiniband/hw/cxgb4/cq.c linux-rpi/drivers/infiniband/hw/cxgb4/cq.c +--- linux-3.15.4/drivers/infiniband/hw/cxgb4/cq.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/infiniband/hw/cxgb4/cq.c 2014-07-07 10:45:09.000000000 +0200 +@@ -940,6 +940,7 @@ + if (!mm2) + goto err4; + ++ memset(&uresp, 0, sizeof(uresp)); + uresp.qid_mask = rhp->rdev.cqmask; + uresp.cqid = chp->cq.cqid; + uresp.size = chp->cq.size; +@@ -950,8 +951,7 @@ + uresp.gts_key = ucontext->key; + ucontext->key += PAGE_SIZE; + spin_unlock(&ucontext->mmap_lock); +- ret = ib_copy_to_udata(udata, &uresp, +- sizeof(uresp) - sizeof(uresp.reserved)); ++ ret = ib_copy_to_udata(udata, &uresp, sizeof uresp); + if (ret) + goto err5; + +diff -Nur linux-3.15.4/drivers/infiniband/hw/cxgb4/device.c linux-rpi/drivers/infiniband/hw/cxgb4/device.c +--- linux-3.15.4/drivers/infiniband/hw/cxgb4/device.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/infiniband/hw/cxgb4/device.c 2014-07-07 10:45:09.000000000 +0200 +@@ -736,7 +736,6 @@ + pci_resource_len(devp->rdev.lldi.pdev, 2)); + if (!devp->rdev.bar2_kva) { + pr_err(MOD "Unable to ioremap BAR2\n"); +- ib_dealloc_device(&devp->ibdev); + return ERR_PTR(-EINVAL); + } + } else if (ocqp_supported(infop)) { +@@ -748,7 +747,6 @@ + devp->rdev.lldi.vr->ocq.size); + if (!devp->rdev.oc_mw_kva) { + pr_err(MOD "Unable to ioremap onchip mem\n"); +- ib_dealloc_device(&devp->ibdev); + return ERR_PTR(-EINVAL); + } + } +diff -Nur linux-3.15.4/drivers/infiniband/hw/cxgb4/provider.c linux-rpi/drivers/infiniband/hw/cxgb4/provider.c +--- linux-3.15.4/drivers/infiniband/hw/cxgb4/provider.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/infiniband/hw/cxgb4/provider.c 2014-07-07 10:45:09.000000000 +0200 +@@ -122,7 +122,7 @@ + INIT_LIST_HEAD(&context->mmaps); + spin_lock_init(&context->mmap_lock); + +- if (udata->outlen < sizeof(uresp) - sizeof(uresp.reserved)) { ++ if (udata->outlen < sizeof(uresp)) { + if (!warned++) + pr_err(MOD "Warning - downlevel libcxgb4 (non-fatal), device status page disabled."); + rhp->rdev.flags |= T4_STATUS_PAGE_DISABLED; +@@ -140,8 +140,7 @@ + context->key += PAGE_SIZE; + spin_unlock(&context->mmap_lock); + +- ret = ib_copy_to_udata(udata, &uresp, +- sizeof(uresp) - sizeof(uresp.reserved)); ++ ret = ib_copy_to_udata(udata, &uresp, sizeof(uresp)); + if (ret) + goto err_mm; + +diff -Nur linux-3.15.4/drivers/infiniband/hw/cxgb4/user.h linux-rpi/drivers/infiniband/hw/cxgb4/user.h +--- linux-3.15.4/drivers/infiniband/hw/cxgb4/user.h 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/infiniband/hw/cxgb4/user.h 2014-07-07 10:45:09.000000000 +0200 +@@ -48,7 +48,6 @@ + __u32 cqid; + __u32 size; + __u32 qid_mask; +- __u32 reserved; /* explicit padding (optional for i386) */ + }; + + +@@ -75,6 +74,5 @@ + struct c4iw_alloc_ucontext_resp { + __u64 status_page_key; + __u32 status_page_size; +- __u32 reserved; /* explicit padding (optional for i386) */ + }; + #endif +diff -Nur linux-3.15.4/drivers/infiniband/hw/ipath/ipath_diag.c linux-rpi/drivers/infiniband/hw/ipath/ipath_diag.c +--- linux-3.15.4/drivers/infiniband/hw/ipath/ipath_diag.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/infiniband/hw/ipath/ipath_diag.c 2014-07-07 10:45:09.000000000 +0200 +@@ -346,10 +346,6 @@ + ret = -EFAULT; + goto bail; + } +- dp.len = odp.len; +- dp.unit = odp.unit; +- dp.data = odp.data; +- dp.pbc_wd = 0; + } else { + ret = -EINVAL; + goto bail; +diff -Nur linux-3.15.4/drivers/infiniband/hw/mlx5/cq.c linux-rpi/drivers/infiniband/hw/mlx5/cq.c +--- linux-3.15.4/drivers/infiniband/hw/mlx5/cq.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/infiniband/hw/mlx5/cq.c 2014-07-07 10:45:09.000000000 +0200 +@@ -32,7 +32,6 @@ + + #include <linux/kref.h> + #include <rdma/ib_umem.h> +-#include <rdma/ib_user_verbs.h> + #include "mlx5_ib.h" + #include "user.h" + +@@ -603,24 +602,14 @@ + int *cqe_size, int *index, int *inlen) + { + struct mlx5_ib_create_cq ucmd; +- size_t ucmdlen; + int page_shift; + int npages; + int ncont; + int err; + +- ucmdlen = +- (udata->inlen - sizeof(struct ib_uverbs_cmd_hdr) < +- sizeof(ucmd)) ? (sizeof(ucmd) - +- sizeof(ucmd.reserved)) : sizeof(ucmd); +- +- if (ib_copy_from_udata(&ucmd, udata, ucmdlen)) ++ if (ib_copy_from_udata(&ucmd, udata, sizeof(ucmd))) + return -EFAULT; + +- if (ucmdlen == sizeof(ucmd) && +- ucmd.reserved != 0) +- return -EINVAL; +- + if (ucmd.cqe_size != 64 && ucmd.cqe_size != 128) + return -EINVAL; + +diff -Nur linux-3.15.4/drivers/infiniband/hw/mlx5/srq.c linux-rpi/drivers/infiniband/hw/mlx5/srq.c +--- linux-3.15.4/drivers/infiniband/hw/mlx5/srq.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/infiniband/hw/mlx5/srq.c 2014-07-07 10:45:09.000000000 +0200 +@@ -35,7 +35,6 @@ + #include <linux/mlx5/srq.h> + #include <linux/slab.h> + #include <rdma/ib_umem.h> +-#include <rdma/ib_user_verbs.h> + + #include "mlx5_ib.h" + #include "user.h" +@@ -79,27 +78,16 @@ + { + struct mlx5_ib_dev *dev = to_mdev(pd->device); + struct mlx5_ib_create_srq ucmd; +- size_t ucmdlen; + int err; + int npages; + int page_shift; + int ncont; + u32 offset; + +- ucmdlen = +- (udata->inlen - sizeof(struct ib_uverbs_cmd_hdr) < +- sizeof(ucmd)) ? (sizeof(ucmd) - +- sizeof(ucmd.reserved)) : sizeof(ucmd); +- +- if (ib_copy_from_udata(&ucmd, udata, ucmdlen)) { ++ if (ib_copy_from_udata(&ucmd, udata, sizeof(ucmd))) { + mlx5_ib_dbg(dev, "failed copy udata\n"); + return -EFAULT; + } +- +- if (ucmdlen == sizeof(ucmd) && +- ucmd.reserved != 0) +- return -EINVAL; +- + srq->wq_sig = !!(ucmd.flags & MLX5_SRQ_FLAG_SIGNATURE); + + srq->umem = ib_umem_get(pd->uobject->context, ucmd.buf_addr, buf_size, +diff -Nur linux-3.15.4/drivers/infiniband/hw/mlx5/user.h linux-rpi/drivers/infiniband/hw/mlx5/user.h +--- linux-3.15.4/drivers/infiniband/hw/mlx5/user.h 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/infiniband/hw/mlx5/user.h 2014-07-07 10:45:09.000000000 +0200 +@@ -91,7 +91,6 @@ + __u64 buf_addr; + __u64 db_addr; + __u32 cqe_size; +- __u32 reserved; /* explicit padding (optional on i386) */ + }; + + struct mlx5_ib_create_cq_resp { +@@ -110,7 +109,6 @@ + __u64 buf_addr; + __u64 db_addr; + __u32 flags; +- __u32 reserved; /* explicit padding (optional on i386) */ + }; + + struct mlx5_ib_create_srq_resp { +diff -Nur linux-3.15.4/drivers/infiniband/hw/qib/qib_mad.c linux-rpi/drivers/infiniband/hw/qib/qib_mad.c +--- linux-3.15.4/drivers/infiniband/hw/qib/qib_mad.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/infiniband/hw/qib/qib_mad.c 2014-07-07 10:45:09.000000000 +0200 +@@ -1028,7 +1028,7 @@ + + event.event = IB_EVENT_PKEY_CHANGE; + event.device = &dd->verbs_dev.ibdev; +- event.element.port_num = port; ++ event.element.port_num = 1; + ib_dispatch_event(&event); + } + return 0; +diff -Nur linux-3.15.4/drivers/infiniband/ulp/srp/ib_srp.c linux-rpi/drivers/infiniband/ulp/srp/ib_srp.c +--- linux-3.15.4/drivers/infiniband/ulp/srp/ib_srp.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/infiniband/ulp/srp/ib_srp.c 2014-07-07 10:45:09.000000000 +0200 +@@ -1594,12 +1594,6 @@ + err_iu: + srp_put_tx_iu(target, iu, SRP_IU_CMD); + +- /* +- * Avoid that the loops that iterate over the request ring can +- * encounter a dangling SCSI command pointer. +- */ +- req->scmnd = NULL; +- + spin_lock_irqsave(&target->lock, flags); + list_add(&req->list, &target->free_reqs); + +diff -Nur linux-3.15.4/drivers/input/mouse/elantech.c linux-rpi/drivers/input/mouse/elantech.c +--- linux-3.15.4/drivers/input/mouse/elantech.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/input/mouse/elantech.c 2014-07-07 10:45:09.000000000 +0200 +@@ -473,15 +473,8 @@ + input_report_key(dev, BTN_TOOL_FINGER, fingers == 1); + input_report_key(dev, BTN_TOOL_DOUBLETAP, fingers == 2); + input_report_key(dev, BTN_TOOL_TRIPLETAP, fingers == 3); +- +- /* For clickpads map both buttons to BTN_LEFT */ +- if (etd->fw_version & 0x001000) { +- input_report_key(dev, BTN_LEFT, packet[0] & 0x03); +- } else { +- input_report_key(dev, BTN_LEFT, packet[0] & 0x01); +- input_report_key(dev, BTN_RIGHT, packet[0] & 0x02); +- } +- ++ input_report_key(dev, BTN_LEFT, packet[0] & 0x01); ++ input_report_key(dev, BTN_RIGHT, packet[0] & 0x02); + input_report_abs(dev, ABS_PRESSURE, pres); + input_report_abs(dev, ABS_TOOL_WIDTH, width); + +@@ -491,17 +484,10 @@ + static void elantech_input_sync_v4(struct psmouse *psmouse) + { + struct input_dev *dev = psmouse->dev; +- struct elantech_data *etd = psmouse->private; + unsigned char *packet = psmouse->packet; + +- /* For clickpads map both buttons to BTN_LEFT */ +- if (etd->fw_version & 0x001000) { +- input_report_key(dev, BTN_LEFT, packet[0] & 0x03); +- } else { +- input_report_key(dev, BTN_LEFT, packet[0] & 0x01); +- input_report_key(dev, BTN_RIGHT, packet[0] & 0x02); +- } +- ++ input_report_key(dev, BTN_LEFT, packet[0] & 0x01); ++ input_report_key(dev, BTN_RIGHT, packet[0] & 0x02); + input_mt_report_pointer_emulation(dev, true); + input_sync(dev); + } +@@ -849,7 +835,7 @@ + if (etd->set_hw_resolution) + etd->reg_10 = 0x0b; + else +- etd->reg_10 = 0x01; ++ etd->reg_10 = 0x03; + + if (elantech_write_reg(psmouse, 0x10, etd->reg_10)) + rc = -1; +@@ -1350,8 +1336,7 @@ + } + + /* +- * Some hw_version 3 models go into error state when we try to set +- * bit 3 and/or bit 1 of r10. ++ * Some hw_version 3 models go into error state when we try to set bit 3 of r10 + */ + static const struct dmi_system_id no_hw_res_dmi_table[] = { + #if defined(CONFIG_DMI) && defined(CONFIG_X86) +diff -Nur linux-3.15.4/drivers/input/mouse/synaptics.c linux-rpi/drivers/input/mouse/synaptics.c +--- linux-3.15.4/drivers/input/mouse/synaptics.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/input/mouse/synaptics.c 2014-07-07 10:45:09.000000000 +0200 +@@ -347,6 +347,15 @@ + unsigned char resp[3]; + int i; + ++ for (i = 0; min_max_pnpid_table[i].pnp_ids; i++) ++ if (matches_pnp_id(psmouse, min_max_pnpid_table[i].pnp_ids)) { ++ priv->x_min = min_max_pnpid_table[i].x_min; ++ priv->x_max = min_max_pnpid_table[i].x_max; ++ priv->y_min = min_max_pnpid_table[i].y_min; ++ priv->y_max = min_max_pnpid_table[i].y_max; ++ return 0; ++ } ++ + if (SYN_ID_MAJOR(priv->identity) < 4) + return 0; + +@@ -357,16 +366,6 @@ + } + } + +- for (i = 0; min_max_pnpid_table[i].pnp_ids; i++) { +- if (matches_pnp_id(psmouse, min_max_pnpid_table[i].pnp_ids)) { +- priv->x_min = min_max_pnpid_table[i].x_min; +- priv->x_max = min_max_pnpid_table[i].x_max; +- priv->y_min = min_max_pnpid_table[i].y_min; +- priv->y_max = min_max_pnpid_table[i].y_max; +- return 0; +- } +- } +- + if (SYN_EXT_CAP_REQUESTS(priv->capabilities) >= 5 && + SYN_CAP_MAX_DIMENSIONS(priv->ext_cap_0c)) { + if (synaptics_send_cmd(psmouse, SYN_QUE_EXT_MAX_COORDS, resp)) { +diff -Nur linux-3.15.4/drivers/media/platform/bcm2835/bcm2835-camera.c linux-rpi/drivers/media/platform/bcm2835/bcm2835-camera.c +--- linux-3.15.4/drivers/media/platform/bcm2835/bcm2835-camera.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/media/platform/bcm2835/bcm2835-camera.c 2014-07-07 10:45:10.000000000 +0200 @@ -0,0 +1,1827 @@ +/* + * Broadcom BM2835 V4L2 driver @@ -12506,9 +14276,9 @@ diff -Nur linux-3.15/drivers/media/platform/bcm2835/bcm2835-camera.c linux-rpi/d + +module_init(bm2835_mmal_init); +module_exit(bm2835_mmal_exit); -diff -Nur linux-3.15/drivers/media/platform/bcm2835/bcm2835-camera.h linux-rpi/drivers/media/platform/bcm2835/bcm2835-camera.h ---- linux-3.15/drivers/media/platform/bcm2835/bcm2835-camera.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/media/platform/bcm2835/bcm2835-camera.h 2014-06-11 21:03:33.000000000 +0200 +diff -Nur linux-3.15.4/drivers/media/platform/bcm2835/bcm2835-camera.h linux-rpi/drivers/media/platform/bcm2835/bcm2835-camera.h +--- linux-3.15.4/drivers/media/platform/bcm2835/bcm2835-camera.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/media/platform/bcm2835/bcm2835-camera.h 2014-07-07 10:45:10.000000000 +0200 @@ -0,0 +1,126 @@ +/* + * Broadcom BM2835 V4L2 driver @@ -12636,9 +14406,9 @@ diff -Nur linux-3.15/drivers/media/platform/bcm2835/bcm2835-camera.h linux-rpi/d + (pix_fmt)->pixelformat, (pix_fmt)->bytesperline, \ + (pix_fmt)->sizeimage, (pix_fmt)->colorspace, (pix_fmt)->priv); \ +} -diff -Nur linux-3.15/drivers/media/platform/bcm2835/controls.c linux-rpi/drivers/media/platform/bcm2835/controls.c ---- linux-3.15/drivers/media/platform/bcm2835/controls.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/media/platform/bcm2835/controls.c 2014-06-11 21:03:33.000000000 +0200 +diff -Nur linux-3.15.4/drivers/media/platform/bcm2835/controls.c linux-rpi/drivers/media/platform/bcm2835/controls.c +--- linux-3.15.4/drivers/media/platform/bcm2835/controls.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/media/platform/bcm2835/controls.c 2014-07-07 10:45:10.000000000 +0200 @@ -0,0 +1,1322 @@ +/* + * Broadcom BM2835 V4L2 driver @@ -13962,9 +15732,9 @@ diff -Nur linux-3.15/drivers/media/platform/bcm2835/controls.c linux-rpi/drivers + + return 0; +} -diff -Nur linux-3.15/drivers/media/platform/bcm2835/Kconfig linux-rpi/drivers/media/platform/bcm2835/Kconfig ---- linux-3.15/drivers/media/platform/bcm2835/Kconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/media/platform/bcm2835/Kconfig 2014-06-11 21:03:33.000000000 +0200 +diff -Nur linux-3.15.4/drivers/media/platform/bcm2835/Kconfig linux-rpi/drivers/media/platform/bcm2835/Kconfig +--- linux-3.15.4/drivers/media/platform/bcm2835/Kconfig 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/media/platform/bcm2835/Kconfig 2014-04-13 17:32:57.000000000 +0200 @@ -0,0 +1,25 @@ +# Broadcom VideoCore IV v4l2 camera support + @@ -13991,18 +15761,18 @@ diff -Nur linux-3.15/drivers/media/platform/bcm2835/Kconfig linux-rpi/drivers/me + + +endif # VIDEO_BM2835 -diff -Nur linux-3.15/drivers/media/platform/bcm2835/Makefile linux-rpi/drivers/media/platform/bcm2835/Makefile ---- linux-3.15/drivers/media/platform/bcm2835/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/media/platform/bcm2835/Makefile 2014-06-11 21:03:33.000000000 +0200 +diff -Nur linux-3.15.4/drivers/media/platform/bcm2835/Makefile linux-rpi/drivers/media/platform/bcm2835/Makefile +--- linux-3.15.4/drivers/media/platform/bcm2835/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/media/platform/bcm2835/Makefile 2014-04-13 17:32:57.000000000 +0200 @@ -0,0 +1,5 @@ +bcm2835-v4l2-objs := bcm2835-camera.o controls.o mmal-vchiq.o + +obj-$(CONFIG_VIDEO_BCM2835_MMAL) += bcm2835-v4l2.o + +ccflags-$(CONFIG_VIDEO_BCM2835) += -Idrivers/misc/vc04_services -Idrivers/misc/vc04_services/interface/vcos/linuxkernel -D__VCCOREVER__=0x04000000 -diff -Nur linux-3.15/drivers/media/platform/bcm2835/mmal-common.h linux-rpi/drivers/media/platform/bcm2835/mmal-common.h ---- linux-3.15/drivers/media/platform/bcm2835/mmal-common.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/media/platform/bcm2835/mmal-common.h 2014-06-11 21:03:33.000000000 +0200 +diff -Nur linux-3.15.4/drivers/media/platform/bcm2835/mmal-common.h linux-rpi/drivers/media/platform/bcm2835/mmal-common.h +--- linux-3.15.4/drivers/media/platform/bcm2835/mmal-common.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/media/platform/bcm2835/mmal-common.h 2014-04-13 17:32:57.000000000 +0200 @@ -0,0 +1,53 @@ +/* + * Broadcom BM2835 V4L2 driver @@ -14057,9 +15827,9 @@ diff -Nur linux-3.15/drivers/media/platform/bcm2835/mmal-common.h linux-rpi/driv + u32 v; +}; + -diff -Nur linux-3.15/drivers/media/platform/bcm2835/mmal-encodings.h linux-rpi/drivers/media/platform/bcm2835/mmal-encodings.h ---- linux-3.15/drivers/media/platform/bcm2835/mmal-encodings.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/media/platform/bcm2835/mmal-encodings.h 2014-06-11 21:03:33.000000000 +0200 +diff -Nur linux-3.15.4/drivers/media/platform/bcm2835/mmal-encodings.h linux-rpi/drivers/media/platform/bcm2835/mmal-encodings.h +--- linux-3.15.4/drivers/media/platform/bcm2835/mmal-encodings.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/media/platform/bcm2835/mmal-encodings.h 2014-07-07 10:45:10.000000000 +0200 @@ -0,0 +1,127 @@ +/* + * Broadcom BM2835 V4L2 driver @@ -14188,9 +15958,9 @@ diff -Nur linux-3.15/drivers/media/platform/bcm2835/mmal-encodings.h linux-rpi/d +/* @} MmalColorSpace List */ + +#endif /* MMAL_ENCODINGS_H */ -diff -Nur linux-3.15/drivers/media/platform/bcm2835/mmal-msg-common.h linux-rpi/drivers/media/platform/bcm2835/mmal-msg-common.h ---- linux-3.15/drivers/media/platform/bcm2835/mmal-msg-common.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/media/platform/bcm2835/mmal-msg-common.h 2014-06-11 21:03:33.000000000 +0200 +diff -Nur linux-3.15.4/drivers/media/platform/bcm2835/mmal-msg-common.h linux-rpi/drivers/media/platform/bcm2835/mmal-msg-common.h +--- linux-3.15.4/drivers/media/platform/bcm2835/mmal-msg-common.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/media/platform/bcm2835/mmal-msg-common.h 2014-04-13 17:32:57.000000000 +0200 @@ -0,0 +1,50 @@ +/* + * Broadcom BM2835 V4L2 driver @@ -14242,9 +16012,9 @@ diff -Nur linux-3.15/drivers/media/platform/bcm2835/mmal-msg-common.h linux-rpi/ +}; + +#endif /* MMAL_MSG_COMMON_H */ -diff -Nur linux-3.15/drivers/media/platform/bcm2835/mmal-msg-format.h linux-rpi/drivers/media/platform/bcm2835/mmal-msg-format.h ---- linux-3.15/drivers/media/platform/bcm2835/mmal-msg-format.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/media/platform/bcm2835/mmal-msg-format.h 2014-06-11 21:03:33.000000000 +0200 +diff -Nur linux-3.15.4/drivers/media/platform/bcm2835/mmal-msg-format.h linux-rpi/drivers/media/platform/bcm2835/mmal-msg-format.h +--- linux-3.15.4/drivers/media/platform/bcm2835/mmal-msg-format.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/media/platform/bcm2835/mmal-msg-format.h 2014-04-13 17:32:57.000000000 +0200 @@ -0,0 +1,81 @@ +/* + * Broadcom BM2835 V4L2 driver @@ -14327,9 +16097,9 @@ diff -Nur linux-3.15/drivers/media/platform/bcm2835/mmal-msg-format.h linux-rpi/ +}; + +#endif /* MMAL_MSG_FORMAT_H */ -diff -Nur linux-3.15/drivers/media/platform/bcm2835/mmal-msg.h linux-rpi/drivers/media/platform/bcm2835/mmal-msg.h ---- linux-3.15/drivers/media/platform/bcm2835/mmal-msg.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/media/platform/bcm2835/mmal-msg.h 2014-06-11 21:03:33.000000000 +0200 +diff -Nur linux-3.15.4/drivers/media/platform/bcm2835/mmal-msg.h linux-rpi/drivers/media/platform/bcm2835/mmal-msg.h +--- linux-3.15.4/drivers/media/platform/bcm2835/mmal-msg.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/media/platform/bcm2835/mmal-msg.h 2014-04-13 17:32:57.000000000 +0200 @@ -0,0 +1,404 @@ +/* + * Broadcom BM2835 V4L2 driver @@ -14735,9 +16505,9 @@ diff -Nur linux-3.15/drivers/media/platform/bcm2835/mmal-msg.h linux-rpi/drivers + u8 payload[MMAL_MSG_MAX_PAYLOAD]; + } u; +}; -diff -Nur linux-3.15/drivers/media/platform/bcm2835/mmal-msg-port.h linux-rpi/drivers/media/platform/bcm2835/mmal-msg-port.h ---- linux-3.15/drivers/media/platform/bcm2835/mmal-msg-port.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/media/platform/bcm2835/mmal-msg-port.h 2014-06-11 21:03:33.000000000 +0200 +diff -Nur linux-3.15.4/drivers/media/platform/bcm2835/mmal-msg-port.h linux-rpi/drivers/media/platform/bcm2835/mmal-msg-port.h +--- linux-3.15.4/drivers/media/platform/bcm2835/mmal-msg-port.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/media/platform/bcm2835/mmal-msg-port.h 2014-04-13 17:32:57.000000000 +0200 @@ -0,0 +1,107 @@ +/* + * Broadcom BM2835 V4L2 driver @@ -14846,9 +16616,9 @@ diff -Nur linux-3.15/drivers/media/platform/bcm2835/mmal-msg-port.h linux-rpi/dr + */ + +}; -diff -Nur linux-3.15/drivers/media/platform/bcm2835/mmal-parameters.h linux-rpi/drivers/media/platform/bcm2835/mmal-parameters.h ---- linux-3.15/drivers/media/platform/bcm2835/mmal-parameters.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/media/platform/bcm2835/mmal-parameters.h 2014-06-11 21:03:33.000000000 +0200 +diff -Nur linux-3.15.4/drivers/media/platform/bcm2835/mmal-parameters.h linux-rpi/drivers/media/platform/bcm2835/mmal-parameters.h +--- linux-3.15.4/drivers/media/platform/bcm2835/mmal-parameters.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/media/platform/bcm2835/mmal-parameters.h 2014-07-07 10:45:10.000000000 +0200 @@ -0,0 +1,656 @@ +/* + * Broadcom BM2835 V4L2 driver @@ -15506,9 +17276,9 @@ diff -Nur linux-3.15/drivers/media/platform/bcm2835/mmal-parameters.h linux-rpi/ + u32 num_effect_params; + u32 effect_parameter[MMAL_MAX_IMAGEFX_PARAMETERS]; +}; -diff -Nur linux-3.15/drivers/media/platform/bcm2835/mmal-vchiq.c linux-rpi/drivers/media/platform/bcm2835/mmal-vchiq.c ---- linux-3.15/drivers/media/platform/bcm2835/mmal-vchiq.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/media/platform/bcm2835/mmal-vchiq.c 2014-06-11 21:03:33.000000000 +0200 +diff -Nur linux-3.15.4/drivers/media/platform/bcm2835/mmal-vchiq.c linux-rpi/drivers/media/platform/bcm2835/mmal-vchiq.c +--- linux-3.15.4/drivers/media/platform/bcm2835/mmal-vchiq.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/media/platform/bcm2835/mmal-vchiq.c 2014-04-13 17:32:57.000000000 +0200 @@ -0,0 +1,1916 @@ +/* + * Broadcom BM2835 V4L2 driver @@ -17426,9 +19196,9 @@ diff -Nur linux-3.15/drivers/media/platform/bcm2835/mmal-vchiq.c linux-rpi/drive + kfree(instance); + return -ENODEV; +} -diff -Nur linux-3.15/drivers/media/platform/bcm2835/mmal-vchiq.h linux-rpi/drivers/media/platform/bcm2835/mmal-vchiq.h ---- linux-3.15/drivers/media/platform/bcm2835/mmal-vchiq.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/media/platform/bcm2835/mmal-vchiq.h 2014-06-11 21:03:33.000000000 +0200 +diff -Nur linux-3.15.4/drivers/media/platform/bcm2835/mmal-vchiq.h linux-rpi/drivers/media/platform/bcm2835/mmal-vchiq.h +--- linux-3.15.4/drivers/media/platform/bcm2835/mmal-vchiq.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/media/platform/bcm2835/mmal-vchiq.h 2014-04-13 17:32:57.000000000 +0200 @@ -0,0 +1,178 @@ +/* + * Broadcom BM2835 V4L2 driver @@ -17608,9 +19378,9 @@ diff -Nur linux-3.15/drivers/media/platform/bcm2835/mmal-vchiq.h linux-rpi/drive + struct mmal_buffer *buf); + +#endif /* MMAL_VCHIQ_H */ -diff -Nur linux-3.15/drivers/media/platform/Kconfig linux-rpi/drivers/media/platform/Kconfig ---- linux-3.15/drivers/media/platform/Kconfig 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/media/platform/Kconfig 2014-06-11 21:05:19.000000000 +0200 +diff -Nur linux-3.15.4/drivers/media/platform/Kconfig linux-rpi/drivers/media/platform/Kconfig +--- linux-3.15.4/drivers/media/platform/Kconfig 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/media/platform/Kconfig 2014-07-07 10:45:10.000000000 +0200 @@ -118,6 +118,7 @@ source "drivers/media/platform/soc_camera/Kconfig" source "drivers/media/platform/exynos4-is/Kconfig" @@ -17619,9 +19389,9 @@ diff -Nur linux-3.15/drivers/media/platform/Kconfig linux-rpi/drivers/media/plat endif # V4L_PLATFORM_DRIVERS -diff -Nur linux-3.15/drivers/media/platform/Makefile linux-rpi/drivers/media/platform/Makefile ---- linux-3.15/drivers/media/platform/Makefile 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/media/platform/Makefile 2014-06-11 21:05:19.000000000 +0200 +diff -Nur linux-3.15.4/drivers/media/platform/Makefile linux-rpi/drivers/media/platform/Makefile +--- linux-3.15.4/drivers/media/platform/Makefile 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/media/platform/Makefile 2014-07-07 10:45:10.000000000 +0200 @@ -51,4 +51,6 @@ obj-$(CONFIG_ARCH_OMAP) += omap/ @@ -17629,9 +19399,9 @@ diff -Nur linux-3.15/drivers/media/platform/Makefile linux-rpi/drivers/media/pla +obj-$(CONFIG_VIDEO_BCM2835) += bcm2835/ + ccflags-y += -I$(srctree)/drivers/media/i2c -diff -Nur linux-3.15/drivers/media/usb/dvb-usb-v2/rtl28xxu.c linux-rpi/drivers/media/usb/dvb-usb-v2/rtl28xxu.c ---- linux-3.15/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 2014-06-11 21:05:20.000000000 +0200 +diff -Nur linux-3.15.4/drivers/media/usb/dvb-usb-v2/rtl28xxu.c linux-rpi/drivers/media/usb/dvb-usb-v2/rtl28xxu.c +--- linux-3.15.4/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 2014-07-07 10:45:11.000000000 +0200 @@ -1531,6 +1531,10 @@ &rtl2832u_props, "Compro VideoMate U620F", NULL) }, { DVB_USB_DEVICE(USB_VID_KWORLD_2, 0xd394, @@ -17643,9 +19413,9 @@ diff -Nur linux-3.15/drivers/media/usb/dvb-usb-v2/rtl28xxu.c linux-rpi/drivers/m { DVB_USB_DEVICE(USB_VID_LEADTEK, 0x6a03, &rtl2832u_props, "Leadtek WinFast DTV Dongle mini", NULL) }, { DVB_USB_DEVICE(USB_VID_GTEK, USB_PID_CPYTO_REDI_PC50A, -diff -Nur linux-3.15/drivers/misc/Kconfig linux-rpi/drivers/misc/Kconfig ---- linux-3.15/drivers/misc/Kconfig 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/misc/Kconfig 2014-06-11 21:05:20.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/Kconfig linux-rpi/drivers/misc/Kconfig +--- linux-3.15.4/drivers/misc/Kconfig 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/misc/Kconfig 2014-07-07 10:45:11.000000000 +0200 @@ -524,6 +524,7 @@ source "drivers/misc/altera-stapl/Kconfig" source "drivers/misc/mei/Kconfig" @@ -17654,9 +19424,9 @@ diff -Nur linux-3.15/drivers/misc/Kconfig linux-rpi/drivers/misc/Kconfig source "drivers/misc/mic/Kconfig" source "drivers/misc/genwqe/Kconfig" source "drivers/misc/echo/Kconfig" -diff -Nur linux-3.15/drivers/misc/Makefile linux-rpi/drivers/misc/Makefile ---- linux-3.15/drivers/misc/Makefile 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/misc/Makefile 2014-06-11 21:05:20.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/Makefile linux-rpi/drivers/misc/Makefile +--- linux-3.15.4/drivers/misc/Makefile 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/misc/Makefile 2014-07-07 10:45:11.000000000 +0200 @@ -52,6 +52,7 @@ obj-$(CONFIG_VMWARE_VMCI) += vmw_vmci/ obj-$(CONFIG_LATTICE_ECP3_CONFIG) += lattice-ecp3-config.o @@ -17665,9 +19435,9 @@ diff -Nur linux-3.15/drivers/misc/Makefile linux-rpi/drivers/misc/Makefile obj-y += mic/ obj-$(CONFIG_GENWQE) += genwqe/ obj-$(CONFIG_ECHO) += echo/ -diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchi/connections/connection.h linux-rpi/drivers/misc/vc04_services/interface/vchi/connections/connection.h ---- linux-3.15/drivers/misc/vc04_services/interface/vchi/connections/connection.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/misc/vc04_services/interface/vchi/connections/connection.h 2014-06-11 21:03:34.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/vc04_services/interface/vchi/connections/connection.h linux-rpi/drivers/misc/vc04_services/interface/vchi/connections/connection.h +--- linux-3.15.4/drivers/misc/vc04_services/interface/vchi/connections/connection.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/misc/vc04_services/interface/vchi/connections/connection.h 2014-04-13 17:32:57.000000000 +0200 @@ -0,0 +1,328 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -17997,9 +19767,9 @@ diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchi/connections/conne +#endif /* CONNECTION_H_ */ + +/****************************** End of file **********************************/ -diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchi/message_drivers/message.h linux-rpi/drivers/misc/vc04_services/interface/vchi/message_drivers/message.h ---- linux-3.15/drivers/misc/vc04_services/interface/vchi/message_drivers/message.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/misc/vc04_services/interface/vchi/message_drivers/message.h 2014-06-11 21:03:34.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/vc04_services/interface/vchi/message_drivers/message.h linux-rpi/drivers/misc/vc04_services/interface/vchi/message_drivers/message.h +--- linux-3.15.4/drivers/misc/vc04_services/interface/vchi/message_drivers/message.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/misc/vc04_services/interface/vchi/message_drivers/message.h 2014-04-13 17:32:57.000000000 +0200 @@ -0,0 +1,204 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -18205,9 +19975,9 @@ diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchi/message_drivers/m +#endif // _VCHI_MESSAGE_H_ + +/****************************** End of file ***********************************/ -diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h linux-rpi/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h ---- linux-3.15/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h 2014-06-11 21:03:34.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h linux-rpi/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h +--- linux-3.15.4/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h 2014-04-13 17:32:57.000000000 +0200 @@ -0,0 +1,224 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -18433,9 +20203,9 @@ diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h linux- +#endif /* VCHI_CFG_H_ */ + +/****************************** End of file **********************************/ -diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h linux-rpi/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h ---- linux-3.15/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h 2014-06-11 21:03:34.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h linux-rpi/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h +--- linux-3.15.4/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h 2014-04-13 17:32:57.000000000 +0200 @@ -0,0 +1,71 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -18508,9 +20278,9 @@ diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal +//#define VCHI_RX_NANOLOCKS + +#endif /*VCHI_CFG_INTERNAL_H_*/ -diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchi/vchi_common.h linux-rpi/drivers/misc/vc04_services/interface/vchi/vchi_common.h ---- linux-3.15/drivers/misc/vc04_services/interface/vchi/vchi_common.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/misc/vc04_services/interface/vchi/vchi_common.h 2014-06-11 21:03:34.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/vc04_services/interface/vchi/vchi_common.h linux-rpi/drivers/misc/vc04_services/interface/vchi/vchi_common.h +--- linux-3.15.4/drivers/misc/vc04_services/interface/vchi/vchi_common.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/misc/vc04_services/interface/vchi/vchi_common.h 2014-04-13 17:32:57.000000000 +0200 @@ -0,0 +1,163 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -18675,9 +20445,9 @@ diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchi/vchi_common.h lin + + +#endif // VCHI_COMMON_H_ -diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchi/vchi.h linux-rpi/drivers/misc/vc04_services/interface/vchi/vchi.h ---- linux-3.15/drivers/misc/vc04_services/interface/vchi/vchi.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/misc/vc04_services/interface/vchi/vchi.h 2014-06-11 21:03:34.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/vc04_services/interface/vchi/vchi.h linux-rpi/drivers/misc/vc04_services/interface/vchi/vchi.h +--- linux-3.15.4/drivers/misc/vc04_services/interface/vchi/vchi.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/misc/vc04_services/interface/vchi/vchi.h 2014-04-13 17:32:57.000000000 +0200 @@ -0,0 +1,373 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -19052,9 +20822,9 @@ diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchi/vchi.h linux-rpi/ +#endif /* VCHI_H_ */ + +/****************************** End of file **********************************/ -diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchi/vchi_mh.h linux-rpi/drivers/misc/vc04_services/interface/vchi/vchi_mh.h ---- linux-3.15/drivers/misc/vc04_services/interface/vchi/vchi_mh.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/misc/vc04_services/interface/vchi/vchi_mh.h 2014-06-11 21:03:34.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/vc04_services/interface/vchi/vchi_mh.h linux-rpi/drivers/misc/vc04_services/interface/vchi/vchi_mh.h +--- linux-3.15.4/drivers/misc/vc04_services/interface/vchi/vchi_mh.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/misc/vc04_services/interface/vchi/vchi_mh.h 2014-04-13 17:32:57.000000000 +0200 @@ -0,0 +1,42 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -19098,9 +20868,9 @@ diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchi/vchi_mh.h linux-r +#define VCHI_MEM_HANDLE_INVALID 0 + +#endif -diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c ---- linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c 2014-06-11 21:03:34.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c +--- linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c 2014-07-07 10:45:11.000000000 +0200 @@ -0,0 +1,562 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -19664,9 +21434,9 @@ diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_a + + kfree(pagelist); +} -diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h ---- linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h 2014-06-11 21:03:34.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h +--- linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h 2014-04-13 17:32:57.000000000 +0200 @@ -0,0 +1,42 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -19710,9 +21480,9 @@ diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h +#define VCHIQ_PLATFORM_FRAGMENTS_COUNT_IDX 1 + +#endif /* VCHIQ_2835_H */ -diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c ---- linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c 2014-06-11 21:05:20.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c +--- linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c 2014-07-07 10:45:11.000000000 +0200 @@ -0,0 +1,2814 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -22528,9 +24298,9 @@ diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c +module_exit(vchiq_exit); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Broadcom Corporation"); -diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h ---- linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h 2014-06-11 21:03:34.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h +--- linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h 2014-04-13 17:32:57.000000000 +0200 @@ -0,0 +1,212 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -22744,9 +24514,9 @@ diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h + + +#endif /* VCHIQ_ARM_H */ -diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h ---- linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h 2014-06-11 21:03:34.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h +--- linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h 2014-04-13 17:32:57.000000000 +0200 @@ -0,0 +1,37 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -22785,9 +24555,9 @@ diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_ +const char *vchiq_get_build_version(void); +const char *vchiq_get_build_time(void); +const char *vchiq_get_build_date(void); -diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h ---- linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h 2014-06-11 21:03:34.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h +--- linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h 2014-04-13 17:32:57.000000000 +0200 @@ -0,0 +1,60 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -22849,9 +24619,9 @@ diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h +#endif + +#endif /* VCHIQ_CFG_H */ -diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c ---- linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c 2014-06-11 21:03:34.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c +--- linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c 2014-07-07 10:45:11.000000000 +0200 @@ -0,0 +1,120 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -22973,9 +24743,9 @@ diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connec + mutex_unlock(&g_connected_mutex); +} +EXPORT_SYMBOL(vchiq_add_connected_callback); -diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h ---- linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h 2014-06-11 21:03:34.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h +--- linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h 2014-07-07 10:45:11.000000000 +0200 @@ -0,0 +1,50 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -23027,9 +24797,9 @@ diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connec +void vchiq_call_connected_callbacks(void); + +#endif /* VCHIQ_CONNECTED_H */ -diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c ---- linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c 2014-06-11 21:03:34.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c +--- linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c 2014-07-07 10:45:11.000000000 +0200 @@ -0,0 +1,3825 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -26856,9 +28626,9 @@ diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c + numBytes = 0; + } +} -diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h ---- linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h 2014-06-11 21:03:34.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h +--- linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h 2014-04-13 17:32:57.000000000 +0200 @@ -0,0 +1,706 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -27566,9 +29336,9 @@ diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h + size_t numBytes); + +#endif -diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion ---- linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion 2014-06-11 21:03:34.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion +--- linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion 2014-07-07 10:45:11.000000000 +0200 @@ -0,0 +1,87 @@ +#!/usr/bin/perl -w + @@ -27657,9 +29427,9 @@ diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genver + return vchiq_build_time; +} +EOF -diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h ---- linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h 2014-06-11 21:03:34.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h +--- linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h 2014-07-07 10:45:11.000000000 +0200 @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -27701,9 +29471,9 @@ diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h linu +#include "vchiq_util.h" + +#endif -diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h ---- linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h 2014-06-11 21:03:34.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h +--- linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h 2014-04-13 17:32:57.000000000 +0200 @@ -0,0 +1,188 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -27893,9 +29663,9 @@ diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h l + short *peer_version); + +#endif /* VCHIQ_IF_H */ -diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h ---- linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h 2014-06-11 21:03:34.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h +--- linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h 2014-04-13 17:32:57.000000000 +0200 @@ -0,0 +1,129 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -28026,9 +29796,9 @@ diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl. +#define VCHIQ_IOC_MAX 15 + +#endif -diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c ---- linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c 2014-06-11 21:03:34.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c +--- linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c 2014-07-07 10:45:11.000000000 +0200 @@ -0,0 +1,457 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -28487,9 +30257,9 @@ diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_l + + return status; +} -diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_killable.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_killable.h ---- linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_killable.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_killable.h 2014-06-11 21:03:34.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_killable.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_killable.h +--- linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_killable.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_killable.h 2014-07-07 10:45:11.000000000 +0200 @@ -0,0 +1,69 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -28530,7 +30300,7 @@ diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_killab +#include <linux/mutex.h> +#include <linux/semaphore.h> + -+#define SHUTDOWN_SIGS (sigmask(SIGKILL) | sigmask(SIGINT) | sigmask(SIGQUIT)) ++#define SHUTDOWN_SIGS (sigmask(SIGKILL) | sigmask(SIGINT) | sigmask(SIGQUIT) | sigmask(SIGTRAP) | sigmask(SIGSTOP) | sigmask(SIGCONT)) + +static inline int __must_check down_interruptible_killable(struct semaphore *sem) +{ @@ -28560,9 +30330,9 @@ diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_killab +#define mutex_lock_interruptible mutex_lock_interruptible_killable + +#endif -diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h ---- linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h 2014-06-11 21:03:34.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h +--- linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h 2014-04-13 17:32:57.000000000 +0200 @@ -0,0 +1,71 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -28635,9 +30405,9 @@ diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv + const VCHIQ_PLATFORM_DATA_T * platform_data); + +#endif -diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h ---- linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h 2014-06-11 21:03:34.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h +--- linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h 2014-04-13 17:32:57.000000000 +0200 @@ -0,0 +1,58 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -28697,9 +30467,9 @@ diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pageli +} FRAGMENTS_T; + +#endif /* VCHIQ_PAGELIST_H */ -diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_proc.c linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_proc.c ---- linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_proc.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_proc.c 2014-06-11 21:03:34.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_proc.c linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_proc.c +--- linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_proc.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_proc.c 2014-07-07 10:45:11.000000000 +0200 @@ -0,0 +1,253 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -28954,9 +30724,9 @@ diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_proc.c +} + +#endif -diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c ---- linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c 2014-06-11 21:03:34.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c +--- linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c 2014-04-13 17:32:57.000000000 +0200 @@ -0,0 +1,828 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -29786,9 +31556,9 @@ diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c + return ret; +} +EXPORT_SYMBOL(vchi_service_release); -diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c ---- linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c 2014-06-11 21:03:34.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c +--- linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c 2014-07-07 10:45:11.000000000 +0200 @@ -0,0 +1,152 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -29942,9 +31712,9 @@ diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c + + return header; +} -diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h ---- linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h 2014-06-11 21:03:34.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h +--- linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h 2014-07-07 10:45:11.000000000 +0200 @@ -0,0 +1,81 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -30027,9 +31797,9 @@ diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h +extern VCHIQ_HEADER_T *vchiu_queue_pop(VCHIU_QUEUE_T *queue); + +#endif -diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c ---- linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c 2014-06-11 21:03:34.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c +--- linux-3.15.4/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c 2014-04-13 17:32:57.000000000 +0200 @@ -0,0 +1,59 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -30090,9 +31860,9 @@ diff -Nur linux-3.15/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_versio +{ + return vchiq_build_time; +} -diff -Nur linux-3.15/drivers/misc/vc04_services/Kconfig linux-rpi/drivers/misc/vc04_services/Kconfig ---- linux-3.15/drivers/misc/vc04_services/Kconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/misc/vc04_services/Kconfig 2014-06-11 21:03:34.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/vc04_services/Kconfig linux-rpi/drivers/misc/vc04_services/Kconfig +--- linux-3.15.4/drivers/misc/vc04_services/Kconfig 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/misc/vc04_services/Kconfig 2014-07-07 10:45:11.000000000 +0200 @@ -0,0 +1,9 @@ +config BCM2708_VCHIQ + tristate "Videocore VCHIQ" @@ -30103,9 +31873,9 @@ diff -Nur linux-3.15/drivers/misc/vc04_services/Kconfig linux-rpi/drivers/misc/v + BCM2708 family of products. + Defaults to Y when the Broadcom Videocore services + are included in the build, N otherwise. -diff -Nur linux-3.15/drivers/misc/vc04_services/Makefile linux-rpi/drivers/misc/vc04_services/Makefile ---- linux-3.15/drivers/misc/vc04_services/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/misc/vc04_services/Makefile 2014-06-11 21:03:34.000000000 +0200 +diff -Nur linux-3.15.4/drivers/misc/vc04_services/Makefile linux-rpi/drivers/misc/vc04_services/Makefile +--- linux-3.15.4/drivers/misc/vc04_services/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/misc/vc04_services/Makefile 2014-07-07 10:45:11.000000000 +0200 @@ -0,0 +1,17 @@ +ifeq ($(CONFIG_MACH_BCM2708),y) + @@ -30124,9 +31894,9 @@ diff -Nur linux-3.15/drivers/misc/vc04_services/Makefile linux-rpi/drivers/misc/ +ccflags-y += -DVCOS_VERIFY_BKPTS=1 -Idrivers/misc/vc04_services -DUSE_VCHIQ_ARM -D__VCCOREVER__=0x04000000 + +endif -diff -Nur linux-3.15/drivers/mmc/card/block.c linux-rpi/drivers/mmc/card/block.c ---- linux-3.15/drivers/mmc/card/block.c 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/mmc/card/block.c 2014-06-11 21:05:20.000000000 +0200 +diff -Nur linux-3.15.4/drivers/mmc/card/block.c linux-rpi/drivers/mmc/card/block.c +--- linux-3.15.4/drivers/mmc/card/block.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/mmc/card/block.c 2014-07-07 10:45:11.000000000 +0200 @@ -1404,7 +1404,7 @@ brq->data.blocks = 1; } @@ -30136,9 +31906,9 @@ diff -Nur linux-3.15/drivers/mmc/card/block.c linux-rpi/drivers/mmc/card/block.c /* SPI multiblock writes terminate using a special * token, not a STOP_TRANSMISSION request. */ -diff -Nur linux-3.15/drivers/mmc/core/sd.c linux-rpi/drivers/mmc/core/sd.c ---- linux-3.15/drivers/mmc/core/sd.c 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/mmc/core/sd.c 2014-06-11 21:05:20.000000000 +0200 +diff -Nur linux-3.15.4/drivers/mmc/core/sd.c linux-rpi/drivers/mmc/core/sd.c +--- linux-3.15.4/drivers/mmc/core/sd.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/mmc/core/sd.c 2014-07-07 10:45:11.000000000 +0200 @@ -15,6 +15,8 @@ #include <linux/slab.h> #include <linux/stat.h> @@ -30293,9 +32063,9 @@ diff -Nur linux-3.15/drivers/mmc/core/sd.c linux-rpi/drivers/mmc/core/sd.c return err; /* -diff -Nur linux-3.15/drivers/mmc/host/Kconfig linux-rpi/drivers/mmc/host/Kconfig ---- linux-3.15/drivers/mmc/host/Kconfig 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/mmc/host/Kconfig 2014-06-11 21:05:20.000000000 +0200 +diff -Nur linux-3.15.4/drivers/mmc/host/Kconfig linux-rpi/drivers/mmc/host/Kconfig +--- linux-3.15.4/drivers/mmc/host/Kconfig 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/mmc/host/Kconfig 2014-07-07 10:45:11.000000000 +0200 @@ -272,6 +272,27 @@ If you have a controller with this interface, say Y or M here. @@ -30324,9 +32094,9 @@ diff -Nur linux-3.15/drivers/mmc/host/Kconfig linux-rpi/drivers/mmc/host/Kconfig config MMC_SDHCI_BCM2835 tristate "SDHCI platform support for the BCM2835 SD/MMC Controller" depends on ARCH_BCM2835 -diff -Nur linux-3.15/drivers/mmc/host/Makefile linux-rpi/drivers/mmc/host/Makefile ---- linux-3.15/drivers/mmc/host/Makefile 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/mmc/host/Makefile 2014-06-11 21:05:20.000000000 +0200 +diff -Nur linux-3.15.4/drivers/mmc/host/Makefile linux-rpi/drivers/mmc/host/Makefile +--- linux-3.15.4/drivers/mmc/host/Makefile 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/mmc/host/Makefile 2014-07-07 10:45:11.000000000 +0200 @@ -16,6 +16,7 @@ obj-$(CONFIG_MMC_SDHCI_S3C) += sdhci-s3c.o obj-$(CONFIG_MMC_SDHCI_SIRF) += sdhci-sirf.o @@ -30335,9 +32105,9 @@ diff -Nur linux-3.15/drivers/mmc/host/Makefile linux-rpi/drivers/mmc/host/Makefi obj-$(CONFIG_MMC_WBSD) += wbsd.o obj-$(CONFIG_MMC_AU1X) += au1xmmc.o obj-$(CONFIG_MMC_OMAP) += omap.o -diff -Nur linux-3.15/drivers/mmc/host/sdhci-bcm2708.c linux-rpi/drivers/mmc/host/sdhci-bcm2708.c ---- linux-3.15/drivers/mmc/host/sdhci-bcm2708.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/mmc/host/sdhci-bcm2708.c 2014-06-11 21:03:34.000000000 +0200 +diff -Nur linux-3.15.4/drivers/mmc/host/sdhci-bcm2708.c linux-rpi/drivers/mmc/host/sdhci-bcm2708.c +--- linux-3.15.4/drivers/mmc/host/sdhci-bcm2708.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/mmc/host/sdhci-bcm2708.c 2014-07-07 10:45:11.000000000 +0200 @@ -0,0 +1,1410 @@ +/* + * sdhci-bcm2708.c Support for SDHCI device on BCM2708 @@ -31749,9 +33519,9 @@ diff -Nur linux-3.15/drivers/mmc/host/sdhci-bcm2708.c linux-rpi/drivers/mmc/host +MODULE_PARM_DESC(extra_messages, "Enable more sdcard warning messages"); + + -diff -Nur linux-3.15/drivers/mmc/host/sdhci.c linux-rpi/drivers/mmc/host/sdhci.c ---- linux-3.15/drivers/mmc/host/sdhci.c 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/mmc/host/sdhci.c 2014-06-11 21:05:20.000000000 +0200 +diff -Nur linux-3.15.4/drivers/mmc/host/sdhci.c linux-rpi/drivers/mmc/host/sdhci.c +--- linux-3.15.4/drivers/mmc/host/sdhci.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/mmc/host/sdhci.c 2014-07-07 10:45:11.000000000 +0200 @@ -28,6 +28,7 @@ #include <linux/mmc/mmc.h> #include <linux/mmc/host.h> @@ -32596,9 +34366,9 @@ diff -Nur linux-3.15/drivers/mmc/host/sdhci.c linux-rpi/drivers/mmc/host/sdhci.c } sdhci_disable_card_detection(host); -diff -Nur linux-3.15/drivers/mmc/host/sdhci.h linux-rpi/drivers/mmc/host/sdhci.h ---- linux-3.15/drivers/mmc/host/sdhci.h 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/mmc/host/sdhci.h 2014-06-11 21:05:20.000000000 +0200 +diff -Nur linux-3.15.4/drivers/mmc/host/sdhci.h linux-rpi/drivers/mmc/host/sdhci.h +--- linux-3.15.4/drivers/mmc/host/sdhci.h 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/mmc/host/sdhci.h 2014-07-07 10:45:11.000000000 +0200 @@ -290,6 +290,18 @@ void (*platform_reset_exit)(struct sdhci_host *host, u8 mask); int (*platform_execute_tuning)(struct sdhci_host *host, u32 opcode); @@ -32657,9 +34427,9 @@ diff -Nur linux-3.15/drivers/mmc/host/sdhci.h linux-rpi/drivers/mmc/host/sdhci.h + + #endif /* __SDHCI_HW_H */ -diff -Nur linux-3.15/drivers/net/usb/smsc95xx.c linux-rpi/drivers/net/usb/smsc95xx.c ---- linux-3.15/drivers/net/usb/smsc95xx.c 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/net/usb/smsc95xx.c 2014-06-11 21:05:20.000000000 +0200 +diff -Nur linux-3.15.4/drivers/net/usb/smsc95xx.c linux-rpi/drivers/net/usb/smsc95xx.c +--- linux-3.15.4/drivers/net/usb/smsc95xx.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/net/usb/smsc95xx.c 2014-07-07 10:45:25.000000000 +0200 @@ -59,6 +59,7 @@ #define SUSPEND_SUSPEND3 (0x08) #define SUSPEND_ALLMODES (SUSPEND_SUSPEND0 | SUSPEND_SUSPEND1 | \ @@ -32739,9 +34509,67 @@ diff -Nur linux-3.15/drivers/net/usb/smsc95xx.c linux-rpi/drivers/net/usb/smsc95 /* try reading mac address from EEPROM */ if (smsc95xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN, dev->net->dev_addr) == 0) { -diff -Nur linux-3.15/drivers/spi/Kconfig linux-rpi/drivers/spi/Kconfig ---- linux-3.15/drivers/spi/Kconfig 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/spi/Kconfig 2014-06-11 21:05:30.000000000 +0200 +diff -Nur linux-3.15.4/drivers/pci/pci.c linux-rpi/drivers/pci/pci.c +--- linux-3.15.4/drivers/pci/pci.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/pci/pci.c 2014-07-07 10:45:26.000000000 +0200 +@@ -4126,7 +4126,7 @@ + u16 cmd; + int rc; + +- WARN_ON((flags & PCI_VGA_STATE_CHANGE_DECODES) && (command_bits & ~(PCI_COMMAND_IO|PCI_COMMAND_MEMORY))); ++ WARN_ON((flags & PCI_VGA_STATE_CHANGE_DECODES) & (command_bits & ~(PCI_COMMAND_IO|PCI_COMMAND_MEMORY))); + + /* ARCH specific VGA enables */ + rc = pci_set_vga_state_arch(dev, decode, command_bits, flags); +diff -Nur linux-3.15.4/drivers/pci/quirks.c linux-rpi/drivers/pci/quirks.c +--- linux-3.15.4/drivers/pci/quirks.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/pci/quirks.c 2014-07-07 10:45:26.000000000 +0200 +@@ -2954,7 +2954,6 @@ + } + DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0102, disable_igfx_irq); + DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq); +-DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq); + + /* + * PCI devices which are on Intel chips can skip the 10ms delay +diff -Nur linux-3.15.4/drivers/scsi/hpsa.c linux-rpi/drivers/scsi/hpsa.c +--- linux-3.15.4/drivers/scsi/hpsa.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/scsi/hpsa.c 2014-07-07 10:45:27.000000000 +0200 +@@ -115,15 +115,9 @@ + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSI, 0x103C, 0x21C3}, + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSI, 0x103C, 0x21C4}, + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSI, 0x103C, 0x21C5}, +- {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSI, 0x103C, 0x21C6}, + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSI, 0x103C, 0x21C7}, + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSI, 0x103C, 0x21C8}, + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSI, 0x103C, 0x21C9}, +- {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSI, 0x103C, 0x21CA}, +- {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSI, 0x103C, 0x21CB}, +- {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSI, 0x103C, 0x21CC}, +- {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSI, 0x103C, 0x21CD}, +- {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSI, 0x103C, 0x21CE}, + {PCI_VENDOR_ID_HP_3PAR, 0x0075, 0x1590, 0x0076}, + {PCI_VENDOR_ID_HP_3PAR, 0x0075, 0x1590, 0x0087}, + {PCI_VENDOR_ID_HP_3PAR, 0x0075, 0x1590, 0x007D}, +@@ -171,15 +165,9 @@ + {0x21C3103C, "Smart Array", &SA5_access}, + {0x21C4103C, "Smart Array", &SA5_access}, + {0x21C5103C, "Smart Array", &SA5_access}, +- {0x21C6103C, "Smart Array", &SA5_access}, + {0x21C7103C, "Smart Array", &SA5_access}, + {0x21C8103C, "Smart Array", &SA5_access}, + {0x21C9103C, "Smart Array", &SA5_access}, +- {0x21CA103C, "Smart Array", &SA5_access}, +- {0x21CB103C, "Smart Array", &SA5_access}, +- {0x21CC103C, "Smart Array", &SA5_access}, +- {0x21CD103C, "Smart Array", &SA5_access}, +- {0x21CE103C, "Smart Array", &SA5_access}, + {0x00761590, "HP Storage P1224 Array Controller", &SA5_access}, + {0x00871590, "HP Storage P1224e Array Controller", &SA5_access}, + {0x007D1590, "HP Storage P1228 Array Controller", &SA5_access}, +diff -Nur linux-3.15.4/drivers/spi/Kconfig linux-rpi/drivers/spi/Kconfig +--- linux-3.15.4/drivers/spi/Kconfig 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/spi/Kconfig 2014-07-07 10:45:28.000000000 +0200 @@ -85,6 +85,14 @@ is for the regular SPI controller. Slave mode operation is not also not supported. @@ -32757,9 +34585,9 @@ diff -Nur linux-3.15/drivers/spi/Kconfig linux-rpi/drivers/spi/Kconfig config SPI_BFIN5XX tristate "SPI controller driver for ADI Blackfin5xx" depends on BLACKFIN && !BF60x -diff -Nur linux-3.15/drivers/spi/Makefile linux-rpi/drivers/spi/Makefile ---- linux-3.15/drivers/spi/Makefile 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/spi/Makefile 2014-06-11 21:05:30.000000000 +0200 +diff -Nur linux-3.15.4/drivers/spi/Makefile linux-rpi/drivers/spi/Makefile +--- linux-3.15.4/drivers/spi/Makefile 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/spi/Makefile 2014-07-07 10:45:28.000000000 +0200 @@ -19,6 +19,7 @@ obj-$(CONFIG_SPI_BCM63XX_HSSPI) += spi-bcm63xx-hsspi.o obj-$(CONFIG_SPI_BFIN5XX) += spi-bfin5xx.o @@ -32768,9 +34596,9 @@ diff -Nur linux-3.15/drivers/spi/Makefile linux-rpi/drivers/spi/Makefile obj-$(CONFIG_SPI_BFIN_SPORT) += spi-bfin-sport.o obj-$(CONFIG_SPI_BITBANG) += spi-bitbang.o obj-$(CONFIG_SPI_BUTTERFLY) += spi-butterfly.o -diff -Nur linux-3.15/drivers/spi/spi-bcm2708.c linux-rpi/drivers/spi/spi-bcm2708.c ---- linux-3.15/drivers/spi/spi-bcm2708.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/spi/spi-bcm2708.c 2014-06-11 21:05:30.000000000 +0200 +diff -Nur linux-3.15.4/drivers/spi/spi-bcm2708.c linux-rpi/drivers/spi/spi-bcm2708.c +--- linux-3.15.4/drivers/spi/spi-bcm2708.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/spi/spi-bcm2708.c 2014-07-07 10:45:28.000000000 +0200 @@ -0,0 +1,626 @@ +/* + * Driver for Broadcom BCM2708 SPI Controllers @@ -33398,9 +35226,9 @@ diff -Nur linux-3.15/drivers/spi/spi-bcm2708.c linux-rpi/drivers/spi/spi-bcm2708 +MODULE_AUTHOR("Chris Boot <bootc@bootc.net>"); +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:" DRV_NAME); -diff -Nur linux-3.15/drivers/staging/media/lirc/Kconfig linux-rpi/drivers/staging/media/lirc/Kconfig ---- linux-3.15/drivers/staging/media/lirc/Kconfig 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/staging/media/lirc/Kconfig 2014-06-11 21:03:39.000000000 +0200 +diff -Nur linux-3.15.4/drivers/staging/media/lirc/Kconfig linux-rpi/drivers/staging/media/lirc/Kconfig +--- linux-3.15.4/drivers/staging/media/lirc/Kconfig 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/staging/media/lirc/Kconfig 2014-04-13 17:33:09.000000000 +0200 @@ -38,6 +38,12 @@ help Driver for Homebrew Parallel Port Receivers @@ -33414,9 +35242,9 @@ diff -Nur linux-3.15/drivers/staging/media/lirc/Kconfig linux-rpi/drivers/stagin config LIRC_SASEM tristate "Sasem USB IR Remote" depends on LIRC && USB -diff -Nur linux-3.15/drivers/staging/media/lirc/lirc_rpi.c linux-rpi/drivers/staging/media/lirc/lirc_rpi.c ---- linux-3.15/drivers/staging/media/lirc/lirc_rpi.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/staging/media/lirc/lirc_rpi.c 2014-06-11 21:05:30.000000000 +0200 +diff -Nur linux-3.15.4/drivers/staging/media/lirc/lirc_rpi.c linux-rpi/drivers/staging/media/lirc/lirc_rpi.c +--- linux-3.15.4/drivers/staging/media/lirc/lirc_rpi.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/staging/media/lirc/lirc_rpi.c 2014-06-29 11:34:17.000000000 +0200 @@ -0,0 +1,695 @@ +/* + * lirc_rpi.c @@ -34113,9 +35941,9 @@ diff -Nur linux-3.15/drivers/staging/media/lirc/lirc_rpi.c linux-rpi/drivers/sta + +module_param(debug, bool, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(debug, "Enable debugging messages"); -diff -Nur linux-3.15/drivers/staging/media/lirc/Makefile linux-rpi/drivers/staging/media/lirc/Makefile ---- linux-3.15/drivers/staging/media/lirc/Makefile 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/staging/media/lirc/Makefile 2014-06-11 21:03:39.000000000 +0200 +diff -Nur linux-3.15.4/drivers/staging/media/lirc/Makefile linux-rpi/drivers/staging/media/lirc/Makefile +--- linux-3.15.4/drivers/staging/media/lirc/Makefile 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/staging/media/lirc/Makefile 2014-04-13 17:33:09.000000000 +0200 @@ -7,6 +7,7 @@ obj-$(CONFIG_LIRC_IGORPLUGUSB) += lirc_igorplugusb.o obj-$(CONFIG_LIRC_IMON) += lirc_imon.o @@ -34124,9 +35952,88 @@ diff -Nur linux-3.15/drivers/staging/media/lirc/Makefile linux-rpi/drivers/stagi obj-$(CONFIG_LIRC_SASEM) += lirc_sasem.o obj-$(CONFIG_LIRC_SERIAL) += lirc_serial.o obj-$(CONFIG_LIRC_SIR) += lirc_sir.o -diff -Nur linux-3.15/drivers/thermal/bcm2835-thermal.c linux-rpi/drivers/thermal/bcm2835-thermal.c ---- linux-3.15/drivers/thermal/bcm2835-thermal.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/thermal/bcm2835-thermal.c 2014-06-11 21:03:40.000000000 +0200 +diff -Nur linux-3.15.4/drivers/target/iscsi/iscsi_target.c linux-rpi/drivers/target/iscsi/iscsi_target.c +--- linux-3.15.4/drivers/target/iscsi/iscsi_target.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/target/iscsi/iscsi_target.c 2014-07-07 10:45:41.000000000 +0200 +@@ -1309,7 +1309,7 @@ + if (cmd->data_direction != DMA_TO_DEVICE) { + pr_err("Command ITT: 0x%08x received DataOUT for a" + " NON-WRITE command.\n", cmd->init_task_tag); +- return iscsit_dump_data_payload(conn, payload_length, 1); ++ return iscsit_reject_cmd(cmd, ISCSI_REASON_PROTOCOL_ERROR, buf); + } + se_cmd = &cmd->se_cmd; + iscsit_mod_dataout_timer(cmd); +diff -Nur linux-3.15.4/drivers/target/iscsi/iscsi_target_login.c linux-rpi/drivers/target/iscsi/iscsi_target_login.c +--- linux-3.15.4/drivers/target/iscsi/iscsi_target_login.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/target/iscsi/iscsi_target_login.c 2014-07-07 10:45:41.000000000 +0200 +@@ -1216,7 +1216,7 @@ + static int __iscsi_target_login_thread(struct iscsi_np *np) + { + u8 *buffer, zero_tsih = 0; +- int ret = 0, rc; ++ int ret = 0, rc, stop; + struct iscsi_conn *conn = NULL; + struct iscsi_login *login; + struct iscsi_portal_group *tpg = NULL; +@@ -1230,9 +1230,6 @@ + if (np->np_thread_state == ISCSI_NP_THREAD_RESET) { + np->np_thread_state = ISCSI_NP_THREAD_ACTIVE; + complete(&np->np_restart_comp); +- } else if (np->np_thread_state == ISCSI_NP_THREAD_SHUTDOWN) { +- spin_unlock_bh(&np->np_thread_lock); +- goto exit; + } else { + np->np_thread_state = ISCSI_NP_THREAD_ACTIVE; + } +@@ -1425,8 +1422,10 @@ + } + + out: +- return 1; +- ++ stop = kthread_should_stop(); ++ /* Wait for another socket.. */ ++ if (!stop) ++ return 1; + exit: + iscsi_stop_login_thread_timer(np); + spin_lock_bh(&np->np_thread_lock); +@@ -1443,7 +1442,7 @@ + + allow_signal(SIGINT); + +- while (1) { ++ while (!kthread_should_stop()) { + ret = __iscsi_target_login_thread(np); + /* + * We break and exit here unless another sock_accept() call +diff -Nur linux-3.15.4/drivers/target/iscsi/iscsi_target_util.c linux-rpi/drivers/target/iscsi/iscsi_target_util.c +--- linux-3.15.4/drivers/target/iscsi/iscsi_target_util.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/target/iscsi/iscsi_target_util.c 2014-07-07 10:45:41.000000000 +0200 +@@ -1295,8 +1295,6 @@ + login->login_failed = 1; + iscsit_collect_login_stats(conn, status_class, status_detail); + +- memset(&login->rsp[0], 0, ISCSI_HDR_LEN); +- + hdr = (struct iscsi_login_rsp *)&login->rsp[0]; + hdr->opcode = ISCSI_OP_LOGIN_RSP; + hdr->status_class = status_class; +diff -Nur linux-3.15.4/drivers/target/target_core_device.c linux-rpi/drivers/target/target_core_device.c +--- linux-3.15.4/drivers/target/target_core_device.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/target/target_core_device.c 2014-07-07 10:45:41.000000000 +0200 +@@ -616,7 +616,6 @@ + dev->export_count--; + spin_unlock(&hba->device_lock); + +- lun->lun_sep = NULL; + lun->lun_se_dev = NULL; + } + +diff -Nur linux-3.15.4/drivers/thermal/bcm2835-thermal.c linux-rpi/drivers/thermal/bcm2835-thermal.c +--- linux-3.15.4/drivers/thermal/bcm2835-thermal.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/thermal/bcm2835-thermal.c 2014-04-13 17:33:10.000000000 +0200 @@ -0,0 +1,184 @@ +/***************************************************************************** +* Copyright 2011 Broadcom Corporation. All rights reserved. @@ -34312,9 +36219,9 @@ diff -Nur linux-3.15/drivers/thermal/bcm2835-thermal.c linux-rpi/drivers/thermal +MODULE_DESCRIPTION("Thermal driver for bcm2835 chip"); + +module_platform_driver(bcm2835_thermal_driver); -diff -Nur linux-3.15/drivers/thermal/Kconfig linux-rpi/drivers/thermal/Kconfig ---- linux-3.15/drivers/thermal/Kconfig 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/thermal/Kconfig 2014-06-11 21:05:31.000000000 +0200 +diff -Nur linux-3.15.4/drivers/thermal/Kconfig linux-rpi/drivers/thermal/Kconfig +--- linux-3.15.4/drivers/thermal/Kconfig 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/thermal/Kconfig 2014-07-07 10:45:41.000000000 +0200 @@ -196,6 +196,12 @@ enforce idle time which results in more package C-state residency. The user interface is exposed via generic thermal framework. @@ -34328,9 +36235,9 @@ diff -Nur linux-3.15/drivers/thermal/Kconfig linux-rpi/drivers/thermal/Kconfig config X86_PKG_TEMP_THERMAL tristate "X86 package temperature thermal driver" depends on X86_THERMAL_VECTOR -diff -Nur linux-3.15/drivers/thermal/Makefile linux-rpi/drivers/thermal/Makefile ---- linux-3.15/drivers/thermal/Makefile 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/thermal/Makefile 2014-06-11 21:05:31.000000000 +0200 +diff -Nur linux-3.15.4/drivers/thermal/Makefile linux-rpi/drivers/thermal/Makefile +--- linux-3.15.4/drivers/thermal/Makefile 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/thermal/Makefile 2014-07-07 10:45:41.000000000 +0200 @@ -28,6 +28,7 @@ obj-$(CONFIG_IMX_THERMAL) += imx_thermal.o obj-$(CONFIG_DB8500_CPUFREQ_COOLING) += db8500_cpufreq_cooling.o @@ -34339,9 +36246,9 @@ diff -Nur linux-3.15/drivers/thermal/Makefile linux-rpi/drivers/thermal/Makefile obj-$(CONFIG_X86_PKG_TEMP_THERMAL) += x86_pkg_temp_thermal.o obj-$(CONFIG_TI_SOC_THERMAL) += ti-soc-thermal/ obj-$(CONFIG_ACPI_INT3403_THERMAL) += int3403_thermal.o -diff -Nur linux-3.15/drivers/tty/serial/amba-pl011.c linux-rpi/drivers/tty/serial/amba-pl011.c ---- linux-3.15/drivers/tty/serial/amba-pl011.c 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/tty/serial/amba-pl011.c 2014-06-11 21:05:32.000000000 +0200 +diff -Nur linux-3.15.4/drivers/tty/serial/amba-pl011.c linux-rpi/drivers/tty/serial/amba-pl011.c +--- linux-3.15.4/drivers/tty/serial/amba-pl011.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/tty/serial/amba-pl011.c 2014-07-07 10:45:42.000000000 +0200 @@ -84,7 +84,7 @@ static unsigned int get_fifosize_arm(struct amba_device *dev) @@ -34351,9 +36258,9 @@ diff -Nur linux-3.15/drivers/tty/serial/amba-pl011.c linux-rpi/drivers/tty/seria } static struct vendor_data vendor_arm = { -diff -Nur linux-3.15/drivers/usb/core/generic.c linux-rpi/drivers/usb/core/generic.c ---- linux-3.15/drivers/usb/core/generic.c 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/usb/core/generic.c 2014-06-11 21:05:32.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/core/generic.c linux-rpi/drivers/usb/core/generic.c +--- linux-3.15.4/drivers/usb/core/generic.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/usb/core/generic.c 2014-07-07 10:45:42.000000000 +0200 @@ -152,6 +152,7 @@ dev_warn(&udev->dev, "no configuration chosen from %d choice%s\n", @@ -34362,9 +36269,9 @@ diff -Nur linux-3.15/drivers/usb/core/generic.c linux-rpi/drivers/usb/core/gener } return i; } -diff -Nur linux-3.15/drivers/usb/core/message.c linux-rpi/drivers/usb/core/message.c ---- linux-3.15/drivers/usb/core/message.c 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/usb/core/message.c 2014-06-11 21:05:32.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/core/message.c linux-rpi/drivers/usb/core/message.c +--- linux-3.15.4/drivers/usb/core/message.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/usb/core/message.c 2014-07-07 10:45:42.000000000 +0200 @@ -1891,6 +1891,85 @@ if (cp->string == NULL && !(dev->quirks & USB_QUIRK_CONFIG_INTF_STRINGS)) @@ -34451,9 +36358,9 @@ diff -Nur linux-3.15/drivers/usb/core/message.c linux-rpi/drivers/usb/core/messa /* Now that the interfaces are installed, re-enable LPM. */ usb_unlocked_enable_lpm(dev); -diff -Nur linux-3.15/drivers/usb/core/otg_whitelist.h linux-rpi/drivers/usb/core/otg_whitelist.h ---- linux-3.15/drivers/usb/core/otg_whitelist.h 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/usb/core/otg_whitelist.h 2014-06-11 21:03:42.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/core/otg_whitelist.h linux-rpi/drivers/usb/core/otg_whitelist.h +--- linux-3.15.4/drivers/usb/core/otg_whitelist.h 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/usb/core/otg_whitelist.h 2014-07-07 10:45:42.000000000 +0200 @@ -19,33 +19,82 @@ static struct usb_device_id whitelist_table [] = { @@ -34669,9 +36576,9 @@ diff -Nur linux-3.15/drivers/usb/core/otg_whitelist.h linux-rpi/drivers/usb/core #endif } -diff -Nur linux-3.15/drivers/usb/gadget/file_storage.c linux-rpi/drivers/usb/gadget/file_storage.c ---- linux-3.15/drivers/usb/gadget/file_storage.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/gadget/file_storage.c 2014-06-11 21:03:42.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/gadget/file_storage.c linux-rpi/drivers/usb/gadget/file_storage.c +--- linux-3.15.4/drivers/usb/gadget/file_storage.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/gadget/file_storage.c 2014-04-13 17:33:11.000000000 +0200 @@ -0,0 +1,3676 @@ +/* + * file_storage.c -- File-backed USB Storage Gadget, for USB development @@ -38349,9 +40256,9 @@ diff -Nur linux-3.15/drivers/usb/gadget/file_storage.c linux-rpi/drivers/usb/gad + kref_put(&fsg->ref, fsg_release); +} +module_exit(fsg_cleanup); -diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/changes.txt linux-rpi/drivers/usb/host/dwc_common_port/changes.txt ---- linux-3.15/drivers/usb/host/dwc_common_port/changes.txt 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_common_port/changes.txt 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_common_port/changes.txt linux-rpi/drivers/usb/host/dwc_common_port/changes.txt +--- linux-3.15.4/drivers/usb/host/dwc_common_port/changes.txt 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_common_port/changes.txt 2014-04-13 17:33:11.000000000 +0200 @@ -0,0 +1,174 @@ + +dwc_read_reg32() and friends now take an additional parameter, a pointer to an @@ -38527,9 +40434,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/changes.txt linux-rpi/driv +A DWC_LIBMODULE #define has also been added. If this is not defined, then the +module code in dwc_common_linux.c is not compiled in. This allows linking the +library code directly into a driver module, instead of as a standalone module. -diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/doc/doxygen.cfg linux-rpi/drivers/usb/host/dwc_common_port/doc/doxygen.cfg ---- linux-3.15/drivers/usb/host/dwc_common_port/doc/doxygen.cfg 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_common_port/doc/doxygen.cfg 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_common_port/doc/doxygen.cfg linux-rpi/drivers/usb/host/dwc_common_port/doc/doxygen.cfg +--- linux-3.15.4/drivers/usb/host/dwc_common_port/doc/doxygen.cfg 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_common_port/doc/doxygen.cfg 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,270 @@ +# Doxyfile 1.4.5 + @@ -38801,9 +40708,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/doc/doxygen.cfg linux-rpi/ +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = NO -diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/dwc_cc.c linux-rpi/drivers/usb/host/dwc_common_port/dwc_cc.c ---- linux-3.15/drivers/usb/host/dwc_common_port/dwc_cc.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_cc.c 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_common_port/dwc_cc.c linux-rpi/drivers/usb/host/dwc_common_port/dwc_cc.c +--- linux-3.15.4/drivers/usb/host/dwc_common_port/dwc_cc.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_cc.c 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,532 @@ +/* ========================================================================= + * $File: //dwh/usb_iip/dev/software/dwc_common_port_2/dwc_cc.c $ @@ -39337,9 +41244,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/dwc_cc.c linux-rpi/drivers +} + +#endif /* DWC_CCLIB */ -diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/dwc_cc.h linux-rpi/drivers/usb/host/dwc_common_port/dwc_cc.h ---- linux-3.15/drivers/usb/host/dwc_common_port/dwc_cc.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_cc.h 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_common_port/dwc_cc.h linux-rpi/drivers/usb/host/dwc_common_port/dwc_cc.h +--- linux-3.15.4/drivers/usb/host/dwc_common_port/dwc_cc.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_cc.h 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,224 @@ +/* ========================================================================= + * $File: //dwh/usb_iip/dev/software/dwc_common_port_2/dwc_cc.h $ @@ -39565,9 +41472,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/dwc_cc.h linux-rpi/drivers +#endif + +#endif /* _DWC_CC_H_ */ -diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c linux-rpi/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c ---- linux-3.15/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c linux-rpi/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c +--- linux-3.15.4/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c 2014-04-13 17:33:11.000000000 +0200 @@ -0,0 +1,1308 @@ +#include "dwc_os.h" +#include "dwc_list.h" @@ -40877,9 +42784,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c linux-rp +{ + return wq->pending; +} -diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/dwc_common_linux.c linux-rpi/drivers/usb/host/dwc_common_port/dwc_common_linux.c ---- linux-3.15/drivers/usb/host/dwc_common_port/dwc_common_linux.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_common_linux.c 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_common_port/dwc_common_linux.c linux-rpi/drivers/usb/host/dwc_common_port/dwc_common_linux.c +--- linux-3.15.4/drivers/usb/host/dwc_common_port/dwc_common_linux.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_common_linux.c 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,1432 @@ +#include <linux/kernel.h> +#include <linux/init.h> @@ -42313,9 +44220,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/dwc_common_linux.c linux-r +MODULE_LICENSE ("GPL"); + +#endif /* DWC_LIBMODULE */ -diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c linux-rpi/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c ---- linux-3.15/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c linux-rpi/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c +--- linux-3.15.4/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c 2014-04-13 17:33:11.000000000 +0200 @@ -0,0 +1,1275 @@ +#include "dwc_os.h" +#include "dwc_list.h" @@ -43592,9 +45499,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c linux-rp +{ + return wq->pending; +} -diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/dwc_crypto.c linux-rpi/drivers/usb/host/dwc_common_port/dwc_crypto.c ---- linux-3.15/drivers/usb/host/dwc_common_port/dwc_crypto.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_crypto.c 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_common_port/dwc_crypto.c linux-rpi/drivers/usb/host/dwc_common_port/dwc_crypto.c +--- linux-3.15.4/drivers/usb/host/dwc_common_port/dwc_crypto.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_crypto.c 2014-04-13 17:33:11.000000000 +0200 @@ -0,0 +1,308 @@ +/* ========================================================================= + * $File: //dwh/usb_iip/dev/software/dwc_common_port_2/dwc_crypto.c $ @@ -43904,9 +45811,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/dwc_crypto.c linux-rpi/dri +} + +#endif /* DWC_CRYPTOLIB */ -diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/dwc_crypto.h linux-rpi/drivers/usb/host/dwc_common_port/dwc_crypto.h ---- linux-3.15/drivers/usb/host/dwc_common_port/dwc_crypto.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_crypto.h 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_common_port/dwc_crypto.h linux-rpi/drivers/usb/host/dwc_common_port/dwc_crypto.h +--- linux-3.15.4/drivers/usb/host/dwc_common_port/dwc_crypto.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_crypto.h 2014-04-13 17:33:11.000000000 +0200 @@ -0,0 +1,111 @@ +/* ========================================================================= + * $File: //dwh/usb_iip/dev/software/dwc_common_port_2/dwc_crypto.h $ @@ -44019,9 +45926,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/dwc_crypto.h linux-rpi/dri +#endif + +#endif /* _DWC_CRYPTO_H_ */ -diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/dwc_dh.c linux-rpi/drivers/usb/host/dwc_common_port/dwc_dh.c ---- linux-3.15/drivers/usb/host/dwc_common_port/dwc_dh.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_dh.c 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_common_port/dwc_dh.c linux-rpi/drivers/usb/host/dwc_common_port/dwc_dh.c +--- linux-3.15.4/drivers/usb/host/dwc_common_port/dwc_dh.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_dh.c 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,291 @@ +/* ========================================================================= + * $File: //dwh/usb_iip/dev/software/dwc_common_port_2/dwc_dh.c $ @@ -44314,9 +46221,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/dwc_dh.c linux-rpi/drivers +#endif /* !CONFIG_MACH_IPMATE */ + +#endif /* DWC_CRYPTOLIB */ -diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/dwc_dh.h linux-rpi/drivers/usb/host/dwc_common_port/dwc_dh.h ---- linux-3.15/drivers/usb/host/dwc_common_port/dwc_dh.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_dh.h 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_common_port/dwc_dh.h linux-rpi/drivers/usb/host/dwc_common_port/dwc_dh.h +--- linux-3.15.4/drivers/usb/host/dwc_common_port/dwc_dh.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_dh.h 2014-04-13 17:33:11.000000000 +0200 @@ -0,0 +1,106 @@ +/* ========================================================================= + * $File: //dwh/usb_iip/dev/software/dwc_common_port_2/dwc_dh.h $ @@ -44424,9 +46331,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/dwc_dh.h linux-rpi/drivers +#endif + +#endif /* _DWC_DH_H_ */ -diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/dwc_list.h linux-rpi/drivers/usb/host/dwc_common_port/dwc_list.h ---- linux-3.15/drivers/usb/host/dwc_common_port/dwc_list.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_list.h 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_common_port/dwc_list.h linux-rpi/drivers/usb/host/dwc_common_port/dwc_list.h +--- linux-3.15.4/drivers/usb/host/dwc_common_port/dwc_list.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_list.h 2014-04-13 17:33:11.000000000 +0200 @@ -0,0 +1,594 @@ +/* $OpenBSD: queue.h,v 1.26 2004/05/04 16:59:32 grange Exp $ */ +/* $NetBSD: queue.h,v 1.11 1996/05/16 05:17:14 mycroft Exp $ */ @@ -45022,9 +46929,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/dwc_list.h linux-rpi/drive +#endif + +#endif /* _DWC_LIST_H_ */ -diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/dwc_mem.c linux-rpi/drivers/usb/host/dwc_common_port/dwc_mem.c ---- linux-3.15/drivers/usb/host/dwc_common_port/dwc_mem.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_mem.c 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_common_port/dwc_mem.c linux-rpi/drivers/usb/host/dwc_common_port/dwc_mem.c +--- linux-3.15.4/drivers/usb/host/dwc_common_port/dwc_mem.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_mem.c 2014-04-13 17:33:11.000000000 +0200 @@ -0,0 +1,245 @@ +/* Memory Debugging */ +#ifdef DWC_DEBUG_MEMORY @@ -45271,9 +47178,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/dwc_mem.c linux-rpi/driver +} + +#endif /* DWC_DEBUG_MEMORY */ -diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/dwc_modpow.c linux-rpi/drivers/usb/host/dwc_common_port/dwc_modpow.c ---- linux-3.15/drivers/usb/host/dwc_common_port/dwc_modpow.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_modpow.c 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_common_port/dwc_modpow.c linux-rpi/drivers/usb/host/dwc_common_port/dwc_modpow.c +--- linux-3.15.4/drivers/usb/host/dwc_common_port/dwc_modpow.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_modpow.c 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,636 @@ +/* Bignum routines adapted from PUTTY sources. PuTTY copyright notice follows. + * @@ -45911,9 +47818,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/dwc_modpow.c linux-rpi/dri +#endif /* CONFIG_MACH_IPMATE */ + +#endif /*DWC_CRYPTOLIB */ -diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/dwc_modpow.h linux-rpi/drivers/usb/host/dwc_common_port/dwc_modpow.h ---- linux-3.15/drivers/usb/host/dwc_common_port/dwc_modpow.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_modpow.h 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_common_port/dwc_modpow.h linux-rpi/drivers/usb/host/dwc_common_port/dwc_modpow.h +--- linux-3.15.4/drivers/usb/host/dwc_common_port/dwc_modpow.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_modpow.h 2014-04-13 17:33:11.000000000 +0200 @@ -0,0 +1,34 @@ +/* + * dwc_modpow.h @@ -45949,9 +47856,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/dwc_modpow.h linux-rpi/dri +#endif + +#endif /* _LINUX_BIGNUM_H */ -diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/dwc_notifier.c linux-rpi/drivers/usb/host/dwc_common_port/dwc_notifier.c ---- linux-3.15/drivers/usb/host/dwc_common_port/dwc_notifier.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_notifier.c 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_common_port/dwc_notifier.c linux-rpi/drivers/usb/host/dwc_common_port/dwc_notifier.c +--- linux-3.15.4/drivers/usb/host/dwc_common_port/dwc_notifier.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_notifier.c 2014-04-13 17:33:11.000000000 +0200 @@ -0,0 +1,319 @@ +#ifdef DWC_NOTIFYLIB + @@ -46272,9 +48179,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/dwc_notifier.c linux-rpi/d +} + +#endif /* DWC_NOTIFYLIB */ -diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/dwc_notifier.h linux-rpi/drivers/usb/host/dwc_common_port/dwc_notifier.h ---- linux-3.15/drivers/usb/host/dwc_common_port/dwc_notifier.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_notifier.h 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_common_port/dwc_notifier.h linux-rpi/drivers/usb/host/dwc_common_port/dwc_notifier.h +--- linux-3.15.4/drivers/usb/host/dwc_common_port/dwc_notifier.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_notifier.h 2014-04-13 17:33:11.000000000 +0200 @@ -0,0 +1,122 @@ + +#ifndef __DWC_NOTIFIER_H__ @@ -46398,9 +48305,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/dwc_notifier.h linux-rpi/d +#endif + +#endif /* __DWC_NOTIFIER_H__ */ -diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/dwc_os.h linux-rpi/drivers/usb/host/dwc_common_port/dwc_os.h ---- linux-3.15/drivers/usb/host/dwc_common_port/dwc_os.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_os.h 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_common_port/dwc_os.h linux-rpi/drivers/usb/host/dwc_common_port/dwc_os.h +--- linux-3.15.4/drivers/usb/host/dwc_common_port/dwc_os.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_os.h 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,1262 @@ +/* ========================================================================= + * $File: //dwh/usb_iip/dev/software/dwc_common_port_2/dwc_os.h $ @@ -47664,9 +49571,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/dwc_os.h linux-rpi/drivers +#endif + +#endif /* _DWC_OS_H_ */ -diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/Makefile linux-rpi/drivers/usb/host/dwc_common_port/Makefile ---- linux-3.15/drivers/usb/host/dwc_common_port/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_common_port/Makefile 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_common_port/Makefile linux-rpi/drivers/usb/host/dwc_common_port/Makefile +--- linux-3.15.4/drivers/usb/host/dwc_common_port/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_common_port/Makefile 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,58 @@ +# +# Makefile for DWC_common library @@ -47726,9 +49633,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/Makefile linux-rpi/drivers + +clean: + rm -rf *.o *.ko .*.cmd *.mod.c .*.o.d .*.o.tmp modules.order Module.markers Module.symvers .tmp_versions/ -diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/Makefile.fbsd linux-rpi/drivers/usb/host/dwc_common_port/Makefile.fbsd ---- linux-3.15/drivers/usb/host/dwc_common_port/Makefile.fbsd 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_common_port/Makefile.fbsd 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_common_port/Makefile.fbsd linux-rpi/drivers/usb/host/dwc_common_port/Makefile.fbsd +--- linux-3.15.4/drivers/usb/host/dwc_common_port/Makefile.fbsd 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_common_port/Makefile.fbsd 2014-04-13 17:33:11.000000000 +0200 @@ -0,0 +1,17 @@ +CFLAGS += -I/sys/i386/compile/GENERIC -I/sys/i386/include -I/usr/include +CFLAGS += -DDWC_FREEBSD @@ -47747,9 +49654,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/Makefile.fbsd linux-rpi/dr + dwc_common_fbsd.c dwc_mem.c + +.include <bsd.kmod.mk> -diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/Makefile.linux linux-rpi/drivers/usb/host/dwc_common_port/Makefile.linux ---- linux-3.15/drivers/usb/host/dwc_common_port/Makefile.linux 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_common_port/Makefile.linux 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_common_port/Makefile.linux linux-rpi/drivers/usb/host/dwc_common_port/Makefile.linux +--- linux-3.15.4/drivers/usb/host/dwc_common_port/Makefile.linux 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_common_port/Makefile.linux 2014-04-13 17:33:11.000000000 +0200 @@ -0,0 +1,49 @@ +# +# Makefile for DWC_common library @@ -47800,9 +49707,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/Makefile.linux linux-rpi/d + +clean: + rm -rf *.o *.ko .*.cmd *.mod.c .*.o.d .*.o.tmp modules.order Module.markers Module.symvers .tmp_versions/ -diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/usb.h linux-rpi/drivers/usb/host/dwc_common_port/usb.h ---- linux-3.15/drivers/usb/host/dwc_common_port/usb.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_common_port/usb.h 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_common_port/usb.h linux-rpi/drivers/usb/host/dwc_common_port/usb.h +--- linux-3.15.4/drivers/usb/host/dwc_common_port/usb.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_common_port/usb.h 2014-04-13 17:33:11.000000000 +0200 @@ -0,0 +1,946 @@ +/* + * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -48750,9 +50657,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_common_port/usb.h linux-rpi/drivers/us +#endif + +#endif /* _USB_H_ */ -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/doc/doxygen.cfg linux-rpi/drivers/usb/host/dwc_otg/doc/doxygen.cfg ---- linux-3.15/drivers/usb/host/dwc_otg/doc/doxygen.cfg 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/doc/doxygen.cfg 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/doc/doxygen.cfg linux-rpi/drivers/usb/host/dwc_otg/doc/doxygen.cfg +--- linux-3.15.4/drivers/usb/host/dwc_otg/doc/doxygen.cfg 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/doc/doxygen.cfg 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,224 @@ +# Doxyfile 1.3.9.1 + @@ -48978,9 +50885,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/doc/doxygen.cfg linux-rpi/drivers/ +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = NO -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dummy_audio.c linux-rpi/drivers/usb/host/dwc_otg/dummy_audio.c ---- linux-3.15/drivers/usb/host/dwc_otg/dummy_audio.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/dummy_audio.c 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/dummy_audio.c linux-rpi/drivers/usb/host/dwc_otg/dummy_audio.c +--- linux-3.15.4/drivers/usb/host/dwc_otg/dummy_audio.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/dummy_audio.c 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,1575 @@ +/* + * zero.c -- Gadget Zero, for USB development @@ -50557,9 +52464,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dummy_audio.c linux-rpi/drivers/us + remove_proc_entry("isoc_test", NULL); +} +module_exit (cleanup); -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_cfi_common.h linux-rpi/drivers/usb/host/dwc_otg/dwc_cfi_common.h ---- linux-3.15/drivers/usb/host/dwc_otg/dwc_cfi_common.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/dwc_cfi_common.h 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/dwc_cfi_common.h linux-rpi/drivers/usb/host/dwc_otg/dwc_cfi_common.h +--- linux-3.15.4/drivers/usb/host/dwc_otg/dwc_cfi_common.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_cfi_common.h 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,142 @@ +/* ========================================================================== + * Synopsys HS OTG Linux Software Driver and documentation (hereinafter, @@ -50703,9 +52610,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_cfi_common.h linux-rpi/drivers +typedef struct cfi_string cfi_string_t; + +#endif -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_adp.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_adp.c ---- linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_adp.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_adp.c 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_adp.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_adp.c +--- linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_adp.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_adp.c 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,854 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_adp.c $ @@ -51561,9 +53468,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_adp.c linux-rpi/drivers/us +#endif + return 1; +} -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_adp.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_adp.h ---- linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_adp.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_adp.h 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_adp.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_adp.h +--- linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_adp.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_adp.h 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,80 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_adp.h $ @@ -51645,9 +53552,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_adp.h linux-rpi/drivers/us +extern int32_t dwc_otg_adp_handle_srp_intr(dwc_otg_core_if_t * core_if); + +#endif //__DWC_OTG_ADP_H__ -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_attr.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_attr.c ---- linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_attr.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_attr.c 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_attr.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_attr.c +--- linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_attr.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_attr.c 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,1210 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_attr.c $ @@ -52859,9 +54766,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_attr.c linux-rpi/drivers/u + device_remove_file(&dev->dev, &dev_attr_sleep_status); +#endif +} -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_attr.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_attr.h ---- linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_attr.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_attr.h 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_attr.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_attr.h +--- linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_attr.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_attr.h 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,89 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_attr.h $ @@ -52952,9 +54859,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_attr.h linux-rpi/drivers/u +#endif + ); +#endif -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_cfi.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_cfi.c ---- linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_cfi.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_cfi.c 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_cfi.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_cfi.c +--- linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_cfi.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_cfi.c 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,1876 @@ +/* ========================================================================== + * Synopsys HS OTG Linux Software Driver and documentation (hereinafter, @@ -54832,9 +56739,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_cfi.c linux-rpi/drivers/us +} + +#endif //DWC_UTE_CFI -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_cfi.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_cfi.h ---- linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_cfi.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_cfi.h 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_cfi.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_cfi.h +--- linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_cfi.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_cfi.h 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,320 @@ +/* ========================================================================== + * Synopsys HS OTG Linux Software Driver and documentation (hereinafter, @@ -55156,9 +57063,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_cfi.h linux-rpi/drivers/us +int cfi_setup(struct dwc_otg_pcd *pcd, struct cfi_usb_ctrlrequest *ctrl); + +#endif /* (__DWC_OTG_CFI_H__) */ -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_cil.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_cil.c ---- linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_cil.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_cil.c 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_cil.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_cil.c +--- linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_cil.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_cil.c 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,7151 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_cil.c $ @@ -62311,9 +64218,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_cil.c linux-rpi/drivers/us + dwc_otg_pcd_start_srp_timer(core_if); + return; +} -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_cil.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_cil.h ---- linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_cil.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_cil.h 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_cil.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_cil.h +--- linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_cil.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_cil.h 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,1464 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_cil.h $ @@ -63779,10 +65686,10 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_cil.h linux-rpi/drivers/us +////////////////////////////////////////////////////////////////////// + +#endif -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c ---- linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c 2014-06-11 21:03:43.000000000 +0200 -@@ -0,0 +1,1595 @@ +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c +--- linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c 2014-07-07 10:45:43.000000000 +0200 +@@ -0,0 +1,1594 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_cil_intr.c $ + * $Revision: #32 $ @@ -65133,10 +67040,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c linux-rpi/drive + local_fiq_disable(); + /* Pull in the interrupts that the FIQ has masked */ + gintmsk.d32 |= ~(hcd->fiq_state->gintmsk_saved.d32); ++ gintmsk.d32 |= gintmsk_common.d32; + /* for the upstairs function to reenable - have to read it here in case FIQ triggers again */ -+ reenable_gintmsk->d32 |= gintmsk.d32; -+ reenable_gintmsk->d32 |= ~(hcd->fiq_state->gintmsk_saved.d32); -+ reenable_gintmsk->d32 &= gintmsk_common.d32; ++ reenable_gintmsk->d32 = gintmsk.d32; + local_fiq_enable(); + } + @@ -65320,7 +67226,7 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c linux-rpi/drive +// fiq_print(FIQDBG_INT, otg_dev->hcd->fiq_state, "CILOUT %1d", retval); +// fiq_print(FIQDBG_INT, otg_dev->hcd->fiq_state, "%08x", gintsts.d32); +// fiq_print(FIQDBG_INT, otg_dev->hcd->fiq_state, "%08x", gintmsk_reenable.d32); -+ if (retval) { ++ if (retval && fiq_enable) { + DWC_WRITE_REG32(&core_if->core_global_regs->gintmsk, gintmsk_reenable.d32); + } + @@ -65378,9 +67284,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c linux-rpi/drive + DWC_SPINUNLOCK(core_if->lock); + return retval; +} -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_core_if.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_core_if.h ---- linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_core_if.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_core_if.h 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_core_if.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_core_if.h +--- linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_core_if.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_core_if.h 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,705 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_core_if.h $ @@ -66087,9 +67993,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_core_if.h linux-rpi/driver +/** @} */ + +#endif /* __DWC_CORE_IF_H__ */ -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_dbg.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_dbg.h ---- linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_dbg.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_dbg.h 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_dbg.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_dbg.h +--- linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_dbg.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_dbg.h 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,117 @@ +/* ========================================================================== + * @@ -66208,9 +68114,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_dbg.h linux-rpi/drivers/us + +#endif /*DEBUG*/ +#endif -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_driver.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_driver.c ---- linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_driver.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_driver.c 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_driver.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_driver.c +--- linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_driver.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_driver.c 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,1749 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_driver.c $ @@ -67961,9 +69867,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_driver.c linux-rpi/drivers + </td></tr> + +*/ -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_driver.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_driver.h ---- linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_driver.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_driver.h 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_driver.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_driver.h +--- linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_driver.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_driver.h 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,86 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_driver.h $ @@ -68051,10 +69957,10 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_driver.h linux-rpi/drivers +#endif + +#endif -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c ---- linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c 2014-06-11 21:03:43.000000000 +0200 -@@ -0,0 +1,1290 @@ +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c +--- linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c 2014-07-07 10:45:43.000000000 +0200 +@@ -0,0 +1,1294 @@ +/* + * dwc_otg_fiq_fsm.c - The finite state machine FIQ + * @@ -68753,7 +70659,11 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c linux-rpi/driver + fiq_print(FIQDBG_ERR, state, "ERRST %02d", n); + if (hcint_probe.b.nak || hcint_probe.b.ack || hcint_probe.b.datatglerr) { + fiq_print(FIQDBG_ERR, state, "RESET %02d", n); -+ st->nr_errors = 0; ++ /* In some random cases we can get a NAK interrupt coincident with a Xacterr ++ * interrupt, after the device has disappeared. ++ */ ++ if (!hcint.b.xacterr) ++ st->nr_errors = 0; + hcintmsk.b.nak = 0; + hcintmsk.b.ack = 0; + hcintmsk.b.datatglerr = 0; @@ -69345,9 +71255,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c linux-rpi/driver + state->fiq_done++; + mb(); +} -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.h ---- linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.h 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.h +--- linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.h 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,353 @@ +/* + * dwc_otg_fiq_fsm.h - Finite state machine FIQ header definitions @@ -69702,9 +71612,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.h linux-rpi/driver +extern void dwc_otg_fiq_nop(struct fiq_state *state); + +#endif /* DWC_OTG_FIQ_FSM_H_ */ -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_fiq_stub.S linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_fiq_stub.S ---- linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_fiq_stub.S 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_fiq_stub.S 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_fiq_stub.S linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_fiq_stub.S +--- linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_fiq_stub.S 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_fiq_stub.S 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,81 @@ +/* + * dwc_otg_fiq_fsm.S - assembly stub for the FSM FIQ @@ -69787,10 +71697,10 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_fiq_stub.S linux-rpi/drive +_dwc_otg_fiq_stub_end: +END(_dwc_otg_fiq_stub) + -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_hcd.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd.c ---- linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_hcd.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd.c 2014-06-11 21:03:43.000000000 +0200 -@@ -0,0 +1,4192 @@ +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_hcd.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd.c +--- linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_hcd.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd.c 2014-07-07 10:45:43.000000000 +0200 +@@ -0,0 +1,4212 @@ + +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_hcd.c $ @@ -70843,10 +72753,11 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_hcd.c linux-rpi/drivers/us + for (i=0; i < hcd->core_if->core_params->host_channels; i++) { + dwc_otg_cleanup_fiq_channel(hcd, i); + } -+ DWC_PRINTF("FIQ FSM acceleration enabled for :\n%s%s%s", ++ DWC_PRINTF("FIQ FSM acceleration enabled for :\n%s%s%s%s", + (fiq_fsm_mask & 0x1) ? "Non-periodic Split Transactions\n" : "", + (fiq_fsm_mask & 0x2) ? "Periodic Split Transactions\n" : "", -+ (fiq_fsm_mask & 0x4) ? "High-Speed Isochronous Endpoints\n" : ""); ++ (fiq_fsm_mask & 0x4) ? "High-Speed Isochronous Endpoints\n" : "", ++ (fiq_fsm_mask & 0x8) ? "Interrupt/Control Split Transaction hack enabled\n" : ""); + } + } + @@ -71577,6 +73488,20 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_hcd.c linux-rpi/drivers/us + st->hcintmsk_copy.b.chhltd = 1; + st->hcintmsk_copy.b.ahberr = 1; + ++ /* Hack courtesy of FreeBSD: apparently forcing Interrupt Split transactions ++ * as Control puts the transfer into the non-periodic request queue and the ++ * non-periodic handler in the hub. Makes things lots easier. ++ */ ++ if ((fiq_fsm_mask & 0x8) && hc->ep_type == UE_INTERRUPT) { ++ st->hcchar_copy.b.multicnt = 0; ++ st->hcchar_copy.b.oddfrm = 0; ++ st->hcchar_copy.b.eptype = UE_CONTROL; ++ if (hc->align_buff) { ++ st->hcdma_copy.d32 = hc->align_buff; ++ } else { ++ st->hcdma_copy.d32 = ((unsigned long) hc->xfer_buff & 0xFFFFFFFF); ++ } ++ } + DWC_WRITE_REG32(&hc_regs->hcdma, st->hcdma_copy.d32); + DWC_WRITE_REG32(&hc_regs->hctsiz, st->hctsiz_copy.d32); + DWC_WRITE_REG32(&hc_regs->hcsplt, st->hcsplt_copy.d32); @@ -71630,6 +73555,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_hcd.c linux-rpi/drivers/us + } + } + } ++ if ((fiq_fsm_mask & 0x8) && hc->ep_type == UE_INTERRUPT) ++ start_immediate = 1; ++ + fiq_print(FIQDBG_INT, hcd->fiq_state, "FSMQ %01d %01d", hc->hc_num, start_immediate); + fiq_print(FIQDBG_INT, hcd->fiq_state, "%08d", hfnum.b.frrem); + //fiq_print(FIQDBG_INT, hcd->fiq_state, "H:%02dP:%02d", hub_addr, port_addr); @@ -71661,11 +73589,13 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_hcd.c linux-rpi/drivers/us + } + break; + case UE_INTERRUPT: -+ if (start_immediate) { ++ if (fiq_fsm_mask & 0x8) { ++ st->fsm = FIQ_NP_SSPLIT_STARTED; ++ } else if (start_immediate) { + st->fsm = FIQ_PER_SSPLIT_STARTED; -+ } else { -+ st->fsm = FIQ_PER_SSPLIT_QUEUED; -+ } ++ } else { ++ st->fsm = FIQ_PER_SSPLIT_QUEUED; ++ } + default: + break; + } @@ -73983,9 +75913,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_hcd.c linux-rpi/drivers/us +} + +#endif /* DWC_DEVICE_ONLY */ -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c ---- linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c +--- linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,1132 @@ +/*========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_hcd_ddma.c $ @@ -75119,9 +77049,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c linux-rpi/drive +} + +#endif /* DWC_DEVICE_ONLY */ -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_hcd.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd.h ---- linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_hcd.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd.h 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_hcd.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd.h +--- linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_hcd.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd.h 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,862 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_hcd.h $ @@ -75985,9 +77915,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_hcd.h linux-rpi/drivers/us +#endif +#endif +#endif /* DWC_DEVICE_ONLY */ -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h ---- linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h +--- linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,417 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_hcd_if.h $ @@ -76406,9 +78336,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h linux-rpi/drivers + +#endif /* __DWC_HCD_IF_H__ */ +#endif /* DWC_DEVICE_ONLY */ -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c ---- linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c 2014-06-11 21:05:32.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c +--- linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,2688 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_hcd_intr.c $ @@ -79031,7 +80961,7 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-rpi/drive + case FIQ_PASSTHROUGH_ERRORSTATE: + /* Hook into the error count */ + fiq_print(FIQDBG_ERR, dwc_otg_hcd->fiq_state, "HCDERR%02d", num); -+ if (dwc_otg_hcd->fiq_state->channel[num].nr_errors) { ++ if (!dwc_otg_hcd->fiq_state->channel[num].nr_errors) { + qtd->error_count = 0; + fiq_print(FIQDBG_ERR, dwc_otg_hcd->fiq_state, "RESET "); + } @@ -79098,9 +81028,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-rpi/drive + return retval; +} +#endif /* DWC_DEVICE_ONLY */ -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c ---- linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c 2014-06-11 21:05:32.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c +--- linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,985 @@ + +/* ========================================================================== @@ -80087,9 +82017,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c linux-rpi/driv +} + +#endif /* DWC_DEVICE_ONLY */ -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c ---- linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c +--- linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,942 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_hcd_queue.c $ @@ -81033,9 +82963,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c linux-rpi/driv +} + +#endif /* DWC_DEVICE_ONLY */ -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h ---- linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h +--- linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,188 @@ +#ifndef _DWC_OS_DEP_H_ +#define _DWC_OS_DEP_H_ @@ -81225,9 +83155,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h linux-rpi/drivers + + +#endif /* _DWC_OS_DEP_H_ */ -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_pcd.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_pcd.c ---- linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_pcd.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_pcd.c 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_pcd.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_pcd.c +--- linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_pcd.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_pcd.c 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,2708 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_pcd.c $ @@ -83937,9 +85867,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_pcd.c linux-rpi/drivers/us +} + +#endif /* DWC_HOST_ONLY */ -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_pcd.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_pcd.h ---- linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_pcd.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_pcd.h 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_pcd.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_pcd.h +--- linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_pcd.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_pcd.h 2014-04-13 17:33:11.000000000 +0200 @@ -0,0 +1,266 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_pcd.h $ @@ -84207,9 +86137,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_pcd.h linux-rpi/drivers/us +extern void do_test_mode(void *data); +#endif +#endif /* DWC_HOST_ONLY */ -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h ---- linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h +--- linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h 2014-04-13 17:33:11.000000000 +0200 @@ -0,0 +1,360 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_pcd_if.h $ @@ -84571,9 +86501,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h linux-rpi/drivers +#endif /* __DWC_PCD_IF_H__ */ + +#endif /* DWC_HOST_ONLY */ -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c ---- linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c +--- linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,5147 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_pcd_intr.c $ @@ -89722,9 +91652,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c linux-rpi/drive +} + +#endif /* DWC_HOST_ONLY */ -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c ---- linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c +--- linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,1360 @@ + /* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_pcd_linux.c $ @@ -91086,9 +93016,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c linux-rpi/driv +EXPORT_SYMBOL(usb_gadget_unregister_driver); + +#endif /* DWC_HOST_ONLY */ -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_regs.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_regs.h ---- linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_regs.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_regs.h 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_regs.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_regs.h +--- linux-3.15.4/drivers/usb/host/dwc_otg/dwc_otg_regs.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_regs.h 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,2550 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_regs.h $ @@ -93640,9 +95570,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/dwc_otg_regs.h linux-rpi/drivers/u +} gpwrdn_data_t; + +#endif -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/Makefile linux-rpi/drivers/usb/host/dwc_otg/Makefile ---- linux-3.15/drivers/usb/host/dwc_otg/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/Makefile 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/Makefile linux-rpi/drivers/usb/host/dwc_otg/Makefile +--- linux-3.15.4/drivers/usb/host/dwc_otg/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/Makefile 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,82 @@ +# +# Makefile for DWC_otg Highspeed USB controller driver @@ -93726,9 +95656,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/Makefile linux-rpi/drivers/usb/hos + rm -rf *.o *.ko .*cmd *.mod.c .tmp_versions Module.symvers + +endif -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm linux-rpi/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm ---- linux-3.15/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm linux-rpi/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm +--- linux-3.15.4/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,337 @@ +package dwc_otg_test; + @@ -94067,9 +95997,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm linux-rpi/dri +); + +1; -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/test/Makefile linux-rpi/drivers/usb/host/dwc_otg/test/Makefile ---- linux-3.15/drivers/usb/host/dwc_otg/test/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/test/Makefile 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/test/Makefile linux-rpi/drivers/usb/host/dwc_otg/test/Makefile +--- linux-3.15.4/drivers/usb/host/dwc_otg/test/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/test/Makefile 2014-04-13 17:33:11.000000000 +0200 @@ -0,0 +1,16 @@ + +PERL=/usr/bin/perl @@ -94087,9 +96017,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/test/Makefile linux-rpi/drivers/us + else echo "=======> $$test, FAILED" ; \ + fi \ + done -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/test/test_mod_param.pl linux-rpi/drivers/usb/host/dwc_otg/test/test_mod_param.pl ---- linux-3.15/drivers/usb/host/dwc_otg/test/test_mod_param.pl 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/test/test_mod_param.pl 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/test/test_mod_param.pl linux-rpi/drivers/usb/host/dwc_otg/test/test_mod_param.pl +--- linux-3.15.4/drivers/usb/host/dwc_otg/test/test_mod_param.pl 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/test/test_mod_param.pl 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,133 @@ +#!/usr/bin/perl -w +# @@ -94224,9 +96154,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/test/test_mod_param.pl linux-rpi/d + +test_main(); +0; -diff -Nur linux-3.15/drivers/usb/host/dwc_otg/test/test_sysfs.pl linux-rpi/drivers/usb/host/dwc_otg/test/test_sysfs.pl ---- linux-3.15/drivers/usb/host/dwc_otg/test/test_sysfs.pl 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/usb/host/dwc_otg/test/test_sysfs.pl 2014-06-11 21:03:43.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/dwc_otg/test/test_sysfs.pl linux-rpi/drivers/usb/host/dwc_otg/test/test_sysfs.pl +--- linux-3.15.4/drivers/usb/host/dwc_otg/test/test_sysfs.pl 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/usb/host/dwc_otg/test/test_sysfs.pl 2014-07-07 10:45:43.000000000 +0200 @@ -0,0 +1,193 @@ +#!/usr/bin/perl -w +# @@ -94421,9 +96351,9 @@ diff -Nur linux-3.15/drivers/usb/host/dwc_otg/test/test_sysfs.pl linux-rpi/drive + +test_main(); +0; -diff -Nur linux-3.15/drivers/usb/host/Kconfig linux-rpi/drivers/usb/host/Kconfig ---- linux-3.15/drivers/usb/host/Kconfig 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/usb/host/Kconfig 2014-06-11 21:05:32.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/Kconfig linux-rpi/drivers/usb/host/Kconfig +--- linux-3.15.4/drivers/usb/host/Kconfig 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/usb/host/Kconfig 2014-07-07 10:45:43.000000000 +0200 @@ -685,6 +685,19 @@ To compile this driver a module, choose M here: the module will be called "hwa-hc". @@ -94444,9 +96374,9 @@ diff -Nur linux-3.15/drivers/usb/host/Kconfig linux-rpi/drivers/usb/host/Kconfig config USB_IMX21_HCD tristate "i.MX21 HCD support" depends on ARM && ARCH_MXC -diff -Nur linux-3.15/drivers/usb/host/Makefile linux-rpi/drivers/usb/host/Makefile ---- linux-3.15/drivers/usb/host/Makefile 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/usb/host/Makefile 2014-06-11 21:05:32.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/host/Makefile linux-rpi/drivers/usb/host/Makefile +--- linux-3.15.4/drivers/usb/host/Makefile 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/usb/host/Makefile 2014-07-07 10:45:43.000000000 +0200 @@ -63,6 +63,8 @@ obj-$(CONFIG_USB_R8A66597_HCD) += r8a66597-hcd.o obj-$(CONFIG_USB_ISP1760_HCD) += isp1760.o @@ -94456,9 +96386,9 @@ diff -Nur linux-3.15/drivers/usb/host/Makefile linux-rpi/drivers/usb/host/Makefi obj-$(CONFIG_USB_IMX21_HCD) += imx21-hcd.o obj-$(CONFIG_USB_FSL_MPH_DR_OF) += fsl-mph-dr-of.o obj-$(CONFIG_USB_OCTEON2_COMMON) += octeon2-common.o -diff -Nur linux-3.15/drivers/usb/Makefile linux-rpi/drivers/usb/Makefile ---- linux-3.15/drivers/usb/Makefile 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/usb/Makefile 2014-06-11 21:05:32.000000000 +0200 +diff -Nur linux-3.15.4/drivers/usb/Makefile linux-rpi/drivers/usb/Makefile +--- linux-3.15.4/drivers/usb/Makefile 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/usb/Makefile 2014-07-07 10:45:42.000000000 +0200 @@ -24,6 +24,7 @@ obj-$(CONFIG_USB_R8A66597_HCD) += host/ obj-$(CONFIG_USB_HWA_HCD) += host/ @@ -94467,9 +96397,9 @@ diff -Nur linux-3.15/drivers/usb/Makefile linux-rpi/drivers/usb/Makefile obj-$(CONFIG_USB_IMX21_HCD) += host/ obj-$(CONFIG_USB_FSL_MPH_DR_OF) += host/ obj-$(CONFIG_USB_FUSBH200_HCD) += host/ -diff -Nur linux-3.15/drivers/video/fbdev/bcm2708_fb.c linux-rpi/drivers/video/fbdev/bcm2708_fb.c ---- linux-3.15/drivers/video/fbdev/bcm2708_fb.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/video/fbdev/bcm2708_fb.c 2014-06-11 21:05:32.000000000 +0200 +diff -Nur linux-3.15.4/drivers/video/fbdev/bcm2708_fb.c linux-rpi/drivers/video/fbdev/bcm2708_fb.c +--- linux-3.15.4/drivers/video/fbdev/bcm2708_fb.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/video/fbdev/bcm2708_fb.c 2014-07-07 10:45:46.000000000 +0200 @@ -0,0 +1,765 @@ +/* + * linux/drivers/video/bcm2708_fb.c @@ -95236,9 +97166,9 @@ diff -Nur linux-3.15/drivers/video/fbdev/bcm2708_fb.c linux-rpi/drivers/video/fb +MODULE_PARM_DESC(fbheight, "Height of ARM Framebuffer"); +MODULE_PARM_DESC(fbdepth, "Bit depth of ARM Framebuffer"); +MODULE_PARM_DESC(fbswap, "Swap order of red and blue in 24 and 32 bit modes"); -diff -Nur linux-3.15/drivers/video/fbdev/core/cfbimgblt.c linux-rpi/drivers/video/fbdev/core/cfbimgblt.c ---- linux-3.15/drivers/video/fbdev/core/cfbimgblt.c 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/video/fbdev/core/cfbimgblt.c 2014-06-11 21:05:32.000000000 +0200 +diff -Nur linux-3.15.4/drivers/video/fbdev/core/cfbimgblt.c linux-rpi/drivers/video/fbdev/core/cfbimgblt.c +--- linux-3.15.4/drivers/video/fbdev/core/cfbimgblt.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/video/fbdev/core/cfbimgblt.c 2014-07-07 10:45:46.000000000 +0200 @@ -28,6 +28,11 @@ * * Also need to add code to deal with cards endians that are different than @@ -95412,9 +97342,9 @@ diff -Nur linux-3.15/drivers/video/fbdev/core/cfbimgblt.c linux-rpi/drivers/vide slow_imageblit(image, p, dst1, fgcolor, bgcolor, start_index, pitch_index); } else -diff -Nur linux-3.15/drivers/video/fbdev/core/fbmem.c linux-rpi/drivers/video/fbdev/core/fbmem.c ---- linux-3.15/drivers/video/fbdev/core/fbmem.c 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/video/fbdev/core/fbmem.c 2014-06-11 21:05:32.000000000 +0200 +diff -Nur linux-3.15.4/drivers/video/fbdev/core/fbmem.c linux-rpi/drivers/video/fbdev/core/fbmem.c +--- linux-3.15.4/drivers/video/fbdev/core/fbmem.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/video/fbdev/core/fbmem.c 2014-07-07 10:45:46.000000000 +0200 @@ -1083,6 +1083,25 @@ } EXPORT_SYMBOL(fb_blank); @@ -95473,9 +97403,9 @@ diff -Nur linux-3.15/drivers/video/fbdev/core/fbmem.c linux-rpi/drivers/video/fb arg = (unsigned long) compat_ptr(arg); case FBIOBLANK: ret = do_fb_ioctl(info, cmd, arg); -diff -Nur linux-3.15/drivers/video/fbdev/Kconfig linux-rpi/drivers/video/fbdev/Kconfig ---- linux-3.15/drivers/video/fbdev/Kconfig 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/video/fbdev/Kconfig 2014-06-11 21:05:32.000000000 +0200 +diff -Nur linux-3.15.4/drivers/video/fbdev/Kconfig linux-rpi/drivers/video/fbdev/Kconfig +--- linux-3.15.4/drivers/video/fbdev/Kconfig 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/video/fbdev/Kconfig 2014-07-07 10:45:46.000000000 +0200 @@ -220,6 +220,20 @@ comment "Frame buffer hardware drivers" depends on FB @@ -95497,9 +97427,9 @@ diff -Nur linux-3.15/drivers/video/fbdev/Kconfig linux-rpi/drivers/video/fbdev/K config FB_GRVGA tristate "Aeroflex Gaisler framebuffer support" depends on FB && SPARC -diff -Nur linux-3.15/drivers/video/fbdev/Makefile linux-rpi/drivers/video/fbdev/Makefile ---- linux-3.15/drivers/video/fbdev/Makefile 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/video/fbdev/Makefile 2014-06-11 21:05:32.000000000 +0200 +diff -Nur linux-3.15.4/drivers/video/fbdev/Makefile linux-rpi/drivers/video/fbdev/Makefile +--- linux-3.15.4/drivers/video/fbdev/Makefile 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/video/fbdev/Makefile 2014-07-07 10:45:46.000000000 +0200 @@ -12,6 +12,7 @@ obj-$(CONFIG_FB_WMT_GE_ROPS) += wmt_ge_rops.o @@ -95508,9 +97438,9 @@ diff -Nur linux-3.15/drivers/video/fbdev/Makefile linux-rpi/drivers/video/fbdev/ obj-$(CONFIG_FB_AMIGA) += amifb.o c2p_planar.o obj-$(CONFIG_FB_ARC) += arcfb.o obj-$(CONFIG_FB_CLPS711X) += clps711xfb.o -diff -Nur linux-3.15/drivers/video/logo/logo_linux_clut224.ppm linux-rpi/drivers/video/logo/logo_linux_clut224.ppm ---- linux-3.15/drivers/video/logo/logo_linux_clut224.ppm 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/video/logo/logo_linux_clut224.ppm 2014-06-11 21:03:44.000000000 +0200 +diff -Nur linux-3.15.4/drivers/video/logo/logo_linux_clut224.ppm linux-rpi/drivers/video/logo/logo_linux_clut224.ppm +--- linux-3.15.4/drivers/video/logo/logo_linux_clut224.ppm 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/video/logo/logo_linux_clut224.ppm 2014-04-13 17:33:14.000000000 +0200 @@ -1,1604 +1,883 @@ P3 -# Standard 224-color Linux logo @@ -97997,9 +99927,9 @@ diff -Nur linux-3.15/drivers/video/logo/logo_linux_clut224.ppm linux-rpi/drivers +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 -diff -Nur linux-3.15/drivers/w1/masters/w1-gpio.c linux-rpi/drivers/w1/masters/w1-gpio.c ---- linux-3.15/drivers/w1/masters/w1-gpio.c 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/w1/masters/w1-gpio.c 2014-06-11 21:05:32.000000000 +0200 +diff -Nur linux-3.15.4/drivers/w1/masters/w1-gpio.c linux-rpi/drivers/w1/masters/w1-gpio.c +--- linux-3.15.4/drivers/w1/masters/w1-gpio.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/w1/masters/w1-gpio.c 2014-07-07 10:45:47.000000000 +0200 @@ -23,6 +23,15 @@ #include "../w1.h" #include "../w1_int.h" @@ -98099,9 +100029,9 @@ diff -Nur linux-3.15/drivers/w1/masters/w1-gpio.c linux-rpi/drivers/w1/masters/w return 0; } -diff -Nur linux-3.15/drivers/w1/w1.h linux-rpi/drivers/w1/w1.h ---- linux-3.15/drivers/w1/w1.h 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/w1/w1.h 2014-06-11 21:05:32.000000000 +0200 +diff -Nur linux-3.15.4/drivers/w1/w1.h linux-rpi/drivers/w1/w1.h +--- linux-3.15.4/drivers/w1/w1.h 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/w1/w1.h 2014-07-07 10:45:47.000000000 +0200 @@ -171,6 +171,12 @@ u8 (*set_pullup)(void *, int); @@ -98115,9 +100045,9 @@ diff -Nur linux-3.15/drivers/w1/w1.h linux-rpi/drivers/w1/w1.h void (*search)(void *, struct w1_master *, u8, w1_slave_found_callback); }; -diff -Nur linux-3.15/drivers/w1/w1_int.c linux-rpi/drivers/w1/w1_int.c ---- linux-3.15/drivers/w1/w1_int.c 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/w1/w1_int.c 2014-06-11 21:05:32.000000000 +0200 +diff -Nur linux-3.15.4/drivers/w1/w1_int.c linux-rpi/drivers/w1/w1_int.c +--- linux-3.15.4/drivers/w1/w1_int.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/w1/w1_int.c 2014-07-07 10:45:47.000000000 +0200 @@ -124,6 +124,20 @@ return(-EINVAL); } @@ -98139,9 +100069,9 @@ diff -Nur linux-3.15/drivers/w1/w1_int.c linux-rpi/drivers/w1/w1_int.c /* Lock until the device is added (or not) to w1_masters. */ mutex_lock(&w1_mlock); /* Search for the first available id (starting at 1). */ -diff -Nur linux-3.15/drivers/w1/w1_io.c linux-rpi/drivers/w1/w1_io.c ---- linux-3.15/drivers/w1/w1_io.c 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/w1/w1_io.c 2014-06-11 21:05:32.000000000 +0200 +diff -Nur linux-3.15.4/drivers/w1/w1_io.c linux-rpi/drivers/w1/w1_io.c +--- linux-3.15.4/drivers/w1/w1_io.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/w1/w1_io.c 2014-07-07 10:45:47.000000000 +0200 @@ -134,10 +134,22 @@ static void w1_post_write(struct w1_master *dev) { @@ -98168,9 +100098,36 @@ diff -Nur linux-3.15/drivers/w1/w1_io.c linux-rpi/drivers/w1/w1_io.c dev->pullup_duration = 0; } } -diff -Nur linux-3.15/drivers/watchdog/bcm2708_wdog.c linux-rpi/drivers/watchdog/bcm2708_wdog.c ---- linux-3.15/drivers/watchdog/bcm2708_wdog.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/drivers/watchdog/bcm2708_wdog.c 2014-06-11 21:05:32.000000000 +0200 +diff -Nur linux-3.15.4/drivers/watchdog/ath79_wdt.c linux-rpi/drivers/watchdog/ath79_wdt.c +--- linux-3.15.4/drivers/watchdog/ath79_wdt.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/watchdog/ath79_wdt.c 2014-07-07 10:45:47.000000000 +0200 +@@ -20,7 +20,6 @@ + #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + + #include <linux/bitops.h> +-#include <linux/delay.h> + #include <linux/errno.h> + #include <linux/fs.h> + #include <linux/io.h> +@@ -91,15 +90,6 @@ + static inline void ath79_wdt_enable(void) + { + ath79_wdt_keepalive(); +- +- /* +- * Updating the TIMER register requires a few microseconds +- * on the AR934x SoCs at least. Use a small delay to ensure +- * that the TIMER register is updated within the hardware +- * before enabling the watchdog. +- */ +- udelay(2); +- + ath79_wdt_wr(WDOG_REG_CTRL, WDOG_CTRL_ACTION_FCR); + /* flush write */ + ath79_wdt_rr(WDOG_REG_CTRL); +diff -Nur linux-3.15.4/drivers/watchdog/bcm2708_wdog.c linux-rpi/drivers/watchdog/bcm2708_wdog.c +--- linux-3.15.4/drivers/watchdog/bcm2708_wdog.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/drivers/watchdog/bcm2708_wdog.c 2014-07-07 10:45:47.000000000 +0200 @@ -0,0 +1,382 @@ +/* + * Broadcom BCM2708 watchdog driver. @@ -98554,9 +100511,9 @@ diff -Nur linux-3.15/drivers/watchdog/bcm2708_wdog.c linux-rpi/drivers/watchdog/ +MODULE_ALIAS_MISCDEV(WATCHDOG_MINOR); +MODULE_ALIAS_MISCDEV(TEMP_MINOR); +MODULE_LICENSE("GPL"); -diff -Nur linux-3.15/drivers/watchdog/Kconfig linux-rpi/drivers/watchdog/Kconfig ---- linux-3.15/drivers/watchdog/Kconfig 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/watchdog/Kconfig 2014-06-11 21:05:32.000000000 +0200 +diff -Nur linux-3.15.4/drivers/watchdog/Kconfig linux-rpi/drivers/watchdog/Kconfig +--- linux-3.15.4/drivers/watchdog/Kconfig 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/watchdog/Kconfig 2014-07-07 10:45:47.000000000 +0200 @@ -411,6 +411,12 @@ To compile this driver as a module, choose M here: the module will be called retu_wdt. @@ -98570,9 +100527,21 @@ diff -Nur linux-3.15/drivers/watchdog/Kconfig linux-rpi/drivers/watchdog/Kconfig config MOXART_WDT tristate "MOXART watchdog" depends on ARCH_MOXART -diff -Nur linux-3.15/drivers/watchdog/Makefile linux-rpi/drivers/watchdog/Makefile ---- linux-3.15/drivers/watchdog/Makefile 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/drivers/watchdog/Makefile 2014-06-11 21:05:32.000000000 +0200 +diff -Nur linux-3.15.4/drivers/watchdog/kempld_wdt.c linux-rpi/drivers/watchdog/kempld_wdt.c +--- linux-3.15.4/drivers/watchdog/kempld_wdt.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/watchdog/kempld_wdt.c 2014-07-07 10:45:47.000000000 +0200 +@@ -162,7 +162,7 @@ + kempld_get_mutex(pld); + stage_cfg = kempld_read8(pld, KEMPLD_WDT_STAGE_CFG(stage->id)); + stage_cfg &= ~STAGE_CFG_PRESCALER_MASK; +- stage_cfg |= STAGE_CFG_SET_PRESCALER(PRESCALER_21); ++ stage_cfg |= STAGE_CFG_SET_PRESCALER(prescaler); + kempld_write8(pld, KEMPLD_WDT_STAGE_CFG(stage->id), stage_cfg); + kempld_write32(pld, KEMPLD_WDT_STAGE_TIMEOUT(stage->id), + stage_timeout); +diff -Nur linux-3.15.4/drivers/watchdog/Makefile linux-rpi/drivers/watchdog/Makefile +--- linux-3.15.4/drivers/watchdog/Makefile 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/watchdog/Makefile 2014-07-07 10:45:47.000000000 +0200 @@ -54,6 +54,7 @@ obj-$(CONFIG_IMX2_WDT) += imx2_wdt.o obj-$(CONFIG_UX500_WATCHDOG) += ux500_wdt.o @@ -98581,9 +100550,304 @@ diff -Nur linux-3.15/drivers/watchdog/Makefile linux-rpi/drivers/watchdog/Makefi obj-$(CONFIG_BCM2835_WDT) += bcm2835_wdt.o obj-$(CONFIG_MOXART_WDT) += moxart_wdt.o obj-$(CONFIG_SIRFSOC_WATCHDOG) += sirfsoc_wdt.o -diff -Nur linux-3.15/include/linux/broadcom/vc_cma.h linux-rpi/include/linux/broadcom/vc_cma.h ---- linux-3.15/include/linux/broadcom/vc_cma.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/include/linux/broadcom/vc_cma.h 2014-06-11 21:03:52.000000000 +0200 +diff -Nur linux-3.15.4/drivers/watchdog/sp805_wdt.c linux-rpi/drivers/watchdog/sp805_wdt.c +--- linux-3.15.4/drivers/watchdog/sp805_wdt.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/drivers/watchdog/sp805_wdt.c 2014-07-07 10:45:47.000000000 +0200 +@@ -59,6 +59,7 @@ + * @adev: amba device structure of wdt + * @status: current status of wdt + * @load_val: load value to be set for current timeout ++ * @timeout: current programmed timeout + */ + struct sp805_wdt { + struct watchdog_device wdd; +@@ -67,6 +68,7 @@ + struct clk *clk; + struct amba_device *adev; + unsigned int load_val; ++ unsigned int timeout; + }; + + static bool nowayout = WATCHDOG_NOWAYOUT; +@@ -96,7 +98,7 @@ + spin_lock(&wdt->lock); + wdt->load_val = load; + /* roundup timeout to closest positive integer value */ +- wdd->timeout = div_u64((load + 1) * 2 + (rate / 2), rate); ++ wdt->timeout = div_u64((load + 1) * 2 + (rate / 2), rate); + spin_unlock(&wdt->lock); + + return 0; +diff -Nur linux-3.15.4/fs/nfs/inode.c linux-rpi/fs/nfs/inode.c +--- linux-3.15.4/fs/nfs/inode.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/fs/nfs/inode.c 2014-07-07 10:45:51.000000000 +0200 +@@ -1575,20 +1575,18 @@ + inode->i_version = fattr->change_attr; + } + } else if (server->caps & NFS_CAP_CHANGE_ATTR) +- nfsi->cache_validity |= save_cache_validity; ++ invalid |= save_cache_validity; + + if (fattr->valid & NFS_ATTR_FATTR_MTIME) { + memcpy(&inode->i_mtime, &fattr->mtime, sizeof(inode->i_mtime)); + } else if (server->caps & NFS_CAP_MTIME) +- nfsi->cache_validity |= save_cache_validity & +- (NFS_INO_INVALID_ATTR ++ invalid |= save_cache_validity & (NFS_INO_INVALID_ATTR + | NFS_INO_REVAL_FORCED); + + if (fattr->valid & NFS_ATTR_FATTR_CTIME) { + memcpy(&inode->i_ctime, &fattr->ctime, sizeof(inode->i_ctime)); + } else if (server->caps & NFS_CAP_CTIME) +- nfsi->cache_validity |= save_cache_validity & +- (NFS_INO_INVALID_ATTR ++ invalid |= save_cache_validity & (NFS_INO_INVALID_ATTR + | NFS_INO_REVAL_FORCED); + + /* Check if our cached file size is stale */ +@@ -1610,8 +1608,7 @@ + (long long)new_isize); + } + } else +- nfsi->cache_validity |= save_cache_validity & +- (NFS_INO_INVALID_ATTR ++ invalid |= save_cache_validity & (NFS_INO_INVALID_ATTR + | NFS_INO_REVAL_PAGECACHE + | NFS_INO_REVAL_FORCED); + +@@ -1619,8 +1616,7 @@ + if (fattr->valid & NFS_ATTR_FATTR_ATIME) + memcpy(&inode->i_atime, &fattr->atime, sizeof(inode->i_atime)); + else if (server->caps & NFS_CAP_ATIME) +- nfsi->cache_validity |= save_cache_validity & +- (NFS_INO_INVALID_ATIME ++ invalid |= save_cache_validity & (NFS_INO_INVALID_ATIME + | NFS_INO_REVAL_FORCED); + + if (fattr->valid & NFS_ATTR_FATTR_MODE) { +@@ -1631,8 +1627,7 @@ + invalid |= NFS_INO_INVALID_ATTR|NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ACL; + } + } else if (server->caps & NFS_CAP_MODE) +- nfsi->cache_validity |= save_cache_validity & +- (NFS_INO_INVALID_ATTR ++ invalid |= save_cache_validity & (NFS_INO_INVALID_ATTR + | NFS_INO_INVALID_ACCESS + | NFS_INO_INVALID_ACL + | NFS_INO_REVAL_FORCED); +@@ -1643,8 +1638,7 @@ + inode->i_uid = fattr->uid; + } + } else if (server->caps & NFS_CAP_OWNER) +- nfsi->cache_validity |= save_cache_validity & +- (NFS_INO_INVALID_ATTR ++ invalid |= save_cache_validity & (NFS_INO_INVALID_ATTR + | NFS_INO_INVALID_ACCESS + | NFS_INO_INVALID_ACL + | NFS_INO_REVAL_FORCED); +@@ -1655,8 +1649,7 @@ + inode->i_gid = fattr->gid; + } + } else if (server->caps & NFS_CAP_OWNER_GROUP) +- nfsi->cache_validity |= save_cache_validity & +- (NFS_INO_INVALID_ATTR ++ invalid |= save_cache_validity & (NFS_INO_INVALID_ATTR + | NFS_INO_INVALID_ACCESS + | NFS_INO_INVALID_ACL + | NFS_INO_REVAL_FORCED); +@@ -1669,8 +1662,7 @@ + set_nlink(inode, fattr->nlink); + } + } else if (server->caps & NFS_CAP_NLINK) +- nfsi->cache_validity |= save_cache_validity & +- (NFS_INO_INVALID_ATTR ++ invalid |= save_cache_validity & (NFS_INO_INVALID_ATTR + | NFS_INO_REVAL_FORCED); + + if (fattr->valid & NFS_ATTR_FATTR_SPACE_USED) { +diff -Nur linux-3.15.4/fs/nfs/nfs4filelayout.c linux-rpi/fs/nfs/nfs4filelayout.c +--- linux-3.15.4/fs/nfs/nfs4filelayout.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/fs/nfs/nfs4filelayout.c 2014-07-07 10:45:51.000000000 +0200 +@@ -1330,7 +1330,7 @@ + struct nfs4_filelayout *flo; + + flo = kzalloc(sizeof(*flo), gfp_flags); +- return flo != NULL ? &flo->generic_hdr : NULL; ++ return &flo->generic_hdr; + } + + static void +diff -Nur linux-3.15.4/fs/nfs/nfs4state.c linux-rpi/fs/nfs/nfs4state.c +--- linux-3.15.4/fs/nfs/nfs4state.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/fs/nfs/nfs4state.c 2014-07-07 10:45:51.000000000 +0200 +@@ -1456,7 +1456,7 @@ + * server that doesn't support a grace period. + */ + spin_lock(&sp->so_lock); +- raw_write_seqcount_begin(&sp->so_reclaim_seqcount); ++ write_seqcount_begin(&sp->so_reclaim_seqcount); + restart: + list_for_each_entry(state, &sp->so_states, open_states) { + if (!test_and_clear_bit(ops->state_flag_bit, &state->flags)) +@@ -1519,13 +1519,13 @@ + spin_lock(&sp->so_lock); + goto restart; + } +- raw_write_seqcount_end(&sp->so_reclaim_seqcount); ++ write_seqcount_end(&sp->so_reclaim_seqcount); + spin_unlock(&sp->so_lock); + return 0; + out_err: + nfs4_put_open_state(state); + spin_lock(&sp->so_lock); +- raw_write_seqcount_end(&sp->so_reclaim_seqcount); ++ write_seqcount_end(&sp->so_reclaim_seqcount); + spin_unlock(&sp->so_lock); + return status; + } +diff -Nur linux-3.15.4/fs/nfs/super.c linux-rpi/fs/nfs/super.c +--- linux-3.15.4/fs/nfs/super.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/fs/nfs/super.c 2014-07-07 10:45:51.000000000 +0200 +@@ -2248,7 +2248,6 @@ + data->nfs_server.addrlen = nfss->nfs_client->cl_addrlen; + data->version = nfsvers; + data->minorversion = nfss->nfs_client->cl_minorversion; +- data->net = current->nsproxy->net_ns; + memcpy(&data->nfs_server.address, &nfss->nfs_client->cl_addr, + data->nfs_server.addrlen); + +diff -Nur linux-3.15.4/fs/nfs/write.c linux-rpi/fs/nfs/write.c +--- linux-3.15.4/fs/nfs/write.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/fs/nfs/write.c 2014-07-07 10:45:51.000000000 +0200 +@@ -913,14 +913,12 @@ + + if (nfs_have_delegated_attributes(inode)) + goto out; +- if (nfsi->cache_validity & NFS_INO_REVAL_PAGECACHE) ++ if (nfsi->cache_validity & (NFS_INO_INVALID_DATA|NFS_INO_REVAL_PAGECACHE)) + return false; + smp_rmb(); + if (test_bit(NFS_INO_INVALIDATING, &nfsi->flags)) + return false; + out: +- if (nfsi->cache_validity & NFS_INO_INVALID_DATA) +- return false; + return PageUptodate(page) != 0; + } + +diff -Nur linux-3.15.4/fs/nfsd/nfs4state.c linux-rpi/fs/nfsd/nfs4state.c +--- linux-3.15.4/fs/nfsd/nfs4state.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/fs/nfsd/nfs4state.c 2014-07-07 10:45:51.000000000 +0200 +@@ -3726,7 +3726,7 @@ + * correspondance, and we have to delete the lockowner when we + * delete the lock stateid: + */ +- release_lockowner(lo); ++ unhash_lockowner(lo); + return nfs_ok; + } + +diff -Nur linux-3.15.4/fs/nfsd/nfs4xdr.c linux-rpi/fs/nfsd/nfs4xdr.c +--- linux-3.15.4/fs/nfsd/nfs4xdr.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/fs/nfsd/nfs4xdr.c 2014-07-07 10:45:51.000000000 +0200 +@@ -2095,8 +2095,8 @@ + err = vfs_getattr(&path, &stat); + if (err) + goto out_nfserr; +- if ((bmval0 & (FATTR4_WORD0_FILES_AVAIL | FATTR4_WORD0_FILES_FREE | +- FATTR4_WORD0_FILES_TOTAL | FATTR4_WORD0_MAXNAME)) || ++ if ((bmval0 & (FATTR4_WORD0_FILES_FREE | FATTR4_WORD0_FILES_TOTAL | ++ FATTR4_WORD0_MAXNAME)) || + (bmval1 & (FATTR4_WORD1_SPACE_AVAIL | FATTR4_WORD1_SPACE_FREE | + FATTR4_WORD1_SPACE_TOTAL))) { + err = vfs_statfs(&path, &statfs); +diff -Nur linux-3.15.4/fs/reiserfs/inode.c linux-rpi/fs/reiserfs/inode.c +--- linux-3.15.4/fs/reiserfs/inode.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/fs/reiserfs/inode.c 2014-07-07 10:45:51.000000000 +0200 +@@ -3220,14 +3220,8 @@ + attr->ia_size != i_size_read(inode)) { + error = inode_newsize_ok(inode, attr->ia_size); + if (!error) { +- /* +- * Could race against reiserfs_file_release +- * if called from NFS, so take tailpack mutex. +- */ +- mutex_lock(&REISERFS_I(inode)->tailpack); + truncate_setsize(inode, attr->ia_size); +- reiserfs_truncate_file(inode, 1); +- mutex_unlock(&REISERFS_I(inode)->tailpack); ++ reiserfs_vfs_truncate_file(inode); + } + } + +diff -Nur linux-3.15.4/fs/ubifs/file.c linux-rpi/fs/ubifs/file.c +--- linux-3.15.4/fs/ubifs/file.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/fs/ubifs/file.c 2014-07-07 10:45:52.000000000 +0200 +@@ -1525,7 +1525,8 @@ + } + + wait_for_stable_page(page); +- return VM_FAULT_LOCKED; ++ unlock_page(page); ++ return 0; + + out_unlock: + unlock_page(page); +diff -Nur linux-3.15.4/fs/ubifs/shrinker.c linux-rpi/fs/ubifs/shrinker.c +--- linux-3.15.4/fs/ubifs/shrinker.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/fs/ubifs/shrinker.c 2014-07-07 10:45:52.000000000 +0200 +@@ -128,6 +128,7 @@ + freed = ubifs_destroy_tnc_subtree(znode); + atomic_long_sub(freed, &ubifs_clean_zn_cnt); + atomic_long_sub(freed, &c->clean_zn_cnt); ++ ubifs_assert(atomic_long_read(&c->clean_zn_cnt) >= 0); + total_freed += freed; + znode = zprev; + } +diff -Nur linux-3.15.4/fs/xfs/xfs_mount.c linux-rpi/fs/xfs/xfs_mount.c +--- linux-3.15.4/fs/xfs/xfs_mount.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/fs/xfs/xfs_mount.c 2014-07-07 10:45:52.000000000 +0200 +@@ -323,19 +323,8 @@ + /* + * Initialize the mount structure from the superblock. + */ +- xfs_sb_from_disk(sbp, XFS_BUF_TO_SBP(bp)); +- xfs_sb_quota_from_disk(sbp); +- +- /* +- * If we haven't validated the superblock, do so now before we try +- * to check the sector size and reread the superblock appropriately. +- */ +- if (sbp->sb_magicnum != XFS_SB_MAGIC) { +- if (loud) +- xfs_warn(mp, "Invalid superblock magic number"); +- error = EINVAL; +- goto release_buf; +- } ++ xfs_sb_from_disk(&mp->m_sb, XFS_BUF_TO_SBP(bp)); ++ xfs_sb_quota_from_disk(&mp->m_sb); + + /* + * We must be able to do sector-sized and sector-aligned IO. +@@ -348,11 +337,11 @@ + goto release_buf; + } + ++ /* ++ * Re-read the superblock so the buffer is correctly sized, ++ * and properly verified. ++ */ + if (buf_ops == NULL) { +- /* +- * Re-read the superblock so the buffer is correctly sized, +- * and properly verified. +- */ + xfs_buf_relse(bp); + sector_size = sbp->sb_sectsize; + buf_ops = loud ? &xfs_sb_buf_ops : &xfs_sb_quiet_buf_ops; +diff -Nur linux-3.15.4/include/linux/broadcom/vc_cma.h linux-rpi/include/linux/broadcom/vc_cma.h +--- linux-3.15.4/include/linux/broadcom/vc_cma.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/include/linux/broadcom/vc_cma.h 2014-07-07 10:45:52.000000000 +0200 @@ -0,0 +1,29 @@ +/***************************************************************************** +* Copyright 2012 Broadcom Corporation. All rights reserved. @@ -98614,9 +100878,9 @@ diff -Nur linux-3.15/include/linux/broadcom/vc_cma.h linux-rpi/include/linux/bro +#endif + +#endif /* VC_CMA_H */ -diff -Nur linux-3.15/include/linux/mmc/host.h linux-rpi/include/linux/mmc/host.h ---- linux-3.15/include/linux/mmc/host.h 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/include/linux/mmc/host.h 2014-06-11 21:05:34.000000000 +0200 +diff -Nur linux-3.15.4/include/linux/mmc/host.h linux-rpi/include/linux/mmc/host.h +--- linux-3.15.4/include/linux/mmc/host.h 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/include/linux/mmc/host.h 2014-07-07 10:45:53.000000000 +0200 @@ -278,6 +278,7 @@ #define MMC_CAP2_PACKED_CMD (MMC_CAP2_PACKED_RD | \ MMC_CAP2_PACKED_WR) @@ -98625,9 +100889,9 @@ diff -Nur linux-3.15/include/linux/mmc/host.h linux-rpi/include/linux/mmc/host.h mmc_pm_flag_t pm_caps; /* supported pm features */ -diff -Nur linux-3.15/include/linux/mmc/sdhci.h linux-rpi/include/linux/mmc/sdhci.h ---- linux-3.15/include/linux/mmc/sdhci.h 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/include/linux/mmc/sdhci.h 2014-06-11 21:05:34.000000000 +0200 +diff -Nur linux-3.15.4/include/linux/mmc/sdhci.h linux-rpi/include/linux/mmc/sdhci.h +--- linux-3.15.4/include/linux/mmc/sdhci.h 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/include/linux/mmc/sdhci.h 2014-07-07 10:45:53.000000000 +0200 @@ -104,6 +104,7 @@ #define SDHCI_QUIRK2_BROKEN_DDR50 (1<<7) @@ -98652,9 +100916,67 @@ diff -Nur linux-3.15/include/linux/mmc/sdhci.h linux-rpi/include/linux/mmc/sdhci struct mmc_data *data; /* Current data request */ unsigned int data_early:1; /* Data finished before cmd */ -diff -Nur linux-3.15/include/uapi/linux/fb.h linux-rpi/include/uapi/linux/fb.h ---- linux-3.15/include/uapi/linux/fb.h 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/include/uapi/linux/fb.h 2014-06-11 21:03:54.000000000 +0200 +diff -Nur linux-3.15.4/include/linux/ptrace.h linux-rpi/include/linux/ptrace.h +--- linux-3.15.4/include/linux/ptrace.h 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/include/linux/ptrace.h 2014-07-07 10:45:53.000000000 +0200 +@@ -334,9 +334,6 @@ + * calling arch_ptrace_stop() when it would be superfluous. For example, + * if the thread has not been back to user mode since the last stop, the + * thread state might indicate that nothing needs to be done. +- * +- * This is guaranteed to be invoked once before a task stops for ptrace and +- * may include arch-specific operations necessary prior to a ptrace stop. + */ + #define arch_ptrace_stop_needed(code, info) (0) + #endif +diff -Nur linux-3.15.4/include/linux/vmstat.h linux-rpi/include/linux/vmstat.h +--- linux-3.15.4/include/linux/vmstat.h 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/include/linux/vmstat.h 2014-07-07 10:45:55.000000000 +0200 +@@ -235,7 +235,11 @@ + static inline void __dec_zone_state(struct zone *zone, enum zone_stat_item item) + { + atomic_long_dec(&zone->vm_stat[item]); ++ if (item == NR_FILE_DIRTY && unlikely(atomic_long_read(&zone->vm_stat[item]) < 0)) ++ atomic_long_set(&zone->vm_stat[item], 0); + atomic_long_dec(&vm_stat[item]); ++ if (item == NR_FILE_DIRTY && unlikely(atomic_long_read(&vm_stat[item]) < 0)) ++ atomic_long_set(&vm_stat[item], 0); + } + + static inline void __inc_zone_page_state(struct page *page, +diff -Nur linux-3.15.4/include/trace/syscall.h linux-rpi/include/trace/syscall.h +--- linux-3.15.4/include/trace/syscall.h 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/include/trace/syscall.h 2014-07-07 10:45:56.000000000 +0200 +@@ -4,7 +4,6 @@ + #include <linux/tracepoint.h> + #include <linux/unistd.h> + #include <linux/ftrace_event.h> +-#include <linux/thread_info.h> + + #include <asm/ptrace.h> + +@@ -33,18 +32,4 @@ + struct ftrace_event_call *exit_event; + }; + +-#if defined(CONFIG_TRACEPOINTS) && defined(CONFIG_HAVE_SYSCALL_TRACEPOINTS) +-static inline void syscall_tracepoint_update(struct task_struct *p) +-{ +- if (test_thread_flag(TIF_SYSCALL_TRACEPOINT)) +- set_tsk_thread_flag(p, TIF_SYSCALL_TRACEPOINT); +- else +- clear_tsk_thread_flag(p, TIF_SYSCALL_TRACEPOINT); +-} +-#else +-static inline void syscall_tracepoint_update(struct task_struct *p) +-{ +-} +-#endif +- + #endif /* _TRACE_SYSCALL_H */ +diff -Nur linux-3.15.4/include/uapi/linux/fb.h linux-rpi/include/uapi/linux/fb.h +--- linux-3.15.4/include/uapi/linux/fb.h 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/include/uapi/linux/fb.h 2014-04-13 17:33:21.000000000 +0200 @@ -34,6 +34,11 @@ #define FBIOPUT_MODEINFO 0x4617 #define FBIOGET_DISPINFO 0x4618 @@ -98667,9 +100989,9 @@ diff -Nur linux-3.15/include/uapi/linux/fb.h linux-rpi/include/uapi/linux/fb.h #define FB_TYPE_PACKED_PIXELS 0 /* Packed Pixels */ #define FB_TYPE_PLANES 1 /* Non interleaved planes */ -diff -Nur linux-3.15/kernel/cgroup.c linux-rpi/kernel/cgroup.c ---- linux-3.15/kernel/cgroup.c 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/kernel/cgroup.c 2014-06-11 21:05:40.000000000 +0200 +diff -Nur linux-3.15.4/kernel/cgroup.c linux-rpi/kernel/cgroup.c +--- linux-3.15.4/kernel/cgroup.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/kernel/cgroup.c 2014-07-07 10:45:56.000000000 +0200 @@ -4620,6 +4620,29 @@ } __setup("cgroup_disable=", cgroup_disable); @@ -98700,10 +101022,126 @@ diff -Nur linux-3.15/kernel/cgroup.c linux-rpi/kernel/cgroup.c /** * css_tryget_from_dir - get corresponding css from the dentry of a cgroup dir * @dentry: directory dentry of interest -diff -Nur linux-3.15/mm/memcontrol.c linux-rpi/mm/memcontrol.c ---- linux-3.15/mm/memcontrol.c 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/mm/memcontrol.c 2014-06-11 21:05:41.000000000 +0200 -@@ -7157,6 +7157,7 @@ +diff -Nur linux-3.15.4/kernel/fork.c linux-rpi/kernel/fork.c +--- linux-3.15.4/kernel/fork.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/kernel/fork.c 2014-07-07 10:45:56.000000000 +0200 +@@ -1487,9 +1487,7 @@ + + total_forks++; + spin_unlock(¤t->sighand->siglock); +- syscall_tracepoint_update(p); + write_unlock_irq(&tasklist_lock); +- + proc_fork_connector(p); + cgroup_post_fork(p); + if (clone_flags & CLONE_THREAD) +diff -Nur linux-3.15.4/kernel/trace/trace.c linux-rpi/kernel/trace/trace.c +--- linux-3.15.4/kernel/trace/trace.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/kernel/trace/trace.c 2014-07-07 10:45:57.000000000 +0200 +@@ -1461,12 +1461,12 @@ + + void trace_stop_cmdline_recording(void); + +-static int trace_save_cmdline(struct task_struct *tsk) ++static void trace_save_cmdline(struct task_struct *tsk) + { + unsigned pid, idx; + + if (!tsk->pid || unlikely(tsk->pid > PID_MAX_DEFAULT)) +- return 0; ++ return; + + /* + * It's not the end of the world if we don't get +@@ -1475,7 +1475,7 @@ + * so if we miss here, then better luck next time. + */ + if (!arch_spin_trylock(&trace_cmdline_lock)) +- return 0; ++ return; + + idx = map_pid_to_cmdline[tsk->pid]; + if (idx == NO_CMDLINE_MAP) { +@@ -1500,8 +1500,6 @@ + memcpy(&saved_cmdlines[idx], tsk->comm, TASK_COMM_LEN); + + arch_spin_unlock(&trace_cmdline_lock); +- +- return 1; + } + + void trace_find_cmdline(int pid, char comm[]) +@@ -1543,8 +1541,9 @@ + if (!__this_cpu_read(trace_cmdline_save)) + return; + +- if (trace_save_cmdline(tsk)) +- __this_cpu_write(trace_cmdline_save, false); ++ __this_cpu_write(trace_cmdline_save, false); ++ ++ trace_save_cmdline(tsk); + } + + void +diff -Nur linux-3.15.4/kernel/watchdog.c linux-rpi/kernel/watchdog.c +--- linux-3.15.4/kernel/watchdog.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/kernel/watchdog.c 2014-07-07 10:45:57.000000000 +0200 +@@ -527,8 +527,10 @@ + int cpu; + + get_online_cpus(); ++ preempt_disable(); + for_each_online_cpu(cpu) + update_timers(cpu); ++ preempt_enable(); + put_online_cpus(); + } + +diff -Nur linux-3.15.4/lib/lz4/lz4_decompress.c linux-rpi/lib/lz4/lz4_decompress.c +--- linux-3.15.4/lib/lz4/lz4_decompress.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/lib/lz4/lz4_decompress.c 2014-07-07 10:45:57.000000000 +0200 +@@ -192,8 +192,6 @@ + int s = 255; + while ((ip < iend) && (s == 255)) { + s = *ip++; +- if (unlikely(length > (size_t)(length + s))) +- goto _output_error; + length += s; + } + } +@@ -234,8 +232,6 @@ + if (length == ML_MASK) { + while (ip < iend) { + int s = *ip++; +- if (unlikely(length > (size_t)(length + s))) +- goto _output_error; + length += s; + if (s == 255) + continue; +@@ -288,7 +284,7 @@ + + /* write overflow error detected */ + _output_error: +- return -1; ++ return (int) (-(((char *) ip) - source)); + } + + int lz4_decompress(const unsigned char *src, size_t *src_len, +diff -Nur linux-3.15.4/Makefile linux-rpi/Makefile +--- linux-3.15.4/Makefile 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/Makefile 2014-07-07 10:44:57.000000000 +0200 +@@ -1,6 +1,6 @@ + VERSION = 3 + PATCHLEVEL = 15 +-SUBLEVEL = 4 ++SUBLEVEL = 3 + EXTRAVERSION = + NAME = Shuffling Zombie Juror + +diff -Nur linux-3.15.4/mm/memcontrol.c linux-rpi/mm/memcontrol.c +--- linux-3.15.4/mm/memcontrol.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/mm/memcontrol.c 2014-07-07 10:45:57.000000000 +0200 +@@ -7158,6 +7158,7 @@ .bind = mem_cgroup_bind, .base_cftypes = mem_cgroup_files, .early_init = 0, @@ -98711,9 +101149,38 @@ diff -Nur linux-3.15/mm/memcontrol.c linux-rpi/mm/memcontrol.c }; #ifdef CONFIG_MEMCG_SWAP -diff -Nur linux-3.15/sound/arm/bcm2835.c linux-rpi/sound/arm/bcm2835.c ---- linux-3.15/sound/arm/bcm2835.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/sound/arm/bcm2835.c 2014-06-11 21:03:57.000000000 +0200 +diff -Nur linux-3.15.4/net/sunrpc/svc_xprt.c linux-rpi/net/sunrpc/svc_xprt.c +--- linux-3.15.4/net/sunrpc/svc_xprt.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/net/sunrpc/svc_xprt.c 2014-07-07 10:46:01.000000000 +0200 +@@ -730,8 +730,6 @@ + newxpt = xprt->xpt_ops->xpo_accept(xprt); + if (newxpt) + svc_add_new_temp_xprt(serv, newxpt); +- else +- module_put(xprt->xpt_class->xcl_owner); + } else if (xprt->xpt_ops->xpo_has_wspace(xprt)) { + /* XPT_DATA|XPT_DEFERRED case: */ + dprintk("svc: server %p, pool %u, transport %p, inuse=%d\n", +diff -Nur linux-3.15.4/scripts/recordmcount.h linux-rpi/scripts/recordmcount.h +--- linux-3.15.4/scripts/recordmcount.h 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/scripts/recordmcount.h 2014-04-13 17:33:26.000000000 +0200 +@@ -163,11 +163,11 @@ + + static int MIPS_is_fake_mcount(Elf_Rel const *rp) + { +- static Elf_Addr old_r_offset = ~(Elf_Addr)0; ++ static Elf_Addr old_r_offset; + Elf_Addr current_r_offset = _w(rp->r_offset); + int is_fake; + +- is_fake = (old_r_offset != ~(Elf_Addr)0) && ++ is_fake = old_r_offset && + (current_r_offset - old_r_offset == MIPS_FAKEMCOUNT_OFFSET); + old_r_offset = current_r_offset; + +diff -Nur linux-3.15.4/sound/arm/bcm2835.c linux-rpi/sound/arm/bcm2835.c +--- linux-3.15.4/sound/arm/bcm2835.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/sound/arm/bcm2835.c 2014-07-07 10:46:02.000000000 +0200 @@ -0,0 +1,420 @@ +/***************************************************************************** +* Copyright 2011 Broadcom Corporation. All rights reserved. @@ -99135,9 +101602,9 @@ diff -Nur linux-3.15/sound/arm/bcm2835.c linux-rpi/sound/arm/bcm2835.c +MODULE_DESCRIPTION("Alsa driver for BCM2835 chip"); +MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:bcm2835_alsa"); -diff -Nur linux-3.15/sound/arm/bcm2835-ctl.c linux-rpi/sound/arm/bcm2835-ctl.c ---- linux-3.15/sound/arm/bcm2835-ctl.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/sound/arm/bcm2835-ctl.c 2014-06-11 21:03:57.000000000 +0200 +diff -Nur linux-3.15.4/sound/arm/bcm2835-ctl.c linux-rpi/sound/arm/bcm2835-ctl.c +--- linux-3.15.4/sound/arm/bcm2835-ctl.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/sound/arm/bcm2835-ctl.c 2014-07-07 10:46:02.000000000 +0200 @@ -0,0 +1,323 @@ +/***************************************************************************** +* Copyright 2011 Broadcom Corporation. All rights reserved. @@ -99462,9 +101929,9 @@ diff -Nur linux-3.15/sound/arm/bcm2835-ctl.c linux-rpi/sound/arm/bcm2835-ctl.c + } + return 0; +} -diff -Nur linux-3.15/sound/arm/bcm2835.h linux-rpi/sound/arm/bcm2835.h ---- linux-3.15/sound/arm/bcm2835.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/sound/arm/bcm2835.h 2014-06-11 21:03:57.000000000 +0200 +diff -Nur linux-3.15.4/sound/arm/bcm2835.h linux-rpi/sound/arm/bcm2835.h +--- linux-3.15.4/sound/arm/bcm2835.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/sound/arm/bcm2835.h 2014-07-07 10:46:02.000000000 +0200 @@ -0,0 +1,166 @@ +/***************************************************************************** +* Copyright 2011 Broadcom Corporation. All rights reserved. @@ -99632,9 +102099,9 @@ diff -Nur linux-3.15/sound/arm/bcm2835.h linux-rpi/sound/arm/bcm2835.h +void bcm2835_audio_flush_playback_buffers(bcm2835_alsa_stream_t * alsa_stream); + +#endif /* __SOUND_ARM_BCM2835_H */ -diff -Nur linux-3.15/sound/arm/bcm2835-pcm.c linux-rpi/sound/arm/bcm2835-pcm.c ---- linux-3.15/sound/arm/bcm2835-pcm.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/sound/arm/bcm2835-pcm.c 2014-06-11 21:03:57.000000000 +0200 +diff -Nur linux-3.15.4/sound/arm/bcm2835-pcm.c linux-rpi/sound/arm/bcm2835-pcm.c +--- linux-3.15.4/sound/arm/bcm2835-pcm.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/sound/arm/bcm2835-pcm.c 2014-07-07 10:46:02.000000000 +0200 @@ -0,0 +1,518 @@ +/***************************************************************************** +* Copyright 2011 Broadcom Corporation. All rights reserved. @@ -100154,9 +102621,9 @@ diff -Nur linux-3.15/sound/arm/bcm2835-pcm.c linux-rpi/sound/arm/bcm2835-pcm.c + + return 0; +} -diff -Nur linux-3.15/sound/arm/bcm2835-vchiq.c linux-rpi/sound/arm/bcm2835-vchiq.c ---- linux-3.15/sound/arm/bcm2835-vchiq.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/sound/arm/bcm2835-vchiq.c 2014-06-11 21:03:57.000000000 +0200 +diff -Nur linux-3.15.4/sound/arm/bcm2835-vchiq.c linux-rpi/sound/arm/bcm2835-vchiq.c +--- linux-3.15.4/sound/arm/bcm2835-vchiq.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/sound/arm/bcm2835-vchiq.c 2014-07-07 10:46:02.000000000 +0200 @@ -0,0 +1,879 @@ +/***************************************************************************** +* Copyright 2011 Broadcom Corporation. All rights reserved. @@ -101037,9 +103504,9 @@ diff -Nur linux-3.15/sound/arm/bcm2835-vchiq.c linux-rpi/sound/arm/bcm2835-vchiq + +module_param(force_bulk, bool, 0444); +MODULE_PARM_DESC(force_bulk, "Force use of vchiq bulk for audio"); -diff -Nur linux-3.15/sound/arm/Kconfig linux-rpi/sound/arm/Kconfig ---- linux-3.15/sound/arm/Kconfig 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/sound/arm/Kconfig 2014-06-11 21:03:57.000000000 +0200 +diff -Nur linux-3.15.4/sound/arm/Kconfig linux-rpi/sound/arm/Kconfig +--- linux-3.15.4/sound/arm/Kconfig 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/sound/arm/Kconfig 2014-04-13 17:33:26.000000000 +0200 @@ -39,5 +39,12 @@ Say Y or M if you want to support any AC97 codec attached to the PXA2xx AC97 interface. @@ -101053,9 +103520,9 @@ diff -Nur linux-3.15/sound/arm/Kconfig linux-rpi/sound/arm/Kconfig + endif # SND_ARM -diff -Nur linux-3.15/sound/arm/Makefile linux-rpi/sound/arm/Makefile ---- linux-3.15/sound/arm/Makefile 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/sound/arm/Makefile 2014-06-11 21:03:57.000000000 +0200 +diff -Nur linux-3.15.4/sound/arm/Makefile linux-rpi/sound/arm/Makefile +--- linux-3.15.4/sound/arm/Makefile 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/sound/arm/Makefile 2014-07-07 10:46:02.000000000 +0200 @@ -14,3 +14,8 @@ obj-$(CONFIG_SND_PXA2XX_AC97) += snd-pxa2xx-ac97.o @@ -101065,9 +103532,9 @@ diff -Nur linux-3.15/sound/arm/Makefile linux-rpi/sound/arm/Makefile +snd-bcm2835-objs := bcm2835.o bcm2835-ctl.o bcm2835-pcm.o bcm2835-vchiq.o + +ccflags-y += -Idrivers/misc/vc04_services -Idrivers/misc/vc04_services/interface/vcos/linuxkernel -D__VCCOREVER__=0x04000000 -diff -Nur linux-3.15/sound/arm/vc_vchi_audioserv_defs.h linux-rpi/sound/arm/vc_vchi_audioserv_defs.h ---- linux-3.15/sound/arm/vc_vchi_audioserv_defs.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/sound/arm/vc_vchi_audioserv_defs.h 2014-06-11 21:03:57.000000000 +0200 +diff -Nur linux-3.15.4/sound/arm/vc_vchi_audioserv_defs.h linux-rpi/sound/arm/vc_vchi_audioserv_defs.h +--- linux-3.15.4/sound/arm/vc_vchi_audioserv_defs.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/sound/arm/vc_vchi_audioserv_defs.h 2014-04-13 17:33:26.000000000 +0200 @@ -0,0 +1,116 @@ +/***************************************************************************** +* Copyright 2011 Broadcom Corporation. All rights reserved. @@ -101185,9 +103652,258 @@ diff -Nur linux-3.15/sound/arm/vc_vchi_audioserv_defs.h linux-rpi/sound/arm/vc_v +} VC_AUDIO_MSG_T; + +#endif // _VC_AUDIO_DEFS_H_ -diff -Nur linux-3.15/sound/soc/bcm/bcm2708-i2s.c linux-rpi/sound/soc/bcm/bcm2708-i2s.c ---- linux-3.15/sound/soc/bcm/bcm2708-i2s.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/sound/soc/bcm/bcm2708-i2s.c 2014-06-11 21:03:58.000000000 +0200 +diff -Nur linux-3.15.4/sound/pci/hda/hda_intel.c linux-rpi/sound/pci/hda/hda_intel.c +--- linux-3.15.4/sound/pci/hda/hda_intel.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/sound/pci/hda/hda_intel.c 2014-07-07 10:46:02.000000000 +0200 +@@ -282,24 +282,6 @@ + [AZX_DRIVER_GENERIC] = "HD-Audio Generic", + }; + +- +-/* Intel HSW/BDW display HDA controller Extended Mode registers. +- * EM4 (M value) and EM5 (N Value) are used to convert CDClk (Core Display +- * Clock) to 24MHz BCLK: BCLK = CDCLK * M / N +- * The values will be lost when the display power well is disabled. +- */ +-#define ICH6_REG_EM4 0x100c +-#define ICH6_REG_EM5 0x1010 +- +-struct hda_intel { +- struct azx chip; +- +- /* HSW/BDW display HDA controller to restore BCLK from CDCLK */ +- unsigned int bclk_m; +- unsigned int bclk_n; +-}; +- +- + #ifdef CONFIG_X86 + static void __mark_pages_wc(struct azx *chip, struct snd_dma_buffer *dmab, bool on) + { +@@ -592,22 +574,6 @@ + #define azx_del_card_list(chip) /* NOP */ + #endif /* CONFIG_PM */ + +-static void haswell_save_bclk(struct azx *chip) +-{ +- struct hda_intel *hda = container_of(chip, struct hda_intel, chip); +- +- hda->bclk_m = azx_readw(chip, EM4); +- hda->bclk_n = azx_readw(chip, EM5); +-} +- +-static void haswell_restore_bclk(struct azx *chip) +-{ +- struct hda_intel *hda = container_of(chip, struct hda_intel, chip); +- +- azx_writew(chip, EM4, hda->bclk_m); +- azx_writew(chip, EM5, hda->bclk_n); +-} +- + #if defined(CONFIG_PM_SLEEP) || defined(SUPPORT_VGA_SWITCHEROO) + /* + * power management +@@ -634,13 +600,6 @@ + free_irq(chip->irq, chip); + chip->irq = -1; + } +- +- /* Save BCLK M/N values before they become invalid in D3. +- * Will test if display power well can be released now. +- */ +- if (chip->driver_caps & AZX_DCAPS_I915_POWERWELL) +- haswell_save_bclk(chip); +- + if (chip->msi) + pci_disable_msi(chip->pci); + pci_disable_device(pci); +@@ -660,10 +619,8 @@ + if (chip->disabled) + return 0; + +- if (chip->driver_caps & AZX_DCAPS_I915_POWERWELL) { ++ if (chip->driver_caps & AZX_DCAPS_I915_POWERWELL) + hda_display_power(true); +- haswell_restore_bclk(chip); +- } + pci_set_power_state(pci, PCI_D0); + pci_restore_state(pci); + if (pci_enable_device(pci) < 0) { +@@ -707,10 +664,8 @@ + azx_stop_chip(chip); + azx_enter_link_reset(chip); + azx_clear_irq_pending(chip); +- if (chip->driver_caps & AZX_DCAPS_I915_POWERWELL) { +- haswell_save_bclk(chip); ++ if (chip->driver_caps & AZX_DCAPS_I915_POWERWELL) + hda_display_power(false); +- } + return 0; + } + +@@ -728,10 +683,8 @@ + if (!(chip->driver_caps & AZX_DCAPS_PM_RUNTIME)) + return 0; + +- if (chip->driver_caps & AZX_DCAPS_I915_POWERWELL) { ++ if (chip->driver_caps & AZX_DCAPS_I915_POWERWELL) + hda_display_power(true); +- haswell_restore_bclk(chip); +- } + + /* Read STATESTS before controller reset */ + status = azx_readw(chip, STATESTS); +@@ -924,8 +877,6 @@ + static int azx_free(struct azx *chip) + { + struct pci_dev *pci = chip->pci; +- struct hda_intel *hda = container_of(chip, struct hda_intel, chip); +- + int i; + + if ((chip->driver_caps & AZX_DCAPS_PM_RUNTIME) +@@ -973,7 +924,7 @@ + hda_display_power(false); + hda_i915_exit(); + } +- kfree(hda); ++ kfree(chip); + + return 0; + } +@@ -1217,7 +1168,6 @@ + static struct snd_device_ops ops = { + .dev_free = azx_dev_free, + }; +- struct hda_intel *hda; + struct azx *chip; + int err; + +@@ -1227,14 +1177,13 @@ + if (err < 0) + return err; + +- hda = kzalloc(sizeof(*hda), GFP_KERNEL); +- if (!hda) { +- dev_err(card->dev, "Cannot allocate hda\n"); ++ chip = kzalloc(sizeof(*chip), GFP_KERNEL); ++ if (!chip) { ++ dev_err(card->dev, "Cannot allocate chip\n"); + pci_disable_device(pci); + return -ENOMEM; + } + +- chip = &hda->chip; + spin_lock_init(&chip->reg_lock); + mutex_init(&chip->open_mutex); + chip->card = card; +diff -Nur linux-3.15.4/sound/pci/hda/patch_hdmi.c linux-rpi/sound/pci/hda/patch_hdmi.c +--- linux-3.15.4/sound/pci/hda/patch_hdmi.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/sound/pci/hda/patch_hdmi.c 2014-07-07 10:46:02.000000000 +0200 +@@ -2208,7 +2208,7 @@ + struct hdmi_spec *spec = codec->spec; + int pin_idx; + +- codec->patch_ops.init(codec); ++ generic_hdmi_init(codec); + snd_hda_codec_resume_amp(codec); + snd_hda_codec_resume_cache(codec); + +diff -Nur linux-3.15.4/sound/pci/hda/patch_sigmatel.c linux-rpi/sound/pci/hda/patch_sigmatel.c +--- linux-3.15.4/sound/pci/hda/patch_sigmatel.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/sound/pci/hda/patch_sigmatel.c 2014-07-07 10:46:02.000000000 +0200 +@@ -122,12 +122,6 @@ + }; + + enum { +- STAC_92HD95_HP_LED, +- STAC_92HD95_HP_BASS, +- STAC_92HD95_MODELS +-}; +- +-enum { + STAC_925x_REF, + STAC_M1, + STAC_M1_2, +@@ -4134,48 +4128,6 @@ + {} /* terminator */ + }; + +-static void stac92hd95_fixup_hp_led(struct hda_codec *codec, +- const struct hda_fixup *fix, int action) +-{ +- struct sigmatel_spec *spec = codec->spec; +- +- if (action != HDA_FIXUP_ACT_PRE_PROBE) +- return; +- +- if (find_mute_led_cfg(codec, spec->default_polarity)) +- codec_dbg(codec, "mute LED gpio %d polarity %d\n", +- spec->gpio_led, +- spec->gpio_led_polarity); +-} +- +-static const struct hda_fixup stac92hd95_fixups[] = { +- [STAC_92HD95_HP_LED] = { +- .type = HDA_FIXUP_FUNC, +- .v.func = stac92hd95_fixup_hp_led, +- }, +- [STAC_92HD95_HP_BASS] = { +- .type = HDA_FIXUP_VERBS, +- .v.verbs = (const struct hda_verb[]) { +- {0x1a, 0x795, 0x00}, /* HPF to 100Hz */ +- {} +- }, +- .chained = true, +- .chain_id = STAC_92HD95_HP_LED, +- }, +-}; +- +-static const struct snd_pci_quirk stac92hd95_fixup_tbl[] = { +- SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x1911, "HP Spectre 13", STAC_92HD95_HP_BASS), +- {} /* terminator */ +-}; +- +-static const struct hda_model_fixup stac92hd95_models[] = { +- { .id = STAC_92HD95_HP_LED, .name = "hp-led" }, +- { .id = STAC_92HD95_HP_BASS, .name = "hp-bass" }, +- {} +-}; +- +- + static int stac_parse_auto_config(struct hda_codec *codec) + { + struct sigmatel_spec *spec = codec->spec; +@@ -4628,16 +4580,10 @@ + spec->gen.beep_nid = 0x19; /* digital beep */ + spec->pwr_nids = stac92hd95_pwr_nids; + spec->num_pwrs = ARRAY_SIZE(stac92hd95_pwr_nids); +- spec->default_polarity = 0; ++ spec->default_polarity = -1; /* no default cfg */ + + codec->patch_ops = stac_patch_ops; + +- snd_hda_pick_fixup(codec, stac92hd95_models, stac92hd95_fixup_tbl, +- stac92hd95_fixups); +- snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PRE_PROBE); +- +- stac_setup_gpio(codec); +- + err = stac_parse_auto_config(codec); + if (err < 0) { + stac_free(codec); +@@ -4646,8 +4592,6 @@ + + codec->proc_widget_hook = stac92hd_proc_hook; + +- snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PROBE); +- + return 0; + } + +diff -Nur linux-3.15.4/sound/soc/bcm/bcm2708-i2s.c linux-rpi/sound/soc/bcm/bcm2708-i2s.c +--- linux-3.15.4/sound/soc/bcm/bcm2708-i2s.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/sound/soc/bcm/bcm2708-i2s.c 2014-07-07 10:46:03.000000000 +0200 @@ -0,0 +1,946 @@ +/* + * ALSA SoC I2S Audio Layer for Broadcom BCM2708 SoC @@ -102135,9 +104851,9 @@ diff -Nur linux-3.15/sound/soc/bcm/bcm2708-i2s.c linux-rpi/sound/soc/bcm/bcm2708 +MODULE_DESCRIPTION("BCM2708 I2S interface"); +MODULE_AUTHOR("Florian Meier <florian.meier@koalo.de>"); +MODULE_LICENSE("GPL v2"); -diff -Nur linux-3.15/sound/soc/bcm/hifiberry_dac.c linux-rpi/sound/soc/bcm/hifiberry_dac.c ---- linux-3.15/sound/soc/bcm/hifiberry_dac.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/sound/soc/bcm/hifiberry_dac.c 2014-06-11 21:03:58.000000000 +0200 +diff -Nur linux-3.15.4/sound/soc/bcm/hifiberry_dac.c linux-rpi/sound/soc/bcm/hifiberry_dac.c +--- linux-3.15.4/sound/soc/bcm/hifiberry_dac.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/sound/soc/bcm/hifiberry_dac.c 2014-04-13 17:33:28.000000000 +0200 @@ -0,0 +1,100 @@ +/* + * ASoC Driver for HifiBerry DAC @@ -102239,9 +104955,9 @@ diff -Nur linux-3.15/sound/soc/bcm/hifiberry_dac.c linux-rpi/sound/soc/bcm/hifib +MODULE_AUTHOR("Florian Meier <florian.meier@koalo.de>"); +MODULE_DESCRIPTION("ASoC Driver for HifiBerry DAC"); +MODULE_LICENSE("GPL v2"); -diff -Nur linux-3.15/sound/soc/bcm/hifiberry_digi.c linux-rpi/sound/soc/bcm/hifiberry_digi.c ---- linux-3.15/sound/soc/bcm/hifiberry_digi.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/sound/soc/bcm/hifiberry_digi.c 2014-06-11 21:03:58.000000000 +0200 +diff -Nur linux-3.15.4/sound/soc/bcm/hifiberry_digi.c linux-rpi/sound/soc/bcm/hifiberry_digi.c +--- linux-3.15.4/sound/soc/bcm/hifiberry_digi.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/sound/soc/bcm/hifiberry_digi.c 2014-07-07 10:46:03.000000000 +0200 @@ -0,0 +1,153 @@ +/* + * ASoC Driver for HifiBerry Digi @@ -102396,9 +105112,9 @@ diff -Nur linux-3.15/sound/soc/bcm/hifiberry_digi.c linux-rpi/sound/soc/bcm/hifi +MODULE_AUTHOR("Daniel Matuschek <info@crazy-audio.com>"); +MODULE_DESCRIPTION("ASoC Driver for HifiBerry Digi"); +MODULE_LICENSE("GPL v2"); -diff -Nur linux-3.15/sound/soc/bcm/iqaudio-dac.c linux-rpi/sound/soc/bcm/iqaudio-dac.c ---- linux-3.15/sound/soc/bcm/iqaudio-dac.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/sound/soc/bcm/iqaudio-dac.c 2014-06-11 21:03:58.000000000 +0200 +diff -Nur linux-3.15.4/sound/soc/bcm/iqaudio-dac.c linux-rpi/sound/soc/bcm/iqaudio-dac.c +--- linux-3.15.4/sound/soc/bcm/iqaudio-dac.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/sound/soc/bcm/iqaudio-dac.c 2014-07-07 10:46:03.000000000 +0200 @@ -0,0 +1,111 @@ +/* + * ASoC Driver for IQaudIO DAC @@ -102511,9 +105227,9 @@ diff -Nur linux-3.15/sound/soc/bcm/iqaudio-dac.c linux-rpi/sound/soc/bcm/iqaudio +MODULE_AUTHOR("Florian Meier <florian.meier@koalo.de>"); +MODULE_DESCRIPTION("ASoC Driver for IQAudio DAC"); +MODULE_LICENSE("GPL v2"); -diff -Nur linux-3.15/sound/soc/bcm/Kconfig linux-rpi/sound/soc/bcm/Kconfig ---- linux-3.15/sound/soc/bcm/Kconfig 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/sound/soc/bcm/Kconfig 2014-06-11 21:05:44.000000000 +0200 +diff -Nur linux-3.15.4/sound/soc/bcm/Kconfig linux-rpi/sound/soc/bcm/Kconfig +--- linux-3.15.4/sound/soc/bcm/Kconfig 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/sound/soc/bcm/Kconfig 2014-07-07 10:46:03.000000000 +0200 @@ -7,3 +7,42 @@ Say Y or M if you want to add support for codecs attached to the BCM2835 I2S interface. You will also need @@ -102557,9 +105273,9 @@ diff -Nur linux-3.15/sound/soc/bcm/Kconfig linux-rpi/sound/soc/bcm/Kconfig + select SND_SOC_PCM512x + help + Say Y or M if you want to add support for IQaudIO-DAC. -diff -Nur linux-3.15/sound/soc/bcm/Makefile linux-rpi/sound/soc/bcm/Makefile ---- linux-3.15/sound/soc/bcm/Makefile 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/sound/soc/bcm/Makefile 2014-06-11 21:05:44.000000000 +0200 +diff -Nur linux-3.15.4/sound/soc/bcm/Makefile linux-rpi/sound/soc/bcm/Makefile +--- linux-3.15.4/sound/soc/bcm/Makefile 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/sound/soc/bcm/Makefile 2014-07-07 10:46:03.000000000 +0200 @@ -3,3 +3,18 @@ obj-$(CONFIG_SND_BCM2835_SOC_I2S) += snd-soc-bcm2835-i2s.o @@ -102579,9 +105295,9 @@ diff -Nur linux-3.15/sound/soc/bcm/Makefile linux-rpi/sound/soc/bcm/Makefile +obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DIGI) += snd-soc-hifiberry-digi.o +obj-$(CONFIG_SND_BCM2708_SOC_RPI_DAC) += snd-soc-rpi-dac.o +obj-$(CONFIG_SND_BCM2708_SOC_IQAUDIO_DAC) += snd-soc-iqaudio-dac.o -diff -Nur linux-3.15/sound/soc/bcm/rpi-dac.c linux-rpi/sound/soc/bcm/rpi-dac.c ---- linux-3.15/sound/soc/bcm/rpi-dac.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/sound/soc/bcm/rpi-dac.c 2014-06-11 21:03:58.000000000 +0200 +diff -Nur linux-3.15.4/sound/soc/bcm/rpi-dac.c linux-rpi/sound/soc/bcm/rpi-dac.c +--- linux-3.15.4/sound/soc/bcm/rpi-dac.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/sound/soc/bcm/rpi-dac.c 2014-04-13 17:33:28.000000000 +0200 @@ -0,0 +1,97 @@ +/* + * ASoC Driver for RPi-DAC. @@ -102680,9 +105396,9 @@ diff -Nur linux-3.15/sound/soc/bcm/rpi-dac.c linux-rpi/sound/soc/bcm/rpi-dac.c +MODULE_AUTHOR("Florian Meier <florian.meier@koalo.de>"); +MODULE_DESCRIPTION("ASoC Driver for RPi-DAC"); +MODULE_LICENSE("GPL v2"); -diff -Nur linux-3.15/sound/soc/codecs/Kconfig linux-rpi/sound/soc/codecs/Kconfig ---- linux-3.15/sound/soc/codecs/Kconfig 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/sound/soc/codecs/Kconfig 2014-06-11 21:05:44.000000000 +0200 +diff -Nur linux-3.15.4/sound/soc/codecs/Kconfig linux-rpi/sound/soc/codecs/Kconfig +--- linux-3.15.4/sound/soc/codecs/Kconfig 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/sound/soc/codecs/Kconfig 2014-07-07 10:46:03.000000000 +0200 @@ -69,6 +69,9 @@ select SND_SOC_PCM3008 select SND_SOC_PCM512x_I2C if I2C @@ -102709,9 +105425,9 @@ diff -Nur linux-3.15/sound/soc/codecs/Kconfig linux-rpi/sound/soc/codecs/Kconfig config SND_SOC_RT5631 tristate -diff -Nur linux-3.15/sound/soc/codecs/Makefile linux-rpi/sound/soc/codecs/Makefile ---- linux-3.15/sound/soc/codecs/Makefile 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/sound/soc/codecs/Makefile 2014-06-11 21:05:44.000000000 +0200 +diff -Nur linux-3.15.4/sound/soc/codecs/Makefile linux-rpi/sound/soc/codecs/Makefile +--- linux-3.15.4/sound/soc/codecs/Makefile 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/sound/soc/codecs/Makefile 2014-07-07 10:46:03.000000000 +0200 @@ -58,6 +58,9 @@ snd-soc-pcm512x-objs := pcm512x.o snd-soc-pcm512x-i2c-objs := pcm512x-i2c.o @@ -102732,9 +105448,9 @@ diff -Nur linux-3.15/sound/soc/codecs/Makefile linux-rpi/sound/soc/codecs/Makefi obj-$(CONFIG_SND_SOC_RT5631) += snd-soc-rt5631.o obj-$(CONFIG_SND_SOC_RT5640) += snd-soc-rt5640.o obj-$(CONFIG_SND_SOC_SGTL5000) += snd-soc-sgtl5000.o -diff -Nur linux-3.15/sound/soc/codecs/pcm1794a.c linux-rpi/sound/soc/codecs/pcm1794a.c ---- linux-3.15/sound/soc/codecs/pcm1794a.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/sound/soc/codecs/pcm1794a.c 2014-06-11 21:03:58.000000000 +0200 +diff -Nur linux-3.15.4/sound/soc/codecs/pcm1794a.c linux-rpi/sound/soc/codecs/pcm1794a.c +--- linux-3.15.4/sound/soc/codecs/pcm1794a.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/sound/soc/codecs/pcm1794a.c 2014-04-13 17:33:29.000000000 +0200 @@ -0,0 +1,62 @@ +/* + * Driver for the PCM1794A codec @@ -102798,9 +105514,9 @@ diff -Nur linux-3.15/sound/soc/codecs/pcm1794a.c linux-rpi/sound/soc/codecs/pcm1 +MODULE_DESCRIPTION("ASoC PCM1794A codec driver"); +MODULE_AUTHOR("Florian Meier <florian.meier@koalo.de>"); +MODULE_LICENSE("GPL v2"); -diff -Nur linux-3.15/sound/soc/codecs/pcm5102a.c linux-rpi/sound/soc/codecs/pcm5102a.c ---- linux-3.15/sound/soc/codecs/pcm5102a.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi/sound/soc/codecs/pcm5102a.c 2014-06-11 21:03:58.000000000 +0200 +diff -Nur linux-3.15.4/sound/soc/codecs/pcm5102a.c linux-rpi/sound/soc/codecs/pcm5102a.c +--- linux-3.15.4/sound/soc/codecs/pcm5102a.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi/sound/soc/codecs/pcm5102a.c 2014-04-13 17:33:29.000000000 +0200 @@ -0,0 +1,63 @@ +/* + * Driver for the PCM5102A codec @@ -102865,9 +105581,9 @@ diff -Nur linux-3.15/sound/soc/codecs/pcm5102a.c linux-rpi/sound/soc/codecs/pcm5 +MODULE_DESCRIPTION("ASoC PCM5102A codec driver"); +MODULE_AUTHOR("Florian Meier <florian.meier@koalo.de>"); +MODULE_LICENSE("GPL v2"); -diff -Nur linux-3.15/sound/soc/codecs/pcm512x.c linux-rpi/sound/soc/codecs/pcm512x.c ---- linux-3.15/sound/soc/codecs/pcm512x.c 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/sound/soc/codecs/pcm512x.c 2014-06-11 21:03:58.000000000 +0200 +diff -Nur linux-3.15.4/sound/soc/codecs/pcm512x.c linux-rpi/sound/soc/codecs/pcm512x.c +--- linux-3.15.4/sound/soc/codecs/pcm512x.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/sound/soc/codecs/pcm512x.c 2014-07-07 10:46:03.000000000 +0200 @@ -18,9 +18,11 @@ #include <linux/init.h> #include <linux/module.h> @@ -103248,9 +105964,9 @@ diff -Nur linux-3.15/sound/soc/codecs/pcm512x.c linux-rpi/sound/soc/codecs/pcm51 MODULE_DESCRIPTION("ASoC PCM512x codec driver"); MODULE_AUTHOR("Mark Brown <broonie@linaro.org>"); -diff -Nur linux-3.15/sound/soc/codecs/pcm512x.h linux-rpi/sound/soc/codecs/pcm512x.h ---- linux-3.15/sound/soc/codecs/pcm512x.h 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/sound/soc/codecs/pcm512x.h 2014-06-11 21:03:58.000000000 +0200 +diff -Nur linux-3.15.4/sound/soc/codecs/pcm512x.h linux-rpi/sound/soc/codecs/pcm512x.h +--- linux-3.15.4/sound/soc/codecs/pcm512x.h 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/sound/soc/codecs/pcm512x.h 2014-04-13 17:33:29.000000000 +0200 @@ -17,81 +17,66 @@ #ifndef _SND_SOC_PCM512X #define _SND_SOC_PCM512X @@ -103408,9 +106124,9 @@ diff -Nur linux-3.15/sound/soc/codecs/pcm512x.h linux-rpi/sound/soc/codecs/pcm51 -void pcm512x_remove(struct device *dev); - #endif -diff -Nur linux-3.15/sound/soc/codecs/wm8804.c linux-rpi/sound/soc/codecs/wm8804.c ---- linux-3.15/sound/soc/codecs/wm8804.c 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/sound/soc/codecs/wm8804.c 2014-06-11 21:05:44.000000000 +0200 +diff -Nur linux-3.15.4/sound/soc/codecs/wm8804.c linux-rpi/sound/soc/codecs/wm8804.c +--- linux-3.15.4/sound/soc/codecs/wm8804.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/sound/soc/codecs/wm8804.c 2014-07-07 10:46:03.000000000 +0200 @@ -63,6 +63,7 @@ struct regmap *regmap; struct regulator_bulk_data supplies[WM8804_NUM_SUPPLIES]; @@ -103496,9 +106212,9 @@ diff -Nur linux-3.15/sound/soc/codecs/wm8804.c linux-rpi/sound/soc/codecs/wm8804 .controls = wm8804_snd_controls, .num_controls = ARRAY_SIZE(wm8804_snd_controls), -diff -Nur linux-3.15/sound/soc/codecs/wm8804.h linux-rpi/sound/soc/codecs/wm8804.h ---- linux-3.15/sound/soc/codecs/wm8804.h 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/sound/soc/codecs/wm8804.h 2014-06-11 21:03:58.000000000 +0200 +diff -Nur linux-3.15.4/sound/soc/codecs/wm8804.h linux-rpi/sound/soc/codecs/wm8804.h +--- linux-3.15.4/sound/soc/codecs/wm8804.h 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/sound/soc/codecs/wm8804.h 2014-04-13 17:33:29.000000000 +0200 @@ -57,5 +57,9 @@ #define WM8804_CLKOUT_SRC_OSCCLK 4 @@ -103509,9 +106225,9 @@ diff -Nur linux-3.15/sound/soc/codecs/wm8804.h linux-rpi/sound/soc/codecs/wm8804 +#define WM8804_MCLKDIV_128FS 1 #endif /* _WM8804_H */ -diff -Nur linux-3.15/sound/soc/soc-core.c linux-rpi/sound/soc/soc-core.c ---- linux-3.15/sound/soc/soc-core.c 2014-06-08 20:19:54.000000000 +0200 -+++ linux-rpi/sound/soc/soc-core.c 2014-06-11 21:05:45.000000000 +0200 +diff -Nur linux-3.15.4/sound/soc/soc-core.c linux-rpi/sound/soc/soc-core.c +--- linux-3.15.4/sound/soc/soc-core.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/sound/soc/soc-core.c 2014-07-07 10:46:05.000000000 +0200 @@ -3024,8 +3024,8 @@ uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; @@ -103570,3 +106286,94 @@ diff -Nur linux-3.15/sound/soc/soc-core.c linux-rpi/sound/soc/soc-core.c } return 0; +diff -Nur linux-3.15.4/sound/usb/card.c linux-rpi/sound/usb/card.c +--- linux-3.15.4/sound/usb/card.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/sound/usb/card.c 2014-07-07 10:46:06.000000000 +0200 +@@ -307,11 +307,6 @@ + + static int snd_usb_audio_free(struct snd_usb_audio *chip) + { +- struct list_head *p, *n; +- +- list_for_each_safe(p, n, &chip->ep_list) +- snd_usb_endpoint_free(p); +- + mutex_destroy(&chip->mutex); + kfree(chip); + return 0; +@@ -590,7 +585,7 @@ + struct snd_usb_audio *chip) + { + struct snd_card *card; +- struct list_head *p; ++ struct list_head *p, *n; + + if (chip == (void *)-1L) + return; +@@ -603,16 +598,14 @@ + mutex_lock(®ister_mutex); + chip->num_interfaces--; + if (chip->num_interfaces <= 0) { +- struct snd_usb_endpoint *ep; +- + snd_card_disconnect(card); + /* release the pcm resources */ + list_for_each(p, &chip->pcm_list) { + snd_usb_stream_disconnect(p); + } + /* release the endpoint resources */ +- list_for_each_entry(ep, &chip->ep_list, list) { +- snd_usb_endpoint_release(ep); ++ list_for_each_safe(p, n, &chip->ep_list) { ++ snd_usb_endpoint_free(p); + } + /* release the midi resources */ + list_for_each(p, &chip->midi_list) { +diff -Nur linux-3.15.4/sound/usb/endpoint.c linux-rpi/sound/usb/endpoint.c +--- linux-3.15.4/sound/usb/endpoint.c 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/sound/usb/endpoint.c 2014-07-07 10:46:06.000000000 +0200 +@@ -987,30 +987,19 @@ + } + + /** +- * snd_usb_endpoint_release: Tear down an snd_usb_endpoint +- * +- * @ep: the endpoint to release +- * +- * This function does not care for the endpoint's use count but will tear +- * down all the streaming URBs immediately. +- */ +-void snd_usb_endpoint_release(struct snd_usb_endpoint *ep) +-{ +- release_urbs(ep, 1); +-} +- +-/** + * snd_usb_endpoint_free: Free the resources of an snd_usb_endpoint + * + * @ep: the list header of the endpoint to free + * +- * This free all resources of the given ep. ++ * This function does not care for the endpoint's use count but will tear ++ * down all the streaming URBs immediately and free all resources. + */ + void snd_usb_endpoint_free(struct list_head *head) + { + struct snd_usb_endpoint *ep; + + ep = list_entry(head, struct snd_usb_endpoint, list); ++ release_urbs(ep, 1); + kfree(ep); + } + +diff -Nur linux-3.15.4/sound/usb/endpoint.h linux-rpi/sound/usb/endpoint.h +--- linux-3.15.4/sound/usb/endpoint.h 2014-07-07 03:59:25.000000000 +0200 ++++ linux-rpi/sound/usb/endpoint.h 2014-07-07 10:46:06.000000000 +0200 +@@ -23,7 +23,6 @@ + void snd_usb_endpoint_sync_pending_stop(struct snd_usb_endpoint *ep); + int snd_usb_endpoint_activate(struct snd_usb_endpoint *ep); + void snd_usb_endpoint_deactivate(struct snd_usb_endpoint *ep); +-void snd_usb_endpoint_release(struct snd_usb_endpoint *ep); + void snd_usb_endpoint_free(struct list_head *head); + + int snd_usb_endpoint_implicit_feedback_sink(struct snd_usb_endpoint *ep); |