diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2016-05-03 21:27:47 +0200 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2016-05-03 21:28:11 +0200 |
commit | 47c9cdf20e99a373730f702a2eb48d05e1ae8460 (patch) | |
tree | 41108b45c398dd4ce9d35994418287e137977525 /target/arm | |
parent | 56fec7e956163e9613e7af071aa9acc289415c40 (diff) |
update rpi kernel patch, add mkknlimg back, more fixes
Diffstat (limited to 'target/arm')
-rw-r--r-- | target/arm/Makefile | 5 | ||||
-rw-r--r-- | target/arm/bcm28xx/patches/4.1.23/0001-raspberry-pi-github.patch (renamed from target/arm/bcm28xx/patches/4.1.22/0001-raspberry-pi-github.patch) | 14090 | ||||
-rw-r--r-- | target/arm/solidrun-imx6/patches/4.1.23/0001-xbian.patch (renamed from target/arm/solidrun-imx6/patches/4.1.22/0001-xbian.patch) | 0 | ||||
-rw-r--r-- | target/arm/solidrun-imx6/patches/4.1.23/0002-rt.patch (renamed from target/arm/solidrun-imx6/patches/4.1.22/0002-rt.patch) | 0 | ||||
-rw-r--r-- | target/arm/systems/raspberry-pi3 | 2 |
5 files changed, 11880 insertions, 2217 deletions
diff --git a/target/arm/Makefile b/target/arm/Makefile index faa4b6cd7..eabe2a786 100644 --- a/target/arm/Makefile +++ b/target/arm/Makefile @@ -116,7 +116,12 @@ endif endif kernel-strip: +ifeq ($(ADK_TARGET_BOARD_BCM28XX),y) + @echo adding DT trailer to kernel $(MAKE_TRACE) + PATH='$(HOST_PATH)' perl $(ADK_TOPDIR)/scripts/mkknlimg $(KERNEL) $(BUILD_DIR)/$(TARGET_KERNEL) +else @cp $(KERNEL) $(BUILD_DIR)/$(TARGET_KERNEL) +endif kernel-install: kernel-strip @cp $(BUILD_DIR)/$(TARGET_KERNEL) $(FW_DIR)/$(TARGET_KERNEL) diff --git a/target/arm/bcm28xx/patches/4.1.22/0001-raspberry-pi-github.patch b/target/arm/bcm28xx/patches/4.1.23/0001-raspberry-pi-github.patch index 05ca0e043..6f9089b88 100644 --- a/target/arm/bcm28xx/patches/4.1.22/0001-raspberry-pi-github.patch +++ b/target/arm/bcm28xx/patches/4.1.23/0001-raspberry-pi-github.patch @@ -1,6 +1,6 @@ -diff -Nur linux-4.1.22.orig/Documentation/ABI/stable/sysfs-driver-w1_ds28ea00 linux-4.1.22/Documentation/ABI/stable/sysfs-driver-w1_ds28ea00 ---- linux-4.1.22.orig/Documentation/ABI/stable/sysfs-driver-w1_ds28ea00 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/Documentation/ABI/stable/sysfs-driver-w1_ds28ea00 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/Documentation/ABI/stable/sysfs-driver-w1_ds28ea00 linux-4.1.23/Documentation/ABI/stable/sysfs-driver-w1_ds28ea00 +--- linux-4.1.23.orig/Documentation/ABI/stable/sysfs-driver-w1_ds28ea00 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/Documentation/ABI/stable/sysfs-driver-w1_ds28ea00 2016-05-02 22:53:49.000000000 +0200 @@ -0,0 +1,6 @@ +What: /sys/bus/w1/devices/.../w1_seq +Date: Apr 2015 @@ -8,9 +8,9 @@ diff -Nur linux-4.1.22.orig/Documentation/ABI/stable/sysfs-driver-w1_ds28ea00 li +Description: Support for the DS28EA00 chain sequence function + see Documentation/w1/slaves/w1_therm for detailed information +Users: any user space application which wants to communicate with DS28EA00 -diff -Nur linux-4.1.22.orig/Documentation/devicetree/bindings/clock/brcm,bcm2835-cprman.txt linux-4.1.22/Documentation/devicetree/bindings/clock/brcm,bcm2835-cprman.txt ---- linux-4.1.22.orig/Documentation/devicetree/bindings/clock/brcm,bcm2835-cprman.txt 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/Documentation/devicetree/bindings/clock/brcm,bcm2835-cprman.txt 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/Documentation/devicetree/bindings/clock/brcm,bcm2835-cprman.txt linux-4.1.23/Documentation/devicetree/bindings/clock/brcm,bcm2835-cprman.txt +--- linux-4.1.23.orig/Documentation/devicetree/bindings/clock/brcm,bcm2835-cprman.txt 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/Documentation/devicetree/bindings/clock/brcm,bcm2835-cprman.txt 2016-05-02 22:53:49.000000000 +0200 @@ -0,0 +1,45 @@ +Broadcom BCM2835 CPRMAN clocks + @@ -57,9 +57,9 @@ diff -Nur linux-4.1.22.orig/Documentation/devicetree/bindings/clock/brcm,bcm2835 + #address-cells = <1>; + #size-cells = <0>; + }; -diff -Nur linux-4.1.22.orig/Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt linux-4.1.22/Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt ---- linux-4.1.22.orig/Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt linux-4.1.23/Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt +--- linux-4.1.23.orig/Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt 2016-05-02 22:53:49.000000000 +0200 @@ -48,8 +48,8 @@ bcm2835_i2s: i2s@7e203000 { @@ -71,9 +71,9 @@ diff -Nur linux-4.1.22.orig/Documentation/devicetree/bindings/dma/brcm,bcm2835-d dmas = <&dma 2>, <&dma 3>; -diff -Nur linux-4.1.22.orig/Documentation/devicetree/bindings/input/touchscreen/focaltech-ft6236.txt linux-4.1.22/Documentation/devicetree/bindings/input/touchscreen/focaltech-ft6236.txt ---- linux-4.1.22.orig/Documentation/devicetree/bindings/input/touchscreen/focaltech-ft6236.txt 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/Documentation/devicetree/bindings/input/touchscreen/focaltech-ft6236.txt 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/Documentation/devicetree/bindings/input/touchscreen/focaltech-ft6236.txt linux-4.1.23/Documentation/devicetree/bindings/input/touchscreen/focaltech-ft6236.txt +--- linux-4.1.23.orig/Documentation/devicetree/bindings/input/touchscreen/focaltech-ft6236.txt 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/Documentation/devicetree/bindings/input/touchscreen/focaltech-ft6236.txt 2016-05-02 22:53:49.000000000 +0200 @@ -0,0 +1,35 @@ +* FocalTech FT6236 I2C touchscreen controller + @@ -110,9 +110,9 @@ diff -Nur linux-4.1.22.orig/Documentation/devicetree/bindings/input/touchscreen/ + touchscreen-inverted-x; + touchscreen-swapped-x-y; + }; -diff -Nur linux-4.1.22.orig/Documentation/devicetree/bindings/misc/brcm,bcm2835-smi-dev.txt linux-4.1.22/Documentation/devicetree/bindings/misc/brcm,bcm2835-smi-dev.txt ---- linux-4.1.22.orig/Documentation/devicetree/bindings/misc/brcm,bcm2835-smi-dev.txt 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/Documentation/devicetree/bindings/misc/brcm,bcm2835-smi-dev.txt 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/Documentation/devicetree/bindings/misc/brcm,bcm2835-smi-dev.txt linux-4.1.23/Documentation/devicetree/bindings/misc/brcm,bcm2835-smi-dev.txt +--- linux-4.1.23.orig/Documentation/devicetree/bindings/misc/brcm,bcm2835-smi-dev.txt 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/Documentation/devicetree/bindings/misc/brcm,bcm2835-smi-dev.txt 2016-05-02 22:53:49.000000000 +0200 @@ -0,0 +1,17 @@ +* Broadcom BCM2835 SMI character device driver. + @@ -131,9 +131,9 @@ diff -Nur linux-4.1.22.orig/Documentation/devicetree/bindings/misc/brcm,bcm2835- +- None. + + -diff -Nur linux-4.1.22.orig/Documentation/devicetree/bindings/misc/brcm,bcm2835-smi.txt linux-4.1.22/Documentation/devicetree/bindings/misc/brcm,bcm2835-smi.txt ---- linux-4.1.22.orig/Documentation/devicetree/bindings/misc/brcm,bcm2835-smi.txt 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/Documentation/devicetree/bindings/misc/brcm,bcm2835-smi.txt 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/Documentation/devicetree/bindings/misc/brcm,bcm2835-smi.txt linux-4.1.23/Documentation/devicetree/bindings/misc/brcm,bcm2835-smi.txt +--- linux-4.1.23.orig/Documentation/devicetree/bindings/misc/brcm,bcm2835-smi.txt 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/Documentation/devicetree/bindings/misc/brcm,bcm2835-smi.txt 2016-05-02 22:53:49.000000000 +0200 @@ -0,0 +1,48 @@ +* Broadcom BCM2835 SMI driver. + @@ -183,9 +183,9 @@ diff -Nur linux-4.1.22.orig/Documentation/devicetree/bindings/misc/brcm,bcm2835- + brcm,pull = <2 2 2 2 2 2 0 0 0 0 0 0 0 0>; +}; + -diff -Nur linux-4.1.22.orig/Documentation/devicetree/bindings/mtd/brcm,bcm2835-smi-nand.txt linux-4.1.22/Documentation/devicetree/bindings/mtd/brcm,bcm2835-smi-nand.txt ---- linux-4.1.22.orig/Documentation/devicetree/bindings/mtd/brcm,bcm2835-smi-nand.txt 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/Documentation/devicetree/bindings/mtd/brcm,bcm2835-smi-nand.txt 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/Documentation/devicetree/bindings/mtd/brcm,bcm2835-smi-nand.txt linux-4.1.23/Documentation/devicetree/bindings/mtd/brcm,bcm2835-smi-nand.txt +--- linux-4.1.23.orig/Documentation/devicetree/bindings/mtd/brcm,bcm2835-smi-nand.txt 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/Documentation/devicetree/bindings/mtd/brcm,bcm2835-smi-nand.txt 2016-05-02 22:53:49.000000000 +0200 @@ -0,0 +1,42 @@ +* BCM2835 SMI NAND flash + @@ -230,9 +230,9 @@ diff -Nur linux-4.1.22.orig/Documentation/devicetree/bindings/mtd/brcm,bcm2835-s + }; +}; \ No newline at end of file -diff -Nur linux-4.1.22.orig/Documentation/devicetree/bindings/sound/brcm,bcm2835-i2s.txt linux-4.1.22/Documentation/devicetree/bindings/sound/brcm,bcm2835-i2s.txt ---- linux-4.1.22.orig/Documentation/devicetree/bindings/sound/brcm,bcm2835-i2s.txt 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/Documentation/devicetree/bindings/sound/brcm,bcm2835-i2s.txt 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/Documentation/devicetree/bindings/sound/brcm,bcm2835-i2s.txt linux-4.1.23/Documentation/devicetree/bindings/sound/brcm,bcm2835-i2s.txt +--- linux-4.1.23.orig/Documentation/devicetree/bindings/sound/brcm,bcm2835-i2s.txt 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/Documentation/devicetree/bindings/sound/brcm,bcm2835-i2s.txt 2016-05-02 22:53:49.000000000 +0200 @@ -16,8 +16,8 @@ bcm2835_i2s: i2s@7e203000 { @@ -244,9 +244,9 @@ diff -Nur linux-4.1.22.orig/Documentation/devicetree/bindings/sound/brcm,bcm2835 dmas = <&dma 2>, <&dma 3>; -diff -Nur linux-4.1.22.orig/Documentation/devicetree/bindings/vendor-prefixes.txt linux-4.1.22/Documentation/devicetree/bindings/vendor-prefixes.txt ---- linux-4.1.22.orig/Documentation/devicetree/bindings/vendor-prefixes.txt 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/Documentation/devicetree/bindings/vendor-prefixes.txt 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/Documentation/devicetree/bindings/vendor-prefixes.txt linux-4.1.23/Documentation/devicetree/bindings/vendor-prefixes.txt +--- linux-4.1.23.orig/Documentation/devicetree/bindings/vendor-prefixes.txt 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/Documentation/devicetree/bindings/vendor-prefixes.txt 2016-05-02 22:53:49.000000000 +0200 @@ -76,6 +76,7 @@ excito Excito fcs Fairchild Semiconductor @@ -255,9 +255,23 @@ diff -Nur linux-4.1.22.orig/Documentation/devicetree/bindings/vendor-prefixes.tx fsl Freescale Semiconductor GEFanuc GE Fanuc Intelligent Platforms Embedded Systems, Inc. gef GE Fanuc Intelligent Platforms Embedded Systems, Inc. -diff -Nur linux-4.1.22.orig/Documentation/video4linux/bcm2835-v4l2.txt linux-4.1.22/Documentation/video4linux/bcm2835-v4l2.txt ---- linux-4.1.22.orig/Documentation/video4linux/bcm2835-v4l2.txt 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/Documentation/video4linux/bcm2835-v4l2.txt 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/Documentation/filesystems/efivarfs.txt linux-4.1.23/Documentation/filesystems/efivarfs.txt +--- linux-4.1.23.orig/Documentation/filesystems/efivarfs.txt 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/Documentation/filesystems/efivarfs.txt 2016-05-02 22:53:49.000000000 +0200 +@@ -14,10 +14,3 @@ + efivarfs is typically mounted like this, + + mount -t efivarfs none /sys/firmware/efi/efivars +- +-Due to the presence of numerous firmware bugs where removing non-standard +-UEFI variables causes the system firmware to fail to POST, efivarfs +-files that are not well-known standardized variables are created +-as immutable files. This doesn't prevent removal - "chattr -i" will work - +-but it does prevent this kind of failure from being accomplished +-accidentally. +diff -Nur linux-4.1.23.orig/Documentation/video4linux/bcm2835-v4l2.txt linux-4.1.23/Documentation/video4linux/bcm2835-v4l2.txt +--- linux-4.1.23.orig/Documentation/video4linux/bcm2835-v4l2.txt 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/Documentation/video4linux/bcm2835-v4l2.txt 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,60 @@ + +BCM2835 (aka Raspberry Pi) V4L2 driver @@ -319,9 +333,9 @@ diff -Nur linux-4.1.22.orig/Documentation/video4linux/bcm2835-v4l2.txt linux-4.1 +List of available formats: + +$ v4l2-ctl --list-formats -diff -Nur linux-4.1.22.orig/Documentation/w1/slaves/w1_therm linux-4.1.22/Documentation/w1/slaves/w1_therm ---- linux-4.1.22.orig/Documentation/w1/slaves/w1_therm 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/Documentation/w1/slaves/w1_therm 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/Documentation/w1/slaves/w1_therm linux-4.1.23/Documentation/w1/slaves/w1_therm +--- linux-4.1.23.orig/Documentation/w1/slaves/w1_therm 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/Documentation/w1/slaves/w1_therm 2016-05-02 22:53:50.000000000 +0200 @@ -11,12 +11,14 @@ Description ----------- @@ -349,9 +363,25 @@ diff -Nur linux-4.1.22.orig/Documentation/w1/slaves/w1_therm linux-4.1.22/Docume +knowledge of the bus ordering. Support is provided through the sysfs +w1_seq file. The file will contain a single line with an integer value +representing the device index in the bus starting at 0. -diff -Nur linux-4.1.22.orig/arch/arm/Kconfig linux-4.1.22/arch/arm/Kconfig ---- linux-4.1.22.orig/arch/arm/Kconfig 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/arch/arm/Kconfig 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/MAINTAINERS linux-4.1.23/MAINTAINERS +--- linux-4.1.23.orig/MAINTAINERS 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/MAINTAINERS 2016-05-02 22:53:50.000000000 +0200 +@@ -9533,11 +9533,9 @@ + F: drivers/net/ethernet/dlink/sundance.c + + SUPERH +-M: Yoshinori Sato <ysato@users.sourceforge.jp> +-M: Rich Felker <dalias@libc.org> + L: linux-sh@vger.kernel.org + Q: http://patchwork.kernel.org/project/linux-sh/list/ +-S: Maintained ++S: Orphan + F: Documentation/sh/ + F: arch/sh/ + F: drivers/sh/ +diff -Nur linux-4.1.23.orig/arch/arm/Kconfig linux-4.1.23/arch/arm/Kconfig +--- linux-4.1.23.orig/arch/arm/Kconfig 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/arm/Kconfig 2016-05-02 22:53:50.000000000 +0200 @@ -314,6 +314,42 @@ default ARCH_VERSATILE if !MMU default ARCH_MULTIPLATFORM if MMU @@ -405,9 +435,18 @@ diff -Nur linux-4.1.22.orig/arch/arm/Kconfig linux-4.1.22/arch/arm/Kconfig source "arch/arm/mach-mvebu/Kconfig" source "arch/arm/mach-alpine/Kconfig" -diff -Nur linux-4.1.22.orig/arch/arm/Kconfig.debug linux-4.1.22/arch/arm/Kconfig.debug ---- linux-4.1.22.orig/arch/arm/Kconfig.debug 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/arch/arm/Kconfig.debug 2016-04-29 18:02:45.000000000 +0200 +@@ -1717,7 +1756,7 @@ + + config UACCESS_WITH_MEMCPY + bool "Use kernel mem{cpy,set}() for {copy_to,clear}_user()" +- depends on MMU ++ depends on MMU && !CPU_SW_DOMAIN_PAN + default y if CPU_FEROCEON + help + Implement faster copy_to_user and clear_user methods for CPU +diff -Nur linux-4.1.23.orig/arch/arm/Kconfig.debug linux-4.1.23/arch/arm/Kconfig.debug +--- linux-4.1.23.orig/arch/arm/Kconfig.debug 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/arm/Kconfig.debug 2016-05-02 22:53:50.000000000 +0200 @@ -1196,6 +1196,14 @@ options; the platform specific options are deprecated and will be soon removed. @@ -423,9 +462,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/Kconfig.debug linux-4.1.22/arch/arm/Kconfig endchoice config DEBUG_AT91_UART -diff -Nur linux-4.1.22.orig/arch/arm/Makefile linux-4.1.22/arch/arm/Makefile ---- linux-4.1.22.orig/arch/arm/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/arch/arm/Makefile 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/Makefile linux-4.1.23/arch/arm/Makefile +--- linux-4.1.23.orig/arch/arm/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/arm/Makefile 2016-05-02 22:53:50.000000000 +0200 @@ -150,6 +150,8 @@ # Machine directory name. This list is sorted alphanumerically @@ -435,9 +474,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/Makefile linux-4.1.22/arch/arm/Makefile machine-$(CONFIG_ARCH_ALPINE) += alpine machine-$(CONFIG_ARCH_AT91) += at91 machine-$(CONFIG_ARCH_AXXIA) += axxia -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/Makefile linux-4.1.22/arch/arm/boot/dts/Makefile ---- linux-4.1.22.orig/arch/arm/boot/dts/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/arch/arm/boot/dts/Makefile 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/Makefile linux-4.1.23/arch/arm/boot/dts/Makefile +--- linux-4.1.23.orig/arch/arm/boot/dts/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/arm/boot/dts/Makefile 2016-05-02 22:53:50.000000000 +0200 @@ -1,5 +1,25 @@ ifeq ($(CONFIG_OF),y) @@ -482,9 +521,21 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/Makefile linux-4.1.22/arch/arm/boo +ifeq ($(RPI_DT_OVERLAYS),y) + DTC_FLAGS ?= -@ +endif -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts linux-4.1.22/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/armada-375.dtsi linux-4.1.23/arch/arm/boot/dts/armada-375.dtsi +--- linux-4.1.23.orig/arch/arm/boot/dts/armada-375.dtsi 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/arm/boot/dts/armada-375.dtsi 2016-05-02 22:53:50.000000000 +0200 +@@ -508,7 +508,7 @@ + }; + + sata@a0000 { +- compatible = "marvell,armada-370-sata"; ++ compatible = "marvell,orion-sata"; + reg = <0xa0000 0x5000>; + interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&gateclk 14>, <&gateclk 20>; +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts linux-4.1.23/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,144 @@ +/dts-v1/; + @@ -630,9 +681,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts linux-4.1.2 + sd_debug = <&sdhost>,"brcm,debug"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/bcm2708-rpi-b.dts linux-4.1.22/arch/arm/boot/dts/bcm2708-rpi-b.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/bcm2708-rpi-b.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/bcm2708-rpi-b.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/bcm2708-rpi-b.dts linux-4.1.23/arch/arm/boot/dts/bcm2708-rpi-b.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/bcm2708-rpi-b.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/bcm2708-rpi-b.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,134 @@ +/dts-v1/; + @@ -768,9 +819,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/bcm2708-rpi-b.dts linux-4.1.22/arc + sd_debug = <&sdhost>,"brcm,debug"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/bcm2708-rpi-cm.dts linux-4.1.22/arch/arm/boot/dts/bcm2708-rpi-cm.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/bcm2708-rpi-cm.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/bcm2708-rpi-cm.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/bcm2708-rpi-cm.dts linux-4.1.23/arch/arm/boot/dts/bcm2708-rpi-cm.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/bcm2708-rpi-cm.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/bcm2708-rpi-cm.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,96 @@ +/dts-v1/; + @@ -868,9 +919,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/bcm2708-rpi-cm.dts linux-4.1.22/ar + i2c2_baudrate = <&i2c2>,"clock-frequency:0"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/bcm2708-rpi-cm.dtsi linux-4.1.22/arch/arm/boot/dts/bcm2708-rpi-cm.dtsi ---- linux-4.1.22.orig/arch/arm/boot/dts/bcm2708-rpi-cm.dtsi 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/bcm2708-rpi-cm.dtsi 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/bcm2708-rpi-cm.dtsi linux-4.1.23/arch/arm/boot/dts/bcm2708-rpi-cm.dtsi +--- linux-4.1.23.orig/arch/arm/boot/dts/bcm2708-rpi-cm.dtsi 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/bcm2708-rpi-cm.dtsi 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,45 @@ +/include/ "bcm2708.dtsi" + @@ -917,9 +968,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/bcm2708-rpi-cm.dtsi linux-4.1.22/a + sd_overclock = <&mmc>,"brcm,overclock-50:0"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/bcm2708.dtsi linux-4.1.22/arch/arm/boot/dts/bcm2708.dtsi ---- linux-4.1.22.orig/arch/arm/boot/dts/bcm2708.dtsi 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/bcm2708.dtsi 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/bcm2708.dtsi linux-4.1.23/arch/arm/boot/dts/bcm2708.dtsi +--- linux-4.1.23.orig/arch/arm/boot/dts/bcm2708.dtsi 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/bcm2708.dtsi 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,25 @@ +/include/ "bcm2708_common.dtsi" + @@ -946,9 +997,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/bcm2708.dtsi linux-4.1.22/arch/arm + }; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/bcm2708_common.dtsi linux-4.1.22/arch/arm/boot/dts/bcm2708_common.dtsi ---- linux-4.1.22.orig/arch/arm/boot/dts/bcm2708_common.dtsi 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/bcm2708_common.dtsi 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/bcm2708_common.dtsi linux-4.1.23/arch/arm/boot/dts/bcm2708_common.dtsi +--- linux-4.1.23.orig/arch/arm/boot/dts/bcm2708_common.dtsi 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/bcm2708_common.dtsi 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,347 @@ +/include/ "skeleton.dtsi" + @@ -1297,9 +1348,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/bcm2708_common.dtsi linux-4.1.22/a + cache_line_size = <&vchiq>, "cache-line-size:0"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/bcm2709-rpi-2-b.dts linux-4.1.22/arch/arm/boot/dts/bcm2709-rpi-2-b.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/bcm2709-rpi-2-b.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/bcm2709-rpi-2-b.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/bcm2709-rpi-2-b.dts linux-4.1.23/arch/arm/boot/dts/bcm2709-rpi-2-b.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/bcm2709-rpi-2-b.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/bcm2709-rpi-2-b.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,144 @@ +/dts-v1/; + @@ -1445,9 +1496,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/bcm2709-rpi-2-b.dts linux-4.1.22/a + sd_debug = <&sdhost>,"brcm,debug"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/bcm2709.dtsi linux-4.1.22/arch/arm/boot/dts/bcm2709.dtsi ---- linux-4.1.22.orig/arch/arm/boot/dts/bcm2709.dtsi 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/bcm2709.dtsi 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/bcm2709.dtsi linux-4.1.23/arch/arm/boot/dts/bcm2709.dtsi +--- linux-4.1.23.orig/arch/arm/boot/dts/bcm2709.dtsi 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/bcm2709.dtsi 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,76 @@ +/include/ "bcm2708_common.dtsi" + @@ -1525,9 +1576,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/bcm2709.dtsi linux-4.1.22/arch/arm + <&v7_cpu3>, "clock-frequency:0"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/bcm2710-rpi-3-b.dts linux-4.1.22/arch/arm/boot/dts/bcm2710-rpi-3-b.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/bcm2710-rpi-3-b.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/bcm2710-rpi-3-b.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/bcm2710-rpi-3-b.dts linux-4.1.23/arch/arm/boot/dts/bcm2710-rpi-3-b.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/bcm2710-rpi-3-b.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/bcm2710-rpi-3-b.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,191 @@ +/dts-v1/; + @@ -1582,9 +1633,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/bcm2710-rpi-3-b.dts linux-4.1.22/a + }; + + uart1_pins: uart1_pins { -+ brcm,pins = <14 15>; -+ brcm,function = <2>; /* alt5=UART1 */ -+ brcm,pull = <0 2>; ++ brcm,pins; ++ brcm,function; ++ brcm,pull; + }; +}; + @@ -1720,9 +1771,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/bcm2710-rpi-3-b.dts linux-4.1.22/a + sd_debug = <&sdhost>,"brcm,debug"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/bcm2710.dtsi linux-4.1.22/arch/arm/boot/dts/bcm2710.dtsi ---- linux-4.1.22.orig/arch/arm/boot/dts/bcm2710.dtsi 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/bcm2710.dtsi 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/bcm2710.dtsi linux-4.1.23/arch/arm/boot/dts/bcm2710.dtsi +--- linux-4.1.23.orig/arch/arm/boot/dts/bcm2710.dtsi 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/bcm2710.dtsi 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,76 @@ +/include/ "bcm2708_common.dtsi" + @@ -1800,9 +1851,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/bcm2710.dtsi linux-4.1.22/arch/arm + <&v7_cpu3>, "clock-frequency:0"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts linux-4.1.22/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts linux-4.1.23/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts 2016-05-02 22:53:50.000000000 +0200 @@ -4,27 +4,40 @@ / { compatible = "raspberrypi,model-b-plus", "brcm,bcm2835"; @@ -1861,9 +1912,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts linux-4.1.2 + pwr_led_trigger = <&pwr_led>,"linux,default-trigger"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/bcm2835-rpi-b.dts linux-4.1.22/arch/arm/boot/dts/bcm2835-rpi-b.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/bcm2835-rpi-b.dts 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/arch/arm/boot/dts/bcm2835-rpi-b.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/bcm2835-rpi-b.dts linux-4.1.23/arch/arm/boot/dts/bcm2835-rpi-b.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/bcm2835-rpi-b.dts 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/arm/boot/dts/bcm2835-rpi-b.dts 2016-05-02 22:53:50.000000000 +0200 @@ -5,19 +5,28 @@ compatible = "raspberrypi,model-b", "brcm,bcm2835"; model = "Raspberry Pi Model B"; @@ -1903,9 +1954,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/bcm2835-rpi-b.dts linux-4.1.22/arc + act_led_activelow = <&act_led>,"gpios:8"; }; }; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/bcm2835-rpi.dtsi linux-4.1.22/arch/arm/boot/dts/bcm2835-rpi.dtsi ---- linux-4.1.22.orig/arch/arm/boot/dts/bcm2835-rpi.dtsi 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/arch/arm/boot/dts/bcm2835-rpi.dtsi 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/bcm2835-rpi.dtsi linux-4.1.23/arch/arm/boot/dts/bcm2835-rpi.dtsi +--- linux-4.1.23.orig/arch/arm/boot/dts/bcm2835-rpi.dtsi 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/arm/boot/dts/bcm2835-rpi.dtsi 2016-05-02 22:53:50.000000000 +0200 @@ -1,51 +1,133 @@ /include/ "bcm2835.dtsi" @@ -2058,9 +2109,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/bcm2835-rpi.dtsi linux-4.1.22/arch + audio = <&audio>,"status"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/bcm2835.dtsi linux-4.1.22/arch/arm/boot/dts/bcm2835.dtsi ---- linux-4.1.22.orig/arch/arm/boot/dts/bcm2835.dtsi 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/arch/arm/boot/dts/bcm2835.dtsi 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/bcm2835.dtsi linux-4.1.23/arch/arm/boot/dts/bcm2835.dtsi +--- linux-4.1.23.orig/arch/arm/boot/dts/bcm2835.dtsi 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/arm/boot/dts/bcm2835.dtsi 2016-05-02 22:53:50.000000000 +0200 @@ -6,14 +6,15 @@ interrupt-parent = <&intc>; @@ -2177,10 +2228,10 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/bcm2835.dtsi linux-4.1.22/arch/arm }; clk_i2c: clock@1 { -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/Makefile linux-4.1.22/arch/arm/boot/dts/overlays/Makefile ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/Makefile 2016-04-29 18:02:45.000000000 +0200 -@@ -0,0 +1,84 @@ +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/Makefile linux-4.1.23/arch/arm/boot/dts/overlays/Makefile +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/Makefile 2016-05-02 22:53:50.000000000 +0200 +@@ -0,0 +1,87 @@ +ifeq ($(CONFIG_OF),y) + +# Overlays for the Raspberry Pi platform @@ -2198,6 +2249,8 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/Makefile linux-4.1.22/arc +dtb-$(RPI_DT_OVERLAYS) += ads7846-overlay.dtb +dtb-$(RPI_DT_OVERLAYS) += at86rf233-overlay.dtb +dtb-$(RPI_DT_OVERLAYS) += bmp085_i2c-sensor-overlay.dtb ++dtb-$(RPI_DT_OVERLAYS) += boomberry-dac-overlay.dtb ++dtb-$(RPI_DT_OVERLAYS) += boomberry-digi-overlay.dtb +dtb-$(RPI_DT_OVERLAYS) += dht11-overlay.dtb +dtb-$(RPI_DT_OVERLAYS) += enc28j60-overlay.dtb +dtb-$(RPI_DT_OVERLAYS) += gpio-ir-overlay.dtb @@ -2220,6 +2273,7 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/Makefile linux-4.1.22/arc +dtb-$(RPI_DT_OVERLAYS) += mcp2515-can1-overlay.dtb +dtb-$(RPI_DT_OVERLAYS) += mmc-overlay.dtb +dtb-$(RPI_DT_OVERLAYS) += mz61581-overlay.dtb ++dtb-$(RPI_DT_OVERLAYS) += pi3-act-led-overlay.dtb +dtb-$(RPI_DT_OVERLAYS) += pi3-disable-bt-overlay.dtb +dtb-$(RPI_DT_OVERLAYS) += pi3-miniuart-bt-overlay.dtb +dtb-$(RPI_DT_OVERLAYS) += piscreen-overlay.dtb @@ -2265,10 +2319,10 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/Makefile linux-4.1.22/arc +ifeq ($(RPI_DT_OVERLAYS),y) + DTC_FLAGS ?= -@ +endif -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/README linux-4.1.22/arch/arm/boot/dts/overlays/README ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/README 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/README 2016-04-29 18:02:45.000000000 +0200 -@@ -0,0 +1,863 @@ +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/README linux-4.1.23/arch/arm/boot/dts/overlays/README +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/README 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/README 2016-05-02 22:53:50.000000000 +0200 +@@ -0,0 +1,914 @@ +Introduction +============ + @@ -2407,12 +2461,14 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/README linux-4.1.22/arch/ + + act_led_activelow Set to "on" to invert the sense of the LED + (default "off") ++ N.B. For Pi3 see pi3-act-led overlay. + + act_led_gpio Set which GPIO to use for the activity LED + (in case you want to connect it to an external + device) + (default "16" on a non-Plus board, "47" on a + Plus or Pi 2) ++ N.B. For Pi3 see pi3-act-led overlay. + + pwr_led_trigger + pwr_led_activelow @@ -2474,6 +2530,32 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/README linux-4.1.22/arch/ +Params: <None> + + ++Name: boomberry-dac ++Info: Configures the BoomBerry DAC HAT, Amp HAT, DAC Zero and Amp Zero audio ++ cards ++Load: dtoverlay=boomberry-dac,<param>=<val> ++Params: 24db_digital_gain Allow gain to be applied via the PCM512x codec ++ Digital volume control. Enable with ++ "dtoverlay=boomberry-dac,24db_digital_gain" ++ (The default behaviour is that the Digital ++ volume control is limited to a maximum of ++ 0dB. ie. it can attenuate but not provide ++ gain. For most users, this will be desired ++ as it will prevent clipping. By appending ++ the 24dB_digital_gain parameter, the Digital ++ volume control will allow up to 24dB of ++ gain. If this parameter is enabled, it is the ++ responsibility of the user to ensure that ++ the Digital volume control is set to a value ++ that does not result in clipping/distortion!) ++ ++ ++Name: boomberry-digi ++Info: Configures the BoomBerry Digi HAT and Digi Zero audio cards ++Load: dtoverlay=boomberry-digi ++Params: <None> ++ ++ +Name: dht11 +Info: Overlay for the DHT11/DHT21/DHT22 humidity/temperature sensors + Also sometimes found with the part number(s) AM230x. @@ -2613,8 +2695,12 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/README linux-4.1.22/arch/ +Load: dtoverlay=i2c-rtc,<param>=<val> +Params: ds1307 Select the DS1307 device + ++ ds1339 Select the DS1339 device ++ + ds3231 Select the DS3231 device + ++ mcp7940x Select the MCP7940x device ++ + mcp7941x Select the MCP7941x device + + pcf2127 Select the PCF2127 device @@ -2623,6 +2709,8 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/README linux-4.1.22/arch/ + + pcf8563 Select the PCF8563 device + ++ trickle-resistor-ohms Resistor value for trickle charge (DS1339-only) ++ + +Name: i2c0-bcm2708 +Info: Enable the i2c_bcm2708 driver for the i2c0 bus @@ -2749,6 +2837,23 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/README linux-4.1.22/arch/ +[ The pcf8563-rtc overlay has been deleted. See i2c-rtc. ] + + ++Name: pi3-act-led ++Info: Pi3 uses a GPIO expander to drive the LEDs which can only be accessed ++ from the VPU. There is a special driver for this with a separate DT ++ node, which has the unfortunate consequence of breaking the ++ act_led_gpio and act_led_activelow dtparams. ++ This overlay changes the GPIO controller back to the standard one and ++ restores the dtparams. ++Load: dtoverlay=pi3-act-led,<param>=<val> ++Params: activelow Set to "on" to invert the sense of the LED ++ (default "off") ++ ++ gpio Set which GPIO to use for the activity LED ++ (in case you want to connect it to an external ++ device) ++ REQUIRED ++ ++ +Name: pi3-disable-bt +Info: Disable Pi3 Bluetooth and restore UART0/ttyAMA0 over GPIOs 14 & 15 + N.B. To disable the systemd service that initialises the modem so it @@ -3132,9 +3237,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/README linux-4.1.22/arch/ +Raspberry Pi. There is a more complete explanation here: + +http://www.raspberrypi.org/documentation/configuration/device-tree.md -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/ads7846-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/ads7846-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/ads7846-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/ads7846-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/ads7846-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/ads7846-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/ads7846-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/ads7846-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,83 @@ +/* + * Generic Device Tree overlay for the ADS7846 touch controller @@ -3219,9 +3324,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/ads7846-overlay.dts linux + xohms = <&ads7846>,"ti,x-plate-ohms;0"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/at86rf233-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/at86rf233-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/at86rf233-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/at86rf233-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/at86rf233-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/at86rf233-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/at86rf233-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/at86rf233-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,54 @@ +/dts-v1/; +/plugin/; @@ -3277,9 +3382,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/at86rf233-overlay.dts lin + trim = <&lowpan0>, "xtal-trim.0"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/bmp085_i2c-sensor-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/bmp085_i2c-sensor-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/bmp085_i2c-sensor-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/bmp085_i2c-sensor-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/bmp085_i2c-sensor-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/bmp085_i2c-sensor-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/bmp085_i2c-sensor-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/bmp085_i2c-sensor-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,23 @@ +// Definitions for BMP085/BMP180 digital barometric pressure and temperature sensors from Bosch Sensortec +/dts-v1/; @@ -3304,9 +3409,99 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/bmp085_i2c-sensor-overlay + }; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/dht11-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/dht11-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/dht11-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/dht11-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/boomberry-dac-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/boomberry-dac-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/boomberry-dac-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/boomberry-dac-overlay.dts 2016-05-02 22:53:50.000000000 +0200 +@@ -0,0 +1,43 @@ ++// Definitions for BoomBerry DAC ++/dts-v1/; ++/plugin/; ++ ++/ { ++ compatible = "brcm,bcm2708"; ++ ++ fragment@0 { ++ target = <&sound>; ++ frag0: __overlay__ { ++ compatible = "boomberry,boomberry-dac"; ++ i2s-controller = <&i2s>; ++ status = "okay"; ++ }; ++ }; ++ ++ fragment@1 { ++ target = <&i2s>; ++ __overlay__ { ++ status = "okay"; ++ }; ++ }; ++ ++ fragment@2 { ++ target = <&i2c1>; ++ __overlay__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ status = "okay"; ++ ++ pcm5122@4d { ++ #sound-dai-cells = <0>; ++ compatible = "ti,pcm5122"; ++ reg = <0x4d>; ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ __overrides__ { ++ 24db_digital_gain = <&frag0>,"boomberry,24db_digital_gain?"; ++ }; ++}; +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/boomberry-digi-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/boomberry-digi-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/boomberry-digi-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/boomberry-digi-overlay.dts 2016-05-02 22:53:50.000000000 +0200 +@@ -0,0 +1,39 @@ ++// Definitions for BoomBerry Digi ++/dts-v1/; ++/plugin/; ++ ++/ { ++ compatible = "brcm,bcm2708"; ++ ++ fragment@0 { ++ target = <&sound>; ++ __overlay__ { ++ compatible = "boomberry,boomberry-digi"; ++ i2s-controller = <&i2s>; ++ status = "okay"; ++ }; ++ }; ++ ++ fragment@1 { ++ target = <&i2s>; ++ __overlay__ { ++ status = "okay"; ++ }; ++ }; ++ ++ fragment@2 { ++ target = <&i2c1>; ++ __overlay__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ status = "okay"; ++ ++ wm8804@3b { ++ #sound-dai-cells = <0>; ++ compatible = "wlf,wm8804"; ++ reg = <0x3b>; ++ status = "okay"; ++ }; ++ }; ++ }; ++}; +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/dht11-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/dht11-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/dht11-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/dht11-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,39 @@ +/* + * Overlay for the DHT11/21/22 humidity/temperature sensor modules. @@ -3347,9 +3542,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/dht11-overlay.dts linux-4 + <&dht11>,"gpios:4"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/enc28j60-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/enc28j60-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/enc28j60-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/enc28j60-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/enc28j60-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/enc28j60-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/enc28j60-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/enc28j60-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,50 @@ +// Overlay for the Microchip ENC28J60 Ethernet Controller +/dts-v1/; @@ -3401,9 +3596,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/enc28j60-overlay.dts linu + speed = <ð1>, "spi-max-frequency:0"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/gpio-ir-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/gpio-ir-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/gpio-ir-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/gpio-ir-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/gpio-ir-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/gpio-ir-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/gpio-ir-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/gpio-ir-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,45 @@ +// Definitions for ir-gpio module +/dts-v1/; @@ -3450,9 +3645,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/gpio-ir-overlay.dts linux + rc-map-name = <&gpio_ir>,"linux,rc-map-name"; // default rc map + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/gpio-poweroff-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/gpio-poweroff-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/gpio-poweroff-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/gpio-poweroff-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/gpio-poweroff-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/gpio-poweroff-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/gpio-poweroff-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/gpio-poweroff-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,34 @@ +// Definitions for gpio-poweroff module +/dts-v1/; @@ -3488,9 +3683,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/gpio-poweroff-overlay.dts + active_low = <&power_ctrl>,"gpios:8"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/hifiberry-amp-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/hifiberry-amp-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/hifiberry-amp-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/hifiberry-amp-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/hifiberry-amp-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/hifiberry-amp-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/hifiberry-amp-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/hifiberry-amp-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,39 @@ +// Definitions for HiFiBerry Amp/Amp+ +/dts-v1/; @@ -3531,9 +3726,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/hifiberry-amp-overlay.dts + }; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/hifiberry-dac-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/hifiberry-dac-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/hifiberry-dac-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/hifiberry-dac-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/hifiberry-dac-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/hifiberry-dac-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/hifiberry-dac-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/hifiberry-dac-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,34 @@ +// Definitions for HiFiBerry DAC +/dts-v1/; @@ -3569,9 +3764,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/hifiberry-dac-overlay.dts + }; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/hifiberry-dacplus-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/hifiberry-dacplus-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/hifiberry-dacplus-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/hifiberry-dacplus-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/hifiberry-dacplus-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/hifiberry-dacplus-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/hifiberry-dacplus-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/hifiberry-dacplus-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,54 @@ +// Definitions for HiFiBerry DAC+ +/dts-v1/; @@ -3627,9 +3822,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/hifiberry-dacplus-overlay + 24db_digital_gain = <&frag1>,"hifiberry,24db_digital_gain?"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/hifiberry-digi-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/hifiberry-digi-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/hifiberry-digi-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/hifiberry-digi-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/hifiberry-digi-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/hifiberry-digi-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/hifiberry-digi-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/hifiberry-digi-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,39 @@ +// Definitions for HiFiBerry Digi +/dts-v1/; @@ -3670,9 +3865,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/hifiberry-digi-overlay.dt + }; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/hy28a-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/hy28a-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/hy28a-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/hy28a-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/hy28a-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/hy28a-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/hy28a-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/hy28a-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,87 @@ +/* + * Device Tree overlay for HY28A display @@ -3761,9 +3956,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/hy28a-overlay.dts linux-4 + <&hy28a_pins>, "brcm,pins:2"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/hy28b-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/hy28b-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/hy28b-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/hy28b-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/hy28b-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/hy28b-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/hy28b-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/hy28b-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,142 @@ +/* + * Device Tree overlay for HY28b display shield by Texy @@ -3907,9 +4102,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/hy28b-overlay.dts linux-4 + <&hy28b_pins>, "brcm,pins:2"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/i2c-gpio-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/i2c-gpio-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/i2c-gpio-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/i2c-gpio-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/i2c-gpio-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/i2c-gpio-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/i2c-gpio-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/i2c-gpio-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,28 @@ +// Overlay for i2c_gpio bitbanging host bus. +/dts-v1/; @@ -3939,10 +4134,10 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/i2c-gpio-overlay.dts linu + }; +}; + -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts 2016-04-29 18:02:45.000000000 +0200 -@@ -0,0 +1,55 @@ +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts 2016-05-02 22:53:50.000000000 +0200 +@@ -0,0 +1,69 @@ +// Definitions for several I2C based Real Time Clocks +/dts-v1/; +/plugin/; @@ -3962,6 +4157,17 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts linux + reg = <0x68>; + status = "disable"; + }; ++ ds1339: ds1339@68 { ++ compatible = "dallas,ds1339"; ++ trickle-resistor-ohms = <0>; ++ reg = <0x68>; ++ status = "disable"; ++ }; ++ mcp7940x: mcp7940x@6f { ++ compatible = "microchip,mcp7940x"; ++ reg = <0x6f>; ++ status = "disable"; ++ }; + mcp7941x: mcp7941x@6f { + compatible = "microchip,mcp7941x"; + reg = <0x6f>; @@ -3991,16 +4197,19 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts linux + }; + __overrides__ { + ds1307 = <&ds1307>,"status"; ++ ds1339 = <&ds1339>,"status"; + ds3231 = <&ds3231>,"status"; ++ mcp7940x = <&mcp7940x>,"status"; + mcp7941x = <&mcp7941x>,"status"; + pcf2127 = <&pcf2127>,"status"; + pcf8523 = <&pcf8523>,"status"; + pcf8563 = <&pcf8563>,"status"; ++ trickle-resistor-ohms = <&ds1339>,"trickle-resistor-ohms:0"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/i2c0-bcm2708-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/i2c0-bcm2708-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/i2c0-bcm2708-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/i2c0-bcm2708-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/i2c0-bcm2708-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/i2c0-bcm2708-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/i2c0-bcm2708-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/i2c0-bcm2708-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,36 @@ +/* + * Device tree overlay for i2c_bcm2708, i2c0 bus @@ -4038,9 +4247,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/i2c0-bcm2708-overlay.dts + scl0_pin = <&i2c0_pins>,"brcm,pins:4"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/i2c1-bcm2708-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/i2c1-bcm2708-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/i2c1-bcm2708-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/i2c1-bcm2708-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/i2c1-bcm2708-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/i2c1-bcm2708-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/i2c1-bcm2708-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/i2c1-bcm2708-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,37 @@ +/* + * Device tree overlay for i2c_bcm2708, i2c1 bus @@ -4079,9 +4288,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/i2c1-bcm2708-overlay.dts + pin_func = <&i2c1_pins>,"brcm,function:0"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/i2s-mmap-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/i2s-mmap-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/i2s-mmap-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/i2s-mmap-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/i2s-mmap-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/i2s-mmap-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/i2s-mmap-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/i2s-mmap-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,13 @@ +/dts-v1/; +/plugin/; @@ -4096,9 +4305,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/i2s-mmap-overlay.dts linu + }; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/iqaudio-dac-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/iqaudio-dac-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/iqaudio-dac-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/iqaudio-dac-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/iqaudio-dac-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/iqaudio-dac-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/iqaudio-dac-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/iqaudio-dac-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,39 @@ +// Definitions for IQaudIO DAC +/dts-v1/; @@ -4139,9 +4348,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/iqaudio-dac-overlay.dts l + }; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/iqaudio-dacplus-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/iqaudio-dacplus-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/iqaudio-dacplus-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/iqaudio-dacplus-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/iqaudio-dacplus-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/iqaudio-dacplus-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/iqaudio-dacplus-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/iqaudio-dacplus-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,43 @@ +// Definitions for IQaudIO DAC+ +/dts-v1/; @@ -4186,9 +4395,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/iqaudio-dacplus-overlay.d + 24db_digital_gain = <&frag0>,"iqaudio,24db_digital_gain?"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/lirc-rpi-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/lirc-rpi-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/lirc-rpi-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/lirc-rpi-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/lirc-rpi-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/lirc-rpi-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/lirc-rpi-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/lirc-rpi-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,57 @@ +// Definitions for lirc-rpi module +/dts-v1/; @@ -4247,9 +4456,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/lirc-rpi-overlay.dts linu + debug = <&lirc_rpi>,"rpi,debug:0"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/mcp2515-can0-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/mcp2515-can0-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/mcp2515-can0-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/mcp2515-can0-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/mcp2515-can0-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/mcp2515-can0-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/mcp2515-can0-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/mcp2515-can0-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,69 @@ +/* + * Device tree overlay for mcp251x/can0 on spi0.0 @@ -4320,9 +4529,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/mcp2515-can0-overlay.dts + interrupt = <&can0_pins>,"brcm,pins:0",<&can0>,"interrupts:0"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/mcp2515-can1-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/mcp2515-can1-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/mcp2515-can1-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/mcp2515-can1-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/mcp2515-can1-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/mcp2515-can1-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/mcp2515-can1-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/mcp2515-can1-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,69 @@ +/* + * Device tree overlay for mcp251x/can1 on spi0.1 edited by petit_miner @@ -4393,9 +4602,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/mcp2515-can1-overlay.dts + interrupt = <&can1_pins>,"brcm,pins:0",<&can1>,"interrupts:0"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/mmc-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/mmc-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/mmc-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/mmc-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/mmc-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/mmc-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/mmc-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/mmc-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,47 @@ +/dts-v1/; +/plugin/; @@ -4444,9 +4653,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/mmc-overlay.dts linux-4.1 + overclock_50 = <&frag0>,"brcm,overclock-50:0"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/mz61581-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/mz61581-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/mz61581-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/mz61581-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/mz61581-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/mz61581-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/mz61581-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/mz61581-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,111 @@ +/* + * Device Tree overlay for MZ61581-PI-EXT 2014.12.28 by Tontec @@ -4559,10 +4768,41 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/mz61581-overlay.dts linux + xohms = <&mz61581_ts>,"ti,x-plate-ohms;0"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/pi3-disable-bt-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/pi3-disable-bt-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/pi3-disable-bt-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/pi3-disable-bt-overlay.dts 2016-04-29 18:02:45.000000000 +0200 -@@ -0,0 +1,48 @@ +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/pi3-act-led-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/pi3-act-led-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/pi3-act-led-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/pi3-act-led-overlay.dts 2016-05-02 22:53:50.000000000 +0200 +@@ -0,0 +1,27 @@ ++/dts-v1/; ++/plugin/; ++ ++/* Pi3 uses a GPIO expander to drive the LEDs which can only be accessed ++ from the VPU. There is a special driver for this with a separate DT node, ++ which has the unfortunate consequence of breaking the act_led_gpio and ++ act_led_activelow dtparams. ++ ++ This overlay changes the GPIO controller back to the standard one and ++ restores the dtparams. ++*/ ++ ++/{ ++ compatible = "brcm,bcm2708"; ++ ++ fragment@0 { ++ target = <&act_led>; ++ frag0: __overlay__ { ++ gpios = <&gpio 0 0>; ++ }; ++ }; ++ ++ __overrides__ { ++ gpio = <&frag0>,"gpios:4"; ++ activelow = <&frag0>,"gpios:8"; ++ }; ++}; +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/pi3-disable-bt-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/pi3-disable-bt-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/pi3-disable-bt-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/pi3-disable-bt-overlay.dts 2016-05-02 22:53:50.000000000 +0200 +@@ -0,0 +1,46 @@ +/dts-v1/; +/plugin/; + @@ -4593,13 +4833,11 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/pi3-disable-bt-overlay.dt + }; + + fragment@2 { -+ target = <&gpio>; ++ target = <&uart0_pins>; + __overlay__ { -+ uart0_pins: uart0_pins { -+ brcm,pins = <14 15>; -+ brcm,function = <4>; /* alt0 */ -+ brcm,pull = <0 2>; -+ }; ++ brcm,pins; ++ brcm,function; ++ brcm,pull; + }; + }; + @@ -4611,10 +4849,10 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/pi3-disable-bt-overlay.dt + }; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.dts 2016-04-29 18:02:45.000000000 +0200 -@@ -0,0 +1,63 @@ +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.dts 2016-05-02 22:53:50.000000000 +0200 +@@ -0,0 +1,64 @@ +/dts-v1/; +/plugin/; + @@ -4654,23 +4892,24 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.d + }; + + fragment@2 { -+ target = <&gpio>; ++ target = <&uart0_pins>; + __overlay__ { -+ uart0_pins: uart0_pins { -+ brcm,pins = <14 15>; -+ brcm,function = <4>; /* alt0 */ -+ brcm,pull = <0 2>; -+ }; -+ -+ uart1_pins: uart1_pins { -+ brcm,pins = <32 33>; -+ brcm,function = <2>; /* alt5=UART1 */ -+ brcm,pull = <0 2>; -+ }; ++ brcm,pins; ++ brcm,function; ++ brcm,pull; + }; + }; + + fragment@3 { ++ target = <&uart1_pins>; ++ __overlay__ { ++ brcm,pins = <32 33>; ++ brcm,function = <2>; /* alt5=UART1 */ ++ brcm,pull = <0 2>; ++ }; ++ }; ++ ++ fragment@4 { + target-path = "/aliases"; + __overlay__ { + serial0 = "/soc/uart@7e201000"; @@ -4678,9 +4917,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.d + }; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/piscreen-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/piscreen-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/piscreen-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/piscreen-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/piscreen-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/piscreen-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/piscreen-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/piscreen-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,96 @@ +/* + * Device Tree overlay for PiScreen 3.5" display shield by Ozzmaker @@ -4778,9 +5017,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/piscreen-overlay.dts linu + xohms = <&piscreen_ts>,"ti,x-plate-ohms;0"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/piscreen2r-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/piscreen2r-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/piscreen2r-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/piscreen2r-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/piscreen2r-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/piscreen2r-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/piscreen2r-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/piscreen2r-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,100 @@ + /* + * Device Tree overlay for PiScreen2 3.5" TFT with resistive touch by Ozzmaker.com @@ -4882,9 +5121,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/piscreen2r-overlay.dts li + }; +}; + -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/pitft28-capacitive-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/pitft28-capacitive-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/pitft28-capacitive-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/pitft28-capacitive-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/pitft28-capacitive-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/pitft28-capacitive-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/pitft28-capacitive-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/pitft28-capacitive-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,88 @@ +/* + * Device Tree overlay for Adafruit PiTFT 2.8" capacitive touch screen @@ -4974,9 +5213,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/pitft28-capacitive-overla + touch-swapxy = <&ft6236>,"touchscreen-swapped-x-y?"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/pitft28-resistive-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/pitft28-resistive-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/pitft28-resistive-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/pitft28-resistive-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/pitft28-resistive-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/pitft28-resistive-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/pitft28-resistive-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/pitft28-resistive-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,115 @@ +/* + * Device Tree overlay for Adafruit PiTFT 2.8" resistive touch screen @@ -5093,9 +5332,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/pitft28-resistive-overlay + debug = <&pitft>,"debug:0"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/pps-gpio-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/pps-gpio-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/pps-gpio-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/pps-gpio-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/pps-gpio-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/pps-gpio-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/pps-gpio-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/pps-gpio-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,34 @@ +/dts-v1/; +/plugin/; @@ -5131,9 +5370,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/pps-gpio-overlay.dts linu + <&pps_pins>,"brcm,pins:0"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,53 @@ +/dts-v1/; +/plugin/; @@ -5188,9 +5427,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts lin + clock = <&frag2>,"clock-frequency:0"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/pwm-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/pwm-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/pwm-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/pwm-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/pwm-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/pwm-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/pwm-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/pwm-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,49 @@ +/dts-v1/; +/plugin/; @@ -5241,9 +5480,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/pwm-overlay.dts linux-4.1 + clock = <&frag2>,"clock-frequency:0"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/qca7000-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/qca7000-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/qca7000-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/qca7000-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/qca7000-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/qca7000-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/qca7000-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/qca7000-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,52 @@ +// Overlay for the Qualcomm Atheros QCA7000 on I2SE's PLC Stamp micro EVK +// Visit: https://www.i2se.com/product/plc-stamp-micro-evk for details @@ -5297,9 +5536,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/qca7000-overlay.dts linux + speed = <ð1>, "spi-max-frequency:0"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/raspidac3-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/raspidac3-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/raspidac3-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/raspidac3-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/raspidac3-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/raspidac3-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/raspidac3-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/raspidac3-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,45 @@ +// Definitions for RaspiDACv3 +/dts-v1/; @@ -5346,9 +5585,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/raspidac3-overlay.dts lin + }; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/rpi-backlight-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/rpi-backlight-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/rpi-backlight-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/rpi-backlight-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/rpi-backlight-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/rpi-backlight-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/rpi-backlight-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/rpi-backlight-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,21 @@ +/* + * Devicetree overlay for mailbox-driven Raspberry Pi DSI Display @@ -5371,9 +5610,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/rpi-backlight-overlay.dts + }; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/rpi-dac-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/rpi-dac-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/rpi-dac-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/rpi-dac-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/rpi-dac-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/rpi-dac-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/rpi-dac-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/rpi-dac-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,34 @@ +// Definitions for RPi DAC +/dts-v1/; @@ -5409,9 +5648,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/rpi-dac-overlay.dts linux + }; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/rpi-display-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/rpi-display-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/rpi-display-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/rpi-display-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/rpi-display-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/rpi-display-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/rpi-display-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/rpi-display-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,83 @@ +/* + * Device Tree overlay for rpi-display by Watterott @@ -5496,9 +5735,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/rpi-display-overlay.dts l + swapxy = <&rpidisplay_ts>,"ti,swap-xy?"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/rpi-ft5406-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/rpi-ft5406-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/rpi-ft5406-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/rpi-ft5406-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/rpi-ft5406-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/rpi-ft5406-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/rpi-ft5406-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/rpi-ft5406-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,17 @@ +/dts-v1/; +/plugin/; @@ -5517,9 +5756,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/rpi-ft5406-overlay.dts li + }; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/rpi-proto-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/rpi-proto-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/rpi-proto-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/rpi-proto-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/rpi-proto-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/rpi-proto-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/rpi-proto-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/rpi-proto-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,39 @@ +// Definitions for Rpi-Proto +/dts-v1/; @@ -5560,9 +5799,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/rpi-proto-overlay.dts lin + }; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/rpi-sense-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/rpi-sense-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/rpi-sense-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/rpi-sense-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/rpi-sense-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/rpi-sense-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/rpi-sense-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/rpi-sense-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,47 @@ +// rpi-sense HAT +/dts-v1/; @@ -5611,9 +5850,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/rpi-sense-overlay.dts lin + }; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/sdhost-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/sdhost-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/sdhost-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/sdhost-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/sdhost-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/sdhost-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/sdhost-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/sdhost-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,31 @@ +/dts-v1/; +/plugin/; @@ -5646,9 +5885,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/sdhost-overlay.dts linux- + debug = <&frag0>,"brcm,debug?"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/sdio-1bit-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/sdio-1bit-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/sdio-1bit-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/sdio-1bit-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/sdio-1bit-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/sdio-1bit-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/sdio-1bit-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/sdio-1bit-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,36 @@ +/* Enable 1-bit SDIO from MMC interface via GPIOs 22-25. Includes sdhost overlay. */ + @@ -5686,9 +5925,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/sdio-1bit-overlay.dts lin + sdio_overclock = <&sdio_mmc>,"brcm,overclock-50:0"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/sdio-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/sdio-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/sdio-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/sdio-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/sdio-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/sdio-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/sdio-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/sdio-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,37 @@ +/* Enable SDIO from MMC interface via GPIOs 22-27. Includes sdhost overlay. */ + @@ -5727,9 +5966,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/sdio-overlay.dts linux-4. + sdio_overclock = <&sdio_mmc>,"brcm,overclock-50:0"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/smi-dev-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/smi-dev-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/smi-dev-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/smi-dev-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/smi-dev-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/smi-dev-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/smi-dev-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/smi-dev-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,18 @@ +// Description: Overlay to enable character device interface for SMI. +// Author: Luke Wren <luke@raspberrypi.org> @@ -5749,9 +5988,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/smi-dev-overlay.dts linux + }; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/smi-nand-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/smi-nand-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/smi-nand-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/smi-nand-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/smi-nand-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/smi-nand-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/smi-nand-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/smi-nand-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,69 @@ +// Description: Overlay to enable NAND flash through +// the secondary memory interface @@ -5822,9 +6061,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/smi-nand-overlay.dts linu + }; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/smi-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/smi-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/smi-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/smi-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/smi-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/smi-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/smi-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/smi-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,37 @@ +// Description: Overlay to enable the secondary memory interface peripheral +// Author: Luke Wren @@ -5863,9 +6102,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/smi-overlay.dts linux-4.1 + }; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/spi-bcm2708-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/spi-bcm2708-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/spi-bcm2708-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/spi-bcm2708-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/spi-bcm2708-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/spi-bcm2708-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/spi-bcm2708-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/spi-bcm2708-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,18 @@ +/* + * Device tree overlay for spi-bcm2835 @@ -5885,9 +6124,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/spi-bcm2708-overlay.dts l + }; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/spi-bcm2835-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/spi-bcm2835-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/spi-bcm2835-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/spi-bcm2835-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/spi-bcm2835-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/spi-bcm2835-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/spi-bcm2835-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/spi-bcm2835-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,18 @@ +/* + * Device tree overlay for spi-bcm2835 @@ -5907,9 +6146,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/spi-bcm2835-overlay.dts l + }; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/spi-dma-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/spi-dma-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/spi-dma-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/spi-dma-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/spi-dma-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/spi-dma-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/spi-dma-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/spi-dma-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,20 @@ +/* + * Device tree overlay for spi-bcm2835 to allow dma @@ -5931,9 +6170,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/spi-dma-overlay.dts linux + }; + }; + }; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/tinylcd35-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/tinylcd35-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/tinylcd35-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/tinylcd35-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/tinylcd35-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/tinylcd35-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/tinylcd35-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/tinylcd35-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,216 @@ +/* + * tinylcd35-overlay.dts @@ -6151,9 +6390,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/tinylcd35-overlay.dts lin + keypad = <&keypad>,"status"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/uart1-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/uart1-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/uart1-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/uart1-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/uart1-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/uart1-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/uart1-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/uart1-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,38 @@ +/dts-v1/; +/plugin/; @@ -6193,9 +6432,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/uart1-overlay.dts linux-4 + rxd1_pin = <&uart1_pins>,"brcm,pins:4"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/vc4-kms-v3d-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/vc4-kms-v3d-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/vc4-kms-v3d-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/vc4-kms-v3d-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/vc4-kms-v3d-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/vc4-kms-v3d-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/vc4-kms-v3d-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/vc4-kms-v3d-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,95 @@ +/* + * vc4-kms-v3d-overlay.dts @@ -6292,9 +6531,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/vc4-kms-v3d-overlay.dts l + }; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/vga666-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/vga666-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/vga666-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/vga666-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/vga666-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/vga666-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/vga666-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/vga666-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,30 @@ +/dts-v1/; +/plugin/; @@ -6326,9 +6565,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/vga666-overlay.dts linux- + }; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/w1-gpio-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/w1-gpio-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/w1-gpio-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/w1-gpio-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/w1-gpio-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/w1-gpio-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/w1-gpio-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/w1-gpio-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,39 @@ +// Definitions for w1-gpio module (without external pullup) +/dts-v1/; @@ -6369,9 +6608,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/w1-gpio-overlay.dts linux + pullup = <&w1>,"rpi,parasitic-power:0"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/w1-gpio-pullup-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/w1-gpio-pullup-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/w1-gpio-pullup-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/w1-gpio-pullup-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/w1-gpio-pullup-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/w1-gpio-pullup-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/w1-gpio-pullup-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/w1-gpio-pullup-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,41 @@ +// Definitions for w1-gpio module (with external pullup) +/dts-v1/; @@ -6414,9 +6653,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/w1-gpio-pullup-overlay.dt + pullup = <&w1>,"rpi,parasitic-power:0"; + }; +}; -diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/wittypi-overlay.dts linux-4.1.22/arch/arm/boot/dts/overlays/wittypi-overlay.dts ---- linux-4.1.22.orig/arch/arm/boot/dts/overlays/wittypi-overlay.dts 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/boot/dts/overlays/wittypi-overlay.dts 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/boot/dts/overlays/wittypi-overlay.dts linux-4.1.23/arch/arm/boot/dts/overlays/wittypi-overlay.dts +--- linux-4.1.23.orig/arch/arm/boot/dts/overlays/wittypi-overlay.dts 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/boot/dts/overlays/wittypi-overlay.dts 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,44 @@ +/* + * Device Tree overlay for Witty Pi extension board by UUGear @@ -6462,10 +6701,10 @@ diff -Nur linux-4.1.22.orig/arch/arm/boot/dts/overlays/wittypi-overlay.dts linux + }; + +}; -diff -Nur linux-4.1.22.orig/arch/arm/configs/bcm2709_defconfig linux-4.1.22/arch/arm/configs/bcm2709_defconfig ---- linux-4.1.22.orig/arch/arm/configs/bcm2709_defconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/configs/bcm2709_defconfig 2016-04-29 18:02:45.000000000 +0200 -@@ -0,0 +1,1267 @@ +diff -Nur linux-4.1.23.orig/arch/arm/configs/bcm2709_defconfig linux-4.1.23/arch/arm/configs/bcm2709_defconfig +--- linux-4.1.23.orig/arch/arm/configs/bcm2709_defconfig 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/configs/bcm2709_defconfig 2016-05-02 22:53:50.000000000 +0200 +@@ -0,0 +1,1271 @@ +# CONFIG_ARM_PATCH_PHYS_VIRT is not set +CONFIG_PHYS_OFFSET=0 +CONFIG_LOCALVERSION="-v7" @@ -6573,6 +6812,7 @@ diff -Nur linux-4.1.22.orig/arch/arm/configs/bcm2709_defconfig linux-4.1.22/arch +CONFIG_INET6_IPCOMP=m +CONFIG_IPV6_TUNNEL=m +CONFIG_IPV6_MULTIPLE_TABLES=y ++CONFIG_IPV6_SUBTREES=y +CONFIG_IPV6_MROUTE=y +CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y +CONFIG_IPV6_PIMSM_V2=y @@ -7318,6 +7558,8 @@ diff -Nur linux-4.1.22.orig/arch/arm/configs/bcm2709_defconfig linux-4.1.22/arch +CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUS=m +CONFIG_SND_BCM2708_SOC_HIFIBERRY_DIGI=m +CONFIG_SND_BCM2708_SOC_HIFIBERRY_AMP=m ++CONFIG_SND_BCM2708_SOC_BOOMBERRY_DAC=m ++CONFIG_SND_BCM2708_SOC_BOOMBERRY_DIGI=m +CONFIG_SND_BCM2708_SOC_RPI_DAC=m +CONFIG_SND_BCM2708_SOC_RPI_PROTO=m +CONFIG_SND_BCM2708_SOC_IQAUDIO_DAC=m @@ -7332,6 +7574,7 @@ diff -Nur linux-4.1.22.orig/arch/arm/configs/bcm2709_defconfig linux-4.1.22/arch +CONFIG_HID_ACRUX=m +CONFIG_HID_APPLE=m +CONFIG_HID_BELKIN=m ++CONFIG_HID_BETOP_FF=m +CONFIG_HID_CHERRY=m +CONFIG_HID_CHICONY=m +CONFIG_HID_CYPRESS=m @@ -7733,9 +7976,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/configs/bcm2709_defconfig linux-4.1.22/arch +CONFIG_CRYPTO_AES_ARM_BS=m +CONFIG_CRC_ITU_T=y +CONFIG_LIBCRC32C=y -diff -Nur linux-4.1.22.orig/arch/arm/configs/bcm2835_defconfig linux-4.1.22/arch/arm/configs/bcm2835_defconfig ---- linux-4.1.22.orig/arch/arm/configs/bcm2835_defconfig 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/arch/arm/configs/bcm2835_defconfig 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/configs/bcm2835_defconfig linux-4.1.23/arch/arm/configs/bcm2835_defconfig +--- linux-4.1.23.orig/arch/arm/configs/bcm2835_defconfig 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/arm/configs/bcm2835_defconfig 2016-05-02 22:53:50.000000000 +0200 @@ -1,105 +1,1075 @@ # CONFIG_LOCALVERSION_AUTO is not set CONFIG_SYSVIPC=y @@ -8988,10 +9231,10 @@ diff -Nur linux-4.1.22.orig/arch/arm/configs/bcm2835_defconfig linux-4.1.22/arch +CONFIG_LIBCRC32C=y # CONFIG_XZ_DEC_ARM is not set # CONFIG_XZ_DEC_ARMTHUMB is not set -diff -Nur linux-4.1.22.orig/arch/arm/configs/bcmrpi_defconfig linux-4.1.22/arch/arm/configs/bcmrpi_defconfig ---- linux-4.1.22.orig/arch/arm/configs/bcmrpi_defconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/configs/bcmrpi_defconfig 2016-04-29 18:02:45.000000000 +0200 -@@ -0,0 +1,1261 @@ +diff -Nur linux-4.1.23.orig/arch/arm/configs/bcmrpi_defconfig linux-4.1.23/arch/arm/configs/bcmrpi_defconfig +--- linux-4.1.23.orig/arch/arm/configs/bcmrpi_defconfig 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/configs/bcmrpi_defconfig 2016-05-02 22:53:50.000000000 +0200 +@@ -0,0 +1,1265 @@ +# CONFIG_ARM_PATCH_PHYS_VIRT is not set +CONFIG_PHYS_OFFSET=0 +# CONFIG_LOCALVERSION_AUTO is not set @@ -9092,6 +9335,7 @@ diff -Nur linux-4.1.22.orig/arch/arm/configs/bcmrpi_defconfig linux-4.1.22/arch/ +CONFIG_INET6_IPCOMP=m +CONFIG_IPV6_TUNNEL=m +CONFIG_IPV6_MULTIPLE_TABLES=y ++CONFIG_IPV6_SUBTREES=y +CONFIG_IPV6_MROUTE=y +CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y +CONFIG_IPV6_PIMSM_V2=y @@ -9836,6 +10080,8 @@ diff -Nur linux-4.1.22.orig/arch/arm/configs/bcmrpi_defconfig linux-4.1.22/arch/ +CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUS=m +CONFIG_SND_BCM2708_SOC_HIFIBERRY_DIGI=m +CONFIG_SND_BCM2708_SOC_HIFIBERRY_AMP=m ++CONFIG_SND_BCM2708_SOC_BOOMBERRY_DAC=m ++CONFIG_SND_BCM2708_SOC_BOOMBERRY_DIGI=m +CONFIG_SND_BCM2708_SOC_RPI_DAC=m +CONFIG_SND_BCM2708_SOC_RPI_PROTO=m +CONFIG_SND_BCM2708_SOC_IQAUDIO_DAC=m @@ -9850,6 +10096,7 @@ diff -Nur linux-4.1.22.orig/arch/arm/configs/bcmrpi_defconfig linux-4.1.22/arch/ +CONFIG_HID_ACRUX=m +CONFIG_HID_APPLE=m +CONFIG_HID_BELKIN=m ++CONFIG_HID_BETOP_FF=m +CONFIG_HID_CHERRY=m +CONFIG_HID_CHICONY=m +CONFIG_HID_CYPRESS=m @@ -10253,9 +10500,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/configs/bcmrpi_defconfig linux-4.1.22/arch/ +CONFIG_CRYPTO_AES_ARM=m +CONFIG_CRC_ITU_T=y +CONFIG_LIBCRC32C=y -diff -Nur linux-4.1.22.orig/arch/arm/include/asm/entry-macro-multi.S linux-4.1.22/arch/arm/include/asm/entry-macro-multi.S ---- linux-4.1.22.orig/arch/arm/include/asm/entry-macro-multi.S 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/arch/arm/include/asm/entry-macro-multi.S 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/include/asm/entry-macro-multi.S linux-4.1.23/arch/arm/include/asm/entry-macro-multi.S +--- linux-4.1.23.orig/arch/arm/include/asm/entry-macro-multi.S 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/arm/include/asm/entry-macro-multi.S 2016-05-02 22:53:50.000000000 +0200 @@ -1,5 +1,6 @@ #include <asm/assembler.h> @@ -10271,9 +10518,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/include/asm/entry-macro-multi.S linux-4.1.2 .macro arch_irq_handler, symbol_name .align 5 -diff -Nur linux-4.1.22.orig/arch/arm/include/asm/irqflags.h linux-4.1.22/arch/arm/include/asm/irqflags.h ---- linux-4.1.22.orig/arch/arm/include/asm/irqflags.h 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/arch/arm/include/asm/irqflags.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/include/asm/irqflags.h linux-4.1.23/arch/arm/include/asm/irqflags.h +--- linux-4.1.23.orig/arch/arm/include/asm/irqflags.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/arm/include/asm/irqflags.h 2016-05-02 22:53:50.000000000 +0200 @@ -145,12 +145,22 @@ } @@ -10300,9 +10547,21 @@ diff -Nur linux-4.1.22.orig/arch/arm/include/asm/irqflags.h linux-4.1.22/arch/ar : : "r" (flags) : "memory", "cc"); -diff -Nur linux-4.1.22.orig/arch/arm/include/asm/string.h linux-4.1.22/arch/arm/include/asm/string.h ---- linux-4.1.22.orig/arch/arm/include/asm/string.h 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/arch/arm/include/asm/string.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/include/asm/psci.h linux-4.1.23/arch/arm/include/asm/psci.h +--- linux-4.1.23.orig/arch/arm/include/asm/psci.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/arm/include/asm/psci.h 2016-05-02 22:53:50.000000000 +0200 +@@ -37,7 +37,7 @@ + extern struct psci_operations psci_ops; + extern struct smp_operations psci_smp_ops; + +-#if defined(CONFIG_SMP) && defined(CONFIG_ARM_PSCI) ++#ifdef CONFIG_ARM_PSCI + int psci_init(void); + bool psci_smp_available(void); + #else +diff -Nur linux-4.1.23.orig/arch/arm/include/asm/string.h linux-4.1.23/arch/arm/include/asm/string.h +--- linux-4.1.23.orig/arch/arm/include/asm/string.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/arm/include/asm/string.h 2016-05-02 22:53:50.000000000 +0200 @@ -24,6 +24,11 @@ #define __HAVE_ARCH_MEMSET extern void * memset(void *, int, __kernel_size_t); @@ -10315,9 +10574,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/include/asm/string.h linux-4.1.22/arch/arm/ extern void __memzero(void *ptr, __kernel_size_t n); #define memset(p,v,n) \ -diff -Nur linux-4.1.22.orig/arch/arm/include/asm/uaccess.h linux-4.1.22/arch/arm/include/asm/uaccess.h ---- linux-4.1.22.orig/arch/arm/include/asm/uaccess.h 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/arch/arm/include/asm/uaccess.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/include/asm/uaccess.h linux-4.1.23/arch/arm/include/asm/uaccess.h +--- linux-4.1.23.orig/arch/arm/include/asm/uaccess.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/arm/include/asm/uaccess.h 2016-05-02 22:53:50.000000000 +0200 @@ -475,6 +475,7 @@ #ifdef CONFIG_MMU @@ -10326,9 +10585,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/include/asm/uaccess.h linux-4.1.22/arch/arm extern unsigned long __must_check __copy_to_user(void __user *to, const void *from, unsigned long n); extern unsigned long __must_check __copy_to_user_std(void __user *to, const void *from, unsigned long n); extern unsigned long __must_check __clear_user(void __user *addr, unsigned long n); -diff -Nur linux-4.1.22.orig/arch/arm/kernel/fiqasm.S linux-4.1.22/arch/arm/kernel/fiqasm.S ---- linux-4.1.22.orig/arch/arm/kernel/fiqasm.S 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/arch/arm/kernel/fiqasm.S 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/kernel/fiqasm.S linux-4.1.23/arch/arm/kernel/fiqasm.S +--- linux-4.1.23.orig/arch/arm/kernel/fiqasm.S 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/arm/kernel/fiqasm.S 2016-05-02 22:53:50.000000000 +0200 @@ -47,3 +47,7 @@ mov r0, r0 @ avoid hazard prior to ARMv4 ret lr @@ -10337,9 +10596,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/kernel/fiqasm.S linux-4.1.22/arch/arm/kerne +ENTRY(__FIQ_Branch) + mov pc, r8 +ENDPROC(__FIQ_Branch) -diff -Nur linux-4.1.22.orig/arch/arm/kernel/head.S linux-4.1.22/arch/arm/kernel/head.S ---- linux-4.1.22.orig/arch/arm/kernel/head.S 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/arch/arm/kernel/head.S 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/kernel/head.S linux-4.1.23/arch/arm/kernel/head.S +--- linux-4.1.23.orig/arch/arm/kernel/head.S 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/arm/kernel/head.S 2016-05-02 22:53:50.000000000 +0200 @@ -680,6 +680,14 @@ ldrcc r7, [r4], #4 @ use branch for delay slot bcc 1b @@ -10355,9 +10614,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/kernel/head.S linux-4.1.22/arch/arm/kernel/ #endif ENDPROC(__fixup_a_pv_table) -diff -Nur linux-4.1.22.orig/arch/arm/kernel/process.c linux-4.1.22/arch/arm/kernel/process.c ---- linux-4.1.22.orig/arch/arm/kernel/process.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/arch/arm/kernel/process.c 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/kernel/process.c linux-4.1.23/arch/arm/kernel/process.c +--- linux-4.1.23.orig/arch/arm/kernel/process.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/arm/kernel/process.c 2016-05-02 22:53:50.000000000 +0200 @@ -98,6 +98,16 @@ } #endif @@ -10375,9 +10634,25 @@ diff -Nur linux-4.1.22.orig/arch/arm/kernel/process.c linux-4.1.22/arch/arm/kern void __show_regs(struct pt_regs *regs) { unsigned long flags; -diff -Nur linux-4.1.22.orig/arch/arm/lib/Makefile linux-4.1.22/arch/arm/lib/Makefile ---- linux-4.1.22.orig/arch/arm/lib/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/arch/arm/lib/Makefile 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/kernel/reboot.c linux-4.1.23/arch/arm/kernel/reboot.c +--- linux-4.1.23.orig/arch/arm/kernel/reboot.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/arm/kernel/reboot.c 2016-05-02 22:53:50.000000000 +0200 +@@ -102,11 +102,7 @@ + */ + void machine_halt(void) + { +- local_irq_disable(); +- smp_send_stop(); +- +- local_irq_disable(); +- while (1); ++ machine_power_off(); + } + + /* +diff -Nur linux-4.1.23.orig/arch/arm/lib/Makefile linux-4.1.23/arch/arm/lib/Makefile +--- linux-4.1.23.orig/arch/arm/lib/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/arm/lib/Makefile 2016-05-02 22:53:50.000000000 +0200 @@ -6,9 +6,8 @@ lib-y := backtrace.o changebit.o csumipv6.o csumpartial.o \ @@ -10407,9 +10682,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/lib/Makefile linux-4.1.22/arch/arm/lib/Make # using lib_ here won't override already available weak symbols obj-$(CONFIG_UACCESS_WITH_MEMCPY) += uaccess_with_memcpy.o -diff -Nur linux-4.1.22.orig/arch/arm/lib/arm-mem.h linux-4.1.22/arch/arm/lib/arm-mem.h ---- linux-4.1.22.orig/arch/arm/lib/arm-mem.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/lib/arm-mem.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/lib/arm-mem.h linux-4.1.23/arch/arm/lib/arm-mem.h +--- linux-4.1.23.orig/arch/arm/lib/arm-mem.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/lib/arm-mem.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,159 @@ +/* +Copyright (c) 2013, Raspberry Pi Foundation @@ -10570,9 +10845,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/lib/arm-mem.h linux-4.1.22/arch/arm/lib/arm + .endif +92: +.endm -diff -Nur linux-4.1.22.orig/arch/arm/lib/copy_from_user.S linux-4.1.22/arch/arm/lib/copy_from_user.S ---- linux-4.1.22.orig/arch/arm/lib/copy_from_user.S 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/arch/arm/lib/copy_from_user.S 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/lib/copy_from_user.S linux-4.1.23/arch/arm/lib/copy_from_user.S +--- linux-4.1.23.orig/arch/arm/lib/copy_from_user.S 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/arm/lib/copy_from_user.S 2016-05-02 22:53:50.000000000 +0200 @@ -89,11 +89,13 @@ .text @@ -10588,9 +10863,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/lib/copy_from_user.S linux-4.1.22/arch/arm/ .pushsection .fixup,"ax" .align 0 -diff -Nur linux-4.1.22.orig/arch/arm/lib/exports_rpi.c linux-4.1.22/arch/arm/lib/exports_rpi.c ---- linux-4.1.22.orig/arch/arm/lib/exports_rpi.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/lib/exports_rpi.c 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/lib/exports_rpi.c linux-4.1.23/arch/arm/lib/exports_rpi.c +--- linux-4.1.23.orig/arch/arm/lib/exports_rpi.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/lib/exports_rpi.c 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,37 @@ +/** + * Copyright (c) 2014, Raspberry Pi (Trading) Ltd. @@ -10629,9 +10904,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/lib/exports_rpi.c linux-4.1.22/arch/arm/lib +#include <linux/module.h> + +EXPORT_SYMBOL(memcmp); -diff -Nur linux-4.1.22.orig/arch/arm/lib/memcmp_rpi.S linux-4.1.22/arch/arm/lib/memcmp_rpi.S ---- linux-4.1.22.orig/arch/arm/lib/memcmp_rpi.S 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/lib/memcmp_rpi.S 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/lib/memcmp_rpi.S linux-4.1.23/arch/arm/lib/memcmp_rpi.S +--- linux-4.1.23.orig/arch/arm/lib/memcmp_rpi.S 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/lib/memcmp_rpi.S 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,285 @@ +/* +Copyright (c) 2013, Raspberry Pi Foundation @@ -10918,9 +11193,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/lib/memcmp_rpi.S linux-4.1.22/arch/arm/lib/ + .unreq DAT7 + .unreq OFF +ENDPROC(memcmp) -diff -Nur linux-4.1.22.orig/arch/arm/lib/memcpy_rpi.S linux-4.1.22/arch/arm/lib/memcpy_rpi.S ---- linux-4.1.22.orig/arch/arm/lib/memcpy_rpi.S 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/lib/memcpy_rpi.S 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/lib/memcpy_rpi.S linux-4.1.23/arch/arm/lib/memcpy_rpi.S +--- linux-4.1.23.orig/arch/arm/lib/memcpy_rpi.S 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/lib/memcpy_rpi.S 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,59 @@ +/* +Copyright (c) 2013, Raspberry Pi Foundation @@ -10981,9 +11256,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/lib/memcpy_rpi.S linux-4.1.22/arch/arm/lib/ +ENTRY(memcpy) + memcpy 0 +ENDPROC(memcpy) -diff -Nur linux-4.1.22.orig/arch/arm/lib/memcpymove.h linux-4.1.22/arch/arm/lib/memcpymove.h ---- linux-4.1.22.orig/arch/arm/lib/memcpymove.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/lib/memcpymove.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/lib/memcpymove.h linux-4.1.23/arch/arm/lib/memcpymove.h +--- linux-4.1.23.orig/arch/arm/lib/memcpymove.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/lib/memcpymove.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,506 @@ +/* +Copyright (c) 2013, Raspberry Pi Foundation @@ -11491,9 +11766,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/lib/memcpymove.h linux-4.1.22/arch/arm/lib/ + .unreq LAST + .unreq OFF +.endm -diff -Nur linux-4.1.22.orig/arch/arm/lib/memmove_rpi.S linux-4.1.22/arch/arm/lib/memmove_rpi.S ---- linux-4.1.22.orig/arch/arm/lib/memmove_rpi.S 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/lib/memmove_rpi.S 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/lib/memmove_rpi.S linux-4.1.23/arch/arm/lib/memmove_rpi.S +--- linux-4.1.23.orig/arch/arm/lib/memmove_rpi.S 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/lib/memmove_rpi.S 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,61 @@ +/* +Copyright (c) 2013, Raspberry Pi Foundation @@ -11556,9 +11831,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/lib/memmove_rpi.S linux-4.1.22/arch/arm/lib + bpl memcpy /* pl works even over -1 - 0 and 0x7fffffff - 0x80000000 boundaries */ + memcpy 1 +ENDPROC(memmove) -diff -Nur linux-4.1.22.orig/arch/arm/lib/memset_rpi.S linux-4.1.22/arch/arm/lib/memset_rpi.S ---- linux-4.1.22.orig/arch/arm/lib/memset_rpi.S 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/lib/memset_rpi.S 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/lib/memset_rpi.S linux-4.1.23/arch/arm/lib/memset_rpi.S +--- linux-4.1.23.orig/arch/arm/lib/memset_rpi.S 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/lib/memset_rpi.S 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,121 @@ +/* +Copyright (c) 2013, Raspberry Pi Foundation @@ -11681,9 +11956,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/lib/memset_rpi.S linux-4.1.22/arch/arm/lib/ + .unreq DAT2 + .unreq DAT3 +ENDPROC(memset) -diff -Nur linux-4.1.22.orig/arch/arm/lib/uaccess_with_memcpy.c linux-4.1.22/arch/arm/lib/uaccess_with_memcpy.c ---- linux-4.1.22.orig/arch/arm/lib/uaccess_with_memcpy.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/arch/arm/lib/uaccess_with_memcpy.c 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/lib/uaccess_with_memcpy.c linux-4.1.23/arch/arm/lib/uaccess_with_memcpy.c +--- linux-4.1.23.orig/arch/arm/lib/uaccess_with_memcpy.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/arm/lib/uaccess_with_memcpy.c 2016-05-02 22:53:50.000000000 +0200 @@ -22,6 +22,14 @@ #include <asm/current.h> #include <asm/page.h> @@ -11827,9 +12102,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/lib/uaccess_with_memcpy.c linux-4.1.22/arch static unsigned long noinline __clear_user_memset(void __user *addr, unsigned long n) -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm/Kconfig linux-4.1.22/arch/arm/mach-bcm/Kconfig ---- linux-4.1.22.orig/arch/arm/mach-bcm/Kconfig 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/arch/arm/mach-bcm/Kconfig 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm/Kconfig linux-4.1.23/arch/arm/mach-bcm/Kconfig +--- linux-4.1.23.orig/arch/arm/mach-bcm/Kconfig 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/arm/mach-bcm/Kconfig 2016-05-02 22:53:50.000000000 +0200 @@ -114,6 +114,7 @@ select ARM_ERRATA_411920 select ARM_TIMER_SP804 @@ -11838,9 +12113,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm/Kconfig linux-4.1.22/arch/arm/mach select PINCTRL select PINCTRL_BCM2835 help -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm/board_bcm2835.c linux-4.1.22/arch/arm/mach-bcm/board_bcm2835.c ---- linux-4.1.22.orig/arch/arm/mach-bcm/board_bcm2835.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/arch/arm/mach-bcm/board_bcm2835.c 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm/board_bcm2835.c linux-4.1.23/arch/arm/mach-bcm/board_bcm2835.c +--- linux-4.1.23.orig/arch/arm/mach-bcm/board_bcm2835.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/arm/mach-bcm/board_bcm2835.c 2016-05-02 22:53:50.000000000 +0200 @@ -18,6 +18,7 @@ #include <linux/of_address.h> #include <linux/of_platform.h> @@ -11871,9 +12146,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm/board_bcm2835.c linux-4.1.22/arch/ } static const char * const bcm2835_compat[] = { -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/Kconfig linux-4.1.22/arch/arm/mach-bcm2708/Kconfig ---- linux-4.1.22.orig/arch/arm/mach-bcm2708/Kconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2708/Kconfig 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2708/Kconfig linux-4.1.23/arch/arm/mach-bcm2708/Kconfig +--- linux-4.1.23.orig/arch/arm/mach-bcm2708/Kconfig 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2708/Kconfig 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,45 @@ +menu "Broadcom BCM2708 Implementations" + depends on ARCH_BCM2708 @@ -11920,9 +12195,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/Kconfig linux-4.1.22/arch/arm/ + help + Binds spidev driver to the SPI0 master +endmenu -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/Makefile linux-4.1.22/arch/arm/mach-bcm2708/Makefile ---- linux-4.1.22.orig/arch/arm/mach-bcm2708/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2708/Makefile 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2708/Makefile linux-4.1.23/arch/arm/mach-bcm2708/Makefile +--- linux-4.1.23.orig/arch/arm/mach-bcm2708/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2708/Makefile 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,6 @@ +# +# Makefile for the linux kernel. @@ -11930,16 +12205,16 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/Makefile linux-4.1.22/arch/arm + +obj-$(CONFIG_MACH_BCM2708) += bcm2708.o armctrl.o +obj-$(CONFIG_BCM2708_GPIO) += bcm2708_gpio.o -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/Makefile.boot linux-4.1.22/arch/arm/mach-bcm2708/Makefile.boot ---- linux-4.1.22.orig/arch/arm/mach-bcm2708/Makefile.boot 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2708/Makefile.boot 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2708/Makefile.boot linux-4.1.23/arch/arm/mach-bcm2708/Makefile.boot +--- linux-4.1.23.orig/arch/arm/mach-bcm2708/Makefile.boot 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2708/Makefile.boot 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,3 @@ + zreladdr-y := 0x00008000 +params_phys-y := 0x00000100 +initrd_phys-y := 0x00800000 -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/armctrl.c linux-4.1.22/arch/arm/mach-bcm2708/armctrl.c ---- linux-4.1.22.orig/arch/arm/mach-bcm2708/armctrl.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2708/armctrl.c 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2708/armctrl.c linux-4.1.23/arch/arm/mach-bcm2708/armctrl.c +--- linux-4.1.23.orig/arch/arm/mach-bcm2708/armctrl.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2708/armctrl.c 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,315 @@ +/* + * linux/arch/arm/mach-bcm2708/armctrl.c @@ -12256,9 +12531,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/armctrl.c linux-4.1.22/arch/ar + armctrl_dt_init(); + return 0; +} -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/armctrl.h linux-4.1.22/arch/arm/mach-bcm2708/armctrl.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2708/armctrl.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2708/armctrl.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2708/armctrl.h linux-4.1.23/arch/arm/mach-bcm2708/armctrl.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2708/armctrl.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2708/armctrl.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,27 @@ +/* + * linux/arch/arm/mach-bcm2708/armctrl.h @@ -12287,9 +12562,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/armctrl.h linux-4.1.22/arch/ar + u32 armctrl_sources, u32 resume_sources); + +#endif -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/bcm2708.c linux-4.1.22/arch/arm/mach-bcm2708/bcm2708.c ---- linux-4.1.22.orig/arch/arm/mach-bcm2708/bcm2708.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2708/bcm2708.c 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2708/bcm2708.c linux-4.1.23/arch/arm/mach-bcm2708/bcm2708.c +--- linux-4.1.23.orig/arch/arm/mach-bcm2708/bcm2708.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2708/bcm2708.c 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,1162 @@ +/* + * linux/arch/arm/mach-bcm2708/bcm2708.c @@ -13453,9 +13728,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/bcm2708.c linux-4.1.22/arch/ar +MODULE_PARM_DESC(vc_i2c_override, "Allow the use of VC's I2C peripheral."); +module_param(pps_gpio_pin, int, 0644); +MODULE_PARM_DESC(pps_gpio_pin, "Set GPIO pin to reserve for PPS"); -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/bcm2708.h linux-4.1.22/arch/arm/mach-bcm2708/bcm2708.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2708/bcm2708.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2708/bcm2708.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2708/bcm2708.h linux-4.1.23/arch/arm/mach-bcm2708/bcm2708.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2708/bcm2708.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2708/bcm2708.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,49 @@ +/* + * linux/arch/arm/mach-bcm2708/bcm2708.h @@ -13506,9 +13781,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/bcm2708.h linux-4.1.22/arch/ar +} + +#endif -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/bcm2708_gpio.c linux-4.1.22/arch/arm/mach-bcm2708/bcm2708_gpio.c ---- linux-4.1.22.orig/arch/arm/mach-bcm2708/bcm2708_gpio.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2708/bcm2708_gpio.c 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2708/bcm2708_gpio.c linux-4.1.23/arch/arm/mach-bcm2708/bcm2708_gpio.c +--- linux-4.1.23.orig/arch/arm/mach-bcm2708/bcm2708_gpio.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2708/bcm2708_gpio.c 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,426 @@ +/* + * linux/arch/arm/mach-bcm2708/bcm2708_gpio.c @@ -13936,9 +14211,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/bcm2708_gpio.c linux-4.1.22/ar + +MODULE_DESCRIPTION("Broadcom BCM2708 GPIO driver"); +MODULE_LICENSE("GPL"); -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/arm_control.h linux-4.1.22/arch/arm/mach-bcm2708/include/mach/arm_control.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/arm_control.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2708/include/mach/arm_control.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/arm_control.h linux-4.1.23/arch/arm/mach-bcm2708/include/mach/arm_control.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/arm_control.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2708/include/mach/arm_control.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,419 @@ +/* + * linux/arch/arm/mach-bcm2708/arm_control.h @@ -14359,9 +14634,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/arm_control.h lin +#define AJBTDO HW_REGISTER_RW(AJB_BASE+0x0c) + +#endif -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/clkdev.h linux-4.1.22/arch/arm/mach-bcm2708/include/mach/clkdev.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/clkdev.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2708/include/mach/clkdev.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/clkdev.h linux-4.1.23/arch/arm/mach-bcm2708/include/mach/clkdev.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/clkdev.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2708/include/mach/clkdev.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,7 @@ +#ifndef __ASM_MACH_CLKDEV_H +#define __ASM_MACH_CLKDEV_H @@ -14370,9 +14645,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/clkdev.h linux-4. +#define __clk_put(clk) do { } while (0) + +#endif -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/debug-macro.S linux-4.1.22/arch/arm/mach-bcm2708/include/mach/debug-macro.S ---- linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/debug-macro.S 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2708/include/mach/debug-macro.S 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/debug-macro.S linux-4.1.23/arch/arm/mach-bcm2708/include/mach/debug-macro.S +--- linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/debug-macro.S 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2708/include/mach/debug-macro.S 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,22 @@ +/* arch/arm/mach-bcm2708/include/mach/debug-macro.S + * @@ -14396,9 +14671,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/debug-macro.S lin + .endm + +#include <debug/pl01x.S> -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/entry-macro.S linux-4.1.22/arch/arm/mach-bcm2708/include/mach/entry-macro.S ---- linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/entry-macro.S 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2708/include/mach/entry-macro.S 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/entry-macro.S linux-4.1.23/arch/arm/mach-bcm2708/include/mach/entry-macro.S +--- linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/entry-macro.S 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2708/include/mach/entry-macro.S 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,69 @@ +/* + * arch/arm/mach-bcm2708/include/mach/entry-macro.S @@ -14469,9 +14744,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/entry-macro.S lin +1020: @ EQ will be set if no irqs pending + + .endm -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/frc.h linux-4.1.22/arch/arm/mach-bcm2708/include/mach/frc.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/frc.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2708/include/mach/frc.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/frc.h linux-4.1.23/arch/arm/mach-bcm2708/include/mach/frc.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/frc.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2708/include/mach/frc.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,38 @@ +/* + * arch/arm/mach-bcm2708/include/mach/timex.h @@ -14511,9 +14786,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/frc.h linux-4.1.2 +extern unsigned long long frc_clock_ticks63(void); + +#endif -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/gpio.h linux-4.1.22/arch/arm/mach-bcm2708/include/mach/gpio.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/gpio.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2708/include/mach/gpio.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/gpio.h linux-4.1.23/arch/arm/mach-bcm2708/include/mach/gpio.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/gpio.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2708/include/mach/gpio.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,17 @@ +/* + * arch/arm/mach-bcm2708/include/mach/gpio.h @@ -14532,9 +14807,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/gpio.h linux-4.1. +#define irq_to_gpio(x) ((x) - GPIO_IRQ_START) + +#endif -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/hardware.h linux-4.1.22/arch/arm/mach-bcm2708/include/mach/hardware.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/hardware.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2708/include/mach/hardware.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/hardware.h linux-4.1.23/arch/arm/mach-bcm2708/include/mach/hardware.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/hardware.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2708/include/mach/hardware.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,28 @@ +/* + * arch/arm/mach-bcm2708/include/mach/hardware.h @@ -14564,9 +14839,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/hardware.h linux- +#include <mach/platform.h> + +#endif -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/io.h linux-4.1.22/arch/arm/mach-bcm2708/include/mach/io.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/io.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2708/include/mach/io.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/io.h linux-4.1.23/arch/arm/mach-bcm2708/include/mach/io.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/io.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2708/include/mach/io.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,27 @@ +/* + * arch/arm/mach-bcm2708/include/mach/io.h @@ -14595,9 +14870,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/io.h linux-4.1.22 +#define __io(a) __typesafe_io(a) + +#endif -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/irqs.h linux-4.1.22/arch/arm/mach-bcm2708/include/mach/irqs.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/irqs.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2708/include/mach/irqs.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/irqs.h linux-4.1.23/arch/arm/mach-bcm2708/include/mach/irqs.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/irqs.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2708/include/mach/irqs.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,199 @@ +/* + * arch/arm/mach-bcm2708/include/mach/irqs.h @@ -14798,9 +15073,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/irqs.h linux-4.1. +#define NR_IRQS (BCM2708_ALLOC_IRQS+FREE_IRQS) + +#endif /* _BCM2708_IRQS_H_ */ -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/memory.h linux-4.1.22/arch/arm/mach-bcm2708/include/mach/memory.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/memory.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2708/include/mach/memory.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/memory.h linux-4.1.23/arch/arm/mach-bcm2708/include/mach/memory.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/memory.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2708/include/mach/memory.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,57 @@ +/* + * arch/arm/mach-bcm2708/include/mach/memory.h @@ -14859,9 +15134,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/memory.h linux-4. +#define __bus_to_pfn(x) __phys_to_pfn((x) - (BUS_OFFSET - BCM_PLAT_PHYS_OFFSET)) + +#endif -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/platform.h linux-4.1.22/arch/arm/mach-bcm2708/include/mach/platform.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/platform.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2708/include/mach/platform.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/platform.h linux-4.1.23/arch/arm/mach-bcm2708/include/mach/platform.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/platform.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2708/include/mach/platform.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,230 @@ +/* + * arch/arm/mach-bcm2708/include/mach/platform.h @@ -15093,9 +15368,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/platform.h linux- +#endif + +/* END */ -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/system.h linux-4.1.22/arch/arm/mach-bcm2708/include/mach/system.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/system.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2708/include/mach/system.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/system.h linux-4.1.23/arch/arm/mach-bcm2708/include/mach/system.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/system.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2708/include/mach/system.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,38 @@ +/* + * arch/arm/mach-bcm2708/include/mach/system.h @@ -15135,9 +15410,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/system.h linux-4. +} + +#endif -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/timex.h linux-4.1.22/arch/arm/mach-bcm2708/include/mach/timex.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/timex.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2708/include/mach/timex.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/timex.h linux-4.1.23/arch/arm/mach-bcm2708/include/mach/timex.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/timex.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2708/include/mach/timex.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,23 @@ +/* + * arch/arm/mach-bcm2708/include/mach/timex.h @@ -15162,9 +15437,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/timex.h linux-4.1 + */ + +#define CLOCK_TICK_RATE (1000000) -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/uncompress.h linux-4.1.22/arch/arm/mach-bcm2708/include/mach/uncompress.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/uncompress.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2708/include/mach/uncompress.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/uncompress.h linux-4.1.23/arch/arm/mach-bcm2708/include/mach/uncompress.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/uncompress.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2708/include/mach/uncompress.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,84 @@ +/* + * arch/arm/mach-bcn2708/include/mach/uncompress.h @@ -15250,9 +15525,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/uncompress.h linu + * nothing to do + */ +#define arch_decomp_wdog() -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/vc_sm_defs.h linux-4.1.22/arch/arm/mach-bcm2708/include/mach/vc_sm_defs.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/vc_sm_defs.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2708/include/mach/vc_sm_defs.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/vc_sm_defs.h linux-4.1.23/arch/arm/mach-bcm2708/include/mach/vc_sm_defs.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/vc_sm_defs.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2708/include/mach/vc_sm_defs.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,181 @@ +/***************************************************************************** +* Copyright 2011 Broadcom Corporation. All rights reserved. @@ -15435,9 +15710,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/vc_sm_defs.h linu +} VC_SM_MSG_UNION_T; + +#endif /* __VC_SM_DEFS_H__INCLUDED__ */ -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/vc_sm_knl.h linux-4.1.22/arch/arm/mach-bcm2708/include/mach/vc_sm_knl.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/vc_sm_knl.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2708/include/mach/vc_sm_knl.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/vc_sm_knl.h linux-4.1.23/arch/arm/mach-bcm2708/include/mach/vc_sm_knl.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/vc_sm_knl.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2708/include/mach/vc_sm_knl.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,55 @@ +/***************************************************************************** +* Copyright 2011 Broadcom Corporation. All rights reserved. @@ -15494,9 +15769,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/vc_sm_knl.h linux + long unsigned int *data); + +#endif /* __VC_SM_KNL_H__INCLUDED__ */ -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/vc_vchi_sm.h linux-4.1.22/arch/arm/mach-bcm2708/include/mach/vc_vchi_sm.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/vc_vchi_sm.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2708/include/mach/vc_vchi_sm.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/vc_vchi_sm.h linux-4.1.23/arch/arm/mach-bcm2708/include/mach/vc_vchi_sm.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/vc_vchi_sm.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2708/include/mach/vc_vchi_sm.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,82 @@ +/***************************************************************************** +* Copyright 2011 Broadcom Corporation. All rights reserved. @@ -15580,9 +15855,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/vc_vchi_sm.h linu + VC_SM_ACTION_CLEAN_T *action_clean); + +#endif /* __VC_VCHI_SM_H__INCLUDED__ */ -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/vmalloc.h linux-4.1.22/arch/arm/mach-bcm2708/include/mach/vmalloc.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/vmalloc.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2708/include/mach/vmalloc.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/vmalloc.h linux-4.1.23/arch/arm/mach-bcm2708/include/mach/vmalloc.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/vmalloc.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2708/include/mach/vmalloc.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,20 @@ +/* + * arch/arm/mach-bcm2708/include/mach/vmalloc.h @@ -15604,9 +15879,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/vmalloc.h linux-4 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +#define VMALLOC_END (0xe8000000) -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/vmcs_sm_ioctl.h linux-4.1.22/arch/arm/mach-bcm2708/include/mach/vmcs_sm_ioctl.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/vmcs_sm_ioctl.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2708/include/mach/vmcs_sm_ioctl.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/vmcs_sm_ioctl.h linux-4.1.23/arch/arm/mach-bcm2708/include/mach/vmcs_sm_ioctl.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2708/include/mach/vmcs_sm_ioctl.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2708/include/mach/vmcs_sm_ioctl.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,248 @@ +/***************************************************************************** +* Copyright 2011 Broadcom Corporation. All rights reserved. @@ -15856,9 +16131,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2708/include/mach/vmcs_sm_ioctl.h l +/* ---- Function Prototypes ---------------------------------------------- */ + +#endif /* __VMCS_SM_IOCTL_H__INCLUDED__ */ -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/Kconfig linux-4.1.22/arch/arm/mach-bcm2709/Kconfig ---- linux-4.1.22.orig/arch/arm/mach-bcm2709/Kconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2709/Kconfig 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2709/Kconfig linux-4.1.23/arch/arm/mach-bcm2709/Kconfig +--- linux-4.1.23.orig/arch/arm/mach-bcm2709/Kconfig 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2709/Kconfig 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,42 @@ +menu "Broadcom BCM2709 Implementations" + depends on ARCH_BCM2709 @@ -15902,9 +16177,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/Kconfig linux-4.1.22/arch/arm/ + help + Binds spidev driver to the SPI0 master +endmenu -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/Makefile linux-4.1.22/arch/arm/mach-bcm2709/Makefile ---- linux-4.1.22.orig/arch/arm/mach-bcm2709/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2709/Makefile 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2709/Makefile linux-4.1.23/arch/arm/mach-bcm2709/Makefile +--- linux-4.1.23.orig/arch/arm/mach-bcm2709/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2709/Makefile 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,6 @@ +# +# Makefile for the linux kernel. @@ -15912,16 +16187,16 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/Makefile linux-4.1.22/arch/arm + +obj-$(CONFIG_MACH_BCM2709) += bcm2709.o armctrl.o +obj-$(CONFIG_BCM2708_GPIO) += bcm2708_gpio.o -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/Makefile.boot linux-4.1.22/arch/arm/mach-bcm2709/Makefile.boot ---- linux-4.1.22.orig/arch/arm/mach-bcm2709/Makefile.boot 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2709/Makefile.boot 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2709/Makefile.boot linux-4.1.23/arch/arm/mach-bcm2709/Makefile.boot +--- linux-4.1.23.orig/arch/arm/mach-bcm2709/Makefile.boot 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2709/Makefile.boot 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,3 @@ + zreladdr-y := 0x00008000 +params_phys-y := 0x00000100 +initrd_phys-y := 0x00800000 -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/armctrl.c linux-4.1.22/arch/arm/mach-bcm2709/armctrl.c ---- linux-4.1.22.orig/arch/arm/mach-bcm2709/armctrl.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2709/armctrl.c 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2709/armctrl.c linux-4.1.23/arch/arm/mach-bcm2709/armctrl.c +--- linux-4.1.23.orig/arch/arm/mach-bcm2709/armctrl.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2709/armctrl.c 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,384 @@ +/* + * linux/arch/arm/mach-bcm2708/armctrl.c @@ -16307,9 +16582,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/armctrl.c linux-4.1.22/arch/ar + armctrl_dt_init(); + return 0; +} -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/armctrl.h linux-4.1.22/arch/arm/mach-bcm2709/armctrl.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2709/armctrl.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2709/armctrl.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2709/armctrl.h linux-4.1.23/arch/arm/mach-bcm2709/armctrl.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2709/armctrl.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2709/armctrl.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,27 @@ +/* + * linux/arch/arm/mach-bcm2708/armctrl.h @@ -16338,9 +16613,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/armctrl.h linux-4.1.22/arch/ar + u32 armctrl_sources, u32 resume_sources); + +#endif -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/bcm2708_gpio.c linux-4.1.22/arch/arm/mach-bcm2709/bcm2708_gpio.c ---- linux-4.1.22.orig/arch/arm/mach-bcm2709/bcm2708_gpio.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2709/bcm2708_gpio.c 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2709/bcm2708_gpio.c linux-4.1.23/arch/arm/mach-bcm2709/bcm2708_gpio.c +--- linux-4.1.23.orig/arch/arm/mach-bcm2709/bcm2708_gpio.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2709/bcm2708_gpio.c 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,426 @@ +/* + * linux/arch/arm/mach-bcm2708/bcm2708_gpio.c @@ -16768,9 +17043,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/bcm2708_gpio.c linux-4.1.22/ar + +MODULE_DESCRIPTION("Broadcom BCM2708 GPIO driver"); +MODULE_LICENSE("GPL"); -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/bcm2709.c linux-4.1.22/arch/arm/mach-bcm2709/bcm2709.c ---- linux-4.1.22.orig/arch/arm/mach-bcm2709/bcm2709.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2709/bcm2709.c 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2709/bcm2709.c linux-4.1.23/arch/arm/mach-bcm2709/bcm2709.c +--- linux-4.1.23.orig/arch/arm/mach-bcm2709/bcm2709.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2709/bcm2709.c 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,1332 @@ +/* + * linux/arch/arm/mach-bcm2709/bcm2709.c @@ -18104,9 +18379,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/bcm2709.c linux-4.1.22/arch/ar +MODULE_PARM_DESC(vc_i2c_override, "Allow the use of VC's I2C peripheral."); +module_param(pps_gpio_pin, int, 0644); +MODULE_PARM_DESC(pps_gpio_pin, "Set GPIO pin to reserve for PPS"); -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/bcm2709.h linux-4.1.22/arch/arm/mach-bcm2709/bcm2709.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2709/bcm2709.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2709/bcm2709.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2709/bcm2709.h linux-4.1.23/arch/arm/mach-bcm2709/bcm2709.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2709/bcm2709.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2709/bcm2709.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,49 @@ +/* + * linux/arch/arm/mach-bcm2708/bcm2708.h @@ -18157,9 +18432,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/bcm2709.h linux-4.1.22/arch/ar +} + +#endif -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/delay.S linux-4.1.22/arch/arm/mach-bcm2709/delay.S ---- linux-4.1.22.orig/arch/arm/mach-bcm2709/delay.S 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2709/delay.S 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2709/delay.S linux-4.1.23/arch/arm/mach-bcm2709/delay.S +--- linux-4.1.23.orig/arch/arm/mach-bcm2709/delay.S 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2709/delay.S 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,21 @@ +/* + * linux/arch/arm/lib/delay.S @@ -18182,9 +18457,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/delay.S linux-4.1.22/arch/arm/ + bhi bcm2708_delay + mov pc, lr +ENDPROC(bcm2708_delay) -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/arm_control.h linux-4.1.22/arch/arm/mach-bcm2709/include/mach/arm_control.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/arm_control.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2709/include/mach/arm_control.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/arm_control.h linux-4.1.23/arch/arm/mach-bcm2709/include/mach/arm_control.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/arm_control.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2709/include/mach/arm_control.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,493 @@ +/* + * linux/arch/arm/mach-bcm2708/arm_control.h @@ -18679,16 +18954,16 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/arm_control.h lin +#define ARM_LOCAL_MAILBOX3_CLR3 HW_REGISTER_RW(ARM_LOCAL_BASE+0x0FC) + +#endif -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/barriers.h linux-4.1.22/arch/arm/mach-bcm2709/include/mach/barriers.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/barriers.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2709/include/mach/barriers.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/barriers.h linux-4.1.23/arch/arm/mach-bcm2709/include/mach/barriers.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/barriers.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2709/include/mach/barriers.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,3 @@ +#define mb() dsb() +#define rmb() dsb() +#define wmb() mb() -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/clkdev.h linux-4.1.22/arch/arm/mach-bcm2709/include/mach/clkdev.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/clkdev.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2709/include/mach/clkdev.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/clkdev.h linux-4.1.23/arch/arm/mach-bcm2709/include/mach/clkdev.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/clkdev.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2709/include/mach/clkdev.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,7 @@ +#ifndef __ASM_MACH_CLKDEV_H +#define __ASM_MACH_CLKDEV_H @@ -18697,9 +18972,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/clkdev.h linux-4. +#define __clk_put(clk) do { } while (0) + +#endif -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/debug-macro.S linux-4.1.22/arch/arm/mach-bcm2709/include/mach/debug-macro.S ---- linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/debug-macro.S 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2709/include/mach/debug-macro.S 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/debug-macro.S linux-4.1.23/arch/arm/mach-bcm2709/include/mach/debug-macro.S +--- linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/debug-macro.S 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2709/include/mach/debug-macro.S 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,22 @@ +/* arch/arm/mach-bcm2708/include/mach/debug-macro.S + * @@ -18723,9 +18998,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/debug-macro.S lin + .endm + +#include <debug/pl01x.S> -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/entry-macro.S linux-4.1.22/arch/arm/mach-bcm2709/include/mach/entry-macro.S ---- linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/entry-macro.S 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2709/include/mach/entry-macro.S 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/entry-macro.S linux-4.1.23/arch/arm/mach-bcm2709/include/mach/entry-macro.S +--- linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/entry-macro.S 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2709/include/mach/entry-macro.S 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,120 @@ +/* + * arch/arm/mach-bcm2708/include/mach/entry-macro.S @@ -18847,9 +19122,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/entry-macro.S lin + .macro arch_irq_handler_default +1: get_irqnr_and_base r0, r2, r6, lr + .endm -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/frc.h linux-4.1.22/arch/arm/mach-bcm2709/include/mach/frc.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/frc.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2709/include/mach/frc.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/frc.h linux-4.1.23/arch/arm/mach-bcm2709/include/mach/frc.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/frc.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2709/include/mach/frc.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,38 @@ +/* + * arch/arm/mach-bcm2708/include/mach/timex.h @@ -18889,9 +19164,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/frc.h linux-4.1.2 +extern unsigned long long frc_clock_ticks63(void); + +#endif -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/gpio.h linux-4.1.22/arch/arm/mach-bcm2709/include/mach/gpio.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/gpio.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2709/include/mach/gpio.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/gpio.h linux-4.1.23/arch/arm/mach-bcm2709/include/mach/gpio.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/gpio.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2709/include/mach/gpio.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,17 @@ +/* + * arch/arm/mach-bcm2708/include/mach/gpio.h @@ -18910,9 +19185,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/gpio.h linux-4.1. +#define irq_to_gpio(x) ((x) - GPIO_IRQ_START) + +#endif -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/hardware.h linux-4.1.22/arch/arm/mach-bcm2709/include/mach/hardware.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/hardware.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2709/include/mach/hardware.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/hardware.h linux-4.1.23/arch/arm/mach-bcm2709/include/mach/hardware.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/hardware.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2709/include/mach/hardware.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,28 @@ +/* + * arch/arm/mach-bcm2708/include/mach/hardware.h @@ -18942,9 +19217,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/hardware.h linux- +#include <mach/platform.h> + +#endif -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/io.h linux-4.1.22/arch/arm/mach-bcm2709/include/mach/io.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/io.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2709/include/mach/io.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/io.h linux-4.1.23/arch/arm/mach-bcm2709/include/mach/io.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/io.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2709/include/mach/io.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,27 @@ +/* + * arch/arm/mach-bcm2708/include/mach/io.h @@ -18973,9 +19248,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/io.h linux-4.1.22 +#define __io(a) __typesafe_io(a) + +#endif -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/irqs.h linux-4.1.22/arch/arm/mach-bcm2709/include/mach/irqs.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/irqs.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2709/include/mach/irqs.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/irqs.h linux-4.1.23/arch/arm/mach-bcm2709/include/mach/irqs.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/irqs.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2709/include/mach/irqs.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,225 @@ +/* + * arch/arm/mach-bcm2708/include/mach/irqs.h @@ -19202,9 +19477,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/irqs.h linux-4.1. +#define NR_IRQS (BCM2708_ALLOC_IRQS+FREE_IRQS) + +#endif /* _BCM2708_IRQS_H_ */ -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/memory.h linux-4.1.22/arch/arm/mach-bcm2709/include/mach/memory.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/memory.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2709/include/mach/memory.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/memory.h linux-4.1.23/arch/arm/mach-bcm2709/include/mach/memory.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/memory.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2709/include/mach/memory.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,57 @@ +/* + * arch/arm/mach-bcm2708/include/mach/memory.h @@ -19263,9 +19538,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/memory.h linux-4. +#define __bus_to_pfn(x) __phys_to_pfn((x) - (BUS_OFFSET - BCM_PLAT_PHYS_OFFSET)) + +#endif -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/platform.h linux-4.1.22/arch/arm/mach-bcm2709/include/mach/platform.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/platform.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2709/include/mach/platform.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/platform.h linux-4.1.23/arch/arm/mach-bcm2709/include/mach/platform.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/platform.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2709/include/mach/platform.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,227 @@ +/* + * arch/arm/mach-bcm2708/include/mach/platform.h @@ -19494,9 +19769,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/platform.h linux- +#endif + +/* END */ -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/system.h linux-4.1.22/arch/arm/mach-bcm2709/include/mach/system.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/system.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2709/include/mach/system.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/system.h linux-4.1.23/arch/arm/mach-bcm2709/include/mach/system.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/system.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2709/include/mach/system.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,38 @@ +/* + * arch/arm/mach-bcm2708/include/mach/system.h @@ -19536,9 +19811,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/system.h linux-4. +} + +#endif -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/timex.h linux-4.1.22/arch/arm/mach-bcm2709/include/mach/timex.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/timex.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2709/include/mach/timex.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/timex.h linux-4.1.23/arch/arm/mach-bcm2709/include/mach/timex.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/timex.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2709/include/mach/timex.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,23 @@ +/* + * arch/arm/mach-bcm2708/include/mach/timex.h @@ -19563,9 +19838,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/timex.h linux-4.1 + */ + +#define CLOCK_TICK_RATE (1000000) -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/uncompress.h linux-4.1.22/arch/arm/mach-bcm2709/include/mach/uncompress.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/uncompress.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2709/include/mach/uncompress.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/uncompress.h linux-4.1.23/arch/arm/mach-bcm2709/include/mach/uncompress.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/uncompress.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2709/include/mach/uncompress.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,84 @@ +/* + * arch/arm/mach-bcn2708/include/mach/uncompress.h @@ -19651,9 +19926,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/uncompress.h linu + * nothing to do + */ +#define arch_decomp_wdog() -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/vc_support.h linux-4.1.22/arch/arm/mach-bcm2709/include/mach/vc_support.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/vc_support.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2709/include/mach/vc_support.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/vc_support.h linux-4.1.23/arch/arm/mach-bcm2709/include/mach/vc_support.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/vc_support.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2709/include/mach/vc_support.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,69 @@ +#ifndef _VC_SUPPORT_H_ +#define _VC_SUPPORT_H_ @@ -19724,9 +19999,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/vc_support.h linu + unsigned int r0, unsigned int r1, unsigned int r2, unsigned int r3, unsigned int r4, unsigned int r5); + +#endif -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/vmalloc.h linux-4.1.22/arch/arm/mach-bcm2709/include/mach/vmalloc.h ---- linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/vmalloc.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2709/include/mach/vmalloc.h 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/vmalloc.h linux-4.1.23/arch/arm/mach-bcm2709/include/mach/vmalloc.h +--- linux-4.1.23.orig/arch/arm/mach-bcm2709/include/mach/vmalloc.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2709/include/mach/vmalloc.h 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,20 @@ +/* + * arch/arm/mach-bcm2708/include/mach/vmalloc.h @@ -19748,9 +20023,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/include/mach/vmalloc.h linux-4 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +#define VMALLOC_END (0xff000000) -diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/vc_support.c linux-4.1.22/arch/arm/mach-bcm2709/vc_support.c ---- linux-4.1.22.orig/arch/arm/mach-bcm2709/vc_support.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/arch/arm/mach-bcm2709/vc_support.c 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-bcm2709/vc_support.c linux-4.1.23/arch/arm/mach-bcm2709/vc_support.c +--- linux-4.1.23.orig/arch/arm/mach-bcm2709/vc_support.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/arch/arm/mach-bcm2709/vc_support.c 2016-05-02 22:53:50.000000000 +0200 @@ -0,0 +1,318 @@ +/* + * vc_support.c @@ -20070,9 +20345,50 @@ diff -Nur linux-4.1.22.orig/arch/arm/mach-bcm2709/vc_support.c linux-4.1.22/arch + return 1; + } +} -diff -Nur linux-4.1.22.orig/arch/arm/mm/Kconfig linux-4.1.22/arch/arm/mm/Kconfig ---- linux-4.1.22.orig/arch/arm/mm/Kconfig 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/arch/arm/mm/Kconfig 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mach-omap2/sleep34xx.S linux-4.1.23/arch/arm/mach-omap2/sleep34xx.S +--- linux-4.1.23.orig/arch/arm/mach-omap2/sleep34xx.S 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/arm/mach-omap2/sleep34xx.S 2016-05-02 22:53:50.000000000 +0200 +@@ -436,14 +436,12 @@ + and r1, #0x700 + cmp r1, #0x300 + beq l2_inv_gp +- adr r0, l2_inv_api_params_offset +- ldr r3, [r0] +- add r3, r3, r0 @ r3 points to dummy parameters + mov r0, #40 @ set service ID for PPA + mov r12, r0 @ copy secure Service ID in r12 + mov r1, #0 @ set task id for ROM code in r1 + mov r2, #4 @ set some flags in r2, r6 + mov r6, #0xff ++ adr r3, l2_inv_api_params @ r3 points to dummy parameters + dsb @ data write barrier + dmb @ data memory barrier + smc #1 @ call SMI monitor (smi #1) +@@ -477,8 +475,8 @@ + b logic_l1_restore + + .align +-l2_inv_api_params_offset: +- .long l2_inv_api_params - . ++l2_inv_api_params: ++ .word 0x1, 0x00 + l2_inv_gp: + /* Execute smi to invalidate L2 cache */ + mov r12, #0x1 @ set up to invalidate L2 +@@ -533,10 +531,6 @@ + l2dis_3630: + .word 0 + +- .data +-l2_inv_api_params: +- .word 0x1, 0x00 +- + /* + * Internal functions + */ +diff -Nur linux-4.1.23.orig/arch/arm/mm/Kconfig linux-4.1.23/arch/arm/mm/Kconfig +--- linux-4.1.23.orig/arch/arm/mm/Kconfig 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/arm/mm/Kconfig 2016-05-02 22:53:50.000000000 +0200 @@ -358,7 +358,7 @@ # ARMv6 @@ -20082,9 +20398,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mm/Kconfig linux-4.1.22/arch/arm/mm/Kconfig select CPU_32v6 select CPU_ABRT_EV6 select CPU_CACHE_V6 -diff -Nur linux-4.1.22.orig/arch/arm/mm/proc-v6.S linux-4.1.22/arch/arm/mm/proc-v6.S ---- linux-4.1.22.orig/arch/arm/mm/proc-v6.S 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/arch/arm/mm/proc-v6.S 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mm/proc-v6.S linux-4.1.23/arch/arm/mm/proc-v6.S +--- linux-4.1.23.orig/arch/arm/mm/proc-v6.S 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/arm/mm/proc-v6.S 2016-05-02 22:53:50.000000000 +0200 @@ -73,10 +73,19 @@ * * IRQs are already disabled. @@ -20108,9 +20424,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mm/proc-v6.S linux-4.1.22/arch/arm/mm/proc- ret lr ENTRY(cpu_v6_dcache_clean_area) -diff -Nur linux-4.1.22.orig/arch/arm/mm/proc-v7.S linux-4.1.22/arch/arm/mm/proc-v7.S ---- linux-4.1.22.orig/arch/arm/mm/proc-v7.S 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/arch/arm/mm/proc-v7.S 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/mm/proc-v7.S linux-4.1.23/arch/arm/mm/proc-v7.S +--- linux-4.1.23.orig/arch/arm/mm/proc-v7.S 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/arm/mm/proc-v7.S 2016-05-02 22:53:50.000000000 +0200 @@ -460,6 +460,7 @@ orr r0, r0, r6 @ set them THUMB( orr r0, r0, #1 << 30 ) @ Thumb exceptions @@ -20119,9 +20435,9 @@ diff -Nur linux-4.1.22.orig/arch/arm/mm/proc-v7.S linux-4.1.22/arch/arm/mm/proc- ENDPROC(__v7_setup) .align 2 -diff -Nur linux-4.1.22.orig/arch/arm/tools/mach-types linux-4.1.22/arch/arm/tools/mach-types ---- linux-4.1.22.orig/arch/arm/tools/mach-types 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/arch/arm/tools/mach-types 2016-04-29 18:02:45.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm/tools/mach-types linux-4.1.23/arch/arm/tools/mach-types +--- linux-4.1.23.orig/arch/arm/tools/mach-types 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/arm/tools/mach-types 2016-05-02 22:53:50.000000000 +0200 @@ -522,6 +522,8 @@ prima2_evb MACH_PRIMA2_EVB PRIMA2_EVB 3103 paz00 MACH_PAZ00 PAZ00 3128 @@ -20131,9 +20447,1538 @@ diff -Nur linux-4.1.22.orig/arch/arm/tools/mach-types linux-4.1.22/arch/arm/tool 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-4.1.22.orig/drivers/bluetooth/hci_h5.c linux-4.1.22/drivers/bluetooth/hci_h5.c ---- linux-4.1.22.orig/drivers/bluetooth/hci_h5.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/bluetooth/hci_h5.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/arch/arm64/Makefile linux-4.1.23/arch/arm64/Makefile +--- linux-4.1.23.orig/arch/arm64/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/arm64/Makefile 2016-05-02 22:53:50.000000000 +0200 +@@ -18,8 +18,6 @@ + KBUILD_DEFCONFIG := defconfig + + KBUILD_CFLAGS += -mgeneral-regs-only +-KBUILD_CFLAGS += $(call cc-option, -mpc-relative-literal-loads) +- + ifeq ($(CONFIG_CPU_BIG_ENDIAN), y) + KBUILD_CPPFLAGS += -mbig-endian + AS += -EB +diff -Nur linux-4.1.23.orig/arch/arm64/include/asm/pgtable.h linux-4.1.23/arch/arm64/include/asm/pgtable.h +--- linux-4.1.23.orig/arch/arm64/include/asm/pgtable.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/arm64/include/asm/pgtable.h 2016-05-02 22:53:50.000000000 +0200 +@@ -33,7 +33,7 @@ + /* + * VMALLOC and SPARSEMEM_VMEMMAP ranges. + * +- * VMEMAP_SIZE: allows the whole linear region to be covered by a struct page array ++ * VMEMAP_SIZE: allows the whole VA space to be covered by a struct page array + * (rounded up to PUD_SIZE). + * VMALLOC_START: beginning of the kernel VA space + * VMALLOC_END: extends to the available space below vmmemmap, PCI I/O space, +@@ -43,9 +43,7 @@ + #define VMALLOC_START (UL(0xffffffffffffffff) << VA_BITS) + #define VMALLOC_END (PAGE_OFFSET - PUD_SIZE - VMEMMAP_SIZE - SZ_64K) + +-#define VMEMMAP_START (VMALLOC_END + SZ_64K) +-#define vmemmap ((struct page *)VMEMMAP_START - \ +- SECTION_ALIGN_DOWN(memstart_addr >> PAGE_SHIFT)) ++#define vmemmap ((struct page *)(VMALLOC_END + SZ_64K)) + + #define FIRST_USER_ADDRESS 0UL + +diff -Nur linux-4.1.23.orig/arch/arm64/mm/init.c linux-4.1.23/arch/arm64/mm/init.c +--- linux-4.1.23.orig/arch/arm64/mm/init.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/arm64/mm/init.c 2016-05-02 22:53:50.000000000 +0200 +@@ -312,8 +312,8 @@ + " .data : 0x%p" " - 0x%p" " (%6ld KB)\n", + MLG(VMALLOC_START, VMALLOC_END), + #ifdef CONFIG_SPARSEMEM_VMEMMAP +- MLG(VMEMMAP_START, +- VMEMMAP_START + VMEMMAP_SIZE), ++ MLG((unsigned long)vmemmap, ++ (unsigned long)vmemmap + VMEMMAP_SIZE), + MLM((unsigned long)virt_to_page(PAGE_OFFSET), + (unsigned long)virt_to_page(high_memory)), + #endif +diff -Nur linux-4.1.23.orig/arch/avr32/mach-at32ap/at32ap700x.c linux-4.1.23/arch/avr32/mach-at32ap/at32ap700x.c +--- linux-4.1.23.orig/arch/avr32/mach-at32ap/at32ap700x.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/avr32/mach-at32ap/at32ap700x.c 2016-05-02 22:53:51.000000000 +0200 +@@ -1328,21 +1328,6 @@ + .index = 9, + }; + +-static bool at32_mci_dma_filter(struct dma_chan *chan, void *pdata) +-{ +- struct mci_dma_data *sl = pdata; +- +- if (!sl) +- return false; +- +- if (find_slave_dev(sl) == chan->device->dev) { +- chan->private = slave_data_ptr(sl); +- return true; +- } +- +- return false; +-} +- + struct platform_device *__init + at32_add_device_mci(unsigned int id, struct mci_platform_data *data) + { +@@ -1377,7 +1362,6 @@ + slave->sdata.dst_master = 0; + + data->dma_slave = slave; +- data->dma_filter = at32_mci_dma_filter; + + if (platform_device_add_data(pdev, data, + sizeof(struct mci_platform_data))) +diff -Nur linux-4.1.23.orig/arch/mips/kernel/smp.c linux-4.1.23/arch/mips/kernel/smp.c +--- linux-4.1.23.orig/arch/mips/kernel/smp.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/mips/kernel/smp.c 2016-05-02 22:53:51.000000000 +0200 +@@ -120,7 +120,6 @@ + cpumask_t temp_foreign_map; + + /* Re-calculate the mask */ +- cpumask_clear(&temp_foreign_map); + for_each_online_cpu(i) { + core_present = 0; + for_each_cpu(k, &temp_foreign_map) +diff -Nur linux-4.1.23.orig/arch/powerpc/kernel/module_64.c linux-4.1.23/arch/powerpc/kernel/module_64.c +--- linux-4.1.23.orig/arch/powerpc/kernel/module_64.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/powerpc/kernel/module_64.c 2016-05-02 22:53:51.000000000 +0200 +@@ -335,7 +335,7 @@ + if (syms[i].st_shndx == SHN_UNDEF) { + char *name = strtab + syms[i].st_name; + if (name[0] == '.') +- syms[i].st_name++; ++ memmove(name, name+1, strlen(name)); + } + } + } +diff -Nur linux-4.1.23.orig/arch/s390/include/asm/pci.h linux-4.1.23/arch/s390/include/asm/pci.h +--- linux-4.1.23.orig/arch/s390/include/asm/pci.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/s390/include/asm/pci.h 2016-05-02 22:53:51.000000000 +0200 +@@ -45,7 +45,7 @@ + u64 rpcit_ops; + u64 dma_rbytes; + u64 dma_wbytes; +-} __packed __aligned(64); ++} __packed __aligned(16); + + enum zpci_state { + ZPCI_FN_STATE_RESERVED, +diff -Nur linux-4.1.23.orig/arch/s390/pci/pci.c linux-4.1.23/arch/s390/pci/pci.c +--- linux-4.1.23.orig/arch/s390/pci/pci.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/s390/pci/pci.c 2016-05-02 22:53:51.000000000 +0200 +@@ -871,11 +871,8 @@ + + static int zpci_mem_init(void) + { +- BUILD_BUG_ON(!is_power_of_2(__alignof__(struct zpci_fmb)) || +- __alignof__(struct zpci_fmb) < sizeof(struct zpci_fmb)); +- + zdev_fmb_cache = kmem_cache_create("PCI_FMB_cache", sizeof(struct zpci_fmb), +- __alignof__(struct zpci_fmb), 0, NULL); ++ 16, 0, NULL); + if (!zdev_fmb_cache) + goto error_zdev; + +diff -Nur linux-4.1.23.orig/arch/um/drivers/mconsole_kern.c linux-4.1.23/arch/um/drivers/mconsole_kern.c +--- linux-4.1.23.orig/arch/um/drivers/mconsole_kern.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/um/drivers/mconsole_kern.c 2016-05-02 22:53:51.000000000 +0200 +@@ -133,7 +133,7 @@ + ptr += strlen("proc"); + ptr = skip_spaces(ptr); + +- file = file_open_root(mnt->mnt_root, mnt, ptr, O_RDONLY, 0); ++ file = file_open_root(mnt->mnt_root, mnt, ptr, O_RDONLY); + if (IS_ERR(file)) { + mconsole_reply(req, "Failed to open file", 1, 0); + printk(KERN_ERR "open /proc/%s: %ld\n", ptr, PTR_ERR(file)); +diff -Nur linux-4.1.23.orig/arch/x86/ia32/ia32entry.S linux-4.1.23/arch/x86/ia32/ia32entry.S +--- linux-4.1.23.orig/arch/x86/ia32/ia32entry.S 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/x86/ia32/ia32entry.S 2016-05-02 22:53:51.000000000 +0200 +@@ -511,7 +511,6 @@ + * it is too small to ever cause noticeable irq latency. + */ + PARAVIRT_ADJUST_EXCEPTION_FRAME +- ASM_CLAC /* Do this early to minimize exposure */ + SWAPGS + ENABLE_INTERRUPTS(CLBR_NONE) + +diff -Nur linux-4.1.23.orig/arch/x86/include/asm/apic.h linux-4.1.23/arch/x86/include/asm/apic.h +--- linux-4.1.23.orig/arch/x86/include/asm/apic.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/x86/include/asm/apic.h 2016-05-02 22:53:51.000000000 +0200 +@@ -640,8 +640,8 @@ + + static inline void entering_ack_irq(void) + { +- entering_irq(); + ack_APIC_irq(); ++ entering_irq(); + } + + static inline void exiting_irq(void) +diff -Nur linux-4.1.23.orig/arch/x86/include/asm/perf_event.h linux-4.1.23/arch/x86/include/asm/perf_event.h +--- linux-4.1.23.orig/arch/x86/include/asm/perf_event.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/x86/include/asm/perf_event.h 2016-05-02 22:53:51.000000000 +0200 +@@ -159,14 +159,6 @@ + */ + #define INTEL_PMC_IDX_FIXED_BTS (INTEL_PMC_IDX_FIXED + 16) + +-#define GLOBAL_STATUS_COND_CHG BIT_ULL(63) +-#define GLOBAL_STATUS_BUFFER_OVF BIT_ULL(62) +-#define GLOBAL_STATUS_UNC_OVF BIT_ULL(61) +-#define GLOBAL_STATUS_ASIF BIT_ULL(60) +-#define GLOBAL_STATUS_COUNTERS_FROZEN BIT_ULL(59) +-#define GLOBAL_STATUS_LBRS_FROZEN BIT_ULL(58) +-#define GLOBAL_STATUS_TRACE_TOPAPMI BIT_ULL(55) +- + /* + * IBS cpuid feature detection + */ +diff -Nur linux-4.1.23.orig/arch/x86/include/asm/xen/hypervisor.h linux-4.1.23/arch/x86/include/asm/xen/hypervisor.h +--- linux-4.1.23.orig/arch/x86/include/asm/xen/hypervisor.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/x86/include/asm/xen/hypervisor.h 2016-05-02 22:53:51.000000000 +0200 +@@ -57,6 +57,4 @@ + } + #endif + +-extern void xen_set_iopl_mask(unsigned mask); +- + #endif /* _ASM_X86_XEN_HYPERVISOR_H */ +diff -Nur linux-4.1.23.orig/arch/x86/include/uapi/asm/msr-index.h linux-4.1.23/arch/x86/include/uapi/asm/msr-index.h +--- linux-4.1.23.orig/arch/x86/include/uapi/asm/msr-index.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/x86/include/uapi/asm/msr-index.h 2016-05-02 22:53:51.000000000 +0200 +@@ -72,12 +72,6 @@ + #define MSR_LBR_CORE_FROM 0x00000040 + #define MSR_LBR_CORE_TO 0x00000060 + +-#define MSR_LBR_INFO_0 0x00000dc0 /* ... 0xddf for _31 */ +-#define LBR_INFO_MISPRED BIT_ULL(63) +-#define LBR_INFO_IN_TX BIT_ULL(62) +-#define LBR_INFO_ABORT BIT_ULL(61) +-#define LBR_INFO_CYCLES 0xffff +- + #define MSR_IA32_PEBS_ENABLE 0x000003f1 + #define MSR_IA32_DS_AREA 0x00000600 + #define MSR_IA32_PERF_CAPABILITIES 0x00000345 +diff -Nur linux-4.1.23.orig/arch/x86/kernel/ioport.c linux-4.1.23/arch/x86/kernel/ioport.c +--- linux-4.1.23.orig/arch/x86/kernel/ioport.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/x86/kernel/ioport.c 2016-05-02 22:53:51.000000000 +0200 +@@ -96,14 +96,9 @@ + SYSCALL_DEFINE1(iopl, unsigned int, level) + { + struct pt_regs *regs = current_pt_regs(); ++ unsigned int old = (regs->flags >> 12) & 3; + struct thread_struct *t = ¤t->thread; + +- /* +- * Careful: the IOPL bits in regs->flags are undefined under Xen PV +- * and changing them has no effect. +- */ +- unsigned int old = t->iopl >> X86_EFLAGS_IOPL_BIT; +- + if (level > 3) + return -EINVAL; + /* Trying to gain more privileges? */ +@@ -111,9 +106,8 @@ + if (!capable(CAP_SYS_RAWIO)) + return -EPERM; + } +- regs->flags = (regs->flags & ~X86_EFLAGS_IOPL) | +- (level << X86_EFLAGS_IOPL_BIT); +- t->iopl = level << X86_EFLAGS_IOPL_BIT; ++ regs->flags = (regs->flags & ~X86_EFLAGS_IOPL) | (level << 12); ++ t->iopl = level << 12; + set_iopl_mask(t->iopl); + + return 0; +diff -Nur linux-4.1.23.orig/arch/x86/kernel/process_64.c linux-4.1.23/arch/x86/kernel/process_64.c +--- linux-4.1.23.orig/arch/x86/kernel/process_64.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/x86/kernel/process_64.c 2016-05-02 22:53:51.000000000 +0200 +@@ -49,7 +49,6 @@ + #include <asm/syscalls.h> + #include <asm/debugreg.h> + #include <asm/switch_to.h> +-#include <asm/xen/hypervisor.h> + + asmlinkage extern void ret_from_fork(void); + +@@ -420,17 +419,6 @@ + task_thread_info(prev_p)->flags & _TIF_WORK_CTXSW_PREV)) + __switch_to_xtra(prev_p, next_p, tss); + +-#ifdef CONFIG_XEN +- /* +- * On Xen PV, IOPL bits in pt_regs->flags have no effect, and +- * current_pt_regs()->flags may not match the current task's +- * intended IOPL. We need to switch it manually. +- */ +- if (unlikely(xen_pv_domain() && +- prev->iopl != next->iopl)) +- xen_set_iopl_mask(next->iopl); +-#endif +- + if (static_cpu_has_bug(X86_BUG_SYSRET_SS_ATTRS)) { + /* + * AMD CPUs have a misfeature: SYSRET sets the SS selector but +diff -Nur linux-4.1.23.orig/arch/x86/kvm/i8254.c linux-4.1.23/arch/x86/kvm/i8254.c +--- linux-4.1.23.orig/arch/x86/kvm/i8254.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/x86/kvm/i8254.c 2016-05-02 22:53:51.000000000 +0200 +@@ -244,7 +244,7 @@ + * PIC is being reset. Handle it gracefully here + */ + atomic_inc(&ps->pending); +- else if (value > 0 && ps->reinject) ++ else if (value > 0) + /* in this case, we had multiple outstanding pit interrupts + * that we needed to inject. Reinject + */ +@@ -287,9 +287,7 @@ + * last one has been acked. + */ + spin_lock(&ps->inject_lock); +- if (!ps->reinject) +- inject = 1; +- else if (ps->irq_ack) { ++ if (ps->irq_ack) { + ps->irq_ack = 0; + inject = 1; + } +@@ -318,10 +316,10 @@ + struct kvm_kpit_state *ps = container_of(data, struct kvm_kpit_state, timer); + struct kvm_pit *pt = ps->kvm->arch.vpit; + +- if (ps->reinject) ++ if (ps->reinject || !atomic_read(&ps->pending)) { + atomic_inc(&ps->pending); +- +- queue_kthread_work(&pt->worker, &pt->expired); ++ queue_kthread_work(&pt->worker, &pt->expired); ++ } + + if (ps->is_periodic) { + hrtimer_add_expires_ns(&ps->timer, ps->period); +diff -Nur linux-4.1.23.orig/arch/x86/kvm/vmx.c linux-4.1.23/arch/x86/kvm/vmx.c +--- linux-4.1.23.orig/arch/x86/kvm/vmx.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/x86/kvm/vmx.c 2016-05-02 22:53:51.000000000 +0200 +@@ -7210,7 +7210,6 @@ + if (!(types & (1UL << type))) { + nested_vmx_failValid(vcpu, + VMXERR_INVALID_OPERAND_TO_INVEPT_INVVPID); +- skip_emulated_instruction(vcpu); + return 1; + } + +diff -Nur linux-4.1.23.orig/arch/x86/kvm/x86.c linux-4.1.23/arch/x86/kvm/x86.c +--- linux-4.1.23.orig/arch/x86/kvm/x86.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/x86/kvm/x86.c 2016-05-02 22:53:51.000000000 +0200 +@@ -3731,13 +3731,13 @@ + + static int kvm_vm_ioctl_set_pit(struct kvm *kvm, struct kvm_pit_state *ps) + { +- int i; ++ int r = 0; ++ + mutex_lock(&kvm->arch.vpit->pit_state.lock); + memcpy(&kvm->arch.vpit->pit_state, ps, sizeof(struct kvm_pit_state)); +- for (i = 0; i < 3; i++) +- kvm_pit_load_count(kvm, i, ps->channels[i].count, 0); ++ kvm_pit_load_count(kvm, 0, ps->channels[0].count, 0); + mutex_unlock(&kvm->arch.vpit->pit_state.lock); +- return 0; ++ return r; + } + + static int kvm_vm_ioctl_get_pit2(struct kvm *kvm, struct kvm_pit_state2 *ps) +@@ -3756,7 +3756,6 @@ + static int kvm_vm_ioctl_set_pit2(struct kvm *kvm, struct kvm_pit_state2 *ps) + { + int r = 0, start = 0; +- int i; + u32 prev_legacy, cur_legacy; + mutex_lock(&kvm->arch.vpit->pit_state.lock); + prev_legacy = kvm->arch.vpit->pit_state.flags & KVM_PIT_FLAGS_HPET_LEGACY; +@@ -3766,8 +3765,7 @@ + memcpy(&kvm->arch.vpit->pit_state.channels, &ps->channels, + sizeof(kvm->arch.vpit->pit_state.channels)); + kvm->arch.vpit->pit_state.flags = ps->flags; +- for (i = 0; i < 3; i++) +- kvm_pit_load_count(kvm, i, kvm->arch.vpit->pit_state.channels[i].count, start); ++ kvm_pit_load_count(kvm, 0, kvm->arch.vpit->pit_state.channels[0].count, start); + mutex_unlock(&kvm->arch.vpit->pit_state.lock); + return r; + } +diff -Nur linux-4.1.23.orig/arch/x86/pci/fixup.c linux-4.1.23/arch/x86/pci/fixup.c +--- linux-4.1.23.orig/arch/x86/pci/fixup.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/x86/pci/fixup.c 2016-05-02 22:53:51.000000000 +0200 +@@ -553,10 +553,3 @@ + } + } + DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x27B9, twinhead_reserve_killing_zone); +- +-static void pci_bdwep_bar(struct pci_dev *dev) +-{ +- dev->non_compliant_bars = 1; +-} +-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x6fa0, pci_bdwep_bar); +-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x6fc0, pci_bdwep_bar); +diff -Nur linux-4.1.23.orig/arch/x86/xen/enlighten.c linux-4.1.23/arch/x86/xen/enlighten.c +--- linux-4.1.23.orig/arch/x86/xen/enlighten.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/x86/xen/enlighten.c 2016-05-02 22:53:51.000000000 +0200 +@@ -959,7 +959,7 @@ + tss->x86_tss.sp0 = thread->sp0; + } + +-void xen_set_iopl_mask(unsigned mask) ++static void xen_set_iopl_mask(unsigned mask) + { + struct physdev_set_iopl set_iopl; + +diff -Nur linux-4.1.23.orig/arch/xtensa/kernel/head.S linux-4.1.23/arch/xtensa/kernel/head.S +--- linux-4.1.23.orig/arch/xtensa/kernel/head.S 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/xtensa/kernel/head.S 2016-05-02 22:53:51.000000000 +0200 +@@ -128,7 +128,7 @@ + wsr a0, icountlevel + + .set _index, 0 +- .rept XCHAL_NUM_DBREAK ++ .rept XCHAL_NUM_DBREAK - 1 + wsr a0, SREG_DBREAKC + _index + .set _index, _index + 1 + .endr +diff -Nur linux-4.1.23.orig/arch/xtensa/mm/cache.c linux-4.1.23/arch/xtensa/mm/cache.c +--- linux-4.1.23.orig/arch/xtensa/mm/cache.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/xtensa/mm/cache.c 2016-05-02 22:53:51.000000000 +0200 +@@ -97,11 +97,11 @@ + unsigned long paddr; + void *kvaddr = coherent_kvaddr(page, TLBTEMP_BASE_1, vaddr, &paddr); + +- preempt_disable(); ++ pagefault_disable(); + kmap_invalidate_coherent(page, vaddr); + set_bit(PG_arch_1, &page->flags); + clear_page_alias(kvaddr, paddr); +- preempt_enable(); ++ pagefault_enable(); + } + + void copy_user_highpage(struct page *dst, struct page *src, +@@ -113,11 +113,11 @@ + void *src_vaddr = coherent_kvaddr(src, TLBTEMP_BASE_2, vaddr, + &src_paddr); + +- preempt_disable(); ++ pagefault_disable(); + kmap_invalidate_coherent(dst, vaddr); + set_bit(PG_arch_1, &dst->flags); + copy_page_alias(dst_vaddr, src_vaddr, dst_paddr, src_paddr); +- preempt_enable(); ++ pagefault_enable(); + } + + #endif /* DCACHE_WAY_SIZE > PAGE_SIZE */ +diff -Nur linux-4.1.23.orig/arch/xtensa/platforms/iss/console.c linux-4.1.23/arch/xtensa/platforms/iss/console.c +--- linux-4.1.23.orig/arch/xtensa/platforms/iss/console.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/arch/xtensa/platforms/iss/console.c 2016-05-02 22:53:51.000000000 +0200 +@@ -100,23 +100,21 @@ + { + struct tty_port *port = (struct tty_port *)priv; + int i = 0; +- int rd = 1; + unsigned char c; + + spin_lock(&timer_lock); + + while (simc_poll(0)) { +- rd = simc_read(0, &c, 1); +- if (rd <= 0) +- break; ++ simc_read(0, &c, 1); + tty_insert_flip_char(port, c, TTY_NORMAL); + i++; + } + + if (i) + tty_flip_buffer_push(port); +- if (rd) +- mod_timer(&serial_timer, jiffies + SERIAL_TIMER_VALUE); ++ ++ ++ mod_timer(&serial_timer, jiffies + SERIAL_TIMER_VALUE); + spin_unlock(&timer_lock); + } + +diff -Nur linux-4.1.23.orig/block/blk-core.c linux-4.1.23/block/blk-core.c +--- linux-4.1.23.orig/block/blk-core.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/block/blk-core.c 2016-05-02 22:53:51.000000000 +0200 +@@ -2067,7 +2067,7 @@ + if (q->mq_ops) { + if (blk_queue_io_stat(q)) + blk_account_io_start(rq, true); +- blk_mq_insert_request(rq, false, true, false); ++ blk_mq_insert_request(rq, false, true, true); + return 0; + } + +diff -Nur linux-4.1.23.orig/crypto/asymmetric_keys/Makefile linux-4.1.23/crypto/asymmetric_keys/Makefile +--- linux-4.1.23.orig/crypto/asymmetric_keys/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/crypto/asymmetric_keys/Makefile 2016-05-02 22:53:51.000000000 +0200 +@@ -15,21 +15,15 @@ + obj-$(CONFIG_X509_CERTIFICATE_PARSER) += x509_key_parser.o + x509_key_parser-y := \ + x509-asn1.o \ +- x509_akid-asn1.o \ + x509_rsakey-asn1.o \ + x509_cert_parser.o \ + x509_public_key.o + +-$(obj)/x509_cert_parser.o: \ +- $(obj)/x509-asn1.h \ +- $(obj)/x509_akid-asn1.h \ +- $(obj)/x509_rsakey-asn1.h ++$(obj)/x509_cert_parser.o: $(obj)/x509-asn1.h $(obj)/x509_rsakey-asn1.h + $(obj)/x509-asn1.o: $(obj)/x509-asn1.c $(obj)/x509-asn1.h +-$(obj)/x509_akid-asn1.o: $(obj)/x509_akid-asn1.c $(obj)/x509_akid-asn1.h + $(obj)/x509_rsakey-asn1.o: $(obj)/x509_rsakey-asn1.c $(obj)/x509_rsakey-asn1.h + + clean-files += x509-asn1.c x509-asn1.h +-clean-files += x509_akid-asn1.c x509_akid-asn1.h + clean-files += x509_rsakey-asn1.c x509_rsakey-asn1.h + + # +diff -Nur linux-4.1.23.orig/crypto/asymmetric_keys/pkcs7_trust.c linux-4.1.23/crypto/asymmetric_keys/pkcs7_trust.c +--- linux-4.1.23.orig/crypto/asymmetric_keys/pkcs7_trust.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/crypto/asymmetric_keys/pkcs7_trust.c 2016-05-02 22:53:51.000000000 +0200 +@@ -85,8 +85,8 @@ + /* No match - see if the root certificate has a signer amongst the + * trusted keys. + */ +- if (last && last->akid_skid) { +- key = x509_request_asymmetric_key(trust_keyring, last->akid_skid, ++ if (last && last->authority) { ++ key = x509_request_asymmetric_key(trust_keyring, last->authority, + false); + if (!IS_ERR(key)) { + x509 = last; +diff -Nur linux-4.1.23.orig/crypto/asymmetric_keys/pkcs7_verify.c linux-4.1.23/crypto/asymmetric_keys/pkcs7_verify.c +--- linux-4.1.23.orig/crypto/asymmetric_keys/pkcs7_verify.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/crypto/asymmetric_keys/pkcs7_verify.c 2016-05-02 22:53:52.000000000 +0200 +@@ -187,11 +187,11 @@ + goto maybe_missing_crypto_in_x509; + + pr_debug("- issuer %s\n", x509->issuer); +- if (x509->akid_skid) ++ if (x509->authority) + pr_debug("- authkeyid %*phN\n", +- x509->akid_skid->len, x509->akid_skid->data); ++ x509->authority->len, x509->authority->data); + +- if (!x509->akid_skid || ++ if (!x509->authority || + strcmp(x509->subject, x509->issuer) == 0) { + /* If there's no authority certificate specified, then + * the certificate must be self-signed and is the root +@@ -216,13 +216,13 @@ + * list to see if the next one is there. + */ + pr_debug("- want %*phN\n", +- x509->akid_skid->len, x509->akid_skid->data); ++ x509->authority->len, x509->authority->data); + for (p = pkcs7->certs; p; p = p->next) { + if (!p->skid) + continue; + pr_debug("- cmp [%u] %*phN\n", + p->index, p->skid->len, p->skid->data); +- if (asymmetric_key_id_same(p->skid, x509->akid_skid)) ++ if (asymmetric_key_id_same(p->skid, x509->authority)) + goto found_issuer; + } + +@@ -338,6 +338,8 @@ + ret = x509_get_sig_params(x509); + if (ret < 0) + return ret; ++ pr_debug("X.509[%u] %*phN\n", ++ n, x509->authority->len, x509->authority->data); + } + + for (sinfo = pkcs7->signed_infos; sinfo; sinfo = sinfo->next) { +diff -Nur linux-4.1.23.orig/crypto/asymmetric_keys/x509_akid.asn1 linux-4.1.23/crypto/asymmetric_keys/x509_akid.asn1 +--- linux-4.1.23.orig/crypto/asymmetric_keys/x509_akid.asn1 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/crypto/asymmetric_keys/x509_akid.asn1 1970-01-01 01:00:00.000000000 +0100 +@@ -1,35 +0,0 @@ +--- X.509 AuthorityKeyIdentifier +--- rfc5280 section 4.2.1.1 +- +-AuthorityKeyIdentifier ::= SEQUENCE { +- keyIdentifier [0] IMPLICIT KeyIdentifier OPTIONAL, +- authorityCertIssuer [1] IMPLICIT GeneralNames OPTIONAL, +- authorityCertSerialNumber [2] IMPLICIT CertificateSerialNumber OPTIONAL +- } +- +-KeyIdentifier ::= OCTET STRING ({ x509_akid_note_kid }) +- +-CertificateSerialNumber ::= INTEGER ({ x509_akid_note_serial }) +- +-GeneralNames ::= SEQUENCE OF GeneralName +- +-GeneralName ::= CHOICE { +- otherName [0] ANY, +- rfc822Name [1] IA5String, +- dNSName [2] IA5String, +- x400Address [3] ANY, +- directoryName [4] Name ({ x509_akid_note_name }), +- ediPartyName [5] ANY, +- uniformResourceIdentifier [6] IA5String, +- iPAddress [7] OCTET STRING, +- registeredID [8] OBJECT IDENTIFIER +- } +- +-Name ::= SEQUENCE OF RelativeDistinguishedName +- +-RelativeDistinguishedName ::= SET OF AttributeValueAssertion +- +-AttributeValueAssertion ::= SEQUENCE { +- attributeType OBJECT IDENTIFIER ({ x509_note_OID }), +- attributeValue ANY ({ x509_extract_name_segment }) +- } +diff -Nur linux-4.1.23.orig/crypto/asymmetric_keys/x509_cert_parser.c linux-4.1.23/crypto/asymmetric_keys/x509_cert_parser.c +--- linux-4.1.23.orig/crypto/asymmetric_keys/x509_cert_parser.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/crypto/asymmetric_keys/x509_cert_parser.c 2016-05-02 22:53:52.000000000 +0200 +@@ -18,7 +18,6 @@ + #include "public_key.h" + #include "x509_parser.h" + #include "x509-asn1.h" +-#include "x509_akid-asn1.h" + #include "x509_rsakey-asn1.h" + + struct x509_parse_context { +@@ -36,10 +35,6 @@ + u16 o_offset; /* Offset of organizationName (O) */ + u16 cn_offset; /* Offset of commonName (CN) */ + u16 email_offset; /* Offset of emailAddress */ +- unsigned raw_akid_size; +- const void *raw_akid; /* Raw authorityKeyId in ASN.1 */ +- const void *akid_raw_issuer; /* Raw directoryName in authorityKeyId */ +- unsigned akid_raw_issuer_size; + }; + + /* +@@ -53,8 +48,7 @@ + kfree(cert->subject); + kfree(cert->id); + kfree(cert->skid); +- kfree(cert->akid_id); +- kfree(cert->akid_skid); ++ kfree(cert->authority); + kfree(cert->sig.digest); + mpi_free(cert->sig.rsa.s); + kfree(cert); +@@ -91,18 +85,6 @@ + if (ret < 0) + goto error_decode; + +- /* Decode the AuthorityKeyIdentifier */ +- if (ctx->raw_akid) { +- pr_devel("AKID: %u %*phN\n", +- ctx->raw_akid_size, ctx->raw_akid_size, ctx->raw_akid); +- ret = asn1_ber_decoder(&x509_akid_decoder, ctx, +- ctx->raw_akid, ctx->raw_akid_size); +- if (ret < 0) { +- pr_warn("Couldn't decode AuthKeyIdentifier\n"); +- goto error_decode; +- } +- } +- + /* Decode the public key */ + ret = asn1_ber_decoder(&x509_rsakey_decoder, ctx, + ctx->key, ctx->key_size); +@@ -440,6 +422,7 @@ + struct x509_parse_context *ctx = context; + struct asymmetric_key_id *kid; + const unsigned char *v = value; ++ int i; + + pr_debug("Extension: %u\n", ctx->last_oid); + +@@ -466,113 +449,117 @@ + + if (ctx->last_oid == OID_authorityKeyIdentifier) { + /* Get hold of the CA key fingerprint */ +- ctx->raw_akid = v; +- ctx->raw_akid_size = vlen; ++ if (ctx->cert->authority || vlen < 5) ++ return -EBADMSG; ++ ++ /* Authority Key Identifier must be a Constructed SEQUENCE */ ++ if (v[0] != (ASN1_SEQ | (ASN1_CONS << 5))) ++ return -EBADMSG; ++ ++ /* Authority Key Identifier is not indefinite length */ ++ if (unlikely(vlen == ASN1_INDEFINITE_LENGTH)) ++ return -EBADMSG; ++ ++ if (vlen < ASN1_INDEFINITE_LENGTH) { ++ /* Short Form length */ ++ if (v[1] != vlen - 2 || ++ v[2] != SEQ_TAG_KEYID || ++ v[3] > vlen - 4) ++ return -EBADMSG; ++ ++ vlen = v[3]; ++ v += 4; ++ } else { ++ /* Long Form length */ ++ size_t seq_len = 0; ++ size_t sub = v[1] - ASN1_INDEFINITE_LENGTH; ++ ++ if (sub > 2) ++ return -EBADMSG; ++ ++ /* calculate the length from subsequent octets */ ++ v += 2; ++ for (i = 0; i < sub; i++) { ++ seq_len <<= 8; ++ seq_len |= v[i]; ++ } ++ ++ if (seq_len != vlen - 2 - sub || ++ v[sub] != SEQ_TAG_KEYID || ++ v[sub + 1] > vlen - 4 - sub) ++ return -EBADMSG; ++ ++ vlen = v[sub + 1]; ++ v += (sub + 2); ++ } ++ ++ kid = asymmetric_key_generate_id(ctx->cert->raw_issuer, ++ ctx->cert->raw_issuer_size, ++ v, vlen); ++ if (IS_ERR(kid)) ++ return PTR_ERR(kid); ++ pr_debug("authkeyid %*phN\n", kid->len, kid->data); ++ ctx->cert->authority = kid; + return 0; + } + + return 0; + } + +-/** +- * x509_decode_time - Decode an X.509 time ASN.1 object +- * @_t: The time to fill in +- * @hdrlen: The length of the object header +- * @tag: The object tag +- * @value: The object value +- * @vlen: The size of the object value +- * +- * Decode an ASN.1 universal time or generalised time field into a struct the +- * kernel can handle and check it for validity. The time is decoded thus: +- * +- * [RFC5280 §4.1.2.5] +- * CAs conforming to this profile MUST always encode certificate validity +- * dates through the year 2049 as UTCTime; certificate validity dates in +- * 2050 or later MUST be encoded as GeneralizedTime. Conforming +- * applications MUST be able to process validity dates that are encoded in +- * either UTCTime or GeneralizedTime. ++/* ++ * Record a certificate time. + */ +-int x509_decode_time(time64_t *_t, size_t hdrlen, +- unsigned char tag, +- const unsigned char *value, size_t vlen) ++static int x509_note_time(struct tm *tm, size_t hdrlen, ++ unsigned char tag, ++ const unsigned char *value, size_t vlen) + { +- static const unsigned char month_lengths[] = { 31, 28, 31, 30, 31, 30, +- 31, 31, 30, 31, 30, 31 }; + const unsigned char *p = value; +- unsigned year, mon, day, hour, min, sec, mon_len; + +-#define dec2bin(X) ({ unsigned char x = (X) - '0'; if (x > 9) goto invalid_time; x; }) ++#define dec2bin(X) ((X) - '0') + #define DD2bin(P) ({ unsigned x = dec2bin(P[0]) * 10 + dec2bin(P[1]); P += 2; x; }) + + if (tag == ASN1_UNITIM) { + /* UTCTime: YYMMDDHHMMSSZ */ + if (vlen != 13) + goto unsupported_time; +- year = DD2bin(p); +- if (year >= 50) +- year += 1900; ++ tm->tm_year = DD2bin(p); ++ if (tm->tm_year >= 50) ++ tm->tm_year += 1900; + else +- year += 2000; ++ tm->tm_year += 2000; + } else if (tag == ASN1_GENTIM) { + /* GenTime: YYYYMMDDHHMMSSZ */ + if (vlen != 15) + goto unsupported_time; +- year = DD2bin(p) * 100 + DD2bin(p); +- if (year >= 1950 && year <= 2049) +- goto invalid_time; ++ tm->tm_year = DD2bin(p) * 100 + DD2bin(p); + } else { + goto unsupported_time; + } + +- mon = DD2bin(p); +- day = DD2bin(p); +- hour = DD2bin(p); +- min = DD2bin(p); +- sec = DD2bin(p); ++ tm->tm_year -= 1900; ++ tm->tm_mon = DD2bin(p) - 1; ++ tm->tm_mday = DD2bin(p); ++ tm->tm_hour = DD2bin(p); ++ tm->tm_min = DD2bin(p); ++ tm->tm_sec = DD2bin(p); + + if (*p != 'Z') + goto unsupported_time; + +- mon_len = month_lengths[mon]; +- if (mon == 2) { +- if (year % 4 == 0) { +- mon_len = 29; +- if (year % 100 == 0) { +- mon_len = 28; +- if (year % 400 == 0) +- mon_len = 29; +- } +- } +- } +- +- if (year < 1970 || +- mon < 1 || mon > 12 || +- day < 1 || day > mon_len || +- hour < 0 || hour > 23 || +- min < 0 || min > 59 || +- sec < 0 || sec > 59) +- goto invalid_time; +- +- *_t = mktime64(year, mon, day, hour, min, sec); + return 0; + + unsupported_time: +- pr_debug("Got unsupported time [tag %02x]: '%*phN'\n", +- tag, (int)vlen, value); +- return -EBADMSG; +-invalid_time: +- pr_debug("Got invalid time [tag %02x]: '%*phN'\n", +- tag, (int)vlen, value); ++ pr_debug("Got unsupported time [tag %02x]: '%*.*s'\n", ++ tag, (int)vlen, (int)vlen, value); + return -EBADMSG; + } +-EXPORT_SYMBOL_GPL(x509_decode_time); + + int x509_note_not_before(void *context, size_t hdrlen, + unsigned char tag, + const void *value, size_t vlen) + { + struct x509_parse_context *ctx = context; +- return x509_decode_time(&ctx->cert->valid_from, hdrlen, tag, value, vlen); ++ return x509_note_time(&ctx->cert->valid_from, hdrlen, tag, value, vlen); + } + + int x509_note_not_after(void *context, size_t hdrlen, +@@ -580,73 +567,5 @@ + const void *value, size_t vlen) + { + struct x509_parse_context *ctx = context; +- return x509_decode_time(&ctx->cert->valid_to, hdrlen, tag, value, vlen); +-} +- +-/* +- * Note a key identifier-based AuthorityKeyIdentifier +- */ +-int x509_akid_note_kid(void *context, size_t hdrlen, +- unsigned char tag, +- const void *value, size_t vlen) +-{ +- struct x509_parse_context *ctx = context; +- struct asymmetric_key_id *kid; +- +- pr_debug("AKID: keyid: %*phN\n", (int)vlen, value); +- +- if (ctx->cert->akid_skid) +- return 0; +- +- kid = asymmetric_key_generate_id(ctx->cert->raw_issuer, +- ctx->cert->raw_issuer_size, +- value, vlen); +- if (IS_ERR(kid)) +- return PTR_ERR(kid); +- pr_debug("authkeyid %*phN\n", kid->len, kid->data); +- ctx->cert->akid_skid = kid; +- return 0; +-} +- +-/* +- * Note a directoryName in an AuthorityKeyIdentifier +- */ +-int x509_akid_note_name(void *context, size_t hdrlen, +- unsigned char tag, +- const void *value, size_t vlen) +-{ +- struct x509_parse_context *ctx = context; +- +- pr_debug("AKID: name: %*phN\n", (int)vlen, value); +- +- ctx->akid_raw_issuer = value; +- ctx->akid_raw_issuer_size = vlen; +- return 0; +-} +- +-/* +- * Note a serial number in an AuthorityKeyIdentifier +- */ +-int x509_akid_note_serial(void *context, size_t hdrlen, +- unsigned char tag, +- const void *value, size_t vlen) +-{ +- struct x509_parse_context *ctx = context; +- struct asymmetric_key_id *kid; +- +- pr_debug("AKID: serial: %*phN\n", (int)vlen, value); +- +- if (!ctx->akid_raw_issuer || ctx->cert->akid_id) +- return 0; +- +- kid = asymmetric_key_generate_id(value, +- vlen, +- ctx->akid_raw_issuer, +- ctx->akid_raw_issuer_size); +- if (IS_ERR(kid)) +- return PTR_ERR(kid); +- +- pr_debug("authkeyid %*phN\n", kid->len, kid->data); +- ctx->cert->akid_id = kid; +- return 0; ++ return x509_note_time(&ctx->cert->valid_to, hdrlen, tag, value, vlen); + } +diff -Nur linux-4.1.23.orig/crypto/asymmetric_keys/x509_parser.h linux-4.1.23/crypto/asymmetric_keys/x509_parser.h +--- linux-4.1.23.orig/crypto/asymmetric_keys/x509_parser.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/crypto/asymmetric_keys/x509_parser.h 2016-05-02 22:53:52.000000000 +0200 +@@ -19,12 +19,11 @@ + struct public_key_signature sig; /* Signature parameters */ + char *issuer; /* Name of certificate issuer */ + char *subject; /* Name of certificate subject */ +- struct asymmetric_key_id *id; /* Issuer + Serial number */ ++ struct asymmetric_key_id *id; /* Serial number + issuer */ + struct asymmetric_key_id *skid; /* Subject + subjectKeyId (optional) */ +- struct asymmetric_key_id *akid_id; /* CA AuthKeyId matching ->id (optional) */ +- struct asymmetric_key_id *akid_skid; /* CA AuthKeyId matching ->skid (optional) */ +- time64_t valid_from; +- time64_t valid_to; ++ struct asymmetric_key_id *authority; /* Authority key identifier (optional) */ ++ struct tm valid_from; ++ struct tm valid_to; + const void *tbs; /* Signed data */ + unsigned tbs_size; /* Size of signed data */ + unsigned raw_sig_size; /* Size of sigature */ +@@ -49,9 +48,6 @@ + */ + extern void x509_free_certificate(struct x509_certificate *cert); + extern struct x509_certificate *x509_cert_parse(const void *data, size_t datalen); +-extern int x509_decode_time(time64_t *_t, size_t hdrlen, +- unsigned char tag, +- const unsigned char *value, size_t vlen); + + /* + * x509_public_key.c +diff -Nur linux-4.1.23.orig/crypto/asymmetric_keys/x509_public_key.c linux-4.1.23/crypto/asymmetric_keys/x509_public_key.c +--- linux-4.1.23.orig/crypto/asymmetric_keys/x509_public_key.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/crypto/asymmetric_keys/x509_public_key.c 2016-05-02 22:53:52.000000000 +0200 +@@ -227,10 +227,10 @@ + if (!trust_keyring) + return -EOPNOTSUPP; + +- if (ca_keyid && !asymmetric_key_id_partial(cert->akid_skid, ca_keyid)) ++ if (ca_keyid && !asymmetric_key_id_partial(cert->authority, ca_keyid)) + return -EPERM; + +- key = x509_request_asymmetric_key(trust_keyring, cert->akid_skid, ++ key = x509_request_asymmetric_key(trust_keyring, cert->authority, + false); + if (!IS_ERR(key)) { + if (!use_builtin_keys +@@ -271,7 +271,14 @@ + } + + pr_devel("Cert Key Algo: %s\n", pkey_algo_name[cert->pub->pkey_algo]); +- pr_devel("Cert Valid period: %lld-%lld\n", cert->valid_from, cert->valid_to); ++ pr_devel("Cert Valid From: %04ld-%02d-%02d %02d:%02d:%02d\n", ++ cert->valid_from.tm_year + 1900, cert->valid_from.tm_mon + 1, ++ cert->valid_from.tm_mday, cert->valid_from.tm_hour, ++ cert->valid_from.tm_min, cert->valid_from.tm_sec); ++ pr_devel("Cert Valid To: %04ld-%02d-%02d %02d:%02d:%02d\n", ++ cert->valid_to.tm_year + 1900, cert->valid_to.tm_mon + 1, ++ cert->valid_to.tm_mday, cert->valid_to.tm_hour, ++ cert->valid_to.tm_min, cert->valid_to.tm_sec); + pr_devel("Cert Signature: %s + %s\n", + pkey_algo_name[cert->sig.pkey_algo], + hash_algo_name[cert->sig.pkey_hash_algo]); +@@ -280,8 +287,8 @@ + cert->pub->id_type = PKEY_ID_X509; + + /* Check the signature on the key if it appears to be self-signed */ +- if (!cert->akid_skid || +- asymmetric_key_id_same(cert->skid, cert->akid_skid)) { ++ if (!cert->authority || ++ asymmetric_key_id_same(cert->skid, cert->authority)) { + ret = x509_check_signature(cert->pub, cert); /* self-signed */ + if (ret < 0) + goto error_free_cert; +diff -Nur linux-4.1.23.orig/drivers/acpi/video_detect.c linux-4.1.23/drivers/acpi/video_detect.c +--- linux-4.1.23.orig/drivers/acpi/video_detect.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/acpi/video_detect.c 2016-05-02 22:53:52.000000000 +0200 +@@ -166,6 +166,14 @@ + DMI_MATCH(DMI_PRODUCT_NAME, "UL30A"), + }, + }, ++ { ++ .callback = video_detect_force_vendor, ++ .ident = "Dell Inspiron 5737", ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), ++ DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 5737"), ++ }, ++ }, + { }, + }; + +diff -Nur linux-4.1.23.orig/drivers/block/mtip32xx/mtip32xx.c linux-4.1.23/drivers/block/mtip32xx/mtip32xx.c +--- linux-4.1.23.orig/drivers/block/mtip32xx/mtip32xx.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/block/mtip32xx/mtip32xx.c 2016-05-02 22:53:52.000000000 +0200 +@@ -705,7 +705,7 @@ + fail_reason = "thermal shutdown"; + } + if (buf[288] == 0xBF) { +- set_bit(MTIP_DDF_REBUILD_FAILED_BIT, &dd->dd_flag); ++ set_bit(MTIP_DDF_SEC_LOCK_BIT, &dd->dd_flag); + dev_info(&dd->pdev->dev, + "Drive indicates rebuild has failed. Secure erase required.\n"); + fail_all_ncq_cmds = 1; +@@ -896,10 +896,6 @@ + + /* Acknowledge the interrupt status on the port.*/ + port_stat = readl(port->mmio + PORT_IRQ_STAT); +- if (unlikely(port_stat == 0xFFFFFFFF)) { +- mtip_check_surprise_removal(dd->pdev); +- return IRQ_HANDLED; +- } + writel(port_stat, port->mmio + PORT_IRQ_STAT); + + /* Demux port status */ +@@ -995,11 +991,15 @@ + reply = port->rxfis + RX_FIS_D2H_REG; + task_file_data = readl(port->mmio+PORT_TFDATA); + ++ if (fis->command == ATA_CMD_SEC_ERASE_UNIT) ++ clear_bit(MTIP_DDF_SEC_LOCK_BIT, &port->dd->dd_flag); ++ + if ((task_file_data & 1)) + return false; + + if (fis->command == ATA_CMD_SEC_ERASE_PREP) { + set_bit(MTIP_PF_SE_ACTIVE_BIT, &port->flags); ++ set_bit(MTIP_DDF_SEC_LOCK_BIT, &port->dd->dd_flag); + port->ic_pause_timer = jiffies; + return true; + } else if ((fis->command == ATA_CMD_DOWNLOAD_MICRO) && +@@ -1011,8 +1011,6 @@ + ((fis->command == 0xFC) && + (fis->features == 0x27 || fis->features == 0x72 || + fis->features == 0x62 || fis->features == 0x26))) { +- clear_bit(MTIP_DDF_SEC_LOCK_BIT, &port->dd->dd_flag); +- clear_bit(MTIP_DDF_REBUILD_FAILED_BIT, &port->dd->dd_flag); + /* Com reset after secure erase or lowlevel format */ + mtip_restart_port(port); + return false; +@@ -1104,7 +1102,6 @@ + struct mtip_cmd *int_cmd; + struct driver_data *dd = port->dd; + int rv = 0; +- unsigned long start; + + /* Make sure the buffer is 8 byte aligned. This is asic specific. */ + if (buffer & 0x00000007) { +@@ -1167,8 +1164,6 @@ + /* Populate the command header */ + int_cmd->command_header->byte_count = 0; + +- start = jiffies; +- + /* Issue the command to the hardware */ + mtip_issue_non_ncq_command(port, MTIP_TAG_INTERNAL); + +@@ -1177,12 +1172,10 @@ + if ((rv = wait_for_completion_interruptible_timeout( + &wait, + msecs_to_jiffies(timeout))) <= 0) { +- + if (rv == -ERESTARTSYS) { /* interrupted */ + dev_err(&dd->pdev->dev, +- "Internal command [%02X] was interrupted after %u ms\n", +- fis->command, +- jiffies_to_msecs(jiffies - start)); ++ "Internal command [%02X] was interrupted after %lu ms\n", ++ fis->command, timeout); + rv = -EINTR; + goto exec_ic_exit; + } else if (rv == 0) /* timeout */ +@@ -2787,6 +2780,48 @@ + debugfs_remove_recursive(dd->dfs_node); + } + ++static int mtip_free_orphan(struct driver_data *dd) ++{ ++ struct kobject *kobj; ++ ++ if (dd->bdev) { ++ if (dd->bdev->bd_holders >= 1) ++ return -2; ++ ++ bdput(dd->bdev); ++ dd->bdev = NULL; ++ } ++ ++ mtip_hw_debugfs_exit(dd); ++ ++ spin_lock(&rssd_index_lock); ++ ida_remove(&rssd_index_ida, dd->index); ++ spin_unlock(&rssd_index_lock); ++ ++ if (!test_bit(MTIP_DDF_INIT_DONE_BIT, &dd->dd_flag) && ++ test_bit(MTIP_DDF_REBUILD_FAILED_BIT, &dd->dd_flag)) { ++ put_disk(dd->disk); ++ } else { ++ if (dd->disk) { ++ kobj = kobject_get(&disk_to_dev(dd->disk)->kobj); ++ if (kobj) { ++ mtip_hw_sysfs_exit(dd, kobj); ++ kobject_put(kobj); ++ } ++ del_gendisk(dd->disk); ++ dd->disk = NULL; ++ } ++ if (dd->queue) { ++ dd->queue->queuedata = NULL; ++ blk_cleanup_queue(dd->queue); ++ blk_mq_free_tag_set(&dd->tags); ++ dd->queue = NULL; ++ } ++ } ++ kfree(dd); ++ return 0; ++} ++ + /* + * Perform any init/resume time hardware setup + * +@@ -2934,6 +2969,7 @@ + unsigned long slot, slot_start, slot_wrap; + unsigned int num_cmd_slots = dd->slot_groups * 32; + struct mtip_port *port = dd->port; ++ int ret; + + while (1) { + if (kthread_should_stop() || +@@ -3019,6 +3055,18 @@ + if (kthread_should_stop()) + goto st_out; + } ++ ++ while (1) { ++ ret = mtip_free_orphan(dd); ++ if (!ret) { ++ /* NOTE: All data structures are invalid, do not ++ * access any here */ ++ return 0; ++ } ++ msleep_interruptible(1000); ++ if (kthread_should_stop()) ++ goto st_out; ++ } + st_out: + return 0; + } +@@ -3130,7 +3178,7 @@ + if (buf[288] == 0xBF) { + dev_info(&dd->pdev->dev, + "Drive indicates rebuild has failed.\n"); +- set_bit(MTIP_DDF_REBUILD_FAILED_BIT, &dd->dd_flag); ++ /* TODO */ + } + } + +@@ -3304,25 +3352,20 @@ + return rv; + } + +-static int mtip_standby_drive(struct driver_data *dd) ++static void mtip_standby_drive(struct driver_data *dd) + { +- int rv = 0; ++ if (dd->sr) ++ return; + +- if (dd->sr || !dd->port) +- return -ENODEV; + /* + * Send standby immediate (E0h) to the drive so that it + * saves its state. + */ + if (!test_bit(MTIP_PF_REBUILD_BIT, &dd->port->flags) && +- !test_bit(MTIP_DDF_REBUILD_FAILED_BIT, &dd->dd_flag) && +- !test_bit(MTIP_DDF_SEC_LOCK_BIT, &dd->dd_flag)) { +- rv = mtip_standby_immediate(dd->port); +- if (rv) ++ !test_bit(MTIP_DDF_SEC_LOCK_BIT, &dd->dd_flag)) ++ if (mtip_standby_immediate(dd->port)) + dev_warn(&dd->pdev->dev, + "STANDBY IMMEDIATE failed\n"); +- } +- return rv; + } + + /* +@@ -3351,7 +3394,6 @@ + /* Release the IRQ. */ + irq_set_affinity_hint(dd->pdev->irq, NULL); + devm_free_irq(&dd->pdev->dev, dd->pdev->irq, dd); +- msleep(1000); + + /* Free dma regions */ + mtip_dma_free(dd); +@@ -3380,7 +3422,8 @@ + * Send standby immediate (E0h) to the drive so that it + * saves its state. + */ +- mtip_standby_drive(dd); ++ if (!dd->sr && dd->port) ++ mtip_standby_immediate(dd->port); + + return 0; + } +@@ -3403,7 +3446,7 @@ + * Send standby immediate (E0h) to the drive + * so that it saves its state. + */ +- if (mtip_standby_drive(dd) != 0) { ++ if (mtip_standby_immediate(dd->port) != 0) { + dev_err(&dd->pdev->dev, + "Failed standby-immediate command\n"); + return -EFAULT; +@@ -3641,28 +3684,6 @@ + return 0; + } + +-static int mtip_block_open(struct block_device *dev, fmode_t mode) +-{ +- struct driver_data *dd; +- +- if (dev && dev->bd_disk) { +- dd = (struct driver_data *) dev->bd_disk->private_data; +- +- if (dd) { +- if (test_bit(MTIP_DDF_REMOVAL_BIT, +- &dd->dd_flag)) { +- return -ENODEV; +- } +- return 0; +- } +- } +- return -ENODEV; +-} +- +-void mtip_block_release(struct gendisk *disk, fmode_t mode) +-{ +-} +- + /* + * Block device operation function. + * +@@ -3670,8 +3691,6 @@ + * layer. + */ + static const struct block_device_operations mtip_block_ops = { +- .open = mtip_block_open, +- .release = mtip_block_release, + .ioctl = mtip_block_ioctl, + #ifdef CONFIG_COMPAT + .compat_ioctl = mtip_block_compat_ioctl, +@@ -3710,9 +3729,10 @@ + rq_data_dir(rq))) { + return -ENODATA; + } +- if (unlikely(test_bit(MTIP_DDF_SEC_LOCK_BIT, &dd->dd_flag) || +- test_bit(MTIP_DDF_REBUILD_FAILED_BIT, &dd->dd_flag))) ++ if (unlikely(test_bit(MTIP_DDF_SEC_LOCK_BIT, &dd->dd_flag))) + return -ENODATA; ++ if (test_bit(MTIP_DDF_REBUILD_FAILED_BIT, &dd->dd_flag)) ++ return -ENXIO; + } + + if (rq->cmd_flags & REQ_DISCARD) { +@@ -4046,51 +4066,52 @@ + { + struct kobject *kobj; + +- mtip_hw_debugfs_exit(dd); ++ if (!dd->sr) { ++ mtip_hw_debugfs_exit(dd); + +- if (dd->mtip_svc_handler) { +- set_bit(MTIP_PF_SVC_THD_STOP_BIT, &dd->port->flags); +- wake_up_interruptible(&dd->port->svc_wait); +- kthread_stop(dd->mtip_svc_handler); +- } ++ if (dd->mtip_svc_handler) { ++ set_bit(MTIP_PF_SVC_THD_STOP_BIT, &dd->port->flags); ++ wake_up_interruptible(&dd->port->svc_wait); ++ kthread_stop(dd->mtip_svc_handler); ++ } + +- /* Clean up the sysfs attributes, if created */ +- if (test_bit(MTIP_DDF_INIT_DONE_BIT, &dd->dd_flag)) { +- kobj = kobject_get(&disk_to_dev(dd->disk)->kobj); +- if (kobj) { +- mtip_hw_sysfs_exit(dd, kobj); +- kobject_put(kobj); ++ /* Clean up the sysfs attributes, if created */ ++ if (test_bit(MTIP_DDF_INIT_DONE_BIT, &dd->dd_flag)) { ++ kobj = kobject_get(&disk_to_dev(dd->disk)->kobj); ++ if (kobj) { ++ mtip_hw_sysfs_exit(dd, kobj); ++ kobject_put(kobj); ++ } + } +- } + +- if (!dd->sr) + mtip_standby_drive(dd); +- else +- dev_info(&dd->pdev->dev, "device %s surprise removal\n", +- dd->disk->disk_name); + +- /* +- * Delete our gendisk structure. This also removes the device +- * from /dev +- */ +- if (dd->bdev) { +- bdput(dd->bdev); +- dd->bdev = NULL; +- } +- if (dd->disk) { +- del_gendisk(dd->disk); +- if (dd->disk->queue) { +- blk_cleanup_queue(dd->queue); +- blk_mq_free_tag_set(&dd->tags); +- dd->queue = NULL; ++ /* ++ * Delete our gendisk structure. This also removes the device ++ * from /dev ++ */ ++ if (dd->bdev) { ++ bdput(dd->bdev); ++ dd->bdev = NULL; ++ } ++ if (dd->disk) { ++ if (dd->disk->queue) { ++ del_gendisk(dd->disk); ++ blk_cleanup_queue(dd->queue); ++ blk_mq_free_tag_set(&dd->tags); ++ dd->queue = NULL; ++ } else ++ put_disk(dd->disk); + } +- put_disk(dd->disk); +- } +- dd->disk = NULL; ++ dd->disk = NULL; + +- spin_lock(&rssd_index_lock); +- ida_remove(&rssd_index_ida, dd->index); +- spin_unlock(&rssd_index_lock); ++ spin_lock(&rssd_index_lock); ++ ida_remove(&rssd_index_ida, dd->index); ++ spin_unlock(&rssd_index_lock); ++ } else { ++ dev_info(&dd->pdev->dev, "device %s surprise removal\n", ++ dd->disk->disk_name); ++ } + + /* De-initialize the protocol layer. */ + mtip_hw_exit(dd); +@@ -4119,12 +4140,12 @@ + dev_info(&dd->pdev->dev, + "Shutting down %s ...\n", dd->disk->disk_name); + +- del_gendisk(dd->disk); + if (dd->disk->queue) { ++ del_gendisk(dd->disk); + blk_cleanup_queue(dd->queue); + blk_mq_free_tag_set(&dd->tags); +- } +- put_disk(dd->disk); ++ } else ++ put_disk(dd->disk); + dd->disk = NULL; + dd->queue = NULL; + } +@@ -4464,7 +4485,7 @@ + struct driver_data *dd = pci_get_drvdata(pdev); + unsigned long flags, to; + +- set_bit(MTIP_DDF_REMOVAL_BIT, &dd->dd_flag); ++ set_bit(MTIP_DDF_REMOVE_PENDING_BIT, &dd->dd_flag); + + spin_lock_irqsave(&dev_lock, flags); + list_del_init(&dd->online_list); +@@ -4481,18 +4502,11 @@ + } while (atomic_read(&dd->irq_workers_active) != 0 && + time_before(jiffies, to)); + +- fsync_bdev(dd->bdev); +- + if (atomic_read(&dd->irq_workers_active) != 0) { + dev_warn(&dd->pdev->dev, + "Completion workers still active!\n"); + } + +- if (dd->sr) +- blk_mq_stop_hw_queues(dd->queue); +- +- set_bit(MTIP_DDF_REMOVE_PENDING_BIT, &dd->dd_flag); +- + /* Clean up the block layer. */ + mtip_block_remove(dd); + +@@ -4510,8 +4524,10 @@ + list_del_init(&dd->remove_list); + spin_unlock_irqrestore(&dev_lock, flags); + +- kfree(dd); +- set_bit(MTIP_DDF_REMOVE_DONE_BIT, &dd->dd_flag); ++ if (!dd->sr) ++ kfree(dd); ++ else ++ set_bit(MTIP_DDF_REMOVE_DONE_BIT, &dd->dd_flag); + + pcim_iounmap_regions(pdev, 1 << MTIP_ABAR); + pci_set_drvdata(pdev, NULL); +diff -Nur linux-4.1.23.orig/drivers/block/mtip32xx/mtip32xx.h linux-4.1.23/drivers/block/mtip32xx/mtip32xx.h +--- linux-4.1.23.orig/drivers/block/mtip32xx/mtip32xx.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/block/mtip32xx/mtip32xx.h 2016-05-02 22:53:52.000000000 +0200 +@@ -155,7 +155,6 @@ + MTIP_DDF_RESUME_BIT = 6, + MTIP_DDF_INIT_DONE_BIT = 7, + MTIP_DDF_REBUILD_FAILED_BIT = 8, +- MTIP_DDF_REMOVAL_BIT = 9, + + MTIP_DDF_STOP_IO = ((1 << MTIP_DDF_REMOVE_PENDING_BIT) | + (1 << MTIP_DDF_SEC_LOCK_BIT) | +diff -Nur linux-4.1.23.orig/drivers/bluetooth/ath3k.c linux-4.1.23/drivers/bluetooth/ath3k.c +--- linux-4.1.23.orig/drivers/bluetooth/ath3k.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/bluetooth/ath3k.c 2016-05-02 22:53:52.000000000 +0200 +@@ -82,7 +82,6 @@ + { USB_DEVICE(0x0489, 0xe05f) }, + { USB_DEVICE(0x0489, 0xe076) }, + { USB_DEVICE(0x0489, 0xe078) }, +- { USB_DEVICE(0x0489, 0xe095) }, + { USB_DEVICE(0x04c5, 0x1330) }, + { USB_DEVICE(0x04CA, 0x3004) }, + { USB_DEVICE(0x04CA, 0x3005) }, +@@ -93,7 +92,6 @@ + { USB_DEVICE(0x04CA, 0x300d) }, + { USB_DEVICE(0x04CA, 0x300f) }, + { USB_DEVICE(0x04CA, 0x3010) }, +- { USB_DEVICE(0x04CA, 0x3014) }, + { USB_DEVICE(0x0930, 0x0219) }, + { USB_DEVICE(0x0930, 0x021c) }, + { USB_DEVICE(0x0930, 0x0220) }, +@@ -115,12 +113,10 @@ + { USB_DEVICE(0x13d3, 0x3362) }, + { USB_DEVICE(0x13d3, 0x3375) }, + { USB_DEVICE(0x13d3, 0x3393) }, +- { USB_DEVICE(0x13d3, 0x3395) }, + { USB_DEVICE(0x13d3, 0x3402) }, + { USB_DEVICE(0x13d3, 0x3408) }, + { USB_DEVICE(0x13d3, 0x3423) }, + { USB_DEVICE(0x13d3, 0x3432) }, +- { USB_DEVICE(0x13d3, 0x3472) }, + { USB_DEVICE(0x13d3, 0x3474) }, + + /* Atheros AR5BBU12 with sflash firmware */ +@@ -148,7 +144,6 @@ + { USB_DEVICE(0x0489, 0xe05f), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x0489, 0xe076), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x0489, 0xe078), .driver_info = BTUSB_ATH3012 }, +- { USB_DEVICE(0x0489, 0xe095), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x04c5, 0x1330), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x04ca, 0x3004), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x04ca, 0x3005), .driver_info = BTUSB_ATH3012 }, +@@ -159,7 +154,6 @@ + { USB_DEVICE(0x04ca, 0x300d), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x04ca, 0x300f), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x04ca, 0x3010), .driver_info = BTUSB_ATH3012 }, +- { USB_DEVICE(0x04ca, 0x3014), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x0930, 0x0219), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x0930, 0x021c), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x0930, 0x0220), .driver_info = BTUSB_ATH3012 }, +@@ -181,12 +175,10 @@ + { USB_DEVICE(0x13d3, 0x3362), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x13d3, 0x3393), .driver_info = BTUSB_ATH3012 }, +- { USB_DEVICE(0x13d3, 0x3395), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x13d3, 0x3402), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x13d3, 0x3408), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x13d3, 0x3423), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x13d3, 0x3432), .driver_info = BTUSB_ATH3012 }, +- { USB_DEVICE(0x13d3, 0x3472), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x13d3, 0x3474), .driver_info = BTUSB_ATH3012 }, + + /* Atheros AR5BBU22 with sflash firmware */ +diff -Nur linux-4.1.23.orig/drivers/bluetooth/btusb.c linux-4.1.23/drivers/bluetooth/btusb.c +--- linux-4.1.23.orig/drivers/bluetooth/btusb.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/bluetooth/btusb.c 2016-05-02 22:53:52.000000000 +0200 +@@ -184,7 +184,6 @@ + { USB_DEVICE(0x0489, 0xe05f), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x0489, 0xe076), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x0489, 0xe078), .driver_info = BTUSB_ATH3012 }, +- { USB_DEVICE(0x0489, 0xe095), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x04c5, 0x1330), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x04ca, 0x3004), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x04ca, 0x3005), .driver_info = BTUSB_ATH3012 }, +@@ -195,7 +194,6 @@ + { USB_DEVICE(0x04ca, 0x300d), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x04ca, 0x300f), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x04ca, 0x3010), .driver_info = BTUSB_ATH3012 }, +- { USB_DEVICE(0x04ca, 0x3014), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x0930, 0x0219), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x0930, 0x021c), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x0930, 0x0220), .driver_info = BTUSB_ATH3012 }, +@@ -217,12 +215,10 @@ + { USB_DEVICE(0x13d3, 0x3362), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x13d3, 0x3393), .driver_info = BTUSB_ATH3012 }, +- { USB_DEVICE(0x13d3, 0x3395), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x13d3, 0x3402), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x13d3, 0x3408), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x13d3, 0x3423), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x13d3, 0x3432), .driver_info = BTUSB_ATH3012 }, +- { USB_DEVICE(0x13d3, 0x3472), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x13d3, 0x3474), .driver_info = BTUSB_ATH3012 }, + + /* Atheros AR5BBU12 with sflash firmware */ +diff -Nur linux-4.1.23.orig/drivers/bluetooth/hci_h5.c linux-4.1.23/drivers/bluetooth/hci_h5.c +--- linux-4.1.23.orig/drivers/bluetooth/hci_h5.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/bluetooth/hci_h5.c 2016-05-02 22:53:52.000000000 +0200 @@ -314,7 +314,8 @@ h5_link_control(hu, conf_req, 3); } else if (memcmp(data, conf_req, 2) == 0) { @@ -20144,9 +21989,21 @@ diff -Nur linux-4.1.22.orig/drivers/bluetooth/hci_h5.c linux-4.1.22/drivers/blue } else if (memcmp(data, conf_rsp, 2) == 0) { if (H5_HDR_LEN(hdr) > 2) h5->tx_win = (data[2] & 7); -diff -Nur linux-4.1.22.orig/drivers/char/Kconfig linux-4.1.22/drivers/char/Kconfig ---- linux-4.1.22.orig/drivers/char/Kconfig 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/char/Kconfig 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/bus/imx-weim.c linux-4.1.23/drivers/bus/imx-weim.c +--- linux-4.1.23.orig/drivers/bus/imx-weim.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/bus/imx-weim.c 2016-05-02 22:53:52.000000000 +0200 +@@ -150,7 +150,7 @@ + return ret; + } + +- for_each_available_child_of_node(pdev->dev.of_node, child) { ++ for_each_child_of_node(pdev->dev.of_node, child) { + if (!child->name) + continue; + +diff -Nur linux-4.1.23.orig/drivers/char/Kconfig linux-4.1.23/drivers/char/Kconfig +--- linux-4.1.23.orig/drivers/char/Kconfig 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/char/Kconfig 2016-05-02 22:53:52.000000000 +0200 @@ -590,6 +590,8 @@ source "drivers/s390/char/Kconfig" @@ -20156,17 +22013,17 @@ diff -Nur linux-4.1.22.orig/drivers/char/Kconfig linux-4.1.22/drivers/char/Kconf config MSM_SMD_PKT bool "Enable device interface for some SMD packet ports" default n -diff -Nur linux-4.1.22.orig/drivers/char/Makefile linux-4.1.22/drivers/char/Makefile ---- linux-4.1.22.orig/drivers/char/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/char/Makefile 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/char/Makefile linux-4.1.23/drivers/char/Makefile +--- linux-4.1.23.orig/drivers/char/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/char/Makefile 2016-05-02 22:53:52.000000000 +0200 @@ -62,3 +62,4 @@ obj-$(CONFIG_TILE_SROM) += tile-srom.o obj-$(CONFIG_XILLYBUS) += xillybus/ +obj-$(CONFIG_BRCM_CHAR_DRIVERS) += broadcom/ -diff -Nur linux-4.1.22.orig/drivers/char/broadcom/Kconfig linux-4.1.22/drivers/char/broadcom/Kconfig ---- linux-4.1.22.orig/drivers/char/broadcom/Kconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/char/broadcom/Kconfig 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/char/broadcom/Kconfig linux-4.1.23/drivers/char/broadcom/Kconfig +--- linux-4.1.23.orig/drivers/char/broadcom/Kconfig 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/char/broadcom/Kconfig 2016-05-02 22:53:52.000000000 +0200 @@ -0,0 +1,57 @@ +# +# Broadcom char driver config @@ -20225,9 +22082,9 @@ diff -Nur linux-4.1.22.orig/drivers/char/broadcom/Kconfig linux-4.1.22/drivers/c + This driver provides a character device interface (ioctl + read/write) to + Broadcom's Secondary Memory interface. The low-level functionality is provided + by the SMI driver itself. -diff -Nur linux-4.1.22.orig/drivers/char/broadcom/Makefile linux-4.1.22/drivers/char/broadcom/Makefile ---- linux-4.1.22.orig/drivers/char/broadcom/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/char/broadcom/Makefile 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/char/broadcom/Makefile linux-4.1.23/drivers/char/broadcom/Makefile +--- linux-4.1.23.orig/drivers/char/broadcom/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/char/broadcom/Makefile 2016-05-02 22:53:52.000000000 +0200 @@ -0,0 +1,7 @@ +obj-$(CONFIG_BCM_VC_CMA) += vc_cma/ +obj-$(CONFIG_BCM2708_VCMEM) += vc_mem.o @@ -20236,9 +22093,9 @@ diff -Nur linux-4.1.22.orig/drivers/char/broadcom/Makefile linux-4.1.22/drivers/ + +obj-$(CONFIG_BCM2835_DEVGPIOMEM)+= bcm2835-gpiomem.o +obj-$(CONFIG_BCM2835_SMI_DEV) += bcm2835_smi_dev.o -diff -Nur linux-4.1.22.orig/drivers/char/broadcom/bcm2835-gpiomem.c linux-4.1.22/drivers/char/broadcom/bcm2835-gpiomem.c ---- linux-4.1.22.orig/drivers/char/broadcom/bcm2835-gpiomem.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/char/broadcom/bcm2835-gpiomem.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/char/broadcom/bcm2835-gpiomem.c linux-4.1.23/drivers/char/broadcom/bcm2835-gpiomem.c +--- linux-4.1.23.orig/drivers/char/broadcom/bcm2835-gpiomem.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/char/broadcom/bcm2835-gpiomem.c 2016-05-02 22:53:52.000000000 +0200 @@ -0,0 +1,260 @@ +/** + * GPIO memory device driver @@ -20500,9 +22357,9 @@ diff -Nur linux-4.1.22.orig/drivers/char/broadcom/bcm2835-gpiomem.c linux-4.1.22 +MODULE_LICENSE("GPL"); +MODULE_DESCRIPTION("gpiomem driver for accessing GPIO from userspace"); +MODULE_AUTHOR("Luke Wren <luke@raspberrypi.org>"); -diff -Nur linux-4.1.22.orig/drivers/char/broadcom/bcm2835_smi_dev.c linux-4.1.22/drivers/char/broadcom/bcm2835_smi_dev.c ---- linux-4.1.22.orig/drivers/char/broadcom/bcm2835_smi_dev.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/char/broadcom/bcm2835_smi_dev.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/char/broadcom/bcm2835_smi_dev.c linux-4.1.23/drivers/char/broadcom/bcm2835_smi_dev.c +--- linux-4.1.23.orig/drivers/char/broadcom/bcm2835_smi_dev.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/char/broadcom/bcm2835_smi_dev.c 2016-05-02 22:53:52.000000000 +0200 @@ -0,0 +1,402 @@ +/** + * Character device driver for Broadcom Secondary Memory Interface @@ -20906,9 +22763,9 @@ diff -Nur linux-4.1.22.orig/drivers/char/broadcom/bcm2835_smi_dev.c linux-4.1.22 +MODULE_DESCRIPTION( + "Character device driver for BCM2835's secondary memory interface"); +MODULE_AUTHOR("Luke Wren <luke@raspberrypi.org>"); -diff -Nur linux-4.1.22.orig/drivers/char/broadcom/vc_cma/Makefile linux-4.1.22/drivers/char/broadcom/vc_cma/Makefile ---- linux-4.1.22.orig/drivers/char/broadcom/vc_cma/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/char/broadcom/vc_cma/Makefile 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/char/broadcom/vc_cma/Makefile linux-4.1.23/drivers/char/broadcom/vc_cma/Makefile +--- linux-4.1.23.orig/drivers/char/broadcom/vc_cma/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/char/broadcom/vc_cma/Makefile 2016-05-02 22:53:52.000000000 +0200 @@ -0,0 +1,14 @@ +ccflags-y += -Wall -Wstrict-prototypes -Wno-trigraphs +ccflags-y += -Werror @@ -20924,9 +22781,9 @@ diff -Nur linux-4.1.22.orig/drivers/char/broadcom/vc_cma/Makefile linux-4.1.22/d +obj-$(CONFIG_BCM_VC_CMA) += vc-cma.o + +vc-cma-objs := vc_cma.o -diff -Nur linux-4.1.22.orig/drivers/char/broadcom/vc_cma/vc_cma.c linux-4.1.22/drivers/char/broadcom/vc_cma/vc_cma.c ---- linux-4.1.22.orig/drivers/char/broadcom/vc_cma/vc_cma.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/char/broadcom/vc_cma/vc_cma.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/char/broadcom/vc_cma/vc_cma.c linux-4.1.23/drivers/char/broadcom/vc_cma/vc_cma.c +--- linux-4.1.23.orig/drivers/char/broadcom/vc_cma/vc_cma.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/char/broadcom/vc_cma/vc_cma.c 2016-05-02 22:53:52.000000000 +0200 @@ -0,0 +1,1193 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -22121,9 +23978,9 @@ diff -Nur linux-4.1.22.orig/drivers/char/broadcom/vc_cma/vc_cma.c linux-4.1.22/d +module_exit(vc_cma_exit); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Broadcom Corporation"); -diff -Nur linux-4.1.22.orig/drivers/char/broadcom/vc_mem.c linux-4.1.22/drivers/char/broadcom/vc_mem.c ---- linux-4.1.22.orig/drivers/char/broadcom/vc_mem.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/char/broadcom/vc_mem.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/char/broadcom/vc_mem.c linux-4.1.23/drivers/char/broadcom/vc_mem.c +--- linux-4.1.23.orig/drivers/char/broadcom/vc_mem.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/char/broadcom/vc_mem.c 2016-05-02 22:53:52.000000000 +0200 @@ -0,0 +1,422 @@ +/***************************************************************************** +* Copyright 2010 - 2011 Broadcom Corporation. All rights reserved. @@ -22547,9 +24404,9 @@ diff -Nur linux-4.1.22.orig/drivers/char/broadcom/vc_mem.c linux-4.1.22/drivers/ +module_param(phys_addr, uint, 0644); +module_param(mem_size, uint, 0644); +module_param(mem_base, uint, 0644); -diff -Nur linux-4.1.22.orig/drivers/char/broadcom/vc_sm/Makefile linux-4.1.22/drivers/char/broadcom/vc_sm/Makefile ---- linux-4.1.22.orig/drivers/char/broadcom/vc_sm/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/char/broadcom/vc_sm/Makefile 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/char/broadcom/vc_sm/Makefile linux-4.1.23/drivers/char/broadcom/vc_sm/Makefile +--- linux-4.1.23.orig/drivers/char/broadcom/vc_sm/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/char/broadcom/vc_sm/Makefile 2016-05-02 22:53:52.000000000 +0200 @@ -0,0 +1,21 @@ +EXTRA_CFLAGS += -Wall -Wstrict-prototypes -Wno-trigraphs -O2 + @@ -22572,9 +24429,9 @@ diff -Nur linux-4.1.22.orig/drivers/char/broadcom/vc_sm/Makefile linux-4.1.22/dr +vc-sm-objs := \ + vmcs_sm.o \ + vc_vchi_sm.o -diff -Nur linux-4.1.22.orig/drivers/char/broadcom/vc_sm/vc_vchi_sm.c linux-4.1.22/drivers/char/broadcom/vc_sm/vc_vchi_sm.c ---- linux-4.1.22.orig/drivers/char/broadcom/vc_sm/vc_vchi_sm.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/char/broadcom/vc_sm/vc_vchi_sm.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/char/broadcom/vc_sm/vc_vchi_sm.c linux-4.1.23/drivers/char/broadcom/vc_sm/vc_vchi_sm.c +--- linux-4.1.23.orig/drivers/char/broadcom/vc_sm/vc_vchi_sm.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/char/broadcom/vc_sm/vc_vchi_sm.c 2016-05-02 22:53:52.000000000 +0200 @@ -0,0 +1,492 @@ +/***************************************************************************** +* Copyright 2011-2012 Broadcom Corporation. All rights reserved. @@ -23068,9 +24925,9 @@ diff -Nur linux-4.1.22.orig/drivers/char/broadcom/vc_sm/vc_vchi_sm.c linux-4.1.2 + return vc_vchi_sm_send_msg(handle, VC_SM_MSG_TYPE_ACTION_CLEAN, + msg, sizeof(*msg), 0, 0, 0, 0); +} -diff -Nur linux-4.1.22.orig/drivers/char/broadcom/vc_sm/vmcs_sm.c linux-4.1.22/drivers/char/broadcom/vc_sm/vmcs_sm.c ---- linux-4.1.22.orig/drivers/char/broadcom/vc_sm/vmcs_sm.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/char/broadcom/vc_sm/vmcs_sm.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/char/broadcom/vc_sm/vmcs_sm.c linux-4.1.23/drivers/char/broadcom/vc_sm/vmcs_sm.c +--- linux-4.1.23.orig/drivers/char/broadcom/vc_sm/vmcs_sm.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/char/broadcom/vc_sm/vmcs_sm.c 2016-05-02 22:53:52.000000000 +0200 @@ -0,0 +1,3211 @@ +/***************************************************************************** +* Copyright 2011-2012 Broadcom Corporation. All rights reserved. @@ -26283,9 +28140,9 @@ diff -Nur linux-4.1.22.orig/drivers/char/broadcom/vc_sm/vmcs_sm.c linux-4.1.22/d +MODULE_AUTHOR("Broadcom"); +MODULE_DESCRIPTION("VideoCore SharedMemory Driver"); +MODULE_LICENSE("GPL v2"); -diff -Nur linux-4.1.22.orig/drivers/char/broadcom/vcio.c linux-4.1.22/drivers/char/broadcom/vcio.c ---- linux-4.1.22.orig/drivers/char/broadcom/vcio.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/char/broadcom/vcio.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/char/broadcom/vcio.c linux-4.1.23/drivers/char/broadcom/vcio.c +--- linux-4.1.23.orig/drivers/char/broadcom/vcio.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/char/broadcom/vcio.c 2016-05-02 22:53:52.000000000 +0200 @@ -0,0 +1,175 @@ +/* + * Copyright (C) 2010 Broadcom @@ -26462,9 +28319,9 @@ diff -Nur linux-4.1.22.orig/drivers/char/broadcom/vcio.c linux-4.1.22/drivers/ch +MODULE_AUTHOR("Noralf Trønnes"); +MODULE_DESCRIPTION("Mailbox userspace access"); +MODULE_LICENSE("GPL"); -diff -Nur linux-4.1.22.orig/drivers/char/hw_random/Kconfig linux-4.1.22/drivers/char/hw_random/Kconfig ---- linux-4.1.22.orig/drivers/char/hw_random/Kconfig 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/char/hw_random/Kconfig 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/char/hw_random/Kconfig linux-4.1.23/drivers/char/hw_random/Kconfig +--- linux-4.1.23.orig/drivers/char/hw_random/Kconfig 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/char/hw_random/Kconfig 2016-05-02 22:53:52.000000000 +0200 @@ -90,7 +90,7 @@ config HW_RANDOM_BCM2835 @@ -26492,9 +28349,9 @@ diff -Nur linux-4.1.22.orig/drivers/char/hw_random/Kconfig linux-4.1.22/drivers/ config HW_RANDOM_MSM tristate "Qualcomm SoCs Random Number Generator support" depends on HW_RANDOM && ARCH_QCOM -diff -Nur linux-4.1.22.orig/drivers/char/hw_random/Makefile linux-4.1.22/drivers/char/hw_random/Makefile ---- linux-4.1.22.orig/drivers/char/hw_random/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/char/hw_random/Makefile 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/char/hw_random/Makefile linux-4.1.23/drivers/char/hw_random/Makefile +--- linux-4.1.23.orig/drivers/char/hw_random/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/char/hw_random/Makefile 2016-05-02 22:53:52.000000000 +0200 @@ -4,6 +4,7 @@ obj-$(CONFIG_HW_RANDOM) += rng-core.o @@ -26503,9 +28360,9 @@ diff -Nur linux-4.1.22.orig/drivers/char/hw_random/Makefile linux-4.1.22/drivers obj-$(CONFIG_HW_RANDOM_TIMERIOMEM) += timeriomem-rng.o obj-$(CONFIG_HW_RANDOM_INTEL) += intel-rng.o obj-$(CONFIG_HW_RANDOM_AMD) += amd-rng.o -diff -Nur linux-4.1.22.orig/drivers/char/hw_random/bcm2708-rng.c linux-4.1.22/drivers/char/hw_random/bcm2708-rng.c ---- linux-4.1.22.orig/drivers/char/hw_random/bcm2708-rng.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/char/hw_random/bcm2708-rng.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/char/hw_random/bcm2708-rng.c linux-4.1.23/drivers/char/hw_random/bcm2708-rng.c +--- linux-4.1.23.orig/drivers/char/hw_random/bcm2708-rng.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/char/hw_random/bcm2708-rng.c 2016-05-02 22:53:52.000000000 +0200 @@ -0,0 +1,118 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -26625,9 +28482,26 @@ diff -Nur linux-4.1.22.orig/drivers/char/hw_random/bcm2708-rng.c linux-4.1.22/dr + +MODULE_DESCRIPTION("BCM2708 H/W Random Number Generator (RNG) driver"); +MODULE_LICENSE("GPL and additional rights"); -diff -Nur linux-4.1.22.orig/drivers/clk/Makefile linux-4.1.22/drivers/clk/Makefile ---- linux-4.1.22.orig/drivers/clk/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/clk/Makefile 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/char/tpm/tpm_crb.c linux-4.1.23/drivers/char/tpm/tpm_crb.c +--- linux-4.1.23.orig/drivers/char/tpm/tpm_crb.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/char/tpm/tpm_crb.c 2016-05-02 22:53:52.000000000 +0200 +@@ -309,11 +309,11 @@ + struct device *dev = &device->dev; + struct tpm_chip *chip = dev_get_drvdata(dev); + ++ tpm_chip_unregister(chip); ++ + if (chip->flags & TPM_CHIP_FLAG_TPM2) + tpm2_shutdown(chip, TPM2_SU_CLEAR); + +- tpm_chip_unregister(chip); +- + return 0; + } + +diff -Nur linux-4.1.23.orig/drivers/clk/Makefile linux-4.1.23/drivers/clk/Makefile +--- linux-4.1.23.orig/drivers/clk/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/clk/Makefile 2016-05-02 22:53:52.000000000 +0200 @@ -19,11 +19,11 @@ obj-$(CONFIG_MACH_ASM9260) += clk-asm9260.o obj-$(CONFIG_COMMON_CLK_AXI_CLKGEN) += clk-axi-clkgen.o @@ -26650,17 +28524,17 @@ diff -Nur linux-4.1.22.orig/drivers/clk/Makefile linux-4.1.22/drivers/clk/Makefi obj-$(CONFIG_ARCH_BERLIN) += berlin/ obj-$(CONFIG_ARCH_HI3xxx) += hisilicon/ obj-$(CONFIG_ARCH_HIP04) += hisilicon/ -diff -Nur linux-4.1.22.orig/drivers/clk/bcm/Makefile linux-4.1.22/drivers/clk/bcm/Makefile ---- linux-4.1.22.orig/drivers/clk/bcm/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/clk/bcm/Makefile 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/clk/bcm/Makefile linux-4.1.23/drivers/clk/bcm/Makefile +--- linux-4.1.23.orig/drivers/clk/bcm/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/clk/bcm/Makefile 2016-05-02 22:53:52.000000000 +0200 @@ -2,3 +2,4 @@ obj-$(CONFIG_CLK_BCM_KONA) += clk-kona-setup.o obj-$(CONFIG_CLK_BCM_KONA) += clk-bcm281xx.o obj-$(CONFIG_CLK_BCM_KONA) += clk-bcm21664.o +obj-$(CONFIG_ARCH_BCM2835)$(CONFIG_ARCH_BCM2708)$(CONFIG_ARCH_BCM2709) += clk-bcm2835.o -diff -Nur linux-4.1.22.orig/drivers/clk/bcm/clk-bcm2835.c linux-4.1.22/drivers/clk/bcm/clk-bcm2835.c ---- linux-4.1.22.orig/drivers/clk/bcm/clk-bcm2835.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/clk/bcm/clk-bcm2835.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/clk/bcm/clk-bcm2835.c linux-4.1.23/drivers/clk/bcm/clk-bcm2835.c +--- linux-4.1.23.orig/drivers/clk/bcm/clk-bcm2835.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/clk/bcm/clk-bcm2835.c 2016-05-02 22:53:52.000000000 +0200 @@ -0,0 +1,1581 @@ +/* + * Copyright (C) 2010,2015 Broadcom @@ -28243,9 +30117,9 @@ diff -Nur linux-4.1.22.orig/drivers/clk/bcm/clk-bcm2835.c linux-4.1.22/drivers/c +MODULE_AUTHOR("Eric Anholt <eric@anholt.net>"); +MODULE_DESCRIPTION("BCM2835 clock driver"); +MODULE_LICENSE("GPL v2"); -diff -Nur linux-4.1.22.orig/drivers/clk/clk-bcm2835.c linux-4.1.22/drivers/clk/clk-bcm2835.c ---- linux-4.1.22.orig/drivers/clk/clk-bcm2835.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/clk/clk-bcm2835.c 1970-01-01 01:00:00.000000000 +0100 +diff -Nur linux-4.1.23.orig/drivers/clk/clk-bcm2835.c linux-4.1.23/drivers/clk/clk-bcm2835.c +--- linux-4.1.23.orig/drivers/clk/clk-bcm2835.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/clk/clk-bcm2835.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,60 +0,0 @@ -/* - * Copyright (C) 2010 Broadcom @@ -28307,9 +30181,9 @@ diff -Nur linux-4.1.22.orig/drivers/clk/clk-bcm2835.c linux-4.1.22/drivers/clk/c - if (ret) - pr_err("uart1_pclk alias not registered\n"); -} -diff -Nur linux-4.1.22.orig/drivers/clk/clk-hifiberry-dacpro.c linux-4.1.22/drivers/clk/clk-hifiberry-dacpro.c ---- linux-4.1.22.orig/drivers/clk/clk-hifiberry-dacpro.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/clk/clk-hifiberry-dacpro.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/clk/clk-hifiberry-dacpro.c linux-4.1.23/drivers/clk/clk-hifiberry-dacpro.c +--- linux-4.1.23.orig/drivers/clk/clk-hifiberry-dacpro.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/clk/clk-hifiberry-dacpro.c 2016-05-02 22:53:52.000000000 +0200 @@ -0,0 +1,160 @@ +/* + * Clock Driver for HiFiBerry DAC Pro @@ -28471,9 +30345,22 @@ diff -Nur linux-4.1.22.orig/drivers/clk/clk-hifiberry-dacpro.c linux-4.1.22/driv +MODULE_DESCRIPTION("HiFiBerry DAC Pro clock driver"); +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:clk-hifiberry-dacpro"); -diff -Nur linux-4.1.22.orig/drivers/clocksource/arm_arch_timer.c linux-4.1.22/drivers/clocksource/arm_arch_timer.c ---- linux-4.1.22.orig/drivers/clocksource/arm_arch_timer.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/clocksource/arm_arch_timer.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/clk/rockchip/clk-rk3188.c linux-4.1.23/drivers/clk/rockchip/clk-rk3188.c +--- linux-4.1.23.orig/drivers/clk/rockchip/clk-rk3188.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/clk/rockchip/clk-rk3188.c 2016-05-02 22:53:52.000000000 +0200 +@@ -708,9 +708,6 @@ + "aclk_cpu", + "aclk_peri", + "hclk_peri", +- "pclk_cpu", +- "pclk_peri", +- "hclk_cpubus" + }; + + static void __init rk3188_common_clk_init(struct device_node *np) +diff -Nur linux-4.1.23.orig/drivers/clocksource/arm_arch_timer.c linux-4.1.23/drivers/clocksource/arm_arch_timer.c +--- linux-4.1.23.orig/drivers/clocksource/arm_arch_timer.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/clocksource/arm_arch_timer.c 2016-05-02 22:53:52.000000000 +0200 @@ -882,3 +882,39 @@ acpi_table_parse(ACPI_SIG_GTDT, arch_timer_acpi_init); } @@ -28514,9 +30401,9 @@ diff -Nur linux-4.1.22.orig/drivers/clocksource/arm_arch_timer.c linux-4.1.22/dr + arch_timer_common_init(); + return 0; +} -diff -Nur linux-4.1.22.orig/drivers/cpufreq/Kconfig.arm linux-4.1.22/drivers/cpufreq/Kconfig.arm ---- linux-4.1.22.orig/drivers/cpufreq/Kconfig.arm 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/cpufreq/Kconfig.arm 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/cpufreq/Kconfig.arm linux-4.1.23/drivers/cpufreq/Kconfig.arm +--- linux-4.1.23.orig/drivers/cpufreq/Kconfig.arm 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/cpufreq/Kconfig.arm 2016-05-02 22:53:52.000000000 +0200 @@ -258,6 +258,15 @@ help This adds the CPUFreq driver support for SPEAr SOCs. @@ -28533,9 +30420,9 @@ diff -Nur linux-4.1.22.orig/drivers/cpufreq/Kconfig.arm linux-4.1.22/drivers/cpu config ARM_TEGRA_CPUFREQ bool "TEGRA CPUFreq support" depends on ARCH_TEGRA -diff -Nur linux-4.1.22.orig/drivers/cpufreq/Makefile linux-4.1.22/drivers/cpufreq/Makefile ---- linux-4.1.22.orig/drivers/cpufreq/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/cpufreq/Makefile 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/cpufreq/Makefile linux-4.1.23/drivers/cpufreq/Makefile +--- linux-4.1.23.orig/drivers/cpufreq/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/cpufreq/Makefile 2016-05-02 22:53:52.000000000 +0200 @@ -77,6 +77,7 @@ obj-$(CONFIG_ARM_SA1100_CPUFREQ) += sa1100-cpufreq.o obj-$(CONFIG_ARM_SA1110_CPUFREQ) += sa1110-cpufreq.o @@ -28544,9 +30431,9 @@ diff -Nur linux-4.1.22.orig/drivers/cpufreq/Makefile linux-4.1.22/drivers/cpufre obj-$(CONFIG_ARM_TEGRA_CPUFREQ) += tegra-cpufreq.o obj-$(CONFIG_ARM_VEXPRESS_SPC_CPUFREQ) += vexpress-spc-cpufreq.o -diff -Nur linux-4.1.22.orig/drivers/cpufreq/bcm2835-cpufreq.c linux-4.1.22/drivers/cpufreq/bcm2835-cpufreq.c ---- linux-4.1.22.orig/drivers/cpufreq/bcm2835-cpufreq.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/cpufreq/bcm2835-cpufreq.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/cpufreq/bcm2835-cpufreq.c linux-4.1.23/drivers/cpufreq/bcm2835-cpufreq.c +--- linux-4.1.23.orig/drivers/cpufreq/bcm2835-cpufreq.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/cpufreq/bcm2835-cpufreq.c 2016-05-02 22:53:52.000000000 +0200 @@ -0,0 +1,213 @@ +/***************************************************************************** +* Copyright 2011 Broadcom Corporation. All rights reserved. @@ -28761,9 +30648,199 @@ diff -Nur linux-4.1.22.orig/drivers/cpufreq/bcm2835-cpufreq.c linux-4.1.22/drive + +module_init(bcm2835_cpufreq_module_init); +module_exit(bcm2835_cpufreq_module_exit); -diff -Nur linux-4.1.22.orig/drivers/dma/Kconfig linux-4.1.22/drivers/dma/Kconfig ---- linux-4.1.22.orig/drivers/dma/Kconfig 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/dma/Kconfig 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/cpufreq/cpufreq_ondemand.c linux-4.1.23/drivers/cpufreq/cpufreq_ondemand.c +--- linux-4.1.23.orig/drivers/cpufreq/cpufreq_ondemand.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/cpufreq/cpufreq_ondemand.c 2016-05-02 22:53:52.000000000 +0200 +@@ -321,7 +321,12 @@ + ret = sscanf(buf, "%u", &input); + if (ret != 1) + return -EINVAL; +- od_tuners->io_is_busy = !!input; ++ // XXX temporary hack ++ if (input > 1) ++ input = 1; ++ else ++ input = 0; ++ od_tuners->io_is_busy = input; + + /* we need to re-evaluate prev_cpu_idle */ + for_each_online_cpu(j) { +diff -Nur linux-4.1.23.orig/drivers/crypto/atmel-sha.c linux-4.1.23/drivers/crypto/atmel-sha.c +--- linux-4.1.23.orig/drivers/crypto/atmel-sha.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/crypto/atmel-sha.c 2016-05-02 22:53:52.000000000 +0200 +@@ -1492,6 +1492,13 @@ + + clk_unprepare(sha_dd->iclk); + ++ iounmap(sha_dd->io_base); ++ ++ clk_put(sha_dd->iclk); ++ ++ if (sha_dd->irq >= 0) ++ free_irq(sha_dd->irq, sha_dd); ++ + return 0; + } + +diff -Nur linux-4.1.23.orig/drivers/crypto/ccp/ccp-crypto-aes-cmac.c linux-4.1.23/drivers/crypto/ccp/ccp-crypto-aes-cmac.c +--- linux-4.1.23.orig/drivers/crypto/ccp/ccp-crypto-aes-cmac.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/crypto/ccp/ccp-crypto-aes-cmac.c 2016-05-02 22:53:52.000000000 +0200 +@@ -202,39 +202,6 @@ + return ccp_aes_cmac_finup(req); + } + +-static int ccp_aes_cmac_export(struct ahash_request *req, void *out) +-{ +- struct ccp_aes_cmac_req_ctx *rctx = ahash_request_ctx(req); +- struct ccp_aes_cmac_exp_ctx state; +- +- state.null_msg = rctx->null_msg; +- memcpy(state.iv, rctx->iv, sizeof(state.iv)); +- state.buf_count = rctx->buf_count; +- memcpy(state.buf, rctx->buf, sizeof(state.buf)); +- +- /* 'out' may not be aligned so memcpy from local variable */ +- memcpy(out, &state, sizeof(state)); +- +- return 0; +-} +- +-static int ccp_aes_cmac_import(struct ahash_request *req, const void *in) +-{ +- struct ccp_aes_cmac_req_ctx *rctx = ahash_request_ctx(req); +- struct ccp_aes_cmac_exp_ctx state; +- +- /* 'in' may not be aligned so memcpy to local variable */ +- memcpy(&state, in, sizeof(state)); +- +- memset(rctx, 0, sizeof(*rctx)); +- rctx->null_msg = state.null_msg; +- memcpy(rctx->iv, state.iv, sizeof(rctx->iv)); +- rctx->buf_count = state.buf_count; +- memcpy(rctx->buf, state.buf, sizeof(rctx->buf)); +- +- return 0; +-} +- + static int ccp_aes_cmac_setkey(struct crypto_ahash *tfm, const u8 *key, + unsigned int key_len) + { +@@ -367,13 +334,10 @@ + alg->final = ccp_aes_cmac_final; + alg->finup = ccp_aes_cmac_finup; + alg->digest = ccp_aes_cmac_digest; +- alg->export = ccp_aes_cmac_export; +- alg->import = ccp_aes_cmac_import; + alg->setkey = ccp_aes_cmac_setkey; + + halg = &alg->halg; + halg->digestsize = AES_BLOCK_SIZE; +- halg->statesize = sizeof(struct ccp_aes_cmac_exp_ctx); + + base = &halg->base; + snprintf(base->cra_name, CRYPTO_MAX_ALG_NAME, "cmac(aes)"); +diff -Nur linux-4.1.23.orig/drivers/crypto/ccp/ccp-crypto-sha.c linux-4.1.23/drivers/crypto/ccp/ccp-crypto-sha.c +--- linux-4.1.23.orig/drivers/crypto/ccp/ccp-crypto-sha.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/crypto/ccp/ccp-crypto-sha.c 2016-05-02 22:53:52.000000000 +0200 +@@ -194,43 +194,6 @@ + return ccp_sha_finup(req); + } + +-static int ccp_sha_export(struct ahash_request *req, void *out) +-{ +- struct ccp_sha_req_ctx *rctx = ahash_request_ctx(req); +- struct ccp_sha_exp_ctx state; +- +- state.type = rctx->type; +- state.msg_bits = rctx->msg_bits; +- state.first = rctx->first; +- memcpy(state.ctx, rctx->ctx, sizeof(state.ctx)); +- state.buf_count = rctx->buf_count; +- memcpy(state.buf, rctx->buf, sizeof(state.buf)); +- +- /* 'out' may not be aligned so memcpy from local variable */ +- memcpy(out, &state, sizeof(state)); +- +- return 0; +-} +- +-static int ccp_sha_import(struct ahash_request *req, const void *in) +-{ +- struct ccp_sha_req_ctx *rctx = ahash_request_ctx(req); +- struct ccp_sha_exp_ctx state; +- +- /* 'in' may not be aligned so memcpy to local variable */ +- memcpy(&state, in, sizeof(state)); +- +- memset(rctx, 0, sizeof(*rctx)); +- rctx->type = state.type; +- rctx->msg_bits = state.msg_bits; +- rctx->first = state.first; +- memcpy(rctx->ctx, state.ctx, sizeof(rctx->ctx)); +- rctx->buf_count = state.buf_count; +- memcpy(rctx->buf, state.buf, sizeof(rctx->buf)); +- +- return 0; +-} +- + static int ccp_sha_setkey(struct crypto_ahash *tfm, const u8 *key, + unsigned int key_len) + { +@@ -427,12 +390,9 @@ + alg->final = ccp_sha_final; + alg->finup = ccp_sha_finup; + alg->digest = ccp_sha_digest; +- alg->export = ccp_sha_export; +- alg->import = ccp_sha_import; + + halg = &alg->halg; + halg->digestsize = def->digest_size; +- halg->statesize = sizeof(struct ccp_sha_exp_ctx); + + base = &halg->base; + snprintf(base->cra_name, CRYPTO_MAX_ALG_NAME, "%s", def->name); +diff -Nur linux-4.1.23.orig/drivers/crypto/ccp/ccp-crypto.h linux-4.1.23/drivers/crypto/ccp/ccp-crypto.h +--- linux-4.1.23.orig/drivers/crypto/ccp/ccp-crypto.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/crypto/ccp/ccp-crypto.h 2016-05-02 22:53:52.000000000 +0200 +@@ -129,15 +129,6 @@ + struct ccp_cmd cmd; + }; + +-struct ccp_aes_cmac_exp_ctx { +- unsigned int null_msg; +- +- u8 iv[AES_BLOCK_SIZE]; +- +- unsigned int buf_count; +- u8 buf[AES_BLOCK_SIZE]; +-}; +- + /***** SHA related defines *****/ + #define MAX_SHA_CONTEXT_SIZE SHA256_DIGEST_SIZE + #define MAX_SHA_BLOCK_SIZE SHA256_BLOCK_SIZE +@@ -180,19 +171,6 @@ + struct ccp_cmd cmd; + }; + +-struct ccp_sha_exp_ctx { +- enum ccp_sha_type type; +- +- u64 msg_bits; +- +- unsigned int first; +- +- u8 ctx[MAX_SHA_CONTEXT_SIZE]; +- +- unsigned int buf_count; +- u8 buf[MAX_SHA_BLOCK_SIZE]; +-}; +- + /***** Common Context Structure *****/ + struct ccp_ctx { + int (*complete)(struct crypto_async_request *req, int ret); +diff -Nur linux-4.1.23.orig/drivers/dma/Kconfig linux-4.1.23/drivers/dma/Kconfig +--- linux-4.1.23.orig/drivers/dma/Kconfig 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/dma/Kconfig 2016-05-02 22:53:52.000000000 +0200 @@ -337,6 +337,17 @@ select DMA_ENGINE select DMA_VIRTUAL_CHANNELS @@ -28791,9 +30868,9 @@ diff -Nur linux-4.1.22.orig/drivers/dma/Kconfig linux-4.1.22/drivers/dma/Kconfig config FSL_EDMA tristate "Freescale eDMA engine support" depends on OF -diff -Nur linux-4.1.22.orig/drivers/dma/Makefile linux-4.1.22/drivers/dma/Makefile ---- linux-4.1.22.orig/drivers/dma/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/dma/Makefile 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/dma/Makefile linux-4.1.23/drivers/dma/Makefile +--- linux-4.1.23.orig/drivers/dma/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/dma/Makefile 2016-05-02 22:53:52.000000000 +0200 @@ -39,6 +39,7 @@ obj-$(CONFIG_MMP_TDMA) += mmp_tdma.o obj-$(CONFIG_DMA_OMAP) += omap-dma.o @@ -28802,9 +30879,9 @@ diff -Nur linux-4.1.22.orig/drivers/dma/Makefile linux-4.1.22/drivers/dma/Makefi obj-$(CONFIG_MMP_PDMA) += mmp_pdma.o obj-$(CONFIG_DMA_JZ4740) += dma-jz4740.o obj-$(CONFIG_DMA_JZ4780) += dma-jz4780.o -diff -Nur linux-4.1.22.orig/drivers/dma/bcm2708-dmaengine.c linux-4.1.22/drivers/dma/bcm2708-dmaengine.c ---- linux-4.1.22.orig/drivers/dma/bcm2708-dmaengine.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/dma/bcm2708-dmaengine.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/dma/bcm2708-dmaengine.c linux-4.1.23/drivers/dma/bcm2708-dmaengine.c +--- linux-4.1.23.orig/drivers/dma/bcm2708-dmaengine.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/dma/bcm2708-dmaengine.c 2016-05-02 22:53:52.000000000 +0200 @@ -0,0 +1,1314 @@ +/* + * BCM2835 DMA engine support @@ -30120,9 +32197,78 @@ diff -Nur linux-4.1.22.orig/drivers/dma/bcm2708-dmaengine.c linux-4.1.22/drivers +MODULE_AUTHOR("Florian Meier <florian.meier@koalo.de>"); +MODULE_AUTHOR("Gellert Weisz <gellert@raspberrypi.org>"); +MODULE_LICENSE("GPL v2"); -diff -Nur linux-4.1.22.orig/drivers/firmware/Kconfig linux-4.1.22/drivers/firmware/Kconfig ---- linux-4.1.22.orig/drivers/firmware/Kconfig 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/firmware/Kconfig 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/edac/amd64_edac.c linux-4.1.23/drivers/edac/amd64_edac.c +--- linux-4.1.23.orig/drivers/edac/amd64_edac.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/edac/amd64_edac.c 2016-05-02 22:53:53.000000000 +0200 +@@ -1437,7 +1437,7 @@ + u64 chan_off; + u64 dram_base = get_dram_base(pvt, range); + u64 hole_off = f10_dhar_offset(pvt); +- u64 dct_sel_base_off = (u64)(pvt->dct_sel_hi & 0xFFFFFC00) << 16; ++ u64 dct_sel_base_off = (pvt->dct_sel_hi & 0xFFFFFC00) << 16; + + if (hi_rng) { + /* +diff -Nur linux-4.1.23.orig/drivers/edac/sb_edac.c linux-4.1.23/drivers/edac/sb_edac.c +--- linux-4.1.23.orig/drivers/edac/sb_edac.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/edac/sb_edac.c 2016-05-02 22:53:53.000000000 +0200 +@@ -1043,8 +1043,8 @@ + edac_dbg(0, "TAD#%d: up to %u.%03u GB (0x%016Lx), socket interleave %d, memory interleave %d, TGT: %d, %d, %d, %d, reg=0x%08x\n", + n_tads, gb, (mb*1000)/1024, + ((u64)tmp_mb) << 20L, +- (u32)(1 << TAD_SOCK(reg)), +- (u32)TAD_CH(reg) + 1, ++ (u32)TAD_SOCK(reg), ++ (u32)TAD_CH(reg), + (u32)TAD_TGT0(reg), + (u32)TAD_TGT1(reg), + (u32)TAD_TGT2(reg), +@@ -1316,7 +1316,7 @@ + } + + ch_way = TAD_CH(reg) + 1; +- sck_way = 1 << TAD_SOCK(reg); ++ sck_way = TAD_SOCK(reg) + 1; + + if (ch_way == 3) + idx = addr >> 6; +@@ -1373,7 +1373,7 @@ + n_tads, + addr, + limit, +- sck_way, ++ (u32)TAD_SOCK(reg), + ch_way, + offset, + idx, +@@ -1388,12 +1388,18 @@ + offset, addr); + return -EINVAL; + } +- +- ch_addr = addr - offset; +- ch_addr >>= (6 + shiftup); +- ch_addr /= ch_way * sck_way; +- ch_addr <<= (6 + shiftup); +- ch_addr |= addr & ((1 << (6 + shiftup)) - 1); ++ addr -= offset; ++ /* Store the low bits [0:6] of the addr */ ++ ch_addr = addr & 0x7f; ++ /* Remove socket wayness and remove 6 bits */ ++ addr >>= 6; ++ addr = div_u64(addr, sck_xch); ++#if 0 ++ /* Divide by channel way */ ++ addr = addr / ch_way; ++#endif ++ /* Recover the last 6 bits */ ++ ch_addr |= addr << 6; + + /* + * Step 3) Decode rank +diff -Nur linux-4.1.23.orig/drivers/firmware/Kconfig linux-4.1.23/drivers/firmware/Kconfig +--- linux-4.1.23.orig/drivers/firmware/Kconfig 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/firmware/Kconfig 2016-05-02 22:53:53.000000000 +0200 @@ -136,6 +136,13 @@ bool depends on ARM || ARM64 @@ -30137,9 +32283,9 @@ diff -Nur linux-4.1.22.orig/drivers/firmware/Kconfig linux-4.1.22/drivers/firmwa source "drivers/firmware/google/Kconfig" source "drivers/firmware/efi/Kconfig" -diff -Nur linux-4.1.22.orig/drivers/firmware/Makefile linux-4.1.22/drivers/firmware/Makefile ---- linux-4.1.22.orig/drivers/firmware/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/firmware/Makefile 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/firmware/Makefile linux-4.1.23/drivers/firmware/Makefile +--- linux-4.1.23.orig/drivers/firmware/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/firmware/Makefile 2016-05-02 22:53:53.000000000 +0200 @@ -13,6 +13,7 @@ obj-$(CONFIG_FIRMWARE_MEMMAP) += memmap.o obj-$(CONFIG_QCOM_SCM) += qcom_scm.o @@ -30148,9 +32294,283 @@ diff -Nur linux-4.1.22.orig/drivers/firmware/Makefile linux-4.1.22/drivers/firmw obj-$(CONFIG_GOOGLE_FIRMWARE) += google/ obj-$(CONFIG_EFI) += efi/ -diff -Nur linux-4.1.22.orig/drivers/firmware/raspberrypi.c linux-4.1.22/drivers/firmware/raspberrypi.c ---- linux-4.1.22.orig/drivers/firmware/raspberrypi.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/firmware/raspberrypi.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/firmware/efi/efivars.c linux-4.1.23/drivers/firmware/efi/efivars.c +--- linux-4.1.23.orig/drivers/firmware/efi/efivars.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/firmware/efi/efivars.c 2016-05-02 22:53:53.000000000 +0200 +@@ -221,7 +221,7 @@ + } + + if ((attributes & ~EFI_VARIABLE_MASK) != 0 || +- efivar_validate(vendor, name, data, size) == false) { ++ efivar_validate(name, data, size) == false) { + printk(KERN_ERR "efivars: Malformed variable content\n"); + return -EINVAL; + } +@@ -447,8 +447,7 @@ + } + + if ((attributes & ~EFI_VARIABLE_MASK) != 0 || +- efivar_validate(new_var->VendorGuid, name, data, +- size) == false) { ++ efivar_validate(name, data, size) == false) { + printk(KERN_ERR "efivars: Malformed variable content\n"); + return -EINVAL; + } +@@ -536,43 +535,50 @@ + * efivar_create_sysfs_entry - create a new entry in sysfs + * @new_var: efivar entry to create + * +- * Returns 0 on success, negative error code on failure ++ * Returns 1 on failure, 0 on success + */ + static int + efivar_create_sysfs_entry(struct efivar_entry *new_var) + { +- int short_name_size; ++ int i, short_name_size; + char *short_name; +- unsigned long utf8_name_size; +- efi_char16_t *variable_name = new_var->var.VariableName; +- int ret; ++ unsigned long variable_name_size; ++ efi_char16_t *variable_name; ++ ++ variable_name = new_var->var.VariableName; ++ variable_name_size = ucs2_strlen(variable_name) * sizeof(efi_char16_t); + + /* +- * Length of the variable bytes in UTF8, plus the '-' separator, ++ * Length of the variable bytes in ASCII, plus the '-' separator, + * plus the GUID, plus trailing NUL + */ +- utf8_name_size = ucs2_utf8size(variable_name); +- short_name_size = utf8_name_size + 1 + EFI_VARIABLE_GUID_LEN + 1; ++ short_name_size = variable_name_size / sizeof(efi_char16_t) ++ + 1 + EFI_VARIABLE_GUID_LEN + 1; + +- short_name = kmalloc(short_name_size, GFP_KERNEL); +- if (!short_name) +- return -ENOMEM; ++ short_name = kzalloc(short_name_size, GFP_KERNEL); + +- ucs2_as_utf8(short_name, variable_name, short_name_size); ++ if (!short_name) ++ return 1; + ++ /* Convert Unicode to normal chars (assume top bits are 0), ++ ala UTF-8 */ ++ for (i=0; i < (int)(variable_name_size / sizeof(efi_char16_t)); i++) { ++ short_name[i] = variable_name[i] & 0xFF; ++ } + /* This is ugly, but necessary to separate one vendor's + private variables from another's. */ +- short_name[utf8_name_size] = '-'; ++ ++ *(short_name + strlen(short_name)) = '-'; + efi_guid_to_str(&new_var->var.VendorGuid, +- short_name + utf8_name_size + 1); ++ short_name + strlen(short_name)); + + new_var->kobj.kset = efivars_kset; + +- ret = kobject_init_and_add(&new_var->kobj, &efivar_ktype, ++ i = kobject_init_and_add(&new_var->kobj, &efivar_ktype, + NULL, "%s", short_name); + kfree(short_name); +- if (ret) +- return ret; ++ if (i) ++ return 1; + + kobject_uevent(&new_var->kobj, KOBJ_ADD); + efivar_entry_add(new_var, &efivar_sysfs_list); +diff -Nur linux-4.1.23.orig/drivers/firmware/efi/vars.c linux-4.1.23/drivers/firmware/efi/vars.c +--- linux-4.1.23.orig/drivers/firmware/efi/vars.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/firmware/efi/vars.c 2016-05-02 22:53:53.000000000 +0200 +@@ -165,132 +165,66 @@ + } + + struct variable_validate { +- efi_guid_t vendor; + char *name; + bool (*validate)(efi_char16_t *var_name, int match, u8 *data, + unsigned long len); + }; + +-/* +- * This is the list of variables we need to validate, as well as the +- * whitelist for what we think is safe not to default to immutable. +- * +- * If it has a validate() method that's not NULL, it'll go into the +- * validation routine. If not, it is assumed valid, but still used for +- * whitelisting. +- * +- * Note that it's sorted by {vendor,name}, but globbed names must come after +- * any other name with the same prefix. +- */ + static const struct variable_validate variable_validate[] = { +- { EFI_GLOBAL_VARIABLE_GUID, "BootNext", validate_uint16 }, +- { EFI_GLOBAL_VARIABLE_GUID, "BootOrder", validate_boot_order }, +- { EFI_GLOBAL_VARIABLE_GUID, "Boot*", validate_load_option }, +- { EFI_GLOBAL_VARIABLE_GUID, "DriverOrder", validate_boot_order }, +- { EFI_GLOBAL_VARIABLE_GUID, "Driver*", validate_load_option }, +- { EFI_GLOBAL_VARIABLE_GUID, "ConIn", validate_device_path }, +- { EFI_GLOBAL_VARIABLE_GUID, "ConInDev", validate_device_path }, +- { EFI_GLOBAL_VARIABLE_GUID, "ConOut", validate_device_path }, +- { EFI_GLOBAL_VARIABLE_GUID, "ConOutDev", validate_device_path }, +- { EFI_GLOBAL_VARIABLE_GUID, "ErrOut", validate_device_path }, +- { EFI_GLOBAL_VARIABLE_GUID, "ErrOutDev", validate_device_path }, +- { EFI_GLOBAL_VARIABLE_GUID, "Lang", validate_ascii_string }, +- { EFI_GLOBAL_VARIABLE_GUID, "OsIndications", NULL }, +- { EFI_GLOBAL_VARIABLE_GUID, "PlatformLang", validate_ascii_string }, +- { EFI_GLOBAL_VARIABLE_GUID, "Timeout", validate_uint16 }, +- { LINUX_EFI_CRASH_GUID, "*", NULL }, +- { NULL_GUID, "", NULL }, ++ { "BootNext", validate_uint16 }, ++ { "BootOrder", validate_boot_order }, ++ { "DriverOrder", validate_boot_order }, ++ { "Boot*", validate_load_option }, ++ { "Driver*", validate_load_option }, ++ { "ConIn", validate_device_path }, ++ { "ConInDev", validate_device_path }, ++ { "ConOut", validate_device_path }, ++ { "ConOutDev", validate_device_path }, ++ { "ErrOut", validate_device_path }, ++ { "ErrOutDev", validate_device_path }, ++ { "Timeout", validate_uint16 }, ++ { "Lang", validate_ascii_string }, ++ { "PlatformLang", validate_ascii_string }, ++ { "", NULL }, + }; + +-static bool +-variable_matches(const char *var_name, size_t len, const char *match_name, +- int *match) +-{ +- for (*match = 0; ; (*match)++) { +- char c = match_name[*match]; +- char u = var_name[*match]; +- +- /* Wildcard in the matching name means we've matched */ +- if (c == '*') +- return true; +- +- /* Case sensitive match */ +- if (!c && *match == len) +- return true; +- +- if (c != u) +- return false; +- +- if (!c) +- return true; +- } +- return true; +-} +- + bool +-efivar_validate(efi_guid_t vendor, efi_char16_t *var_name, u8 *data, +- unsigned long data_size) ++efivar_validate(efi_char16_t *var_name, u8 *data, unsigned long len) + { + int i; +- unsigned long utf8_size; +- u8 *utf8_name; +- +- utf8_size = ucs2_utf8size(var_name); +- utf8_name = kmalloc(utf8_size + 1, GFP_KERNEL); +- if (!utf8_name) +- return false; +- +- ucs2_as_utf8(utf8_name, var_name, utf8_size); +- utf8_name[utf8_size] = '\0'; ++ u16 *unicode_name = var_name; + +- for (i = 0; variable_validate[i].name[0] != '\0'; i++) { ++ for (i = 0; variable_validate[i].validate != NULL; i++) { + const char *name = variable_validate[i].name; +- int match = 0; ++ int match; + +- if (efi_guidcmp(vendor, variable_validate[i].vendor)) +- continue; ++ for (match = 0; ; match++) { ++ char c = name[match]; ++ u16 u = unicode_name[match]; ++ ++ /* All special variables are plain ascii */ ++ if (u > 127) ++ return true; ++ ++ /* Wildcard in the matching name means we've matched */ ++ if (c == '*') ++ return variable_validate[i].validate(var_name, ++ match, data, len); + +- if (variable_matches(utf8_name, utf8_size+1, name, &match)) { +- if (variable_validate[i].validate == NULL) ++ /* Case sensitive match */ ++ if (c != u) + break; +- kfree(utf8_name); +- return variable_validate[i].validate(var_name, match, +- data, data_size); +- } +- } +- kfree(utf8_name); +- return true; +-} +-EXPORT_SYMBOL_GPL(efivar_validate); +- +-bool +-efivar_variable_is_removable(efi_guid_t vendor, const char *var_name, +- size_t len) +-{ +- int i; +- bool found = false; +- int match = 0; +- +- /* +- * Check if our variable is in the validated variables list +- */ +- for (i = 0; variable_validate[i].name[0] != '\0'; i++) { +- if (efi_guidcmp(variable_validate[i].vendor, vendor)) +- continue; + +- if (variable_matches(var_name, len, +- variable_validate[i].name, &match)) { +- found = true; +- break; ++ /* Reached the end of the string while matching */ ++ if (!c) ++ return variable_validate[i].validate(var_name, ++ match, data, len); + } + } + +- /* +- * If it's in our list, it is removable. +- */ +- return found; ++ return true; + } +-EXPORT_SYMBOL_GPL(efivar_variable_is_removable); ++EXPORT_SYMBOL_GPL(efivar_validate); + + static efi_status_t + check_var_size(u32 attributes, unsigned long size) +@@ -918,7 +852,7 @@ + + *set = false; + +- if (efivar_validate(*vendor, name, data, *size) == false) ++ if (efivar_validate(name, data, *size) == false) + return -EINVAL; + + /* +diff -Nur linux-4.1.23.orig/drivers/firmware/raspberrypi.c linux-4.1.23/drivers/firmware/raspberrypi.c +--- linux-4.1.23.orig/drivers/firmware/raspberrypi.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/firmware/raspberrypi.c 2016-05-02 22:53:53.000000000 +0200 @@ -0,0 +1,297 @@ +/* + * Defines interfaces for interacting wtih the Raspberry Pi firmware's @@ -30449,9 +32869,9 @@ diff -Nur linux-4.1.22.orig/drivers/firmware/raspberrypi.c linux-4.1.22/drivers/ +MODULE_AUTHOR("Eric Anholt <eric@anholt.net>"); +MODULE_DESCRIPTION("Raspberry Pi firmware driver"); +MODULE_LICENSE("GPL v2"); -diff -Nur linux-4.1.22.orig/drivers/gpio/Kconfig linux-4.1.22/drivers/gpio/Kconfig ---- linux-4.1.22.orig/drivers/gpio/Kconfig 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/gpio/Kconfig 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpio/Kconfig linux-4.1.23/drivers/gpio/Kconfig +--- linux-4.1.23.orig/drivers/gpio/Kconfig 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/gpio/Kconfig 2016-05-02 22:53:53.000000000 +0200 @@ -126,6 +126,12 @@ help Turn on GPIO support for Broadcom "Kona" chips. @@ -30465,9 +32885,9 @@ diff -Nur linux-4.1.22.orig/drivers/gpio/Kconfig linux-4.1.22/drivers/gpio/Kconf config GPIO_CLPS711X tristate "CLPS711X GPIO support" depends on ARCH_CLPS711X || COMPILE_TEST -diff -Nur linux-4.1.22.orig/drivers/gpio/Makefile linux-4.1.22/drivers/gpio/Makefile ---- linux-4.1.22.orig/drivers/gpio/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/gpio/Makefile 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpio/Makefile linux-4.1.23/drivers/gpio/Makefile +--- linux-4.1.23.orig/drivers/gpio/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/gpio/Makefile 2016-05-02 22:53:53.000000000 +0200 @@ -21,6 +21,7 @@ obj-$(CONFIG_GPIO_AMD8111) += gpio-amd8111.o obj-$(CONFIG_GPIO_ARIZONA) += gpio-arizona.o @@ -30476,9 +32896,9 @@ diff -Nur linux-4.1.22.orig/drivers/gpio/Makefile linux-4.1.22/drivers/gpio/Make obj-$(CONFIG_GPIO_BT8XX) += gpio-bt8xx.o obj-$(CONFIG_GPIO_CLPS711X) += gpio-clps711x.o obj-$(CONFIG_GPIO_CS5535) += gpio-cs5535.o -diff -Nur linux-4.1.22.orig/drivers/gpio/gpio-bcm-virt.c linux-4.1.22/drivers/gpio/gpio-bcm-virt.c ---- linux-4.1.22.orig/drivers/gpio/gpio-bcm-virt.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/gpio/gpio-bcm-virt.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpio/gpio-bcm-virt.c linux-4.1.23/drivers/gpio/gpio-bcm-virt.c +--- linux-4.1.23.orig/drivers/gpio/gpio-bcm-virt.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/gpio/gpio-bcm-virt.c 2016-05-02 22:53:53.000000000 +0200 @@ -0,0 +1,180 @@ +/* + * brcmvirt GPIO driver @@ -30660,18 +33080,18 @@ diff -Nur linux-4.1.22.orig/drivers/gpio/gpio-bcm-virt.c linux-4.1.22/drivers/gp +MODULE_AUTHOR("Dom Cobley <popcornmix@gmail.com>"); +MODULE_DESCRIPTION("brcmvirt GPIO driver"); +MODULE_ALIAS("platform:brcmvirt-gpio"); -diff -Nur linux-4.1.22.orig/drivers/gpu/drm/Kconfig linux-4.1.22/drivers/gpu/drm/Kconfig ---- linux-4.1.22.orig/drivers/gpu/drm/Kconfig 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/gpu/drm/Kconfig 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/Kconfig linux-4.1.23/drivers/gpu/drm/Kconfig +--- linux-4.1.23.orig/drivers/gpu/drm/Kconfig 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/gpu/drm/Kconfig 2016-05-02 22:53:53.000000000 +0200 @@ -217,3 +217,5 @@ source "drivers/gpu/drm/amd/amdkfd/Kconfig" source "drivers/gpu/drm/imx/Kconfig" + +source "drivers/gpu/drm/vc4/Kconfig" -diff -Nur linux-4.1.22.orig/drivers/gpu/drm/Makefile linux-4.1.22/drivers/gpu/drm/Makefile ---- linux-4.1.22.orig/drivers/gpu/drm/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/gpu/drm/Makefile 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/Makefile linux-4.1.23/drivers/gpu/drm/Makefile +--- linux-4.1.23.orig/drivers/gpu/drm/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/gpu/drm/Makefile 2016-05-02 22:53:53.000000000 +0200 @@ -46,6 +46,7 @@ obj-$(CONFIG_DRM_CIRRUS_QEMU) += cirrus/ obj-$(CONFIG_DRM_SIS) += sis/ @@ -30680,9 +33100,9 @@ diff -Nur linux-4.1.22.orig/drivers/gpu/drm/Makefile linux-4.1.22/drivers/gpu/dr obj-$(CONFIG_DRM_VMWGFX)+= vmwgfx/ obj-$(CONFIG_DRM_VIA) +=via/ obj-$(CONFIG_DRM_VGEM) += vgem/ -diff -Nur linux-4.1.22.orig/drivers/gpu/drm/drm_atomic_helper.c linux-4.1.22/drivers/gpu/drm/drm_atomic_helper.c ---- linux-4.1.22.orig/drivers/gpu/drm/drm_atomic_helper.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/gpu/drm/drm_atomic_helper.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/drm_atomic_helper.c linux-4.1.23/drivers/gpu/drm/drm_atomic_helper.c +--- linux-4.1.23.orig/drivers/gpu/drm/drm_atomic_helper.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/gpu/drm/drm_atomic_helper.c 2016-05-02 22:53:53.000000000 +0200 @@ -280,6 +280,8 @@ */ encoder = conn_state->best_encoder; @@ -30711,9 +33131,9 @@ diff -Nur linux-4.1.22.orig/drivers/gpu/drm/drm_atomic_helper.c linux-4.1.22/dri ret = funcs->mode_fixup(crtc, &crtc_state->mode, &crtc_state->adjusted_mode); if (!ret) { -diff -Nur linux-4.1.22.orig/drivers/gpu/drm/drm_crtc.c linux-4.1.22/drivers/gpu/drm/drm_crtc.c ---- linux-4.1.22.orig/drivers/gpu/drm/drm_crtc.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/gpu/drm/drm_crtc.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/drm_crtc.c linux-4.1.23/drivers/gpu/drm/drm_crtc.c +--- linux-4.1.23.orig/drivers/gpu/drm/drm_crtc.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/gpu/drm/drm_crtc.c 2016-05-02 22:53:53.000000000 +0200 @@ -613,7 +613,7 @@ if (atomic_read(&fb->refcount.refcount) > 1) { drm_modeset_lock_all(dev); @@ -30815,9 +33235,9 @@ diff -Nur linux-4.1.22.orig/drivers/gpu/drm/drm_crtc.c linux-4.1.22/drivers/gpu/ } EXPORT_SYMBOL(drm_mode_config_reset); -diff -Nur linux-4.1.22.orig/drivers/gpu/drm/drm_crtc_helper.c linux-4.1.22/drivers/gpu/drm/drm_crtc_helper.c ---- linux-4.1.22.orig/drivers/gpu/drm/drm_crtc_helper.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/gpu/drm/drm_crtc_helper.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/drm_crtc_helper.c linux-4.1.23/drivers/gpu/drm/drm_crtc_helper.c +--- linux-4.1.23.orig/drivers/gpu/drm/drm_crtc_helper.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/gpu/drm/drm_crtc_helper.c 2016-05-02 22:53:53.000000000 +0200 @@ -182,7 +182,7 @@ drm_warn_on_modeset_not_all_locked(dev); @@ -30961,9 +33381,329 @@ diff -Nur linux-4.1.22.orig/drivers/gpu/drm/drm_crtc_helper.c linux-4.1.22/drive if(encoder->crtc != crtc) continue; -diff -Nur linux-4.1.22.orig/drivers/gpu/drm/drm_fb_cma_helper.c linux-4.1.22/drivers/gpu/drm/drm_fb_cma_helper.c ---- linux-4.1.22.orig/drivers/gpu/drm/drm_fb_cma_helper.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/gpu/drm/drm_fb_cma_helper.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/drm_dp_mst_topology.c linux-4.1.23/drivers/gpu/drm/drm_dp_mst_topology.c +--- linux-4.1.23.orig/drivers/gpu/drm/drm_dp_mst_topology.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/gpu/drm/drm_dp_mst_topology.c 2016-05-02 22:53:53.000000000 +0200 +@@ -798,18 +798,6 @@ + return mstb; + } + +-static void drm_dp_free_mst_port(struct kref *kref); +- +-static void drm_dp_free_mst_branch_device(struct kref *kref) +-{ +- struct drm_dp_mst_branch *mstb = container_of(kref, struct drm_dp_mst_branch, kref); +- if (mstb->port_parent) { +- if (list_empty(&mstb->port_parent->next)) +- kref_put(&mstb->port_parent->kref, drm_dp_free_mst_port); +- } +- kfree(mstb); +-} +- + static void drm_dp_destroy_mst_branch_device(struct kref *kref) + { + struct drm_dp_mst_branch *mstb = container_of(kref, struct drm_dp_mst_branch, kref); +@@ -817,15 +805,6 @@ + bool wake_tx = false; + + /* +- * init kref again to be used by ports to remove mst branch when it is +- * not needed anymore +- */ +- kref_init(kref); +- +- if (mstb->port_parent && list_empty(&mstb->port_parent->next)) +- kref_get(&mstb->port_parent->kref); +- +- /* + * destroy all ports - don't need lock + * as there are no more references to the mst branch + * device at this point. +@@ -851,8 +830,7 @@ + + if (wake_tx) + wake_up(&mstb->mgr->tx_waitq); +- +- kref_put(kref, drm_dp_free_mst_branch_device); ++ kfree(mstb); + } + + static void drm_dp_put_mst_branch_device(struct drm_dp_mst_branch *mstb) +@@ -900,7 +878,6 @@ + * from an EDID retrieval */ + + mutex_lock(&mgr->destroy_connector_lock); +- kref_get(&port->parent->kref); + list_add(&port->next, &mgr->destroy_connector_list); + mutex_unlock(&mgr->destroy_connector_lock); + schedule_work(&mgr->destroy_connector_work); +@@ -1036,27 +1013,18 @@ + return send_link; + } + +-static void drm_dp_check_mstb_guid(struct drm_dp_mst_branch *mstb, u8 *guid) ++static void drm_dp_check_port_guid(struct drm_dp_mst_branch *mstb, ++ struct drm_dp_mst_port *port) + { + int ret; +- +- memcpy(mstb->guid, guid, 16); +- +- if (!drm_dp_validate_guid(mstb->mgr, mstb->guid)) { +- if (mstb->port_parent) { +- ret = drm_dp_send_dpcd_write( +- mstb->mgr, +- mstb->port_parent, +- DP_GUID, +- 16, +- mstb->guid); +- } else { +- +- ret = drm_dp_dpcd_write( +- mstb->mgr->aux, +- DP_GUID, +- mstb->guid, +- 16); ++ if (port->dpcd_rev >= 0x12) { ++ port->guid_valid = drm_dp_validate_guid(mstb->mgr, port->guid); ++ if (!port->guid_valid) { ++ ret = drm_dp_send_dpcd_write(mstb->mgr, ++ port, ++ DP_GUID, ++ 16, port->guid); ++ port->guid_valid = true; + } + } + } +@@ -1113,6 +1081,7 @@ + port->dpcd_rev = port_msg->dpcd_revision; + port->num_sdp_streams = port_msg->num_sdp_streams; + port->num_sdp_stream_sinks = port_msg->num_sdp_stream_sinks; ++ memcpy(port->guid, port_msg->peer_guid, 16); + + /* manage mstb port lists with mgr lock - take a reference + for this list */ +@@ -1125,9 +1094,11 @@ + + if (old_ddps != port->ddps) { + if (port->ddps) { ++ drm_dp_check_port_guid(mstb, port); + if (!port->input) + drm_dp_send_enum_path_resources(mstb->mgr, mstb, port); + } else { ++ port->guid_valid = false; + port->available_pbn = 0; + } + } +@@ -1185,8 +1156,10 @@ + + if (old_ddps != port->ddps) { + if (port->ddps) { ++ drm_dp_check_port_guid(mstb, port); + dowork = true; + } else { ++ port->guid_valid = false; + port->available_pbn = 0; + } + } +@@ -1243,14 +1216,13 @@ + struct drm_dp_mst_branch *found_mstb; + struct drm_dp_mst_port *port; + +- if (memcmp(mstb->guid, guid, 16) == 0) +- return mstb; +- +- + list_for_each_entry(port, &mstb->ports, next) { + if (!port->mstb) + continue; + ++ if (port->guid_valid && memcmp(port->guid, guid, 16) == 0) ++ return port->mstb; ++ + found_mstb = get_mst_branch_device_by_guid_helper(port->mstb, guid); + + if (found_mstb) +@@ -1269,7 +1241,10 @@ + /* find the port by iterating down */ + mutex_lock(&mgr->lock); + +- mstb = get_mst_branch_device_by_guid_helper(mgr->mst_primary, guid); ++ if (mgr->guid_valid && memcmp(mgr->guid, guid, 16) == 0) ++ mstb = mgr->mst_primary; ++ else ++ mstb = get_mst_branch_device_by_guid_helper(mgr->mst_primary, guid); + + if (mstb) + kref_get(&mstb->kref); +@@ -1574,9 +1549,6 @@ + txmsg->reply.u.link_addr.ports[i].num_sdp_streams, + txmsg->reply.u.link_addr.ports[i].num_sdp_stream_sinks); + } +- +- drm_dp_check_mstb_guid(mstb, txmsg->reply.u.link_addr.guid); +- + for (i = 0; i < txmsg->reply.u.link_addr.nports; i++) { + drm_dp_add_port(mstb, mgr->dev, &txmsg->reply.u.link_addr.ports[i]); + } +@@ -1623,37 +1595,6 @@ + return 0; + } + +-static struct drm_dp_mst_port *drm_dp_get_last_connected_port_to_mstb(struct drm_dp_mst_branch *mstb) +-{ +- if (!mstb->port_parent) +- return NULL; +- +- if (mstb->port_parent->mstb != mstb) +- return mstb->port_parent; +- +- return drm_dp_get_last_connected_port_to_mstb(mstb->port_parent->parent); +-} +- +-static struct drm_dp_mst_branch *drm_dp_get_last_connected_port_and_mstb(struct drm_dp_mst_topology_mgr *mgr, +- struct drm_dp_mst_branch *mstb, +- int *port_num) +-{ +- struct drm_dp_mst_branch *rmstb = NULL; +- struct drm_dp_mst_port *found_port; +- mutex_lock(&mgr->lock); +- if (mgr->mst_primary) { +- found_port = drm_dp_get_last_connected_port_to_mstb(mstb); +- +- if (found_port) { +- rmstb = found_port->parent; +- kref_get(&rmstb->kref); +- *port_num = found_port->port_num; +- } +- } +- mutex_unlock(&mgr->lock); +- return rmstb; +-} +- + static int drm_dp_payload_send_msg(struct drm_dp_mst_topology_mgr *mgr, + struct drm_dp_mst_port *port, + int id, +@@ -1661,16 +1602,11 @@ + { + struct drm_dp_sideband_msg_tx *txmsg; + struct drm_dp_mst_branch *mstb; +- int len, ret, port_num; ++ int len, ret; + +- port_num = port->port_num; + mstb = drm_dp_get_validated_mstb_ref(mgr, port->parent); +- if (!mstb) { +- mstb = drm_dp_get_last_connected_port_and_mstb(mgr, port->parent, &port_num); +- +- if (!mstb) +- return -EINVAL; +- } ++ if (!mstb) ++ return -EINVAL; + + txmsg = kzalloc(sizeof(*txmsg), GFP_KERNEL); + if (!txmsg) { +@@ -1679,7 +1615,7 @@ + } + + txmsg->dst = mstb; +- len = build_allocate_payload(txmsg, port_num, ++ len = build_allocate_payload(txmsg, port->port_num, + id, + pbn); + +@@ -2033,12 +1969,6 @@ + mgr->mst_primary = mstb; + kref_get(&mgr->mst_primary->kref); + +- ret = drm_dp_dpcd_writeb(mgr->aux, DP_MSTM_CTRL, +- DP_MST_EN | DP_UP_REQ_EN | DP_UPSTREAM_IS_SRC); +- if (ret < 0) { +- goto out_unlock; +- } +- + { + struct drm_dp_payload reset_pay; + reset_pay.start_slot = 0; +@@ -2046,6 +1976,26 @@ + drm_dp_dpcd_write_payload(mgr, 0, &reset_pay); + } + ++ ret = drm_dp_dpcd_writeb(mgr->aux, DP_MSTM_CTRL, ++ DP_MST_EN | DP_UP_REQ_EN | DP_UPSTREAM_IS_SRC); ++ if (ret < 0) { ++ goto out_unlock; ++ } ++ ++ ++ /* sort out guid */ ++ ret = drm_dp_dpcd_read(mgr->aux, DP_GUID, mgr->guid, 16); ++ if (ret != 16) { ++ DRM_DEBUG_KMS("failed to read DP GUID %d\n", ret); ++ goto out_unlock; ++ } ++ ++ mgr->guid_valid = drm_dp_validate_guid(mgr, mgr->guid); ++ if (!mgr->guid_valid) { ++ ret = drm_dp_dpcd_write(mgr->aux, DP_GUID, mgr->guid, 16); ++ mgr->guid_valid = true; ++ } ++ + queue_work(system_long_wq, &mgr->work); + + ret = 0; +@@ -2267,7 +2217,6 @@ + } + + drm_dp_update_port(mstb, &msg.u.conn_stat); +- + DRM_DEBUG_KMS("Got CSN: pn: %d ldps:%d ddps: %d mcs: %d ip: %d pdt: %d\n", msg.u.conn_stat.port_number, msg.u.conn_stat.legacy_device_plug_status, msg.u.conn_stat.displayport_device_plug_status, msg.u.conn_stat.message_capability_status, msg.u.conn_stat.input_port, msg.u.conn_stat.peer_device_type); + (*mgr->cbs->hotplug)(mgr); + +@@ -2800,13 +2749,6 @@ + mutex_unlock(&mgr->qlock); + } + +-static void drm_dp_free_mst_port(struct kref *kref) +-{ +- struct drm_dp_mst_port *port = container_of(kref, struct drm_dp_mst_port, kref); +- kref_put(&port->parent->kref, drm_dp_free_mst_branch_device); +- kfree(port); +-} +- + static void drm_dp_destroy_connector_work(struct work_struct *work) + { + struct drm_dp_mst_topology_mgr *mgr = container_of(work, struct drm_dp_mst_topology_mgr, destroy_connector_work); +@@ -2827,22 +2769,13 @@ + list_del(&port->next); + mutex_unlock(&mgr->destroy_connector_lock); + +- kref_init(&port->kref); +- INIT_LIST_HEAD(&port->next); +- + mgr->cbs->destroy_connector(mgr, port->connector); + + drm_dp_port_teardown_pdt(port, port->pdt); + +- if (!port->input && port->vcpi.vcpi > 0) { +- if (mgr->mst_state) { +- drm_dp_mst_reset_vcpi_slots(mgr, port); +- drm_dp_update_payload_part1(mgr); +- drm_dp_mst_put_payload_id(mgr, port->vcpi.vcpi); +- } +- } +- +- kref_put(&port->kref, drm_dp_free_mst_port); ++ if (!port->input && port->vcpi.vcpi > 0) ++ drm_dp_mst_put_payload_id(mgr, port->vcpi.vcpi); ++ kfree(port); + send_hotplug = true; + } + if (send_hotplug) +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/drm_fb_cma_helper.c linux-4.1.23/drivers/gpu/drm/drm_fb_cma_helper.c +--- linux-4.1.23.orig/drivers/gpu/drm/drm_fb_cma_helper.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/gpu/drm/drm_fb_cma_helper.c 2016-05-02 22:53:53.000000000 +0200 @@ -279,7 +279,7 @@ if (!fbi) { dev_err(dev->dev, "Failed to allocate framebuffer info.\n"); @@ -30984,9 +33724,9 @@ diff -Nur linux-4.1.22.orig/drivers/gpu/drm/drm_fb_cma_helper.c linux-4.1.22/dri return ret; } -diff -Nur linux-4.1.22.orig/drivers/gpu/drm/drm_fb_helper.c linux-4.1.22/drivers/gpu/drm/drm_fb_helper.c ---- linux-4.1.22.orig/drivers/gpu/drm/drm_fb_helper.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/gpu/drm/drm_fb_helper.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/drm_fb_helper.c linux-4.1.23/drivers/gpu/drm/drm_fb_helper.c +--- linux-4.1.23.orig/drivers/gpu/drm/drm_fb_helper.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/gpu/drm/drm_fb_helper.c 2016-05-02 22:53:53.000000000 +0200 @@ -98,7 +98,7 @@ struct drm_connector *connector; int i; @@ -31032,9 +33772,9 @@ diff -Nur linux-4.1.22.orig/drivers/gpu/drm/drm_fb_helper.c linux-4.1.22/drivers fb_helper->crtc_info[i].mode_set.crtc = crtc; i++; } -diff -Nur linux-4.1.22.orig/drivers/gpu/drm/drm_gem_cma_helper.c linux-4.1.22/drivers/gpu/drm/drm_gem_cma_helper.c ---- linux-4.1.22.orig/drivers/gpu/drm/drm_gem_cma_helper.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/gpu/drm/drm_gem_cma_helper.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/drm_gem_cma_helper.c linux-4.1.23/drivers/gpu/drm/drm_gem_cma_helper.c +--- linux-4.1.23.orig/drivers/gpu/drm/drm_gem_cma_helper.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/gpu/drm/drm_gem_cma_helper.c 2016-05-02 22:53:53.000000000 +0200 @@ -59,11 +59,13 @@ struct drm_gem_object *gem_obj; int ret; @@ -31071,9 +33811,9 @@ diff -Nur linux-4.1.22.orig/drivers/gpu/drm/drm_gem_cma_helper.c linux-4.1.22/dr return ERR_PTR(ret); } -diff -Nur linux-4.1.22.orig/drivers/gpu/drm/drm_of.c linux-4.1.22/drivers/gpu/drm/drm_of.c ---- linux-4.1.22.orig/drivers/gpu/drm/drm_of.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/gpu/drm/drm_of.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/drm_of.c linux-4.1.23/drivers/gpu/drm/drm_of.c +--- linux-4.1.23.orig/drivers/gpu/drm/drm_of.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/gpu/drm/drm_of.c 2016-05-02 22:53:53.000000000 +0200 @@ -19,7 +19,7 @@ unsigned int index = 0; struct drm_crtc *tmp; @@ -31083,9 +33823,9 @@ diff -Nur linux-4.1.22.orig/drivers/gpu/drm/drm_of.c linux-4.1.22/drivers/gpu/dr if (tmp->port == port) return 1 << index; -diff -Nur linux-4.1.22.orig/drivers/gpu/drm/drm_probe_helper.c linux-4.1.22/drivers/gpu/drm/drm_probe_helper.c ---- linux-4.1.22.orig/drivers/gpu/drm/drm_probe_helper.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/gpu/drm/drm_probe_helper.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/drm_probe_helper.c linux-4.1.23/drivers/gpu/drm/drm_probe_helper.c +--- linux-4.1.23.orig/drivers/gpu/drm/drm_probe_helper.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/gpu/drm/drm_probe_helper.c 2016-05-02 22:53:53.000000000 +0200 @@ -313,7 +313,7 @@ goto out; @@ -31113,9 +33853,158 @@ diff -Nur linux-4.1.22.orig/drivers/gpu/drm/drm_probe_helper.c linux-4.1.22/driv /* Only handle HPD capable connectors. */ if (!(connector->polled & DRM_CONNECTOR_POLL_HPD)) -diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/Kconfig linux-4.1.22/drivers/gpu/drm/vc4/Kconfig ---- linux-4.1.22.orig/drivers/gpu/drm/vc4/Kconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/gpu/drm/vc4/Kconfig 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/gma500/gem.c linux-4.1.23/drivers/gpu/drm/gma500/gem.c +--- linux-4.1.23.orig/drivers/gpu/drm/gma500/gem.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/gpu/drm/gma500/gem.c 2016-05-02 22:53:53.000000000 +0200 +@@ -130,7 +130,7 @@ + return ret; + } + /* We have the initial and handle reference but need only one now */ +- drm_gem_object_unreference_unlocked(&r->gem); ++ drm_gem_object_unreference(&r->gem); + *handlep = handle; + return 0; + } +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/radeon/atombios_encoders.c linux-4.1.23/drivers/gpu/drm/radeon/atombios_encoders.c +--- linux-4.1.23.orig/drivers/gpu/drm/radeon/atombios_encoders.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/gpu/drm/radeon/atombios_encoders.c 2016-05-02 22:53:53.000000000 +0200 +@@ -892,6 +892,8 @@ + else + args.v1.ucLaneNum = 4; + ++ if (ENCODER_MODE_IS_DP(args.v1.ucEncoderMode) && (dp_clock == 270000)) ++ args.v1.ucConfig |= ATOM_ENCODER_CONFIG_DPLINKRATE_2_70GHZ; + switch (radeon_encoder->encoder_id) { + case ENCODER_OBJECT_ID_INTERNAL_UNIPHY: + args.v1.ucConfig = ATOM_ENCODER_CONFIG_V2_TRANSMITTER1; +@@ -908,10 +910,6 @@ + args.v1.ucConfig |= ATOM_ENCODER_CONFIG_LINKB; + else + args.v1.ucConfig |= ATOM_ENCODER_CONFIG_LINKA; +- +- if (ENCODER_MODE_IS_DP(args.v1.ucEncoderMode) && (dp_clock == 270000)) +- args.v1.ucConfig |= ATOM_ENCODER_CONFIG_DPLINKRATE_2_70GHZ; +- + break; + case 2: + case 3: +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/radeon/radeon_atpx_handler.c linux-4.1.23/drivers/gpu/drm/radeon/radeon_atpx_handler.c +--- linux-4.1.23.orig/drivers/gpu/drm/radeon/radeon_atpx_handler.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/gpu/drm/radeon/radeon_atpx_handler.c 2016-05-02 22:53:53.000000000 +0200 +@@ -62,10 +62,6 @@ + return radeon_atpx_priv.atpx_detected; + } + +-bool radeon_has_atpx_dgpu_power_cntl(void) { +- return radeon_atpx_priv.atpx.functions.power_cntl; +-} +- + /** + * radeon_atpx_call - call an ATPX method + * +@@ -145,6 +141,10 @@ + */ + static int radeon_atpx_validate(struct radeon_atpx *atpx) + { ++ /* make sure required functions are enabled */ ++ /* dGPU power control is required */ ++ atpx->functions.power_cntl = true; ++ + if (atpx->functions.px_params) { + union acpi_object *info; + struct atpx_px_params output; +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/radeon/radeon_device.c linux-4.1.23/drivers/gpu/drm/radeon/radeon_device.c +--- linux-4.1.23.orig/drivers/gpu/drm/radeon/radeon_device.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/gpu/drm/radeon/radeon_device.c 2016-05-02 22:53:53.000000000 +0200 +@@ -103,12 +103,6 @@ + "LAST", + }; + +-#if defined(CONFIG_VGA_SWITCHEROO) +-bool radeon_has_atpx_dgpu_power_cntl(void); +-#else +-static inline bool radeon_has_atpx_dgpu_power_cntl(void) { return false; } +-#endif +- + #define RADEON_PX_QUIRK_DISABLE_PX (1 << 0) + #define RADEON_PX_QUIRK_LONG_WAKEUP (1 << 1) + +@@ -1433,7 +1427,7 @@ + * ignore it */ + vga_client_register(rdev->pdev, rdev, NULL, radeon_vga_set_decode); + +- if ((rdev->flags & RADEON_IS_PX) && radeon_has_atpx_dgpu_power_cntl()) ++ if (rdev->flags & RADEON_IS_PX) + runtime = true; + vga_switcheroo_register_client(rdev->pdev, &radeon_switcheroo_ops, runtime); + if (runtime) +@@ -1740,6 +1734,7 @@ + } + + drm_kms_helper_poll_enable(dev); ++ drm_helper_hpd_irq_event(dev); + + /* set the power state here in case we are a PX system or headless */ + if ((rdev->pm.pm_method == PM_METHOD_DPM) && rdev->pm.dpm_enabled) +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/radeon/radeon_fb.c linux-4.1.23/drivers/gpu/drm/radeon/radeon_fb.c +--- linux-4.1.23.orig/drivers/gpu/drm/radeon/radeon_fb.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/gpu/drm/radeon/radeon_fb.c 2016-05-02 22:53:53.000000000 +0200 +@@ -333,8 +333,7 @@ + + void radeon_fb_output_poll_changed(struct radeon_device *rdev) + { +- if (rdev->mode_info.rfbdev) +- drm_fb_helper_hotplug_event(&rdev->mode_info.rfbdev->helper); ++ drm_fb_helper_hotplug_event(&rdev->mode_info.rfbdev->helper); + } + + static int radeon_fbdev_destroy(struct drm_device *dev, struct radeon_fbdev *rfbdev) +@@ -374,10 +373,6 @@ + int bpp_sel = 32; + int ret; + +- /* don't enable fbdev if no connectors */ +- if (list_empty(&rdev->ddev->mode_config.connector_list)) +- return 0; +- + /* select 8 bpp console on RN50 or 16MB cards */ + if (ASIC_IS_RN50(rdev) || rdev->mc.real_vram_size <= (32*1024*1024)) + bpp_sel = 8; +@@ -430,15 +425,11 @@ + + void radeon_fbdev_set_suspend(struct radeon_device *rdev, int state) + { +- if (rdev->mode_info.rfbdev) +- fb_set_suspend(rdev->mode_info.rfbdev->helper.fbdev, state); ++ fb_set_suspend(rdev->mode_info.rfbdev->helper.fbdev, state); + } + + bool radeon_fbdev_robj_is_fb(struct radeon_device *rdev, struct radeon_bo *robj) + { +- if (!rdev->mode_info.rfbdev) +- return false; +- + if (robj == gem_to_radeon_bo(rdev->mode_info.rfbdev->rfb.obj)) + return true; + return false; +@@ -446,12 +437,10 @@ + + void radeon_fb_add_connector(struct radeon_device *rdev, struct drm_connector *connector) + { +- if (rdev->mode_info.rfbdev) +- drm_fb_helper_add_one_connector(&rdev->mode_info.rfbdev->helper, connector); ++ drm_fb_helper_add_one_connector(&rdev->mode_info.rfbdev->helper, connector); + } + + void radeon_fb_remove_connector(struct radeon_device *rdev, struct drm_connector *connector) + { +- if (rdev->mode_info.rfbdev) +- drm_fb_helper_remove_one_connector(&rdev->mode_info.rfbdev->helper, connector); ++ drm_fb_helper_remove_one_connector(&rdev->mode_info.rfbdev->helper, connector); + } +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/vc4/Kconfig linux-4.1.23/drivers/gpu/drm/vc4/Kconfig +--- linux-4.1.23.orig/drivers/gpu/drm/vc4/Kconfig 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/gpu/drm/vc4/Kconfig 2016-05-02 22:53:53.000000000 +0200 @@ -0,0 +1,14 @@ +config DRM_VC4 + tristate "Broadcom VC4 Graphics" @@ -31131,9 +34020,9 @@ diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/Kconfig linux-4.1.22/drivers/gpu + This driver requires that "avoid_warnings=2" be present in + the config.txt for the firmware, to keep it from smashing + our display setup. -diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/Makefile linux-4.1.22/drivers/gpu/drm/vc4/Makefile ---- linux-4.1.22.orig/drivers/gpu/drm/vc4/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/gpu/drm/vc4/Makefile 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/vc4/Makefile linux-4.1.23/drivers/gpu/drm/vc4/Makefile +--- linux-4.1.23.orig/drivers/gpu/drm/vc4/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/gpu/drm/vc4/Makefile 2016-05-02 22:53:53.000000000 +0200 @@ -0,0 +1,26 @@ +ccflags-y := -Iinclude/drm + @@ -31161,9 +34050,9 @@ diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/Makefile linux-4.1.22/drivers/gp +obj-$(CONFIG_DRM_VC4) += vc4.o + +CFLAGS_vc4_trace_points.o := -I$(src) -diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_bo.c linux-4.1.22/drivers/gpu/drm/vc4/vc4_bo.c ---- linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_bo.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/gpu/drm/vc4/vc4_bo.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_bo.c linux-4.1.23/drivers/gpu/drm/vc4/vc4_bo.c +--- linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_bo.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/gpu/drm/vc4/vc4_bo.c 2016-05-02 22:53:53.000000000 +0200 @@ -0,0 +1,577 @@ +/* + * Copyright © 2015 Broadcom @@ -31742,9 +34631,9 @@ diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_bo.c linux-4.1.22/drivers/gp + vc4_bo_stats_dump(vc4); + } +} -diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_crtc.c linux-4.1.22/drivers/gpu/drm/vc4/vc4_crtc.c ---- linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_crtc.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/gpu/drm/vc4/vc4_crtc.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_crtc.c linux-4.1.23/drivers/gpu/drm/vc4/vc4_crtc.c +--- linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_crtc.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/gpu/drm/vc4/vc4_crtc.c 2016-05-02 22:53:53.000000000 +0200 @@ -0,0 +1,769 @@ +/* + * Copyright (C) 2015 Broadcom @@ -32515,9 +35404,9 @@ diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_crtc.c linux-4.1.22/drivers/ + .of_match_table = vc4_crtc_dt_match, + }, +}; -diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_debugfs.c linux-4.1.22/drivers/gpu/drm/vc4/vc4_debugfs.c ---- linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_debugfs.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/gpu/drm/vc4/vc4_debugfs.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_debugfs.c linux-4.1.23/drivers/gpu/drm/vc4/vc4_debugfs.c +--- linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_debugfs.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/gpu/drm/vc4/vc4_debugfs.c 2016-05-02 22:53:53.000000000 +0200 @@ -0,0 +1,43 @@ +/* + * Copyright © 2014 Broadcom @@ -32562,9 +35451,9 @@ diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_debugfs.c linux-4.1.22/drive +{ + drm_debugfs_remove_files(vc4_debugfs_list, VC4_DEBUGFS_ENTRIES, minor); +} -diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_drv.c linux-4.1.22/drivers/gpu/drm/vc4/vc4_drv.c ---- linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_drv.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/gpu/drm/vc4/vc4_drv.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_drv.c linux-4.1.23/drivers/gpu/drm/vc4/vc4_drv.c +--- linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_drv.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/gpu/drm/vc4/vc4_drv.c 2016-05-02 22:53:53.000000000 +0200 @@ -0,0 +1,331 @@ +/* + * Copyright (C) 2014-2015 Broadcom @@ -32897,9 +35786,9 @@ diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_drv.c linux-4.1.22/drivers/g +MODULE_DESCRIPTION("Broadcom VC4 DRM Driver"); +MODULE_AUTHOR("Eric Anholt <eric@anholt.net>"); +MODULE_LICENSE("GPL v2"); -diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_drv.h linux-4.1.22/drivers/gpu/drm/vc4/vc4_drv.h ---- linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_drv.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/gpu/drm/vc4/vc4_drv.h 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_drv.h linux-4.1.23/drivers/gpu/drm/vc4/vc4_drv.h +--- linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_drv.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/gpu/drm/vc4/vc4_drv.h 2016-05-02 22:53:53.000000000 +0200 @@ -0,0 +1,463 @@ +/* + * Copyright (C) 2015 Broadcom @@ -33364,9 +36253,9 @@ diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_drv.h linux-4.1.22/drivers/g +/* vc4_validate_shader.c */ +struct vc4_validated_shader_info * +vc4_validate_shader(struct drm_gem_cma_object *shader_obj); -diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_gem.c linux-4.1.22/drivers/gpu/drm/vc4/vc4_gem.c ---- linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_gem.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/gpu/drm/vc4/vc4_gem.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_gem.c linux-4.1.23/drivers/gpu/drm/vc4/vc4_gem.c +--- linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_gem.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/gpu/drm/vc4/vc4_gem.c 2016-05-02 22:53:53.000000000 +0200 @@ -0,0 +1,879 @@ +/* + * Copyright © 2014 Broadcom @@ -34247,9 +37136,9 @@ diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_gem.c linux-4.1.22/drivers/g + if (vc4->hang_state) + vc4_free_hang_state(dev, vc4->hang_state); +} -diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_hdmi.c linux-4.1.22/drivers/gpu/drm/vc4/vc4_hdmi.c ---- linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_hdmi.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/gpu/drm/vc4/vc4_hdmi.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_hdmi.c linux-4.1.23/drivers/gpu/drm/vc4/vc4_hdmi.c +--- linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_hdmi.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/gpu/drm/vc4/vc4_hdmi.c 2016-05-02 22:53:53.000000000 +0200 @@ -0,0 +1,592 @@ +/* + * Copyright (C) 2015 Broadcom @@ -34843,9 +37732,9 @@ diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_hdmi.c linux-4.1.22/drivers/ + .of_match_table = vc4_hdmi_dt_match, + }, +}; -diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_hvs.c linux-4.1.22/drivers/gpu/drm/vc4/vc4_hvs.c ---- linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_hvs.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/gpu/drm/vc4/vc4_hvs.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_hvs.c linux-4.1.23/drivers/gpu/drm/vc4/vc4_hvs.c +--- linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_hvs.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/gpu/drm/vc4/vc4_hvs.c 2016-05-02 22:53:53.000000000 +0200 @@ -0,0 +1,163 @@ +/* + * Copyright (C) 2015 Broadcom @@ -35010,9 +37899,9 @@ diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_hvs.c linux-4.1.22/drivers/g + .of_match_table = vc4_hvs_dt_match, + }, +}; -diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_irq.c linux-4.1.22/drivers/gpu/drm/vc4/vc4_irq.c ---- linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_irq.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/gpu/drm/vc4/vc4_irq.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_irq.c linux-4.1.23/drivers/gpu/drm/vc4/vc4_irq.c +--- linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_irq.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/gpu/drm/vc4/vc4_irq.c 2016-05-02 22:53:53.000000000 +0200 @@ -0,0 +1,210 @@ +/* + * Copyright © 2014 Broadcom @@ -35224,9 +38113,9 @@ diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_irq.c linux-4.1.22/drivers/g + vc4_irq_finish_job(dev); + spin_unlock_irqrestore(&vc4->job_lock, irqflags); +} -diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_kms.c linux-4.1.22/drivers/gpu/drm/vc4/vc4_kms.c ---- linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_kms.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/gpu/drm/vc4/vc4_kms.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_kms.c linux-4.1.23/drivers/gpu/drm/vc4/vc4_kms.c +--- linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_kms.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/gpu/drm/vc4/vc4_kms.c 2016-05-02 22:53:53.000000000 +0200 @@ -0,0 +1,214 @@ +/* + * Copyright (C) 2015 Broadcom @@ -35442,9 +38331,9 @@ diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_kms.c linux-4.1.22/drivers/g + + return 0; +} -diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_packet.h linux-4.1.22/drivers/gpu/drm/vc4/vc4_packet.h ---- linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_packet.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/gpu/drm/vc4/vc4_packet.h 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_packet.h linux-4.1.23/drivers/gpu/drm/vc4/vc4_packet.h +--- linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_packet.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/gpu/drm/vc4/vc4_packet.h 2016-05-02 22:53:53.000000000 +0200 @@ -0,0 +1,399 @@ +/* + * Copyright © 2014 Broadcom @@ -35845,9 +38734,9 @@ diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_packet.h linux-4.1.22/driver +#define VC4_TEX_P2_CXOFF_SHIFT 0 + +#endif /* VC4_PACKET_H */ -diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_plane.c linux-4.1.22/drivers/gpu/drm/vc4/vc4_plane.c ---- linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_plane.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/gpu/drm/vc4/vc4_plane.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_plane.c linux-4.1.23/drivers/gpu/drm/vc4/vc4_plane.c +--- linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_plane.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/gpu/drm/vc4/vc4_plane.c 2016-05-02 22:53:53.000000000 +0200 @@ -0,0 +1,386 @@ +/* + * Copyright (C) 2015 Broadcom @@ -36235,9 +39124,9 @@ diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_plane.c linux-4.1.22/drivers + + return ERR_PTR(ret); +} -diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_qpu_defines.h linux-4.1.22/drivers/gpu/drm/vc4/vc4_qpu_defines.h ---- linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_qpu_defines.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/gpu/drm/vc4/vc4_qpu_defines.h 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_qpu_defines.h linux-4.1.23/drivers/gpu/drm/vc4/vc4_qpu_defines.h +--- linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_qpu_defines.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/gpu/drm/vc4/vc4_qpu_defines.h 2016-05-02 22:53:53.000000000 +0200 @@ -0,0 +1,264 @@ +/* + * Copyright © 2014 Broadcom @@ -36503,9 +39392,9 @@ diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_qpu_defines.h linux-4.1.22/d +#define QPU_OP_ADD_MASK QPU_MASK(28, 24) + +#endif /* VC4_QPU_DEFINES_H */ -diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_regs.h linux-4.1.22/drivers/gpu/drm/vc4/vc4_regs.h ---- linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_regs.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/gpu/drm/vc4/vc4_regs.h 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_regs.h linux-4.1.23/drivers/gpu/drm/vc4/vc4_regs.h +--- linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_regs.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/gpu/drm/vc4/vc4_regs.h 2016-05-02 22:53:53.000000000 +0200 @@ -0,0 +1,570 @@ +/* + * Copyright © 2014-2015 Broadcom @@ -37077,9 +39966,9 @@ diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_regs.h linux-4.1.22/drivers/ +#define SCALER_SRC_PITCH_SHIFT 0 + +#endif /* VC4_REGS_H */ -diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_render_cl.c linux-4.1.22/drivers/gpu/drm/vc4/vc4_render_cl.c ---- linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_render_cl.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/gpu/drm/vc4/vc4_render_cl.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_render_cl.c linux-4.1.23/drivers/gpu/drm/vc4/vc4_render_cl.c +--- linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_render_cl.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/gpu/drm/vc4/vc4_render_cl.c 2016-05-02 22:53:53.000000000 +0200 @@ -0,0 +1,634 @@ +/* + * Copyright © 2014-2015 Broadcom @@ -37715,9 +40604,9 @@ diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_render_cl.c linux-4.1.22/dri + + return vc4_create_rcl_bo(dev, exec, &setup); +} -diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_trace.h linux-4.1.22/drivers/gpu/drm/vc4/vc4_trace.h ---- linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_trace.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/gpu/drm/vc4/vc4_trace.h 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_trace.h linux-4.1.23/drivers/gpu/drm/vc4/vc4_trace.h +--- linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_trace.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/gpu/drm/vc4/vc4_trace.h 2016-05-02 22:53:53.000000000 +0200 @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2015 Broadcom @@ -37782,9 +40671,9 @@ diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_trace.h linux-4.1.22/drivers +#undef TRACE_INCLUDE_PATH +#define TRACE_INCLUDE_PATH . +#include <trace/define_trace.h> -diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_trace_points.c linux-4.1.22/drivers/gpu/drm/vc4/vc4_trace_points.c ---- linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_trace_points.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/gpu/drm/vc4/vc4_trace_points.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_trace_points.c linux-4.1.23/drivers/gpu/drm/vc4/vc4_trace_points.c +--- linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_trace_points.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/gpu/drm/vc4/vc4_trace_points.c 2016-05-02 22:53:53.000000000 +0200 @@ -0,0 +1,14 @@ +/* + * Copyright (C) 2015 Broadcom @@ -37800,9 +40689,9 @@ diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_trace_points.c linux-4.1.22/ +#define CREATE_TRACE_POINTS +#include "vc4_trace.h" +#endif -diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_v3d.c linux-4.1.22/drivers/gpu/drm/vc4/vc4_v3d.c ---- linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_v3d.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/gpu/drm/vc4/vc4_v3d.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_v3d.c linux-4.1.23/drivers/gpu/drm/vc4/vc4_v3d.c +--- linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_v3d.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/gpu/drm/vc4/vc4_v3d.c 2016-05-02 22:53:53.000000000 +0200 @@ -0,0 +1,270 @@ +/* + * Copyright (c) 2014 The Linux Foundation. All rights reserved. @@ -38074,9 +40963,9 @@ diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_v3d.c linux-4.1.22/drivers/g + .of_match_table = vc4_v3d_dt_match, + }, +}; -diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_validate.c linux-4.1.22/drivers/gpu/drm/vc4/vc4_validate.c ---- linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_validate.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/gpu/drm/vc4/vc4_validate.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_validate.c linux-4.1.23/drivers/gpu/drm/vc4/vc4_validate.c +--- linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_validate.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/gpu/drm/vc4/vc4_validate.c 2016-05-02 22:53:53.000000000 +0200 @@ -0,0 +1,900 @@ +/* + * Copyright © 2014 Broadcom @@ -38978,9 +41867,9 @@ diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_validate.c linux-4.1.22/driv + + return ret; +} -diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_validate_shaders.c linux-4.1.22/drivers/gpu/drm/vc4/vc4_validate_shaders.c ---- linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_validate_shaders.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/gpu/drm/vc4/vc4_validate_shaders.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_validate_shaders.c linux-4.1.23/drivers/gpu/drm/vc4/vc4_validate_shaders.c +--- linux-4.1.23.orig/drivers/gpu/drm/vc4/vc4_validate_shaders.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/gpu/drm/vc4/vc4_validate_shaders.c 2016-05-02 22:53:53.000000000 +0200 @@ -0,0 +1,513 @@ +/* + * Copyright © 2014 Broadcom @@ -39495,9 +42384,82 @@ diff -Nur linux-4.1.22.orig/drivers/gpu/drm/vc4/vc4_validate_shaders.c linux-4.1 + } + return NULL; +} -diff -Nur linux-4.1.22.orig/drivers/hid/usbhid/hid-core.c linux-4.1.22/drivers/hid/usbhid/hid-core.c ---- linux-4.1.22.orig/drivers/hid/usbhid/hid-core.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/hid/usbhid/hid-core.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/hid/hid-core.c linux-4.1.23/drivers/hid/hid-core.c +--- linux-4.1.23.orig/drivers/hid/hid-core.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/hid/hid-core.c 2016-05-02 22:53:53.000000000 +0200 +@@ -2584,10 +2584,9 @@ + /* + * Scan generic devices for group information + */ +- if (hid_ignore_special_drivers) { +- hdev->group = HID_GROUP_GENERIC; +- } else if (!hdev->group && +- !hid_match_id(hdev, hid_have_special_driver)) { ++ if (hid_ignore_special_drivers || ++ (!hdev->group && ++ !hid_match_id(hdev, hid_have_special_driver))) { + ret = hid_scan_report(hdev); + if (ret) + hid_warn(hdev, "bad device descriptor (%d)\n", ret); +diff -Nur linux-4.1.23.orig/drivers/hid/hid-multitouch.c linux-4.1.23/drivers/hid/hid-multitouch.c +--- linux-4.1.23.orig/drivers/hid/hid-multitouch.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/hid/hid-multitouch.c 2016-05-02 22:53:53.000000000 +0200 +@@ -322,19 +322,8 @@ + break; + } + +- if (td->inputmode < 0) { +- td->inputmode = field->report->id; +- td->inputmode_index = usage->usage_index; +- } else { +- /* +- * Some elan panels wrongly declare 2 input mode +- * features, and silently ignore when we set the +- * value in the second field. Skip the second feature +- * and hope for the best. +- */ +- dev_info(&hdev->dev, +- "Ignoring the extra HID_DG_INPUTMODE\n"); +- } ++ td->inputmode = field->report->id; ++ td->inputmode_index = usage->usage_index; + + break; + case HID_DG_CONTACTMAX: +diff -Nur linux-4.1.23.orig/drivers/hid/i2c-hid/i2c-hid.c linux-4.1.23/drivers/hid/i2c-hid/i2c-hid.c +--- linux-4.1.23.orig/drivers/hid/i2c-hid/i2c-hid.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/hid/i2c-hid/i2c-hid.c 2016-05-02 22:53:53.000000000 +0200 +@@ -280,21 +280,17 @@ + u16 dataRegister = le16_to_cpu(ihid->hdesc.wDataRegister); + u16 outputRegister = le16_to_cpu(ihid->hdesc.wOutputRegister); + u16 maxOutputLength = le16_to_cpu(ihid->hdesc.wMaxOutputLength); +- u16 size; +- int args_len; +- int index = 0; +- +- i2c_hid_dbg(ihid, "%s\n", __func__); +- +- if (data_len > ihid->bufsize) +- return -EINVAL; + +- size = 2 /* size */ + ++ /* hid_hw_* already checked that data_len < HID_MAX_BUFFER_SIZE */ ++ u16 size = 2 /* size */ + + (reportID ? 1 : 0) /* reportID */ + + data_len /* buf */; +- args_len = (reportID >= 0x0F ? 1 : 0) /* optional third byte */ + ++ int args_len = (reportID >= 0x0F ? 1 : 0) /* optional third byte */ + + 2 /* dataRegister */ + + size /* args */; ++ int index = 0; ++ ++ i2c_hid_dbg(ihid, "%s\n", __func__); + + if (!use_data && maxOutputLength == 0) + return -ENOSYS; +diff -Nur linux-4.1.23.orig/drivers/hid/usbhid/hid-core.c linux-4.1.23/drivers/hid/usbhid/hid-core.c +--- linux-4.1.23.orig/drivers/hid/usbhid/hid-core.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/hid/usbhid/hid-core.c 2016-05-02 22:53:53.000000000 +0200 @@ -49,7 +49,7 @@ * Module parameters. */ @@ -39507,7 +42469,25 @@ diff -Nur linux-4.1.22.orig/drivers/hid/usbhid/hid-core.c linux-4.1.22/drivers/h module_param_named(mousepoll, hid_mousepoll_interval, uint, 0644); MODULE_PARM_DESC(mousepoll, "Polling interval of mice"); -@@ -1090,8 +1090,12 @@ +@@ -477,6 +477,8 @@ + struct usbhid_device *usbhid = hid->driver_data; + int unplug = 0, status = urb->status; + ++ spin_lock(&usbhid->lock); ++ + switch (status) { + case 0: /* success */ + if (usbhid->ctrl[usbhid->ctrltail].dir == USB_DIR_IN) +@@ -496,8 +498,6 @@ + hid_warn(urb->dev, "ctrl urb status %d received\n", status); + } + +- spin_lock(&usbhid->lock); +- + if (unplug) { + usbhid->ctrltail = usbhid->ctrlhead; + } else { +@@ -1082,8 +1082,12 @@ } /* Change the polling interval of mice. */ @@ -39522,9 +42502,9 @@ diff -Nur linux-4.1.22.orig/drivers/hid/usbhid/hid-core.c linux-4.1.22/drivers/h ret = -ENOMEM; if (usb_endpoint_dir_in(endpoint)) { -diff -Nur linux-4.1.22.orig/drivers/i2c/busses/Kconfig linux-4.1.22/drivers/i2c/busses/Kconfig ---- linux-4.1.22.orig/drivers/i2c/busses/Kconfig 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/i2c/busses/Kconfig 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/i2c/busses/Kconfig linux-4.1.23/drivers/i2c/busses/Kconfig +--- linux-4.1.23.orig/drivers/i2c/busses/Kconfig 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/i2c/busses/Kconfig 2016-05-02 22:53:53.000000000 +0200 @@ -8,6 +8,25 @@ comment "PC SMBus host controller drivers" depends on PCI @@ -39560,9 +42540,9 @@ diff -Nur linux-4.1.22.orig/drivers/i2c/busses/Kconfig linux-4.1.22/drivers/i2c/ help If you say yes to this option, support will be included for the BCM2835 I2C controller. -diff -Nur linux-4.1.22.orig/drivers/i2c/busses/Makefile linux-4.1.22/drivers/i2c/busses/Makefile ---- linux-4.1.22.orig/drivers/i2c/busses/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/i2c/busses/Makefile 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/i2c/busses/Makefile linux-4.1.23/drivers/i2c/busses/Makefile +--- linux-4.1.23.orig/drivers/i2c/busses/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/i2c/busses/Makefile 2016-05-02 22:53:53.000000000 +0200 @@ -2,6 +2,8 @@ # Makefile for the i2c bus drivers. # @@ -39572,9 +42552,9 @@ diff -Nur linux-4.1.22.orig/drivers/i2c/busses/Makefile linux-4.1.22/drivers/i2c # ACPI drivers obj-$(CONFIG_I2C_SCMI) += i2c-scmi.o -diff -Nur linux-4.1.22.orig/drivers/i2c/busses/i2c-bcm2708.c linux-4.1.22/drivers/i2c/busses/i2c-bcm2708.c ---- linux-4.1.22.orig/drivers/i2c/busses/i2c-bcm2708.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/i2c/busses/i2c-bcm2708.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/i2c/busses/i2c-bcm2708.c linux-4.1.23/drivers/i2c/busses/i2c-bcm2708.c +--- linux-4.1.23.orig/drivers/i2c/busses/i2c-bcm2708.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/i2c/busses/i2c-bcm2708.c 2016-05-02 22:53:53.000000000 +0200 @@ -0,0 +1,539 @@ +/* + * Driver for Broadcom BCM2708 BSC Controllers @@ -40115,9 +43095,242 @@ diff -Nur linux-4.1.22.orig/drivers/i2c/busses/i2c-bcm2708.c linux-4.1.22/driver +MODULE_AUTHOR("Chris Boot <bootc@bootc.net>"); +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:" DRV_NAME); -diff -Nur linux-4.1.22.orig/drivers/input/joystick/Kconfig linux-4.1.22/drivers/input/joystick/Kconfig ---- linux-4.1.22.orig/drivers/input/joystick/Kconfig 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/input/joystick/Kconfig 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/iio/dac/mcp4725.c linux-4.1.23/drivers/iio/dac/mcp4725.c +--- linux-4.1.23.orig/drivers/iio/dac/mcp4725.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/iio/dac/mcp4725.c 2016-05-02 22:53:53.000000000 +0200 +@@ -300,7 +300,6 @@ + data->client = client; + + indio_dev->dev.parent = &client->dev; +- indio_dev->name = id->name; + indio_dev->info = &mcp4725_info; + indio_dev->channels = &mcp4725_channel; + indio_dev->num_channels = 1; +diff -Nur linux-4.1.23.orig/drivers/iio/imu/adis_buffer.c linux-4.1.23/drivers/iio/imu/adis_buffer.c +--- linux-4.1.23.orig/drivers/iio/imu/adis_buffer.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/iio/imu/adis_buffer.c 2016-05-02 22:53:53.000000000 +0200 +@@ -43,7 +43,7 @@ + return -ENOMEM; + + rx = adis->buffer; +- tx = rx + scan_count; ++ tx = rx + indio_dev->scan_bytes; + + spi_message_init(&adis->msg); + +diff -Nur linux-4.1.23.orig/drivers/iio/pressure/mpl115.c linux-4.1.23/drivers/iio/pressure/mpl115.c +--- linux-4.1.23.orig/drivers/iio/pressure/mpl115.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/iio/pressure/mpl115.c 2016-05-02 22:53:53.000000000 +0200 +@@ -117,7 +117,7 @@ + *val = ret >> 6; + return IIO_VAL_INT; + case IIO_CHAN_INFO_OFFSET: +- *val = -605; ++ *val = 605; + *val2 = 750000; + return IIO_VAL_INT_PLUS_MICRO; + case IIO_CHAN_INFO_SCALE: +diff -Nur linux-4.1.23.orig/drivers/infiniband/hw/cxgb3/iwch_cm.c linux-4.1.23/drivers/infiniband/hw/cxgb3/iwch_cm.c +--- linux-4.1.23.orig/drivers/infiniband/hw/cxgb3/iwch_cm.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/infiniband/hw/cxgb3/iwch_cm.c 2016-05-02 22:53:53.000000000 +0200 +@@ -149,7 +149,7 @@ + error = l2t_send(tdev, skb, l2e); + if (error < 0) + kfree_skb(skb); +- return error < 0 ? error : 0; ++ return error; + } + + int iwch_cxgb3_ofld_send(struct t3cdev *tdev, struct sk_buff *skb) +@@ -165,7 +165,7 @@ + error = cxgb3_ofld_send(tdev, skb); + if (error < 0) + kfree_skb(skb); +- return error < 0 ? error : 0; ++ return error; + } + + static void release_tid(struct t3cdev *tdev, u32 hwtid, struct sk_buff *skb) +diff -Nur linux-4.1.23.orig/drivers/infiniband/ulp/isert/ib_isert.c linux-4.1.23/drivers/infiniband/ulp/isert/ib_isert.c +--- linux-4.1.23.orig/drivers/infiniband/ulp/isert/ib_isert.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/infiniband/ulp/isert/ib_isert.c 2016-05-02 22:53:53.000000000 +0200 +@@ -865,7 +865,7 @@ + * @isert_conn: isert connection struct + * + * Notes: +- * In case the connection state is BOUND, move state ++ * In case the connection state is FULL_FEATURE, move state + * to TEMINATING and start teardown sequence (rdma_disconnect). + * In case the connection state is UP, complete flush as well. + * +@@ -881,7 +881,6 @@ + case ISER_CONN_TERMINATING: + break; + case ISER_CONN_UP: +- case ISER_CONN_BOUND: + case ISER_CONN_FULL_FEATURE: /* FALLTHRU */ + isert_info("Terminating conn %p state %d\n", + isert_conn, isert_conn->state); +@@ -928,9 +927,14 @@ + enum rdma_cm_event_type event) + { + struct isert_np *isert_np = cma_id->context; +- struct isert_conn *isert_conn = cma_id->qp->qp_context; ++ struct isert_conn *isert_conn; + bool terminating = false; + ++ if (isert_np->np_cm_id == cma_id) ++ return isert_np_cma_handler(cma_id->context, event); ++ ++ isert_conn = cma_id->qp->qp_context; ++ + mutex_lock(&isert_conn->mutex); + terminating = (isert_conn->state == ISER_CONN_TERMINATING); + isert_conn_terminate(isert_conn); +@@ -968,15 +972,11 @@ + static int + isert_cma_handler(struct rdma_cm_id *cma_id, struct rdma_cm_event *event) + { +- struct isert_np *isert_np = cma_id->context; + int ret = 0; + + isert_info("event %d status %d id %p np %p\n", event->event, + event->status, cma_id, cma_id->context); + +- if (isert_np->np_cm_id == cma_id) +- return isert_np_cma_handler(cma_id->context, event->event); +- + switch (event->event) { + case RDMA_CM_EVENT_CONNECT_REQUEST: + ret = isert_connect_request(cma_id, event); +@@ -2059,8 +2059,7 @@ + void *start = isert_conn->rx_descs; + int len = ISERT_QP_MAX_RECV_DTOS * sizeof(*isert_conn->rx_descs); + +- if ((wr_id >= start && wr_id < start + len) || +- (wr_id == isert_conn->login_req_buf)) ++ if (wr_id >= start && wr_id < start + len) + return false; + + return true; +@@ -2086,8 +2085,7 @@ + isert_completion_put(desc, isert_cmd, ib_dev, true); + } else { + isert_conn->post_recv_buf_count--; +- if (!isert_conn->post_recv_buf_count && +- isert_conn->state >= ISER_CONN_BOUND) ++ if (!isert_conn->post_recv_buf_count) + iscsit_cause_connection_reinstatement(isert_conn->conn, 0); + } + } +@@ -3270,7 +3268,6 @@ + + conn->context = isert_conn; + isert_conn->conn = conn; +- isert_conn->state = ISER_CONN_BOUND; + + isert_set_conn_info(np, conn, isert_conn); + +diff -Nur linux-4.1.23.orig/drivers/infiniband/ulp/isert/ib_isert.h linux-4.1.23/drivers/infiniband/ulp/isert/ib_isert.h +--- linux-4.1.23.orig/drivers/infiniband/ulp/isert/ib_isert.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/infiniband/ulp/isert/ib_isert.h 2016-05-02 22:53:53.000000000 +0200 +@@ -50,7 +50,6 @@ + enum iser_conn_state { + ISER_CONN_INIT, + ISER_CONN_UP, +- ISER_CONN_BOUND, + ISER_CONN_FULL_FEATURE, + ISER_CONN_TERMINATING, + ISER_CONN_DOWN, +diff -Nur linux-4.1.23.orig/drivers/infiniband/ulp/srpt/ib_srpt.c linux-4.1.23/drivers/infiniband/ulp/srpt/ib_srpt.c +--- linux-4.1.23.orig/drivers/infiniband/ulp/srpt/ib_srpt.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/infiniband/ulp/srpt/ib_srpt.c 2016-05-02 22:53:53.000000000 +0200 +@@ -1742,6 +1742,47 @@ + return -1; + } + ++/** ++ * srpt_rx_mgmt_fn_tag() - Process a task management function by tag. ++ * @ch: RDMA channel of the task management request. ++ * @fn: Task management function to perform. ++ * @req_tag: Tag of the SRP task management request. ++ * @mgmt_ioctx: I/O context of the task management request. ++ * ++ * Returns zero if the target core will process the task management ++ * request asynchronously. ++ * ++ * Note: It is assumed that the initiator serializes tag-based task management ++ * requests. ++ */ ++static int srpt_rx_mgmt_fn_tag(struct srpt_send_ioctx *ioctx, u64 tag) ++{ ++ struct srpt_device *sdev; ++ struct srpt_rdma_ch *ch; ++ struct srpt_send_ioctx *target; ++ int ret, i; ++ ++ ret = -EINVAL; ++ ch = ioctx->ch; ++ BUG_ON(!ch); ++ BUG_ON(!ch->sport); ++ sdev = ch->sport->sdev; ++ BUG_ON(!sdev); ++ spin_lock_irq(&sdev->spinlock); ++ for (i = 0; i < ch->rq_size; ++i) { ++ target = ch->ioctx_ring[i]; ++ if (target->cmd.se_lun == ioctx->cmd.se_lun && ++ target->tag == tag && ++ srpt_get_cmd_state(target) != SRPT_STATE_DONE) { ++ ret = 0; ++ /* now let the target core abort &target->cmd; */ ++ break; ++ } ++ } ++ spin_unlock_irq(&sdev->spinlock); ++ return ret; ++} ++ + static int srp_tmr_to_tcm(int fn) + { + switch (fn) { +@@ -1776,6 +1817,7 @@ + struct se_cmd *cmd; + struct se_session *sess = ch->sess; + uint64_t unpacked_lun; ++ uint32_t tag = 0; + int tcm_tmr; + int rc; + +@@ -1791,10 +1833,25 @@ + srpt_set_cmd_state(send_ioctx, SRPT_STATE_MGMT); + send_ioctx->tag = srp_tsk->tag; + tcm_tmr = srp_tmr_to_tcm(srp_tsk->tsk_mgmt_func); ++ if (tcm_tmr < 0) { ++ send_ioctx->cmd.se_tmr_req->response = ++ TMR_TASK_MGMT_FUNCTION_NOT_SUPPORTED; ++ goto fail; ++ } + unpacked_lun = srpt_unpack_lun((uint8_t *)&srp_tsk->lun, + sizeof(srp_tsk->lun)); ++ ++ if (srp_tsk->tsk_mgmt_func == SRP_TSK_ABORT_TASK) { ++ rc = srpt_rx_mgmt_fn_tag(send_ioctx, srp_tsk->task_tag); ++ if (rc < 0) { ++ send_ioctx->cmd.se_tmr_req->response = ++ TMR_TASK_DOES_NOT_EXIST; ++ goto fail; ++ } ++ tag = srp_tsk->task_tag; ++ } + rc = target_submit_tmr(&send_ioctx->cmd, sess, NULL, unpacked_lun, +- srp_tsk, tcm_tmr, GFP_KERNEL, srp_tsk->task_tag, ++ srp_tsk, tcm_tmr, GFP_KERNEL, tag, + TARGET_SCF_ACK_KREF); + if (rc != 0) { + send_ioctx->cmd.se_tmr_req->response = TMR_FUNCTION_REJECTED; +diff -Nur linux-4.1.23.orig/drivers/input/joystick/Kconfig linux-4.1.23/drivers/input/joystick/Kconfig +--- linux-4.1.23.orig/drivers/input/joystick/Kconfig 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/input/joystick/Kconfig 2016-05-02 22:53:53.000000000 +0200 @@ -329,4 +329,12 @@ To compile this as a module choose M here: the module will be called maplecontrol. @@ -40131,18 +43344,18 @@ diff -Nur linux-4.1.22.orig/drivers/input/joystick/Kconfig linux-4.1.22/drivers/ + This is the joystick driver for the Raspberry Pi Sense HAT + endif -diff -Nur linux-4.1.22.orig/drivers/input/joystick/Makefile linux-4.1.22/drivers/input/joystick/Makefile ---- linux-4.1.22.orig/drivers/input/joystick/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/input/joystick/Makefile 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/input/joystick/Makefile linux-4.1.23/drivers/input/joystick/Makefile +--- linux-4.1.23.orig/drivers/input/joystick/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/input/joystick/Makefile 2016-05-02 22:53:53.000000000 +0200 @@ -32,4 +32,5 @@ obj-$(CONFIG_JOYSTICK_XPAD) += xpad.o obj-$(CONFIG_JOYSTICK_ZHENHUA) += zhenhua.o obj-$(CONFIG_JOYSTICK_WALKERA0701) += walkera0701.o +obj-$(CONFIG_JOYSTICK_RPISENSE) += rpisense-js.o -diff -Nur linux-4.1.22.orig/drivers/input/joystick/rpisense-js.c linux-4.1.22/drivers/input/joystick/rpisense-js.c ---- linux-4.1.22.orig/drivers/input/joystick/rpisense-js.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/input/joystick/rpisense-js.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/input/joystick/rpisense-js.c linux-4.1.23/drivers/input/joystick/rpisense-js.c +--- linux-4.1.23.orig/drivers/input/joystick/rpisense-js.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/input/joystick/rpisense-js.c 2016-05-02 22:53:53.000000000 +0200 @@ -0,0 +1,153 @@ +/* + * Raspberry Pi Sense HAT joystick driver @@ -40297,9 +43510,141 @@ diff -Nur linux-4.1.22.orig/drivers/input/joystick/rpisense-js.c linux-4.1.22/dr +MODULE_DESCRIPTION("Raspberry Pi Sense HAT joystick driver"); +MODULE_AUTHOR("Serge Schneider <serge@raspberrypi.org>"); +MODULE_LICENSE("GPL"); -diff -Nur linux-4.1.22.orig/drivers/input/touchscreen/Kconfig linux-4.1.22/drivers/input/touchscreen/Kconfig ---- linux-4.1.22.orig/drivers/input/touchscreen/Kconfig 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/input/touchscreen/Kconfig 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/input/misc/ati_remote2.c linux-4.1.23/drivers/input/misc/ati_remote2.c +--- linux-4.1.23.orig/drivers/input/misc/ati_remote2.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/input/misc/ati_remote2.c 2016-05-02 22:53:54.000000000 +0200 +@@ -817,49 +817,26 @@ + + ar2->udev = udev; + +- /* Sanity check, first interface must have an endpoint */ +- if (alt->desc.bNumEndpoints < 1 || !alt->endpoint) { +- dev_err(&interface->dev, +- "%s(): interface 0 must have an endpoint\n", __func__); +- r = -ENODEV; +- goto fail1; +- } + ar2->intf[0] = interface; + ar2->ep[0] = &alt->endpoint[0].desc; + +- /* Sanity check, the device must have two interfaces */ + ar2->intf[1] = usb_ifnum_to_if(udev, 1); +- if ((udev->actconfig->desc.bNumInterfaces < 2) || !ar2->intf[1]) { +- dev_err(&interface->dev, "%s(): need 2 interfaces, found %d\n", +- __func__, udev->actconfig->desc.bNumInterfaces); +- r = -ENODEV; +- goto fail1; +- } +- + r = usb_driver_claim_interface(&ati_remote2_driver, ar2->intf[1], ar2); + if (r) + goto fail1; +- +- /* Sanity check, second interface must have an endpoint */ + alt = ar2->intf[1]->cur_altsetting; +- if (alt->desc.bNumEndpoints < 1 || !alt->endpoint) { +- dev_err(&interface->dev, +- "%s(): interface 1 must have an endpoint\n", __func__); +- r = -ENODEV; +- goto fail2; +- } + ar2->ep[1] = &alt->endpoint[0].desc; + + r = ati_remote2_urb_init(ar2); + if (r) +- goto fail3; ++ goto fail2; + + ar2->channel_mask = channel_mask; + ar2->mode_mask = mode_mask; + + r = ati_remote2_setup(ar2, ar2->channel_mask); + if (r) +- goto fail3; ++ goto fail2; + + usb_make_path(udev, ar2->phys, sizeof(ar2->phys)); + strlcat(ar2->phys, "/input0", sizeof(ar2->phys)); +@@ -868,11 +845,11 @@ + + r = sysfs_create_group(&udev->dev.kobj, &ati_remote2_attr_group); + if (r) +- goto fail3; ++ goto fail2; + + r = ati_remote2_input_init(ar2); + if (r) +- goto fail4; ++ goto fail3; + + usb_set_intfdata(interface, ar2); + +@@ -880,11 +857,10 @@ + + return 0; + +- fail4: +- sysfs_remove_group(&udev->dev.kobj, &ati_remote2_attr_group); + fail3: +- ati_remote2_urb_cleanup(ar2); ++ sysfs_remove_group(&udev->dev.kobj, &ati_remote2_attr_group); + fail2: ++ ati_remote2_urb_cleanup(ar2); + usb_driver_release_interface(&ati_remote2_driver, ar2->intf[1]); + fail1: + kfree(ar2); +diff -Nur linux-4.1.23.orig/drivers/input/misc/ims-pcu.c linux-4.1.23/drivers/input/misc/ims-pcu.c +--- linux-4.1.23.orig/drivers/input/misc/ims-pcu.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/input/misc/ims-pcu.c 2016-05-02 22:53:54.000000000 +0200 +@@ -1663,8 +1663,6 @@ + + pcu->ctrl_intf = usb_ifnum_to_if(pcu->udev, + union_desc->bMasterInterface0); +- if (!pcu->ctrl_intf) +- return -EINVAL; + + alt = pcu->ctrl_intf->cur_altsetting; + pcu->ep_ctrl = &alt->endpoint[0].desc; +@@ -1672,8 +1670,6 @@ + + pcu->data_intf = usb_ifnum_to_if(pcu->udev, + union_desc->bSlaveInterface0); +- if (!pcu->data_intf) +- return -EINVAL; + + alt = pcu->data_intf->cur_altsetting; + if (alt->desc.bNumEndpoints != 2) { +diff -Nur linux-4.1.23.orig/drivers/input/misc/powermate.c linux-4.1.23/drivers/input/misc/powermate.c +--- linux-4.1.23.orig/drivers/input/misc/powermate.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/input/misc/powermate.c 2016-05-02 22:53:54.000000000 +0200 +@@ -307,9 +307,6 @@ + int error = -ENOMEM; + + interface = intf->cur_altsetting; +- if (interface->desc.bNumEndpoints < 1) +- return -EINVAL; +- + endpoint = &interface->endpoint[0].desc; + if (!usb_endpoint_is_int_in(endpoint)) + return -EIO; +diff -Nur linux-4.1.23.orig/drivers/input/mouse/synaptics.c linux-4.1.23/drivers/input/mouse/synaptics.c +--- linux-4.1.23.orig/drivers/input/mouse/synaptics.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/input/mouse/synaptics.c 2016-05-02 22:53:54.000000000 +0200 +@@ -862,9 +862,8 @@ + if (!SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap)) + return; + +- /* Bug in FW 8.1 & 8.2, buttons are reported only when ExtBit is 1 */ +- if ((SYN_ID_FULL(priv->identity) == 0x801 || +- SYN_ID_FULL(priv->identity) == 0x802) && ++ /* Bug in FW 8.1, buttons are reported only when ExtBit is 1 */ ++ if (SYN_ID_FULL(priv->identity) == 0x801 && + !((psmouse->packet[0] ^ psmouse->packet[3]) & 0x02)) + return; + +diff -Nur linux-4.1.23.orig/drivers/input/touchscreen/Kconfig linux-4.1.23/drivers/input/touchscreen/Kconfig +--- linux-4.1.23.orig/drivers/input/touchscreen/Kconfig 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/input/touchscreen/Kconfig 2016-05-02 22:53:54.000000000 +0200 @@ -295,6 +295,19 @@ To compile this driver as a module, choose M here: the module will be called egalax_ts. @@ -40334,9 +43679,9 @@ diff -Nur linux-4.1.22.orig/drivers/input/touchscreen/Kconfig linux-4.1.22/drive config TOUCHSCREEN_MIGOR tristate "Renesas MIGO-R touchscreen" depends on SH_MIGOR && I2C -diff -Nur linux-4.1.22.orig/drivers/input/touchscreen/Makefile linux-4.1.22/drivers/input/touchscreen/Makefile ---- linux-4.1.22.orig/drivers/input/touchscreen/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/input/touchscreen/Makefile 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/input/touchscreen/Makefile linux-4.1.23/drivers/input/touchscreen/Makefile +--- linux-4.1.23.orig/drivers/input/touchscreen/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/input/touchscreen/Makefile 2016-05-02 22:53:54.000000000 +0200 @@ -29,12 +29,14 @@ obj-$(CONFIG_TOUCHSCREEN_DA9052) += da9052_tsi.o obj-$(CONFIG_TOUCHSCREEN_DYNAPRO) += dynapro.o @@ -40352,9 +43697,9 @@ diff -Nur linux-4.1.22.orig/drivers/input/touchscreen/Makefile linux-4.1.22/driv obj-$(CONFIG_TOUCHSCREEN_FUJITSU) += fujitsu_ts.o obj-$(CONFIG_TOUCHSCREEN_GOODIX) += goodix.o obj-$(CONFIG_TOUCHSCREEN_ILI210X) += ili210x.o -diff -Nur linux-4.1.22.orig/drivers/input/touchscreen/ft6236.c linux-4.1.22/drivers/input/touchscreen/ft6236.c ---- linux-4.1.22.orig/drivers/input/touchscreen/ft6236.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/input/touchscreen/ft6236.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/input/touchscreen/ft6236.c linux-4.1.23/drivers/input/touchscreen/ft6236.c +--- linux-4.1.23.orig/drivers/input/touchscreen/ft6236.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/input/touchscreen/ft6236.c 2016-05-02 22:53:54.000000000 +0200 @@ -0,0 +1,326 @@ +/* + * FocalTech FT6236 TouchScreen driver. @@ -40682,9 +44027,9 @@ diff -Nur linux-4.1.22.orig/drivers/input/touchscreen/ft6236.c linux-4.1.22/driv +MODULE_AUTHOR("Noralf Trønnes <noralf@tronnes.org>"); +MODULE_DESCRIPTION("FocalTech FT6236 TouchScreen driver"); +MODULE_LICENSE("GPL v2"); -diff -Nur linux-4.1.22.orig/drivers/input/touchscreen/rpi-ft5406.c linux-4.1.22/drivers/input/touchscreen/rpi-ft5406.c ---- linux-4.1.22.orig/drivers/input/touchscreen/rpi-ft5406.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/input/touchscreen/rpi-ft5406.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/input/touchscreen/rpi-ft5406.c linux-4.1.23/drivers/input/touchscreen/rpi-ft5406.c +--- linux-4.1.23.orig/drivers/input/touchscreen/rpi-ft5406.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/input/touchscreen/rpi-ft5406.c 2016-05-02 22:53:54.000000000 +0200 @@ -0,0 +1,246 @@ +/* + * Driver for memory based ft5406 touchscreen @@ -40932,9 +44277,9 @@ diff -Nur linux-4.1.22.orig/drivers/input/touchscreen/rpi-ft5406.c linux-4.1.22/ +MODULE_AUTHOR("Gordon Hollingworth"); +MODULE_DESCRIPTION("Touchscreen driver for memory based FT5406"); +MODULE_LICENSE("GPL"); -diff -Nur linux-4.1.22.orig/drivers/irqchip/irq-bcm2835.c linux-4.1.22/drivers/irqchip/irq-bcm2835.c ---- linux-4.1.22.orig/drivers/irqchip/irq-bcm2835.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/irqchip/irq-bcm2835.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/irqchip/irq-bcm2835.c linux-4.1.23/drivers/irqchip/irq-bcm2835.c +--- linux-4.1.23.orig/drivers/irqchip/irq-bcm2835.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/irqchip/irq-bcm2835.c 2016-05-02 22:53:54.000000000 +0200 @@ -56,7 +56,7 @@ #include "irqchip.h" @@ -41033,9 +44378,83 @@ diff -Nur linux-4.1.22.orig/drivers/irqchip/irq-bcm2835.c linux-4.1.22/drivers/i return 0; } -diff -Nur linux-4.1.22.orig/drivers/leds/leds-gpio.c linux-4.1.22/drivers/leds/leds-gpio.c ---- linux-4.1.22.orig/drivers/leds/leds-gpio.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/leds/leds-gpio.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/irqchip/irq-omap-intc.c linux-4.1.23/drivers/irqchip/irq-omap-intc.c +--- linux-4.1.23.orig/drivers/irqchip/irq-omap-intc.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/irqchip/irq-omap-intc.c 2016-05-02 22:53:54.000000000 +0200 +@@ -48,7 +48,6 @@ + #define INTC_ILR0 0x0100 + + #define ACTIVEIRQ_MASK 0x7f /* omap2/3 active interrupt bits */ +-#define SPURIOUSIRQ_MASK (0x1ffffff << 7) + #define INTCPS_NR_ILR_REGS 128 + #define INTCPS_NR_MIR_REGS 4 + +@@ -332,36 +331,37 @@ + static asmlinkage void __exception_irq_entry + omap_intc_handle_irq(struct pt_regs *regs) + { +- extern unsigned long irq_err_count; +- u32 irqnr; ++ u32 irqnr = 0; ++ int handled_irq = 0; ++ int i; + +- irqnr = intc_readl(INTC_SIR); ++ do { ++ for (i = 0; i < omap_nr_pending; i++) { ++ irqnr = intc_readl(INTC_PENDING_IRQ0 + (0x20 * i)); ++ if (irqnr) ++ goto out; ++ } ++ ++out: ++ if (!irqnr) ++ break; ++ ++ irqnr = intc_readl(INTC_SIR); ++ irqnr &= ACTIVEIRQ_MASK; ++ ++ if (irqnr) { ++ handle_domain_irq(domain, irqnr, regs); ++ handled_irq = 1; ++ } ++ } while (irqnr); + + /* +- * A spurious IRQ can result if interrupt that triggered the +- * sorting is no longer active during the sorting (10 INTC +- * functional clock cycles after interrupt assertion). Or a +- * change in interrupt mask affected the result during sorting +- * time. There is no special handling required except ignoring +- * the SIR register value just read and retrying. +- * See section 6.2.5 of AM335x TRM Literature Number: SPRUH73K +- * +- * Many a times, a spurious interrupt situation has been fixed +- * by adding a flush for the posted write acking the IRQ in +- * the device driver. Typically, this is going be the device +- * driver whose interrupt was handled just before the spurious +- * IRQ occurred. Pay attention to those device drivers if you +- * run into hitting the spurious IRQ condition below. ++ * If an irq is masked or deasserted while active, we will ++ * keep ending up here with no irq handled. So remove it from ++ * the INTC with an ack. + */ +- if (unlikely((irqnr & SPURIOUSIRQ_MASK) == SPURIOUSIRQ_MASK)) { +- pr_err_once("%s: spurious irq!\n", __func__); +- irq_err_count++; ++ if (!handled_irq) + omap_ack_irq(NULL); +- return; +- } +- +- irqnr &= ACTIVEIRQ_MASK; +- handle_domain_irq(domain, irqnr, regs); + } + + void __init omap3_init_irq(void) +diff -Nur linux-4.1.23.orig/drivers/leds/leds-gpio.c linux-4.1.23/drivers/leds/leds-gpio.c +--- linux-4.1.23.orig/drivers/leds/leds-gpio.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/leds/leds-gpio.c 2016-05-02 22:53:54.000000000 +0200 @@ -41,6 +41,13 @@ led_dat->platform_gpio_blink_set(led_dat->gpiod, led_dat->new_level, NULL, NULL); @@ -41082,9 +44501,9 @@ diff -Nur linux-4.1.22.orig/drivers/leds/leds-gpio.c linux-4.1.22/drivers/leds/l if (template->default_state == LEDS_GPIO_DEFSTATE_KEEP) state = !!gpiod_get_value_cansleep(led_dat->gpiod); else -diff -Nur linux-4.1.22.orig/drivers/leds/trigger/Kconfig linux-4.1.22/drivers/leds/trigger/Kconfig ---- linux-4.1.22.orig/drivers/leds/trigger/Kconfig 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/leds/trigger/Kconfig 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/leds/trigger/Kconfig linux-4.1.23/drivers/leds/trigger/Kconfig +--- linux-4.1.23.orig/drivers/leds/trigger/Kconfig 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/leds/trigger/Kconfig 2016-05-02 22:53:54.000000000 +0200 @@ -108,4 +108,11 @@ This enables direct flash/torch on/off by the driver, kernel space. If unsure, say Y. @@ -41097,17 +44516,17 @@ diff -Nur linux-4.1.22.orig/drivers/leds/trigger/Kconfig linux-4.1.22/drivers/le + If unsure, say Y. + endif # LEDS_TRIGGERS -diff -Nur linux-4.1.22.orig/drivers/leds/trigger/Makefile linux-4.1.22/drivers/leds/trigger/Makefile ---- linux-4.1.22.orig/drivers/leds/trigger/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/leds/trigger/Makefile 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/leds/trigger/Makefile linux-4.1.23/drivers/leds/trigger/Makefile +--- linux-4.1.23.orig/drivers/leds/trigger/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/leds/trigger/Makefile 2016-05-02 22:53:54.000000000 +0200 @@ -8,3 +8,4 @@ obj-$(CONFIG_LEDS_TRIGGER_DEFAULT_ON) += ledtrig-default-on.o obj-$(CONFIG_LEDS_TRIGGER_TRANSIENT) += ledtrig-transient.o obj-$(CONFIG_LEDS_TRIGGER_CAMERA) += ledtrig-camera.o +obj-$(CONFIG_LEDS_TRIGGER_INPUT) += ledtrig-input.o -diff -Nur linux-4.1.22.orig/drivers/leds/trigger/ledtrig-input.c linux-4.1.22/drivers/leds/trigger/ledtrig-input.c ---- linux-4.1.22.orig/drivers/leds/trigger/ledtrig-input.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/leds/trigger/ledtrig-input.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/leds/trigger/ledtrig-input.c linux-4.1.23/drivers/leds/trigger/ledtrig-input.c +--- linux-4.1.23.orig/drivers/leds/trigger/ledtrig-input.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/leds/trigger/ledtrig-input.c 2016-05-02 22:53:54.000000000 +0200 @@ -0,0 +1,54 @@ +/* + * Set LED GPIO to Input "Trigger" @@ -41163,9 +44582,9 @@ diff -Nur linux-4.1.22.orig/drivers/leds/trigger/ledtrig-input.c linux-4.1.22/dr +MODULE_AUTHOR("Phil Elwell <phil@raspberrypi.org>"); +MODULE_DESCRIPTION("Set LED GPIO to Input \"trigger\""); +MODULE_LICENSE("GPL"); -diff -Nur linux-4.1.22.orig/drivers/mailbox/Kconfig linux-4.1.22/drivers/mailbox/Kconfig ---- linux-4.1.22.orig/drivers/mailbox/Kconfig 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/mailbox/Kconfig 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/mailbox/Kconfig linux-4.1.23/drivers/mailbox/Kconfig +--- linux-4.1.23.orig/drivers/mailbox/Kconfig 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/mailbox/Kconfig 2016-05-02 22:53:54.000000000 +0200 @@ -60,4 +60,13 @@ An implementation of the Altera Mailbox soft core. It is used to send message between processors. Say Y here if you want to use the @@ -41180,18 +44599,18 @@ diff -Nur linux-4.1.22.orig/drivers/mailbox/Kconfig linux-4.1.22/drivers/mailbox + BCM2835 Mailbox. + endif -diff -Nur linux-4.1.22.orig/drivers/mailbox/Makefile linux-4.1.22/drivers/mailbox/Makefile ---- linux-4.1.22.orig/drivers/mailbox/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/mailbox/Makefile 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/mailbox/Makefile linux-4.1.23/drivers/mailbox/Makefile +--- linux-4.1.23.orig/drivers/mailbox/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/mailbox/Makefile 2016-05-02 22:53:54.000000000 +0200 @@ -11,3 +11,5 @@ obj-$(CONFIG_PCC) += pcc.o obj-$(CONFIG_ALTERA_MBOX) += mailbox-altera.o + +obj-$(CONFIG_BCM2835_MBOX) += bcm2835-mailbox.o -diff -Nur linux-4.1.22.orig/drivers/mailbox/bcm2835-mailbox.c linux-4.1.22/drivers/mailbox/bcm2835-mailbox.c ---- linux-4.1.22.orig/drivers/mailbox/bcm2835-mailbox.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/mailbox/bcm2835-mailbox.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/mailbox/bcm2835-mailbox.c linux-4.1.23/drivers/mailbox/bcm2835-mailbox.c +--- linux-4.1.23.orig/drivers/mailbox/bcm2835-mailbox.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/mailbox/bcm2835-mailbox.c 2016-05-02 22:53:54.000000000 +0200 @@ -0,0 +1,231 @@ +/* + * Copyright (C) 2010,2015 Broadcom @@ -41424,9 +44843,9 @@ diff -Nur linux-4.1.22.orig/drivers/mailbox/bcm2835-mailbox.c linux-4.1.22/drive +MODULE_AUTHOR("Lubomir Rintel <lkundrak@v3.sk>"); +MODULE_DESCRIPTION("BCM2835 mailbox IPC driver"); +MODULE_LICENSE("GPL v2"); -diff -Nur linux-4.1.22.orig/drivers/mailbox/mailbox.c linux-4.1.22/drivers/mailbox/mailbox.c ---- linux-4.1.22.orig/drivers/mailbox/mailbox.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/mailbox/mailbox.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/mailbox/mailbox.c linux-4.1.23/drivers/mailbox/mailbox.c +--- linux-4.1.23.orig/drivers/mailbox/mailbox.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/mailbox/mailbox.c 2016-05-02 22:53:54.000000000 +0200 @@ -304,13 +304,23 @@ unsigned long flags; int ret; @@ -41460,9 +44879,435 @@ diff -Nur linux-4.1.22.orig/drivers/mailbox/mailbox.c linux-4.1.22/drivers/mailb if (!chan || chan->cl || !try_module_get(mbox->dev->driver->owner)) { dev_dbg(dev, "%s: mailbox not free\n", __func__); mutex_unlock(&con_mutex); -diff -Nur linux-4.1.22.orig/drivers/media/platform/Kconfig linux-4.1.22/drivers/media/platform/Kconfig ---- linux-4.1.22.orig/drivers/media/platform/Kconfig 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/media/platform/Kconfig 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/md/bcache/super.c linux-4.1.23/drivers/md/bcache/super.c +--- linux-4.1.23.orig/drivers/md/bcache/super.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/md/bcache/super.c 2016-05-02 22:53:54.000000000 +0200 +@@ -1046,12 +1046,8 @@ + */ + atomic_set(&dc->count, 1); + +- /* Block writeback thread, but spawn it */ +- down_write(&dc->writeback_lock); +- if (bch_cached_dev_writeback_start(dc)) { +- up_write(&dc->writeback_lock); ++ if (bch_cached_dev_writeback_start(dc)) + return -ENOMEM; +- } + + if (BDEV_STATE(&dc->sb) == BDEV_STATE_DIRTY) { + bch_sectors_dirty_init(dc); +@@ -1063,9 +1059,6 @@ + bch_cached_dev_run(dc); + bcache_device_link(&dc->disk, c, "bdev"); + +- /* Allow the writeback thread to proceed */ +- up_write(&dc->writeback_lock); +- + pr_info("Caching %s as %s on set %pU", + bdevname(dc->bdev, buf), dc->disk.disk->disk_name, + dc->disk.c->sb.set_uuid); +@@ -1404,9 +1397,6 @@ + struct btree *b; + unsigned i; + +- if (!c) +- closure_return(cl); +- + bch_cache_accounting_destroy(&c->accounting); + + kobject_put(&c->internal); +@@ -1872,12 +1862,11 @@ + return 0; + } + +-static int register_cache(struct cache_sb *sb, struct page *sb_page, ++static void register_cache(struct cache_sb *sb, struct page *sb_page, + struct block_device *bdev, struct cache *ca) + { + char name[BDEVNAME_SIZE]; +- const char *err = NULL; +- int ret = 0; ++ const char *err = "cannot allocate memory"; + + memcpy(&ca->sb, sb, sizeof(struct cache_sb)); + ca->bdev = bdev; +@@ -1892,35 +1881,27 @@ + if (blk_queue_discard(bdev_get_queue(ca->bdev))) + ca->discard = CACHE_DISCARD(&ca->sb); + +- ret = cache_alloc(sb, ca); +- if (ret != 0) ++ if (cache_alloc(sb, ca) != 0) + goto err; + +- if (kobject_add(&ca->kobj, &part_to_dev(bdev->bd_part)->kobj, "bcache")) { +- err = "error calling kobject_add"; +- ret = -ENOMEM; +- goto out; +- } ++ err = "error creating kobject"; ++ if (kobject_add(&ca->kobj, &part_to_dev(bdev->bd_part)->kobj, "bcache")) ++ goto err; + + mutex_lock(&bch_register_lock); + err = register_cache_set(ca); + mutex_unlock(&bch_register_lock); + +- if (err) { +- ret = -ENODEV; +- goto out; +- } ++ if (err) ++ goto err; + + pr_info("registered cache device %s", bdevname(bdev, name)); +- + out: + kobject_put(&ca->kobj); +- ++ return; + err: +- if (err) +- pr_notice("error opening %s: %s", bdevname(bdev, name), err); +- +- return ret; ++ pr_notice("error opening %s: %s", bdevname(bdev, name), err); ++ goto out; + } + + /* Global interfaces/init */ +@@ -2018,8 +1999,7 @@ + if (!ca) + goto err_close; + +- if (register_cache(sb, sb_page, bdev, ca) != 0) +- goto err_close; ++ register_cache(sb, sb_page, bdev, ca); + } + out: + if (sb_page) +diff -Nur linux-4.1.23.orig/drivers/md/dm-thin-metadata.c linux-4.1.23/drivers/md/dm-thin-metadata.c +--- linux-4.1.23.orig/drivers/md/dm-thin-metadata.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/md/dm-thin-metadata.c 2016-05-02 22:53:54.000000000 +0200 +@@ -1803,8 +1803,5 @@ + + void dm_pool_issue_prefetches(struct dm_pool_metadata *pmd) + { +- down_read(&pmd->root_lock); +- if (!pmd->fail_io) +- dm_tm_issue_prefetches(pmd->tm); +- up_read(&pmd->root_lock); ++ dm_tm_issue_prefetches(pmd->tm); + } +diff -Nur linux-4.1.23.orig/drivers/md/dm.c linux-4.1.23/drivers/md/dm.c +--- linux-4.1.23.orig/drivers/md/dm.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/md/dm.c 2016-05-02 22:53:54.000000000 +0200 +@@ -1065,8 +1065,12 @@ + * back into ->request_fn() could deadlock attempting to grab the + * queue lock again. + */ +- if (!md->queue->mq_ops && run_queue) +- blk_run_queue_async(md->queue); ++ if (run_queue) { ++ if (md->queue->mq_ops) ++ blk_mq_run_hw_queues(md->queue, true); ++ else ++ blk_run_queue_async(md->queue); ++ } + + /* + * dm_put() must be at the end of this function. See the comment above +@@ -1292,10 +1296,7 @@ + struct dm_rq_target_io *tio = tio_from_request(rq); + + tio->error = error; +- if (!rq->q->mq_ops) +- blk_complete_request(rq); +- else +- blk_mq_complete_request(rq); ++ blk_complete_request(rq); + } + + /* +diff -Nur linux-4.1.23.orig/drivers/md/multipath.c linux-4.1.23/drivers/md/multipath.c +--- linux-4.1.23.orig/drivers/md/multipath.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/md/multipath.c 2016-05-02 22:53:54.000000000 +0200 +@@ -129,9 +129,7 @@ + } + multipath = conf->multipaths + mp_bh->path; + +- bio_init(&mp_bh->bio); +- __bio_clone_fast(&mp_bh->bio, bio); +- ++ mp_bh->bio = *bio; + mp_bh->bio.bi_iter.bi_sector += multipath->rdev->data_offset; + mp_bh->bio.bi_bdev = multipath->rdev->bdev; + mp_bh->bio.bi_rw |= REQ_FAILFAST_TRANSPORT; +diff -Nur linux-4.1.23.orig/drivers/md/raid5.c linux-4.1.23/drivers/md/raid5.c +--- linux-4.1.23.orig/drivers/md/raid5.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/md/raid5.c 2016-05-02 22:53:54.000000000 +0200 +@@ -2080,14 +2080,6 @@ + unsigned long cpu; + int err = 0; + +- /* +- * Never shrink. And mddev_suspend() could deadlock if this is called +- * from raid5d. In that case, scribble_disks and scribble_sectors +- * should equal to new_disks and new_sectors +- */ +- if (conf->scribble_disks >= new_disks && +- conf->scribble_sectors >= new_sectors) +- return 0; + mddev_suspend(conf->mddev); + get_online_cpus(); + for_each_present_cpu(cpu) { +@@ -2109,10 +2101,6 @@ + } + put_online_cpus(); + mddev_resume(conf->mddev); +- if (!err) { +- conf->scribble_disks = new_disks; +- conf->scribble_sectors = new_sectors; +- } + return err; + } + +@@ -4232,6 +4220,7 @@ + WARN_ON_ONCE(sh->state & ((1 << STRIPE_ACTIVE) | + (1 << STRIPE_SYNCING) | + (1 << STRIPE_REPLACED) | ++ (1 << STRIPE_PREREAD_ACTIVE) | + (1 << STRIPE_DELAYED) | + (1 << STRIPE_BIT_DELAY) | + (1 << STRIPE_FULL_WRITE) | +@@ -4246,7 +4235,6 @@ + (1 << STRIPE_REPLACED))); + + set_mask_bits(&sh->state, ~(STRIPE_EXPAND_SYNC_FLAGS | +- (1 << STRIPE_PREREAD_ACTIVE) | + (1 << STRIPE_DEGRADED)), + head_sh->state & (1 << STRIPE_INSYNC)); + +@@ -6378,12 +6366,6 @@ + } + put_online_cpus(); + +- if (!err) { +- conf->scribble_disks = max(conf->raid_disks, +- conf->previous_raid_disks); +- conf->scribble_sectors = max(conf->chunk_sectors, +- conf->prev_chunk_sectors); +- } + return err; + } + +@@ -6960,8 +6942,8 @@ + } + + if (discard_supported && +- mddev->queue->limits.max_discard_sectors >= (stripe >> 9) && +- mddev->queue->limits.discard_granularity >= stripe) ++ mddev->queue->limits.max_discard_sectors >= stripe && ++ mddev->queue->limits.discard_granularity >= stripe) + queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, + mddev->queue); + else +diff -Nur linux-4.1.23.orig/drivers/md/raid5.h linux-4.1.23/drivers/md/raid5.h +--- linux-4.1.23.orig/drivers/md/raid5.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/md/raid5.h 2016-05-02 22:53:54.000000000 +0200 +@@ -501,8 +501,6 @@ + * conversions + */ + } __percpu *percpu; +- int scribble_disks; +- int scribble_sectors; + #ifdef CONFIG_HOTPLUG_CPU + struct notifier_block cpu_notify; + #endif +diff -Nur linux-4.1.23.orig/drivers/media/i2c/adv7511.c linux-4.1.23/drivers/media/i2c/adv7511.c +--- linux-4.1.23.orig/drivers/media/i2c/adv7511.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/media/i2c/adv7511.c 2016-05-02 22:53:54.000000000 +0200 +@@ -1048,23 +1048,12 @@ + } + } + +-static void adv7511_notify_no_edid(struct v4l2_subdev *sd) +-{ +- struct adv7511_state *state = get_adv7511_state(sd); +- struct adv7511_edid_detect ed; +- +- /* We failed to read the EDID, so send an event for this. */ +- ed.present = false; +- ed.segment = adv7511_rd(sd, 0xc4); +- v4l2_subdev_notify(sd, ADV7511_EDID_DETECT, (void *)&ed); +- v4l2_ctrl_s_ctrl(state->have_edid0_ctrl, 0x0); +-} +- + static void adv7511_edid_handler(struct work_struct *work) + { + struct delayed_work *dwork = to_delayed_work(work); + struct adv7511_state *state = container_of(dwork, struct adv7511_state, edid_handler); + struct v4l2_subdev *sd = &state->sd; ++ struct adv7511_edid_detect ed; + + v4l2_dbg(1, debug, sd, "%s:\n", __func__); + +@@ -1089,7 +1078,9 @@ + } + + /* We failed to read the EDID, so send an event for this. */ +- adv7511_notify_no_edid(sd); ++ ed.present = false; ++ ed.segment = adv7511_rd(sd, 0xc4); ++ v4l2_subdev_notify(sd, ADV7511_EDID_DETECT, (void *)&ed); + v4l2_dbg(1, debug, sd, "%s: no edid found\n", __func__); + } + +@@ -1160,6 +1151,7 @@ + /* update read only ctrls */ + v4l2_ctrl_s_ctrl(state->hotplug_ctrl, adv7511_have_hotplug(sd) ? 0x1 : 0x0); + v4l2_ctrl_s_ctrl(state->rx_sense_ctrl, adv7511_have_rx_sense(sd) ? 0x1 : 0x0); ++ v4l2_ctrl_s_ctrl(state->have_edid0_ctrl, state->edid.segments ? 0x1 : 0x0); + + if ((status & MASK_ADV7511_HPD_DETECT) && ((status & MASK_ADV7511_MSEN_DETECT) || state->edid.segments)) { + v4l2_dbg(1, debug, sd, "%s: hotplug and (rx-sense or edid)\n", __func__); +@@ -1189,7 +1181,6 @@ + } + adv7511_s_power(sd, false); + memset(&state->edid, 0, sizeof(struct adv7511_state_edid)); +- adv7511_notify_no_edid(sd); + } + } + +@@ -1266,7 +1257,6 @@ + } + /* one more segment read ok */ + state->edid.segments = segment + 1; +- v4l2_ctrl_s_ctrl(state->have_edid0_ctrl, 0x1); + if (((state->edid.data[0x7e] >> 1) + 1) > state->edid.segments) { + /* Request next EDID segment */ + v4l2_dbg(1, debug, sd, "%s: request segment %d\n", __func__, state->edid.segments); +@@ -1286,6 +1276,7 @@ + ed.present = true; + ed.segment = 0; + state->edid_detect_counter++; ++ v4l2_ctrl_s_ctrl(state->have_edid0_ctrl, state->edid.segments ? 0x1 : 0x0); + v4l2_subdev_notify(sd, ADV7511_EDID_DETECT, (void *)&ed); + return ed.present; + } +diff -Nur linux-4.1.23.orig/drivers/media/pci/bt8xx/bttv-driver.c linux-4.1.23/drivers/media/pci/bt8xx/bttv-driver.c +--- linux-4.1.23.orig/drivers/media/pci/bt8xx/bttv-driver.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/media/pci/bt8xx/bttv-driver.c 2016-05-02 22:53:54.000000000 +0200 +@@ -2334,19 +2334,6 @@ + return 0; + } + +-static void bttv_get_width_mask_vid_cap(const struct bttv_format *fmt, +- unsigned int *width_mask, +- unsigned int *width_bias) +-{ +- if (fmt->flags & FORMAT_FLAGS_PLANAR) { +- *width_mask = ~15; /* width must be a multiple of 16 pixels */ +- *width_bias = 8; /* nearest */ +- } else { +- *width_mask = ~3; /* width must be a multiple of 4 pixels */ +- *width_bias = 2; /* nearest */ +- } +-} +- + static int bttv_try_fmt_vid_cap(struct file *file, void *priv, + struct v4l2_format *f) + { +@@ -2356,7 +2343,6 @@ + enum v4l2_field field; + __s32 width, height; + __s32 height2; +- unsigned int width_mask, width_bias; + int rc; + + fmt = format_by_fourcc(f->fmt.pix.pixelformat); +@@ -2389,9 +2375,9 @@ + width = f->fmt.pix.width; + height = f->fmt.pix.height; + +- bttv_get_width_mask_vid_cap(fmt, &width_mask, &width_bias); + rc = limit_scaled_size_lock(fh, &width, &height, field, +- width_mask, width_bias, ++ /* width_mask: 4 pixels */ ~3, ++ /* width_bias: nearest */ 2, + /* adjust_size */ 1, + /* adjust_crop */ 0); + if (0 != rc) +@@ -2424,7 +2410,6 @@ + struct bttv_fh *fh = priv; + struct bttv *btv = fh->btv; + __s32 width, height; +- unsigned int width_mask, width_bias; + enum v4l2_field field; + + retval = bttv_switch_type(fh, f->type); +@@ -2439,10 +2424,9 @@ + height = f->fmt.pix.height; + field = f->fmt.pix.field; + +- fmt = format_by_fourcc(f->fmt.pix.pixelformat); +- bttv_get_width_mask_vid_cap(fmt, &width_mask, &width_bias); + retval = limit_scaled_size_lock(fh, &width, &height, f->fmt.pix.field, +- width_mask, width_bias, ++ /* width_mask: 4 pixels */ ~3, ++ /* width_bias: nearest */ 2, + /* adjust_size */ 1, + /* adjust_crop */ 1); + if (0 != retval) +@@ -2450,6 +2434,8 @@ + + f->fmt.pix.field = field; + ++ fmt = format_by_fourcc(f->fmt.pix.pixelformat); ++ + /* update our state informations */ + fh->fmt = fmt; + fh->cap.field = f->fmt.pix.field; +diff -Nur linux-4.1.23.orig/drivers/media/pci/saa7134/saa7134-video.c linux-4.1.23/drivers/media/pci/saa7134/saa7134-video.c +--- linux-4.1.23.orig/drivers/media/pci/saa7134/saa7134-video.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/media/pci/saa7134/saa7134-video.c 2016-05-02 22:53:54.000000000 +0200 +@@ -1211,13 +1211,10 @@ + f->fmt.pix.height = dev->height; + f->fmt.pix.field = dev->field; + f->fmt.pix.pixelformat = dev->fmt->fourcc; +- if (dev->fmt->planar) +- f->fmt.pix.bytesperline = f->fmt.pix.width; +- else +- f->fmt.pix.bytesperline = +- (f->fmt.pix.width * dev->fmt->depth) / 8; ++ f->fmt.pix.bytesperline = ++ (f->fmt.pix.width * dev->fmt->depth) >> 3; + f->fmt.pix.sizeimage = +- (f->fmt.pix.height * f->fmt.pix.width * dev->fmt->depth) / 8; ++ f->fmt.pix.height * f->fmt.pix.bytesperline; + f->fmt.pix.colorspace = V4L2_COLORSPACE_SMPTE170M; + return 0; + } +@@ -1293,13 +1290,10 @@ + if (f->fmt.pix.height > maxh) + f->fmt.pix.height = maxh; + f->fmt.pix.width &= ~0x03; +- if (fmt->planar) +- f->fmt.pix.bytesperline = f->fmt.pix.width; +- else +- f->fmt.pix.bytesperline = +- (f->fmt.pix.width * fmt->depth) / 8; ++ f->fmt.pix.bytesperline = ++ (f->fmt.pix.width * fmt->depth) >> 3; + f->fmt.pix.sizeimage = +- (f->fmt.pix.height * f->fmt.pix.width * fmt->depth) / 8; ++ f->fmt.pix.height * f->fmt.pix.bytesperline; + f->fmt.pix.colorspace = V4L2_COLORSPACE_SMPTE170M; + + return 0; +diff -Nur linux-4.1.23.orig/drivers/media/platform/Kconfig linux-4.1.23/drivers/media/platform/Kconfig +--- linux-4.1.23.orig/drivers/media/platform/Kconfig 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/media/platform/Kconfig 2016-05-02 22:53:54.000000000 +0200 @@ -11,6 +11,8 @@ if V4L_PLATFORM_DRIVERS @@ -41472,9 +45317,9 @@ diff -Nur linux-4.1.22.orig/drivers/media/platform/Kconfig linux-4.1.22/drivers/ source "drivers/media/platform/marvell-ccic/Kconfig" config VIDEO_VIA_CAMERA -diff -Nur linux-4.1.22.orig/drivers/media/platform/Makefile linux-4.1.22/drivers/media/platform/Makefile ---- linux-4.1.22.orig/drivers/media/platform/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/media/platform/Makefile 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/media/platform/Makefile linux-4.1.23/drivers/media/platform/Makefile +--- linux-4.1.23.orig/drivers/media/platform/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/media/platform/Makefile 2016-05-02 22:53:54.000000000 +0200 @@ -2,6 +2,8 @@ # Makefile for the video capture/playback device drivers. # @@ -41484,9 +45329,9 @@ diff -Nur linux-4.1.22.orig/drivers/media/platform/Makefile linux-4.1.22/drivers obj-$(CONFIG_VIDEO_TIMBERDALE) += timblogiw.o obj-$(CONFIG_VIDEO_M32R_AR_M64278) += arv.o -diff -Nur linux-4.1.22.orig/drivers/media/platform/bcm2835/Kconfig linux-4.1.22/drivers/media/platform/bcm2835/Kconfig ---- linux-4.1.22.orig/drivers/media/platform/bcm2835/Kconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/media/platform/bcm2835/Kconfig 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/media/platform/bcm2835/Kconfig linux-4.1.23/drivers/media/platform/bcm2835/Kconfig +--- linux-4.1.23.orig/drivers/media/platform/bcm2835/Kconfig 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/media/platform/bcm2835/Kconfig 2016-05-02 22:53:54.000000000 +0200 @@ -0,0 +1,25 @@ +# Broadcom VideoCore IV v4l2 camera support + @@ -41513,18 +45358,18 @@ diff -Nur linux-4.1.22.orig/drivers/media/platform/bcm2835/Kconfig linux-4.1.22/ + + +endif # VIDEO_BM2835 -diff -Nur linux-4.1.22.orig/drivers/media/platform/bcm2835/Makefile linux-4.1.22/drivers/media/platform/bcm2835/Makefile ---- linux-4.1.22.orig/drivers/media/platform/bcm2835/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/media/platform/bcm2835/Makefile 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/media/platform/bcm2835/Makefile linux-4.1.23/drivers/media/platform/bcm2835/Makefile +--- linux-4.1.23.orig/drivers/media/platform/bcm2835/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/media/platform/bcm2835/Makefile 2016-05-02 22:53:54.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-4.1.22.orig/drivers/media/platform/bcm2835/bcm2835-camera.c linux-4.1.22/drivers/media/platform/bcm2835/bcm2835-camera.c ---- linux-4.1.22.orig/drivers/media/platform/bcm2835/bcm2835-camera.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/media/platform/bcm2835/bcm2835-camera.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/media/platform/bcm2835/bcm2835-camera.c linux-4.1.23/drivers/media/platform/bcm2835/bcm2835-camera.c +--- linux-4.1.23.orig/drivers/media/platform/bcm2835/bcm2835-camera.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/media/platform/bcm2835/bcm2835-camera.c 2016-05-02 22:53:54.000000000 +0200 @@ -0,0 +1,1842 @@ +/* + * Broadcom BM2835 V4L2 driver @@ -43368,9 +47213,9 @@ diff -Nur linux-4.1.22.orig/drivers/media/platform/bcm2835/bcm2835-camera.c linu + +module_init(bm2835_mmal_init); +module_exit(bm2835_mmal_exit); -diff -Nur linux-4.1.22.orig/drivers/media/platform/bcm2835/bcm2835-camera.h linux-4.1.22/drivers/media/platform/bcm2835/bcm2835-camera.h ---- linux-4.1.22.orig/drivers/media/platform/bcm2835/bcm2835-camera.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/media/platform/bcm2835/bcm2835-camera.h 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/media/platform/bcm2835/bcm2835-camera.h linux-4.1.23/drivers/media/platform/bcm2835/bcm2835-camera.h +--- linux-4.1.23.orig/drivers/media/platform/bcm2835/bcm2835-camera.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/media/platform/bcm2835/bcm2835-camera.h 2016-05-02 22:53:54.000000000 +0200 @@ -0,0 +1,126 @@ +/* + * Broadcom BM2835 V4L2 driver @@ -43498,9 +47343,9 @@ diff -Nur linux-4.1.22.orig/drivers/media/platform/bcm2835/bcm2835-camera.h linu + (pix_fmt)->pixelformat, (pix_fmt)->bytesperline, \ + (pix_fmt)->sizeimage, (pix_fmt)->colorspace, (pix_fmt)->priv); \ +} -diff -Nur linux-4.1.22.orig/drivers/media/platform/bcm2835/controls.c linux-4.1.22/drivers/media/platform/bcm2835/controls.c ---- linux-4.1.22.orig/drivers/media/platform/bcm2835/controls.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/media/platform/bcm2835/controls.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/media/platform/bcm2835/controls.c linux-4.1.23/drivers/media/platform/bcm2835/controls.c +--- linux-4.1.23.orig/drivers/media/platform/bcm2835/controls.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/media/platform/bcm2835/controls.c 2016-05-02 22:53:54.000000000 +0200 @@ -0,0 +1,1324 @@ +/* + * Broadcom BM2835 V4L2 driver @@ -44826,9 +48671,9 @@ diff -Nur linux-4.1.22.orig/drivers/media/platform/bcm2835/controls.c linux-4.1. + + return 0; +} -diff -Nur linux-4.1.22.orig/drivers/media/platform/bcm2835/mmal-common.h linux-4.1.22/drivers/media/platform/bcm2835/mmal-common.h ---- linux-4.1.22.orig/drivers/media/platform/bcm2835/mmal-common.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/media/platform/bcm2835/mmal-common.h 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/media/platform/bcm2835/mmal-common.h linux-4.1.23/drivers/media/platform/bcm2835/mmal-common.h +--- linux-4.1.23.orig/drivers/media/platform/bcm2835/mmal-common.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/media/platform/bcm2835/mmal-common.h 2016-05-02 22:53:54.000000000 +0200 @@ -0,0 +1,53 @@ +/* + * Broadcom BM2835 V4L2 driver @@ -44883,9 +48728,9 @@ diff -Nur linux-4.1.22.orig/drivers/media/platform/bcm2835/mmal-common.h linux-4 + u32 u; + u32 v; +}; -diff -Nur linux-4.1.22.orig/drivers/media/platform/bcm2835/mmal-encodings.h linux-4.1.22/drivers/media/platform/bcm2835/mmal-encodings.h ---- linux-4.1.22.orig/drivers/media/platform/bcm2835/mmal-encodings.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/media/platform/bcm2835/mmal-encodings.h 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/media/platform/bcm2835/mmal-encodings.h linux-4.1.23/drivers/media/platform/bcm2835/mmal-encodings.h +--- linux-4.1.23.orig/drivers/media/platform/bcm2835/mmal-encodings.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/media/platform/bcm2835/mmal-encodings.h 2016-05-02 22:53:54.000000000 +0200 @@ -0,0 +1,127 @@ +/* + * Broadcom BM2835 V4L2 driver @@ -45014,9 +48859,9 @@ diff -Nur linux-4.1.22.orig/drivers/media/platform/bcm2835/mmal-encodings.h linu +/* @} MmalColorSpace List */ + +#endif /* MMAL_ENCODINGS_H */ -diff -Nur linux-4.1.22.orig/drivers/media/platform/bcm2835/mmal-msg-common.h linux-4.1.22/drivers/media/platform/bcm2835/mmal-msg-common.h ---- linux-4.1.22.orig/drivers/media/platform/bcm2835/mmal-msg-common.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/media/platform/bcm2835/mmal-msg-common.h 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/media/platform/bcm2835/mmal-msg-common.h linux-4.1.23/drivers/media/platform/bcm2835/mmal-msg-common.h +--- linux-4.1.23.orig/drivers/media/platform/bcm2835/mmal-msg-common.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/media/platform/bcm2835/mmal-msg-common.h 2016-05-02 22:53:54.000000000 +0200 @@ -0,0 +1,50 @@ +/* + * Broadcom BM2835 V4L2 driver @@ -45068,9 +48913,9 @@ diff -Nur linux-4.1.22.orig/drivers/media/platform/bcm2835/mmal-msg-common.h lin +}; + +#endif /* MMAL_MSG_COMMON_H */ -diff -Nur linux-4.1.22.orig/drivers/media/platform/bcm2835/mmal-msg-format.h linux-4.1.22/drivers/media/platform/bcm2835/mmal-msg-format.h ---- linux-4.1.22.orig/drivers/media/platform/bcm2835/mmal-msg-format.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/media/platform/bcm2835/mmal-msg-format.h 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/media/platform/bcm2835/mmal-msg-format.h linux-4.1.23/drivers/media/platform/bcm2835/mmal-msg-format.h +--- linux-4.1.23.orig/drivers/media/platform/bcm2835/mmal-msg-format.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/media/platform/bcm2835/mmal-msg-format.h 2016-05-02 22:53:54.000000000 +0200 @@ -0,0 +1,81 @@ +/* + * Broadcom BM2835 V4L2 driver @@ -45153,9 +48998,9 @@ diff -Nur linux-4.1.22.orig/drivers/media/platform/bcm2835/mmal-msg-format.h lin +}; + +#endif /* MMAL_MSG_FORMAT_H */ -diff -Nur linux-4.1.22.orig/drivers/media/platform/bcm2835/mmal-msg-port.h linux-4.1.22/drivers/media/platform/bcm2835/mmal-msg-port.h ---- linux-4.1.22.orig/drivers/media/platform/bcm2835/mmal-msg-port.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/media/platform/bcm2835/mmal-msg-port.h 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/media/platform/bcm2835/mmal-msg-port.h linux-4.1.23/drivers/media/platform/bcm2835/mmal-msg-port.h +--- linux-4.1.23.orig/drivers/media/platform/bcm2835/mmal-msg-port.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/media/platform/bcm2835/mmal-msg-port.h 2016-05-02 22:53:54.000000000 +0200 @@ -0,0 +1,107 @@ +/* + * Broadcom BM2835 V4L2 driver @@ -45264,9 +49109,9 @@ diff -Nur linux-4.1.22.orig/drivers/media/platform/bcm2835/mmal-msg-port.h linux + */ + +}; -diff -Nur linux-4.1.22.orig/drivers/media/platform/bcm2835/mmal-msg.h linux-4.1.22/drivers/media/platform/bcm2835/mmal-msg.h ---- linux-4.1.22.orig/drivers/media/platform/bcm2835/mmal-msg.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/media/platform/bcm2835/mmal-msg.h 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/media/platform/bcm2835/mmal-msg.h linux-4.1.23/drivers/media/platform/bcm2835/mmal-msg.h +--- linux-4.1.23.orig/drivers/media/platform/bcm2835/mmal-msg.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/media/platform/bcm2835/mmal-msg.h 2016-05-02 22:53:54.000000000 +0200 @@ -0,0 +1,404 @@ +/* + * Broadcom BM2835 V4L2 driver @@ -45672,9 +49517,9 @@ diff -Nur linux-4.1.22.orig/drivers/media/platform/bcm2835/mmal-msg.h linux-4.1. + u8 payload[MMAL_MSG_MAX_PAYLOAD]; + } u; +}; -diff -Nur linux-4.1.22.orig/drivers/media/platform/bcm2835/mmal-parameters.h linux-4.1.22/drivers/media/platform/bcm2835/mmal-parameters.h ---- linux-4.1.22.orig/drivers/media/platform/bcm2835/mmal-parameters.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/media/platform/bcm2835/mmal-parameters.h 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/media/platform/bcm2835/mmal-parameters.h linux-4.1.23/drivers/media/platform/bcm2835/mmal-parameters.h +--- linux-4.1.23.orig/drivers/media/platform/bcm2835/mmal-parameters.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/media/platform/bcm2835/mmal-parameters.h 2016-05-02 22:53:54.000000000 +0200 @@ -0,0 +1,656 @@ +/* + * Broadcom BM2835 V4L2 driver @@ -46332,9 +50177,9 @@ diff -Nur linux-4.1.22.orig/drivers/media/platform/bcm2835/mmal-parameters.h lin + u32 num_effect_params; + u32 effect_parameter[MMAL_MAX_IMAGEFX_PARAMETERS]; +}; -diff -Nur linux-4.1.22.orig/drivers/media/platform/bcm2835/mmal-vchiq.c linux-4.1.22/drivers/media/platform/bcm2835/mmal-vchiq.c ---- linux-4.1.22.orig/drivers/media/platform/bcm2835/mmal-vchiq.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/media/platform/bcm2835/mmal-vchiq.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/media/platform/bcm2835/mmal-vchiq.c linux-4.1.23/drivers/media/platform/bcm2835/mmal-vchiq.c +--- linux-4.1.23.orig/drivers/media/platform/bcm2835/mmal-vchiq.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/media/platform/bcm2835/mmal-vchiq.c 2016-05-02 22:53:54.000000000 +0200 @@ -0,0 +1,1916 @@ +/* + * Broadcom BM2835 V4L2 driver @@ -48252,9 +52097,9 @@ diff -Nur linux-4.1.22.orig/drivers/media/platform/bcm2835/mmal-vchiq.c linux-4. + kfree(instance); + return -ENODEV; +} -diff -Nur linux-4.1.22.orig/drivers/media/platform/bcm2835/mmal-vchiq.h linux-4.1.22/drivers/media/platform/bcm2835/mmal-vchiq.h ---- linux-4.1.22.orig/drivers/media/platform/bcm2835/mmal-vchiq.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/media/platform/bcm2835/mmal-vchiq.h 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/media/platform/bcm2835/mmal-vchiq.h linux-4.1.23/drivers/media/platform/bcm2835/mmal-vchiq.h +--- linux-4.1.23.orig/drivers/media/platform/bcm2835/mmal-vchiq.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/media/platform/bcm2835/mmal-vchiq.h 2016-05-02 22:53:54.000000000 +0200 @@ -0,0 +1,178 @@ +/* + * Broadcom BM2835 V4L2 driver @@ -48434,9 +52279,20 @@ diff -Nur linux-4.1.22.orig/drivers/media/platform/bcm2835/mmal-vchiq.h linux-4. + struct mmal_buffer *buf); + +#endif /* MMAL_VCHIQ_H */ -diff -Nur linux-4.1.22.orig/drivers/media/usb/dvb-usb-v2/rtl28xxu.c linux-4.1.22/drivers/media/usb/dvb-usb-v2/rtl28xxu.c ---- linux-4.1.22.orig/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/media/tuners/si2157.c linux-4.1.23/drivers/media/tuners/si2157.c +--- linux-4.1.23.orig/drivers/media/tuners/si2157.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/media/tuners/si2157.c 2016-05-02 22:53:54.000000000 +0200 +@@ -167,7 +167,6 @@ + len = fw->data[fw->size - remaining]; + if (len > SI2157_ARGLEN) { + dev_err(&client->dev, "Bad firmware length\n"); +- ret = -EINVAL; + goto err_release_firmware; + } + memcpy(cmd.args, &fw->data[(fw->size - remaining) + 1], len); +diff -Nur linux-4.1.23.orig/drivers/media/usb/dvb-usb-v2/rtl28xxu.c linux-4.1.23/drivers/media/usb/dvb-usb-v2/rtl28xxu.c +--- linux-4.1.23.orig/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 2016-05-02 22:53:54.000000000 +0200 @@ -1755,6 +1755,10 @@ &rtl28xxu_props, "Compro VideoMate U620F", NULL) }, { DVB_USB_DEVICE(USB_VID_KWORLD_2, 0xd394, @@ -48448,9 +52304,128 @@ diff -Nur linux-4.1.22.orig/drivers/media/usb/dvb-usb-v2/rtl28xxu.c linux-4.1.22 { DVB_USB_DEVICE(USB_VID_LEADTEK, 0x6a03, &rtl28xxu_props, "Leadtek WinFast DTV Dongle mini", NULL) }, { DVB_USB_DEVICE(USB_VID_GTEK, USB_PID_CPYTO_REDI_PC50A, -diff -Nur linux-4.1.22.orig/drivers/mfd/Kconfig linux-4.1.22/drivers/mfd/Kconfig ---- linux-4.1.22.orig/drivers/mfd/Kconfig 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/mfd/Kconfig 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/media/usb/pwc/pwc-if.c linux-4.1.23/drivers/media/usb/pwc/pwc-if.c +--- linux-4.1.23.orig/drivers/media/usb/pwc/pwc-if.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/media/usb/pwc/pwc-if.c 2016-05-02 22:53:54.000000000 +0200 +@@ -91,7 +91,6 @@ + { USB_DEVICE(0x0471, 0x0312) }, + { USB_DEVICE(0x0471, 0x0313) }, /* the 'new' 720K */ + { USB_DEVICE(0x0471, 0x0329) }, /* Philips SPC 900NC PC Camera */ +- { USB_DEVICE(0x0471, 0x032C) }, /* Philips SPC 880NC PC Camera */ + { USB_DEVICE(0x069A, 0x0001) }, /* Askey */ + { USB_DEVICE(0x046D, 0x08B0) }, /* Logitech QuickCam Pro 3000 */ + { USB_DEVICE(0x046D, 0x08B1) }, /* Logitech QuickCam Notebook Pro */ +@@ -803,11 +802,6 @@ + name = "Philips SPC 900NC webcam"; + type_id = 740; + break; +- case 0x032C: +- PWC_INFO("Philips SPC 880NC USB webcam detected.\n"); +- name = "Philips SPC 880NC webcam"; +- type_id = 740; +- break; + default: + return -ENODEV; + break; +diff -Nur linux-4.1.23.orig/drivers/media/usb/usbvision/usbvision-video.c linux-4.1.23/drivers/media/usb/usbvision/usbvision-video.c +--- linux-4.1.23.orig/drivers/media/usb/usbvision/usbvision-video.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/media/usb/usbvision/usbvision-video.c 2016-05-02 22:53:54.000000000 +0200 +@@ -1524,23 +1524,9 @@ + + if (usbvision_device_data[model].interface >= 0) + interface = &dev->actconfig->interface[usbvision_device_data[model].interface]->altsetting[0]; +- else if (ifnum < dev->actconfig->desc.bNumInterfaces) ++ else + interface = &dev->actconfig->interface[ifnum]->altsetting[0]; +- else { +- dev_err(&intf->dev, "interface %d is invalid, max is %d\n", +- ifnum, dev->actconfig->desc.bNumInterfaces - 1); +- ret = -ENODEV; +- goto err_usb; +- } +- +- if (interface->desc.bNumEndpoints < 2) { +- dev_err(&intf->dev, "interface %d has %d endpoints, but must" +- " have minimum 2\n", ifnum, interface->desc.bNumEndpoints); +- ret = -ENODEV; +- goto err_usb; +- } + endpoint = &interface->endpoint[1].desc; +- + if (!usb_endpoint_xfer_isoc(endpoint)) { + dev_err(&intf->dev, "%s: interface %d. has non-ISO endpoint!\n", + __func__, ifnum); +diff -Nur linux-4.1.23.orig/drivers/media/v4l2-core/v4l2-compat-ioctl32.c linux-4.1.23/drivers/media/v4l2-core/v4l2-compat-ioctl32.c +--- linux-4.1.23.orig/drivers/media/v4l2-core/v4l2-compat-ioctl32.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/media/v4l2-core/v4l2-compat-ioctl32.c 2016-05-02 22:53:54.000000000 +0200 +@@ -394,8 +394,7 @@ + get_user(kp->index, &up->index) || + get_user(kp->type, &up->type) || + get_user(kp->flags, &up->flags) || +- get_user(kp->memory, &up->memory) || +- get_user(kp->length, &up->length)) ++ get_user(kp->memory, &up->memory)) + return -EFAULT; + + if (V4L2_TYPE_IS_OUTPUT(kp->type)) +@@ -407,6 +406,9 @@ + return -EFAULT; + + if (V4L2_TYPE_IS_MULTIPLANAR(kp->type)) { ++ if (get_user(kp->length, &up->length)) ++ return -EFAULT; ++ + num_planes = kp->length; + if (num_planes == 0) { + kp->m.planes = NULL; +@@ -439,14 +441,16 @@ + } else { + switch (kp->memory) { + case V4L2_MEMORY_MMAP: +- if (get_user(kp->m.offset, &up->m.offset)) ++ if (get_user(kp->length, &up->length) || ++ get_user(kp->m.offset, &up->m.offset)) + return -EFAULT; + break; + case V4L2_MEMORY_USERPTR: + { + compat_long_t tmp; + +- if (get_user(tmp, &up->m.userptr)) ++ if (get_user(kp->length, &up->length) || ++ get_user(tmp, &up->m.userptr)) + return -EFAULT; + + kp->m.userptr = (unsigned long)compat_ptr(tmp); +@@ -488,8 +492,7 @@ + copy_to_user(&up->timecode, &kp->timecode, sizeof(struct v4l2_timecode)) || + put_user(kp->sequence, &up->sequence) || + put_user(kp->reserved2, &up->reserved2) || +- put_user(kp->reserved, &up->reserved) || +- put_user(kp->length, &up->length)) ++ put_user(kp->reserved, &up->reserved)) + return -EFAULT; + + if (V4L2_TYPE_IS_MULTIPLANAR(kp->type)) { +@@ -512,11 +515,13 @@ + } else { + switch (kp->memory) { + case V4L2_MEMORY_MMAP: +- if (put_user(kp->m.offset, &up->m.offset)) ++ if (put_user(kp->length, &up->length) || ++ put_user(kp->m.offset, &up->m.offset)) + return -EFAULT; + break; + case V4L2_MEMORY_USERPTR: +- if (put_user(kp->m.userptr, &up->m.userptr)) ++ if (put_user(kp->length, &up->length) || ++ put_user(kp->m.userptr, &up->m.userptr)) + return -EFAULT; + break; + case V4L2_MEMORY_OVERLAY: +diff -Nur linux-4.1.23.orig/drivers/mfd/Kconfig linux-4.1.23/drivers/mfd/Kconfig +--- linux-4.1.23.orig/drivers/mfd/Kconfig 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/mfd/Kconfig 2016-05-02 22:53:54.000000000 +0200 @@ -10,6 +10,14 @@ select IRQ_DOMAIN default n @@ -48466,18 +52441,18 @@ diff -Nur linux-4.1.22.orig/drivers/mfd/Kconfig linux-4.1.22/drivers/mfd/Kconfig config MFD_CS5535 tristate "AMD CS5535 and CS5536 southbridge core functions" select MFD_CORE -diff -Nur linux-4.1.22.orig/drivers/mfd/Makefile linux-4.1.22/drivers/mfd/Makefile ---- linux-4.1.22.orig/drivers/mfd/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/mfd/Makefile 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/mfd/Makefile linux-4.1.23/drivers/mfd/Makefile +--- linux-4.1.23.orig/drivers/mfd/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/mfd/Makefile 2016-05-02 22:53:54.000000000 +0200 @@ -185,3 +185,5 @@ intel-soc-pmic-objs := intel_soc_pmic_core.o intel_soc_pmic_crc.o obj-$(CONFIG_INTEL_SOC_PMIC) += intel-soc-pmic.o obj-$(CONFIG_MFD_MT6397) += mt6397-core.o + +obj-$(CONFIG_MFD_RPISENSE_CORE) += rpisense-core.o -diff -Nur linux-4.1.22.orig/drivers/mfd/rpisense-core.c linux-4.1.22/drivers/mfd/rpisense-core.c ---- linux-4.1.22.orig/drivers/mfd/rpisense-core.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/mfd/rpisense-core.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/mfd/rpisense-core.c linux-4.1.23/drivers/mfd/rpisense-core.c +--- linux-4.1.23.orig/drivers/mfd/rpisense-core.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/mfd/rpisense-core.c 2016-05-02 22:53:54.000000000 +0200 @@ -0,0 +1,157 @@ +/* + * Raspberry Pi Sense HAT core driver @@ -48636,9 +52611,9 @@ diff -Nur linux-4.1.22.orig/drivers/mfd/rpisense-core.c linux-4.1.22/drivers/mfd +MODULE_AUTHOR("Serge Schneider <serge@raspberrypi.org>"); +MODULE_LICENSE("GPL"); + -diff -Nur linux-4.1.22.orig/drivers/misc/Kconfig linux-4.1.22/drivers/misc/Kconfig ---- linux-4.1.22.orig/drivers/misc/Kconfig 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/misc/Kconfig 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/Kconfig linux-4.1.23/drivers/misc/Kconfig +--- linux-4.1.23.orig/drivers/misc/Kconfig 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/misc/Kconfig 2016-05-02 22:53:55.000000000 +0200 @@ -10,6 +10,14 @@ select INPUT_POLLDEV default n @@ -48662,9 +52637,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/Kconfig linux-4.1.22/drivers/misc/Kconf source "drivers/misc/mic/Kconfig" source "drivers/misc/genwqe/Kconfig" source "drivers/misc/echo/Kconfig" -diff -Nur linux-4.1.22.orig/drivers/misc/Makefile linux-4.1.22/drivers/misc/Makefile ---- linux-4.1.22.orig/drivers/misc/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/misc/Makefile 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/Makefile linux-4.1.23/drivers/misc/Makefile +--- linux-4.1.23.orig/drivers/misc/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/misc/Makefile 2016-05-02 22:53:55.000000000 +0200 @@ -9,6 +9,7 @@ obj-$(CONFIG_INTEL_MID_PTI) += pti.o obj-$(CONFIG_ATMEL_SSC) += atmel-ssc.o @@ -48681,9 +52656,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/Makefile linux-4.1.22/drivers/misc/Make obj-y += mic/ obj-$(CONFIG_GENWQE) += genwqe/ obj-$(CONFIG_ECHO) += echo/ -diff -Nur linux-4.1.22.orig/drivers/misc/bcm2835_smi.c linux-4.1.22/drivers/misc/bcm2835_smi.c ---- linux-4.1.22.orig/drivers/misc/bcm2835_smi.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/bcm2835_smi.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/bcm2835_smi.c linux-4.1.23/drivers/misc/bcm2835_smi.c +--- linux-4.1.23.orig/drivers/misc/bcm2835_smi.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/bcm2835_smi.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,985 @@ +/** + * Broadcom Secondary Memory Interface driver @@ -49670,9 +53645,35 @@ diff -Nur linux-4.1.22.orig/drivers/misc/bcm2835_smi.c linux-4.1.22/drivers/misc +MODULE_LICENSE("GPL"); +MODULE_DESCRIPTION("Device driver for BCM2835's secondary memory interface"); +MODULE_AUTHOR("Luke Wren <luke@raspberrypi.org>"); -diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/Kconfig linux-4.1.22/drivers/misc/vc04_services/Kconfig ---- linux-4.1.22.orig/drivers/misc/vc04_services/Kconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/vc04_services/Kconfig 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/mei/bus.c linux-4.1.23/drivers/misc/mei/bus.c +--- linux-4.1.23.orig/drivers/misc/mei/bus.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/misc/mei/bus.c 2016-05-02 22:53:55.000000000 +0200 +@@ -238,11 +238,6 @@ + dev = cl->dev; + + mutex_lock(&dev->device_lock); +- if (dev->dev_state != MEI_DEV_ENABLED) { +- rets = -ENODEV; +- goto out; +- } +- + if (!mei_cl_is_connected(cl)) { + rets = -ENODEV; + goto out; +@@ -292,10 +287,6 @@ + dev = cl->dev; + + mutex_lock(&dev->device_lock); +- if (dev->dev_state != MEI_DEV_ENABLED) { +- rets = -ENODEV; +- goto out; +- } + + cb = mei_cl_read_cb(cl, NULL); + if (cb) +diff -Nur linux-4.1.23.orig/drivers/misc/vc04_services/Kconfig linux-4.1.23/drivers/misc/vc04_services/Kconfig +--- linux-4.1.23.orig/drivers/misc/vc04_services/Kconfig 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/vc04_services/Kconfig 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,9 @@ +config BCM2708_VCHIQ + tristate "Videocore VCHIQ" @@ -49683,9 +53684,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/Kconfig linux-4.1.22/driv + BCM2708 family of products. + Defaults to Y when the Broadcom Videocore services + are included in the build, N otherwise. -diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/Makefile linux-4.1.22/drivers/misc/vc04_services/Makefile ---- linux-4.1.22.orig/drivers/misc/vc04_services/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/vc04_services/Makefile 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/vc04_services/Makefile linux-4.1.23/drivers/misc/vc04_services/Makefile +--- linux-4.1.23.orig/drivers/misc/vc04_services/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/vc04_services/Makefile 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,14 @@ +obj-$(CONFIG_BCM2708_VCHIQ) += vchiq.o + @@ -49701,9 +53702,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/Makefile linux-4.1.22/dri + +ccflags-y += -DVCOS_VERIFY_BKPTS=1 -Idrivers/misc/vc04_services -DUSE_VCHIQ_ARM -D__VCCOREVER__=0x04000000 + -diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchi/connections/connection.h linux-4.1.22/drivers/misc/vc04_services/interface/vchi/connections/connection.h ---- linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchi/connections/connection.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/vc04_services/interface/vchi/connections/connection.h 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchi/connections/connection.h linux-4.1.23/drivers/misc/vc04_services/interface/vchi/connections/connection.h +--- linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchi/connections/connection.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/vc04_services/interface/vchi/connections/connection.h 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,328 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -50033,9 +54034,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchi/connection +#endif /* CONNECTION_H_ */ + +/****************************** End of file **********************************/ -diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchi/message_drivers/message.h linux-4.1.22/drivers/misc/vc04_services/interface/vchi/message_drivers/message.h ---- linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchi/message_drivers/message.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/vc04_services/interface/vchi/message_drivers/message.h 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchi/message_drivers/message.h linux-4.1.23/drivers/misc/vc04_services/interface/vchi/message_drivers/message.h +--- linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchi/message_drivers/message.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/vc04_services/interface/vchi/message_drivers/message.h 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,204 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -50241,9 +54242,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchi/message_dr +#endif // _VCHI_MESSAGE_H_ + +/****************************** End of file ***********************************/ -diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchi/vchi.h linux-4.1.22/drivers/misc/vc04_services/interface/vchi/vchi.h ---- linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchi/vchi.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/vc04_services/interface/vchi/vchi.h 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchi/vchi.h linux-4.1.23/drivers/misc/vc04_services/interface/vchi/vchi.h +--- linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchi/vchi.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/vc04_services/interface/vchi/vchi.h 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,378 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -50623,9 +54624,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchi/vchi.h lin +#endif /* VCHI_H_ */ + +/****************************** End of file **********************************/ -diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h linux-4.1.22/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h ---- linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h linux-4.1.23/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h +--- linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,224 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -50851,9 +54852,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h +#endif /* VCHI_CFG_H_ */ + +/****************************** End of file **********************************/ -diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h linux-4.1.22/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h ---- linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h linux-4.1.23/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h +--- linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,71 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -50926,9 +54927,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchi/vchi_cfg_i +//#define VCHI_RX_NANOLOCKS + +#endif /*VCHI_CFG_INTERNAL_H_*/ -diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchi/vchi_common.h linux-4.1.22/drivers/misc/vc04_services/interface/vchi/vchi_common.h ---- linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchi/vchi_common.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/vc04_services/interface/vchi/vchi_common.h 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchi/vchi_common.h linux-4.1.23/drivers/misc/vc04_services/interface/vchi/vchi_common.h +--- linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchi/vchi_common.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/vc04_services/interface/vchi/vchi_common.h 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,175 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -51105,9 +55106,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchi/vchi_commo + + +#endif // VCHI_COMMON_H_ -diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchi/vchi_mh.h linux-4.1.22/drivers/misc/vc04_services/interface/vchi/vchi_mh.h ---- linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchi/vchi_mh.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/vc04_services/interface/vchi/vchi_mh.h 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchi/vchi_mh.h linux-4.1.23/drivers/misc/vc04_services/interface/vchi/vchi_mh.h +--- linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchi/vchi_mh.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/vc04_services/interface/vchi/vchi_mh.h 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,42 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -51151,9 +55152,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchi/vchi_mh.h +#define VCHI_MEM_HANDLE_INVALID 0 + +#endif -diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h ---- linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h +--- linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -51195,9 +55196,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq +#include "vchiq_util.h" + +#endif -diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h ---- linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h +--- linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,42 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -51241,9 +55242,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq +#define VCHIQ_PLATFORM_FRAGMENTS_COUNT_IDX 1 + +#endif /* VCHIQ_2835_H */ -diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c ---- linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c +--- linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,580 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -51825,10 +55826,10 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq + + kfree(pagelist); +} -diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c ---- linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c 2016-04-29 18:02:46.000000000 +0200 -@@ -0,0 +1,2903 @@ +diff -Nur linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c +--- linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c 2016-05-02 22:53:55.000000000 +0200 +@@ -0,0 +1,2910 @@ +/** + * Copyright (c) 2014 Raspberry Pi (Trading) Ltd. All rights reserved. + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -52055,7 +56056,7 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq + } else if (instance->closing) { + vchiq_log_info(vchiq_arm_log_level, + "service_callback closing"); -+ return VCHIQ_ERROR; ++ return VCHIQ_SUCCESS; + } + DEBUG_TRACE(SERVICE_CALLBACK_LINE); + } @@ -52110,6 +56111,7 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq + USER_SERVICE_T *user_service; + VCHIQ_SERVICE_T *service; + VCHIQ_INSTANCE_T instance; ++ int skip_completion = 0; + DEBUG_INITIALISE(g_state.local) + + DEBUG_TRACE(SERVICE_CALLBACK_LINE); @@ -52176,9 +56178,6 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq + user_service->msg_queue[user_service->msg_insert & + (MSG_QUEUE_SIZE - 1)] = header; + user_service->msg_insert++; -+ spin_unlock(&msg_queue_spinlock); -+ -+ up(&user_service->insert_event); + + /* If there is a thread waiting in DEQUEUE_MESSAGE, or if + ** there is a MESSAGE_AVAILABLE in the completion queue then @@ -52187,13 +56186,22 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq + if (((user_service->message_available_pos - + instance->completion_remove) >= 0) || + user_service->dequeue_pending) { -+ DEBUG_TRACE(SERVICE_CALLBACK_LINE); + user_service->dequeue_pending = 0; -+ return VCHIQ_SUCCESS; ++ skip_completion = 1; + } + ++ spin_unlock(&msg_queue_spinlock); ++ ++ up(&user_service->insert_event); ++ + header = NULL; + } ++ ++ if (skip_completion) { ++ DEBUG_TRACE(SERVICE_CALLBACK_LINE); ++ return VCHIQ_SUCCESS; ++ } ++ + DEBUG_TRACE(SERVICE_CALLBACK_LINE); + + return add_completion(instance, reason, header, user_service, @@ -54732,9 +58740,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq + +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Broadcom Corporation"); -diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h ---- linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h +--- linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,220 @@ +/** + * Copyright (c) 2014 Raspberry Pi (Trading) Ltd. All rights reserved. @@ -54956,9 +58964,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq + + +#endif /* VCHIQ_ARM_H */ -diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h ---- linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h +--- linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,37 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -54997,9 +59005,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq +const char *vchiq_get_build_version(void); +const char *vchiq_get_build_time(void); +const char *vchiq_get_build_date(void); -diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h ---- linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h +--- linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,69 @@ +/** + * Copyright (c) 2010-2014 Broadcom. All rights reserved. @@ -55070,9 +59078,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq +#endif + +#endif /* VCHIQ_CFG_H */ -diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c ---- linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c +--- linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,120 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -55194,9 +59202,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq + mutex_unlock(&g_connected_mutex); +} +EXPORT_SYMBOL(vchiq_add_connected_callback); -diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h ---- linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h +--- linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,50 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -55248,9 +59256,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq +void vchiq_call_connected_callbacks(void); + +#endif /* VCHIQ_CONNECTED_H */ -diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c ---- linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c +--- linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,3929 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -59181,9 +63189,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq + numBytes = 0; + } +} -diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h ---- linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h 2016-04-29 18:02:46.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h +--- linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,712 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -59897,9 +63905,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq + size_t numBytes); + +#endif -diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_debugfs.c linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_debugfs.c ---- linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_debugfs.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_debugfs.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_debugfs.c linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_debugfs.c +--- linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_debugfs.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_debugfs.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,383 @@ +/** + * Copyright (c) 2014 Raspberry Pi (Trading) Ltd. All rights reserved. @@ -60284,9 +64292,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq +} + +#endif /* CONFIG_DEBUG_FS */ -diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_debugfs.h linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_debugfs.h ---- linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_debugfs.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_debugfs.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_debugfs.h linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_debugfs.h +--- linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_debugfs.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_debugfs.h 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,52 @@ +/** + * Copyright (c) 2014 Raspberry Pi (Trading) Ltd. All rights reserved. @@ -60340,9 +64348,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq +void vchiq_debugfs_remove_instance(VCHIQ_INSTANCE_T instance); + +#endif /* VCHIQ_DEBUGFS_H */ -diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion ---- linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion +--- linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,87 @@ +#!/usr/bin/perl -w + @@ -60431,9 +64439,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq + return vchiq_build_time; +} +EOF -diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h ---- linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h +--- linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,189 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -60624,9 +64632,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq + short *peer_version); + +#endif /* VCHIQ_IF_H */ -diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h ---- linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h +--- linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,131 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -60759,9 +64767,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq +#define VCHIQ_IOC_MAX 17 + +#endif -diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c ---- linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c +--- linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,458 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -61221,9 +65229,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq + + return status; +} -diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_killable.h linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_killable.h ---- linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_killable.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_killable.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_killable.h linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_killable.h +--- linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_killable.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_killable.h 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,69 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -61294,9 +65302,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq +#define mutex_lock_interruptible mutex_lock_interruptible_killable + +#endif -diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h ---- linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h +--- linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,71 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -61369,9 +65377,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq + const VCHIQ_PLATFORM_DATA_T * platform_data); + +#endif -diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h ---- linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h +--- linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,58 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -61431,9 +65439,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq +} FRAGMENTS_T; + +#endif /* VCHIQ_PAGELIST_H */ -diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c ---- linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c +--- linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,860 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -62295,9 +66303,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq + return ret; +} +EXPORT_SYMBOL(vchi_service_release); -diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c ---- linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c +--- linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,156 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -62455,9 +66463,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq + + return header; +} -diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h ---- linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h +--- linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,82 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -62541,9 +66549,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq +extern VCHIQ_HEADER_T *vchiu_queue_pop(VCHIU_QUEUE_T *queue); + +#endif -diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c ---- linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c +--- linux-4.1.23.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,59 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -62604,9 +66612,9 @@ diff -Nur linux-4.1.22.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq +{ + return vchiq_build_time; +} -diff -Nur linux-4.1.22.orig/drivers/mmc/core/quirks.c linux-4.1.22/drivers/mmc/core/quirks.c ---- linux-4.1.22.orig/drivers/mmc/core/quirks.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/mmc/core/quirks.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/mmc/core/quirks.c linux-4.1.23/drivers/mmc/core/quirks.c +--- linux-4.1.23.orig/drivers/mmc/core/quirks.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/mmc/core/quirks.c 2016-05-02 22:53:55.000000000 +0200 @@ -71,6 +71,7 @@ void mmc_fixup_device(struct mmc_card *card, const struct mmc_fixup *table) @@ -62626,9 +66634,9 @@ diff -Nur linux-4.1.22.orig/drivers/mmc/core/quirks.c linux-4.1.22/drivers/mmc/c + card->quirks |= MMC_QUIRK_BLK_NO_CMD23; } EXPORT_SYMBOL(mmc_fixup_device); -diff -Nur linux-4.1.22.orig/drivers/mmc/host/Kconfig linux-4.1.22/drivers/mmc/host/Kconfig ---- linux-4.1.22.orig/drivers/mmc/host/Kconfig 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/mmc/host/Kconfig 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/mmc/host/Kconfig linux-4.1.23/drivers/mmc/host/Kconfig +--- linux-4.1.23.orig/drivers/mmc/host/Kconfig 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/mmc/host/Kconfig 2016-05-02 22:53:55.000000000 +0200 @@ -4,6 +4,45 @@ comment "MMC/SD/SDIO Host Controller Drivers" @@ -62675,9 +66683,9 @@ diff -Nur linux-4.1.22.orig/drivers/mmc/host/Kconfig linux-4.1.22/drivers/mmc/ho config MMC_ARMMMCI tristate "ARM AMBA Multimedia Card Interface support" depends on ARM_AMBA -diff -Nur linux-4.1.22.orig/drivers/mmc/host/Makefile linux-4.1.22/drivers/mmc/host/Makefile ---- linux-4.1.22.orig/drivers/mmc/host/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/mmc/host/Makefile 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/mmc/host/Makefile linux-4.1.23/drivers/mmc/host/Makefile +--- linux-4.1.23.orig/drivers/mmc/host/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/mmc/host/Makefile 2016-05-02 22:53:55.000000000 +0200 @@ -18,6 +18,8 @@ obj-$(CONFIG_MMC_SDHCI_SIRF) += sdhci-sirf.o obj-$(CONFIG_MMC_SDHCI_F_SDH30) += sdhci_f_sdh30.o @@ -62687,9 +66695,36 @@ diff -Nur linux-4.1.22.orig/drivers/mmc/host/Makefile linux-4.1.22/drivers/mmc/h obj-$(CONFIG_MMC_WBSD) += wbsd.o obj-$(CONFIG_MMC_AU1X) += au1xmmc.o obj-$(CONFIG_MMC_OMAP) += omap.o -diff -Nur linux-4.1.22.orig/drivers/mmc/host/bcm2835-mmc.c linux-4.1.22/drivers/mmc/host/bcm2835-mmc.c ---- linux-4.1.22.orig/drivers/mmc/host/bcm2835-mmc.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/mmc/host/bcm2835-mmc.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/mmc/host/atmel-mci.c linux-4.1.23/drivers/mmc/host/atmel-mci.c +--- linux-4.1.23.orig/drivers/mmc/host/atmel-mci.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/mmc/host/atmel-mci.c 2016-05-02 22:53:55.000000000 +0200 +@@ -2281,23 +2281,6 @@ + { + host->dma.chan = dma_request_slave_channel_reason(&host->pdev->dev, + "rxtx"); +- +- if (PTR_ERR(host->dma.chan) == -ENODEV) { +- struct mci_platform_data *pdata = host->pdev->dev.platform_data; +- dma_cap_mask_t mask; +- +- if (!pdata || !pdata->dma_filter) +- return -ENODEV; +- +- dma_cap_zero(mask); +- dma_cap_set(DMA_SLAVE, mask); +- +- host->dma.chan = dma_request_channel(mask, pdata->dma_filter, +- pdata->dma_slave); +- if (!host->dma.chan) +- host->dma.chan = ERR_PTR(-ENODEV); +- } +- + if (IS_ERR(host->dma.chan)) + return PTR_ERR(host->dma.chan); + +diff -Nur linux-4.1.23.orig/drivers/mmc/host/bcm2835-mmc.c linux-4.1.23/drivers/mmc/host/bcm2835-mmc.c +--- linux-4.1.23.orig/drivers/mmc/host/bcm2835-mmc.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/mmc/host/bcm2835-mmc.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,1588 @@ +/* + * BCM2835 MMC host driver. @@ -64279,10 +68314,10 @@ diff -Nur linux-4.1.22.orig/drivers/mmc/host/bcm2835-mmc.c linux-4.1.22/drivers/ +MODULE_DESCRIPTION("BCM2835 SDHCI driver"); +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Gellert Weisz"); -diff -Nur linux-4.1.22.orig/drivers/mmc/host/bcm2835-sdhost.c linux-4.1.22/drivers/mmc/host/bcm2835-sdhost.c ---- linux-4.1.22.orig/drivers/mmc/host/bcm2835-sdhost.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/mmc/host/bcm2835-sdhost.c 2016-04-29 18:02:47.000000000 +0200 -@@ -0,0 +1,2122 @@ +diff -Nur linux-4.1.23.orig/drivers/mmc/host/bcm2835-sdhost.c linux-4.1.23/drivers/mmc/host/bcm2835-sdhost.c +--- linux-4.1.23.orig/drivers/mmc/host/bcm2835-sdhost.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/mmc/host/bcm2835-sdhost.c 2016-05-02 22:53:55.000000000 +0200 +@@ -0,0 +1,2159 @@ +/* + * BCM2835 SD host driver. + * @@ -64335,6 +68370,7 @@ diff -Nur linux-4.1.22.orig/drivers/mmc/host/bcm2835-sdhost.c linux-4.1.22/drive +#include <linux/of_dma.h> +#include <linux/time.h> +#include <linux/workqueue.h> ++#include <soc/bcm2835/raspberrypi-firmware.h> + +#define DRIVER_NAME "sdhost-bcm2835" + @@ -64475,6 +68511,8 @@ diff -Nur linux-4.1.22.orig/drivers/mmc/host/bcm2835-sdhost.c linux-4.1.22/drive + unsigned int use_sbc:1; /* Send CMD23 */ + + unsigned int debug:1; /* Enable debug output */ ++ unsigned int firmware_sets_cdiv:1; /* Let the firmware manage the clock */ ++ unsigned int reset_clock:1; /* Reset the clock fore the next request */ + + /*DMA part*/ + struct dma_chan *dma_chan_rxtx; /* DMA channel for reads and writes */ @@ -64722,7 +68760,7 @@ diff -Nur linux-4.1.22.orig/drivers/mmc/host/bcm2835-sdhost.c linux-4.1.22/drive + host->clock = 0; + host->sectors = 0; + bcm2835_sdhost_write(host, host->hcfg, SDHCFG); -+ bcm2835_sdhost_write(host, host->cdiv, SDCDIV); ++ bcm2835_sdhost_write(host, SDCDIV_MAX_CDIV, SDCDIV); + mmiowb(); +} + @@ -65795,6 +69833,7 @@ diff -Nur linux-4.1.22.orig/drivers/mmc/host/bcm2835-sdhost.c linux-4.1.22/drive +{ + int div = 0; /* Initialized for compiler warning */ + unsigned int input_clock = clock; ++ unsigned long flags; + + if (host->debug) + pr_info("%s: set_clock(%d)\n", mmc_hostname(host->mmc), clock); @@ -65826,62 +69865,84 @@ diff -Nur linux-4.1.22.orig/drivers/mmc/host/bcm2835-sdhost.c linux-4.1.22/drive + + host->mmc->actual_clock = 0; + -+ if (clock < 100000) { -+ /* Can't stop the clock, but make it as slow as possible -+ * to show willing -+ */ -+ host->cdiv = SDCDIV_MAX_CDIV; -+ bcm2835_sdhost_write(host, host->cdiv, SDCDIV); -+ return; -+ } ++ if (host->firmware_sets_cdiv) { ++ u32 msg[3] = { clock, 0, 0 }; + -+ div = host->max_clk / clock; -+ if (div < 2) -+ div = 2; -+ if ((host->max_clk / div) > clock) -+ div++; -+ div -= 2; ++ rpi_firmware_property(rpi_firmware_get(NULL), ++ RPI_FIRMWARE_SET_SDHOST_CLOCK, ++ &msg, sizeof(msg)); + -+ if (div > SDCDIV_MAX_CDIV) -+ div = SDCDIV_MAX_CDIV; ++ clock = max(msg[1], msg[2]); ++ spin_lock_irqsave(&host->lock, flags); ++ } else { ++ spin_lock_irqsave(&host->lock, flags); ++ if (clock < 100000) { ++ /* Can't stop the clock, but make it as slow as ++ * possible to show willing ++ */ ++ host->cdiv = SDCDIV_MAX_CDIV; ++ bcm2835_sdhost_write(host, host->cdiv, SDCDIV); ++ mmiowb(); ++ spin_unlock_irqrestore(&host->lock, flags); ++ return; ++ } + -+ clock = host->max_clk / (div + 2); -+ host->mmc->actual_clock = clock; ++ div = host->max_clk / clock; ++ if (div < 2) ++ div = 2; ++ if ((host->max_clk / div) > clock) ++ div++; ++ div -= 2; ++ ++ if (div > SDCDIV_MAX_CDIV) ++ div = SDCDIV_MAX_CDIV; ++ ++ clock = host->max_clk / (div + 2); ++ ++ host->cdiv = div; ++ bcm2835_sdhost_write(host, host->cdiv, SDCDIV); ++ ++ if (host->debug) ++ pr_info("%s: clock=%d -> max_clk=%d, cdiv=%x " ++ "(actual clock %d)\n", ++ mmc_hostname(host->mmc), input_clock, ++ host->max_clk, host->cdiv, ++ clock); ++ } + + /* Calibrate some delays */ + + host->ns_per_fifo_word = (1000000000/clock) * + ((host->mmc->caps & MMC_CAP_4_BIT_DATA) ? 8 : 32); + -+ if (clock > input_clock) { -+ /* Save the closest value, to make it easier -+ to reduce in the event of error */ -+ host->overclock_50 = (clock/MHZ); -+ -+ if (clock != host->overclock) { -+ pr_warn("%s: overclocking to %dHz\n", -+ mmc_hostname(host->mmc), clock); -+ host->overclock = clock; ++ if (input_clock == 50 * MHZ) { ++ if (clock > input_clock) { ++ /* Save the closest value, to make it easier ++ to reduce in the event of error */ ++ host->overclock_50 = (clock/MHZ); ++ ++ if (clock != host->overclock) { ++ pr_warn("%s: overclocking to %dHz\n", ++ mmc_hostname(host->mmc), clock); ++ host->overclock = clock; ++ } ++ } else if (host->overclock) { ++ host->overclock = 0; ++ if (clock == 50 * MHZ) ++ pr_warn("%s: cancelling overclock\n", ++ mmc_hostname(host->mmc)); + } + } -+ else if (host->overclock) -+ { -+ host->overclock = 0; -+ if (clock == 50 * MHZ) -+ pr_warn("%s: cancelling overclock\n", -+ mmc_hostname(host->mmc)); -+ } -+ -+ host->cdiv = div; -+ bcm2835_sdhost_write(host, host->cdiv, SDCDIV); + + /* Set the timeout to 500ms */ -+ bcm2835_sdhost_write(host, host->mmc->actual_clock/2, SDTOUT); ++ bcm2835_sdhost_write(host, clock/2, SDTOUT); + -+ if (host->debug) -+ pr_info("%s: clock=%d -> max_clk=%d, cdiv=%x (actual clock %d)\n", -+ mmc_hostname(host->mmc), input_clock, -+ host->max_clk, host->cdiv, host->mmc->actual_clock); ++ host->mmc->actual_clock = clock; ++ host->clock = input_clock; ++ host->reset_clock = 0; ++ ++ mmiowb(); ++ spin_unlock_irqrestore(&host->lock, flags); +} + +static void bcm2835_sdhost_request(struct mmc_host *mmc, struct mmc_request *mrq) @@ -65930,6 +69991,9 @@ diff -Nur linux-4.1.22.orig/drivers/mmc/host/bcm2835-sdhost.c linux-4.1.22/drive + (mrq->data->blocks > host->pio_limit)) + bcm2835_sdhost_prepare_dma(host, mrq->data); + ++ if (host->reset_clock) ++ bcm2835_sdhost_set_clock(host, host->clock); ++ + spin_lock_irqsave(&host->lock, flags); + + WARN_ON(host->mrq != NULL); @@ -65996,11 +70060,6 @@ diff -Nur linux-4.1.22.orig/drivers/mmc/host/bcm2835-sdhost.c linux-4.1.22/drive + + log_event("IOS<", ios->clock, 0); + -+ if (!ios->clock || ios->clock != host->clock) { -+ bcm2835_sdhost_set_clock(host, ios->clock); -+ host->clock = ios->clock; -+ } -+ + /* set bus width */ + host->hcfg &= ~SDHCFG_WIDE_EXT_BUS; + if (ios->bus_width == MMC_BUS_WIDTH_4) @@ -66016,6 +70075,9 @@ diff -Nur linux-4.1.22.orig/drivers/mmc/host/bcm2835-sdhost.c linux-4.1.22/drive + mmiowb(); + + spin_unlock_irqrestore(&host->lock, flags); ++ ++ if (!ios->clock || ios->clock != host->clock) ++ bcm2835_sdhost_set_clock(host, ios->clock); +} + +static struct mmc_host_ops bcm2835_sdhost_ops = { @@ -66087,7 +70149,7 @@ diff -Nur linux-4.1.22.orig/drivers/mmc/host/bcm2835-sdhost.c linux-4.1.22/drive + host->overclock_50--; + pr_warn("%s: reducing overclock due to errors\n", + mmc_hostname(host->mmc)); -+ bcm2835_sdhost_set_clock(host,50*MHZ); ++ host->reset_clock = 1; + mrq->cmd->error = -EILSEQ; + mrq->cmd->retries = 1; + } @@ -66244,6 +70306,7 @@ diff -Nur linux-4.1.22.orig/drivers/mmc/host/bcm2835-sdhost.c linux-4.1.22/drive + struct resource *iomem; + struct bcm2835_host *host; + struct mmc_host *mmc; ++ u32 msg[3]; + int ret; + + pr_debug("bcm2835_sdhost_probe\n"); @@ -66255,7 +70318,6 @@ diff -Nur linux-4.1.22.orig/drivers/mmc/host/bcm2835-sdhost.c linux-4.1.22/drive + mmc->ops = &bcm2835_sdhost_ops; + host = mmc_priv(mmc); + host->mmc = mmc; -+ host->cmd_quick_poll_retries = 0; + host->pio_timeout = msecs_to_jiffies(500); + host->pio_limit = 1; + host->max_delay = 1; /* Warn if over 1ms */ @@ -66344,6 +70406,16 @@ diff -Nur linux-4.1.22.orig/drivers/mmc/host/bcm2835-sdhost.c linux-4.1.22/drive + else + mmc->caps |= MMC_CAP_4_BIT_DATA; + ++ msg[0] = 0; ++ msg[1] = ~0; ++ msg[2] = ~0; ++ ++ rpi_firmware_property(rpi_firmware_get(NULL), ++ RPI_FIRMWARE_SET_SDHOST_CLOCK, ++ &msg, sizeof(msg)); ++ ++ host->firmware_sets_cdiv = (msg[1] != ~0); ++ + ret = bcm2835_sdhost_add_host(host); + if (ret) + goto err; @@ -66405,9 +70477,100 @@ diff -Nur linux-4.1.22.orig/drivers/mmc/host/bcm2835-sdhost.c linux-4.1.22/drive +MODULE_DESCRIPTION("BCM2835 SDHost driver"); +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Phil Elwell"); -diff -Nur linux-4.1.22.orig/drivers/mtd/nand/Kconfig linux-4.1.22/drivers/mtd/nand/Kconfig ---- linux-4.1.22.orig/drivers/mtd/nand/Kconfig 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/mtd/nand/Kconfig 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/mmc/host/mmc_spi.c linux-4.1.23/drivers/mmc/host/mmc_spi.c +--- linux-4.1.23.orig/drivers/mmc/host/mmc_spi.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/mmc/host/mmc_spi.c 2016-05-02 22:53:55.000000000 +0200 +@@ -1436,12 +1436,6 @@ + host->pdata->cd_debounce); + if (status != 0) + goto fail_add_host; +- +- /* The platform has a CD GPIO signal that may support +- * interrupts, so let mmc_gpiod_request_cd_irq() decide +- * if polling is needed or not. +- */ +- mmc->caps &= ~MMC_CAP_NEEDS_POLL; + mmc_gpiod_request_cd_irq(mmc); + } + +diff -Nur linux-4.1.23.orig/drivers/mmc/host/sdhci-pxav3.c linux-4.1.23/drivers/mmc/host/sdhci-pxav3.c +--- linux-4.1.23.orig/drivers/mmc/host/sdhci-pxav3.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/mmc/host/sdhci-pxav3.c 2016-05-02 22:53:55.000000000 +0200 +@@ -136,10 +136,6 @@ + struct resource *res; + + host->quirks |= SDHCI_QUIRK_MISSING_CAPS; +- +- host->caps = sdhci_readl(host, SDHCI_CAPABILITIES); +- host->caps1 = sdhci_readl(host, SDHCI_CAPABILITIES_1); +- + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, + "conf-sdio3"); + if (res) { +@@ -153,6 +149,7 @@ + * Configuration register, if the adjustment is not done, + * remove them from the capabilities. + */ ++ host->caps1 = sdhci_readl(host, SDHCI_CAPABILITIES_1); + host->caps1 &= ~(SDHCI_SUPPORT_SDR50 | SDHCI_SUPPORT_DDR50); + + dev_warn(&pdev->dev, "conf-sdio3 register not found: disabling SDR50 and DDR50 modes.\nConsider updating your dtb\n"); +@@ -163,6 +160,7 @@ + * controller has different capabilities than the ones shown + * in its registers + */ ++ host->caps = sdhci_readl(host, SDHCI_CAPABILITIES); + if (of_property_read_bool(np, "no-1-8-v")) { + host->caps &= ~SDHCI_CAN_VDD_180; + host->mmc->caps &= ~MMC_CAP_1_8V_DDR; +diff -Nur linux-4.1.23.orig/drivers/mmc/host/sdhci.c linux-4.1.23/drivers/mmc/host/sdhci.c +--- linux-4.1.23.orig/drivers/mmc/host/sdhci.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/mmc/host/sdhci.c 2016-05-02 22:53:55.000000000 +0200 +@@ -681,20 +681,9 @@ + if (!data) + target_timeout = cmd->busy_timeout * 1000; + else { +- target_timeout = DIV_ROUND_UP(data->timeout_ns, 1000); +- if (host->clock && data->timeout_clks) { +- unsigned long long val; +- +- /* +- * data->timeout_clks is in units of clock cycles. +- * host->clock is in Hz. target_timeout is in us. +- * Hence, us = 1000000 * cycles / Hz. Round up. +- */ +- val = 1000000 * data->timeout_clks; +- if (do_div(val, host->clock)) +- target_timeout++; +- target_timeout += val; +- } ++ target_timeout = data->timeout_ns / 1000; ++ if (host->clock) ++ target_timeout += data->timeout_clks / host->clock; + } + + /* +@@ -3137,14 +3126,14 @@ + if (caps[0] & SDHCI_TIMEOUT_CLK_UNIT) + host->timeout_clk *= 1000; + +- if (override_timeout_clk) +- host->timeout_clk = override_timeout_clk; +- + mmc->max_busy_timeout = host->ops->get_max_timeout_count ? + host->ops->get_max_timeout_count(host) : 1 << 27; + mmc->max_busy_timeout /= host->timeout_clk; + } + ++ if (override_timeout_clk) ++ host->timeout_clk = override_timeout_clk; ++ + mmc->caps |= MMC_CAP_SDIO_IRQ | MMC_CAP_ERASE | MMC_CAP_CMD23; + mmc->caps2 |= MMC_CAP2_SDIO_IRQ_NOTHREAD; + +diff -Nur linux-4.1.23.orig/drivers/mtd/nand/Kconfig linux-4.1.23/drivers/mtd/nand/Kconfig +--- linux-4.1.23.orig/drivers/mtd/nand/Kconfig 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/mtd/nand/Kconfig 2016-05-02 22:53:55.000000000 +0200 @@ -41,6 +41,13 @@ tristate default n @@ -66422,9 +70585,9 @@ diff -Nur linux-4.1.22.orig/drivers/mtd/nand/Kconfig linux-4.1.22/drivers/mtd/na config MTD_NAND_DENALI tristate "Support Denali NAND controller" depends on HAS_DMA -diff -Nur linux-4.1.22.orig/drivers/mtd/nand/Makefile linux-4.1.22/drivers/mtd/nand/Makefile ---- linux-4.1.22.orig/drivers/mtd/nand/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/mtd/nand/Makefile 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/mtd/nand/Makefile linux-4.1.23/drivers/mtd/nand/Makefile +--- linux-4.1.23.orig/drivers/mtd/nand/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/mtd/nand/Makefile 2016-05-02 22:53:55.000000000 +0200 @@ -14,6 +14,7 @@ obj-$(CONFIG_MTD_NAND_DENALI_PCI) += denali_pci.o obj-$(CONFIG_MTD_NAND_DENALI_DT) += denali_dt.o @@ -66433,9 +70596,9 @@ diff -Nur linux-4.1.22.orig/drivers/mtd/nand/Makefile linux-4.1.22/drivers/mtd/n obj-$(CONFIG_MTD_NAND_BF5XX) += bf5xx_nand.o obj-$(CONFIG_MTD_NAND_S3C2410) += s3c2410.o obj-$(CONFIG_MTD_NAND_DAVINCI) += davinci_nand.o -diff -Nur linux-4.1.22.orig/drivers/mtd/nand/bcm2835_smi_nand.c linux-4.1.22/drivers/mtd/nand/bcm2835_smi_nand.c ---- linux-4.1.22.orig/drivers/mtd/nand/bcm2835_smi_nand.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/mtd/nand/bcm2835_smi_nand.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/mtd/nand/bcm2835_smi_nand.c linux-4.1.23/drivers/mtd/nand/bcm2835_smi_nand.c +--- linux-4.1.23.orig/drivers/mtd/nand/bcm2835_smi_nand.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/mtd/nand/bcm2835_smi_nand.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,268 @@ +/** + * NAND flash driver for Broadcom Secondary Memory Interface @@ -66705,9 +70868,41 @@ diff -Nur linux-4.1.22.orig/drivers/mtd/nand/bcm2835_smi_nand.c linux-4.1.22/dri +MODULE_DESCRIPTION + ("Driver for NAND chips using Broadcom Secondary Memory Interface"); +MODULE_AUTHOR("Luke Wren <luke@raspberrypi.org>"); -diff -Nur linux-4.1.22.orig/drivers/net/ethernet/microchip/enc28j60.c linux-4.1.22/drivers/net/ethernet/microchip/enc28j60.c ---- linux-4.1.22.orig/drivers/net/ethernet/microchip/enc28j60.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/net/ethernet/microchip/enc28j60.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/mtd/onenand/onenand_base.c linux-4.1.23/drivers/mtd/onenand/onenand_base.c +--- linux-4.1.23.orig/drivers/mtd/onenand/onenand_base.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/mtd/onenand/onenand_base.c 2016-05-02 22:53:55.000000000 +0200 +@@ -2599,7 +2599,6 @@ + */ + static int onenand_block_markbad(struct mtd_info *mtd, loff_t ofs) + { +- struct onenand_chip *this = mtd->priv; + int ret; + + ret = onenand_block_isbad(mtd, ofs); +@@ -2611,7 +2610,7 @@ + } + + onenand_get_device(mtd, FL_WRITING); +- ret = this->block_markbad(mtd, ofs); ++ ret = mtd_block_markbad(mtd, ofs); + onenand_release_device(mtd); + return ret; + } +diff -Nur linux-4.1.23.orig/drivers/net/ethernet/marvell/mvneta.c linux-4.1.23/drivers/net/ethernet/marvell/mvneta.c +--- linux-4.1.23.orig/drivers/net/ethernet/marvell/mvneta.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/net/ethernet/marvell/mvneta.c 2016-05-02 22:53:55.000000000 +0200 +@@ -3157,7 +3157,7 @@ + dev->features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO; + dev->hw_features |= dev->features; + dev->vlan_features |= dev->features; +- dev->priv_flags |= IFF_UNICAST_FLT | IFF_LIVE_ADDR_CHANGE; ++ dev->priv_flags |= IFF_UNICAST_FLT; + dev->gso_max_segs = MVNETA_MAX_TSO_SEGS; + + err = register_netdev(dev); +diff -Nur linux-4.1.23.orig/drivers/net/ethernet/microchip/enc28j60.c linux-4.1.23/drivers/net/ethernet/microchip/enc28j60.c +--- linux-4.1.23.orig/drivers/net/ethernet/microchip/enc28j60.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/net/ethernet/microchip/enc28j60.c 2016-05-02 22:53:55.000000000 +0200 @@ -1630,10 +1630,21 @@ return 0; } @@ -66730,9 +70925,50 @@ diff -Nur linux-4.1.22.orig/drivers/net/ethernet/microchip/enc28j60.c linux-4.1. }, .probe = enc28j60_probe, .remove = enc28j60_remove, -diff -Nur linux-4.1.22.orig/drivers/net/usb/smsc95xx.c linux-4.1.22/drivers/net/usb/smsc95xx.c ---- linux-4.1.22.orig/drivers/net/usb/smsc95xx.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/net/usb/smsc95xx.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/irda/irtty-sir.c linux-4.1.23/drivers/net/irda/irtty-sir.c +--- linux-4.1.23.orig/drivers/net/irda/irtty-sir.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/net/irda/irtty-sir.c 2016-05-02 22:53:55.000000000 +0200 +@@ -430,6 +430,16 @@ + + /* Module stuff handled via irda_ldisc.owner - Jean II */ + ++ /* First make sure we're not already connected. */ ++ if (tty->disc_data != NULL) { ++ priv = tty->disc_data; ++ if (priv && priv->magic == IRTTY_MAGIC) { ++ ret = -EEXIST; ++ goto out; ++ } ++ tty->disc_data = NULL; /* ### */ ++ } ++ + /* stop the underlying driver */ + irtty_stop_receiver(tty, TRUE); + if (tty->ops->stop) +diff -Nur linux-4.1.23.orig/drivers/net/rionet.c linux-4.1.23/drivers/net/rionet.c +--- linux-4.1.23.orig/drivers/net/rionet.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/net/rionet.c 2016-05-02 22:53:55.000000000 +0200 +@@ -280,7 +280,7 @@ + struct net_device *ndev = dev_id; + struct rionet_private *rnet = netdev_priv(ndev); + +- spin_lock(&rnet->tx_lock); ++ spin_lock(&rnet->lock); + + if (netif_msg_intr(rnet)) + printk(KERN_INFO +@@ -299,7 +299,7 @@ + if (rnet->tx_cnt < RIONET_TX_RING_SIZE) + netif_wake_queue(ndev); + +- spin_unlock(&rnet->tx_lock); ++ spin_unlock(&rnet->lock); + } + + static int rionet_open(struct net_device *ndev) +diff -Nur linux-4.1.23.orig/drivers/net/usb/smsc95xx.c linux-4.1.23/drivers/net/usb/smsc95xx.c +--- linux-4.1.23.orig/drivers/net/usb/smsc95xx.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/net/usb/smsc95xx.c 2016-05-02 22:53:55.000000000 +0200 @@ -59,6 +59,7 @@ #define SUSPEND_SUSPEND3 (0x08) #define SUSPEND_ALLMODES (SUSPEND_SUSPEND0 | SUSPEND_SUSPEND1 | \ @@ -66741,7 +70977,7 @@ diff -Nur linux-4.1.22.orig/drivers/net/usb/smsc95xx.c linux-4.1.22/drivers/net/ struct smsc95xx_priv { u32 mac_cr; -@@ -70,10 +71,18 @@ +@@ -70,10 +71,22 @@ u8 suspend_flags; }; @@ -66758,10 +70994,14 @@ diff -Nur linux-4.1.22.orig/drivers/net/usb/smsc95xx.c linux-4.1.22/drivers/net/ +module_param(macaddr, charp, 0); +MODULE_PARM_DESC(macaddr, "MAC address"); + ++static int packetsize = 0; ++module_param(packetsize, int, 0644); ++MODULE_PARM_DESC(packetsize, "Override the RX URB packet size"); ++ static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index, u32 *data, int in_pm) { -@@ -763,6 +772,53 @@ +@@ -763,6 +776,53 @@ return generic_mii_ioctl(&dev->mii, if_mii(rq), cmd, NULL); } @@ -66815,7 +71055,7 @@ diff -Nur linux-4.1.22.orig/drivers/net/usb/smsc95xx.c linux-4.1.22/drivers/net/ static void smsc95xx_init_mac_address(struct usbnet *dev) { /* try reading mac address from EEPROM */ -@@ -775,7 +831,11 @@ +@@ -775,7 +835,11 @@ } } @@ -66828,7 +71068,26 @@ diff -Nur linux-4.1.22.orig/drivers/net/usb/smsc95xx.c linux-4.1.22/drivers/net/ eth_hw_addr_random(dev->net); netif_dbg(dev, ifup, dev->net, "MAC address set to eth_random_addr\n"); } -@@ -1785,7 +1845,8 @@ +@@ -946,13 +1010,13 @@ + + if (!turbo_mode) { + burst_cap = 0; +- dev->rx_urb_size = MAX_SINGLE_PACKET_SIZE; ++ dev->rx_urb_size = packetsize ? packetsize : MAX_SINGLE_PACKET_SIZE; + } else if (dev->udev->speed == USB_SPEED_HIGH) { +- burst_cap = DEFAULT_HS_BURST_CAP_SIZE / HS_USB_PKT_SIZE; +- dev->rx_urb_size = DEFAULT_HS_BURST_CAP_SIZE; ++ dev->rx_urb_size = packetsize ? packetsize : DEFAULT_HS_BURST_CAP_SIZE; ++ burst_cap = dev->rx_urb_size / HS_USB_PKT_SIZE; + } else { +- burst_cap = DEFAULT_FS_BURST_CAP_SIZE / FS_USB_PKT_SIZE; +- dev->rx_urb_size = DEFAULT_FS_BURST_CAP_SIZE; ++ dev->rx_urb_size = packetsize ? packetsize : DEFAULT_FS_BURST_CAP_SIZE; ++ burst_cap = dev->rx_urb_size / FS_USB_PKT_SIZE; + } + + netif_dbg(dev, ifup, dev->net, "rx_urb_size=%ld\n", +@@ -1785,7 +1849,8 @@ if (dev->net->features & NETIF_F_RXCSUM) smsc95xx_rx_csum_offload(skb); skb_trim(skb, skb->len - 4); /* remove fcs */ @@ -66838,7 +71097,7 @@ diff -Nur linux-4.1.22.orig/drivers/net/usb/smsc95xx.c linux-4.1.22/drivers/net/ return 1; } -@@ -1803,7 +1864,8 @@ +@@ -1803,7 +1868,8 @@ if (dev->net->features & NETIF_F_RXCSUM) smsc95xx_rx_csum_offload(ax_skb); skb_trim(ax_skb, ax_skb->len - 4); /* remove fcs */ @@ -66848,9 +71107,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/usb/smsc95xx.c linux-4.1.22/drivers/net/ usbnet_skb_return(dev, ax_skb); } -diff -Nur linux-4.1.22.orig/drivers/net/wireless/Kconfig linux-4.1.22/drivers/net/wireless/Kconfig ---- linux-4.1.22.orig/drivers/net/wireless/Kconfig 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/net/wireless/Kconfig 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/Kconfig linux-4.1.23/drivers/net/wireless/Kconfig +--- linux-4.1.23.orig/drivers/net/wireless/Kconfig 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/net/wireless/Kconfig 2016-05-02 22:53:55.000000000 +0200 @@ -277,7 +277,9 @@ source "drivers/net/wireless/orinoco/Kconfig" source "drivers/net/wireless/p54/Kconfig" @@ -66862,9 +71121,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/Kconfig linux-4.1.22/drivers/ne source "drivers/net/wireless/ti/Kconfig" source "drivers/net/wireless/zd1211rw/Kconfig" source "drivers/net/wireless/mwifiex/Kconfig" -diff -Nur linux-4.1.22.orig/drivers/net/wireless/Makefile linux-4.1.22/drivers/net/wireless/Makefile ---- linux-4.1.22.orig/drivers/net/wireless/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/net/wireless/Makefile 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/Makefile linux-4.1.23/drivers/net/wireless/Makefile +--- linux-4.1.23.orig/drivers/net/wireless/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/net/wireless/Makefile 2016-05-02 22:53:55.000000000 +0200 @@ -24,7 +24,8 @@ obj-$(CONFIG_ZD1211RW) += zd1211rw/ obj-$(CONFIG_RTL8180) += rtl818x/ @@ -66884,9 +71143,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/Makefile linux-4.1.22/drivers/n obj-$(CONFIG_P54_COMMON) += p54/ obj-$(CONFIG_ATH_CARDS) += ath/ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c linux-4.1.22/drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c ---- linux-4.1.22.orig/drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c linux-4.1.23/drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c +--- linux-4.1.23.orig/drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c 2016-05-02 22:53:55.000000000 +0200 @@ -2482,6 +2482,8 @@ * preference in cfg struct to apply this to * FW later while initializing the dongle @@ -66896,9 +71155,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c l cfg->pwr_save = enabled; if (!check_vif_up(ifp->vif)) { -diff -Nur linux-4.1.22.orig/drivers/net/wireless/brcm80211/brcmfmac/sdio.c linux-4.1.22/drivers/net/wireless/brcm80211/brcmfmac/sdio.c ---- linux-4.1.22.orig/drivers/net/wireless/brcm80211/brcmfmac/sdio.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/net/wireless/brcm80211/brcmfmac/sdio.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/brcm80211/brcmfmac/sdio.c linux-4.1.23/drivers/net/wireless/brcm80211/brcmfmac/sdio.c +--- linux-4.1.23.orig/drivers/net/wireless/brcm80211/brcmfmac/sdio.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/net/wireless/brcm80211/brcmfmac/sdio.c 2016-05-02 22:53:55.000000000 +0200 @@ -609,6 +609,8 @@ #define BCM4334_NVRAM_NAME "brcm/brcmfmac4334-sdio.txt" #define BCM43340_FIRMWARE_NAME "brcm/brcmfmac43340-sdio.bin" @@ -66925,9 +71184,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/brcm80211/brcmfmac/sdio.c linux { BRCM_CC_4335_CHIP_ID, 0xFFFFFFFF, BRCMF_FIRMWARE_NVRAM(BCM4335) }, { BRCM_CC_43362_CHIP_ID, 0xFFFFFFFE, BRCMF_FIRMWARE_NVRAM(BCM43362) }, { BRCM_CC_4339_CHIP_ID, 0xFFFFFFFF, BRCMF_FIRMWARE_NVRAM(BCM4339) }, -diff -Nur linux-4.1.22.orig/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h linux-4.1.22/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h ---- linux-4.1.22.orig/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h linux-4.1.23/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h +--- linux-4.1.23.orig/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h 2016-05-02 22:53:55.000000000 +0200 @@ -34,6 +34,7 @@ #define BRCM_CC_4330_CHIP_ID 0x4330 #define BRCM_CC_4334_CHIP_ID 0x4334 @@ -66936,9 +71195,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h #define BRCM_CC_43362_CHIP_ID 43362 #define BRCM_CC_4335_CHIP_ID 0x4335 #define BRCM_CC_4339_CHIP_ID 0x4339 -diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/Kconfig linux-4.1.22/drivers/net/wireless/mediatek/Kconfig ---- linux-4.1.22.orig/drivers/net/wireless/mediatek/Kconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/mediatek/Kconfig 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/mediatek/Kconfig linux-4.1.23/drivers/net/wireless/mediatek/Kconfig +--- linux-4.1.23.orig/drivers/net/wireless/mediatek/Kconfig 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/mediatek/Kconfig 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,10 @@ +menuconfig WL_MEDIATEK + bool "Mediatek Wireless LAN support" @@ -66950,14 +71209,14 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/Kconfig linux-4.1.22/d +if WL_MEDIATEK +source "drivers/net/wireless/mediatek/mt7601u/Kconfig" +endif # WL_MEDIATEK -diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/Makefile linux-4.1.22/drivers/net/wireless/mediatek/Makefile ---- linux-4.1.22.orig/drivers/net/wireless/mediatek/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/mediatek/Makefile 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/mediatek/Makefile linux-4.1.23/drivers/net/wireless/mediatek/Makefile +--- linux-4.1.23.orig/drivers/net/wireless/mediatek/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/mediatek/Makefile 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1 @@ +obj-$(CONFIG_MT7601U) += mt7601u/ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/Kconfig linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/Kconfig ---- linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/Kconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/Kconfig 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/Kconfig linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/Kconfig +--- linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/Kconfig 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/Kconfig 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,6 @@ +config MT7601U + tristate "MediaTek MT7601U (USB) support" @@ -66965,9 +71224,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/Kconfig linux- + depends on USB + ---help--- + This adds support for MT7601U-based wireless USB dongles. -diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/Makefile linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/Makefile ---- linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/Makefile 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/Makefile linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/Makefile +--- linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/Makefile 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,9 @@ +ccflags-y += -D__CHECK_ENDIAN__ + @@ -66978,9 +71237,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/Makefile linux + mac.o util.o debugfs.o tx.o + +CFLAGS_trace.o := -I$(src) -diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/core.c linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/core.c ---- linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/core.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/core.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/core.c linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/core.c +--- linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/core.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/core.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2014 Felix Fietkau <nbd@openwrt.org> @@ -67060,9 +71319,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/core.c linux-4 + + return false; +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/debugfs.c linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/debugfs.c ---- linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/debugfs.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/debugfs.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/debugfs.c linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/debugfs.c +--- linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/debugfs.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/debugfs.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,172 @@ +/* + * Copyright (C) 2014 Felix Fietkau <nbd@openwrt.org> @@ -67236,9 +71495,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/debugfs.c linu + debugfs_create_file("eeprom_param", S_IRUSR, dir, dev, + &fops_eeprom_param); +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/dma.c linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/dma.c ---- linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/dma.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/dma.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/dma.c linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/dma.c +--- linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/dma.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/dma.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,529 @@ +/* + * Copyright (C) 2015 Jakub Kicinski <kubakici@wp.pl> @@ -67769,9 +72028,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/dma.c linux-4. + + tasklet_kill(&dev->tx_tasklet); +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/dma.h linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/dma.h ---- linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/dma.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/dma.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/dma.h linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/dma.h +--- linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/dma.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/dma.h 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,127 @@ +/* + * Copyright (C) 2014 Felix Fietkau <nbd@openwrt.org> @@ -67900,9 +72159,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/dma.h linux-4. +}; + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/eeprom.c linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/eeprom.c ---- linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/eeprom.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/eeprom.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/eeprom.c linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/eeprom.c +--- linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/eeprom.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/eeprom.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,418 @@ +/* + * Copyright (C) 2014 Felix Fietkau <nbd@openwrt.org> @@ -68322,9 +72581,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/eeprom.c linux + kfree(eeprom); + return ret; +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/eeprom.h linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/eeprom.h ---- linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/eeprom.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/eeprom.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/eeprom.h linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/eeprom.h +--- linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/eeprom.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/eeprom.h 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,151 @@ +/* + * Copyright (C) 2014 Felix Fietkau <nbd@openwrt.org> @@ -68477,9 +72736,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/eeprom.h linux +} + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/init.c linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/init.c ---- linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/init.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/init.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/init.c linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/init.c +--- linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/init.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/init.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,630 @@ +/* + * (c) Copyright 2002-2010, Ralink Technology, Inc. @@ -69111,9 +73370,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/init.c linux-4 + + return 0; +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/initvals.h linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/initvals.h ---- linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/initvals.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/initvals.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/initvals.h linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/initvals.h +--- linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/initvals.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/initvals.h 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,164 @@ +/* + * (c) Copyright 2002-2010, Ralink Technology, Inc. @@ -69279,9 +73538,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/initvals.h lin +}; + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/initvals_phy.h linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/initvals_phy.h ---- linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/initvals_phy.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/initvals_phy.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/initvals_phy.h linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/initvals_phy.h +--- linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/initvals_phy.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/initvals_phy.h 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,291 @@ +/* + * (c) Copyright 2002-2010, Ralink Technology, Inc. @@ -69574,9 +73833,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/initvals_phy.h +}; + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/mac.c linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/mac.c ---- linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/mac.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/mac.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/mac.c linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/mac.c +--- linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/mac.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/mac.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,577 @@ +/* + * Copyright (C) 2014 Felix Fietkau <nbd@openwrt.org> @@ -70155,9 +74414,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/mac.c linux-4. + + return 0; +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/mac.h linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/mac.h ---- linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/mac.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/mac.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/mac.h linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/mac.h +--- linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/mac.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/mac.h 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,178 @@ +/* + * Copyright (C) 2014 Felix Fietkau <nbd@openwrt.org> @@ -70337,9 +74596,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/mac.h linux-4. +void mt76_send_tx_status(struct mt7601u_dev *dev, struct mt76_tx_status *stat); + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/main.c linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/main.c ---- linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/main.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/main.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/main.c linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/main.c +--- linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/main.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/main.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,413 @@ +/* + * Copyright (C) 2014 Felix Fietkau <nbd@openwrt.org> @@ -70754,9 +75013,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/main.c linux-4 + .sta_rate_tbl_update = mt76_sta_rate_tbl_update, + .set_rts_threshold = mt7601u_set_rts_threshold, +}; -diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/mcu.c linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/mcu.c ---- linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/mcu.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/mcu.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/mcu.c linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/mcu.c +--- linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/mcu.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/mcu.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,534 @@ +/* + * (c) Copyright 2002-2010, Ralink Technology, Inc. @@ -71292,9 +75551,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/mcu.c linux-4. + usb_kill_urb(dev->mcu.resp.urb); + mt7601u_usb_free_buf(dev, &dev->mcu.resp); +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/mcu.h linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/mcu.h ---- linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/mcu.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/mcu.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/mcu.h linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/mcu.h +--- linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/mcu.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/mcu.h 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,94 @@ +/* + * Copyright (C) 2014 Felix Fietkau <nbd@openwrt.org> @@ -71390,9 +75649,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/mcu.h linux-4. +int mt7601u_mcu_tssi_read_kick(struct mt7601u_dev *dev, int use_hvga); + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/mt7601u.h linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/mt7601u.h ---- linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/mt7601u.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/mt7601u.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/mt7601u.h linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/mt7601u.h +--- linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/mt7601u.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/mt7601u.h 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,396 @@ +/* + * Copyright (C) 2014 Felix Fietkau <nbd@openwrt.org> @@ -71790,9 +76049,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/mt7601u.h linu + struct mt76_wcid *wcid, int hw_q); + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/phy.c linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/phy.c ---- linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/phy.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/phy.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/phy.c linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/phy.c +--- linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/phy.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/phy.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,1251 @@ +/* + * (c) Copyright 2002-2010, Ralink Technology, Inc. @@ -73045,9 +77304,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/phy.c linux-4. + + return 0; +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/regs.h linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/regs.h ---- linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/regs.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/regs.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/regs.h linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/regs.h +--- linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/regs.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/regs.h 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,636 @@ +/* + * Copyright (C) 2014 Felix Fietkau <nbd@openwrt.org> @@ -73685,9 +77944,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/regs.h linux-4 +}; + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/trace.c linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/trace.c ---- linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/trace.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/trace.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/trace.c linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/trace.c +--- linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/trace.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/trace.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,21 @@ +/* + * Copyright (C) 2014 Felix Fietkau <nbd@openwrt.org> @@ -73710,9 +77969,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/trace.c linux- +#include "trace.h" + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/trace.h linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/trace.h ---- linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/trace.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/trace.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/trace.h linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/trace.h +--- linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/trace.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/trace.h 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,400 @@ +/* + * Copyright (C) 2014 Felix Fietkau <nbd@openwrt.org> @@ -74114,9 +78373,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/trace.h linux- +#define TRACE_INCLUDE_FILE trace + +#include <trace/define_trace.h> -diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/tx.c linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/tx.c ---- linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/tx.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/tx.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/tx.c linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/tx.c +--- linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/tx.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/tx.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,322 @@ +/* + * Copyright (C) 2014 Felix Fietkau <nbd@openwrt.org> @@ -74440,9 +78699,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/tx.c linux-4.1 + + return 0; +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/usb.c linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/usb.c ---- linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/usb.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/usb.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/usb.c linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/usb.c +--- linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/usb.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/usb.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,362 @@ +/* + * Copyright (C) 2015 Jakub Kicinski <kubakici@wp.pl> @@ -74806,9 +79065,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/usb.c linux-4. + .disable_hub_initiated_lpm = 1, +}; +module_usb_driver(mt7601u_driver); -diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/usb.h linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/usb.h ---- linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/usb.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/usb.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/usb.h linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/usb.h +--- linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/usb.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/usb.h 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,79 @@ +/* + * Copyright (C) 2015 Jakub Kicinski <kubakici@wp.pl> @@ -74889,9 +79148,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/usb.h linux-4. + const u16 offset, const u32 val); + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/util.c linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/util.c ---- linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/util.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/util.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/util.c linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/util.c +--- linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/util.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/util.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2014 Felix Fietkau <nbd@openwrt.org> @@ -74935,9 +79194,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/util.c linux-4 + skb->data[len + 1] = 0; + return 0; +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/util.h linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/util.h ---- linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/util.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/mediatek/mt7601u/util.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/util.h linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/util.h +--- linux-4.1.23.orig/drivers/net/wireless/mediatek/mt7601u/util.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/mediatek/mt7601u/util.h 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,77 @@ +/* + * Copyright (C) 2014 Felix Fietkau <nbd@openwrt.org> @@ -75016,9 +79275,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/mediatek/mt7601u/util.h linux-4 + }) + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/Kconfig linux-4.1.22/drivers/net/wireless/rtl8192cu/Kconfig ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/Kconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/Kconfig 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/Kconfig linux-4.1.23/drivers/net/wireless/rtl8192cu/Kconfig +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/Kconfig 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/Kconfig 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,9 @@ +config RTL8192CU + tristate "Realtek 8192C USB WiFi" @@ -75029,9 +79288,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/Kconfig linux-4.1.22/ + ---help--- + This option adds the Realtek RTL8192CU USB device such as Edimax EW-7811Un. + -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/Makefile linux-4.1.22/drivers/net/wireless/rtl8192cu/Makefile ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/Makefile 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/Makefile linux-4.1.23/drivers/net/wireless/rtl8192cu/Makefile +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/Makefile 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,615 @@ +EXTRA_CFLAGS += $(USER_EXTRA_CFLAGS) +EXTRA_CFLAGS += -O1 @@ -75648,18 +79907,18 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/Makefile linux-4.1.22 + cd os_dep/linux ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko + cd os_dep ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko +endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/clean linux-4.1.22/drivers/net/wireless/rtl8192cu/clean ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/clean 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/clean 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/clean linux-4.1.23/drivers/net/wireless/rtl8192cu/clean +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/clean 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/clean 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,5 @@ +#!/bin/bash +rmmod 8192cu +rmmod 8192ce +rmmod 8192du +rmmod 8192de -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/efuse/rtw_efuse.c linux-4.1.22/drivers/net/wireless/rtl8192cu/core/efuse/rtw_efuse.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/efuse/rtw_efuse.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/core/efuse/rtw_efuse.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/efuse/rtw_efuse.c linux-4.1.23/drivers/net/wireless/rtl8192cu/core/efuse/rtw_efuse.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/efuse/rtw_efuse.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/core/efuse/rtw_efuse.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,1145 @@ +/****************************************************************************** + * @@ -76806,9 +81065,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/efuse/rtw_efuse. +} +#endif //CONFIG_ADAPTOR_INFO_CACHING_FILE +#endif //PLATFORM_LINUX -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_ap.c linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_ap.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_ap.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_ap.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_ap.c linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_ap.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_ap.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_ap.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,2939 @@ +/****************************************************************************** + * @@ -79749,9 +84008,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_ap.c linux-4 + +#endif //CONFIG_NATIVEAP_MLME +#endif //CONFIG_AP_MODE -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_br_ext.c linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_br_ext.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_br_ext.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_br_ext.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_br_ext.c linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_br_ext.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_br_ext.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_br_ext.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,1699 @@ +/****************************************************************************** + * @@ -81452,9 +85711,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_br_ext.c lin +} + +#endif // CONFIG_BR_EXT -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_cmd.c linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_cmd.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_cmd.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_cmd.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_cmd.c linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_cmd.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_cmd.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_cmd.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,3034 @@ +/****************************************************************************** + * @@ -84490,9 +88749,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_cmd.c linux- +_func_exit_; + +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_debug.c linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_debug.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_debug.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_debug.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_debug.c linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_debug.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_debug.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_debug.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,1336 @@ +/****************************************************************************** + * @@ -85830,9 +90089,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_debug.c linu +#endif /* CONFIG_DM_ADAPTIVITY */ + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_eeprom.c linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_eeprom.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_eeprom.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_eeprom.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_eeprom.c linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_eeprom.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_eeprom.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_eeprom.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,422 @@ +/****************************************************************************** + * @@ -86256,9 +90515,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_eeprom.c lin + +_func_exit_; +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_ieee80211.c linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_ieee80211.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_ieee80211.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_ieee80211.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_ieee80211.c linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_ieee80211.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_ieee80211.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_ieee80211.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,1914 @@ +/****************************************************************************** + * @@ -88174,9 +92433,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_ieee80211.c + action = (action >= ACT_PUBLIC_MAX) ? ACT_PUBLIC_MAX : action; + return _action_public_str[action]; +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_io.c linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_io.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_io.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_io.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_io.c linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_io.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_io.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_io.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,462 @@ +/****************************************************************************** + * @@ -88640,9 +92899,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_io.c linux-4 + return _rtw_writeN(adapter, addr, length, data); +} +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_query.c linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_query.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_query.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_query.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_query.c linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_query.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_query.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_query.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,195 @@ +/****************************************************************************** + * @@ -88839,9 +93098,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_query. + return _TRUE; +} +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_rtl.c linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_rtl.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_rtl.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_rtl.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_rtl.c linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_rtl.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_rtl.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_rtl.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,1031 @@ +/****************************************************************************** + * @@ -89874,9 +94133,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_rtl.c + return status; +} +//************** oid_rtl_seg_03_00 section end ************** -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_set.c linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_set.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_set.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_set.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_set.c linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_set.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_set.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_set.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,1493 @@ +/****************************************************************************** + * @@ -91371,9 +95630,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_set.c + DBG_871X_LEVEL(_drv_always_, FUNC_ADPT_FMT" band:%d fail\n", FUNC_ADPT_ARG(adapter), band); + return _FAIL; +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_iol.c linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_iol.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_iol.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_iol.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_iol.c linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_iol.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_iol.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_iol.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,262 @@ +/****************************************************************************** + * @@ -91637,9 +95896,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_iol.c linux- +} + +#endif //CONFIG_IOL -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_mlme.c linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_mlme.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_mlme.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_mlme.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_mlme.c linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_mlme.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_mlme.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_mlme.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,3966 @@ +/****************************************************************************** + * @@ -95607,9 +99866,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_mlme.c linux + return _FALSE; +} +#endif //CONFIG_CONCURRENT_MODE -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_mlme_ext.c linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_mlme_ext.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_mlme_ext.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_mlme_ext.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_mlme_ext.c linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_mlme_ext.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_mlme_ext.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_mlme_ext.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,13599 @@ +/****************************************************************************** + * @@ -109210,9 +113469,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_mlme_ext.c l +#endif //CONFIG_TDLS + +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_mp.c linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_mp.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_mp.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_mp.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_mp.c linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_mp.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_mp.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_mp.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,1323 @@ +/****************************************************************************** + * @@ -110537,9 +114796,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_mp.c linux-4 +} + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_mp_ioctl.c linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_mp_ioctl.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_mp_ioctl.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_mp_ioctl.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_mp_ioctl.c linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_mp_ioctl.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_mp_ioctl.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_mp_ioctl.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,2953 @@ +/****************************************************************************** + * @@ -113494,9 +117753,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_mp_ioctl.c l + return 0; +#endif +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_p2p.c linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_p2p.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_p2p.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_p2p.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_p2p.c linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_p2p.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_p2p.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_p2p.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,5293 @@ +/****************************************************************************** + * @@ -118791,9 +123050,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_p2p.c linux- +} + +#endif //CONFIG_P2P -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_pwrctrl.c linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_pwrctrl.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_pwrctrl.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_pwrctrl.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_pwrctrl.c linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_pwrctrl.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_pwrctrl.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_pwrctrl.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,1538 @@ +/****************************************************************************** + * @@ -120333,9 +124592,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_pwrctrl.c li + } + return 0; +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_recv.c linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_recv.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_recv.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_recv.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_recv.c linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_recv.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_recv.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_recv.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,4286 @@ +/****************************************************************************** + * @@ -124623,9 +128882,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_recv.c linux + +} +#endif //CONFIG_NEW_SIGNAL_STAT_PROCESS -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_rf.c linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_rf.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_rf.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_rf.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_rf.c linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_rf.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_rf.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_rf.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,94 @@ +/****************************************************************************** + * @@ -124721,9 +128980,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_rf.c linux-4 + + return ch; +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_security.c linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_security.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_security.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_security.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_security.c linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_security.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_security.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_security.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,3114 @@ +/****************************************************************************** + * @@ -127839,9 +132098,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_security.c l + + return status; +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_sreset.c linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_sreset.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_sreset.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_sreset.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_sreset.c linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_sreset.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_sreset.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_sreset.c 2016-05-02 22:53:55.000000000 +0200 @@ -0,0 +1,351 @@ +/****************************************************************************** + * @@ -128194,9 +132453,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_sreset.c lin + DBG_871X("%s done in %d ms\n", __FUNCTION__, rtw_get_passing_time_ms(start)); +#endif +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_sta_mgt.c linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_sta_mgt.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_sta_mgt.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_sta_mgt.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_sta_mgt.c linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_sta_mgt.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_sta_mgt.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_sta_mgt.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,847 @@ +/****************************************************************************** + * @@ -129045,9 +133304,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_sta_mgt.c li + return res; + +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_tdls.c linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_tdls.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_tdls.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_tdls.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_tdls.c linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_tdls.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_tdls.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_tdls.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,2940 @@ +/****************************************************************************** + * @@ -131989,9 +136248,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_tdls.c linux +} + +#endif //CONFIG_TDLS -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_wlan_util.c linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_wlan_util.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_wlan_util.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_wlan_util.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_wlan_util.c linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_wlan_util.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_wlan_util.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_wlan_util.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,2304 @@ +/****************************************************************************** + * @@ -134297,9 +138556,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_wlan_util.c +exit: + return status; +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_xmit.c linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_xmit.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_xmit.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/core/rtw_xmit.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_xmit.c linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_xmit.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/core/rtw_xmit.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/core/rtw_xmit.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,4155 @@ +/****************************************************************************** + * @@ -138456,9 +142715,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/core/rtw_xmit.c linux + } +} +#endif //CONFIG_XMIT_ACK -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/HalPwrSeqCmd.c linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/HalPwrSeqCmd.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/HalPwrSeqCmd.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/HalPwrSeqCmd.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/HalPwrSeqCmd.c linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/HalPwrSeqCmd.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/HalPwrSeqCmd.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/HalPwrSeqCmd.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,175 @@ +/****************************************************************************** + * @@ -138635,9 +142894,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/HalPwrSeqCmd.c li + + return _TRUE; +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/dm.c linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/dm.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/dm.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/dm.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/dm.c linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/dm.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/dm.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/dm.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,313 @@ +/****************************************************************************** + * @@ -138952,9 +143211,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/dm.c linux-4.1.22 + return; +#endif /* CONFIG_DM_ADAPTIVITY */ +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/dm.h linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/dm.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/dm.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/dm.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/dm.h linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/dm.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/dm.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/dm.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,30 @@ +/****************************************************************************** + * @@ -138986,9 +143245,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/dm.h linux-4.1.22 +void dm_adaptivity(_adapter *pAdapter); + +#endif /* __DM_H__ */ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/hal_com.c linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/hal_com.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/hal_com.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/hal_com.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/hal_com.c linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/hal_com.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/hal_com.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/hal_com.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,370 @@ +/****************************************************************************** + * @@ -139360,9 +143619,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/hal_com.c linux-4 +exit: + return ret; +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/hal_intf.c linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/hal_intf.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/hal_intf.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/hal_intf.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/hal_intf.c linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/hal_intf.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/hal_intf.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/hal_intf.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,545 @@ +/****************************************************************************** + * @@ -139909,9 +144168,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/hal_intf.c linux- +{ + return adapter->HalFunc.c2h_id_filter_ccx; +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_cmd.c linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_cmd.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_cmd.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_cmd.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_cmd.c linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_cmd.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_cmd.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_cmd.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,1154 @@ +/****************************************************************************** + * @@ -141067,9 +145326,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c +} + +#endif //CONFIG_WOWLAN -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_dm.c linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_dm.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_dm.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_dm.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_dm.c linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_dm.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_dm.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_dm.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,5055 @@ +/****************************************************************************** + * @@ -146126,9 +150385,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c + } + +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,3627 @@ +/****************************************************************************** + * @@ -149757,9 +154016,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c + pHalFunc->c2h_handler = c2h_handler_8192c; + pHalFunc->c2h_id_filter_ccx = c2h_id_filter_ccx_8192c; +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_mp.c linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_mp.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_mp.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_mp.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_mp.c linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_mp.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_mp.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_mp.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,1207 @@ +/****************************************************************************** + * @@ -150968,9 +155227,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c +} + +#endif // CONFIG_MP_INCLUDE -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_phycfg.c linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_phycfg.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_phycfg.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_phycfg.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_phycfg.c linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_phycfg.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_phycfg.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_phycfg.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,4840 @@ +/****************************************************************************** + * @@ -155812,9 +160071,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c + _PHY_SetRFPathSwitch(pAdapter, bMain, _FALSE); + } +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rf6052.c linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rf6052.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rf6052.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rf6052.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rf6052.c linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rf6052.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rf6052.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rf6052.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,1030 @@ +/****************************************************************************** + * @@ -156846,9 +161105,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c +} /* PHY_RFShadowRead */ + +/* End of HalRf6052.c */ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rxdesc.c linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rxdesc.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rxdesc.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rxdesc.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rxdesc.c linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rxdesc.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rxdesc.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rxdesc.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,874 @@ +/****************************************************************************** + * @@ -157724,9 +161983,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c + //Offset 20 + +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_sreset.c linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_sreset.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_sreset.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_sreset.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_sreset.c linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_sreset.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_sreset.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_sreset.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,93 @@ +/****************************************************************************** + * @@ -157821,9 +162080,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c + } +} +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_xmit.c linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_xmit.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_xmit.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_xmit.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_xmit.c linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_xmit.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_xmit.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_xmit.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,62 @@ +/****************************************************************************** + * @@ -157887,9 +162146,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c + } +} +#endif //CONFIG_XMIT_ACK -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg.c linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg.c linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,8757 @@ +/****************************************************************************** + * @@ -166648,9 +170907,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8 +0xc78,0x621e001e, +0xc78,0x621f001e, +}; -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg_wowlan.c linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg_wowlan.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg_wowlan.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg_wowlan.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg_wowlan.c linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg_wowlan.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg_wowlan.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg_wowlan.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,2557 @@ +/****************************************************************************** + * @@ -169209,9 +173468,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8 +0x94,0x01,0x40,0x1e,0x90,0xfd,0x11,0xe0,0xb5,0x05,0x14,0x90,0x01,0x17,0xe0,0xb5, +0x05,0x07,0x90,0xfd,0x11,0xe4,0xf0,0x80,0x06,0xed,0x04,0x90,0xfd,0x11,0xf0,0xe4, +0x2f,0xff,0x22,0x00,0x18,0x58,}; -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_led.c linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_led.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_led.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_led.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_led.c linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_led.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_led.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_led.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,2674 @@ +/****************************************************************************** + * @@ -171887,9 +176146,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8 + DeInitLed871x( &(ledpriv->SwLed0) ); + DeInitLed871x( &(ledpriv->SwLed1) ); +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_recv.c linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_recv.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_recv.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_recv.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_recv.c linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_recv.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_recv.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_recv.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,227 @@ +/****************************************************************************** + * @@ -172118,9 +176377,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8 +#endif + +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_xmit.c linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_xmit.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_xmit.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_xmit.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_xmit.c linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_xmit.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_xmit.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_xmit.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,1149 @@ +/****************************************************************************** + * @@ -173271,9 +177530,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8 + +} +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_halinit.c linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_halinit.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_halinit.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_halinit.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_halinit.c linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_halinit.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_halinit.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_halinit.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,6260 @@ +/****************************************************************************** + * @@ -179535,9 +183794,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ +_func_exit_; + +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_ce.c linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_ce.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_ce.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_ce.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_ce.c linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_ce.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_ce.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_ce.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,1205 @@ +/****************************************************************************** + * @@ -180744,9 +185003,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ + return ret; + +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_linux.c linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_linux.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_linux.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_linux.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_linux.c linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_linux.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_linux.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_linux.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,1535 @@ +/****************************************************************************** + * @@ -182283,9 +186542,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ + _func_exit_; + +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_xp.c linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_xp.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_xp.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_xp.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_xp.c linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_xp.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_xp.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_xp.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,1264 @@ +/****************************************************************************** + * @@ -183551,18 +187810,18 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ + return ret; + +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/ifcfg-wlan0 linux-4.1.22/drivers/net/wireless/rtl8192cu/ifcfg-wlan0 ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/ifcfg-wlan0 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/ifcfg-wlan0 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/ifcfg-wlan0 linux-4.1.23/drivers/net/wireless/rtl8192cu/ifcfg-wlan0 +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/ifcfg-wlan0 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/ifcfg-wlan0 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,4 @@ +#DHCP client +DEVICE=wlan0 +BOOTPROTO=dhcp +ONBOOT=yes \ No newline at end of file -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CEHWImg.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/Hal8192CEHWImg.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CEHWImg.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/Hal8192CEHWImg.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CEHWImg.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/Hal8192CEHWImg.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CEHWImg.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/Hal8192CEHWImg.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,85 @@ +/****************************************************************************** + * @@ -183649,9 +187908,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CEHWIm +extern u32 Rtl8192CEAGCTAB_1TArray[AGCTAB_1TArrayLength]; + +#endif //__INC_HAL8192CE_FW_IMG_H -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyCfg.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyCfg.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyCfg.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyCfg.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyCfg.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyCfg.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyCfg.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyCfg.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,427 @@ +/****************************************************************************** + * @@ -184080,9 +188339,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyCf +#define PHY_SetMacReg PHY_SetBBReg + +#endif // __INC_HAL8192CPHYCFG_H -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyReg.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyReg.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyReg.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyReg.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyReg.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyReg.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyReg.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyReg.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,1122 @@ +/****************************************************************************** + * @@ -185206,9 +189465,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyRe + + +#endif //__INC_HAL8192SPHYREG_H -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,105 @@ +/****************************************************************************** + * @@ -185315,9 +189574,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWIm +extern u32 Rtl8192CUAGCTAB_1T_HPArray[AGCTAB_1T_HPArrayLength]; + +#endif //__INC_HAL8192CU_FW_IMG_H -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg_wowlan.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg_wowlan.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg_wowlan.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg_wowlan.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg_wowlan.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg_wowlan.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg_wowlan.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg_wowlan.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,33 @@ +/****************************************************************************** + * @@ -185352,9 +189611,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWIm +extern u8 Rtl8192CUFwUMCBCutWWImgArray[UMCBCutWWImgArrayLength]; + +#endif //__INC_HAL8192CU_FW_IMG_WOWLAN_H -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DEHWImg.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/Hal8192DEHWImg.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DEHWImg.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/Hal8192DEHWImg.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DEHWImg.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/Hal8192DEHWImg.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DEHWImg.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/Hal8192DEHWImg.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,66 @@ +/****************************************************************************** + * @@ -185422,9 +189681,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DEHWIm +extern const u32 Rtl8192DEAGCTAB_1TArray[Rtl8192DEAGCTAB_1TArrayLength]; + +#endif //__INC_HAL8192CU_FW_IMG_H -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyCfg.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyCfg.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyCfg.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyCfg.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyCfg.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyCfg.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyCfg.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyCfg.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,527 @@ +/****************************************************************************** + * @@ -185953,9 +190212,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyCf +#define PHY_SetMacReg PHY_SetBBReg + +#endif // __INC_HAL8192SPHYCFG_H -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyReg.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyReg.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyReg.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyReg.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyReg.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyReg.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyReg.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyReg.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,1170 @@ +/****************************************************************************** + * @@ -187127,9 +191386,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyRe + + +#endif //__INC_HAL8192SPHYREG_H -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,66 @@ +/****************************************************************************** + * @@ -187197,9 +191456,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWIm +extern const u32 Rtl8192DUAGCTAB_1TArray[Rtl8192DUAGCTAB_1TArrayLength]; + +#endif //__INC_HAL8192CU_FW_IMG_H -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg_wowlan.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg_wowlan.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg_wowlan.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg_wowlan.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg_wowlan.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg_wowlan.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg_wowlan.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg_wowlan.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,29 @@ +/****************************************************************************** + * @@ -187230,9 +191489,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWIm +extern u8 Rtl8192DUFwWWImgArray[DUWWImgArrayLength]; + +#endif //__INC_HAL8192DU_FW_IMG_WOWLAN_H -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/HalPwrSeqCmd.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/HalPwrSeqCmd.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/HalPwrSeqCmd.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/HalPwrSeqCmd.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/HalPwrSeqCmd.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/HalPwrSeqCmd.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/HalPwrSeqCmd.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/HalPwrSeqCmd.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,137 @@ +/****************************************************************************** + * @@ -187371,9 +191630,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/HalPwrSeqCmd. + WLAN_PWR_CFG PwrCfgCmd[]); + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/autoconf.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/autoconf.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/autoconf.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/autoconf.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/autoconf.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/autoconf.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/autoconf.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/autoconf.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,336 @@ +/****************************************************************************** + * @@ -187711,9 +191970,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/autoconf.h li + +//turn off power tracking when traffic is busy +//#define CONFIG_BUSY_TRAFFIC_SKIP_PWR_TRACK -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/basic_types.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/basic_types.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/basic_types.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/basic_types.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/basic_types.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/basic_types.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/basic_types.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/basic_types.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,320 @@ +/****************************************************************************** + * @@ -188035,9 +192294,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/basic_types.h +typedef unsigned char BOOLEAN,*PBOOLEAN; + +#endif //__BASIC_TYPES_H__ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/byteorder/big_endian.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/byteorder/big_endian.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/byteorder/big_endian.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/byteorder/big_endian.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/byteorder/big_endian.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/byteorder/big_endian.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/byteorder/big_endian.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/byteorder/big_endian.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,87 @@ +/****************************************************************************** + * @@ -188126,9 +192385,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/byteorder/big +#include <byteorder/generic.h> + +#endif /* _LINUX_BYTEORDER_BIG_ENDIAN_H */ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/byteorder/generic.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/byteorder/generic.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/byteorder/generic.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/byteorder/generic.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/byteorder/generic.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/byteorder/generic.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/byteorder/generic.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/byteorder/generic.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,212 @@ +/****************************************************************************** + * @@ -188342,9 +192601,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/byteorder/gen +#endif + +#endif /* _LINUX_BYTEORDER_GENERIC_H */ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/byteorder/little_endian.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/byteorder/little_endian.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/byteorder/little_endian.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/byteorder/little_endian.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/byteorder/little_endian.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/byteorder/little_endian.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/byteorder/little_endian.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/byteorder/little_endian.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,89 @@ +/****************************************************************************** + * @@ -188435,9 +192694,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/byteorder/lit +#include <byteorder/generic.h> + +#endif /* _LINUX_BYTEORDER_LITTLE_ENDIAN_H */ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/byteorder/swab.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/byteorder/swab.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/byteorder/swab.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/byteorder/swab.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/byteorder/swab.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/byteorder/swab.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/byteorder/swab.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/byteorder/swab.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,140 @@ +/****************************************************************************** + * @@ -188579,9 +192838,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/byteorder/swa +#endif + +#endif /* _LINUX_BYTEORDER_SWAB_H */ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/byteorder/swabb.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/byteorder/swabb.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/byteorder/swabb.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/byteorder/swabb.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/byteorder/swabb.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/byteorder/swabb.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/byteorder/swabb.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/byteorder/swabb.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,156 @@ +/****************************************************************************** + * @@ -188739,9 +192998,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/byteorder/swa +#endif + +#endif /* _LINUX_BYTEORDER_SWABB_H */ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/circ_buf.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/circ_buf.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/circ_buf.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/circ_buf.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/circ_buf.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/circ_buf.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/circ_buf.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/circ_buf.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,27 @@ +/****************************************************************************** + * @@ -188770,9 +193029,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/circ_buf.h li +#define CIRC_SPACE(head,tail,size) CIRC_CNT((tail),((head)+1),(size)) + +#endif //_CIRC_BUF_H_ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/cmd_osdep.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/cmd_osdep.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/cmd_osdep.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/cmd_osdep.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/cmd_osdep.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/cmd_osdep.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/cmd_osdep.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/cmd_osdep.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,35 @@ +/****************************************************************************** + * @@ -188809,9 +193068,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/cmd_osdep.h l +extern struct cmd_obj *_rtw_dequeue_cmd(_queue *queue); + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/drv_conf.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/drv_conf.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/drv_conf.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/drv_conf.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/drv_conf.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/drv_conf.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/drv_conf.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/drv_conf.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,77 @@ +/****************************************************************************** + * @@ -188890,9 +193149,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/drv_conf.h li +//#include <rtl871x_byteorder.h> + +#endif // __DRV_CONF_H__ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/drv_types.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/drv_types.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/drv_types.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/drv_types.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/drv_types.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/drv_types.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/drv_types.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/drv_types.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,661 @@ +/****************************************************************************** + * @@ -189555,9 +193814,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/drv_types.h l + + +#endif //__DRV_TYPES_H__ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/drv_types_ce.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/drv_types_ce.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/drv_types_ce.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/drv_types_ce.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/drv_types_ce.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/drv_types_ce.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/drv_types_ce.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/drv_types_ce.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,92 @@ +/****************************************************************************** + * @@ -189651,9 +193910,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/drv_types_ce. + + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/drv_types_linux.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/drv_types_linux.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/drv_types_linux.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/drv_types_linux.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/drv_types_linux.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/drv_types_linux.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/drv_types_linux.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/drv_types_linux.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,24 @@ +/****************************************************************************** + * @@ -189679,9 +193938,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/drv_types_lin + + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/drv_types_sdio.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/drv_types_sdio.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/drv_types_sdio.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/drv_types_sdio.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/drv_types_sdio.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/drv_types_sdio.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/drv_types_sdio.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/drv_types_sdio.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,69 @@ +/****************************************************************************** + * @@ -189752,9 +194011,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/drv_types_sdi +} SDIO_DATA, *PSDIO_DATA; + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/drv_types_xp.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/drv_types_xp.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/drv_types_xp.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/drv_types_xp.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/drv_types_xp.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/drv_types_xp.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/drv_types_xp.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/drv_types_xp.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,94 @@ +/****************************************************************************** + * @@ -189850,9 +194109,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/drv_types_xp. + + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/ethernet.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/ethernet.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/ethernet.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/ethernet.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/ethernet.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/ethernet.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/ethernet.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/ethernet.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,41 @@ +/****************************************************************************** + * @@ -189895,9 +194154,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/ethernet.h li + + +#endif // #ifndef __INC_ETHERNET_H -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/h2clbk.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/h2clbk.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/h2clbk.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/h2clbk.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/h2clbk.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/h2clbk.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/h2clbk.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/h2clbk.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,35 @@ +/****************************************************************************** + * @@ -189934,9 +194193,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/h2clbk.h linu +void _lbk_evt(IN PADAPTER Adapter); + +void h2c_event_callback(unsigned char *dev, unsigned char *pbuf); -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/hal_com.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/hal_com.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/hal_com.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/hal_com.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/hal_com.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/hal_com.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/hal_com.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/hal_com.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,145 @@ +/****************************************************************************** + * @@ -190083,9 +194342,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/hal_com.h lin +s32 c2h_evt_read(_adapter *adapter, u8 *buf); + +#endif //__HAL_COMMON_H__ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/hal_intf.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/hal_intf.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/hal_intf.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/hal_intf.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/hal_intf.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/hal_intf.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/hal_intf.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/hal_intf.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,431 @@ +/****************************************************************************** + * @@ -190518,9 +194777,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/hal_intf.h li +c2h_id_filter rtw_hal_c2h_id_filter_ccx(_adapter *adapter); + +#endif //__HAL_INTF_H__ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/ieee80211.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/ieee80211.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/ieee80211.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/ieee80211.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/ieee80211.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/ieee80211.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/ieee80211.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/ieee80211.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,1579 @@ +/****************************************************************************** + * @@ -192101,9 +196360,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/ieee80211.h l +const char *action_public_str(u8 action); + +#endif /* IEEE80211_H */ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/ieee80211_ext.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/ieee80211_ext.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/ieee80211_ext.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/ieee80211_ext.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/ieee80211_ext.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/ieee80211_ext.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/ieee80211_ext.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/ieee80211_ext.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,476 @@ +/****************************************************************************** + * @@ -192581,9 +196840,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/ieee80211_ext + + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/if_ether.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/if_ether.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/if_ether.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/if_ether.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/if_ether.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/if_ether.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/if_ether.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/if_ether.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,112 @@ +/****************************************************************************** + * @@ -192697,9 +196956,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/if_ether.h li + + +#endif /* _LINUX_IF_ETHER_H */ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/ioctl_cfg80211.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/ioctl_cfg80211.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/ioctl_cfg80211.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/ioctl_cfg80211.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/ioctl_cfg80211.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/ioctl_cfg80211.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/ioctl_cfg80211.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/ioctl_cfg80211.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,179 @@ +/****************************************************************************** + * @@ -192880,9 +197139,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/ioctl_cfg8021 +#endif + +#endif //__IOCTL_CFG80211_H__ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/ip.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/ip.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/ip.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/ip.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/ip.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/ip.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/ip.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/ip.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,141 @@ +/****************************************************************************** + * @@ -193025,9 +197284,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/ip.h linux-4. +}; + +#endif /* _LINUX_IP_H */ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/linux/wireless.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/linux/wireless.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/linux/wireless.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/linux/wireless.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/linux/wireless.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/linux/wireless.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/linux/wireless.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/linux/wireless.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,90 @@ +/****************************************************************************** + * @@ -193119,9 +197378,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/linux/wireles +}; + +#endif /* _LINUX_WIRELESS_H */ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/mlme_osdep.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/mlme_osdep.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/mlme_osdep.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/mlme_osdep.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/mlme_osdep.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/mlme_osdep.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/mlme_osdep.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/mlme_osdep.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,39 @@ +/****************************************************************************** + * @@ -193162,9 +197421,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/mlme_osdep.h +void rtw_reset_securitypriv( _adapter *adapter ); + +#endif //_MLME_OSDEP_H_ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/mp_custom_oid.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/mp_custom_oid.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/mp_custom_oid.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/mp_custom_oid.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/mp_custom_oid.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/mp_custom_oid.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/mp_custom_oid.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/mp_custom_oid.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,353 @@ +/****************************************************************************** + * @@ -193519,9 +197778,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/mp_custom_oid +#define OID_RT_PRO_EFUSE_MAP 0xFF871217 //Q, S + +#endif //#ifndef __CUSTOM_OID_H -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/nic_spec.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/nic_spec.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/nic_spec.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/nic_spec.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/nic_spec.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/nic_spec.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/nic_spec.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/nic_spec.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,46 @@ +/****************************************************************************** + * @@ -193569,9 +197828,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/nic_spec.h li + + +#endif // __RTL8711_SPEC_H__ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/osdep_ce_service.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/osdep_ce_service.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/osdep_ce_service.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/osdep_ce_service.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/osdep_ce_service.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/osdep_ce_service.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/osdep_ce_service.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/osdep_ce_service.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,170 @@ +/****************************************************************************** + * @@ -193743,9 +198002,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/osdep_ce_serv + NdisInterlockedDecrement((PULONG)&(_MutexCounter)); \ +} +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/osdep_intf.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/osdep_intf.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/osdep_intf.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/osdep_intf.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/osdep_intf.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/osdep_intf.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/osdep_intf.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/osdep_intf.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,154 @@ +/****************************************************************************** + * @@ -193901,9 +198160,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/osdep_intf.h +void rtw_ndev_destructor(_nic_hdl ndev); + +#endif //_OSDEP_INTF_H_ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/osdep_service.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/osdep_service.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/osdep_service.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/osdep_service.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/osdep_service.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/osdep_service.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/osdep_service.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/osdep_service.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,1813 @@ +/****************************************************************************** + * @@ -195718,9 +199977,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/osdep_service +void rtw_cbuf_free(struct rtw_cbuf *cbuf); + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/pci_hal.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/pci_hal.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/pci_hal.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/pci_hal.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/pci_hal.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/pci_hal.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/pci_hal.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/pci_hal.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,167 @@ +/****************************************************************************** + * @@ -195889,9 +200148,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/pci_hal.h lin +#endif + +#endif //__PCIE_HAL_H__ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/pci_ops.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/pci_ops.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/pci_ops.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/pci_ops.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/pci_ops.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/pci_ops.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/pci_ops.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/pci_ops.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,60 @@ +/****************************************************************************** + * @@ -195953,9 +200212,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/pci_ops.h lin +#endif + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/pci_osintf.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/pci_osintf.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/pci_osintf.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/pci_osintf.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/pci_osintf.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/pci_osintf.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/pci_osintf.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/pci_osintf.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,32 @@ +/****************************************************************************** + * @@ -195989,9 +200248,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/pci_osintf.h + + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/recv_osdep.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/recv_osdep.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/recv_osdep.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/recv_osdep.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/recv_osdep.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/recv_osdep.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/recv_osdep.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/recv_osdep.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,57 @@ +/****************************************************************************** + * @@ -196050,9 +200309,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/recv_osdep.h + + +#endif // -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_cmd.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192c_cmd.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_cmd.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192c_cmd.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_cmd.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192c_cmd.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_cmd.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192c_cmd.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,152 @@ +/****************************************************************************** + * @@ -196206,9 +200465,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_cmd. +#endif // CONFIG_WOWLAN + +#endif // __RTL8192C_CMD_H_ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_dm.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192c_dm.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_dm.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192c_dm.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_dm.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192c_dm.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_dm.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192c_dm.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,515 @@ +/****************************************************************************** + * @@ -196725,9 +200984,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_dm.h +#endif + +#endif //__HAL8190PCIDM_H__ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_event.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192c_event.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_event.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192c_event.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_event.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192c_event.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_event.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192c_event.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,26 @@ +/****************************************************************************** + * @@ -196755,9 +201014,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_even + + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_hal.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192c_hal.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_hal.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192c_hal.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_hal.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192c_hal.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_hal.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192c_hal.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,934 @@ +/****************************************************************************** + * @@ -197693,9 +201952,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_hal. +extern void Hal_SetOFDMContinuousTx(PADAPTER pAdapter, u8 bStart); + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_led.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192c_led.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_led.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192c_led.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_led.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192c_led.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_led.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192c_led.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,41 @@ +/****************************************************************************** + * @@ -197738,9 +201997,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_led. +#endif + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_recv.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192c_recv.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_recv.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192c_recv.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_recv.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192c_recv.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_recv.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192c_recv.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,183 @@ +/****************************************************************************** + * @@ -197925,9 +202184,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_recv +void rtl8192c_query_rx_desc_status(union recv_frame *precvframe, struct recv_stat *pdesc); + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_rf.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192c_rf.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_rf.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192c_rf.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_rf.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192c_rf.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_rf.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192c_rf.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,91 @@ +/****************************************************************************** + * @@ -198020,9 +202279,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_rf.h + + +#endif/* End of HalRf.h */ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_spec.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192c_spec.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_spec.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192c_spec.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_spec.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192c_spec.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_spec.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192c_spec.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,1864 @@ +/****************************************************************************** + * @@ -199888,9 +204147,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_spec +#include "basic_types.h" + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_sreset.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192c_sreset.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_sreset.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192c_sreset.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_sreset.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192c_sreset.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_sreset.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192c_sreset.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,32 @@ +/****************************************************************************** + * @@ -199924,9 +204183,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_sres +extern void rtl8192c_sreset_linked_status_check(_adapter *padapter); +#endif +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_xmit.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192c_xmit.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_xmit.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192c_xmit.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_xmit.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192c_xmit.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_xmit.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192c_xmit.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,128 @@ +/****************************************************************************** + * @@ -200056,9 +204315,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_xmit +#endif + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_cmd.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192d_cmd.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_cmd.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192d_cmd.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_cmd.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192d_cmd.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_cmd.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192d_cmd.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,140 @@ +/****************************************************************************** + * @@ -200200,9 +204459,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_cmd. +#endif // CONFIG_WOWLAN + +#endif // __RTL8192D_CMD_H_ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_dm.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192d_dm.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_dm.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192d_dm.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_dm.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192d_dm.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_dm.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192d_dm.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,420 @@ +/****************************************************************************** + * @@ -200624,9 +204883,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_dm.h +VOID rtl8192d_dm_CheckTXPowerTracking(IN PADAPTER Adapter); + +#endif //__HAL8190PCIDM_H__ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_hal.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192d_hal.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_hal.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192d_hal.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_hal.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192d_hal.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_hal.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192d_hal.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,1125 @@ +/****************************************************************************** + * @@ -201753,9 +206012,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_hal. + + +#endif //end CONFIG_MP_INCLUDED -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_led.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192d_led.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_led.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192d_led.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_led.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192d_led.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_led.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192d_led.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,42 @@ +/****************************************************************************** + * @@ -201799,9 +206058,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_led. +#endif + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_recv.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192d_recv.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_recv.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192d_recv.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_recv.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192d_recv.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_recv.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192d_recv.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,186 @@ +/****************************************************************************** + * @@ -201989,9 +206248,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_recv +void rtl8192d_query_rx_desc_status(union recv_frame *precvframe, struct recv_stat *pdesc); + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_rf.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192d_rf.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_rf.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192d_rf.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_rf.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192d_rf.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_rf.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192d_rf.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,96 @@ +/****************************************************************************** + * @@ -202089,9 +206348,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_rf.h + + +#endif/* End of HalRf.h */ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_spec.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192d_spec.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_spec.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192d_spec.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_spec.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192d_spec.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_spec.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192d_spec.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,1840 @@ +/****************************************************************************** + * @@ -203933,9 +208192,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_spec +#include "basic_types.h" + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_xmit.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192d_xmit.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_xmit.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtl8192d_xmit.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_xmit.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192d_xmit.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_xmit.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtl8192d_xmit.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,144 @@ +/****************************************************************************** + * @@ -204081,9 +208340,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_xmit + + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_android.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_android.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_android.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_android.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_android.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_android.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_android.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_android.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,89 @@ +/****************************************************************************** + * @@ -204174,9 +208433,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_android.h +#endif /* defined(RTW_ENABLE_WIFI_CONTROL_FUNC) */ + +#endif //__RTW_ANDROID_H__ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_ap.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_ap.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_ap.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_ap.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_ap.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_ap.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_ap.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_ap.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,63 @@ +/****************************************************************************** + * @@ -204241,9 +208500,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_ap.h linu +#endif //end of CONFIG_AP_MODE + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_br_ext.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_br_ext.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_br_ext.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_br_ext.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_br_ext.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_br_ext.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_br_ext.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_br_ext.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,75 @@ +/****************************************************************************** + * @@ -204320,9 +208579,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_br_ext.h +void nat25_db_cleanup(_adapter *priv); + +#endif // _RTW_BR_EXT_H_ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_byteorder.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_byteorder.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_byteorder.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_byteorder.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_byteorder.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_byteorder.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_byteorder.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_byteorder.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,39 @@ +/****************************************************************************** + * @@ -204363,9 +208622,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_byteorder +#endif + +#endif /* _RTL871X_BYTEORDER_H_ */ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_cmd.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_cmd.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_cmd.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_cmd.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_cmd.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_cmd.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_cmd.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_cmd.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,1166 @@ +/****************************************************************************** + * @@ -205533,9 +209792,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_cmd.h lin +#endif + +#endif // _CMD_H_ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_debug.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_debug.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_debug.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_debug.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_debug.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_debug.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_debug.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_debug.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,537 @@ +/****************************************************************************** + * @@ -206074,9 +210333,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_debug.h l +#endif //CONFIG_PROC_DEBUG + +#endif //__RTW_DEBUG_H__ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_eeprom.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_eeprom.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_eeprom.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_eeprom.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_eeprom.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_eeprom.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_eeprom.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_eeprom.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,152 @@ +/****************************************************************************** + * @@ -206230,9 +210489,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_eeprom.h +#endif //PLATFORM_LINUX + +#endif //__RTL871X_EEPROM_H__ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_efuse.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_efuse.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_efuse.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_efuse.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_efuse.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_efuse.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_efuse.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_efuse.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,123 @@ +/****************************************************************************** + * @@ -206357,9 +210616,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_efuse.h l +void EFUSE_ShadowRead(PADAPTER pAdapter, u8 Type, u16 Offset, u32 *Value); + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_event.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_event.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_event.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_event.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_event.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_event.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_event.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_event.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,153 @@ +/****************************************************************************** + * @@ -206514,9 +210773,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_event.h l + + +#endif // _WLANEVENT_H_ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_ht.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_ht.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_ht.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_ht.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_ht.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_ht.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_ht.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_ht.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,49 @@ +/****************************************************************************** + * @@ -206567,9 +210826,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_ht.h linu +}; + +#endif //_RTL871X_HT_H_ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_io.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_io.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_io.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_io.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_io.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_io.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_io.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_io.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,504 @@ +/****************************************************************************** + * @@ -207075,9 +211334,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_io.h linu +*/ + +#endif //_RTL8711_IO_H_ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_ioctl.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_ioctl.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_ioctl.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_ioctl.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_ioctl.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_ioctl.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_ioctl.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_ioctl.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,268 @@ +/****************************************************************************** + * @@ -207347,9 +211606,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_ioctl.h l + ); + +#endif // #ifndef __INC_CEINFO_ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_query.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_query.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_query.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_query.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_query.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_query.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_query.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_query.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,35 @@ +/****************************************************************************** + * @@ -207386,9 +211645,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_que + + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_rtl.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_rtl.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_rtl.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_rtl.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_rtl.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_rtl.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_rtl.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_rtl.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,83 @@ +/****************************************************************************** + * @@ -207473,9 +211732,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_rtl + + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_set.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_set.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_set.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_set.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_set.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_set.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_set.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_set.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,78 @@ +/****************************************************************************** + * @@ -207555,9 +211814,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_set +int rtw_set_band(_adapter *adapter, enum _BAND band); + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_iol.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_iol.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_iol.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_iol.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_iol.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_iol.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_iol.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_iol.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,89 @@ +/****************************************************************************** + * @@ -207648,9 +211907,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_iol.h lin +bool rtw_IOL_applied(ADAPTER *adapter); + +#endif //__RTW_IOL_H_ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_led.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_led.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_led.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_led.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_led.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_led.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_led.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_led.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,216 @@ +/****************************************************************************** + * @@ -207868,9 +212127,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_led.h lin +extern void BlinkHandler(PLED_871x pLed); + +#endif //__RTW_LED_H_ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_mlme.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_mlme.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_mlme.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_mlme.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_mlme.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_mlme.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_mlme.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_mlme.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,843 @@ +/****************************************************************************** + * @@ -208715,9 +212974,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_mlme.h li +void rtw_proxim_send_packet(_adapter *padapter,u8 *pbuf,u16 len,u8 hw_rate); +#endif //CONFIG_INTEL_PROXIM +#endif //__RTL871X_MLME_H_ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_mlme_ext.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_mlme_ext.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_mlme_ext.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_mlme_ext.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_mlme_ext.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_mlme_ext.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_mlme_ext.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_mlme_ext.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,962 @@ +/****************************************************************************** + * @@ -209681,9 +213940,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_mlme_ext. +#endif//_RTL8192C_CMD_C_ + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_mp.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_mp.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_mp.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_mp.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_mp.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_mp.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_mp.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_mp.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,711 @@ +/****************************************************************************** + * @@ -210396,9 +214655,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_mp.h linu +extern void Hal_ProSetCrystalCap (PADAPTER pAdapter , u32 CrystalCapVal); + +#endif //_RTW_MP_H_ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_mp_ioctl.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_mp_ioctl.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_mp_ioctl.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_mp_ioctl.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_mp_ioctl.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_mp_ioctl.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_mp_ioctl.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_mp_ioctl.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,595 @@ +/****************************************************************************** + * @@ -210995,9 +215254,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_mp_ioctl. +#endif /* _RTW_MP_IOCTL_C_ */ + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_mp_phy_regdef.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_mp_phy_regdef.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_mp_phy_regdef.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_mp_phy_regdef.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_mp_phy_regdef.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_mp_phy_regdef.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_mp_phy_regdef.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_mp_phy_regdef.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,1096 @@ +/****************************************************************************** + * @@ -212095,9 +216354,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_mp_phy_re + + +#endif //__INC_HAL8192SPHYREG_H -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_p2p.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_p2p.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_p2p.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_p2p.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_p2p.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_p2p.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_p2p.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_p2p.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,160 @@ +/****************************************************************************** + * @@ -212259,9 +216518,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_p2p.h lin + (wdinfo)->find_phase_state_exchange_cnt != P2P_FINDPHASE_EX_NONE) + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_pwrctrl.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_pwrctrl.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_pwrctrl.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_pwrctrl.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_pwrctrl.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_pwrctrl.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_pwrctrl.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_pwrctrl.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,362 @@ +/****************************************************************************** + * @@ -212625,9 +216884,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_pwrctrl.h +int rtw_pm_set_lps(_adapter *padapter, u8 mode); + +#endif //__RTL871X_PWRCTRL_H_ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_qos.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_qos.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_qos.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_qos.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_qos.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_qos.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_qos.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_qos.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,39 @@ +/****************************************************************************** + * @@ -212668,9 +216927,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_qos.h lin + + +#endif //_RTL871X_QOS_H_ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_recv.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_recv.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_recv.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_recv.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_recv.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_recv.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_recv.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_recv.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,730 @@ +/****************************************************************************** + * @@ -213402,9 +217661,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_recv.h li +extern void mgt_dispatcher(_adapter *padapter, union recv_frame *precv_frame); + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_rf.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_rf.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_rf.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_rf.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_rf.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_rf.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_rf.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_rf.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,151 @@ +/****************************************************************************** + * @@ -213557,9 +217816,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_rf.h linu + + +#endif //_RTL8711_RF_H_ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_security.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_security.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_security.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_security.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_security.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_security.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_security.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_security.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,446 @@ +/****************************************************************************** + * @@ -214007,9 +218266,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_security. +u8 rtw_handle_tkip_countermeasure(_adapter* adapter, const char *caller); + +#endif //__RTL871X_SECURITY_H_ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_sreset.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_sreset.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_sreset.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_sreset.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_sreset.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_sreset.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_sreset.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_sreset.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,73 @@ +/****************************************************************************** + * @@ -214084,9 +218343,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_sreset.h +void sreset_reset(_adapter *padapter); + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_tdls.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_tdls.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_tdls.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_tdls.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_tdls.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_tdls.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_tdls.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_tdls.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,142 @@ +/****************************************************************************** + * @@ -214230,14 +218489,14 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_tdls.h li +#endif //CONFIG_TDLS + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_version.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_version.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_version.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_version.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_version.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_version.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_version.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_version.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1 @@ +#define DRIVERVERSION "v4.0.2_9000.20130911" -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_xmit.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_xmit.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_xmit.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/rtw_xmit.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_xmit.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_xmit.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/rtw_xmit.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/rtw_xmit.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,753 @@ +/****************************************************************************** + * @@ -214992,9 +219251,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/rtw_xmit.h li +#include <xmit_osdep.h> + +#endif //_RTL871X_XMIT_H_ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/sta_info.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/sta_info.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/sta_info.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/sta_info.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/sta_info.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/sta_info.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/sta_info.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/sta_info.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,431 @@ +/****************************************************************************** + * @@ -215427,9 +219686,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/sta_info.h li +extern u8 rtw_access_ctrl(_adapter *padapter, u8 *mac_addr); + +#endif //_STA_INFO_H_ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/usb_hal.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/usb_hal.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/usb_hal.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/usb_hal.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/usb_hal.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/usb_hal.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/usb_hal.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/usb_hal.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,36 @@ +/****************************************************************************** + * @@ -215467,9 +219726,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/usb_hal.h lin +#endif // CONFIG_WOWLAN_MANUAL +#endif //CONFIG_WOWLAN +#endif //__USB_HAL_H__ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/usb_ops.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/usb_ops.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/usb_ops.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/usb_ops.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/usb_ops.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/usb_ops.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/usb_ops.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/usb_ops.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,109 @@ +/****************************************************************************** + * @@ -215580,9 +219839,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/usb_ops.h lin +} + +#endif //__USB_OPS_H_ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/usb_ops_linux.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/usb_ops_linux.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/usb_ops_linux.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/usb_ops_linux.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/usb_ops_linux.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/usb_ops_linux.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/usb_ops_linux.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/usb_ops_linux.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,62 @@ +/****************************************************************************** + * @@ -215646,9 +219905,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/usb_ops_linux +void usb_write_port_cancel(struct intf_hdl *pintfhdl); + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/usb_osintf.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/usb_osintf.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/usb_osintf.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/usb_osintf.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/usb_osintf.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/usb_osintf.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/usb_osintf.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/usb_osintf.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,37 @@ +/****************************************************************************** + * @@ -215687,9 +219946,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/usb_osintf.h + + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/usb_vendor_req.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/usb_vendor_req.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/usb_vendor_req.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/usb_vendor_req.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/usb_vendor_req.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/usb_vendor_req.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/usb_vendor_req.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/usb_vendor_req.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,59 @@ +/****************************************************************************** + * @@ -215750,9 +220009,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/usb_vendor_re +//BOOLEAN CEusbGetDescriptorRequest(PCE_USB_DEVICE CEdevice, IN short urbLength, IN UCHAR DescriptorType, IN UCHAR Index, IN USHORT LanguageId, IN PVOID TransferBuffer, IN ULONG TransferBufferLength); + +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/wifi.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/wifi.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/wifi.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/wifi.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/wifi.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/wifi.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/wifi.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/wifi.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,1245 @@ +/****************************************************************************** + * @@ -216999,9 +221258,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/wifi.h linux- + + +#endif // _WIFI_H_ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/wlan_bssdef.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/wlan_bssdef.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/wlan_bssdef.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/wlan_bssdef.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/wlan_bssdef.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/wlan_bssdef.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/wlan_bssdef.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/wlan_bssdef.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,702 @@ +/****************************************************************************** + * @@ -217705,9 +221964,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/wlan_bssdef.h + + +#endif //#ifndef WLAN_BSSDEF_H_ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/xmit_osdep.h linux-4.1.22/drivers/net/wireless/rtl8192cu/include/xmit_osdep.h ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/xmit_osdep.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/include/xmit_osdep.h 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/xmit_osdep.h linux-4.1.23/drivers/net/wireless/rtl8192cu/include/xmit_osdep.h +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/include/xmit_osdep.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/include/xmit_osdep.h 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,94 @@ +/****************************************************************************** + * @@ -217803,9 +222062,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/include/xmit_osdep.h +extern void rtw_os_xmit_complete(_adapter *padapter, struct xmit_frame *pxframe); + +#endif //__XMIT_OSDEP_H_ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_cfg80211.c linux-4.1.22/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_cfg80211.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_cfg80211.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_cfg80211.c 2016-04-29 18:02:47.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_cfg80211.c linux-4.1.23/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_cfg80211.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_cfg80211.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_cfg80211.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,5488 @@ +/****************************************************************************** + * @@ -223295,9 +227554,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_cf +} + +#endif //CONFIG_IOCTL_CFG80211 -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_linux.c linux-4.1.22/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_linux.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_linux.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_linux.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_linux.c linux-4.1.23/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_linux.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_linux.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_linux.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,11908 @@ +/****************************************************************************** + * @@ -235207,9 +239466,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_li +#endif +}; +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/mlme_linux.c linux-4.1.22/drivers/net/wireless/rtl8192cu/os_dep/linux/mlme_linux.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/mlme_linux.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/os_dep/linux/mlme_linux.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/mlme_linux.c linux-4.1.23/drivers/net/wireless/rtl8192cu/os_dep/linux/mlme_linux.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/mlme_linux.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/os_dep/linux/mlme_linux.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,585 @@ +/****************************************************************************** + * @@ -235796,9 +240055,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/mlme_lin + +#endif +#endif -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.c linux-4.1.22/drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.c linux-4.1.23/drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,2748 @@ +/****************************************************************************** + * @@ -238548,9 +242807,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs +#endif + free_netdev(ndev); +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/pci_intf.c linux-4.1.22/drivers/net/wireless/rtl8192cu/os_dep/linux/pci_intf.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/pci_intf.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/os_dep/linux/pci_intf.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/pci_intf.c linux-4.1.23/drivers/net/wireless/rtl8192cu/os_dep/linux/pci_intf.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/pci_intf.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/os_dep/linux/pci_intf.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,1996 @@ +/****************************************************************************** + * @@ -240548,9 +244807,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/pci_intf + +module_init(rtw_drv_entry); +module_exit(rtw_drv_halt); -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/pci_ops_linux.c linux-4.1.22/drivers/net/wireless/rtl8192cu/os_dep/linux/pci_ops_linux.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/pci_ops_linux.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/os_dep/linux/pci_ops_linux.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/pci_ops_linux.c linux-4.1.23/drivers/net/wireless/rtl8192cu/os_dep/linux/pci_ops_linux.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/pci_ops_linux.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/os_dep/linux/pci_ops_linux.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,21 @@ +/****************************************************************************** + * @@ -240573,9 +244832,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/pci_ops_ +#define _PCI_OPS_LINUX_C_ + +#include <drv_types.h> -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/recv_linux.c linux-4.1.22/drivers/net/wireless/rtl8192cu/os_dep/linux/recv_linux.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/recv_linux.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/os_dep/linux/recv_linux.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/recv_linux.c linux-4.1.23/drivers/net/wireless/rtl8192cu/os_dep/linux/recv_linux.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/recv_linux.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/os_dep/linux/recv_linux.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,447 @@ +/****************************************************************************** + * @@ -241024,9 +245283,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/recv_lin + _init_timer(&(preorder_ctrl->reordering_ctrl_timer), padapter->pnetdev, _rtw_reordering_ctrl_timeout_handler, preorder_ctrl); + +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/rtw_android.c linux-4.1.22/drivers/net/wireless/rtl8192cu/os_dep/linux/rtw_android.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/rtw_android.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/os_dep/linux/rtw_android.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/rtw_android.c linux-4.1.23/drivers/net/wireless/rtl8192cu/os_dep/linux/rtw_android.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/rtw_android.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/os_dep/linux/rtw_android.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,838 @@ +/****************************************************************************** + * @@ -241866,9 +246125,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/rtw_andr + platform_driver_unregister(&wifi_device_legacy); +} +#endif /* defined(RTW_ENABLE_WIFI_CONTROL_FUNC) */ -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c linux-4.1.22/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c linux-4.1.23/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,1655 @@ +/****************************************************************************** + * @@ -243525,9 +247784,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf +} +EXPORT_SYMBOL(rtw_usb_get_sw_pointer); +#endif //CONFIG_INTEL_PROXIM -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_ops_linux.c linux-4.1.22/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_ops_linux.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_ops_linux.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_ops_linux.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_ops_linux.c linux-4.1.23/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_ops_linux.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_ops_linux.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_ops_linux.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,648 @@ +/****************************************************************************** + * @@ -244177,9 +248436,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_ops_ + pxmitbuf++; + } +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/xmit_linux.c linux-4.1.22/drivers/net/wireless/rtl8192cu/os_dep/linux/xmit_linux.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/xmit_linux.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/os_dep/linux/xmit_linux.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/xmit_linux.c linux-4.1.23/drivers/net/wireless/rtl8192cu/os_dep/linux/xmit_linux.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/xmit_linux.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/os_dep/linux/xmit_linux.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,420 @@ +/****************************************************************************** + * @@ -244601,9 +248860,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/xmit_lin + rtw_mstat_update(MSTAT_TYPE_SKB, MSTAT_ALLOC_SUCCESS, pkt->truesize); + return _rtw_xmit_entry(pkt, pnetdev); +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/osdep_service.c linux-4.1.22/drivers/net/wireless/rtl8192cu/os_dep/osdep_service.c ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/osdep_service.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/os_dep/osdep_service.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/os_dep/osdep_service.c linux-4.1.23/drivers/net/wireless/rtl8192cu/os_dep/osdep_service.c +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/os_dep/osdep_service.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/os_dep/osdep_service.c 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,2299 @@ +/****************************************************************************** + * @@ -246904,9 +251163,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/os_dep/osdep_service. +{ + rtw_mfree((u8*)cbuf, sizeof(*cbuf) + sizeof(void*)*cbuf->size); +} -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/runwpa linux-4.1.22/drivers/net/wireless/rtl8192cu/runwpa ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/runwpa 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/runwpa 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/runwpa linux-4.1.23/drivers/net/wireless/rtl8192cu/runwpa +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/runwpa 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/runwpa 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,18 @@ +#!/bin/bash + @@ -246926,9 +251185,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/runwpa linux-4.1.22/d + + fi +fi -diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/wlan0dhcp linux-4.1.22/drivers/net/wireless/rtl8192cu/wlan0dhcp ---- linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/wlan0dhcp 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/net/wireless/rtl8192cu/wlan0dhcp 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/wlan0dhcp linux-4.1.23/drivers/net/wireless/rtl8192cu/wlan0dhcp +--- linux-4.1.23.orig/drivers/net/wireless/rtl8192cu/wlan0dhcp 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/net/wireless/rtl8192cu/wlan0dhcp 2016-05-02 22:53:56.000000000 +0200 @@ -0,0 +1,15 @@ +#!/bin/bash + @@ -246945,9 +251204,9 @@ diff -Nur linux-4.1.22.orig/drivers/net/wireless/rtl8192cu/wlan0dhcp linux-4.1.2 +rm -f /etc/sysconfig/network-scripts/ifcfg-wlan0 + +echo "get ip: $var1" -diff -Nur linux-4.1.22.orig/drivers/of/fdt.c linux-4.1.22/drivers/of/fdt.c ---- linux-4.1.22.orig/drivers/of/fdt.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/of/fdt.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/of/fdt.c linux-4.1.23/drivers/of/fdt.c +--- linux-4.1.23.orig/drivers/of/fdt.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/of/fdt.c 2016-05-02 22:53:56.000000000 +0200 @@ -933,19 +933,38 @@ /* Retrieve command line */ @@ -246992,9 +251251,97 @@ diff -Nur linux-4.1.22.orig/drivers/of/fdt.c linux-4.1.22/drivers/of/fdt.c #endif /* CONFIG_CMDLINE */ pr_debug("Command line is: %s\n", (char*)data); -diff -Nur linux-4.1.22.orig/drivers/pinctrl/Makefile linux-4.1.22/drivers/pinctrl/Makefile ---- linux-4.1.22.orig/drivers/pinctrl/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/pinctrl/Makefile 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/of/of_reserved_mem.c linux-4.1.23/drivers/of/of_reserved_mem.c +--- linux-4.1.23.orig/drivers/of/of_reserved_mem.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/of/of_reserved_mem.c 2016-05-02 22:53:56.000000000 +0200 +@@ -31,13 +31,11 @@ + phys_addr_t align, phys_addr_t start, phys_addr_t end, bool nomap, + phys_addr_t *res_base) + { +- phys_addr_t base; + /* + * We use __memblock_alloc_base() because memblock_alloc_base() + * panic()s on allocation failure. + */ +- end = !end ? MEMBLOCK_ALLOC_ANYWHERE : end; +- base = __memblock_alloc_base(size, align, end); ++ phys_addr_t base = __memblock_alloc_base(size, align, end); + if (!base) + return -ENOMEM; + +diff -Nur linux-4.1.23.orig/drivers/pci/probe.c linux-4.1.23/drivers/pci/probe.c +--- linux-4.1.23.orig/drivers/pci/probe.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/pci/probe.c 2016-05-02 22:53:56.000000000 +0200 +@@ -176,9 +176,6 @@ + u16 orig_cmd; + struct pci_bus_region region, inverted_region; + +- if (dev->non_compliant_bars) +- return 0; +- + mask = type ? PCI_ROM_ADDRESS_MASK : ~0; + + /* No printks while decoding is disabled! */ +@@ -976,8 +973,6 @@ + { + int pos; + u16 reg16; +- int type; +- struct pci_dev *parent; + + pos = pci_find_capability(pdev, PCI_CAP_ID_EXP); + if (!pos) +@@ -987,22 +982,6 @@ + pdev->pcie_flags_reg = reg16; + pci_read_config_word(pdev, pos + PCI_EXP_DEVCAP, ®16); + pdev->pcie_mpss = reg16 & PCI_EXP_DEVCAP_PAYLOAD; +- +- /* +- * A Root Port is always the upstream end of a Link. No PCIe +- * component has two Links. Two Links are connected by a Switch +- * that has a Port on each Link and internal logic to connect the +- * two Ports. +- */ +- type = pci_pcie_type(pdev); +- if (type == PCI_EXP_TYPE_ROOT_PORT) +- pdev->has_secondary_link = 1; +- else if (type == PCI_EXP_TYPE_UPSTREAM || +- type == PCI_EXP_TYPE_DOWNSTREAM) { +- parent = pci_upstream_bridge(pdev); +- if (!parent->has_secondary_link) +- pdev->has_secondary_link = 1; +- } + } + + void set_pcie_hotplug_bridge(struct pci_dev *pdev) +@@ -1119,7 +1098,6 @@ + int pci_setup_device(struct pci_dev *dev) + { + u32 class; +- u16 cmd; + u8 hdr_type; + struct pci_slot *slot; + int pos = 0; +@@ -1167,16 +1145,6 @@ + /* device class may be changed after fixup */ + class = dev->class >> 8; + +- if (dev->non_compliant_bars) { +- pci_read_config_word(dev, PCI_COMMAND, &cmd); +- if (cmd & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) { +- dev_info(&dev->dev, "device has non-compliant BARs; disabling IO/MEM decoding\n"); +- cmd &= ~PCI_COMMAND_IO; +- cmd &= ~PCI_COMMAND_MEMORY; +- pci_write_config_word(dev, PCI_COMMAND, cmd); +- } +- } +- + switch (dev->hdr_type) { /* header type */ + case PCI_HEADER_TYPE_NORMAL: /* standard header */ + if (class == PCI_CLASS_BRIDGE_PCI) +diff -Nur linux-4.1.23.orig/drivers/pinctrl/Makefile linux-4.1.23/drivers/pinctrl/Makefile +--- linux-4.1.23.orig/drivers/pinctrl/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/pinctrl/Makefile 2016-05-02 22:53:56.000000000 +0200 @@ -38,6 +38,7 @@ obj-$(CONFIG_PINCTRL_ST) += pinctrl-st.o obj-$(CONFIG_PINCTRL_ZYNQ) += pinctrl-zynq.o @@ -247003,9 +251350,9 @@ diff -Nur linux-4.1.22.orig/drivers/pinctrl/Makefile linux-4.1.22/drivers/pinctr obj-$(CONFIG_ARCH_BCM) += bcm/ obj-$(CONFIG_ARCH_BERLIN) += berlin/ obj-y += freescale/ -diff -Nur linux-4.1.22.orig/drivers/pinctrl/bcm/pinctrl-bcm2835.c linux-4.1.22/drivers/pinctrl/bcm/pinctrl-bcm2835.c ---- linux-4.1.22.orig/drivers/pinctrl/bcm/pinctrl-bcm2835.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/pinctrl/bcm/pinctrl-bcm2835.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/pinctrl/bcm/pinctrl-bcm2835.c linux-4.1.23/drivers/pinctrl/bcm/pinctrl-bcm2835.c +--- linux-4.1.23.orig/drivers/pinctrl/bcm/pinctrl-bcm2835.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/pinctrl/bcm/pinctrl-bcm2835.c 2016-05-02 22:53:56.000000000 +0200 @@ -47,6 +47,7 @@ #define MODULE_NAME "pinctrl-bcm2835" #define BCM2835_NUM_GPIOS 54 @@ -247160,9 +251507,33 @@ diff -Nur linux-4.1.22.orig/drivers/pinctrl/bcm/pinctrl-bcm2835.c linux-4.1.22/d .of_match_table = bcm2835_pinctrl_match, }, }; -diff -Nur linux-4.1.22.orig/drivers/power/reset/gpio-poweroff.c linux-4.1.22/drivers/power/reset/gpio-poweroff.c ---- linux-4.1.22.orig/drivers/power/reset/gpio-poweroff.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/power/reset/gpio-poweroff.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/platform/x86/ideapad-laptop.c linux-4.1.23/drivers/platform/x86/ideapad-laptop.c +--- linux-4.1.23.orig/drivers/platform/x86/ideapad-laptop.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/platform/x86/ideapad-laptop.c 2016-05-02 22:53:56.000000000 +0200 +@@ -845,20 +845,6 @@ + }, + }, + { +- .ident = "Lenovo ideapad Y700-15ISK", +- .matches = { +- DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), +- DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo ideapad Y700-15ISK"), +- }, +- }, +- { +- .ident = "Lenovo ideapad Y700 Touch-15ISK", +- .matches = { +- DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), +- DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo ideapad Y700 Touch-15ISK"), +- }, +- }, +- { + .ident = "Lenovo ideapad Y700-17ISK", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), +diff -Nur linux-4.1.23.orig/drivers/power/reset/gpio-poweroff.c linux-4.1.23/drivers/power/reset/gpio-poweroff.c +--- linux-4.1.23.orig/drivers/power/reset/gpio-poweroff.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/power/reset/gpio-poweroff.c 2016-05-02 22:53:56.000000000 +0200 @@ -48,9 +48,11 @@ static int gpio_poweroff_probe(struct platform_device *pdev) { @@ -247176,9 +251547,9 @@ diff -Nur linux-4.1.22.orig/drivers/power/reset/gpio-poweroff.c linux-4.1.22/dri dev_err(&pdev->dev, "%s: pm_power_off function already registered", __func__); -diff -Nur linux-4.1.22.orig/drivers/pwm/Kconfig linux-4.1.22/drivers/pwm/Kconfig ---- linux-4.1.22.orig/drivers/pwm/Kconfig 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/pwm/Kconfig 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/pwm/Kconfig linux-4.1.23/drivers/pwm/Kconfig +--- linux-4.1.23.orig/drivers/pwm/Kconfig 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/pwm/Kconfig 2016-05-02 22:53:56.000000000 +0200 @@ -85,7 +85,7 @@ config PWM_BCM2835 @@ -247188,9 +251559,9 @@ diff -Nur linux-4.1.22.orig/drivers/pwm/Kconfig linux-4.1.22/drivers/pwm/Kconfig help PWM framework driver for BCM2835 controller (Raspberry Pi) -diff -Nur linux-4.1.22.orig/drivers/rtc/rtc-ds1307.c linux-4.1.22/drivers/rtc/rtc-ds1307.c ---- linux-4.1.22.orig/drivers/rtc/rtc-ds1307.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/rtc/rtc-ds1307.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/rtc/rtc-ds1307.c linux-4.1.23/drivers/rtc/rtc-ds1307.c +--- linux-4.1.23.orig/drivers/rtc/rtc-ds1307.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/rtc/rtc-ds1307.c 2016-05-02 22:53:56.000000000 +0200 @@ -1242,6 +1242,14 @@ return 0; } @@ -247206,9 +251577,177 @@ diff -Nur linux-4.1.22.orig/drivers/rtc/rtc-ds1307.c linux-4.1.22/drivers/rtc/rt static struct i2c_driver ds1307_driver = { .driver = { .name = "rtc-ds1307", -diff -Nur linux-4.1.22.orig/drivers/spi/Kconfig linux-4.1.22/drivers/spi/Kconfig ---- linux-4.1.22.orig/drivers/spi/Kconfig 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/spi/Kconfig 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/scsi/aacraid/aacraid.h linux-4.1.23/drivers/scsi/aacraid/aacraid.h +--- linux-4.1.23.orig/drivers/scsi/aacraid/aacraid.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/scsi/aacraid/aacraid.h 2016-05-02 22:53:56.000000000 +0200 +@@ -939,7 +939,6 @@ + */ + struct list_head fiblink; + void *data; +- u32 vector_no; + struct hw_fib *hw_fib_va; /* Actual shared object */ + dma_addr_t hw_fib_pa; /* physical address of hw_fib*/ + }; +@@ -2099,7 +2098,6 @@ + #define AAC_OWNER_FIRMWARE 0x106 + + const char *aac_driverinfo(struct Scsi_Host *); +-void aac_fib_vector_assign(struct aac_dev *dev); + struct fib *aac_fib_alloc(struct aac_dev *dev); + int aac_fib_setup(struct aac_dev *dev); + void aac_fib_map_free(struct aac_dev *dev); +diff -Nur linux-4.1.23.orig/drivers/scsi/aacraid/commsup.c linux-4.1.23/drivers/scsi/aacraid/commsup.c +--- linux-4.1.23.orig/drivers/scsi/aacraid/commsup.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/scsi/aacraid/commsup.c 2016-05-02 22:53:56.000000000 +0200 +@@ -83,38 +83,13 @@ + + void aac_fib_map_free(struct aac_dev *dev) + { +- if (dev->hw_fib_va && dev->max_fib_size) { +- pci_free_consistent(dev->pdev, +- (dev->max_fib_size * +- (dev->scsi_host_ptr->can_queue + AAC_NUM_MGT_FIB)), +- dev->hw_fib_va, dev->hw_fib_pa); +- } ++ pci_free_consistent(dev->pdev, ++ dev->max_fib_size * (dev->scsi_host_ptr->can_queue + AAC_NUM_MGT_FIB), ++ dev->hw_fib_va, dev->hw_fib_pa); + dev->hw_fib_va = NULL; + dev->hw_fib_pa = 0; + } + +-void aac_fib_vector_assign(struct aac_dev *dev) +-{ +- u32 i = 0; +- u32 vector = 1; +- struct fib *fibptr = NULL; +- +- for (i = 0, fibptr = &dev->fibs[i]; +- i < (dev->scsi_host_ptr->can_queue + AAC_NUM_MGT_FIB); +- i++, fibptr++) { +- if ((dev->max_msix == 1) || +- (i > ((dev->scsi_host_ptr->can_queue + AAC_NUM_MGT_FIB - 1) +- - dev->vector_cap))) { +- fibptr->vector_no = 0; +- } else { +- fibptr->vector_no = vector; +- vector++; +- if (vector == dev->max_msix) +- vector = 1; +- } +- } +-} +- + /** + * aac_fib_setup - setup the fibs + * @dev: Adapter to set up +@@ -176,12 +151,6 @@ + hw_fib_pa = hw_fib_pa + + dev->max_fib_size + sizeof(struct aac_fib_xporthdr); + } +- +- /* +- *Assign vector numbers to fibs +- */ +- aac_fib_vector_assign(dev); +- + /* + * Add the fib chain to the free list + */ +diff -Nur linux-4.1.23.orig/drivers/scsi/aacraid/src.c linux-4.1.23/drivers/scsi/aacraid/src.c +--- linux-4.1.23.orig/drivers/scsi/aacraid/src.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/scsi/aacraid/src.c 2016-05-02 22:53:56.000000000 +0200 +@@ -156,8 +156,8 @@ + break; + if (dev->msi_enabled && dev->max_msix > 1) + atomic_dec(&dev->rrq_outstanding[vector_no]); +- dev->host_rrq[index++] = 0; + aac_intr_normal(dev, handle-1, 0, isFastResponse, NULL); ++ dev->host_rrq[index++] = 0; + if (index == (vector_no + 1) * dev->vector_cap) + index = vector_no * dev->vector_cap; + dev->host_rrq_idx[vector_no] = index; +@@ -448,20 +448,36 @@ + dma_addr_t address; + struct aac_fib_xporthdr *pFibX; + u16 hdr_size = le16_to_cpu(fib->hw_fib_va->header.Size); +- u16 vector_no; + + atomic_inc(&q->numpending); + + if (dev->msi_enabled && fib->hw_fib_va->header.Command != AifRequest && + dev->max_msix > 1) { +- vector_no = fib->vector_no; ++ u_int16_t vector_no, first_choice = 0xffff; ++ ++ vector_no = dev->fibs_pushed_no % dev->max_msix; ++ do { ++ vector_no += 1; ++ if (vector_no == dev->max_msix) ++ vector_no = 1; ++ if (atomic_read(&dev->rrq_outstanding[vector_no]) < ++ dev->vector_cap) ++ break; ++ if (0xffff == first_choice) ++ first_choice = vector_no; ++ else if (vector_no == first_choice) ++ break; ++ } while (1); ++ if (vector_no == first_choice) ++ vector_no = 0; ++ atomic_inc(&dev->rrq_outstanding[vector_no]); ++ if (dev->fibs_pushed_no == 0xffffffff) ++ dev->fibs_pushed_no = 0; ++ else ++ dev->fibs_pushed_no++; + fib->hw_fib_va->header.Handle += (vector_no << 16); +- } else { +- vector_no = 0; + } + +- atomic_inc(&dev->rrq_outstanding[vector_no]); +- + if (dev->comm_interface == AAC_COMM_MESSAGE_TYPE2) { + /* Calculate the amount to the fibsize bits */ + fibsize = (hdr_size + 127) / 128 - 1; +diff -Nur linux-4.1.23.orig/drivers/scsi/aic7xxx/aic7xxx_osm.c linux-4.1.23/drivers/scsi/aic7xxx/aic7xxx_osm.c +--- linux-4.1.23.orig/drivers/scsi/aic7xxx/aic7xxx_osm.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/scsi/aic7xxx/aic7xxx_osm.c 2016-05-02 22:53:56.000000000 +0200 +@@ -1337,7 +1337,6 @@ + case AHC_DEV_Q_TAGGED: + scsi_change_queue_depth(sdev, + dev->openings + dev->active); +- break; + default: + /* + * We allow the OS to queue 2 untagged transactions to +diff -Nur linux-4.1.23.orig/drivers/scsi/be2iscsi/be_main.c linux-4.1.23/drivers/scsi/be2iscsi/be_main.c +--- linux-4.1.23.orig/drivers/scsi/be2iscsi/be_main.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/scsi/be2iscsi/be_main.c 2016-05-02 22:53:56.000000000 +0200 +@@ -4434,7 +4434,6 @@ + scsi_host_put(phba->shost); + free_kset: + iscsi_boot_destroy_kset(phba->boot_kset); +- phba->boot_kset = NULL; + return -ENOMEM; + } + +diff -Nur linux-4.1.23.orig/drivers/scsi/sg.c linux-4.1.23/drivers/scsi/sg.c +--- linux-4.1.23.orig/drivers/scsi/sg.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/scsi/sg.c 2016-05-02 22:53:57.000000000 +0200 +@@ -652,8 +652,7 @@ + else + hp->dxfer_direction = (mxsize > 0) ? SG_DXFER_FROM_DEV : SG_DXFER_NONE; + hp->dxfer_len = mxsize; +- if ((hp->dxfer_direction == SG_DXFER_TO_DEV) || +- (hp->dxfer_direction == SG_DXFER_TO_FROM_DEV)) ++ if (hp->dxfer_direction == SG_DXFER_TO_DEV) + hp->dxferp = (char __user *)buf + cmd_size; + else + hp->dxferp = NULL; +diff -Nur linux-4.1.23.orig/drivers/spi/Kconfig linux-4.1.23/drivers/spi/Kconfig +--- linux-4.1.23.orig/drivers/spi/Kconfig 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/spi/Kconfig 2016-05-02 22:53:57.000000000 +0200 @@ -77,7 +77,7 @@ config SPI_BCM2835 @@ -247233,9 +251772,9 @@ diff -Nur linux-4.1.22.orig/drivers/spi/Kconfig linux-4.1.22/drivers/spi/Kconfig config SPI_BFIN5XX tristate "SPI controller driver for ADI Blackfin5xx" depends on BLACKFIN && !BF60x -diff -Nur linux-4.1.22.orig/drivers/spi/Makefile linux-4.1.22/drivers/spi/Makefile ---- linux-4.1.22.orig/drivers/spi/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/spi/Makefile 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/spi/Makefile linux-4.1.23/drivers/spi/Makefile +--- linux-4.1.23.orig/drivers/spi/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/spi/Makefile 2016-05-02 22:53:57.000000000 +0200 @@ -20,6 +20,7 @@ obj-$(CONFIG_SPI_BCM63XX_HSSPI) += spi-bcm63xx-hsspi.o obj-$(CONFIG_SPI_BFIN5XX) += spi-bfin5xx.o @@ -247244,9 +251783,9 @@ diff -Nur linux-4.1.22.orig/drivers/spi/Makefile linux-4.1.22/drivers/spi/Makefi 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-4.1.22.orig/drivers/spi/spi-bcm2708.c linux-4.1.22/drivers/spi/spi-bcm2708.c ---- linux-4.1.22.orig/drivers/spi/spi-bcm2708.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/spi/spi-bcm2708.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/spi/spi-bcm2708.c linux-4.1.23/drivers/spi/spi-bcm2708.c +--- linux-4.1.23.orig/drivers/spi/spi-bcm2708.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/spi/spi-bcm2708.c 2016-05-02 22:53:57.000000000 +0200 @@ -0,0 +1,628 @@ +/* + * Driver for Broadcom BCM2708 SPI Controllers @@ -247876,9 +252415,9 @@ diff -Nur linux-4.1.22.orig/drivers/spi/spi-bcm2708.c linux-4.1.22/drivers/spi/s +MODULE_AUTHOR("Chris Boot <bootc@bootc.net>"); +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:" DRV_NAME); -diff -Nur linux-4.1.22.orig/drivers/spi/spi-bcm2835.c linux-4.1.22/drivers/spi/spi-bcm2835.c ---- linux-4.1.22.orig/drivers/spi/spi-bcm2835.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/spi/spi-bcm2835.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/spi/spi-bcm2835.c linux-4.1.23/drivers/spi/spi-bcm2835.c +--- linux-4.1.23.orig/drivers/spi/spi-bcm2835.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/spi/spi-bcm2835.c 2016-05-02 22:53:57.000000000 +0200 @@ -20,18 +20,22 @@ * GNU General Public License for more details. */ @@ -248437,9 +252976,9 @@ diff -Nur linux-4.1.22.orig/drivers/spi/spi-bcm2835.c linux-4.1.22/drivers/spi/s return 0; } -diff -Nur linux-4.1.22.orig/drivers/spi/spidev.c linux-4.1.22/drivers/spi/spidev.c ---- linux-4.1.22.orig/drivers/spi/spidev.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/spi/spidev.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/spi/spidev.c linux-4.1.23/drivers/spi/spidev.c +--- linux-4.1.23.orig/drivers/spi/spidev.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/spi/spidev.c 2016-05-02 22:53:57.000000000 +0200 @@ -707,6 +707,7 @@ #ifdef CONFIG_OF static const struct of_device_id spidev_dt_ids[] = { @@ -248448,9 +252987,55 @@ diff -Nur linux-4.1.22.orig/drivers/spi/spidev.c linux-4.1.22/drivers/spi/spidev {}, }; MODULE_DEVICE_TABLE(of, spidev_dt_ids); -diff -Nur linux-4.1.22.orig/drivers/staging/fbtft/fbtft-core.c linux-4.1.22/drivers/staging/fbtft/fbtft-core.c ---- linux-4.1.22.orig/drivers/staging/fbtft/fbtft-core.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/staging/fbtft/fbtft-core.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/staging/comedi/drivers/ni_mio_common.c linux-4.1.23/drivers/staging/comedi/drivers/ni_mio_common.c +--- linux-4.1.23.orig/drivers/staging/comedi/drivers/ni_mio_common.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/staging/comedi/drivers/ni_mio_common.c 2016-05-02 22:53:57.000000000 +0200 +@@ -247,24 +247,24 @@ + { + if (dev->mmio) + writel(data, dev->mmio + reg); +- else +- outl(data, dev->iobase + reg); ++ ++ outl(data, dev->iobase + reg); + } + + static void ni_writew(struct comedi_device *dev, uint16_t data, int reg) + { + if (dev->mmio) + writew(data, dev->mmio + reg); +- else +- outw(data, dev->iobase + reg); ++ ++ outw(data, dev->iobase + reg); + } + + static void ni_writeb(struct comedi_device *dev, uint8_t data, int reg) + { + if (dev->mmio) + writeb(data, dev->mmio + reg); +- else +- outb(data, dev->iobase + reg); ++ ++ outb(data, dev->iobase + reg); + } + + static uint32_t ni_readl(struct comedi_device *dev, int reg) +diff -Nur linux-4.1.23.orig/drivers/staging/comedi/drivers/ni_tiocmd.c linux-4.1.23/drivers/staging/comedi/drivers/ni_tiocmd.c +--- linux-4.1.23.orig/drivers/staging/comedi/drivers/ni_tiocmd.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/staging/comedi/drivers/ni_tiocmd.c 2016-05-02 22:53:57.000000000 +0200 +@@ -92,7 +92,7 @@ + unsigned long flags; + int ret = 0; + +- if (trig_num != cmd->start_arg) ++ if (trig_num != cmd->start_src) + return -EINVAL; + + spin_lock_irqsave(&counter->lock, flags); +diff -Nur linux-4.1.23.orig/drivers/staging/fbtft/fbtft-core.c linux-4.1.23/drivers/staging/fbtft/fbtft-core.c +--- linux-4.1.23.orig/drivers/staging/fbtft/fbtft-core.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/staging/fbtft/fbtft-core.c 2016-05-02 22:53:57.000000000 +0200 @@ -1074,6 +1074,11 @@ p = of_prop_next_u32(prop, NULL, &val); if (!p) @@ -248463,9 +253048,9 @@ diff -Nur linux-4.1.22.orig/drivers/staging/fbtft/fbtft-core.c linux-4.1.22/driv while (p) { if (val & FBTFT_OF_INIT_CMD) { val &= 0xFFFF; -diff -Nur linux-4.1.22.orig/drivers/staging/media/lirc/Kconfig linux-4.1.22/drivers/staging/media/lirc/Kconfig ---- linux-4.1.22.orig/drivers/staging/media/lirc/Kconfig 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/staging/media/lirc/Kconfig 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/staging/media/lirc/Kconfig linux-4.1.23/drivers/staging/media/lirc/Kconfig +--- linux-4.1.23.orig/drivers/staging/media/lirc/Kconfig 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/staging/media/lirc/Kconfig 2016-05-02 22:53:57.000000000 +0200 @@ -32,6 +32,12 @@ help Driver for Homebrew Parallel Port Receivers @@ -248479,9 +253064,9 @@ diff -Nur linux-4.1.22.orig/drivers/staging/media/lirc/Kconfig linux-4.1.22/driv config LIRC_SASEM tristate "Sasem USB IR Remote" depends on LIRC && USB -diff -Nur linux-4.1.22.orig/drivers/staging/media/lirc/Makefile linux-4.1.22/drivers/staging/media/lirc/Makefile ---- linux-4.1.22.orig/drivers/staging/media/lirc/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/staging/media/lirc/Makefile 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/staging/media/lirc/Makefile linux-4.1.23/drivers/staging/media/lirc/Makefile +--- linux-4.1.23.orig/drivers/staging/media/lirc/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/staging/media/lirc/Makefile 2016-05-02 22:53:57.000000000 +0200 @@ -6,6 +6,7 @@ obj-$(CONFIG_LIRC_BT829) += lirc_bt829.o obj-$(CONFIG_LIRC_IMON) += lirc_imon.o @@ -248490,9 +253075,9 @@ diff -Nur linux-4.1.22.orig/drivers/staging/media/lirc/Makefile linux-4.1.22/dri obj-$(CONFIG_LIRC_SASEM) += lirc_sasem.o obj-$(CONFIG_LIRC_SERIAL) += lirc_serial.o obj-$(CONFIG_LIRC_SIR) += lirc_sir.o -diff -Nur linux-4.1.22.orig/drivers/staging/media/lirc/lirc_rpi.c linux-4.1.22/drivers/staging/media/lirc/lirc_rpi.c ---- linux-4.1.22.orig/drivers/staging/media/lirc/lirc_rpi.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/staging/media/lirc/lirc_rpi.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/staging/media/lirc/lirc_rpi.c linux-4.1.23/drivers/staging/media/lirc/lirc_rpi.c +--- linux-4.1.23.orig/drivers/staging/media/lirc/lirc_rpi.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/staging/media/lirc/lirc_rpi.c 2016-05-02 22:53:57.000000000 +0200 @@ -0,0 +1,765 @@ +/* + * lirc_rpi.c @@ -248769,7 +253354,7 @@ diff -Nur linux-4.1.22.orig/drivers/staging/media/lirc/lirc_rpi.c linux-4.1.22/d + data = PULSE_MASK; /* really long time */ + if (!(signal^sense)) { + /* sanity check */ -+ printk(KERN_WARNING LIRC_DRIVER_NAME ++ printk(KERN_DEBUG LIRC_DRIVER_NAME + ": AIEEEE: %d %d %lx %lx %lx %lx\n", + signal, sense, tv.tv_sec, lasttv.tv_sec, + tv.tv_usec, lasttv.tv_usec); @@ -249259,9 +253844,21 @@ diff -Nur linux-4.1.22.orig/drivers/staging/media/lirc/lirc_rpi.c linux-4.1.22/d + +module_param(debug, bool, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(debug, "Enable debugging messages"); -diff -Nur linux-4.1.22.orig/drivers/thermal/Kconfig linux-4.1.22/drivers/thermal/Kconfig ---- linux-4.1.22.orig/drivers/thermal/Kconfig 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/thermal/Kconfig 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/target/target_core_transport.c linux-4.1.23/drivers/target/target_core_transport.c +--- linux-4.1.23.orig/drivers/target/target_core_transport.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/target/target_core_transport.c 2016-05-02 22:53:57.000000000 +0200 +@@ -2617,6 +2617,8 @@ + + list_for_each_entry_safe(se_cmd, tmp_cmd, + &se_sess->sess_wait_list, se_cmd_list) { ++ list_del_init(&se_cmd->se_cmd_list); ++ + pr_debug("Waiting for se_cmd: %p t_state: %d, fabric state:" + " %d\n", se_cmd, se_cmd->t_state, + se_cmd->se_tfo->get_cmd_state(se_cmd)); +diff -Nur linux-4.1.23.orig/drivers/thermal/Kconfig linux-4.1.23/drivers/thermal/Kconfig +--- linux-4.1.23.orig/drivers/thermal/Kconfig 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/thermal/Kconfig 2016-05-02 22:53:57.000000000 +0200 @@ -238,6 +238,13 @@ enforce idle time which results in more package C-state residency. The user interface is exposed via generic thermal framework. @@ -249276,9 +253873,9 @@ diff -Nur linux-4.1.22.orig/drivers/thermal/Kconfig linux-4.1.22/drivers/thermal config X86_PKG_TEMP_THERMAL tristate "X86 package temperature thermal driver" depends on X86_THERMAL_VECTOR -diff -Nur linux-4.1.22.orig/drivers/thermal/Makefile linux-4.1.22/drivers/thermal/Makefile ---- linux-4.1.22.orig/drivers/thermal/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/thermal/Makefile 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/thermal/Makefile linux-4.1.23/drivers/thermal/Makefile +--- linux-4.1.23.orig/drivers/thermal/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/thermal/Makefile 2016-05-02 22:53:57.000000000 +0200 @@ -33,6 +33,7 @@ obj-$(CONFIG_IMX_THERMAL) += imx_thermal.o obj-$(CONFIG_DB8500_CPUFREQ_COOLING) += db8500_cpufreq_cooling.o @@ -249287,9 +253884,9 @@ diff -Nur linux-4.1.22.orig/drivers/thermal/Makefile linux-4.1.22/drivers/therma obj-$(CONFIG_X86_PKG_TEMP_THERMAL) += x86_pkg_temp_thermal.o obj-$(CONFIG_INTEL_SOC_DTS_THERMAL) += intel_soc_dts_thermal.o obj-$(CONFIG_TI_SOC_THERMAL) += ti-soc-thermal/ -diff -Nur linux-4.1.22.orig/drivers/thermal/bcm2835-thermal.c linux-4.1.22/drivers/thermal/bcm2835-thermal.c ---- linux-4.1.22.orig/drivers/thermal/bcm2835-thermal.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/thermal/bcm2835-thermal.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/thermal/bcm2835-thermal.c linux-4.1.23/drivers/thermal/bcm2835-thermal.c +--- linux-4.1.23.orig/drivers/thermal/bcm2835-thermal.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/thermal/bcm2835-thermal.c 2016-05-02 22:53:57.000000000 +0200 @@ -0,0 +1,141 @@ +/***************************************************************************** +* Copyright 2011 Broadcom Corporation. All rights reserved. @@ -249432,9 +254029,40 @@ diff -Nur linux-4.1.22.orig/drivers/thermal/bcm2835-thermal.c linux-4.1.22/drive +MODULE_AUTHOR("Noralf Trønnes"); +MODULE_DESCRIPTION("Thermal driver for bcm2835 chip"); +MODULE_LICENSE("GPL"); -diff -Nur linux-4.1.22.orig/drivers/tty/serial/8250/8250_core.c linux-4.1.22/drivers/tty/serial/8250/8250_core.c ---- linux-4.1.22.orig/drivers/tty/serial/8250/8250_core.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/tty/serial/8250/8250_core.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/thermal/thermal_core.c linux-4.1.23/drivers/thermal/thermal_core.c +--- linux-4.1.23.orig/drivers/thermal/thermal_core.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/thermal/thermal_core.c 2016-05-02 22:53:57.000000000 +0200 +@@ -391,10 +391,6 @@ + { + enum thermal_trip_type type; + +- /* Ignore disabled trip points */ +- if (test_bit(trip, &tz->trips_disabled)) +- return; +- + tz->ops->get_trip_type(tz, trip, &type); + + if (type == THERMAL_TRIP_CRITICAL || type == THERMAL_TRIP_HOT) +@@ -1562,15 +1558,9 @@ + goto unregister; + + for (count = 0; count < trips; count++) { +- if (tz->ops->get_trip_type(tz, count, &trip_type)) +- set_bit(count, &tz->trips_disabled); ++ tz->ops->get_trip_type(tz, count, &trip_type); + if (trip_type == THERMAL_TRIP_PASSIVE) + passive = 1; +- if (tz->ops->get_trip_temp(tz, count, &trip_temp)) +- set_bit(count, &tz->trips_disabled); +- /* Check for bogus trip points */ +- if (trip_temp == 0) +- set_bit(count, &tz->trips_disabled); + } + + if (!passive) { +diff -Nur linux-4.1.23.orig/drivers/tty/serial/8250/8250_core.c linux-4.1.23/drivers/tty/serial/8250/8250_core.c +--- linux-4.1.23.orig/drivers/tty/serial/8250/8250_core.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/tty/serial/8250/8250_core.c 2016-05-02 22:53:57.000000000 +0200 @@ -3270,6 +3270,8 @@ if (nr_uarts > UART_NR) @@ -249444,9 +254072,9 @@ diff -Nur linux-4.1.22.orig/drivers/tty/serial/8250/8250_core.c linux-4.1.22/dri for (i = 0; i < nr_uarts; i++) { struct uart_8250_port *up = &serial8250_ports[i]; -diff -Nur linux-4.1.22.orig/drivers/tty/serial/amba-pl011.c linux-4.1.22/drivers/tty/serial/amba-pl011.c ---- linux-4.1.22.orig/drivers/tty/serial/amba-pl011.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/tty/serial/amba-pl011.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/tty/serial/amba-pl011.c linux-4.1.23/drivers/tty/serial/amba-pl011.c +--- linux-4.1.23.orig/drivers/tty/serial/amba-pl011.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/tty/serial/amba-pl011.c 2016-05-02 22:53:57.000000000 +0200 @@ -85,7 +85,7 @@ static unsigned int get_fifosize_arm(struct amba_device *dev) @@ -249469,9 +254097,9 @@ diff -Nur linux-4.1.22.orig/drivers/tty/serial/amba-pl011.c linux-4.1.22/drivers base = devm_ioremap(&dev->dev, dev->res.start, resource_size(&dev->res)); -diff -Nur linux-4.1.22.orig/drivers/usb/Makefile linux-4.1.22/drivers/usb/Makefile ---- linux-4.1.22.orig/drivers/usb/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/usb/Makefile 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/Makefile linux-4.1.23/drivers/usb/Makefile +--- linux-4.1.23.orig/drivers/usb/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/usb/Makefile 2016-05-02 22:53:58.000000000 +0200 @@ -7,6 +7,7 @@ obj-$(CONFIG_USB) += core/ obj-$(CONFIG_USB_SUPPORT) += phy/ @@ -249480,9 +254108,42 @@ diff -Nur linux-4.1.22.orig/drivers/usb/Makefile linux-4.1.22/drivers/usb/Makefi obj-$(CONFIG_USB_DWC3) += dwc3/ obj-$(CONFIG_USB_DWC2) += dwc2/ obj-$(CONFIG_USB_ISP1760) += isp1760/ -diff -Nur linux-4.1.22.orig/drivers/usb/core/generic.c linux-4.1.22/drivers/usb/core/generic.c ---- linux-4.1.22.orig/drivers/usb/core/generic.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/usb/core/generic.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/class/cdc-acm.c linux-4.1.23/drivers/usb/class/cdc-acm.c +--- linux-4.1.23.orig/drivers/usb/class/cdc-acm.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/usb/class/cdc-acm.c 2016-05-02 22:53:58.000000000 +0200 +@@ -1118,9 +1118,6 @@ + if (quirks == NO_UNION_NORMAL) { + data_interface = usb_ifnum_to_if(usb_dev, 1); + control_interface = usb_ifnum_to_if(usb_dev, 0); +- /* we would crash */ +- if (!data_interface || !control_interface) +- return -ENODEV; + goto skip_normal_probe; + } + +diff -Nur linux-4.1.23.orig/drivers/usb/core/driver.c linux-4.1.23/drivers/usb/core/driver.c +--- linux-4.1.23.orig/drivers/usb/core/driver.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/usb/core/driver.c 2016-05-02 22:53:58.000000000 +0200 +@@ -499,15 +499,11 @@ + int usb_driver_claim_interface(struct usb_driver *driver, + struct usb_interface *iface, void *priv) + { +- struct device *dev; ++ struct device *dev = &iface->dev; + struct usb_device *udev; + int retval = 0; + int lpm_disable_error; + +- if (!iface) +- return -ENODEV; +- +- dev = &iface->dev; + if (dev->driver) + return -EBUSY; + +diff -Nur linux-4.1.23.orig/drivers/usb/core/generic.c linux-4.1.23/drivers/usb/core/generic.c +--- linux-4.1.23.orig/drivers/usb/core/generic.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/usb/core/generic.c 2016-05-02 22:53:58.000000000 +0200 @@ -152,6 +152,7 @@ dev_warn(&udev->dev, "no configuration chosen from %d choice%s\n", @@ -249491,10 +254152,61 @@ diff -Nur linux-4.1.22.orig/drivers/usb/core/generic.c linux-4.1.22/drivers/usb/ } return i; } -diff -Nur linux-4.1.22.orig/drivers/usb/core/hub.c linux-4.1.22/drivers/usb/core/hub.c ---- linux-4.1.22.orig/drivers/usb/core/hub.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/usb/core/hub.c 2016-04-29 18:02:48.000000000 +0200 -@@ -4933,7 +4933,7 @@ +diff -Nur linux-4.1.23.orig/drivers/usb/core/hub.c linux-4.1.23/drivers/usb/core/hub.c +--- linux-4.1.23.orig/drivers/usb/core/hub.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/usb/core/hub.c 2016-05-02 22:53:58.000000000 +0200 +@@ -4237,7 +4237,7 @@ + { + struct usb_device *hdev = hub->hdev; + struct usb_hcd *hcd = bus_to_hcd(hdev->bus); +- int retries, operations, retval, i; ++ int i, j, retval; + unsigned delay = HUB_SHORT_RESET_TIME; + enum usb_device_speed oldspeed = udev->speed; + const char *speed; +@@ -4339,7 +4339,7 @@ + * first 8 bytes of the device descriptor to get the ep0 maxpacket + * value. + */ +- for (retries = 0; retries < GET_DESCRIPTOR_TRIES; (++retries, msleep(100))) { ++ for (i = 0; i < GET_DESCRIPTOR_TRIES; (++i, msleep(100))) { + bool did_new_scheme = false; + + if (use_new_scheme(udev, retry_counter)) { +@@ -4366,7 +4366,7 @@ + * 255 is for WUSB devices, we actually need to use + * 512 (WUSB1.0[4.8.1]). + */ +- for (operations = 0; operations < 3; ++operations) { ++ for (j = 0; j < 3; ++j) { + buf->bMaxPacketSize0 = 0; + r = usb_control_msg(udev, usb_rcvaddr0pipe(), + USB_REQ_GET_DESCRIPTOR, USB_DIR_IN, +@@ -4386,13 +4386,7 @@ + r = -EPROTO; + break; + } +- /* +- * Some devices time out if they are powered on +- * when already connected. They need a second +- * reset. But only on the first attempt, +- * lest we get into a time out/reset loop +- */ +- if (r == 0 || (r == -ETIMEDOUT && retries == 0)) ++ if (r == 0) + break; + } + udev->descriptor.bMaxPacketSize0 = +@@ -4424,7 +4418,7 @@ + * authorization will assign the final address. + */ + if (udev->wusb == 0) { +- for (operations = 0; operations < SET_ADDRESS_TRIES; ++operations) { ++ for (j = 0; j < SET_ADDRESS_TRIES; ++j) { + retval = hub_set_address(udev, devnum); + if (retval >= 0) + break; +@@ -4933,7 +4927,7 @@ if (portchange & USB_PORT_STAT_C_OVERCURRENT) { u16 status = 0, unused; @@ -249503,9 +254215,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/core/hub.c linux-4.1.22/drivers/usb/core usb_clear_port_feature(hdev, port1, USB_PORT_FEAT_C_OVER_CURRENT); msleep(100); /* Cool down */ -diff -Nur linux-4.1.22.orig/drivers/usb/core/message.c linux-4.1.22/drivers/usb/core/message.c ---- linux-4.1.22.orig/drivers/usb/core/message.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/usb/core/message.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/core/message.c linux-4.1.23/drivers/usb/core/message.c +--- linux-4.1.23.orig/drivers/usb/core/message.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/usb/core/message.c 2016-05-02 22:53:58.000000000 +0200 @@ -1872,6 +1872,85 @@ if (cp->string == NULL && !(dev->quirks & USB_QUIRK_CONFIG_INTF_STRINGS)) @@ -249592,9 +254304,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/core/message.c linux-4.1.22/drivers/usb/ /* Now that the interfaces are installed, re-enable LPM. */ usb_unlocked_enable_lpm(dev); -diff -Nur linux-4.1.22.orig/drivers/usb/core/otg_whitelist.h linux-4.1.22/drivers/usb/core/otg_whitelist.h ---- linux-4.1.22.orig/drivers/usb/core/otg_whitelist.h 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/usb/core/otg_whitelist.h 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/core/otg_whitelist.h linux-4.1.23/drivers/usb/core/otg_whitelist.h +--- linux-4.1.23.orig/drivers/usb/core/otg_whitelist.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/usb/core/otg_whitelist.h 2016-05-02 22:53:58.000000000 +0200 @@ -19,33 +19,82 @@ static struct usb_device_id whitelist_table [] = { @@ -249748,9 +254460,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/core/otg_whitelist.h linux-4.1.22/driver return 0; } -diff -Nur linux-4.1.22.orig/drivers/usb/gadget/file_storage.c linux-4.1.22/drivers/usb/gadget/file_storage.c ---- linux-4.1.22.orig/drivers/usb/gadget/file_storage.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/gadget/file_storage.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/gadget/file_storage.c linux-4.1.23/drivers/usb/gadget/file_storage.c +--- linux-4.1.23.orig/drivers/usb/gadget/file_storage.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/gadget/file_storage.c 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,3676 @@ +/* + * file_storage.c -- File-backed USB Storage Gadget, for USB development @@ -253428,9 +258140,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/gadget/file_storage.c linux-4.1.22/drive + kref_put(&fsg->ref, fsg_release); +} +module_exit(fsg_cleanup); -diff -Nur linux-4.1.22.orig/drivers/usb/host/Kconfig linux-4.1.22/drivers/usb/host/Kconfig ---- linux-4.1.22.orig/drivers/usb/host/Kconfig 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/usb/host/Kconfig 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/Kconfig linux-4.1.23/drivers/usb/host/Kconfig +--- linux-4.1.23.orig/drivers/usb/host/Kconfig 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/usb/host/Kconfig 2016-05-02 22:53:58.000000000 +0200 @@ -738,6 +738,19 @@ To compile this driver a module, choose M here: the module will be called "hwa-hc". @@ -253451,9 +258163,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/Kconfig linux-4.1.22/drivers/usb/ho config USB_IMX21_HCD tristate "i.MX21 HCD support" depends on ARM && ARCH_MXC -diff -Nur linux-4.1.22.orig/drivers/usb/host/Makefile linux-4.1.22/drivers/usb/host/Makefile ---- linux-4.1.22.orig/drivers/usb/host/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/usb/host/Makefile 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/Makefile linux-4.1.23/drivers/usb/host/Makefile +--- linux-4.1.23.orig/drivers/usb/host/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/usb/host/Makefile 2016-05-02 22:53:58.000000000 +0200 @@ -67,6 +67,8 @@ obj-$(CONFIG_USB_U132_HCD) += u132-hcd.o obj-$(CONFIG_USB_R8A66597_HCD) += r8a66597-hcd.o @@ -253463,9 +258175,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/Makefile linux-4.1.22/drivers/usb/h obj-$(CONFIG_USB_IMX21_HCD) += imx21-hcd.o obj-$(CONFIG_USB_FSL_MPH_DR_OF) += fsl-mph-dr-of.o obj-$(CONFIG_USB_HCD_BCMA) += bcma-hcd.o -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/Makefile linux-4.1.22/drivers/usb/host/dwc_common_port/Makefile ---- linux-4.1.22.orig/drivers/usb/host/dwc_common_port/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_common_port/Makefile 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_common_port/Makefile linux-4.1.23/drivers/usb/host/dwc_common_port/Makefile +--- linux-4.1.23.orig/drivers/usb/host/dwc_common_port/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_common_port/Makefile 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,58 @@ +# +# Makefile for DWC_common library @@ -253525,9 +258237,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/Makefile linux-4.1. + +clean: + rm -rf *.o *.ko .*.cmd *.mod.c .*.o.d .*.o.tmp modules.order Module.markers Module.symvers .tmp_versions/ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/Makefile.fbsd linux-4.1.22/drivers/usb/host/dwc_common_port/Makefile.fbsd ---- linux-4.1.22.orig/drivers/usb/host/dwc_common_port/Makefile.fbsd 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_common_port/Makefile.fbsd 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_common_port/Makefile.fbsd linux-4.1.23/drivers/usb/host/dwc_common_port/Makefile.fbsd +--- linux-4.1.23.orig/drivers/usb/host/dwc_common_port/Makefile.fbsd 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_common_port/Makefile.fbsd 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,17 @@ +CFLAGS += -I/sys/i386/compile/GENERIC -I/sys/i386/include -I/usr/include +CFLAGS += -DDWC_FREEBSD @@ -253546,9 +258258,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/Makefile.fbsd linux + dwc_common_fbsd.c dwc_mem.c + +.include <bsd.kmod.mk> -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/Makefile.linux linux-4.1.22/drivers/usb/host/dwc_common_port/Makefile.linux ---- linux-4.1.22.orig/drivers/usb/host/dwc_common_port/Makefile.linux 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_common_port/Makefile.linux 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_common_port/Makefile.linux linux-4.1.23/drivers/usb/host/dwc_common_port/Makefile.linux +--- linux-4.1.23.orig/drivers/usb/host/dwc_common_port/Makefile.linux 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_common_port/Makefile.linux 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,49 @@ +# +# Makefile for DWC_common library @@ -253599,9 +258311,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/Makefile.linux linu + +clean: + rm -rf *.o *.ko .*.cmd *.mod.c .*.o.d .*.o.tmp modules.order Module.markers Module.symvers .tmp_versions/ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/changes.txt linux-4.1.22/drivers/usb/host/dwc_common_port/changes.txt ---- linux-4.1.22.orig/drivers/usb/host/dwc_common_port/changes.txt 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_common_port/changes.txt 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_common_port/changes.txt linux-4.1.23/drivers/usb/host/dwc_common_port/changes.txt +--- linux-4.1.23.orig/drivers/usb/host/dwc_common_port/changes.txt 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_common_port/changes.txt 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,174 @@ + +dwc_read_reg32() and friends now take an additional parameter, a pointer to an @@ -253777,9 +258489,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/changes.txt linux-4 +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-4.1.22.orig/drivers/usb/host/dwc_common_port/doc/doxygen.cfg linux-4.1.22/drivers/usb/host/dwc_common_port/doc/doxygen.cfg ---- linux-4.1.22.orig/drivers/usb/host/dwc_common_port/doc/doxygen.cfg 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_common_port/doc/doxygen.cfg 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_common_port/doc/doxygen.cfg linux-4.1.23/drivers/usb/host/dwc_common_port/doc/doxygen.cfg +--- linux-4.1.23.orig/drivers/usb/host/dwc_common_port/doc/doxygen.cfg 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_common_port/doc/doxygen.cfg 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,270 @@ +# Doxyfile 1.4.5 + @@ -254051,9 +258763,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/doc/doxygen.cfg lin +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = NO -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_cc.c linux-4.1.22/drivers/usb/host/dwc_common_port/dwc_cc.c ---- linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_cc.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_common_port/dwc_cc.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_common_port/dwc_cc.c linux-4.1.23/drivers/usb/host/dwc_common_port/dwc_cc.c +--- linux-4.1.23.orig/drivers/usb/host/dwc_common_port/dwc_cc.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_common_port/dwc_cc.c 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,532 @@ +/* ========================================================================= + * $File: //dwh/usb_iip/dev/software/dwc_common_port_2/dwc_cc.c $ @@ -254587,9 +259299,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_cc.c linux-4.1. +} + +#endif /* DWC_CCLIB */ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_cc.h linux-4.1.22/drivers/usb/host/dwc_common_port/dwc_cc.h ---- linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_cc.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_common_port/dwc_cc.h 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_common_port/dwc_cc.h linux-4.1.23/drivers/usb/host/dwc_common_port/dwc_cc.h +--- linux-4.1.23.orig/drivers/usb/host/dwc_common_port/dwc_cc.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_common_port/dwc_cc.h 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,224 @@ +/* ========================================================================= + * $File: //dwh/usb_iip/dev/software/dwc_common_port_2/dwc_cc.h $ @@ -254815,9 +259527,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_cc.h linux-4.1. +#endif + +#endif /* _DWC_CC_H_ */ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c linux-4.1.22/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c ---- linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c linux-4.1.23/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c +--- linux-4.1.23.orig/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,1308 @@ +#include "dwc_os.h" +#include "dwc_list.h" @@ -256127,9 +260839,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c l +{ + return wq->pending; +} -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_common_linux.c linux-4.1.22/drivers/usb/host/dwc_common_port/dwc_common_linux.c ---- linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_common_linux.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_common_port/dwc_common_linux.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_common_port/dwc_common_linux.c linux-4.1.23/drivers/usb/host/dwc_common_port/dwc_common_linux.c +--- linux-4.1.23.orig/drivers/usb/host/dwc_common_port/dwc_common_linux.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_common_port/dwc_common_linux.c 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,1434 @@ +#include <linux/kernel.h> +#include <linux/init.h> @@ -257565,9 +262277,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_common_linux.c +MODULE_LICENSE ("GPL"); + +#endif /* DWC_LIBMODULE */ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c linux-4.1.22/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c ---- linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c linux-4.1.23/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c +--- linux-4.1.23.orig/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,1275 @@ +#include "dwc_os.h" +#include "dwc_list.h" @@ -258844,9 +263556,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c l +{ + return wq->pending; +} -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_crypto.c linux-4.1.22/drivers/usb/host/dwc_common_port/dwc_crypto.c ---- linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_crypto.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_common_port/dwc_crypto.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_common_port/dwc_crypto.c linux-4.1.23/drivers/usb/host/dwc_common_port/dwc_crypto.c +--- linux-4.1.23.orig/drivers/usb/host/dwc_common_port/dwc_crypto.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_common_port/dwc_crypto.c 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,308 @@ +/* ========================================================================= + * $File: //dwh/usb_iip/dev/software/dwc_common_port_2/dwc_crypto.c $ @@ -259156,9 +263868,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_crypto.c linux- +} + +#endif /* DWC_CRYPTOLIB */ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_crypto.h linux-4.1.22/drivers/usb/host/dwc_common_port/dwc_crypto.h ---- linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_crypto.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_common_port/dwc_crypto.h 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_common_port/dwc_crypto.h linux-4.1.23/drivers/usb/host/dwc_common_port/dwc_crypto.h +--- linux-4.1.23.orig/drivers/usb/host/dwc_common_port/dwc_crypto.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_common_port/dwc_crypto.h 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,111 @@ +/* ========================================================================= + * $File: //dwh/usb_iip/dev/software/dwc_common_port_2/dwc_crypto.h $ @@ -259271,9 +263983,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_crypto.h linux- +#endif + +#endif /* _DWC_CRYPTO_H_ */ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_dh.c linux-4.1.22/drivers/usb/host/dwc_common_port/dwc_dh.c ---- linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_dh.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_common_port/dwc_dh.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_common_port/dwc_dh.c linux-4.1.23/drivers/usb/host/dwc_common_port/dwc_dh.c +--- linux-4.1.23.orig/drivers/usb/host/dwc_common_port/dwc_dh.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_common_port/dwc_dh.c 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,291 @@ +/* ========================================================================= + * $File: //dwh/usb_iip/dev/software/dwc_common_port_2/dwc_dh.c $ @@ -259566,9 +264278,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_dh.c linux-4.1. +#endif /* !CONFIG_MACH_IPMATE */ + +#endif /* DWC_CRYPTOLIB */ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_dh.h linux-4.1.22/drivers/usb/host/dwc_common_port/dwc_dh.h ---- linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_dh.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_common_port/dwc_dh.h 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_common_port/dwc_dh.h linux-4.1.23/drivers/usb/host/dwc_common_port/dwc_dh.h +--- linux-4.1.23.orig/drivers/usb/host/dwc_common_port/dwc_dh.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_common_port/dwc_dh.h 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,106 @@ +/* ========================================================================= + * $File: //dwh/usb_iip/dev/software/dwc_common_port_2/dwc_dh.h $ @@ -259676,9 +264388,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_dh.h linux-4.1. +#endif + +#endif /* _DWC_DH_H_ */ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_list.h linux-4.1.22/drivers/usb/host/dwc_common_port/dwc_list.h ---- linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_list.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_common_port/dwc_list.h 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_common_port/dwc_list.h linux-4.1.23/drivers/usb/host/dwc_common_port/dwc_list.h +--- linux-4.1.23.orig/drivers/usb/host/dwc_common_port/dwc_list.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_common_port/dwc_list.h 2016-05-02 22:53:58.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 $ */ @@ -260274,9 +264986,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_list.h linux-4. +#endif + +#endif /* _DWC_LIST_H_ */ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_mem.c linux-4.1.22/drivers/usb/host/dwc_common_port/dwc_mem.c ---- linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_mem.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_common_port/dwc_mem.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_common_port/dwc_mem.c linux-4.1.23/drivers/usb/host/dwc_common_port/dwc_mem.c +--- linux-4.1.23.orig/drivers/usb/host/dwc_common_port/dwc_mem.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_common_port/dwc_mem.c 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,245 @@ +/* Memory Debugging */ +#ifdef DWC_DEBUG_MEMORY @@ -260523,9 +265235,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_mem.c linux-4.1 +} + +#endif /* DWC_DEBUG_MEMORY */ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_modpow.c linux-4.1.22/drivers/usb/host/dwc_common_port/dwc_modpow.c ---- linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_modpow.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_common_port/dwc_modpow.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_common_port/dwc_modpow.c linux-4.1.23/drivers/usb/host/dwc_common_port/dwc_modpow.c +--- linux-4.1.23.orig/drivers/usb/host/dwc_common_port/dwc_modpow.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_common_port/dwc_modpow.c 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,636 @@ +/* Bignum routines adapted from PUTTY sources. PuTTY copyright notice follows. + * @@ -261163,9 +265875,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_modpow.c linux- +#endif /* CONFIG_MACH_IPMATE */ + +#endif /*DWC_CRYPTOLIB */ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_modpow.h linux-4.1.22/drivers/usb/host/dwc_common_port/dwc_modpow.h ---- linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_modpow.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_common_port/dwc_modpow.h 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_common_port/dwc_modpow.h linux-4.1.23/drivers/usb/host/dwc_common_port/dwc_modpow.h +--- linux-4.1.23.orig/drivers/usb/host/dwc_common_port/dwc_modpow.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_common_port/dwc_modpow.h 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,34 @@ +/* + * dwc_modpow.h @@ -261201,9 +265913,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_modpow.h linux- +#endif + +#endif /* _LINUX_BIGNUM_H */ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_notifier.c linux-4.1.22/drivers/usb/host/dwc_common_port/dwc_notifier.c ---- linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_notifier.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_common_port/dwc_notifier.c 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_common_port/dwc_notifier.c linux-4.1.23/drivers/usb/host/dwc_common_port/dwc_notifier.c +--- linux-4.1.23.orig/drivers/usb/host/dwc_common_port/dwc_notifier.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_common_port/dwc_notifier.c 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,319 @@ +#ifdef DWC_NOTIFYLIB + @@ -261524,9 +266236,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_notifier.c linu +} + +#endif /* DWC_NOTIFYLIB */ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_notifier.h linux-4.1.22/drivers/usb/host/dwc_common_port/dwc_notifier.h ---- linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_notifier.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_common_port/dwc_notifier.h 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_common_port/dwc_notifier.h linux-4.1.23/drivers/usb/host/dwc_common_port/dwc_notifier.h +--- linux-4.1.23.orig/drivers/usb/host/dwc_common_port/dwc_notifier.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_common_port/dwc_notifier.h 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,122 @@ + +#ifndef __DWC_NOTIFIER_H__ @@ -261650,9 +266362,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_notifier.h linu +#endif + +#endif /* __DWC_NOTIFIER_H__ */ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_os.h linux-4.1.22/drivers/usb/host/dwc_common_port/dwc_os.h ---- linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_os.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_common_port/dwc_os.h 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_common_port/dwc_os.h linux-4.1.23/drivers/usb/host/dwc_common_port/dwc_os.h +--- linux-4.1.23.orig/drivers/usb/host/dwc_common_port/dwc_os.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_common_port/dwc_os.h 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,1276 @@ +/* ========================================================================= + * $File: //dwh/usb_iip/dev/software/dwc_common_port_2/dwc_os.h $ @@ -262930,9 +267642,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/dwc_os.h linux-4.1. +#endif + +#endif /* _DWC_OS_H_ */ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/usb.h linux-4.1.22/drivers/usb/host/dwc_common_port/usb.h ---- linux-4.1.22.orig/drivers/usb/host/dwc_common_port/usb.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_common_port/usb.h 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_common_port/usb.h linux-4.1.23/drivers/usb/host/dwc_common_port/usb.h +--- linux-4.1.23.orig/drivers/usb/host/dwc_common_port/usb.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_common_port/usb.h 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,946 @@ +/* + * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -263880,9 +268592,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_common_port/usb.h linux-4.1.22/ +#endif + +#endif /* _USB_H_ */ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/Makefile linux-4.1.22/drivers/usb/host/dwc_otg/Makefile ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/Makefile 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/Makefile linux-4.1.23/drivers/usb/host/dwc_otg/Makefile +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/Makefile 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,82 @@ +# +# Makefile for DWC_otg Highspeed USB controller driver @@ -263966,9 +268678,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/Makefile linux-4.1.22/drive + rm -rf *.o *.ko .*cmd *.mod.c .tmp_versions Module.symvers + +endif -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/doc/doxygen.cfg linux-4.1.22/drivers/usb/host/dwc_otg/doc/doxygen.cfg ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/doc/doxygen.cfg 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/doc/doxygen.cfg 2016-04-29 18:02:48.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/doc/doxygen.cfg linux-4.1.23/drivers/usb/host/dwc_otg/doc/doxygen.cfg +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/doc/doxygen.cfg 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/doc/doxygen.cfg 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,224 @@ +# Doxyfile 1.3.9.1 + @@ -264194,9 +268906,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/doc/doxygen.cfg linux-4.1.2 +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = NO -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dummy_audio.c linux-4.1.22/drivers/usb/host/dwc_otg/dummy_audio.c ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/dummy_audio.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/dummy_audio.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/dummy_audio.c linux-4.1.23/drivers/usb/host/dwc_otg/dummy_audio.c +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/dummy_audio.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/dummy_audio.c 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,1575 @@ +/* + * zero.c -- Gadget Zero, for USB development @@ -265773,9 +270485,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dummy_audio.c linux-4.1.22/ + remove_proc_entry("isoc_test", NULL); +} +module_exit (cleanup); -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_cfi_common.h linux-4.1.22/drivers/usb/host/dwc_otg/dwc_cfi_common.h ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_cfi_common.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/dwc_cfi_common.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_cfi_common.h linux-4.1.23/drivers/usb/host/dwc_otg/dwc_cfi_common.h +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_cfi_common.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/dwc_cfi_common.h 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,142 @@ +/* ========================================================================== + * Synopsys HS OTG Linux Software Driver and documentation (hereinafter, @@ -265919,9 +270631,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_cfi_common.h linux-4.1. +typedef struct cfi_string cfi_string_t; + +#endif -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_adp.c linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_adp.c ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_adp.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_adp.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_adp.c linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_adp.c +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_adp.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_adp.c 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,854 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_adp.c $ @@ -266777,9 +271489,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_adp.c linux-4.1.22/ +#endif + return 1; +} -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_adp.h linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_adp.h ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_adp.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_adp.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_adp.h linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_adp.h +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_adp.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_adp.h 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,80 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_adp.h $ @@ -266861,9 +271573,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_adp.h linux-4.1.22/ +extern int32_t dwc_otg_adp_handle_srp_intr(dwc_otg_core_if_t * core_if); + +#endif //__DWC_OTG_ADP_H__ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_attr.c linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_attr.c ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_attr.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_attr.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_attr.c linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_attr.c +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_attr.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_attr.c 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,1210 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_attr.c $ @@ -268075,9 +272787,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_attr.c linux-4.1.22 + device_remove_file(&dev->dev, &dev_attr_sleep_status); +#endif +} -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_attr.h linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_attr.h ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_attr.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_attr.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_attr.h linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_attr.h +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_attr.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_attr.h 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,89 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_attr.h $ @@ -268168,9 +272880,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_attr.h linux-4.1.22 +#endif + ); +#endif -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_cfi.c linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_cfi.c ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_cfi.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_cfi.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_cfi.c linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_cfi.c +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_cfi.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_cfi.c 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,1876 @@ +/* ========================================================================== + * Synopsys HS OTG Linux Software Driver and documentation (hereinafter, @@ -270048,9 +274760,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_cfi.c linux-4.1.22/ +} + +#endif //DWC_UTE_CFI -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_cfi.h linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_cfi.h ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_cfi.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_cfi.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_cfi.h linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_cfi.h +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_cfi.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_cfi.h 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,320 @@ +/* ========================================================================== + * Synopsys HS OTG Linux Software Driver and documentation (hereinafter, @@ -270372,9 +275084,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_cfi.h linux-4.1.22/ +int cfi_setup(struct dwc_otg_pcd *pcd, struct cfi_usb_ctrlrequest *ctrl); + +#endif /* (__DWC_OTG_CFI_H__) */ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_cil.c linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_cil.c ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_cil.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_cil.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_cil.c linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_cil.c +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_cil.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_cil.c 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,7141 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_cil.c $ @@ -277517,9 +282229,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_cil.c linux-4.1.22/ + dwc_otg_pcd_start_srp_timer(core_if); + return; +} -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_cil.h linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_cil.h ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_cil.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_cil.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_cil.h linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_cil.h +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_cil.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_cil.h 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,1464 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_cil.h $ @@ -278985,9 +283697,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_cil.h linux-4.1.22/ +////////////////////////////////////////////////////////////////////// + +#endif -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,1594 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_cil_intr.c $ @@ -280583,9 +285295,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c linux-4. + DWC_SPINUNLOCK(core_if->lock); + return retval; +} -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_core_if.h linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_core_if.h ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_core_if.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_core_if.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_core_if.h linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_core_if.h +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_core_if.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_core_if.h 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,705 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_core_if.h $ @@ -281292,9 +286004,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_core_if.h linux-4.1 +/** @} */ + +#endif /* __DWC_CORE_IF_H__ */ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_dbg.h linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_dbg.h ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_dbg.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_dbg.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_dbg.h linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_dbg.h +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_dbg.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_dbg.h 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,117 @@ +/* ========================================================================== + * @@ -281413,9 +286125,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_dbg.h linux-4.1.22/ + +#endif /*DEBUG*/ +#endif -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_driver.c linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_driver.c ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_driver.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_driver.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_driver.c linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_driver.c +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_driver.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_driver.c 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,1757 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_driver.c $ @@ -283174,9 +287886,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_driver.c linux-4.1. + </td></tr> + +*/ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_driver.h linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_driver.h ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_driver.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_driver.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_driver.h linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_driver.h +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_driver.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_driver.h 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,86 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_driver.h $ @@ -283264,9 +287976,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_driver.h linux-4.1. +#endif + +#endif -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,1355 @@ +/* + * dwc_otg_fiq_fsm.c - The finite state machine FIQ @@ -284623,9 +289335,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c linux-4.1 + mb(); + fiq_fsm_spin_unlock(&state->lock); +} -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.h linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.h ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.h linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.h +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.h 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,370 @@ +/* + * dwc_otg_fiq_fsm.h - Finite state machine FIQ header definitions @@ -284997,9 +289709,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.h linux-4.1 +extern void dwc_otg_fiq_nop(struct fiq_state *state); + +#endif /* DWC_OTG_FIQ_FSM_H_ */ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_fiq_stub.S linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_fiq_stub.S ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_fiq_stub.S 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_fiq_stub.S 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_fiq_stub.S linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_fiq_stub.S +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_fiq_stub.S 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_fiq_stub.S 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,80 @@ +/* + * dwc_otg_fiq_fsm.S - assembly stub for the FSM FIQ @@ -285081,9 +289793,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_fiq_stub.S linux-4. + subs pc, lr, #4; +_dwc_otg_fiq_stub_end: +END(_dwc_otg_fiq_stub) -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd.c linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_hcd.c ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_hcd.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd.c linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_hcd.c +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_hcd.c 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,4257 @@ + +/* ========================================================================== @@ -289342,9 +294054,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd.c linux-4.1.22/ +} + +#endif /* DWC_DEVICE_ONLY */ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd.h linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_hcd.h ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_hcd.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd.h linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_hcd.h +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_hcd.h 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,862 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_hcd.h $ @@ -290208,9 +294920,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd.h linux-4.1.22/ +#endif +#endif +#endif /* DWC_DEVICE_ONLY */ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,1132 @@ +/*========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_hcd_ddma.c $ @@ -291344,9 +296056,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c linux-4. +} + +#endif /* DWC_DEVICE_ONLY */ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,417 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_hcd_if.h $ @@ -291765,9 +296477,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h linux-4.1. + +#endif /* __DWC_HCD_IF_H__ */ +#endif /* DWC_DEVICE_ONLY */ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,2727 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_hcd_intr.c $ @@ -294496,9 +299208,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-4. + return retval; +} +#endif /* DWC_DEVICE_ONLY */ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,999 @@ + +/* ========================================================================== @@ -295499,9 +300211,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c linux-4 +} + +#endif /* DWC_DEVICE_ONLY */ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,957 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_hcd_queue.c $ @@ -296460,9 +301172,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c linux-4 +} + +#endif /* DWC_DEVICE_ONLY */ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,188 @@ +#ifndef _DWC_OS_DEP_H_ +#define _DWC_OS_DEP_H_ @@ -296652,9 +301364,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h linux-4.1. + + +#endif /* _DWC_OS_DEP_H_ */ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd.c linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_pcd.c ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_pcd.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd.c linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_pcd.c +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_pcd.c 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,2712 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_pcd.c $ @@ -299368,9 +304080,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd.c linux-4.1.22/ +} + +#endif /* DWC_HOST_ONLY */ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd.h linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_pcd.h ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_pcd.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd.h linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_pcd.h +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_pcd.h 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,266 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_pcd.h $ @@ -299638,9 +304350,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd.h linux-4.1.22/ +extern void do_test_mode(void *data); +#endif +#endif /* DWC_HOST_ONLY */ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,360 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_pcd_if.h $ @@ -300002,9 +304714,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h linux-4.1. +#endif /* __DWC_PCD_IF_H__ */ + +#endif /* DWC_HOST_ONLY */ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,5147 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_pcd_intr.c $ @@ -305153,9 +309865,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c linux-4. +} + +#endif /* DWC_HOST_ONLY */ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,1360 @@ + /* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_pcd_linux.c $ @@ -306517,9 +311229,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c linux-4 +EXPORT_SYMBOL(usb_gadget_unregister_driver); + +#endif /* DWC_HOST_ONLY */ -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_regs.h linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_regs.h ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_regs.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/dwc_otg_regs.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_regs.h linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_regs.h +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/dwc_otg_regs.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/dwc_otg_regs.h 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,2550 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_regs.h $ @@ -309071,9 +313783,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/dwc_otg_regs.h linux-4.1.22 +} gpwrdn_data_t; + +#endif -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/test/Makefile linux-4.1.22/drivers/usb/host/dwc_otg/test/Makefile ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/test/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/test/Makefile 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/test/Makefile linux-4.1.23/drivers/usb/host/dwc_otg/test/Makefile +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/test/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/test/Makefile 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,16 @@ + +PERL=/usr/bin/perl @@ -309091,9 +313803,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/test/Makefile linux-4.1.22/ + else echo "=======> $$test, FAILED" ; \ + fi \ + done -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm linux-4.1.22/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm linux-4.1.23/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,337 @@ +package dwc_otg_test; + @@ -309432,9 +314144,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm linux- +); + +1; -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/test/test_mod_param.pl linux-4.1.22/drivers/usb/host/dwc_otg/test/test_mod_param.pl ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/test/test_mod_param.pl 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/test/test_mod_param.pl 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/test/test_mod_param.pl linux-4.1.23/drivers/usb/host/dwc_otg/test/test_mod_param.pl +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/test/test_mod_param.pl 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/test/test_mod_param.pl 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,133 @@ +#!/usr/bin/perl -w +# @@ -309569,9 +314281,9 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/test/test_mod_param.pl linu + +test_main(); +0; -diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/test/test_sysfs.pl linux-4.1.22/drivers/usb/host/dwc_otg/test/test_sysfs.pl ---- linux-4.1.22.orig/drivers/usb/host/dwc_otg/test/test_sysfs.pl 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/usb/host/dwc_otg/test/test_sysfs.pl 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/host/dwc_otg/test/test_sysfs.pl linux-4.1.23/drivers/usb/host/dwc_otg/test/test_sysfs.pl +--- linux-4.1.23.orig/drivers/usb/host/dwc_otg/test/test_sysfs.pl 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/usb/host/dwc_otg/test/test_sysfs.pl 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,193 @@ +#!/usr/bin/perl -w +# @@ -309766,9 +314478,37 @@ diff -Nur linux-4.1.22.orig/drivers/usb/host/dwc_otg/test/test_sysfs.pl linux-4. + +test_main(); +0; -diff -Nur linux-4.1.22.orig/drivers/video/backlight/Kconfig linux-4.1.22/drivers/video/backlight/Kconfig ---- linux-4.1.22.orig/drivers/video/backlight/Kconfig 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/video/backlight/Kconfig 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/usb/misc/iowarrior.c linux-4.1.23/drivers/usb/misc/iowarrior.c +--- linux-4.1.23.orig/drivers/usb/misc/iowarrior.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/usb/misc/iowarrior.c 2016-05-02 22:53:58.000000000 +0200 +@@ -787,12 +787,6 @@ + iface_desc = interface->cur_altsetting; + dev->product_id = le16_to_cpu(udev->descriptor.idProduct); + +- if (iface_desc->desc.bNumEndpoints < 1) { +- dev_err(&interface->dev, "Invalid number of endpoints\n"); +- retval = -EINVAL; +- goto error; +- } +- + /* set up the endpoint information */ + for (i = 0; i < iface_desc->desc.bNumEndpoints; ++i) { + endpoint = &iface_desc->endpoint[i].desc; +diff -Nur linux-4.1.23.orig/drivers/usb/storage/uas.c linux-4.1.23/drivers/usb/storage/uas.c +--- linux-4.1.23.orig/drivers/usb/storage/uas.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/usb/storage/uas.c 2016-05-02 22:53:58.000000000 +0200 +@@ -824,7 +824,7 @@ + .slave_configure = uas_slave_configure, + .eh_abort_handler = uas_eh_abort_handler, + .eh_bus_reset_handler = uas_eh_bus_reset_handler, +- .can_queue = MAX_CMNDS, ++ .can_queue = 65536, /* Is there a limit on the _host_ ? */ + .this_id = -1, + .sg_tablesize = SG_NONE, + .cmd_per_lun = 1, /* until we override it */ +diff -Nur linux-4.1.23.orig/drivers/video/backlight/Kconfig linux-4.1.23/drivers/video/backlight/Kconfig +--- linux-4.1.23.orig/drivers/video/backlight/Kconfig 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/video/backlight/Kconfig 2016-05-02 22:53:58.000000000 +0200 @@ -263,6 +263,12 @@ If you have a LCD backlight adjustable by PWM, say Y to enable this driver. @@ -309782,9 +314522,9 @@ diff -Nur linux-4.1.22.orig/drivers/video/backlight/Kconfig linux-4.1.22/drivers config BACKLIGHT_DA903X tristate "Backlight Driver for DA9030/DA9034 using WLED" depends on PMIC_DA903X -diff -Nur linux-4.1.22.orig/drivers/video/backlight/Makefile linux-4.1.22/drivers/video/backlight/Makefile ---- linux-4.1.22.orig/drivers/video/backlight/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/video/backlight/Makefile 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/video/backlight/Makefile linux-4.1.23/drivers/video/backlight/Makefile +--- linux-4.1.23.orig/drivers/video/backlight/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/video/backlight/Makefile 2016-05-02 22:53:58.000000000 +0200 @@ -49,6 +49,7 @@ obj-$(CONFIG_BACKLIGHT_PANDORA) += pandora_bl.o obj-$(CONFIG_BACKLIGHT_PCF50633) += pcf50633-backlight.o @@ -309793,9 +314533,9 @@ diff -Nur linux-4.1.22.orig/drivers/video/backlight/Makefile linux-4.1.22/driver obj-$(CONFIG_BACKLIGHT_SAHARA) += kb3886_bl.o obj-$(CONFIG_BACKLIGHT_SKY81452) += sky81452-backlight.o obj-$(CONFIG_BACKLIGHT_TOSA) += tosa_bl.o -diff -Nur linux-4.1.22.orig/drivers/video/backlight/rpi_backlight.c linux-4.1.22/drivers/video/backlight/rpi_backlight.c ---- linux-4.1.22.orig/drivers/video/backlight/rpi_backlight.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/video/backlight/rpi_backlight.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/video/backlight/rpi_backlight.c linux-4.1.23/drivers/video/backlight/rpi_backlight.c +--- linux-4.1.23.orig/drivers/video/backlight/rpi_backlight.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/video/backlight/rpi_backlight.c 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,119 @@ +/* + * rpi_bl.c - Backlight controller through VPU @@ -309916,9 +314656,9 @@ diff -Nur linux-4.1.22.orig/drivers/video/backlight/rpi_backlight.c linux-4.1.22 +MODULE_AUTHOR("Gordon Hollingworth <gordon@raspberrypi.org>"); +MODULE_DESCRIPTION("Raspberry Pi mailbox based Backlight Driver"); +MODULE_LICENSE("GPL"); -diff -Nur linux-4.1.22.orig/drivers/video/fbdev/Kconfig linux-4.1.22/drivers/video/fbdev/Kconfig ---- linux-4.1.22.orig/drivers/video/fbdev/Kconfig 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/video/fbdev/Kconfig 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/video/fbdev/Kconfig linux-4.1.23/drivers/video/fbdev/Kconfig +--- linux-4.1.23.orig/drivers/video/fbdev/Kconfig 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/video/fbdev/Kconfig 2016-05-02 22:53:58.000000000 +0200 @@ -224,6 +224,20 @@ comment "Frame buffer hardware drivers" depends on FB @@ -309957,9 +314697,9 @@ diff -Nur linux-4.1.22.orig/drivers/video/fbdev/Kconfig linux-4.1.22/drivers/vid + + help + This is the framebuffer driver for the Raspberry Pi Sense HAT -diff -Nur linux-4.1.22.orig/drivers/video/fbdev/Makefile linux-4.1.22/drivers/video/fbdev/Makefile ---- linux-4.1.22.orig/drivers/video/fbdev/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/video/fbdev/Makefile 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/video/fbdev/Makefile linux-4.1.23/drivers/video/fbdev/Makefile +--- linux-4.1.23.orig/drivers/video/fbdev/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/video/fbdev/Makefile 2016-05-02 22:53:58.000000000 +0200 @@ -12,6 +12,7 @@ obj-$(CONFIG_FB_WMT_GE_ROPS) += wmt_ge_rops.o @@ -309976,9 +314716,9 @@ diff -Nur linux-4.1.22.orig/drivers/video/fbdev/Makefile linux-4.1.22/drivers/vi # the test framebuffer is last obj-$(CONFIG_FB_VIRTUAL) += vfb.o -diff -Nur linux-4.1.22.orig/drivers/video/fbdev/bcm2708_fb.c linux-4.1.22/drivers/video/fbdev/bcm2708_fb.c ---- linux-4.1.22.orig/drivers/video/fbdev/bcm2708_fb.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/video/fbdev/bcm2708_fb.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/video/fbdev/bcm2708_fb.c linux-4.1.23/drivers/video/fbdev/bcm2708_fb.c +--- linux-4.1.23.orig/drivers/video/fbdev/bcm2708_fb.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/video/fbdev/bcm2708_fb.c 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,847 @@ +/* + * linux/drivers/video/bcm2708_fb.c @@ -310827,9 +315567,9 @@ diff -Nur linux-4.1.22.orig/drivers/video/fbdev/bcm2708_fb.c linux-4.1.22/driver +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-4.1.22.orig/drivers/video/fbdev/core/cfbimgblt.c linux-4.1.22/drivers/video/fbdev/core/cfbimgblt.c ---- linux-4.1.22.orig/drivers/video/fbdev/core/cfbimgblt.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/video/fbdev/core/cfbimgblt.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/video/fbdev/core/cfbimgblt.c linux-4.1.23/drivers/video/fbdev/core/cfbimgblt.c +--- linux-4.1.23.orig/drivers/video/fbdev/core/cfbimgblt.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/video/fbdev/core/cfbimgblt.c 2016-05-02 22:53:58.000000000 +0200 @@ -28,6 +28,11 @@ * * Also need to add code to deal with cards endians that are different than @@ -311003,9 +315743,9 @@ diff -Nur linux-4.1.22.orig/drivers/video/fbdev/core/cfbimgblt.c linux-4.1.22/dr slow_imageblit(image, p, dst1, fgcolor, bgcolor, start_index, pitch_index); } else -diff -Nur linux-4.1.22.orig/drivers/video/fbdev/core/fbmem.c linux-4.1.22/drivers/video/fbdev/core/fbmem.c ---- linux-4.1.22.orig/drivers/video/fbdev/core/fbmem.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/video/fbdev/core/fbmem.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/video/fbdev/core/fbmem.c linux-4.1.23/drivers/video/fbdev/core/fbmem.c +--- linux-4.1.23.orig/drivers/video/fbdev/core/fbmem.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/video/fbdev/core/fbmem.c 2016-05-02 22:53:58.000000000 +0200 @@ -1084,6 +1084,25 @@ } EXPORT_SYMBOL(fb_blank); @@ -311064,9 +315804,9 @@ diff -Nur linux-4.1.22.orig/drivers/video/fbdev/core/fbmem.c linux-4.1.22/driver arg = (unsigned long) compat_ptr(arg); case FBIOBLANK: ret = do_fb_ioctl(info, cmd, arg); -diff -Nur linux-4.1.22.orig/drivers/video/fbdev/rpisense-fb.c linux-4.1.22/drivers/video/fbdev/rpisense-fb.c ---- linux-4.1.22.orig/drivers/video/fbdev/rpisense-fb.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/video/fbdev/rpisense-fb.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/video/fbdev/rpisense-fb.c linux-4.1.23/drivers/video/fbdev/rpisense-fb.c +--- linux-4.1.23.orig/drivers/video/fbdev/rpisense-fb.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/video/fbdev/rpisense-fb.c 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,293 @@ +/* + * Raspberry Pi Sense HAT framebuffer driver @@ -311361,9 +316101,9 @@ diff -Nur linux-4.1.22.orig/drivers/video/fbdev/rpisense-fb.c linux-4.1.22/drive +MODULE_AUTHOR("Serge Schneider <serge@raspberrypi.org>"); +MODULE_LICENSE("GPL"); + -diff -Nur linux-4.1.22.orig/drivers/video/logo/logo_linux_clut224.ppm linux-4.1.22/drivers/video/logo/logo_linux_clut224.ppm ---- linux-4.1.22.orig/drivers/video/logo/logo_linux_clut224.ppm 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/video/logo/logo_linux_clut224.ppm 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/video/logo/logo_linux_clut224.ppm linux-4.1.23/drivers/video/logo/logo_linux_clut224.ppm +--- linux-4.1.23.orig/drivers/video/logo/logo_linux_clut224.ppm 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/video/logo/logo_linux_clut224.ppm 2016-05-02 22:53:58.000000000 +0200 @@ -1,1604 +1,883 @@ P3 -# Standard 224-color Linux logo @@ -313850,9 +318590,9 @@ diff -Nur linux-4.1.22.orig/drivers/video/logo/logo_linux_clut224.ppm linux-4.1. +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-4.1.22.orig/drivers/w1/masters/w1-gpio.c linux-4.1.22/drivers/w1/masters/w1-gpio.c ---- linux-4.1.22.orig/drivers/w1/masters/w1-gpio.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/w1/masters/w1-gpio.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/w1/masters/w1-gpio.c linux-4.1.23/drivers/w1/masters/w1-gpio.c +--- linux-4.1.23.orig/drivers/w1/masters/w1-gpio.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/w1/masters/w1-gpio.c 2016-05-02 22:53:58.000000000 +0200 @@ -23,6 +23,19 @@ #include "../w1.h" #include "../w1_int.h" @@ -313987,9 +318727,9 @@ diff -Nur linux-4.1.22.orig/drivers/w1/masters/w1-gpio.c linux-4.1.22/drivers/w1 return 0; } -diff -Nur linux-4.1.22.orig/drivers/w1/slaves/w1_therm.c linux-4.1.22/drivers/w1/slaves/w1_therm.c ---- linux-4.1.22.orig/drivers/w1/slaves/w1_therm.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/w1/slaves/w1_therm.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/w1/slaves/w1_therm.c linux-4.1.23/drivers/w1/slaves/w1_therm.c +--- linux-4.1.23.orig/drivers/w1/slaves/w1_therm.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/w1/slaves/w1_therm.c 2016-05-02 22:53:58.000000000 +0200 @@ -92,13 +92,24 @@ static ssize_t w1_slave_show(struct device *device, struct device_attribute *attr, char *buf); @@ -314127,9 +318867,9 @@ diff -Nur linux-4.1.22.orig/drivers/w1/slaves/w1_therm.c linux-4.1.22/drivers/w1 static int __init w1_therm_init(void) { int err, i; -diff -Nur linux-4.1.22.orig/drivers/w1/w1.h linux-4.1.22/drivers/w1/w1.h ---- linux-4.1.22.orig/drivers/w1/w1.h 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/w1/w1.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/w1/w1.h linux-4.1.23/drivers/w1/w1.h +--- linux-4.1.23.orig/drivers/w1/w1.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/w1/w1.h 2016-05-02 22:53:58.000000000 +0200 @@ -171,6 +171,12 @@ u8 (*set_pullup)(void *, int); @@ -314143,9 +318883,9 @@ diff -Nur linux-4.1.22.orig/drivers/w1/w1.h linux-4.1.22/drivers/w1/w1.h void (*search)(void *, struct w1_master *, u8, w1_slave_found_callback); }; -diff -Nur linux-4.1.22.orig/drivers/w1/w1_int.c linux-4.1.22/drivers/w1/w1_int.c ---- linux-4.1.22.orig/drivers/w1/w1_int.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/w1/w1_int.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/w1/w1_int.c linux-4.1.23/drivers/w1/w1_int.c +--- linux-4.1.23.orig/drivers/w1/w1_int.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/w1/w1_int.c 2016-05-02 22:53:58.000000000 +0200 @@ -123,6 +123,20 @@ return(-EINVAL); } @@ -314167,9 +318907,9 @@ diff -Nur linux-4.1.22.orig/drivers/w1/w1_int.c linux-4.1.22/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-4.1.22.orig/drivers/w1/w1_io.c linux-4.1.22/drivers/w1/w1_io.c ---- linux-4.1.22.orig/drivers/w1/w1_io.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/w1/w1_io.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/w1/w1_io.c linux-4.1.23/drivers/w1/w1_io.c +--- linux-4.1.23.orig/drivers/w1/w1_io.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/w1/w1_io.c 2016-05-02 22:53:58.000000000 +0200 @@ -134,10 +134,22 @@ static void w1_post_write(struct w1_master *dev) { @@ -314196,9 +318936,9 @@ diff -Nur linux-4.1.22.orig/drivers/w1/w1_io.c linux-4.1.22/drivers/w1/w1_io.c dev->pullup_duration = 0; } } -diff -Nur linux-4.1.22.orig/drivers/watchdog/Kconfig linux-4.1.22/drivers/watchdog/Kconfig ---- linux-4.1.22.orig/drivers/watchdog/Kconfig 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/watchdog/Kconfig 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/watchdog/Kconfig linux-4.1.23/drivers/watchdog/Kconfig +--- linux-4.1.23.orig/drivers/watchdog/Kconfig 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/watchdog/Kconfig 2016-05-02 22:53:58.000000000 +0200 @@ -451,6 +451,12 @@ To compile this driver as a module, choose M here: the module will be called retu_wdt. @@ -314221,9 +318961,9 @@ diff -Nur linux-4.1.22.orig/drivers/watchdog/Kconfig linux-4.1.22/drivers/watchd select WATCHDOG_CORE help Watchdog driver for the built in watchdog hardware in Broadcom -diff -Nur linux-4.1.22.orig/drivers/watchdog/Makefile linux-4.1.22/drivers/watchdog/Makefile ---- linux-4.1.22.orig/drivers/watchdog/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/drivers/watchdog/Makefile 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/watchdog/Makefile linux-4.1.23/drivers/watchdog/Makefile +--- linux-4.1.23.orig/drivers/watchdog/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/watchdog/Makefile 2016-05-02 22:53:58.000000000 +0200 @@ -56,6 +56,7 @@ obj-$(CONFIG_IMX2_WDT) += imx2_wdt.o obj-$(CONFIG_UX500_WATCHDOG) += ux500_wdt.o @@ -314232,9 +318972,9 @@ diff -Nur linux-4.1.22.orig/drivers/watchdog/Makefile linux-4.1.22/drivers/watch obj-$(CONFIG_BCM2835_WDT) += bcm2835_wdt.o obj-$(CONFIG_MOXART_WDT) += moxart_wdt.o obj-$(CONFIG_SIRFSOC_WATCHDOG) += sirfsoc_wdt.o -diff -Nur linux-4.1.22.orig/drivers/watchdog/bcm2708_wdog.c linux-4.1.22/drivers/watchdog/bcm2708_wdog.c ---- linux-4.1.22.orig/drivers/watchdog/bcm2708_wdog.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/drivers/watchdog/bcm2708_wdog.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/watchdog/bcm2708_wdog.c linux-4.1.23/drivers/watchdog/bcm2708_wdog.c +--- linux-4.1.23.orig/drivers/watchdog/bcm2708_wdog.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/drivers/watchdog/bcm2708_wdog.c 2016-05-02 22:53:58.000000000 +0200 @@ -0,0 +1,382 @@ +/* + * Broadcom BCM2708 watchdog driver. @@ -314618,9 +319358,1480 @@ diff -Nur linux-4.1.22.orig/drivers/watchdog/bcm2708_wdog.c linux-4.1.22/drivers +MODULE_ALIAS_MISCDEV(WATCHDOG_MINOR); +MODULE_ALIAS_MISCDEV(TEMP_MINOR); +MODULE_LICENSE("GPL"); -diff -Nur linux-4.1.22.orig/include/drm/drmP.h linux-4.1.22/include/drm/drmP.h ---- linux-4.1.22.orig/include/drm/drmP.h 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/include/drm/drmP.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/drivers/watchdog/rc32434_wdt.c linux-4.1.23/drivers/watchdog/rc32434_wdt.c +--- linux-4.1.23.orig/drivers/watchdog/rc32434_wdt.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/drivers/watchdog/rc32434_wdt.c 2016-05-02 22:53:58.000000000 +0200 +@@ -237,7 +237,7 @@ + return -EINVAL; + /* Fall through */ + case WDIOC_GETTIMEOUT: +- return copy_to_user(argp, &timeout, sizeof(int)) ? -EFAULT : 0; ++ return copy_to_user(argp, &timeout, sizeof(int)); + default: + return -ENOTTY; + } +diff -Nur linux-4.1.23.orig/fs/btrfs/async-thread.c linux-4.1.23/fs/btrfs/async-thread.c +--- linux-4.1.23.orig/fs/btrfs/async-thread.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/btrfs/async-thread.c 2016-05-02 22:53:58.000000000 +0200 +@@ -316,8 +316,8 @@ + list_add_tail(&work->ordered_list, &wq->ordered_list); + spin_unlock_irqrestore(&wq->list_lock, flags); + } +- trace_btrfs_work_queued(work); + queue_work(wq->normal_wq, &work->normal_work); ++ trace_btrfs_work_queued(work); + } + + void btrfs_queue_work(struct btrfs_workqueue *wq, +diff -Nur linux-4.1.23.orig/fs/btrfs/disk-io.c linux-4.1.23/fs/btrfs/disk-io.c +--- linux-4.1.23.orig/fs/btrfs/disk-io.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/btrfs/disk-io.c 2016-05-02 22:53:58.000000000 +0200 +@@ -1574,23 +1574,8 @@ + ret = get_anon_bdev(&root->anon_dev); + if (ret) + goto free_writers; +- +- mutex_lock(&root->objectid_mutex); +- ret = btrfs_find_highest_objectid(root, +- &root->highest_objectid); +- if (ret) { +- mutex_unlock(&root->objectid_mutex); +- goto free_root_dev; +- } +- +- ASSERT(root->highest_objectid <= BTRFS_LAST_FREE_OBJECTID); +- +- mutex_unlock(&root->objectid_mutex); +- + return 0; + +-free_root_dev: +- free_anon_bdev(root->anon_dev); + free_writers: + btrfs_free_subvolume_writers(root->subv_writers); + fail: +@@ -2637,7 +2622,6 @@ + if (btrfs_check_super_csum(bh->b_data)) { + printk(KERN_ERR "BTRFS: superblock checksum mismatch\n"); + err = -EINVAL; +- brelse(bh); + goto fail_alloc; + } + +@@ -2865,18 +2849,6 @@ + tree_root->commit_root = btrfs_root_node(tree_root); + btrfs_set_root_refs(&tree_root->root_item, 1); + +- mutex_lock(&tree_root->objectid_mutex); +- ret = btrfs_find_highest_objectid(tree_root, +- &tree_root->highest_objectid); +- if (ret) { +- mutex_unlock(&tree_root->objectid_mutex); +- goto recovery_tree_root; +- } +- +- ASSERT(tree_root->highest_objectid <= BTRFS_LAST_FREE_OBJECTID); +- +- mutex_unlock(&tree_root->objectid_mutex); +- + ret = btrfs_read_roots(fs_info, tree_root); + if (ret) + goto recovery_tree_root; +diff -Nur linux-4.1.23.orig/fs/btrfs/extent-tree.c linux-4.1.23/fs/btrfs/extent-tree.c +--- linux-4.1.23.orig/fs/btrfs/extent-tree.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/btrfs/extent-tree.c 2016-05-02 22:53:58.000000000 +0200 +@@ -3975,11 +3975,6 @@ + !atomic_read(&root->fs_info->open_ioctl_trans)) { + need_commit--; + +- if (need_commit > 0) { +- btrfs_start_delalloc_roots(fs_info, 0, -1); +- btrfs_wait_ordered_roots(fs_info, -1); +- } +- + trans = btrfs_join_transaction(root); + if (IS_ERR(trans)) + return PTR_ERR(trans); +diff -Nur linux-4.1.23.orig/fs/btrfs/inode-map.c linux-4.1.23/fs/btrfs/inode-map.c +--- linux-4.1.23.orig/fs/btrfs/inode-map.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/btrfs/inode-map.c 2016-05-02 22:53:58.000000000 +0200 +@@ -515,7 +515,7 @@ + return ret; + } + +-int btrfs_find_highest_objectid(struct btrfs_root *root, u64 *objectid) ++static int btrfs_find_highest_objectid(struct btrfs_root *root, u64 *objectid) + { + struct btrfs_path *path; + int ret; +@@ -555,6 +555,13 @@ + int ret; + mutex_lock(&root->objectid_mutex); + ++ if (unlikely(root->highest_objectid < BTRFS_FIRST_FREE_OBJECTID)) { ++ ret = btrfs_find_highest_objectid(root, ++ &root->highest_objectid); ++ if (ret) ++ goto out; ++ } ++ + if (unlikely(root->highest_objectid >= BTRFS_LAST_FREE_OBJECTID)) { + ret = -ENOSPC; + goto out; +diff -Nur linux-4.1.23.orig/fs/btrfs/inode-map.h linux-4.1.23/fs/btrfs/inode-map.h +--- linux-4.1.23.orig/fs/btrfs/inode-map.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/btrfs/inode-map.h 2016-05-02 22:53:58.000000000 +0200 +@@ -9,6 +9,5 @@ + struct btrfs_trans_handle *trans); + + int btrfs_find_free_objectid(struct btrfs_root *root, u64 *objectid); +-int btrfs_find_highest_objectid(struct btrfs_root *root, u64 *objectid); + + #endif +diff -Nur linux-4.1.23.orig/fs/btrfs/inode.c linux-4.1.23/fs/btrfs/inode.c +--- linux-4.1.23.orig/fs/btrfs/inode.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/btrfs/inode.c 2016-05-02 22:53:58.000000000 +0200 +@@ -6421,7 +6421,7 @@ + static int btrfs_link(struct dentry *old_dentry, struct inode *dir, + struct dentry *dentry) + { +- struct btrfs_trans_handle *trans = NULL; ++ struct btrfs_trans_handle *trans; + struct btrfs_root *root = BTRFS_I(dir)->root; + struct inode *inode = d_inode(old_dentry); + u64 index; +@@ -6447,7 +6447,6 @@ + trans = btrfs_start_transaction(root, 5); + if (IS_ERR(trans)) { + err = PTR_ERR(trans); +- trans = NULL; + goto fail; + } + +@@ -6481,10 +6480,9 @@ + btrfs_log_new_name(trans, inode, NULL, parent); + } + ++ btrfs_end_transaction(trans, root); + btrfs_balance_delayed_items(root); + fail: +- if (trans) +- btrfs_end_transaction(trans, root); + if (drop_inode) { + inode_dec_link_count(inode); + iput(inode); +@@ -8418,28 +8416,15 @@ + static int btrfs_writepage(struct page *page, struct writeback_control *wbc) + { + struct extent_io_tree *tree; +- struct inode *inode = page->mapping->host; +- int ret; ++ + + if (current->flags & PF_MEMALLOC) { + redirty_page_for_writepage(wbc, page); + unlock_page(page); + return 0; + } +- +- /* +- * If we are under memory pressure we will call this directly from the +- * VM, we need to make sure we have the inode referenced for the ordered +- * extent. If not just return like we didn't do anything. +- */ +- if (!igrab(inode)) { +- redirty_page_for_writepage(wbc, page); +- return AOP_WRITEPAGE_ACTIVATE; +- } + tree = &BTRFS_I(page->mapping->host)->io_tree; +- ret = extent_write_full_page(tree, page, btrfs_get_extent, wbc); +- btrfs_add_delayed_iput(inode); +- return ret; ++ return extent_write_full_page(tree, page, btrfs_get_extent, wbc); + } + + static int btrfs_writepages(struct address_space *mapping, +@@ -9520,11 +9505,9 @@ + /* + * 2 items for inode item and ref + * 2 items for dir items +- * 1 item for updating parent inode item +- * 1 item for the inline extent item + * 1 item for xattr if selinux is on + */ +- trans = btrfs_start_transaction(root, 7); ++ trans = btrfs_start_transaction(root, 5); + if (IS_ERR(trans)) + return PTR_ERR(trans); + +diff -Nur linux-4.1.23.orig/fs/btrfs/ioctl.c linux-4.1.23/fs/btrfs/ioctl.c +--- linux-4.1.23.orig/fs/btrfs/ioctl.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/btrfs/ioctl.c 2016-05-02 22:53:58.000000000 +0200 +@@ -567,10 +567,6 @@ + goto fail; + } + +- mutex_lock(&new_root->objectid_mutex); +- new_root->highest_objectid = new_dirid; +- mutex_unlock(&new_root->objectid_mutex); +- + /* + * insert the directory item + */ +diff -Nur linux-4.1.23.orig/fs/btrfs/send.c linux-4.1.23/fs/btrfs/send.c +--- linux-4.1.23.orig/fs/btrfs/send.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/btrfs/send.c 2016-05-02 22:53:58.000000000 +0200 +@@ -1462,21 +1462,7 @@ + ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); + if (ret < 0) + goto out; +- if (ret) { +- /* +- * An empty symlink inode. Can happen in rare error paths when +- * creating a symlink (transaction committed before the inode +- * eviction handler removed the symlink inode items and a crash +- * happened in between or the subvol was snapshoted in between). +- * Print an informative message to dmesg/syslog so that the user +- * can delete the symlink. +- */ +- btrfs_err(root->fs_info, +- "Found empty symlink inode %llu at root %llu", +- ino, root->root_key.objectid); +- ret = -EIO; +- goto out; +- } ++ BUG_ON(ret); + + ei = btrfs_item_ptr(path->nodes[0], path->slots[0], + struct btrfs_file_extent_item); +diff -Nur linux-4.1.23.orig/fs/btrfs/super.c linux-4.1.23/fs/btrfs/super.c +--- linux-4.1.23.orig/fs/btrfs/super.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/btrfs/super.c 2016-05-02 22:53:58.000000000 +0200 +@@ -1822,8 +1822,6 @@ + * there are other factors that may change the result (like a new metadata + * chunk). + * +- * If metadata is exhausted, f_bavail will be 0. +- * + * FIXME: not accurate for mixed block groups, total and free/used are ok, + * available appears slightly larger. + */ +@@ -1835,13 +1833,11 @@ + struct btrfs_space_info *found; + u64 total_used = 0; + u64 total_free_data = 0; +- u64 total_free_meta = 0; + int bits = dentry->d_sb->s_blocksize_bits; + __be32 *fsid = (__be32 *)fs_info->fsid; + unsigned factor = 1; + struct btrfs_block_rsv *block_rsv = &fs_info->global_block_rsv; + int ret; +- u64 thresh = 0; + + /* + * holding chunk_muext to avoid allocating new chunks, holding +@@ -1867,8 +1863,6 @@ + } + } + } +- if (found->flags & BTRFS_BLOCK_GROUP_METADATA) +- total_free_meta += found->disk_total - found->disk_used; + + total_used += found->disk_used; + } +@@ -1891,24 +1885,6 @@ + buf->f_bavail += div_u64(total_free_data, factor); + buf->f_bavail = buf->f_bavail >> bits; + +- /* +- * We calculate the remaining metadata space minus global reserve. If +- * this is (supposedly) smaller than zero, there's no space. But this +- * does not hold in practice, the exhausted state happens where's still +- * some positive delta. So we apply some guesswork and compare the +- * delta to a 4M threshold. (Practically observed delta was ~2M.) +- * +- * We probably cannot calculate the exact threshold value because this +- * depends on the internal reservations requested by various +- * operations, so some operations that consume a few metadata will +- * succeed even if the Avail is zero. But this is better than the other +- * way around. +- */ +- thresh = 4 * 1024 * 1024; +- +- if (total_free_meta - thresh < block_rsv->size) +- buf->f_bavail = 0; +- + buf->f_type = BTRFS_SUPER_MAGIC; + buf->f_bsize = dentry->d_sb->s_blocksize; + buf->f_namelen = BTRFS_NAME_LEN; +diff -Nur linux-4.1.23.orig/fs/btrfs/volumes.c linux-4.1.23/fs/btrfs/volumes.c +--- linux-4.1.23.orig/fs/btrfs/volumes.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/btrfs/volumes.c 2016-05-02 22:53:58.000000000 +0200 +@@ -152,7 +152,6 @@ + spin_lock_init(&dev->reada_lock); + atomic_set(&dev->reada_in_flight, 0); + atomic_set(&dev->dev_stats_ccnt, 0); +- btrfs_device_data_ordered_init(dev); + INIT_RADIX_TREE(&dev->reada_zones, GFP_NOFS & ~__GFP_WAIT); + INIT_RADIX_TREE(&dev->reada_extents, GFP_NOFS & ~__GFP_WAIT); + +diff -Nur linux-4.1.23.orig/fs/coredump.c linux-4.1.23/fs/coredump.c +--- linux-4.1.23.orig/fs/coredump.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/coredump.c 2016-05-02 22:53:58.000000000 +0200 +@@ -32,10 +32,6 @@ + #include <linux/pipe_fs_i.h> + #include <linux/oom.h> + #include <linux/compat.h> +-#include <linux/sched.h> +-#include <linux/fs.h> +-#include <linux/path.h> +-#include <linux/timekeeping.h> + + #include <asm/uaccess.h> + #include <asm/mmu_context.h> +@@ -229,10 +225,9 @@ + break; + /* UNIX time of coredump */ + case 't': { +- time64_t time; +- +- time = ktime_get_real_seconds(); +- err = cn_printf(cn, "%lld", time); ++ struct timeval tv; ++ do_gettimeofday(&tv); ++ err = cn_printf(cn, "%lu", tv.tv_sec); + break; + } + /* hostname */ +@@ -626,8 +621,6 @@ + } + } else { + struct inode *inode; +- int open_flags = O_CREAT | O_RDWR | O_NOFOLLOW | +- O_LARGEFILE | O_EXCL; + + if (cprm.limit < binfmt->min_coredump) + goto fail_unlock; +@@ -666,27 +659,10 @@ + * what matters is that at least one of the two processes + * writes its coredump successfully, not which one. + */ +- if (need_suid_safe) { +- /* +- * Using user namespaces, normal user tasks can change +- * their current->fs->root to point to arbitrary +- * directories. Since the intention of the "only dump +- * with a fully qualified path" rule is to control where +- * coredumps may be placed using root privileges, +- * current->fs->root must not be used. Instead, use the +- * root directory of init_task. +- */ +- struct path root; +- +- task_lock(&init_task); +- get_fs_root(init_task.fs, &root); +- task_unlock(&init_task); +- cprm.file = file_open_root(root.dentry, root.mnt, +- cn.corename, open_flags, 0600); +- path_put(&root); +- } else { +- cprm.file = filp_open(cn.corename, open_flags, 0600); +- } ++ cprm.file = filp_open(cn.corename, ++ O_CREAT | 2 | O_NOFOLLOW | ++ O_LARGEFILE | O_EXCL, ++ 0600); + if (IS_ERR(cprm.file)) + goto fail_unlock; + +diff -Nur linux-4.1.23.orig/fs/dax.c linux-4.1.23/fs/dax.c +--- linux-4.1.23.orig/fs/dax.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/dax.c 2016-05-02 22:53:59.000000000 +0200 +@@ -309,11 +309,14 @@ + out: + i_mmap_unlock_read(mapping); + ++ if (bh->b_end_io) ++ bh->b_end_io(bh, 1); ++ + return error; + } + + static int do_dax_fault(struct vm_area_struct *vma, struct vm_fault *vmf, +- get_block_t get_block, dax_iodone_t complete_unwritten) ++ get_block_t get_block) + { + struct file *file = vma->vm_file; + struct address_space *mapping = file->f_mapping; +@@ -414,19 +417,7 @@ + page_cache_release(page); + } + +- /* +- * If we successfully insert the new mapping over an unwritten extent, +- * we need to ensure we convert the unwritten extent. If there is an +- * error inserting the mapping, the filesystem needs to leave it as +- * unwritten to prevent exposure of the stale underlying data to +- * userspace, but we still need to call the completion function so +- * the private resources on the mapping buffer can be released. We +- * indicate what the callback should do via the uptodate variable, same +- * as for normal BH based IO completions. +- */ + error = dax_insert_mapping(inode, &bh, vma, vmf); +- if (buffer_unwritten(&bh)) +- complete_unwritten(&bh, !error); + + out: + if (error == -ENOMEM) +@@ -454,7 +445,7 @@ + * fault handler for DAX files. + */ + int dax_fault(struct vm_area_struct *vma, struct vm_fault *vmf, +- get_block_t get_block, dax_iodone_t complete_unwritten) ++ get_block_t get_block) + { + int result; + struct super_block *sb = file_inode(vma->vm_file)->i_sb; +@@ -463,7 +454,7 @@ + sb_start_pagefault(sb); + file_update_time(vma->vm_file); + } +- result = do_dax_fault(vma, vmf, get_block, complete_unwritten); ++ result = do_dax_fault(vma, vmf, get_block); + if (vmf->flags & FAULT_FLAG_WRITE) + sb_end_pagefault(sb); + +diff -Nur linux-4.1.23.orig/fs/efivarfs/file.c linux-4.1.23/fs/efivarfs/file.c +--- linux-4.1.23.orig/fs/efivarfs/file.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/efivarfs/file.c 2016-05-02 22:53:59.000000000 +0200 +@@ -10,7 +10,6 @@ + #include <linux/efi.h> + #include <linux/fs.h> + #include <linux/slab.h> +-#include <linux/mount.h> + + #include "internal.h" + +@@ -104,78 +103,9 @@ + return size; + } + +-static int +-efivarfs_ioc_getxflags(struct file *file, void __user *arg) +-{ +- struct inode *inode = file->f_mapping->host; +- unsigned int i_flags; +- unsigned int flags = 0; +- +- i_flags = inode->i_flags; +- if (i_flags & S_IMMUTABLE) +- flags |= FS_IMMUTABLE_FL; +- +- if (copy_to_user(arg, &flags, sizeof(flags))) +- return -EFAULT; +- return 0; +-} +- +-static int +-efivarfs_ioc_setxflags(struct file *file, void __user *arg) +-{ +- struct inode *inode = file->f_mapping->host; +- unsigned int flags; +- unsigned int i_flags = 0; +- int error; +- +- if (!inode_owner_or_capable(inode)) +- return -EACCES; +- +- if (copy_from_user(&flags, arg, sizeof(flags))) +- return -EFAULT; +- +- if (flags & ~FS_IMMUTABLE_FL) +- return -EOPNOTSUPP; +- +- if (!capable(CAP_LINUX_IMMUTABLE)) +- return -EPERM; +- +- if (flags & FS_IMMUTABLE_FL) +- i_flags |= S_IMMUTABLE; +- +- +- error = mnt_want_write_file(file); +- if (error) +- return error; +- +- mutex_lock(&inode->i_mutex); +- inode_set_flags(inode, i_flags, S_IMMUTABLE); +- mutex_unlock(&inode->i_mutex); +- +- mnt_drop_write_file(file); +- +- return 0; +-} +- +-long +-efivarfs_file_ioctl(struct file *file, unsigned int cmd, unsigned long p) +-{ +- void __user *arg = (void __user *)p; +- +- switch (cmd) { +- case FS_IOC_GETFLAGS: +- return efivarfs_ioc_getxflags(file, arg); +- case FS_IOC_SETFLAGS: +- return efivarfs_ioc_setxflags(file, arg); +- } +- +- return -ENOTTY; +-} +- + const struct file_operations efivarfs_file_operations = { + .open = simple_open, + .read = efivarfs_file_read, + .write = efivarfs_file_write, + .llseek = no_llseek, +- .unlocked_ioctl = efivarfs_file_ioctl, + }; +diff -Nur linux-4.1.23.orig/fs/efivarfs/inode.c linux-4.1.23/fs/efivarfs/inode.c +--- linux-4.1.23.orig/fs/efivarfs/inode.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/efivarfs/inode.c 2016-05-02 22:53:59.000000000 +0200 +@@ -15,8 +15,7 @@ + #include "internal.h" + + struct inode *efivarfs_get_inode(struct super_block *sb, +- const struct inode *dir, int mode, +- dev_t dev, bool is_removable) ++ const struct inode *dir, int mode, dev_t dev) + { + struct inode *inode = new_inode(sb); + +@@ -24,7 +23,6 @@ + inode->i_ino = get_next_ino(); + inode->i_mode = mode; + inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; +- inode->i_flags = is_removable ? 0 : S_IMMUTABLE; + switch (mode & S_IFMT) { + case S_IFREG: + inode->i_fop = &efivarfs_file_operations; +@@ -104,34 +102,29 @@ + static int efivarfs_create(struct inode *dir, struct dentry *dentry, + umode_t mode, bool excl) + { +- struct inode *inode = NULL; ++ struct inode *inode; + struct efivar_entry *var; + int namelen, i = 0, err = 0; +- bool is_removable = false; + + if (!efivarfs_valid_name(dentry->d_name.name, dentry->d_name.len)) + return -EINVAL; + +- var = kzalloc(sizeof(struct efivar_entry), GFP_KERNEL); +- if (!var) ++ inode = efivarfs_get_inode(dir->i_sb, dir, mode, 0); ++ if (!inode) + return -ENOMEM; + ++ var = kzalloc(sizeof(struct efivar_entry), GFP_KERNEL); ++ if (!var) { ++ err = -ENOMEM; ++ goto out; ++ } ++ + /* length of the variable name itself: remove GUID and separator */ + namelen = dentry->d_name.len - EFI_VARIABLE_GUID_LEN - 1; + + efivarfs_hex_to_guid(dentry->d_name.name + namelen + 1, + &var->var.VendorGuid); + +- if (efivar_variable_is_removable(var->var.VendorGuid, +- dentry->d_name.name, namelen)) +- is_removable = true; +- +- inode = efivarfs_get_inode(dir->i_sb, dir, mode, 0, is_removable); +- if (!inode) { +- err = -ENOMEM; +- goto out; +- } +- + for (i = 0; i < namelen; i++) + var->var.VariableName[i] = dentry->d_name.name[i]; + +@@ -145,8 +138,7 @@ + out: + if (err) { + kfree(var); +- if (inode) +- iput(inode); ++ iput(inode); + } + return err; + } +diff -Nur linux-4.1.23.orig/fs/efivarfs/internal.h linux-4.1.23/fs/efivarfs/internal.h +--- linux-4.1.23.orig/fs/efivarfs/internal.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/efivarfs/internal.h 2016-05-02 22:53:59.000000000 +0200 +@@ -15,8 +15,7 @@ + extern const struct inode_operations efivarfs_dir_inode_operations; + extern bool efivarfs_valid_name(const char *str, int len); + extern struct inode *efivarfs_get_inode(struct super_block *sb, +- const struct inode *dir, int mode, dev_t dev, +- bool is_removable); ++ const struct inode *dir, int mode, dev_t dev); + + extern struct list_head efivarfs_list; + +diff -Nur linux-4.1.23.orig/fs/efivarfs/super.c linux-4.1.23/fs/efivarfs/super.c +--- linux-4.1.23.orig/fs/efivarfs/super.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/efivarfs/super.c 2016-05-02 22:53:59.000000000 +0200 +@@ -118,9 +118,8 @@ + struct dentry *dentry, *root = sb->s_root; + unsigned long size = 0; + char *name; +- int len; ++ int len, i; + int err = -ENOMEM; +- bool is_removable = false; + + entry = kzalloc(sizeof(*entry), GFP_KERNEL); + if (!entry) +@@ -129,17 +128,15 @@ + memcpy(entry->var.VariableName, name16, name_size); + memcpy(&(entry->var.VendorGuid), &vendor, sizeof(efi_guid_t)); + +- len = ucs2_utf8size(entry->var.VariableName); ++ len = ucs2_strlen(entry->var.VariableName); + + /* name, plus '-', plus GUID, plus NUL*/ + name = kmalloc(len + 1 + EFI_VARIABLE_GUID_LEN + 1, GFP_KERNEL); + if (!name) + goto fail; + +- ucs2_as_utf8(name, entry->var.VariableName, len); +- +- if (efivar_variable_is_removable(entry->var.VendorGuid, name, len)) +- is_removable = true; ++ for (i = 0; i < len; i++) ++ name[i] = entry->var.VariableName[i] & 0xFF; + + name[len] = '-'; + +@@ -147,8 +144,7 @@ + + name[len + EFI_VARIABLE_GUID_LEN+1] = '\0'; + +- inode = efivarfs_get_inode(sb, d_inode(root), S_IFREG | 0644, 0, +- is_removable); ++ inode = efivarfs_get_inode(sb, d_inode(root), S_IFREG | 0644, 0); + if (!inode) + goto fail_name; + +@@ -204,7 +200,7 @@ + sb->s_d_op = &efivarfs_d_ops; + sb->s_time_gran = 1; + +- inode = efivarfs_get_inode(sb, NULL, S_IFDIR | 0755, 0, true); ++ inode = efivarfs_get_inode(sb, NULL, S_IFDIR | 0755, 0); + if (!inode) + return -ENOMEM; + inode->i_op = &efivarfs_dir_inode_operations; +diff -Nur linux-4.1.23.orig/fs/ext2/file.c linux-4.1.23/fs/ext2/file.c +--- linux-4.1.23.orig/fs/ext2/file.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/ext2/file.c 2016-05-02 22:53:59.000000000 +0200 +@@ -28,12 +28,12 @@ + #ifdef CONFIG_FS_DAX + static int ext2_dax_fault(struct vm_area_struct *vma, struct vm_fault *vmf) + { +- return dax_fault(vma, vmf, ext2_get_block, NULL); ++ return dax_fault(vma, vmf, ext2_get_block); + } + + static int ext2_dax_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf) + { +- return dax_mkwrite(vma, vmf, ext2_get_block, NULL); ++ return dax_mkwrite(vma, vmf, ext2_get_block); + } + + static const struct vm_operations_struct ext2_dax_vm_ops = { +diff -Nur linux-4.1.23.orig/fs/ext4/file.c linux-4.1.23/fs/ext4/file.c +--- linux-4.1.23.orig/fs/ext4/file.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/ext4/file.c 2016-05-02 22:53:59.000000000 +0200 +@@ -192,27 +192,15 @@ + } + + #ifdef CONFIG_FS_DAX +-static void ext4_end_io_unwritten(struct buffer_head *bh, int uptodate) +-{ +- struct inode *inode = bh->b_assoc_map->host; +- /* XXX: breaks on 32-bit > 16GB. Is that even supported? */ +- loff_t offset = (loff_t)(uintptr_t)bh->b_private << inode->i_blkbits; +- int err; +- if (!uptodate) +- return; +- WARN_ON(!buffer_unwritten(bh)); +- err = ext4_convert_unwritten_extents(NULL, inode, offset, bh->b_size); +-} +- + static int ext4_dax_fault(struct vm_area_struct *vma, struct vm_fault *vmf) + { +- return dax_fault(vma, vmf, ext4_get_block, ext4_end_io_unwritten); ++ return dax_fault(vma, vmf, ext4_get_block); + /* Is this the right get_block? */ + } + + static int ext4_dax_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf) + { +- return dax_mkwrite(vma, vmf, ext4_get_block, ext4_end_io_unwritten); ++ return dax_mkwrite(vma, vmf, ext4_get_block); + } + + static const struct vm_operations_struct ext4_dax_vm_ops = { +diff -Nur linux-4.1.23.orig/fs/ext4/inode.c linux-4.1.23/fs/ext4/inode.c +--- linux-4.1.23.orig/fs/ext4/inode.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/ext4/inode.c 2016-05-02 22:53:59.000000000 +0200 +@@ -656,32 +656,16 @@ + return retval; + } + +-/* +- * Update EXT4_MAP_FLAGS in bh->b_state. For buffer heads attached to pages +- * we have to be careful as someone else may be manipulating b_state as well. +- */ +-static void ext4_update_bh_state(struct buffer_head *bh, unsigned long flags) ++static void ext4_end_io_unwritten(struct buffer_head *bh, int uptodate) + { +- unsigned long old_state; +- unsigned long new_state; +- +- flags &= EXT4_MAP_FLAGS; +- +- /* Dummy buffer_head? Set non-atomically. */ +- if (!bh->b_page) { +- bh->b_state = (bh->b_state & ~EXT4_MAP_FLAGS) | flags; ++ struct inode *inode = bh->b_assoc_map->host; ++ /* XXX: breaks on 32-bit > 16GB. Is that even supported? */ ++ loff_t offset = (loff_t)(uintptr_t)bh->b_private << inode->i_blkbits; ++ int err; ++ if (!uptodate) + return; +- } +- /* +- * Someone else may be modifying b_state. Be careful! This is ugly but +- * once we get rid of using bh as a container for mapping information +- * to pass to / from get_block functions, this can go away. +- */ +- do { +- old_state = READ_ONCE(bh->b_state); +- new_state = (old_state & ~EXT4_MAP_FLAGS) | flags; +- } while (unlikely( +- cmpxchg(&bh->b_state, old_state, new_state) != old_state)); ++ WARN_ON(!buffer_unwritten(bh)); ++ err = ext4_convert_unwritten_extents(NULL, inode, offset, bh->b_size); + } + + /* Maximum number of blocks we map for direct IO at once. */ +@@ -720,16 +704,11 @@ + ext4_io_end_t *io_end = ext4_inode_aio(inode); + + map_bh(bh, inode->i_sb, map.m_pblk); +- ext4_update_bh_state(bh, map.m_flags); +- if (IS_DAX(inode) && buffer_unwritten(bh)) { +- /* +- * dgc: I suspect unwritten conversion on ext4+DAX is +- * fundamentally broken here when there are concurrent +- * read/write in progress on this inode. +- */ +- WARN_ON_ONCE(io_end); ++ bh->b_state = (bh->b_state & ~EXT4_MAP_FLAGS) | map.m_flags; ++ if (IS_DAX(inode) && buffer_unwritten(bh) && !io_end) { + bh->b_assoc_map = inode->i_mapping; + bh->b_private = (void *)(unsigned long)iblock; ++ bh->b_end_io = ext4_end_io_unwritten; + } + if (io_end && io_end->flag & EXT4_IO_END_UNWRITTEN) + set_buffer_defer_completion(bh); +@@ -1676,7 +1655,7 @@ + return ret; + + map_bh(bh, inode->i_sb, map.m_pblk); +- ext4_update_bh_state(bh, map.m_flags); ++ bh->b_state = (bh->b_state & ~EXT4_MAP_FLAGS) | map.m_flags; + + if (buffer_unwritten(bh)) { + /* A delayed write to unwritten bh should be marked +diff -Nur linux-4.1.23.orig/fs/ext4/move_extent.c linux-4.1.23/fs/ext4/move_extent.c +--- linux-4.1.23.orig/fs/ext4/move_extent.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/ext4/move_extent.c 2016-05-02 22:53:59.000000000 +0200 +@@ -393,7 +393,6 @@ + *err = ext4_get_block(orig_inode, orig_blk_offset + i, bh, 0); + if (*err < 0) + break; +- bh = bh->b_this_page; + } + if (!*err) + *err = block_commit_write(pagep[0], from, from + replaced_size); +diff -Nur linux-4.1.23.orig/fs/fhandle.c linux-4.1.23/fs/fhandle.c +--- linux-4.1.23.orig/fs/fhandle.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/fhandle.c 2016-05-02 22:53:59.000000000 +0200 +@@ -228,7 +228,7 @@ + path_put(&path); + return fd; + } +- file = file_open_root(path.dentry, path.mnt, "", open_flag, 0); ++ file = file_open_root(path.dentry, path.mnt, "", open_flag); + if (IS_ERR(file)) { + put_unused_fd(fd); + retval = PTR_ERR(file); +diff -Nur linux-4.1.23.orig/fs/fuse/cuse.c linux-4.1.23/fs/fuse/cuse.c +--- linux-4.1.23.orig/fs/fuse/cuse.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/fuse/cuse.c 2016-05-02 22:53:59.000000000 +0200 +@@ -90,7 +90,7 @@ + + static ssize_t cuse_read_iter(struct kiocb *kiocb, struct iov_iter *to) + { +- struct fuse_io_priv io = FUSE_IO_PRIV_SYNC(kiocb->ki_filp); ++ struct fuse_io_priv io = { .async = 0, .file = kiocb->ki_filp }; + loff_t pos = 0; + + return fuse_direct_io(&io, to, &pos, FUSE_DIO_CUSE); +@@ -98,7 +98,7 @@ + + static ssize_t cuse_write_iter(struct kiocb *kiocb, struct iov_iter *from) + { +- struct fuse_io_priv io = FUSE_IO_PRIV_SYNC(kiocb->ki_filp); ++ struct fuse_io_priv io = { .async = 0, .file = kiocb->ki_filp }; + loff_t pos = 0; + /* + * No locking or generic_write_checks(), the server is +diff -Nur linux-4.1.23.orig/fs/fuse/file.c linux-4.1.23/fs/fuse/file.c +--- linux-4.1.23.orig/fs/fuse/file.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/fuse/file.c 2016-05-02 22:53:59.000000000 +0200 +@@ -528,11 +528,6 @@ + } + } + +-static void fuse_io_release(struct kref *kref) +-{ +- kfree(container_of(kref, struct fuse_io_priv, refcnt)); +-} +- + static ssize_t fuse_get_res_by_io(struct fuse_io_priv *io) + { + if (io->err) +@@ -590,9 +585,8 @@ + } + + io->iocb->ki_complete(io->iocb, res, 0); ++ kfree(io); + } +- +- kref_put(&io->refcnt, fuse_io_release); + } + + static void fuse_aio_complete_req(struct fuse_conn *fc, struct fuse_req *req) +@@ -619,7 +613,6 @@ + size_t num_bytes, struct fuse_io_priv *io) + { + spin_lock(&io->lock); +- kref_get(&io->refcnt); + io->size += num_bytes; + io->reqs++; + spin_unlock(&io->lock); +@@ -698,7 +691,7 @@ + + static int fuse_do_readpage(struct file *file, struct page *page) + { +- struct fuse_io_priv io = FUSE_IO_PRIV_SYNC(file); ++ struct fuse_io_priv io = { .async = 0, .file = file }; + struct inode *inode = page->mapping->host; + struct fuse_conn *fc = get_fuse_conn(inode); + struct fuse_req *req; +@@ -991,7 +984,7 @@ + size_t res; + unsigned offset; + unsigned i; +- struct fuse_io_priv io = FUSE_IO_PRIV_SYNC(file); ++ struct fuse_io_priv io = { .async = 0, .file = file }; + + for (i = 0; i < req->num_pages; i++) + fuse_wait_on_page_writeback(inode, req->pages[i]->index); +@@ -1056,7 +1049,6 @@ + tmp = iov_iter_copy_from_user_atomic(page, ii, offset, bytes); + flush_dcache_page(page); + +- iov_iter_advance(ii, tmp); + if (!tmp) { + unlock_page(page); + page_cache_release(page); +@@ -1069,6 +1061,7 @@ + req->page_descs[req->num_pages].length = tmp; + req->num_pages++; + ++ iov_iter_advance(ii, tmp); + count += tmp; + pos += tmp; + offset += tmp; +@@ -1405,7 +1398,7 @@ + + static ssize_t fuse_direct_read_iter(struct kiocb *iocb, struct iov_iter *to) + { +- struct fuse_io_priv io = FUSE_IO_PRIV_SYNC(iocb->ki_filp); ++ struct fuse_io_priv io = { .async = 0, .file = iocb->ki_filp }; + return __fuse_direct_read(&io, to, &iocb->ki_pos); + } + +@@ -1413,7 +1406,7 @@ + { + struct file *file = iocb->ki_filp; + struct inode *inode = file_inode(file); +- struct fuse_io_priv io = FUSE_IO_PRIV_SYNC(file); ++ struct fuse_io_priv io = { .async = 0, .file = file }; + ssize_t res; + + if (is_bad_inode(inode)) +@@ -2793,7 +2786,6 @@ + loff_t i_size; + size_t count = iov_iter_count(iter); + struct fuse_io_priv *io; +- bool is_sync = is_sync_kiocb(iocb); + + pos = offset; + inode = file->f_mapping->host; +@@ -2814,7 +2806,6 @@ + if (!io) + return -ENOMEM; + spin_lock_init(&io->lock); +- kref_init(&io->refcnt); + io->reqs = 1; + io->bytes = -1; + io->size = 0; +@@ -2834,18 +2825,12 @@ + * to wait on real async I/O requests, so we must submit this request + * synchronously. + */ +- if (!is_sync && (offset + count > i_size) && ++ if (!is_sync_kiocb(iocb) && (offset + count > i_size) && + iov_iter_rw(iter) == WRITE) + io->async = false; + +- if (io->async && is_sync) { +- /* +- * Additional reference to keep io around after +- * calling fuse_aio_complete() +- */ +- kref_get(&io->refcnt); ++ if (io->async && is_sync_kiocb(iocb)) + io->done = &wait; +- } + + if (iov_iter_rw(iter) == WRITE) { + ret = fuse_direct_io(io, iter, &pos, FUSE_DIO_WRITE); +@@ -2858,14 +2843,14 @@ + fuse_aio_complete(io, ret < 0 ? ret : 0, -1); + + /* we have a non-extending, async request, so return */ +- if (!is_sync) ++ if (!is_sync_kiocb(iocb)) + return -EIOCBQUEUED; + + wait_for_completion(&wait); + ret = fuse_get_res_by_io(io); + } + +- kref_put(&io->refcnt, fuse_io_release); ++ kfree(io); + + if (iov_iter_rw(iter) == WRITE) { + if (ret > 0) +diff -Nur linux-4.1.23.orig/fs/fuse/fuse_i.h linux-4.1.23/fs/fuse/fuse_i.h +--- linux-4.1.23.orig/fs/fuse/fuse_i.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/fuse/fuse_i.h 2016-05-02 22:53:59.000000000 +0200 +@@ -22,7 +22,6 @@ + #include <linux/rbtree.h> + #include <linux/poll.h> + #include <linux/workqueue.h> +-#include <linux/kref.h> + + /** Max number of pages that can be used in a single read request */ + #define FUSE_MAX_PAGES_PER_REQ 32 +@@ -254,7 +253,6 @@ + + /** The request IO state (for asynchronous processing) */ + struct fuse_io_priv { +- struct kref refcnt; + int async; + spinlock_t lock; + unsigned reqs; +@@ -268,13 +266,6 @@ + struct completion *done; + }; + +-#define FUSE_IO_PRIV_SYNC(f) \ +-{ \ +- .refcnt = { ATOMIC_INIT(1) }, \ +- .async = 0, \ +- .file = f, \ +-} +- + /** + * A request to the client + */ +diff -Nur linux-4.1.23.orig/fs/jbd2/journal.c linux-4.1.23/fs/jbd2/journal.c +--- linux-4.1.23.orig/fs/jbd2/journal.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/jbd2/journal.c 2016-05-02 22:53:59.000000000 +0200 +@@ -1423,12 +1423,11 @@ + /** + * jbd2_mark_journal_empty() - Mark on disk journal as empty. + * @journal: The journal to update. +- * @write_op: With which operation should we write the journal sb + * + * Update a journal's dynamic superblock fields to show that journal is empty. + * Write updated superblock to disk waiting for IO to complete. + */ +-static void jbd2_mark_journal_empty(journal_t *journal, int write_op) ++static void jbd2_mark_journal_empty(journal_t *journal) + { + journal_superblock_t *sb = journal->j_superblock; + +@@ -1446,7 +1445,7 @@ + sb->s_start = cpu_to_be32(0); + read_unlock(&journal->j_state_lock); + +- jbd2_write_superblock(journal, write_op); ++ jbd2_write_superblock(journal, WRITE_FUA); + + /* Log is no longer empty */ + write_lock(&journal->j_state_lock); +@@ -1731,13 +1730,7 @@ + if (journal->j_sb_buffer) { + if (!is_journal_aborted(journal)) { + mutex_lock(&journal->j_checkpoint_mutex); +- +- write_lock(&journal->j_state_lock); +- journal->j_tail_sequence = +- ++journal->j_transaction_sequence; +- write_unlock(&journal->j_state_lock); +- +- jbd2_mark_journal_empty(journal, WRITE_FLUSH_FUA); ++ jbd2_mark_journal_empty(journal); + mutex_unlock(&journal->j_checkpoint_mutex); + } else + err = -EIO; +@@ -1996,7 +1989,7 @@ + * the magic code for a fully-recovered superblock. Any future + * commits of data to the journal will restore the current + * s_start value. */ +- jbd2_mark_journal_empty(journal, WRITE_FUA); ++ jbd2_mark_journal_empty(journal); + mutex_unlock(&journal->j_checkpoint_mutex); + write_lock(&journal->j_state_lock); + J_ASSERT(!journal->j_running_transaction); +@@ -2042,7 +2035,7 @@ + if (write) { + /* Lock to make assertions happy... */ + mutex_lock(&journal->j_checkpoint_mutex); +- jbd2_mark_journal_empty(journal, WRITE_FUA); ++ jbd2_mark_journal_empty(journal); + mutex_unlock(&journal->j_checkpoint_mutex); + } + +diff -Nur linux-4.1.23.orig/fs/nfsd/nfs4proc.c linux-4.1.23/fs/nfsd/nfs4proc.c +--- linux-4.1.23.orig/fs/nfsd/nfs4proc.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/nfsd/nfs4proc.c 2016-05-02 22:53:59.000000000 +0200 +@@ -881,7 +881,6 @@ + &exp, &dentry); + if (err) + return err; +- fh_unlock(&cstate->current_fh); + if (d_really_is_negative(dentry)) { + exp_put(exp); + err = nfserr_noent; +diff -Nur linux-4.1.23.orig/fs/nfsd/nfs4xdr.c linux-4.1.23/fs/nfsd/nfs4xdr.c +--- linux-4.1.23.orig/fs/nfsd/nfs4xdr.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/nfsd/nfs4xdr.c 2016-05-02 22:53:59.000000000 +0200 +@@ -1071,9 +1071,8 @@ + + READ_BUF(4); + rename->rn_snamelen = be32_to_cpup(p++); +- READ_BUF(rename->rn_snamelen); ++ READ_BUF(rename->rn_snamelen + 4); + SAVEMEM(rename->rn_sname, rename->rn_snamelen); +- READ_BUF(4); + rename->rn_tnamelen = be32_to_cpup(p++); + READ_BUF(rename->rn_tnamelen); + SAVEMEM(rename->rn_tname, rename->rn_tnamelen); +@@ -1155,14 +1154,13 @@ + READ_BUF(8); + setclientid->se_callback_prog = be32_to_cpup(p++); + setclientid->se_callback_netid_len = be32_to_cpup(p++); +- READ_BUF(setclientid->se_callback_netid_len); ++ ++ READ_BUF(setclientid->se_callback_netid_len + 4); + SAVEMEM(setclientid->se_callback_netid_val, setclientid->se_callback_netid_len); +- READ_BUF(4); + setclientid->se_callback_addr_len = be32_to_cpup(p++); + +- READ_BUF(setclientid->se_callback_addr_len); ++ READ_BUF(setclientid->se_callback_addr_len + 4); + SAVEMEM(setclientid->se_callback_addr_val, setclientid->se_callback_addr_len); +- READ_BUF(4); + setclientid->se_callback_ident = be32_to_cpup(p++); + + DECODE_TAIL; +@@ -1816,9 +1814,8 @@ + + READ_BUF(4); + argp->taglen = be32_to_cpup(p++); +- READ_BUF(argp->taglen); ++ READ_BUF(argp->taglen + 8); + SAVEMEM(argp->tag, argp->taglen); +- READ_BUF(8); + argp->minorversion = be32_to_cpup(p++); + argp->opcnt = be32_to_cpup(p++); + max_reply += 4 + (XDR_QUADLEN(argp->taglen) << 2); +diff -Nur linux-4.1.23.orig/fs/ocfs2/dlm/dlmconvert.c linux-4.1.23/fs/ocfs2/dlm/dlmconvert.c +--- linux-4.1.23.orig/fs/ocfs2/dlm/dlmconvert.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/ocfs2/dlm/dlmconvert.c 2016-05-02 22:53:59.000000000 +0200 +@@ -262,7 +262,6 @@ + struct dlm_lock *lock, int flags, int type) + { + enum dlm_status status; +- u8 old_owner = res->owner; + + mlog(0, "type=%d, convert_type=%d, busy=%d\n", lock->ml.type, + lock->ml.convert_type, res->state & DLM_LOCK_RES_IN_PROGRESS); +@@ -288,19 +287,6 @@ + status = DLM_DENIED; + goto bail; + } +- +- if (lock->ml.type == type && lock->ml.convert_type == LKM_IVMODE) { +- mlog(0, "last convert request returned DLM_RECOVERING, but " +- "owner has already queued and sent ast to me. res %.*s, " +- "(cookie=%u:%llu, type=%d, conv=%d)\n", +- res->lockname.len, res->lockname.name, +- dlm_get_lock_cookie_node(be64_to_cpu(lock->ml.cookie)), +- dlm_get_lock_cookie_seq(be64_to_cpu(lock->ml.cookie)), +- lock->ml.type, lock->ml.convert_type); +- status = DLM_NORMAL; +- goto bail; +- } +- + res->state |= DLM_LOCK_RES_IN_PROGRESS; + /* move lock to local convert queue */ + /* do not alter lock refcount. switching lists. */ +@@ -330,19 +316,11 @@ + spin_lock(&res->spinlock); + res->state &= ~DLM_LOCK_RES_IN_PROGRESS; + lock->convert_pending = 0; +- /* if it failed, move it back to granted queue. +- * if master returns DLM_NORMAL and then down before sending ast, +- * it may have already been moved to granted queue, reset to +- * DLM_RECOVERING and retry convert */ ++ /* if it failed, move it back to granted queue */ + if (status != DLM_NORMAL) { + if (status != DLM_NOTQUEUED) + dlm_error(status); + dlm_revert_pending_convert(res, lock); +- } else if ((res->state & DLM_LOCK_RES_RECOVERING) || +- (old_owner != res->owner)) { +- mlog(0, "res %.*s is in recovering or has been recovered.\n", +- res->lockname.len, res->lockname.name); +- status = DLM_RECOVERING; + } + bail: + spin_unlock(&res->spinlock); +diff -Nur linux-4.1.23.orig/fs/ocfs2/dlm/dlmrecovery.c linux-4.1.23/fs/ocfs2/dlm/dlmrecovery.c +--- linux-4.1.23.orig/fs/ocfs2/dlm/dlmrecovery.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/ocfs2/dlm/dlmrecovery.c 2016-05-02 22:53:59.000000000 +0200 +@@ -2064,6 +2064,7 @@ + dlm_lock_get(lock); + if (lock->convert_pending) { + /* move converting lock back to granted */ ++ BUG_ON(i != DLM_CONVERTING_LIST); + mlog(0, "node died with convert pending " + "on %.*s. move back to granted list.\n", + res->lockname.len, res->lockname.name); +diff -Nur linux-4.1.23.orig/fs/open.c linux-4.1.23/fs/open.c +--- linux-4.1.23.orig/fs/open.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/open.c 2016-05-02 22:53:59.000000000 +0200 +@@ -987,12 +987,14 @@ + EXPORT_SYMBOL(filp_open); + + struct file *file_open_root(struct dentry *dentry, struct vfsmount *mnt, +- const char *filename, int flags, umode_t mode) ++ const char *filename, int flags) + { + struct open_flags op; +- int err = build_open_flags(flags, mode, &op); ++ int err = build_open_flags(flags, 0, &op); + if (err) + return ERR_PTR(err); ++ if (flags & O_CREAT) ++ return ERR_PTR(-EINVAL); + return do_file_open_root(dentry, mnt, filename, &op); + } + EXPORT_SYMBOL(file_open_root); +diff -Nur linux-4.1.23.orig/fs/overlayfs/inode.c linux-4.1.23/fs/overlayfs/inode.c +--- linux-4.1.23.orig/fs/overlayfs/inode.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/overlayfs/inode.c 2016-05-02 22:53:59.000000000 +0200 +@@ -62,15 +62,15 @@ + if (err) + goto out; + +- err = ovl_copy_up(dentry); +- if (!err) { +- upperdentry = ovl_dentry_upper(dentry); +- ++ upperdentry = ovl_dentry_upper(dentry); ++ if (upperdentry) { + mutex_lock(&upperdentry->d_inode->i_mutex); + err = notify_change(upperdentry, attr, NULL); + if (!err) + ovl_copyattr(upperdentry->d_inode, dentry->d_inode); + mutex_unlock(&upperdentry->d_inode->i_mutex); ++ } else { ++ err = ovl_copy_up_last(dentry, attr, false); + } + ovl_drop_write(dentry); + out: +diff -Nur linux-4.1.23.orig/fs/proc/array.c linux-4.1.23/fs/proc/array.c +--- linux-4.1.23.orig/fs/proc/array.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/proc/array.c 2016-05-02 22:53:59.000000000 +0200 +@@ -384,7 +384,7 @@ + + state = *get_task_state(task); + vsize = eip = esp = 0; +- permitted = ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS | PTRACE_MODE_NOAUDIT); ++ permitted = ptrace_may_access(task, PTRACE_MODE_READ | PTRACE_MODE_NOAUDIT); + mm = get_task_mm(task); + if (mm) { + vsize = task_vsize(mm); +diff -Nur linux-4.1.23.orig/fs/proc/base.c linux-4.1.23/fs/proc/base.c +--- linux-4.1.23.orig/fs/proc/base.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/proc/base.c 2016-05-02 22:53:59.000000000 +0200 +@@ -211,7 +211,7 @@ + static int proc_pid_auxv(struct seq_file *m, struct pid_namespace *ns, + struct pid *pid, struct task_struct *task) + { +- struct mm_struct *mm = mm_access(task, PTRACE_MODE_READ_FSCREDS); ++ struct mm_struct *mm = mm_access(task, PTRACE_MODE_READ); + if (mm && !IS_ERR(mm)) { + unsigned int nwords = 0; + do { +@@ -238,8 +238,7 @@ + + wchan = get_wchan(task); + +- if (wchan && ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS) +- && !lookup_symbol_name(wchan, symname)) ++ if (wchan && ptrace_may_access(task, PTRACE_MODE_READ) && !lookup_symbol_name(wchan, symname)) + seq_printf(m, "%s", symname); + else + seq_putc(m, '0'); +@@ -253,7 +252,7 @@ + int err = mutex_lock_killable(&task->signal->cred_guard_mutex); + if (err) + return err; +- if (!ptrace_may_access(task, PTRACE_MODE_ATTACH_FSCREDS)) { ++ if (!ptrace_may_access(task, PTRACE_MODE_ATTACH)) { + mutex_unlock(&task->signal->cred_guard_mutex); + return -EPERM; + } +@@ -503,7 +502,7 @@ + */ + task = get_proc_task(inode); + if (task) { +- allowed = ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS); ++ allowed = ptrace_may_access(task, PTRACE_MODE_READ); + put_task_struct(task); + } + return allowed; +@@ -538,7 +537,7 @@ + return true; + if (in_group_p(pid->pid_gid)) + return true; +- return ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS); ++ return ptrace_may_access(task, PTRACE_MODE_READ); + } + + +@@ -615,7 +614,7 @@ + struct mm_struct *mm = ERR_PTR(-ESRCH); + + if (task) { +- mm = mm_access(task, mode | PTRACE_MODE_FSCREDS); ++ mm = mm_access(task, mode); + put_task_struct(task); + + if (!IS_ERR_OR_NULL(mm)) { +@@ -1677,7 +1676,7 @@ + if (!task) + goto out_notask; + +- mm = mm_access(task, PTRACE_MODE_READ_FSCREDS); ++ mm = mm_access(task, PTRACE_MODE_READ); + if (IS_ERR_OR_NULL(mm)) + goto out; + +@@ -1809,7 +1808,7 @@ + goto out; + + result = -EACCES; +- if (!ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS)) ++ if (!ptrace_may_access(task, PTRACE_MODE_READ)) + goto out_put_task; + + result = -ENOENT; +@@ -1866,7 +1865,7 @@ + goto out; + + ret = -EACCES; +- if (!ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS)) ++ if (!ptrace_may_access(task, PTRACE_MODE_READ)) + goto out_put_task; + + ret = 0; +@@ -2346,7 +2345,7 @@ + if (result) + return result; + +- if (!ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS)) { ++ if (!ptrace_may_access(task, PTRACE_MODE_READ)) { + result = -EACCES; + goto out_unlock; + } +diff -Nur linux-4.1.23.orig/fs/proc/namespaces.c linux-4.1.23/fs/proc/namespaces.c +--- linux-4.1.23.orig/fs/proc/namespaces.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/proc/namespaces.c 2016-05-02 22:53:59.000000000 +0200 +@@ -42,7 +42,7 @@ + if (!task) + return error; + +- if (ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS)) { ++ if (ptrace_may_access(task, PTRACE_MODE_READ)) { + error = ns_get_path(&ns_path, task, ns_ops); + if (!error) + nd_jump_link(nd, &ns_path); +@@ -63,7 +63,7 @@ + if (!task) + return res; + +- if (ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS)) { ++ if (ptrace_may_access(task, PTRACE_MODE_READ)) { + res = ns_get_name(name, sizeof(name), task, ns_ops); + if (res >= 0) + res = readlink_copy(buffer, buflen, name); +diff -Nur linux-4.1.23.orig/fs/proc_namespace.c linux-4.1.23/fs/proc_namespace.c +--- linux-4.1.23.orig/fs/proc_namespace.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/proc_namespace.c 2016-05-02 22:53:59.000000000 +0200 +@@ -196,8 +196,6 @@ + if (sb->s_op->show_devname) { + seq_puts(m, "device "); + err = sb->s_op->show_devname(m, mnt_path.dentry); +- if (err) +- goto out; + } else { + if (r->mnt_devname) { + seq_puts(m, "device "); +diff -Nur linux-4.1.23.orig/fs/quota/dquot.c linux-4.1.23/fs/quota/dquot.c +--- linux-4.1.23.orig/fs/quota/dquot.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/quota/dquot.c 2016-05-02 22:53:59.000000000 +0200 +@@ -1393,7 +1393,7 @@ + static void __dquot_initialize(struct inode *inode, int type) + { + int cnt, init_needed = 0; +- struct dquot **dquots, *got[MAXQUOTAS] = {}; ++ struct dquot **dquots, *got[MAXQUOTAS]; + struct super_block *sb = inode->i_sb; + qsize_t rsv; + +@@ -1408,6 +1408,7 @@ + kprojid_t projid; + int rc; + ++ got[cnt] = NULL; + if (type != -1 && cnt != type) + continue; + /* +diff -Nur linux-4.1.23.orig/fs/splice.c linux-4.1.23/fs/splice.c +--- linux-4.1.23.orig/fs/splice.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/splice.c 2016-05-02 22:53:59.000000000 +0200 +@@ -185,9 +185,6 @@ + unsigned int spd_pages = spd->nr_pages; + int ret, do_wakeup, page_nr; + +- if (!spd_pages) +- return 0; +- + ret = 0; + do_wakeup = 0; + page_nr = 0; +diff -Nur linux-4.1.23.orig/fs/xfs/xfs_attr_list.c linux-4.1.23/fs/xfs/xfs_attr_list.c +--- linux-4.1.23.orig/fs/xfs/xfs_attr_list.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/fs/xfs/xfs_attr_list.c 2016-05-02 22:53:59.000000000 +0200 +@@ -202,10 +202,8 @@ + sbp->namelen, + sbp->valuelen, + &sbp->name[sbp->namelen]); +- if (error) { +- kmem_free(sbuf); ++ if (error) + return error; +- } + if (context->seen_enough) + break; + cursor->offset++; +@@ -456,13 +454,14 @@ + args.rmtblkcnt = xfs_attr3_rmt_blocks( + args.dp->i_mount, valuelen); + retval = xfs_attr_rmtval_get(&args); +- if (!retval) +- retval = context->put_listent(context, +- entry->flags, +- name_rmt->name, +- (int)name_rmt->namelen, +- valuelen, +- args.value); ++ if (retval) ++ return retval; ++ retval = context->put_listent(context, ++ entry->flags, ++ name_rmt->name, ++ (int)name_rmt->namelen, ++ valuelen, ++ args.value); + kmem_free(args.value); + } else { + retval = context->put_listent(context, +diff -Nur linux-4.1.23.orig/include/asm-generic/bitops/lock.h linux-4.1.23/include/asm-generic/bitops/lock.h +--- linux-4.1.23.orig/include/asm-generic/bitops/lock.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/include/asm-generic/bitops/lock.h 2016-05-02 22:53:59.000000000 +0200 +@@ -29,16 +29,16 @@ + * @nr: the bit to set + * @addr: the address to start counting from + * +- * A weaker form of clear_bit_unlock() as used by __bit_lock_unlock(). If all +- * the bits in the word are protected by this lock some archs can use weaker +- * ops to safely unlock. +- * +- * See for example x86's implementation. ++ * This operation is like clear_bit_unlock, however it is not atomic. ++ * It does provide release barrier semantics so it can be used to unlock ++ * a bit lock, however it would only be used if no other CPU can modify ++ * any bits in the memory until the lock is released (a good example is ++ * if the bit lock itself protects access to the other bits in the word). + */ + #define __clear_bit_unlock(nr, addr) \ + do { \ +- smp_mb__before_atomic(); \ +- clear_bit(nr, addr); \ ++ smp_mb(); \ ++ __clear_bit(nr, addr); \ + } while (0) + + #endif /* _ASM_GENERIC_BITOPS_LOCK_H_ */ +diff -Nur linux-4.1.23.orig/include/drm/drmP.h linux-4.1.23/include/drm/drmP.h +--- linux-4.1.23.orig/include/drm/drmP.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/include/drm/drmP.h 2016-05-02 22:53:59.000000000 +0200 @@ -567,6 +567,13 @@ int (*gem_open_object) (struct drm_gem_object *, struct drm_file *); void (*gem_close_object) (struct drm_gem_object *, struct drm_file *); @@ -314635,9 +320846,9 @@ diff -Nur linux-4.1.22.orig/include/drm/drmP.h linux-4.1.22/include/drm/drmP.h /* prime: */ /* export handle -> fd (see drm_gem_prime_handle_to_fd() helper) */ int (*prime_handle_to_fd)(struct drm_device *dev, struct drm_file *file_priv, -diff -Nur linux-4.1.22.orig/include/drm/drm_crtc.h linux-4.1.22/include/drm/drm_crtc.h ---- linux-4.1.22.orig/include/drm/drm_crtc.h 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/include/drm/drm_crtc.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/include/drm/drm_crtc.h linux-4.1.23/include/drm/drm_crtc.h +--- linux-4.1.23.orig/include/drm/drm_crtc.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/include/drm/drm_crtc.h 2016-05-02 22:53:59.000000000 +0200 @@ -1538,4 +1538,19 @@ list_for_each_entry(plane, planelist, head) \ if (plane->type == DRM_PLANE_TYPE_OVERLAY) @@ -314658,9 +320869,86 @@ diff -Nur linux-4.1.22.orig/include/drm/drm_crtc.h linux-4.1.22/include/drm/drm_ + list_for_each_entry(fb, &(dev)->mode_config.fb_list, head) + #endif /* __DRM_CRTC_H__ */ -diff -Nur linux-4.1.22.orig/include/dt-bindings/clock/bcm2835.h linux-4.1.22/include/dt-bindings/clock/bcm2835.h ---- linux-4.1.22.orig/include/dt-bindings/clock/bcm2835.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/include/dt-bindings/clock/bcm2835.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/include/drm/drm_dp_mst_helper.h linux-4.1.23/include/drm/drm_dp_mst_helper.h +--- linux-4.1.23.orig/include/drm/drm_dp_mst_helper.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/include/drm/drm_dp_mst_helper.h 2016-05-02 22:53:59.000000000 +0200 +@@ -44,6 +44,8 @@ + /** + * struct drm_dp_mst_port - MST port + * @kref: reference count for this port. ++ * @guid_valid: for DP 1.2 devices if we have validated the GUID. ++ * @guid: guid for DP 1.2 device on this port. + * @port_num: port number + * @input: if this port is an input port. + * @mcs: message capability status - DP 1.2 spec. +@@ -68,6 +70,10 @@ + struct drm_dp_mst_port { + struct kref kref; + ++ /* if dpcd 1.2 device is on this port - its GUID info */ ++ bool guid_valid; ++ u8 guid[16]; ++ + u8 port_num; + bool input; + bool mcs; +@@ -103,12 +109,10 @@ + * @tx_slots: transmission slots for this device. + * @last_seqno: last sequence number used to talk to this. + * @link_address_sent: if a link address message has been sent to this device yet. +- * @guid: guid for DP 1.2 branch device. port under this branch can be +- * identified by port #. + * + * This structure represents an MST branch device, there is one +- * primary branch device at the root, along with any other branches connected +- * to downstream port of parent branches. ++ * primary branch device at the root, along with any others connected ++ * to downstream ports + */ + struct drm_dp_mst_branch { + struct kref kref; +@@ -127,9 +131,6 @@ + struct drm_dp_sideband_msg_tx *tx_slots[2]; + int last_seqno; + bool link_address_sent; +- +- /* global unique identifier to identify branch devices */ +- u8 guid[16]; + }; + + +@@ -403,9 +404,11 @@ + * @conn_base_id: DRM connector ID this mgr is connected to. + * @down_rep_recv: msg receiver state for down replies. + * @up_req_recv: msg receiver state for up requests. +- * @lock: protects mst state, primary, dpcd. ++ * @lock: protects mst state, primary, guid, dpcd. + * @mst_state: if this manager is enabled for an MST capable port. + * @mst_primary: pointer to the primary branch device. ++ * @guid_valid: GUID valid for the primary branch device. ++ * @guid: GUID for primary port. + * @dpcd: cache of DPCD for primary port. + * @pbn_div: PBN to slots divisor. + * +@@ -427,11 +430,13 @@ + struct drm_dp_sideband_msg_rx up_req_recv; + + /* pointer to info about the initial MST device */ +- struct mutex lock; /* protects mst_state + primary + dpcd */ ++ struct mutex lock; /* protects mst_state + primary + guid + dpcd */ + + bool mst_state; + struct drm_dp_mst_branch *mst_primary; +- ++ /* primary MST device GUID */ ++ bool guid_valid; ++ u8 guid[16]; + u8 dpcd[DP_RECEIVER_CAP_SIZE]; + u8 sink_count; + int pbn_div; +diff -Nur linux-4.1.23.orig/include/dt-bindings/clock/bcm2835.h linux-4.1.23/include/dt-bindings/clock/bcm2835.h +--- linux-4.1.23.orig/include/dt-bindings/clock/bcm2835.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/include/dt-bindings/clock/bcm2835.h 2016-05-02 22:53:59.000000000 +0200 @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2015 Broadcom Corporation @@ -314709,9 +320997,28 @@ diff -Nur linux-4.1.22.orig/include/dt-bindings/clock/bcm2835.h linux-4.1.22/inc +#define BCM2835_CLOCK_PERI_IMAGE 29 + +#define BCM2835_CLOCK_COUNT 30 -diff -Nur linux-4.1.22.orig/include/linux/broadcom/bcm2835_smi.h linux-4.1.22/include/linux/broadcom/bcm2835_smi.h ---- linux-4.1.22.orig/include/linux/broadcom/bcm2835_smi.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/include/linux/broadcom/bcm2835_smi.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/include/linux/atmel-mci.h linux-4.1.23/include/linux/atmel-mci.h +--- linux-4.1.23.orig/include/linux/atmel-mci.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/include/linux/atmel-mci.h 2016-05-02 22:53:59.000000000 +0200 +@@ -2,7 +2,6 @@ + #define __LINUX_ATMEL_MCI_H + + #include <linux/types.h> +-#include <linux/dmaengine.h> + + #define ATMCI_MAX_NR_SLOTS 2 + +@@ -38,7 +37,6 @@ + */ + struct mci_platform_data { + struct mci_dma_data *dma_slave; +- dma_filter_fn dma_filter; + struct mci_slot_pdata slot[ATMCI_MAX_NR_SLOTS]; + }; + +diff -Nur linux-4.1.23.orig/include/linux/broadcom/bcm2835_smi.h linux-4.1.23/include/linux/broadcom/bcm2835_smi.h +--- linux-4.1.23.orig/include/linux/broadcom/bcm2835_smi.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/include/linux/broadcom/bcm2835_smi.h 2016-05-02 22:53:59.000000000 +0200 @@ -0,0 +1,391 @@ +/** + * Declarations and definitions for Broadcom's Secondary Memory Interface @@ -315104,9 +321411,9 @@ diff -Nur linux-4.1.22.orig/include/linux/broadcom/bcm2835_smi.h linux-4.1.22/in +#endif /* BCM2835_SMI_IMPLEMENTATION */ + +#endif /* BCM2835_SMI_H */ -diff -Nur linux-4.1.22.orig/include/linux/broadcom/vc_cma.h linux-4.1.22/include/linux/broadcom/vc_cma.h ---- linux-4.1.22.orig/include/linux/broadcom/vc_cma.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/include/linux/broadcom/vc_cma.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/include/linux/broadcom/vc_cma.h linux-4.1.23/include/linux/broadcom/vc_cma.h +--- linux-4.1.23.orig/include/linux/broadcom/vc_cma.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/include/linux/broadcom/vc_cma.h 2016-05-02 22:53:59.000000000 +0200 @@ -0,0 +1,29 @@ +/***************************************************************************** +* Copyright 2012 Broadcom Corporation. All rights reserved. @@ -315137,9 +321444,9 @@ diff -Nur linux-4.1.22.orig/include/linux/broadcom/vc_cma.h linux-4.1.22/include +#endif + +#endif /* VC_CMA_H */ -diff -Nur linux-4.1.22.orig/include/linux/broadcom/vc_mem.h linux-4.1.22/include/linux/broadcom/vc_mem.h ---- linux-4.1.22.orig/include/linux/broadcom/vc_mem.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/include/linux/broadcom/vc_mem.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/include/linux/broadcom/vc_mem.h linux-4.1.23/include/linux/broadcom/vc_mem.h +--- linux-4.1.23.orig/include/linux/broadcom/vc_mem.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/include/linux/broadcom/vc_mem.h 2016-05-02 22:53:59.000000000 +0200 @@ -0,0 +1,35 @@ +/***************************************************************************** +* Copyright 2010 - 2011 Broadcom Corporation. All rights reserved. @@ -315176,9 +321483,87 @@ diff -Nur linux-4.1.22.orig/include/linux/broadcom/vc_mem.h linux-4.1.22/include +#endif + +#endif /* _VC_MEM_H */ -diff -Nur linux-4.1.22.orig/include/linux/leds.h linux-4.1.22/include/linux/leds.h ---- linux-4.1.22.orig/include/linux/leds.h 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/include/linux/leds.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/include/linux/efi.h linux-4.1.23/include/linux/efi.h +--- linux-4.1.23.orig/include/linux/efi.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/include/linux/efi.h 2016-05-02 22:53:59.000000000 +0200 +@@ -1162,10 +1162,7 @@ + struct efivar_entry *efivar_entry_find(efi_char16_t *name, efi_guid_t guid, + struct list_head *head, bool remove); + +-bool efivar_validate(efi_guid_t vendor, efi_char16_t *var_name, u8 *data, +- unsigned long data_size); +-bool efivar_variable_is_removable(efi_guid_t vendor, const char *name, +- size_t len); ++bool efivar_validate(efi_char16_t *var_name, u8 *data, unsigned long len); + + extern struct work_struct efivar_work; + void efivar_run_worker(void); +diff -Nur linux-4.1.23.orig/include/linux/fs.h linux-4.1.23/include/linux/fs.h +--- linux-4.1.23.orig/include/linux/fs.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/include/linux/fs.h 2016-05-02 22:53:59.000000000 +0200 +@@ -70,7 +70,6 @@ + struct buffer_head *bh_result, int create); + typedef void (dio_iodone_t)(struct kiocb *iocb, loff_t offset, + ssize_t bytes, void *private); +-typedef void (dax_iodone_t)(struct buffer_head *bh_map, int uptodate); + + #define MAY_EXEC 0x00000001 + #define MAY_WRITE 0x00000002 +@@ -2202,7 +2201,7 @@ + extern struct file *file_open_name(struct filename *, int, umode_t); + extern struct file *filp_open(const char *, int, umode_t); + extern struct file *file_open_root(struct dentry *, struct vfsmount *, +- const char *, int, umode_t); ++ const char *, int); + extern struct file * dentry_open(const struct path *, int, const struct cred *); + extern int filp_close(struct file *, fl_owner_t id); + +@@ -2636,10 +2635,9 @@ + int dax_clear_blocks(struct inode *, sector_t block, long size); + int dax_zero_page_range(struct inode *, loff_t from, unsigned len, get_block_t); + int dax_truncate_page(struct inode *, loff_t from, get_block_t); +-int dax_fault(struct vm_area_struct *, struct vm_fault *, get_block_t, +- dax_iodone_t); ++int dax_fault(struct vm_area_struct *, struct vm_fault *, get_block_t); + int dax_pfn_mkwrite(struct vm_area_struct *, struct vm_fault *); +-#define dax_mkwrite(vma, vmf, gb, iod) dax_fault(vma, vmf, gb, iod) ++#define dax_mkwrite(vma, vmf, gb) dax_fault(vma, vmf, gb) + + #ifdef CONFIG_BLOCK + typedef void (dio_submit_t)(int rw, struct bio *bio, struct inode *inode, +diff -Nur linux-4.1.23.orig/include/linux/kernel.h linux-4.1.23/include/linux/kernel.h +--- linux-4.1.23.orig/include/linux/kernel.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/include/linux/kernel.h 2016-05-02 22:53:59.000000000 +0200 +@@ -606,7 +606,7 @@ + + #define do_trace_printk(fmt, args...) \ + do { \ +- static const char *trace_printk_fmt __used \ ++ static const char *trace_printk_fmt \ + __attribute__((section("__trace_printk_fmt"))) = \ + __builtin_constant_p(fmt) ? fmt : NULL; \ + \ +@@ -650,7 +650,7 @@ + */ + + #define trace_puts(str) ({ \ +- static const char *trace_printk_fmt __used \ ++ static const char *trace_printk_fmt \ + __attribute__((section("__trace_printk_fmt"))) = \ + __builtin_constant_p(str) ? str : NULL; \ + \ +@@ -672,7 +672,7 @@ + #define ftrace_vprintk(fmt, vargs) \ + do { \ + if (__builtin_constant_p(fmt)) { \ +- static const char *trace_printk_fmt __used \ ++ static const char *trace_printk_fmt \ + __attribute__((section("__trace_printk_fmt"))) = \ + __builtin_constant_p(fmt) ? fmt : NULL; \ + \ +diff -Nur linux-4.1.23.orig/include/linux/leds.h linux-4.1.23/include/linux/leds.h +--- linux-4.1.23.orig/include/linux/leds.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/include/linux/leds.h 2016-05-02 22:53:59.000000000 +0200 @@ -47,6 +47,9 @@ #define SET_BRIGHTNESS_ASYNC (1 << 21) #define SET_BRIGHTNESS_SYNC (1 << 22) @@ -315189,9 +321574,9 @@ diff -Nur linux-4.1.22.orig/include/linux/leds.h linux-4.1.22/include/linux/leds /* Set LED brightness level */ /* Must not sleep, use a workqueue if needed */ -diff -Nur linux-4.1.22.orig/include/linux/mfd/rpisense/core.h linux-4.1.22/include/linux/mfd/rpisense/core.h ---- linux-4.1.22.orig/include/linux/mfd/rpisense/core.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/include/linux/mfd/rpisense/core.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/include/linux/mfd/rpisense/core.h linux-4.1.23/include/linux/mfd/rpisense/core.h +--- linux-4.1.23.orig/include/linux/mfd/rpisense/core.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/include/linux/mfd/rpisense/core.h 2016-05-02 22:53:59.000000000 +0200 @@ -0,0 +1,47 @@ +/* + * Raspberry Pi Sense HAT core driver @@ -315240,9 +321625,9 @@ diff -Nur linux-4.1.22.orig/include/linux/mfd/rpisense/core.h linux-4.1.22/inclu +int rpisense_block_write(struct rpisense *rpisense, const char *buf, int count); + +#endif -diff -Nur linux-4.1.22.orig/include/linux/mfd/rpisense/framebuffer.h linux-4.1.22/include/linux/mfd/rpisense/framebuffer.h ---- linux-4.1.22.orig/include/linux/mfd/rpisense/framebuffer.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/include/linux/mfd/rpisense/framebuffer.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/include/linux/mfd/rpisense/framebuffer.h linux-4.1.23/include/linux/mfd/rpisense/framebuffer.h +--- linux-4.1.23.orig/include/linux/mfd/rpisense/framebuffer.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/include/linux/mfd/rpisense/framebuffer.h 2016-05-02 22:53:59.000000000 +0200 @@ -0,0 +1,32 @@ +/* + * Raspberry Pi Sense HAT framebuffer driver @@ -315276,9 +321661,9 @@ diff -Nur linux-4.1.22.orig/include/linux/mfd/rpisense/framebuffer.h linux-4.1.2 +}; + +#endif -diff -Nur linux-4.1.22.orig/include/linux/mfd/rpisense/joystick.h linux-4.1.22/include/linux/mfd/rpisense/joystick.h ---- linux-4.1.22.orig/include/linux/mfd/rpisense/joystick.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/include/linux/mfd/rpisense/joystick.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/include/linux/mfd/rpisense/joystick.h linux-4.1.23/include/linux/mfd/rpisense/joystick.h +--- linux-4.1.23.orig/include/linux/mfd/rpisense/joystick.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/include/linux/mfd/rpisense/joystick.h 2016-05-02 22:53:59.000000000 +0200 @@ -0,0 +1,35 @@ +/* + * Raspberry Pi Sense HAT joystick driver @@ -315315,9 +321700,31 @@ diff -Nur linux-4.1.22.orig/include/linux/mfd/rpisense/joystick.h linux-4.1.22/i + + +#endif -diff -Nur linux-4.1.22.orig/include/linux/mmc/host.h linux-4.1.22/include/linux/mmc/host.h ---- linux-4.1.22.orig/include/linux/mmc/host.h 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/include/linux/mmc/host.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/include/linux/mm.h linux-4.1.23/include/linux/mm.h +--- linux-4.1.23.orig/include/linux/mm.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/include/linux/mm.h 2016-05-02 22:53:59.000000000 +0200 +@@ -588,7 +588,7 @@ + return page[1].compound_dtor; + } + +-static inline unsigned int compound_order(struct page *page) ++static inline int compound_order(struct page *page) + { + if (!PageHead(page)) + return 0; +@@ -1771,8 +1771,7 @@ + extern void si_meminfo_node(struct sysinfo *val, int nid); + + extern __printf(3, 4) +-void warn_alloc_failed(gfp_t gfp_mask, unsigned int order, +- const char *fmt, ...); ++void warn_alloc_failed(gfp_t gfp_mask, int order, const char *fmt, ...); + + extern void setup_per_cpu_pageset(void); + +diff -Nur linux-4.1.23.orig/include/linux/mmc/host.h linux-4.1.23/include/linux/mmc/host.h +--- linux-4.1.23.orig/include/linux/mmc/host.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/include/linux/mmc/host.h 2016-05-02 22:53:59.000000000 +0200 @@ -285,6 +285,7 @@ MMC_CAP2_HS400_1_2V) #define MMC_CAP2_HSX00_1_2V (MMC_CAP2_HS200_1_2V_SDR | MMC_CAP2_HS400_1_2V) @@ -315326,9 +321733,67 @@ diff -Nur linux-4.1.22.orig/include/linux/mmc/host.h linux-4.1.22/include/linux/ mmc_pm_flag_t pm_caps; /* supported pm features */ -diff -Nur linux-4.1.22.orig/include/linux/platform_data/bcm2708.h linux-4.1.22/include/linux/platform_data/bcm2708.h ---- linux-4.1.22.orig/include/linux/platform_data/bcm2708.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/include/linux/platform_data/bcm2708.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/include/linux/module.h linux-4.1.23/include/linux/module.h +--- linux-4.1.23.orig/include/linux/module.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/include/linux/module.h 2016-05-02 22:53:59.000000000 +0200 +@@ -210,12 +210,6 @@ + MODULE_STATE_UNFORMED, /* Still setting it up. */ + }; + +-struct mod_kallsyms { +- Elf_Sym *symtab; +- unsigned int num_symtab; +- char *strtab; +-}; +- + struct module { + enum module_state state; + +@@ -303,9 +297,14 @@ + #endif + + #ifdef CONFIG_KALLSYMS +- /* Protected by RCU and/or module_mutex: use rcu_dereference() */ +- struct mod_kallsyms *kallsyms; +- struct mod_kallsyms core_kallsyms; ++ /* ++ * We keep the symbol and string tables for kallsyms. ++ * The core_* fields below are temporary, loader-only (they ++ * could really be discarded after module init). ++ */ ++ Elf_Sym *symtab, *core_symtab; ++ unsigned int num_symtab, core_num_syms; ++ char *strtab, *core_strtab; + + /* Section attributes */ + struct module_sect_attrs *sect_attrs; +diff -Nur linux-4.1.23.orig/include/linux/pageblock-flags.h linux-4.1.23/include/linux/pageblock-flags.h +--- linux-4.1.23.orig/include/linux/pageblock-flags.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/include/linux/pageblock-flags.h 2016-05-02 22:53:59.000000000 +0200 +@@ -44,7 +44,7 @@ + #ifdef CONFIG_HUGETLB_PAGE_SIZE_VARIABLE + + /* Huge page sizes are variable */ +-extern unsigned int pageblock_order; ++extern int pageblock_order; + + #else /* CONFIG_HUGETLB_PAGE_SIZE_VARIABLE */ + +diff -Nur linux-4.1.23.orig/include/linux/pci.h linux-4.1.23/include/linux/pci.h +--- linux-4.1.23.orig/include/linux/pci.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/include/linux/pci.h 2016-05-02 22:53:59.000000000 +0200 +@@ -357,8 +357,6 @@ + unsigned int broken_intx_masking:1; + unsigned int io_window_1k:1; /* Intel P2P bridge 1K I/O windows */ + unsigned int irq_managed:1; +- unsigned int has_secondary_link:1; +- unsigned int non_compliant_bars:1; /* broken BARs; ignore them */ + pci_dev_flags_t dev_flags; + atomic_t enable_cnt; /* pci_enable_device has been called */ + +diff -Nur linux-4.1.23.orig/include/linux/platform_data/bcm2708.h linux-4.1.23/include/linux/platform_data/bcm2708.h +--- linux-4.1.23.orig/include/linux/platform_data/bcm2708.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/include/linux/platform_data/bcm2708.h 2016-05-02 22:53:59.000000000 +0200 @@ -0,0 +1,23 @@ +/* + * include/linux/platform_data/bcm2708.h @@ -315353,9 +321818,9 @@ diff -Nur linux-4.1.22.orig/include/linux/platform_data/bcm2708.h linux-4.1.22/i + bcm2708_gpio_pull_t value); + +#endif -diff -Nur linux-4.1.22.orig/include/linux/platform_data/dma-bcm2708.h linux-4.1.22/include/linux/platform_data/dma-bcm2708.h ---- linux-4.1.22.orig/include/linux/platform_data/dma-bcm2708.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/include/linux/platform_data/dma-bcm2708.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/include/linux/platform_data/dma-bcm2708.h linux-4.1.23/include/linux/platform_data/dma-bcm2708.h +--- linux-4.1.23.orig/include/linux/platform_data/dma-bcm2708.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/include/linux/platform_data/dma-bcm2708.h 2016-05-02 22:53:59.000000000 +0200 @@ -0,0 +1,127 @@ +/* + * Copyright (C) 2010 Broadcom @@ -315484,9 +321949,57 @@ diff -Nur linux-4.1.22.orig/include/linux/platform_data/dma-bcm2708.h linux-4.1. +#endif /* CONFIG_DMA_BCM2708_LEGACY */ + +#endif /* _PLAT_BCM2708_DMA_H */ -diff -Nur linux-4.1.22.orig/include/linux/serial_core.h linux-4.1.22/include/linux/serial_core.h ---- linux-4.1.22.orig/include/linux/serial_core.h 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/include/linux/serial_core.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/include/linux/poison.h linux-4.1.23/include/linux/poison.h +--- linux-4.1.23.orig/include/linux/poison.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/include/linux/poison.h 2016-05-02 22:53:59.000000000 +0200 +@@ -19,8 +19,8 @@ + * under normal circumstances, used to verify that nobody uses + * non-initialized list entries. + */ +-#define LIST_POISON1 ((void *) 0x100 + POISON_POINTER_DELTA) +-#define LIST_POISON2 ((void *) 0x200 + POISON_POINTER_DELTA) ++#define LIST_POISON1 ((void *) 0x00100100 + POISON_POINTER_DELTA) ++#define LIST_POISON2 ((void *) 0x00200200 + POISON_POINTER_DELTA) + + /********** include/linux/timer.h **********/ + /* +diff -Nur linux-4.1.23.orig/include/linux/ptrace.h linux-4.1.23/include/linux/ptrace.h +--- linux-4.1.23.orig/include/linux/ptrace.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/include/linux/ptrace.h 2016-05-02 22:53:59.000000000 +0200 +@@ -56,29 +56,7 @@ + #define PTRACE_MODE_READ 0x01 + #define PTRACE_MODE_ATTACH 0x02 + #define PTRACE_MODE_NOAUDIT 0x04 +-#define PTRACE_MODE_FSCREDS 0x08 +-#define PTRACE_MODE_REALCREDS 0x10 +- +-/* shorthands for READ/ATTACH and FSCREDS/REALCREDS combinations */ +-#define PTRACE_MODE_READ_FSCREDS (PTRACE_MODE_READ | PTRACE_MODE_FSCREDS) +-#define PTRACE_MODE_READ_REALCREDS (PTRACE_MODE_READ | PTRACE_MODE_REALCREDS) +-#define PTRACE_MODE_ATTACH_FSCREDS (PTRACE_MODE_ATTACH | PTRACE_MODE_FSCREDS) +-#define PTRACE_MODE_ATTACH_REALCREDS (PTRACE_MODE_ATTACH | PTRACE_MODE_REALCREDS) +- +-/** +- * ptrace_may_access - check whether the caller is permitted to access +- * a target task. +- * @task: target task +- * @mode: selects type of access and caller credentials +- * +- * Returns true on success, false on denial. +- * +- * One of the flags PTRACE_MODE_FSCREDS and PTRACE_MODE_REALCREDS must +- * be set in @mode to specify whether the access was requested through +- * a filesystem syscall (should use effective capabilities and fsuid +- * of the caller) or through an explicit syscall such as +- * process_vm_writev or ptrace (and should use the real credentials). +- */ ++/* Returns true on success, false on denial. */ + extern bool ptrace_may_access(struct task_struct *task, unsigned int mode); + + static inline int ptrace_reparented(struct task_struct *child) +diff -Nur linux-4.1.23.orig/include/linux/serial_core.h linux-4.1.23/include/linux/serial_core.h +--- linux-4.1.23.orig/include/linux/serial_core.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/include/linux/serial_core.h 2016-05-02 22:53:59.000000000 +0200 @@ -397,7 +397,7 @@ static inline int uart_tx_stopped(struct uart_port *port) { @@ -315496,9 +322009,52 @@ diff -Nur linux-4.1.22.orig/include/linux/serial_core.h linux-4.1.22/include/lin return 1; return 0; } -diff -Nur linux-4.1.22.orig/include/linux/vmstat.h linux-4.1.22/include/linux/vmstat.h ---- linux-4.1.22.orig/include/linux/vmstat.h 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/include/linux/vmstat.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/include/linux/thermal.h linux-4.1.23/include/linux/thermal.h +--- linux-4.1.23.orig/include/linux/thermal.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/include/linux/thermal.h 2016-05-02 22:53:59.000000000 +0200 +@@ -146,7 +146,6 @@ + * @trip_hyst_attrs: attributes for trip points for sysfs: trip hysteresis + * @devdata: private pointer for device private data + * @trips: number of trip points the thermal zone supports +- * @trips_disabled; bitmap for disabled trips + * @passive_delay: number of milliseconds to wait between polls when + * performing passive cooling. Currenty only used by the + * step-wise governor +@@ -183,7 +182,6 @@ + struct thermal_attr *trip_hyst_attrs; + void *devdata; + int trips; +- unsigned long trips_disabled; /* bitmap for disabled trips */ + int passive_delay; + int polling_delay; + int temperature; +diff -Nur linux-4.1.23.orig/include/linux/tty.h linux-4.1.23/include/linux/tty.h +--- linux-4.1.23.orig/include/linux/tty.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/include/linux/tty.h 2016-05-02 22:53:59.000000000 +0200 +@@ -592,7 +592,7 @@ + count = ld->ops->receive_buf2(ld->tty, p, f, count); + else { + count = min_t(int, count, ld->tty->receive_room); +- if (count && ld->ops->receive_buf) ++ if (count) + ld->ops->receive_buf(ld->tty, p, f, count); + } + return count; +diff -Nur linux-4.1.23.orig/include/linux/ucs2_string.h linux-4.1.23/include/linux/ucs2_string.h +--- linux-4.1.23.orig/include/linux/ucs2_string.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/include/linux/ucs2_string.h 2016-05-02 22:53:59.000000000 +0200 +@@ -11,8 +11,4 @@ + unsigned long ucs2_strsize(const ucs2_char_t *data, unsigned long maxlength); + int ucs2_strncmp(const ucs2_char_t *a, const ucs2_char_t *b, size_t len); + +-unsigned long ucs2_utf8size(const ucs2_char_t *src); +-unsigned long ucs2_as_utf8(u8 *dest, const ucs2_char_t *src, +- unsigned long maxlength); +- + #endif /* _LINUX_UCS2_STRING_H_ */ +diff -Nur linux-4.1.23.orig/include/linux/vmstat.h linux-4.1.23/include/linux/vmstat.h +--- linux-4.1.23.orig/include/linux/vmstat.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/include/linux/vmstat.h 2016-05-02 22:53:59.000000000 +0200 @@ -241,7 +241,11 @@ static inline void __dec_zone_state(struct zone *zone, enum zone_stat_item item) { @@ -315511,9 +322067,9 @@ diff -Nur linux-4.1.22.orig/include/linux/vmstat.h linux-4.1.22/include/linux/vm } static inline void __inc_zone_page_state(struct page *page, -diff -Nur linux-4.1.22.orig/include/linux/w1-gpio.h linux-4.1.22/include/linux/w1-gpio.h ---- linux-4.1.22.orig/include/linux/w1-gpio.h 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/include/linux/w1-gpio.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/include/linux/w1-gpio.h linux-4.1.23/include/linux/w1-gpio.h +--- linux-4.1.23.orig/include/linux/w1-gpio.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/include/linux/w1-gpio.h 2016-05-02 22:53:59.000000000 +0200 @@ -18,6 +18,7 @@ struct w1_gpio_platform_data { unsigned int pin; @@ -315522,10 +322078,10 @@ diff -Nur linux-4.1.22.orig/include/linux/w1-gpio.h linux-4.1.22/include/linux/w void (*enable_external_pullup)(int enable); unsigned int ext_pullup_enable_pin; unsigned int pullup_duration; -diff -Nur linux-4.1.22.orig/include/soc/bcm2835/raspberrypi-firmware.h linux-4.1.22/include/soc/bcm2835/raspberrypi-firmware.h ---- linux-4.1.22.orig/include/soc/bcm2835/raspberrypi-firmware.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/include/soc/bcm2835/raspberrypi-firmware.h 2016-04-29 18:02:49.000000000 +0200 -@@ -0,0 +1,125 @@ +diff -Nur linux-4.1.23.orig/include/soc/bcm2835/raspberrypi-firmware.h linux-4.1.23/include/soc/bcm2835/raspberrypi-firmware.h +--- linux-4.1.23.orig/include/soc/bcm2835/raspberrypi-firmware.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/include/soc/bcm2835/raspberrypi-firmware.h 2016-05-02 22:53:59.000000000 +0200 +@@ -0,0 +1,126 @@ +/* + * Copyright © 2015 Broadcom + * @@ -315604,6 +322160,7 @@ diff -Nur linux-4.1.22.orig/include/soc/bcm2835/raspberrypi-firmware.h linux-4.1 + RPI_FIRMWARE_SET_VOLTAGE = 0x00038003, + RPI_FIRMWARE_SET_TURBO = 0x00038009, + RPI_FIRMWARE_SET_CUSTOMER_OTP = 0x00038021, ++ RPI_FIRMWARE_SET_SDHOST_CLOCK = 0x00038042, + + /* Dispmanx TAGS */ + RPI_FIRMWARE_FRAMEBUFFER_ALLOCATE = 0x00040001, @@ -315651,9 +322208,36 @@ diff -Nur linux-4.1.22.orig/include/soc/bcm2835/raspberrypi-firmware.h linux-4.1 +int rpi_firmware_property_list(struct rpi_firmware *fw, + void *data, size_t tag_size); +struct rpi_firmware *rpi_firmware_get(struct device_node *firmware_node); -diff -Nur linux-4.1.22.orig/include/uapi/drm/Kbuild linux-4.1.22/include/uapi/drm/Kbuild ---- linux-4.1.22.orig/include/uapi/drm/Kbuild 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/include/uapi/drm/Kbuild 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/include/sound/hdaudio.h linux-4.1.23/include/sound/hdaudio.h +--- linux-4.1.23.orig/include/sound/hdaudio.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/include/sound/hdaudio.h 2016-05-02 22:53:59.000000000 +0200 +@@ -137,15 +137,15 @@ + } + + #ifdef CONFIG_PM +-int snd_hdac_power_up(struct hdac_device *codec); +-int snd_hdac_power_down(struct hdac_device *codec); +-int snd_hdac_power_up_pm(struct hdac_device *codec); +-int snd_hdac_power_down_pm(struct hdac_device *codec); ++void snd_hdac_power_up(struct hdac_device *codec); ++void snd_hdac_power_down(struct hdac_device *codec); ++void snd_hdac_power_up_pm(struct hdac_device *codec); ++void snd_hdac_power_down_pm(struct hdac_device *codec); + #else +-static inline int snd_hdac_power_up(struct hdac_device *codec) { return 0; } +-static inline int snd_hdac_power_down(struct hdac_device *codec) { return 0; } +-static inline int snd_hdac_power_up_pm(struct hdac_device *codec) { return 0; } +-static inline int snd_hdac_power_down_pm(struct hdac_device *codec) { return 0; } ++static inline void snd_hdac_power_up(struct hdac_device *codec) {} ++static inline void snd_hdac_power_down(struct hdac_device *codec) {} ++static inline void snd_hdac_power_up_pm(struct hdac_device *codec) {} ++static inline void snd_hdac_power_down_pm(struct hdac_device *codec) {} + #endif + + /* +diff -Nur linux-4.1.23.orig/include/uapi/drm/Kbuild linux-4.1.23/include/uapi/drm/Kbuild +--- linux-4.1.23.orig/include/uapi/drm/Kbuild 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/include/uapi/drm/Kbuild 2016-05-02 22:53:59.000000000 +0200 @@ -14,6 +14,7 @@ header-y += savage_drm.h header-y += sis_drm.h @@ -315662,9 +322246,9 @@ diff -Nur linux-4.1.22.orig/include/uapi/drm/Kbuild linux-4.1.22/include/uapi/dr header-y += via_drm.h header-y += vmwgfx_drm.h header-y += msm_drm.h -diff -Nur linux-4.1.22.orig/include/uapi/drm/vc4_drm.h linux-4.1.22/include/uapi/drm/vc4_drm.h ---- linux-4.1.22.orig/include/uapi/drm/vc4_drm.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/include/uapi/drm/vc4_drm.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/include/uapi/drm/vc4_drm.h linux-4.1.23/include/uapi/drm/vc4_drm.h +--- linux-4.1.23.orig/include/uapi/drm/vc4_drm.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/include/uapi/drm/vc4_drm.h 2016-05-02 22:53:59.000000000 +0200 @@ -0,0 +1,279 @@ +/* + * Copyright © 2014-2015 Broadcom @@ -315945,9 +322529,9 @@ diff -Nur linux-4.1.22.orig/include/uapi/drm/vc4_drm.h linux-4.1.22/include/uapi +}; + +#endif /* _UAPI_VC4_DRM_H_ */ -diff -Nur linux-4.1.22.orig/include/uapi/linux/fb.h linux-4.1.22/include/uapi/linux/fb.h ---- linux-4.1.22.orig/include/uapi/linux/fb.h 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/include/uapi/linux/fb.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/include/uapi/linux/fb.h linux-4.1.23/include/uapi/linux/fb.h +--- linux-4.1.23.orig/include/uapi/linux/fb.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/include/uapi/linux/fb.h 2016-05-02 22:53:59.000000000 +0200 @@ -34,6 +34,11 @@ #define FBIOPUT_MODEINFO 0x4617 #define FBIOGET_DISPINFO 0x4618 @@ -315960,9 +322544,9 @@ diff -Nur linux-4.1.22.orig/include/uapi/linux/fb.h linux-4.1.22/include/uapi/li #define FB_TYPE_PACKED_PIXELS 0 /* Packed Pixels */ #define FB_TYPE_PLANES 1 /* Non interleaved planes */ -diff -Nur linux-4.1.22.orig/kernel/cgroup.c linux-4.1.22/kernel/cgroup.c ---- linux-4.1.22.orig/kernel/cgroup.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/kernel/cgroup.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/kernel/cgroup.c linux-4.1.23/kernel/cgroup.c +--- linux-4.1.23.orig/kernel/cgroup.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/kernel/cgroup.c 2016-05-02 22:53:59.000000000 +0200 @@ -5406,6 +5406,29 @@ } __setup("cgroup_disable=", cgroup_disable); @@ -315993,10 +322577,747 @@ diff -Nur linux-4.1.22.orig/kernel/cgroup.c linux-4.1.22/kernel/cgroup.c static int __init cgroup_set_legacy_files_on_dfl(char *str) { printk("cgroup: using legacy files on the default hierarchy\n"); -diff -Nur linux-4.1.22.orig/mm/memcontrol.c linux-4.1.22/mm/memcontrol.c ---- linux-4.1.22.orig/mm/memcontrol.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/mm/memcontrol.c 2016-04-29 18:02:49.000000000 +0200 -@@ -5396,6 +5396,7 @@ +diff -Nur linux-4.1.23.orig/kernel/events/core.c linux-4.1.23/kernel/events/core.c +--- linux-4.1.23.orig/kernel/events/core.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/kernel/events/core.c 2016-05-02 22:53:59.000000000 +0200 +@@ -3314,7 +3314,7 @@ + + /* Reuse ptrace permission checks for now. */ + err = -EACCES; +- if (!ptrace_may_access(task, PTRACE_MODE_READ_REALCREDS)) ++ if (!ptrace_may_access(task, PTRACE_MODE_READ)) + goto errout; + + return task; +diff -Nur linux-4.1.23.orig/kernel/futex.c linux-4.1.23/kernel/futex.c +--- linux-4.1.23.orig/kernel/futex.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/kernel/futex.c 2016-05-02 22:53:59.000000000 +0200 +@@ -2763,7 +2763,7 @@ + } + + ret = -EPERM; +- if (!ptrace_may_access(p, PTRACE_MODE_READ_REALCREDS)) ++ if (!ptrace_may_access(p, PTRACE_MODE_READ)) + goto err_unlock; + + head = p->robust_list; +diff -Nur linux-4.1.23.orig/kernel/futex_compat.c linux-4.1.23/kernel/futex_compat.c +--- linux-4.1.23.orig/kernel/futex_compat.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/kernel/futex_compat.c 2016-05-02 22:53:59.000000000 +0200 +@@ -155,7 +155,7 @@ + } + + ret = -EPERM; +- if (!ptrace_may_access(p, PTRACE_MODE_READ_REALCREDS)) ++ if (!ptrace_may_access(p, PTRACE_MODE_READ)) + goto err_unlock; + + head = p->compat_robust_list; +diff -Nur linux-4.1.23.orig/kernel/kcmp.c linux-4.1.23/kernel/kcmp.c +--- linux-4.1.23.orig/kernel/kcmp.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/kernel/kcmp.c 2016-05-02 22:53:59.000000000 +0200 +@@ -122,8 +122,8 @@ + &task2->signal->cred_guard_mutex); + if (ret) + goto err; +- if (!ptrace_may_access(task1, PTRACE_MODE_READ_REALCREDS) || +- !ptrace_may_access(task2, PTRACE_MODE_READ_REALCREDS)) { ++ if (!ptrace_may_access(task1, PTRACE_MODE_READ) || ++ !ptrace_may_access(task2, PTRACE_MODE_READ)) { + ret = -EPERM; + goto err_unlock; + } +diff -Nur linux-4.1.23.orig/kernel/module.c linux-4.1.23/kernel/module.c +--- linux-4.1.23.orig/kernel/module.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/kernel/module.c 2016-05-02 22:53:59.000000000 +0200 +@@ -178,9 +178,6 @@ + struct _ddebug *debug; + unsigned int num_debug; + bool sig_ok; +-#ifdef CONFIG_KALLSYMS +- unsigned long mod_kallsyms_init_off; +-#endif + struct { + unsigned int sym, str, mod, vers, info, pcpu; + } index; +@@ -2324,21 +2321,10 @@ + strsect->sh_flags |= SHF_ALLOC; + strsect->sh_entsize = get_offset(mod, &mod->init_size, strsect, + info->index.str) | INIT_OFFSET_MASK; +- pr_debug("\t%s\n", info->secstrings + strsect->sh_name); +- +- /* We'll tack temporary mod_kallsyms on the end. */ +- mod->init_size = ALIGN(mod->init_size, +- __alignof__(struct mod_kallsyms)); +- info->mod_kallsyms_init_off = mod->init_size; +- mod->init_size += sizeof(struct mod_kallsyms); + mod->init_size = debug_align(mod->init_size); ++ pr_debug("\t%s\n", info->secstrings + strsect->sh_name); + } + +-/* +- * We use the full symtab and strtab which layout_symtab arranged to +- * be appended to the init section. Later we switch to the cut-down +- * core-only ones. +- */ + static void add_kallsyms(struct module *mod, const struct load_info *info) + { + unsigned int i, ndst; +@@ -2347,33 +2333,28 @@ + char *s; + Elf_Shdr *symsec = &info->sechdrs[info->index.sym]; + +- /* Set up to point into init section. */ +- mod->kallsyms = mod->module_init + info->mod_kallsyms_init_off; +- +- mod->kallsyms->symtab = (void *)symsec->sh_addr; +- mod->kallsyms->num_symtab = symsec->sh_size / sizeof(Elf_Sym); ++ mod->symtab = (void *)symsec->sh_addr; ++ mod->num_symtab = symsec->sh_size / sizeof(Elf_Sym); + /* Make sure we get permanent strtab: don't use info->strtab. */ +- mod->kallsyms->strtab = (void *)info->sechdrs[info->index.str].sh_addr; ++ mod->strtab = (void *)info->sechdrs[info->index.str].sh_addr; + + /* Set types up while we still have access to sections. */ +- for (i = 0; i < mod->kallsyms->num_symtab; i++) +- mod->kallsyms->symtab[i].st_info +- = elf_type(&mod->kallsyms->symtab[i], info); +- +- /* Now populate the cut down core kallsyms for after init. */ +- mod->core_kallsyms.symtab = dst = mod->module_core + info->symoffs; +- mod->core_kallsyms.strtab = s = mod->module_core + info->stroffs; +- src = mod->kallsyms->symtab; +- for (ndst = i = 0; i < mod->kallsyms->num_symtab; i++) { ++ for (i = 0; i < mod->num_symtab; i++) ++ mod->symtab[i].st_info = elf_type(&mod->symtab[i], info); ++ ++ mod->core_symtab = dst = mod->module_core + info->symoffs; ++ mod->core_strtab = s = mod->module_core + info->stroffs; ++ src = mod->symtab; ++ for (ndst = i = 0; i < mod->num_symtab; i++) { + if (i == 0 || + is_core_symbol(src+i, info->sechdrs, info->hdr->e_shnum)) { + dst[ndst] = src[i]; +- dst[ndst++].st_name = s - mod->core_kallsyms.strtab; +- s += strlcpy(s, &mod->kallsyms->strtab[src[i].st_name], ++ dst[ndst++].st_name = s - mod->core_strtab; ++ s += strlcpy(s, &mod->strtab[src[i].st_name], + KSYM_NAME_LEN) + 1; + } + } +- mod->core_kallsyms.num_symtab = ndst; ++ mod->core_num_syms = ndst; + } + #else + static inline void layout_symtab(struct module *mod, struct load_info *info) +@@ -3138,8 +3119,9 @@ + module_put(mod); + trim_init_extable(mod); + #ifdef CONFIG_KALLSYMS +- /* Switch to core kallsyms now init is done: kallsyms may be walking! */ +- rcu_assign_pointer(mod->kallsyms, &mod->core_kallsyms); ++ mod->num_symtab = mod->core_num_syms; ++ mod->symtab = mod->core_symtab; ++ mod->strtab = mod->core_strtab; + #endif + unset_module_init_ro_nx(mod); + module_arch_freeing_init(mod); +@@ -3487,11 +3469,6 @@ + && (str[2] == '\0' || str[2] == '.'); + } + +-static const char *symname(struct mod_kallsyms *kallsyms, unsigned int symnum) +-{ +- return kallsyms->strtab + kallsyms->symtab[symnum].st_name; +-} +- + static const char *get_ksymbol(struct module *mod, + unsigned long addr, + unsigned long *size, +@@ -3499,7 +3476,6 @@ + { + unsigned int i, best = 0; + unsigned long nextval; +- struct mod_kallsyms *kallsyms = rcu_dereference_sched(mod->kallsyms); + + /* At worse, next value is at end of module */ + if (within_module_init(addr, mod)) +@@ -3509,32 +3485,32 @@ + + /* Scan for closest preceding symbol, and next symbol. (ELF + starts real symbols at 1). */ +- for (i = 1; i < kallsyms->num_symtab; i++) { +- if (kallsyms->symtab[i].st_shndx == SHN_UNDEF) ++ for (i = 1; i < mod->num_symtab; i++) { ++ if (mod->symtab[i].st_shndx == SHN_UNDEF) + continue; + + /* We ignore unnamed symbols: they're uninformative + * and inserted at a whim. */ +- if (*symname(kallsyms, i) == '\0' +- || is_arm_mapping_symbol(symname(kallsyms, i))) +- continue; +- +- if (kallsyms->symtab[i].st_value <= addr +- && kallsyms->symtab[i].st_value > kallsyms->symtab[best].st_value) ++ if (mod->symtab[i].st_value <= addr ++ && mod->symtab[i].st_value > mod->symtab[best].st_value ++ && *(mod->strtab + mod->symtab[i].st_name) != '\0' ++ && !is_arm_mapping_symbol(mod->strtab + mod->symtab[i].st_name)) + best = i; +- if (kallsyms->symtab[i].st_value > addr +- && kallsyms->symtab[i].st_value < nextval) +- nextval = kallsyms->symtab[i].st_value; ++ if (mod->symtab[i].st_value > addr ++ && mod->symtab[i].st_value < nextval ++ && *(mod->strtab + mod->symtab[i].st_name) != '\0' ++ && !is_arm_mapping_symbol(mod->strtab + mod->symtab[i].st_name)) ++ nextval = mod->symtab[i].st_value; + } + + if (!best) + return NULL; + + if (size) +- *size = nextval - kallsyms->symtab[best].st_value; ++ *size = nextval - mod->symtab[best].st_value; + if (offset) +- *offset = addr - kallsyms->symtab[best].st_value; +- return symname(kallsyms, best); ++ *offset = addr - mod->symtab[best].st_value; ++ return mod->strtab + mod->symtab[best].st_name; + } + + /* For kallsyms to ask for address resolution. NULL means not found. Careful +@@ -3627,21 +3603,19 @@ + + preempt_disable(); + list_for_each_entry_rcu(mod, &modules, list) { +- struct mod_kallsyms *kallsyms; +- + if (mod->state == MODULE_STATE_UNFORMED) + continue; +- kallsyms = rcu_dereference_sched(mod->kallsyms); +- if (symnum < kallsyms->num_symtab) { +- *value = kallsyms->symtab[symnum].st_value; +- *type = kallsyms->symtab[symnum].st_info; +- strlcpy(name, symname(kallsyms, symnum), KSYM_NAME_LEN); ++ if (symnum < mod->num_symtab) { ++ *value = mod->symtab[symnum].st_value; ++ *type = mod->symtab[symnum].st_info; ++ strlcpy(name, mod->strtab + mod->symtab[symnum].st_name, ++ KSYM_NAME_LEN); + strlcpy(module_name, mod->name, MODULE_NAME_LEN); + *exported = is_exported(name, *value, mod); + preempt_enable(); + return 0; + } +- symnum -= kallsyms->num_symtab; ++ symnum -= mod->num_symtab; + } + preempt_enable(); + return -ERANGE; +@@ -3650,12 +3624,11 @@ + static unsigned long mod_find_symname(struct module *mod, const char *name) + { + unsigned int i; +- struct mod_kallsyms *kallsyms = rcu_dereference_sched(mod->kallsyms); + +- for (i = 0; i < kallsyms->num_symtab; i++) +- if (strcmp(name, symname(kallsyms, i)) == 0 && +- kallsyms->symtab[i].st_info != 'U') +- return kallsyms->symtab[i].st_value; ++ for (i = 0; i < mod->num_symtab; i++) ++ if (strcmp(name, mod->strtab+mod->symtab[i].st_name) == 0 && ++ mod->symtab[i].st_info != 'U') ++ return mod->symtab[i].st_value; + return 0; + } + +@@ -3692,14 +3665,11 @@ + int ret; + + list_for_each_entry(mod, &modules, list) { +- /* We hold module_mutex: no need for rcu_dereference_sched */ +- struct mod_kallsyms *kallsyms = mod->kallsyms; +- + if (mod->state == MODULE_STATE_UNFORMED) + continue; +- for (i = 0; i < kallsyms->num_symtab; i++) { +- ret = fn(data, symname(kallsyms, i), +- mod, kallsyms->symtab[i].st_value); ++ for (i = 0; i < mod->num_symtab; i++) { ++ ret = fn(data, mod->strtab + mod->symtab[i].st_name, ++ mod, mod->symtab[i].st_value); + if (ret != 0) + return ret; + } +diff -Nur linux-4.1.23.orig/kernel/ptrace.c linux-4.1.23/kernel/ptrace.c +--- linux-4.1.23.orig/kernel/ptrace.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/kernel/ptrace.c 2016-05-02 22:53:59.000000000 +0200 +@@ -219,14 +219,6 @@ + static int __ptrace_may_access(struct task_struct *task, unsigned int mode) + { + const struct cred *cred = current_cred(), *tcred; +- int dumpable = 0; +- kuid_t caller_uid; +- kgid_t caller_gid; +- +- if (!(mode & PTRACE_MODE_FSCREDS) == !(mode & PTRACE_MODE_REALCREDS)) { +- WARN(1, "denying ptrace access check without PTRACE_MODE_*CREDS\n"); +- return -EPERM; +- } + + /* May we inspect the given task? + * This check is used both for attaching with ptrace +@@ -236,33 +228,18 @@ + * because setting up the necessary parent/child relationship + * or halting the specified task is impossible. + */ +- ++ int dumpable = 0; + /* Don't let security modules deny introspection */ + if (same_thread_group(task, current)) + return 0; + rcu_read_lock(); +- if (mode & PTRACE_MODE_FSCREDS) { +- caller_uid = cred->fsuid; +- caller_gid = cred->fsgid; +- } else { +- /* +- * Using the euid would make more sense here, but something +- * in userland might rely on the old behavior, and this +- * shouldn't be a security problem since +- * PTRACE_MODE_REALCREDS implies that the caller explicitly +- * used a syscall that requests access to another process +- * (and not a filesystem syscall to procfs). +- */ +- caller_uid = cred->uid; +- caller_gid = cred->gid; +- } + tcred = __task_cred(task); +- if (uid_eq(caller_uid, tcred->euid) && +- uid_eq(caller_uid, tcred->suid) && +- uid_eq(caller_uid, tcred->uid) && +- gid_eq(caller_gid, tcred->egid) && +- gid_eq(caller_gid, tcred->sgid) && +- gid_eq(caller_gid, tcred->gid)) ++ if (uid_eq(cred->uid, tcred->euid) && ++ uid_eq(cred->uid, tcred->suid) && ++ uid_eq(cred->uid, tcred->uid) && ++ gid_eq(cred->gid, tcred->egid) && ++ gid_eq(cred->gid, tcred->sgid) && ++ gid_eq(cred->gid, tcred->gid)) + goto ok; + if (ptrace_has_cap(tcred->user_ns, mode)) + goto ok; +@@ -329,7 +306,7 @@ + goto out; + + task_lock(task); +- retval = __ptrace_may_access(task, PTRACE_MODE_ATTACH_REALCREDS); ++ retval = __ptrace_may_access(task, PTRACE_MODE_ATTACH); + task_unlock(task); + if (retval) + goto unlock_creds; +diff -Nur linux-4.1.23.orig/kernel/resource.c linux-4.1.23/kernel/resource.c +--- linux-4.1.23.orig/kernel/resource.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/kernel/resource.c 2016-05-02 22:53:59.000000000 +0200 +@@ -1072,10 +1072,9 @@ + if (!conflict) + break; + if (conflict != parent) { +- if (!(conflict->flags & IORESOURCE_BUSY)) { +- parent = conflict; ++ parent = conflict; ++ if (!(conflict->flags & IORESOURCE_BUSY)) + continue; +- } + } + if (conflict->flags & flags & IORESOURCE_MUXED) { + add_wait_queue(&muxed_resource_wait, &wait); +diff -Nur linux-4.1.23.orig/kernel/sched/core.c linux-4.1.23/kernel/sched/core.c +--- linux-4.1.23.orig/kernel/sched/core.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/kernel/sched/core.c 2016-05-02 22:53:59.000000000 +0200 +@@ -6480,7 +6480,7 @@ + + sched_domains_numa_masks[i][j] = mask; + +- for_each_node(k) { ++ for (k = 0; k < nr_node_ids; k++) { + if (node_distance(j, k) > sched_domains_numa_distance[i]) + continue; + +diff -Nur linux-4.1.23.orig/kernel/sched/cputime.c linux-4.1.23/kernel/sched/cputime.c +--- linux-4.1.23.orig/kernel/sched/cputime.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/kernel/sched/cputime.c 2016-05-02 22:53:59.000000000 +0200 +@@ -259,21 +259,21 @@ + #ifdef CONFIG_PARAVIRT + if (static_key_false(¶virt_steal_enabled)) { + u64 steal; +- unsigned long steal_jiffies; ++ cputime_t steal_ct; + + steal = paravirt_steal_clock(smp_processor_id()); + steal -= this_rq()->prev_steal_time; + + /* +- * steal is in nsecs but our caller is expecting steal +- * time in jiffies. Lets cast the result to jiffies ++ * cputime_t may be less precise than nsecs (eg: if it's ++ * based on jiffies). Lets cast the result to cputime + * granularity and account the rest on the next rounds. + */ +- steal_jiffies = nsecs_to_jiffies(steal); +- this_rq()->prev_steal_time += jiffies_to_nsecs(steal_jiffies); ++ steal_ct = nsecs_to_cputime(steal); ++ this_rq()->prev_steal_time += cputime_to_nsecs(steal_ct); + +- account_steal_time(jiffies_to_cputime(steal_jiffies)); +- return steal_jiffies; ++ account_steal_time(steal_ct); ++ return steal_ct; + } + #endif + return false; +diff -Nur linux-4.1.23.orig/kernel/sysctl_binary.c linux-4.1.23/kernel/sysctl_binary.c +--- linux-4.1.23.orig/kernel/sysctl_binary.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/kernel/sysctl_binary.c 2016-05-02 22:53:59.000000000 +0200 +@@ -1321,7 +1321,7 @@ + } + + mnt = task_active_pid_ns(current)->proc_mnt; +- file = file_open_root(mnt->mnt_root, mnt, pathname, flags, 0); ++ file = file_open_root(mnt->mnt_root, mnt, pathname, flags); + result = PTR_ERR(file); + if (IS_ERR(file)) + goto out_putname; +diff -Nur linux-4.1.23.orig/kernel/trace/trace.c linux-4.1.23/kernel/trace/trace.c +--- linux-4.1.23.orig/kernel/trace/trace.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/kernel/trace/trace.c 2016-05-02 22:53:59.000000000 +0200 +@@ -4916,10 +4916,7 @@ + + spd.nr_pages = i; + +- if (i) +- ret = splice_to_pipe(pipe, &spd); +- else +- ret = 0; ++ ret = splice_to_pipe(pipe, &spd); + out: + splice_shrink_spd(&spd); + return ret; +diff -Nur linux-4.1.23.orig/kernel/trace/trace_printk.c linux-4.1.23/kernel/trace/trace_printk.c +--- linux-4.1.23.orig/kernel/trace/trace_printk.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/kernel/trace/trace_printk.c 2016-05-02 22:53:59.000000000 +0200 +@@ -289,9 +289,6 @@ + const char *str = *fmt; + int i; + +- if (!*fmt) +- return 0; +- + seq_printf(m, "0x%lx : \"", *(unsigned long *)fmt); + + /* +diff -Nur linux-4.1.23.orig/kernel/watchdog.c linux-4.1.23/kernel/watchdog.c +--- linux-4.1.23.orig/kernel/watchdog.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/kernel/watchdog.c 2016-05-02 22:53:59.000000000 +0200 +@@ -812,9 +812,6 @@ + * Update the run state of the lockup detectors. + * Restore 'watchdog_enabled' on failure. + */ +- if (old == new) +- goto out; +- + err = proc_watchdog_update(); + if (err) + watchdog_enabled = old; +@@ -860,7 +857,7 @@ + int proc_watchdog_thresh(struct ctl_table *table, int write, + void __user *buffer, size_t *lenp, loff_t *ppos) + { +- int err, old, new; ++ int err, old; + + mutex_lock(&watchdog_proc_mutex); + +@@ -874,10 +871,6 @@ + * Update the sample period. + * Restore 'watchdog_thresh' on failure. + */ +- new = ACCESS_ONCE(watchdog_thresh); +- if (old == new) +- goto out; +- + set_sample_period(); + err = proc_watchdog_update(); + if (err) +diff -Nur linux-4.1.23.orig/lib/ucs2_string.c linux-4.1.23/lib/ucs2_string.c +--- linux-4.1.23.orig/lib/ucs2_string.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/lib/ucs2_string.c 2016-05-02 22:53:59.000000000 +0200 +@@ -49,65 +49,3 @@ + } + } + EXPORT_SYMBOL(ucs2_strncmp); +- +-unsigned long +-ucs2_utf8size(const ucs2_char_t *src) +-{ +- unsigned long i; +- unsigned long j = 0; +- +- for (i = 0; i < ucs2_strlen(src); i++) { +- u16 c = src[i]; +- +- if (c >= 0x800) +- j += 3; +- else if (c >= 0x80) +- j += 2; +- else +- j += 1; +- } +- +- return j; +-} +-EXPORT_SYMBOL(ucs2_utf8size); +- +-/* +- * copy at most maxlength bytes of whole utf8 characters to dest from the +- * ucs2 string src. +- * +- * The return value is the number of characters copied, not including the +- * final NUL character. +- */ +-unsigned long +-ucs2_as_utf8(u8 *dest, const ucs2_char_t *src, unsigned long maxlength) +-{ +- unsigned int i; +- unsigned long j = 0; +- unsigned long limit = ucs2_strnlen(src, maxlength); +- +- for (i = 0; maxlength && i < limit; i++) { +- u16 c = src[i]; +- +- if (c >= 0x800) { +- if (maxlength < 3) +- break; +- maxlength -= 3; +- dest[j++] = 0xe0 | (c & 0xf000) >> 12; +- dest[j++] = 0x80 | (c & 0x0fc0) >> 6; +- dest[j++] = 0x80 | (c & 0x003f); +- } else if (c >= 0x80) { +- if (maxlength < 2) +- break; +- maxlength -= 2; +- dest[j++] = 0xc0 | (c & 0x7c0) >> 6; +- dest[j++] = 0x80 | (c & 0x03f); +- } else { +- maxlength -= 1; +- dest[j++] = c & 0x7f; +- } +- } +- if (maxlength) +- dest[j] = '\0'; +- return j; +-} +-EXPORT_SYMBOL(ucs2_as_utf8); +diff -Nur linux-4.1.23.orig/mm/bootmem.c linux-4.1.23/mm/bootmem.c +--- linux-4.1.23.orig/mm/bootmem.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/mm/bootmem.c 2016-05-02 22:53:59.000000000 +0200 +@@ -164,7 +164,7 @@ + end = PFN_DOWN(physaddr + size); + + for (; cursor < end; cursor++) { +- __free_pages_bootmem(pfn_to_page(cursor), cursor, 0); ++ __free_pages_bootmem(pfn_to_page(cursor), 0); + totalram_pages++; + } + } +@@ -172,7 +172,7 @@ + static unsigned long __init free_all_bootmem_core(bootmem_data_t *bdata) + { + struct page *page; +- unsigned long *map, start, end, pages, cur, count = 0; ++ unsigned long *map, start, end, pages, count = 0; + + if (!bdata->node_bootmem_map) + return 0; +@@ -210,17 +210,17 @@ + if (IS_ALIGNED(start, BITS_PER_LONG) && vec == ~0UL) { + int order = ilog2(BITS_PER_LONG); + +- __free_pages_bootmem(pfn_to_page(start), start, order); ++ __free_pages_bootmem(pfn_to_page(start), order); + count += BITS_PER_LONG; + start += BITS_PER_LONG; + } else { +- cur = start; ++ unsigned long cur = start; + + start = ALIGN(start + 1, BITS_PER_LONG); + while (vec && cur != start) { + if (vec & 1) { + page = pfn_to_page(cur); +- __free_pages_bootmem(page, cur, 0); ++ __free_pages_bootmem(page, 0); + count++; + } + vec >>= 1; +@@ -229,13 +229,12 @@ + } + } + +- cur = bdata->node_min_pfn; + page = virt_to_page(bdata->node_bootmem_map); + pages = bdata->node_low_pfn - bdata->node_min_pfn; + pages = bootmem_bootmap_pages(pages); + count += pages; + while (pages--) +- __free_pages_bootmem(page++, cur++, 0); ++ __free_pages_bootmem(page++, 0); + + bdebug("nid=%td released=%lx\n", bdata - bootmem_node_data, count); + +diff -Nur linux-4.1.23.orig/mm/hugetlb.c linux-4.1.23/mm/hugetlb.c +--- linux-4.1.23.orig/mm/hugetlb.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/mm/hugetlb.c 2016-05-02 22:53:59.000000000 +0200 +@@ -755,7 +755,7 @@ + + #if defined(CONFIG_CMA) && defined(CONFIG_X86_64) + static void destroy_compound_gigantic_page(struct page *page, +- unsigned int order) ++ unsigned long order) + { + int i; + int nr_pages = 1 << order; +@@ -771,7 +771,7 @@ + __ClearPageHead(page); + } + +-static void free_gigantic_page(struct page *page, unsigned int order) ++static void free_gigantic_page(struct page *page, unsigned order) + { + free_contig_range(page_to_pfn(page), 1 << order); + } +@@ -815,7 +815,7 @@ + return zone_spans_pfn(zone, last_pfn); + } + +-static struct page *alloc_gigantic_page(int nid, unsigned int order) ++static struct page *alloc_gigantic_page(int nid, unsigned order) + { + unsigned long nr_pages = 1 << order; + unsigned long ret, pfn, flags; +@@ -851,7 +851,7 @@ + } + + static void prep_new_huge_page(struct hstate *h, struct page *page, int nid); +-static void prep_compound_gigantic_page(struct page *page, unsigned int order); ++static void prep_compound_gigantic_page(struct page *page, unsigned long order); + + static struct page *alloc_fresh_gigantic_page_node(struct hstate *h, int nid) + { +@@ -884,9 +884,9 @@ + static inline bool gigantic_page_supported(void) { return true; } + #else + static inline bool gigantic_page_supported(void) { return false; } +-static inline void free_gigantic_page(struct page *page, unsigned int order) { } ++static inline void free_gigantic_page(struct page *page, unsigned order) { } + static inline void destroy_compound_gigantic_page(struct page *page, +- unsigned int order) { } ++ unsigned long order) { } + static inline int alloc_fresh_gigantic_page(struct hstate *h, + nodemask_t *nodes_allowed) { return 0; } + #endif +@@ -1013,7 +1013,7 @@ + put_page(page); /* free it into the hugepage allocator */ + } + +-static void prep_compound_gigantic_page(struct page *page, unsigned int order) ++static void prep_compound_gigantic_page(struct page *page, unsigned long order) + { + int i; + int nr_pages = 1 << order; +@@ -1567,8 +1567,7 @@ + return 1; + } + +-static void __init prep_compound_huge_page(struct page *page, +- unsigned int order) ++static void __init prep_compound_huge_page(struct page *page, int order) + { + if (unlikely(order > (MAX_ORDER - 1))) + prep_compound_gigantic_page(page, order); +@@ -2279,7 +2278,7 @@ + module_init(hugetlb_init); + + /* Should be called on processing a hugepagesz=... option */ +-void __init hugetlb_add_hstate(unsigned int order) ++void __init hugetlb_add_hstate(unsigned order) + { + struct hstate *h; + unsigned long i; +diff -Nur linux-4.1.23.orig/mm/internal.h linux-4.1.23/mm/internal.h +--- linux-4.1.23.orig/mm/internal.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/mm/internal.h 2016-05-02 22:53:59.000000000 +0200 +@@ -155,9 +155,8 @@ + } + + extern int __isolate_free_page(struct page *page, unsigned int order); +-extern void __free_pages_bootmem(struct page *page, unsigned long pfn, +- unsigned int order); +-extern void prep_compound_page(struct page *page, unsigned int order); ++extern void __free_pages_bootmem(struct page *page, unsigned int order); ++extern void prep_compound_page(struct page *page, unsigned long order); + #ifdef CONFIG_MEMORY_FAILURE + extern bool is_free_buddy_page(struct page *page); + #endif +@@ -214,7 +213,7 @@ + * page cannot be allocated or merged in parallel. Alternatively, it must + * handle invalid values gracefully, and use page_order_unsafe() below. + */ +-static inline unsigned int page_order(struct page *page) ++static inline unsigned long page_order(struct page *page) + { + /* PageBuddy() must be checked by the caller */ + return page_private(page); +diff -Nur linux-4.1.23.orig/mm/memblock.c linux-4.1.23/mm/memblock.c +--- linux-4.1.23.orig/mm/memblock.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/mm/memblock.c 2016-05-02 22:53:59.000000000 +0200 +@@ -1316,7 +1316,7 @@ + end = PFN_DOWN(base + size); + + for (; cursor < end; cursor++) { +- __free_pages_bootmem(pfn_to_page(cursor), cursor, 0); ++ __free_pages_bootmem(pfn_to_page(cursor), 0); + totalram_pages++; + } + } +diff -Nur linux-4.1.23.orig/mm/memcontrol.c linux-4.1.23/mm/memcontrol.c +--- linux-4.1.23.orig/mm/memcontrol.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/mm/memcontrol.c 2016-05-02 22:53:59.000000000 +0200 +@@ -5289,7 +5289,6 @@ + char *buf, size_t nbytes, loff_t off) + { + struct mem_cgroup *memcg = mem_cgroup_from_css(of_css(of)); +- unsigned long nr_pages; + unsigned long high; + int err; + +@@ -5300,11 +5299,6 @@ + + memcg->high = high; + +- nr_pages = page_counter_read(&memcg->memory); +- if (nr_pages > high) +- try_to_free_mem_cgroup_pages(memcg, nr_pages - high, +- GFP_KERNEL, true); +- + return nbytes; + } + +@@ -5396,6 +5390,7 @@ .dfl_cftypes = memory_files, .legacy_cftypes = mem_cgroup_legacy_files, .early_init = 0, @@ -316004,10 +323325,218 @@ diff -Nur linux-4.1.22.orig/mm/memcontrol.c linux-4.1.22/mm/memcontrol.c }; /** -diff -Nur linux-4.1.22.orig/mm/page_alloc.c linux-4.1.22/mm/page_alloc.c ---- linux-4.1.22.orig/mm/page_alloc.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/mm/page_alloc.c 2016-04-29 18:02:49.000000000 +0200 -@@ -6509,8 +6509,6 @@ +diff -Nur linux-4.1.23.orig/mm/nobootmem.c linux-4.1.23/mm/nobootmem.c +--- linux-4.1.23.orig/mm/nobootmem.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/mm/nobootmem.c 2016-05-02 22:53:59.000000000 +0200 +@@ -77,7 +77,7 @@ + end = PFN_DOWN(addr + size); + + for (; cursor < end; cursor++) { +- __free_pages_bootmem(pfn_to_page(cursor), cursor, 0); ++ __free_pages_bootmem(pfn_to_page(cursor), 0); + totalram_pages++; + } + } +@@ -92,7 +92,7 @@ + while (start + (1UL << order) > end) + order--; + +- __free_pages_bootmem(pfn_to_page(start), start, order); ++ __free_pages_bootmem(pfn_to_page(start), order); + + start += (1UL << order); + } +diff -Nur linux-4.1.23.orig/mm/page_alloc.c linux-4.1.23/mm/page_alloc.c +--- linux-4.1.23.orig/mm/page_alloc.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/mm/page_alloc.c 2016-05-02 22:54:00.000000000 +0200 +@@ -162,7 +162,7 @@ + #endif /* CONFIG_PM_SLEEP */ + + #ifdef CONFIG_HUGETLB_PAGE_SIZE_VARIABLE +-unsigned int pageblock_order __read_mostly; ++int pageblock_order __read_mostly; + #endif + + static void __free_pages_ok(struct page *page, unsigned int order); +@@ -362,7 +362,7 @@ + __free_pages_ok(page, compound_order(page)); + } + +-void prep_compound_page(struct page *page, unsigned int order) ++void prep_compound_page(struct page *page, unsigned long order) + { + int i; + int nr_pages = 1 << order; +@@ -579,28 +579,34 @@ + unsigned long combined_idx; + unsigned long uninitialized_var(buddy_idx); + struct page *buddy; +- unsigned int max_order; +- +- max_order = min_t(unsigned int, MAX_ORDER, pageblock_order + 1); ++ int max_order = MAX_ORDER; + + VM_BUG_ON(!zone_is_initialized(zone)); + VM_BUG_ON_PAGE(page->flags & PAGE_FLAGS_CHECK_AT_PREP, page); + + VM_BUG_ON(migratetype == -1); +- if (likely(!is_migrate_isolate(migratetype))) ++ if (is_migrate_isolate(migratetype)) { ++ /* ++ * We restrict max order of merging to prevent merge ++ * between freepages on isolate pageblock and normal ++ * pageblock. Without this, pageblock isolation ++ * could cause incorrect freepage accounting. ++ */ ++ max_order = min(MAX_ORDER, pageblock_order + 1); ++ } else { + __mod_zone_freepage_state(zone, 1 << order, migratetype); ++ } + +- page_idx = pfn & ((1 << MAX_ORDER) - 1); ++ page_idx = pfn & ((1 << max_order) - 1); + + VM_BUG_ON_PAGE(page_idx & ((1 << order) - 1), page); + VM_BUG_ON_PAGE(bad_range(zone, page), page); + +-continue_merging: + while (order < max_order - 1) { + buddy_idx = __find_buddy_index(page_idx, order); + buddy = page + (buddy_idx - page_idx); + if (!page_is_buddy(page, buddy, order)) +- goto done_merging; ++ break; + /* + * Our buddy is free or it is CONFIG_DEBUG_PAGEALLOC guard page, + * merge with it and move up one order. +@@ -617,32 +623,6 @@ + page_idx = combined_idx; + order++; + } +- if (max_order < MAX_ORDER) { +- /* If we are here, it means order is >= pageblock_order. +- * We want to prevent merge between freepages on isolate +- * pageblock and normal pageblock. Without this, pageblock +- * isolation could cause incorrect freepage or CMA accounting. +- * +- * We don't want to hit this code for the more frequent +- * low-order merging. +- */ +- if (unlikely(has_isolate_pageblock(zone))) { +- int buddy_mt; +- +- buddy_idx = __find_buddy_index(page_idx, order); +- buddy = page + (buddy_idx - page_idx); +- buddy_mt = get_pageblock_migratetype(buddy); +- +- if (migratetype != buddy_mt +- && (is_migrate_isolate(migratetype) || +- is_migrate_isolate(buddy_mt))) +- goto done_merging; +- } +- max_order++; +- goto continue_merging; +- } +- +-done_merging: + set_page_order(page, order); + + /* +@@ -852,8 +832,7 @@ + local_irq_restore(flags); + } + +-void __init __free_pages_bootmem(struct page *page, unsigned long pfn, +- unsigned int order) ++void __init __free_pages_bootmem(struct page *page, unsigned int order) + { + unsigned int nr_pages = 1 << order; + struct page *p = page; +@@ -1087,7 +1066,7 @@ + int migratetype) + { + struct page *page; +- unsigned int order; ++ unsigned long order; + int pages_moved = 0; + + #ifndef CONFIG_HOLES_IN_ZONE +@@ -1201,7 +1180,7 @@ + static void steal_suitable_fallback(struct zone *zone, struct page *page, + int start_type) + { +- unsigned int current_order = page_order(page); ++ int current_order = page_order(page); + int pages; + + /* Take ownership for orders >= pageblock_order */ +@@ -2304,7 +2283,7 @@ + DEFAULT_RATELIMIT_INTERVAL, + DEFAULT_RATELIMIT_BURST); + +-void warn_alloc_failed(gfp_t gfp_mask, unsigned int order, const char *fmt, ...) ++void warn_alloc_failed(gfp_t gfp_mask, int order, const char *fmt, ...) + { + unsigned int filter = SHOW_MEM_FILTER_NODES; + +@@ -2338,7 +2317,7 @@ + va_end(args); + } + +- pr_warn("%s: page allocation failure: order:%u, mode:0x%x\n", ++ pr_warn("%s: page allocation failure: order:%d, mode:0x%x\n", + current->comm, order, gfp_mask); + + dump_stack(); +@@ -3039,8 +3018,7 @@ + } + } + +-static void *make_alloc_exact(unsigned long addr, unsigned int order, +- size_t size) ++static void *make_alloc_exact(unsigned long addr, unsigned order, size_t size) + { + if (addr) { + unsigned long alloc_end = addr + (PAGE_SIZE << order); +@@ -3092,7 +3070,7 @@ + */ + void * __meminit alloc_pages_exact_nid(int nid, size_t size, gfp_t gfp_mask) + { +- unsigned int order = get_order(size); ++ unsigned order = get_order(size); + struct page *p = alloc_pages_node(nid, gfp_mask, order); + if (!p) + return NULL; +@@ -3394,8 +3372,7 @@ + } + + for_each_populated_zone(zone) { +- unsigned int order; +- unsigned long nr[MAX_ORDER], flags, total = 0; ++ unsigned long nr[MAX_ORDER], flags, order, total = 0; + unsigned char types[MAX_ORDER]; + + if (skip_free_areas_node(filter, zone_to_nid(zone))) +@@ -3744,7 +3721,7 @@ + nodemask_t used_mask; + int local_node, prev_node; + struct zonelist *zonelist; +- unsigned int order = current_zonelist_order; ++ int order = current_zonelist_order; + + /* initialize zonelists */ + for (i = 0; i < MAX_ZONELISTS; i++) { +@@ -6431,8 +6408,7 @@ + unsigned migratetype) + { + unsigned long outer_start, outer_end; +- unsigned int order; +- int ret = 0; ++ int ret = 0, order; + + struct compact_control cc = { + .nr_migratepages = 0, +@@ -6509,8 +6485,6 @@ /* Make sure the range is really isolated. */ if (test_pages_isolated(outer_start, end, false)) { @@ -316016,9 +323545,33 @@ diff -Nur linux-4.1.22.orig/mm/page_alloc.c linux-4.1.22/mm/page_alloc.c ret = -EBUSY; goto done; } -diff -Nur linux-4.1.22.orig/scripts/dtc/checks.c linux-4.1.22/scripts/dtc/checks.c ---- linux-4.1.22.orig/scripts/dtc/checks.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/scripts/dtc/checks.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/mm/process_vm_access.c linux-4.1.23/mm/process_vm_access.c +--- linux-4.1.23.orig/mm/process_vm_access.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/mm/process_vm_access.c 2016-05-02 22:54:00.000000000 +0200 +@@ -194,7 +194,7 @@ + goto free_proc_pages; + } + +- mm = mm_access(task, PTRACE_MODE_ATTACH_REALCREDS); ++ mm = mm_access(task, PTRACE_MODE_ATTACH); + if (!mm || IS_ERR(mm)) { + rc = IS_ERR(mm) ? PTR_ERR(mm) : -ESRCH; + /* +diff -Nur linux-4.1.23.orig/scripts/coccinelle/iterators/use_after_iter.cocci linux-4.1.23/scripts/coccinelle/iterators/use_after_iter.cocci +--- linux-4.1.23.orig/scripts/coccinelle/iterators/use_after_iter.cocci 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/scripts/coccinelle/iterators/use_after_iter.cocci 2016-05-02 22:54:00.000000000 +0200 +@@ -123,7 +123,7 @@ + | + sizeof(<+...c...+>) + | +- &c->member ++&c->member + | + c = E + | +diff -Nur linux-4.1.23.orig/scripts/dtc/checks.c linux-4.1.23/scripts/dtc/checks.c +--- linux-4.1.23.orig/scripts/dtc/checks.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/scripts/dtc/checks.c 2016-05-02 22:54:00.000000000 +0200 @@ -53,7 +53,7 @@ void *data; bool warn, error; @@ -316271,9 +323824,9 @@ diff -Nur linux-4.1.22.orig/scripts/dtc/checks.c linux-4.1.22/scripts/dtc/checks { struct node *dt = bi->dt; int i; -diff -Nur linux-4.1.22.orig/scripts/dtc/data.c linux-4.1.22/scripts/dtc/data.c ---- linux-4.1.22.orig/scripts/dtc/data.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/scripts/dtc/data.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/scripts/dtc/data.c linux-4.1.23/scripts/dtc/data.c +--- linux-4.1.23.orig/scripts/dtc/data.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/scripts/dtc/data.c 2016-05-02 22:54:00.000000000 +0200 @@ -74,7 +74,7 @@ struct data d; char *q; @@ -316309,9 +323862,9 @@ diff -Nur linux-4.1.22.orig/scripts/dtc/data.c linux-4.1.22/scripts/dtc/data.c - return 1; + return true; } -diff -Nur linux-4.1.22.orig/scripts/dtc/dtc-lexer.l linux-4.1.22/scripts/dtc/dtc-lexer.l ---- linux-4.1.22.orig/scripts/dtc/dtc-lexer.l 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/scripts/dtc/dtc-lexer.l 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/scripts/dtc/dtc-lexer.l linux-4.1.23/scripts/dtc/dtc-lexer.l +--- linux-4.1.23.orig/scripts/dtc/dtc-lexer.l 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/scripts/dtc/dtc-lexer.l 2016-05-02 22:54:00.000000000 +0200 @@ -20,7 +20,6 @@ %option noyywrap nounput noinput never-interactive @@ -316449,9 +324002,9 @@ diff -Nur linux-4.1.22.orig/scripts/dtc/dtc-lexer.l linux-4.1.22/scripts/dtc/dtc + + treesource_error = true; } -diff -Nur linux-4.1.22.orig/scripts/dtc/dtc-lexer.lex.c_shipped linux-4.1.22/scripts/dtc/dtc-lexer.lex.c_shipped ---- linux-4.1.22.orig/scripts/dtc/dtc-lexer.lex.c_shipped 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/scripts/dtc/dtc-lexer.lex.c_shipped 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/scripts/dtc/dtc-lexer.lex.c_shipped linux-4.1.23/scripts/dtc/dtc-lexer.lex.c_shipped +--- linux-4.1.23.orig/scripts/dtc/dtc-lexer.lex.c_shipped 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/scripts/dtc/dtc-lexer.lex.c_shipped 2016-05-02 22:54:00.000000000 +0200 @@ -372,8 +372,8 @@ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; @@ -317306,9 +324859,9 @@ diff -Nur linux-4.1.22.orig/scripts/dtc/dtc-lexer.lex.c_shipped linux-4.1.22/scr + treesource_error = true; } -diff -Nur linux-4.1.22.orig/scripts/dtc/dtc-parser.tab.c_shipped linux-4.1.22/scripts/dtc/dtc-parser.tab.c_shipped ---- linux-4.1.22.orig/scripts/dtc/dtc-parser.tab.c_shipped 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/scripts/dtc/dtc-parser.tab.c_shipped 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/scripts/dtc/dtc-parser.tab.c_shipped linux-4.1.23/scripts/dtc/dtc-parser.tab.c_shipped +--- linux-4.1.23.orig/scripts/dtc/dtc-parser.tab.c_shipped 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/scripts/dtc/dtc-parser.tab.c_shipped 2016-05-02 22:54:00.000000000 +0200 @@ -1,19 +1,19 @@ -/* A Bison parser, made by GNU Bison 2.7.12-4996. */ +/* A Bison parser, made by GNU Bison 3.0.2. */ @@ -319978,9 +327531,9 @@ diff -Nur linux-4.1.22.orig/scripts/dtc/dtc-parser.tab.c_shipped linux-4.1.22/sc - return c; + ERROR(&yylloc, "%s", s); } -diff -Nur linux-4.1.22.orig/scripts/dtc/dtc-parser.tab.h_shipped linux-4.1.22/scripts/dtc/dtc-parser.tab.h_shipped ---- linux-4.1.22.orig/scripts/dtc/dtc-parser.tab.h_shipped 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/scripts/dtc/dtc-parser.tab.h_shipped 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/scripts/dtc/dtc-parser.tab.h_shipped linux-4.1.23/scripts/dtc/dtc-parser.tab.h_shipped +--- linux-4.1.23.orig/scripts/dtc/dtc-parser.tab.h_shipped 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/scripts/dtc/dtc-parser.tab.h_shipped 2016-05-02 22:54:00.000000000 +0200 @@ -1,19 +1,19 @@ -/* A Bison parser, made by GNU Bison 2.7.12-4996. */ +/* A Bison parser, made by GNU Bison 3.0.2. */ @@ -320152,9 +327705,9 @@ diff -Nur linux-4.1.22.orig/scripts/dtc/dtc-parser.tab.h_shipped linux-4.1.22/sc -#endif /* ! YYPARSE_PARAM */ #endif /* !YY_YY_DTC_PARSER_TAB_H_INCLUDED */ -diff -Nur linux-4.1.22.orig/scripts/dtc/dtc-parser.y linux-4.1.22/scripts/dtc/dtc-parser.y ---- linux-4.1.22.orig/scripts/dtc/dtc-parser.y 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/scripts/dtc/dtc-parser.y 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/scripts/dtc/dtc-parser.y linux-4.1.23/scripts/dtc/dtc-parser.y +--- linux-4.1.23.orig/scripts/dtc/dtc-parser.y 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/scripts/dtc/dtc-parser.y 2016-05-02 22:54:00.000000000 +0200 @@ -17,31 +17,28 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA @@ -320429,9 +327982,9 @@ diff -Nur linux-4.1.22.orig/scripts/dtc/dtc-parser.y linux-4.1.22/scripts/dtc/dt - return c; + ERROR(&yylloc, "%s", s); } -diff -Nur linux-4.1.22.orig/scripts/dtc/dtc.c linux-4.1.22/scripts/dtc/dtc.c ---- linux-4.1.22.orig/scripts/dtc/dtc.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/scripts/dtc/dtc.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/scripts/dtc/dtc.c linux-4.1.23/scripts/dtc/dtc.c +--- linux-4.1.23.orig/scripts/dtc/dtc.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/scripts/dtc/dtc.c 2016-05-02 22:54:00.000000000 +0200 @@ -29,6 +29,7 @@ int minsize; /* Minimum blob size */ int padsize; /* Additional padding to blob */ @@ -320527,9 +328080,9 @@ diff -Nur linux-4.1.22.orig/scripts/dtc/dtc.c linux-4.1.22/scripts/dtc/dtc.c if (! outf) die("Couldn't open output file %s: %s\n", outname, strerror(errno)); -diff -Nur linux-4.1.22.orig/scripts/dtc/dtc.h linux-4.1.22/scripts/dtc/dtc.h ---- linux-4.1.22.orig/scripts/dtc/dtc.h 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/scripts/dtc/dtc.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/scripts/dtc/dtc.h linux-4.1.23/scripts/dtc/dtc.h +--- linux-4.1.23.orig/scripts/dtc/dtc.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/scripts/dtc/dtc.h 2016-05-02 22:54:00.000000000 +0200 @@ -38,9 +38,9 @@ #include "util.h" @@ -320655,9 +328208,9 @@ diff -Nur linux-4.1.22.orig/scripts/dtc/dtc.h linux-4.1.22/scripts/dtc/dtc.h /* Flattened trees */ -diff -Nur linux-4.1.22.orig/scripts/dtc/flattree.c linux-4.1.22/scripts/dtc/flattree.c ---- linux-4.1.22.orig/scripts/dtc/flattree.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/scripts/dtc/flattree.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/scripts/dtc/flattree.c linux-4.1.23/scripts/dtc/flattree.c +--- linux-4.1.23.orig/scripts/dtc/flattree.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/scripts/dtc/flattree.c 2016-05-02 22:54:00.000000000 +0200 @@ -261,7 +261,13 @@ { struct property *prop; @@ -320825,9 +328378,9 @@ diff -Nur linux-4.1.22.orig/scripts/dtc/flattree.c linux-4.1.22/scripts/dtc/flat emit->endnode(etarget, tree->labels); } -diff -Nur linux-4.1.22.orig/scripts/dtc/fstree.c linux-4.1.22/scripts/dtc/fstree.c ---- linux-4.1.22.orig/scripts/dtc/fstree.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/scripts/dtc/fstree.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/scripts/dtc/fstree.c linux-4.1.23/scripts/dtc/fstree.c +--- linux-4.1.23.orig/scripts/dtc/fstree.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/scripts/dtc/fstree.c 2016-05-02 22:54:00.000000000 +0200 @@ -37,26 +37,26 @@ tree = build_node(NULL, NULL); @@ -320876,9 +328429,9 @@ diff -Nur linux-4.1.22.orig/scripts/dtc/fstree.c linux-4.1.22/scripts/dtc/fstree } closedir(d); -diff -Nur linux-4.1.22.orig/scripts/dtc/livetree.c linux-4.1.22/scripts/dtc/livetree.c ---- linux-4.1.22.orig/scripts/dtc/livetree.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/scripts/dtc/livetree.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/scripts/dtc/livetree.c linux-4.1.23/scripts/dtc/livetree.c +--- linux-4.1.23.orig/scripts/dtc/livetree.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/scripts/dtc/livetree.c 2016-05-02 22:54:00.000000000 +0200 @@ -511,7 +511,9 @@ struct node *get_node_by_ref(struct node *tree, const char *ref) @@ -320890,9 +328443,9 @@ diff -Nur linux-4.1.22.orig/scripts/dtc/livetree.c linux-4.1.22/scripts/dtc/live return get_node_by_path(tree, ref); else return get_node_by_label(tree, ref); -diff -Nur linux-4.1.22.orig/scripts/dtc/srcpos.c linux-4.1.22/scripts/dtc/srcpos.c ---- linux-4.1.22.orig/scripts/dtc/srcpos.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/scripts/dtc/srcpos.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/scripts/dtc/srcpos.c linux-4.1.23/scripts/dtc/srcpos.c +--- linux-4.1.23.orig/scripts/dtc/srcpos.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/scripts/dtc/srcpos.c 2016-05-02 22:54:00.000000000 +0200 @@ -34,7 +34,7 @@ static struct search_path *search_path_head, **search_path_tail; @@ -320993,9 +328546,9 @@ diff -Nur linux-4.1.22.orig/scripts/dtc/srcpos.c linux-4.1.22/scripts/dtc/srcpos va_end(va); } -diff -Nur linux-4.1.22.orig/scripts/dtc/srcpos.h linux-4.1.22/scripts/dtc/srcpos.h ---- linux-4.1.22.orig/scripts/dtc/srcpos.h 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/scripts/dtc/srcpos.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/scripts/dtc/srcpos.h linux-4.1.23/scripts/dtc/srcpos.h +--- linux-4.1.23.orig/scripts/dtc/srcpos.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/scripts/dtc/srcpos.h 2016-05-02 22:54:00.000000000 +0200 @@ -21,6 +21,7 @@ #define _SRCPOS_H_ @@ -321032,9 +328585,9 @@ diff -Nur linux-4.1.22.orig/scripts/dtc/srcpos.h linux-4.1.22/scripts/dtc/srcpos extern void srcpos_set_line(char *f, int l); -diff -Nur linux-4.1.22.orig/scripts/dtc/treesource.c linux-4.1.22/scripts/dtc/treesource.c ---- linux-4.1.22.orig/scripts/dtc/treesource.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/scripts/dtc/treesource.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/scripts/dtc/treesource.c linux-4.1.23/scripts/dtc/treesource.c +--- linux-4.1.23.orig/scripts/dtc/treesource.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/scripts/dtc/treesource.c 2016-05-02 22:54:00.000000000 +0200 @@ -26,12 +26,12 @@ extern YYLTYPE yylloc; @@ -321089,9 +328642,9 @@ diff -Nur linux-4.1.22.orig/scripts/dtc/treesource.c linux-4.1.22/scripts/dtc/tr if ((const void *)bp >= propend) break; fprintf(f, " "); -diff -Nur linux-4.1.22.orig/scripts/dtc/util.c linux-4.1.22/scripts/dtc/util.c ---- linux-4.1.22.orig/scripts/dtc/util.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/scripts/dtc/util.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/scripts/dtc/util.c linux-4.1.23/scripts/dtc/util.c +--- linux-4.1.23.orig/scripts/dtc/util.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/scripts/dtc/util.c 2016-05-02 22:54:00.000000000 +0200 @@ -39,11 +39,11 @@ char *xstrdup(const char *s) { @@ -321148,9 +328701,9 @@ diff -Nur linux-4.1.22.orig/scripts/dtc/util.c linux-4.1.22/scripts/dtc/util.c printf(">"); } else { printf(" = ["); -diff -Nur linux-4.1.22.orig/scripts/dtc/util.h linux-4.1.22/scripts/dtc/util.h ---- linux-4.1.22.orig/scripts/dtc/util.h 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/scripts/dtc/util.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/scripts/dtc/util.h linux-4.1.23/scripts/dtc/util.h +--- linux-4.1.23.orig/scripts/dtc/util.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/scripts/dtc/util.h 2016-05-02 22:54:00.000000000 +0200 @@ -2,6 +2,7 @@ #define _UTIL_H @@ -321176,15 +328729,15 @@ diff -Nur linux-4.1.22.orig/scripts/dtc/util.h linux-4.1.22/scripts/dtc/util.h /* * Parse an escaped character starting at index i in string s. The resulting -diff -Nur linux-4.1.22.orig/scripts/dtc/version_gen.h linux-4.1.22/scripts/dtc/version_gen.h ---- linux-4.1.22.orig/scripts/dtc/version_gen.h 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/scripts/dtc/version_gen.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/scripts/dtc/version_gen.h linux-4.1.23/scripts/dtc/version_gen.h +--- linux-4.1.23.orig/scripts/dtc/version_gen.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/scripts/dtc/version_gen.h 2016-05-02 22:54:00.000000000 +0200 @@ -1 +1 @@ -#define DTC_VERSION "DTC 1.4.0-dirty" +#define DTC_VERSION "DTC 1.4.1-g36c70742" -diff -Nur linux-4.1.22.orig/scripts/knlinfo linux-4.1.22/scripts/knlinfo ---- linux-4.1.22.orig/scripts/knlinfo 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/scripts/knlinfo 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/scripts/knlinfo linux-4.1.23/scripts/knlinfo +--- linux-4.1.23.orig/scripts/knlinfo 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/scripts/knlinfo 2016-05-02 22:54:00.000000000 +0200 @@ -0,0 +1,168 @@ +#!/usr/bin/env perl +# ---------------------------------------------------------------------- @@ -321354,9 +328907,9 @@ diff -Nur linux-4.1.22.orig/scripts/knlinfo linux-4.1.22/scripts/knlinfo + my ($data) = @_; + return unpack('H*', $data); +} -diff -Nur linux-4.1.22.orig/scripts/mkknlimg linux-4.1.22/scripts/mkknlimg ---- linux-4.1.22.orig/scripts/mkknlimg 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/scripts/mkknlimg 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/scripts/mkknlimg linux-4.1.23/scripts/mkknlimg +--- linux-4.1.23.orig/scripts/mkknlimg 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/scripts/mkknlimg 2016-05-02 22:54:00.000000000 +0200 @@ -0,0 +1,244 @@ +#!/usr/bin/env perl +# ---------------------------------------------------------------------- @@ -321602,9 +329155,119 @@ diff -Nur linux-4.1.22.orig/scripts/mkknlimg linux-4.1.22/scripts/mkknlimg + my $val = $configs->{$wanted} || 'n'; + return (($val eq 'y') || ($val eq '1')); +} -diff -Nur linux-4.1.22.orig/sound/arm/Kconfig linux-4.1.22/sound/arm/Kconfig ---- linux-4.1.22.orig/sound/arm/Kconfig 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/sound/arm/Kconfig 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/security/commoncap.c linux-4.1.23/security/commoncap.c +--- linux-4.1.23.orig/security/commoncap.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/security/commoncap.c 2016-05-02 22:54:00.000000000 +0200 +@@ -142,17 +142,12 @@ + { + int ret = 0; + const struct cred *cred, *child_cred; +- const kernel_cap_t *caller_caps; + + rcu_read_lock(); + cred = current_cred(); + child_cred = __task_cred(child); +- if (mode & PTRACE_MODE_FSCREDS) +- caller_caps = &cred->cap_effective; +- else +- caller_caps = &cred->cap_permitted; + if (cred->user_ns == child_cred->user_ns && +- cap_issubset(child_cred->cap_permitted, *caller_caps)) ++ cap_issubset(child_cred->cap_permitted, cred->cap_permitted)) + goto out; + if (ns_capable(child_cred->user_ns, CAP_SYS_PTRACE)) + goto out; +diff -Nur linux-4.1.23.orig/security/keys/encrypted-keys/encrypted.c linux-4.1.23/security/keys/encrypted-keys/encrypted.c +--- linux-4.1.23.orig/security/keys/encrypted-keys/encrypted.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/security/keys/encrypted-keys/encrypted.c 2016-05-02 22:54:00.000000000 +0200 +@@ -845,8 +845,6 @@ + size_t datalen = prep->datalen; + int ret = 0; + +- if (test_bit(KEY_FLAG_NEGATIVE, &key->flags)) +- return -ENOKEY; + if (datalen <= 0 || datalen > 32767 || !prep->data) + return -EINVAL; + +diff -Nur linux-4.1.23.orig/security/keys/trusted.c linux-4.1.23/security/keys/trusted.c +--- linux-4.1.23.orig/security/keys/trusted.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/security/keys/trusted.c 2016-05-02 22:54:00.000000000 +0200 +@@ -984,16 +984,13 @@ + */ + static int trusted_update(struct key *key, struct key_preparsed_payload *prep) + { +- struct trusted_key_payload *p; ++ struct trusted_key_payload *p = key->payload.data; + struct trusted_key_payload *new_p; + struct trusted_key_options *new_o; + size_t datalen = prep->datalen; + char *datablob; + int ret = 0; + +- if (test_bit(KEY_FLAG_NEGATIVE, &key->flags)) +- return -ENOKEY; +- p = key->payload.data; + if (!p->migratable) + return -EPERM; + if (datalen <= 0 || datalen > 32767 || !prep->data) +diff -Nur linux-4.1.23.orig/security/keys/user_defined.c linux-4.1.23/security/keys/user_defined.c +--- linux-4.1.23.orig/security/keys/user_defined.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/security/keys/user_defined.c 2016-05-02 22:54:00.000000000 +0200 +@@ -120,10 +120,7 @@ + + if (ret == 0) { + /* attach the new data, displacing the old */ +- if (!test_bit(KEY_FLAG_NEGATIVE, &key->flags)) +- zap = key->payload.data; +- else +- zap = NULL; ++ zap = key->payload.data; + rcu_assign_keypointer(key, upayload); + key->expiry = 0; + } +diff -Nur linux-4.1.23.orig/security/smack/smack_lsm.c linux-4.1.23/security/smack/smack_lsm.c +--- linux-4.1.23.orig/security/smack/smack_lsm.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/security/smack/smack_lsm.c 2016-05-02 22:54:00.000000000 +0200 +@@ -354,10 +354,12 @@ + */ + static inline unsigned int smk_ptrace_mode(unsigned int mode) + { +- if (mode & PTRACE_MODE_ATTACH) +- return MAY_READWRITE; +- if (mode & PTRACE_MODE_READ) ++ switch (mode) { ++ case PTRACE_MODE_READ: + return MAY_READ; ++ case PTRACE_MODE_ATTACH: ++ return MAY_READWRITE; ++ } + + return 0; + } +diff -Nur linux-4.1.23.orig/security/yama/yama_lsm.c linux-4.1.23/security/yama/yama_lsm.c +--- linux-4.1.23.orig/security/yama/yama_lsm.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/security/yama/yama_lsm.c 2016-05-02 22:54:00.000000000 +0200 +@@ -292,7 +292,7 @@ + return rc; + + /* require ptrace target be a child of ptracer on attach */ +- if (mode & PTRACE_MODE_ATTACH) { ++ if (mode == PTRACE_MODE_ATTACH) { + switch (ptrace_scope) { + case YAMA_SCOPE_DISABLED: + /* No additional restrictions. */ +@@ -318,7 +318,7 @@ + } + } + +- if (rc && (mode & PTRACE_MODE_NOAUDIT) == 0) { ++ if (rc) { + printk_ratelimited(KERN_NOTICE + "ptrace of pid %d was attempted by: %s (pid %d)\n", + child->pid, current->comm, current->pid); +diff -Nur linux-4.1.23.orig/sound/arm/Kconfig linux-4.1.23/sound/arm/Kconfig +--- linux-4.1.23.orig/sound/arm/Kconfig 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/sound/arm/Kconfig 2016-05-02 22:54:00.000000000 +0200 @@ -40,5 +40,13 @@ Say Y or M if you want to support any AC97 codec attached to the PXA2xx AC97 interface. @@ -321619,9 +329282,9 @@ diff -Nur linux-4.1.22.orig/sound/arm/Kconfig linux-4.1.22/sound/arm/Kconfig + endif # SND_ARM -diff -Nur linux-4.1.22.orig/sound/arm/Makefile linux-4.1.22/sound/arm/Makefile ---- linux-4.1.22.orig/sound/arm/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/sound/arm/Makefile 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/sound/arm/Makefile linux-4.1.23/sound/arm/Makefile +--- linux-4.1.23.orig/sound/arm/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/sound/arm/Makefile 2016-05-02 22:54:00.000000000 +0200 @@ -14,3 +14,8 @@ obj-$(CONFIG_SND_PXA2XX_AC97) += snd-pxa2xx-ac97.o @@ -321631,9 +329294,9 @@ diff -Nur linux-4.1.22.orig/sound/arm/Makefile linux-4.1.22/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-4.1.22.orig/sound/arm/bcm2835-ctl.c linux-4.1.22/sound/arm/bcm2835-ctl.c ---- linux-4.1.22.orig/sound/arm/bcm2835-ctl.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/sound/arm/bcm2835-ctl.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/sound/arm/bcm2835-ctl.c linux-4.1.23/sound/arm/bcm2835-ctl.c +--- linux-4.1.23.orig/sound/arm/bcm2835-ctl.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/sound/arm/bcm2835-ctl.c 2016-05-02 22:54:00.000000000 +0200 @@ -0,0 +1,323 @@ +/***************************************************************************** +* Copyright 2011 Broadcom Corporation. All rights reserved. @@ -321958,9 +329621,9 @@ diff -Nur linux-4.1.22.orig/sound/arm/bcm2835-ctl.c linux-4.1.22/sound/arm/bcm28 + } + return 0; +} -diff -Nur linux-4.1.22.orig/sound/arm/bcm2835-pcm.c linux-4.1.22/sound/arm/bcm2835-pcm.c ---- linux-4.1.22.orig/sound/arm/bcm2835-pcm.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/sound/arm/bcm2835-pcm.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/sound/arm/bcm2835-pcm.c linux-4.1.23/sound/arm/bcm2835-pcm.c +--- linux-4.1.23.orig/sound/arm/bcm2835-pcm.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/sound/arm/bcm2835-pcm.c 2016-05-02 22:54:00.000000000 +0200 @@ -0,0 +1,557 @@ +/***************************************************************************** +* Copyright 2011 Broadcom Corporation. All rights reserved. @@ -322519,9 +330182,9 @@ diff -Nur linux-4.1.22.orig/sound/arm/bcm2835-pcm.c linux-4.1.22/sound/arm/bcm28 + + return 0; +} -diff -Nur linux-4.1.22.orig/sound/arm/bcm2835-vchiq.c linux-4.1.22/sound/arm/bcm2835-vchiq.c ---- linux-4.1.22.orig/sound/arm/bcm2835-vchiq.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/sound/arm/bcm2835-vchiq.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/sound/arm/bcm2835-vchiq.c linux-4.1.23/sound/arm/bcm2835-vchiq.c +--- linux-4.1.23.orig/sound/arm/bcm2835-vchiq.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/sound/arm/bcm2835-vchiq.c 2016-05-02 22:54:00.000000000 +0200 @@ -0,0 +1,902 @@ +/***************************************************************************** +* Copyright 2011 Broadcom Corporation. All rights reserved. @@ -323425,9 +331088,9 @@ diff -Nur linux-4.1.22.orig/sound/arm/bcm2835-vchiq.c linux-4.1.22/sound/arm/bcm + +module_param(force_bulk, bool, 0444); +MODULE_PARM_DESC(force_bulk, "Force use of vchiq bulk for audio"); -diff -Nur linux-4.1.22.orig/sound/arm/bcm2835.c linux-4.1.22/sound/arm/bcm2835.c ---- linux-4.1.22.orig/sound/arm/bcm2835.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/sound/arm/bcm2835.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/sound/arm/bcm2835.c linux-4.1.23/sound/arm/bcm2835.c +--- linux-4.1.23.orig/sound/arm/bcm2835.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/sound/arm/bcm2835.c 2016-05-02 22:54:00.000000000 +0200 @@ -0,0 +1,511 @@ +/***************************************************************************** +* Copyright 2011 Broadcom Corporation. All rights reserved. @@ -323940,9 +331603,9 @@ diff -Nur linux-4.1.22.orig/sound/arm/bcm2835.c linux-4.1.22/sound/arm/bcm2835.c +MODULE_DESCRIPTION("Alsa driver for BCM2835 chip"); +MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:bcm2835_alsa"); -diff -Nur linux-4.1.22.orig/sound/arm/bcm2835.h linux-4.1.22/sound/arm/bcm2835.h ---- linux-4.1.22.orig/sound/arm/bcm2835.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/sound/arm/bcm2835.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/sound/arm/bcm2835.h linux-4.1.23/sound/arm/bcm2835.h +--- linux-4.1.23.orig/sound/arm/bcm2835.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/sound/arm/bcm2835.h 2016-05-02 22:54:00.000000000 +0200 @@ -0,0 +1,167 @@ +/***************************************************************************** +* Copyright 2011 Broadcom Corporation. All rights reserved. @@ -324111,9 +331774,9 @@ diff -Nur linux-4.1.22.orig/sound/arm/bcm2835.h linux-4.1.22/sound/arm/bcm2835.h +void bcm2835_audio_flush_playback_buffers(bcm2835_alsa_stream_t * alsa_stream); + +#endif /* __SOUND_ARM_BCM2835_H */ -diff -Nur linux-4.1.22.orig/sound/arm/vc_vchi_audioserv_defs.h linux-4.1.22/sound/arm/vc_vchi_audioserv_defs.h ---- linux-4.1.22.orig/sound/arm/vc_vchi_audioserv_defs.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/sound/arm/vc_vchi_audioserv_defs.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/sound/arm/vc_vchi_audioserv_defs.h linux-4.1.23/sound/arm/vc_vchi_audioserv_defs.h +--- linux-4.1.23.orig/sound/arm/vc_vchi_audioserv_defs.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/sound/arm/vc_vchi_audioserv_defs.h 2016-05-02 22:54:00.000000000 +0200 @@ -0,0 +1,116 @@ +/***************************************************************************** +* Copyright 2011 Broadcom Corporation. All rights reserved. @@ -324231,10 +331894,506 @@ diff -Nur linux-4.1.22.orig/sound/arm/vc_vchi_audioserv_defs.h linux-4.1.22/soun +} VC_AUDIO_MSG_T; + +#endif // _VC_AUDIO_DEFS_H_ -diff -Nur linux-4.1.22.orig/sound/soc/bcm/Kconfig linux-4.1.22/sound/soc/bcm/Kconfig ---- linux-4.1.22.orig/sound/soc/bcm/Kconfig 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/sound/soc/bcm/Kconfig 2016-04-29 18:02:49.000000000 +0200 -@@ -7,3 +7,71 @@ +diff -Nur linux-4.1.23.orig/sound/hda/hdac_device.c linux-4.1.23/sound/hda/hdac_device.c +--- linux-4.1.23.orig/sound/hda/hdac_device.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/sound/hda/hdac_device.c 2016-05-02 22:54:00.000000000 +0200 +@@ -500,27 +500,23 @@ + * This function calls the runtime PM helper to power up the given codec. + * Unlike snd_hdac_power_up_pm(), you should call this only for the code + * path that isn't included in PM path. Otherwise it gets stuck. +- * +- * Returns zero if successful, or a negative error code. + */ +-int snd_hdac_power_up(struct hdac_device *codec) ++void snd_hdac_power_up(struct hdac_device *codec) + { +- return pm_runtime_get_sync(&codec->dev); ++ pm_runtime_get_sync(&codec->dev); + } + EXPORT_SYMBOL_GPL(snd_hdac_power_up); + + /** + * snd_hdac_power_down - power down the codec + * @codec: the codec object +- * +- * Returns zero if successful, or a negative error code. + */ +-int snd_hdac_power_down(struct hdac_device *codec) ++void snd_hdac_power_down(struct hdac_device *codec) + { + struct device *dev = &codec->dev; + + pm_runtime_mark_last_busy(dev); +- return pm_runtime_put_autosuspend(dev); ++ pm_runtime_put_autosuspend(dev); + } + EXPORT_SYMBOL_GPL(snd_hdac_power_down); + +@@ -532,14 +528,11 @@ + * which may be called by PM suspend/resume again. OTOH, if a power-up + * call must wake up the sleeper (e.g. in a kctl callback), use + * snd_hdac_power_up() instead. +- * +- * Returns zero if successful, or a negative error code. + */ +-int snd_hdac_power_up_pm(struct hdac_device *codec) ++void snd_hdac_power_up_pm(struct hdac_device *codec) + { + if (!atomic_inc_not_zero(&codec->in_pm)) +- return snd_hdac_power_up(codec); +- return 0; ++ snd_hdac_power_up(codec); + } + EXPORT_SYMBOL_GPL(snd_hdac_power_up_pm); + +@@ -549,14 +542,11 @@ + * + * Like snd_hdac_power_up_pm(), this function is used in a recursive + * code path like init code which may be called by PM suspend/resume again. +- * +- * Returns zero if successful, or a negative error code. + */ +-int snd_hdac_power_down_pm(struct hdac_device *codec) ++void snd_hdac_power_down_pm(struct hdac_device *codec) + { + if (atomic_dec_if_positive(&codec->in_pm) < 0) +- return snd_hdac_power_down(codec); +- return 0; ++ snd_hdac_power_down(codec); + } + EXPORT_SYMBOL_GPL(snd_hdac_power_down_pm); + #endif +diff -Nur linux-4.1.23.orig/sound/hda/hdac_regmap.c linux-4.1.23/sound/hda/hdac_regmap.c +--- linux-4.1.23.orig/sound/hda/hdac_regmap.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/sound/hda/hdac_regmap.c 2016-05-02 22:54:00.000000000 +0200 +@@ -410,9 +410,8 @@ + + err = reg_raw_write(codec, reg, val); + if (err == -EAGAIN) { +- err = snd_hdac_power_up_pm(codec); +- if (!err) +- err = reg_raw_write(codec, reg, val); ++ snd_hdac_power_up_pm(codec); ++ err = reg_raw_write(codec, reg, val); + snd_hdac_power_down_pm(codec); + } + return err; +@@ -443,9 +442,8 @@ + + err = reg_raw_read(codec, reg, val); + if (err == -EAGAIN) { +- err = snd_hdac_power_up_pm(codec); +- if (!err) +- err = reg_raw_read(codec, reg, val); ++ snd_hdac_power_up_pm(codec); ++ err = reg_raw_read(codec, reg, val); + snd_hdac_power_down_pm(codec); + } + return err; +diff -Nur linux-4.1.23.orig/sound/pci/hda/hda_generic.c linux-4.1.23/sound/pci/hda/hda_generic.c +--- linux-4.1.23.orig/sound/pci/hda/hda_generic.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/sound/pci/hda/hda_generic.c 2016-05-02 22:54:00.000000000 +0200 +@@ -771,6 +771,9 @@ + unsigned int caps; + unsigned int mask, val; + ++ if (!enable && is_active_nid(codec, nid, dir, idx_to_check)) ++ return; ++ + caps = query_amp_caps(codec, nid, dir); + val = get_amp_val_to_activate(codec, nid, dir, caps, enable); + mask = get_amp_mask_to_modify(codec, nid, dir, idx_to_check, caps); +@@ -781,22 +784,12 @@ + update_amp(codec, nid, dir, idx, mask, val); + } + +-static void check_and_activate_amp(struct hda_codec *codec, hda_nid_t nid, +- int dir, int idx, int idx_to_check, +- bool enable) +-{ +- /* check whether the given amp is still used by others */ +- if (!enable && is_active_nid(codec, nid, dir, idx_to_check)) +- return; +- activate_amp(codec, nid, dir, idx, idx_to_check, enable); +-} +- + static void activate_amp_out(struct hda_codec *codec, struct nid_path *path, + int i, bool enable) + { + hda_nid_t nid = path->path[i]; + init_amp(codec, nid, HDA_OUTPUT, 0); +- check_and_activate_amp(codec, nid, HDA_OUTPUT, 0, 0, enable); ++ activate_amp(codec, nid, HDA_OUTPUT, 0, 0, enable); + } + + static void activate_amp_in(struct hda_codec *codec, struct nid_path *path, +@@ -824,16 +817,9 @@ + * when aa-mixer is available, we need to enable the path as well + */ + for (n = 0; n < nums; n++) { +- if (n != idx) { +- if (conn[n] != spec->mixer_merge_nid) +- continue; +- /* when aamix is disabled, force to off */ +- if (!add_aamix) { +- activate_amp(codec, nid, HDA_INPUT, n, n, false); +- continue; +- } +- } +- check_and_activate_amp(codec, nid, HDA_INPUT, n, idx, enable); ++ if (n != idx && (!add_aamix || conn[n] != spec->mixer_merge_nid)) ++ continue; ++ activate_amp(codec, nid, HDA_INPUT, n, idx, enable); + } + } + +@@ -1594,12 +1580,6 @@ + return found; + } + +-static inline bool has_aamix_out_paths(struct hda_gen_spec *spec) +-{ +- return spec->aamix_out_paths[0] || spec->aamix_out_paths[1] || +- spec->aamix_out_paths[2]; +-} +- + /* create a new path including aamix if available, and return its index */ + static int check_aamix_out_path(struct hda_codec *codec, int path_idx) + { +@@ -2442,51 +2422,25 @@ + } + } + +-/* re-initialize the output paths; only called from loopback_mixing_put() */ +-static void update_output_paths(struct hda_codec *codec, int num_outs, +- const int *paths) +-{ +- struct hda_gen_spec *spec = codec->spec; +- struct nid_path *path; +- int i; +- +- for (i = 0; i < num_outs; i++) { +- path = snd_hda_get_path_from_idx(codec, paths[i]); +- if (path) +- snd_hda_activate_path(codec, path, path->active, +- spec->aamix_mode); +- } +-} +- + static int loopback_mixing_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) + { + struct hda_codec *codec = snd_kcontrol_chip(kcontrol); + struct hda_gen_spec *spec = codec->spec; +- const struct auto_pin_cfg *cfg = &spec->autocfg; + unsigned int val = ucontrol->value.enumerated.item[0]; + + if (val == spec->aamix_mode) + return 0; + spec->aamix_mode = val; +- if (has_aamix_out_paths(spec)) { +- update_aamix_paths(codec, val, spec->out_paths[0], +- spec->aamix_out_paths[0], +- cfg->line_out_type); +- update_aamix_paths(codec, val, spec->hp_paths[0], +- spec->aamix_out_paths[1], +- AUTO_PIN_HP_OUT); +- update_aamix_paths(codec, val, spec->speaker_paths[0], +- spec->aamix_out_paths[2], +- AUTO_PIN_SPEAKER_OUT); +- } else { +- update_output_paths(codec, cfg->line_outs, spec->out_paths); +- if (cfg->line_out_type != AUTO_PIN_HP_OUT) +- update_output_paths(codec, cfg->hp_outs, spec->hp_paths); +- if (cfg->line_out_type != AUTO_PIN_SPEAKER_OUT) +- update_output_paths(codec, cfg->speaker_outs, +- spec->speaker_paths); +- } ++ update_aamix_paths(codec, val, spec->out_paths[0], ++ spec->aamix_out_paths[0], ++ spec->autocfg.line_out_type); ++ update_aamix_paths(codec, val, spec->hp_paths[0], ++ spec->aamix_out_paths[1], ++ AUTO_PIN_HP_OUT); ++ update_aamix_paths(codec, val, spec->speaker_paths[0], ++ spec->aamix_out_paths[2], ++ AUTO_PIN_SPEAKER_OUT); + return 1; + } + +@@ -2504,13 +2458,12 @@ + + if (!spec->mixer_nid) + return 0; ++ if (!(spec->aamix_out_paths[0] || spec->aamix_out_paths[1] || ++ spec->aamix_out_paths[2])) ++ return 0; + if (!snd_hda_gen_add_kctl(spec, NULL, &loopback_mixing_enum)) + return -ENOMEM; + spec->have_aamix_ctl = 1; +- /* if no explicit aamix path is present (e.g. for Realtek codecs), +- * enable aamix as default -- just for compatibility +- */ +- spec->aamix_mode = !has_aamix_out_paths(spec); + return 0; + } + +@@ -5711,8 +5664,6 @@ + + if (!spec->have_aamix_ctl) + return; +- if (!has_aamix_out_paths(spec)) +- return; + update_aamix_paths(codec, spec->aamix_mode, spec->out_paths[0], + spec->aamix_out_paths[0], + spec->autocfg.line_out_type); +diff -Nur linux-4.1.23.orig/sound/pci/hda/patch_cirrus.c linux-4.1.23/sound/pci/hda/patch_cirrus.c +--- linux-4.1.23.orig/sound/pci/hda/patch_cirrus.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/sound/pci/hda/patch_cirrus.c 2016-05-02 22:54:00.000000000 +0200 +@@ -174,12 +174,8 @@ + snd_hda_gen_update_outputs(codec); + + if (spec->gpio_eapd_hp || spec->gpio_eapd_speaker) { +- if (spec->gen.automute_speaker) +- spec->gpio_data = spec->gen.hp_jack_present ? +- spec->gpio_eapd_hp : spec->gpio_eapd_speaker; +- else +- spec->gpio_data = +- spec->gpio_eapd_hp | spec->gpio_eapd_speaker; ++ spec->gpio_data = spec->gen.hp_jack_present ? ++ spec->gpio_eapd_hp : spec->gpio_eapd_speaker; + snd_hda_codec_write(codec, 0x01, 0, + AC_VERB_SET_GPIO_DATA, spec->gpio_data); + } +diff -Nur linux-4.1.23.orig/sound/pci/hda/patch_conexant.c linux-4.1.23/sound/pci/hda/patch_conexant.c +--- linux-4.1.23.orig/sound/pci/hda/patch_conexant.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/sound/pci/hda/patch_conexant.c 2016-05-02 22:54:00.000000000 +0200 +@@ -204,13 +204,8 @@ + { + struct conexant_spec *spec = codec->spec; + +- switch (codec->core.vendor_id) { +- case 0x14f150f2: /* CX20722 */ +- case 0x14f150f4: /* CX20724 */ +- break; +- default: ++ if (codec->core.vendor_id != 0x14f150f2) + return; +- } + + /* Turn the CX20722 codec into D3 to avoid spurious noises + from the internal speaker during (and after) reboot */ +diff -Nur linux-4.1.23.orig/sound/pci/hda/patch_hdmi.c linux-4.1.23/sound/pci/hda/patch_hdmi.c +--- linux-4.1.23.orig/sound/pci/hda/patch_hdmi.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/sound/pci/hda/patch_hdmi.c 2016-05-02 22:54:00.000000000 +0200 +@@ -1526,57 +1526,6 @@ + return 0; + } + +-/* update per_pin ELD from the given new ELD; +- * setup info frame and notification accordingly +- */ +-static void update_eld(struct hda_codec *codec, +- struct hdmi_spec_per_pin *per_pin, +- struct hdmi_eld *eld) +-{ +- struct hdmi_eld *pin_eld = &per_pin->sink_eld; +- bool old_eld_valid = pin_eld->eld_valid; +- bool eld_changed; +- +- if (eld->eld_valid) +- snd_hdmi_show_eld(codec, &eld->info); +- +- eld_changed = (pin_eld->eld_valid != eld->eld_valid); +- if (eld->eld_valid && pin_eld->eld_valid) +- if (pin_eld->eld_size != eld->eld_size || +- memcmp(pin_eld->eld_buffer, eld->eld_buffer, +- eld->eld_size) != 0) +- eld_changed = true; +- +- pin_eld->monitor_present = eld->monitor_present; +- pin_eld->eld_valid = eld->eld_valid; +- pin_eld->eld_size = eld->eld_size; +- if (eld->eld_valid) +- memcpy(pin_eld->eld_buffer, eld->eld_buffer, eld->eld_size); +- pin_eld->info = eld->info; +- +- /* +- * Re-setup pin and infoframe. This is needed e.g. when +- * - sink is first plugged-in +- * - transcoder can change during stream playback on Haswell +- * and this can make HW reset converter selection on a pin. +- */ +- if (eld->eld_valid && !old_eld_valid && per_pin->setup) { +- if (is_haswell_plus(codec) || is_valleyview_plus(codec)) { +- intel_verify_pin_cvt_connect(codec, per_pin); +- intel_not_share_assigned_cvt(codec, per_pin->pin_nid, +- per_pin->mux_idx); +- } +- +- hdmi_setup_audio_infoframe(codec, per_pin, per_pin->non_pcm); +- } +- +- if (eld_changed) +- snd_ctl_notify(codec->card, +- SNDRV_CTL_EVENT_MASK_VALUE | +- SNDRV_CTL_EVENT_MASK_INFO, +- &per_pin->eld_ctl->id); +-} +- + static bool hdmi_present_sense(struct hdmi_spec_per_pin *per_pin, int repoll) + { + struct hda_jack_tbl *jack; +@@ -1594,6 +1543,8 @@ + * the unsolicited response to avoid custom WARs. + */ + int present; ++ bool update_eld = false; ++ bool eld_changed = false; + bool ret; + + snd_hda_power_up_pm(codec); +@@ -1601,8 +1552,6 @@ + + mutex_lock(&per_pin->lock); + pin_eld->monitor_present = !!(present & AC_PINSENSE_PRESENCE); +- eld->monitor_present = pin_eld->monitor_present; +- + if (pin_eld->monitor_present) + eld->eld_valid = !!(present & AC_PINSENSE_ELDV); + else +@@ -1622,13 +1571,61 @@ + eld->eld_size) < 0) + eld->eld_valid = false; + } ++ ++ if (eld->eld_valid) { ++ snd_hdmi_show_eld(codec, &eld->info); ++ update_eld = true; ++ } ++ else if (repoll) { ++ schedule_delayed_work(&per_pin->work, ++ msecs_to_jiffies(300)); ++ goto unlock; ++ } + } + +- if (!eld->eld_valid && repoll) +- schedule_delayed_work(&per_pin->work, msecs_to_jiffies(300)); +- else +- update_eld(codec, per_pin, eld); ++ if (pin_eld->eld_valid != eld->eld_valid) ++ eld_changed = true; ++ ++ if (pin_eld->eld_valid && !eld->eld_valid) ++ update_eld = true; ++ ++ if (update_eld) { ++ bool old_eld_valid = pin_eld->eld_valid; ++ pin_eld->eld_valid = eld->eld_valid; ++ if (pin_eld->eld_size != eld->eld_size || ++ memcmp(pin_eld->eld_buffer, eld->eld_buffer, ++ eld->eld_size) != 0) { ++ memcpy(pin_eld->eld_buffer, eld->eld_buffer, ++ eld->eld_size); ++ eld_changed = true; ++ } ++ pin_eld->eld_size = eld->eld_size; ++ pin_eld->info = eld->info; ++ ++ /* ++ * Re-setup pin and infoframe. This is needed e.g. when ++ * - sink is first plugged-in (infoframe is not set up if !monitor_present) ++ * - transcoder can change during stream playback on Haswell ++ * and this can make HW reset converter selection on a pin. ++ */ ++ if (eld->eld_valid && !old_eld_valid && per_pin->setup) { ++ if (is_haswell_plus(codec) || ++ is_valleyview_plus(codec)) { ++ intel_verify_pin_cvt_connect(codec, per_pin); ++ intel_not_share_assigned_cvt(codec, pin_nid, ++ per_pin->mux_idx); ++ } ++ ++ hdmi_setup_audio_infoframe(codec, per_pin, ++ per_pin->non_pcm); ++ } ++ } + ++ if (eld_changed) ++ snd_ctl_notify(codec->card, ++ SNDRV_CTL_EVENT_MASK_VALUE | SNDRV_CTL_EVENT_MASK_INFO, ++ &per_pin->eld_ctl->id); ++ unlock: + ret = !repoll || !pin_eld->monitor_present || pin_eld->eld_valid; + + jack = snd_hda_jack_tbl_get(codec, pin_nid); +@@ -3339,8 +3336,6 @@ + { .id = 0x10de0071, .name = "GPU 71 HDMI/DP", .patch = patch_nvhdmi }, + { .id = 0x10de0072, .name = "GPU 72 HDMI/DP", .patch = patch_nvhdmi }, + { .id = 0x10de007d, .name = "GPU 7d HDMI/DP", .patch = patch_nvhdmi }, +-{ .id = 0x10de0082, .name = "GPU 82 HDMI/DP", .patch = patch_nvhdmi }, +-{ .id = 0x10de0083, .name = "GPU 83 HDMI/DP", .patch = patch_nvhdmi }, + { .id = 0x10de8001, .name = "MCP73 HDMI", .patch = patch_nvhdmi_2ch }, + { .id = 0x11069f80, .name = "VX900 HDMI/DP", .patch = patch_via_hdmi }, + { .id = 0x11069f81, .name = "VX900 HDMI/DP", .patch = patch_via_hdmi }, +diff -Nur linux-4.1.23.orig/sound/pci/hda/patch_realtek.c linux-4.1.23/sound/pci/hda/patch_realtek.c +--- linux-4.1.23.orig/sound/pci/hda/patch_realtek.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/sound/pci/hda/patch_realtek.c 2016-05-02 22:54:00.000000000 +0200 +@@ -4608,7 +4608,6 @@ + ALC290_FIXUP_SUBWOOFER, + ALC290_FIXUP_SUBWOOFER_HSJACK, + ALC269_FIXUP_THINKPAD_ACPI, +- ALC269_FIXUP_DMIC_THINKPAD_ACPI, + ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, + ALC255_FIXUP_DELL2_MIC_NO_PRESENCE, + ALC255_FIXUP_HEADSET_MODE, +@@ -5049,12 +5048,6 @@ + .type = HDA_FIXUP_FUNC, + .v.func = hda_fixup_thinkpad_acpi, + }, +- [ALC269_FIXUP_DMIC_THINKPAD_ACPI] = { +- .type = HDA_FIXUP_FUNC, +- .v.func = alc_fixup_inv_dmic, +- .chained = true, +- .chain_id = ALC269_FIXUP_THINKPAD_ACPI, +- }, + [ALC255_FIXUP_DELL1_MIC_NO_PRESENCE] = { + .type = HDA_FIXUP_PINS, + .v.pins = (const struct hda_pintbl[]) { +@@ -5302,8 +5295,6 @@ + SND_PCI_QUIRK(0x1025, 0x106d, "Acer Cloudbook 14", ALC283_FIXUP_CHROME_BOOK), + SND_PCI_QUIRK(0x1028, 0x0470, "Dell M101z", ALC269_FIXUP_DELL_M101Z), + SND_PCI_QUIRK(0x1028, 0x054b, "Dell XPS one 2710", ALC275_FIXUP_DELL_XPS), +- SND_PCI_QUIRK(0x1028, 0x05bd, "Dell Latitude E6440", ALC292_FIXUP_DELL_E7X), +- SND_PCI_QUIRK(0x1028, 0x05be, "Dell Latitude E6540", ALC292_FIXUP_DELL_E7X), + SND_PCI_QUIRK(0x1028, 0x05ca, "Dell Latitude E7240", ALC292_FIXUP_DELL_E7X), + SND_PCI_QUIRK(0x1028, 0x05cb, "Dell Latitude E7440", ALC292_FIXUP_DELL_E7X), + SND_PCI_QUIRK(0x1028, 0x05da, "Dell Vostro 5460", ALC290_FIXUP_SUBWOOFER), +@@ -5439,8 +5430,6 @@ + SND_PCI_QUIRK(0x17aa, 0x2226, "ThinkPad X250", ALC292_FIXUP_TPT440_DOCK), + SND_PCI_QUIRK(0x17aa, 0x2233, "Thinkpad", ALC292_FIXUP_TPT460), + SND_PCI_QUIRK(0x17aa, 0x30bb, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY), +- SND_PCI_QUIRK(0x17aa, 0x30e2, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY), +- SND_PCI_QUIRK(0x17aa, 0x3902, "Lenovo E50-80", ALC269_FIXUP_DMIC_THINKPAD_ACPI), + SND_PCI_QUIRK(0x17aa, 0x3977, "IdeaPad S210", ALC283_FIXUP_INT_MIC), + SND_PCI_QUIRK(0x17aa, 0x3978, "IdeaPad Y410P", ALC269_FIXUP_NO_SHUTUP), + SND_PCI_QUIRK(0x17aa, 0x5013, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), +diff -Nur linux-4.1.23.orig/sound/pci/intel8x0.c linux-4.1.23/sound/pci/intel8x0.c +--- linux-4.1.23.orig/sound/pci/intel8x0.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/sound/pci/intel8x0.c 2016-05-02 22:54:01.000000000 +0200 +@@ -2879,7 +2879,6 @@ + + static struct snd_pci_quirk intel8x0_clock_list[] = { + SND_PCI_QUIRK(0x0e11, 0x008a, "AD1885", 41000), +- SND_PCI_QUIRK(0x1014, 0x0581, "AD1981B", 48000), + SND_PCI_QUIRK(0x1028, 0x00be, "AD1885", 44100), + SND_PCI_QUIRK(0x1028, 0x0177, "AD1980", 48000), + SND_PCI_QUIRK(0x1028, 0x01ad, "AD1981B", 48000), +diff -Nur linux-4.1.23.orig/sound/soc/bcm/Kconfig linux-4.1.23/sound/soc/bcm/Kconfig +--- linux-4.1.23.orig/sound/soc/bcm/Kconfig 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/sound/soc/bcm/Kconfig 2016-05-02 22:54:01.000000000 +0200 +@@ -7,3 +7,85 @@ Say Y or M if you want to add support for codecs attached to the BCM2835 I2S interface. You will also need to select the audio interfaces to support below. @@ -324292,6 +332451,20 @@ diff -Nur linux-4.1.22.orig/sound/soc/bcm/Kconfig linux-4.1.22/sound/soc/bcm/Kco + help + Say Y or M if you want to add support for Audio Codec Board PROTO (WM8731). + ++config SND_BCM2708_SOC_BOOMBERRY_DAC ++ tristate "Support for BoomBerry DAC" ++ depends on SND_BCM2708_SOC_I2S || SND_BCM2835_SOC_I2S ++ select SND_SOC_PCM512x ++ help ++ Say Y or M if you want to add support for BoomBerry DAC. ++ ++config SND_BCM2708_SOC_BOOMBERRY_DIGI ++ tristate "Support for BoomBerry Digi" ++ depends on SND_BCM2708_SOC_I2S || SND_BCM2835_SOC_I2S ++ select SND_SOC_WM8804 ++ help ++ Say Y or M if you want to add support for BoomBerry Digi. ++ +config SND_BCM2708_SOC_IQAUDIO_DAC + tristate "Support for IQaudIO-DAC" + depends on SND_BCM2708_SOC_I2S || SND_BCM2835_SOC_I2S @@ -324306,10 +332479,10 @@ diff -Nur linux-4.1.22.orig/sound/soc/bcm/Kconfig linux-4.1.22/sound/soc/bcm/Kco + select SND_SOC_TPA6130A2 + help + Say Y or M if you want to add support for RaspiDAC Rev.3x. -diff -Nur linux-4.1.22.orig/sound/soc/bcm/Makefile linux-4.1.22/sound/soc/bcm/Makefile ---- linux-4.1.22.orig/sound/soc/bcm/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/sound/soc/bcm/Makefile 2016-04-29 18:02:49.000000000 +0200 -@@ -3,3 +3,26 @@ +diff -Nur linux-4.1.23.orig/sound/soc/bcm/Makefile linux-4.1.23/sound/soc/bcm/Makefile +--- linux-4.1.23.orig/sound/soc/bcm/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/sound/soc/bcm/Makefile 2016-05-02 22:54:01.000000000 +0200 +@@ -3,3 +3,30 @@ obj-$(CONFIG_SND_BCM2835_SOC_I2S) += snd-soc-bcm2835-i2s.o @@ -324323,6 +332496,8 @@ diff -Nur linux-4.1.22.orig/sound/soc/bcm/Makefile linux-4.1.22/sound/soc/bcm/Ma +snd-soc-hifiberry-dacplus-objs := hifiberry_dacplus.o +snd-soc-hifiberry-digi-objs := hifiberry_digi.o +snd-soc-hifiberry-amp-objs := hifiberry_amp.o ++snd-soc-boomberry-dac-objs := boomberry-dac.o ++snd-soc-boomberry-digi-objs := boomberry-digi.o +snd-soc-rpi-dac-objs := rpi-dac.o +snd-soc-rpi-proto-objs := rpi-proto.o +snd-soc-iqaudio-dac-objs := iqaudio-dac.o @@ -324332,13 +332507,15 @@ diff -Nur linux-4.1.22.orig/sound/soc/bcm/Makefile linux-4.1.22/sound/soc/bcm/Ma +obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUS) += snd-soc-hifiberry-dacplus.o +obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DIGI) += snd-soc-hifiberry-digi.o +obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_AMP) += snd-soc-hifiberry-amp.o ++obj-$(CONFIG_SND_BCM2708_SOC_BOOMBERRY_DAC) += snd-soc-boomberry-dac.o ++obj-$(CONFIG_SND_BCM2708_SOC_BOOMBERRY_DIGI) += snd-soc-boomberry-digi.o +obj-$(CONFIG_SND_BCM2708_SOC_RPI_DAC) += snd-soc-rpi-dac.o +obj-$(CONFIG_SND_BCM2708_SOC_RPI_PROTO) += snd-soc-rpi-proto.o +obj-$(CONFIG_SND_BCM2708_SOC_IQAUDIO_DAC) += snd-soc-iqaudio-dac.o +obj-$(CONFIG_SND_BCM2708_SOC_RASPIDAC3) += snd-soc-raspidac3.o -diff -Nur linux-4.1.22.orig/sound/soc/bcm/bcm2708-i2s.c linux-4.1.22/sound/soc/bcm/bcm2708-i2s.c ---- linux-4.1.22.orig/sound/soc/bcm/bcm2708-i2s.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/sound/soc/bcm/bcm2708-i2s.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/sound/soc/bcm/bcm2708-i2s.c linux-4.1.23/sound/soc/bcm/bcm2708-i2s.c +--- linux-4.1.23.orig/sound/soc/bcm/bcm2708-i2s.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/sound/soc/bcm/bcm2708-i2s.c 2016-05-02 22:54:01.000000000 +0200 @@ -0,0 +1,1014 @@ +/* + * ALSA SoC I2S Audio Layer for Broadcom BCM2708 SoC @@ -325354,9 +333531,9 @@ diff -Nur linux-4.1.22.orig/sound/soc/bcm/bcm2708-i2s.c linux-4.1.22/sound/soc/b +MODULE_DESCRIPTION("BCM2708 I2S interface"); +MODULE_AUTHOR("Florian Meier <florian.meier@koalo.de>"); +MODULE_LICENSE("GPL v2"); -diff -Nur linux-4.1.22.orig/sound/soc/bcm/bcm2708-i2s.h linux-4.1.22/sound/soc/bcm/bcm2708-i2s.h ---- linux-4.1.22.orig/sound/soc/bcm/bcm2708-i2s.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/sound/soc/bcm/bcm2708-i2s.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/sound/soc/bcm/bcm2708-i2s.h linux-4.1.23/sound/soc/bcm/bcm2708-i2s.h +--- linux-4.1.23.orig/sound/soc/bcm/bcm2708-i2s.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/sound/soc/bcm/bcm2708-i2s.h 2016-05-02 22:54:01.000000000 +0200 @@ -0,0 +1,35 @@ +/* + * I2S configuration for sound cards. @@ -325393,9 +333570,9 @@ diff -Nur linux-4.1.22.orig/sound/soc/bcm/bcm2708-i2s.h linux-4.1.22/sound/soc/b +extern void bcm2708_i2s_set_gpio(int gpio); + +#endif -diff -Nur linux-4.1.22.orig/sound/soc/bcm/bcm2835-i2s.c linux-4.1.22/sound/soc/bcm/bcm2835-i2s.c ---- linux-4.1.22.orig/sound/soc/bcm/bcm2835-i2s.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/sound/soc/bcm/bcm2835-i2s.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/sound/soc/bcm/bcm2835-i2s.c linux-4.1.23/sound/soc/bcm/bcm2835-i2s.c +--- linux-4.1.23.orig/sound/soc/bcm/bcm2835-i2s.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/sound/soc/bcm/bcm2835-i2s.c 2016-05-02 22:54:01.000000000 +0200 @@ -861,6 +861,7 @@ { .compatible = "brcm,bcm2835-i2s", }, {}, @@ -325404,9 +333581,395 @@ diff -Nur linux-4.1.22.orig/sound/soc/bcm/bcm2835-i2s.c linux-4.1.22/sound/soc/b static struct platform_driver bcm2835_i2s_driver = { .probe = bcm2835_i2s_probe, -diff -Nur linux-4.1.22.orig/sound/soc/bcm/hifiberry_amp.c linux-4.1.22/sound/soc/bcm/hifiberry_amp.c ---- linux-4.1.22.orig/sound/soc/bcm/hifiberry_amp.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/sound/soc/bcm/hifiberry_amp.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/sound/soc/bcm/boomberry-dac.c linux-4.1.23/sound/soc/bcm/boomberry-dac.c +--- linux-4.1.23.orig/sound/soc/bcm/boomberry-dac.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/sound/soc/bcm/boomberry-dac.c 2016-05-02 22:54:01.000000000 +0200 +@@ -0,0 +1,163 @@ ++/* ++ * ASoC Driver for BoomBerry DAC Raspberry Pi HAT Sound Card ++ * ++ * Author: Milan Neskovic ++ * Copyright 2016 ++ * based on code by Daniel Matuschek <info@crazy-audio.com> ++ * based on code by Florian Meier <florian.meier@koalo.de> ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * version 2 as published by the Free Software Foundation. ++ * ++ * This program is distributed in the hope that it will be useful, but ++ * WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * General Public License for more details. ++ */ ++ ++#include <linux/module.h> ++#include <linux/platform_device.h> ++ ++#include <sound/core.h> ++#include <sound/pcm.h> ++#include <sound/pcm_params.h> ++#include <sound/soc.h> ++#include <sound/jack.h> ++ ++#include "../codecs/pcm512x.h" ++ ++static bool digital_gain_0db_limit = true; ++ ++static int snd_rpi_boomberry_dac_init(struct snd_soc_pcm_runtime *rtd) ++{ ++ struct snd_soc_codec *codec = rtd->codec; ++ snd_soc_update_bits(codec, PCM512x_GPIO_EN, 0x08, 0x08); ++ snd_soc_update_bits(codec, PCM512x_GPIO_OUTPUT_4, 0xf, 0x02); ++ snd_soc_update_bits(codec, PCM512x_GPIO_CONTROL_1, 0x08,0x08); ++ ++ if (digital_gain_0db_limit) ++ { ++ int ret; ++ struct snd_soc_card *card = rtd->card; ++ struct snd_soc_codec *codec = rtd->codec; ++ ++ ret = snd_soc_limit_volume(codec, "Digital Playback Volume", 207); ++ if (ret < 0) ++ dev_warn(card->dev, "Failed to set volume limit: %d\n", ret); ++ } ++ ++ return 0; ++} ++ ++static int snd_rpi_boomberry_dac_hw_params(struct snd_pcm_substream *substream, ++ struct snd_pcm_hw_params *params) ++{ ++ struct snd_soc_pcm_runtime *rtd = substream->private_data; ++ struct snd_soc_dai *cpu_dai = rtd->cpu_dai; ++ /*return snd_soc_dai_set_bclk_ratio(cpu_dai, 64);*/ ++ unsigned int sample_bits = ++ snd_pcm_format_physical_width(params_format(params)); ++ return snd_soc_dai_set_bclk_ratio(cpu_dai, sample_bits * 2); ++} ++ ++static int snd_rpi_boomberry_dac_startup(struct snd_pcm_substream *substream) { ++ struct snd_soc_pcm_runtime *rtd = substream->private_data; ++ struct snd_soc_codec *codec = rtd->codec; ++ snd_soc_update_bits(codec, PCM512x_GPIO_CONTROL_1, 0x08,0x08); ++ return 0; ++} ++ ++static void snd_rpi_boomberry_dac_shutdown(struct snd_pcm_substream *substream) { ++ struct snd_soc_pcm_runtime *rtd = substream->private_data; ++ struct snd_soc_codec *codec = rtd->codec; ++ snd_soc_update_bits(codec, PCM512x_GPIO_CONTROL_1, 0x08,0x00); ++} ++ ++/* machine stream operations */ ++static struct snd_soc_ops snd_rpi_boomberry_dac_ops = { ++ .hw_params = snd_rpi_boomberry_dac_hw_params, ++ .startup = snd_rpi_boomberry_dac_startup, ++ .shutdown = snd_rpi_boomberry_dac_shutdown, ++}; ++ ++static struct snd_soc_dai_link snd_rpi_boomberry_dac_dai[] = { ++{ ++ .name = "BoomBerry DAC", ++ .stream_name = "BoomBerry DAC HiFi", ++ .cpu_dai_name = "bcm2708-i2s.0", ++ .codec_dai_name = "pcm512x-hifi", ++ .platform_name = "bcm2708-i2s.0", ++ .codec_name = "pcm512x.1-004d", ++ .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF | ++ SND_SOC_DAIFMT_CBS_CFS, ++ .ops = &snd_rpi_boomberry_dac_ops, ++ .init = snd_rpi_boomberry_dac_init, ++}, ++}; ++ ++/* audio machine driver */ ++static struct snd_soc_card snd_rpi_boomberry_dac = { ++ .name = "snd_rpi_boomberry_dac", ++ .owner = THIS_MODULE, ++ .dai_link = snd_rpi_boomberry_dac_dai, ++ .num_links = ARRAY_SIZE(snd_rpi_boomberry_dac_dai), ++}; ++ ++static int snd_rpi_boomberry_dac_probe(struct platform_device *pdev) ++{ ++ int ret = 0; ++ ++ snd_rpi_boomberry_dac.dev = &pdev->dev; ++ ++ if (pdev->dev.of_node) { ++ struct device_node *i2s_node; ++ struct snd_soc_dai_link *dai = &snd_rpi_boomberry_dac_dai[0]; ++ i2s_node = of_parse_phandle(pdev->dev.of_node, ++ "i2s-controller", 0); ++ ++ if (i2s_node) { ++ dai->cpu_dai_name = NULL; ++ dai->cpu_of_node = i2s_node; ++ dai->platform_name = NULL; ++ dai->platform_of_node = i2s_node; ++ } ++ ++ digital_gain_0db_limit = !of_property_read_bool( ++ pdev->dev.of_node, "boomberry,24db_digital_gain"); ++ } ++ ++ ret = snd_soc_register_card(&snd_rpi_boomberry_dac); ++ if (ret) ++ dev_err(&pdev->dev, ++ "snd_soc_register_card() failed: %d\n", ret); ++ ++ return ret; ++} ++ ++static int snd_rpi_boomberry_dac_remove(struct platform_device *pdev) ++{ ++ return snd_soc_unregister_card(&snd_rpi_boomberry_dac); ++} ++ ++static const struct of_device_id snd_rpi_boomberry_dac_of_match[] = { ++ { .compatible = "boomberry,boomberry-dac", }, ++ {}, ++}; ++MODULE_DEVICE_TABLE(of, snd_rpi_boomberry_dac_of_match); ++ ++static struct platform_driver snd_rpi_boomberry_dac_driver = { ++ .driver = { ++ .name = "snd-rpi-boomberry-dac", ++ .owner = THIS_MODULE, ++ .of_match_table = snd_rpi_boomberry_dac_of_match, ++ }, ++ .probe = snd_rpi_boomberry_dac_probe, ++ .remove = snd_rpi_boomberry_dac_remove, ++}; ++ ++module_platform_driver(snd_rpi_boomberry_dac_driver); ++ ++MODULE_AUTHOR("Milan Neskovic <info@boomberry.co>"); ++MODULE_DESCRIPTION("ASoC Driver for BoomBerry PI DAC HAT Sound Card"); ++MODULE_LICENSE("GPL v2"); +diff -Nur linux-4.1.23.orig/sound/soc/bcm/boomberry-digi.c linux-4.1.23/sound/soc/bcm/boomberry-digi.c +--- linux-4.1.23.orig/sound/soc/bcm/boomberry-digi.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/sound/soc/bcm/boomberry-digi.c 2016-05-02 22:54:01.000000000 +0200 +@@ -0,0 +1,215 @@ ++/* ++ * ASoC Driver for BoomBerry Raspberry Pi Digi HAT Sound Card ++ * ++ * Author: Milan Neskovic ++ * Copyright 2016 ++ * based on code by Daniel Matuschek <info@crazy-audio.com> ++ * based on code by Florian Meier <florian.meier@koalo.de> ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * version 2 as published by the Free Software Foundation. ++ * ++ * This program is distributed in the hope that it will be useful, but ++ * WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * General Public License for more details. ++ */ ++ ++#include <linux/module.h> ++#include <linux/platform_device.h> ++ ++#include <sound/core.h> ++#include <sound/pcm.h> ++#include <sound/pcm_params.h> ++#include <sound/soc.h> ++#include <sound/jack.h> ++ ++#include "../codecs/wm8804.h" ++ ++static int snd_rpi_boomberry_digi_init(struct snd_soc_pcm_runtime *rtd) ++{ ++ struct snd_soc_codec *codec = rtd->codec; ++ ++ /* enable TX output */ ++ snd_soc_update_bits(codec, WM8804_PWRDN, 0x4, 0x0); ++ ++ return 0; ++} ++ ++static int snd_rpi_boomberry_digi_startup(struct snd_pcm_substream *substream) { ++ /* turn on digital output */ ++ struct snd_soc_pcm_runtime *rtd = substream->private_data; ++ struct snd_soc_codec *codec = rtd->codec; ++ snd_soc_update_bits(codec, WM8804_PWRDN, 0x3c, 0x00); ++ return 0; ++} ++ ++static void snd_rpi_boomberry_digi_shutdown(struct snd_pcm_substream *substream) { ++ /* turn off output */ ++ struct snd_soc_pcm_runtime *rtd = substream->private_data; ++ struct snd_soc_codec *codec = rtd->codec; ++ snd_soc_update_bits(codec, WM8804_PWRDN, 0x3c, 0x3c); ++} ++ ++static int snd_rpi_boomberry_digi_hw_params(struct snd_pcm_substream *substream, ++ struct snd_pcm_hw_params *params) ++{ ++ struct snd_soc_pcm_runtime *rtd = substream->private_data; ++ struct snd_soc_dai *codec_dai = rtd->codec_dai; ++ struct snd_soc_codec *codec = rtd->codec; ++ struct snd_soc_dai *cpu_dai = rtd->cpu_dai; ++ ++ int sysclk = 27000000; /* This is fixed on this board */ ++ ++ long mclk_freq=0; ++ int mclk_div=1; ++ int sampling_freq=1; ++ ++ int ret; ++ ++ int samplerate = params_rate(params); ++ ++ if (samplerate<=96000) { ++ mclk_freq=samplerate*256; ++ mclk_div=WM8804_MCLKDIV_256FS; ++ } else { ++ mclk_freq=samplerate*128; ++ mclk_div=WM8804_MCLKDIV_128FS; ++ } ++ ++ switch (samplerate) { ++ case 32000: ++ sampling_freq=0x03; ++ break; ++ case 44100: ++ sampling_freq=0x00; ++ break; ++ case 48000: ++ sampling_freq=0x02; ++ break; ++ case 88200: ++ sampling_freq=0x08; ++ break; ++ case 96000: ++ sampling_freq=0x0a; ++ break; ++ case 176400: ++ sampling_freq=0x0c; ++ break; ++ case 192000: ++ sampling_freq=0x0e; ++ break; ++ default: ++ dev_err(codec->dev, ++ "Failed to set WM8804 SYSCLK, unsupported samplerate %d\n", ++ samplerate); ++ } ++ ++ snd_soc_dai_set_clkdiv(codec_dai, WM8804_MCLK_DIV, mclk_div); ++ snd_soc_dai_set_pll(codec_dai, 0, 0, sysclk, mclk_freq); ++ ++ ret = snd_soc_dai_set_sysclk(codec_dai, WM8804_TX_CLKSRC_PLL, ++ sysclk, SND_SOC_CLOCK_OUT); ++ if (ret < 0) { ++ dev_err(codec->dev, ++ "Failed to set WM8804 SYSCLK: %d\n", ret); ++ return ret; ++ } ++ ++ /* Enable TX output */ ++ snd_soc_update_bits(codec, WM8804_PWRDN, 0x4, 0x0); ++ ++ /* Power on */ ++ snd_soc_update_bits(codec, WM8804_PWRDN, 0x9, 0); ++ ++ /* set sampling frequency status bits */ ++ snd_soc_update_bits(codec, WM8804_SPDTX4, 0x0f, sampling_freq); ++ ++ return snd_soc_dai_set_bclk_ratio(cpu_dai,64); ++} ++ ++/* machine stream operations */ ++static struct snd_soc_ops snd_rpi_boomberry_digi_ops = { ++ .hw_params = snd_rpi_boomberry_digi_hw_params, ++ .startup = snd_rpi_boomberry_digi_startup, ++ .shutdown = snd_rpi_boomberry_digi_shutdown, ++}; ++ ++static struct snd_soc_dai_link snd_rpi_boomberry_digi_dai[] = { ++{ ++ .name = "BoomBerry Digi", ++ .stream_name = "BoomBerry Digi HiFi", ++ .cpu_dai_name = "bcm2708-i2s.0", ++ .codec_dai_name = "wm8804-spdif", ++ .platform_name = "bcm2708-i2s.0", ++ .codec_name = "wm8804.1-003b", ++ .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF | ++ SND_SOC_DAIFMT_CBM_CFM, ++ .ops = &snd_rpi_boomberry_digi_ops, ++ .init = snd_rpi_boomberry_digi_init, ++}, ++}; ++ ++/* audio machine driver */ ++static struct snd_soc_card snd_rpi_boomberry_digi = { ++ .name = "snd_rpi_boomberry_digi", ++ .owner = THIS_MODULE, ++ .dai_link = snd_rpi_boomberry_digi_dai, ++ .num_links = ARRAY_SIZE(snd_rpi_boomberry_digi_dai), ++}; ++ ++static int snd_rpi_boomberry_digi_probe(struct platform_device *pdev) ++{ ++ int ret = 0; ++ ++ snd_rpi_boomberry_digi.dev = &pdev->dev; ++ ++ if (pdev->dev.of_node) { ++ struct device_node *i2s_node; ++ struct snd_soc_dai_link *dai = &snd_rpi_boomberry_digi_dai[0]; ++ i2s_node = of_parse_phandle(pdev->dev.of_node, ++ "i2s-controller", 0); ++ ++ if (i2s_node) { ++ dai->cpu_dai_name = NULL; ++ dai->cpu_of_node = i2s_node; ++ dai->platform_name = NULL; ++ dai->platform_of_node = i2s_node; ++ } ++ } ++ ++ ret = snd_soc_register_card(&snd_rpi_boomberry_digi); ++ if (ret) ++ dev_err(&pdev->dev, ++ "snd_soc_register_card() failed: %d\n", ret); ++ ++ return ret; ++} ++ ++static int snd_rpi_boomberry_digi_remove(struct platform_device *pdev) ++{ ++ return snd_soc_unregister_card(&snd_rpi_boomberry_digi); ++} ++ ++static const struct of_device_id snd_rpi_boomberry_digi_of_match[] = { ++ { .compatible = "boomberry,boomberry-digi", }, ++ {}, ++}; ++MODULE_DEVICE_TABLE(of, snd_rpi_boomberry_digi_of_match); ++ ++static struct platform_driver snd_rpi_boomberry_digi_driver = { ++ .driver = { ++ .name = "snd-rpi-boomberry-digi", ++ .owner = THIS_MODULE, ++ .of_match_table = snd_rpi_boomberry_digi_of_match, ++ }, ++ .probe = snd_rpi_boomberry_digi_probe, ++ .remove = snd_rpi_boomberry_digi_remove, ++}; ++ ++module_platform_driver(snd_rpi_boomberry_digi_driver); ++ ++MODULE_AUTHOR("Milan Neskovic <info@boomberry.co>"); ++MODULE_DESCRIPTION("ASoC Driver for BoomBerry PI Digi HAT Sound Card"); ++MODULE_LICENSE("GPL v2"); +diff -Nur linux-4.1.23.orig/sound/soc/bcm/hifiberry_amp.c linux-4.1.23/sound/soc/bcm/hifiberry_amp.c +--- linux-4.1.23.orig/sound/soc/bcm/hifiberry_amp.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/sound/soc/bcm/hifiberry_amp.c 2016-05-02 22:54:01.000000000 +0200 @@ -0,0 +1,128 @@ +/* + * ASoC Driver for HifiBerry AMP @@ -325536,9 +334099,9 @@ diff -Nur linux-4.1.22.orig/sound/soc/bcm/hifiberry_amp.c linux-4.1.22/sound/soc +MODULE_AUTHOR("Sebastian Eickhoff <basti.eickhoff@googlemail.com>"); +MODULE_DESCRIPTION("ASoC driver for HiFiBerry-AMP"); +MODULE_LICENSE("GPL v2"); -diff -Nur linux-4.1.22.orig/sound/soc/bcm/hifiberry_dac.c linux-4.1.22/sound/soc/bcm/hifiberry_dac.c ---- linux-4.1.22.orig/sound/soc/bcm/hifiberry_dac.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/sound/soc/bcm/hifiberry_dac.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/sound/soc/bcm/hifiberry_dac.c linux-4.1.23/sound/soc/bcm/hifiberry_dac.c +--- linux-4.1.23.orig/sound/soc/bcm/hifiberry_dac.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/sound/soc/bcm/hifiberry_dac.c 2016-05-02 22:54:01.000000000 +0200 @@ -0,0 +1,123 @@ +/* + * ASoC Driver for HifiBerry DAC @@ -325663,9 +334226,9 @@ diff -Nur linux-4.1.22.orig/sound/soc/bcm/hifiberry_dac.c linux-4.1.22/sound/soc +MODULE_AUTHOR("Florian Meier <florian.meier@koalo.de>"); +MODULE_DESCRIPTION("ASoC Driver for HifiBerry DAC"); +MODULE_LICENSE("GPL v2"); -diff -Nur linux-4.1.22.orig/sound/soc/bcm/hifiberry_dacplus.c linux-4.1.22/sound/soc/bcm/hifiberry_dacplus.c ---- linux-4.1.22.orig/sound/soc/bcm/hifiberry_dacplus.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/sound/soc/bcm/hifiberry_dacplus.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/sound/soc/bcm/hifiberry_dacplus.c linux-4.1.23/sound/soc/bcm/hifiberry_dacplus.c +--- linux-4.1.23.orig/sound/soc/bcm/hifiberry_dacplus.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/sound/soc/bcm/hifiberry_dacplus.c 2016-05-02 22:54:01.000000000 +0200 @@ -0,0 +1,353 @@ +/* + * ASoC Driver for HiFiBerry DAC+ / DAC Pro @@ -326020,9 +334583,9 @@ diff -Nur linux-4.1.22.orig/sound/soc/bcm/hifiberry_dacplus.c linux-4.1.22/sound +MODULE_AUTHOR("Daniel Matuschek <daniel@hifiberry.com>"); +MODULE_DESCRIPTION("ASoC Driver for HiFiBerry DAC+"); +MODULE_LICENSE("GPL v2"); -diff -Nur linux-4.1.22.orig/sound/soc/bcm/hifiberry_digi.c linux-4.1.22/sound/soc/bcm/hifiberry_digi.c ---- linux-4.1.22.orig/sound/soc/bcm/hifiberry_digi.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/sound/soc/bcm/hifiberry_digi.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/sound/soc/bcm/hifiberry_digi.c linux-4.1.23/sound/soc/bcm/hifiberry_digi.c +--- linux-4.1.23.orig/sound/soc/bcm/hifiberry_digi.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/sound/soc/bcm/hifiberry_digi.c 2016-05-02 22:54:01.000000000 +0200 @@ -0,0 +1,224 @@ +/* + * ASoC Driver for HifiBerry Digi @@ -326248,9 +334811,9 @@ diff -Nur linux-4.1.22.orig/sound/soc/bcm/hifiberry_digi.c linux-4.1.22/sound/so +MODULE_AUTHOR("Daniel Matuschek <info@crazy-audio.com>"); +MODULE_DESCRIPTION("ASoC Driver for HifiBerry Digi"); +MODULE_LICENSE("GPL v2"); -diff -Nur linux-4.1.22.orig/sound/soc/bcm/iqaudio-dac.c linux-4.1.22/sound/soc/bcm/iqaudio-dac.c ---- linux-4.1.22.orig/sound/soc/bcm/iqaudio-dac.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/sound/soc/bcm/iqaudio-dac.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/sound/soc/bcm/iqaudio-dac.c linux-4.1.23/sound/soc/bcm/iqaudio-dac.c +--- linux-4.1.23.orig/sound/soc/bcm/iqaudio-dac.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/sound/soc/bcm/iqaudio-dac.c 2016-05-02 22:54:01.000000000 +0200 @@ -0,0 +1,142 @@ +/* + * ASoC Driver for IQaudIO DAC @@ -326394,9 +334957,9 @@ diff -Nur linux-4.1.22.orig/sound/soc/bcm/iqaudio-dac.c linux-4.1.22/sound/soc/b +MODULE_AUTHOR("Florian Meier <florian.meier@koalo.de>"); +MODULE_DESCRIPTION("ASoC Driver for IQAudio DAC"); +MODULE_LICENSE("GPL v2"); -diff -Nur linux-4.1.22.orig/sound/soc/bcm/raspidac3.c linux-4.1.22/sound/soc/bcm/raspidac3.c ---- linux-4.1.22.orig/sound/soc/bcm/raspidac3.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/sound/soc/bcm/raspidac3.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/sound/soc/bcm/raspidac3.c linux-4.1.23/sound/soc/bcm/raspidac3.c +--- linux-4.1.23.orig/sound/soc/bcm/raspidac3.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/sound/soc/bcm/raspidac3.c 2016-05-02 22:54:01.000000000 +0200 @@ -0,0 +1,192 @@ +/* + * ASoC Driver for RaspiDAC v3 @@ -326590,9 +335153,9 @@ diff -Nur linux-4.1.22.orig/sound/soc/bcm/raspidac3.c linux-4.1.22/sound/soc/bcm +MODULE_AUTHOR("Jan Grulich <jan@grulich.eu>"); +MODULE_DESCRIPTION("ASoC Driver for RaspiDAC Rev.3x"); +MODULE_LICENSE("GPL v2"); -diff -Nur linux-4.1.22.orig/sound/soc/bcm/rpi-dac.c linux-4.1.22/sound/soc/bcm/rpi-dac.c ---- linux-4.1.22.orig/sound/soc/bcm/rpi-dac.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/sound/soc/bcm/rpi-dac.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/sound/soc/bcm/rpi-dac.c linux-4.1.23/sound/soc/bcm/rpi-dac.c +--- linux-4.1.23.orig/sound/soc/bcm/rpi-dac.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/sound/soc/bcm/rpi-dac.c 2016-05-02 22:54:01.000000000 +0200 @@ -0,0 +1,119 @@ +/* + * ASoC Driver for RPi-DAC. @@ -326713,9 +335276,9 @@ diff -Nur linux-4.1.22.orig/sound/soc/bcm/rpi-dac.c linux-4.1.22/sound/soc/bcm/r +MODULE_AUTHOR("Florian Meier <florian.meier@koalo.de>"); +MODULE_DESCRIPTION("ASoC Driver for RPi-DAC"); +MODULE_LICENSE("GPL v2"); -diff -Nur linux-4.1.22.orig/sound/soc/bcm/rpi-proto.c linux-4.1.22/sound/soc/bcm/rpi-proto.c ---- linux-4.1.22.orig/sound/soc/bcm/rpi-proto.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/sound/soc/bcm/rpi-proto.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/sound/soc/bcm/rpi-proto.c linux-4.1.23/sound/soc/bcm/rpi-proto.c +--- linux-4.1.23.orig/sound/soc/bcm/rpi-proto.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/sound/soc/bcm/rpi-proto.c 2016-05-02 22:54:01.000000000 +0200 @@ -0,0 +1,154 @@ +/* + * ASoC driver for PROTO AudioCODEC (with a WM8731) @@ -326871,9 +335434,9 @@ diff -Nur linux-4.1.22.orig/sound/soc/bcm/rpi-proto.c linux-4.1.22/sound/soc/bcm +MODULE_AUTHOR("Florian Meier"); +MODULE_DESCRIPTION("ASoC Driver for Raspberry Pi connected to PROTO board (WM8731)"); +MODULE_LICENSE("GPL"); -diff -Nur linux-4.1.22.orig/sound/soc/codecs/Kconfig linux-4.1.22/sound/soc/codecs/Kconfig ---- linux-4.1.22.orig/sound/soc/codecs/Kconfig 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/sound/soc/codecs/Kconfig 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/sound/soc/codecs/Kconfig linux-4.1.23/sound/soc/codecs/Kconfig +--- linux-4.1.23.orig/sound/soc/codecs/Kconfig 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/sound/soc/codecs/Kconfig 2016-05-02 22:54:01.000000000 +0200 @@ -83,6 +83,8 @@ select SND_SOC_PCM512x_I2C if I2C select SND_SOC_PCM512x_SPI if SPI_MASTER @@ -326914,9 +335477,9 @@ diff -Nur linux-4.1.22.orig/sound/soc/codecs/Kconfig linux-4.1.22/sound/soc/code config SND_SOC_TLV320AIC23 tristate -diff -Nur linux-4.1.22.orig/sound/soc/codecs/Makefile linux-4.1.22/sound/soc/codecs/Makefile ---- linux-4.1.22.orig/sound/soc/codecs/Makefile 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/sound/soc/codecs/Makefile 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/sound/soc/codecs/Makefile linux-4.1.23/sound/soc/codecs/Makefile +--- linux-4.1.23.orig/sound/soc/codecs/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/sound/soc/codecs/Makefile 2016-05-02 22:54:01.000000000 +0200 @@ -78,6 +78,8 @@ snd-soc-pcm512x-spi-objs := pcm512x-spi.o snd-soc-rl6231-objs := rl6231.o @@ -326951,9 +335514,9 @@ diff -Nur linux-4.1.22.orig/sound/soc/codecs/Makefile linux-4.1.22/sound/soc/cod obj-$(CONFIG_SND_SOC_TLV320AIC23) += snd-soc-tlv320aic23.o obj-$(CONFIG_SND_SOC_TLV320AIC23_I2C) += snd-soc-tlv320aic23-i2c.o obj-$(CONFIG_SND_SOC_TLV320AIC23_SPI) += snd-soc-tlv320aic23-spi.o -diff -Nur linux-4.1.22.orig/sound/soc/codecs/pcm1794a.c linux-4.1.22/sound/soc/codecs/pcm1794a.c ---- linux-4.1.22.orig/sound/soc/codecs/pcm1794a.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/sound/soc/codecs/pcm1794a.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/sound/soc/codecs/pcm1794a.c linux-4.1.23/sound/soc/codecs/pcm1794a.c +--- linux-4.1.23.orig/sound/soc/codecs/pcm1794a.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/sound/soc/codecs/pcm1794a.c 2016-05-02 22:54:01.000000000 +0200 @@ -0,0 +1,69 @@ +/* + * Driver for the PCM1794A codec @@ -327024,9 +335587,9 @@ diff -Nur linux-4.1.22.orig/sound/soc/codecs/pcm1794a.c linux-4.1.22/sound/soc/c +MODULE_DESCRIPTION("ASoC PCM1794A codec driver"); +MODULE_AUTHOR("Florian Meier <florian.meier@koalo.de>"); +MODULE_LICENSE("GPL v2"); -diff -Nur linux-4.1.22.orig/sound/soc/codecs/pcm5102a.c linux-4.1.22/sound/soc/codecs/pcm5102a.c ---- linux-4.1.22.orig/sound/soc/codecs/pcm5102a.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/sound/soc/codecs/pcm5102a.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/sound/soc/codecs/pcm5102a.c linux-4.1.23/sound/soc/codecs/pcm5102a.c +--- linux-4.1.23.orig/sound/soc/codecs/pcm5102a.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/sound/soc/codecs/pcm5102a.c 2016-05-02 22:54:01.000000000 +0200 @@ -0,0 +1,70 @@ +/* + * Driver for the PCM5102A codec @@ -327098,9 +335661,9 @@ diff -Nur linux-4.1.22.orig/sound/soc/codecs/pcm5102a.c linux-4.1.22/sound/soc/c +MODULE_DESCRIPTION("ASoC PCM5102A codec driver"); +MODULE_AUTHOR("Florian Meier <florian.meier@koalo.de>"); +MODULE_LICENSE("GPL v2"); -diff -Nur linux-4.1.22.orig/sound/soc/codecs/pcm512x.c linux-4.1.22/sound/soc/codecs/pcm512x.c ---- linux-4.1.22.orig/sound/soc/codecs/pcm512x.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/sound/soc/codecs/pcm512x.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/sound/soc/codecs/pcm512x.c linux-4.1.23/sound/soc/codecs/pcm512x.c +--- linux-4.1.23.orig/sound/soc/codecs/pcm512x.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/sound/soc/codecs/pcm512x.c 2016-05-02 22:54:01.000000000 +0200 @@ -856,7 +856,8 @@ int fssp; int gpio; @@ -327111,9 +335674,9 @@ diff -Nur linux-4.1.22.orig/sound/soc/codecs/pcm512x.c linux-4.1.22/sound/soc/co if (lrclk_div == 0) { dev_err(dev, "No LRCLK?\n"); return -EINVAL; -diff -Nur linux-4.1.22.orig/sound/soc/codecs/tas5713.c linux-4.1.22/sound/soc/codecs/tas5713.c ---- linux-4.1.22.orig/sound/soc/codecs/tas5713.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/sound/soc/codecs/tas5713.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/sound/soc/codecs/tas5713.c linux-4.1.23/sound/soc/codecs/tas5713.c +--- linux-4.1.23.orig/sound/soc/codecs/tas5713.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/sound/soc/codecs/tas5713.c 2016-05-02 22:54:01.000000000 +0200 @@ -0,0 +1,369 @@ +/* + * ASoC Driver for TAS5713 @@ -327484,9 +336047,9 @@ diff -Nur linux-4.1.22.orig/sound/soc/codecs/tas5713.c linux-4.1.22/sound/soc/co +MODULE_AUTHOR("Sebastian Eickhoff <basti.eickhoff@googlemail.com>"); +MODULE_DESCRIPTION("ASoC driver for TAS5713"); +MODULE_LICENSE("GPL v2"); -diff -Nur linux-4.1.22.orig/sound/soc/codecs/tas5713.h linux-4.1.22/sound/soc/codecs/tas5713.h ---- linux-4.1.22.orig/sound/soc/codecs/tas5713.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.22/sound/soc/codecs/tas5713.h 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/sound/soc/codecs/tas5713.h linux-4.1.23/sound/soc/codecs/tas5713.h +--- linux-4.1.23.orig/sound/soc/codecs/tas5713.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.23/sound/soc/codecs/tas5713.h 2016-05-02 22:54:01.000000000 +0200 @@ -0,0 +1,210 @@ +/* + * ASoC Driver for TAS5713 @@ -327698,9 +336261,9 @@ diff -Nur linux-4.1.22.orig/sound/soc/codecs/tas5713.h linux-4.1.22/sound/soc/co + + +#endif /* _TAS5713_H */ -diff -Nur linux-4.1.22.orig/sound/soc/codecs/tpa6130a2.c linux-4.1.22/sound/soc/codecs/tpa6130a2.c ---- linux-4.1.22.orig/sound/soc/codecs/tpa6130a2.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/sound/soc/codecs/tpa6130a2.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/sound/soc/codecs/tpa6130a2.c linux-4.1.23/sound/soc/codecs/tpa6130a2.c +--- linux-4.1.23.orig/sound/soc/codecs/tpa6130a2.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/sound/soc/codecs/tpa6130a2.c 2016-05-02 22:54:01.000000000 +0200 @@ -4,6 +4,7 @@ * Copyright (C) Nokia Corporation * @@ -327780,9 +336343,9 @@ diff -Nur linux-4.1.22.orig/sound/soc/codecs/tpa6130a2.c linux-4.1.22/sound/soc/ }; /* -diff -Nur linux-4.1.22.orig/sound/soc/codecs/wm8804.c linux-4.1.22/sound/soc/codecs/wm8804.c ---- linux-4.1.22.orig/sound/soc/codecs/wm8804.c 2016-04-19 13:58:05.000000000 +0200 -+++ linux-4.1.22/sound/soc/codecs/wm8804.c 2016-04-29 18:02:49.000000000 +0200 +diff -Nur linux-4.1.23.orig/sound/soc/codecs/wm8804.c linux-4.1.23/sound/soc/codecs/wm8804.c +--- linux-4.1.23.orig/sound/soc/codecs/wm8804.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/sound/soc/codecs/wm8804.c 2016-05-02 22:54:01.000000000 +0200 @@ -304,6 +304,7 @@ blen = 0x1; break; @@ -327809,3 +336372,1096 @@ diff -Nur linux-4.1.22.orig/sound/soc/codecs/wm8804.c linux-4.1.22/sound/soc/cod .dapm_widgets = wm8804_dapm_widgets, .num_dapm_widgets = ARRAY_SIZE(wm8804_dapm_widgets), +diff -Nur linux-4.1.23.orig/sound/usb/card.c linux-4.1.23/sound/usb/card.c +--- linux-4.1.23.orig/sound/usb/card.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/sound/usb/card.c 2016-05-02 22:54:01.000000000 +0200 +@@ -365,15 +365,13 @@ + } + + mutex_init(&chip->mutex); +- init_waitqueue_head(&chip->shutdown_wait); ++ init_rwsem(&chip->shutdown_rwsem); + chip->index = idx; + chip->dev = dev; + chip->card = card; + chip->setup = device_setup[idx]; + chip->autoclock = autoclock; + chip->probing = 1; +- atomic_set(&chip->usage_count, 0); +- atomic_set(&chip->shutdown, 0); + + chip->usb_id = USB_ID(le16_to_cpu(dev->descriptor.idVendor), + le16_to_cpu(dev->descriptor.idProduct)); +@@ -497,7 +495,7 @@ + mutex_lock(®ister_mutex); + for (i = 0; i < SNDRV_CARDS; i++) { + if (usb_chip[i] && usb_chip[i]->dev == dev) { +- if (atomic_read(&usb_chip[i]->shutdown)) { ++ if (usb_chip[i]->shutdown) { + dev_err(&dev->dev, "USB device is in the shutdown state, cannot create a card instance\n"); + err = -EIO; + goto __error; +@@ -587,23 +585,23 @@ + struct snd_usb_audio *chip = usb_get_intfdata(intf); + struct snd_card *card; + struct list_head *p; ++ bool was_shutdown; + + if (chip == (void *)-1L) + return; + + card = chip->card; ++ down_write(&chip->shutdown_rwsem); ++ was_shutdown = chip->shutdown; ++ chip->shutdown = 1; ++ up_write(&chip->shutdown_rwsem); + + mutex_lock(®ister_mutex); +- if (atomic_inc_return(&chip->shutdown) == 1) { ++ if (!was_shutdown) { + struct snd_usb_stream *as; + struct snd_usb_endpoint *ep; + struct usb_mixer_interface *mixer; + +- /* wait until all pending tasks done; +- * they are protected by snd_usb_lock_shutdown() +- */ +- wait_event(chip->shutdown_wait, +- !atomic_read(&chip->usage_count)); + snd_card_disconnect(card); + /* release the pcm resources */ + list_for_each_entry(as, &chip->pcm_list, list) { +@@ -633,56 +631,28 @@ + } + } + +-/* lock the shutdown (disconnect) task and autoresume */ +-int snd_usb_lock_shutdown(struct snd_usb_audio *chip) +-{ +- int err; +- +- atomic_inc(&chip->usage_count); +- if (atomic_read(&chip->shutdown)) { +- err = -EIO; +- goto error; +- } +- err = snd_usb_autoresume(chip); +- if (err < 0) +- goto error; +- return 0; +- +- error: +- if (atomic_dec_and_test(&chip->usage_count)) +- wake_up(&chip->shutdown_wait); +- return err; +-} +- +-/* autosuspend and unlock the shutdown */ +-void snd_usb_unlock_shutdown(struct snd_usb_audio *chip) +-{ +- snd_usb_autosuspend(chip); +- if (atomic_dec_and_test(&chip->usage_count)) +- wake_up(&chip->shutdown_wait); +-} +- + #ifdef CONFIG_PM + + int snd_usb_autoresume(struct snd_usb_audio *chip) + { +- if (atomic_read(&chip->shutdown)) +- return -EIO; +- if (chip->probing) +- return 0; +- if (atomic_inc_return(&chip->active) == 1) +- return usb_autopm_get_interface(chip->pm_intf); +- return 0; ++ int err = -ENODEV; ++ ++ down_read(&chip->shutdown_rwsem); ++ if (chip->probing || chip->in_pm) ++ err = 0; ++ else if (!chip->shutdown) ++ err = usb_autopm_get_interface(chip->pm_intf); ++ up_read(&chip->shutdown_rwsem); ++ ++ return err; + } + + void snd_usb_autosuspend(struct snd_usb_audio *chip) + { +- if (chip->probing) +- return; +- if (atomic_read(&chip->shutdown)) +- return; +- if (atomic_dec_and_test(&chip->active)) ++ down_read(&chip->shutdown_rwsem); ++ if (!chip->shutdown && !chip->probing && !chip->in_pm) + usb_autopm_put_interface(chip->pm_intf); ++ up_read(&chip->shutdown_rwsem); + } + + static int usb_audio_suspend(struct usb_interface *intf, pm_message_t message) +@@ -735,7 +705,7 @@ + if (--chip->num_suspended_intf) + return 0; + +- atomic_inc(&chip->active); /* avoid autopm */ ++ chip->in_pm = 1; + /* + * ALSA leaves material resumption to user space + * we just notify and restart the mixers +@@ -755,7 +725,7 @@ + chip->autosuspended = 0; + + err_out: +- atomic_dec(&chip->active); /* allow autopm after this point */ ++ chip->in_pm = 0; + return err; + } + +diff -Nur linux-4.1.23.orig/sound/usb/clock.c linux-4.1.23/sound/usb/clock.c +--- linux-4.1.23.orig/sound/usb/clock.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/sound/usb/clock.c 2016-05-02 22:54:01.000000000 +0200 +@@ -285,8 +285,6 @@ + unsigned char data[3]; + int err, crate; + +- if (get_iface_desc(alts)->bNumEndpoints < 1) +- return -EINVAL; + ep = get_endpoint(alts, 0)->bEndpointAddress; + + /* if endpoint doesn't have sampling rate control, bail out */ +diff -Nur linux-4.1.23.orig/sound/usb/endpoint.c linux-4.1.23/sound/usb/endpoint.c +--- linux-4.1.23.orig/sound/usb/endpoint.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/sound/usb/endpoint.c 2016-05-02 22:54:01.000000000 +0200 +@@ -355,10 +355,8 @@ + if (unlikely(urb->status == -ENOENT || /* unlinked */ + urb->status == -ENODEV || /* device removed */ + urb->status == -ECONNRESET || /* unlinked */ +- urb->status == -ESHUTDOWN)) /* device disabled */ +- goto exit_clear; +- /* device disconnected */ +- if (unlikely(atomic_read(&ep->chip->shutdown))) ++ urb->status == -ESHUTDOWN || /* device disabled */ ++ ep->chip->shutdown)) /* device disconnected */ + goto exit_clear; + + if (usb_pipeout(ep->pipe)) { +@@ -415,9 +413,6 @@ + * + * New endpoints will be added to chip->ep_list and must be freed by + * calling snd_usb_endpoint_free(). +- * +- * For SND_USB_ENDPOINT_TYPE_SYNC, the caller needs to guarantee that +- * bNumEndpoints > 1 beforehand. + */ + struct snd_usb_endpoint *snd_usb_add_endpoint(struct snd_usb_audio *chip, + struct usb_host_interface *alts, +@@ -534,7 +529,7 @@ + { + unsigned int i; + +- if (!force && atomic_read(&ep->chip->shutdown)) /* to be sure... */ ++ if (!force && ep->chip->shutdown) /* to be sure... */ + return -EBADFD; + + clear_bit(EP_FLAG_RUNNING, &ep->flags); +@@ -873,7 +868,7 @@ + int err; + unsigned int i; + +- if (atomic_read(&ep->chip->shutdown)) ++ if (ep->chip->shutdown) + return -EBADFD; + + /* already running? */ +diff -Nur linux-4.1.23.orig/sound/usb/mixer.c linux-4.1.23/sound/usb/mixer.c +--- linux-4.1.23.orig/sound/usb/mixer.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/sound/usb/mixer.c 2016-05-02 22:54:01.000000000 +0200 +@@ -282,21 +282,6 @@ + return val; + } + +-static int uac2_ctl_value_size(int val_type) +-{ +- switch (val_type) { +- case USB_MIXER_S32: +- case USB_MIXER_U32: +- return 4; +- case USB_MIXER_S16: +- case USB_MIXER_U16: +- return 2; +- default: +- return 1; +- } +- return 0; /* unreachable */ +-} +- + + /* + * retrieve a mixer value +@@ -311,11 +296,14 @@ + int timeout = 10; + int idx = 0, err; + +- err = snd_usb_lock_shutdown(chip); ++ err = snd_usb_autoresume(chip); + if (err < 0) + return -EIO; + ++ down_read(&chip->shutdown_rwsem); + while (timeout-- > 0) { ++ if (chip->shutdown) ++ break; + idx = snd_usb_ctrl_intf(chip) | (cval->head.id << 8); + if (snd_usb_ctl_msg(chip->dev, usb_rcvctrlpipe(chip->dev, 0), request, + USB_RECIP_INTERFACE | USB_TYPE_CLASS | USB_DIR_IN, +@@ -331,7 +319,8 @@ + err = -EINVAL; + + out: +- snd_usb_unlock_shutdown(chip); ++ up_read(&chip->shutdown_rwsem); ++ snd_usb_autosuspend(chip); + return err; + } + +@@ -339,14 +328,14 @@ + int validx, int *value_ret) + { + struct snd_usb_audio *chip = cval->head.mixer->chip; +- unsigned char buf[4 + 3 * sizeof(__u32)]; /* enough space for one range */ ++ unsigned char buf[2 + 3 * sizeof(__u16)]; /* enough space for one range */ + unsigned char *val; + int idx = 0, ret, size; + __u8 bRequest; + + if (request == UAC_GET_CUR) { + bRequest = UAC2_CS_CUR; +- size = uac2_ctl_value_size(cval->val_type); ++ size = sizeof(__u16); + } else { + bRequest = UAC2_CS_RANGE; + size = sizeof(buf); +@@ -354,15 +343,21 @@ + + memset(buf, 0, sizeof(buf)); + +- ret = snd_usb_lock_shutdown(chip) ? -EIO : 0; ++ ret = snd_usb_autoresume(chip) ? -EIO : 0; + if (ret) + goto error; + +- idx = snd_usb_ctrl_intf(chip) | (cval->head.id << 8); +- ret = snd_usb_ctl_msg(chip->dev, usb_rcvctrlpipe(chip->dev, 0), bRequest, ++ down_read(&chip->shutdown_rwsem); ++ if (chip->shutdown) { ++ ret = -ENODEV; ++ } else { ++ idx = snd_usb_ctrl_intf(chip) | (cval->head.id << 8); ++ ret = snd_usb_ctl_msg(chip->dev, usb_rcvctrlpipe(chip->dev, 0), bRequest, + USB_RECIP_INTERFACE | USB_TYPE_CLASS | USB_DIR_IN, + validx, idx, buf, size); +- snd_usb_unlock_shutdown(chip); ++ } ++ up_read(&chip->shutdown_rwsem); ++ snd_usb_autosuspend(chip); + + if (ret < 0) { + error: +@@ -451,7 +446,7 @@ + int request, int validx, int value_set) + { + struct snd_usb_audio *chip = cval->head.mixer->chip; +- unsigned char buf[4]; ++ unsigned char buf[2]; + int idx = 0, val_len, err, timeout = 10; + + validx += cval->idx_off; +@@ -459,7 +454,8 @@ + if (cval->head.mixer->protocol == UAC_VERSION_1) { + val_len = cval->val_type >= USB_MIXER_S16 ? 2 : 1; + } else { /* UAC_VERSION_2 */ +- val_len = uac2_ctl_value_size(cval->val_type); ++ /* audio class v2 controls are always 2 bytes in size */ ++ val_len = sizeof(__u16); + + /* FIXME */ + if (request != UAC_SET_CUR) { +@@ -473,14 +469,13 @@ + value_set = convert_bytes_value(cval, value_set); + buf[0] = value_set & 0xff; + buf[1] = (value_set >> 8) & 0xff; +- buf[2] = (value_set >> 16) & 0xff; +- buf[3] = (value_set >> 24) & 0xff; +- +- err = snd_usb_lock_shutdown(chip); ++ err = snd_usb_autoresume(chip); + if (err < 0) + return -EIO; +- ++ down_read(&chip->shutdown_rwsem); + while (timeout-- > 0) { ++ if (chip->shutdown) ++ break; + idx = snd_usb_ctrl_intf(chip) | (cval->head.id << 8); + if (snd_usb_ctl_msg(chip->dev, + usb_sndctrlpipe(chip->dev, 0), request, +@@ -495,7 +490,8 @@ + err = -EINVAL; + + out: +- snd_usb_unlock_shutdown(chip); ++ up_read(&chip->shutdown_rwsem); ++ snd_usb_autosuspend(chip); + return err; + } + +@@ -802,25 +798,24 @@ + /* feature unit control information */ + struct usb_feature_control_info { + const char *name; +- int type; /* data type for uac1 */ +- int type_uac2; /* data type for uac2 if different from uac1, else -1 */ ++ unsigned int type; /* control type (mute, volume, etc.) */ + }; + + static struct usb_feature_control_info audio_feature_info[] = { +- { "Mute", USB_MIXER_INV_BOOLEAN, -1 }, +- { "Volume", USB_MIXER_S16, -1 }, +- { "Tone Control - Bass", USB_MIXER_S8, -1 }, +- { "Tone Control - Mid", USB_MIXER_S8, -1 }, +- { "Tone Control - Treble", USB_MIXER_S8, -1 }, +- { "Graphic Equalizer", USB_MIXER_S8, -1 }, /* FIXME: not implemeted yet */ +- { "Auto Gain Control", USB_MIXER_BOOLEAN, -1 }, +- { "Delay Control", USB_MIXER_U16, USB_MIXER_U32 }, +- { "Bass Boost", USB_MIXER_BOOLEAN, -1 }, +- { "Loudness", USB_MIXER_BOOLEAN, -1 }, ++ { "Mute", USB_MIXER_INV_BOOLEAN }, ++ { "Volume", USB_MIXER_S16 }, ++ { "Tone Control - Bass", USB_MIXER_S8 }, ++ { "Tone Control - Mid", USB_MIXER_S8 }, ++ { "Tone Control - Treble", USB_MIXER_S8 }, ++ { "Graphic Equalizer", USB_MIXER_S8 }, /* FIXME: not implemeted yet */ ++ { "Auto Gain Control", USB_MIXER_BOOLEAN }, ++ { "Delay Control", USB_MIXER_U16 }, ++ { "Bass Boost", USB_MIXER_BOOLEAN }, ++ { "Loudness", USB_MIXER_BOOLEAN }, + /* UAC2 specific */ +- { "Input Gain Control", USB_MIXER_S16, -1 }, +- { "Input Gain Pad Control", USB_MIXER_S16, -1 }, +- { "Phase Inverter Control", USB_MIXER_BOOLEAN, -1 }, ++ { "Input Gain Control", USB_MIXER_U16 }, ++ { "Input Gain Pad Control", USB_MIXER_BOOLEAN }, ++ { "Phase Inverter Control", USB_MIXER_BOOLEAN }, + }; + + /* private_free callback */ +@@ -1220,7 +1215,6 @@ + int readonly_mask) + { + struct uac_feature_unit_descriptor *desc = raw_desc; +- struct usb_feature_control_info *ctl_info; + unsigned int len = 0; + int mapped_name = 0; + int nameid = uac_feature_unit_iFeature(desc); +@@ -1246,13 +1240,7 @@ + snd_usb_mixer_elem_init_std(&cval->head, state->mixer, unitid); + cval->control = control; + cval->cmask = ctl_mask; +- ctl_info = &audio_feature_info[control-1]; +- if (state->mixer->protocol == UAC_VERSION_1) +- cval->val_type = ctl_info->type; +- else /* UAC_VERSION_2 */ +- cval->val_type = ctl_info->type_uac2 >= 0 ? +- ctl_info->type_uac2 : ctl_info->type; +- ++ cval->val_type = audio_feature_info[control-1].type; + if (ctl_mask == 0) { + cval->channels = 1; /* master channel */ + cval->master_readonly = readonly_mask; +diff -Nur linux-4.1.23.orig/sound/usb/mixer.h linux-4.1.23/sound/usb/mixer.h +--- linux-4.1.23.orig/sound/usb/mixer.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/sound/usb/mixer.h 2016-05-02 22:54:01.000000000 +0200 +@@ -33,8 +33,6 @@ + USB_MIXER_U8, + USB_MIXER_S16, + USB_MIXER_U16, +- USB_MIXER_S32, +- USB_MIXER_U32, + }; + + typedef void (*usb_mixer_elem_dump_func_t)(struct snd_info_buffer *buffer, +diff -Nur linux-4.1.23.orig/sound/usb/mixer_quirks.c linux-4.1.23/sound/usb/mixer_quirks.c +--- linux-4.1.23.orig/sound/usb/mixer_quirks.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/sound/usb/mixer_quirks.c 2016-05-02 22:54:01.000000000 +0200 +@@ -309,10 +309,11 @@ + struct snd_usb_audio *chip = mixer->chip; + int err; + +- err = snd_usb_lock_shutdown(chip); +- if (err < 0) +- return err; +- ++ down_read(&chip->shutdown_rwsem); ++ if (chip->shutdown) { ++ err = -ENODEV; ++ goto out; ++ } + if (chip->usb_id == USB_ID(0x041e, 0x3042)) + err = snd_usb_ctl_msg(chip->dev, + usb_sndctrlpipe(chip->dev, 0), 0x24, +@@ -329,7 +330,8 @@ + usb_sndctrlpipe(chip->dev, 0), 0x24, + USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_OTHER, + value, index + 2, NULL, 0); +- snd_usb_unlock_shutdown(chip); ++ out: ++ up_read(&chip->shutdown_rwsem); + return err; + } + +@@ -440,15 +442,16 @@ + + for (i = 0; jacks[i].name; ++i) { + snd_iprintf(buffer, "%s: ", jacks[i].name); +- err = snd_usb_lock_shutdown(mixer->chip); +- if (err < 0) +- return; +- err = snd_usb_ctl_msg(mixer->chip->dev, ++ down_read(&mixer->chip->shutdown_rwsem); ++ if (mixer->chip->shutdown) ++ err = 0; ++ else ++ err = snd_usb_ctl_msg(mixer->chip->dev, + usb_rcvctrlpipe(mixer->chip->dev, 0), + UAC_GET_MEM, USB_DIR_IN | USB_TYPE_CLASS | + USB_RECIP_INTERFACE, 0, + jacks[i].unitid << 8, buf, 3); +- snd_usb_unlock_shutdown(mixer->chip); ++ up_read(&mixer->chip->shutdown_rwsem); + if (err == 3 && (buf[0] == 3 || buf[0] == 6)) + snd_iprintf(buffer, "%02x %02x\n", buf[1], buf[2]); + else +@@ -479,9 +482,11 @@ + int err; + unsigned char buf[2]; + +- err = snd_usb_lock_shutdown(chip); +- if (err < 0) +- return err; ++ down_read(&chip->shutdown_rwsem); ++ if (mixer->chip->shutdown) { ++ err = -ENODEV; ++ goto out; ++ } + + buf[0] = 0x01; + buf[1] = value ? 0x02 : 0x01; +@@ -489,7 +494,8 @@ + usb_sndctrlpipe(chip->dev, 0), UAC_SET_CUR, + USB_RECIP_INTERFACE | USB_TYPE_CLASS | USB_DIR_OUT, + 0x0400, 0x0e00, buf, 2); +- snd_usb_unlock_shutdown(chip); ++ out: ++ up_read(&chip->shutdown_rwsem); + return err; + } + +@@ -549,14 +555,15 @@ + struct snd_usb_audio *chip = mixer->chip; + int err; + +- err = snd_usb_lock_shutdown(chip); +- if (err < 0) +- return err; +- err = snd_usb_ctl_msg(chip->dev, ++ down_read(&chip->shutdown_rwsem); ++ if (chip->shutdown) ++ err = -ENODEV; ++ else ++ err = snd_usb_ctl_msg(chip->dev, + usb_sndctrlpipe(chip->dev, 0), 0x08, + USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_OTHER, + 50, 0, &status, 1); +- snd_usb_unlock_shutdown(chip); ++ up_read(&chip->shutdown_rwsem); + return err; + } + +@@ -617,9 +624,11 @@ + int err; + unsigned char buff[3]; + +- err = snd_usb_lock_shutdown(chip); +- if (err < 0) +- return err; ++ down_read(&chip->shutdown_rwsem); ++ if (chip->shutdown) { ++ err = -ENODEV; ++ goto err; ++ } + + /* Prepare for magic command to toggle clock source */ + err = snd_usb_ctl_msg(chip->dev, +@@ -675,7 +684,7 @@ + goto err; + + err: +- snd_usb_unlock_shutdown(chip); ++ up_read(&chip->shutdown_rwsem); + return err; + } + +@@ -770,14 +779,15 @@ + unsigned int pval = list->kctl->private_value; + int err; + +- err = snd_usb_lock_shutdown(chip); +- if (err < 0) +- return err; +- err = usb_control_msg(chip->dev, usb_sndctrlpipe(chip->dev, 0), +- (pval >> 16) & 0xff, +- USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT, +- pval >> 24, pval & 0xffff, NULL, 0, 1000); +- snd_usb_unlock_shutdown(chip); ++ down_read(&chip->shutdown_rwsem); ++ if (chip->shutdown) ++ err = -ENODEV; ++ else ++ err = usb_control_msg(chip->dev, usb_sndctrlpipe(chip->dev, 0), ++ (pval >> 16) & 0xff, ++ USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT, ++ pval >> 24, pval & 0xffff, NULL, 0, 1000); ++ up_read(&chip->shutdown_rwsem); + return err; + } + +@@ -935,17 +945,18 @@ + value[0] = pval >> 24; + value[1] = 0; + +- err = snd_usb_lock_shutdown(chip); +- if (err < 0) +- return err; +- err = snd_usb_ctl_msg(chip->dev, +- usb_sndctrlpipe(chip->dev, 0), +- UAC_SET_CUR, +- USB_RECIP_INTERFACE | USB_TYPE_CLASS | USB_DIR_OUT, +- pval & 0xff00, +- snd_usb_ctrl_intf(chip) | ((pval & 0xff) << 8), +- value, 2); +- snd_usb_unlock_shutdown(chip); ++ down_read(&chip->shutdown_rwsem); ++ if (chip->shutdown) ++ err = -ENODEV; ++ else ++ err = snd_usb_ctl_msg(chip->dev, ++ usb_sndctrlpipe(chip->dev, 0), ++ UAC_SET_CUR, ++ USB_RECIP_INTERFACE | USB_TYPE_CLASS | USB_DIR_OUT, ++ pval & 0xff00, ++ snd_usb_ctrl_intf(chip) | ((pval & 0xff) << 8), ++ value, 2); ++ up_read(&chip->shutdown_rwsem); + return err; + } + +@@ -1509,9 +1520,11 @@ + unsigned char data[3]; + int rate; + +- err = snd_usb_lock_shutdown(chip); +- if (err < 0) +- return err; ++ down_read(&chip->shutdown_rwsem); ++ if (chip->shutdown) { ++ err = -ENODEV; ++ goto end; ++ } + + ucontrol->value.iec958.status[0] = kcontrol->private_value & 0xff; + ucontrol->value.iec958.status[1] = (kcontrol->private_value >> 8) & 0xff; +@@ -1519,11 +1532,7 @@ + + /* use known values for that card: interface#1 altsetting#1 */ + iface = usb_ifnum_to_if(chip->dev, 1); +- if (!iface || iface->num_altsetting < 2) +- return -EINVAL; + alts = &iface->altsetting[1]; +- if (get_iface_desc(alts)->bNumEndpoints < 1) +- return -EINVAL; + ep = get_endpoint(alts, 0)->bEndpointAddress; + + err = snd_usb_ctl_msg(chip->dev, +@@ -1543,7 +1552,7 @@ + + err = 0; + end: +- snd_usb_unlock_shutdown(chip); ++ up_read(&chip->shutdown_rwsem); + return err; + } + +@@ -1554,9 +1563,11 @@ + u8 reg; + int err; + +- err = snd_usb_lock_shutdown(chip); +- if (err < 0) +- return err; ++ down_read(&chip->shutdown_rwsem); ++ if (chip->shutdown) { ++ err = -ENODEV; ++ goto end; ++ } + + reg = ((pval >> 4) & 0xf0) | (pval & 0x0f); + err = snd_usb_ctl_msg(chip->dev, +@@ -1584,7 +1595,7 @@ + goto end; + + end: +- snd_usb_unlock_shutdown(chip); ++ up_read(&chip->shutdown_rwsem); + return err; + } + +@@ -1640,9 +1651,11 @@ + u8 reg = list->kctl->private_value; + int err; + +- err = snd_usb_lock_shutdown(chip); +- if (err < 0) +- return err; ++ down_read(&chip->shutdown_rwsem); ++ if (chip->shutdown) { ++ err = -ENODEV; ++ goto end; ++ } + + err = snd_usb_ctl_msg(chip->dev, + usb_sndctrlpipe(chip->dev, 0), +@@ -1653,7 +1666,8 @@ + NULL, + 0); + +- snd_usb_unlock_shutdown(chip); ++ end: ++ up_read(&chip->shutdown_rwsem); + return err; + } + +diff -Nur linux-4.1.23.orig/sound/usb/pcm.c linux-4.1.23/sound/usb/pcm.c +--- linux-4.1.23.orig/sound/usb/pcm.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/sound/usb/pcm.c 2016-05-02 22:54:01.000000000 +0200 +@@ -80,7 +80,7 @@ + unsigned int hwptr_done; + + subs = (struct snd_usb_substream *)substream->runtime->private_data; +- if (atomic_read(&subs->stream->chip->shutdown)) ++ if (subs->stream->chip->shutdown) + return SNDRV_PCM_POS_XRUN; + spin_lock(&subs->lock); + hwptr_done = subs->hwptr_done; +@@ -159,8 +159,6 @@ + unsigned char data[1]; + int err; + +- if (get_iface_desc(alts)->bNumEndpoints < 1) +- return -EINVAL; + ep = get_endpoint(alts, 0)->bEndpointAddress; + + data[0] = 1; +@@ -709,11 +707,12 @@ + return -EINVAL; + } + +- ret = snd_usb_lock_shutdown(subs->stream->chip); +- if (ret < 0) +- return ret; +- ret = set_format(subs, fmt); +- snd_usb_unlock_shutdown(subs->stream->chip); ++ down_read(&subs->stream->chip->shutdown_rwsem); ++ if (subs->stream->chip->shutdown) ++ ret = -ENODEV; ++ else ++ ret = set_format(subs, fmt); ++ up_read(&subs->stream->chip->shutdown_rwsem); + if (ret < 0) + return ret; + +@@ -736,12 +735,13 @@ + subs->cur_audiofmt = NULL; + subs->cur_rate = 0; + subs->period_bytes = 0; +- if (!snd_usb_lock_shutdown(subs->stream->chip)) { ++ down_read(&subs->stream->chip->shutdown_rwsem); ++ if (!subs->stream->chip->shutdown) { + stop_endpoints(subs, true); + snd_usb_endpoint_deactivate(subs->sync_endpoint); + snd_usb_endpoint_deactivate(subs->data_endpoint); +- snd_usb_unlock_shutdown(subs->stream->chip); + } ++ up_read(&subs->stream->chip->shutdown_rwsem); + return snd_pcm_lib_free_vmalloc_buffer(substream); + } + +@@ -763,9 +763,11 @@ + return -ENXIO; + } + +- ret = snd_usb_lock_shutdown(subs->stream->chip); +- if (ret < 0) +- return ret; ++ down_read(&subs->stream->chip->shutdown_rwsem); ++ if (subs->stream->chip->shutdown) { ++ ret = -ENODEV; ++ goto unlock; ++ } + if (snd_BUG_ON(!subs->data_endpoint)) { + ret = -EIO; + goto unlock; +@@ -814,7 +816,7 @@ + ret = start_endpoints(subs, true); + + unlock: +- snd_usb_unlock_shutdown(subs->stream->chip); ++ up_read(&subs->stream->chip->shutdown_rwsem); + return ret; + } + +@@ -1216,11 +1218,9 @@ + + stop_endpoints(subs, true); + +- if (subs->interface >= 0 && +- !snd_usb_lock_shutdown(subs->stream->chip)) { ++ if (!as->chip->shutdown && subs->interface >= 0) { + usb_set_interface(subs->dev, subs->interface, 0); + subs->interface = -1; +- snd_usb_unlock_shutdown(subs->stream->chip); + } + + subs->pcm_substream = NULL; +diff -Nur linux-4.1.23.orig/sound/usb/proc.c linux-4.1.23/sound/usb/proc.c +--- linux-4.1.23.orig/sound/usb/proc.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/sound/usb/proc.c 2016-05-02 22:54:01.000000000 +0200 +@@ -46,14 +46,14 @@ + static void proc_audio_usbbus_read(struct snd_info_entry *entry, struct snd_info_buffer *buffer) + { + struct snd_usb_audio *chip = entry->private_data; +- if (!atomic_read(&chip->shutdown)) ++ if (!chip->shutdown) + snd_iprintf(buffer, "%03d/%03d\n", chip->dev->bus->busnum, chip->dev->devnum); + } + + static void proc_audio_usbid_read(struct snd_info_entry *entry, struct snd_info_buffer *buffer) + { + struct snd_usb_audio *chip = entry->private_data; +- if (!atomic_read(&chip->shutdown)) ++ if (!chip->shutdown) + snd_iprintf(buffer, "%04x:%04x\n", + USB_ID_VENDOR(chip->usb_id), + USB_ID_PRODUCT(chip->usb_id)); +diff -Nur linux-4.1.23.orig/sound/usb/quirks.c linux-4.1.23/sound/usb/quirks.c +--- linux-4.1.23.orig/sound/usb/quirks.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/sound/usb/quirks.c 2016-05-02 22:54:01.000000000 +0200 +@@ -177,12 +177,6 @@ + } + alts = &iface->altsetting[fp->altset_idx]; + altsd = get_iface_desc(alts); +- if (altsd->bNumEndpoints < 1) { +- kfree(fp); +- kfree(rate_table); +- return -EINVAL; +- } +- + fp->protocol = altsd->bInterfaceProtocol; + + if (fp->datainterval == 0) +@@ -1124,7 +1118,6 @@ + switch (chip->usb_id) { + case USB_ID(0x045E, 0x075D): /* MS Lifecam Cinema */ + case USB_ID(0x045E, 0x076D): /* MS Lifecam HD-5000 */ +- case USB_ID(0x045E, 0x076E): /* MS Lifecam HD-5001 */ + case USB_ID(0x045E, 0x076F): /* MS Lifecam HD-6000 */ + case USB_ID(0x045E, 0x0772): /* MS Lifecam Studio */ + case USB_ID(0x045E, 0x0779): /* MS Lifecam HD-3000 */ +diff -Nur linux-4.1.23.orig/sound/usb/usbaudio.h linux-4.1.23/sound/usb/usbaudio.h +--- linux-4.1.23.orig/sound/usb/usbaudio.h 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/sound/usb/usbaudio.h 2016-05-02 22:54:01.000000000 +0200 +@@ -37,12 +37,11 @@ + struct usb_interface *pm_intf; + u32 usb_id; + struct mutex mutex; ++ struct rw_semaphore shutdown_rwsem; ++ unsigned int shutdown:1; + unsigned int probing:1; ++ unsigned int in_pm:1; + unsigned int autosuspended:1; +- atomic_t active; +- atomic_t shutdown; +- atomic_t usage_count; +- wait_queue_head_t shutdown_wait; + unsigned int txfr_quirk:1; /* Subframe boundaries on transfers */ + + int num_interfaces; +@@ -117,7 +116,4 @@ + #define combine_triple(s) (combine_word(s) | ((unsigned int)(s)[2] << 16)) + #define combine_quad(s) (combine_triple(s) | ((unsigned int)(s)[3] << 24)) + +-int snd_usb_lock_shutdown(struct snd_usb_audio *chip); +-void snd_usb_unlock_shutdown(struct snd_usb_audio *chip); +- + #endif /* __USBAUDIO_H */ +diff -Nur linux-4.1.23.orig/tools/hv/Makefile linux-4.1.23/tools/hv/Makefile +--- linux-4.1.23.orig/tools/hv/Makefile 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/tools/hv/Makefile 2016-05-02 22:54:01.000000000 +0200 +@@ -5,8 +5,6 @@ + WARNINGS = -Wall -Wextra + CFLAGS = $(WARNINGS) -g $(PTHREAD_LIBS) $(shell getconf LFS_CFLAGS) + +-CFLAGS += -D__EXPORTED_HEADERS__ -I../../include/uapi -I../../include +- + all: hv_kvp_daemon hv_vss_daemon hv_fcopy_daemon + %: %.c + $(CC) $(CFLAGS) -o $@ $^ +diff -Nur linux-4.1.23.orig/tools/perf/util/pmu.c linux-4.1.23/tools/perf/util/pmu.c +--- linux-4.1.23.orig/tools/perf/util/pmu.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/tools/perf/util/pmu.c 2016-05-02 22:54:01.000000000 +0200 +@@ -263,12 +263,13 @@ + { + struct dirent *evt_ent; + DIR *event_dir; ++ int ret = 0; + + event_dir = opendir(dir); + if (!event_dir) + return -EINVAL; + +- while ((evt_ent = readdir(event_dir))) { ++ while (!ret && (evt_ent = readdir(event_dir))) { + char path[PATH_MAX]; + char *name = evt_ent->d_name; + FILE *file; +@@ -284,19 +285,17 @@ + + snprintf(path, PATH_MAX, "%s/%s", dir, name); + ++ ret = -EINVAL; + file = fopen(path, "r"); +- if (!file) { +- pr_debug("Cannot open %s\n", path); +- continue; +- } ++ if (!file) ++ break; + +- if (perf_pmu__new_alias(head, dir, name, file) < 0) +- pr_debug("Cannot set up %s\n", name); ++ ret = perf_pmu__new_alias(head, dir, name, file); + fclose(file); + } + + closedir(event_dir); +- return 0; ++ return ret; + } + + /* +diff -Nur linux-4.1.23.orig/tools/testing/selftests/efivarfs/efivarfs.sh linux-4.1.23/tools/testing/selftests/efivarfs/efivarfs.sh +--- linux-4.1.23.orig/tools/testing/selftests/efivarfs/efivarfs.sh 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/tools/testing/selftests/efivarfs/efivarfs.sh 2016-05-02 22:54:01.000000000 +0200 +@@ -88,11 +88,7 @@ + exit 1 + fi + +- rm $file 2>/dev/null +- if [ $? -ne 0 ]; then +- chattr -i $file +- rm $file +- fi ++ rm $file + + if [ -e $file ]; then + echo "$file couldn't be deleted" >&2 +@@ -115,7 +111,6 @@ + exit 1 + fi + +- chattr -i $file + printf "$attrs" > $file + + if [ -e $file ]; then +@@ -146,11 +141,7 @@ + echo "$file could not be created" >&2 + ret=1 + else +- rm $file 2>/dev/null +- if [ $? -ne 0 ]; then +- chattr -i $file +- rm $file +- fi ++ rm $file + fi + done + +@@ -183,11 +174,7 @@ + + if [ -e $file ]; then + echo "Creating $file should have failed" >&2 +- rm $file 2>/dev/null +- if [ $? -ne 0 ]; then +- chattr -i $file +- rm $file +- fi ++ rm $file + ret=1 + fi + done +diff -Nur linux-4.1.23.orig/tools/testing/selftests/efivarfs/open-unlink.c linux-4.1.23/tools/testing/selftests/efivarfs/open-unlink.c +--- linux-4.1.23.orig/tools/testing/selftests/efivarfs/open-unlink.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/tools/testing/selftests/efivarfs/open-unlink.c 2016-05-02 22:54:01.000000000 +0200 +@@ -1,68 +1,10 @@ +-#include <errno.h> + #include <stdio.h> + #include <stdint.h> + #include <stdlib.h> + #include <unistd.h> +-#include <sys/ioctl.h> + #include <sys/types.h> + #include <sys/stat.h> + #include <fcntl.h> +-#include <linux/fs.h> +- +-static int set_immutable(const char *path, int immutable) +-{ +- unsigned int flags; +- int fd; +- int rc; +- int error; +- +- fd = open(path, O_RDONLY); +- if (fd < 0) +- return fd; +- +- rc = ioctl(fd, FS_IOC_GETFLAGS, &flags); +- if (rc < 0) { +- error = errno; +- close(fd); +- errno = error; +- return rc; +- } +- +- if (immutable) +- flags |= FS_IMMUTABLE_FL; +- else +- flags &= ~FS_IMMUTABLE_FL; +- +- rc = ioctl(fd, FS_IOC_SETFLAGS, &flags); +- error = errno; +- close(fd); +- errno = error; +- return rc; +-} +- +-static int get_immutable(const char *path) +-{ +- unsigned int flags; +- int fd; +- int rc; +- int error; +- +- fd = open(path, O_RDONLY); +- if (fd < 0) +- return fd; +- +- rc = ioctl(fd, FS_IOC_GETFLAGS, &flags); +- if (rc < 0) { +- error = errno; +- close(fd); +- errno = error; +- return rc; +- } +- close(fd); +- if (flags & FS_IMMUTABLE_FL) +- return 1; +- return 0; +-} + + int main(int argc, char **argv) + { +@@ -85,7 +27,7 @@ + buf[4] = 0; + + /* create a test variable */ +- fd = open(path, O_WRONLY | O_CREAT, 0600); ++ fd = open(path, O_WRONLY | O_CREAT); + if (fd < 0) { + perror("open(O_WRONLY)"); + return EXIT_FAILURE; +@@ -99,18 +41,6 @@ + + close(fd); + +- rc = get_immutable(path); +- if (rc < 0) { +- perror("ioctl(FS_IOC_GETFLAGS)"); +- return EXIT_FAILURE; +- } else if (rc) { +- rc = set_immutable(path, 0); +- if (rc < 0) { +- perror("ioctl(FS_IOC_SETFLAGS)"); +- return EXIT_FAILURE; +- } +- } +- + fd = open(path, O_RDONLY); + if (fd < 0) { + perror("open"); +diff -Nur linux-4.1.23.orig/virt/kvm/kvm_main.c linux-4.1.23/virt/kvm/kvm_main.c +--- linux-4.1.23.orig/virt/kvm/kvm_main.c 2016-04-25 17:57:36.000000000 +0200 ++++ linux-4.1.23/virt/kvm/kvm_main.c 2016-05-02 22:54:01.000000000 +0200 +@@ -457,16 +457,6 @@ + if (!kvm) + return ERR_PTR(-ENOMEM); + +- spin_lock_init(&kvm->mmu_lock); +- atomic_inc(¤t->mm->mm_count); +- kvm->mm = current->mm; +- kvm_eventfd_init(kvm); +- mutex_init(&kvm->lock); +- mutex_init(&kvm->irq_lock); +- mutex_init(&kvm->slots_lock); +- atomic_set(&kvm->users_count, 1); +- INIT_LIST_HEAD(&kvm->devices); +- + r = kvm_arch_init_vm(kvm, type); + if (r) + goto out_err_no_disable; +@@ -504,6 +494,16 @@ + goto out_err; + } + ++ spin_lock_init(&kvm->mmu_lock); ++ kvm->mm = current->mm; ++ atomic_inc(&kvm->mm->mm_count); ++ kvm_eventfd_init(kvm); ++ mutex_init(&kvm->lock); ++ mutex_init(&kvm->irq_lock); ++ mutex_init(&kvm->slots_lock); ++ atomic_set(&kvm->users_count, 1); ++ INIT_LIST_HEAD(&kvm->devices); ++ + r = kvm_init_mmu_notifier(kvm); + if (r) + goto out_err; +@@ -525,7 +525,6 @@ + kfree(kvm->buses[i]); + kvfree(kvm->memslots); + kvm_arch_free_vm(kvm); +- mmdrop(current->mm); + return ERR_PTR(r); + } + diff --git a/target/arm/solidrun-imx6/patches/4.1.22/0001-xbian.patch b/target/arm/solidrun-imx6/patches/4.1.23/0001-xbian.patch index d3ce4744b..d3ce4744b 100644 --- a/target/arm/solidrun-imx6/patches/4.1.22/0001-xbian.patch +++ b/target/arm/solidrun-imx6/patches/4.1.23/0001-xbian.patch diff --git a/target/arm/solidrun-imx6/patches/4.1.22/0002-rt.patch b/target/arm/solidrun-imx6/patches/4.1.23/0002-rt.patch index 2eccf6072..2eccf6072 100644 --- a/target/arm/solidrun-imx6/patches/4.1.22/0002-rt.patch +++ b/target/arm/solidrun-imx6/patches/4.1.23/0002-rt.patch diff --git a/target/arm/systems/raspberry-pi3 b/target/arm/systems/raspberry-pi3 index 6c34586c4..858bbf720 100644 --- a/target/arm/systems/raspberry-pi3 +++ b/target/arm/systems/raspberry-pi3 @@ -14,8 +14,10 @@ config ADK_TARGET_SYSTEM_RASPBERRY_PI3 select ADK_TARGET_WITH_SMP select ADK_TARGET_WITH_NET select ADK_TARGET_WITH_NETDEVICE + select ADK_TARGET_WITH_WIFI select ADK_TARGET_WITH_BLOCK select ADK_TARGET_WITH_SOUND + select ADK_TARGET_WITH_SDIO select ADK_PACKAGE_BCM28XX_BOOTLOADER select ADK_TARGET_WITH_ROOT_RW select ADK_TARGET_KERNEL_ZIMAGE |